答えは、Term Rewrite Systemの意味に依存します。
これを導入した場合の概念用語書き換えシステム、またはTRSesは、今やいわゆる説明一次TRSesを、単にフォームの計算規則のセットであります
l → r
ここで、とrは次の形式の一次項です。lr
t := x ∣ f (t1、… 、tn)
ここで、変数であり、fはある関数記号いくつかの任意から採取するが、固定されたセットΣと呼ばれる、署名もそれぞれの引数の数固定、F ∈ Σを。バツfΣf∈ Σ
そこのルールに課せられた共通の制限のカップル、例えばあるしかし、我々はここではそれらに行く必要はありません。V R(R)⊆ V R(L)
この定義と、を有する通常のラムダ計算、ルール:
(λ X 。T )U → T [ U / X ]
表現できない、コンストラクタ「としてλ」結合の発生XにおけるT(アプリケーションでも結構です)。可能な解決策の1つ、および書き換えシステム自体の理論よりも古い解決策は、各λの用語を別の種類の用語に変えることです。β
(λ X 。T )U → T [ U / X ]
λバツtλ
1つの方法は、有名なコンビネーター計算です。これは、シグニチャーΣ = { S 、K 、a p p }とルール
a p p(a p p(K 、x )、y )→ x
を
持つ書き換えルールです。a p p(a p p(a p p(S 、x )、y )、SKΣ = { S、K 、a p p }
a p p( a p p(K、x )、y)→ x
a p p( a p p( a p p(S、x )、y)、z)→ a p p(a p p(x 、z)、a p p(y、z))
de Bruijnインデックスと明示的な置換を持つラムダ項を含む、より直感的な別のエンコーディングがありますが、ここでは説明しません。
一次エンコードにもかかわらず、計算の縮約動作に関する技術的な問題は、バインダーを持つコンストラクターを含むようにTRSの概念を拡張することにより、より適切に対処されることが明らかになりました。これは、用語Higher Order Rewrite Systemsによってしばしば参照されます。用語は次の形式になりましたλ
t := x (t 1、… 、tn)∣ f (x11… x1私1。t1、… 、xn1… xn私n。tn)
どこに再びが、現在は各X I jがされてバインドでT I。署名では、各引数によってバインドされる変数の数を指定する必要があります。今、私たちは書くことができるB S(X 。トン)を表す用語についてλ xと。トン。少しの作業で、適切な置換の概念を定義できます。f∈ Σバツ私jt私B S(X。T)λ X 。t
βηβ
したがって、左側はいくつかの素晴らしいサブセット、多くの場合「ミラーパターン」に制限されます。いくつかの厄介な驚きがありますが、1次の場合の結果の数は一般化します。
λ βη
λβ
a p p( a b s( X 。Y(x ))、z) → y( z)
定義と基本的な結果のかなりまともな概要は、NipkowとPrehoferによってここに示されています。