3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-11 15:50:29 +00:00

some duality fixes

This commit is contained in:
Ken McMillan 2013-08-16 18:38:24 -07:00
parent d8b31773b8
commit 07bb534d65
9 changed files with 2461 additions and 20 deletions

View file

@ -1636,7 +1636,8 @@ namespace Duality {
dont_cares.insert(b);
resolve_ite_memo.clear();
timer_start("UnderapproxFormula");
Term eu = UnderapproxFormula(root->Outgoing->dual,dont_cares);
Term dual = root->Outgoing->dual.null() ? ctx.bool_val(true) : root->Outgoing->dual;
Term eu = UnderapproxFormula(dual,dont_cares);
timer_stop("UnderapproxFormula");
/* combine with children */
chu.push_back(eu);
@ -1944,6 +1945,8 @@ namespace Duality {
for(unsigned i = 0; i < clauses.size(); i++){
Term &clause = clauses[i];
if(clause.is_app() && clause.decl().get_decl_kind() == Uninterpreted)
clause = implies(ctx.bool_val(true),clause);
if(!canonical_clause(clause))
clause = implies((!clause).simplify(),ctx.bool_val(false));
Term head = clause.arg(1);