快好知 kuaihz订阅看过栏目

 

合一是数理逻辑中的一阶谓词演算使用的一种运算方法。数理逻辑就是以推理(特别是数学中的演绎推理)作为研究对象的学科,它主要是运用数学方法使用数学符号,来研究数学领域公共使用的逻辑推理。而在语言研究中使用“合一”法,就是要用数理逻辑的推理方式来描述语言,达到精确化的目的。

简介

在数理逻辑中,特别是应用于计算机科学中,两个项的同一是就特殊化次序而言的并(格的最小上界),就是说,我们在项的集合上假定一个预序,其中意味着是通过代换(substitute)在中某些项的一个或多个自由变量而从获得的。和的同一,如果存在的话,是和二者的代换实例的一个项。和的任何公共的代换实例也是的实例。

例如,对于多项式和可以通过采纳和而同一到。

Prolog 中的合一

同一概念是在Prolog背后的主要想法。它表示绑定变量的内容的机制并可以看作为一种只一次的(one-time)赋值。在Prolog中,这种操作用符号"="来指示。

在传统Prolog中,未实例化的变量—就是说在它上面以前没有进行合一,可以合一于一个原子、一个项、或另一个未实例化的变量,因此在效果上变成了它的别名。在很多现代Prolog方言和一阶逻辑演算中,变量不能合一于包含它的项;这叫做出现检查。

Prolog原子只能合一于同一个原子。

类似的,项只能合一于另一个项,如果顶部函数符号和项的元数(arity)和这个项是一样的,并且参数可以同时合一。注意这是递归行为。

1.

在传统Prolog中,未实例化的变量—就是说在它上面以前没有进行合一,可以合一于一个原子、一个项、或另一个未实例化的变量,因此在效果上变成了它的别名。在很多现代Prolog方言和一阶逻辑演算中,变量不能合一于包含它的项;这叫做出现检查。

2.

Prolog原子只能合一于同一个原子。

3.

类似的,项只能合一于另一个项,如果顶部函数符号和项的元数(arity)和这个项是一样的,并且参数可以同时合一。注意这是递归行为。

由于它的声明本性,一序列合一的次序(通常)是不重要的。

注意在一阶逻辑的术语中,原子是基本命题而且其合一同Prolog项一样。

合一的例子

:成功(重言式)

:和二者合一于原子

:合一是对称的

:合一成功

:合一失败,因为原子是不同的

:合一于

:失败,因为项的头部是不同的

:合一失败,因为项有不同的元数

:合一于项

:合一于原子而合一于项

:无限合一,合一于。在严格的一阶逻辑和很多现代Prolog方言中,这是禁止的(并由出现检查来强制)

:合一失败;效果上

投稿
非常不爽,删了吧! 相关词条:文化 语言文字 词语