71 out <<
"// limplies\n";
120 return lxor(bv[0], bv[1]);
125 literal=
lxor(*it, literal);
217 out <<
"// lselect\n";
252 std::set<literalt> s;
254 new_bv.reserve(bv.size());
256 for(bvt::const_iterator it=bv.begin(); it!=bv.end(); it++)
258 if(s.insert(*it).second)
259 new_bv.push_back(*it);
261 if(s.find(!*it)!=s.end())
267 assert(!new_bv.empty());
272 for(bvt::const_iterator it=new_bv.begin(); it!=new_bv.end(); it++)
274 if(it!=new_bv.begin())
290 return "(NOT l"+std::to_string(l.
var_no())+
")";
292 return "l"+std::to_string(l.
var_no());
298 out <<
"THEOREM false;\n";
virtual void lnand(literalt a, literalt b, literalt o)
virtual propt::resultt prop_solve()
std::string dplib_literal(literalt l)
#define forall_literals(it, bv)
virtual void lcnf(const bvt &bv)
virtual literalt new_variable()
virtual void land(literalt a, literalt b, literalt o)
virtual void limplies(literalt a, literalt b, literalt o)
dplib_propt(std::ostream &_out)
literalt const_literal(bool value)
literalt def_dplib_literal()
virtual void lnor(literalt a, literalt b, literalt o)
virtual void lequal(literalt a, literalt b, literalt o)
virtual literalt lselect(literalt a, literalt b, literalt c)
virtual void lor(literalt a, literalt b, literalt o)
std::vector< literalt > bvt
virtual void lxor(literalt a, literalt b, literalt o)