13#include <zchaff_solver.h>
19 solver->set_variable_number(0);
38 a.var_no() <
solver->variables().size(),
39 "variable number shall be within bounds");
41 switch(
solver->variable(
a.var_no()).value())
43 case 0: result=
tvt(
false);
break;
44 case 1: result=
tvt(
true);
break;
66 for(clausest::const_iterator it=
clauses.begin();
70 reinterpret_cast<int*
>(&((*it)[0])), it->size());
83 std::to_string(
solver->num_variables())+
" variables, "+
84 std::to_string(
solver->clauses().size())+
" clauses";
96 msg=
"SAT checker: instance is UNSATISFIABLE";
100 msg=
"SAT checker: instance is SATISFIABLE";
104 msg=
"SAT checker failed: UNDETERMINED";
108 msg=
"SAT checker failed: Time out";
112 msg=
"SAT checker failed: Out of memory";
116 msg=
"SAT checker failed: ABORTED";
120 msg=
"SAT checker failed: unknown result";
130 for(
unsigned i=1; i<
solver->variables().size(); i++)
132 solver->variables()[i].value() == 0 ||
133 solver->variables()[i].value() == 1,
134 "all variables shall have been assigned");
141 cout <<
"DEBUG L" << i <<
":" << get(i) <<
'\n';
164 unsigned v=
a.var_no();
167 solver->variables()[v].set_value(value);
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
virtual size_t no_variables() const override
mstreamt & statistics() const
mstreamt & status() const
resultt do_prop_solve(const bvt &assumptions) override
virtual ~satcheck_zchaff_baset()
std::string solver_text() const override
void set_assignment(literalt a, bool value) override
satcheck_zchaff_baset(CSolver *_solver)
tvt l_get(literalt a) const override
virtual ~satcheck_zchafft()
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 PRECONDITION(CONDITION)
#define INVARIANT(CONDITION, REASON)
This macro uses the wrapper function 'invariant_violated_string'.