Wenn Sie für typisierte Kalküle die negativen Typen ( , × , → ) berücksichtigen , können Sie die eta-Regeln grundsätzlich nach Belieben aktivieren oder deaktivieren, ohne die Konfluenz zu beeinträchtigen.1×→
Bei positiven Typen (Summen und Paaren mit der Beseitigung der Musterübereinstimmung) ist die Situation viel unübersichtlicher. Grundsätzlich stellt sich die Frage, ob der Begriff eine geschlossene Eliminierungsform hat, die es ermöglicht, dass Kontexte auf komplizierte Weise mit Eta-Erweiterungen interagieren. Wenn zum Beispiel den Typ A × B hat , dann ist seine eta-Expansion l e teA×B . Um die Gleichungstheorie zu erhalten, die ein Kategorietheoretiker erwarten würde, müssen Sie die Kontexte C [ - ] betrachten und die Gleichung zu C [ e ] ≡ l e t verallgemeinernlet(a,b)=ein(a,b)C[−] (mit den erwarteten Gültigkeitsbeschränkungen).C[e]≡let(a,b)=einC[(a,b)]
Ich denke, dass Sie immer noch ein Konfluenzergebnis nachweisen können, wenn Sie die Pendelkonvertierungen nicht zulassen. Aber das ist Hörensagen - ich habe es nie selbst ausprobiert oder mir Papiere angeschaut, die es dokumentieren.
Ich weiß allerdings nichts über untypisierte Lambda-Rechnung.
EDIT: Charles fragt nach Eta-Reduktionen. Dies ist vielversprechend für die Art von Beispiel, die er sucht, da sie meiner Meinung nach im Allgemeinen nicht stark genug sind, um die vollständige Gleichheitstheorie zu modellieren, die ich anhand eines einfachen Beispiels mit Booleschen veranschaulichen werde. Die eta-Expansion für Boolesche Werte ist . (Die Eta-Reduktion ist natürlich die andere Richtung.)C[e]↦if(e,C[true],C[false])
Betrachte nun den Term . Zeigen, dass dieser Ausdruck äquivalent ist zu i f ( e , fif(e,f,g)if(e,x,y) muss durch eine eta-Expansion gehen, weil wir die haben ersetzen e in einem der if-then-elses mit t r u eich f( e , fx , gy)et r u e und , um eine zum Antrieb β -Reduktion. falseβ