예제 #1
0
        /**
         * Distribuye o's (|) sobre y's (&).
         *
         * @param sentence
         *            una sentencia en lógica proposicional. A esta sentencia se le debe haber quitado bicondicionales, implicaciones y las negaciones tienen que haberse llevado hacia dentro.
         * @return una sentencia equivalente a la de entrada con las o'es distribuidas por las y'es.
         */
        public static Sentence Distribute(Sentence sentence)
        {
            Sentence result = null;

            DistributeOrOverAnd distributeOrOverAnd = new DistributeOrOverAnd();

            result = sentence.Accept(distributeOrOverAnd, null);

            return(result);
        }
예제 #2
0
        /**
         * Devuelve la sentencia especificada en su sentencia equivalente en forma normal conjuntiva.
         *
         * @param s
         *            una sentencia de lógica proposicional
         *
         * @return la sentencia de entrada convertida en su equivalente lógica de forma normal conjuntiva.
         */
        public static Sentence Convert(Sentence s)
        {
            Sentence result = null;

            Sentence nnfSentence = ConvertToNNF.Convert(s);
            Sentence cnfSentence = DistributeOrOverAnd.Distribute(nnfSentence);

            result = cnfSentence;

            return(result);
        }