Yazılan hesaplamalar için, negatif türleri ( , × , → ) göz önünde bulundurursanız , eta kurallarını izdihamı etkilemeden temelde istediğiniz zaman açabilir veya kapatabilirsiniz.1×→
Pozitif tipler için (toplamlar ve desen eşleştirme eliminasyonu ile çiftler), durum çok daha karışıktır. Temel olarak soru, terimin, bağlamların eta-genişletmelerle karmaşık şekillerde etkileşime girmesine izin veren kapalı alanlı bir eleme formuna sahip olup olmadığıdır. Örneğin, A × B tipi varsa , eta-genişlemesi l e teA×B . Ancak, bir teori teorisyeninin beklediği denklem teorisini elde etmek için, C [ - ] bağlamlarını düşünmenizve denklemi C [ e ] ≡ l e tlet(a,b)=ein(a,b)C[−] (beklenen kapsam kısıtlamaları ile).C[e]≡let(a,b)=einC[(a,b)]
İşe gidip gelme dönüşümlerine izin vermezseniz, bir izdiham sonucunu kanıtlayabileceğinizi düşünüyorum. Ama bu kulaktan doludur - hiç denemedim ya da belgeleyen belgelere bakmadım.
Yine de türü olmayan lambda hesabı hakkında hiçbir şey bilmiyorum.
EDIT: Charles eta azaltımlarını soruyor. Bu, aradığı örnek için umut vericidir, çünkü genel olarak, booleanları içeren basit bir örnekle göstereceğim tam eşitlik teorisini modelleyecek kadar güçlü olmayacaklarını düşünüyorum. Booleanlar için eta-genleşmesi . (Eta azaltma elbette diğer yöndedir.)C[e]↦if(e,C[true],C[false])
Şimdi, i f ( e , f , g ) terimini düşünün . Bu terimin i f ( e , fif(e,f,g)if(e,x,y) biz değiştirmek gerekir, çünkü, bir eta-genişleme geçmesi gerekir e If-Then-birinin ile birinde t r u e ve f bir L s e , bir tahrik etmek üzere β Düşürülmesi. if(e,fx,gy)etruefalseβ