mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
Polysat: disjunctive lemmas (#5311)
* Add macro to disable linear solver for development * Move new_* and add_* to header * Add ref_vector_core::push_back(ref<T>&&) * Attempt to simplify lifetime handling * Make operator bool() explicit * clause improvements * display boolean assignment * clause::resolve * bug fixes * more fixes * final case of backtrack
This commit is contained in:
parent
5fd3ef6580
commit
8757f04d20
19 changed files with 524 additions and 294 deletions
|
@ -66,10 +66,14 @@ public:
|
|||
return m_ptr;
|
||||
}
|
||||
|
||||
operator bool() const {
|
||||
explicit operator bool() const {
|
||||
return m_ptr != nullptr;
|
||||
}
|
||||
|
||||
bool operator!() const {
|
||||
return m_ptr == nullptr;
|
||||
}
|
||||
|
||||
const T & operator*() const {
|
||||
return *m_ptr;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ Revision History:
|
|||
|
||||
#include "util/vector.h"
|
||||
#include "util/obj_ref.h"
|
||||
#include "util/ref.h"
|
||||
|
||||
/**
|
||||
\brief Vector of smart pointers.
|
||||
|
@ -113,6 +114,11 @@ public:
|
|||
return *this;
|
||||
}
|
||||
|
||||
ref_vector_core& push_back(ref<T>&& n) {
|
||||
m_nodes.push_back(n.detach());
|
||||
return *this;
|
||||
}
|
||||
|
||||
void pop_back() {
|
||||
SASSERT(!m_nodes.empty());
|
||||
T * n = m_nodes.back();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue