3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-06 23:35:46 +00:00

Polysat: use constraint_literal and begin move to core-based conflict representation (#5489)

* Rename solver_scope for fixplex tests

(otherwise the wrong constructor is called for polysat's solver_scope)

* Update conflict_core

* simplify

* Be clearer about constraint_literal lifetime

* remove old comment

* Remove status (positive/negative) from constraint

* Use constraint_literal in the solver

* Fix build (constraint -> get_constraint)
This commit is contained in:
Jakob Rath 2021-08-18 20:02:46 +02:00 committed by GitHub
parent 30e9f24fa3
commit ebaea2159e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 933 additions and 1004 deletions

View file

@ -52,12 +52,10 @@ namespace polysat {
m_literals.push_back(lit);
}
void clause_builder::push_new_constraint(constraint_literal c) {
void clause_builder::push_new_constraint(constraint_literal_ref c) {
// TODO: assert that constraint is new (not 'inserted' into manager yet)
SASSERT(c);
SASSERT(c->is_undef());
tmp_assign _t(c.get(), c.literal());
if (c->is_always_false())
if (c.get().is_always_false())
return;
m_level = std::max(m_level, c->level());
m_literals.push_back(c.literal());