一、 前束范式
文章目录一、 前束范式二、 前束范式转换方法三、 前束范式示例四、 谓词逻辑推理定律一、 前束范式公式
A 有如下形式 :
Q_1 x_1 Q_2 x_2 \cdots Q_kx_k B则称
A 是 前束范式 ; 前束范式
A 的相关元素 说明 :
量词 :
Q_i 是量词 , 全称量词
\forall , 或 存在量词
\exist ;
指导变元 :
x_i 是 指导变元 ;
B 公式 :
B 是谓词逻辑公式 , 其中不含有量词 ,
B 中 可以含有 前面的
x_1 , x_2 , \cdots , x_k 指导变元 , 也 可以不含有 其中的某些变元 ;
(
B 中一定不能含有量词 )
二、 前束范式转换方法求一个谓词逻辑公式的前束范式 , 使用 基本等值式 , 或 换名规则 ;
基本等值式 : 参考博客 【数理逻辑】谓词逻辑 ( 谓词逻辑基本等值式 | 消除量词等值式 | 量词否定等值式 | 量词辖域收缩扩张等值式 | 量词分配等值式 )
换名规则 : 公式
A 中 , 某个量词辖域中 , 某个约束 出现的 个体变元 对应的 指导变元
x_i , 使用公式
A 中没有出现过的 变元
x_j 进行替换 , 所得到的公式
A' \Leftrightarrow A ;
如 :
\forall x F(x) \lor \forall x \lnot G(x, y) 如果要求其前束范式 , 前后有两个
x , 这里使用换名规则 , 将某个换成没有出现过的 指导变元
z , 换名后为
\forall x F(x) \lor \forall z \lnot G(z, y) ;
三、 前束范式示例求
\forall x F(x) \lor \lnot \exist x G(x, y) 的前束范式 ;
上述公式不是前束范式 , 其 量词
\forall x 的辖域是
F(x) , 量词
\exist x 的辖域是
G(x, y) , 两个辖域都没有覆盖完整的公式 ;
使用 等值演算 和 换名规则 , 求前束范式 ;
\forall x F(x) \lor \lnot \exist x G(x, y)使用 量词否定等值式 , 先把 否定联结词 移动到量词后面 , 使用的等值式为
\lnot \exist x A(x) \Leftrightarrow \forall x \lnot A(x) ;
\Leftrightarrow \forall x F(x) \lor \forall x \lnot G(x, y)使用 换名规则 , 将第二个
\forall x \lnot G(x, y) 中的
x 换成
z ;
\Leftrightarrow \forall x F(x) \lor \forall z \lnot G(z, y)使用 辖域扩张等值式 , 将
\forall x 辖域扩张 , 使用的等值式为
\forall x ( A(x) \lor B ) \Leftrightarrow \forall x A(x) \lor B\Leftrightarrow \forall x ( F(x) \lor \forall z \lnot G(z, y) )再次使用 辖域扩张等值式 , 将
\forall z 辖域扩张 , 使用的等值式为
\forall x ( A(x) \lor B ) \Leftrightarrow \forall x A(x) \lor B\Leftrightarrow \forall x \forall z ( F(x) \lor \lnot G(z, y) )此时已经是前束范式了 ;
使用 命题逻辑 等值式 中的 蕴涵等值式
\Leftrightarrow \forall x \forall z ( G(z, y) \to F(x) )四、 谓词逻辑推理定律下面推理定律是单向的 , 从左边可以推理出右边 , 从右边不能推理出左边 ; ( 不是等值式 )
①
\rm \forall x A(x) \lor \forall x B(x) \Rightarrow \forall x ( A(x) \lor B(x) )对应 全称量词 分配率 , 等值式中 只适用于 合取联结词 , 就是因为上述 析取时 , 从右往左 是错误的 , 只能从左往右推理 ;
②
\rm \exist x ( A(x) \land B(x) ) \Rightarrow \exist x A(x) \land \exist x B(x)③
\rm \forall x ( A(x) \to B(x) ) \Rightarrow \forall x A(x) \to \forall x B(x)④
\rm \forall x ( A(x) \to B(x) ) \Rightarrow \exist x A(x) \to \exist x B(x)