If a lemma (a disjunction) has a "false" literal in it, it can be ignored, but a "true" literal really should stay
prop::SatLiteral lit = (*clause)[i];
Node node = getCnfProof()->getAtom(lit.getSatVariable());
Expr atom = node.toExpr();
- if (atom.isConst()) {
- Assert (atom == utils::mkTrue());
- continue;
- }
- result.insert(lit.isNegated() ? node.notNode() : node);
+ if (atom != utils::mkTrue())
+ result.insert(lit.isNegated() ? node.notNode() : node);
}
return result;