3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-13 12:23:01 +00:00

resolve_conflict should stop at base index

This commit is contained in:
Jakob Rath 2023-03-22 12:43:39 +01:00
parent da782a9dc7
commit 2804453039
2 changed files with 22 additions and 25 deletions

View file

@ -193,6 +193,7 @@ namespace polysat {
unsigned m_lemmas_qhead = 0;
unsigned_vector m_base_levels; // External clients can push/pop scope.
unsigned_vector m_base_index; // m_search size corresponding to base levels
// Cache literals that evaluate to true in the current assignment.
// TODO: convert to proper pvalue caching. decouple trail from qhead. push size on trail when a pvar is assigned, because that's the point where evaluations can change.
@ -297,6 +298,7 @@ namespace polysat {
bool is_conflict() const { return !m_conflict.empty(); }
bool at_base_level() const;
unsigned base_level() const;
unsigned base_index() const;
void resolve_conflict();
void revert_decision(pvar v);