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

SLS: log clause , allow more frequent export of SLS state to SMT

This commit is contained in:
Nikolaj Bjorner 2024-11-17 20:13:02 -08:00
parent 84447b7031
commit 4b72e517b7
4 changed files with 32 additions and 21 deletions

View file

@ -114,10 +114,19 @@ namespace sls {
}
// flip the last literal on the replay stack
IF_VERBOSE(10, verbose_stream() << "sls.euf - flip " << flit << "\n");
log_clause(lits);
ctx.add_clause(lits);
return flit;
}
void euf_plugin::log_clause(sat::literal_vector const& lits) {
IF_VERBOSE(3, verbose_stream() << "block " << lits << "\n";
for (auto lit : lits)
verbose_stream() << (lit.sign() ? "~" : "") << mk_bounded_pp(ctx.atom(lit.var()), m) << "\n";
verbose_stream() << "\n";
);
}
void euf_plugin::propagate_literal(sat::literal lit) {
SASSERT(ctx.is_true(lit));
auto e = ctx.atom(lit.var());
@ -154,6 +163,7 @@ namespace sls {
++m_stats.m_num_conflicts;
if (flit != sat::null_literal)
ctx.flip(flit.var());
log_clause(lits);
};
if (lit.sign() && m.is_eq(e, x, y))