Quali parti della teoria del tipo di omotopia non sono possibili in Agda o Coq?


16

Quando guardiamo il libro, Homotopy Type Theory - vediamo i seguenti argomenti:

Homotopy type theory 
2.1 Types are higher groupoids
2.2 Functions are functors
2.3 Type families are fibrations
2.4 Homotopies and equivalences
2.5 The higher groupoid structure of type formers
2.6 Cartesian product types
2.7 S-types
2.8 The unit type
2.9 P-types and the function extensionality axiom
2.10 Universes and the univalence axiom
2.11 Identity type
2.12 Coproducts
2.13 Natural numbers
2.14 Example: equality of structures
2.15 Universal properties

Ora sappiamo che non tutta la teoria del tipo di omotopia è possibile sia Agda e Coq .

La mia domanda è: quali parti della teoria dei tipi di omotopia non sono possibili in Agda o Coq?


4
Non è una domanda particolarmente ben formulata. Qual è la relazione tra l'elenco degli argomenti e la domanda?
Dave Clarke,

@Dave Clarke, L'elenco degli argomenti assomiglia al contesto della mente dell'interrogante in modo che il rispondente sappia qual è il punto di partenza dell'interrogatore e può adattare la risposta di conseguenza. Altri studenti possono anche apprezzare la risposta nello stesso contesto e capire che la risposta sarà probabilmente utile a loro se il rispondente è pensieroso e astuto riguardo alla natura umana. Spero che aiuti anche in altre conversazioni future.
codeshot,

Risposte:


21

Se guardi le Note sul Capitolo 8 , vedrai ciò che è già stato formalizzato e penso che sia molto. Ci sono la libreria Coq HoTT e la libreria Agda HoTT-Agda che formalizzano grandi blocchi di Teoria del tipo di omotopia.

Per fare le cose in Coq avevamo bisogno di una versione speciale di Coq che era stata patchata solo ai fini di HoTT. Tuttavia, Coq si sta muovendo nella direzione di supportare la teoria dei tipi di omotopia, quindi tra poco potremmo essere in grado di farlo con Coq standard.

In Agda si deve attivare l' --without-Kopzione, altrimenti Agda pensa che tutti i tipi siano di tipo 0. Ci sono alcuni dubbi persistenti sul fatto --without-Kche si sbarazzi davvero del presupposto che tutto sia un set di 0, o forse si potrebbe reintrodurlo in Agda con usi complicati di combinazioni di schemi.

I seguenti aspetti delle formalizzazione di Coq e Agda non sono soddisfacenti:

  1. L'assioma dell'Univalenza è dichiarato come un'ipotesi. Sarebbe meglio se fosse integrato nel sistema. In particolare vorremmo che Coq e Agda comprendessero le regole di calcolo sull'assioma dell'Univalenza.

  2. Allo stesso modo, dobbiamo usare gli hack per ottenere tipi più induttivi praticabili. Ancora una volta, sarebbe meglio avere un supporto diretto.

Il problema con le suddette carenze è che nessuno sa come risolverle anche in teoria. Questa è un'area attiva di ricerca.

Oltre a ciò, penso che sia giusto dire che HoTT può essere fatto principalmente in Coq e Agda, ma non nel modo ottimale.


1
Grazie, c'è una buona descrizione del perché l'univalenza e i tipi induttivi più elevati non si adattano bene alle teorie dei tipi come Agda e Coq?
Martin Berger,

1
@MartinBerger questa potrebbe essere probabilmente una domanda separata (con alcune definizioni per lettori più casuali, ecc.).
Artem Kaznatcheev

4
Il problema con l'univalenza e gli HIT non è che "non si adattano bene alle teorie dei tipi come Agda e Coq" ma che "non sappiamo come farle correttamente in nessuna teoria dei tipi".
Andrej Bauer,

1
@AndrejBauer L'univalenza e i tipi induttivi più elevati sono formali nella scrittura HoTT che è una teoria del tipo (semi-formale). Qual è l'ingrediente mancante che impedisce una corretta formalizzazione in Agda / Coq? Correlato, se sei disposto a rinunciare a Curry-Howard, c'è qualche difficoltà a formulare l'univalenza e i tipi induttivi più elevati in un prover in stile LCF, come Isabelle, usando ad esempio LF come meta-linguaggio per formalizzare le regole di prova?
Martin Berger,

4
A cosa servono le regole di calcolo ua, la costante che assiste all'assioma dell'Univalenza? Quali sono le regole di calcolo per gli HIT? Abbiamo alcune idee, ma niente a tenuta stagna.
Andrej Bauer,

12

Per quanto ho capito, in Agda è possibile rappresentare tutto ciò (cioè tutto il capitolo 2 - c'è una libreria su github che lo fa; AFAIK, lo stesso vale per Coq). È solo quando si arriva ai capitoli successivi che le cose diventano rischiose. Esistono due elementi ovvi:

  1. Il cerchio. Questo è rappresentato (in Agda) usando un postulato , e quindi non è bello come altre cose.

Ci sono anche altri elementi, ma non ho ancora letto quella parte della formalizzazione di Agda ... Ma nel complesso, la maggior parte degli HoTT può essere ben formalizzata sia in Agda che in Coq.

Ancora più importante, entrambi i team di sviluppatori stanno lavorando attivamente all'adattamento dei loro sistemi in modo che possa essere gestita una parte maggiore di HoTT, almeno ogni volta che esiste una chiara teoria su come implementare le funzionalità necessarie. Ciò si è rivelato essere impegnativo in alcune parti.

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.