3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-28 19:01:29 +00:00

logging support for theory axioms

This commit is contained in:
nilsbecker 2019-02-21 19:29:35 +01:00
parent 279413412d
commit 28c03ed1de
26 changed files with 508 additions and 127 deletions

View file

@ -217,7 +217,9 @@ namespace smt {
}
literal lit(ctx.get_literal(e));
ctx.mark_as_relevant(lit);
if (m.has_trace_stream()) log_axiom_instantiation(e);
ctx.mk_th_axiom(get_id(), 1, &lit);
if (m.has_trace_stream()) m.trace_stream() << "[end-of-instance]\n";
// crash/error avoidance: add all axioms to the trail
m_trail.push_back(e);
@ -1084,7 +1086,9 @@ namespace smt {
literal lit(mk_eq(len_str, len, false));
ctx.mark_as_relevant(lit);
if (m.has_trace_stream()) log_axiom_instantiation(ctx.bool_var2expr(lit.var()));
ctx.mk_th_axiom(get_id(), 1, &lit);
if (m.has_trace_stream()) m.trace_stream() << "[end-of-instance]\n";
} else {
// build axiom 1: Length(a_str) >= 0
{
@ -1126,7 +1130,9 @@ namespace smt {
TRACE("str", tout << "string axiom 2: " << mk_ismt2_pp(lhs, m) << " <=> " << mk_ismt2_pp(rhs, m) << std::endl;);
literal l(mk_eq(lhs, rhs, true));
ctx.mark_as_relevant(l);
if (m.has_trace_stream()) log_axiom_instantiation(ctx.bool_var2expr(l.var()));
ctx.mk_th_axiom(get_id(), 1, &l);
if (m.has_trace_stream()) m.trace_stream() << "[end-of-instance]\n";
}
}