77 "reject out of bound variables");
121 bvt::const_iterator it =
127 log.
status() <<
"got FALSE as assumption: instance is UNSATISFIABLE"
152 log.
status() <<
"SAT checker: solving returned without solution"
155 "solving inside IPASIR SAT solver has been interrupted");
165 INVARIANT(!
a.is_constant(),
"cannot set an assignment for a constant");
166 INVARIANT(
false,
"method not supported");
190 bvt::const_iterator it = std::find_if(bv.begin(), bv.end(),
is_true);
191 const bool has_true = it != bv.end();
virtual void clear()
Reset the abstract state.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Thrown when an unexpected error occurs during the analysis (e.g., when the SAT solver returns an erro...
bool process_clause(const bvt &bv, bvt &dest) const
filter 'true' from clause, eliminate duplicates, recognise trivially satisfied clauses
virtual size_t no_variables() const override
std::unique_ptr< clause_hardness_collectort > solver_hardness
mstreamt & statistics() const
mstreamt & status() const
void set_assumptions(const bvt &_assumptions) override
tvt l_get(literalt a) const override final
This method returns the truth value for a literal of the current SAT model.
resultt do_prop_solve() override
virtual ~satcheck_ipasirt() override
satcheck_ipasirt(message_handlert &message_handler)
void lcnf(const bvt &bv) override final
void set_assignment(literalt a, bool value) override
bool is_in_conflict(literalt a) const override
Returns true if an assumption is in the final conflict.
const std::string solver_text() override
This method returns the description produced by the linked SAT solver.
bool is_false(const literalt &l)
bool is_true(const literalt &l)
std::vector< literalt > bvt
int solver(std::istream &in)
#define INVARIANT(CONDITION, REASON)
This macro uses the wrapper function 'invariant_violated_string'.