/** * 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); }
/** * 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); }