public static ISet <Literal> getLiterals(Sentence disjunctiveSentence) { ISet <Literal> result = CollectionFactory.CreateSet <Literal>(); LiteralCollector literalCollector = new LiteralCollector(); result = disjunctiveSentence.accept(literalCollector, result); return(result); }
public override ISet <Clause> visitBinarySentence(ComplexSentence s, ISet <Clause> arg) { if (s.isAndSentence()) { s.getSimplerSentence(0).accept(this, arg); s.getSimplerSentence(1).accept(this, arg); } else if (s.isOrSentence()) { ICollection <Literal> literals = CollectionFactory.CreateQueue <Literal>(LiteralCollector.getLiterals(s)); arg.Add(new Clause(literals)); } else { throw new IllegalArgumentException("Sentence is not in CNF: " + s); } return(arg); }
private bool CaseConstantsFor(BinaryExpression binaryExpression, out IList <string> foundConstants) { return(LiteralCollector.Collect(binaryExpression, out foundConstants)); }