3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 13:28:47 +00:00

avoid qsat when formulas are quantifier-free. Go directly to SMT

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-06-03 10:13:16 -07:00
parent c20b391cf7
commit 219b47822b
3 changed files with 8 additions and 2 deletions

View file

@ -889,6 +889,7 @@ namespace pdr {
void model_node::dequeue(model_node*& root) { void model_node::dequeue(model_node*& root) {
TRACE("pdr", tout << this << " " << state() << "\n";); TRACE("pdr", tout << this << " " << state() << "\n";);
root = 0;
if (!m_next && !m_prev) return; if (!m_next && !m_prev) return;
SASSERT(m_next); SASSERT(m_next);
SASSERT(m_prev); SASSERT(m_prev);

View file

@ -87,6 +87,9 @@ namespace pdr {
void set_subset_based_core(bool f) { m_subset_based_core = f; } void set_subset_based_core(bool f) { m_subset_based_core = f; }
void set_consequences(expr_ref_vector* consequences) { m_consequences = consequences; } void set_consequences(expr_ref_vector* consequences) { m_consequences = consequences; }
void set_background_assumptions(expr_ref_vector const& assumptions);
bool assumes_level() const { return m_assumes_level; } bool assumes_level() const { return m_assumes_level; }
void add_level(); void add_level();

View file

@ -114,8 +114,10 @@ tactic * mk_lra_tactic(ast_manager & m, params_ref const & p) {
#else #else
tactic * st = and_then(mk_quant_preprocessor(m), tactic * st = and_then(mk_quant_preprocessor(m),
mk_qe_lite_tactic(m, p), mk_qe_lite_tactic(m, p),
or_else(mk_qsat_tactic(m, p), cond(mk_has_quantifier_probe(),
and_then(mk_qe_tactic(m), mk_smt_tactic()))); or_else(mk_qsat_tactic(m, p),
and_then(mk_qe_tactic(m), mk_smt_tactic())),
mk_smt_tactic()));
#endif #endif
st->updt_params(p); st->updt_params(p);
return st; return st;