3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

fixed bugs found in regression tests

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2012-11-07 07:36:40 -08:00
parent c3a0a29c4f
commit 8d6a091083
3 changed files with 21 additions and 9 deletions

View file

@ -31,15 +31,20 @@ solver_na2as::~solver_na2as() {
}
void solver_na2as::assert_expr(expr * t, expr * a) {
SASSERT(m_manager != 0);
SASSERT(is_uninterp_const(a));
SASSERT(m_manager->is_bool(a));
TRACE("solver_na2as", tout << "asserting\n" << mk_ismt2_pp(t, *m_manager) << "\n" << mk_ismt2_pp(a, *m_manager) << "\n";);
m_manager->inc_ref(a);
m_assumptions.push_back(a);
expr_ref new_t(*m_manager);
new_t = m_manager->mk_implies(a, t);
assert_expr(new_t);
if (a == 0) {
assert_expr(t);
}
else {
SASSERT(m_manager != 0);
SASSERT(is_uninterp_const(a));
SASSERT(m_manager->is_bool(a));
TRACE("solver_na2as", tout << "asserting\n" << mk_ismt2_pp(t, *m_manager) << "\n" << mk_ismt2_pp(a, *m_manager) << "\n";);
m_manager->inc_ref(a);
m_assumptions.push_back(a);
expr_ref new_t(*m_manager);
new_t = m_manager->mk_implies(a, t);
assert_expr(new_t);
}
}
void solver_na2as::init(ast_manager & m, symbol const & logic) {