Herolog在Prolog

时间:2016-06-13 13:44:57

标签: prolog

我正在观看Logica模糊逻辑和Horn子句等一些问题,并使用 Prolog 查看了一些简单的应用示例。

这个问题的原因是因为这些问题也属于 Herbrand 定理,我认为这个问题比其他问题复杂一些,至少对我而言,我很难找到与之相关的应用示例 Prolog

这就是为什么我想要使用Prolog 为我提供一些应用示例,而不是那么基本(因为根据定义生成Herbrand模型)是基本规则并始终能够找到这个关于Herbrand的搜索应用示例),专供Herbrand使用。感谢

这是Prolog中的示例应用代码:

p(f(X)):- q(g(X)).
p(f(X)):- p(X).
p(a).
q(b).

1 个答案:

答案 0 :(得分:6)

一组子句的模型 iff 它有一个Herbrand模型。

要证明条款C是条款Cs的结果,只需表明Cs~C 不可满足

从抽象的角度来看,这是Prolog所做的,通过解决方案的特殊情况:您可以考虑执行(pure- 还有其他)Prolog程序作为Prolog引擎试图找到否定查询的解析反驳

Prolog实施的解决方案形式, SLD解析 深度优先搜索,并不能保证所有不满意的条款都被反驳,但不完整

在Prolog中,程序属性可能会影响后果的推导。例如,使用您的程序:

?- p(X).
wating...

我们只是将条款重新排序为:

q(b).
p(a).
p(f(X)):- q(g(X)).
p(f(X)):- p(X).

我们得到:

?- p(X).
X = a ;
X = f(a) ;
X = f(f(a)) .

请注意,在Prolog的纯粹和单调子集中,许多重要的声明性属性确实保留。有关详细信息,请参阅