Desarrollado por | INRIA , Universidad Diderot de París , la Escuela Politécnica , Universidad de París-Sur , Escuela Normal Superior de Lyon |
---|---|
Primera versión | 1984 |
Última versión | 8.13.1 (22 de febrero de 2021) |
Depositar | Gallo en GitHub |
Estado del proyecto |
![]() |
Escrito en | OCaml |
Sistema de explotación | Multiplataforma |
Medio ambiente | Multiplataforma |
Idiomas | inglés |
Tipo | Asistente de pruebas |
Política de distribución | Libre y de código abierto |
Licencia | GNU LGPL 2.1 |
Sitio web | http://coq.inria.fr |
Coq es un asistente de pruebas en el lenguaje Gallina , desarrollado por el equipo PI.R2 de Inria dentro del laboratorio PPS del CNRS y en colaboración con la École polytechnique , el CNAM , la Université Paris Diderot y la Universidad Paris-Sud (y anteriormente la École normale supérieure de Lyon ).
El nombre del software (inicialmente CoC ) es particularmente apropiado porque: es francés; se basa en el cálculo de construcciones ( CoC abreviado en inglés) introducido por Thierry Coquand . En la misma línea, su idioma es Gallina y Coq tiene un wiki dedicado, llamado Cocorico! .
Coq recibió el premio ACM SIGPLAN Programming Languages Software 2013.
A principios de la década de 1980, Gérard Huet inició un proyecto para fabricar un demostrador interactivo de teoremas. Este es un asistente de pruebas. Thierry Coquand y Gérard Huet conciben la lógica de Coq y el cálculo de construcciones. Christine Paulin-Mohring amplía esta lógica con una nueva construcción, tipos inductivos y un mecanismo de extracción que obtiene automáticamente un programa de cero fallas a partir de una prueba.
Rooster se basa en el diseño de estructuras , una teoría de tipos de orden superior , y su lenguaje de especificación es una forma de cálculo lambda mecanografiado. El cálculo de construcciones utilizado en Coq incluye directamente construcciones inductivas, de ahí su nombre de cálculo de construcciones inductivas (CIC).
Recientemente, a Coq se le ha dado una funcionalidad de automatización creciente. Citemos en particular la táctica Omega que decide la aritmética de Presburger .
Más específicamente, Coq permite:
Es un software gratuito distribuido bajo los términos de la licencia GNU LGPL .
Entre los grandes éxitos de Coq, podemos mencionar:
Rooster usa la correspondencia Curry-Howard . La prueba de una proposición se ve como un programa cuyo tipo es esta proposición. Para definir un programa o una prueba, debe:
También es posible utilizar SSReflect en lugar de Ltac. Anteriormente desarrollado por separado, ahora se incluye de forma predeterminada en Coq.