Beispiel #1
0
            public static ISet <Literal> getLiterals(Sentence disjunctiveSentence)
            {
                ISet <Literal> result = CollectionFactory.CreateSet <Literal>();

                LiteralCollector literalCollector = new LiteralCollector();

                result = disjunctiveSentence.accept(literalCollector, result);

                return(result);
            }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 private bool CaseConstantsFor(BinaryExpression binaryExpression, out IList <string> foundConstants)
 {
     return(LiteralCollector.Collect(binaryExpression, out foundConstants));
 }