mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
clause_builder: rename push to insert
This commit is contained in:
parent
dbe814d568
commit
f12ae0af12
7 changed files with 21 additions and 36 deletions
|
@ -54,11 +54,11 @@ namespace polysat {
|
|||
}
|
||||
|
||||
|
||||
void clause_builder::push(sat::literal lit) {
|
||||
push(m_solver->lit2cnstr(lit));
|
||||
void clause_builder::insert(sat::literal lit) {
|
||||
insert(m_solver->lit2cnstr(lit));
|
||||
}
|
||||
|
||||
void clause_builder::push(signed_constraint c) {
|
||||
void clause_builder::insert(signed_constraint c) {
|
||||
SASSERT(c);
|
||||
if (c.is_always_false()) // filter out trivial constraints such as "4 < 2"
|
||||
return;
|
||||
|
@ -66,11 +66,6 @@ namespace polysat {
|
|||
m_is_tautology = true;
|
||||
return;
|
||||
}
|
||||
#if 0
|
||||
if (c->unit_clause()) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
m_literals.push_back(c.blit());
|
||||
}
|
||||
|
||||
|
@ -82,6 +77,6 @@ namespace polysat {
|
|||
if (c.bvalue(*m_solver) == l_undef) {
|
||||
m_solver->assign_eval(~c.blit());
|
||||
}
|
||||
push(c);
|
||||
insert(c);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,12 +44,8 @@ namespace polysat {
|
|||
clause_ref build();
|
||||
|
||||
/// Insert constraints into the clause.
|
||||
void push(sat::literal lit);
|
||||
void push(signed_constraint c);
|
||||
void push(inequality const& i) { push(i.as_signed_constraint()); }
|
||||
// TODO: remove push
|
||||
void insert(sat::literal lit) { push(lit); }
|
||||
void insert(signed_constraint c) { push(c); }
|
||||
void insert(sat::literal lit);
|
||||
void insert(signed_constraint c);
|
||||
void insert(inequality const& i) { insert(i.as_signed_constraint()); }
|
||||
|
||||
/// Inserting constraints into the clause.
|
||||
|
|
|
@ -308,7 +308,7 @@ namespace polysat {
|
|||
void conflict::add_lemma(signed_constraint const* cs, size_t cs_len) {
|
||||
clause_builder cb(s);
|
||||
for (size_t i = 0; i < cs_len; ++i)
|
||||
cb.push(cs[i]);
|
||||
cb.insert(cs[i]);
|
||||
add_lemma(cb.build());
|
||||
}
|
||||
|
||||
|
@ -467,13 +467,11 @@ namespace polysat {
|
|||
clause_builder lemma(s);
|
||||
|
||||
for (auto c : *this)
|
||||
lemma.push(~c);
|
||||
lemma.insert(~c);
|
||||
|
||||
for (unsigned v : m_vars) {
|
||||
auto eq = s.eq(s.var(v), s.get_value(v));
|
||||
if (eq.bvalue(s) == l_undef)
|
||||
s.assign_eval(eq.blit());
|
||||
lemma.push(~eq);
|
||||
lemma.insert_eval(~eq);
|
||||
}
|
||||
s.decay_activity();
|
||||
|
||||
|
|
|
@ -1033,12 +1033,8 @@ namespace polysat {
|
|||
|
||||
void solver::add_clause(unsigned n, signed_constraint* cs, bool is_redundant) {
|
||||
clause_builder cb(*this);
|
||||
for (unsigned i = 0; i < n; ++i) {
|
||||
signed_constraint c = cs[i];
|
||||
if (c.is_always_false())
|
||||
continue;
|
||||
cb.push(c);
|
||||
}
|
||||
for (unsigned i = 0; i < n; ++i)
|
||||
cb.insert(cs[i]);
|
||||
clause_ref clause = cb.build();
|
||||
if (clause) {
|
||||
clause->set_redundant(is_redundant);
|
||||
|
|
|
@ -132,9 +132,9 @@ namespace polysat {
|
|||
SASSERT(bound * p.val() > max);
|
||||
SASSERT((bound - 1) * p.val() <= max);
|
||||
clause_builder cb(s);
|
||||
cb.push(~sc);
|
||||
cb.push(~premise);
|
||||
cb.push(conseq);
|
||||
cb.insert(~sc);
|
||||
cb.insert(~premise);
|
||||
cb.insert(conseq);
|
||||
clause_ref just = cb.build();
|
||||
SASSERT(just);
|
||||
s.add_clause(*just);
|
||||
|
|
|
@ -103,10 +103,10 @@ namespace polysat {
|
|||
|
||||
clause_builder cb(s);
|
||||
for (auto [w, wv] : a)
|
||||
cb.push(~s.eq(s.var(w), wv));
|
||||
cb.push(~c);
|
||||
cb.push(~c_target);
|
||||
cb.push(c_new);
|
||||
cb.insert(~s.eq(s.var(w), wv));
|
||||
cb.insert(~c);
|
||||
cb.insert(~c_target);
|
||||
cb.insert(c_new);
|
||||
core.add_lemma(cb.build());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -490,9 +490,9 @@ namespace polysat {
|
|||
clause_builder cb(s);
|
||||
auto u = s.var(s.add_var(4));
|
||||
auto v = s.var(s.add_var(4));
|
||||
cb.push(s.eq(u));
|
||||
cb.push(~s.eq(u - 1));
|
||||
cb.push(s.ule(u, v));
|
||||
cb.insert(s.eq(u));
|
||||
cb.insert(~s.eq(u - 1));
|
||||
cb.insert(s.ule(u, v));
|
||||
auto cl = cb.build();
|
||||
simp.apply(*cl);
|
||||
std::cout << *cl << "\n";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue