21 #ifndef Minisat_SimpSolver_h
22 #define Minisat_SimpSolver_h
65 bool solve (
const vec<Lit>& assumps,
bool do_simp =
true,
bool turn_off_simp =
false);
67 bool solve (
bool do_simp =
true,
bool turn_off_simp =
false);
68 bool solve (
Lit p ,
bool do_simp =
true,
bool turn_off_simp =
false);
69 bool solve (
Lit p,
Lit q,
bool do_simp =
true,
bool turn_off_simp =
false);
70 bool solve (
Lit p,
Lit q,
Lit r,
bool do_simp =
true,
bool turn_off_simp =
false);
71 bool eliminate (
bool turn_off_elim =
false);
156 lbool solve_ (
bool do_simp =
true,
bool turn_off_simp =
false);
RegionAllocator< uint32_t >::Ref CRef
void removeClause(CRef cr)
ElimLt(const LMap< int > &no)
void gatherTouchedClauses()
OccLists< Var, vec< CRef >, ClauseDeleted > occurs
Lit mkLit(Var var, bool sign=false)
void setFrozen(Var v, bool b)
Queue< CRef > subsumption_queue
vec< uint32_t > elimclauses
const lbool l_Undef((uint8_t) 2)
void copyTo(vec< T > ©) const
bool operator()(const CRef &cr) const
Var newVar(lbool upol=l_Undef, bool dvar=true)
void updateElimHeap(Var v)
virtual void garbageCollect()
bool merge(const Clause &_ps, const Clause &_qs, Var v, vec< Lit > &out_clause)
bool asymm(Var v, CRef cr)
bool implied(const vec< Lit > &c)
const ClauseAllocator & ca
bool operator()(Var x, Var y) const
bool addClause(const vec< Lit > &ps)
lbool solveLimited(const vec< Lit > &assumps, bool do_simp=true, bool turn_off_simp=false)
Heap< Var, ElimLt > elim_heap
bool strengthenClause(CRef cr, Lit l)
bool eliminate(bool turn_off_elim=false)
void relocAll(ClauseAllocator &to)
void toDimacs(FILE *f, const vec< Lit > &assumps)
bool backwardSubsumptionCheck(bool verbose=false)
bool isEliminated(Var v) const
const lbool l_True((uint8_t) 0)
ClauseDeleted(const ClauseAllocator &_ca)
void clear(bool dealloc=false)
bool addClause_(vec< Lit > &ps)
uint64_t cost(Var x) const
bool substitute(Var v, Lit x)
const LMap< int > & n_occ