mirror of
https://github.com/Z3Prover/z3
synced 2025-08-31 23:34:55 +00:00
add resolved attribute
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e50c612068
commit
eb9bfbb3d8
4 changed files with 20 additions and 2 deletions
|
@ -32,6 +32,7 @@ namespace polysat {
|
|||
pvar m_var;
|
||||
sat::literal m_lit;
|
||||
};
|
||||
bool m_resolved = false; // when marked as resolved it is no longer valid to reduce the conflict state
|
||||
|
||||
search_item(pvar var): m_kind(search_item_k::assignment), m_var(var) {}
|
||||
search_item(sat::literal lit): m_kind(search_item_k::boolean), m_lit(lit) {}
|
||||
|
@ -40,9 +41,11 @@ namespace polysat {
|
|||
static search_item boolean(sat::literal lit) { return search_item(lit); }
|
||||
bool is_assignment() const { return m_kind == search_item_k::assignment; }
|
||||
bool is_boolean() const { return m_kind == search_item_k::boolean; }
|
||||
bool is_resolved() const { return m_resolved; }
|
||||
search_item_k kind() const { return m_kind; }
|
||||
pvar var() const { SASSERT(is_assignment()); return m_var; }
|
||||
sat::literal lit() const { SASSERT(is_boolean()); return m_lit; }
|
||||
void set_resolved() { m_resolved = true; }
|
||||
};
|
||||
|
||||
class search_state {
|
||||
|
@ -65,6 +68,8 @@ namespace polysat {
|
|||
|
||||
void pop_asssignment();
|
||||
|
||||
void set_resolved(unsigned i) { m_items[i].set_resolved(); }
|
||||
|
||||
using const_iterator = decltype(m_items)::const_iterator;
|
||||
const_iterator begin() const { return m_items.begin(); }
|
||||
const_iterator end() const { return m_items.end(); }
|
||||
|
@ -128,7 +133,11 @@ namespace polysat {
|
|||
init();
|
||||
}
|
||||
|
||||
search_item const& operator*() const {
|
||||
void set_resolved() {
|
||||
m_search->set_resolved(current);
|
||||
}
|
||||
|
||||
search_item const& operator*() {
|
||||
return (*m_search)[current];
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue