Update [20.09.2011]: Ich habe den Abschnitt über -Erweiterung und Extensionalität erweitert. Vielen Dank an Anton Salikhmetov für den Hinweis auf eine gute Referenz.η
Umwandlung ( λ x . f x ) = f ist ein Sonderfall der β- Umwandlungnurin dem Sonderfall, in dem f selbst eine Abstraktion ist, z. B. wenn f = λ y . y y dann ( λ x . f x ) = ( λ x . ( λ y . y y ) x ) = β ( λ x .η(λx.fx)=fβff=λy.yyWas aber, wenn f eine Variable oder eine Anwendung ist, die sich nicht auf eine Abstraktion reduziert?
(λx.fx)=(λx.(λy.yy)x)=β(λx.xx)=αf.
f
In gewisser Weise ist -Regel wie eine spezielle Art von Extensionalität, aber wir müssen ein bisschen vorsichtig sein, wie das angegeben wird. Wir können Extensionalität angeben als:η
- für alle Terme M und N , wenn M x = N x, dann ist M = N , oderλMNMx=NxM=N
- für alle wenn ∀ x . f x = g x dann f = g .f,g∀x.fx=gxf=g
Die erste ist eine Meta-Aussage zu den Begriffen des Kalküls. Darin erscheint x als formale Variable, dh es ist Teil des λ- Kalküls. Es kann aus β η -Regeln bewiesen werden, siehe zum Beispiel Theorem 2.1.29 in "Lambda Calculus: its Syntax and Semantics" von Barendregt (1985). Es kann als Aussage über alle definierbaren Funktionen verstanden werden, also solche, die Bezeichnungen von λ- Termen sind.λxλβηλ
Die zweite Aussage ist, wie Mathematiker normalerweise mathematische Aussagen verstehen. Die Theorie von λ Kalküls beschreibt eine bestimmte Art von Strukturen, nennen wir sie " Modelleλ ". Ein Modell kann unzählig sein, daher gibt es keine Garantie dafür, dass jedes Element einem λ- Term entspricht (genau wie es mehr reelle Zahlen gibt als reelle Ausdrücke). Die Extensionalität sagt dann: Wenn wir zwei Dinge f und g in einem λ- Modell nehmen, wenn f x = g x für alle x im Modell, dann ist f = gλλfgλfx=gxxf=g. Selbst wenn das Modell die Regel erfüllt , muss es die Extensionalität in diesem Sinne nicht erfüllen. (Hier ist ein Hinweis erforderlich, und ich denke, wir müssen vorsichtig sein, wie Gleichstellung interpretiert wird.)η
Es gibt verschiedene Möglichkeiten, um und η- Umwandlungen zu motivieren . Ich werde zufällig die kategorietheoretische auswählen, die als λ- Kalkül verkleidet ist , und jemand anderes kann andere Gründe erklären.βηλ
Betrachten wir den typisierten Kalkül (weil er weniger verwirrend ist, aber für den untypisierten λ- Kalkül mehr oder weniger die gleiche Argumentation gilt). Eine der grundlegenden Gesetze, sollte hält das Exponentialgesetz C A × B ≅ ( C B ) A . (Ich verwende die Notationen A → B und B A austauschbar und wähle, was auch immer besser auszusehen scheint.) Was bewirken die Isomorphismen i : C A × B → ( C B ) A und j :λλ
CA × B≅( CB)EIN.
A → BBEINi : CA × B→ ( CB)EIN sehen aus wie in
λ- Kalkül geschrieben? Vermutlich würden sie
i = λ f : C A × B . λ a : A . λ b : B . f ⟨ a , b ⟩ und
j = λ g : ( C B ) A . λ p : A × Bj : ( CB)EIN→ CA × Bλi = λ f: CA × B. λ a : A . λ b : B . f⟨ Ein , b ⟩
Eine kurze Berechnung mit ein paar
β -Reduktionen (einschließlich des
β -Reduktionen
π 1 ⟨ a , b ⟩ = a und
π 2 ⟨ a , b ⟩ = b für Produkte) sagt unsdaß für jedes
g : ( C B ) A wir haben
i ( j g ) =j = λ g: ( CB)EIN. λ p : A × B . G( π1p ) ( π2p ) .
ββπ1⟨ A , b ⟩ = aπ2⟨ A , b ⟩ = bG: ( CB)EIN
Da
i und
j Umkehrungen voneinander sind, erwarten wir
, i ( j g ) = g , aber tatsächlich beweisen wir verwenden müssen
η -Reduktion zweimal:
i ( j g ) = ( λ ein : A . Λ b : B . g a b ) = η (i ( j g) = Λ a : A . λ b : B . Ga b .
ichji ( j g) = gη
Dies ist also ein Grund für
η- Reduktionen. Aufgabe:Welche
η- Regel wird benötigt, um zu zeigen, dass
j ( i f ) = f ist ?
i ( j g) = ( Λ ein : A . Λ b : B . Ga b ) =η( Λ ein : A . Ga ) =ηG.
ηηj ( i f) = f