mirror of
https://github.com/Z3Prover/z3
synced 2025-05-06 23:35:46 +00:00
forbidden intervals fixes
This commit is contained in:
parent
43fef8e8ba
commit
d36a658139
3 changed files with 14 additions and 5 deletions
|
@ -51,6 +51,7 @@ namespace polysat {
|
|||
void clause_builder::push(signed_constraint c) {
|
||||
SASSERT(c);
|
||||
SASSERT(c->has_bvar());
|
||||
SASSERT(!c.is_always_true()); // clause would be a tautology
|
||||
if (c->unit_clause()) {
|
||||
add_dependency(c->unit_dep());
|
||||
m_level = std::max(m_level, c->unit_clause()->level());
|
||||
|
@ -59,4 +60,11 @@ namespace polysat {
|
|||
m_literals.push_back(c.blit());
|
||||
}
|
||||
|
||||
void clause_builder::push_new(signed_constraint c) {
|
||||
if (c.is_always_false()) // filter out trivial constraints such as "4 < 2" (may come in from forbidden intervals)
|
||||
return;
|
||||
if (!c->has_bvar())
|
||||
m_solver->m_constraints.ensure_bvar(c.get());
|
||||
push(c);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue