El cálculo del de las construcciones (CoC) es un cálculo mecanografiado higher-order donde están los valores los tipos de primera clase que es así posible, dentro del CoC, definir funciones, por ejemplo, de números enteros a los tipos, tipos de la lambda a los tipos así como funciones de números enteros a los números enteros.

El CoC es que normaliza fuerte, aunque, por el teorema del estado incompleto de Gödel, es imposible probar esta característica dentro del CoC puesto que implica consistencia.

El CoC fue desarrollado inicialmente por el Thierry Coquand .

El CoC era la base de las versiones tempranas del prover del teorema de Coq ; versiones posteriores fueron construidas sobre el cálculo de las construcciones inductivas, una extensión de CoC con la ayuda nativa para el inductivo Datatypes en el CoC original, los datatypes inductivos tuvieron que ser emuladas como su función polimórfica del destructor.

Los fundamentos del cálculo de construcciones

El cálculo de construcciones se puede considerar una extensión del isomorfismo de Curry-Howard. El isomorfismo de Curry-Howard asocia un término en el cálculo simplemente mecanografiado de la lambda a cada prueba de la natural-deducción en la lógica proposicional intuicionista . El cálculo de construcciones amplía este isomorfismo a las pruebas en el cálculo de predicado intuicionista completo, que incluye las pruebas de las declaraciones cuantificadas (que también llamaremos " propositions").

Términos

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

es un término (también llamado el tipo del )
El P es un término (también llamado el apoyo del, el tipo de todos los asuntos)
Si A y B son términos, después estar tan \ mathbf {(} A B)
( \ mathbf {\ lambda} x: A.B)
( \ forall x: A.B)

El cálculo de construcciones tiene cuatro tipos de objeto: el impermeabiliza, que son los términos cuyos tipos son

  • de los asuntos del el propone, que también se conocen como pequeños tipos
  • del de el afirma, que son las funciones que el
  • de vuelta de los asuntos tipos grandes del, que son los tipos de predicados. (el P es un ejemplo de un tipo grande)
  • T sí mismo, que es el tipo de tipos grandes.

    Juicios

    En el cálculo de construcciones, un juicio es una inferencia que mecanografía:

    x_1:A_1, x_2: A_2, \ ldots \ vdash t: B

    Cuál se puede leer como la implicación el

    l si las variables x_1, x_2, \ ldots tienen tipos A_1, A_2, \ ldots, después término t tiene tipo B.

    Los juicios válidos para el cálculo de construcciones son derivables de un sistema de reglas de inferencia. En el siguiente, utilizamos el \ Gamma para significar una secuencia de tipo asignaciones x_1: A_1, x_2: A_2, \ los ldots , y nosotros utilizamos el K para significar el P o el T . Escribiremos el A: B: C para significar el " A tiene tipo B, y B tiene tipo C". Escribiremos el B (x: =N) para significar el resultado de substituir el término N para el x variable adentro el término B.

    Una regla de inferencia se escribe en la forma del

    l {\ gamma \ vdash A: } \ Encima de B {\ Gamma \ vdash C: D}

    cuál significa

    l si \ gamma \ vdash A: B es un juicio válido, después es tan \ Gamma \ el vdash C: D

    Reglas de inferencia para el cálculo de construcciones



  • {\ gamma \ vdash A: K \ sobre {\ Gamma, x: A \ vdash x: de A}}

    {\ gamma, x: A \ vdash t: B: K \ sobre {\ Gamma \ vdash (\ lambda x: A.B): de K}}

    {\ gamma \ vdash M: (\ forall x: A.B) \ qquad \ qquad \ gamma \ vdash N: A \ encima {\ Gamma \ vdash M N: B (x: = N)}} de

    {\ gamma \ vdash M: A \ qquad \ =_ del qquad A \ B beta \ qquad \ qquad B: K \ encima {\ gamma \ vdash M: B}}

    Definición de operadores lógicos

    El cálculo de construcciones es muy parsimonioso cuando viene a los operadores básicos: el único operador lógico para formar asuntos es el \ forall. Sin embargo, este un operador es suficiente definir a el resto de operadores lógicos:

    \ comenzar {la matriz} A \ Rightarrow B y \ y equivalente \ forall x: A.B y (de x \ del notin B) \ \ A \ cuña B y \ y equivalente \ forall C: P. (A \ Rightarrow B \ Rightarrow C) \ Rightarrow C y \ \ A \ uve B y \ y equivalente \ forall C: P. (A \ Rightarrow C) \ Rightarrow (B \ Rightarrow C) \ Rightarrow C y \ \ \ neg A y \ y equivalente \ forall C: P. (A \ Rightarrow C) y \ \ \ existe x: A.B y \ y equivalente \ forall C: P. () \ Rightarrow C de B \ del Rightarrow C) y \ extremo {matriz}

    Definición de tipos de datos

    Los tipos de datos básicos usados en de informática pueden ser definidos dentro del cálculo de construcciones:

    ; Booleans: \ forall A: P. A \ Rightarrow A \ Rightarrow A ; Productos naturales: \ forall A: P. (A \ Rightarrow A) \ Rightarrow (A \ Rightarrow A) ; A del producto \ épocas B: A \ cuña B ; Desunir el A de la unión + B: A \ uve B

    Ver también

    Asuntos

    Isomorfismo de Curry-Howard
    Lógica intuicionista
    Tipo intuicionista teoría
    Cálculo de la lambda
    Cubo de la lambda
    Sistema F
    Cálculo mecanografiado de la lambda
  • Teóricos

    Coquand, Thierry
    Girard, Jean-Yves

    .

  • Zenithic
  • Baron Ferrers
    Random links:Deporte extremo | Lago claro, Illinois | Denpasar | Niki, Hokkaidō | La endecha de Aotrou y de Itroun

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">