mirror of
https://github.com/Z3Prover/z3
synced 2025-10-01 21:49:29 +00:00
fix case for 0 multiplier in monomial_bounds
disabled in master - it violates invariants in the lra solver.
This commit is contained in:
parent
50654f1f46
commit
ab8fe199c5
6 changed files with 38 additions and 22 deletions
|
@ -1378,12 +1378,12 @@ namespace smt {
|
|||
clause * context::mk_clause(unsigned num_lits, literal * lits, justification * j, clause_kind k, clause_del_eh * del_eh) {
|
||||
TRACE("mk_clause", display_literals_verbose(tout << "creating clause: " << literal_vector(num_lits, lits) << "\n", num_lits, lits) << "\n";);
|
||||
m_clause_proof.add(num_lits, lits, k, j);
|
||||
literal_buffer simp_lits;
|
||||
switch (k) {
|
||||
case CLS_TH_AXIOM:
|
||||
dump_axiom(num_lits, lits);
|
||||
Z3_fallthrough;
|
||||
case CLS_AUX: {
|
||||
literal_buffer simp_lits;
|
||||
if (m_searching)
|
||||
dump_lemma(num_lits, lits);
|
||||
if (!simplify_aux_clause_literals(num_lits, lits, simp_lits)) {
|
||||
|
@ -1451,7 +1451,7 @@ namespace smt {
|
|||
else if (get_assignment(l2) == l_false) {
|
||||
assign(l1, b_justification(~l2));
|
||||
}
|
||||
m_clause_proof.add(l1, l2, k, j);
|
||||
m_clause_proof.add(l1, l2, k, j, &simp_lits);
|
||||
m_stats.m_num_mk_bin_clause++;
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -1464,7 +1464,7 @@ namespace smt {
|
|||
bool reinit = save_atoms;
|
||||
SASSERT(!lemma || j == 0 || !j->in_region());
|
||||
clause * cls = clause::mk(m, num_lits, lits, k, j, del_eh, save_atoms, m_bool_var2expr.data());
|
||||
m_clause_proof.add(*cls);
|
||||
m_clause_proof.add(*cls, &simp_lits);
|
||||
if (lemma) {
|
||||
cls->set_activity(activity);
|
||||
if (k == CLS_LEARNED) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue