Cálculo de la construcción

El cálculo de  construcciones ( CoC ) es una teoría de tipos basada en un cálculo λ polimórfico de orden superior con tipos dependientes , desarrollado por Thierry Cocan y Gerard Huet en 1986. Está situado en el punto más alto del cubo lambda de Barendregt , siendo el más ancho de sus sistemas constituyentes- . Se puede utilizar como base para construir un lenguaje de programación tipado y como un sistema de fundamentos constructivos para las matemáticas .

Se utiliza como base para el sistema de prueba interactivo Coq y varias herramientas similares (incluida Matita ).

Entre las opciones de cálculo se encuentran el cálculo de construcciones inductivas [1] (utiliza tipos inductivos ), el cálculo de construcciones co-inductivas (utilizando coinducción ), el cálculo predicativo de construcciones inductivas (elimina parte de la no predicatividad ).

En términos de la correspondencia de Curry-Howard , el cálculo de construcción establece la relación entre los tipos dependientes y las pruebas en el cálculo de predicados intuicionista secuencial .

Estructura

Baños

Un término en el cálculo de la construcción se construye de acuerdo con las siguientes reglas:

En otras palabras, la sintaxis de un término, cuando se escribe usando BNF , es:

El cálculo de la construcción utiliza cinco tipos de objetos:

  1. pruebas que tienen el tipo de ciertas afirmaciones ;
  2. aserciones , también llamados tipos pequeños ;
  3. predicados , que son funciones que devuelven afirmaciones ;
  4. tipos grandes que son tipos para predicados ( P  es un ejemplo de un tipo tan grande);
  5. T como tal, que es el tipo al que pertenecen los tipos grandes.

Juicios

El cálculo de construcción permite probar juicios sobre tipos .

se puede leer como una implicación:

Si las variables son de tipo , entonces el término es de tipo .

Las proposiciones válidas para el cálculo de la construcción se pueden derivar de un conjunto de reglas de inferencia. En lo que sigue, usamos símbolo para denotar una secuencia de asignaciones de tipos y K para denotar P o T. La fórmula se utilizará para reemplazar el término de cada variable libre en el término .

Las reglas de inferencia se escriben en el siguiente formato:

significa:

Si es una proposición válida, entonces

Reglas de inferencia para el cálculo de la construcción

1 .

2 .

3 .

4 .

5 .

Definición de operadores lógicos

El cálculo de la construcción incluye un número muy pequeño de operadores básicos: el único operador lógico para la formación de declaraciones . Sin embargo, esta declaración por sí sola es suficiente para definir todos los demás operadores lógicos:

Definición de tipos de datos

El cálculo de construcción le permite definir los tipos de datos básicos utilizados en informática:

valores booleanos enteros Trabajar Unión exclusiva (notación variante)

Tenga en cuenta que los valores booleanos y numéricos se definen de manera similar a la codificación de la Iglesia . Sin embargo, surgen problemas adicionales de la extensionalidad de las declaraciones y la irrelevancia[ aclarar ] evidencia [2] .

Notas

  1. Cálculo de construcciones inductivas Archivado el 10 de junio de 2020 en Wayback Machine y en Coq Core Standard Libraries: Archivado el 10 de junio de 2020 en Wayback Machine y Archivado el 10 de junio de 2020 en Wayback Machine .Datatypes Logic
  2. Biblioteca estándar | El asistente de prueba de Coq . Consultado el 24 de junio de 2020. Archivado desde el original el 21 de julio de 2011.