El cálculo de construcciones inductivas

Conversación: Calculus of inductive constructions (resumen). Índice: documentos.

El CIC es la teoría de tipos sobre la que están construidos Coq/Rocq y, con variantes, Lean. Interesa al libro por una razón precisa: es el sistema donde lógica y computación son literalmente lo mismo, y donde los «axiomas» dejan de ser verdades para convertirse en reglas de construcción.

Propiedades

Metateóricas

Propiedad Qué dice Para qué sirve
Normalización fuerte Todo término bien tipado reduce a forma normal en un número finito de pasos, por cualquier camino Todas las funciones definibles terminan; de ahí la exigencia de recursión estructural o bien fundada
Confluencia (Church-Rosser) El resultado no depende del orden de reducción La forma normal es única
Preservación de tipos Si un término tiene tipo T, lo conserva al reducirse El tipado es estable bajo cómputo
Consistencia No hay término cerrado de tipo False No se puede demostrar una contradicción
Decidibilidad del chequeo de tipos Verificar si un término tiene un tipo dado es decidible El ordenador puede comprobar demostraciones mecánicamente

Estructurales

Lo que no trae de serie: extensionalidad de funciones, irrelevancia de pruebas obligatoria y univalencia.

Con qué lógica se corresponde

Con la lógica intuicionista de orden superior enriquecida con definiciones inductivas.

Rasgo del sistema Lectura lógica
Constructivo Demostrar «existe x» exige construir x; sin tercio excluso ni doble negación
Tipos dependientes Π x:A. P x Cuantificador universal; los tipos Σ dan el existencial
Universo impredicativo Prop Cuantificación sobre proposiciones: más que primer orden
Tipos inductivos Inducción, aritmética de Heyting, conectivos definidos

En el cubo lambda de Barendregt, el Cálculo de Construcciones sin inductivos ocupa el vértice λC. La escala completa es instructiva: lógica proposicional ↔︎ λ-cálculo simplemente tipado; segundo orden ↔︎ Sistema F; orden superior ↔︎ Fω; al añadir tipos dependientes se obtiene la lógica de predicados correspondiente.

Impredicatividad

Una definición es impredicativa cuando cuantifica sobre una totalidad a la que ella misma pertenece. En Prop:

∀ P : Prop, P → P

Esa expresión es a su vez una Prop, de modo que al definirla se cuantifica sobre todas las proposiciones, ella incluida. Lo contrario, lo predicativo, sube de nivel:

∀ A : Type₀, A → A   :   Type₁
Ventaja Riesgo Precio
Impredicatividad en Prop Permite codificar conectivos y definiciones dentro de Prop Sin control produce paradojas: Russell, y la de Girard, que muestra que Type : Type es inconsistente Restricción de eliminación: de una prueba en Prop no se puede extraer información para construir datos en Type

El antecedente histórico es la crítica de Poincaré y Russell a las definiciones de «círculo vicioso» y la teoría ramificada de tipos. CIC llega a un compromiso: tolera la impredicatividad, pero solo en el mundo de las proposiciones.

Para el libro esto es más que un detalle técnico. La impredicatividad es la misma figura que está detrás de las aporías reflexivas: una totalidad que se incluye a sí misma. La diferencia es que aquí no se la prohíbe ni se la padece, sino que se la confina: se permite donde no hace daño y se estratifica donde lo haría. Es una tercera salida, junto a los tipos de Russell y al silencio del Tractatus, al problema que recoge Copiar y nombrar: la diagonal que une a Cantor y Gödel.

Qué son los «axiomas» aquí

No hay un único conjunto de axiomas de «la lógica»; depende del sistema y de la presentación.

Presentación de Hilbert (proposicional clásica): tres esquemas y una regla.

La versión intuicionista sustituye el tercero por uno más débil, por ejemplo A → (¬A → B); lo que se pierde es exactamente ¬¬A → A y A ∨ ¬A. En primer orden se añaden los esquemas de cuantificación y la regla de generalización.

Deducción natural, en cambio, prescinde casi de axiomas y usa reglas de introducción y eliminación por conectiva. Y ahí está el punto: esas reglas son los constructores y eliminadores de los tipos de CIC. El sistema no necesita axiomas lógicos porque las reglas de tipado ya hacen ese trabajo. Los axiomas pasan a ser extras opcionales:

Axioma opcional Qué añade
Tercio excluso / doble negación Lógica clásica
Extensionalidad de funciones Igualdad de funciones punto a punto
Irrelevancia de pruebas Todas las pruebas de una Prop se identifican
Univalencia Igualdad como equivalencia (HoTT)
Elección El axioma de elección

Los axiomas, vistos así, fijan reglas de inferencia, no verdades sobre el mundo.

Después del CoC

La línea de evolución va del Cálculo de Construcciones de Coquand y Huet (años ochenta, sin inductivos nativos) al CIC con tipos inductivos, luego a los coinductivos y a las variantes predicativas de Lean, y de ahí a la teoría de tipos homotópica y a la cúbica, donde la univalencia deja de ser un axioma y pasa a tener contenido computacional.

Fuentes

Ninguna se citó en la conversación.

Correcciones y puntos pendientes