I tipi sono proposizioni? (Cosa sono esattamente i tipi?)


25

Ho letto molto su sistemi di tipo e simili e capisco all'incirca perché sono stati introdotti (per risolvere il paradosso di Russel). Capisco anche approssimativamente la loro rilevanza pratica nei linguaggi di programmazione e nei sistemi di prova. Tuttavia, non sono del tutto sicuro che la mia idea intuitiva di che tipo sia, sia corretta.

La mia domanda è: è valido affermare che i tipi sono proposizioni?

In altre parole, l'affermazione "n è un numero naturale" corrisponde all'affermazione "n ha il tipo 'numero naturale'", il che significa che tutte le regole algebriche che coinvolgono numeri naturali valgono per n. (Vale a dire in un altro modo, le regole algebriche sono affermazioni. Quelle affermazioni che sono vere per i numeri naturali valgono anche per n.)

Quindi questo significa che un oggetto matematico può avere più di un tipo?

Inoltre, so che i set non sono equivalenti ai tipi perché non è possibile avere un set di tutti i set. Potrei affermare che se un insieme è un oggetto matematico simile a un numero o una funzione , un tipo è una sorta di oggetto meta-matematico e per la stessa logica un tipo è un oggetto meta-meta-matematico? (nel senso che ogni "meta" indica un livello più alto di astrazione ...)

Questo ha qualche tipo di collegamento con la teoria delle categorie?


5
Una domanda strettamente correlata: Prove / Programmi e Proposte / Tipi
— Marc Hamann

1
Un'altra discussione correlata: Classificazione di Lambda Calculi
— Marc Hamann

Ho trovato un altro bell'articolo qui scientopia.org/blogs/goodmath/2009/11/17/…
— Rehno Lindeque

1
In un certo senso questo si riduce a una questione di ontologia. Che cosa è un set, una proposta ecc. Inoltre ci sono molte persone che pensano ai tipi come set. Se si vuole essere più precisi, si può distinguere tra tipi piccoli (che sono insiemi) e tipi di universo. Per una bella lettura che riguarda alcune di queste cose, raccomando la carta classica Martin-Löfs "Intuitionistic Type Theory"
— Tobias Raski,

1
Qualcuno dovrebbe scrivere una risposta dal punto di vista della teoria del tipo di omotopia.
— Robin Green,

Risposte:


20

Il ruolo chiave dei tipi è quello di suddividere gli oggetti di interesse in universi diversi, piuttosto che considerare tutto ciò che esiste in un universo. Inizialmente, i tipi sono stati ideati per evitare i paradossi, ma come sapete, hanno molte altre applicazioni. I tipi consentono di classificare o stratificare gli oggetti (vedi post di blog ).

Alcuni lavorano con lo slogan secondo cui le proposizioni sono tipi , quindi la tua intuizione ti è sicuramente utile, sebbene ci sia un lavoro come Proposizioni come [Tipi] di Steve Awodey e Andrej Bauer che sostengono il contrario, vale a dire che ogni tipo ha una proposizione associata. La distinzione viene fatta perché i tipi hanno un contenuto computazionale, mentre le proposizioni no.

Un oggetto può avere più di un tipo a causa del sottotipo e tramite le coercizioni del tipo .

I tipi sono generalmente organizzati in una gerarchia, in cui i tipi svolgono il ruolo del tipo di tipi, ma non vorrei spingermi fino a dire che i tipi sono meta-matematici. Tutto procede allo stesso livello - questo è particolarmente vero quando si tratta di tipi dipendenti .

Esiste un legame molto forte tra tipi e teoria delle categorie. In effetti, Bob Harper (citando Lambek) afferma che Logica, Lingue (dove risiedono i tipi) e Categorie formano una trinità santa . citando:

Questi tre aspetti danno origine a tre sette di adorazione: la logica, che dà il primato a prove e proposizioni; Lingue, che dà il primato a programmi e tipi; Categorie, che danno il primato a mappature e strutture.

Dovresti guardare la corrispondenza Curry-Howard per vedere il collegamento tra Logica e Linguaggi di programmazione (i tipi sono proposizioni) e Cartesian Closed Categories , per vedere il rapporto tra la teoria delle categorie.


Grazie, il primo link è stato particolarmente utile! In esso Mark informa che esiste una "relazione totale <" sui tipi. Quindi questo significa che tutte le "proposizioni" di un tipo devono includere anche tutte le "proposizioni" nei tipi sottostanti? Mi aspettavo che sarebbe stata almeno una "relazione parziale <" sui tipi ....
— Rehno Lindeque,

1
Mentre lo leggo c'è un ordine totale sugli atomi, che era in atto solo per garantire che ci fosse un numero infinito di atomi.
— Dave Clarke,

Oh, vedo che mi sono confuso tra "Assioma della comprensione" e "Assioma dell'infinito" ... Un tipo "nat" (il tipo di tutti i numeri naturali) sarebbe un "tipo di livello 0 infinito"?
— Rehno Lindeque,

3
La "santa trinità" è davvero dovuta a Lambek. Cf. la discussione sulla teoria dei tipi in Lambek & Scott (1986). Ho sentito che in McGill si parla della corrispondenza Curry-Howard-Lambek.
— Charles Stewart,

@Charles: concordo sul fatto che Lambek non sia accreditato per il suo enorme contributo, anche se, ironicamente, è stato leggere il libro di Lambek e Scott che mi ha convinto che la "santa trinità" è falsa: si rompe in presenza di potenziali non -termination.
— Marc Hamann,
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.