Mise à jour [2011-09-20]: J'ai développé le paragraphe sur l' expansion η et l'extensionnalité. Merci à Anton Salikhmetov d'avoir signalé une bonne référence.
η -conversion(λx.fx)=f est un cas spécial deconversionβ -uniquementdans le cas spécial lorsquef est lui-même une abstraction, par exemple, sif=λy.yy alors
(λx.fx)=(λx.(λy.yy)x)=β(λx.xx)=αf.
Mais que faire si
f est une variable ou une application qui ne se réduit pas à une abstraction?
D'une certaine manière, la règle η est comme un type particulier d'extensionnalité, mais nous devons faire un peu attention à la façon dont cela est énoncé. Nous pouvons affirmer l'extensionnalité comme:
- pour tous les λ -terms M et N , si Mx=Nx alors M=N , ou
- pour tout si ∀ x . f x = g x puis f = g .f,g∀x.fx=gxf=g
Le premier est une méta-déclaration sur les termes du -calculus. En lui, x apparaît comme une variable formelle, c'est-à-dire qu'il fait partie du λ -calculus. On peut le prouver à partir des règles β η , voir par exemple le théorème 2.1.29 dans "Lambda Calculus: its Syntax and Semantics" de Barendregt (1985). Il peut être compris comme un énoncé de toutes les fonctions définissables , c'est-à-dire celles qui sont des dénotations de termes λ .λxλβηλ
La deuxième affirmation est la façon dont les mathématiciens comprennent généralement les énoncés mathématiques. La théorie du -calcul décrit un certain type de structures, appelons-les " λ -models ". Un modèle λ peut être indénombrable, il n'y a donc aucune garantie que chaque élément de celui-ci correspond à un terme λ (tout comme il y a plus de nombres réels que d'expressions décrivant des réels). L'extensionnalité dit alors: si nous prenons deux choses f et g dans un modèle λ , si f x = g x pour tout x dans le modèle, alors f = gλλλλfgλfx=gxxf=g. Or, même si le modèle satisfait la règle , il n'a pas besoin de satisfaire l'extensionnalité dans ce sens. (Référence nécessaire ici, et je pense que nous devons faire attention à la façon dont l'égalité est interprétée.)η
Il existe plusieurs façons de motiver conversions β - et η . Je choisirai au hasard la catégorie théorique, déguisée en λ -calculus, et quelqu'un d'autre peut expliquer d'autres raisons.βηλ
Considérons le -calculus typé (car il est moins déroutant, mais plus ou moins le même raisonnement fonctionne pour le λ -calculus non typé ). L' une des lois fondamentales qui devraient est la loi détient exponentielle C A × B ≅ ( C B ) A . (J'utilise les notations A → B et B A de manière interchangeable, en sélectionnant celle qui semble meilleure.) Que font les isomorphismes i : C A × B → ( C B ) A et j :λλ
CA×B≅(CB)A.
A→BBAi:CA×B→(CB)A ressemble à, écrit en
λ -calculus? On peut supposer qu'ils seraient
i = λ f : C A × B . λ a : A . λ b : B . f ⟨ a , b ⟩ et
J = λ g : ( C B ) A . λ p : A × Bj:(CB)A→CA×Bλi=λf:CA×B. λ a : A . λ b : B . F⟨ A , b ⟩
Un calculcourte avec un couple de
ß -réductions (y compris le
β -réductions
π 1 ⟨ un , b ⟩ = a et
π 2 ⟨ un , b ⟩ = b pourproduits) nous apprend que, pour chaque
g : ( C B ) A nous avons
i ( j g ) =j = λ g: ( CB)UNE. λ p : A × B . g( π1p ) ( π2p ) .
ββπ1⟨ A , b ⟩ = aπ2⟨ A , b ⟩ = bg: ( CB)UNE
Puisque
i et
j sont inversesdeautre, nous nous attendons
à i ( j g ) = g , mais pour prouver effectivement cenous devons utiliser
η -réduction deux fois:
i ( j g ) = ( λ a : A . Λ b : B . g a b ) = η (i ( j g) = Λ a : A . λ b : B . ga b .
jeji ( j g) = gη
C'est donc une des raisons pour avoir desréductions
η . Exercice: quellerègle
η est nécessaire pour montrer que
j ( i f ) = f ?
i ( j g)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.
ηηj(if)=f