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:
parent
84447b7031
commit
4b72e517b7
4 changed files with 32 additions and 21 deletions
|
@ -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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue