Академический Документы
Профессиональный Документы
Культура Документы
net/publication/292607124
CITATIONS READS
0 721
1 author:
Numa Tortolero
Simon Bolívar University
3 PUBLICATIONS 0 CITATIONS
SEE PROFILE
All content following this page was uploaded by Numa Tortolero on 01 February 2016.
INSTITUTO DE FILOSOFÍA
Isomorfismo Curry-Howard
0
Contenido
I. Introducción
3.3. Normalización
Reglas de formación:
Convenciones de asociación:
Variables libres
1
Reglas de transformación:
Combinadores
Funciones lambda-definibles
Numerales de Church
Constructor y selector
V. Correspondencia Curry-Howard
5.2. Presentación
5.2.1. Isomorfismo
II
III
3
Introducción
El presente trabajo trata sobre la relación entre deducción en sistemas de lógica formal y
computación. Esta relación podría ser precisada a través de una correspondencia entre los
Por un lado tenemos entonces sistemas lógicos, los cuales incluyen mecanismos para
construir y derivar fórmulas nuevas a partir de otras. Al proceso que da lugar a tal
derivación se le llama deducción. De las fórmulas obtenidas por deducción, que han sido
obtenidas a partir de otras por la aplicación de reglas de deducción del sistema, decimos
que están en relación de deducción con aquellas a partir de las cuales se obtuvieron. A las
fórmulas obtenidas por deducción se les denomina teoremas. En general, las reglas de
deducción de un sistema lógico deben permitir decidir si una fórmula es un teorema del
es un teorema del sistema. En este sentido, podemos entender la deducción como una
teorema. Vista desde el punto de vista del álgebra, una lógica puede ser definida como un
sistema, constituido por un conjunto de fórmulas cerrado bajo la relación de deducción que,
como toda relación de un sistema algebraico, está caracterizada por una serie de
propiedades.
Por otro lado tenemos sistemas formales de cómputo, pensados para caracterizar la noción
4
como parte de la investigación acerca del problema de la decisión: ¿hay un método o
de cómputo o de cálculo de los valores de una función para ciertos valores de sus
sistema lógico, podemos preguntarnos si las demostraciones en estos sistemas, vistas como
puedieran realizarse de forma automatizada, y que ese contenido pudiera ser aislado de
forma precisa.
se inicia una actividad mental donde tiene lugar una serie de cogitaciones reguladas por
principios implícitos de acuerdo a los cuales debería poder decidirse si una proposición es
5
verificación: la proposición es un teorema o el hecho es el caso, o una refutación la
sintáctico de procesos mentales. Entender esta diferencia entre el acto mental orientado por
consideración de los actos mentales, junto al principio de que sólo a través de estos actos
pueden alcanzar existencia los objetos formales, ha llevado a los intuicionistas a hablar del
El presente trabajo investiga la posible identidad estructural entre los sistemas de deducción
comprobado que tal identidad existe entre el cálculo de deducción natural para la lógica
isomorfismo Curry – Howard. Esta investigación no sólo es ocasión para una presentación
propio concepto de computación, también plantea hechos que, por el lado de la lógica,
computación práctica, brinda los fundamentos para el desarrollo de programas bajo una
6
simplemente una reunión de conclusiones y reflexiones a propósito de los hechos puestos
lógico, lo cual nos dará un marco teórico adecuado para presentar los sistemas deducción
natural para la lógica intuicionista proposicional. Esta presentación implica mostrar las
nuestro objetivo.
como es expresada por los cálculos lambda. Primero haremos una presentación general e
problema de la decisión. Veremos cómo el cálculo lambda fue empleado a este respecto.
Finalmente haremos una presentación formal del cálculo lambda puro y del cálculo lambda
simple con tipos. Veremos en la presentación de este último sistema, como comienzan a
lambda con tipos. Este isomorfismo es conocido como correspondencia Curry – Howard o
asomado, esto tiene varias ventajas, algunas de tipo práctico, como la posibilidad de extraer
7
programas que computen soluciones de problemas a partir de la demostración lógica del
y nos da elementos para justificar una presentación semántica del significado de las
conectivas lógicas a través de reglas de inferencia. Otra ventaja teórica del isomorfismo es
la lógica intuicionista a sistemas del cálculo lambda y viceversa. Por ejemplo, la teoría de la
identidad entre términos del cálculo lambda, basada en la noción de reducción que define el
condicional positivo del cálculo natural proposicional intuicionista. Esto nos da, al tener
ambos sistemas idéntica estructura formal, que los corolarios que se siguen del teorema de
la forma normal para el cálculo lambda, también se deben cumplir en el cálculo lógico.
8
I. Cálculos de deducción natural
el presente capítulo vamos a hacer una presentación de los sistemas de deducción natural
que nos servirá de base para cumplir nuestra tarea. Comenzaremos exponiendo cómo se
constituye un sistema lógico, cuáles son las propiedades más importantes que debe
satisfacer y en qué marco teórico se realiza el estudio de estas propiedades. Como ejemplos
de sistemas lógicos damos primero una presentación axiomática para la lógica clásica y
luego una, también axiomática, para la lógica intuicionista. Estas primeras exposiciones
darán el entorno teórico propicio para presentar los cálculos lógicos de Gerhard Gentzen: el
cálculo de deducción natural y el cálculo de secuentes, tanto para lógica clásica y la lógica
intuicionista. Incluimos una exposición del cálculo de secuentes por estar este cálculo
última parte de este capítulo, donde presentaremos la noción de normalización para estos
cálculos. Los cálculos de Gentzen se caracterizan por ofrecer una presentación formal de
las reglas de derivación que facilita el razonamiento sobre las propiedades del sistema y su
facilitarnos su comparación con el cálculo lambda con tipos, un sistema pensado para
existencia de algún tipo de relación o morfismo entre el cálculo natural y el cálculo lambda
con tipos.
9
1.1 Constitución de un sistema lógico
símbolos que pueden combinarse para formar expresiones complejas. Las combinaciones
formación constituyen un lenguaje formal. Para que este lenguaje formal sea una lógica
través de las cuales podemos establecer cómo una fórmula puede inferirse a partir de otras,
y una especificación del significado de las expresiones bien formadas. Las reglas de
define cuáles son las expresiones gramaticalmente correctas del sistema y cómo derivar
unas de otras, de manera tal que las derivadas siempre conserven ciertas propiedades que
poseen aquellas de las cuales derivan. Además de la sintaxis, habría que establecer una
conectivas lógicas1.
1
Corti (2002, pags. 10 – 11) explica que los símbolos categoremáticos son los que tienen de significación
extralingüística. Los símbolos sincategoremáticos carecen significación extralingüística, sólo adquieren
significación modificando a un símbolo categoremático. (Quine, 1977, pag. 59) aclara que la distinción
entre términos categoremáticos y términos sincategoremáticos se atribuye a la filosofía escolástica, pero
procede de la Antigüedad: se relaciona con las proposiciones categóricas del silogismo, pues se llaman
categoremas a los términos de una proposición categórica. Una proposición categórica relaciona dos clases
10
b) Signos de puntuación o auxiliares, como paréntesis.
Formulemos ahora un lenguaje formal. El vocabulario para este lenguaje constará de:
mayúsculas A, B, …, Z.
dicen cómo combinar o construir las expresiones del lenguaje usando los símbolos del
vocabulario. Como mencionamos arriba, las reglas que conforman la sintaxis de un sistema
lógico se pueden subdividir en dos grupos: reglas de formación, que nos permiten decidir si
una fórmula está bien construida o bien formada, y reglas de transformación, que nos
especificadas.
ii) Si A y B son variables, entonces las siguientes construcciones son fórmulas del
lenguaje L:
i) ¬A
ii) A \/ B
iii) A /\ B
iv) A → B
v) A ↔ B.
o categorías, cada una de las cuáles es designada por un término denominado término categórico.
11
iii) Las construcciones (a) – (e) y las que resultan de combinar ellas para formar
otras más complejas, son las formas bien formadas (fbf) del sistema.
representar una fórmula bien formada. Quiere decir que, por ejemplo, podemos usar la letra
Como es usual, hemos usado las comillas simples - ' - para formar el nombre de una palabra
u otra expresión. La expresión formada por las comillas simples designa la expresión que
usar las constantes lógicas y los símbolos auxiliares como nombres de sí mismos. En lo que
bien formada (f.b.f). Una expresión como '(A \/ B)' no debe entenderse como una mezcla
de lenguaje objeto y metalenguaje; es una expresión propia del metalenguaje porque hemos
Para nuestro sistema, utilizamos una única regla de transformación, el modus ponens (MP):
Si A → B y A, entonces B.
Esta regla se corresponde con la idea intuitiva de que si sabemos que cuando A es el caso, B
Los sistemas de lógica formal elaborados entre finales del siglo XIX y principios del siglo
Los axiomas son fórmulas dadas que no se infieren de otras, pero permiten inferir otros
enunciados: los teoremas. Entonces, los teoremas serían fórmulas inferidas de los axiomas
Los axiomas del sistema pueden ser dados a través de esquemas como los siguientes:
H3 (A /\ B) → A) Simplificación (a)
H4 (A /\ B) → B) Simplificación (b)
H6 A → (A \/ B) Adición (a)
H7 B → (A \/ B) Adición (b)
H9 (A → ¬B ) → (B → ¬A) Contraposición
H10 ¬(A → A) → B
Hemos enumerado esta lista de esquemas usando el símbolo Hn, donde n es un número
(1934), Fundamentos de la Aritmética, según Palau (2002, pags, 28 – 29). Las expresiones
específico: se trata de formas o esquemas, expresiones sin significado, donde las letras ‘A,
13
B, … , Z’ tienen como objeto representar fórmulas bien formadas del sistema o hasta
más cuando hablemos del metalenguaje, en el apartado que le dedicamos a las propiedades
conozco A y B, entonces puedo concluir que A o puedo también concluir que B. Permiten
producción.
conocen como axiomas de adición. El axioma H8 se conoce como prueba por casos y
manifiesta la idea intuitiva de que si de una fórmula A deduzco una fórmula C y de una
fórmula B también deduzco la misma fórmula C, entonces puedo concluir que puedo
deducir C de A o de B.
14
caracteriza la idea intuitiva de que si el conocimiento de A deduzco lo suficiente para saber
puede serlo: los hechos A y B se contraponen. El axioma H11 es una forma semejante de la
es el caso, entonces puedo deducir otra cosa, que puede ser B. H11, que elimina la
Un teorema es una fórmula D que puede ser demostrada en un sistema. Según Kleene
teorema
4. Sólo son teoremas las fórmulas que cumplen con las condiciones 1 – 3.
Una derivación de un teorema es una lista numerada de fórmulas donde cada una es un
15
1. A → ((A → A) → A) H1 con (A → A) por B
3. (A → (A → A)) → (A → A) MP 1 y 2
4. A → (A → A) H1 con A por A
5. (A → A) MP 3 y 4
ahora un teorema de nuestro sistema. Se trata de una derivación que no depende para nada
de lo que puedan significar la letra A, pues recuérdese que estas expresiones son esquemas
formales sin contenido. Vemos que en esta derivación sólo hemos usado procedimientos
sintácticos. Confirmamos que la sintaxis no nos dice nada de los significados de las
fórmulas del sistema, así que no sabemos todavía si las fórmulas de tal sistema son
verdaderas o falsas, pues no sabemos a qué se refieren. A un sistema de este tipo, que sólo
Como plantea Cuena (1985, pag. 83), la asignación de significados a las expresiones y
símbolos de un sistema lógico se hace a través de una semántica, que establece una
Necesitaremos luego una definición semántica de las conectivas para especificar cómo
16
atribuir significado a las proposiciones compuestas con distintos tipos de conectivas
Para asignar significado a los símbolos no lógicos del sistema construimos una
D de la interpretación.
2. Definimos una función que asocia o asigna un elemento del dominio D a cada signo
conjunto formado por los valores de verdad: Verdad (representado por 1) y Falsedad
La definición semántica de las conectivas puede hacerse mediante las llamadas tablas de
verdad o especificando las condiciones en que cada oración del lenguaje, que incluya
conectivas lógicas, es verdad. Aquí usaremos la última opción: para especificar las
condiciones de verdad para cada oración del lenguaje L, definimos una función de
17
3. V(A /\ B) = 1 si y sólo si V(A) = 1 o V(B) = 1
Esta manera de dar significado a las conectivas, donde especificamos las condiciones de
verdad en las que ellas aparecen, supone que el valor veritativo de las fórmulas en las que
aparecen las conectivas lógicas depende del valor de verdad de sus componentes. Cuando el
significado de las conectivas es determinado de esta forma, de manera que los valores de
(1996, pag. 31) o veritativos funcionales (funciones de verdad), según Palau (2002, pag.
27)2.
Nos queda ahora la caracterización semántica de la deducción lógica, es decir, dar una
definiendo la noción de validez semántica, la cual puede ser relativa o absoluta. Una
2
Generalmente, explica Ebbinghaus (1996, pag. 31), en el habla coloquial, las conectivas no son usadas
extensionalmente. Por ejemplo, la verdad del enunciado ”José enfermó y el doctor le dio una prescripción”
es valorada de una forma distinta al enunciado “El doctor le dio una prescripción a José y enfermó”. A
diferencia del caso extensional, estos enunciados compuestos dependen de la relación temporal expresada
por el orden de los dos componentes de cada enunciado. En este último caso estamos haciendo un uso
intencional. de la conectiva.
18
Definida la noción de validez semántica, podemos definir consecuencia lógica o derivación
verdaderas las fórmulas del conjunto Γ. Como plantea Cuena (1985, pags. 87 – 88), la idea
que éstas son verdaderas lo es también aquella. ¿En qué sentido esta definición de
sintaxis de un sistema lógico sería inútil si las fórmulas que derivamos a partir de nuestros
axiomas y teoremas no fueran verdaderas respecto del mismo dominio de objetos extra
lógicos de los que son verdaderos los mismos axiomas y fórmulas dadas. El sistema lógico
interpretación donde sí son verdaderos los axiomas y teoremas a partir de los cuales fue
derivado: el sistema no sería correcto. Por eso, en un sistema lógico las reglas de inferencia
y los axiomas deben garantizar que su aplicación o uso en una deducción conserve la
verdad de las fórmulas involucradas, como si el objetivo de las reglas de inferencia fuera
transmitir la verdad de los axiomas a los enunciados que derivan de ellos por la aplicación
debería ser falso en ninguna de las interpretaciones donde los axiomas y otros teoremas del
sistema, de los cuales deriva, son verdaderos. Lo deseable es que las tautologías de un
19
¿Cómo podemos caracterizar formalmente la relación entre sintaxis y semántica en un
sistema lógico?
La relación entre sintaxis y semántica en un sistema lógico es un aspecto del sistema cuyo
estudio trasciende los límites del sistema. Si, por un lado, un sistema lógico formalizado
permite formar expresiones y concatenarlas de acuerdo a reglas precisas, por otro lado, el
propio sistema puede ser considerado como un objeto cuyas propiedades pueden ser
estudiadas. En esta última consideración, es necesario usar otro lenguaje que proporcione
los términos para designar los elementos del sistema. Esta circunstancia ha conducido,
como señala Ladrière (pag. 63), a la distinción entre lenguaje-objeto, que constituye el
lenguaje formal cuyas propiedades han de ser estudiadas, y metalenguaje, constituido por
las expresiones que describen o designan elementos y propiedades del lenguaje objeto.
lenguaje tiene una estructura de la cual nada puede decirse en el lenguaje, pero puede haber
otro lenguaje que trate de la estructura del primer lenguaje y que tenga una nueva estructura
añadiéndole algunos símbolos para designar elementos del sistema objeto. Este
deducción (sintáctica) de una fórmula suele usarse el símbolo ├. Así que si en un cálculo
lógico se puede deducir una fórmula A escribiremos ├ A; para designar que una fórmula A
20
es formalmente deducible a partir de un conjunto de fórmulas Γ, escribiremos Γ ├ A. La
1. B segunda fórmula en Γ
2. A tercera fórmula en Γ
3. A → (B → C) primera fórmula en Γ
4. B → C MP, 2 y 3
5. C MP, 1 y 4
llamaremos esquema D:
A → (B → C), B, A ├ C (D)
Nótese, como observa Kleene (1974, pag. 87), que aquí las fórmulas en Γno son esquemas
21
Para designar la derivabilidad semántica o, como la hemos llamado, consecuencia lógica, se
A, lo cual dice que A es absolutamente válida o verdadera en todas las interpretaciones del
Según Ladrière (1969, pag. 67), los metateoremas pueden ser de diverso tipo: reglas
formales, tales que sus pruebas indican métodos para obtener demostraciones formales. Su
Si Γ, A ├ B, entonces Γ├ A → B
22
Según este teorema podemos deducir A → C del esquema deductivo D que hemos
1. A → (B → C), B, A ├ C Esquema D
2. A → (B → C), B ├ A → C TD, 1
deducir A → C.
y B sería:
2. B → (A → B) H1
3. A → B MP, 1 y 2
6. (A → B) → (A → C) MP , 4 y 5
7. A → C MP, 3 y 6
permitir abreviar deducciones, establece precisamente, como observa Cuena (1985, pag.
26), que un esquema deductivo correcto puede ser también una regla de demostración
La idea que está detrás de los metateoremas como expresión de las propiedades generales o
23
globales de un sistema, tomado en conjunto, es que la afirmación de que un sistema tiene
Según Ladrière (1969, pag. 67), las propiedades de conjunto de los sistemas formales, las
cuales quedan caracterizadas por metateoremas, las más importantes son coherencia,
saturación, resolubilidad, categoricidad. Las definiciones que vamos a dar aquí de estas
propiedades, sigue la exposición de Ladrière (1969, pags. 67 – 70), donde cada una de estas
propiedades puede referir a la sintaxis o a la semántica del sistema. Tenemos entonces por
lo menos dos variantes para cada una de las propiedades mencionadas. Por ejemplo,
semántica, por otro lado. En el caso de la coherencia sintáctica podemos dar incluso dos
definiciones:
coherente si es realizable, es decir, si existe por lo menos una interpretación donde las
consistencia semántica es que no existe una interpretación que satisfaga o haga verdadera
Manzano, (1989, pag. 78). Veremos, en el tercer capítulo de este trabajo, que el nombre
“realizabilidad” se reserva generalmente a una noción introducida por Kleene (1974, pags.
450 – 456) para exponer la semántica de los sistemas lógicos intuicionistas, que veremos en
fuerte o débil.
demostrarse su negación.
25
A diferencia de la saturación relativa, la saturación absoluta refiere a todas las
Kleene (1974, pags. 126 – 127) define completitud tal como hemos definido aquí saturación
semántica relativa:
demostrables”.
reglas de inferencia suministran de antemano lo necesario para demostrar las verdades que
las reglas de formación nos permiten expresar. Tal sistema no amerita ser extendido
mediante el agregado de nuevos axiomas o reglas de inferencia para lograr que sean
tautología. Como explica Manzano (1989, 118), un sistema correcto no induce a error, en el
efectivo para decidir si cada proposición del sistema es o no deducible en él. Esta propiedad
es una condición que debe cumplir un sistema lógico. En un sentido semántico, un sistema
26
es decidible si se puede encontrar un procedimiento efectivo que permita decidir si cada
proposición del sistema es verdadera bajo cierta interpretación o no. Un sentido más fuerte
decidir si cada proposición del sistema es una tautología o no. A la resolubilidad sintáctica
(Entscheidungsproblem, en alemán).
todos sus modelos son isomorfos entre sí. Es categórico en relación a una cierta clase de
objetos que le pertenecen si todos los modelos en los cuales tal clase de objetos recibe la
Como mencionamos arriba, para comprobar que un sistema tiene alguna de estas
las más importantes en lo que refiere a las relaciones entre semántica y sintaxis de un
sistema lógico. Especialmente, en un sistema completo los teoremas y las tautologías son
idénticos.
27
sintáctica, su corrección y su completitud. La demostración de la consistencia y la
completitud de la lógica proposicional fueron dadas por primera vez por Emil Post (1921).
demostración de un teorema que afirma la existencia de una forma normal para las fórmulas
del sistema. Dejaremos para el final de este capítulo la definición y explicación del
decidible desde el punto de vista sintáctico ya que tenemos un procedimiento efectivo para
procedimiento para determinar cuando una fórmula del sistema es válida en una
interpretación. Lo importante es que, como comentan Curry y Feys (1967, 40) una vez
demostración, la cual trata las demostraciones como objetos matemáticos. Esta disciplina
28
Según Kleene (1974, pag. 69), la demostración de existencia propuesta por Hilbert debía
cumplir con ciertas condiciones: debía ser constructiva y finita, es decir, emplear sólo
ámbito finito, sólo considerar un número finito y determinado de objetos y funciones. Las
Como mencionamos, para Hilbert la no contradicción era un criterio de existencia para los
propiedades requeridas de dicha entidad. Kleene (1974, pags. 57 – 58) comenta que
una entidad teórica. El método de Hilbert en cambio proponía la prueba de consistencia por
una proposición acerca del sistema estudiado que trate de todas las posibles demostraciones
29
teoría de la demostración tienen su origen en el programa de fundamentación de las
sistemas estudiados.
una propiedad y se demuestra que dicha propiedad se conserva al aplicar las diferentes
reglas de formación; en el caso de las derivaciones, se establece una propiedad para los
traducción de la propiedad de los casos elementales a los casos generales. Este tipo de
de la lógica de predicados de primer orden en por parte de Kurt Gödel (1930): cada
exigencia hecha a una entidad matemática que no conduce a ninguna inconsistencia puede
ser satisfecha.
Sin embargo, el propio Kurt Gödel (1931) demostró la inviabilidad del programa de Hilbert
en los términos en que éste los planteaba. La demostración del primer teorema de Gödel
30
coincidir deducibilidad y satisfacibilidad. Gödel demostró en su segundo teorema sobre
pueden ser formalizados en el propio sistema a estudiar. Como nada obliga a usar todos los
respondan a ciertos criterios. Así que para demostrar la consistencia de un sistema se puede
evitar todo razonamiento que no sea constructivo y disponer las cosas para que los
coherencia del sistema objeto, se habrá demostrado que los razonamientos de la aritmética,
del sistema, enunciados formados por los elementos del modelo. La correspondencia entre
31
llama reducción y cada transformación operada se llama etapa de reducción. De acuerdo a
Ladrière (1969, pags. 184 – 185), si se puede comprobar que toda derivación en el sistema
efectivamente reducible, es decir, que se puede fijar un límite superior al número de etapas
resulta de la reducción. Como expone Ladrière (1969, pag. 185), las demostraciones de
trabajos que con el tiempo se constituyeron en una base esencial y punto de partida de lo
formalismos que él llamó cálculo de deducción natural y el cálculo de secuentes, los cuales
veremos más adelante con cierto detenimiento. Entre otras cosas, estos sistemas
veremos adelante. En particular, Gentzen (1936) usó estos cálculos para elaborar una
32
Los trabajos de Gentzen también introdujeron una idea seminal de lo que hoy conocemos
como demostración analítica, la cual se caracteriza por tener una estructura simple en el
sentido de que tienen forma normal. Más adelante, al final de este capítulo, explicaremos
esto. Antes de exponer los sistemas de Gentzen para la lógica proposicional, dado que éstos
El programa de fundamentación propuesto por Hilbert surge como alternativa a las críticas
que a principios del siglo XX comenzaron a aparecer en contra de lo que hoy llamamos
(La no fiabilidad de los Principios Lógicos), cuestionó la validez absoluta atribuida a las
(Ladrière, 1969, pag, 44), se trata esencialmente de la intuición de la estructura del tiempo,
una intuición pura y a priori, independiente de la experiencia que, para los kantianos,
constituye la base de la noción de número entero. Según esto, una entidad matemática,
como un número, sólo existe gracias al acto mental de un sujeto que lo engendra. Por esto,
procesos mentales de donde surgen los objetos o entes matemáticos. Originada en una
33
actividad mental constructiva, las matemáticas serían independientes de la lógica. Por el
pensamiento matemático intuitivo, tiene como objetivo formalizar los procedimientos del
formalización de los procesos que dan origen a los procedimientos de la matemática, por lo
tanto, ya no debería centrarse en los procesos deductivos de las pruebas sino indagar los
símbolo ‘:=’ para significar “se define como”, y el símbolo ‘’ para representar el absurdo,
¬ A := A ├
tercero excluido. Una demostración por reducción al absurdo deriva la validez de una
34
concluye en una fórmula contradictoria como B /\ ¬ B. Expresado formalmente:
¬A → (B /\ ¬B) ├ A.
Por otra parte, al interpretar la verdad en términos de “tener una prueba constructiva” y la
falsedad como “generar una contradicción”, los intuicionistas toman el principio de tercero
excluido “A \/ ¬A” como: la proposición A tiene una prueba constructiva o genera una
contradicción. Bajo tal interpretación, no se puede admitir como válido tal principio ya que
se podría referir a una afirmación a partir de la cual pudiera no construirse una prueba, lo
noción de prueba, que ya no estará caracterizada como deducción sino como construcción
un juicio y de esta manera lo hace conocido o aceptado. Cuando Brouwer afirma que una
estático sino como un proceso dinámico, porque lo que es mental son nuestros actos y la
otro sinónimo para entender. En este sentido, desde el punto de vista intuicionista, la teoría
Para entender los términos centrales de la lógica intuicionista, vale la pena presentar una
las variables de nuestro lenguaje formal, podemos elucidar qué significa dar una prueba de
una fórmula no atómica A en término de sus componentes. Para esto damos el significado
de las conectivas proposicionales intuicionistas bajo la suposición de que se sabe qué quiere
36
i) a es una prueba A /\ B si y sólo si a es un par <a1,a2> tal que a1 es una prueba de
A y a2 es una prueba de B.
ii) a es una prueba A \/ B si y sólo si a es un par <a1,a2> tal que a1 es una prueba de
A o a2 es una prueba de B.
iii) a es una prueba A → B si, y sólo si, A → B es una construcción que convierte
como ya hemos dicho, para los intuicionistas negar una proposición equivale a decir que su
sería llevada a cabo por Heyting (1956). El cálculo proposicional intuicionista presentado
por Heyting, que denotaremos por J, fue formalizado usando un conjunto de axiomas, lo
cual permite establecer comparaciones precisas con otros sistemas lógicos formalizados en
forma axiomática. El sistema sólo tenía como regla de inferencia el Modus Ponens (A, A →
negación, por ello deja fuera de la lógica toda regla de inferencia que pudiera demostrar
37
constituyen la lógica de Heyting son, según Palau (2002):
J1 A → (B → A)
J3 A → (B → (A /\ B))
J4 (A /\ B) → A / (A /\ B) → B
J5 A → (A \/ B) / B → (B \/ A)
J7 ((A → C) → (B → C) → ( (A \/ B) → C )
J8 A → (A → B)
Como dijimos, a estos axiomas hay que agregar el Modus Ponens como regla de inferencia.
Heyting incluyó sólo aquellos axiomas que justifican las inferencias admitidas por Brouwer
para las matemáticas. Por ejemplo, según la cláusula (iii) de la semántica que hemos
prueba a(b) de (B → (A /\ B)). Nuevamente, por la clausula (iii) debemos encontrar una
que hay una prueba b de A y que tenemos una prueba c de B, bajo este supuesto y por la
clausula (i) podemos construir una prueba <b, c> de (A /\ B). Hemos obtenido la prueba <b,
Cabe preguntarse si una demostración como esta última no podría realizarse en un sistema
38
formal que la hiciera más precisa. Dicho sistema debería formalizar específicamente la
fue un problema que preocupó a varios investigadores. Veremos en el tercer capítulo de este
trabajo un par de propuestas de solución a este problema, una de las cuales tiene su origen
computabilidad de funciones.
encontramos que:
– H4 = J5.
J4.
4. Los sistemas sólo comparten los axiomas H9 y H10 relativos a la negación, pues
lógica clásica, como lo demuestra el hecho de que sea posible demostrar el meta teorema de
39
parece diferir de la lógica clásica sólo en la caracterización de la negación, ya que la lógica
intuicionista no acepta un axioma del sistema H: ¬¬A → A. Sin embargo, hay que recordar
siempre que, aunque los símbolos usados para representar las conectivas en el sistema
intuicionista son los mismos que los usados para el mismo objetivo en la lógica clásica, los
símbolos para las conectivas no tienen el mismo significado en ambos sistemas, cambia la
semántica, por lo que no expresan las mismas funciones lógicas. Para empezar, hay una
diferencia sustancial en cuanto a la noción de verdad entre ambos sistemas. Más que la
conectivas lógicas era relevante, pues ponía en evidencia el hecho de que en la lógica
clásica, al fijar una semántica bivalente en la que las expresiones de la matemática debe
corresponder uno de dos valores, verdad o falsedad, supone que es posible resolver alguna
vez todos los problemas matemáticos. Si la lógica clásica plantea una semántica en
Como mencionamos arriba, al final del apartado anterior, hacia el año 1934 Gerhard
Gentzen introdujo sistemas lógicos que permitirían puntos de vistas clarificadores respecto
40
1.5. Cálculos de deducción natural
Gentzen (1934) introdujo un sistema de deducción que, según él, sería más cercano al
Schliessens, wie sie insbesondere durch Frege, Eussell und Hilbert entwickelt
worden ist, entfernt sich ziemlich weit von der Art des Schliessens, wie sie in
fórmale Vorteile erzielt. Ich wollte nun zunächst einmal einen Formalismus
aufstellen, der dem wirklichen Schliessen möglichst nahe kommt. So ergab sich
ein “Kalkül des natürlichen SchlieBens,,. (”NJ,, für die intuitionistische, “NK,, für
NK para la clásica).]
Por demostración real Gentzen quiere decir las demostraciones usadas por los matemáticos
en su labor práctica:
Wir wollen einen Formalismus aufstelle, der möglichst genau das wirklische
fórmula por la aplicación de reglas de inferencia. Una prueba es una deducción en la que
Vemos, pues, que una primera diferencia que destaca entre el cálculo de deducción natural
y el sistema axiomático, es que, el primero admite que las reglas de inferencia incluyan
Heirlaitungen in den Systemen von Russell, Hilbert, Heyting ist folgender: Bei
letzsteren werden die richtigen Formeln aus einer Reihe von “logischen
42
geht jedoch im allgemeinen nicht von logischen Gründsetzen aus, sondern von
Schlüss wir dann das Ergebnis wieder von der Annahme unabhängig gemacht
las que se aplican deducciones lógicas. Por medio de una última inferencia el
siguientes componentes:
conectivas.
43
verdad, sino que asocia a cada conectiva un par de reglas de inferencia que determinan su
uso. En este sentido, podría decirse que, como observa Palau (2002), la caracterización del
significado de las conectivas lógicas en el cálculo natural de Gentzen sigue una línea
cercana a la doctrina del significado como uso que plantea Wittgenstein (1953), al limitarse
a dar reglas que especifican el uso de las conectivas lógicas3. En este punto de vista, el
rol que las conectivas lógicas juegan dentro del sistema de inferencia.
inferencial de Gentzen son equivalentes, pues, como el propio Gentzen (1934) demostró, en
3
Como veremos al final del tercer capítulo de este trabajo, en el apartado Isomorfismo Curry – Howard y
el significado de las constantes lógicas, que esta consideración podría conllevar a un tratamiento
convencional de las conectivas lógicas que harían inconsistente al sistema.
44
Cálculo de deducción natural proposicional de Gentzen
Conectiva Reglas de Introducción Reglas de Eliminación
/\ A B__ A /\ B A /\ B
A /\ B A B
(I /\) (E /\) (E /\)
→ [A]
. A A→ B
. B
B
A→ B
(I →) (E →)
¬ [A]
. ¬ ¬A
. A
B /\ ¬ B
¬ A
(I ¬) (E ¬)
Una forma de razonamiento común en este cálculo es la reducción al absurdo. Para probar
que algún enunciado A es el caso, primero asumimos que ¬A es el caso, si esta suposición
conduce a contradicción, entonces podemos concluir que ¬A no puede ser el caso, por lo
45
tanto podemos concluir que A debe ser el caso. Como ejemplo, probemos la regla del
Modus Tollens: A → B, ¬B ├ ¬ A:
supuesto inicial
supuesto inicial
3 A Suposición de A
supuesto absurdo
4 B Eliminación de →, 3 y 1
E 1, 3
I /\ 2, 4
6 ¬A Introducción de ¬, 3 y 5
I ¬ 3, 5
Como ya hemos mencionado, las deducciones de este tipo no son aceptadas en la lógica
En realidad, Gentzen presentó sus demostraciones en forma de árbol con hojas o nodos
etiquetados, de manera que la demostración que hemos presentado del Modus Tollens sería:
1
A→B [A] (→ E)
B ¬B (/\ I)
B /\ ¬ B (¬ I,1)
¬A
46
Como puede observarse, podemos dividir este árbol en tres aplicaciones de reglas de
inferencia: (→ E), (/\ I) y (¬ I). Llamamos derivación inmediata a cada una de estas
aplicaciones. Cada derivación inmediata forma una hoja del árbol y lleva como etiqueta una
indicación que identifica la regla aplicada. A las suposiciones, que son proposiciones
abiertas que deben ser descargadas en alguna derivación inmediata, las podemos poner
que hemos indicado con [A] en nuestra deducción, la cual es descargada en la derivación
inmediata del final, donde hemos apliocado la regla (¬ I), es decir, la introducción de la
negación.
Hay varias instrucciones que no son explícitas pero que se usan en derivaciones, como
1
[A] (→ I, 1)
A→A
en este cálculo en un solo paso, como una derivación inmediata a partir de la regla (→ I)
47
1
[A] (→ I, v)
__ B → A (→ I, 1)
A → (B → A)
principio de introducción de una suposición, del sistema estilo Hilbert que presentamos
suposión B que no aparece en el tope de ninguna rama de nuestra derivación. Esta descarga
3 1 2 1
[A → (B → C)] [A] (→ E)
[A → B] [A] (→ E)
B→C B (→ E)
C (→ I, 1)
A→C (→ I, 2)
( A → B) → (A →C) (→ I, 3)
(A → (B → C)) →((A → B) → (A → C))
48
derivaciones:
Δ
:
Γ, A
:
C
suposiciones.
Luego veremos que estas instrucciones se hacen explícitas en el cálculo de secuentes como
eliminar y a los componentes de esta fórmula que están en las premisas las llamamos
fórmulas activas.
Como el objetivo de Gentzen (1934) era presentar la lógica de Hilbert bajo una forma más
cálculo de deducción natural para la lógica intuicionista (NJ). Este sistema, NJ, comparte
con el cálculo natural para la lógica clásica (NK) las mismas reglas de introducción y
eliminación de conectivas, con excepción de las reglas para la negación, las cuales
cambian:
A ____
49
. ¬A
__
¬A
No hay coincidencia respecto a E ¬, ya que para NJ vale aquí la regla atribuida a Duns
Escoto conocida como principio Ex falso sequitur quodlibet: de una contradicción se sigue
La equivalencia entre los cálculos de deducción natural y los sistemas lógicos basados en
axiomas, fue demostrada de forma indirecta por Gentzen. Primero propuso un cálculo en el
que esta demostración se realizara con mayor facilidad y luego, demostró la equivalencia
entre este cálculo y los de deducción natural. Este nuevo cálculo fue llamado por Gentzen
el cálculo de secuentes.
En el mismo citado trabajo, Gentzen (1934) presentó, además de los cálculos de deducción
natural, un cálculo que constituye una aproximación distinta a las nociones de consecuencia
del cálculo de secuentes era, en parte, permitir una caracterización formal y rigurosa de la
aserción del enunciado del cual se quiere probar que es un teorema. Cada enunciado
depende de ciertas hipótesis, que pueden ser hipótesis del propio teorema a demostrar o
natural de Gentzen. Podemos entonces describir un estadio de la prueba a través de una lista
Ebbinghaus (1996, pag. 60) llamamos secuente a una lista no vacía de fórmulas y podemos
usarlos para describir estadios de una prueba. Por ejemplo, un estadio de la prueba con las
cálculo, estará caracterizada por un conjunto de reglas, llamadas reglas estructurales. A esta
relación la designaremos con el signo ‘’, que intuitivamente puede interpretarse como
51
En este cálculo, un secuente toma la forma: Γ , donde Γ, son secuencias de fórmulas
cualesquiera y el signo ‘’ es un signo no lógico del lenguaje objeto que permite construir
las fórmulas del cálculo de secuentes. Las reglas de los secuentes son locales: cada fórmula
C que tiene las suposiciones abiertas Γdepende de las que aparecen en una misma línea:
ΓC
Las reglas del cálculo de deducción natural sólo muestran las fórmulas activas, que son las
fórmulas que funcionan como premisas en las reglas de introducción y eliminación. Las
otras suposiciones abiertas, que son las que no han sido descargadas, son mantenidas como
suposiciones implícitas. Por ejemplo, la siguiente regla del cálculo de deducción natural:
A B /\ I
A /\ B
ΓΔ
: :
A B /\ I
A /\ B
Aquí los puntos son una manera informal para representar la relación de deducción. Cuando
se formalizan los puntos que indican la relación de deducción a través del símbolo ‘’,
Γ A Δ B
ΓΔ A /\ B
que, como veremos luego, es una de las reglas del cálculo de secuentes.
52
las conclusiones en , es decir, que si Γ = {φ1, …, φn} y = {1, …, n}, entonces φ1 /\ …
/\ φn implica 1 \/ … \/ n. Las reglas para conjunción y disyunción reflejan esta idea con
claridad.
Δ, entonces Δ es un teorema y el secuente se reduce a una fórmula del tipo B 1 \/ ... \/ Bn.
An. En efecto, el signo puede compararse con un condicional → que establece que si
todas las fórmulas del antesecuente sean verdaderas entonces alguna de las fórmulas de la
fórmulas particulares sino sobre secuencias de fórmulas. No parte de supuestos sino de una
operatorias y otras consideradas como reglas estructurales, que no hacen referencia a signos
Como axiomas del sistema de cálculo de secuencias se toman todas las secuencias de la
forma:
53
ΓΓ
donde Γ es una secuencia formada por un conjunto cualquiera de fórmulas, sin importar su
orden.
Como ya hemos dicho, al axioma se agregan dos conjuntos de reglas, un conjunto de reglas
54
Reglas operatorias para el cálculo de secuencias clásico LK de Genten
Conectiva En la antecedente En el consecuente
Como puede observarse, las reglas operatorias del cálculo no incluyen reglas de
eliminación, sólo incluyen reglas de introducción. Sin embargo, también se dividen en dos
grupos. Un grupo de reglas que introducen conectivas en la parte izquierda del secuente, es
secuente, es decir, en el consecuente. A las primeras se les llama reglas Izquierdas y las
otras reglas Derechas. A pesar de que ambos tipos de reglas intoducen conectivas, estas
reglas están concebidas de manera tal que existe una correspondencia entre las reglas de
Vimos arriba cómo se obtiene una regla derecha para el conjuntor (/\) del cálculo de
55
natural. Lo mismo vale pare el resto de las reglas de la derecha. Por ejemplo, si hacemos
tendremos:
ΓΓ
: :
A \/ I B \/ I
A \/ B A \/ B
Si damos a los puntos una representación formal a través del signo ’’, y tomamos la
secuencia de fórmulas como vacía, obtendremos las reglas derechas para ‘\/’:
Γ A Γ B
Γ A \/ B Γ A \/ B
(\/) (\/)
[A], Γ
. A, Γ B
B . ΓA→ B
Γ├A→ B
(→ I) (→)
[A], Γ
. A, Γ
__ Γ ¬A
¬A (¬)
(¬ E)
56
Es más difícil ver cómo se relacionan las reglas de eliminación del cálculo de deducción
natural y las regas izquierda del cálculo de secuentes. Para captarlo, hay que tratar las
reglas izquierda del cálculo de secuentes como una versión de abajo hacia arriba (down-
top) de las reglas de eliminación del cálculo de deducción natural. Por ejemplo, podemos
comparar la regla izquierda para el disyuntor, \/, del cálculo de secuentes con la regla de
[A] [B]
. . A C B C
A \/ B __C C__ A \/ B C
C (\/)
(\/ E)
En este caso, tenemos la interpretación informal de estas reglas como una formalización de
la idea de que si derivamos una fórmula C a partir de una fórmula A o de una fórmula B,
entonces puede derivar C de A \/ B. Puede notarse que la regla izquierda del cálculo de
Respecto a las reglas izquierda del cojuntor y su correspondientes reglas de eliminación del
A /\ B A /\ B
A B
(E /\) (E /\)
A B
A /\ B A /\ B
(\/) (\/)
57
La idea aquí es que lo que si no podemos deducir algo de una fórmula A, que en el cálculo
conjunción de esa fórmula A con otra fórmula B. Nuevamente, las regla izquierdas del
arriba, de las correspondientes reglas de eliminación del cálculo de deducción natural para
la misma conectiva.
Más complicado es ver cómo se relacionan las reglas de eliminación con las reglas
el principio o regla implícita de sustitución del cálculo de deducción natural. Curry (1967,
del condicional, el modus ponens, que en la práctica puede considerarse como una regla
según la cual, teniendo ├ p, toda conclusión que puede obtenerse a partir de ├.q, también
puede obtenerse de ├ p → q:
¬ ¬A Γ A
A ¬ A, Γ
(¬)
Para la regla izquierda de la la negación tenemos el caso de que, viéndo esta regla como
58
una inferencia de-abajo-hacia-arriba, si no podemos deducir nada a partir de la negación de
Zucker (1974) ha demostrado que es posible definir una relación correspondencia precisa
entre las reglas de introducción y de eliminación del cálculo de deducción natural y las
correspondencia no llega a ser exactamente uno-a-uno, ya que las fórmulas que constituyen
(Ax) (Ax)
C C B B (→) (Ax)
B, (B→ C) C A A (→) (Ax)
A, B, A → (B→ C) C A A (→)
A, A → B, A → (B→ C) C ( →)
A → B, A → (B→ C) A → C ( →)
A → ( B → C) (A → B) → (A →C) ( →)
(A → (B → C)) → ((A → B) → (A → C))
Si las reglas operatorias determinan el uso de las conectivas lógicas en el contexto de los
59
A, Γ Γ , A
(A ) (A)
Contracción
A, A, Γ Γ , A, A
A, Γ Γ
(C ) (C)
Permutación
Γ, A, B, F Γ F, A, B,
Γ, B, A, F Γ F, B, A,
(P ) ( P)
Eliminación o
Corte Γ F, A A,
Γ, F,
Como mencionamos arriba, las reglas estructurales del cálculo de secuentes hacen
explícitas varias instrucciones que están implícitas en el cálculo de deducción natural. Por
suposición. Permite realizar con mayor facilidad la traducción del cálculo de deducción
Una forma de ver cómo las reglas operatorias de Gentzen caracterizan la relación de
deducción del cálculo de secuentes es comparar las reglas estructurales con las reglas
Varios textos presentan esta relación, por ejemplo Palau (2002, pag. 43 – 71).
60
Como hemos mencionado, el cálculo de secuentes para la lógica clásica acepta múltiples
da los casos abiertos (Negri, 2003, pag. 13). Desde este punto de vista, las reglas lógicas
cambian y combinan suposiciones abiertas y casos abiertos. Por ejemplo, la regla /\
cambia los casos abiertos A,B en el caso abierto A \/ B. Teniendo sólo un caso, tenemos
tercero excluido:
A A, Γ
A, ¬ A
A \/ ¬ A
lógica intuicionista. Para obtener el cálculo de secuentes para la lógica inticionista habrá
61
62
1.6.2. El cálculo de secuentes intuicionista
sistema intuicionista tendrían una restricción que lo distingue del cálculo de secuentes para
la lógica clásica: en el consecuente de cada secuente no puede figurar más de una fórmula.
Así que la regla estructural de atenuación no podrá aplicarse en un consecuente que tenga
consecuente.
63
Reglas operatorias para el cálculo de secuencias intuicionista SJ de Genten
Conectiva En el antecedente En el consecuente
\/
A, Γ C B, Γ C Γ , A Γ B
A \/ B, Γ C A \/ B, Γ C Γ A \/ B
( \/) ( \/) (\/ )
/\
A, Γ C B, ┤C Γ A Γ B
A /\ B, Γ, C Γ A /\ B Γ A /\ B
(/\ ) (/\) (/\)
→
Γ A B, C A, Γ B
A → B, Γ, C ΓA→B
(→ ) ( →)
¬
Γ A A, Γ ┤
¬A, Γ Γ ¬A
(¬ ) ( ¬
Las restricciones impuestas a las reglas estructurales del cálculo intuicionista de secuencias
muestran que la base inferencial, caracterizada por las reglas estructurales, de la lógica
la consecuencia abstracta expuesta por Tarski, lo cual significaría que la lógica intuicionista
es también una especificación de la lógica abstracta de Tarski. Así que por más débil que
64
deductiva. Estos resultados coinciden con los de Gödel (1933) de acuerdo a los cuales
1.7. Normalización
Mencionamos arriba que Gentzen introdujo las ideas seminales de lo que hoy se conoce
podríamos definir forma normal como una organización de los componentes de un objeto
formal, sea una fórmula o una demostración, que satisface ciertas propiedades sintácticas
Un procedimiento que nos permite transformar un objeto de un sistema formal, sea una
donde ninguno de sus objetos puedan ser llevados a una forma normal. Así que antes de
hablar de normalización hay que demostrar que en el sistema, para alguna clase de sus
objetos, siempre es posible encontrar objetos equivalentes que están en forma normal.
llevar un enunciado a una forma normal disyuntiva permite comprobar si dicho enunciado
65
es una contradicción, como demuestran Hilbert y Ackermann (1938)5.
Junto a la especificación de una forma normal para alguna clase de objetos de un cálculo
hay que ofrecer un procedimiento para llevar tales objetos a su correspondiente forma
normal. Así es hecho también por Hilbert (1938) cuando proponen un procedimiento para
llevar una expresión U a una forma normal conjuntiva equivalente y a su forma normal
disyuntiva equivalente.
A un enunciado que afirme la existencia de una forma normal para alguna clase de objetos
o especificación de una forma normal en ciertos cálculos ha sido usada para determinar la
consistencia de un sistema. Tal ha sido el caso que hemos expuesto para el cálculo de
una contradicción. Kleene (1974) observa que también puede usarse un teorema de forma
normal para demostrar consistencia en el cálculo de predicados, si vemos este cálculo como
aquí hemos llamado demostración en forma normal y decir que podemos demostrar la
reducir cualquiera de sus demostraciones a una equivalente en forma normal, es decir, a una
5
En lógica proposicional clásica, una expresión está en forma normal disyuntiva cuando sólo contiene las
conectivas \/, /\ y ¬, y en él ningún signo de negación afecta o domina a (está antes de) ninguna fórmula
con \/ y ¬, ni ningún signo /\ afecta a ninguna fórmula con signo \/. Una forma normal disyuntiva está
formada por una disyunción C1 \/ ... \/ Cn (incluyendo el caso n = 1), donde cada miembro Ci consiste en una
conjunción de variables proposicionales negadas y no negadas. Si un enunciado en forma normal disyuntiva
tuviera una contradicción, entonces todos los miembros de la disyunción, las conjunciones elementales,
tendrían una variable que se presenta tanto negada como no negada.
66
demostración a través de un procedimiento directo. Si podemos demostrar que toda
Un teorema de este tipo fue obtenido por Gentzen (1934) su Hauptsatz, que en español
significa proposición principal, y que no es sino el teorema de la forma normal para los
consistencia para la aritmética tales como previamente obtenidas por Ackermann (1924 –
decir, que tengan una forma normal. Toda transformación realizada de esa manera se
número finito de etapas de normalización en una derivación cuya última proposición sea
una proposición que satisfaga cierta propiedad, se dice que esta derivación es normalizable.
Decimos también que la derivación obtenida está normalizada. La serie de etapas recorridas
67
normalización.
La idea general aquí es especificar una propiedad P para los objetos de un sistema S. Como
plantea Kleene (1974, pag. 127), decimos que S es consistente respecto a P si sólo podemos
respectiva noción de forma normal si sólo son válidas las demostraciones que pueden ser
estos sistemas como un corolario del Hauptsatz. El Hauptsatz plantea que cualquier
deducción que se realice en el cálculo de secuentes puede hacerse sin aplicar la regla del
corte. Decimos que una demostración donde no se aplica la regla del corte tiene una forma
Todas las demostraciones hechas en un cálculo de secuentes que tienen forma normal
Toda fórmula que ocurre en una deducción normal, es decir, que no contiene
68
aplicaciones de la regla del corte, es una subfórmula de la conclusión o una de las
suposiciones descargadas.
La regla de corte puede ser vista intuitivamente como una expresión de la idea de que, en el
Γ A Δ , A B
Γ, Δ B
La regla del corte es la única donde aparecen fórmulas en las premisas que no aparecen en
el secuente final: como puede observarse en este esquema, la fórmula A, llamada fórmula
del corte o simplemente corte, no aparece en la conclusión, aunque sí aparece en las dos
premisas. Por esto, las demostraciones donde se aplica la regla del corte no satisfacen la
propiedad de la subfórmula.
Un cálculo de secuentes que no incluye la regla del corte y que es equivalente a un cálculo
de secuentes con la regla del corte, es un sistema analítico, es decir, un sistema donde todas
las demostraciones están en forma normal. Los sistemas analíticos tiene la propiedad de
haciendo en sentido ascendente (del secuente más abajo a los secuentes en el tope) el árbol
que representa la derivación. El espacio de búsqueda a cada paso está limitado siempre a
Gentzen demostró que toda derivación del cálculo de secuentes que incluya la aplicación de
69
la regla de corte puede ser reducida a una deducción en la cual no se use esta regla. Por
fórmula A /\ B A \/ C:
(Ax.) (Ax.)
A A (/\ L) A A (\/ R)
A /\ B A A A \/ C Corte
A /\ B A \/ C
cálculo de secuentes sin usar la regla del corte, existiendo dos posibilidades dependiendo de
(Ax.) (Ax.)
A A (\/ R) A A (/\ L)
A A \/ C (/\ L) o A /\ B A (\/ R)
A /\ B A \/ C A /\ B A \/ C
Ahora bien si la regla del corte, que ha demostrado ser una regla derivada y admisible, si
reglas estructurales? Como explica Feferman (1997, pag. 10) lo que justifica la existencia
de la regla del corte es que las demostraciones libres de cortes son más complejas que las
que usan cortes porque son más largas. Es decir, la regla del corte, como muchas otras
Kleene (1974, pags. 395 – 416), Omondi (1993) , Smullyan (1995) y Sorensen(1998).
Ahora bien, dado que los cálculos de secuentes son equivalentes a sus respectivos cálculos
de deducción natural, cabe preguntarse si no habría también una forma normal para las
de normalización para tales demostraciones. Prawitz (1965) mostró que las derivaciones de
teoremas en el cálculo natural para la lógica de predicados de primer orden podían ser
que no tiene desvíos, es decir, una demostración directa, donde la premisa mayor de una
con la forma Di como el nombre una deducción. Entonces la deducción (*) a continuación
(*) [A]
D1
B (→ I) D2_
A→B A (→ E)
B
D3
71
contiene la conectiva que va a ser eliminada, y la proposición A como premisa menor de
B. Encontramos aquí un desvío pues empleamos una regla de eliminación, (→ E), que tiene
como premisa mayor una fórmula que hemos obtenido por la aplicación directa de la regla
Prawitz (1965) demostró que cualquier deducción realizada en el cálculo natural puede ser
llevada a cabo sin desvíos, es decir, cualquier deducción puede ser transformada en una
deducción en forma normal. Propuso además procedimientos para hacer esto, es decir,
D2
[A]
D1
B
D3
hecho un reemplazo de una forma de derivación con desviós a otra equivalente que no tiene
desvíos. A esta operación de reemplazo la llamamos paso de reducción. Hay que observar
aplicación de una regla de introducción, se llama fórmula del corte o simplemente corte del
paso de reducción.
72
Una reducción es una secuencia, posiblemente vacía, de pasos de reducciones. Veamos un
2 1
[A → (A → A)] [A] (→ E) 1
A→A [A] (→ E) 3
A (→ I , 1) [A] (→ I, v)
A→A (→ I, 2) [A → A] (→ I, 3)
A → (A → A) → (A → A) A → (A → A) (→ E)
A→A
1
[A] (→ I, v)
(A → A) (→ I, 1) 2
A → (A → A) [A] (→E) 2
A→A [A] (→ E)
A (→ I -2)
A→A
1
[A] (→ I, v) 1
[A → A] [A] (→ E)
A (→ I,1)
A→A
[A] (→ I, v)
A→A
que no es más que la aplicación de la intrucción implícita según la cual la misma fórmula
Tal posibilidad de demostraciones sin desvíos se basa en el hecho de que una regla de
eliminación no agrega más información que la introducida por una regla de introducción. El
73
Die Einführungen stellen sozusagen die ‘Definitionen, der betreffenden Zeichen dar,
und die Beseitigugen sind letzten Endes nur Konsequenzen hiervon, was sich etwa
so ausdrücken lässt: Bei der Beseitigung eines Zeichens darf die betreffende Formel,
un deren äusserstes Zeichen es sich handelt, nur “als das benutzt werden, was sie
[En alguna manera, las introducciones representan las 'definiciones' de los símbolos
consecuencias de estas definiciones. Este hecho puede ser expresado como sigue: al
del símbolo’].
Esta última regla obtiene su validez del hecho de que la regla de introducción del
condicional dice que un condicional está dado por “un método D para obtener una
conclusión B a partir de una suposición A”. Sin esta especificación, la regla de eliminación
74
Prawitz (1965) profundizó en este hecho y postuló el principio de inversión, según el cual,
reglas de introducción, con las cuales están en correspondencia. En palabras de Sara Negri
Aquí el símbolo ‘*’ representa cualquiera de las conectivas del sistema. Tenemos entonces
que las reglas de eliminación son inversas a las correspondientes reglas de introducción en
tanto que nada se gana si una regla de introducción es seguida por una regla de eliminación,
pues una regla de eliminación no introduce más información que la que ha puesto en ella la
Veámos qué ocurre ahora con un desvío que involucre la conjunción. Según la regla de
derivación de A y la derivación de B:
D1 D2
: :
A B /\ I
A /\ B
D1 D2 D1 D2
: : : :
A B /\ I A B /\ I
A /\ B /\ E A /\ B /\ E
A B
Por tanto, si la regla /\I es seguida por /\E, la derivación puede ser simplificada o reducida.
Veámos ahora el caso de la disyunción. Aquí también tenemos dos posibles deducciones
con desvío:
· A B · A B
· · · · · ·
A · · B · ·
A \/ B C C___ A \/ B C C___
C C
A B
· ·
· ·
C C
reducción o que no puede ser ya reducida. Una deducción normal no tiene desvíos, es decir,
en ninguna sus rama encontramos una aplicación de una regla de eliminación cuya premisa
mayor (la que tiene la conectiva que va a ser eliminada) es la conclusión de la regla de
Ahora bien, es notable que, en los desvíos, la premisa mayor de la regla de eliminación es
una fórmula crítica. Reducir una fórmula con desvío a una sin desvío requiere la supresión
76
de esta fórmula, que llamamos fórmula de corte o simplemente corte em el cálculo de
deducción natural. Deberíamos poder decir entonces que una deducción normal es una que
carece de cortes. Sin embargo, no siempre queremos eliminar los cortes. Consideremos la
3 1 4 2
[A → B] [A] (→ E) [A → C] [A] (→ E)
B (\/ I) C (\/I)
↓ ↓
(Segmento 1) (Segmento 2)
↓ ↓
B \/ C (\/ I, 1) B \/ C (\/ I, 2)
(A → B) \/ (A → C) A → B \/ C A → B \/ C (\/ E, 3, 4)
A → B \/ C A (→ E)
B \/ C
1 2
[A → B] A (→ E) [A → C] A (→ E)
B (\/I) C (\/ I)
(A → B) \/ (A → C) B \/ C B \/ C (\/ E, 1, 2)
B \/ C
Para entender cómo llevar a cabo esta deducción, necesitamos la noción de segmento, que
tomamos de Seldin (1988b): una secuencia de fórmulas C1, …, Cn, donde todas las fórmulas
son las mismas y, para i = 1, …, n – 1, Ci es una premisa menor de una inferencia por (/\ E)
77
dos segmentos, pero éstos contienen la fórmula “B \/ C”. Los segmentos de la primera
deducción son máximos porque sus primeras deducciones tienen conclusiones obtenidas a
partir de una regla de introducción y sus últimas fórmulas son premisas mayores de una
regla de eliminación.
Las reducciones que habíamos presentado antes de estas dos últimas se habian realizado
eliminando fórmulas de corte, que son segmentos máximos de largo igual a 1. Para reducir
segmentos de largo mayor a uno necesitamos otro procedimiento, una reducción que
reemplace por otra una parte de una deducción que tenga la siguiente forma:
1 2
[A] [B]
D0 D1 D2
A \/ B C C (\/ E, 1, 2)
C (D4) R
E
D4
donde R es una regla de eliminación con C como su premisa mayor y D4 como la(s)
siguiente:
1 2
[A] [B]
D1 D2
D0 C D4 R C D4 R
A \/ B E E (\/ E – 1 – 2)
E
D4
A un paso de reducción tal, en el que se tratan segmentos máximos, Seldin (1988b, pag. 13)
78
El teorema de normalización para el cálculo de deducción natural podría enunciarse según
Toda deducción del cálculo de deducción natural puede ser reducida a una
deducción en forma normal, es decir, una deducción que no puede ser reducida
2. Cuando todos los segmentos máximos de rango máximo tengan un largo igual a
a las fórmulas de corte de rango máximo para el cual no hay fórmula de corte con
proceso debe terminar en una deducciónn normal con las mismas suposiciones
deducción natural es formulado por Seldin (1998b, pag. 15) de la siguiente manera:
79
La demostración de este teorema sería la siguiente:
Si hubiera una demostración tal, con una fórmula atómica como conclusión, habría
para ella una deducción que es normal. Para el caso del condicional, tendríamos que
la rama principal de una deducción normal que termina en una fórmula atómica no
puede tener ninguna inferencia por la aplicación de →I; pues estas inferencias
tendrían que ocurrir al final de la rama, y esto significaría que la última inferencia
suposición de que tal deducción es una demostración. Para el resto de los casos,
Como hemos mencionado, Dag Prawitz (1965) demostró el teorema de normalización para
de reducción entre derivaciones en la lógica de primer orden las cuales son generadas por
las correspondientes a las reglas que usan cuantificadores, que pertenecen a la lógica de
predicados:
80
Cálculo de deducción natural de Gentzen
Contracción Fórmula no contraída Fórmula contraída
→ [A] ·
· ·
· · A
B ·_ ·
A→B A_ ·
B B
/\ (a) · ·
· · ·
A B ·
A /\ B A
A
/\ (b) · ·
· · ·
A B ·
A /\ B B
B
\/ (a) · A B ·
· · · ·
A · · A
A \/ B C C___ ·
C C
\/ (b) · A B ·
· · · ·
A · · B
A \/ B C C___ ·
C C
\/E 1 2 1 2
[A] [B] [A] [B]
D0 D1 D2 D1 D2
A \/ B C C (\/ E, 1, 2) D0 C D4 R C D4 R
C ( D4) A \/ B E E (\/ E, 1, 2)
R E
E D4
D4
81
En esta tabla se presenta la relación de contracción como una relación de equivalencia entre
Löf (1972), en la que ésta no aparece y que hemos tomado de Seldin (1988b).
trabajos de Seldin (1988b), Negri (2003), Stalmarck (1991), Smullyan (1995), Stewart
(1999) y Martin-Löf (1972), tiene diversas repercusiones. Por una parte nos plantea la
respecto vale la pena mencionar el artículo de Zucker (1974) que presenta precisamente un
Zucker define por inducción una relación de correspondencia entre las derivaciones del
NJ a partir de fórmulas A1, …, An puede ser transformada en una derivación ’(Π) en LJ del
82
y ’ se establece entonces la equivalencia entre NJ y LJ:
Una fórmula C es derivable en NJ a partir de las suposiciones A1, …, An si, y sólo si,
Por esta vía, Zucker demostró la existencia de una relación de correspondencia entre la
LJ son interpretadas como una definición inductiva de la derivabilidad en NJ, entonces las
reglas de un sistema LJ libre de corte pueden ser interpretadas como una definición de la
Tenemos entonces que la demostración del teorema de forma normal para el cálculo de
toda derivación en este cálculo se puede reducir a una derivación en forma normal.
natural intuicionista de la lógica proposicional, que sólo incluye las reglas operatorias de
programas que existe entre el cálculo de deducción natural intuicionista y el cálculo lambda
con tipos.
83
84
II. Computabilidad y Cálculos Lambda
algoritmo o procedimiento mecánico general que decida, para enunciados dados, si son
universalmente válidos o no. Dar una respuesta a este problema condujo a la necesidad de
El primer trabajo que arrojó resultados decisivos en esta dirección fue el presentado por
Whitehead (1910 – 1913), existe una proposición que no es decidible, es decir, una
del cual deducirla ni a ella ni a su negación. Aunque esta demostración no requiere una
funciones computables: Church (1936) demostró que las funciones recursivas generales son
equivalentes a las funciones definibles en el cálculo lambda, y Turing (1937) demostró que
las funciones definibles en el cálculo lambda son equivalentes a las funciones computables;
85
equivalentes a las funciones computables.
recursión a partir de ciertas funciones iniciales triviales” (Mosterín, 1989, pag. 48). La clase
de las funciones y relaciones recursivas primitivas, como afirma (Kleene, 1974, pags. 223-
(1931, pag. 78): “Cada relación recursiva primitiva es aritmética” y forma parte esencial de
Los resultados de Gödel daban un golpe decisivo al programa formalista de David Hilbert:
“El fin aceptado, a saber, construir las matemáticas sólidamente, es también el mío:
inatacable, que las paradojas de la teoría de conjuntos han parecido debilitar; pero
yo creo que es posible alcanzar este fin conservando íntegramente todo lo que se ha
Como vimos en el primer capítulo de este trabajo, Hilbert aspiraba superar las paradojas
descubiertas en las matemáticas clásicas sin eliminar de ella fragmentos críticos que eran
desechados el programa intuicionista emprendido por Brouwer y sus seguidores. Para esto,
86
cual suponía:
clásica,
Para 1930, se pensaba que los Principia Matemática de Russell y Whitehead constituían
(1931) demostraba que los sistemas formales de la matemática clásica, incluyendo los
entonces son indecidibles: “para cada uno de ellos puede efectivamente construirse una
sentencia indecidible (tal que ni ella ni su negación es deducible)” (Mosterín, 1989, pag.
Usando las ideas y técnicas basadas en la obra de Gödel, varios lógicos desarrollaron en la
87
presentó una lista de veintitrés problemas matemáticos que todavía no estaban resueltos y
que él consideraba un reto que los matemáticos del siglo XX debían enfrentar. El décimo de
Este planteamiento implica la cuestión de si hay un método simple que pudiera ser aplicado
Alejandría, siglo III a. C, muchos matemáticos han encontrado pruebas de que muchas
ecuaciones de otro tipo no tenían solución. En estos casos, para cada clase de ecuación se
tenía que inventar un método diferente. El décimo problema de Hilbert exige un método
pueda ser aplicado a cada problema que pueda ser solucionado a través de un sí o un no
D(x1, …, xn) = 0,
donde D es un polinomio con coeficientes enteros. Es fácil determinar si una ecuación tal
con coeficientes enteros a0, … an tiene soluciones enteras, pues toda raíz entera debe dividir
a0, así que todo lo que hay que hacer es probar el número finito de los divisores de a0. El
problema no es tan sencillo con ecuaciones como la siguiente (Penrose, 1991, pag. 91):
88
(x + 1)w+3 + (y +1) w+3 = (z + 1)w+3
Esta ecuación está relacionada con un famoso problema no resuelto en matemáticas: ¿existe
esta cuestión habría que dar un procedimiento algorítmico general para resolver cuestiones
lógica matemática”. El problema consistía en dar un algoritmo que decidiera si una fórmula
lógica era una consecuencia lógica (en el sentido semántico) de un conjunto finito dado de
premisas.
forma negativa: los sistemas formales de la matemática clásica son indecidibles, pues en
deducidos. También dijimos que esta demostración estaba basada en el uso de funciones
recursivas y que éstas habían demostrado ser equivalentes a las funciones computables, es
decir, que podían ser computadas por cierto tipo de máquinas abstractas. La aproximación
por funciones computables fue considerada por el propio Gödel como una vía más rigurosa.
89
adecuada de la noción general de sistema formal, ahora [...] se puede probar
rigurosamente que en cada sistema formal consistente que contenga una cierta
sistema mismo.
cabo por Turing, que estaba basada en la noción de computabilidad, una herramienta
de los sistemas formales consistía en que “en ellos el razonamiento puede ser, en principio,
completamente reemplazado por operaciones mecánicas” (Gödel, 1931, pag. 87). De esto
por Hilbert en 1900, no podía ser resuelto, en concordancia con los resultados obtenidos por
la aritmética son ciertos o falsos. Para sus demostraciones, Turing usó un tipo de máquinas
sistema, probó que no había procedimiento de decisión o algoritmo general alguno para
determinar si el cómputo de un algoritmo por una máquina abstracta, llamada hoy máquina
detención para máquinas de Turing. Estas máquinas son dispositivos abstractos que realizan
90
símbolos que va leyendo sobre una cinta virtualmente infinita y reconociendo uno por uno,
para tomar decisiones sobre la base de la información suministrada por el símbolo leído y
que van cambiando su estado interno. Una vez activada, una máquina de Turing inicia la
donde la tira de símbolos que procesa la máquina informa sobre el resultado del proceso de
cómputo que ha ido de un estado inicial, que ha activado la máquina, a un estado final,
donde la máquina se detiene, después de haber pasado por una serie de estados intermedios.
función f de A hacia B:
f: A → B.
actividad.
Para demostrar que la lógica de primer orden era indecidible, Turing supone primero que
tenemos un algoritmo de decisión general para esta lógica. Luego formula el problema de la
estado inicial de activación dado— como un enunciado de la lógica de primer orden que
ningún algoritmo general puede dar un procedimiento efectivo para decidir si una máquina
de Turing dada puede detenerse sobre una cadena de símbolos arbitraria para un estado
91
inicial de activación dado: no es posible dar un algoritmo para resolver el problema de la
detención.
la detención, es decir, mostrando que si tal función fuera computable entonces el problema
5.
de las funciones definibles en el cálculo lambda con las funciones recursivas generales.
Llamaremos funciones lambda-definibles a las que pueden ser expresadas a través del
cálculo lambda, originalmente concebido por Church para demostrar la consistencia de las
matemáticas clásicas. Las funciones recursivas generales, como explica Kleene (1974, pag.
251) son las que pueden ser definidas recursivamente a través de un sistema de ecuaciones
definibles (y por lo tanto, con las funciones recursivas generales) fue demostrada por
Turing (1937). Los sistemas canónicos y normales de Post (1943, 1946) dan como resultado
92
directo un equivalente de la enumerabilidad recursiva, lo cual permite obtener un
equivalente de la recursividad.
través del cálculo lambda es que enfatiza la idea de que “la computabilidad es una idea
es una notación especial para representar funciones. Antes de que Church hiciera su
a resultados similares.
Schönfinkel (1924) desarrolló una teoría de funciones con el objeto de reducir el número de
primitivas en un sistema como el presentado entre por Russell y Whitehead (1910 - 1913).
español), sólo hay una operación para formar términos complejos, que se escribe «fx»,
método ya usado por Gottlob Frege (1891), para reducir funciones de más de un argumento
93
a funciones de un argumento. Este método supone ampliar la idea de función para que las
funciones puedan ser argumentos y valores de otras. Entonces, es posible pasar el valor de
cada función g para algún argumento x, como argumento a otra función f. Para esto, se usa
una notación donde es común escribir «fxyz» para «((fx)y)z». Si Fxy es una función F de
función de y dada por Fay, y fab es Fab. Por ejemplo, si Fxy es x – y, entonces f 2 = 2 – y, y
aplicación de una función a sus argumentos y los llamó combinadores, porque forman
combinaciones como funciones de las variables que contienen. Schönfinkel introdujo cinco
(1967, pags. 20 – 21), realizó investigaciones que lo llevaron a lo que en esencia sería el
mismo sistema de Schönfinkel: leyendo los Principia de Whitehead y Russell, notó que en
la lógica proposicional habían dos reglas, el modus ponens, que era muy simple en su
estructura formal, y una regla de substitución de cualquier fórmula por una variable
proposicional, que era compleja. Seldin (1998a) afirma que a mediados de 1920, Curry
decidió tratar de dividir esta regla de substitución en reglas más simples y que, luego, en
1926 encontró que podía hacerlo con un formalismo que en esencia era el mismo que el de
argumento en términos de funciones de un argumento, usado por Frege y que Curry tomó
94
de Schönfinkel, se le llamó ‘curryng” (currificación), en honor al trabajo realizado por
propuso construir una modificación del sistema de Frege en la que se evitara el uso de
variables libres. Según Seldin (1998a), una de sus metas fue que toda combinación de
(1) Aplicación: denotada por «MN» como en los trabajos de Schönfinkel y Curry,
términos que difieren sólo en los nombres de sus variables ligadas están identificados en el
λx.x = λy.y.
95
Las variables ligadas son aquellas sobre las que actúa el operador λ; por ejemplo, en λx.xy,
x es una variable ligada e y una variable libre. La regla β era empleada para el cálculo de
Como en Curry, en el sistema de Church las conectivas lógicas pueden ser reemplazados
que la teoría de Church también tenía combinadores y, por tanto, coincidía en muchos
aspectos con las investigaciones de Schönfinkel y Curry. La relación exacta entre las teorías
su trabajo de tesis, A Mathematical Logic without variables. Para establecer esta relación,
Rosser construyó una teoría de combinadores que era equivalente a la de Church. Luego
mostró que una teoría reforzada de la conversión lambda, que es el proceso de transformar
fórmulas del sistema de Church por la aplicación de sus reglas de inferencia, es equivalente
a la teoría sintética de Curry. Desde entonces quedó claro que una teoría de combinadores
puede ser expresada como una teoría de la conversión lambda y viceversa, como señala
Curry (1967, pag. 28). Podemos coincidir entonces con Feys y Fitch (1980, pag. 90) cuando
afirman que el cálculo lambda pertenece a la lógica combinatoria, entendida ésta como el
Church (1936) demostró luego, basándose en un teorema sobre las propiedades del cálculo
96
primer orden, tomado en su totalidad, es imposible resolver el problema de la decisión.
Church, Stephan Kleene (1936), discípulo de Church, había descubierto una gran cantidad
funciones que pueden ser representadas por términos lambda. Puesto que un término
lambda que representa una función calcula sus valores usando un procedimiento mecánico
(reducción aplicando la regla β), cualquier función que pueda ser representada por un
teoría elemental de números. La forma más usual de esta tesis es que todas las funciones
en Kleene (1936) de que una función es recursiva si y sólo si puede ser representada por un
término lambda.
problema de los invariantes de conversión, que grosso modo puede ser planteado de la
cálculo lambda ¿es posible determinar de manera efectiva si Y1 se puede convertir Y2 o no?.
La respuesta positiva a esta cuestión nos daría un procedimiento efectivo para determinar
invariantes respecto de toda conversión. Sin embargo, Church concluye que no existe un
sistema completo de invariantes de conversión que sea efectivamente calculable. Para ello
97
comienza aplicando el método de aritmetización de Gödel (1931) al cálculo de conversión
lambda. Este método permite realizar una codificación que asocia a cada fórmula bien
construida de un sistema formal un número, llamado número de Gödel, de manera tal que
dos expresiones bien formadas no pueden tener asociado el mismo número de Gödel.
[…] esta definición de calculabilidad efectiva puede ser establecida en dos maneras
equivalentes, (1) que una función de enteros positivos será efectivamente calculable
si es definible en el cálculo lambda […], (2) que una función de enteros positivos
Al hacer equivalentes las funciones calculables efectivamente con las funciones recursivas,
Church podrá vincular la recursión con el problema de la decisión: para cualquier función
recursiva de enteros positivos hay un algoritmo con el cual cualquier valor particular
requerido de la función puede calcularse efectivamente” (Church, 1936, pag. 351). Define
algoritmo como:
un método por el cual, dado cualquier número entero n, puede obtenerse una
secuencia de expresiones (en alguna notación) En1, En2, … Enr; donde En1 es
cuando se dan n y las expresiones Enj, j < i; y donde, cuando se dan n y todas las
expresiones Eni hasta incluir Enr, el hecho de que el algoritmo haya terminado llega a
98
Church (1936, pag. 351) define una función recursiva proposicional de enteros como una
verdadera o falsa. Entonces plantea el problema siguiente: hallar una función recursiva F de
dos argumentos tal que de F Y1 Y2 (donde Y1 Y2 son los números-G correspondientes a los
dependa de un número-G de una fórmula Y3, tal que el valor de G Y3 sea 2 o 1 según que Y3
tenga una fórmula normal o no. Una fórmula del cálculo lambda tiene forma normal si es
una fórmula bien formada y no contiene ninguna parte de la forma λx(M)N y B es la forma
Dada una fórmula Y1, no existe función recursiva G de un argumento tal que el
valor de G Y1 sea 2 o 1, según que Y 1 tenga una forma normal (Church, 1936, pag.
360).
irresoluble en un sistema formal que sea ω-coherente en sentido fuerte y que permita ciertos
99
Mathematica6:
ψ(a, b) se puede demostrar y, por lo tanto, habría algún medio para determinar
De esta manera Church prueba que hay clases de la forma P(n) para cada número natural n
tal que no hay un algoritmo general que, dado n, produzca una solución para P(n). No hay
6
Supongamos que Λn es una variable sintáctica para expresiones de n-ésimo tipo y expresiones
correspondientes a propiedades del n-ésimo tipo; Θ es una variable sintáctica para variables individuales;
ΛK es una variable para proposiciones indecididibles cuya existencia es demostrada gracias a la teoría de
predicados de Kleene. Un sistema formal L de segundo orden que incluye constantes individuales que
corresponden a enteros, es ω-coherente en sentido fuerte si para todo predicado Λ 2 [predicado de orden 2]
de L se da que: si las proposiciones (E Θ) Λ 2 (Θ) [Existe algún individuo Θ, tal que tiene la propiedad de
segundo tipo Λ] es derivable en L, al menos una de las proposiciones ~ Λ 2K [El predicado de segundo tipo
Λ indecidible en el sistema de Kleene] no es derivable en L.
7
El teorema XIX, que ya hemos citado arriba, dice textualmente: No hay función recursiva de dos
fórmulas A y B cuyo valor es 2 o 1 de acuerdo a si A es convertibe en B o no. Dado que una función
recursiva suministra un procedimiento efectivo, este teorema plantea que no es posible dar un
procedimiento efectivo para decidir si una fórmula A es convertible en otra B.
100
pues algoritmo que decida si una formula dada del cálculo de predicados de primer orden es
Ya hemos comentado que Turing (1937), demostró que una función numérica puede ser
computada por una máquina de Turing si y sólo si es recursiva parcial. También Turing
demostró que las funciones computables por una máquina de Turing son idénticas a las
computabilidad que, como hemos visto, tiene un fundamento aún más abstracto que el de
cualquier operación computable por una máquina de Turing puede expresarse usando
3. Toda función lambda-definible definida para todos los sistemas de sus valores de
101
sus argumentos es recursiva general.
Basado en teorema de Kleene (1938) sobre recursividad parcial, Church enunció el teorema
siguiente:
(c) Función lambda-definible, para todos los sistemas de valores de sus argumentos.
De acuerdo a la tesis de Church, la clase de las funciones recursivas parciales pueden ser
computadas por cualquier dispositivo que ejecute procesos algorítmicos. Las funciones
computables por máquinas de Turing son iguales a las funciones recursivas parciales. Si
102
para obtener su solución. Las limitaciones de indecidibilidad para el cómputo de funciones
símbolos cada uno de los cuales representa una operación matemática o función, cuyos
“argumentos” son otras cosas del mismo tipo, es decir, funciones. Una función al actuar
sobre otra, da como resultado o “valor” una nueva función. Por ejemplo, al escribir:
a = bc
decimos que a es el resultado de hacer que la función b actúe sobre la función c. A la acción
abstracción, designada por la letra griega λ. Para expresar la abstracción de una función, se
coloca la letra λlambda y se le hace seguir inmediatamente por la letra que representa una
de las funciones, por ejemplo x, que llamamos “variable muda”; luego seguirá un punto y
después una expresión, donde cada aparición de la variable x se tratará como un “espacio”
(placeholder) en el que puede sustituirse cualquier cosa que siga a la expresión completa,
λx.fx
para expresar la función que, al actuar sobre un objeto, como s, produce como resultado fs:
103
(λx.fx)a = fa.
Podríamos decir que la abstracción es una operación para nombrar de forma precisa una
función en sí misma. Entendiendo función como una correspondencia por la que a cada
de x.
λx.fx = f.
Vemos que cuando se aplica el operador lambda a una forma funcional como fx, se aísla la
forma. Tenemos entonces que mientras una expresión como (x + 1) designa el sucesor de x,
Llamamos conversión lambda a una serie finita de aplicaciones de las operaciones del
cálculo lambda, que son aplicación y abstracción. Si una fórmula Y puede obtenerse por
104
convertibilidad es una relación simétrica, reflexiva y transitiva, y el cálculo lambda se
Una expresión está expresada en forma normal si está bien construida y no contiene
ninguna parte de la forma (λx.[Y])Z, donde las variables ligadas de Y son distintas de las
Las funciones de números enteros que se pueden representar mediante el cálculo lambda se
una fórmula Y del cálculo lambda tal que si fa = b y si a y b son las fórmulas del
lambda Ya es convertible en b.
fa – cálculo → b
Ya – conversión → b
Hay, pues, como lo presenta (Ladrière, 1965, pag. 205), una correspondencia donde Y
105
Símbolos para variables: a, b, c, …, z y las mismas letras con índices, por ejemplo:
Símbolos auxiliaries:
De agrupación: paréntesis: ), (.
De separación: .
M, N,... son símbolos sintácticos para términos lambda; en todo caso M, N, … son
M N denota que M y N son el mismo término o que N puede ser obtenido a partir
Reglas de formación:
Convenciones de asociación:
106
Asociación a la izquierda: M1 M2 M3 ... Mn se reserva para ((...(M1 M2) M3) ... Mn) ;
Asociación a la derecha: λx1, x2,...xn.[M] se reserva para λx1 (λx2 (...(λxn M))...).
Variables libres
FV (x) = {x};
Reglas de transformación:
Los términos que difieren sólo en los nombres de sus variables ligadas están
107
λx. xy =α λy. yy
lo que nos daría una expresión cuyos dos lados no tienen el mismo sentido.
Toda expresión que representa una aplicación, que tiene la forma (λx. f x) M,
(λx. f x) M ≥ β f M
reemplazada por una fórmula con la forma (λx. M) N, siempre que las
M [x/N] ≤ β (λx. M) N
el término N. Una expresión de la forma M [x/N] puede ser reemplazada por una
108
fórmula con la forma (λx. M) N, siempre que las variables ligadas de M sean
M [x/N] ≤ β (λx. M) N
entonces la expresión:
M λ N
cálculo lambda”.
Una fórmula está expresada en forma normal si está construida de acuerdo a las
reglas de formación del cálculo y no contiene ninguna forma del tipo (λx. M) N,
siendo las variables ligadas de M distintas de las variables de N. Esto significa que
beta.
109
El resultado de sustituir N por las apariciones libres de x en M que, como dijimos al
x [x / N] =β N;
y [x / N] =β y, si x y;
() M λ M (Reflexividad)
()M λ N N λ M (Simetría)
() M λ N, N λ L M λ L (Transitividad)
Barendregt y Barendsen (2000) llaman a las reglas , y reglas de igualdad y a las
110
expansión beta, es una relación de equivalencia, pues satisface las propiedades reflexiva,
simétrica y transitiva.
Combinadores
combinaciones como funciones de las variables que contienen (tal vez junto con
otras variables)” (Curry y Feys, 1967, pag. 24). Tales combinaciones se forman a
Prueba:
I λx. x;
K λxy. x;
111
K* λxy. y;
S λxyz.xz(y z).
Como puede observarse, a cada combinador simple hay asociada una regla de
reducción. Esto significa que cuando el combinador es aplicado a una serie finita de
IM M;
K MN M;
K* M N N;
SMNL M L (N L).
Tenemos aquí que I es el operador más sencillo, el cual expresa una variable como
(que podrían ser dos funciones f y g) que dependen de un mismo término L (que
podría ser una variable x). Schöfinkel (1924) demostró que las fórmulas lógicas
112
Teoremas Church – Rosser
en forma normal, M y N son variantes una de otra. Esto significa que M y N serían
de si ¿hay una estrategia de reducción que garantice que se produzca una expresión
en forma normal?
154).
reducible que está en el extremo izquierdo (Slonneger, 1995, pag. 152). El orden
2. Nunca termina.
113
Como sólo existe una forma normal única para una reducción que conduzca a una
Funciones lambda-definibles
enteros positivos son las funciones lambda definibles, supone que en el cálculo
lambda hay una manera de definir enteros positivos. Además, para definir funciones
Numerales de Church
objetos denotados por variables, cada uno de los cuales representa una operación
expresión:
114
λf. f(fx),
es la función que cuando se aplica a una función g, produce g aplicada dos veces
sobre x:
dos veces”. Church empleó este tipo de construcciones para definir números enteros
a través del cálculo lambda. De hecho, la función λfx. f(fx) identificaría el número
numerales de Church:
0 = λfx. x
1 = λfx. fx
2 = λfx. f(fx)
3 = λfx. f(f(fx))
4 = λfx. f(f(f((fx)))
etc.
Cualquier aplicación de estas expresiones lambda sobre una función arbitraria f hace
iterar esta tantas veces como lo indica el numeral. Por ejemplo, la aplicación de 3f
sobre y sería:
115
(3f)y λ f(f(f(y))).
así:
Suc = λn f x. f (n f x) Sucesor
Add = λm n f x. m f (n f x) Adición
Mul = λm f x. m (f x) Multiplicación
Pot = λm f. m f Potencia
λ λf n. f (2 f x)
λ λf n. f (λg y. g (g y) f x)
λ λf n. f (λ y. f (f y) x)
λ λf n. f ( f (f x)) = 3
Constructor y selector
y K*, respectivamente:
par := x y f. f x y
λ ( b f. f p b (x y.x)) q
λ f. f p q (x y.x)
λ (x y.x) p q
λ (y.p) q
λ p
Con estas funciones simples, podemos definir otras compuestas. Como ejemplo
λ (snd p q) (fst p q)
117
λ (p.p (x y.y) p q) (p.p (x y.x) p q))
λ (p.p q) (p.p p)
λ q (p.p p)
λ qp
Para expresar los valores verdad (True) y falso (False) en cálculo lambda usamos:
T = λt. λf. t
F = λt. λf. f
Si B entonces P sino Q
donde:
test T v w =
λt. λf.t) v w λ v
118
2.5.- El cálculo lambda con tipos: origen y reglas.
Church (1940) donde presenta una versión del cálculo lambda que incluía asignación de
tipos para los términos lambda. Curiosamente, este sistema con asignación de tipos para los
objetivo de Church con este cálculo era dar una fórmulación de la teoría de tipos simple,
conversión lambda.
estas nociones: en el nivel inferior tenemos una colección de objetos básicos, luego
propiedades.
Russell y Whitehead (1910 – 1913) introdujeron la teoría ramificada de tipos como una
manera de evitar una paradoja descubierta en el sistema originalmente ofrecido por Frege
Originalmente, Church pensó que era posible evitar esta paradoja sin introducir tipos, pero
sólo manteniéndose dentro de una lógica intuicionista que use solamente alguna forma
limitada de la ley del tercero excluido. Sin embargo, dos estudiantes de Church, Kleene y
119
Rosser (1935), demostraron que este sistema es inconsistente. Church (1940) presentó
luego una formulación de lógica usando el cálculo lambda con asignación de tipos simples,
que puede concebirse como una simplificación del sistema de tipos usado en Principia
Mathematica.
Una teoría de tipos supone que en un sistema simbólico no sólo tratamos con objetos, como
El cálculo lambda con asignación de tipos incluye tipos generados a partir de una base tipo
infinito de variables de cada tipo y términos lambda construidos a partir de variables y las
operaciones de aplicación y abstracción. Las fórmulas de este cálculo son ecuaciones entre
términos del mismo tipo. Los axiomas y reglas de inferencia son las versiones restringidas
El sistema de Church tenía dos tipos atómicos: para el tipo de proposiciones, para el tipo
de individuos. Los tipos compuestos son del tipo de funciones desde a β, que ahora
generalmente se denota como «→ β», pero que Church denotaba «( β )». Las
En general, los tipos son objetos de naturaleza sintáctica y pueden ser asignados a términos
120
lambda. Si M es un término del cálculo lambda y se le asigna un tipo , entonces decimos
‘M tiene tipo ’; la denotación que usaremos para esto es M : . Si M es una función,
predicado a la parte que representa el tipo en una expresión con esta forma.
Los tipos vienen a solucionar también un cuestionamiento que se hacía al cálculo lambda:
los términos del este cálculo no representaban la noción de función tal como los
un rango dados como parte de la definición de función (Hindley y Seldin, 1996, pag. 159)
En este sentido, cada tipo atómico α denota un conjunto particular, como el conjunto de los
números naturales, y cada tipo compuesto, de la forma α→β, que se denota alguna función
subconjunto denotado por β. A lo que refieran exactamente los tipos atómicos o el conjunto
siempre del uso para el cual está destinada la teoría de tipos formal que se va a desarrollar.
funciones específicos. Más allá de esto, los tipos son simples objetos sintácticos.
La inclusión de tipos en un sistema lógico como medio para evitar paradojas se debe a que
ellos, al definir algún conjunto para algún término o al establecer un dominio y un rango
8
Church empleaba superíndices para la asignación de tipos, de manera que si M es un término de tipo
escribía: M α; y si M es una función de tipo → β, se escribía M → β.
121
para un conjunto de funciones, limitan la información de los términos. Por ejemplo, a través
de tipo y M es un término de tipo β, entonces el término x.M, que denota una función,
tendrá el tipo → β.
definido por la expresión x.x, designa una función que proyecta o asocia consigo mismo
La expresión “x1 : β 1, …, xn : β n ├ t : ”, es un juicio sobre tipos, donde se dice que t tiene
el tipo si cada xi tiene el tipo βi. Usaremos letras griegas mayúsculas, como Γ y Δ, para
designar listas de pares “variable : tipo”, a las que llamaremos contextos. Así que si, en la
contexto Γ no es sino una secuencia de términos lambda con tipos asignados con la forma
“xi : β i”.
122
El cálculo lambda con asignación de tipos, tal como lo concibió Church (1940), incluye
eliminarla. Entonces enunciamos las reglas de inferencia siguientes para el cálculo lambda
aplicación la elimina. Se podrá notar que hay una similaridad estructural con las reglas
propuestas por Gentzen (1934) para el fragmento implicacional del cálculo de deducción
natural, es decir, el cálculo lógico que sólo incluye dos reglas de inferencia para el
implicador, una que lo introduce y otra que lo elimina. Esta circunstancia permite expresar
en el estilo de la deducción natural las reglas del cálculo lambda con asignación de tipos.
Usemos ahora usemos letras latinas mayúsculas para designar tipos. Enunciemos la regla
Sea t una función ‘de tipo B a tipo A’ bajo las suposiciones en el contexto Γ; y sea u
en los contextos Γ, Δ.
Expresada formalmente:
123
Γ ├ t: B →A Δ├ u :B (→ E)
Γ, Δ ├ t(u) : A
contexto Γ.
Expresada formalmente:
Γ, t : B Δ ├ u : A (→ I)
Γ ├ λx. t : B → A
Algunas versiones del cálculo lambda con tipos incluye explícitamente el siguiente axioma:
___________ Id
x :A├ x :A
que expresa la reflexividad de las expresiones en este cálculo. Este esquema es equivalente
Id
Δ, x : A ├ x : A
forma:
Id
Γ ├ x :A
Tenemos entonces una regla para términos que son variables, la regla que hemos llamado
Id. Las demás reglas, aplicación y abstracción, actúan sobre funciones. De estas reglas, una,
124
la abstracción, introduce el tipo de funciones y la otra, la aplicación, lo elimina. Por este
____________
x :A├ x :A
Id
Γ, x : B Δ ├ t : A Γ ├ t: B →A Δ├u:B
Γ ├ λx. t : B → A Γ, Δ ├ t u : A
→I →E
A partir de estas reglas puede decidirse si a algún término corresponde cierto tipo en este
Demostraremos primero que para el tipoA que la siguiente expresión es válida en este
cálculo:
(λx. x ) : A → A
Demostración:
(x: A) ├ ( x: A) (Id)
├ (λx. x ) : A → A (→I)
Demostremos ahora que la siguiente expresión pertenece al cálculo lambda con tipos:
(λx y. x ) : A → B → A
Demostración:
(λx y z. x z (y z) ) : (A → B → C) → (A → B) → (A → C)
125
Demostración:
x : (A → B → C) ├ x : (A → B → C) z : A ├ z : A y : (A → B) ├ y : (A → B) z : A ├ z : A
x : (A → B → C), z : A ├ x z (B → C) y : (A → B), z : A ├ y z : B
x : (A → B → C), y : (A → B), z : A ├ x z ( y z ): C
x : (A → B → C), y : (A → B) ├ λz. x z ( y z ): (A → C)
x : (A → B → C) ├ λyz. x z ( y z ) : (A → B) → (A → C)
├ λxyz. x z ( y z ) : (A → B → C) (A → B) → (A → C)
Nótese que las expresiones que hemos demostrado aquí, si le suprimiéramos los tipos
I λx. x;
K λxy. x;
S λxyz.xz(y z).
Lo que quiere decir que a estos combinadores corresponden los siguientes tipos:
I : A→A
K : A→ B →A
S : (A → B → C) → (A → B) → (A → C)
Curiosamente, puede notarse que las expresiones a la derecha de los dos puntos ( : ), son
lógica proposicional estilo Hilbert que presentamos en el primer capítulo: los tipos
capítulo: pareciera que los términos lambda fueran el cómputo o la construcción efectiva de
126
Veamos ahora que ocurre con los tipos de los términos del cálculo lambda cuando se
aplican las conversiones propias de este cálculo. La conversión en el cálculo lambda con
asignación de tipos, que representaremos aquí con el signo ‘ ΛΠ’, queda caracterizada por
los siguientes esquemas y reglas, que encontramos en Hindley y Seldin (1996, pag. 162):
() M : A ΛΠ M : A
Como en el cálculo lambda sin inclusión de tipos, se denomina redex (reducible expresión,
( (λx. M ) : A → B ) N : A
del tipo A → B, definida por xz, a un término N de tipo A, definido por y, nos da, por la
regla (la expresión yz : B. Esto tiene una particular importancia en al deducción de tipos,
x:A├x:A
·
D1(x)
· D2
M:B (→I) ·
(λx. M ) : A → B N:A (→I)
(λx. M ) N : B
·
127
D3
Se reduce a la forma:
D2
N :A
·
D1(N)
·
[N / x : A] M : B
·
D’3
Donde D’3 se obtiene a partir de D3 reemplazando las apariciones de (λx. M )N por [N/x] M.
Al hacer este paso de reducción ocurre una contracción en el sujeto (el término lambda M
el punto donde ocurre lo que sería equivalente a la fórmula de corte en un desvío en una
derivación en deducción natural, aparece aquí una expresión reducible con la forma:
( (λx. M ) : A → B ) N : A
Todas las propiedades de la conversión lambda del sistema sin asignación de tipos se
mantienen en el sistema con asignación de tipos. Pero, además, los sistemas con asignación
de tipos tienen una propiedad extra que no tienen los sistemas sin tipos, y que juega un rol
esencial en todas sus aplicaciones: las expresiones con tipos asignados son normalizables
en sentido fuerte. Quiere decir que para este sistema con tipos vale el siguiente teorema:
A diferencia de lo que ocurre en el cálculo lambda sin tipos, donde es posible encontrar
128
estrategias de reducción de un término t dado que no conduzcan a una forma normal, en el
cálculo lambda con asignación de tipos todas las estrategias de normalización son buenas,
en el sentido de que siempre conducen a una forma normal y, por lo tanto, siempre
terminan. El problema en el cálculo lambda sin tipos es que, a pesar de que en él para todo
t dado. Si la normalización débil nos da un procedimiento para elegir en cada paso una
expresión reducible apropiada que ha de conducir a una forma normal, es decir, un término
u que es irreducible, en el caso el cálculo lambda con tipos la normalización para cualquier
término t dato es fuerte, pues no hay secuencia de reducción infinita que comience con este
término t. Por supuesto, esta propiedad del cálculo lambda con tipos tiene relevancia desde
capítulo.
con tipos es fuertemente normalizable. Girard (2003, pags. 31 – 45) también presenta una
versión de la demostración del teorema de normalización fuerte para el cálculo lambda con
tipos también basada en la noción de reducibilidad empleada por Tait. Esta demostración de
129
1. El tipo que corresponde a los combinadores I, K y S son similares a los axiomas del
2. La reducción beta de una expresión del cálculo lambda con tipos se similar a la
el cálculo lambda con asignación de tipos y los sistemas de lógica proposicional. Una de las
Curry (1967, pag. 388): existe correspondencia entre el los tipos asignados a términos
primer orden, sino también para la lógica de primer orden, destacando también la
principio de fórmulas-como-tipos.
Como veremos en el siguiente capítulo, por este isomorfismo, entre otras cosas, podemos
usar el cálculo lambda con asignación de tipos como una notación natural para las
130
demostraciones en el cálculo de deducción natural: el cálculo lambda con tipos representa
una manera natural de codificar las demostraciones del cálculo de deducción natural.
Además, por este isomorfismo, los resultados del cálculo lambda pueden ser traducidos a
hacen en el cálculo lambda se corresponden con algoritmos, se pueden ver programas como
demostraciones, donde su especificación (lo que el programa debe hacer) sería como el
131
III. Correspondencia Curry-Howard
proposicional intuicionista, es posible considerar los tipos asignados a los términos lambda
como fórmulas del cálculo proposicional y a los términos lambda como un registro de las
demostraciones de esas fórmulas. Uno de los trabajos que introdujeron esta idea de
fórmulas como tipos fue el ya mencionado de Curry y Feys (1967), obra publicada
originalmente en 1958 y que descubre que si se identifica el tipo de una función, expresado
con los tipos de la lógica combinatoria. Un trabajo posterior, Howard (1969), pero
publicado en 1980, observa que la coincidencia observada por Curry (1967) se verifica
también entre el cálculo lambda con tipos y el cálculo de deducción natural, estilo Gentzen,
primer orden y que la reducción beta de términos del cálculo lambda y la normalización de
proposicional intuicionista y el cálculo lambda con tipos hasta hacer corresponder este
cálculo con la aritmética intuicionista de primer orden, como informa Soresen (1998, pag.
72).
relación entre estos dos sistemas no es una mera biyección entre fórmulas y tipos: la
132
correspondencia entre los sistemas mencionados es un isomorfismo, por lo tanto, ambos
sistemas satisfacen las mismas propiedades formales. Dado que el trabajo de Curry fue uno
de los primeros conocidos sobre el tema y como el Howard es uno de los más considerados,
En suma, el isomorfismo Curry - Howard establece que hay una correspondencia entre el
con asignación de tipos. Gracias a esto, dada una derivación de tipos en el cálculo lambda,
viceversa. Esta correspondencia es tal que la reducción beta de términos lambda se halla en
natural. Como ocurre cuando se descubre la existencia de isomorfismo entre sistemas, que
Etayo (1971, pag. 132), desde el punto de vista matemático, decir que dos cosas son
isomorfas equivale a decir que son la misma cosa. Esta identidad refiere a las relaciones
existentes entre los objetos formales de cada sistema. Dado que los objetos en un sistema
abstracto, Como observa Kleene (1974, pag. 34), se conocen a través de sus relaciones,
entonces encontrar correspondencia entre sistemas a nivel de las relaciones que determinan
que no solamente a cada palabra de un idioma corresponde una única palabra en el otro,
133
sino también la construcción gramatical fuese la misma” (Etayo, 1971, pag. 132). Que
exista isomorfismo entre el cálculo lambda con tipos y la lógica intuicionista puede
interpretarse, por ejemplo, como que el cómputo de una función a través del cálculo
También puede considerarse la sintaxis del cálculo lambda con tipos como una forma
a una lógica constructivista, tal como lo demuestra, por ejemplo, el sistema de tipos de
Martin-Löf (1972).
teorema del corte para el cálculo de secuentes, que establece que, en este cálculo, cualquier
enunciado que posea una demostración haciendo uso de la regla del corte, posee una
demostración libre de corte, es decir, una demostración que no hace uso de la regla del
corte. Se trata del teorema de la forma normal para el cálculo de secuentes, el cual permite
natural a una deducción en forma normal, que es una deducción sin desvíos y conduce a la
134
misma conclusión que la demostración original. Este método de reducción se formuló en
forma de un teorema que hemos llamado teorema de normalización de Prawitz. Unos años
después, Prawitz (1971) demostró que toda secuencia de reducción de una demostración en
deducción natural siempre termina, una propiedad conocida como normalización fuerte.
Curry (1958) notó que si, en el cálculo lambda con tipos, los términos son suprimidos y la
flecha que designa la correspondencia que define el tipo de una función, es interpretada
como una implicación, entonces los esquemas axiomáticos para los combinadores básicos
esquemas axiomáticos para esta lógica, y la regla para eliminar la flecha de tipos se
convierte en la regla del modus ponens (Curry, 1967, pags. 388 – 391). Este hecho ya lo
hemos visto en la presentación que hicimos en el segundo capítulo del cálculo lambda con
asignación de tipos. Curry además notó que había una correspondencia similar entre una
intuicionista y el cálculo lambda con tipos (Curry, 1967, pags. 392 – 397) e incluso llegó a
proponer un sistema para el fragmento condicional positivo del cálculo de secuentes y una
versión del con términos del cálculo lambda con tipos (Curry, 1967, pags. 397 – 404):
Tait (1967) probó que la reducción beta en el cálculo lambda con asignación de tipos es
expresión en forma normal y este proceso siempre será finito. Tait notó que, cuando se
135
analiza la teoría T de Gödel de funcionales computables de tipos finitos 9, dado que los
asociados a una forma normal. Para esta demostración, Tait usó como método la noción de
iguales si son reducibles al mismo término. Luego, Prawitz (1971) usará una variante del
Howard (1969) reúne los resultados de Prawitz (1965) y Curry (1958) para establecer la
natural y la reducción beta del cálculo lambda. El trabajo de Howard no fue publicado hasta
1980, en el libro en homenaje a los 80 años del profesor H. Curry. Sin embargo circuló una
versión facsímil durante casi dos décadas, como informa Wadler (2000, pag. 10).
El isomorfismo Curry – Howard, respecto a los resultados de Tait (1967), implica que
puede obtenerse una prueba de normalización fuerte para la deducción natural usando el
método de la reducibilidad, lo cual coincide con los resultados de Prawitz (1971). Tenemos
Gödel (1958) presenta su sistema T de orden mayor, que debía ampliar el punto de vista finito de la noción de
demostración metamatemática de Hilbert con principios constructivos de inferencia más abstractos. Según
Gödel, esto permitiría conseguir una demostración de la consistencia de la aritmética clásica. Es un
sistema semejante a la aritmética recursiva primitiva, basada en un sistema de ecuaciones no
cuantificadas: como explica Kleene (1974, pag. 203), estos sistemas se basan en un conjunto de esquemas
operatorios que tienen forma de ecuaciones. Como sistema de orden mayor, las variables y funciones del
sistema T no se refieren sólo a números naturales y funciones numéricas, sino también a funcionales
(funciones que tienen funciones como parámetros) computables de cualquier tipo finito.
136
términos lambda, y al explotar el hecho de que los pasos de la normalización de una
demostración se corresponden con los pasos de una reducción en cierto cálculo lambda con
tipos, uno puede traducir propiedades de los términos lambda en términos de propiedades
de demostraciones.
especificado por A. Para esto se usan las matemáticas constructivas como un lenguaje de
asociación de fórmulas con tipos, fue extendida a la lógica clásica: Griffin (1990) muestra
como que la Ley de Pierce, que no puede ser demostrada en la lógica intuicionista por su
prohibición de usar el axioma del tercero excluido, se corresponde con las instrucciones de
procedimiento efectivo.
137
normalización fuerte en lógica intuicionista de orden mayor.
Ya hemos visto que Curry (1958) planteó sistemas donde se hace hacen corresponder
términos del cálculo lambda con fórmulas del sistema intuicionista del cálculo de
secuentes. Gallier (1993) describe dos sistemas de asignación de tipos que están en
deducción natural NJ. Dada esta relación, se puede ver el Hauptsatz como una
consecuencia canónica del teorema de normalización para términos lambda con tipos
Herbelin (1995) estableció una relación entre las derivaciones del cálculo de secuentes y los
términos del cálculo lambda con tipos, extendido con operadores de sustitución explícita.
Esto ha permitido aclarar cómo los términos lambda con operadores de sustitución explícita
cálculo lambda con tipos. Barendregt y Ghilezan (2000) muestran que, en virtud del
el cálculo de secuentes, tal como la han demostrado Zucker (1974) y Ungar (1992), se
pueden emplear los resultados del Hauptsatz de Gentzen (1934) en el estudio del cálculo
lambda.
de los trabajos de Prawitz, con su principio de inversión para los cálculos de deducción
138
3.2. Presentación
hay isomorfismo entre las reglas de derivación de tipos del cálculo lambda con asignación
de tipos y la lógica intuicionista. Esto quiere decir que la computación de una función a
través del cálculo lambda, que podemos considerar como un programa que computa un
3.2.1. Isomorfismo
podría definirse como un conjunto no vacío, o clase o dominio no vacío D de objetos, entre
los cuales se establecen ciertas relaciones. Por ejemplo, la secuencia de números naturales
constituye un sistema del tipo (D, 0, ‘), donde D es un conjunto no vacío, 0 es un miembro
D, la operación sucesor. Otro sistema más simple podría definirse por (D, >), donde D es
un conjunto de objetos y > es una relación binaria definida sobre D. Observemos que en
estos sistemas no se especifica qué sean los objetos que conforman D, sólo hemos
sistemas expresada por dichas tuplas lo que aquí denominamos estructura. Así que, por
139
ejemplo, la tupla ( S, V, F, ¬, /\, \/, →, ↔) expresa la estructura de un sistema de lógica
S para los valores verdad y falsedad, ¬ es una función unaria, y el resto de los símbolos son
proposicional podría ser (A, ├), es decir, un sistema formado por un conjunto A de
Llamamos a un sistema donde lo único que sabemos de los objetos es cómo se relacionan,
sistema abstracto de objetos. Luego, si especificamos cuáles son los objetos de un sistema,
conjunto de símbolos S que determina un lenguaje de primer orden, como un par U = (A, a)
1. para todo símbolo R de relación n-aria en S, a(R) es una relación n-aria sobre
A.
2. para todo símbolo f de función n-aria en S, a(f) es una función n-aria sobre
A.
10
Al definir una interpretación para un sistema formal, estamos estableciendo las condiciones bajo las
cuales los enunciados de ese sistema son verdad. De esta manera definimos la semántica del sistema.
11
La noción de estructura en S, como explica Ebbinghaus (1996, pag. 29) se usa en la definición de la
interpretación semántica de un lenguaje formal: una interpretación I de S es un par (U, B) que consiste en
una estructura U en S y una asignación B en U. Siendo la asignación B una correspondencia que se
establece entre el conjunto de variables de S y el dominio A de la estructura U.
140
La tupla que define un sistema nos da información sobre su estructura. Por ejemplo,
representado por un lenguaje S de primer orden, la cual consta de dos operaciones binarias
tupla, Sar<, presenta la misma estructura más un símbolo de relación binaria <.
Dos sistemas pueden coincidir en su estructura y sin embargo los objetos que conforman
sus dominios pueden ser distintos. Por ejemplo, podemos definir una tupla (N, e, +, *) para
expresar la estructura de un sistema cuyo dominio N estaría formado por los números
serían dos funciones u operaciones binarias definidas sobre N. La misma estructura, pero
con dominio diferente, sería (Z, e, +, *), que se diferencia de la anterior estructura en que
estamos encontrando relaciones entre ellos. Esto nos permitiría, por ejemplo, definir alguna
función que aplicada sobre los componentes de uno de los sistemas generaría el otro
de otro. Esto no significa que al realizar la generación las relaciones y propiedades del
primer sistema van a conservarse en el segundo sistema. Sin embargo, puede ser el caso
que se conserven las relaciones. Desde el punto de vista matemático, esta identidad
141
estructural es fundamental, puesto que la única información que nos puede dar un sistema
sobre sus objetos se limita a las relaciones que existen entre ellos, sin hacer referencia a qué
Ahora bien, si f es una función que proyecta o hace corresponder los componentes de un
morfismo es una función h de A en B tal que, para una función f de A y una función
g de B:
está inmerso en B. Aquí, hay una función h que es un morfismo que cumple la
exhaustiva.
En el isomorfismo, los dominios de los sistemas están en relación uno a uno, es decir, son
biyectables, y las relaciones y funciones que definen los sistemas son los mismas. El
142
Como en un isomorfismo se conservan las relaciones, si en un sistema S 1 se establece la
relación R1 entre dos objetos a1 y b1, es decir, R1 (a1, b1), entonces en otro sistema S2, en
correspondencia con R1, debe existir una relación R2 entre dos objetos a2 y b2, R2(a2, b2).
Dicho de otra manera, hay isomorfismo entre S1 y S2 si, además de existir entre ellos
Una vez definido qué es un isomorfismo, pasemos a mostrar la existencia de uno entre el
Esta correspondencia es sencilla verla. A continuación presentamos una tabla cuya columna
izquierda contiene las reglas de inferencia para el fragmento condicional del cálculo
derecha contiene las reglas del cálculo lambda con tipos,
143
Reglas del cálculo lambda con tipos de
Reglas del cálculo natural proposicional
Church intuicionista JN→
____________ ____________
x :A├ x :A A├A
Id Id
__Γ, x : B ├ t : A__ __Γ, B ├ A__
Γ ├ λx. t : B → A Γ├B→ A
→I →I
__Γ ├ t : B → A Δ ├ u : B__ __Γ ├ B → A Δ ├ B__
Γ, Δ ├ t u : A Γ, Δ ├ A
→E →E
lambda, que hemos escrito en negrita, y dejamos en los esquemas inferenciales sólo las
variables que representan tipos, veremos que ambas columnas contienen exactamente los
mismos esquemas y que las variables de tipo en coinciden con las variables de
fórmulas en JN. En este sentido podemos decir que, dada una derivación de tipos en ,
también, en nuestra exposición sobre el cálculo lambda con tipos que, dado un término
los términos lambda en y las pruebas en el fragmento condicional de JN→ están en
correspondencia uno-a-uno, o que hay una biyección entre términos lambda y pruebas.
ya que los términos lambda pueden concebirse como una expresión algorítmica de la
la reducción de pruebas en JN. Para que exista isomorfismo entre dos sistemas en los que se
establece una biyección entre sus componentes, deben conservarse las propiedades de las
Dicho esto, se entiende que para comprobar que existe isomorfismo entre dos sistemas,
inferencia de cada sistema, mostrar que las propiedades se conservan al pasar de un sistema
a otro por la aplicación del isomorfismo, entendiendo aquí isomorfismo como una función
que proyecta un sistema en otro. Hemos planteado que la relación de consecuencia lógica
cierra un sistema, sería como su ley de composición interna. Las propiedades de esta
relación están caracterizadas por las reglas estructurales del cálculo de secuentes. Respecto
al cálculo lambda con tipos, podemos comprobar que hay correspondencia entre su
145
derivación de tipos y la derivación de teoremas en el fragmento condicional de la deducción
natural. Queda aclarar a qué corresponden los términos lambda en el cálculo de deducción
natural.
término que ya no ha de ser reducible más. Un término de este tipo, al cual ya no puede
aplicársele más reducciones, se dice que está en forma normal. Ya hemos mencionado que
normalizable: cualquier demostración de teoremas que incluye desvíos puede ser contraída
o reducida a una demostración sin desvíos, es decir, a una demostración en forma normal;
normalización, que tiene en ambos sistemas la propiedad de ser fuerte. Para ver como se
relaciona la normalización de un sistema con la del otro, tenemos que ver en qué medida
146
demostraciones. Esta consideración tiene su apoyo intuitivo inmediato en la facilidad de
reconstruir una demostración de los tipos de un término a partir del propio término. Si los
tipos representan fórmulas, los términos representan el registro las demostraciones de esas
natural, por otro lado, tenemos la representación de esa demostración a través de un cálculo
x
[A]
:
:M (λx : A. M : B) : A → B
:
B _
A→B
Como puede verse, una variable x del cálculo lambda es una especie de etiqueta o índice de
una demostración de una fórmula B a partir de una fórmula A. Aquí, el hecho de que A ha
sido supuesta y luego descargada es indicada en el cálculo lambda por el operador λ que
precede a la variable x. Tenemos entonces que, en el cálculo natural, a una suposición [A] x,
donde x es una etiqueta de suposición a ser descargada, corresponde una variable x de tipo
método en el cálculo natural para demostrar una proposición B a partir de una suposición A,
siendo en el cálculo lambda la variable x de tipo A. La expresión del cálculo lambda “(λx :
147
λx. M es una interpretación de la interpretación intuicionista de la implicación. Nos dice:
tengo un método o procedimiento, expresable por una función computable, por el que,
: :
:M :N
: :
A→B A_ (M : A → B N : A) : B
B
deducción natural:
148
Sistema Forma reducible Forma normal
Deducción natural x
[A] :
: : N
: M : :
: :N A
B : : M
A→B A :
B B
reducible (redex) del cálculo lambda, que tiene la forma ((λx. M)) N, se corresponde a un
Un cálculo puede definirse como un sistema de objetos. Así que las correspondencias entre
dos cálculos, como y JN, pueden ser caracterizadas por un morfismo entre ambos
sistemas. Estamos afirmando que ese morfismo es un isomorfismo entre estos sistemas.
intuicionista como igual al conjunto U de variables de tipos del cálculo lambda con tipos:
tipos simples del cálculo lambda con tipos () son idénticos.
Formalmente esto lo establecemos, siguiendo a Curry y Feys (1967, pag. 289), mediante
i P i,
Entonces P es siempre una fórmula de JN →. Lo que hace esta definición inductiva es
establecer una relación uno a uno entre toda variable de tipo i de con toda variable
proposicional i de JN →.
Definamos una función f : ( → (JN ), tal que f(x) = xP. Para que f sea un
isomorfismo debe cumplir la condición: f(a º b) = f(a) º f(b), es decir, el transformado de los
compuestos debe ser el compuesto de los transformados (Etayo, 1971, pag. 125).
150
6. Si ├ M : , entonces | | ├ .
xxnn
y | | es el rango de , es decir:
Si ‘M tiene el tipo en el contexto ’, entonces ‘el tipo está en el rango ’
perteneciente a }.
Según el principio de inducción, tal como comenta Ebbinghaus (1996, pag. 19),
para mostrar que todas las cadenas derivables en un cálculo tienen la propiedad
P, mostramos que todo lo que deriva por medio de una regla sin premisas
M : ├ M :
151
Por hipótesis de inducción tenemos:
| | , ├
1. La derivación es:
├
4. Entoncesx- ├ x- :
152
├
├ →
presentar una sencilla extensión del cálculo de deducción natural para lógica intuicionista
partimos de la idea de Martin-Löf (1996, pag. 25) según la cual entender el significado de
una proposición significa entender cuándo esa proposición es verdad. Esta idea supone que
153
diferenciamos entre juicio y proposición: si un juicio es la afirmación de que tenemos
información para considerar que algo es verdad, la proposición es ese algo de lo cual se
afirmativo. Un juicio es un acto que requiere que entendamos bajo qué condiciones
implícitamente con la idea de que conocemos las condiciones bajo las cuales es verdad lo
que en él se afirma. Entonces, el juicio más básico de la lógica, que sería la afirmación de
A verdad.
verdad
Por otra parte, el juicio A verdad, que significa que la fórmula A es verdad, sería
├A
Desde el punto de vista lógico, si todo juicio supone la posesión de las condiciones bajo las
cuales una proposición es verdadera, entonces para explicar el significado de una conectiva
lógica tenemos que saber antes cómo derivar que una proposición con esa conectiva es
experiencia, sabemos que para concluir que ‘A → B verdad’, asumimos que A es verdad y
tratamos de probar, a partir de esa suposición A, que B es verdad. Para tomar esto como una
154
definición, primero necesitamos un juicio hipotético, que escribiremos como Martin-Löf
___________________________________
A1 verdad, …, An verdad ├ A verdad
Este principio nos dice intuitivamente que si puedo deducir una fórmula C a partir de dos
A, pero desde el punto del cálculo de secuentes expresa la regla del corte:
Γ ┤A A, ┤ C
Γ, ┤ C
donde H1 = Γ y H2 =
Este principio de sustitución, planteado con otra sintaxis Zucker (1974, pags. 23 – 24), es
izquierdas del cálculo de secuentes, SJ y SN, con las reglas de eliminación en el cálculo de
deducción natural intuicionista, NJ¸ así como las reglas derechas de SJ con las reglas de
155
introducción NJ y NC (1974, pags. 29 – 30).
H, A verdad ├ B verdad (→ I)
H├ (A → B) verdad
H ├ (A → B) verdad H ├ A verdad (→ E)
H├ B verdad
La primera de las reglas de arriba define el condicional por su regla de introducción, ( → I).
Esta presentación de la regla coincide precisamente con la regla derecha del condicional del
vacío, entonces en otra notación podríamos presentar esta regla de la siguiente manera:
A verdad
:
__B verdad__
(A → B) verdad
(A → B) verdad A verdad
B verdad
del condicional por una aplicación del principio de sustitución: asumimos (A → B) verdad,
que significa, según la regla de introducción del condicional, B verdad bajo la suposición
de A verdad. Así que si tenemos una demostración D de A verdad, podemos ponerla por la
por:
156
D
:
B verdad
que finalmente sólo nos queda B verdad. Estas observaciones apoyan la afirmación de
El principio de sustitución también nos permite entender, por ejemplo, la relación entre
Γ┤A B, ┤ C
A → B, Γ, ┤ C
que intuitivamente dice que lo que se deduce de una fórmula B puede deducirse de A → B
A A→ B
B
del condicional, que encontramos en el trabajo mencionado arriba de Zucker (1974, pag
30):
157
Regla Izquierda para el condicional en el Regla de eliminación del condicional en el
cálculo de secuentes. cálculo de deducción natural
D1 D2 Γ
Γ┤A B, ┤ C φ (D1)
Γ, A → B, ┤ C A A→ B
B
φ (D2)
C
Aquí se ha usado el símbolo φ para designar una función que proyecta una deducción D en
observarse, la regla izquierda del condicional del cálculo de secuentes representa una
derivación del cálculo de deducción natural de una fórmula C a partir de una fórmula B y
eliminación del cálculo de deducción natural a las reglas izquierdas del cálculo de
secuentes, ayuda ver éstas en sentido inverso a su correspondiente regla de eliminación del
A verdad B verdad
A /\ B verdad
Ahora vamos a enriquecer nuestros juicios con términos que incluyan información
relevante para dar evidencia de la verdad de las proposiciones. Un juicio con la forma H├
se puede derivar en nuestro cálculo, queremos decir que existe tal derivación, pero no la
juicio A verdad por la expresión M : A, que podemos leer como “M es una demostración de
como demostración o procedimiento de construcción, ya que aquí M no sería más que esto:
correspondencia Curry-Howard, que asocia a los términos del cálculo lambda con
asumimos que hay una demostración de A verdad. Esto lo representaríamos usando una
variable, donde cada suposición es etiquetada por una variable distinta. El uso de variables
para representar la hipótesis o suposición de alguna prueba encaja muy bien con la idea de
que pueden haber varias demostraciones de la misma fórmula, es decir, podemos sustituir
159
respectiva fórmula A. En este sentido, una fórmula A puede ser vista también como el
nombre del conjunto de sus demostraciones y la variable x tendría como rango tales
a la forma:
x1 : A1, …, xn : An ├ M : A
que significa que la derivación de A, a partir de las hipótesis x1 : A1, …, xn : An, puede ser
lambda con tipos , hemos llamado contexto = (x1 : A1, …, xn : An). Por eso, si
obtendremos el conjunto de esquemas que caracterizan el cálculo lambda con tipos, .
____________
x :A├ x :A
Id
__Γ ├ t : A __ Δ ├ u : B__ Γ ├ t : A /\ B _Γ ├ t : A /\ B_
Γ, Δ├ par t u : A /\ B Γ ├ fst t : A Γ ├ snd t : B
/\ I /\ E1 /\ E2
160
__Γ ├ t : A __ Δ ├ u : B__
Γ, Δ├ par t u : A /\ B
los términos de la demostración, lo cual muestra que la regla es sólida respecto al juicio de
Las dos reglas de eliminación de la conjunción pueden ser consideradas como la extracción
Γ ├ t : A /\ B _Γ ├ t : A /\ B_
Γ ├ fst t : A Γ ├ snd t : B
/\ E1 /\ E2
_Γ, x : B Δ ├ t : A__
Γ ├ λx. t : B → A
abstracción lambda, expresada por el uso del símbolo λ, indica que en la demostración de
una fórmula A se ha supuesto que una fórmula B tiene una demostración, aunque no se
y el mecanismo de sustitución por el cual se reduce una expresión reducible del cálculo
161
lambda cuando se le aplica un término con el tipo adecuado.
En vez de:
An verdad ├ A : verdad. Estas traducciones son inversas entre sí, así que la
Llegamos de esta manera a una construcción de las reglas del cálculo NJ, con implicación y
162
conjunción, que está en concordancia con el principio intuicionista según el cual afirmar la
correspondencia entre el cálculo de deducción natural y el cálculo lambda con tipos. Por
puede extenderse hasta la lógica clásica, que incluye el principio de tercero excluido. La
clásica.
abstracciones.
Podemos ver entonces el cálculo como una forma más elaborada de NJ con
163
condicional y conjunción en la que los términos lambda recogen o registran el
procedimiento para probar el tipo del término, cuando vemos ese tipo como una fórmula.
(1986). Por ejemplo, x : . x : tiene el tipo → , que significa que podemos probar
luego I →, registrado por x : . x : . Tenemos entonces que: “En , visto como una
lógica, los términos sirven como una representación lineal de árboles de demostraciones y
podemos ver una construcción → como un término x : . M : de tipo → .
Los cálculos y NJ extendido con términos de demostración pueden ser vistos como
nombres diferentes para el mismo cálculo. Esto significa que cada uno de los conceptos y
existe un término para un tipo dado (habitación) corresponde a preguntar si hay una
Preguntar si hay un tipo para un término dado, corresponde a preguntar si una construcción
Cada regla de introducción ‘introduce’ un constructor (un par ordenado, una abstracción)
hemos llamado desvío en la derivación. Vimos que las demostraciones D del cálculo de
deducción natural que incluyen desvíos pueden ser reducidas a demostraciones sin desvíos
D’, siendo estas últimas consideradas demostraciones en forma normal. Esta reducción de
realiza por sustitución de una subderivación por otra equivalente. En términos del cálculo
establece que, en el cálculo lambda con tipos, cualquier reducción de la construcción de una
165
Al haber correspondencia entre las reducciones de demostraciones y las reducciones de
sino también la estructura entre ellas. Por lo tanto no tenemos una mera biyección sino un
isomorfismo.
JN (→)
término variable suposición
término construcción (derivación)
variable de tipo variable proposicional
tipo fórmula
constructor de tipo conectiva
habitación deducibilidad (demostrabilidad, derivabilidad)
término tipificable construcción por una proposición
redes construcción que representa un árbol de prueba con redundancia
reducción Normalización
valor forma normal
extraer programas que computen la solución de cierto problema planteado a través de una
lenguaje formal apropiado para la derivación de los programas que las satisfacen.
166
Hemos visto que podemos ver el cálculo lambda, con inclusión de tipos asignados a
términos, como un sistema intuicionista de deducción natural donde las fórmulas están
términos de Kleene (1974, pags. 450 – 451), diríamos que esos términos realizan las
fórmulas que son representadas por sus tipos. La idea sería demostrar en este sistema, o en
otro más expresivo, la fórmula que especifica lo que un programa debe hacer, que dice cuál
es el problema que debe resolver el programa. Si dicha fórmula tiene una demostración en
Veamos un ejemplo trivial. Supongamos que la especificación del problema a ser resuelto
├A→A
x:A├x:A
λx.x: A → A
El término λx.x es una función o un programa que devuelve el mismo término al cuál es
Id := λx.x: A → A
y tendríamos:
Id P ≡λΠ P
donde hemos usado ≡λΠ para decir “es reducible, en el cálculo lambda con tipos, a”.
donde hemos usado ≡CL para decir “es convertible, en lógica combinatoria, a”.
demostraciones.
combinadores K y S, que hemos definido a través del cálculo lambda con tipos de la
siguiente manera:
K := λxy.x : A → (B → A)
S := λxyz.xz(yz) : A → (B → C) → (A → B) → (A → C).
K X Y ≡CL X
S X Y Z ≡CL XZ(YZ)
Curry demostró que otros combinadores podían ser definidos usando solamente K y S. Por
I := S K K : A → A
Demostración:
S K KX ≡CL K X (K X)
≡CL X
168
En realidad, estos ejemplos son bastante triviales. Se presentan aquí para ilustrar los
ver con la fórmula A → A. Esto nos puede dar distintos tipos de términos lambda de
demostración o, en otras palabras, otros programas que hacen otras cosas. Como un
0 := λfx.x
f : A → A, x : A ├ x : A E→
├ λfx.x : (A → A) → A → A
1 := λfx.fx
f : A → A, x : A ├ f : A → A f : A → A, x : A ├ x : A →E
f : A → A, x : A ├ fx : A →I
├ λfx.fx : (A → A) → A → A
2 := λfx.f(fx)
f : A → A, x : A ├ f : A → A f : A → A, x : A ├ x : A →E
f : A → A, x : A ├ f : A → A f : A → A, x : A ├ fx : A →I
f : A → A, x : A ├ f (fx) : A →I
├ λfx.fx : (A → A) → A → A
Church, es
169
((A → A) → A → A) → (A → A) → A → A.
Demostración:
Γ├ a: ((A → A) → A → A) Γ├b: A → A
Γ├ ( ab): A → A Γ├ c: A
Γ├ b: A → A Γ├ ( ab) c: A
Γ├ b(( ab) c): A .
├ λabc.b(( ab) c): ((A → A) → A → A) → (A → A) → A → A
El tipo de la operación Double (duplicar), que duplica el valor un numeral de Church, es:
Γ├ a: A Γ├b: A → A
Γ├ a: A Γ├b: A → A Γ├ ( ab): A → A Γ├ c: A
Γ├ ab: A → A Γ├ ( ab) c: A
Γ├ ab(( ab) c): A .
├ λabc.ab(( ab) c): ((A → A) → A → A) → (A → A) → A → A
Los tipos de Succ y Double son los mismos, pero los términos que expresan sus
demostraciones son diferentes y, de hecho, dan valores diferentes para los mismos
numeral 1:
Succ 1 = Double 1 = 2
proposicional para extraer un programa que satisfaga los requerimientos para el cual está
170
El tipo de una función no es sino un aspecto de su especificación. Una especificación debe
expresar la propiedad que debe satisfacer el programa que puede ser considerado como una
función que proyecta los valores de sus argumentos, que son de cierto tipo y que
función, que son también de cierto tipo y constituyen la salida del programa. Visto como
propiedades. Una especificación es una propiedad que debe satisfacer este objeto
matemático. Esta propiedad describe la relación entre la entrada y la salida del programa.
→ A, sólo decimos cuál es el tipo de la entrada y el tipo de la salida del programa, pero no
Las especificaciones de los programas generalmente son expresadas por enunciados que
un programa tiene una propiedad, expresada en un lenguaje formal, que afirma que para
todas las entradas hay una salida tal que cierta propiedad es satisfecha. La lógica
programa, pues no nos permite precisar la relación entre los argumentos y los valores de
una función, más allá de la determinación de los tipos de estos objetos. Por eso, la
que asocia proposiciones con tipos de términos lambda, debe hacerse en un lenguaje formal
171
cálculo de deducción natural intuicionista son mucho más complejos que el que hemos
presentado en este trabajo. No sólo hacen corresponder fórmulas con tipos, además asocian
cada tipo con un conjunto cuyos elementos son las correspondientes demostraciones de la
fórmula asociada al tipo. Para cada tipo o conjunto del sistema se dan no sólo reglas de
natural intuicionista los podemos encontrar en Nordström (1981), Peterson y Smith (1986),
Haeusler (1992), Szasz (1995), Valentini (1996), Thompson (1999), Berger, Swichtenberg y
Seisenberger (2001),
que a las expresiones y símbolos de un sistema se les asigna significado a través de una
semántica, que establece una simbolización del significado de las proposiciones del sistema
esta manera, la semántica especifica a qué refieren los símbolos descriptivos del sistema.
Además de esto, la semántica da una definición de las conectivas, una explicación de cómo
proporcionar, desde su punto de vista, una definición de consecuencia, una explicación del
172
comportamiento del significado de las proposiciones en procesos de inferencia.
través de una función de valoración que asigna a las proposiciones valores veritativos,
sobre la base de la verdad de las componentes conectadas lógicamente por las constantes
un conjunto de fórmulas Γ si φ es verdad en todos los modelos donde las fórmulas de Γ son
verdad. Como puede notarse, esta definición semántica de consecuencia supone la noción
una aproximación basada en los trabajos de Tarski sobre la noción de verdad y la noción de
consecuencia.
Vimos luego que el intuicionismo plantea una aproximación distinta a la semántica de los
sistemas lógicos: más que la satisfacibilidad de una proposición por un modelo, lo que
carácter constructivo, en el sentido de que toda proposición debería ir acompañada por una
independiente de las proposiciones del sistema, respecto al cual las proposiciones pueden
asignársele valores de verdad, sino de determinar cómo obtener la evidencia de los juicios
usando las evidencias de las proposiciones particulares que los componen. En este
173
una demostración no es sino el uso de este conocimiento para verificar juicios más
es una proposición verdadera?” sino “¿qué podemos considerar como una evidencia o
hecho, como vimos también en el primer capítulo, los sistemas de deducción natural de
Gerard Gentzen proponen atribuir significado a las constantes lógicas a través de pares de
reglas duales, un par para cada conectiva, que definen como usarlas en procesos de
obstante se adapta bastante bien a las exigencias intuicionistas, en la medida que las reglas
duales para las conectivas funcionan como modos de verificación para cada fórmula
La dualidad y simetría de las reglas que gobiernan el uso de las constantes lógicas en
significado a las conectivas en sistemas lógicos de deducción natural por medio de reglas
174
problema de caracterizar las conectivas, ya hemos hecho lagunas suposiciones sobre
la naturaleza de la deducción.
Según Prior (1960), para especificar el uso de una conectiva o constante lógica es necesario
verdad o bien por la especificación de sus condiciones de verdad, tal como lo plantea la
aproximación tarskiana. A fin de mostrar que el significado de las conectivas lógicas no puede
darse por medio de reglas, lo que constituiría una extraña aproximación sintáctica a la
proposicional clásica, las reglas de uso para una supuesta conectiva tonk:
(i) A ├ A tonk B
(ii) A tonk B├ B
A___
A tonk B
B
De esta situación, Prior concluye que definir conectivas lógicas por reglas de inferencia
proposición se deduce de cualquier otra que haría trivial e inconsistente el sistema. La verdad
175
lógica no puede reposar en una colección de reglas establecidas por simple convención.
Debe haber más que la descripción de las reglas que gobiernan el significado de las
conectivas lógicas. Para Prior, antes de la formulación de las reglas son necesarias
especificaciones semánticas como tablas de verdad para cada conectiva y, por lo tanto, la
en sistemas lógicos de deducción natural por medio de reglas de inferencia supone un acto
arbitrario, puesto que las conectivas son agregadas al sistema bajo limitaciones anteriores
agregarse conectivas que permitan inferencias que eviten que la relación de deducción ‘├ ‘
Por ejemplo, si agregamos una conectiva como tonk, entonces en nuestro sistema el
obteniendo como corolario que nuestro sistema sería inconsistente. El Hauptsatz sería
trivial porque habría un par de reglas operatorias que permite hacer de forma explícita las
mismas derivaciones que pueden realizarse con la regla del corte, al punto que la propia
regla del corte se haría también trivial. El sistema ya no podría ser analítico, porque sería
en las que habría derivaciones de fórmulas que surgen por arte de magia, que estarían bajo
una nueva y extraña relación de deducción con sus premisas o, para decirlo en términos
premisas12.
12
Aunque desde el primer capítulo hemos diferenciado entre deducción y consecuencia lógica,
176
Por eso, Belnap propone como criterio para la extensión de sistemas a través de la inclusión
de nuevas constantes lógicas la conservación: cualquier extensión del sistema debe ser
relación de deducción ni debe ser posible derivar nuevos teoremas usando las constantes
lógicas originales del sistema original, que estaban antes de la extensión. Sin tener antes in
nuevas definiciones.
Hay además un rasgo de las reglas de inferencia de los sistemas de deducción natural que
Gentzen (1934) de sus sistema de reglas de inferencia y luego lo precisó Prawitz (1965) a
regla de introducción y las regla de eliminación de cada conectiva, según la cual la regla de
conectiva * junto a las premisas menores de la regla. Este principio establece la existencia
de cierta armonía, para usar un término de Dummett (1991), entre los fundamentos para
reservando el primer término para referirnos el aspecto sintáctico de la inferencia y el segundo para
referirnos al aspecto semántico, también hemos comentado que entre ambas esferas, sintaxis y semántica,
debe haber cierta relación que da una caracterización al sistema a través de ciertas propiedades
metateóricas como la corrección, la solidez y la completitud.
177
hacer juicios válidos y las consecuencias que surgen de esos juicios. Si bien la relación de
hayan vinculadas de manera tal que la aplicación de una regla de eliminación no agrega más
cuando aplicamos una regla de eliminación debe ser posible obtener algo que no podríamos
obtener aplicando otras reglas. Hemos visto que el principio de inversión es la base del
demuestra la consistencia del sistema. Por tanto, la inclusión de una nueva constante lógica a
armonía de las reglas de inferencia de una nueva constante lógica que deseamos agregar al
El punto polémico de la propuesta semántica que se inicia con los sistemas de Gentzen es
de Prawitz son tomados como apoyo para una semántica basada en el rol inferencial que
Ahora bien ¿qué aporta la consideración del isomorfismo Curry – Howard respecto a esta
discusión? Para ver esto, debemos considerar primero que hemos restringido el isomorfismo
sólo a la lógica intuicionista. Teóricamente, esto no es una gran limitación porque, como ha
178
constructivismo del planteamiento intuicionista y el correspondiente cálculo de deducción
A partir del principio de inversión, Prawitz (1965) da una caracterización de las conectivas
gobernados por esa conectiva, lo cual permite dar una interpretación del significado de las
derivación de B.
suposición A.
Cambiemos aquí la palabra derivación por la palabra construcción o por la palabra prueba
intuicionista positiva (sin negación). Queda así en evidencia hasta qué punto el cálculo
lógica. Es en este punto donde el isomorfismo Curry – Howard puede proporcionar algún
aporte.
179
preocupado a los lógicos desde la época de Hilbert. Los planteamientos intuicionistas como
los presentaba Brouwer apoyado en la filosofía kantiana, según los cuales las
de la filosofía que plantea Wittgenstein (1953), dan la idea de que la actividad matemática
con un objeto mental al cual sólo tiene acceso el sujeto que los construye en el interior de
la lógica intuicionista permite superar el carácter privado que puede tener la noción de
constucción intuicionista.
aspecto que fuera diferente a la interpretación clásica, Kleene (1974, pags. 450 – 451)
planteó definir una propiedad de las fórmulas de la teoría de números que fuera equivalente
al hecho de que tales fórmulas fueran verdaderas bajo la interpretación propuesta, pero
recursiva es definida por inducción y se basa en el hecho de que los métodos recursivos son
180
para expresar que estos realizan recursivamente fórmulas A de la teoría de números, en vez
de decir A es verdad. Hemos visto que podemos decir x : A, es decir, x es una demostración
Kleene era esto, pero en vez de decir x : A, proponía e realiza A, donde e es la codificación
en números de Gödel de A. Sin embargo, también se pueden usar términos lambda para
├ λaλb.a: A → (B→ A)
sistemas de deducción natural y cálculos lambda con tipos, como un reflejo sintáctico de la
realizabilidad recursiva, pues muestra que cierto sistema de notación para denotar funciones
181
presentación precisa de la noción de construcción a través de términos del cálculo lambda.
La pregunta ahora es ¿qué valor para una teoría semántica tiene la precisión de la noción de
construcción?
fórmula en cuestión y las que no: la verdad es explicada aquí en términos de demostración.
En esta posición se solicita alguna explicación adicional de lo que para una proposición es
ser verdad. Cuando reconocemos que un enunciado es verdad, estamos manifestando que
poseemos la habilidad de reconocer que una proposición ha sido verificada. Tal habilidad es
evidencia.
de una intención de verdad que, incluso, es independiente del sujeto que juzga. En este
natural para la lógica proposicional intuicionista, donde las fórmulas son enriquecidas con
términos de demostración. Vimos que afirmar que una proposición es verdad puede ser
que hace verdadera a tal proposición. Decimos que esa demostración verifica la
182
proposición, entendiendo por verificación “hacer verdadero algo”; también decimos que tal
caso de lógica intuicionista, lo que poseemos como información para la verificación de una
Por el otro lado, aplicando los principios intuicionistas a la teoría ramificada de tipos de
Russell, un tipo queda definido cuando indicamos cómo construir un objeto de ese tipo.
Entonces, haciendo valer la correspondencia entre fórmulas y tipos, nos queda que los
procedimientos para demostrar una proposición pueden ser tratados también como
procedimientos para construir objetos de cierto tipo, así que las derivaciones de teoremas en
cierto cálculo lógico también constituyen un tipo: el tipo de las demostraciones de una
proposición. Esto nos da también lo que significa ser un objeto de este tipo: las
En la teoría de tipos de Martin-Löf (1972), los tipos no sólo son asociados con
proposiciones, también son interpretados como conjuntos cuyos elementos son las
elemento canónico, el cual está asociado con la forma normal de la construcción, y al que
183
es posible reducir todo elemento no canónico del mismo conjunto. Obtenemos así un
que la lógica intuicionista es constructiva y nos da una teoría de la identidad para las
demostraciones, que apoya las ideas de Prawitz acerca del principio de inversión y la
La semántica planteada con ayuda del isomorfismo Curry – Howard no es menos fuerte que
verdad en un modelo, según lo plantea la semántica tarskiana tradicional, cuando hay una
184
evidencia de la verdad de esa fórmula. Las demostraciones tendrían el significado de ser
porque a partir de ellas pueden ser computadas las evidencias que ellas denotan.
internos.
demostrar la naturalidad.
conectivas lógicas.
185
IV. Conclusiones y Reflexiones
precisar la noción de computabilidad. Por una parte, nos recuerda que las aplicaciones
desarrolladas en el campo de la filosofía de las ciencias formales, que incluyen desde los
intentos para fundamentar las matemáticas hasta los trabajos para establecer una semántica
formal de los sistemas lógicos. Esta situación pone en el tapete la necesaria vinculación de
Lo que es expresable.
Lo que es verdad.
Un vistazo a lo que han constituido las investigaciones que han dado pie al desarrollo de los
rumbo que está tomando la lógica en el marco de las ciencias o estudios de la computación.
lógicas una labor experimental, en el sentido que ciertos aspectos prácticos comienzan a
por qué se han llegado a los mismos descubrimientos de manera independiente desde el
orden fue establecida por Howard (1969), casi al mismo tiempo que el científico de la
AUTOMATH, donde empleaba básicamente las mismas ideas para la prueba automatizada
Milner (1978), desde la ciencia de la computación, llegó a un algoritmo que permite inferir
siempre el tipo más general, que es la base de los sistemas computacionales de derivación
de tipos, que es el mismo propuesto por Hindley (1969) desde el campo de la lógica. La
con tipos de segundo orden, con cuantificadores sobre variables de tipos, explica por qué
Girard (1972), desde la lógica, descubrió el cálculo lambda polimórfico y, desde la ciencia
Esta situación puede recordar, a quienes por casualidad lo hayan leído, la observación de
Fodor (1978) según la cual “problemas inicialmente tratados por filósofos suelen caer en
que al tornarse lo suficientemente claros pueden ser resueltos por la ciencia, o bien los
187
filosófico.
las sociedades cada día se hagan más dependientes de ellas, más urgirá la necesidad de que
se puedan demostrar las propiedades de los programas a través de su estudio lógico. Hemos
visto que se están realizando esfuerzos para lograr que las demostraciones en general y la
corrección de los programas puedan ser chequeadas por sistemas computacionales, lo cual
será posible si se tiene la lógica formal apropiada para expresar las demostraciones y las
Estos trabajos han afectado el desarrollo de la lógica pues si, tradicionalmente, la teoría de
se ha valido del lenguaje de las matemáticas para demostrar las propiedades de estos
sistemas (lo que ha constituido el punto de vista de la metamatemática), sin embargo, con
las computadoras actuales, no existentes en la época en que surgieron los primeros estudios
posible a través de verificadores de pruebas que permiten escribir programas formales para
188
lenguaje lógico a un sistema de objetos matemáticos, tienden a dejar de un lado el aspecto
Si se desarrollan cada vez más los aspectos prácticos de la lógica por lograr su
acción basada en el seguimiento de reglas. Las propiedades de los sistemas formales deben
tener significado. Por ejemplo, cuando decimos que hemos demostrado que un programa
tiene una propiedad expresada en un lenguaje formal que afirma que para todas las entradas
hay una salida tal que cierta propiedad es el caso, entonces no puede haber una derivación
II
encontraremos un nuevo campo de aplicación para nuestro estudio sobre las relaciones
189
como una confederación creciente de disciplinas que alegan poder contribuir a la
cognitivas:
aplican.
símbolos.
función informática.
computacional.
190
Esta base teórica mínima cobra relevancia filosófica especialmente en una época donde
propios de aptitudes cognitivas. Esto ofrece un trasfondo teórico que motiva cualquier
naturaleza de lo mental.
que puede ser una filosofía de la mente en una actitud respecto a una ciencia. Hemos
visto que Brouwer funda sus consideraciones acerca de los fundamentos de las
matemáticas sobre la base de cierta filosofía de la mente que dan la idea de que la
a un término matemático con un objeto mental al cual sólo tiene acceso el sujeto que los
como expusimos al final del tercer capítulo, precisar la noción de construcción a tal
punto de permitir distanciarse de una filosofía de la mente que tiende a dar un carácter
privado a los estados mentales, que implica hasta cierto punto su incomunicabilidad.
Esto quiere decir, por un lado, que la filosofía de la mente asumida tiene efectos reales
191
respecto a la naturaleza de las entidades y procesos matemáticos cuando llega ser
precisado, como esperamos haberlo hecho a través del isomorfismo Curry – Howard, se
adapta muy bien a la matriz teórica que hemos presentado de las ciencias cognitivas,
investigación.
III
[…] Kolmogorov observó que las leyes del cálculo proposicional intuicionista se
hacían evidentes si pensábamos que las variables proposicionales tenían como rango
o tareas como una interpretación alternativa que hiciera válidas las leyes del cálculo
proposicional intuicionista.
192
[…] para conocer una proposición, que puede ser reemplazada, si se quiere, por
problema, expectativa o intención, se debe saber qué cuenta como una verificación,
A es una proposición
qué hacer.
En cambio:
juicio de la forma particular A es verdad es lo mismo que saber cómo, o ser capaz,
A es verdad
lenguajes de programación no son sólo una manera de hacer que una computadora realice
operaciones sino un medio formal nuevo para expresar ideas sobre metodología, comentan
expresamos este pensamiento, y que la esencia de este cambio, que podría llamarse
el punto de vista de cómo resolver los problemas: “Las matemáticas ofrecen un marco para
193
tratar precisamente con nociones planteadas en términos de ‘qué es’. La computación
ofrece un marco para tratar precisamente con nociones planteadas en términos de ‘cómo’”
la computación, que, una vez más, puede ser precisada y explicada por la correspondencia
procedimientos, que podría plantearse en el marco de los estudios desarrollados por las
ciencias cognitivas.
194
Apéndice: Sistemas computacionales de demostración
computación que a los lógicos. Así que es de este campo donde deberíamos recibir algunas
respuestas al respecto que, eventualmente, podrán plantear retos nuevos para la lógica y la
filosofía analítica, aunque, tales investigaciones siguen estando orientadas por estudios
científicas, para ofrecer una idea de cómo este isomorfismo encuentra aplicación práctica
en el campo de la informática. Esta exposición nos dará una idea de las posibilidades que
deducción natural intuicionista para constituir nuevos sistemas formales pensados para la
constuctivas del cálculo de deducción natural. Entre estos nuevos sistemas tenemos la
Coquand y Huet (1986). Estos sistemas han sido usados también para diseñar marcos
recursos para facilitar la presentación de diversos sistemas lógicos: tratando las fórmulas
como tipos e identificando cada tipo con el conjunto de sus demostraciones es posible un
tratamiento uniforme de las reglas lógicas y de las demostraciones. Estos sistemas no son
195
sistemas computacionales para el chequeo automatizado de la corrección de demostraciones
Marcos lógicos
lógicos (Logical Frameworks), que son sistemas basados en lenguajes formales de orden
superior y en los que es posible definir varios sistemas lógicos y varias teorías. No se trata
demostración interactivos. De hecho, la idea de que sea posible usar diferentes lógicas
permite siempre que el usuario elija la adecuada para sus objetivos. El sistema
computacional lo que hace es facilitar la labor evitando el trabajo engorroso de, por
AUTOMATH
Uno de los primeros sistemas computacionales diseñados sobre la base del principio
sistema pionero en lo que refiere al chequeo de la corrección de los tipos de los enunciados
disponible para su chequeo mecánico. AUTOMATH estaba definido por una gramática que
196
permitía hacer que todo texto escrito de acuerdo a las reglas de su gramática
acompañada de una indicación de su tipo, lo cual demuestra el uso de una teoría de tipos
sistema fue diseñado al mismo tiempo que se empezó a distribuir el trabajo de Howard
primer orden y el cálculo lambda con asignación de tipos. Por este motivo, algunos autores
han llegado a sugerir que este isomorfismo sea llamado isomorfismo Curry – Howard – de
Bruijn.
Inspirado en las ideas de AUTOMATH, Danna Scott sugirió una teoría de construcciones
donde las proposiciones eran introducidas por tipos. Sobre estas ideas, Alan Milner liderizó
llamado LCF, “Logic for Computable Functions” (Lógica para Funciones Computables),
que tenía términos del cálculo lambda con tipos y fórmulas del cálculo de predicados. El
demostraciones estaban dirigidas por la declaración de una meta principal, que era una
fórmula en la lógica de Scott, que luego era dividida en submetas usando un conjunto fijo
197
La meta está constituida por la proposición a ser probada, que es la especificación del
programa, junto a la lista de suposiciones que pueden ser usadas en la demostración. Los
diferentes métodos a ser usados para dividir una meta en submetas son llamados tácticas.
Gordon (2000). Las estructuras de datos que representaban pruebas formales eran creadas
cuando se interpretaban los comandos de las demostraciones. Por ejemplo la regla /\I:
A, W B, W
A /\ B, W
donde W es una lista de suposiciones, cuando es tratada como una táctica se convierte en:
la meta A /\ B, W
puede ser dividida en submetas A, W y B, W
sólo divide una meta A, W en submetas A 1, W1, ..., An, Wn; también muestra cómo construir
Táctica de /\I:
198
El problema de encontrar un programa c que alcanza la meta:
A * B, W
puede ser dividido en el problema de encontrar un programa a que alcanza la
meta:
A, W
y el problema de encontrar un programa b que alcanza la meta
B, W
El programa c puede entonces ser puesto igual a (a, b).
Cuando se deriva un programa de una especificación, aplicar una táctica dará una parte del
programa que está en proceso construcción. En el caso de la táctica de /\I, se obtiene una
A * B, W ; /\I
A, W
si es alcanzada por a
B, W
si es alcanzada por b
entonces es alcanzada por (a, b)
Edinburgh bajo el nombre Edinburgh LCF, después que Milner se trasladará a esta
funciones que hemos llamado tácticas, las cuales establecen como alcanzar submetas.
También se agregaron operaciones para combinar estrategias que pudieran ser programadas
como funciones de orden superior que toman estrategias como argumentos y regresan
Nuprl
como un sistema formal de razonamiento para el desarrollo de programas donde éstos son
construidos por refinamiento interactivo. Como Constable (1971) señala, el diseño de este
sistema planteaba una serie de problemas que han requerido una toma de posición respecto:
Lo que es expresable.
Lo que es verdad.
constructiva que han conducido, desde 1984, al desarrollo del sistema Nuprl, instancias (la
letra griega “nu”) de la Proof Refinement Logic (Lógica de Refinamiento de Pruebas). Este
Martin-Löf (1985), pero modificada y ampliada. Es el resultado de una serie de ideas sobre
200
lógica de la programación, deducción automatizada, lógica, fundamentos de ciencia de la
en el aspecto lógico, y por estar inspirado en LCF, el sistema está diseñado para soportar
sistema de deducción natural. Las demostraciones son tratadas como objetos de la teoría de
tipos, y son llamados “términos extraidos”, pues se trata de que estos sean extraídos post
hoc de las derivaciones en las que ellos aparecen originalmente sólo de forma implícita.
Para construir las demostraciones se usan tácticas de una manera muy parecida a la usada
en el sistema LCF, pues la lógica es inserta en el sistema a través del metalenguaje ML,
constructivas, se sirve del isomorfismo Curry – Howard como fundamento para una
tienen evidencias de la verdad A, y estas evidencias pueden ser términos lambda que
expresan un procedimiento para demostrar la proposición. En esta teoría, los tipos son
asociados con proposiciones y también con conjuntos cuyos elementos son las
201
La primera implementación de la teoría de tipos de Martin-Löf se hizo en 1982 la
Martin-Löf se diseñó luego, hacia 1990, el sistema ALF, Another Logical Framework, un
editor interactivo para la teoría de tipos que tiene como idea básica usar objetos tipo
aplicación de una constante, donde asumir una proposición A es hacer una abstracción de
una variable del tipo A y referirse a una suposición es usar la variable correspondiente. La
versión original de este sistema fue diseñada en 1991 por Thierry Coquand y Bengt
Nördstrom. El sistema ALF asegura que las demostraciones a través de las cuales se van
construyendo objetos de una teoría sean bien formadas y bien escritas: los pasos de la
imposible escribir pruebas erróneas. Puede ser usado para el desarrollo de demostraciones y
marco lógico, es decir, como una teoría abierta en la que el usuario puede agregar
Chalmers está desarrollando el editor de pruebas ALFA, que también permite manipular
En general, la teoría de tipos de Martin-Löf puede ser vista como una extensión del cálculo
202
polimórfico de segundo orden, inventado por Girard (1972) y llamado sistema F. Este
K ≡def λxλy.x
K α, β ≡def λx α. λy β.x : α → β → α
podemos formar
En general, si:
e:t
(λα.e)ξ : t[ξ/α]
donde ξ es una expresión de tipo arbitraria. Los tipos pueden entonces contener dentro de
Este tipo está en el dominio de la cuantificación Πα..., así que hay circularidad en la
203
definición del tipo.
El isomorfismo Curry – Howard se extiende a esta situación con cuantificación sobre tipos
que tienen el equivalente a la cuantificación sobre todas las proposiciones. Esto tiene el
El cálculo de segundo orden ofrece los medios de definir la transformación de tipos como
una operación del cálculo mismo. Esta extensión del sistema se encuentra en el cálculo de
definición de estos tipos de operadores, se puede desarrollar una gran porción de las
204
El cálculo de constucciones y Coq
expresión lambda cuyos tipos son proposiciones de alguna lógica, en concordancia con el
interactiva que usan el cálculo de construcciones como marco lógico cabe mencionar
LEGO y Coq.
lenguajes de programación, es tomado del francés “coq”, que significa gallo y suena como
las iniciales de la expresión “Calculus of Constructions”, CoC, sobre el cuál está basado
Para ser más exactos Coq está basado en una variante del cálculo de construcciones que
Construcciones (Co)inductivas. Como en todo sistema con tipos, en este sistema todos los
objetos tienen un tipo, incluso las demostraciones y los propios tipos. Hay, como es típico
otros sistemas, una distinción sintáctica entre tipos y términos: es obligatorio que los
términos y los tipos sean definidos de una manera mutuamente recursiva y, además, las
construcciones similares pueden ser aplicadas a términos y a tipos y, por lo tanto, compartir
la misma estructura sintáctica. Por ejemplo, la instancia del constructor →, para un tipo nat
de números naturales, es usada para denotar el tipo de funciones nat → nat, pero también,
para denotar el tipo nat → Prop que es el tipo de predicados unarios aplicados a números
naturales. Esto supone una definición de lo que significa que dos objetos sean del mismo
tipo.
206
BIBLIOGRAFÍA
Ackermann, Wilhelm. (1924 – 1925). Begründung des ‘tertium datar’ mittels der
Barendregt, Henk (1992). Lambda calculus with types. En (Abramsky, Gabbay y Maibaum,
1993).
Barendregt, H. y Ghilezan, S. (2000). Lambda terms for natural deduction, sequent calculus
and cut elimination. The Journal of Functional Programming. 10(1). 121 – 134.
http://www.cs.chalmers.se/Cs/Research/Logic/TypesSS05/Extra/geuvers.pdf.
Belnap, Noel (1962). Tonk, Plonk and Plink. Análisis. 22(6). 130 – 134. Reprimpreso en P.
207
Benacerraf, P. and Putnam, H. (Eds.) (1983). Philosophy of Mathematics: Selected
Reasoning. 26.
Griffon. 11 – 25.
Verlag.
Bruijn, N.G. de, (1968). The mathematical language AUTOMATH, its usage and some of
208
Church, Alonzo (1940). A formulation of the simple theory of types. Journal of Simbolic
Logic 5. 56 – 68.
Proceedings of the IFIP Congress, Toronto, Bruce Gilchrist (Ed.). 229 – 233.
Constable, Robert L. (1989). “Assigning meaning to proofs: a semantic basis for problem
203 – 228.
209
Mathematics 51. 363 – 369.
Curry, H. y Feys, R (1958). Combinatory Logic. North Holand. Traducción al español por
Davis, Martin (1965). Is Mathematics Insight Algorithmic? New York: University of New
York.
Dummett, Michel (1991). The Logical Basis of Metaphysics. London: Duckworth, and
Ebbinghaus, Heinz-Dieter, Jörg Flum and Wolfgang Thomas (1996). Mathematical Logic,
210
Fenstand, J. E. (Ed.) (1971). Proceedings of the Second Scandinavian Logic Symposium.
Studies in Logic and the Foundations of Mathematics 63. Amsterdam: North Holland.
Feys, R. y Fitch, F. B. (1980). Los Símbolos de las Lógica Matemática. Madrid: Editorial
Paraninfo.
Fodor, Jerry (1971). “Propositional Attitudes”. The Monist, 61, 501 – 523. Traducción al
Formelsprache des reinen Denkens, Halle a. S.: Louis Nebert. Traducido al español por S.
Frege, Gottlob (1891). Funktion und Begriff. Conferencia dictada en Jena. Traducción al
español por Carlos R. Luis y Carlos Pereda como “Función y concepto” en (Frege, 1974, 11
– 30).
Frege, Gottlob (1893). Grundgesetze der Arithmetik, Jena: Verlag Hermann Pohle, Band I.
(Frege, G. 1972).
211
de México.
Gallier, Jean (1993): Constructive Logic (Part I: A tutorial on proof systems and typed
Zeitschrift. 39, 176 – 210 y 405 – 4321. Traducción al inglés en (Szabo 1969).
Mathematische Annalen, 112. 493 – 565. Traducción al inglés como 'The consistency of
Gentzen, Gerhard (1938). Neue Fassung des Widerspruchsfreiheitsbeweises fuer die reine
Zahlentheorie. Traducción al inglés como 'New version of the consistency proof for
212
Girard, J. I. (1972). Interprétation finctionelle et élimination des coupures de
Girard, J. I.; Lafond, Y. y Taylor, P. (2003). Proofs and Types. New York: Cambridge
Uiversity Press.
Gödel, Kurt (1930). Die Vollständigkait der Axiome des logishen Funktionenkalküls,
Monatshefte für Mathematik und Physik, 37, pags. 349 – 360. Traducción al español por
Jesús Mosterín como “La suficiencia de los axiomas del cálculo lógico de primer orden” en
Gödel, Kurt (1931). “Über formal unentscheidbare Sätze der Principia Mathematica und
verwandter Systeme”. Monatshefte für Mathematik und Physik, 38 (received 17 Nov 1930,
published 1931). 173 – 198. Traducción al español por J. Mosterín como “Sobre sentencias
53 – 87).
Gödel, Kurt (1933). “Zür intuitionistischen Aussagenkalkül”. Anzeiger der Akademie der
Gödel, Kurt (1958). Über eine bisher noch nicht benutzte Erweiterung des finiten
Standpunktes, Dialectica. 12. 287 – 287. Traducción al español por J. Mosterín como
213
“Sobre una ampliación todavía no utilizada del punto de vista finitario” Gödel, K. 1989,411
– 418.
Gordon, Mike (2000). “From LCF to HOL: a short history”. En Plotkin G. Colin, P.
Stirling, Mads T. (Eds.). Proof, Language, and Interaction, Cambridge: MIT Press.
calculus structure. Computer Science Logic. Lecture Notes in Computer Sciense 933.
theory: The properties of true propositions” en (van Heijenoort 1967, 525 – 581).
214
Arend Heyting. Introducción al Intuicionismo, Madrid: Tecnos.
Hilbert, David (1928), "Die Grundlagen der Mathematik", Abhandlungen aus dem Seminar
464 – 479).
2. 340 – 353..
Kleene, S. C. (1938). On notation for ordinal numbers. Journal of Symbolic Logic 3. 150 –
155.
Mancosu, P. (Ed.) (1998). From Brouwer to Hilbert: the debate on the foundations of
Stockholm.
216
Martin-Löf, Per (1996). On the Meaning of the Logical Constants and the Justifications of
Matiyasevich, Yuri (1996): Hilbert tenth problem: What can we do with Diophantine
Nostrand Company.
Mosterín, Jesús (1989). Introducciòn a Kurt Gödel: Obras Completas. Madrid: Alianza
Negri, Sara (2003). Five Lectures On Proof Analysis. Dresden: Technische Universität.
217
Nordström, Bengt (1981). Programming in Constructive Set Theory. Association for
Palau, Gladis (2002). Introducción filosófica a las lógicas no clásicas. Barcelona: Editorial
Gedisa.
Pelletier, Francys Jeffry (1999). A Brief History of Natural Deduction. History and
Penrose, Roger (1991). La Nueva Mente del Emperador. Barcelona, España: Grijalbo
Mondadori.
218
Post, E. (1946). A variant of recursively unsovable problem. Bulletin of the American
Prawitz, Dag (1965) : Natural Deduction. A proof theoretical studie. Stockholm: Almquist
and Wiksel.
Prawitz, Dag (1971). “Ideas and results in proof theory”. En (Fenstand J. E. 1971. 237 –
309).
Prior, Arthur (1960). The runabout inference ticket. Analysis. 21(2). 38 – 29. Reprimpreso
en (Strawson 1967).
Reynolds, John C. (1974). Towards a theory of type structure. Procedings of the Paris
Coloquium on Programming. Lecture Notes in Computer Science 19. Springer Verlag. 408
– 425.
Rosser, J. Barkley (1935). A mathematical logic without variables, part II. Duke
219
Russell, Bertrand (1922). Introducción a la publicación en inglés del Tractatus Logico-
University Press.
Ryle, Gilbert. (1949). The Concept of Mind. London: Hutchinson & Company.
Szasz, Nora (1995). Toward a Theory of Specification, Programs and Proofs. Proceedings
of the 7th. Nordic Workshop on Programming Theory. PGM Reports 86. Götenborg:
Schönfinkel, Moses (1924): Über die Bausteine der mathematischen Logik. Mathematische
Annalen 92. 305 – 316. Traducido al inglés por Stefan Bauer-Mengelberg como "On the
Concordias University.
Slonneger, Kenneth y Barry Kurtz (1995): Formal Syntax and Semantics of Programming
220
Languages: A laboratory based approach. Addison Wesley Publishing Company.
Smullyan, Raymond M. (1995): First Order Logic, New York: Dover Publications.
Stalmarck, G. (1991). Normalization theorems for full first order classical natural
Ansterdam.
Troelstra, A.S. (1996). From Constructivism to Computer Science. Technical report, Fac.
221
WINS, Amsterdam: University of Amsterdam.
Turing, Alan (1937). Computability and λ-definability. Journal of Symbolic Logic. 2. 153 –
163.
van Heijenoort, Jean (ed.) (1967). From Frege to Gödel: A Source Book in Mathematical
van Dalen, Dirk (1986). Intuitionistic Logic. En (Gabbay y Guenther, 1986, 225 – 239).
222
Wadler, Philip (2000). Proofs are Programs: 19th Century Logic and 21st Century
2da. Edición.
223