3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +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

@ -147,7 +147,7 @@ static void parse_fml(char const* str, app_ref_vector& vars, expr_ref& fml) {
}
fml = q->get_expr();
var_subst vs(m, true);
vs(fml, vars.size(), (expr*const*)vars.c_ptr(), fml);
fml = vs(fml, vars.size(), (expr*const*)vars.c_ptr());
}
}

View file

@ -50,8 +50,7 @@ void tst_instantiate(ast_manager & m, expr * f) {
expr_ref_vector cnsts(m);
for (unsigned i = 0; i < q->get_num_decls(); i++)
cnsts.push_back(m.mk_fresh_const("a", q->get_decl_sort(i)));
expr_ref r(m);
instantiate(m, q, cnsts.c_ptr(), r);
expr_ref r = instantiate(m, q, cnsts.c_ptr());
TRACE("var_subst", tout << "quantifier:\n" << mk_pp(q, m) << "\nresult:\n" << mk_pp(r, m) << "\n";);
}
}
@ -83,7 +82,7 @@ void tst_subst(ast_manager& m) {
sub1.push_back(x);
sub1.push_back(y);
// replace #1 -> #2, #2 -> #1
subst(e2, 2, sub1.c_ptr(), e3);
e3 = subst(e2, 2, sub1.c_ptr());
std::cout << mk_pp(e2, m) << "\n";
std::cout << mk_pp(e3, m) << "\n";
std::cout << mk_pp(t1, m) << "\n";
@ -91,7 +90,7 @@ void tst_subst(ast_manager& m) {
// replace #2 -> #3, #3 -> #2
e2 = m.mk_forall(2, ss, names, e1);
subst(e2, 2, sub1.c_ptr(), e3);
e3 = subst(e2, 2, sub1.c_ptr());
std::cout << mk_pp(e2, m) << "\n";
std::cout << mk_pp(e3, m) << "\n";
std::cout << mk_pp(t2, m) << "\n";