mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
fix backtracking of m_needs_congruence
This commit is contained in:
parent
a96df2292e
commit
28ed3bd7ab
3 changed files with 32 additions and 6 deletions
|
@ -245,7 +245,7 @@ namespace euf {
|
|||
enode* find(expr* f, unsigned n, enode* const* args);
|
||||
enode* mk(expr* f, unsigned generation, unsigned n, enode *const* args);
|
||||
enode_vector const& enodes_of(func_decl* f);
|
||||
void push() { if (!m_to_merge.empty()) propagate(); ++m_num_scopes; }
|
||||
void push() { if (can_propagate()) propagate(); ++m_num_scopes; }
|
||||
void pop(unsigned num_scopes);
|
||||
|
||||
/**
|
||||
|
@ -254,6 +254,7 @@ namespace euf {
|
|||
void merge(enode* n1, enode* n2, void* reason) { merge(n1, n2, justification::external(reason)); }
|
||||
void new_diseq(enode* n);
|
||||
|
||||
bool can_propagate() const { return !m_to_merge.empty(); }
|
||||
|
||||
/**
|
||||
\brief propagate set of merges.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue