統一アルゴリズムには、注射率は不要ですか?
-
29-09-2020 - |
質問
一般的な統一アルゴリズムについて学習するときは、規則 decompose を学びました。
$$ g \ cup \ {f(a_0、... a_k)= f(b_0、...、b_k)\ \ rightarrow g \ cup \ {a_0= B_0、... A_K= B_K \} $$
「 $ f $ が注目していない場合の問題私に立っていました。 $ f $ は注目しておらず、 $ f(a_0、... a_k)の分岐を通過します。= f(b_0、...、b_k)\ reglarrow \ {a_0= b_0、...、a_0= b_k \} $ と失敗につながります。 $ a_0、...、a_k $ を $ b_0、... b_kに割り当てるためのもう1つの方法があります。 $ それは統合が可能ですか?
私は私が何を意味するのかを実証するために例のようなものを考えていました。これは良い例ではないかもしれませんが、 $ f(x、y)= x + y $ を考えると、 $ f(h(a)、g(b))= f(g(c)、h(d))$ $ \ {h(a)= g(c)、g(b)= h(d)\} $ によって分解されますが、代わりに統合に成功した場合、 $ f $ ( $ f(a、b)= f(b、a)$ )から有効です。 SPAN CLASS="math-container"> $ \ {a \ mapsto d、b \ mapsto c} $ 。
私はこの紙でそれについて少し読んでいました6. 6ページで、彼らは分解の観点から厳格さの考えを議論しますが、私はそれを全く理解していません、そして一般的に私たちが一般的な $でこの統合ステップを実行する方法f $ はどういうわけか失敗したバックトラッキング。
解決
ここ $ f $ は数学的関数ではありません。むしろ、それは機能記号。パラメータ $ a、bでの関数を評価した結果として、 $ f(a、b)$ のことを考えてはいけません。 $ 。そうではなく、象徴的な表現の用語として考えてください - それはあなたがそれを解釈している方法で解釈されることを意図していない構文オブジェクトです。
あなたが好きなら、シンボル式のすべての関数シンボルが注意機能の関数であるかのように考えることができます。しかし、それは実際には正確ではありません、それは象徴的な表現について考えるのは粗い方法です。
$ f(x)= x + y $ を定義することはできません。 $ f $ は、解釈されていない機能シンボルです。特定の機能を定義することは許可されていません。むしろ、 $ f $ は、まだ定義されていない関数のスタンインインです。それについて考える1つの方法は、統一から描くのは、すべての関数に対して保持されるべき結論です $ f $ (単一の1つだけではありません)です。< / P>