Cosa rende indecidibile l'inferenza di tipo per tipi dipendenti?


42

Ho visto che i sistemi di tipo dipendente non sono inferibili, ma sono verificabili. Mi chiedevo se c'è una semplice spiegazione del perché sia ​​così, e se esiste o meno un limite di "dipendenza" in cui i tipi possono essere indicizzati in base a valori, al di sotto dei quali è possibile l'inferenza dei tipi e al di sopra dei quali no?


Non sono sicuro, ma suppongo che potresti usare l'inferenza per determinare se un calcolo si è fermato o meno.
jmite,

è legato alla conversione del tipo nei linguaggi di programmazione? è un problema aperto lì - la conversione del tipo nei linguaggi di programmazione indecidibilità aperta
vzn

Un altro motivo è che i tipi dipendenti non ammettono i tipi principali. Qual è il tipo di ? λun'.un'
jmite,

Risposte:


36

Per una versione piuttosto semplice della teoria dei tipi dipendenti, Gilles Dowek ha fornito una prova dell'indecidibilità della tipabilità in un contesto non vuoto:

Gilles Dowek, L'indecidibilità del typability nel -calcoloλΠ

Quale può essere trovato qui .

λ

L'idea è di codificare un problema di corrispondenza Post come un problema di conversione del tipo e quindi costruire con cura un termine che sia tipizzabile se i due tipi specifici sono convertibili. Questo utilizza la conoscenza della forma delle forme normali, che esistono sempre in questo calcolo. L'articolo è breve e ben scritto, quindi non entrerò più in dettaglio qui.

λ

JB Wells, tipabilità e verifica del tipo nel sistema F sono equivalenti e indecidibili .

Questo può essere trovato qui . Tutto quello che so è che riduce il problema della semi-unificazione (che è un'istanza modulo di unificazione di quantificatori universali, ed è indecidibile) per il controllo del tipo nel Sistema F.

Infine è abbastanza facile dimostrare che l'abitazione delle famiglie dipendenti è indecidibile: semplicemente codificare un problema Post negli indici del costruttore. Ecco alcune diapositive di Nicolas Oury che illustrano l'argomento.

Quanto al fatto che esista un "limite", dipende molto da cosa stai cercando di fare con i tuoi tipi dipendenti, e ci sono molte approssimazioni che cercano di essere decidibili, o almeno abbastanza vicine da essere utilizzabili. Queste domande fanno comunque ancora parte della ricerca attiva.

Una possibile strada è il campo dei "tipi di perfezionamento" in cui il linguaggio di espressione delle dipendenze dei tipi è limitato per consentire il controllo decidibile, ad esempio Tipi di liquidi . È raro che l'inferenza del tipo completo sia decidibile anche in questi sistemi.


Collegamento dei tipi di liquido rotto
michaelsnowden,

@michaelsnowden fixed!
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.