mirror of
https://github.com/Z3Prover/z3
synced 2025-06-26 15:53:41 +00:00
#7630 propagate parameters on lazy tactics
This commit is contained in:
parent
322e4441b3
commit
d581dc1db4
2 changed files with 14 additions and 11 deletions
|
@ -34,22 +34,22 @@ Notes:
|
||||||
#include "tactic/smtlogics/smt_tactic.h"
|
#include "tactic/smtlogics/smt_tactic.h"
|
||||||
|
|
||||||
tactic * mk_default_tactic(ast_manager & m, params_ref const & p) {
|
tactic * mk_default_tactic(ast_manager & m, params_ref const & p) {
|
||||||
tactic * st = using_params(and_then(mk_simplify_tactic(m),
|
tactic * st = using_params(and_then(mk_simplify_tactic(m, p),
|
||||||
cond(mk_and(mk_is_propositional_probe(), mk_not(mk_produce_proofs_probe())),
|
cond(mk_and(mk_is_propositional_probe(), mk_not(mk_produce_proofs_probe())),
|
||||||
mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_fd_tactic(m, p); }),
|
mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_fd_tactic(m, p); }),
|
||||||
cond(mk_is_qfbv_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfbv_tactic(m); }),
|
cond(mk_is_qfbv_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfbv_tactic(m, p); }),
|
||||||
cond(mk_is_qfaufbv_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfaufbv_tactic(m); }),
|
cond(mk_is_qfaufbv_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfaufbv_tactic(m, p); }),
|
||||||
cond(mk_is_qflia_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qflia_tactic(m); }),
|
cond(mk_is_qflia_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qflia_tactic(m, p); }),
|
||||||
cond(mk_is_qfauflia_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfauflia_tactic(m); }),
|
cond(mk_is_qfauflia_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfauflia_tactic(m, p); }),
|
||||||
cond(mk_is_qflra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qflra_tactic(m); }),
|
cond(mk_is_qflra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qflra_tactic(m, p); }),
|
||||||
cond(mk_is_qfnra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfnra_tactic(m); }),
|
cond(mk_is_qfnra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfnra_tactic(m, p); }),
|
||||||
cond(mk_is_qfnia_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfnia_tactic(m); }),
|
cond(mk_is_qfnia_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qfnia_tactic(m, p); }),
|
||||||
cond(mk_is_lira_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_lira_tactic(m, p); }),
|
cond(mk_is_lira_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_lira_tactic(m, p); }),
|
||||||
cond(mk_is_nra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_nra_tactic(m); }),
|
cond(mk_is_nra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_nra_tactic(m, p); }),
|
||||||
cond(mk_is_qffp_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qffp_tactic(m, p); }),
|
cond(mk_is_qffp_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qffp_tactic(m, p); }),
|
||||||
cond(mk_is_qffplra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qffplra_tactic(m, p); }),
|
cond(mk_is_qffplra_probe(), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_qffplra_tactic(m, p); }),
|
||||||
//cond(mk_is_qfufnra_probe(), mk_qfufnra_tactic(m, p),
|
//cond(mk_is_qfufnra_probe(), mk_qfufnra_tactic(m, p),
|
||||||
and_then(mk_preamble_tactic(m), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_smt_tactic(m);}))))))))))))))),
|
and_then(mk_preamble_tactic(m), mk_lazy_tactic(m, p, [&](auto& m, auto const& p) { return mk_smt_tactic(m, p);}))))))))))))))),
|
||||||
p);
|
p);
|
||||||
return st;
|
return st;
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,6 @@ void report_tactic_progress(char const * id, unsigned val) {
|
||||||
IF_VERBOSE(TACTIC_VERBOSITY_LVL, verbose_stream() << "(" << id << " " << val << ")\n");
|
IF_VERBOSE(TACTIC_VERBOSITY_LVL, verbose_stream() << "(" << id << " " << val << ")\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
statistics_report::~statistics_report() {
|
statistics_report::~statistics_report() {
|
||||||
statistics st;
|
statistics st;
|
||||||
if (m_tactic)
|
if (m_tactic)
|
||||||
|
@ -108,6 +107,10 @@ public:
|
||||||
ensure_tactic();
|
ensure_tactic();
|
||||||
(*m_tactic)(in, result);
|
(*m_tactic)(in, result);
|
||||||
}
|
}
|
||||||
|
void updt_params(params_ref const& p) override {
|
||||||
|
this->p.append(p);
|
||||||
|
if (m_tactic) m_tactic->updt_params(p);
|
||||||
|
}
|
||||||
void cleanup() override { if (m_tactic) m_tactic->cleanup(); }
|
void cleanup() override { if (m_tactic) m_tactic->cleanup(); }
|
||||||
char const* name() const override { return "lazy tactic"; }
|
char const* name() const override { return "lazy tactic"; }
|
||||||
void collect_statistics(statistics& st) const override { if (m_tactic) m_tactic->collect_statistics(st); }
|
void collect_statistics(statistics& st) const override { if (m_tactic) m_tactic->collect_statistics(st); }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue