3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-11 05:30:51 +00:00

towards closing small domain equality enforcement gap #4515

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-07-07 21:03:22 -07:00
parent 3776588375
commit 9bcda408ba
4 changed files with 65 additions and 46 deletions

View file

@ -34,9 +34,8 @@ namespace smt {
ptr_vector<var_data_full> m_var_data_full;
ast2ast_trailmap<sort,app> m_sort2epsilon;
obj_pair_map<expr,expr,bool> m_eqs;
svector<literal> m_eqsv;
ast2ast_trailmap<sort, app> m_sort2epsilon0, m_sort2epsilon1;
obj_pair_map<expr, expr, bool> m_eqs;
static unsigned const m_default_map_fingerprint = UINT_MAX - 112;
static unsigned const m_default_store_fingerprint = UINT_MAX - 113;
@ -80,7 +79,8 @@ namespace smt {
bool instantiate_parent_stores_default(theory_var v);
bool has_large_domain(app* array_term);
app* mk_epsilon(sort* s);
bool has_unitary_domain(app* array_term);
std::pair<app*,app*> mk_epsilon(sort* s);
bool instantiate_select_const_axiom(enode* select, enode* cnst);
bool instantiate_select_as_array_axiom(enode* select, enode* arr);