mirror of
https://github.com/Z3Prover/z3
synced 2025-05-11 09:44:43 +00:00
delay internalize (#4714)
* adding array solver Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * use default in model construction Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * debug delay internalization Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * bv Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * get rid of implied values and bounds Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * redo egraph * remove out Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * remove files Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
25724401cf
commit
367e5fdd52
60 changed files with 1343 additions and 924 deletions
|
@ -4618,47 +4618,6 @@ namespace smt {
|
|||
TRACE("model", tout << *m_model << "\n";);
|
||||
}
|
||||
|
||||
expr_ref context::get_implied_value(expr* e) {
|
||||
pop_to_search_lvl();
|
||||
if (m.is_bool(e)) {
|
||||
if (b_internalized(e)) {
|
||||
switch (get_assignment(get_bool_var(e))) {
|
||||
case l_true: e = m.mk_true(); break;
|
||||
case l_false: e = m.mk_false(); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return expr_ref(e, m);
|
||||
}
|
||||
|
||||
if (e_internalized(e)) {
|
||||
enode* n = get_enode(e);
|
||||
for (enode* r : *n) {
|
||||
if (m.is_value(r->get_owner())) {
|
||||
return expr_ref(r->get_owner(), m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
arith_value av(m);
|
||||
av.init(this);
|
||||
return av.get_fixed(e);
|
||||
}
|
||||
|
||||
expr_ref context::get_implied_lower_bound(expr* e) {
|
||||
pop_to_search_lvl();
|
||||
arith_value av(m);
|
||||
av.init(this);
|
||||
return av.get_lo(e);
|
||||
}
|
||||
|
||||
expr_ref context::get_implied_upper_bound(expr* e) {
|
||||
pop_to_search_lvl();
|
||||
arith_value av(m);
|
||||
av.init(this);
|
||||
return av.get_up(e);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue