Go to the documentation of this file.
14 :
bv_pointerst(*info.ns, *info.prop, *info.message_handler),
44 xmlt xml(
"refinement-iteration");
55 log.
status() <<
"BV-Refinement: got SAT, and it simulates => SAT"
61 log.
status() <<
"BV-Refinement: got SAT, and it is spurious, refining"
70 <<
"BV-Refinement: got UNSAT, and the proof passes => UNSAT"
77 <<
"BV-Refinement: got UNSAT, and the proof fails, refining"
90 std::vector<exprt> assumptions;
96 approximation.over_assumptions.begin(),
97 approximation.over_assumptions.end());
100 approximation.under_assumptions.begin(),
101 approximation.under_assumptions.end());
#define UNREACHABLE
This should be used to mark dead code.
void finish_eager_conversion() override
virtual bool has_is_in_conflict() const
virtual const std::string solver_text()=0
mstreamt & status() const
void arrays_overapproximated()
check whether counterexample is spurious
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
bv_refinementt(const infot &info)
virtual bool has_set_assumptions() const
std::list< approximationt > approximations
decision_proceduret::resultt dec_solve() override
Run the decision procedure to solve the problem.
xmlt xml(const irep_idt &property_id, const property_infot &property_info)
#define PRECONDITION(CONDITION)
resultt
Result of running the decision procedure.
void get_values(approximationt &approximation)
virtual bool has_set_to() const
void push() override
Push a new context on the stack This context becomes a child context nested in the current context.
void pop() override
Pop whatever is on top of the stack.