3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-12 06:00:53 +00:00

expand deep stores by lambdas to avoid expanding select/store axioms

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-11-03 10:28:58 +01:00
parent d866a93627
commit a78f899225
5 changed files with 116 additions and 36 deletions

View file

@ -33,6 +33,7 @@ class array_rewriter {
bool m_expand_select_store;
bool m_expand_store_eq;
bool m_expand_select_ite;
bool m_expand_nested_stores;
template<bool CHECK_DISEQ>
lbool compare_args(unsigned num_args, expr * const * args1, expr * const * args2);
void mk_eq(expr* e, expr* lhs, expr* rhs, expr_ref_vector& fmls);
@ -41,6 +42,9 @@ class array_rewriter {
bool add_store(expr_ref_vector& args, unsigned num_idxs, expr* e, expr* store_val, vector<expr_ref_vector>& stores);
bool is_expandable_store(expr* s);
expr_ref expand_store(expr* s);
public:
array_rewriter(ast_manager & m, params_ref const & p = params_ref()):
m_util(m) {