在命题演算中,常常要将公式化成规范形式,对于谓词演算,也有类似情况,一个谓词演算公式,可以化为与它等价的范式。

定义2-6。1 一个公式,如果量词均在全式的开头,它们的作用域,延伸到整个公式的末尾,则该公式叫做前束范式。

前束范式可记为下述形式:
(□v1)(□v2)…(□v4)a,其中□可能是量词 或量词ヨ,vi(i=1,2,3,…,n)是客体变元,a是没有量词的谓词公式。

例如 ("x)("y)($z)(q(x,y)®r(z)),("y)("x)(øp(x,y)®q(y))等都是前束范式。

定理2-6.1 任意一个谓词公式,均和一个前束范式等价。
证明 首先利用量词转化公式,把否定深入到命题变元和谓词填式的前面,其次利用
("x)(aúb(x))ûaú("x)b(x)和($x)(aùb(x))ûaù($x)b(x)把量词移到全式的最前面,这样便得到前束范式。

例题1 把公式("x)p(x)®($x)q(x)转化为前束范式。

解 ("x)p(x)®($x)q(x)û ($x)øp(x)ú($x)q(x)
û($x)(øp(x)úq(x))

例题2 化公式("x)("y)(($z)(p(x,y)ùp(y,z))®($u)q(x,y,u))为前束范式。

解 原式û("x)("y)(ø($z)(p(x,z)ùp(y,z))ú($u)q(x,y,u))
û("x)("y)(("z)(øp(x,z)úøp(x,z))ú($u)q(x,y,u))û("x)("y)("z)($u)(øp(x,z)úøp(x,y)úq(x,y,u))

例题3 把公式ø("x){($y)a(x,y)
®($x)("y)[b(x,y)ù("y)(a(y,x)
®b(x,y))]}化为前束范式。

解 第一步否定深入

原式û($x)ø{ø($y)a(x,y)ú($x)("y)[b(x,y)ù("y)(a(y,x)®b(x,y))]}

û($x){($y)a(x,y)ù("x)($y)[øb(x,y)ú($y)ø(a(y,x)®b(x,y))]}

第二步改名,以便把量词提到前面。

û($x){($y)a(x,y)ù("u)($r)[øb(u,r)ú($z)ø(a(z,u)®b(u,z))]}

û($x)($y)("u)($r)($z){a(x,y)ù[øb(u,r)úø(a(z,u)®b(u,z))]}

定义2-6.2 一个wff a如果具有如下形式称为前束合取范式。

(□v1)(□v2)…(□vn)[(a11úa12ú…úa1l1)ù(a21úa22ú…úa2l1)ù…ù(am1úam2ú…úaml1)]

其中□可能是量词"或$,vi=(i=1,2,…,n)是客体变元,aij是原子公式或其否定。

例如公式

〔"x〕〔$z〕〔"y〕{[øpú〔x¹a〕ú〔z=s〕]ù[q(y)ú(a=b)]}是前束合取范式。

定理2-6.2 每一个wffa都可转化为与其等价的前束合取范式。

我们用一个例子来说明这个定理。

例题4 将wffd:("x)[p(x)ú("z)q(z,y)®ø("y)r(x,y)]化为与它等价的前束合取范式。

解 第一步取消多余量词

       dû("x)[p(x)ú("z)q(z,y)®ø("y)r(x,y)]

 第二步换名

       dû("x)[p(x)ú("z)q(z,y)®ø("w)r(x,w)]

 第三步消去条件联结词

       dû("x)[ø(p(x)ú("z)q(z,y))úø("w)r(x,w)]

 第四步将ø 深入

dû("x)[(øp(x)ù($z)øq(z,y))ú($w)ør(x,w)]

 第五步将量词推倒左边

    dû("x)($z)($w)[(øp(x)ùøq(z,y))úør(x,w)]

     û("x)($z)($w)[(øp(x)úør(x,w))ù(øq(x,y)úør(x,w)]

定义2-6.3 一个wffa如具有如下形式则称为前束析取范式。

(□v1)(□v2)…(□vn)[(a11úa12ú…úa1l1)ú(a21úa22ú…úa2l1)ú…ú(am1úam2ú…úaml1)]

其中□,vi与aij的概念与定义2-6.2中相同。

定理2-6.3 每一个wffa都可以转换为与它等价的前束析取范式。(证明略)

任一个wffa转换为等价的前束析取范式的步骤与例题4类同。