一阶逻辑语言简记
命题
自然语言和逻辑语言相比具有极大的歧义性,如当笔者谈论“苹果”时,读者并不能知道这是水果还是手机,而逻辑因为其严谨性可以较大消除其歧义。
逻辑最基础的构件便是二极管般的【命题】(proposition),是指一个可判断真假的陈述句
显而易见的是命题的定义最重要的一个性质是能判断真假,将此真假性质称作【真值】,其中真值为True的命题称作【真命题】,真值为False的命题称作【假命题】
为了形式化命题,采用【命题变量】(即命题的内容不确定)来讨论命题形式上的架构,一般采用字母
命题的运算
命题的域只有
显然,假设有
■否定
其运算是关于真值的颠倒,语义上如其名表示否定,用
下述表格称作【真值表】,其中第一行表示命题或命题运算后的复合命题,其下为真值以直观展示命题与运算后的情况
p | ¬p |
---|---|
0 | 1 |
1 | 0 |
如“p:我喜欢苹果”的否定为
“¬p:我不喜欢苹果”
■合取
两命题全为真命题结果才为真命题,语义上表示为“且”,记作
如有命题
p:我喜欢可乐
q:我喜欢雪碧
复合命题p∧q:我喜欢可乐,并且我也喜欢雪碧
p | q | p∧q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
■析取
命题存在真命题结果便为真命题,语义上表示为“兼或”,记作
如有命题
p:学过数学可以解决这道题
q:学过物理可以解决这道题
复合命题p∨q:学过数学或物理才能解决这道题
p | q | p∨q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
■异或
两命题相异结果为真命题,语义上也表示为“或”,但这一或在日常语言中更常用,记作
如有命题
p:我想买可乐
q:我想买雪碧
复合命题p⊕q:我想买瓶可乐,或者买瓶雪碧(此时自然语言上的或并不是析取意义上的或,我并不想都买)
p | q | p⊕q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
■同或
两命题相同结果为真命题,电路、计算机中用得较多,记作
p | q | p⊙q |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
■条件(蕴含)
记作
推理中极其重要的运算,其中p称作前提、前件,q称作后件。推理上一般表示【如果p,则q】【p是q的充分条件】【q是p的必要条件】【q成立,除非¬p成立】
在条件运算符上进一步提出了一些新的定义,已知一个复合命题
那么其逆命题是指
其否命题(或称反命题)是指
其逆否命题是指
p | q | p→q |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
■双条件(双蕴含)
记作
一般表示为【p、q互为充要条件】【p,当且仅当q】
充分条件、必要条件的定义是在条件、双条件之上提出的,已知命题p、q
(1)如果p→q,那么就称p是q的充分条件,或称q是p的必要条件
(2)如果q→p,那么就称q是p的充分条件,或称p是q的必要条件
(3)如果(1)(2)都满足,那么就称p、q互为充要条件(指充分必要)
(4)如果(1)(2)都不满足,那么p、q是无关的,称作互为既不充分也不必要的
p | q | p←→q |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
■定义运算符的优先级
定义运算符的优先级是为了防止运算出现混淆,就像1+2×3,如果我们事先并不知道乘法优先级更高,显然是有可能视作(1+2)×3的
优先级只出现在了二元联结词上,也几乎不可能出现其他三元或更高元(除非你使用某种很新奇的写法)、一元上,因为这是我们语言上的一种简写导致的某种bug,优先级正是为了填补这种bug
在最开始便提到了这本质上是一种函数,如果我们用函数的视角来看,1+2×3实际上是
但我们一般情况下不再使用函数那种形式化的写法而是采用了自然语言上处理后的写法。但自然语言处理后并非没有规律可循,比如一般情况下,更低元运算符的优先级是比更高级运算符的优先级要高的(括号例外且仅限于同一域的运算符)
在编程语言里会有特别多的运算符也有为处理语言bug的优先级表,而计算机依靠了图论(这里不过多说明)的知识去识别并将自然语言还原成原本函数形式的语言
目前所定义的运算符优先级如下
运算符 | 优先级 |
---|---|
¬ | 1 |
∧ | 2 |
∨ | 3 |
→ | 4 |
←→ | 5 |
逻辑等价式
一般证明命题常常是比较复杂的命题等价式,即一个函数
(1)重言式(永真式,tautology),指无论原子命题的真值如何该复合命题真值都为1
(2)矛盾式(contradiction),指无论原子命题的真值如何该复合命题真值都为0
(3)可能式,即最终复合命题的真值无法确定,而由其原子命题组成
例如已知命题p,
(4)可满足性是指某个复合命题存在一种赋值情况使其为真的情况,即该命题为重言式或可能式。而其中可满足性命题的一个为真的赋值便称作其解。可满足性的概念是为了辨别某些问题是否能去解决而不是无法解决的。但判定可满足性的难点在于复合命题的赋值往往是巨量的,甚至超出千亿级的,而纯粹循环以此判定是否存在一种为真的赋值是很困难的,这一问题与算法复杂度相挂钩
(5)已知复合命题p、q,如果
同一律
■
■
幂等律
■
■
支配律
■
■
矛盾律
■
排中律
■
双重否定律
■
交换律
■
■
⭐结合律
■
■
⭐吸收律
■
■
⭐分配律
■
■
⭐德摩根律
■
■
扩展的德摩根律
由于交换律,不管析取合取任意项都是有良好性质,因此定义
(1)
(2)
■
■
条件命题相关
■⭐等值式:
■⭐逆否律:
■否定:
■
■
■⭐输出律:
■⭐归谬律:
■
■
■
■
双条件命题相关
■⭐等值式:
■⭐否定等值式:
■否定:
■
上述大量等值式中笔者用⭐表示笔者认为比较重要的等值式
证明逻辑等价式:一般地虽然可以采用真值表,但对于一些复杂的逻辑等价式建议直接采用已有等价式去证明
如证明
谓词逻辑
命题逻辑在可满足性那暴露了其问题,例如我想表述“我电脑上有一百个文件,有些删除了,有些留下了”,如果用命题逻辑去表述我需要设立一百个命题依次表述第X号文件是否被删除,以此联立,显然这种表述是繁琐的。谓词逻辑则在命题逻辑基础上引入了【量词】的概念,使得我可以更简洁地描述某对象性质的语义
(1)谓词是指命题所具有的一个性质,如
这无疑是绝望的,而谓词逻辑则有赋予性质的能力
(2)已知涉及
此时上述例子可以表述为
(3)量词是为了量化谓词中的赋值,在谓词逻辑中有两个最基础的量词。全称量词,用【
(4)任意、存在这两种量词并非是新概念,而是基于谓词结构和析取合取做的一种范式。其定义满足等式
■
■
(5)量词的优先级最高,如
(6)当量词作用于变量时称作该变量被【绑定】,而被绑定的变量是【约束变量】,未被绑定的变量是【自由变量】。如
谓词逻辑在自然语言的转换
与命题逻辑不同的是,谓词逻辑在转换自然语言一般需要遵守固定格式
■
如“书店里所有的书价格都20以上”其中量词需要绑定的是“书”,首先需要P命题表述绑定变量x为书店里的书,然后A去描述性质。不能使用
■
如“书店里有本书价格100以上”。如果表示为
受限量词
对于上面的语言专门你可能注意到了一个问题,我首先需要描述量词的性质其次才能描述它的本体命题
■
■
通过引入域表明约束变量被限制在
■
■
受限量词是非常常用的,如微积分对于极限的定义
用
其中
嵌套量词的规则
上述微积分定义的例子其实涉及到了嵌套量词,它是指一组量词同时作用于某个命题的情况,它一般分为四种情况
■
■
■
■
其中它满足同量词下的交换律,但像上述二三就无法交换是完全不同的含义
■
■
例如:
唯一量词
在数学证明中往往有一类证明是【唯一性】,任意量词、存在量词并不能直接地表示,但可以构造性地定义唯一量词,一般记作【
■
■
一阶逻辑中的逻辑等价式
消除量词
备注:仅限于有限域,无限涉及到是否可数的问题
■
■
量词的德摩根律
■
■
量词作用域的伸缩
■
■
■
■
■
■
■
■
嵌套量词顺序(略)
分配律
■
■
只要结合消除量词和之前的逻辑等价式即可证明
例:证明
推理、CNF/DNF
所谓证明是指在给定前提(premise)且前提是真实性的情况下去推理出的有效性(valid)结论的结构,即前提→推理规则→结论的结构。
有效推理定义:
一般一个论证的通常是如下形式
范式:是指命题满足某种规则的形式,为的是将各种复杂形式的运算式以某种规则变得更加规范化以便作进一步地处理。范式如其名隐含的一个定理是对于任意的一个命题必然存在相等价的范式。如推理的前提是一种命题的合取形式,这也可以看成是一种范式(但不是下面所说的CNF)
这里首先要引入合取范式(CNF,Conjunctive Normal Form),这里不先对CNF和下面要讲的DNF作严格定义,简单来说就是一种合取运算为主析取、非运算为辅的形式。另外的也同样有析取范式(DNF,Disjunctive Normal Form)
定义:
(1)文字:已知命题
(2)简单合取式:文字的合取运算称为是简单合取式,如
(3)简单析取式:文字的析取运算称为是简单析取式,如
(4)CNF:简单析取式的合取运算称为是CNF,如
(5)DNF:简单合取式的析取运算称为是DNF
CNF/DNF范式的算法:
首先根据定义来说它只能包含析取、合取、非三种运算
(1)共同的步骤,将这三种运算以外其他所有运算转换为这三种运算,如
(2)共同的步骤,非运算不能运用于复杂的复合命题中,如
(3)共同的步骤,简单析取式、简单合取式由于基础单位是文字,因此不能是复合命题、文字之间的析取/合取,如
(4)CNF中不能出现合取范式的形式,DNF中不能出现析取范式的形式,因此需要采用分配律化为统一的形式(可以关注到分配律前后也是一次析取合取的转换过程,也因此CNF、DNF可以相互转换)
例:将
这里实际上已经得出了CNF形式,对于DNF的形式可以用分配律转换,但分配律的运算实际上很复杂,这里介绍另外两种范式,以此进行更快速的转换
PCNF/PDNF
无论是CNF还是DNF首先观察到的是在不考虑交换律的情况下CNF、DNF并不唯一,如
(1)极小项:给定一些命题变量,包含所有命题变量的简单合取式称作是极小项,例子详见极大项
(2)极大项:给定一些命题变量,包含所有命题变量的简单析取式称作是极大项。如上述例子中
(1)主合取范式(PCNF,Principal CNF),极大项的合取式且是唯一性的(唯一性见下述不严谨的说明)
(2)主析取范式(PDNF,Principal DNF),极小项的析取式且是唯一性的
要说明PCNF/PDNF相比于CNF/DNF是唯一性的,要以非极小项/非极大项向极小项/极大项的转变来解释
这里以
(1)我们可以使用同一律进行一种拓展,等价于
(2)而0我们可以用排中律、矛盾律进行进一步拓展,等价于
(3)采用分配律,等价于
二进制转变:如果给定了N个命题变量,值得注意的是由于文字只存在两种情况
注:成真赋值是指对于给定公式下为永真式的一种赋值,成假赋值是指对于给定公式下为永假式的一种赋值,由于析取式、合取式的良好性质,极大项(简单析取式)的成假赋值是唯一性的,极小项(简单合取式)的成真赋值是唯一性的
极小项 | 成真赋值 | 极大项 | 成假赋值 |
---|---|---|---|
¬p∧¬q∧¬r | 000(指p为0,q为0,r为0) | p∨q∨r | 111 |
¬p∧¬q∧r | 001 | p∨q∨¬r | 110 |
¬p∧q∧¬r | 010 | p∨¬q∨r | 101 |
¬p∧q∧r | 011 | p∨¬q∨¬r | 100 |
p∧¬q∧¬r | 100 | ¬p∨q∨r | 011 |
p∧¬q∧r | 101 | ¬p∨q∨¬r | 010 |
p∧q∧¬r | 110 | ¬p∨¬q∨r | 001 |
p∧q∧r | 111 | ¬p∨¬q∨¬r | 000 |
同一赋值对于极小项、极大项都是完全相反的,如
其次呈现出了可二进制编码的关系,以
这里用字母【
简单来说,PCNF就是
PCNF、PDNF的转换:PCNF、PDNF有着相当简洁的定理进行转换,给定N个变量和一个复合命题,那么对应的PCNF的项的十进制值在
主范式的算法:
(1)得到CNF或DNF
(2)根据得到的范式通过同一律→排中律、矛盾律→分配律将非极小也非极大项转为极小项极大项
(3)PCNF、PDNF相互转换
一般来说得到CNF直接罗列二进制序列即可,如
类似地,如pqrs有一项是1x0x那么有两处x最终会有1000、1001、1100、1101四种情况
逻辑函数化简
PCNF/PDNF向CNF/DNF的逆转换是否有意义?答案是肯定的,它经常用于数字电路中,可以将一项看成需要一个元器件,PCNF/PDNF虽然在理论上是一种唯一性的范式,但它罗列出了所有项,而CNF以上一例为例将101、111简写为了1x1,这可以理解为你原本需要两个电路元器件变成了只需要一个。这里问题就变成如何找到项最少的CNF/DNF
化简方法一般采用公式、卡诺图(格雷码)等方法,由于本篇定位,这里不介绍卡诺图方法
一般采用如下化简公式即可化简
■并项:
■吸收律(略)
■配项消项:
注:从左到右是消项,从右到左是配项,关键在于找到两项内含变量和其否定形式,以此可以消除多余的项或是增加一项
命题推理规则
由于推理的前提是一种命题的合取,因此,在这里不再特意写【∧】而是写成【,】,除非∧作为项内的运算符
■前提引入:推理过程中可随时引入前提
■结论引用:推理出的结论可随时引用
■代入规则:对于重言式可用1替换
■置换规则:推理过程的子式可用等价式替换
■条件证明规则:若证
(证明,
■假言推理(分离规则):
这是非常自然的模式,如果p正确而且p能推出q,那么q也正确
■拒取式:
这是反证法,通过假设q不正确以此看待p→q,如果p→q正确最终只会推得矛盾¬p
■假言三段论:
很经典的亚里士多德三段论
■析取三段论:
例如“这件事要么你干的(p)要么他干的(q),既然不是他干的(¬q),那肯定是你干的了(p)”
■附加律:
例如已知“韩国声称发现了室温超导材料”,可以附加为“p:韩国声称发现了室温超导材料,q:这可能是正确的,r:也可能是错误的,s:或者对错参半”
■化简:
例如“他是凶手(p)因为地上有他的指纹(q)而且有作案动机(r),所以他是凶手(p)”
■合取:
例如“他是凶手(p)因为地上有他的指纹(q)而且有作案动机(r),他不仅是凶手(p)还有作案动机(r)”
■归结:
二难原理
数学证明中一般不用,详细参考【二难推理】【假言选言推理】,二难原理属于其中最简单的形式。假言选言推理是指结合多个假言推理(条件式)和选言推理(析取式)组合而成的推理。二难推理简单说因为两个假言推理和选言推理导致了最终难以抉择的两难处境。假言选言推理的基本规则是对前件肯定或对后件进行否定,其中对前件肯定的形式就是构造性的,对后件进行否定就是破坏性的。
■简单构造性二难:
电车难题,我换轨道(p)会杀人(r),我不换轨道(¬q)也会杀人(r),最终能推导我都会杀人(r),所以我选p还是¬p。由于p、q选择了特殊形式符合排中律,因此也有观点表明这是误用了排中律
■复杂构造性二难:
选择困难症,如果我选A卡(p)我的战斗力能提升很多(q),如果我选B卡(r)我也能提高卡组运转能力(s),所以我该选什么?
■简单破坏性二难:
你不努力工作(p)怎么赚钱养家(q),你不努力工作怎么为公司做贡献(r),所以你应该努力工作
■复杂破坏性二难:
量词推理规则
与联结词相关的蕴含式
■
■
■
■
量词消去/引入
■全称实例(US):
■全称引入(UG):
■存在实例(ES):
■存在引入(EG):
基本证明方法
定义:
(1)公理:人们普遍公认地认为一些命题,因为这些无法证明,但相信是真命题的命题称作是公理。《几何原本》中还区分出了【公设】特指尺规作图的公理系统
(2)假设:同公理暂时无法证明的命题但假设其为真
(3)定理:从公理系统通过推理规则得到的真命题;引理(推论),从定理进一步得到的真命题但通常引理在语义上被描述为次一级不是太重要的定理
(4)定义:是指对一种性质的描述或者说是简记
■直接证明法,前提
■反证法,特别常用的一类证明方法,原理即逆证明否命题
■空证明,对于一个证明
■平凡证明,对于一个证明
■归谬法,相比于反证法其结构更加大。Ⅰ,若要证
■等价证明,即证明充分必要条件,需要从两个方面证明,将等价式转为条件式
■反例证明法,证明
■穷举证明法,简单来说列举所有可能情况,如果都满足就证明成功了,这种证明方法的关键在于(1)穷举只能是有限情况,哪怕是计算机超强算力也无法穷尽无限(2)穷举必须覆盖所有情况。不过无限情况的穷举也未必不可,例如按照费马的猜测,费马数
■存在性证明(Existence Proof)
存在性最简单的证明是一种构造性(constructive)的证明,如上述的费马数,因为我简单计算了
非构造性(nonconstructive)的证明和反例证明法的原理相同,
■唯一性证明(Uniqueness Proof)
数学证明中同样存在了大量的唯一性证明,它包含了两部分
1.证明存在性
2.证明唯一性
它首先要依托于存在性的证明,其次根据之前唯一量词的定义
需要假设两个元素
Peano公理系统与数学归纳法
皮亚诺(Peano)提出了自然数的公理系统,只有五条简单的规则。考虑到读者,这里不采用形式化以及集合论的表述
(1)0是自然数
(2)如果
前两条其实已经定性了自然数,0是自然数所以1也是自然数以此类推
(3)
(4)如果
这一条是在定义
(5)数学归纳法:已知任意公式
可以看到的是数学归纳法很明显的被框定在了自然数公理系统内,数学归纳法本身是证明任意情况下成立的命题,而且对象被限定为了自然数集,当然与自然数集同构的对象也是可以的,一般可以是整数集、有理数集、正整数等的同构集合,至于其同构性必须通过集合论才可证明,这里便不再说明。(备注,不可用作实数集、复数集等集合)
例:证明任意正整数
■完全归纳法(强归纳法、数学第二归纳法等名称),相比于第一归纳法而言,它更加灵活第一步同样是判断
例:证明算术基本定理——大于1的自然数必然可以分解为素数之积
显然
假设
那么k+1有两种情况,如果k+1是素数显然成立,如果k+1是合数,那么就
这是完全归纳法可以证明而数学第一归纳法无法证明的例子
前束范式(PNF,Prenex Normal Form)
已知一个一阶逻辑的命题,由于量词、命题逻辑联结词都是随意摆放的,但PNF将量词、命题逻辑规范化
其形式为
PNF的算法:
(1)消除公式中所有不是合取、析取、非的运算符
(2)所有非运算符内移消除
(3)将量词改名,如
(4)量词作用域扩展至整体
支持作者
【Buymeacoffee】https://www.buymeacoffee.com/WindWitch/e/156025
【冲呀】https://www.chongya.com/update/a226192d55c141e2b8b90d44e4a8b6ec
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~