Skip to content

Commit 82236d4

Browse files
some simplifications in theory_bv
1 parent 911d23a commit 82236d4

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/smt/theory_bv.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1347,11 +1347,6 @@ namespace smt {
13471347
lits.push_back(antecedent);
13481348
literal eq = mk_eq(get_enode(v1)->get_owner(), get_enode(v2)->get_owner(), false);
13491349
lits.push_back(~eq);
1350-
if (m.has_trace_stream()) {
1351-
app_ref body(m);
1352-
body = m.mk_implies(ctx.bool_var2expr(eq.var()), m.mk_implies(ctx.bool_var2expr(consequent.var()), ctx.bool_var2expr(antecedent.var())));
1353-
log_axiom_instantiation(body);
1354-
}
13551350
//
13561351
// Issue #3035:
13571352
// merge_eh invokes assign_bit, which updates the propagation queue and includes the
@@ -1364,8 +1359,10 @@ namespace smt {
13641359
ctx.mark_as_relevant(lits[0]);
13651360
ctx.mark_as_relevant(lits[1]);
13661361
ctx.mark_as_relevant(lits[2]);
1367-
ctx.mk_th_axiom(get_id(), lits.size(), lits.c_ptr());
1368-
if (m.has_trace_stream()) m.trace_stream() << "[end-of-instance]\n";
1362+
{
1363+
scoped_trace_stream _sts(*this, lits);
1364+
ctx.mk_th_axiom(get_id(), lits.size(), lits.c_ptr());
1365+
}
13691366

13701367
if (m_wpos[v2] == idx)
13711368
find_wpos(v2);
@@ -1459,7 +1456,6 @@ namespace smt {
14591456

14601457
final_check_status theory_bv::final_check_eh() {
14611458
SASSERT(check_invariant());
1462-
check_invariant();
14631459
if (m_approximates_large_bvs) {
14641460
return FC_GIVEUP;
14651461
}
@@ -1556,7 +1552,7 @@ namespace smt {
15561552
if (val1 != l_undef && val2 != l_undef) {
15571553
TRACE("bv", tout << "inconsistent "; display_var(tout, v1); display_var(tout, v2); tout << "idx: " << idx << "\n";);
15581554
}
1559-
if (val1 != l_undef) {
1555+
if (val1 != l_undef && bit2 != false_literal && bit2 != true_literal) {
15601556
literal antecedent = bit1;
15611557
literal consequent = bit2;
15621558
if (val1 == l_false) {
@@ -1826,7 +1822,8 @@ namespace smt {
18261822
tout << "equivalence class is inconsistent, i: " << i << "\n";
18271823
display_var(tout, v1);
18281824
display_var(tout, v2);
1829-
tout << "relevant: " << ctx.is_relevant(bit1) << " " << ctx.is_relevant(bit2) << "\n";
1825+
if (bit1 != true_literal && bit1 != false_literal) tout << "bit1 relevant: " << ctx.is_relevant(bit1) << " ";
1826+
if (bit2 != true_literal && bit2 != false_literal) tout << "bit2 relevant: " << ctx.is_relevant(bit2) << "\n";
18301827
tout << "val1: " << val1 << " lvl: " << ctx.get_assign_level(bit1.var()) << " bit " << bit1 << "\n";
18311828
tout << "val2: " << val2 << " lvl: " << ctx.get_assign_level(bit2.var()) << " bit " << bit2 << "\n";
18321829
tout << "level: " << ctx.get_scope_level() << "\n";

0 commit comments

Comments
 (0)