3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-15 18:36:16 +00:00

optimize var_subst

This commit is contained in:
Nikolaj Bjorner 2024-10-03 18:14:47 -07:00
parent f5db6bf92b
commit a98c925069
3 changed files with 23 additions and 6 deletions

View file

@ -33,6 +33,7 @@ Notes:
#include "ast/datatype_decl_plugin.h"
#include "ast/recfun_decl_plugin.h"
#include "ast/rewriter/seq_rewriter.h"
#include "ast/rewriter/var_subst.h"
#include "ast/converters/generic_model_converter.h"
#include "solver/solver.h"
#include "solver/check_logic.h"
@ -280,6 +281,7 @@ protected:
ptr_vector<expr> m_assertions;
std::vector<std::string> m_assertion_strings;
ptr_vector<expr> m_assertion_names; // named assertions are represented using boolean variables.
scoped_ptr<var_subst> m_std_subst, m_rev_subst;
struct scope {
unsigned m_func_decls_stack_lim;
@ -317,6 +319,9 @@ protected:
scoped_ptr<pp_env> m_pp_env;
pp_env & get_pp_env() const;
var_subst& std_subst() { if (!m_std_subst) m_std_subst = alloc(var_subst, m(), true); return *m_std_subst; }
var_subst& rev_subst() { if (!m_rev_subst) m_rev_subst = alloc(var_subst, m(), false); return *m_rev_subst; }
void register_builtin_sorts(decl_plugin * p);
void register_builtin_ops(decl_plugin * p);
void load_plugin(symbol const & name, bool install_names, svector<family_id>& fids);