3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-30 04:15:51 +00:00
ensure unknown when a lambda is not in beta redex
This commit is contained in:
Nikolaj Bjorner 2022-09-19 03:19:47 -07:00
parent fce4d2ad90
commit f4bea58852
4 changed files with 18 additions and 1 deletions

View file

@ -700,6 +700,18 @@ namespace array {
n->unmark1();
}
bool solver::check_lambdas() {
unsigned num_vars = get_num_vars();
for (unsigned i = 0; i < num_vars; i++) {
auto* n = var2enode(i);
if (a.is_as_array(n->get_expr()) || is_lambda(n->get_expr()))
for (euf::enode* p : euf::enode_parents(n))
if (!ctx.is_beta_redex(p, n))
return false;
}
return true;
}
bool solver::is_shared_arg(euf::enode* r) {
SASSERT(r->is_root());
for (euf::enode* n : euf::enode_parents(r)) {