『数理論理学: 合理的エ-ジェントへの応用に向けて』のわからないところを説明します。まずこの本の定義を引用していきます。用語と記法を一部書き直しています。
定義4.6 (単一化,単一化代入)
以上の整数
に対し、各
を項の集合とする。この集合のすべての要素に対し、
となるような代入
が存在するとき、この
を集合
の単一化代入(unifier)と呼ぶ。また、このような単一化代入
を求め、
をそれぞれ
に置き換える操作を単一化(unification)と呼ぶ。
定義 4.7 (不一致集合)
項の集合 を
とする。各
に現れる記号(定数記号、変数、関数記号)を左から順にたどり共通しない記号が見つかった場合、それぞれの記号の位置から始まる項の集合を
の不一致集合(disagreement set)と呼ぶ。
定義 4.8 (代入の合成
)
を代入とする。任意の項
に対し
となるような
を
と
の合成と呼び、合成された代入を
と表記する。
定義 4.9 (単一化アルゴリズム(unification algorithm))
を
個以上の原子論理式の集合とする。また、
とする。以下に示す手順1.2.3.を順に実行し正常終了したときに求まる代入
が、
の単一化代入である。
1. の要素数が
ならば正常終了とし、以降の操作は行わない。
2. の不一致集合を
とする。
の要素として変数が存在し、かつその変数を含まないような項が
の要素として存在する場合、その変数と項をそれぞれ
とする。そうでない場合は
は単一化不可能としてこの手順を終了し、以降の操作は行わない。
3. とし、
を
増やして1.
に戻る。
定義 4.10 (代入間の等価性)
を代入とする。任意の項または論理式
に対し
となるとき、
とする。
定義4.11 (最汎単一化代入 mgu)
以上の要素を持つ原子論理式の集合を
とし、
と
を
の単一化代入とする。ある代入
が存在して
となるとき、
は
に対し、より一般的であるという。
の単一化代入
が、
の任意の単一化代入
に対し、より一般的であるとき、
を
の最汎単一化代入(most general unifier)またはmguと呼ぶ。
定理 4.1 (単一化定理)
を項の空でない有限集合とする。このとき
が単一化可能であれば、定義 4.9 に示した操作は手順 1. で停止する。
で停止したとすると(変数の個数は有限なのである
で停止する)、代入
は
の mgu である。
この定理の証明は書かれていないので、『計算論理に基づく推論ソフトウェア論』の単一化アルゴリズムの定義と証明について見ていきます。『計算論理に基づく推論ソフトウェア論』では代入は写像として扱われているようです。
アルゴリズム 3.1
入力:項の空でない集合
出力:mgu か“単一化不能”性の表示
方法:次の帰納的な関数を実行し、出力 を得る。ただし、任意の代入
に対して、
とする。
| |
|
|
|
| |
|
||
| |
|
|
|
| |
|
||
| |
|
( は不一致集合、
と
は任意のものとします)
定理 3.3
項の空でない集合 が与えられたとき,アルゴリズム3.1によって、
が単一化可能なときは一つの mgu が得られ、
が単一化不能なときは"単一化不能”の表示を得る。
[証明] アルゴリズム 3.1 を とおきます。
は
の有限部分集合の全体、
は代入の全体、
は単一化不可能であることを表します。
に含まれる変数の個数は有限なので、アルゴリズム 3.1 で
の中から
が呼び出される回数
は有限となります。
に関する帰納法により示します。
(i) のとき、
が単一の要素からなるか、不一致を解消できない(“単一化不能”の表示を得る)。前者の場合、定義 4.9 により
が得られる。
の任意の単一化代入
に対して、(補題 3.3) により
であるので、一つの mgu
が得られている。
(ii) のとき定理が正しいと仮定する。
の不一致集合が変数
と
が現れない頃
を含み、代入
を適用し、
への代入適用回数が
であるとする。仮定から、
は一つの mgu
か“単一化不能”の表示(
)を与える。
後者の場合、 である。
前者の場合、 の任意の単一化代入
は、
を単一化できるので、
と書け、
は
の単一化代入である。
に対して、ある代入
があって
である。よって、
である。すなわち、
は一つの mgu である。[証明終わり]
この証明は「 の任意の単一化代入
は、
を単一化できる」こと、「
と書ける」ことの説明が書かれていないのでわかりにくいです。代入の順序を入れ替える方法が何かあるかと思いましたがとくに何も見つかりませんでした。エレファントな群とリー代数(11) - エレファント・ビジュアライザー調査記録ではこれを書き直しています。

