diff --git a/src/tactic/nlsat_smt/nl_purify_tactic.cpp b/src/tactic/nlsat_smt/nl_purify_tactic.cpp index ec150453d..91c462486 100644 --- a/src/tactic/nlsat_smt/nl_purify_tactic.cpp +++ b/src/tactic/nlsat_smt/nl_purify_tactic.cpp @@ -656,13 +656,12 @@ public: } virtual void set_cancel(bool f) { + m_nl_tac->set_cancel(f); if (f) { - m_nl_tac->cancel(); m_solver->cancel(); } else { m_solver->reset_cancel(); - m_nl_tac->reset_cancel(); } m_cancel = f; } diff --git a/src/tactic/tactic.h b/src/tactic/tactic.h index 8b4f9f576..cab93f1ea 100644 --- a/src/tactic/tactic.h +++ b/src/tactic/tactic.h @@ -95,10 +95,11 @@ public: // translate tactic to the given manager virtual tactic * translate(ast_manager & m) = 0; -private: +protected: friend class nary_tactical; friend class binary_tactical; friend class unary_tactical; + friend class nl_purify_tactic; virtual void set_cancel(bool f) {}