Sviluppato da | INRIA , Paris Diderot University , Polytechnic School , Paris-Sud University , École normale supérieure de Lyon |
---|---|
Prima versione | 1984 |
Ultima versione | 8.13.1 (22 febbraio 2021) |
Depositare | Gallo su GitHub |
Stato del progetto |
![]() |
Scritto in | OCaml |
Sistema operativo | Multi piattaforma |
Ambiente | Cross-platform |
Le lingue | inglese |
genere | Assistente di prova |
Politica di distribuzione | Gratuito e open source |
Licenza | GNU LGPL 2.1 |
Sito web | http://coq.inria.fr |
Coq è un assistente di prova che utilizza il linguaggio Gallina , sviluppato dal team PI.R2 di Inria all'interno del laboratorio PPS del CNRS e in collaborazione con l' École polytechnique , il CNAM , l' Université Paris Diderot e l' Università Paris-Sud (e precedentemente l' École normale supérieure de Lyon ).
Il nome del software (inizialmente CoC ) è particolarmente indicato perché: è francese; si basa sul calcolo delle costruzioni ( CoC abbreviato in inglese) introdotto da Thierry Coquand . Allo stesso modo, la sua lingua è Gallina e Coq ha un wiki dedicato, chiamato Cocorico! .
Coq ha ricevuto il premio ACM SIGPLAN Programming Languages Software 2013 Award.
All'inizio degli anni '80, Gérard Huet ha avviato un progetto per produrre un dimostratore di teorema interattivo. Questo è un assistente di prova. Thierry Coquand e Gérard Huet concepiscono la logica di Coq e il calcolo delle costruzioni. Christine Paulin-Mohring estende questa logica con una nuova costruzione, tipi induttivi e un meccanismo di estrazione che ottiene automaticamente un programma zero errori da una dimostrazione.
Rooster si basa sulla progettazione di strutture , una teoria dei tipi di ordine superiore e il suo linguaggio di specifica è una forma di lambda calcolo tipizzato. Il calcolo delle costruzioni utilizzato in Coq include direttamente le costruzioni induttive, da cui il nome di calcolo delle costruzioni induttive (CIC).
Coq ha recentemente ricevuto funzionalità di automazione crescenti. Citiamo in particolare la tattica Omega che decide l' aritmetica di Presburger .
Più specificamente, Coq consente:
È un software gratuito distribuito secondo i termini della licenza GNU LGPL .
Tra i grandi successi di Coq, possiamo citare:
Rooster usa la corrispondenza Curry-Howard . La prova di una proposizione è vista come un programma il cui tipo è questa proposizione. Per definire un programma o una prova, devi:
È anche possibile utilizzare SSReflect invece di Ltac. Sviluppato in precedenza separatamente, ora è incluso di default in Coq.