stringtranslate.com

Cálculo de construcciones

En lógica matemática e informática , el cálculo de construcciones ( CoC ) es una teoría de tipos creada por Thierry Coquand . Puede servir como lenguaje de programación mecanografiado y como base constructiva para las matemáticas . Por esta segunda razón, el CoC y sus variantes han sido la base de Coq y otros asistentes de prueba .

Algunas de sus variantes incluyen el cálculo de construcciones inductivas [1] (que agrega tipos inductivos ), el cálculo de construcciones (co)inductivas (que agrega coinducción ) y el cálculo predicativo de construcciones inductivas (que elimina cierta impredicatividad ).

Rasgos generales

El CoC es un cálculo lambda tipificado de orden superior , desarrollado inicialmente por Thierry Coquand . Es bien conocido por estar en la cima del cubo lambda de Barendregt . Dentro de CoC es posible definir funciones de términos a términos, así como de términos a tipos, de tipos a tipos y de tipos a términos.

El CoC es fuertemente normalizador y, por tanto, coherente . [2]

Uso

El CoC se ha desarrollado junto con el asistente de prueba Coq . A medida que se agregaron características (o se eliminaron posibles responsabilidades) a la teoría, estuvieron disponibles en Coq.

En otros asistentes de prueba, como Matita y Lean , se utilizan variantes del CoC .

Los fundamentos del cálculo de construcciones.

El cálculo de construcciones puede considerarse una extensión del isomorfismo de Curry-Howard . El isomorfismo de Curry-Howard asocia un término en el 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 en el cálculo de predicados intuicionista completo , que incluye pruebas de enunciados cuantificados (que también llamaremos "proposiciones").

Términos

Un término en el cálculo de construcciones se construye utilizando las siguientes reglas:

En otras palabras, el término sintaxis, en forma Backus-Naur , es entonces:

El cálculo de construcciones tiene cinco clases de objetos:

  1. pruebas , que son términos cuyos tipos son proposiciones ;
  2. proposiciones , que también se conocen como tipos pequeños ;
  3. predicados , que son funciones que devuelven proposiciones;
  4. tipos grandes , que son los tipos de predicados ( es un ejemplo de tipo grande);
  5. en sí, que es el tipo de tipos grandes.

Juicios

El cálculo de construcciones permite probar juicios tipográficos :

,

que puede leerse como la implicación

Si las variables tienen, respectivamente, tipos , entonces el término tiene tipo .

Los juicios válidos para el cálculo de construcciones se derivan de un conjunto de reglas de inferencia. En lo sucesivo, nos referimos a una secuencia de asignaciones de tipos ; significar términos; y significar cualquiera o . Escribiremos en el sentido del resultado de sustituir el término por la variable libre en el término .

Una regla de inferencia se escribe en la forma

,

lo que significa

Si es un juicio válido, entonces también lo es .

Reglas de inferencia para el cálculo de construcciones.

1 .

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 es . Sin embargo, este 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

Tenga en cuenta que los valores booleanos y naturales se definen de la misma manera que en la codificación Church . Sin embargo, surgen problemas adicionales debido a la extensionalidad proposicional y la irrelevancia de la prueba. [3]

Ver también

Referencias

  1. ^ Cálculo de construcciones inductivas y bibliotecas estándar básicas: tipos de datos y lógica.
  2. ^ Coquand, Thierry; Gallier, Jean H. (julio de 1990). "Una prueba de una fuerte normalización de la teoría de las construcciones utilizando una interpretación similar a Kripke". Informes Técnicos (Cis) : 14.
  3. ^ "Biblioteca estándar | El asistente de prueba de Coq". coq.inria.fr . Consultado el 8 de agosto de 2020 .

Fuentes