void disjunct(RuleBody other)
VecOwn< ast::Clause > toClauseBodies() const
void conjunct(RuleBody other)
static RuleBody getFalse()
static RuleBody atom(Own< ast::Atom > atom)
detail::joined_sequence< Iter, Printer > join(const Iter &a, const Iter &b, const std::string &sep, const Printer &p)
Creates an object to be forwarded to some output stream for printing sequences of elements interspers...
static void insert(clause &cl, literal &&lit)
std::vector< literal > clause
static RuleBody constraint(Own< ast::Constraint > constraint)
static RuleBody getTrue()
std::vector< clause > dnf