Esistono teorie intermedie di eta per il calcolo lambda?


15

Esistono due principali teorie studiate del calcolo lambda, la teoria beta e la sua estensione post-completa, la teoria beta-eta.

Queste due teorie hanno una via di mezzo, una sorta di regola eta intermedia che fornisce una teoria di riscrittura confluente? C'è qualche nozione interessante di estensione parziale a cui corrisponde?

Questa è la seconda domanda che ho posto nel perseguimento di eta intermedia, la precedente è stata l' estensione della teoria beta del calcolo lambda , che ha portato alla domanda su una nozione ortogonale di estensione, che caratterizza le equivalenze invisibili da confluenti regole di riscrittura , che ha cercato di chiarire un rispondere a quella domanda precedente.

Risposte:


10

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 teUN×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 tlet(un',B)=eion(un',B)C[-] (con le restrizioni di scoping previste).C[e]let(un',B)=eionC[(un',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]iof(e,C[true],C[fun'lSe])

Ora, considera il termine . Mostrando che questo termine è equivalente a i f ( e , fiof(e,f,g)iof(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 β . iof(e,fX,gy)etruefun'lSeβ


Avrei dovuto chiarire che si trattava del calcolo lambda non tipizzato: la logica a parte potrebbe renderlo poco chiaro. Nel caso tipizzato, mi aspetto che la completezza di Post valga per la teoria 〈→, ×〉, ma non sono affatto sicuro di altri tipi. i contesti interagiscono in modo complicato con le espansioni di eta - questo è un caso per considerare la riduzione di eta, non è vero, perché non è necessario limitare le riscritture?
Charles Stewart,

4

Secondo John C. Mitchell in Fondamenti dei linguaggi di programmazione, sia in STLC che nel calcolo lambda non tipizzato, la regola di riduzione pair (proj₁ P, proj₂ P) → Prompe la confluenza quando combinata con la fixriduzione (o, presumo dal guardare la dimostrazione), senza tali condizioni per il caso non tipizzato. Questo è il teorema 4.4.19 (pagina 272).


2
Immagino che questo sia un commento esteso sulla risposta di Neel. Klop & De Vrijer (1989) esaminano la teoria del calcolo lambda non tipizzato con accoppiamento suriettivo: il caso con riduzioni eta è davvero non confluente, ma la teoria è coerente (ha un modello nella costruzione D_inf di Scott), e forniscono risultati suggerendo una teoria di riscrittura confluente e conservativa per coppie suriettive può essere data (ancora un problema aperto, AFAIK).
Charles Stewart,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.