命题逻辑:CNF转换

Proposition Logic : CNF Conversion

我正在尝试解决一个简单的练习,我必须在其中转换 CNF 中的命题句:

这是句子: P => (Q <=> R)

根据解析规则,我做的第一件事就是这样消除<=>符号:

P => (Q <=> R) ---> P => (Q V R) /\ (R V Q)

然后我删除了 => 符号:

P => (Q V R) /\ (R V Q) ------> ¬P V (Q V R) /\ (R V Q)

所以我的解决方案是:(¬P V Q V R) /\ (¬P V R V Q)

而正确的是:(¬P V ¬Q V R) /\ (¬P V ¬R V Q)

任何人都可以帮助我了解我哪里错了吗?

Whosebug 是为编程题设计的,它规定这个问题离题。但是既然我已经打了那么多,让我补充一下你的第一步......

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)

我想你可以解决剩下的问题。