3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

integrating diff opt

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-03-05 16:29:26 -08:00
parent 80ba830091
commit 99b4ce037d
10 changed files with 67 additions and 59 deletions

View file

@ -312,18 +312,17 @@ namespace opt {
mk_simplify_tactic(m));
tactic_ref tac2 = mk_elim01_tactic(m);
tactic_ref tac3 = mk_lia2card_tactic(m);
tactic_ref tac;
opt_params optp(m_params);
if (optp.elim_01()) {
tac = and_then(tac0.get(), tac2.get(), tac3.get());
m_simplify = and_then(tac0.get(), tac2.get(), tac3.get());
}
else {
tac = tac0.get();
m_simplify = tac0.get();
}
proof_converter_ref pc;
expr_dependency_ref core(m);
goal_ref_buffer result;
(*tac)(g, result, m_model_converter, pc, core); // TBD: have this an attribute so we can cancel.
(*m_simplify)(g, result, m_model_converter, pc, core);
SASSERT(result.size() == 1);
goal* r = result[0];
fmls.reset();
@ -708,6 +707,9 @@ namespace opt {
if (m_solver) {
m_solver->set_cancel(f);
}
if (m_simplify) {
m_simplify->set_cancel(f);
}
m_optsmt.set_cancel(f);
map_t::iterator it = m_maxsmts.begin(), end = m_maxsmts.end();
for (; it != end; ++it) {
@ -719,6 +721,9 @@ namespace opt {
if (m_solver) {
m_solver->collect_statistics(stats);
}
if (m_simplify) {
m_simplify->collect_statistics(stats);
}
map_t::iterator it = m_maxsmts.begin(), end = m_maxsmts.end();
for (; it != end; ++it) {
it->m_value->collect_statistics(stats);