36 Program& program = translationUnit.getProgram();
39 for (
const auto& literal : agg.getBodyLiterals()) {
40 if (isA<Atom>(literal)) {
50 auto nullaryAtom = mk<Atom>();
51 std::string relName =
"+Tautology";
52 nullaryAtom->setQualifiedName(relName);
56 auto fact = mk<Clause>();
59 auto tautologyRel = mk<Relation>();
60 tautologyRel->setQualifiedName(relName);
61 program.addRelation(std::move(tautologyRel));
62 program.addClause(std::move(fact));
64 VecOwn<Literal> newBody;
65 for (
const auto& lit : agg.getBodyLiterals()) {
69 const_cast<Aggregator&
>(agg).setBody(std::move(newBody));