mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
added support for named assertions
This commit is contained in:
parent
e1eb3ee8ee
commit
e2f6a65aa2
12 changed files with 62 additions and 319 deletions
|
@ -20,6 +20,7 @@ Notes:
|
|||
|
||||
--*/
|
||||
#include"solver_na2as.h"
|
||||
#include"ast_smt2_pp.h"
|
||||
|
||||
solver_na2as::solver_na2as() {
|
||||
m_manager = 0;
|
||||
|
@ -31,6 +32,9 @@ 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);
|
||||
|
|
|
@ -268,10 +268,15 @@ lbool strategic_solver_core::check_sat_with_assumptions(unsigned num_assumptions
|
|||
}
|
||||
init_inc_solver();
|
||||
m_use_inc_solver_results = true;
|
||||
TRACE("solver_na2as", tout << "invoking inc_solver with " << num_assumptions << " assumptions\n";);
|
||||
return m_inc_solver->check_sat(num_assumptions, assumptions);
|
||||
}
|
||||
|
||||
lbool strategic_solver_core::check_sat_core(unsigned num_assumptions, expr * const * assumptions) {
|
||||
TRACE("solver_na2as", tout << "assumptions at strategic_solver_core:\n";
|
||||
for (unsigned i = 0; i < num_assumptions; i++) {
|
||||
tout << mk_ismt2_pp(assumptions[i], m()) << "\n";
|
||||
});
|
||||
reset_results();
|
||||
m_check_sat_executed = true;
|
||||
if (num_assumptions > 0 || // assumptions were provided
|
||||
|
@ -355,6 +360,7 @@ void strategic_solver_core::set_cancel(bool f) {
|
|||
}
|
||||
|
||||
void strategic_solver_core::get_unsat_core(ptr_vector<expr> & r) {
|
||||
TRACE("solver_na2as", tout << "get_unsat_core, m_use_inc_solver_results: " << m_use_inc_solver_results << "\n";);
|
||||
if (m_use_inc_solver_results) {
|
||||
SASSERT(m_inc_solver);
|
||||
m_inc_solver->get_unsat_core(r);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue