mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 11:55:51 +00:00
#6364 - remove option of redundant clauses from internalization
gc-ing definitions leads to unsoundness when they are not replayed. Instead of attempting to replay definitions theory internalization is irredundant by default. This is also the old solver behavior where TH_LEMMA is essentially never used, but is valid for top-level theory lemmas.
This commit is contained in:
parent
c8e1e180ea
commit
5c7eaec566
29 changed files with 133 additions and 147 deletions
|
@ -238,12 +238,12 @@ namespace euf {
|
|||
|
||||
sat::status solver::mk_tseitin_status(unsigned n, sat::literal const* lits) {
|
||||
th_proof_hint* ph = use_drat() ? mk_smt_hint(symbol("tseitin"), n, lits) : nullptr;
|
||||
return sat::status::th(m_is_redundant, m.get_basic_family_id(), ph);
|
||||
return sat::status::th(false, m.get_basic_family_id(), ph);
|
||||
}
|
||||
|
||||
sat::status solver::mk_distinct_status(unsigned n, sat::literal const* lits) {
|
||||
th_proof_hint* ph = use_drat() ? mk_smt_hint(symbol("alldiff"), n, lits) : nullptr;
|
||||
return sat::status::th(m_is_redundant, m.get_basic_family_id(), ph);
|
||||
return sat::status::th(false, m.get_basic_family_id(), ph);
|
||||
}
|
||||
|
||||
expr* smt_proof_hint::get_hint(euf::solver& s) const {
|
||||
|
@ -294,7 +294,7 @@ namespace euf {
|
|||
lits.push_back(jst.lit_consequent());
|
||||
if (jst.eq_consequent().first != nullptr)
|
||||
lits.push_back(add_lit(jst.eq_consequent()));
|
||||
get_drat().add(lits, sat::status::th(m_is_redundant, jst.ext().get_id(), jst.get_pragma()));
|
||||
get_drat().add(lits, sat::status::th(false, jst.ext().get_id(), jst.get_pragma()));
|
||||
for (unsigned i = s().num_vars(); i < nv; ++i)
|
||||
set_tmp_bool_var(i, nullptr);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue