Quali sono le conseguenze negative dell'estensione del CIC con gli assiomi?


13

È vero che l'aggiunta di assiomi al CIC potrebbe avere influenze negative nel contenuto computazionale di definizioni e teoremi? Capisco che, nel comportamento normale della teoria, qualsiasi termine di chiusura ridurrà alla sua forma normale canonica, ad esempio, se è vero, allora n deve ridurre al termine della forma ( s u c c . . . ( S u c c ( 0 ) ) ) . Ma quando postuliamo un assioma - diciamo l'assioma dell'estensione della funzione - aggiungiamo semplicemente una nuova costante al sisteman:Nn(Succ...(Succ(0)))funext

funeXt:ΠX:UNf(X)=g(X)f=g

che semplicemente "magicamente" produce una prova di da qualsiasi prova di Π x : A f ( x ) = g ( x ) , senza alcun significato computazionale ( nel senso che non possiamo estrarre alcun codice da loro? )f=gΠX:UNf(X)=g(X)

Ma perché questo è "cattivo"?

Per funext, ho letto in questa voce coq e in questa domanda mathoverflow che causerà la perdita di canonicity o il controllo decidibile del sistema. La voce coq sembra presentare un buon esempio, ma vorrei ancora qualche riferimento in più - e in qualche modo non riesco a trovarne.

In che modo l'aggiunta di altri assiomi potrebbe causare un comportamento peggiore alla CIC? Qualsiasi esempio pratico sarebbe fantastico. (Ad esempio, l'Univalence Axiom?) Temo che questa domanda sia troppo delicata, ma se qualcuno potesse fare luce su questi problemi o darmi dei riferimenti sarebbe fantastico!


PS: La voce coq menziona che "Thierry Coquand ha già osservato che la corrispondenza dei modelli sulle famiglie intensionali è incompatibile con l'estensione nella metà degli anni '90". Qualcuno sa in quale carta o qualcosa del genere?

Risposte:


7

Una prima ragione per respingere gli assiomi è che potrebbero essere incoerenti. Anche per gli assiomi che si sono dimostrati coerenti, alcuni di essi hanno un'interpretazione computazionale (sappiamo come estendere l'uguaglianza di definizione con un principio di riduzione per loro) e altri no - quelli infrangono la canonicità. Questo è "cattivo" per diversi motivi:

  • In teoria, la canonicità ti consente di provare cose sui valori della tua lingua, senza dover andare a un modello specifico. Questa è una proprietà molto soddisfacente per pensare al tuo sistema; in particolare, sostiene le affermazioni sul mondo reale: possiamo considerare il nattipo formalizzato nel sistema come un vero "numero naturale" perché possiamo dimostrare che i suoi abitanti normali chiusi sono davvero numeri naturali. Altrimenti è facile pensare di aver modellato correttamente qualcosa nel sistema, ma di lavorare effettivamente con oggetti diversi.

  • In pratica, la riduzione è una risorsa importante per le teorie di tipo dipendente, perché semplifica le prove. Dimostrare un'uguaglianza proposizionale può essere arbitrariamente difficile, mentre dimostrare un'uguaglianza di definizione è (meno spesso possibile) ma molto più semplice, poiché il termine di prova è banale. Più in generale, il calcolo è un aspetto fondamentale dell'esperienza utente di un assistente di prova ed è comune definire le cose in modo da ridurle correttamente come previsto. (Non sono necessari assiomi per rendere difficile il calcolo; ad esempio, l'utilizzo del principio di conversione sulle uguaglianze proposizionali può già bloccare le riduzioni). L'intera attività di prova per riflessionesi basa sull'uso del calcolo per aiutare le prove. Questa è una grande differenza in termini di potenza e convenienza rispetto ad altri assistenti di prova basati sulla logica (ad es. HOL-light, che supporta solo il ragionamento sull'uguaglianza; o vedi Zombie per un approccio diverso), e usando assiomi non controllati o altri stili di programmazione, può farti uscire da questa zona di comfort.


+1 Grazie per la tua risposta! Potresti darmi alcuni esempi di assiomi che hanno un'interpretazione computazionale (o forse qualche riferimento per l'argomento)?
StudentType,

Un esempio di assioma che ha un'interpretazione computazionale è Prop-Irrelevance: affermare che tutti gli abitanti di una famiglia di tipi (in questo caso preciso, quelli del tipo Propnegli assistenti di prova Coq, che corrispondono a affermazioni puramente logiche; Prop-Irrelevance corrisponde ignorare la struttura interna delle prove di tali affermazioni) sono uguali, può essere fatto principalmente non preoccupandosi più di loro, non ha bisogno di influenzare il calcolo - ma deve essere fatto con attenzione per non rendere incoerente il sistema.
Gasche,

Un'altra famiglia di interpretazione computazionale viene dalle corrispondenze tra ragionamento classico ed effetto di controllo. La parte più nota di ciò è che al mezzo escluso può essere data una semantica computazionale mediante l'acquisizione di continuazione, ma ci sono forme limitate di controllo (eccezioni a tipi positivi) che danno principi logici a grana fine (ad es. Principio di Markov ). Guarda la logica intuizionista di Hugo Herbelin che dimostra il principio di Markov , 2010.
gasche

5

Per capire perché l'estensione di un proveratore di teoremi con alcuni assiomi può causare problemi, è anche interessante vedere quando è benigno farlo. Mi vengono in mente due casi ed entrambi hanno a che fare con il fatto che non ci interessa il comportamento computazionale dei postulati.

  • Nella teoria del tipo osservazionale, è possibile postulare una prova di qualsiasi coerente Propsenza perdere la canonicità. In effetti, tutte le prove sono considerate uguali e il sistema lo impone rifiutando completamente di esaminare i termini. Di conseguenza, il fatto che una dimostrazione sia stata costruita a mano o semplicemente postulata non ha alcuna conseguenza. Un esempio tipico potrebbe essere la prova di "coesione": se abbiamo una prova eqche A = B : Typeallora per ogni tdi tipo A, t == coerce A B eq tin cui coercetrasporta semplicemente un termine lungo una prova di uguaglianza.

  • In MLTT, si può postulare qualsiasi assioma coerente negativo senza perdita di canonicità . L'intuizione alla base di ciò è che gli assiomi negativi (assiomi della forma A -> False) sono sempre e solo usati per scartare rami irrilevanti. Se l'assioma è coerente, allora può essere usato solo in rami che sono davvero irrilevanti e quindi non verranno mai presi durante la valutazione dei termini.


4

Un esempio pratico di un assioma che si comporta male ti chiedi, che ne dici?

 0 = 1

L'articolo di Coquand a cui si fa riferimento potrebbe essere [1], in cui mostra che l'ITT dipendente (la teoria del tipo intuitivo di Martin-Löf) estesa con la corrispondenza dei modelli consente di dimostrare l'UIP (assioma dell'unicità delle prove di identità ). Successivamente Streicher e Hoffmann [2] presentano un modello di ITT che falsifica l'UIP. Quindi la corrispondenza dei modelli non è un'estensione conservativa di ITT.


  1. T. Coquand, Pattern matching con tipi dipendenti .

  2. M. Hofmann, T. Streicher, L'interpretazione groupoid della teoria dei tipi .

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.