22#error "Expected HAVE_LINGELING"
80 for(
const auto &
literal : assumptions)
89 msg=
"SAT checker: instance is SATISFIABLE";
97 msg=
"SAT checker: instance is UNSATISFIABLE";
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
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
mstreamt & statistics() const
mstreamt & status() const
void lcnf(const bvt &bv) override
tvt l_get(literalt a) const override
resultt do_prop_solve(const bvt &assumptions) override
virtual ~satcheck_lingelingt()
void set_assignment(literalt a, bool value) override
std::string solver_text() const override
void set_frozen(literalt a) override
bool is_in_conflict(literalt a) const override
Returns true if an assumed literal is in conflict if the formula is UNSAT.
std::vector< literalt > bvt
void solver(std::vector< framet > &frames, const std::unordered_set< symbol_exprt, irep_hash > &address_taken, const solver_optionst &solver_options, const namespacet &ns, std::vector< propertyt > &properties, std::size_t property_index)
#define CHECK_RETURN(CONDITION)
#define UNREACHABLE
This should be used to mark dead code.
#define PRECONDITION(CONDITION)
#define INVARIANT(CONDITION, REASON)
This macro uses the wrapper function 'invariant_violated_string'.