Perché una gerarchia di tipi infiniti?


18

Coq, Agda e Idris hanno una gerarchia di tipi infinita (Tipo 1: Tipo 2: Tipo 3: ...). Ma perché non farlo invece come λC, il sistema nel cubo lambda più vicino al calcolo delle costruzioni, che ha solo due tipi, e , e queste regole?

:

ΓT1:s1Γ,x:T1t:T2Γ(λx:T1,t):(Πx:T1,T2)

ΓT1:s1Γ,x:T1T2:s2Γ(Πx:T1,T2):s2

Sembra più semplice. Questo sistema presenta importanti limiti?

Risposte:


19

In realtà, l'approccio del CoC è più espressivo: consente una quantificazione arbitraria impredicativa. Ad esempio, il tipo a.aa può essere istanziato con se stesso per ottenere (a.aa)(a.aa) , che non è possibile con una gerarchia dell'universo.

Il motivo per cui non è ampiamente utilizzato è perché la quantificazione impredicativa è incompatibile con la logica classica. Se ce l'hai, non puoi dare un modello di teoria dei tipi in cui i tipi sono interpretati come insiemi in modo ingenuo --- vedi il famoso articolo di John Reynolds Il polimorfismo non è una teoria teorica .

Poiché molte persone vogliono usare la teoria dei tipi come un modo per controllare automaticamente le normali prove matematiche, sono generalmente poco entusiaste delle caratteristiche della teoria dei tipi che sono incompatibili con le solite basi. In effetti, Coq originariamente sosteneva l'impredicatività, ma l'hanno costantemente abbandonata.


9

Mi complimento con la risposta di Neel (eccellente, come al solito) con un po 'più di esposizione sul perché i livelli vengono utilizzati nella pratica.

La prima importante limitazione del CoC è che è banale! Un'osservazione sorprendente è che non esiste un tipo per il quale è possibile dimostrare che ha più di un elemento, e tanto meno un numero infinito di essi. L'aggiunta di soli 2 universi ti dà i numeri naturali con infinitamente molti elementi e tutti i tipi di dati "semplici".

La seconda limitazione sono le regole di calcolo: il CoC supporta solo l' iterazione , ovvero le funzioni recusive non hanno accesso ai sotto-termini dei loro argomenti. Per questo motivo, è più conveniente aggiungere tipi induttivi come costruzione primitiva, dando origine al CIC. Ma ora sorge un altro problema: la regola dell'induzione più naturale (chiamata eliminazione in questo contesto) è incompatibile con il Medio Escluso! Questi problemi non compaiono se si limita la regola di induzione a tipi predicativi con universi.

In conclusione, sembra che il CoC non abbia né l'espressività né la solidità rispetto alla coerenza che vorreste in un sistema di base. L'aggiunta di universi risolve molti di questi problemi.


Hai dei riferimenti per la prima limitazione? In caso contrario, potresti dare suggerimenti su come il secondo universo aiuta a dimostrare la disuguaglianza (proposizionale? Meta?)?
Łukasz Lew,

@ ŁukaszLew In realtà è una semplice conseguenza del modello "prova irrilevante", che può essere facilmente cercato su Google. In quel modello nessun tipo ha più di 1 elemento. Avere 2 universi impedisce a quel modello di esistere. La tesi di Alexandre Miquel fornisce un riferimento per un tipo con un numero infinito di elementi con 2 universi.
cody
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.