Qual è il ruolo della predicatività nelle definizioni induttive nella teoria dei tipi?


16

Spesso vogliamo definire un oggetto UNU secondo alcune regole di inferenza. Tali norme denotano una funzione generatrice F che, quando è monotona, si ottiene un punto fisso almeno μF . Prendiamo UN: =μF di essere la "definizione induttiva" di . Inoltre, la monotonicità di ci consente di ragionare con il "principio di induzione" per determinare quando un insieme contiene (cioè quando una proprietà vale universalmente su ).UNFUNUN

In Coq questo corrisponde a crei un ionductiove definizione di UN con termini espliciti introduzione. Mentre questa definizione indica una particolare funzione F , quella funzione non è necessariamente monotona. Coq impiega quindi alcuni controlli sintattici per garantire la "buona formazione" della definizione. Per una certa approssimazione, rifiuta le occorrenze di UN in posizioni negative nei tipi dei termini di introduzione.

(Se la mia comprensione fino a questo punto è difettosa, per favore correggimi!)

Innanzitutto, alcune domande nel contesto di Coq:

1) Il controllo sintattico in Coq serve semplicemente a garantire che la definizione di UN sia predicativa ? (Se è così, l'impredicatività è l'unico modo in cui la definizione sarebbe mal definita?) O sta verificando la monotonia? (Di conseguenza, la non monotonia è ciò che potrebbe ucciderla?)

2) Se un tale evento negativo di implica necessariamente che definizione di 's è impredicativa / non-monotona? O Coq non è semplicemente in grado di verificare che sia ben definito in quel caso?AUNUN

E più in generale:

3) Qual è la relazione tra la predicatività di una definizione induttiva e la monotonicità della funzione generatrice di quella definizione? Sono due facce della stessa medaglia? Non sono collegati? Informalmente, quale conta di più?

Risposte:


14

No, in questo caso, la predicatività e la monotonicità non sono strettamente correlate.

Il controllo di positività in Coq / Adga serve a garantire che stai prendendo il punto meno fisso di una cosa monotona, approssimativamente.

Ecco come pensare ai tipi induttivi in ​​termini di reticoli e operatori monotoni. Ricordiamo che il teorema di Knaster-Tarski dice che su un reticolo completo , ogni operatore monotono f : L L ha un punto minimo fisso μ ( f ) . Successivamente, possiamo pensare ai tipi in una teoria dei tipi come a formare un reticolo sotto dimostrabilità. Cioè, tipo S è inferiore T se la verità di S comporta che di T . Ora, ciò che vorremmo fare è prendere un operatore monotono F sui tipi e usare Knaster-Tarski per ottenere un'interpretazione del punto meno fisso di questo operatoreLf:LLμ(f)STSTF . μ(F)

Tuttavia, i tipi nella teoria dei tipi non sono solo una grata: formano una categoria. Cioè, dato due tipi e T , ci sono potenzialmente molti modi per S al di sotto T , con un modo per ogni prova e : S T . Quindi anche un operatore di tipo F deve fare qualcosa di sensato su queste prove. La generalizzazione appropriata della monotonicità è la funzionalità . Cioè, vogliamo che F abbia un operatore sui tipi e anche un'azione sulle prove, in modo che se e : S T , quindi F (STSTe:STFFe:ST .F(e):F(S)F(T)

Ora, la funzionalità è preservata da somme e prodotti (cioè, se e G sono endofunctor sui tipi, allora F + G e F × G (agendo in senso puntuale) sono anche funzione sui tipi (supponendo che abbiamo somme e prodotti nella nostra algebra di tipi) Tuttavia, non è conservato dallo spazio delle funzioni, poiché il bifunctor esponenziale F G è contravvenente nel suo argomento di sinistra. Quindi, quando scrivi una definizione di tipo induttivo, stai definendo un funzione per prendere un punto meno fisso di. Per assicurarsi che sia effettivamente un funzione, è necessario escludere le occorrenze del parametro ricorsivo sul lato sinistro degli spazi funzione, quindi il controllo di positività.FsolF+solF×solFsol

L'impredicatività (nel senso del Sistema F) è generalmente evitata, perché è un principio che ti obbliga a scegliere tra la logica classica e i modelli teorici di insiemi. Non è possibile interpretare i tipi come set nella teoria degli insiemi classica se si dispone dell'indicizzazione in stile F. (Vedi il famoso "Il polimorfismo non è teorico" di Reynolds.)

Dal punto di vista categorico, l'impredicatività in stile F afferma che la categoria di tipi e termini costituisce una piccola categoria completa (ovvero, homs e oggetti sono entrambi insiemi e esistono limiti di tutti i piccoli diagrammi). Classicamente questo forza una categoria ad essere un poset. Molti costruttivisti sono costruttivi perché vogliono che i loro teoremi rimangano in più sistemi della semplice logica classica, e quindi non vogliono provare nulla che sia classicamente falso. Quindi sono diffidenti nei confronti del polimorfismo impredicativo.

Tuttavia, il polimorfismo ti consente di dire molte condizioni classicamente "grandi" internamente alla tua teoria dei tipi - e la positività è una di queste! Un operatore di tipo è funzionale, se è possibile produrre un termine polimorfico:F

Fmun'p:α,β.(αβ)(F(α)F(β))

Vedi come questo corrisponde alla funzionalità? IMO, questa sarebbe un'opzione molto bella da avere in Coq, poiché ti permetterebbe di fare la programmazione generica molto più facilmente. La natura sintattica del controllo di positività è un grosso ostacolo alla programmazione generica e sarei felice di scambiare la possibilità di assiomi classici con programmi funzionali più flessibili.

EDIT: La domanda che stai ponendo sulla differenza tra Prop e Set deriva dal fatto che gli sviluppatori di Coq vogliono permetterti di pensare ai teoremi di Coq in termini ingenui di teoria teorica se lo desideri, senza costringerti a farlo. Tecnicamente, hanno diviso Prop e Set e quindi hanno proibito ai set di dipendere dal contenuto computazionale di Prop.

Quindi puoi interpretare Prop come valori di verità in ZFC, che sono i booleani vero e falso. In questo mondo, tutte le prove delle proposizioni sono uguali, e quindi ovviamente non dovresti essere in grado di ramificarti sulla prova di una proposizione. Quindi il divieto di set in base al contenuto computazionale delle prove di Prop è totalmente ragionevole. Inoltre, il reticolo booleano a 2 elementi è ovviamente un reticolo completo, quindi dovrebbe supportare l'indicizzazione impredicativa, dal momento che esistono incontri arbitrari valutati in serie. La restrizione della predicatività sugli insiemi deriva dal fatto (menzionato sopra) che l'indicizzazione di tipo F è degenerata nei modelli classici di teoria degli insiemi.

Coq ha altri modelli (è una logica costruttiva!) Ma il punto è che non dimostrerà mai nulla per cui un matematico classico sarebbe perplesso.


Grazie per la tua risposta, Neel. La tua definizione di "definizione induttiva" sembra corrispondere maggiormente all'approccio "algebra iniziale ": invece delle funzioni monotoniche (che non dicono nulla di prove e contenuto computazionale), ci occupiamo di (la nozione più generale di) funzioni. Quindi, piuttosto che verificare la monotonia, Coq sta davvero verificando la funzionalità. Tuttavia, se la predicatività non è in questione, perché Coq distingue tra il controllo di occorrenza positiva per oggetti definiti in P r o p e quelli in S e t o T y p e ? FPropSetType
Scott Kilpatrick,

Non capisco la tua domanda: Coq odia lo Inductive Blah : Prop := Foo : (Blah -> Blah) -> Blahstesso di qualsiasi altra cosa?
Neel Krishnaswami,

1
Ah, forse sto sbagliando il controllo di positività per un altro controllo relativo all'impredicabilità. Considerare Inductive prop : Prop := prop_intro : Prop -> prop.vs. Inductive set : Set := set_intro: Set -> set.. Perché la distinzione se la predicatività non riguarda la definizione induttiva?
Scott Kilpatrick,

@ScottKilpatrick: questo è davvero un controllo diverso e sulla (im) predicatività. I sorprendenti tipi Sigma consentono di codificare il paradosso di Girard, quindi un tipo di dati che memorizza un membro di un certo universo, per esempio Type@{i}, deve vivere almeno in un universo più grande Type@{i+1}.
Blaisorblade,

6

Esiste una connessione molto profonda tra definizioni induttive e impredicatività, ma la mia comprensione è che nel contesto di ciò di cui stai parlando (im) predicatività non è particolarmente rilevante e il test è puramente per garantire la monotonia, in modo che la teoria dei punti fissi possa essere applicato, vale a dire, che il principio di induzione è ben definito. (Sono disposto a essere corretto su questo punto.)

La relazione tra impredicatività e definizioni induttive viene esplorata in questo discorso di Coquand. Risale ad alcuni risultati degli anni '50 di G. Takeuti che le definizioni impredicative possono essere ridotte a definizioni induttive. Il libro

  • Teoria della prova dei sottosistemi di analisi imprevedibili - Monografie e libri di testo in scienze fisiche 2 di W. Buchholz, K. Schutte

fornisce una buona analisi dell'argomento, se riesci a metterlo le mani sopra. Queste diapositive offrono una panoramica.


4

Proprio per completare l'eccellente spiegazione di Neil, l'impredicatività ha un senso "morbido": la definizione di set o collezioni usando un riferimento a se stessi. In tal senso:

Inductive Lam : Set :=
| Var : Nat -> Lam
| App : Lam -> Lam -> Lam
| Abs : (Lam -> Lam) -> Lam

è una definizione impredicativa, in quanto definisce un tipo induttivo, Lam utilizza uno spazio funzionale (Lam -> Lam) che si riferisce alla raccolta stessa. In questa situazione, l'impredicatività è dannosa : è possibile usare il teorema di Cantor per dimostrare Falso. In realtà questo è lo stesso marchio di impredicatività che sconta l'ingenua Set Theory come base costante per la matematica. È pertanto vietato in Coq. Un altro forma di impredicatività è consentita, come sapete:

Definition Unit : Prop := forall X:Prop, X -> X

La definizione di Unità come proposizione fa riferimento alla raccolta di tutte le Proposte di cui è membro. Tuttavia, per ragioni un po 'oscure per me, questa impredicatività è non dannosa in quanto è presente in ZFC (sotto forma di comprensione illimitata ) che non è noto per essere incoerente.

In conclusione, le occorrenze negative di tipi induttivi nelle definizioni sono una forma di impredicatività, ma non quella di solito indicata quando si parla di CoC come un quadro impredicativo .


Capisco che stai dicendo che ZFC ha una comprensione illimitata. Ma sembra sbagliato - math.stackexchange.com/q/24507/79293 . Chlipala ne discute quando discute -impredicative-setnel suo libro: adam.chlipala.net/cpdt/html/Universes.html e menziona alcune restrizioni sull'eliminazione, ma questo è oscuro anche per me.
Blaisorblade,

1
UNXBXB

Ah grazie! Vedo anche come la suddetta impredicatività corrisponda a quella in ZFC (anche se la mappatura che sto usando è probabilmente troppo ingenua). Puoi aggiungere il link nella risposta?
Blaisorblade,

Purtroppo questo sembra difficile a Google (o non conosco le parole chiave giuste). Quel che è peggio, sia Wikipedia che nLab distinguono tra "comprensione limitata" (in ZFC, en.wikipedia.org/wiki/Axiom_schema_of_specification ) e "separazione limitata / limitata" (ciò a cui si è collegati). Vedi ncatlab.org/nlab/show/axiom+of+separation . Ma tutta questa terminologia sembra un equivoco in attesa di accadere - di solito ragio che anche la "separazione ~ comprensione", come te e l'autore mathforum.org/kb/message.jspa?messageID=4492130 , lo fa anche.
Blaisorblade,

Forse le migliori parole chiave per questo tipo di discussioni sono "Costruttiva Set Theory", vedi ad esempio Wikipedia , o questo bellissimo articolo di Rathjen.
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.