3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-04-03 18:31:08 +00:00

add the false literal callback

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2026-03-25 13:30:44 -07:00
parent ed403efefd
commit 77d86343d0
3 changed files with 43 additions and 6 deletions

View file

@ -80,6 +80,20 @@ namespace smt {
m_axioms.set_phase(set_phase);
m_axioms.set_ensure_digits(ensure_digit_axiom);
m_axioms.set_mark_no_diseq(mark_no_diseq);
std::function<sat::literal(expr*)> literal_if_false = [&](expr* e) {
bool is_not = m.is_not(e, e);
if (!ctx.e_internalized(e))
return sat::null_literal;
literal lit = ctx.get_literal(e);
if (is_not)
lit.neg();
if (ctx.get_assignment(lit) == l_false)
return lit;
return sat::null_literal;
};
m_nielsen.set_literal_if_false(literal_if_false);
}
// -----------------------------------------------------------------------