mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
Polysat: fixes in solver, forbidden intervals for eq_constraint (#5240)
* Rename to neg_cond * Add some logging utilities * Implement case of forbidden interval covering the whole domain * Implement diseq_narrow * Do not activate constraint if we are in a conflict state * comments * Assert that lemma isn't undefined * Update revert_decision to work in the case where narrowing causes propagation * Fix case of non-disjunctive lemma from forbidden intervals * Conflict should not leak outside user scope * Add guard to decide(), some notes * Add test case * Add constraints to watchlist of unassigned variable during propagation * Move common propagation functionality into base class * Combine eq/diseq narrow * Compute forbidden interval for equality constraints by considering them as p <=u 0 (or p >u 0 for disequalities)
This commit is contained in:
parent
04876ba8b7
commit
f7e476a4a0
15 changed files with 350 additions and 130 deletions
|
@ -87,6 +87,8 @@ public:
|
|||
return tmp;
|
||||
}
|
||||
|
||||
T* const* data() const { return m_vector.data(); }
|
||||
|
||||
using const_iterator = typename ptr_vector<T>::const_iterator;
|
||||
const_iterator begin() const { return m_vector.begin(); }
|
||||
const_iterator end() const { return m_vector.end(); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue