合一是數(shù)理邏輯中的一階謂詞演算使用的一種運(yùn)算方法。數(shù)理邏輯就是以推理(特別是數(shù)學(xué)中的演繹推理)作為研究對(duì)象的學(xué)科,它主要是運(yùn)用數(shù)學(xué)方法使用數(shù)學(xué)符號(hào),來研究數(shù)學(xué)領(lǐng)域公共使用的邏輯推理。而在語言研究中使用“合一”法,就是要用數(shù)理邏輯的推理方式來描述語言,達(dá)到精確化的目的。1
簡(jiǎn)介在數(shù)理邏輯中,特別是應(yīng)用于計(jì)算機(jī)科學(xué)中,兩個(gè)項(xiàng)的同一是就特殊化次序而言的并(格的最小上界),就是說,我們?cè)陧?xiàng)的集合上假定一個(gè)預(yù)序,其中意味著
是通過代換(substitute)在
中某些項(xiàng)的一個(gè)或多個(gè)自由變量而從
獲得的。
和
的同一
,如果存在的話,是
和
二者的代換實(shí)例的一個(gè)項(xiàng)。
和
的任何公共的代換實(shí)例也是
的實(shí)例。
例如,對(duì)于多項(xiàng)式和
可以通過采納
和
而同一到
。
Prolog 中的合一同一概念是在Prolog背后的主要想法。它表示綁定變量的內(nèi)容的機(jī)制并可以看作為一種只一次的(one-time)賦值。在Prolog中,這種操作用符號(hào)"="來指示。
在傳統(tǒng)Prolog中,未實(shí)例化的變量—就是說在它上面以前沒有進(jìn)行合一,可以合一于一個(gè)原子、一個(gè)項(xiàng)、或另一個(gè)未實(shí)例化的變量,因此在效果上變成了它的別名。在很多現(xiàn)代Prolog方言和一階邏輯演算中,變量不能合一于包含它的項(xiàng);這叫做出現(xiàn)檢查。
Prolog原子只能合一于同一個(gè)原子。
類似的,項(xiàng)只能合一于另一個(gè)項(xiàng),如果頂部函數(shù)符號(hào)和項(xiàng)的元數(shù)(arity)和這個(gè)項(xiàng)是一樣的,并且參數(shù)可以同時(shí)合一。注意這是遞歸行為。
由于它的聲明本性,一序列合一的次序(通常)是不重要的。
注意在一階邏輯的術(shù)語中,原子是基本命題而且其合一同Prolog項(xiàng)一樣。
合一的例子:成功(重言式)
:
和
二者合一于原子
:合一是對(duì)稱的
:合一成功
:合一失敗,因?yàn)樵邮遣煌?/p>
:
合一于
:失敗,因?yàn)轫?xiàng)的頭部是不同的
:合一失敗,因?yàn)轫?xiàng)有不同的元數(shù)
:
合一于項(xiàng)
:
合一于原子
而
合一于項(xiàng)
:無限合一,
合一于
。在嚴(yán)格的一階邏輯和很多現(xiàn)代Prolog方言中,這是禁止的(并由出現(xiàn)檢查來強(qiáng)制)
:合一失??;效果上
本詞條內(nèi)容貢獻(xiàn)者為:
王沛 - 副教授、副研究員 - 中國(guó)科學(xué)院工程熱物理研究所