前束范式

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

前束范式具有以下的形式: Q1x1Q2x2⋯QkxkB 其中, 每个Qi∈∀,∃(1≤i≤k),B为不含量词的谓词公式。

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

例: ∀x∃y∃z(¬P(x)→(Q(y)→R(z,y))) ∀x∀y(S(x,w)∨T(y)) U(x,y) 是前束范式。

而: ∀xF(x,y)→∃yG(y) ∀x∃zC(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)) ⇔∃x∃y(¬P(x)∨Q(y)) ⇔∃x∃y(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)) ⇔∀u∃v((¬P(u,y)∨¬Q(u,z))→R(v,x))

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

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

∀x∃y∃z((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)) ⇔∃v∀w(¬(F(v)∨H(y))∨G(x,w)) ⇔∃v∀w((¬F(v)∧¬H(y))∨G(x,w)) ⇔∃v∀w(¬F(v)∨G(x,w))∧(¬H(y)∨G(x,w))

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

解: ∀x∃y(P(x,y)∧Q(x))∧∀x(∃zR(z,x)→S(w)) ⇔∀x∃y(P(x,y)∧Q(x))∧∀x(¬∃zR(z,x)∨S(w)) ⇔∀x∃y(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))) ⇔∀x∃y((P(x,y)∧Q(x))∧∀z(¬R(z,x)∨S(w))) ⇔∀x∃y∀z((P(x,y)∧Q(x))∧(¬R(z,x)∨S(w))) ⇔∀x∃y∀z((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)) ⇔∀x∀w∃z(¬A(x,w)∨¬B(x)∨C(y,z))