3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-21 13:23:39 +00:00

Inc sat for ackr.

This commit is contained in:
mikolas 2016-02-29 11:39:52 +00:00 committed by Mikolas Janota
parent ae9f369574
commit 419e2c4899
2 changed files with 11 additions and 2 deletions

View file

@ -47,6 +47,7 @@ public:
: m_m(m) : m_m(m)
, m_p(p) , m_p(p)
, m_use_sat(false) , m_use_sat(false)
, m_inc_use_sat(false)
{} {}
virtual ~qfufbv_ackr_tactic() { } virtual ~qfufbv_ackr_tactic() { }
@ -85,6 +86,7 @@ public:
void updt_params(params_ref const & _p) { void updt_params(params_ref const & _p) {
qfufbv_tactic_params p(_p); qfufbv_tactic_params p(_p);
m_use_sat = p.sat_backend(); m_use_sat = p.sat_backend();
m_inc_use_sat = p.inc_sat_backend();
} }
virtual void collect_statistics(statistics & st) const { virtual void collect_statistics(statistics & st) const {
@ -105,12 +107,18 @@ private:
params_ref m_p; params_ref m_p;
lackr_stats m_st; lackr_stats m_st;
bool m_use_sat; bool m_use_sat;
bool m_inc_use_sat;
solver* setup_sat() { solver* setup_sat() {
solver * sat(NULL); solver * sat(NULL);
if (m_use_sat) { if (m_use_sat) {
tactic_ref t = mk_qfbv_tactic(m_m, m_p); if (m_inc_use_sat) {
sat = mk_tactic2solver(m_m, t.get(), m_p); sat = mk_inc_sat_solver(m_m, m_p);
}
else {
tactic_ref t = mk_qfbv_tactic(m_m, m_p);
sat = mk_tactic2solver(m_m, t.get(), m_p);
}
} }
else { else {
tactic_ref t = mk_qfaufbv_tactic(m_m, m_p); tactic_ref t = mk_qfaufbv_tactic(m_m, m_p);

View file

@ -4,5 +4,6 @@ def_module_params('ackermannization',
export=True, export=True,
params=( params=(
('sat_backend', BOOL, False, 'use SAT rather than SMT in qfufbv_ackr_tactic'), ('sat_backend', BOOL, False, 'use SAT rather than SMT in qfufbv_ackr_tactic'),
('inc_sat_backend', BOOL, False, 'use incremental SAT'),
)) ))