3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-08 00:05:46 +00:00

add catch for cancellation intermixed with return value l_true. To address regressions in QF_LIA tests

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-09-29 16:50:59 -07:00
parent 77c423b9aa
commit 5d71190468
6 changed files with 97 additions and 48 deletions

View file

@ -1259,6 +1259,41 @@ tactic * using_params(tactic * t, params_ref const & p) {
return alloc(using_params_tactical, t, p);
}
class annotate_tactical : public unary_tactical {
std::string m_name;
struct scope {
std::string m_name;
scope(std::string const& name) : m_name(name) {
IF_VERBOSE(TACTIC_VERBOSITY_LVL, verbose_stream() << "(" << m_name << " start)\n";);
}
~scope() {
IF_VERBOSE(TACTIC_VERBOSITY_LVL, verbose_stream() << "(" << m_name << " done)\n";);
}
};
public:
annotate_tactical(char const* name, tactic* t):
unary_tactical(t), m_name(name) {}
virtual void operator()(goal_ref const & in,
goal_ref_buffer & result,
model_converter_ref & mc,
proof_converter_ref & pc,
expr_dependency_ref & core) {
scope _scope(m_name);
m_t->operator()(in, result, mc, pc, core);
}
virtual tactic * translate(ast_manager & m) {
tactic * new_t = m_t->translate(m);
return alloc(annotate_tactical, m_name.c_str(), new_t);
}
};
tactic * annotate_tactic(char const* name, tactic * t) {
return alloc(annotate_tactical, name, t);
}
class cond_tactical : public binary_tactical {
probe * m_p;
public: