3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 03:15:50 +00:00

some interpolation fixes; make duality a bit more persistent in checking interpolant

This commit is contained in:
Ken McMillan 2014-02-14 14:03:54 -08:00
parent 88ff20a0fb
commit cb3dc63e68
3 changed files with 87 additions and 31 deletions

View file

@ -2703,10 +2703,12 @@ namespace Duality {
const std::vector<expr> &theory = ls->get_axioms();
for(unsigned i = 0; i < theory.size(); i++)
s.add(theory[i]);
if(s.check(lits.size(),&lits[0]) != unsat)
throw "should be unsat";
for(int k = 0; k < 100; k++) // keep trying, maybe MBQI will do something!
if(s.check(lits.size(),&lits[0]) == unsat)
goto is_unsat;
throw "should be unsat";
}
is_unsat:
for(unsigned i = 0; i < conjuncts.size(); ){
std::swap(conjuncts[i],conjuncts.back());
std::swap(lits[i],lits.back());