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:
parent
bf4edef761
commit
520ce9a5ee
139 changed files with 2243 additions and 1506 deletions
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue