在命题逻辑和逻辑代数中,德摩根定律(英語:De Morgan's laws,又称笛摩根定理、第摩根定律、对偶律等)是关于命题逻辑规律的一对法则[1]。
19世纪英国数学家奥古斯塔斯·德摩根首先发现了在命题逻辑中存在着下面这些关系:
![{\displaystyle \neg (p\land q)\equiv (\neg p)\lor (\neg q)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cbe6a53a7e7487f77622d88dd55daf744d145bce)
![{\displaystyle \neg (p\lor q)\equiv (\neg p)\land (\neg q)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/64f6a2e9c039d13bd6c0a48e6bc0f6c1b97ecdd8)
即:
- 非(
且
)等价于( 非
)或( 非
)
- 非(
或
)等价于( 非
)且( 非
)
德摩根定律在数理逻辑的定理推演中,在计算机的逻辑设计中以及数学的集合运算中都起着重要的作用[1]。他的发现影响了乔治·布尔从事的逻辑问题代数解法的研究,这巩固了德摩根作为该规律的发现者的地位,亚里士多德亦曾注意到类似的现象、且这也为古希腊与中世纪的逻辑学家熟知(引自Bocheński《形式逻辑历史》)。
形式逻辑中此定律表达形式已在上文提及。
在集合论中:
![{\displaystyle \left(A\cap B\right)^{C}=A^{C}\cup B^{C}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3086b6be0c8b300388900529380e52b341498885)
![{\displaystyle \left(A\cup B\right)^{C}=A^{C}\cap B^{C}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/675193498f795b62ae3e40591150f543ff5537dd)
在经典命题逻辑的外延中,此二元性依然有效(即对于任意的逻辑运算符,我们都能找到它的对偶),由于存在于调节否定关系的恒等式中,人们总会引入作为一个算符的德摩根对偶的另一个算符。这导致了基于传统逻辑的逻辑学的一个重要性质,即否定范式的存在性:任何公式等价于另外一个公式,其中否定仅出现在作用于公式中非逻辑的原子时。否定常型的存在推进了许多应用,例如在数位电路设计中该性质用于操纵逻辑閘,以及在形式逻辑中该性质是寻找一个公式的合取范式和析取范式的必要条件;电脑程式設計師们则用它们将一个类似于「如果...那么...否则...」这样的复杂语句转变为其对等形式(例如:if(...){...} else{...}
);它们也同样经常用于初等概率论中的计算。我们将基于基本命题
,
的任意命题算符
的对偶定义为:
![{\displaystyle \neg {\mbox{P}}^{d}(\neg p,\neg q,...)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/45123ec000d91bd5719a986d2cb03aea62dd90f6)
该概念可以推广到逻辑量词上,例如全称量词和存在量词互为对偶:
![{\displaystyle \forall x\,P(x)\equiv \neg \exists x\,\neg P(x)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/295cb14e5ed954f58ae855c78f3c7c000166320f)
- “对所有
,
皆成立”等价于“不存在
,使
不成立”;
![{\displaystyle \exists x\,P(x)\equiv \neg \forall x\,\neg P(x)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/97088ef4b32c56220bf5f8eefc2dfd1ac40d3dc8)
- “存在
,使
成立”等价于“并非对所有
,
都不成立”。
为对德摩根定律叙述这些量词的二元性,设置一个在其域
中具有少量元素的模型,例如
![{\displaystyle D={a,b,c}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d357e34f8c8043a0bfa31eb5474c726426fd2807)
则
![{\displaystyle \forall x\,P(x)\equiv P(a)\wedge P(b)\wedge P(c)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/909a2b5aca17e25ffcfc17607ee31e245942bb0f)
- “对所有
,
成立”等价于“
成立”且“
成立”且“
成立”
以及
![{\displaystyle \exists x\,P(x)\equiv P(a)\vee P(b)\vee P(c)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9e400f446658e82d99e3c7bf69025c802f87c096)
- “存在
,使
成立”等价于“
成立”或“
成立”或“
成立”
但,应用德摩根定律,
![{\displaystyle P(a)\wedge P(b)\wedge P(c)\equiv \neg (\neg P(a)\vee \neg P(b)\vee \neg P(c))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1a80de12ab6429d69e8a91fae33b9420bc741052)
- “‘
成立’且‘
成立’且‘
成立’”等价于“非(‘
不成立’或‘
不成立’或‘
不成立’)”
以及
![{\displaystyle P(a)\vee P(b)\vee P(c)\equiv \neg (\neg P(a)\wedge \neg P(b)\wedge \neg P(c))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/622c72fa06173000cd12709b990f80d2504ced0e)
- “‘
成立’或‘
成立’或‘
成立’”等价于“非(‘
不成立’且‘
不成立’且‘
不成立’)”
检验模型中量词的二元性。
从而,量词的二元性可进一步延伸到模态逻辑中的方块和菱形算符:
![{\displaystyle \Box p\equiv \neg \Diamond \neg p}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4328f9c5989c8b8df668fc3310c1d00ca208c707)
![{\displaystyle \Diamond p\equiv \neg \Box \neg p}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5132b1b7117ab0adfab8c02b24cd50b438c799ca)
在其用于可能性和必然性的真势模态的应用中,亚里士多德注意到该情况,以及在正规模态逻辑的情况中,这些模态算符对量化的关系可借助按关系语义设置模型来理解。
- “应注意到一个析取命题的对立命题是由该析取命题各部分的对立内容构成的一个合取命题” ——奥卡姆的威廉著,《逻辑学论文》