3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-31 08:23:17 +00:00

provide access to saturation for selected constraints

This commit is contained in:
Nikolaj Bjorner 2022-12-08 19:17:35 -08:00
parent 33902c7c9e
commit a6b49d8b4e
3 changed files with 44 additions and 30 deletions

View file

@ -73,6 +73,10 @@ namespace polysat {
(void)m_saturation.perform(v, core);
}
void infer_lemmas_for_value(pvar v, signed_constraint const& c, conflict& core) {
(void)m_saturation.perform(v, c, core);
}
// Analyse current conflict core to extract additional lemmas
void find_extra_lemmas(conflict& core) {
m_free_variable_elimination.find_lemma(core);
@ -381,10 +385,15 @@ namespace polysat {
#endif
if (!has_decision) {
for (pvar v : c->vars()) {
if (s.is_assigned(v) && s.get_level(v) <= lvl) {
m_vars.insert(v);
// TODO - figure out what to do with constraints from conflict lemma that disappear here.
// if (s.m_bvars.is_false(lit))
// m_resolver->infer_lemmas_for_value(v, ~c, *this);
}
}
remove(c);
for (pvar v : c->vars())
if (s.is_assigned(v) && s.get_level(v) <= lvl)
m_vars.insert(v);
}
SASSERT(!contains(lit));