この機能を実装する必要があります。
unify2(func1(X,Y,Z), R) => R = func1(X,X,Z)
R = func1(X,Y,X)
R = func1(X,Y,Y)
func1 が 3 つの引数を持つ必要はありません。その数は任意です。結果には常にいくつかの変数が統一されており、残りの項は同じであることがわかります。
私はcopy_termを調べてきましたが、まだナットを割ることができませんでした。