3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-18 22:54:21 +00:00

add py_value to selected classes in python bindings, add mode for input-assertion based lookahead solving

This commit is contained in:
Nikolaj Bjorner 2025-01-04 13:40:49 -08:00
parent 7e4681d836
commit 05f166f736
18 changed files with 374 additions and 184 deletions

View file

@ -111,7 +111,7 @@ namespace sls {
return;
if (are_distinct(nsel, nmap)) {
expr_ref eq(m.mk_eq(nmap->get_expr(), nsel->get_expr()), m);
ctx.add_clause(eq);
ctx.add_theory_axiom(eq);
}
else {
g.merge(nmap, nsel, nullptr);
@ -192,7 +192,7 @@ namespace sls {
auto nsel = mk_select(g, cn, sel);
if (are_distinct(nsel, sel)) {
expr_ref eq(m.mk_eq(val->get_expr(), nsel->get_expr()), m);
ctx.add_clause(eq);
ctx.add_theory_axiom(eq);
}
else {
g.merge(nsel, sel, nullptr);
@ -227,7 +227,7 @@ namespace sls {
expr_ref sel(a.mk_select(args), m);
expr_ref eq(m.mk_eq(sel, to_app(sto)->get_arg(sto->get_num_args() - 1)), m);
IF_VERBOSE(3, verbose_stream() << "add store axiom 1 " << mk_bounded_pp(sto, m) << "\n");
ctx.add_clause(eq);
ctx.add_theory_axiom(eq);
}
void array_plugin::add_store_axiom2(app* sto, app* sel) {
@ -248,7 +248,7 @@ namespace sls {
for (unsigned i = 1; i < sel->get_num_args() - 1; ++i)
ors.push_back(m.mk_eq(sel->get_arg(i), sto->get_arg(i)));
IF_VERBOSE(3, verbose_stream() << "add store axiom 2 " << mk_bounded_pp(sto, m) << " " << mk_bounded_pp(sel, m) << "\n");
ctx.add_clause(m.mk_or(ors));
ctx.add_theory_axiom(m.mk_or(ors));
}
void array_plugin::init_egraph(euf::egraph& g) {