Логика предложения: CNF Conversion - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь выполнить простое упражнение, в котором мне нужно преобразовать предложение в CNF:

Это предложение: P => (Q <=> R)

В соответствии с правилом разрешения первое, что я сделал, это удалил символ <=> следующим образом:

P => (Q <=> R) ---> P => (QVR) / \ (RVQ)

Затем я удалил символ =>:

P => (QVR) / \ (RVQ) ------> ¬PV (QVR) / \ (RVQ)

Поэтому мое решение: (¬PVQVR)/ \ (¬PVRVQ)

Хотя правильным является: (¬PV ¬QVR) / \ (¬PV ¬RVQ)

Может кто-нибудь помочьмне понять, где я ошибаюсь?

1 Ответ

0 голосов
/ 04 февраля 2019

StackOverflow предназначен для вопросов программирования, которые управляют этим вопросом не по теме.Но так как я уже столько набрал, позвольте мне добавить, что ваш первый шаг ...

P => (Q <=> R) ---> P => (Q V R) ^ (R V Q)

неверен.

Вы знаете, что Q<=>R означает по определению (Q=>R)^(R=>Q),право?Так что замена это первый шаг.Тогда вы можете использовать эквиваленты (Q=>R) ---> (~QvR) и (R=>Q) ---> (~RvQ).

Собирая это вместе, вы должны получить ...

P => (Q <=> R) ---> P => (~Q V R) ^ (~R V Q)

Я думаю, вы можете решить остальные.

...