3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-17 10:33:48 +00:00

fixed some bugs with quantifiers in rule bodies

This commit is contained in:
Ken McMillan 2013-06-17 18:04:23 -07:00
parent a78564145b
commit 64acd9cac0
3 changed files with 38 additions and 2 deletions

View file

@ -217,8 +217,12 @@ namespace Duality {
}
else if (t.is_quantifier())
{
std::vector<expr> pats;
t.get_patterns(pats);
for(unsigned i = 0; i < pats.size(); i++)
pats[i] = LocalizeRec(e,memo,pats[i]);
Term body = LocalizeRec(e,memo,t.body());
res = CloneQuantifier(t,body);
res = clone_quantifier(t, body, pats);
}
else res = t;
return res;
@ -1853,7 +1857,11 @@ namespace Duality {
}
else if (t.is_quantifier()){
int bound = t.get_quantifier_num_bound();
res = CloneQuantifier(t,SubstBoundRec(memo, subst, level + bound, t.body()));
std::vector<expr> pats;
t.get_patterns(pats);
for(unsigned i = 0; i < pats.size(); i++)
pats[i] = SubstBoundRec(memo, subst, level + bound, pats[i]);
res = clone_quantifier(t, SubstBoundRec(memo, subst, level + bound, t.body()), pats);
}
else if (t.is_var()) {
int idx = t.get_index_value();