在命题演算中,常常要将公式化成规范形式,对于谓词演算,也有类似情况,一个谓词演算公式,可以化为与它等价的范式。
定义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)(ab(x))a(”x)b(x)和($x)(ab(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)[(a11a12…a1l1)(a21a22…a2l1)…(am1am2…aml1)]
其中□可能是量词”或$,vi=(i=1,2,…,n)是客体变元,aij是原子公式或其否定。
例如公式
〔”x〕〔$z〕〔”y〕{[p〔xa〕〔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)[(a11a12…a1l1)(a21a22…a2l1)…(am1am2…aml1)]
其中□,vi与aij的概念与定义2-6.2中相同。
定理2-6.3 每一个wffa都可以转换为与它等价的前束析取范式。(证明略)
任一个wffa转换为等价的前束析取范式的步骤与例题4类同。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 《Java编程思想第四版》学习笔记29–关于Java1.1的IO流
有一条规律是显然的:若想使用 readLine(),就不要再用一个 DataInputStream 来实现(否则会在编译期得到一条出错消息),而应使用一个 BufferedReader。但除这种情况以外, DataInputStream 仍是 Java 1.1…