mirror of
https://github.com/Z3Prover/z3
synced 2025-06-04 13:21:22 +00:00
expose strategic solver factory prototype at level of solver module
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
1ae0a98132
commit
fc41a61b6e
3 changed files with 9 additions and 2 deletions
|
@ -53,7 +53,11 @@ proof_ref ground_sat_answer_op::operator()(pred_transformer &query) {
|
||||||
// -- turn on proof mode so that proof constructing API in ast_manager work correctly
|
// -- turn on proof mode so that proof constructing API in ast_manager work correctly
|
||||||
scoped_proof _pf(m);
|
scoped_proof _pf(m);
|
||||||
|
|
||||||
m_solver = mk_smt_solver(m, params_ref::get_empty(), symbol::null);
|
scoped_ptr<solver_factory> factory(mk_smt_strategic_solver_factory(symbol::null));
|
||||||
|
m_solver = (*factory)(m, params_ref::get_empty(),
|
||||||
|
m.proofs_enabled() /*proofs*/, true /*models*/, false /*unsat_core*/, symbol::null /*logic*/);
|
||||||
|
|
||||||
|
// m_solver = mk_smt_solver(m, params_ref::get_empty(), symbol::null);
|
||||||
vector<frame> todo, new_todo;
|
vector<frame> todo, new_todo;
|
||||||
|
|
||||||
// -- find substitution for a query if query is not nullary
|
// -- find substitution for a query if query is not nullary
|
||||||
|
@ -100,6 +104,7 @@ proof_ref ground_sat_answer_op::operator()(pred_transformer &query) {
|
||||||
todo.pop_back();
|
todo.pop_back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
m_solver.reset();
|
||||||
return proof_ref(m_cache.find(root_fact), m);
|
return proof_ref(m_cache.find(root_fact), m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,8 @@ public:
|
||||||
virtual solver * operator()(ast_manager & m, params_ref const & p, bool proofs_enabled, bool models_enabled, bool unsat_core_enabled, symbol const & logic) = 0;
|
virtual solver * operator()(ast_manager & m, params_ref const & p, bool proofs_enabled, bool models_enabled, bool unsat_core_enabled, symbol const & logic) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
solver_factory * mk_smt_strategic_solver_factory(symbol const & logic = symbol::null);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Abstract interface for making solvers available in the Z3
|
\brief Abstract interface for making solvers available in the Z3
|
||||||
API and front-ends such as SMT 2.0 and (legacy) SMT 1.0.
|
API and front-ends such as SMT 2.0 and (legacy) SMT 1.0.
|
||||||
|
|
|
@ -22,6 +22,6 @@ Notes:
|
||||||
|
|
||||||
class solver_factory;
|
class solver_factory;
|
||||||
|
|
||||||
solver_factory * mk_smt_strategic_solver_factory(symbol const & logic = symbol::null);
|
// solver_factory * mk_smt_strategic_solver_factory(symbol const & logic = symbol::null);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue