3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-25 04:26:00 +00:00

update to use incremental substitution

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2022-01-23 03:00:25 +01:00
parent 6f689c3c1f
commit cbbf1381f7
19 changed files with 167 additions and 89 deletions

View file

@ -69,20 +69,20 @@ namespace polysat {
friend class forbidden_intervals;
friend class linear_solver;
friend class viable;
friend class viable2;
friend class search_state;
friend class assignment_pp;
friend class assignments_pp;
friend class ex_polynomial_superposition;
friend class inf_saturate;
friend class inf_saturate;
friend class constraint_manager;
friend class scoped_solverv;
friend class scoped_solverv;
friend class test_polysat;
friend class test_fi;
reslimit& m_lim;
params_ref m_params;
scoped_ptr_vector<dd::pdd_manager> m_pdd;
mutable scoped_ptr_vector<dd::pdd_manager> m_pdd;
viable m_viable; // viable sets per variable
linear_solver m_linear_solver;
conflict m_conflict;
@ -115,6 +115,7 @@ namespace polysat {
search_state m_search;
assignment_t const& assignment() const { return m_search.assignment(); }
pdd subst(pdd const& p) const;
unsigned m_qhead = 0; // next item to propagate (index into m_search)
unsigned m_level = 0;
@ -145,7 +146,7 @@ namespace polysat {
void del_var();
dd::pdd_manager& sz2pdd(unsigned sz);
dd::pdd_manager& sz2pdd(unsigned sz) const;
dd::pdd_manager& var2pdd(pvar v);
void push_level();