什么是有限失败的推导? 在数学意义上,反驳与矛盾是否相同? 通用逻辑程序和确定性逻辑程序之间有什么区别?

===============>>#1 票数:5 已采纳

没有有限失败的推导。 仅失败的派生树和有限失败的派生树。 失败的派生是以失败结束的派生。 例如:

p :- q.
p :- p.
q :- fail.

由p的第一个规则和q的唯一规则组成的推导是失败的推导。 派生可能不仅因为诸如undefined之类的未定义谓词而失败,而且还因为某些首部统一不能完全成功。

现在什么是有限失败的派生树。 好吧,如果您查看所有推导,就会得到一棵树。 在有限失败的派生树中,树是有限的,每个派生都失败。 有限失败的派生树具有以下不错的属性:

- The interpreter terminates.
- The interpreter does not produce any answer substitution.

在实际的Prolog系统中,这意味着提出问题后不久,您将获得No(在某些Prolog系统中显示为false)。 有趣的是,以上程序不会针对查询p终止。 它是无限派生树的实例,其中每个派生均失败。 派生为:

p - q - fail
p - p - q - fail
p - p - p - q - fail
Etc..

有限失败的派生树的概念是为确定的Prolog程序定义的。 现在,可以将Prolog程序的概念扩展为一般的Prolog程序。 在一般的Prolog程序中,主体可能包含否定文字。 想法是,解释器回归到检查这些文字的有限失败的派生树。

一个重要的问题是有限失败的推导树与数学推导之间的关系。 在什么数学语义下目标应该失败? 以及我们如何构建实现该语义的解释器? 一类特殊的语义是基于反驳方法的。 在这里,我们将派生解释为建立矛盾:

   P, ~G |= f => P |- G   

这或多或少地暗示着双重否定消除,从而暗示了经典逻辑。 但是其他逻辑也可以发挥作用。 首先,您可能需要查阅以下书籍:

应用逻辑
Anil Nerode,Richard A.Shore
第2位。 版,1997年,施普林格

再见

  ask by atx translate from so

未解决问题?本站智能推荐:

1回复

结果深度有限

我有以下Prolog代码,限制了结果的深度。 在这里,深度(L)限制了与结果关联的中间点的数量。 “ L”是生成结果时可以访问的最大节点数。 我只想获得深度为'L'而不是(0 <= depth <= L)范围内的结果。 我怎么能得到那个结果?
1回复

Prolog中的有限状态自动机

Prolog中的程序描述了一个有限自动机。它需要有2个参数列表,例如第一个包含输入([a,b,a,b,a]),另一个包含输出,它应通过抽动返回遵循箭头指示状态,例如[1,3,2,4,5]
2回复

Prolog-查询输出有限答案

首先-这是课程,因此我无法发布代码。 这更多地是关于prolog如何输出答案而不是“我的代码正确”吗? 我正在创建一个谓词,该谓词在给定边列表的情况下返回图之间的所有简单路径。 例如, paths(a, X)将返回以a开头的所有可能路径。 说我的知识库是:edge(a,b)。
1回复

如何用有限的谓词递归确定prolog中的商?

所以我一直试图通过仅使用内置谓词“is”,“*”,“+”和“ - ”来确定prolog中整数的商。 它期望商是一个整数,所以我不需要任何小数或休息。 我很快想出了一个解决方案,但由于某种原因,它不会按预期工作。 它一直给我同样的错误,我无法弄清楚我做错了什么。 我是prolog bt
8回复

Prolog:“findall”用于有限数量的解决方案

假设我想找到谓词的所有解的总和,我可以使用 并且只是总结了Sols的成员。 但是如果find(L)有很多(无限的,可能)解决方案,我只想得到它们中的前10个呢? 我希望它可用于B-Prolog和ECLiPSe CLP。
1回复

PROLOG特定的有限状态自动机

我找不到以下问题的答案。 自动机接受诸如“ A:5739”之类的字符串。 或“ C :: 399 \\ 4342)”,这些使我想起了文件系统的路径,但是我不确定。 问题文字: 考虑以下用Prolog编写的有限状态自动机。 似乎认识到什么? 假设有谓词 当
1回复

谓词使用有限域声明下降/上升坐标

我想编写一个谓词,descendo,它声明第一个给定坐标[y,x]下降到第二个给定坐标(想象左上角有[0,0]的板)。 Prolog中一个非常简单的实现可能如下所示: 我没有在core.logic中实现这一点。 我已经尝试了很多不同的东西(== / = fd / conso /
2回复

如何在Prolog中打印出有限数量的搜索

我有以下数据: 我使用以下命令显示所有值: 但是,它显示所有项目。 如果有数百个这样的条目,这可能是一个问题。 如何显示数量有限的商品,在上述情况下为3? 我看到一些关于此的帖子: Prolog:“ findall”用于有限数量的解决方案,并且在Prolog和Prolo
2回复

Prolog-制定查询以在有限数量的原子内找到最高价值?

假设我有一个原子名称和年龄对: 我想通过查询(而不是谓词)找到最年轻的人。 我将如何进行查询?
2回复

查找有限自动机(Prolog)接受的所有K长度词

为了在prolog中表示M 有限自动机 ,我使用以下谓词: 对于此示例自动机: 代表是: 让我们说,fiven W字是由M自动<=>认可(接受) accepted(W) (W是一个单词的列表代表) 在accepted1 <=> w属于通