Pour les calculs typés, si vous considérez les types négatifs ( , × , → ), vous pouvez activer ou désactiver les règles ETA à volonté sans affecter la confluence.1×→
Pour les types positifs (sommes et paires avec élimination de correspondance de motifs), la situation est beaucoup plus compliquée. Fondamentalement, la question est de savoir si le terme a une forme d'élimination à portée fermée, ce qui permet aux contextes d'interagir de manière compliquée avec les expansions eta. Par exemple, si a le type A × B , alors son eta-expansion est l e teA × B . Mais pour obtenir la théorie équationnelle à laquelle un théoricien de catégorie s'attendrait, vous devez considérer les contextes C [ - ] et généraliser l'équation pour être C [ e ] ≡ l e tl e t( a , b ) = eje n( a , b )C [ - ] (avec les restrictions de portée attendues).C [e]≡ l e t( a , b )= ejenC [(a,b)]
Je pense que vous pouvez toujours prouver un résultat de confluence si vous n'autorisez pas les conversions de navettage. Mais c'est du ouï-dire - je ne l'ai jamais essayé moi-même, ni regardé les papiers le documentant.
Je ne connais pas vraiment le calcul lambda non typé, cependant.
EDIT: Charles demande des réductions eta. C'est prometteur pour le genre d'exemple qu'il cherche, car je pense qu'en général, ils ne seront pas assez forts pour modéliser la théorie de l'égalité complète, que j'illustrerai avec un exemple simple impliquant des booléens. L'éta-expansion des booléens est . (L'eta-réduction est bien sûr l'autre sens.)C [e]↦ i f( e , C [ t r u e ] , C [ fa l s e ])
Maintenant, considérons le terme . Montrant que ce terme est équivalent à i f ( e , fje f( e , f, g)je f( e , x , y) doit passer par une eta-expansion, car nous devons remplacer le e dans l'un des if-then-elses par t r u e et f a l s e afin de conduire une β- réduction. je f( e , fx , gy)et r u eFa l s eβ