DM@命题逻辑@联结词完备集
abstract
- n n n元真值函数和 n n n元命题公式间的对应关系
- 由
n
n
n元真值函数引入联结词的完备集概念
- 这从理论上解释了为什么仅使用 ¬ , ∨ , ∧ \neg,\vee,\wedge ¬,∨,∧三个联结词就可以表示任意命题公式
- 甚至可以用更少的联结词(比如2个或1个)来描述任意命题公式
- 高级联结词与非联结词和或非联结词可以单独构成联结词完备集
联结词的完备集
n n n元真值函数
-
定义 F : { 0 , 1 } n → 0 , 1 F:\{0,1\}^{n}\to{0,1} F:{0,1}n→0,1为** n n n元真值函数**
- 函数 F F F的自变量为 n n n个命题变项
- 定义域 { 0 , 1 } n \{0,1\}^{n} {0,1}n= { 0 ⋯ 0 , 0 ⋯ 1 , ⋯ , 1 ⋯ 1 } \{0\cdots{0},0\cdots{1},\cdots,1\cdots1\} {0⋯0,0⋯1,⋯,1⋯1},即有 0 , 1 0,1 0,1组成的长度为 n n n的符号串全体
- 值域为 { 0 , 1 } \{0,1\} {0,1}
-
n n n个命题变项可以构成 2 2 n 2^{2^{n}} 22n个不同的真值函数(类比于 n n n元命题公式共有 2 2 n 2^{2^{n}} 22n张不同的真值表)
- 不妨设所有 n n n元函数全体构成的函数集合为 S ( n ) S(n) S(n)
- 函数 f 1 ( x 1 , ⋯ , x n ) ∈ S ( n ) f_1(x_1,\cdots,x_n)\in{S(n)} f1(x1,⋯,xn)∈S(n)在 2 n 2^{n} 2n个赋值下分别有 2 n 2^{n} 2n个函数值,记为 f 1 ( x 1 ) , ⋯ , f 1 ( x n ) f_1(\bold{x}_1),\cdots,f_1(\bold{x}_n) f1(x1),⋯,f1(xn)
- 类似的设函数 f j f_j fj在 2 n 2^{n} 2n个赋值下的 2 n 2^{n} 2n个函数值,记为 f 2 ( x 1 ) , ⋯ , f 2 ( x n ) f_2(\bold{x}_1),\cdots,f_2(\bold{x}_n) f2(x1),⋯,f2(xn)
- 若存在 r ∈ { 1 , ⋯ , 2 n } r\in{\{1,\cdots,2^n\}} r∈{1,⋯,2n}使得 f 1 ( x r ) ≠ f 2 ( x r ) f_1(\bold{x}_r)\neq{f_2(\bold{x}_r)} f1(xr)=f2(xr)说明 f 1 , f 2 f_1,f_2 f1,f2是不同的函数,否则相同
- 显然, f ( x i ) f(\bold{x}_i) f(xi)函数取值仅有2种可能(0或1), i = 1 , ⋯ , 2 n i=1,\cdots,2^{n} i=1,⋯,2n;若逐个指定 f f f在 2 n 2^{n} 2n个自变量赋值下的函数值,将这 2 n 2^{n} 2n个函数值构成的序列记为 y 1 ⋯ y 2 n y_1\cdots y_{2^n} y1⋯y2n( y i ∈ { 0 , 1 } y_i\in\{0,1\} yi∈{0,1}, i = 1 , ⋯ , 2 n i=1,\cdots,2^{n} i=1,⋯,2n),则可以构成 2 2 n 2^{2^{n}} 22n个不同的序列,对应 2 2 n 2^{2^{n}} 22n个真值表(函数)
-
在不需要讨论具体函数而只需知道其变量个数时,不妨将 n n n元真值函数记为 F ( n ) F^{(n)} F(n),若需要区分不同的函数,则指定下标: F i ( n ) F_{i}^{(n)} Fi(n)
-
例如,一元真值函数有 2 2 1 = 4 2^{2^{1}}=4 221=4个
-
x 1 x_1 x1 F 0 ( 1 ) F_{0}^{(1)} F0(1) F 1 ( 1 ) F_{1}^{(1)} F1(1) F 2 ( 1 ) F_{2}^{(1)} F2(1) F 3 ( 1 ) F_{3}^{(1)} F3(1) 0 0 0 1 1 1 0 1 0 1
-
-
真值函数和命题公式的对应关系
- 每个主析取范式对应无穷多个等值的命题公式,每个命题公式又都有唯一等值的主析取范式
- 主合取范式和主析取范式相仿
- 每个真值函数对应于无穷多个等值的命题公式,每个命题公式又都对应唯一的真值函数
联结词完备集
- 设 S S S是一个联结词集合,若任何 n ( n ⩾ 1 ) n(n\geqslant{1}) n(n⩾1)元真值函数都可以由仅含 S S S中的联结词构成的公式表示,则 S S S是联结词完备集
- S = { ¬ , ∨ , ∧ } S=\{\neg,\vee,\wedge\} S={¬,∨,∧}是联结词完备集
- 证明:
- 任何 n ( n ⩾ 1 ) n(n\geqslant{1}) n(n⩾1)元真值函数都可以表示成唯一的一个主析取范式(真值函数 → \to →(变量-函数值表)真值表 → \to →主析取范式)
- 而主析取范式中仅含 { ¬ , ∨ , ∧ } \{\neg,\vee,\wedge\} {¬,∨,∧}中的联结词,所以 S = { ¬ , ∨ , ∧ } S=\{\neg,\vee,\wedge\} S={¬,∨,∧}是联结词完备集
推论
- 设
S
S
S是一个联结词完备集
- 若为
S
S
S添加更多联结词,得到
S
0
S_0
S0,则
S
0
S_0
S0也是完备集(包含冗余)
- 例如:{ ¬ , ∨ , ∧ , → \neg,\vee,\wedge,\to ¬,∨,∧,→};{ ¬ , ∨ , ∧ , → , ↔ \neg,\vee,\wedge,\to,\leftrightarrow ¬,∨,∧,→,↔}
- 若
S
S
S中的某个联结词
c
0
c_0
c0可以被
S
S
S中的其他联结词(设它们构成
S
S
S的子集
S
0
S_0
S0)表示,则
S
0
S_0
S0也是联结词完备集
-
S
1
S_1
S1={
¬
,
∨
\neg,\vee
¬,∨}
- 因为 p ∧ q p\wedge{q} p∧q ⇔ \Leftrightarrow ⇔ ¬ ( ¬ p ∨ ¬ q ) \neg{(\neg{p}\vee{\neg{q}})} ¬(¬p∨¬q)
-
S
2
S_2
S2={
¬
,
∧
\neg,\wedge
¬,∧}
- 因为 p ∨ q p\vee{q} p∨q ⇔ \Leftrightarrow ⇔ ¬ ( ¬ p ∧ ¬ q ) \neg{(\neg{p}\wedge{\neg{q}})} ¬(¬p∧¬q)
-
S
1
S_1
S1={
¬
,
∨
\neg,\vee
¬,∨}
- 若联结词完备集
S
S
S能被另一个联结词集合
S
0
S_0
S0中的联结词表示简称
S
S
S能被
S
0
S_0
S0表示,则
S
0
S_0
S0也是联结词完备集
-
S
3
S_3
S3={
¬
,
→
\neg,\to
¬,→}
- 考虑到 p → q p\to{q} p→q ⇔ \Leftrightarrow ⇔ ¬ p ∨ q \neg{p}\vee{q} ¬p∨q以及 p = ¬ ¬ p p=\neg{\neg{p}} p=¬¬p
- 有 p ∨ q p\vee{q} p∨q ⇔ \Leftrightarrow ⇔ ¬ ¬ p ∨ q \neg\neg{p}\vee{q} ¬¬p∨q ⇔ \Leftrightarrow ⇔ ¬ p → q \neg{p}\to{q} ¬p→q
- 可见 S 3 S_3 S3能够表示 S 2 S_2 S2,所以 S 3 S_3 S3也是联结词完备集
-
S
3
S_3
S3={
¬
,
→
\neg,\to
¬,→}
- 若为
S
S
S添加更多联结词,得到
S
0
S_0
S0,则
S
0
S_0
S0也是完备集(包含冗余)
常见的复合(高级)联结词
与非联结词
-
设 p , q p,q p,q是两个命题,复合命题" p p p与(合取) q q q的否定式" ( ¬ ( p ∧ q ) ) (\neg{(p\wedge{q})}) (¬(p∧q))称作 p , q p,q p,q的与非式,记为 p ↑ q = ¬ ( p ∧ q ) p\uparrow{q}=\neg{(p\wedge{q})} p↑q=¬(p∧q)
-
↑ \uparrow ↑是与非联结词
-
显然 p , q p,q p,q不同时为真时, p ↑ q p\uparrow{q} p↑q为真
-
p q p ↑ q p\uparrow{q} p↑q 0 0 1 0 1 1 1 0 1 1 1 0
或非联结词
-
复合命题" p p p或(析取) q q q的否定式"称作 p , q p,q p,q的或非式,记为 p ↓ q p\downarrow{q} p↓q= ¬ ( p ∨ q ) \neg(p\vee{q}) ¬(p∨q)
-
↓ \downarrow ↓称为或非联结词
-
显然仅当 p , q p,q p,q同时为假时 p ↓ q p\downarrow{q} p↓q为真
-
p q p ↓ q p\downarrow{q} p↓q 0 0 1 0 1 0 1 0 0 1 1 0
两个复合联结词的完备性
- {
↑
\uparrow
↑},{
↓
\downarrow
↓}都是联结词完备集
- ¬ p \neg{p} ¬p ⇔ \Leftrightarrow ⇔ p ↑ p p\uparrow{p} p↑p ⇔ \Leftrightarrow ⇔ p ↓ p p\downarrow{p} p↓p
- p ∧ q p\wedge{q} p∧q ⇔ \Leftrightarrow ⇔ ( p ↑ q ) ↑ ( p ↑ q ) (p\uparrow{q})\uparrow({p\uparrow{q}}) (p↑q)↑(p↑q)
- p ∨ q p\vee{q} p∨q ⇔ \Leftrightarrow ⇔ ( p ↓ q ) ↓ ( p ↓ q ) (p\downarrow{q})\downarrow{(p\downarrow{q})} (p↓q)↓(p↓q)
- 又因为 { ¬ , ∨ } \{\neg,\vee\} {¬,∨}, { ¬ , ∧ } \{\neg,\wedge\} {¬,∧},都是完备集,所以结论成立
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了