3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-11 21:50:52 +00:00

add validation to aig_simplifier, start BIG-based masking

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-01-11 20:47:38 -08:00
parent 41a00707e1
commit e0a41a18c3
14 changed files with 741 additions and 167 deletions

View file

@ -257,8 +257,6 @@ struct goal2sat::imp {
m_cache.insert(t, l);
sat::literal * lits = m_result_stack.end() - num;
if (m_aig) m_aig->add_or(l, num, lits);
for (unsigned i = 0; i < num; i++) {
mk_clause(~lits[i], l);
}
@ -267,6 +265,7 @@ struct goal2sat::imp {
// remark: mk_clause may perform destructive updated to lits.
// I have to execute it after the binary mk_clause above.
mk_clause(num+1, lits);
if (m_aig) m_aig->add_or(l, num, lits);
unsigned old_sz = m_result_stack.size() - num - 1;
m_result_stack.shrink(old_sz);
if (sign)
@ -299,7 +298,6 @@ struct goal2sat::imp {
m_cache.insert(t, l);
sat::literal * lits = m_result_stack.end() - num;
if (m_aig) m_aig->add_and(l, num, lits);
// l => /\ lits
for (unsigned i = 0; i < num; i++) {
@ -312,6 +310,7 @@ struct goal2sat::imp {
m_result_stack.push_back(l);
lits = m_result_stack.end() - num - 1;
mk_clause(num+1, lits);
if (m_aig) m_aig->add_and(l, num, lits);
unsigned old_sz = m_result_stack.size() - num - 1;
m_result_stack.shrink(old_sz);
if (sign)