mirror of
https://github.com/Z3Prover/z3
synced 2025-08-23 11:37:54 +00:00
port equality propagation changes to new core
This commit is contained in:
parent
0432311b11
commit
974ef3c147
5 changed files with 57 additions and 9 deletions
|
@ -310,7 +310,7 @@ namespace arith {
|
|||
void assert_idiv_mod_axioms(theory_var u, theory_var v, theory_var w, rational const& r);
|
||||
api_bound* mk_var_bound(sat::literal lit, theory_var v, lp_api::bound_kind bk, rational const& bound);
|
||||
lp::lconstraint_kind bound2constraint_kind(bool is_int, lp_api::bound_kind bk, bool is_true);
|
||||
void fixed_var_eh(theory_var v1, rational const& bound) {}
|
||||
void fixed_var_eh(theory_var v1, lp::constraint_index ci1, lp::constraint_index ci2, rational const& bound);
|
||||
bool set_upper_bound(lp::tv t, lp::constraint_index ci, rational const& v) { return set_bound(t, ci, v, false); }
|
||||
bool set_lower_bound(lp::tv t, lp::constraint_index ci, rational const& v) { return set_bound(t, ci, v, true); }
|
||||
bool set_bound(lp::tv tv, lp::constraint_index ci, rational const& v, bool is_lower);
|
||||
|
@ -324,6 +324,11 @@ namespace arith {
|
|||
return is_registered_var(v) && m_model_is_initialized;
|
||||
}
|
||||
|
||||
vector<rational> m_fixed_values;
|
||||
map<rational, theory_var, rational::hash_proc, rational::eq_proc> m_value2var;
|
||||
struct undo_value;
|
||||
void register_fixed_var(theory_var v, rational const& value);
|
||||
|
||||
// solving
|
||||
void report_equality_of_fixed_vars(unsigned vi1, unsigned vi2);
|
||||
void reserve_bounds(theory_var v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue