3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 20:18:18 +00:00

revert some fixes to euf

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-11-29 13:47:59 -08:00
parent 41a3196c89
commit 4289cfac8d
2 changed files with 3 additions and 3 deletions

View file

@ -83,7 +83,7 @@ namespace euf {
void egraph::reinsert_equality(enode* p) { void egraph::reinsert_equality(enode* p) {
SASSERT(p->is_equality()); SASSERT(p->is_equality());
if (p->value() != l_true && p->get_arg(0)->get_root() == p->get_arg(1)->get_root()) if (p->value() != l_true && p->get_arg(0)->get_root() == p->get_arg(1)->get_root())
queue_literal(p, nullptr); add_literal(p, nullptr);
} }
void egraph::queue_literal(enode* p, enode* ante) { void egraph::queue_literal(enode* p, enode* ante) {
@ -581,13 +581,13 @@ namespace euf {
bool egraph::propagate() { bool egraph::propagate() {
SASSERT(m_num_scopes == 0 || m_to_merge.empty());
force_push(); force_push();
unsigned j = 0; unsigned j = 0;
for (unsigned i = 0; i < m_to_merge.size() && m.limit().inc() && !inconsistent(); ++i) { for (unsigned i = 0; i < m_to_merge.size() && m.limit().inc() && !inconsistent(); ++i) {
auto const& w = m_to_merge[i]; auto const& w = m_to_merge[i];
switch (w.t) { switch (w.t) {
case to_merge_plain: case to_merge_plain:
case to_merge_comm:
merge(w.a, w.b, justification::congruence(w.commutativity(), m_congruence_timestamp++)); merge(w.a, w.b, justification::congruence(w.commutativity(), m_congruence_timestamp++));
break; break;
case to_add_literal: case to_add_literal:

View file

@ -89,7 +89,7 @@ namespace euf {
enode* a, * b; enode* a, * b;
to_merge_t t; to_merge_t t;
bool commutativity() const { return t == to_merge_comm; } bool commutativity() const { return t == to_merge_comm; }
to_merge(enode* a, enode* b, bool c) : a(a), b(b), t(c ? to_merge_comm : to_merge_comm) {} to_merge(enode* a, enode* b, bool c) : a(a), b(b), t(c ? to_merge_comm : to_merge_plain) {}
to_merge(enode* p, enode* ante): a(p), b(ante), t(to_add_literal) {} to_merge(enode* p, enode* ante): a(p), b(ante), t(to_add_literal) {}
}; };