3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-02 16:20:41 +00:00

Moved pool_solvers from spacer::manager into spacer::context

This commit is contained in:
Arie Gurfinkel 2018-05-31 14:48:01 -07:00
parent 451d42319b
commit 0b387cd7eb
6 changed files with 94 additions and 96 deletions

View file

@ -290,7 +290,7 @@ class pred_transformer {
func_decl_ref_vector m_sig; // signature
ptr_vector<pred_transformer> m_use; // places where 'this' is referenced.
ptr_vector<datalog::rule> m_rules; // rules used to derive transformer
prop_solver m_solver; // solver context
scoped_ptr<prop_solver> m_solver; // solver context
ref<solver> m_reach_solver; // context for reachability facts
pobs m_pobs; // proof obligations created so far
frames m_frames; // frames with lemmas
@ -796,6 +796,13 @@ class context {
ast_manager& m;
datalog::context* m_context;
manager m_pm;
// three solver pools for different queries
scoped_ptr<solver_pool> m_pool0;
scoped_ptr<solver_pool> m_pool1;
scoped_ptr<solver_pool> m_pool2;
decl2rel m_rels; // Map from relation predicate to fp-operator.
func_decl_ref m_query_pred;
pred_transformer* m_query;
@ -928,6 +935,13 @@ public:
void new_pob_eh(pob *p);
bool is_inductive();
// three different solvers with three different sets of parameters
// different solvers are used for different types of queries in spacer
solver* mk_solver0() {return m_pool0->mk_solver();}
solver* mk_solver1() {return m_pool1->mk_solver();}
solver* mk_solver2() {return m_pool2->mk_solver();}
};
inline bool pred_transformer::use_native_mbp () {return ctx.use_native_mbp ();}