前束范式

一个谓词公式, 如果它的所有量词均出现在公式的最前端, 而它们的作用域延伸到整个谓词公式的尾端, 则称该谓词公式为前束范式

前束范式具有以下的形式: Q1x1Q2x2QkxkB 其中, 每个Qi,(1ik),B为不含量词的谓词公式。

如果谓词公式A中无量词, A也被看作是前束范式。 例如: ¬A(x)B(x).

例: xyz(¬P(x)(Q(y)R(z,y))) xy(S(x,w)T(y)) U(x,y) 是前束范式。

而: xF(x,y)yG(y) xzC(x,z)V(z) 都不是前束范式。

前束范式存在定理: 任何谓词公式均存在其等价的前束范式。

化谓词公式为前束范式方法是:

1.将否定联结词向谓词公式内深入, 使之直接位于原子谓词公式之前。

2.利用换名规则和代入规则使所有约束变元符号均不相同, 自由变元与约束变元的符号也不相同。

3.利用等价式将量词逐个移至谓词公式的前端。

例: 将一阶逻辑公式 xP(x)xQ(x)转化为前束范式。

解: xP(x)xQ(x) xP(x)yQ(y) ¬xP(x)yQ(y) x(¬P(x))yQ(y) x(¬P(x)yQ(y)) xy(¬P(x)Q(y)) xy(P(x)Q(y))

也可以这样转化:

xP(x)xQ(x) ¬xP(x)xQ(x) x¬P(x)xQ(x) x(¬P(x)Q(x))

一阶逻辑公式的前束范式并不唯一。

例: 将一阶逻辑公式 ¬(xP(x,y)xQ(x,z))yR(y,x)转化为前束范式: ¬(xP(x,y)xQ(x,z))yR(y,x) (¬xP(x,y)¬xQ(x,z))yR(y,x) (x¬P(x,y)x¬Q(x,z))yR(y,x) x(¬P(x,y)¬Q(x,z))yR(y,x) u(¬P(u,y)¬Q(u,z))vR(v,x) u((¬P(u,y)¬Q(u,z))vR(v,x)) uv((¬P(u,y)¬Q(u,z))R(v,x))

一个前束范式,若其不含量词的部分为析取范式, 称为前束析取范式; 若其不含量词的部分为合取范式, 称为前束合取范式

例: xy(P(x,y)Q(x))是前束合取范式。

xyz((R(x,y,z)S(x))Q(x))是前束析取范式。

定理: 任何谓词公式均可化为与其等价的前束析取范式或前束合取范式。

将一阶逻辑公式转化为前束析取范式或前束合取范式的方法是:

1.将公式中的联结词全部转化为¬,.

2.将公式化为前束范式。

3.利用分配律将公式进一步转化为前束析取范式或前束合取范式。

例: 求x(F(x)H(y))yG(x,y)的前束合取范式。

解: x(F(x)H(y))yG(x,y) ¬x(F(x)H(y))yG(x,y) x¬(F(x)H(y))yG(x,y) v¬(F(v)H(y))wG(x,w) v(¬(F(v)H(y))wG(x,w)) vw(¬(F(v)H(y))G(x,w)) vw((¬F(v)¬H(y))G(x,w)) vw(¬F(v)G(x,w))(¬H(y)G(x,w))

例: 求xy(P(x,y)Q(x))x(zR(z,x)S(w)) 的前束析取范式。

解: xy(P(x,y)Q(x))x(zR(z,x)S(w)) xy(P(x,y)Q(x))x(¬zR(z,x)S(w)) xy(P(x,y)Q(x))x(z¬R(z,x)S(w)) x(y(P(x,y)Q(x))z(¬R(z,x)S(w))) xy((P(x,y)Q(x))z(¬R(z,x)S(w))) xyz((P(x,y)Q(x))(¬R(z,x)S(w))) xyz((P(x,y)Q(x)¬R(z,x)) (P(x,y)Q(x)S(w)))

例: 求x(y(A(x,y)B(x))zC(y,z))的前束合取范式和前束析取范式。

解:x(y(A(x,y)B(x))zC(y,z)) x(¬y(A(x,y)B(x))zC(y,z)) x(y(¬A(x,y)¬B(x))zC(y,z)) x(w(¬A(x,w)¬B(x))zC(y,z)) xwz(¬A(x,w)¬B(x)C(y,z))