@@ -69,7 +69,7 @@ namespace euf {
69
69
}
70
70
71
71
enode_bool_pair egraph::insert_table (enode* p) {
72
- TRACE (" euf " , tout << " insert_table " << bpp (p) << " \n " );
72
+ TRACE (" euf_verbose " , tout << " insert_table " << bpp (p) << " \n " );
73
73
// SASSERT(!m_table.contains_ptr(p));
74
74
auto rc = m_table.insert (p);
75
75
p->m_cg = rc.first ;
@@ -522,7 +522,7 @@ namespace euf {
522
522
}
523
523
524
524
void egraph::remove_parents (enode* r) {
525
- TRACE (" euf " , tout << bpp (r) << " \n " );
525
+ TRACE (" euf_verbose " , tout << bpp (r) << " \n " );
526
526
SASSERT (all_of (enode_parents (r), [&](enode* p) { return !p->is_marked1 (); }));
527
527
for (enode* p : enode_parents (r)) {
528
528
if (p->is_marked1 ())
@@ -533,7 +533,7 @@ namespace euf {
533
533
SASSERT (m_table.contains_ptr (p));
534
534
p->mark1 ();
535
535
erase_from_table (p);
536
- CTRACE (" euf " , m_table.contains_ptr (p), tout << bpp (p) << " \n " ; display (tout));
536
+ CTRACE (" euf_verbose " , m_table.contains_ptr (p), tout << bpp (p) << " \n " ; display (tout));
537
537
SASSERT (!m_table.contains_ptr (p));
538
538
}
539
539
else if (p->is_equality ())
@@ -546,11 +546,11 @@ namespace euf {
546
546
if (!p->is_marked1 ())
547
547
continue ;
548
548
p->unmark1 ();
549
- TRACE (" euf " , tout << " reinsert " << bpp (r1) << " " << bpp (r2) << " " << bpp (p) << " " << p->cgc_enabled () << " \n " ;);
549
+ TRACE (" euf_verbose " , tout << " reinsert " << bpp (r1) << " " << bpp (r2) << " " << bpp (p) << " " << p->cgc_enabled () << " \n " ;);
550
550
if (p->cgc_enabled ()) {
551
551
auto [p_other, comm] = insert_table (p);
552
552
SASSERT (m_table.contains_ptr (p) == (p_other == p));
553
- CTRACE (" euf " , p_other != p, tout << " reinsert " << bpp (p) << " == " << bpp (p_other) << " " << p->value () << " " << p_other->value () << " \n " );
553
+ CTRACE (" euf_verbose " , p_other != p, tout << " reinsert " << bpp (p) << " == " << bpp (p_other) << " " << p->value () << " " << p_other->value () << " \n " );
554
554
if (p_other != p)
555
555
m_to_merge.push_back (to_merge (p_other, p, comm));
556
556
else
@@ -584,14 +584,14 @@ namespace euf {
584
584
585
585
void egraph::undo_eq (enode* r1, enode* n1, unsigned r2_num_parents) {
586
586
enode* r2 = r1->get_root ();
587
- TRACE (" euf " , tout << " undo-eq old-root: " << bpp (r1) << " current-root " << bpp (r2) << " node: " << bpp (n1) << " \n " ;);
587
+ TRACE (" euf_verbose " , tout << " undo-eq old-root: " << bpp (r1) << " current-root " << bpp (r2) << " node: " << bpp (n1) << " \n " ;);
588
588
r2->dec_class_size (r1->class_size ());
589
589
r2->set_is_shared (l_undef);
590
590
std::swap (r1->m_next , r2->m_next );
591
591
auto begin = r2->begin_parents () + r2_num_parents, end = r2->end_parents ();
592
592
for (auto it = begin; it != end; ++it) {
593
593
enode* p = *it;
594
- TRACE (" euf " , tout << " erase " << bpp (p) << " \n " ;);
594
+ TRACE (" euf_verbose " , tout << " erase " << bpp (p) << " \n " ;);
595
595
SASSERT (!p->cgc_enabled () || m_table.contains_ptr (p));
596
596
SASSERT (!p->cgc_enabled () || p->is_cgr ());
597
597
if (p->cgc_enabled ())
@@ -673,7 +673,7 @@ namespace euf {
673
673
SASSERT (n1->get_root ()->reaches (n1));
674
674
SASSERT (n1->m_target );
675
675
n1->m_target = nullptr ;
676
- n1->m_justification = justification::axiom ();
676
+ n1->m_justification = justification::axiom (null_theory_id );
677
677
n1->get_root ()->reverse_justification ();
678
678
// ---------------
679
679
// n1 -> ... -> r1
@@ -804,7 +804,10 @@ namespace euf {
804
804
explain_eq (justifications, cc, a, b, j2);
805
805
}
806
806
else if (j.is_equality ())
807
- explain_eq (justifications, cc, j.lhs (), j.rhs ());
807
+ explain_eq (justifications, cc, j.lhs (), j.rhs ());
808
+ else if (j.is_axiom () && j.get_theory_id () != null_theory_id) {
809
+ IF_VERBOSE (20 , verbose_stream () << " TODO add theory axiom to justification\n " );
810
+ }
808
811
if (cc && j.is_congruence ())
809
812
cc->push_back (std::tuple (a->get_app (), b->get_app (), j.timestamp (), j.is_commutative ()));
810
813
}
0 commit comments