命题逻辑是最简单的逻辑系统。在定义一套形式系统时,我们首先需要定义形式系统允许使用的符号,称为字母表(alphabet),然后定义这些符号之间相互连接的规则,也就是形式系统的语法(syntax)。
命题逻辑的符号
命题逻辑的字母表包括以下内容:
变量符号(variable symbols):一般认为变量应当记为v 0 , v 1 , ⋯ v_0,v_1,\cdots v 0 , v 1 , ⋯ ,这里能够用自然数做下标,是因为我们默认命题逻辑能够使用的变量总数是至多可数的(有时为了方便,也可以把变量记为x , y , z , ⋯ x,y,z,\cdots x , y , z , ⋯ 或a , b , c , ⋯ a,b,c,\cdots a , b , c , ⋯ );
连接符号(connectives):非(¬ \neg ¬ ),与(∧ \land ∧ ),或(∨ \lor ∨ );
括号(parentheses):(( ( ( ),() ) ) )。括号用来区分命题中各个部分的优先级;
TRUE: 这四个英文字母整体是一个命题逻辑中的符号;
FALSE: 这五个英文字母整体是一个命题逻辑中的符号;
命题逻辑的语法
根据命题逻辑的字母表,我们可以把字母表中的字母任意排列连接成字符串,这些字符串可以是任意的,比如∧ v 0 ( ¬ v 1 \land v_0(\neg v_1 ∧ v 0 ( ¬ v 1 。然而并不是所有可能的组合形式的字符串都会是我们用到的,只有一小部分满足特定规则的字符串才会构成命题逻辑的“语言”,称为命题逻辑中的一个命题(proposition)。这些组合规则就成为命题逻辑的语法。
我们归纳地定义命题:
单个变量v i v_i v i 是一个命题;
TRUE是一个命题;FALSE是一个命题;
如果t 1 t_1 t 1 是一个命题,那么¬ t 1 \neg t_1 ¬ t 1 是一个命题,( t 1 ) (t_1) ( t 1 ) 是一个命题
如果t 1 , t 2 t_1,t_2 t 1 , t 2 是命题,那么t 1 ∧ t 2 t_1\land t_2 t 1 ∧ t 2 是一个命题,t 1 ∨ t 2 t_1\lor t_2 t 1 ∨ t 2 是一个命题;
这就是命题逻辑的全部语法了。
命题逻辑的语义
即便是符合命题逻辑语法的一个命题逻辑符号串,在没有被赋予语义之前也是没有意义的。“为一个命题赋予语义”就是用元语言(自然语言)对命题逻辑符号串做出解释。例如,如果我们有( a ∧ b ) ∧ TRUE (a \land b) \land \text{TRUE} ( a ∧ b ) ∧ TRUE ,我们如何对该符号串用做出解释?
在命题逻辑中,我们只关心命题的唯一一种属性:真或假。我们首先为每个原子变量赋予真或假的属性,然后建立一套规则推导出任何命题的真或假。
设变量符号集合记为Σ \Sigma Σ ,那么我们可以定义一个映射β : Σ → { t r u e , f a l s e } \beta:\Sigma\to\{true,false\} β : Σ → { t r u e , f a l se } ,称为Σ \Sigma Σ 上的一个真值指派(truth assignment)。注意,这里小写的t r u e , f a l s e true,false t r u e , f a l se 区别于命题逻辑符号中的TRUE , FALSE \text{TRUE},\text{FALSE} TRUE , FALSE :小写的是自然语言,大写的是命题逻辑符号。
基于真值指派β \beta β ,我们可以定义一个从所有命题逻辑命题到{ t r u e , f a l s e } \{true,false\} { t r u e , f a l se } 的映射,称为一个命题逻辑解释(interpretation),记为I \mathfrak{I} I 。这就定义了基于真值指派β \beta β 的命题逻辑语义。I \mathfrak{I} I 的定义规则如下:
如果p ∈ Σ p \in \Sigma p ∈ Σ ,那么I ( p ) = β ( p ) \mathfrak{I}(p)=\beta(p) I ( p ) = β ( p ) ;
I ( TRUE ) = t r u e , I ( FALSE ) = f a l s e \mathfrak{I}(\text{TRUE})=true,\mathfrak{I}(\text{FALSE})=false I ( TRUE ) = t r u e , I ( FALSE ) = f a l se ;
设φ \varphi φ 是满足命题逻辑语法的proposition,那么如果I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e 则I ( ¬ φ ) = f a l s e \mathfrak{I}(\neg\varphi)=false I ( ¬ φ ) = f a l se ;如果I ( φ ) = f a l s e \mathfrak{I}(\varphi)=false I ( φ ) = f a l se 则I ( ¬ φ ) = t r u e \mathfrak{I}(\neg\varphi)=true I ( ¬ φ ) = t r u e ;
设φ \varphi φ 是满足命题逻辑语法的proposition,那么如果I ( ( φ ) ) = I ( φ ) \mathfrak{I}((\varphi))=\mathfrak{I}(\varphi) I (( φ )) = I ( φ ) ;
设φ , ψ \varphi,\psi φ , ψ 是满足命题逻辑语法的proposition,那么φ ∧ ψ , φ ∨ ψ \varphi\land \psi,\varphi\lor\psi φ ∧ ψ , φ ∨ ψ 的语义通过下面的表格来定义,称为真值表(truth table):
I ( φ ) \mathfrak{I}(\varphi) I ( φ ) I ( ψ ) \mathfrak{I}(\psi) I ( ψ ) I ( φ ∧ ψ ) \mathfrak{I}(\varphi \land \psi) I ( φ ∧ ψ ) I ( φ ∨ ψ ) \mathfrak{I}(\varphi \lor \psi) I ( φ ∨ ψ ) t r u e true t r u e t r u e true t r u e t r u e true t r u e t r u e true t r u e t r u e true t r u e f a l s e false f a l se f a l s e false f a l se t r u e true t r u e f a l s e false f a l se t r u e true t r u e f a l s e false f a l se t r u e true t r u e f a l s e false f a l se f a l s e false f a l se f a l s e false f a l se f a l s e false f a l se
永真式,矛盾式,可满足性
有一些命题是特殊的。
有的命题在任何真值指派(解释)下都永远取t r u e true t r u e ,例如TRUE \text{TRUE} TRUE ,TRUE ∨ v 0 \text{TRUE}\lor v_0 TRUE ∨ v 0 ,a ∨ ¬ a a \lor \neg a a ∨ ¬ a 等等。我们把这样的命题称为一个永真式(tautology)。定义:命题φ \varphi φ 是永真式,如果在任何解释I \mathfrak{I} I 下都有I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e 。
有的命题在任何解释下都永远取f a l s e false f a l se ,例如FALSE \text{FALSE} FALSE ,FALSE ∧ v 0 \text{FALSE}\land v_0 FALSE ∧ v 0 等等。我们把这样的命题称为一个矛盾式(contradiction)。定义:命题φ \varphi φ 是永真式,如果在任何解释I \mathfrak{I} I 下都有I ( φ ) = f a l s e \mathfrak{I}(\varphi)=false I ( φ ) = f a l se 。
有的命题满足:存在至少一个解释I \mathfrak{I} I 使它取t r u e true t r u e ,例如a ∧ b a \land b a ∧ b ,只需取I ( a ) = I ( b ) = t r u e \mathfrak{I}(a)=\mathfrak{I}(b)=true I ( a ) = I ( b ) = t r u e ,就有I ( a ∧ b ) = t r u e \mathfrak{I}(a\land b)=true I ( a ∧ b ) = t r u e 。我们把这样的命题称为是可满足的(satisfiable)。定义:命题φ \varphi φ 是可满足的,如果存在一个解释I \mathfrak{I} I 使得I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e 。
Remark: 我们必须区分“语言”和“语言所指向的东西”。命题的语义是由元语言(自然语言)赋予的,并不意味着命题的语义是一串元语言符号。事实上,对每个原子变量赋予真值,然后根据上面这些规则可以推出命题的真值,这一过程是客观、唯一的,并不依赖于自然语言的描述。自然语言只是帮助阅读这篇文章的人理解“语义是什么”,而不是“语义本身”。那么“语义本身”是什么呢?依据维特根斯坦,这是不可言说的,但是我们已经通过语言领会了它。
语义后承&语义等价
有一些“命题对(pair)”之间有特殊的关系。例如,对于任何一个(关于a , b a,b a , b 的)解释I \mathfrak{I} I ,只要成立I ( a ∧ b ) = t r u e \mathfrak{I}(a \land b)=true I ( a ∧ b ) = t r u e ,就一定成立I ( a ) = t r u e \mathfrak{I}(a)=true I ( a ) = t r u e 。所以,自然语言通常会说“‘表达式a ∧ b a \land b a ∧ b 为真’能推出‘表达式a a a 为真’”。我们定义,如果对于两个命题φ , ψ \varphi,\psi φ , ψ ,如果对于任何一个解释I \mathfrak{I} I 都成立“只要I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e ,就有I ( ψ ) = t r u e \mathfrak{I}(\psi)=true I ( ψ ) = t r u e ”,就称ψ \psi ψ 为φ \varphi φ 的语义后承(consequence),记为φ ⊨ ψ \varphi \models \psi φ ⊨ ψ 。
以上定义可以推广。设Φ \Phi Φ 是一个命题集合,ψ \psi ψ 是一个命题。如果对于任何一个解释I \mathfrak{I} I 都成立“只要满足‘所有φ ∈ Φ \varphi\in \Phi φ ∈ Φ 都有I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e ’,就有‘I ( ψ ) = t r u e \mathfrak{I}(\psi)=true I ( ψ ) = t r u e ’”,就称命题ψ \psi ψ 是命题集合Φ \Phi Φ 的语义后承,用同样的符号记为Φ ⊨ ψ \Phi \models \psi Φ ⊨ ψ 。
如果ψ \psi ψ 是永真式,那么它可以作为任何命题的语义后承。换言之,即便Φ \Phi Φ 取空集,也有:∅ ⊨ ψ \varnothing \models \psi ∅ ⊨ ψ 。所以,我们经常用符号“⊨ φ \models \varphi ⊨ φ ”来表示φ \varphi φ 是永真式。
如果对于两个命题φ , ψ \varphi,\psi φ , ψ ,如果对于任何一个解释I \mathfrak{I} I 都成立“I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e 当且仅当I ( ψ ) = t r u e \mathfrak{I}(\psi)=true I ( ψ ) = t r u e ”,就称φ , ψ \varphi,\psi φ , ψ 是语义等价(equivalent)的。例如,v 0 v_0 v 0 和¬ ( ¬ v 0 ) \neg(\neg v_0) ¬ ( ¬ v 0 ) 是语义等价的。在没有歧义的情况下,我们用符号φ ≡ ψ \varphi \equiv \psi φ ≡ ψ 来表示φ , ψ \varphi,\psi φ , ψ 语义等价。
显然,“φ ≡ ψ \varphi\equiv \psi φ ≡ ψ ”成立当且仅当“φ ⊨ ψ \varphi \models \psi φ ⊨ ψ 且ψ ⊨ φ \psi\models \varphi ψ ⊨ φ ”成立。
Remark1: 永真式、矛盾式、可满足性、语义后承、语义等价,这些都是关于命题本身的性质,而与具体的解释的选取无关。例如,特别要注意,我们讨论的“后承”不是选定某一解释之后的后承关系,而是在任何解释下都成立的后承关系的。
Remark2: 我们如何“证明”两个命题是语义后承关系,或语义等价关系?一如我们如何“证明”一个命题是否是永真式。唯一的判定标准是按照真值指派代入,然后按照语义的规则计算,再依据永真式、语义后承关系、语义等价关系的定义来做判断。一旦真值指派确定,那么一个命题逻辑符号串是否是永真式,两个命题逻辑符号串之间是否是语义后承关系,答案是唯一确定的。我们可以用自然语言写一个“证明”来说明在某一特定解释下,两个命题之间究竟是否满足语义后承关系。当然,这个“证明”只是为了帮助我们揭示答案,而不需要满足任何语法规则(如果愿意的话甚至可以通过非文字的方式,比如说话,或者画图)。
命题逻辑语义的性质
根据命题逻辑语义的定义,我们可以“证明”以下这些重要性质成立:
⊨ φ ∨ ¬ φ \models \varphi \lor \neg\varphi ⊨ φ ∨ ¬ φ ;这称为排中律(law of excluded middle)
{ φ , ψ } ⊨ φ ∧ ψ \{\varphi,\psi\}\models \varphi \land \psi { φ , ψ } ⊨ φ ∧ ψ ;
φ ∧ ψ ⊨ φ \varphi\land \psi \models \varphi φ ∧ ψ ⊨ φ ;φ ∧ ψ ⊨ ψ \varphi\land \psi \models \psi φ ∧ ψ ⊨ ψ ;
φ ⊨ φ ∨ ψ \varphi \models \varphi\lor \psi φ ⊨ φ ∨ ψ ;ψ ⊨ φ ∨ ψ \psi \models \varphi \lor \psi ψ ⊨ φ ∨ ψ ;
φ ≡ ¬ ( ¬ φ ) \varphi\equiv \neg(\neg \varphi) φ ≡ ¬ ( ¬ φ ) ;这称为双重否定律(law of double negation)
φ ∧ φ ≡ φ \varphi\land \varphi\equiv \varphi φ ∧ φ ≡ φ ,φ ∨ φ ≡ φ \varphi\lor \varphi\equiv \varphi φ ∨ φ ≡ φ ;这称为幂等律(idempotant law)
φ ∧ ψ ≡ ψ ∧ φ \varphi \land \psi \equiv \psi \land \varphi φ ∧ ψ ≡ ψ ∧ φ ;这称为与交换律(commutative law for and)
φ ∨ ψ ≡ ψ ∨ φ \varphi \lor \psi \equiv \psi \lor \varphi φ ∨ ψ ≡ ψ ∨ φ ;这称为或交换律(commutative law for or)
( φ ∧ ψ ) ∧ χ ≡ φ ∧ ( ψ ∧ χ ) (\varphi \land \psi)\land \chi \equiv \varphi \land (\psi\land \chi) ( φ ∧ ψ ) ∧ χ ≡ φ ∧ ( ψ ∧ χ ) ;这称为与结合律(commutative law for and)
( φ ∨ ψ ) ∨ χ ≡ φ ∨ ( ψ ∨ χ ) (\varphi \lor \psi)\lor \chi \equiv \varphi \lor (\psi\lor \chi) ( φ ∨ ψ ) ∨ χ ≡ φ ∨ ( ψ ∨ χ ) ;这称为或结合律(commutative law for and)
φ ∨ ( ψ ∧ χ ) ≡ ( φ ∨ ψ ) ∧ ( φ ∨ χ ) \varphi \lor (\psi\land \chi) \equiv (\varphi \lor \psi) \land (\varphi\lor \chi) φ ∨ ( ψ ∧ χ ) ≡ ( φ ∨ ψ ) ∧ ( φ ∨ χ ) ;φ ∧ ( ψ ∨ χ ) ≡ ( φ ∧ ψ ) ∨ ( φ ∧ χ ) \varphi \land (\psi\lor \chi) \equiv (\varphi \land \psi) \lor (\varphi\land \chi) φ ∧ ( ψ ∨ χ ) ≡ ( φ ∧ ψ ) ∨ ( φ ∧ χ ) ;这称为分配律(distributive laws)
¬ ( φ ∧ ψ ) ≡ ( ¬ φ ) ∨ ( ¬ ψ ) \neg(\varphi\land \psi)\equiv (\neg \varphi)\lor (\neg \psi) ¬ ( φ ∧ ψ ) ≡ ( ¬ φ ) ∨ ( ¬ ψ ) ;¬ ( φ ∨ ψ ) ≡ ( ¬ φ ) ∧ ( ¬ ψ ) \neg(\varphi\lor \psi)\equiv (\neg \varphi)\land (\neg\psi) ¬ ( φ ∨ ψ ) ≡ ( ¬ φ ) ∧ ( ¬ ψ ) ;这称为德摩根律(De Morgan's law)
φ ∨ ( φ ∧ ψ ) ≡ φ \varphi \lor (\varphi \land \psi)\equiv \varphi φ ∨ ( φ ∧ ψ ) ≡ φ ;φ ∧ ( φ ∨ ψ ) ≡ φ \varphi \land (\varphi \lor \psi)\equiv \varphi φ ∧ ( φ ∨ ψ ) ≡ φ ;这称为吸收律(absorption laws)
如果φ ⊨ ψ \varphi\models \psi φ ⊨ ψ 并且ψ ⊨ χ \psi \models \chi ψ ⊨ χ ,那么φ ⊨ χ \varphi \models \chi φ ⊨ χ ;这称为语义后承关系的传递性(transitivity of consequence)
如果φ ≡ ψ \varphi\equiv \psi φ ≡ ψ 并且ψ ≡ χ \psi \equiv \chi ψ ≡ χ ,那么φ ≡ χ \varphi \equiv \chi φ ≡ χ ;这称为语义等价关系的传递性(transitivity of equivalence)
如果φ ≡ ψ \varphi\equiv \psi φ ≡ ψ ,那么¬ φ ≡ ¬ ψ \neg\varphi \equiv \neg\psi ¬ φ ≡ ¬ ψ ;如果φ 1 ≡ φ 2 \varphi_1\equiv \varphi_2 φ 1 ≡ φ 2 并且ψ 1 ≡ ψ 2 \psi_1\equiv \psi_2 ψ 1 ≡ ψ 2 ,那么φ 1 ∧ ψ 1 ≡ φ 2 ∧ ψ 2 \varphi_1\land \psi_1\equiv \varphi_2\land \psi_2 φ 1 ∧ ψ 1 ≡ φ 2 ∧ ψ 2 ;如果φ 1 ≡ φ 2 \varphi_1\equiv \varphi_2 φ 1 ≡ φ 2 并且ψ 1 ≡ ψ 2 \psi_1\equiv \psi_2 ψ 1 ≡ ψ 2 ,那么φ 1 ∨ ψ 1 ≡ φ 2 ∨ ψ 2 \varphi_1\lor \psi_1\equiv \varphi_2\lor \psi_2 φ 1 ∨ ψ 1 ≡ φ 2 ∨ ψ 2 ;这三者分别称为语义等价关系关于非、与、或的合同性(congruence property)
对于任意命题集合Φ \Phi Φ ,如果Φ ∪ { φ 1 } ⊨ ψ \Phi \cup \{\varphi_1\}\models \psi Φ ∪ { φ 1 } ⊨ ψ 且Φ ∪ { φ 2 } ⊨ ψ \Phi \cup \{\varphi_2\}\models \psi Φ ∪ { φ 2 } ⊨ ψ ,那么Φ ∪ { φ 1 ∨ φ 2 } ⊨ ψ \Phi \cup\{\varphi_1 \lor \varphi_2\}\models \psi Φ ∪ { φ 1 ∨ φ 2 } ⊨ ψ ;
对于任意命题集合Φ \Phi Φ ,如果Φ ∪ { ¬ φ } ⊨ ψ \Phi \cup \{\neg\varphi\}\models \psi Φ ∪ { ¬ φ } ⊨ ψ ,那么Φ ∪ { ¬ ψ } ⊨ φ \Phi \cup\{\neg\psi\}\models \varphi Φ ∪ { ¬ ψ } ⊨ φ ;特别地,当Φ = ∅ \Phi=\varnothing Φ = ∅ 时,我们有¬ φ ⊨ ψ \neg\varphi \models \psi ¬ φ ⊨ ψ 可以推出¬ ψ ⊨ φ \neg\psi \models \varphi ¬ ψ ⊨ φ 。结合双重否定律以及传递性,我们得到¬ φ ⊨ ψ \neg \varphi \models \psi ¬ φ ⊨ ψ 当且仅当¬ ψ ⊨ φ \neg\psi\models \varphi ¬ ψ ⊨ φ 。这称为逆否律(law of contrapositive)
所有以上这些性质都是可以“证明”的。再次提醒,这里所说的“证明”只是对事实的解释说明。下面我们展示一些证明的例子。这些证明中我们也大量运用了假设和推理,但这些假设和推理与命题逻辑中定义的“语义后承”无关。自然语言的假设和推理是建立在我们对“命题逻辑的语义的定义”这一客观对象的共同理解的基础之上的。我们可以把命题逻辑的这些语义性质理解为一些人们发现的自然规律,而证明中的所有假设和推理只是在用“物理定律”(语义的定义)论证为什么存在这些自然规律。
证明排中律⊨ φ ∨ ¬ φ \models \varphi \lor \neg\varphi ⊨ φ ∨ ¬ φ :
即证对于任何解释I \mathfrak{I} I ,都有I ( φ ∨ ¬ φ ) = t r u e \mathfrak{I}(\varphi\lor \neg\varphi)=true I ( φ ∨ ¬ φ ) = t r u e 。分类讨论,若I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e ,那么根据真值表可知I ( φ ∨ ¬ φ ) = t r u e \mathfrak{I}(\varphi \lor \neg\varphi)=true I ( φ ∨ ¬ φ ) = t r u e ;若I ( φ ) = f a l s e \mathfrak{I}(\varphi)=false I ( φ ) = f a l se ,那么I ( ¬ φ ) = t r u e \mathfrak{I}(\neg\varphi)=true I ( ¬ φ ) = t r u e ,根据真值表可知I ( φ ∨ ¬ φ ) = t r u e \mathfrak{I}(\varphi \lor \neg\varphi)=true I ( φ ∨ ¬ φ ) = t r u e 。证毕。
证明德摩根律¬ ( φ ∧ ψ ) ≡ ( ¬ φ ) ∨ ( ¬ ψ ) \neg(\varphi\land \psi)\equiv (\neg \varphi)\lor (\neg \psi) ¬ ( φ ∧ ψ ) ≡ ( ¬ φ ) ∨ ( ¬ ψ ) :
即证对于任何解释I \mathfrak{I} I ,都有I ( ¬ ( φ ∧ ψ ) ) = t r u e \mathfrak{I}(\neg(\varphi\land \psi))=true I ( ¬ ( φ ∧ ψ )) = t r u e 当且仅当I ( ( ¬ φ ) ∨ ( ¬ ψ ) ) = t r u e \mathfrak{I}((\neg \varphi)\lor (\neg \psi))=true I (( ¬ φ ) ∨ ( ¬ ψ )) = t r u e 。左推右,若I ( ¬ ( φ ∧ ψ ) ) = t r u e \mathfrak{I}(\neg(\varphi\land \psi))=true I ( ¬ ( φ ∧ ψ )) = t r u e ,那么I ( φ ∧ ψ ) = f a l s e \mathfrak{I}(\varphi\land \psi)=false I ( φ ∧ ψ ) = f a l se ,查询真值表可知I ( φ ) \mathfrak{I}(\varphi) I ( φ ) 与I ( ψ ) \mathfrak{I}(\psi) I ( ψ ) 中至少有一个是f a l s e false f a l se 。若I ( φ ) \mathfrak{I}(\varphi) I ( φ ) 为false,那么I ( ¬ φ ) = t r u e \mathfrak{I}(\neg \varphi)=true I ( ¬ φ ) = t r u e ,根据真值表可知I ( ( ¬ φ ) ∨ ( ¬ ψ ) ) = t r u e \mathfrak{I}((\neg \varphi)\lor (\neg \psi))=true I (( ¬ φ ) ∨ ( ¬ ψ )) = t r u e ;若I ( ψ ) \mathfrak{I}(\psi) I ( ψ ) 为false,那么I ( ¬ ψ ) = t r u e \mathfrak{I}(\neg \psi)=true I ( ¬ ψ ) = t r u e ,根据真值表可知I ( ( ¬ φ ) ∨ ( ¬ ψ ) ) = t r u e \mathfrak{I}((\neg \varphi)\lor (\neg \psi))=true I (( ¬ φ ) ∨ ( ¬ ψ )) = t r u e 。右推左,若I ( ( ¬ φ ) ∨ ( ¬ ψ ) ) = t r u e \mathfrak{I}((\neg \varphi)\lor (\neg \psi))=true I (( ¬ φ ) ∨ ( ¬ ψ )) = t r u e ,那么I ( ¬ φ ) \mathfrak{I}(\neg\varphi) I ( ¬ φ ) 和I ( ¬ ψ ) \mathfrak{I}(\neg\psi) I ( ¬ ψ ) 中至少有一个为t r u e true t r u e ,所以I ( φ ) \mathfrak{I}(\varphi) I ( φ ) 和I ( ψ ) \mathfrak{I}(\psi) I ( ψ ) 中至少有一个为f a l s e false f a l se ,所以I ( φ ∧ ψ ) = f a l s e \mathfrak{I}(\varphi\land \psi)=false I ( φ ∧ ψ ) = f a l se ,所以I ( ¬ ( φ ∧ ψ ) ) = t r u e \mathfrak{I}(\neg(\varphi\land \psi))=true I ( ¬ ( φ ∧ ψ )) = t r u e 。
证明逆否律“对于任意命题集合Φ \Phi Φ ,如果Φ ∪ { ¬ φ } ⊨ ψ \Phi \cup \{\neg\varphi\}\models \psi Φ ∪ { ¬ φ } ⊨ ψ ,那么Φ ∪ { ¬ ψ } ⊨ φ \Phi \cup\{\neg\psi\}\models \varphi Φ ∪ { ¬ ψ } ⊨ φ ”:
要证Φ ∪ { ¬ ψ } ⊨ φ \Phi \cup\{\neg\psi\}\models \varphi Φ ∪ { ¬ ψ } ⊨ φ ,也就是要证对于任何解释I \mathfrak{I} I ,如果I ( Φ ∪ { ¬ ψ } ) = t r u e \mathfrak{I}(\Phi\cup \{\neg \psi\})=true I ( Φ ∪ { ¬ ψ }) = t r u e 则I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e 。根据I ( Φ ∪ { ¬ ψ } ) = t r u e \mathfrak{I}(\Phi\cup \{\neg \psi\})=true I ( Φ ∪ { ¬ ψ }) = t r u e ,可知I ( Φ ) = t r u e \mathfrak{I}(\Phi)=true I ( Φ ) = t r u e (也即对于任意ϕ ∈ Φ \phi \in \Phi ϕ ∈ Φ ,I ( ϕ ) = t r u e \mathfrak{I}(\phi)=true I ( ϕ ) = t r u e ),I ( ψ ) = f a l s e \mathfrak{I}(\psi)=false I ( ψ ) = f a l se 。现在,如果I ( φ ) = f a l s e \mathfrak{I}(\varphi)=false I ( φ ) = f a l se ,那么I ( ¬ φ ) = t r u e \mathfrak{I}(\neg\varphi)=true I ( ¬ φ ) = t r u e ,于是根据Φ ∪ { ¬ φ } ⊨ ψ \Phi \cup \{\neg\varphi\}\models \psi Φ ∪ { ¬ φ } ⊨ ψ 可知I ( ψ ) = t r u e \mathfrak{I}(\psi)=true I ( ψ ) = t r u e ,矛盾。因此I ( φ ) = t r u e \mathfrak{I}(\varphi)=true I ( φ ) = t r u e 。证毕。
功能完全性
在命题逻辑中, 我们只引入了三个连接词符号¬ , ∧ , ∨ \neg,\land,\lor ¬ , ∧ , ∨ ,并给出了它们在真值指派下的语义。那么,重要的问题是:以上三个符号及其语义的定义是否就已经完全够用了呢?是否对于任意有限个变量Σ = { v 1 , ⋯ , v n } \Sigma=\{v_1,\cdots,v_n\} Σ = { v 1 , ⋯ , v n } ,任何真值表f : Σ → { t r u e , f a l s e } f:\Sigma\to \{true,false\} f : Σ → { t r u e , f a l se } 都能用仅有¬ , ∧ , ∨ \neg,\land,\lor ¬ , ∧ , ∨ 三个连接词构成的命题来表示?这就是命题逻辑中的{ ¬ , ∧ , ∨ } \{\neg,\land,\lor\} { ¬ , ∧ , ∨ } -功能完全性问题。
我们可以从搜索的角度理解功能完全性这个问题:对于任何一个真值表,我们可以按照长度穷举所有符合语法的命题逻辑命题,检查该命题是否满足真值表。但搜索无法构成一个有效的证明,因为真值表有无穷多个,并且如果找到了一个不存在命题与之对应的真值表,穷举就会无穷进行下去不会停止。所以,我们再次需要通过“证明”的方式来解决功能完全性问题。
析取范式&合取范式
人们注意到一件重要的事:不必关注所有符合语法的命题逻辑命题。有一些命题虽然合法,但存在比它形式更简单的语义等价命题。例如,v 0 , ¬ ¬ v 0 , ¬ ¬ ¬ ¬ v 0 v_0,\neg\neg v_0,\neg\neg\neg\neg v_0 v 0 , ¬¬ v 0 , ¬¬¬¬ v 0 全是语义等价的,那么我们就不必考虑其它的,只需考虑v 0 v_0 v 0 这一个命题。换言之,一张真值表会有无穷个与之对应的命题,而我们只需考虑其中形式最“规范”的命题形式。只要我们给出一个“什么叫规范”的定义,我们就提出了一种命题“范式(normal form)”。最著名的范式就是析取范式和合取范式。
析取范式(Disjunctive Normal Forms, DNF)的定义:单个变量符号v v v 或带有negation的变量符号¬ v \neg v ¬ v 称为一个literal(注意不包含TRUE \text{TRUE} TRUE 或FALSE \text{FALSE} FALSE );若干literal之间用“∧ \land ∧ ”连接而成的命题称为一个合取子句(conjunctive clause);若干个合取子句之间用“∨ \lor ∨ ”连接而成的命题称为一个析取范式(disjunctive normal form)。例如,a ∨ ( b ∧ ¬ a ∧ c ) a \lor (b \land \neg a \land c) a ∨ ( b ∧ ¬ a ∧ c ) 就是一个DNF。( a ∨ b ) ∧ ( b ∨ c ) (a \lor b)\land (b \lor c) ( a ∨ b ) ∧ ( b ∨ c ) ,( ¬ ¬ a ∧ b ) ∨ ( c ∧ d ) (\neg\neg a \land b)\lor (c \land d) ( ¬¬ a ∧ b ) ∨ ( c ∧ d ) 等不是DNF。
下面我们证明,任何一个命题都语义等价于某一个析取范式。固定一个命题φ \varphi φ ,设φ \varphi φ 中用到的原子变量记为v 1 , ⋯ , v n v_1,\cdots,v_n v 1 , ⋯ , v n (n ∈ N n\in \mathbb{N} n ∈ N ,任何命题都是有限长的,因此只包含有限多个变量)。我们只需构造一个DNF ψ \psi ψ ,使得在2 n 2^n 2 n 个可能的真值指派所形成的解释I 1 , ⋯ , I 2 n \mathfrak{I}_1,\cdots,\mathfrak{I}_{2^n} I 1 , ⋯ , I 2 n 下,始终有I k ( φ ) = t r u e \mathfrak{I}_k(\varphi)=true I k ( φ ) = t r u e 当且仅当I k ( ψ ) = t r u e \mathfrak{I}_k(\psi)=true I k ( ψ ) = t r u e 。只需这样构造ψ \psi ψ :
⋁ k ∈ [ 2 n ] , I k ( φ ) = t r u e ( ⋀ i ∈ [ n ] , I k ( v i ) = t r u e v i ∧ ⋀ i ∈ [ n ] , I k ( v i ) = f a l s e ¬ v i ) \bigvee_{k \in [2^n],\mathfrak{I}_k(\varphi)=true}\left(\bigwedge_{i\in [n],\mathfrak{I}_k(v_i)=true}v_i \land \bigwedge_{i\in [n],\mathfrak{I}_k(v_i)=false}\neg v_i\right) k ∈ [ 2 n ] , I k ( φ ) = t r u e ⋁ i ∈ [ n ] , I k ( v i ) = t r u e ⋀ v i ∧ i ∈ [ n ] , I k ( v i ) = f a l se ⋀ ¬ v i
可见,若I s ( φ ) = t r u e \mathfrak{I}_s(\varphi)=true I s ( φ ) = t r u e ,则I s ( ⋀ i ∈ [ n ] , I s ( v i ) = t r u e v i ∧ ⋀ i ∈ [ n ] , I s ( v i ) = f a l s e ¬ v i ) = t r u e \mathfrak{I}_s\left(\bigwedge\limits_{i\in [n],\mathfrak{I}_s(v_i)=true}v_i \land \bigwedge\limits_{i\in [n],\mathfrak{I}_s(v_i)=false}\neg v_i\right)=true I s ( i ∈ [ n ] , I s ( v i ) = t r u e ⋀ v i ∧ i ∈ [ n ] , I s ( v i ) = f a l se ⋀ ¬ v i ) = t r u e ,因此I k ( ψ ) = t r u e \mathfrak{I}_k(\psi)=true I k ( ψ ) = t r u e ;若I s ( ψ ) = t r u e \mathfrak{I}_s(\psi)=true I s ( ψ ) = t r u e ,则至少存在一个满足I k ( φ ) = t r u e \mathfrak{I}_k(\varphi)=true I k ( φ ) = t r u e 的k k k 使得I s ( ⋀ i ∈ [ n ] , I k ( v i ) = t r u e v i ∧ ⋀ i ∈ [ n ] , I k ( v i ) = f a l s e ¬ v i ) = t r u e \mathfrak{I}_s\left(\bigwedge\limits_{i\in [n],\mathfrak{I}_k(v_i)=true}v_i \land \bigwedge\limits_{i\in [n],\mathfrak{I}_k(v_i)=false}\neg v_i\right)=true I s ( i ∈ [ n ] , I k ( v i ) = t r u e ⋀ v i ∧ i ∈ [ n ] , I k ( v i ) = f a l se ⋀ ¬ v i ) = t r u e ,这意味着对于每个v i v_i v i ,I k ( v i ) = I s ( v i ) \mathfrak{I}_k(v_i)=\mathfrak{I}_s(v_i) I k ( v i ) = I s ( v i ) ,所以s = k s=k s = k ,所以I s ( φ ) = t r u e \mathfrak{I}_s(\varphi)=true I s ( φ ) = t r u e 。这就说明对于任意k ∈ [ 2 n ] k \in [2^n] k ∈ [ 2 n ] ,I k ( φ ) = t r u e \mathfrak{I}_k(\varphi)=true I k ( φ ) = t r u e 当且仅当I k ( ψ ) = t r u e \mathfrak{I}_k(\psi)=true I k ( ψ ) = t r u e 。所以φ \varphi φ 与ψ \psi ψ 语义等价。
我们可以定义和析取范式类似的另一类范式,称为合取范式。同样,把单个变量符号v v v 或带有negation的变量符号¬ v \neg v ¬ v 称为一个literal;若干literal之间用“∨ \lor ∨ ”连接而成的命题称为一个析取子句(disjunctive clause);若干个合取子句之间用“∧ \land ∧ ”连接而成的命题称为一个合取范式(conjunctive normal form, CNF)。
我们可以利用我们在析取范式中得到的结果,证明任何一个命题都语义等价于某一个合取范式。固定一个命题φ \varphi φ ,我们可以构造与其否定命题¬ φ \neg \varphi ¬ φ 语义等价的析取范式ψ = ⋁ k ∈ [ 2 n ] , I k ( ¬ φ ) = t r u e ( ⋀ i ∈ [ n ] , I k ( v i ) = t r u e v i ∧ ⋀ i ∈ [ n ] , I k ( v i ) = f a l s e ¬ v i ) \psi = \bigvee\limits_{k \in [2^n],\mathfrak{I}_k(\neg\varphi)=true}\left(\bigwedge\limits_{i\in [n],\mathfrak{I}_k(v_i)=true}v_i \land \bigwedge\limits_{i\in [n],\mathfrak{I}_k(v_i)=false}\neg v_i\right) ψ = k ∈ [ 2 n ] , I k ( ¬ φ ) = t r u e ⋁ ( i ∈ [ n ] , I k ( v i ) = t r u e ⋀ v i ∧ i ∈ [ n ] , I k ( v i ) = f a l se ⋀ ¬ v i ) 。那么,φ \varphi φ 语义等价于¬ ψ \neg\psi ¬ ψ ,根据De Morgan's law,¬ ψ = ⋀ k ∈ [ 2 n ] , I k ( ¬ φ ) = t r u e ( ⋁ i ∈ [ n ] , I k ( v i ) = t r u e ¬ v i ∨ ⋁ i ∈ [ n ] , I k ( v i ) = f a l s e v i ) \neg \psi = \bigwedge\limits_{k \in [2^n],\mathfrak{I}_k(\neg\varphi)=true}\left(\bigvee\limits_{i\in [n],\mathfrak{I}_k(v_i)=true}\neg v_i \lor \bigvee\limits_{i\in [n],\mathfrak{I}_k(v_i)=false}v_i\right) ¬ ψ = k ∈ [ 2 n ] , I k ( ¬ φ ) = t r u e ⋀ ( i ∈ [ n ] , I k ( v i ) = t r u e ⋁ ¬ v i ∨ i ∈ [ n ] , I k ( v i ) = f a l se ⋁ v i ) ,这恰好是一个合取范式。
{ ¬ , ∧ , ∨ } \{\neg,\land,\lor\} { ¬ , ∧ , ∨ } -功能完全性
根据我们已经得到的结论——“任何命题都语义等价于某个析取范式”——我们几乎已经证明了{ ¬ , ∧ , ∨ } \{\neg,\land,\lor\} { ¬ , ∧ , ∨ } -功能完全性了。对于任意一个真值表f f f ,我们只需取函数值为t r u e true t r u e 的行,依据每一行的内容构造合取子句,再把它们用∨ \lor ∨ 连接。
例如,下面这张真值表可以这样构造析取范式:( a ∧ b ) ∨ ( ¬ a ∧ b ) ∨ ( ¬ a ∧ ¬ b ) (a \land b) \lor (\neg a \land b)\lor (\neg a \land \neg b) ( a ∧ b ) ∨ ( ¬ a ∧ b ) ∨ ( ¬ a ∧ ¬ b ) 。
a a a b b b f f f t r u e true t r u e t r u e true t r u e t r u e true t r u e t r u e true t r u e f a l s e false f a l se f a l s e false f a l se f a l s e false f a l se t r u e true t r u e t r u e true t r u e f a l s e false f a l se f a l s e false f a l se t r u e true t r u e
既然任何真值表都能找到一个析取范式与之对应,那么说明任何真值表都能找到一个命题逻辑命题与之对应。所以{ ¬ , ∧ , ∨ } \{\neg,\land,\lor\} { ¬ , ∧ , ∨ } -功能完全性成立。
{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } -功能完全性
事实上,连符号∨ \lor ∨ 也是多余的。我们可以证明{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } 已经具有功能完全性了。我们归纳地证明,对于任意含有符号{ ¬ , ∧ , ∨ } \{\neg,\land,\lor\} { ¬ , ∧ , ∨ } 的命题φ \varphi φ ,存在一个只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } 的命题φ ′ \varphi' φ ′ 满足φ ≡ φ ′ \varphi\equiv \varphi' φ ≡ φ ′ 。
归纳基础:若φ \varphi φ 为v i v_i v i 或TRUE , FALSE \text{TRUE},\text{FALSE} TRUE , FALSE ,只需取φ ′ \varphi' φ ′ 为φ \varphi φ ;
归纳步骤:
(1) 假设φ ≡ φ ′ \varphi\equiv \varphi' φ ≡ φ ′ 且φ ′ \varphi' φ ′ 只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } ,则根据¬ \neg ¬ 的congruency有¬ φ ≡ ¬ φ ′ \neg\varphi \equiv \neg \varphi' ¬ φ ≡ ¬ φ ′ ,显然¬ φ ′ \neg\varphi' ¬ φ ′ 只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } ;
(2) 假设φ ≡ φ ′ , ψ ≡ ψ ′ \varphi\equiv \varphi',\psi\equiv \psi' φ ≡ φ ′ , ψ ≡ ψ ′ ,且φ ′ , ψ ′ \varphi',\psi' φ ′ , ψ ′ 只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } ,那么根据∧ \land ∧ 的congruence有φ ∧ ψ ≡ φ ′ ∧ ψ ′ \varphi \land \psi \equiv \varphi'\land \psi' φ ∧ ψ ≡ φ ′ ∧ ψ ′ ,显然φ ′ ∧ ψ ′ \varphi'\land \psi' φ ′ ∧ ψ ′ 只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } ;
(3) 假设φ ≡ φ ′ , ψ ≡ ψ ′ \varphi\equiv \varphi',\psi\equiv \psi' φ ≡ φ ′ , ψ ≡ ψ ′ ,且φ ′ , ψ ′ \varphi',\psi' φ ′ , ψ ′ 只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } ,那么根据∨ \lor ∨ 的congruence有φ ∨ ψ ≡ φ ′ ∨ ψ ′ \varphi \lor \psi \equiv \varphi'\lor \psi' φ ∨ ψ ≡ φ ′ ∨ ψ ′ ,又根据De Morgan's Law,φ ′ ∨ ψ ′ ≡ ¬ ( ¬ φ ′ ∧ ¬ ψ ′ ) \varphi'\lor\psi'\equiv\neg(\neg\varphi'\land \neg\psi') φ ′ ∨ ψ ′ ≡ ¬ ( ¬ φ ′ ∧ ¬ ψ ′ ) ,根据等价的传递性φ ∨ ψ ≡ ¬ ( ¬ φ ′ ∧ ¬ ψ ′ ) \varphi\lor \psi \equiv \neg(\neg\varphi'\land \neg\psi') φ ∨ ψ ≡ ¬ ( ¬ φ ′ ∧ ¬ ψ ′ ) ,显然¬ ( ¬ φ ′ ∧ ¬ ψ ′ ) \neg(\neg\varphi'\land \neg\psi') ¬ ( ¬ φ ′ ∧ ¬ ψ ′ ) 只含有符号{ ¬ , ∧ } \{\neg,\land\} { ¬ , ∧ } ;
注意,以上归纳法不同于自然数集上的归纳法,而是根据命题的结构做pattern match(模式匹配)的分类讨论来归纳的。这样的归纳法称为“结构归纳法(structural induction)”。
同理,可以证明{ ¬ , ∨ } \{\neg,\lor\} { ¬ , ∨ } 也是功能完全的。
然而,{ ∧ , ∨ } \{\land,\lor\} { ∧ , ∨ } 不是功能完全的。考虑¬ ( a ∧ b ) \neg (a\land b) ¬ ( a ∧ b ) ,当a , b a,b a , b 都为t r u e true t r u e 时为f a l s e false f a l se ,但是任何只包含∧ , ∨ \land,\lor ∧ , ∨ 的命题在所有变量都为t r u e true t r u e 时一定为t r u e true t r u e 。