Qual è il ruolo del calcolo bicolore delle costruzioni?


9

Quindi, sto leggendo un po 'di elaborazione, in particolare, algoritmi basati sul calcolo bicolore della costruzione, e sono un po' confuso. Non capisco quale sia esattamente lo scopo della . Sembra essere identico a C C, tranne per il fatto che esiste una distinzione tra argomenti impliciti ed espliciti per le funzioni. In particolare, non vedo come si permette di scrivere ( i DCCbiCC anziché ( i d(id0) . Se assumiamo un sistema per definizioni globali, allora,(idN0)

id:(ΠA|Type.(Πx:A.A))

e

.id=(λA|Type.(λx:A.x))

Le regole lo consentono davvero ? Ovviamente la sintassi sì, ma non la vedo nella relazione di battitura. Mi sto perdendo qualcosa? Sto capendo il ruolo di C C B i in modo errato?(id0)CCbi

Inoltre, la proprietà della confluenza non è persa? Immagino che il mio problema sia che sto leggendo l'elaborazione senza aver letto molto su prima di questo. Qual è un buon documento che lo introduce e solo?CCbi

Modifica: per essere più precisi, chiedo come è accettato al posto di ( i d(id0) quando le regole per l'applicazione Π sia esplicita che implicitasono identiche modulo sytnax. Non vedo alcuna differenza tra : e | le regole per entrambi sembrano uguali.(idN0)Π:|

Π

(id0)(idN0)


2
Come ho detto sotto, la tua intuizione è corretta: il calcolo bicolore delle costruzioni è un calcolo esplicito, in cui gli argomenti omessi dall'utente ma elaborati dal "front-end" sono esplicitamente contrassegnati. Inoltre, la confluenza viene persa per le riduzioni beta + eta, ma vera se limitata alla sola beta.
cody

Risposte:


9

Nel calcolo implicito delle costruzioni che estende i sistemi di tipo puro con un raccoglitore di tipo a intersezione e un sottotipo , Alexandre Miquel introduce i concetti di base del calcolo implicito delle costruzioni, che ritengo sia sinonimo del calcolo bicolore delle costruzioni.

Il punto è (tra le altre cose) avere un calcolo senza l'ingombro di annotazioni esplicite di tipo ovunque. Tuttavia, l'inferenza del tipo è (molto probabilmente) indecidibile.

id=λx.x

id:X:Type.XX
id:NatNat
id 0:Nat
Il sistema ammette la riduzione e la confluenza del soggetto, anche a termini non tipizzati (che in realtà non riesce per i calcoli con annotazioni di astrazione). Tutto questo può essere trovato nella tesi di Alexandre, che è purtroppo in francese. Non sono sicuro di avere un riferimento migliore per questi risultati, anche se temo.

La prima parte della tua risposta lo sapevo, ma penso che avrei dovuto essere più specifico nella mia domanda originale. Cioè, come è esattamente consentito (id 0) se id ha il tipo (\ Pi X | Type. X -> X) perché sembra che la regola APP sia identica sia per il implicito che per il esplicito \ Pi. Nel calcolo implicito delle costruzioni, che in realtà è una teoria diversa, non è così perché è separato in APP e GEN. Per verificare che sia diverso, controlla l'intestazione "Un calcolo con argomenti" davvero impliciti "nel documento a cui hai fatto riferimento.
Anthony,

1
Per quanto riguarda la decidibilità. Il documento a cui fai riferimento ipotizza che la sua teoria sia indecidibile. Il documento a cui fa riferimento (immagino che il calcolo bicolore "originale" della carta per costruzioni) afferma di essere decidibile ma non lo dimostra esplicitamente. L'ho letto dopo aver postato questa domanda e sembra che dovrebbe sicuramente essere decidibile e, a seconda delle restrizioni sintattiche, mantenere la confluenza. D'altra parte, sono ancora bloccato dalla mia confusione originale: \
Anthony

Forse dovresti dirci quale documento stai guardando.
cody

2
Ok, ho dato un'occhiata a Elaboration and Erasure in Type Theory di Marko Luther, che suppongo sia il tuo riferimento. In tal caso, non vi è alcuna differenza semantica tra i prodotti espliciti e impliciti, e in effetti il ​​sistema bicolore è un'estensione conservativa del calcolo delle costruzioni. Quello che succede è che usi l' elaborazione per prendere un termine senza l'argomentazione esplicita per trasformarlo in un termine completamente annotato: id !1 0elabora id Nat 0. In questo testo, l'elaborazione è trattata nella sezione 4.
codice

CCbi
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.