En lógica matemática e informática , el cálculo de construcciones ( CdC ) es una teoría de tipos creada por Thierry Coquand . Puede servir tanto como lenguaje de programación tipado como fundamento constructivo para las matemáticas . Por esta segunda razón, el CdC y sus variantes han sido la base de Rocq y otros asistentes de demostración .
Algunas de sus variantes incluyen el cálculo de construcciones inductivas (que añade tipos inductivos), el cálculo de construcciones (co)inductivas (que añade coinducción) y el cálculo predicativo de construcciones inductivas (que elimina cierta impredicatividad).
Características generales
El CoC es un cálculo lambda tipado de orden superior , desarrollado inicialmente por Thierry Coquand . Es conocido por estar en la cúspide del cubo lambda de Barendregt . Dentro del CoC es posible definir funciones de términos a términos, de términos a tipos, de tipos a tipos y de tipos a términos.
El CoC es fuertemente normalizador y, por lo tanto, consistente . [ 1 ]
Uso
El código de conducta se ha desarrollado junto con el asistente de pruebas Rocq . A medida que se añadían características (o se eliminaban posibles limitaciones) a la teoría, estas se integraban en Rocq.
En otros asistentes de demostración, como Matita y Lean , se utilizan variantes del código de conducta (CoC).
Los fundamentos del cálculo de construcciones
El cálculo de construcciones puede considerarse una extensión del isomorfismo de Curry-Howard . Este isomorfismo asocia un término del cálculo lambda simplemente tipado con cada prueba de deducción natural en la lógica proposicional intuicionista . El cálculo de construcciones extiende este isomorfismo a las pruebas del cálculo de predicados intuicionista completo , que incluye las pruebas de enunciados cuantificados (a los que también llamaremos "proposiciones").
Términos
Un término en el cálculo de construcciones se construye utilizando las siguientes reglas:
- es un término (también llamado tipo );
- es un término (también llamado prop , el tipo de todas las proposiciones);
- Variables () son términos;
- Siyson términos, entonces también lo es;
- Siyson términos ySi es una variable, entonces los siguientes también son términos:
- ,
- .
En otras palabras, el término sintaxis, en la forma de Backus-Naur , es entonces:
El cálculo de construcciones tiene cinco tipos de objetos:
- pruebas , que son términos cuyos tipos son proposiciones ;
- proposiciones , que también se conocen como tipos pequeños ;
- predicados , que son funciones que devuelven proposiciones;
- tipos grandes , que son los tipos de predicados (es un ejemplo de un tipo grande);
- sí mismo, que es el tipo de tipos grandes.
β-equivalencia
Al igual que el cálculo lambda sin tipos, el cálculo de construcciones utiliza una noción básica de equivalencia de términos, conocida como-equivalencia. Esto captura el significado de-abstracción:
-equivalencia es una relación de congruencia para el cálculo de construcciones, en el sentido de que
- Siy, entonces.
Sentencias
El cálculo de construcciones permite demostrar juicios de tipificación :
- ,
lo cual puede leerse como la implicación
- Si las variablestienen, respectivamente, tipos, entonces términotiene tipo.
Los juicios válidos para el cálculo de construcciones se derivan de un conjunto de reglas de inferencia . A continuación, utilizamossignifica una secuencia de asignaciones de tipo ;para significar términos; ypara significar cualquieraoEscribiremos.significar el resultado de sustituir el términopara la variable libreen el término.
Una regla de inferencia se escribe en la forma
- ,
lo que significa
- siSi es un juicio válido, entonces también lo es..
Reglas de inferencia para el cálculo de construcciones
1 . :\mathbf {T} }}
2 .
3 .
4 .
5 .
6 .
Definición de operadores lógicos
El cálculo de construcciones tiene muy pocos operadores básicos: el único operador lógico para formar proposiciones esSin embargo, este único operador es suficiente para definir todos los demás operadores lógicos:
Definición de tipos de datos
Los tipos de datos básicos utilizados en informática se pueden definir dentro del cálculo de construcciones:
- Booleanos
- Naturales
- Producto
- Unión disjunta
Los booleanos y los naturales se definen de la misma manera que en la codificación de Church . Sin embargo, surgen problemas adicionales debido a la extensionalidad proposicional y la irrelevancia de la prueba. [ 2 ]
Véase también
Referencias
- ↑ Coquand, Thierry ; Gallier, Jean H. (julio de 1990). "Una prueba de normalización fuerte para la teoría de construcciones usando una interpretación tipo Kripke" . Informes técnicos (Cis) (568): 14.
- ↑ "Biblioteca estándar – El asistente de pruebas de Coq" . coq.inria.fr . Consultado el 17 de enero de 2026 .
Fuentes
- Coquand, Thierry ; Huet, Gérard (1988). "El cálculo de construcciones" (PDF) . Información y computación . 76 ( 2–3 ): 95–120 . doi : 10.1016/0890-5401(88)90005-3 .
- También disponible en libre acceso en línea: Coquand, Thierry ; Huet, Gerard (1986). El cálculo de las construcciones (Informe técnico). INRIA , Centro de Rocquencourt. 530.La terminología es bastante diferente. Por ejemplo, () se escribe [ x : A ] B .
- Bunder, MW; Seldin, Jonathan P. (2004). Variantes del cálculo básico de construcciones (Informe). CiteSeerX 10.1.1.88.9497 .
- Frade, Maria João (2009). "Cálculo de construcciones inductivas" (PDF) . Archivado del original (discusión) el 29 de mayo de 2014. Recuperado el 3 de marzo de 2013 .
- Huet, Gérard (1988). «Principios de inducción formalizados en el cálculo de construcciones» (PDF) . En Fuchi, K.; Nivat, M. (eds.). Programación de computadoras de próxima generación . North-Holland . pp. 205–216 . ISBN 0444704108Archivado del original (PDF) el 1 de julio de 2015.– Una aplicación del Código de Conducta
- Programación con tipos dependientes
- Cálculo lambda
- teoría de tipos