逻辑表达式的等价定义和正规化

为了进一步地简化逻辑表达式, 我们需要研究它的等价定义和正规化.

1. 逻辑表达式的等价

如日常生活中一样, 我们可以用不同的逻辑表达式对同一个命题进行等价描述. 下面, 我们对逻辑表达式的等价进行简要的研究.

1.1 语义等价 (Semantic Equivalence)

定义1.1 语义学等价

当且仅当对任何赋值 vvv, 谓词公式 A,BA, BA,B 的解释 (intepretation) 一致, 称 A,BA, BA,B 语义学等价, 记为 A≡BA \equiv BA≡B.

注:

  1. 特别地, 在布尔语义下, 若两个谓词公式共享同一个真值表, 即可称其语义学等价.
  2. 若 A≡BA \equiv BA≡B, 我们也称 AAA 和 BBB 逻辑意义上相等.
  3. 在布尔语义下使用真值表法判断两个谓词公式语义学等价时, 真值表內必须包含组成这两个谓词公式的所有子式!
  4. 通过使用真值表法, 不难得知: ¬A∨B≡A→B.\neg A \vee B \equiv A \rightarrow B.¬A∨B≡A→B.

更进一步地, 通过使用同样的方法, 我们可以证明更为复杂的谓词公式在布尔语义下的等价性. 在构造真值表时, 下面的替代定理有助于我们的判断:

1.2 命题变量的替代

定理1.1 基本语义等价定理

公式 性质
¬¬P≡P\neg \neg P \equiv P¬¬P≡P 双否定性
P∧P≡PP \wedge P \equiv PP∧P≡P 幂等性
P∨P≡PP \vee P \equiv PP∨P≡P 幂等性
P∧Q≡Q∧PP \wedge Q \equiv Q \wedge PP∧Q≡Q∧P 交换律
P∨Q≡Q∨PP \vee Q \equiv Q \vee PP∨Q≡Q∨P 交换律
P∧(Q∧R)≡(P∧Q)∧RP \wedge (Q \wedge R) \equiv (P \wedge Q) \wedge RP∧(Q∧R)≡(P∧Q)∧R 结合律
P∨(Q∨R)≡(P∨Q)∨RP \vee (Q \vee R) \equiv (P \vee Q) \vee RP∨(Q∨R)≡(P∨Q)∨R 结合律
P∧(Q∨R)≡(P∧Q)∨(P∧R)P \wedge (Q \vee R) \equiv (P \wedge Q)\vee(P \wedge R)P∧(Q∨R)≡(P∧Q)∨(P∧R) 分配律
P∨(Q∧R)≡(P∨Q)∧(P∨R)P \vee (Q \wedge R) \equiv (P \vee Q)\wedge(P \vee R)P∨(Q∧R)≡(P∨Q)∧(P∨R) 分配律
P∧(P∨Q)≡PP \wedge (P \vee Q) \equiv PP∧(P∨Q)≡P 吸收性
P∨(P∧Q)≡PP \vee (P \wedge Q) \equiv PP∨(P∧Q)≡P 吸收性
¬(P∧Q)≡¬P∨¬Q\neg(P \wedge Q) \equiv \neg P \vee \neg Q¬(P∧Q)≡¬P∨¬Q De Morgan
¬(P∨Q)≡¬P∧¬Q\neg(P \vee Q) \equiv \neg P \wedge \neg Q¬(P∨Q)≡¬P∧¬Q De Morgan
P→Q≡¬P∨QP \rightarrow Q \equiv \neg P \vee QP→Q≡¬P∨Q 逆否性
P→Q≡¬(P∧¬Q)P \rightarrow Q \equiv \neg(P \wedge \neg Q)P→Q≡¬(P∧¬Q) 逆否性
P→Q≡¬Q→¬PP \rightarrow Q \equiv \neg Q \rightarrow \neg PP→Q≡¬Q→¬P 逆否性
P↔Q≡(P→Q)∧(Q→P)P \leftrightarrow Q \equiv (P \rightarrow Q) \wedge (Q \rightarrow P)P↔Q≡(P→Q)∧(Q→P) 逆否性
P↔Q≡(¬P∨Q)∧(P∨¬Q)P \leftrightarrow Q \equiv (\neg P \vee Q) \wedge (P \vee \neg Q)P↔Q≡(¬P∨Q)∧(P∨¬Q) 逆否性
P↔Q≡(P∧Q)∨(¬P∧¬Q)P \leftrightarrow Q \equiv (P \wedge Q) \vee (\neg P \wedge \neg Q)P↔Q≡(P∧Q)∨(¬P∧¬Q) 逆否性

注意: A≡BA \equiv BA≡B 指语义学等价, 这是谓词公式的一个性质, 也是一个超逻辑概念, “≡”“\equiv”“≡” 不是逻辑联结词; 而 ↔\leftrightarrow↔ 属于谓词逻辑语言中的符号, 二者在定义上有着本质的区别, 切勿混淆. 下面的定理揭示了它们之间的关系:

定理1.2

A≡BA \equiv BA≡B 当且仅当 A↔BA \leftrightarrow BA↔B 为重言式.

语义学替换 (Substitution) 是一种规范化的, 作用于整个谓词公式的谓词变量替换方法:

若我们要使用语义学替换, 将某个谓词公式中的谓词变量 AAA 替换为与其在语义学上等价的谓词变量 BBB, 则我们要将 在谓词公式中所有出现的 AAA 全部替换为 BBB.

更一般地,我们还可以将谓词变量替换为具有相同真值的谓词公式:

定义1.2 语义学替换定理

设 A,BA, BA,B 为任两个谓词公式. 若

A(P1,P2,⋯,Pn)≡B(P1,P2,⋯,Pn)A(P_1, P_2, \cdots, P_n) \equiv B(P_1, P_2, \cdots, P_n)A(P1​,P2​,⋯,Pn​)≡B(P1​,P2​,⋯,Pn​)

且 C1,C2,⋯,CnC_1, C_2, \cdots, C_nC1​,C2​,⋯,Cn​ 为 谓词公式, 则有

A(C1,C2,⋯,Cn)≡B(C1,C2,⋯,Cn).A(C_1, C_2, \cdots, C_n) \equiv B(C_1, C_2, \cdots, C_n).A(C1​,C2​,⋯,Cn​)≡B(C1​,C2​,⋯,Cn​).

定理1.3 一般化的基本语义等价定理

公式 性质
¬¬A≡A\neg \neg A \equiv A¬¬A≡A 双否定性
A∧A≡AA \wedge A \equiv AA∧A≡A 幂等性
A∨A≡AA \vee A \equiv AA∨A≡A 幂等性
A∧B≡B∧AA \wedge B \equiv B \wedge AA∧B≡B∧A 交换律
A∨B≡B∨AA \vee B \equiv B \vee AA∨B≡B∨A 交换律
A∧(B∧R)≡(A∧B)∧RA \wedge (B \wedge R) \equiv (A \wedge B) \wedge RA∧(B∧R)≡(A∧B)∧R 结合律
A∨(B∨R)≡(A∨B)∨RA \vee (B \vee R) \equiv (A \vee B) \vee RA∨(B∨R)≡(A∨B)∨R 结合律
A∧(B∨R)≡(A∧B)∨(A∧R)A \wedge (B \vee R) \equiv (A \wedge B)\vee(A \wedge R)A∧(B∨R)≡(A∧B)∨(A∧R) 分配律
A∨(B∧R)≡(A∨B)∧(A∨R)A \vee (B \wedge R) \equiv (A \vee B)\wedge(A \vee R)A∨(B∧R)≡(A∨B)∧(A∨R) 分配律
A∧(A∨B)≡AA \wedge (A \vee B) \equiv AA∧(A∨B)≡A 吸收性
A∨(A∧B)≡AA \vee (A \wedge B) \equiv AA∨(A∧B)≡A 吸收性
¬(A∧B)≡¬A∨¬B\neg(A \wedge B) \equiv \neg A \vee \neg B¬(A∧B)≡¬A∨¬B De Morgan
¬(A∨B)≡¬A∧¬B\neg(A \vee B) \equiv \neg A \wedge \neg B¬(A∨B)≡¬A∧¬B De Morgan
A→B≡¬A∨BA \rightarrow B \equiv \neg A \vee BA→B≡¬A∨B 逆否性
A→B≡¬(A∧¬B)A \rightarrow B \equiv \neg(A \wedge \neg B)A→B≡¬(A∧¬B) 逆否性
A→B≡¬B→¬AA \rightarrow B \equiv \neg B \rightarrow \neg AA→B≡¬B→¬A 逆否性
A↔B≡(A→B)∧(B→A)A \leftrightarrow B \equiv (A \rightarrow B) \wedge (B \rightarrow A)A↔B≡(A→B)∧(B→A) 逆否性
A↔B≡(¬A∨B)∧(A∨¬B)A \leftrightarrow B \equiv (\neg A \vee B) \wedge (A \vee \neg B)A↔B≡(¬A∨B)∧(A∨¬B) 逆否性
A↔B≡(A∧B)∨(¬A∧¬B)A \leftrightarrow B \equiv (A \wedge B) \vee (\neg A \wedge \neg B)A↔B≡(A∧B)∨(¬A∧¬B) 逆否性

1.3 命题变量的等价代换

平行于语义学替换定理, 我们还定义了命题变量的等价代换. 和替换定理不同的是, 等价代换定理的作用域非常有限, 仅仅涉及某个特定的命题变量, 只代换那一个特定的命题变量, 而对即使完全相同的其他命题变量也不予考虑.

在下面的叙述中, 我们规定:

C(⋯A⋯)C(\cdots A \cdots)C(⋯A⋯)

指一个谓词公式, 而 AAA 为它的一个子式.

定理1.4 等价代换定理

设 A,BA, BA,B 为两个谓词公式, 且 A≡BA \equiv BA≡B, 且 AAA 为谓词公式 C(⋯A⋯)C(\cdots A \cdots)C(⋯A⋯) 的一个子式. 则

C(⋯A⋯)≡C(⋯B⋯)C(\cdots A \cdots) \equiv C(\cdots B \cdots)C(⋯A⋯)≡C(⋯B⋯)

当对 AAA 实行等价代换.

1.4 逻辑常量 ⊥\perp⊥, ⊤\top⊤

我们还可以通过定义 逻辑常量 的方式进一步简化逻辑表达式.

在第一章中, 我们介绍了重言式和矛盾式. 它们在任何语义系统下的解释都是永真, 或永假. 对于这些式子, 我们使用 ⊥\perp⊥ 和 ⊤\top⊤ 符号分别表示它们.

我们可以认为, 设 PPP 为一个谓词公式, 则 ⊤\top⊤ 和 ⊥\perp⊥ 可分别视为 P∨¬P,P∧¬PP \vee \neg P, P\wedge \neg PP∨¬P,P∧¬P 的缩写. 从真值表中我们可以立即得出这一结论:

PPP ¬P\neg P¬P P∨¬PP \vee \neg PP∨¬P P∧¬PP \wedge \neg PP∧¬P
111 000 111 000
000 111 000 111

定理1.5 逻辑常量定理

若 AAA 为重言式, 则 A≡⊤A\equiv \topA≡⊤.

若 AAA 为矛盾式, 则 A≡⊥A\equiv ~ \perpA≡ ⊥.

定理1.6 含逻辑常量的一般化基本语义等价定理

1.5 其他语义系统中的语义学等价

我们以幂集语义为例. 显然, 在幂集语义下, 一个谓词公式的解释与对谓词变量的赋值和选定的参考集 XXX 同时有关. 在幂集语义下, 要说明 A≡BA\equiv BA≡B, 就要证明在给定的谓词变量赋值方式和参考集下, AAA 和 BBB 的翻译都是 XXX 的同一个子集.

2. 正规形式和逻辑表达式的正规化

逻辑表达式有多种等价的表达形式, 而不同的表达形式种由于含有不同数量的联结词, 括号关系和子式, 其复杂程度也有所不同. 在构造逻辑电路和研究抽象的逻辑关系时, 我们需要对逻辑表达式进行简化, 从而降低工作的规模和难度. 对逻辑表达式在逻辑层面上进行简化的过程就是寻找和计算范式 (Normal Form) 的过程.

一种最简单的逻辑表达式简化方法是基于结合律, 除去表达式內多余的括号:

P1∧(P2∧(⋯∧Pn)⋯)⇒P1∧P2∧⋯∧Pn.P_1\wedge (P_2 \wedge (\cdots \wedge P_n)\cdots) \Rightarrow P_1\wedge P_2 \wedge \cdots \wedge P_n.P1​∧(P2​∧(⋯∧Pn​)⋯)⇒P1​∧P2​∧⋯∧Pn​.

下面, 我们介绍两种更为复杂的范式生成法: 合取范式生成和析取范式生成.

2.1 合取范式 (Conjunctive Normal Form)

定义2.1 合取范式

称一个谓词公式为 合取范式, 当且仅当它为 ⊤,⊥\top, \perp⊤,⊥, 或为多个子式的析取的合取.

一般地, 我们使用下列的合取范式求解算法简化并求取谓词公式的合取范式:

定理2.1 合取范式求解算法有效性定理

  • 合取范式求解算法的每一步都保持语义学等价关系.
  • 合取范式求解算法总会在有限步內终止.
  • 合取范式求解算法的返回值恒为一个合取范式.

2.2 析取范式 (Disjunctive Normal Form)

相应地, 我们还可以定义析取范式的概念:

定义2.2 析取范式

称一个谓词公式为 析取范式, 当且仅当它为 ⊤,⊥\top, \perp⊤,⊥, 或为多个子式的合取的析取.

一般地, 我们使用下列的析取范式求解算法简化并求取谓词公式的析取范式:

定理2.2 析取范式求解算法有效性定理

  • 析取范式求解算法的每一步都保持语义学等价关系.
  • 析取范式求解算法总会在有限步內终止.
  • 析取范式求解算法的返回值恒为一个析取范式.

2.3 基于真值表构造范式

基于合取范式和析取范式的概念和相关定理, 我们立即可以得出从真值表构造
范式的方法:

2.4 布尔函数

回顾布尔语义的概念和基本定义. 我们知道, 布尔语义的真值集为 B={0,1}\mathbb{B} = \{0, 1\}B={0,1}.
下面, 考虑一个从 B\mathbb{B}B 的 nnn 次笛卡尔积 Bn\mathbb{B^{n}}Bn 映到 B\mathbb{B}B 的一个函数 (映射). 何时这样的映射既可被视在布尔语义下对联结词的解释, 亦可视为对谓词公式的解释?

定义2.3 布尔函数 (Boolean Function)

称从 Bn\mathbb{B}^{n}Bn 到 B\mathbb{B}B 的映射为 布尔函数.

在布尔语义中, 任何一个谓词逻辑的联结词均可被视为一个布尔函数.

定理2.3 布尔函数计数定理

存在 22n2^{2^n}22n 个不同的 nnn 元布尔函数.

显然, 对于 nnn 个不同的函数输入, 根据布尔语义定义, 每个输入都可以从真值集中取值, 故共有 2n2^n2n 种输入; 同时, 对于每一种输入, 它都可以被映射到真值集的某一个元素, 故共有 22n2^{2^{n}}22n 种映射方法, 而每一种映射方法对应一个唯一的布尔函数.

定理2.4 布尔函数表示定理

任一个布尔函数: f:Bn→Bf: \mathbb{B^{n}}\rightarrow \mathbb{B}f:Bn→B 可被表示为含谓词变量 x1,x2,⋯,xnx_1, x_2, \cdots, x_nx1​,x2​,⋯,xn​ 的谓词公式 P(x1,x2,⋯,xn)P(x_1, x_2, \cdots, x_n)P(x1​,x2​,⋯,xn​).

结合真值表方法可知, 该定理结论显然.

逻辑学探幽 Part1相关推荐

  1. 科普丨深度学习 vs 概率图模型 vs 逻辑学

    今天,我们一起来回顾过去50年人工智能(AI)领域形成的三大范式:逻辑学.概率方法和深度学习.如今,无论依靠经验和"数据驱动"的方式,还是大数据.深度学习的概念,都已经深入人心,可 ...

  2. Storefront与NetScaler的集成配置 - part1

    Storefront与NetScaler的集成配置 - part1 http://kaiqian.blog.51cto.com/blog/236001/1344447 Storefront与NetSc ...

  3. Lync Server 2010标准版系列PART1:基础构建

    可能环境准备已经是老生常谈的东西了,但我们搭建环境做测试.评估,或者说在客户生产环境做部署,非常需要重视的就是细节,力求做到一丝不苟,并且快速完成部署任务.所以在测试环境的搭建中,基础环境的准备是非常 ...

  4. 从零开始学Win32平台缓冲区溢出(Part1)

    原文:Stack Based Buffer Overflow in Win 32 Platform: The Basics 译者:鸢尾 来源:从零开始学Win32平台缓冲区溢出(Part1) 缓冲区溢 ...

  5. 计算机考研逻辑学,管综专硕:走出不考逻辑学专业知识的误区

    每年大纲解读的时候,包括很多逻辑老师在讲解MBA.MPA.MPAcc课程的时候,总是告诉学员或者考生们,大纲明确说明不考查逻辑学的专业知识.由此得出结论,不考逻辑学的专业知识,主要考考生对各种信息的理 ...

  6. 深度学习 vs. 概率图模型 vs. 逻辑学

    深度学习 vs. 概率图模型 vs. 逻辑学 发表于2015-04-30 21:55|6304次阅读| 来源quantombone|1 条评论| 作者Tomasz Malisiewicz 深度学习de ...

  7. Cocos2dx-demo演示项目:Part1

    这个项目,我主要是用来积累.记录自己在利用cocos2dx引擎进行项目开发.学习实践中的开发经验.每天的开发任务.查看别人分享的内容,总是能够收获到可取的东西,将这些可取的东西自己再着手开发一次,能够 ...

  8. CS231n 学习笔记(1)——神经网络 part1 :图像分类与数据驱动方法

    *此系列为斯坦福李飞飞团队的系列公开课"cs231n convolutional neural network for visual recognition "的学习笔记.本文主要 ...

  9. 写给大家看的机器学习书【Part1】什么是机器学习?机器学到的到底是什么?

     写给大家看的机器学习书[Part1]什么是机器学习?机器学到的到底是什么? 机器学习 深度学习 神经网络 人工智能 阅读1390

最新文章

  1. inet_pton和inet_ntop函数
  2. 学以致用七---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站(补充)
  3. 改变完成工作的方式压力的效果
  4. Flutter开发之《新锐专家之路:混合开发篇》笔记(55)
  5. 在生产环境中,阿里云如何构建高性能云原生容器网络?(含 PPT 下载)
  6. 为什么需要动态SQL?
  7. .Net 中的封装知识点
  8. 【转载】【程序员练级】提高英语阅读水平经验分享上篇
  9. Java学习笔记:进程与线程、BIO、NIO、Selector
  10. java entry迭代,如何迭代Entry / BarEntry ArrayList并修改它们的值MPAndroid Chart
  11. cc语言取消引用_「初识C语言」编译过程
  12. 爱上Ada语言与系统
  13. 苹果电脑安装鸿蒙系统,苹果笔记本可以安装别的操作系统吗?
  14. pr新建字幕样式(模板)
  15. 如何给公司节约成本,搭建免费开源监控系统uptime-kuma
  16. 派安盈Payoneer要年费吗?
  17. 2012半程盘点之最佳Mac桌面应用
  18. AEIA2018 | 中国工程院院士李骏:智能网联汽车的安全和自主创新是当下的关键...
  19. FL Studio电音编曲软件V21中文完整版 安装下载教程
  20. 提示用户更改计算机密码,验证你的Microsoft账户 温馨提示:在个人电脑上更改微软账户密码...

热门文章

  1. 可执行文件结构:PE文件结构讲解
  2. ai前世识别_AI人脸识别前世今生app下载_AI人脸识别前世今生 安卓版v2.0[db:版本号] - Win7旗舰版...
  3. python变量名必须以字母或下划线开头不区分字母大小写_Python变量名必须以字符或下划线开头,并且区分字母大小写。...
  4. 51单片机系列(三)51 单片机游戏设计 —— 双人对战小游戏(石头剪刀布)
  5. ESXi处理主机错误无法进入维护模式
  6. ThinkPad E460c安装触摸板驱动未找到未发现synaptics设备
  7. iMeta和CGM联合报告:中科院生态中心邓晔-气候变化驱动核心微生物的迁移(5.4晚8点)...
  8. 免费软著申请登记详细教程
  9. 显示单月的日历c语言编程,显示单月的日历的C程序
  10. 基于C#winform的学生信息管理与成绩评价系统