逻辑中有限失败的推导

时间:2011-12-11 20:02:38

标签: prolog

什么是有限失败的推导?反驳是否与数学意义上的矛盾相同?一般逻辑程序和明确的逻辑程序有什么区别?

1 个答案:

答案 0 :(得分:5)

没有有限失败的推导。只有失败的派生和有限失败的派生树。失败的派生是以失败告终的派生。例如:

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

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

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

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

在实际的Prolog系统中,这意味着在提出问题之后,你会在一段时间后得到一个No(在一些Prolog系统中会显示错误)。有趣的是,上述程序不会终止查询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年版,Springer

再见