用最通用统一符 (mgu)实现统一算法

用最通用统一符 (mgu)实现统一算法

子句范式
在 Skolemisation 之后,我们也可以去掉全称量词,子句范式中的公式本质上是 CNF 公式,其中文字是谓词逻辑的原子公式
我们为子句范式写 CNF,为 Skolem 范式写 SNF子句范式算法
第 1 步:以 prenex 形式引入公式
步骤 2:skolemise,然后删除全称量词
第三步:转化为CNF

最通用统一符 (mgu)
让 s 和 t 成为术语,如果 sσ = tσ,则替换 σ 是 s 和 t 的统一符
统一符 σ 是 s 和 t 的最一般统一符 (mgu) 如果对于所有统一符 ρ,s 和 t 存在一个替换 τ 使得 ρ = τ ◦ σ.直观地,两个术语的任何统一词都可以从它们的 mgu 中获得通过进一步实例化可以证明任何两个项都有一个mgu

例子
f (g(x, b), f (x, z)) 和 f (y, f (g(a, b), c)) 的 mgu 是多少?
它们都是 f (arg1, arg2) 的形式。
统一两个 arg2 需要 f (x, z) ≈ f (g(a, b), c)。 这反过来又需要
x 7→ g(a, b) 和 z 7→ c。 统一两个 arg1 需要 y 7→ g(x, b),其中转映射到 g(g(a, b), b),因为 x 7→ g(a, b)。 把这些比特放在一起给了我们统一实例 f (g(g(a, b), b), f (g(a, b), c))

统一算法
我们计算集合 s1 ≈ t1, 的同时 mgu。 . .sn ≈ tn,即我们想要
找到一个 σ,它将同时将每个 si 与相应的 ti 统一起来
. 我们写E 对于这样的集合和 E,s ≈ t 对于 E ∪ {s ≈ t}

谓词逻辑的解析
在所有申请中,场所必须重新命名:,它们的变量必须是不相交的.但是,仅此规则并不完全反驳:
Γ = {{P(x), P(y)}, {¬P(a), ¬P(b)}} 不可满足.但 Γ 中的所有子句,Γ∗ 至少有两个字面量. 因此 □ 不能单独通过分辨率计算
为了克服这类问题,我们有时需要使用因式分解。 这表示使用推理规则

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值