3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-07 18:05:21 +00:00
throttle on upwards propagation of default was too restrictive
This commit is contained in:
Nikolaj Bjorner 2022-10-20 17:48:17 -07:00
parent 6d6752b2aa
commit c1b355f342
2 changed files with 6 additions and 3 deletions

View file

@ -625,6 +625,10 @@ namespace array {
return change;
}
/**
* For every occurrence of as-array(f) and every occurrence of f(t)
* add equality select(as-array(f), t) = f(t)
*/
bool solver::add_as_array_eqs(euf::enode* n) {
func_decl* f = nullptr;
bool change = false;

View file

@ -216,8 +216,7 @@ namespace array {
d.m_has_default = true;
for (euf::enode* lambda : d.m_lambdas)
push_axiom(default_axiom(lambda));
if (should_prop_upward(d))
propagate_parent_default(v);
propagate_parent_default(v);
}
void solver::propagate_select_axioms(var_data const& d, euf::enode* lambda) {
@ -255,7 +254,7 @@ namespace array {
return;
ctx.push(reset_flag_trail(d.m_prop_upward));
d.m_prop_upward = true;
if (should_prop_upward(d))
if (should_prop_upward(d))
propagate_parent_select_axioms(v);
set_prop_upward(d);
}