继续一阶逻辑的性质。
(h) 如果一个好式子B含有自由变量xi1,xi2,...,xik,并且序列s和s′在第i1,i2,...,ik这些位置上的值相同。那么,s满足B,当且仅当,s′满足B。
注:这个性质看上去像废话,自由变量取值相同,当然得出结果就相同。但要严格证明,还是得下一番功夫。
证明:证明的技巧是基于连接符号与全称量词个数的归纳法。先证明一个引理。
引理2.13:如果一个项t中的变量是xi1,xi2,...,xik,并且序列s和s′在i1,i2,...,ik这些位置上有相同值。那么,s∗(t)=(s′)∗(t)
引理2.13的证明:由于t只包含三类符号,变量、常量、函数符号。所以在t的映射过程中,常量总是映射到固定的值。由于t只包含变量xi1,xi2,...,xik,在用序列s作映射的时候,xi1,xi2,...,xik对应的值分别是si1,si2,...,sik,而s′映射时对应的值分别是s′i1,s′i2,...,s′ik。由于s和s′在这些位置上的值相同,所以t在二者映射出来的值也相同。
引理2.13证毕
接着引进一个定义:对于一个序列s和一个好式子B,由于B包含若干项,我们称这些项通过序列s映射到定义域的过程为B基于s的取值
继续(h)的证明,我们采用基于连接符号与全称量词总个数的归纳法。
h.1 当B是原子wf时,根据引理2.13,B基于s和s′的取值总是相同。所以,如果s满足B,则s′满足B′,反之亦然。因此s满足B,当且仅当,s′满足B。
h.2 假设B包含的连接符号和全称量词总个数为n−1时,性质成立。我们考虑n的情况:
h.2.1 B是¬D的形式。根据归纳假设,s满足D,当且仅当,s′满足D。所以,若s满足B,则s不满足D,进而s′不满足D,所以s′满足B。若s′满足B,同理可得s满足B。所以,s满足B,当且仅当,s′满足B。
h.2.2 B是C⇒D的形式。如果s满足B,若s不满足C,则s′也不满足C(归纳假设),所以s′满足B。若s满足D,则s′也满足D,所以s满足B。反之,若s′满足B,同理可得s满足B。所以,s满足B,当且仅当,s′满足B。
h.2.3 B 是(∀xj)D的形式。此时D中的自由变量顶多就是xi1,xi2,...,xik和xj(无论xj是否在xi1,xi2,...,xik中)。如果s满足B,那么任一与s最多在j位置取值不同的序列都满足D。对于任一与s′最多在j位置取值不同的序列r′,都存在一个序列r,使得r与s最多只在j位置取值不同,同时r与r′在i1,i2,...,ik和j位置取值相同。这里的关键就是要证明r′满足D。因为D中的连接符号与全称量词个数都小于n,所以根据归纳假设,r满足D,当且仅当,r′满足D(因为D顶多含有xi1,xi2,...,xik和xj这些自由变量)。因此,s′满足B。反之,如果s′满足B,同理可得s满足B。
证毕
(i) 如果B是一个闭合的好式子,即B中不包含自由变量,那么对于任一解释M,要么⊨MB,或者⊨M¬B。
证明:利用上述(h)的性质,如果一个好式子B如果包含k个自由变量xi1,xi2,...,xik,那么序列s和s′至少在i1,i2,...,ik这k个位置取值相同,则s满足B,当且仅当,s′满足B。特别的,k=0时,性质也成立,也即B不包含自由变量时,任意s和s′都满足性质(h)。所以,对于任一解释M,如果某个序列s满足B,那么根据(h),所有序列都会满足B。如果某个序列s不满足B,则s满足¬B,那么所有序列都会满足¬B。
证毕
(j) 假设项t在B(xi)中对xi自由,则(∀xi)B(xi)⇒B(t)对任一解释都为真。
注:B(xi)是指xi在B中是自由变量。B(t)是指用项t替代B中xi所有的自由出现。
证明:我们只需证明对任一序列(任一解释)s,如果s满足(∀xi)B(xi),那么s也满足B(t)。
我们需要两个引理:
引理2.14:t和u是两个项,s是一个序列。项t′由如下方式产生:把t中所有出现的xi都替换成u。序列s′由如下方式产生:s中i位置的值换成s∗(u)。那么,s∗(t′)=(s′)∗(t)。
引理2.14证明: 我们先定义任一项t的长度:t的长度是t中常量符号、变量符号与函数符号的个数之和。所以,如果t是常量或者变量,则t的长度为1。如果t是f(x),它包含一个函数符号和一个变量符号,则它的长度为2。如果t是f1(1,x1,f2(x2,x3,x4)),则t的长度为7。
(2.14.1)当t的长度为1时,不难证明性质成立。
(2.14.2)当t的长度为2时,它一定是由一个函数符号f和一个常量或变量符号t组成,基于(2.14.1),也不难证明性质成立。
(2.14.3)假设t的长度为n−1时性质成立,那么当t的长度为n>2时,它一定是诸如fk(t1,t2,...,tk)的形式,而且ti,i=1,2,...,k这些项的长度都小于n。根据归纳假设,性质对ti成立,所以不难证明,性质对t也成立。
引理2.14证毕
引理2.15:如果t在B(xi)中对xi自由,那么给定一个序列s=(s1,s2,...),序列s′由以下方式产生:把序列s中i位置的取值替换成s∗(t)。那么,s满足B(t),当且仅当,s′满足B(xi)。
引理2.15证明:同样,我们用基于连接符号和全称量词个数的归纳法。
(2.15.1) 当B是原子wf,即D(u1,u2,...,uk)的形式,其中ui,i=1,2,...,k是项。那么,记项t取代变量xi后的项ui为u′i。根据上述引理2.14,可得s∗(u′i)=(s′)∗(ui)。所以,D(t)基于s的取值与D(xi)基于s′的取值相同。因此,s满足D(t),当且仅当,s′满足D(xi)。
(2.15.2) 当B是¬D的形式,根据归纳假设,性质对D成立,不难证明性质也对B成立。
(2.15.3) 当B是C⇒D,不难证明性质成立。
(2.15.4) 当B是(∀xj)D(xi)的形式,
(2.15.4.1) 若xj就是xi,那么xi在B中就不是自由变量,所以此时用t取代xi的所有自由出现即是什么都不做,B(t)也仅是B(xi)。由于s和s′仅在i位置取值不同,所以根据性质(h),只要xi不是自由变量,无论B包含多少自由变量,都有s满足B,当且仅当,s′满足B。
(2.15.4.2) 若xj不是xi。因为t对xi自由,因此t中肯定不包含变量xj。现在,如果s满足B(t),记任一与s最多在j位置不同的序列集合为S。那么,若r∈S,则r满足D(t)。接着,我们记与s′最多只在j位置取值不同的序列集合为S′。对于r′∈S′,我们总能在S中找到一个序列r,使得r和r′在j位置取值相同。由于r∈S,所以r和s只在j位置取值不同。接下来我们要证明r′满足D(xi),为此,由于r满足D(t),要想借用归纳假设,只需证明r′在i位置的取值是r∗(t)即可。现在r′在i位置的取值是s∗(t),注意到t中不包含变量xj,而r和s仅在j位置取值不同,所以很容易得到$$r^{}(t) = $s^{}(t)。因此,r’满足D(x_i),进而s’满足B(x_i)$。
反之,如果s′满足B(xi),采用同样的方法定义集合S′和集合S。对于任一r∈S,总能找到一个r′∈S′,使得r和r′在j位置取值相同。同样的,我们只需证明r满足B(t)。要想用归纳假设,只需证明r′在i位置的取值是r∗(t),这和上面的证明过程是一样的。
引理2.15证毕
我们继续性质(j)的证明。如果序列s满足(∀xi)B(xi),我们要证明s满足B(t)。
(j.1) xi在B中没有自由出现。此时B(t)就是B(xi),s当然满足B(t)。
(j.2) xi在B中有自由出现,那么我们如下产生序列s′:把s中i位置的值替换成s∗(t)。因为s′与s仅在i位置取值不同,所以s′满足B(xi)。根据引理2.15,s也满足B(t)。
证毕
性质(h)很重要,更深刻地理解为什么要定义自由变量,为什么替换变量的过程中只能替换自由出现。在性质(h)中,为什么t一定要对xi自由呢?如果一个项t对xi不自由,性质(h)也成立吗?当然不成立,性质(h)的证明过程中引理2.15的证明利用了t对xi自由的条件。如果t对xi不自由,我们很容易构造一个反例。
考虑B是A1(x1)⇒(∀x2)A2(x1,x2),其中一个解释的定义域为自然数,A1的解释是{1},A2的解释是(1,1),(1,2),...,即第二个元素是任一自然数。现在,考虑项t为x2。那么,t对x1是不自由的,因为A2中自由出现的x1被x2限制了。用t取代B就得到A1(x2)⇒(∀x2)A2(x2,x2),记为B(t)。现在,考虑序列s=(1,2,...)。显然,它满足(∀x1)B,但它不满足B(t)。
继续讨论一阶逻辑满足性的最后一个性质。
(k) 如果xi在B中没有自由出现,则(∀xi)(B⇒D)⇒(B⇒(∀xi)D)对任一解释为真。
证明:只需证明对任一序列s(任一解释),如果s满足(∀xi)(B⇒D),则s也满足(B⇒(∀xi)D)。更进一步,我们只需证明如果s满足(∀xi)(B⇒D)和B,则s也满足(∀xi)D。
因为s满足(∀xi)(B⇒D),所以任一与s最多在i位置取值不同的序列r满足(B⇒D)。若要证明s满足(∀xi)D,只需证明r满足D即可,也即证明r满足B即可。
而且xi在B中没有自由出现,根据性质(h),由于s和r只在i位置取值不同,所以不管B有没有包含其它自由变量,我们都可以得出, s满足B,当且仅当,r满足B。既然s满足B,所以r也满足B。
证毕
这11个性质(a)-(k)是为了搞清楚好式子的满足性,使之能和命题演算系统的真假性做些关联。弄清楚这些性质之后,就可以建立类似系统L的一阶逻辑公理系统了。