§3.4范式
3.4.1前束范式
在命题逻辑中,我们引进过公式的标准形式,即范式。因为一个公式,在等价意义下,可以有各种不同的表示,因此,公式的标准表示形式就是一个有意义的问题。在命题逻辑中,范式有重要作用,范式在谓词逻辑中有同样重要的作用,本节讨论谓词逻辑中公式的两种标准形式。
定义3.4.1.谓词逻辑中公式G称为前束范式,如果G有如下形状:Q 1 x 1 ⋯Q n x n M,其中Q i x i 或者是∀x i ,或者是∃x i ,i=1,⋯,n,M是不含量词的公式,Q 1 x 1 ⋯Q n x n 称为首标,M称为母式。
例如,∀x∀y∃z(P(x,y)→Q(x,z))∃x∃y∃zP(x,y,z)等等,就是前束范式。
引理1.设G是公式,其中自由变量有且仅有一个x,记以G(x),H是不含变量x的公式,于是有:1)∀x(G(x)∨H)=∀xG(x)∨H1 ′ )∃x(G(x)∨H)=∃xG(x)∨H2)∀x(G(x)∧H)=∀xG(x)∧H2 ′ )∃x(G(x)∧H)=∃xG(x)∧H3)¬(∀xG(x))=∃x(¬G(x))4)¬(∃xG(x))=∀x(¬G(x))
证明:只证明1)和4).1)∀(G(x)∨H)=∀xG(x)∨H4)¬(∃xG(x))=∀x(¬G(x))1)设I是G(x)和H的一个解释。若∀x(G(x)∨H)在I下取1值,则在I下,对任意x∈D,G(x)∨H是真命题。若H是真命题,则∀xG(x)∨H是真命题;若H是假命题,则必然是对每个x∈D,G(x)都是真命题,故∀xG(x)取1值。所以∀xG(x)∨H在I下取1值。若∀x(G(x)∨H)在I下取0值,则必有一个x 0 ∈D,使G(x 0 )∨H在I下取0值。故G(x 0 )为假命题,H为假命题。所以∀xG(x)取0值。从而∀xG(x)∨H在I下取0值。4)若I满足¬(∃xG(x)),则I弄假∃xG(x)。故对任意G(x)都是假命题,从而¬(∃xG(x)),则I满足∃xG(x)。故有x 0 ∈D,使得G(x 0 )是真命题。从而¬G(x 0 )是假命题,故I弄假∀x(¬G(x))。
引理2.设G,H是两个公式,其中自由变量有且只有一个x,分别记以G(x),H(x),于是有:1)∀xG(x)∧∀xH(x)=∀x(G(x)∧H(x))2)∃xG(x)∨∃xH(x)=∃x(G(x)∨H(x))3)∀xG(x)∨∀xH(x)=∀x∀y(G(x)∨H(y))4)∃xG(x)∧∃xH(x)=∃x∃y(G(x)∧H(y))
证明:用类似于证明引理1的方法,可证明此引理的1),2)。3)∀xG(x)∨∀xH(x)=∀xG(x)∨∀yH(y)(改名规则)=∀x(G(x)∨∀yH(y))(引理1)=∀x∀y(G(x)∨H(y))(引理1)同理可证4)。
定理3.4.1.对任意公式G,都存在与其等价的前束范式。
证:通过如下算法,可将公式G化成等价的前束范式。1.使用基本等价式(K↔H)=(K→H)∧(H→K)(K→H)=¬K∨H可将公式G中的↔和→删除。2.使用¬(¬H)=H,DeMorgan律,引理1,2可将公式中所有否定号¬放在原子之前。3.如果必要的话,则将约束变量改名。4.使用引理1,2将所有量词都提到公式的最左边。于是,将公式G在等价意义下化成了一个前束范式。
例3.4.1.∀x∀y(∃z(P(x,z)∧P(y,z))→∃uQ(x,y,u))=∀x∀y(¬(∃z(P(x,z)∧P(y,z)))∨∃uQ(x,y,u))=∀x∀y(∀z(¬P(x,z)∨¬P(y,z))∨∃uQ(x,y,u))=∀x∀y∀z(¬P(x,z)∨¬P(y,z)∨∃uQ(x,y,u))=∀x∀y∀z∃u(¬P(x,z)∨¬P(y,z)∨¬Q(x,y,u))
3.4.2Skolem范式
定义3.4.2.设G是一个公式,Q 1 x 1 ⋯Q n x n M是与G等价的前束范式,其中M为合取范式形式。若Q r 是存在量词,并且它左边没有全称量词,则取异与出现在M中所有常量符号的常量符号c,并用c代替M中所有x r ,然后在首标中删除Q r x r 。若Q s1 ,⋯,Q sm 是所有出现在Q r x r 左边的全称量词(m≥1,1≤s1<s2<⋯<sm<r),则取异于出现在M中所有函数符号的m元函数符号f(x s1 ,⋯,x sm ),用f(x s1 ,⋯,x sm )代替出现在M中的所有x r ,然后在首标中删除Q r x r 。对首标中的所有存在量词做上述处理后,得到一个在首标中没有存在量词的前束范式,这个前束范式就称为公式G的Skolem范式。其用来代替x r 的那些常量符号和函数符号称为公式G的Skolem函数。
例3.4.2.G=∃x∀y∀z∃u∀v∃wP(x,y,z,u,v,w) 用a代替x,用f(y,z)代替u,用g(y,z,v)代替w,得公式G的Skolem范式:∀y∀z∀vP(a,y,z,f(y,z),v,g(y,z,v))。
下面我们来讨论公式G与它的Skolem范式S之间的关系。
1.G与S的可满足性是等价的。
证明:设G是前束范式:G=Q 1 x 1 ⋯Q n x n M(x 1 ,⋯,x n )设Q r 是从左往右看第一个存在量词。令G 1 =∀x 1 ⋯∀x r−1 Q r+1 x r+1 ⋯Q n x n M(x 1 ,⋯,x r−1 ,f(x 1 ,⋯,x r−1 ),x r+1 ,⋯,x n )其中f(x 1 ,⋯,x r−1 )是代替x r 的Skolem函数。
下面证明:1)满足G 1 的解释满足G,2)满足G的解释,适当扩充后可满足G 1 .
设个体域为D,取一个满足G 1 的解释I,于是,对于每一组(x ′ 1 ,⋯,x ′ r−1 )∈D r−1 ,都有f(x ′ 1 ,⋯,x ′ r−1 )∈D,使得Q r+1 x r+1 ⋯Q n x n M(x ′ 1 ,⋯,x ′ r−1 ,f(x ′ 1 ,⋯,x ′ r−1 ),x r+1 ,⋯,x n )在I下取1值。所以∀x 1 ⋯∀x r−1 ∃x r Q r+1 x r+1 ⋯Q n x n M(x 1 ,⋯,x n )为真,即I满足G。反之,取一个满足G的解释I。于是,对每一组(x ′ 1 ,⋯,x ′ r−1 )∈D r−1 ,都存在x ′ r ∈D,使得Q r+1 x r+1 ⋯Q n x n M(x ′ 1 ,⋯,x ′ r−1 ,x ′ r ,x r+1 ,⋯,x n )在I下取1值。现在I还不是G 1 的解释,因为有函数没有指定,扩充I为I ′ ,使其包含对函数符号f(x 1 ,⋯,x r−1 )的如下指定:f(x ′ 1 ,⋯,x ′ r−1 )=x ′ r ,对每一组(x ′ 1 ,⋯,x ′ r−1 )∈D r−1 。于是I ′ 满足G 1 。同理,对G 1 往右找下一个存在量词,用Skolem函数代替得G 2 ,则G 1 与G 2 的可满足性是等价的,依次类推,可知G与S的可满足性是等价的。
例3.4.3.设G=∀x∃yP(x,y),则G的Skolem范式为S=∀xP(x,f(x))
设D={1,2}取满足S的解释I如下:
f(1)2 f(2)1 P(1,1)任意 P(1,2)1 P(2,1)1 P(2,2)任意
则对I不看对函数的解释,也是G的解释,且满足G。
反之,取满足G的解释I如下:
P(1,1)1 P(1,2)任意 P(2,1)1 P(2,2)任意
现在I还不是S的解释,因为有函数没有指定,扩充I为I ′ ,使其包括对函数的指定
f(1)1 f(2)1
则满足S。
2.G与S不等价
由1可知,满足G的解释I,不一定满足S,因此在扩充时,可随意指定Skolem函数的值。例如,G=∃xP(x),S=P(a)。令G和S的解释I如下:D={2,3},
a2 P(2)0 P(3)1
则I满足G,但I弄假S。
3.G与S的恒假性等价
定理3.4.2.设S是公式G的Skolem范式,于是,公式G是恒假的充要条件是公式S是恒假的。
证:若G恒假,而S可满足,由1知,G是可满足的,矛盾。若S恒假,而G可满足,由1知,S是可满足的,矛盾。故定理成立。