3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-06 09:51:09 +00:00

integrate lambda expressions

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-06-26 07:23:04 -07:00
parent bf4edef761
commit 520ce9a5ee
139 changed files with 2243 additions and 1506 deletions

View file

@ -1044,7 +1044,7 @@ namespace datalog {
quantifier* q = to_quantifier(body);
expr* e = q->get_expr();
if (m.is_implies(e, body, e2)) {
fml = m.mk_quantifier(false, q->get_num_decls(),
fml = m.mk_quantifier(exists_k, q->get_num_decls(),
q->get_decl_sorts(), q->get_decl_names(),
body);
}
@ -1251,13 +1251,10 @@ namespace datalog {
obj_map<sort, unsigned> max_vars;
for (unsigned i = 0; i < rules.size(); ++i) {
expr* r = rules[i].get();
if (!is_quantifier(r)) {
if (!is_forall(r)) {
continue;
}
quantifier* q = to_quantifier(r);
if (!q->is_forall()) {
continue;
}
if (has_quantifiers(q->get_expr())) {
continue;
}
@ -1292,7 +1289,7 @@ namespace datalog {
subst.push_back(fresh_vars[vars[max_var]].get());
}
vsubst(q->get_expr(), subst.size(), subst.c_ptr(), res);
res = vsubst(q->get_expr(), subst.size(), subst.c_ptr());
rules[i] = res.get();
}
}