3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-11 05:30:51 +00:00
This commit is contained in:
Nikolaj Bjorner 2022-02-04 13:08:43 -08:00
parent 913b90f7aa
commit 05e28e4344
3 changed files with 44 additions and 9 deletions

View file

@ -28,6 +28,7 @@ namespace smt {
ptr_vector<enode> m_maps;
ptr_vector<enode> m_consts;
ptr_vector<enode> m_as_arrays;
ptr_vector<enode> m_lambdas;
ptr_vector<enode> m_parent_maps;
};
@ -41,6 +42,7 @@ namespace smt {
static unsigned const m_default_store_fingerprint = UINT_MAX - 113;
static unsigned const m_default_const_fingerprint = UINT_MAX - 115;
static unsigned const m_default_as_array_fingerprint = UINT_MAX - 116;
static unsigned const m_default_lambda_fingerprint = UINT_MAX - 117;
protected:
@ -66,6 +68,7 @@ namespace smt {
void add_map(theory_var v, enode* s);
void add_parent_map(theory_var v, enode* s);
void add_as_array(theory_var v, enode* arr);
void add_lambda(theory_var v, enode* lam);
void add_parent_select(theory_var v, enode * s) override;
void add_parent_default(theory_var v);
@ -76,6 +79,7 @@ namespace smt {
bool instantiate_default_store_axiom(enode* store);
bool instantiate_default_map_axiom(enode* map);
bool instantiate_default_as_array_axiom(enode* arr);
bool instantiate_default_lambda_def_axiom(enode* arr);
bool instantiate_parent_stores_default(theory_var v);
bool has_large_domain(app* array_term);