Per i calcoli digitati, se si considerano i tipi negativi ( , × , → ), è possibile attivare o disattivare le regole eta praticamente a piacimento senza influire sulla confluenza.1×→
Per i tipi positivi (somme e coppie con l'eliminazione del pattern matching), la situazione è molto più complicata. Fondamentalmente, la domanda è se il termine ha una forma di eliminazione a scopo chiuso, che consente ai contesti di interagire in modo complicato con le espansioni di eta. Ad esempio, se ha tipo A × B , allora la sua espansione eta è l e teA × B . Ma per ottenere la teoria equazionale che un teorico di categoria si aspetterebbe, è necessario considerare i contesti C [ - ] e generalizzare l'equazione come C [ e ] ≡ l e tl e t( a , b ) = eio n( a , b )C [-] (con le restrizioni di scoping previste).C [e]≡ l e t( a , b ) = eio nC [(a,b)]
Penso che puoi ancora dimostrare un risultato di confluenza se non permetti le conversioni pendolari. Ma questo è sentito dire - non l'ho mai provato da solo, né ho visto documenti che lo documentano.
Tuttavia, non so davvero nulla del calcolo lambda non tipizzato.
EDIT: Charles chiede riduzioni di eta. Questo è promettente per il tipo di esempio che cerca, perché penso che in generale non saranno abbastanza forti da modellare l'intera teoria dell'uguaglianza, che illustrerò con un semplice esempio che coinvolge i booleani. L'espansione eta per i booleani è . (La riduzione dell'eta è ovviamente nella direzione opposta.)C [e]↦ i f( e , C [ t r u e ] , C [ fa l s e ])
Ora, considera il termine . Mostrando che questo termine è equivalente a i f ( e , fio f( e , f, g)io f( e , x , y) deve attraversare un'espansione eta, perché dobbiamo sostituire la e in una delle if-then-elses con t r u e e f a l s e per guidare unariduzione β . io f( e , fx , gy)et r u efa l s eβ