Libro Cap 11

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 35

Capítulo 11

Teoría de Tipos

11.1. Paradojas
Hacia el cambio del siglo XIX al XX, un número creciente de paradojas
fueron apareciendo en la matemática, particularmente en la recién estrenada
teoría de conjuntos. En un principio parecían afectar sólo a los conjuntos muy
grandes por lo que se pensó que tal vez fuera la noción de infinito la que cau-
saba problemas, pero cuando Russell descubrió su famosa paradoja, que minaba
su noción fundamental de definición de conjunto, todos se convencieron de la
necesidad de modificar substancialmente la teoría. Es de sobra conocida la vía
de solución axiomática, representada por Zermelo y sus modificadores por un
lado, y por Von Neuman y los suyos1 , por otro. Otra segunda vía, que no co-
mentaré es la tomada por Brower y los intuicionistas2 . Finalmente, Russell hizo
borrón y cuenta nueva al diseñar su teoría de tipos. Mientras que en las teorías
axiomáticas el procedimiento es el de “parcheado”, taponando con enunciados
apropiados las vías de agua descubiertas, en la de tipos no pueden reproducirse
porque el propio lenguaje impide su formulación.
Las paradojas conocidas son muchas3 , entre ellas voy a distinguir cuatro,
muy sencillas. En 1926 Ramsey [62] las clasificó en dos grandes grupos:

1. Lógicas o matemáticas
2. Semánticas o epistemológicas

Esta división ha resultado ser extraordinariamente fructífera, permitiéndo-


nos utilizar técnicas diferentes para evitar las de uno u otro grupo: para expresar
las del primero sólo se precisan nociones matemáticas tales como el concepto de
clase, o de cardinalidad, o el de número; para las del segundo hace falta mezclar
insidiosamente lenguaje y metalenguaje usando conceptos como el de verdad o
el de definibilidad en el lenguaje objeto.
1 Elcapítulo 5 está enteramente dedicado a la axiomática de Zermelo-Fraenkel.
2 Una buena exposición de ella la hace Dirk van Dalen en [21].
3 Consultad la bibliografía de este capítulo y en especial el libro de Sainsbury [65].

287
288 CAPÍTULO 11. TEORÍA DE TIPOS

La clasificación de Ramsey ayuda no sólo a entender las paradojas sino tam-


bién a resolverlas mediante distintas técnicas. Las lógicas o matemáticas se
evitan en la teoría simple de tipos estructuralmente–también se resuelven en
las teorías axiomáticas de conjuntos, de manera algo artificiosa formulando una
serie de axiomas específicos que las bloquean–, pero para eludir las semánti-
cas precisamos de la teoría ramificada de tipos, o de la distinción de Tarski
entre lenguaje y metalenguaje4 . Es por ello por lo que al utilizar un lenguaje
lógico respetamos la estipulación de no mezclar lenguaje y metalenguaje; así,
si queremos expresar el concepto de verdad de una fórmula del lenguaje objeto
utilizamos otro lenguaje que servirá de metalenguaje del primero.

Paradojas Lógicas
Entre ellas la de Russell y la de Cantor son las más conocidas. La de Russell
cuestiona el mismísimo principio de definición de clases, mientras que la de
Cantor se basa en un concepto más elaborado, pero tan básico como aquel, que
es el de cardinalidad.

Paradoja de Russell5
En la teoría intuitiva, cantoriana, de conjuntos todas las propiedades permi-
ten definir conjuntos, pero si tomamos como propiedad la de no pertenecerse a
sí mismo, llegamos a una contradicción al analizar la clase

U = {X/X ∈
/ X}

y preguntarnos

¿Es U un elemento de U ?

Esta paradoja no puede producirse en la teoría de tipos simple porque la


sucesión de signos X ∈ / X no es una fórmula y el axioma de definición de
clases no se aplica para ella. Nuestras fórmulas atómicas son de la forma

X α ∈ Y β –o si se prefiere Y β X α –, siendo β = h0, αi

donde la distinción de tipos es fundamental.


Lo explico mejor: Se admite actualmente que tanto la teoría de conjuntos
como la de tipos representan dos alternativas distintas en lo que a la funda-
mentación de la matemática se refiere y las diferencias entre ellas se consideran
simplemente notacionales, sin mayor relevancia. Nosotros vamos a pasar de la
teoría de tipos a la de conjuntos en dos pasos, señalando el talón de Aquiles de
la transformación y el punto en el que hay que poner el parche en la teoría de
conjuntos.
4 Recordad lo expuesto en la sección 1.4.1.
5 La expuse con mayor detalle en la sección 5.1.2.
11.1. PARADOJAS 289

1. Admitimos que las propiedades definen conjuntos y que podemos identi-


ficarlas con las fórmulas que las definen. Además de esto, las relaciones
pueden reducirse a conjuntos, puesto que los pares ordenados se asimilan
a ciertos conjuntos y las n-tuplas son pares encajados unos en otros. Na-
turalmente, cuando expresamos que X α está en el conjunto Y β –donde
β = h0, αi– podemos escribir
Y βXα o Xα ∈ Y β

Esto no es otra cosa que un cambio superfluo, notacional, ya que las dos
fórmulas tienen el mismo alcance y significado. En este punto el axioma
de definición de clases y relaciones toma la forma siguiente:
∃Y β ∀X α (X α ∈ Y β ↔ ϕ)

–siendo β = h0, αi– y en donde la distinción de tipos no es en modo


alguno superficial.
2. Si la distinción de tipos no existiera y admitiéramos que nuestro universo
sólo contiene conjuntos, el axioma de definición de conjuntos se expresaría
mediante la fórmula
∃Y ∀X(X ∈ Y ↔ ϕ)
Pero, sin distinción de tipos, podemos de nuevo tomar como fórmula ϕ
a la fórmula X ∈ / X, obteniendo así

∃Y ∀X(X ∈ Y ↔ X ∈
/ X)

Por el principio de extensionalidad el conjunto definido mediante esta


fórmula es único, llamémosle U . Entonces,

∀X(X ∈ U ↔ X ∈
/ X)
La contradicción se reproduce cuando intentamos determinar si este U
es un miembro de sí mismo; entonces obtenemos
U ∈U ↔U ∈
/U

Para evitar este problema, en las teorías axiomáticas de conjuntos se adopta


una de estas medidas: o bien se distingue entre clases y conjuntos o se tiene
un axioma restringido de definición de nuevos conjuntos a partir de conjuntos
previamente definidos6 .

Comentario 361 Sin embargo, si somos fieles a la imagen intuitiva de la jerar-


quía de conjuntos, en donde los conjuntos se construyen por niveles, el lenguaje
de teoría de tipos es más adecuado pues en él se respeta esa intuición; por el
contrario, el de primer orden utilizado en la teoría de conjuntos axiomática es
completamente plano. ¿Para representar un paisaje montañoso no es mejor un
sistema de representación que incluya curvas de nivel?
6 Es nuestro axioma de separación, introducido en la sección 5.4.1.
290 CAPÍTULO 11. TEORÍA DE TIPOS

Paradoja de Cantor
Consideremos la clase U de todas las clases, la clase universal. Se puede
demostrar tanto que la cardinalidad de su conjunto potencia ℘(U ) es mayor
que la cardinalidad de la clase universal como que es menor o igual que ella.
Sea U el conjunto de todos los conjuntos. Evidentemente su cardinal |U |
sobrepasa a cualquier otro cardinal; i.e. |A| ¹ |U | para todo A. Así,

∃X∀Y (|Y | ¹ |X|) (11.1)


Pero veamos qué sucede cuando consideramos la clase ℘ (U ). Es fácil ver
que la cardinalidad de una clase cualquiera es estrictamente menor que la de su
potencia. La prueba, del propio Cantor, se basa en dos hechos:

1. Para cada A, hay una función inyectiva f de A en ℘ (A); concretamente,


la función
f : A −→ ℘ (A)
definida mediante f (X) = {X}
2. Pero ninguna función h de A en ℘ (A) puede ser exhaustiva. La razón
es como sigue: Para la clase

X = {x ∈ A/x ∈
/ h(x)}

que es ciertamente un elemento de ℘ (A), no hay ningún elemento z de


A tal que h(z) = X. Para demostrarlo, suponed lo contrario

h(z) = X para un cierto z ∈ A (11.2)

Claramente,

x∈X ↔x∈
/ h(x), para cualquier x ∈ A

En particular, para este z obtenemos

z∈X ↔z∈
/ h(z) (11.3)

Usando las líneas (11.2) y (11.3) obtenemos:

z ∈ h(z) ↔ z ∈
/ h(z)

Esto, obviamente, es una contradicción.

Hemos, pues, demostrado

∀X∃Y (|Y | Â |X|)

que equivale a
¬∃X∀Y (|Y | ¹ |X|)) (11.4)
Los enunciados (11.1) y (11.4) se contradicen.
11.1. PARADOJAS 291

La paradoja de Cantor no puede reproducirse en teoría de tipos porque un


conjunto y el de sus partes están en tipos diferentes. En teoría axiomática de
conjuntos la clase universal no es un conjunto y sólo la clase de las partes de un
conjunto es también un conjunto7 .

Paradojas semánticas
La más antigua que se conoce de esta clase es la de Epiménides, otra es la
de Richard.

Paradoja del mentiroso


Ya comentamos8 que Epiménides el cretense sostenía que todos los cretenses
eran unos mentirosos y que todos los enunciados proferidos por cretenses son
puras mentiras.
El problema surge al definir la verdad en el lenguaje objeto mediante la
fórmula
∀x(V erdad (x) ↔ x) (11.5)
y analizar el enunciado autorreflexivo “Estoy mintiendo” bajo su propia luz.
En la teoría de tipos finitos o en cualquier otra teoría formalizada en la
que se distinga lenguaje de metalenguaje la fórmula (11.5) con el sentido arriba
mencionado no puede ser una fórmula del lenguaje objeto y no puede pertenecer
a la teoría.

Paradoja de Richard
Está directamente inspirada en el procedimiento diagonal que Cantor utiliza
en su celebrada demostración de que los números reales constituyen un conjunto
no numerable; es decir, cuya cardinalidad excede a la de los números naturales.
Recordemos esta prueba de Cantor: Sin pérdida de generalidad nos concen-
tramos en los números reales del intervalo [01] y consideramos una enumeración
cualquiera de estos decimales;
X
am = (amn × 10−n )
n≥1

donde amn es la n-ésima cifra del m-ésimo decimal de esta lista

a1 := 0.a11 a12 · · · a1n · · ·


..
.
am := 0.am1 am2 · · · amn · · ·
..
.
7 El axioma de las partes o potencia de un conjunto, que intrudujimos en la sección 5.4.2

dice que si algo es un conjunto, el de sus partes también, pero U no lo es.


La interpretación estándar de la teoría se hace sobre un universo constituído exclusivamente
por conjuntos de manera que existir en este contexto es ser un conjunto.
8 En la sección 1.4.1, dedicada a la distinción entre lenguaje y metalenguaje, se explica con

algo de detalle.
292 CAPÍTULO 11. TEORÍA DE TIPOS

Es fácil ver que ninguna enumeración de esta índole contiene a todos los
decimales del intervalo [01], para lo cual especificaremos uno,
X
d= (dn × 10−n )
n≥1

que no está en la enumeración anterior.


En efecto, sea
0.d1 d2 d3 ...dn ...
el decimal cuya n-ésima cifra dn es ann + 1 cuando ann ≤ 9 y es 0 cuando
ann es 9. Es obvio que d es un número decimal entre 0 y 1. Para ver que
no está en la enumeración demostraremos que es distinto de an , para cada n.
Esto último es evidente pues al menos su cifra n-ésima dn difiere de la cifra
n-ésima de an que es ann .
La paradoja de Richard es como sigue: consideremos las fracciones decimales
que se pueden definir mediante un número finito de palabras. Ordenemos este
conjunto utilizando en primer lugar el número de palabras empleadas en la
definición y aplicando a continuación un orden lexicográfico. Mediante el método
diagonal definamos un decimal d que no aparece en la ordenación. Claramente
d difiere de todos los de la serie, y puesto que puede ser descrito con un número
finito de palabras, debiera haber sido incluido en ella.
Veamos cual es el vínculo que se establece entre las paradojas y su solución
citando al propio Russell [63]:

In all the above contradictions (which are merely selections from an


indefinite number) there is a common characteristic, which we may
describe as self-reference or reflexiveness. The remark of Epimenides
must include itself in its own scope. If all classes, provided they
are not members of themselves are members of U , this must also
apply to U ; /.../ Thus all our contradictions have in common the
assumption of a totality such that, if it were legitimate, it would at
once be enlarged by new members defined in terms of itself.

Para él había una diferencia fundamental entre los conjuntos por un lado y
las propiedades por otro. Los conjuntos o clases son extensionales y su existencia
la deben a sus miembros. En esta concepción los conjuntos existen con indepen-
dencia de si pueden o no ser definidos y no hay entonces razón para evitar las
definiciones circulares o no-predicativas. Por otra parte, los conceptos o propie-
dades existen sólo en la medida en que podamos definirlos, captarlos. Cuando
las entidades que constituyen la teoría de conjuntos se conciben a la manera
conceptualista, que sólo existen en la medida en que pueden ser definidos, la
restricción a las definiciones predicativas es inevitable.
La teoría de tipos de Russell [1908] sobre la que se construyeron los Principia
Mathematicae cumple algunos de estos requisitos. Analiza las paradojas en dos
pasos. En el primero reformula la paradoja de teoría de conjuntos convirtiéndola
en otra en la que las consideraciones acerca de la predicatividad son relevantes;
11.2. TEORÍA SIMPLE DE TIPOS DE CHURCH 293

la cuantificación sobre conjuntos se desdibuja diciendo que son modos de hablar


y lo único que queda es una teoría de propiedades. Los conceptos fundamentales
de la teoría de propiedades son los de proposición y de función proposicional,
que habían sido siempre conceptos lógicos, y en esta fase el análisis que realiza
es más fino que el de Frege o el suyo de 1903.
Se considera hoy que la jerarquía de Frege, en realidad estipula una teoría
de tipos para conceptos.

Comentario 362 Ironías de la historia, en la teoría simple de tipos,cercana a


la teoría de conjuntos de Zermelo, se evitan las paradojas lógicas y matemáti-
cas. El único problema es que Frege, como Russell, tendría que haber explicado
la teoría de conjuntos como un modo de hablar acerca de conceptos, y no esti-
pular la existencia de los conjuntos como una categoría separada de entidades
sin tipo. Habría tenido entonces sólo los problemas que Ramsey denomina epis-
temológicos.

Por su parte Russell, en su teoría ramificada de tipos, evita todas las pa-
radojas, y no solamente las matemáticas. Sin embargo, el lenguaje se torna
innecesariamente complejo y para poder obtener ciertos resultados matemáti-
cos se ve forzado a admitir el denominado axioma de reducibilidad, de dudosa
aceptación.
Aunque se cree que parte de la motivación para desarrollar la teoría de tipos
se debe al descubrimiento de las paradojas de la teoría intuitiva de conjuntos,
está lejos de ser una construcción ad hoc carente de naturalidad y sentido común
matemático. Citemos a Gandy [29]:

The simple theory of types provides a straightforward, reasonably se-


cure, foundation for the greater part of classical mathematics. That
is why a number of authors (Carnap, Gödel, Tarski, Church, Turing)
gave a precise formulation of it, and used it as a basis for metamat-
hematical investigations. The theory is straightforward because it
embodies two principles which (at least before the advent of modern
abstract concepts) were part of the mathematician’s normal code of
practice. Namely that a variable always has a precisely delimited
range, and that a distinction must always be made between a func-
tion and its arguments. In this sense one might claim that all good
mathematicians had anticipated simple type theory. [Indeed Turing
made this claim for primitive man]. The claim goes too far, but it
does draw attention to the fact that the justification for the theory is
not to be found by considering it as a formal device to avoid Russell’s
paradox.

11.2. Teoría simple de tipos de Church


En lo que sigue presentaré muy brevemente la teoría simple de tipos del
artículo de Church de 1940, complementada en su parte semántica con los de
294 CAPÍTULO 11. TEORÍA DE TIPOS

Henkin [36] y [38]. Está basada en la de Russell, pero distingue claramente en-
tre sintaxis y semántica y entre lenguaje y metalenguaje, por lo que aúna las
ventajas del tratamiento de Russell para evitar las paradojas lógicas y las del
de Tarski, para evitar las semánticas. Si se admite para las fórmulas una semán-
tica de modelos generales, conseguimos un teorema de completud; al precio,
naturalmente, de la merma de capacidad expresiva.

Jerarquía de tipos
La teoría de tipos allí expuesta, que llamaré T podría describirse así: Los
tipos están estructurados en una jerarquía que cuenta con:

D1 es un conjunto no vacío; el de individuos de la jerarquía.

D0 es el dominio de valores de verdad (como estamos en lógica binaria,


dichos valores se reducen a V y F )

El resto de los dominios se construyen a partir de los tipos básicos: si Dα


y Dβ han sido construidos ya, definimos D(αβ) como el dominio formado
por todas las funciones de Dβ en Dα . Los conjuntos se representan
mediante funciones características y así D(0β) es el conjunto potencia de
Dβ , formado por todos los subconjuntos de Dβ .

Para hablar acerca de esta jerarquía se introduce un lenguaje formal. El


del artículo de Church [13] es, como dijimos, un lenguaje de tipos, que posee
distintas clases de variables y se añade además el abstractor.

Alfabeto
Contamos con variables de diferentes tipos, con un superíndice que lo indica.
En este artículo de Church se introducen también las constantes N(00) y
A((00)0) (para la negación y la conjunción) y Π(0(0α)) (nos permitirá expresar
cuantificación). Finalmente ι(α(0α)) es un selector.

Expresiones
Hay dos formas fundamentales de formar expresiones:

Las simples: Fórmulas o constantes solas son fórmulas cuyo tipo es el del
índice.

Las compuestas son de dos clases: (1) Con λ formamos funciones. Si X β


es una variable y M α es una expresión, (λX β M α ) es una expresión de
tipo (αβ). (2) Las otras corresponden a la asignación de valor bajo una
función: si F (αβ) y B β son expresiones, F (αβ) B β es una expresión de
tipo α.
11.2. TEORÍA SIMPLE DE TIPOS DE CHURCH 295

Interpretación
La interpretación de estas expresiones es como sigue:

Las variables toman valores en los universos o dominios correspondientes.


Las constantes tendrán valores decididos de antemano; por ejemplo, N(00)
será negación y A((00)0) disyunción.

La expresión (λX β M α ) se interpretará como una función de Dβ en Dα .


(Por ejemplo, (λX β X β ) será la función identidad. Sin embargo, (λX β φ)
se interpretará como la clase de los elementos de Dβ que verifican la
condición expresada por la fórmula φ.)
Finalmente, la expresión F (αβ) B β se interpreta como el valor de la fun-
ción que interprete a F (αβ) para el valor que interprete a B β .
Por su parte, la función Π(0(0α)) asigna a cada subconjunto de Dα
–que será un elemento de D(0α) – el valor F excepto cuando dicho
subconjunto sea el propio Dα , la totalidad. Así, podemos pensar que este
predicado de predicados afirma de ellos su universalidad. Se entenderá,
pues, que Π(0(0α)) (λX α φ) exprese cuantificación, ∀X α φ. Literalmente
afirma: la clase de los individuos que verifican φ es universal, es todo el
universo Dα . Hay un lenguaje de la teoría de tipos que a mí me gusta
aún más, es el que tiene λ e igualdad como únicos signos primitivos. En
él los conectores y los cuantificadores se definen usando sólo estos signos.
Por ejemplo, ∀X α φ se define mediante esta fórmula9 :

(∀X α φ) =Df (λX α X α = X α )

La interpretación de ι(α(0α)) es la de un selector que a cada elemento de


D(0α) –es decir, a cada subconjunto de Dα – le asigna un elemento de
Dα . Cuando la interpretación de la fórmula

(λX β φ)

es una clase unitaria el selector asigna a dicha clase ese único elemento y
así
(ι(α(0α)) (λX α φ))
se abrevia como
(ιX α φ)
considerándose como un descriptor.

La diferencia de interpretación entre las constantes N(00) , A((00)0) y Π(0(0α))


por un lado, y ι(α(0α)) por otro, es que en el primer caso ésta está fijada de
antemano y de forma unívoca. En el segundo se dice que ha de ser cualquier
función de elección del tipo adecuado, sin determinarse cual.
9 Lo presentaré con detalle en la sección 11.5. Está basado en Henkin [37] y [38], y también

en Andrews [6].
296 CAPÍTULO 11. TEORÍA DE TIPOS

Comentario 363 Parece ser que esta asimetría, esta indeterminación, está
en la base de la investigación que llevó a Henkin a descubrir sus pruebas de
completud. De manera que a ella debemos una pieza clave de toda lógica, la reina
de las pruebas de los sistemas formales, pues su procedimiento, a diferencia del
usado por Gödel para demostrar completud para la lógica de primer orden, es
tan versátil que se adapta fácilmente a otras lógicas.

Cálculo El cálculo deductivo10 de dicho artículo de Church incluye seis reglas


de inferencia y once axiomas. Las tres primeras reglas son reglas de sustitución,
incluyendo las reglas de λ-conversión; entre otras, la siguiente

(λX β M α )N β
³ ´
Mα N Xβ
β

(una aplicación de esta regla nos permitiría pasar de (λX α RX α )A a RA)


y su conversa.

Hay también una regla de instanciación, modus ponens y generalización.


Además de tener los axiomas proposicionales y los de cuantificadores, se
incluye el siguiente axioma para las descripciones

(f (0α) X α ) → (∀Y α (f (0α) Y α → X α = Y α ) → f (0α) (ι(α(0α)) f (0α) ))

Se añade también extensionalidad, elección e infinitud, pues Church quería


que sirviera como alternativa a la teoría de conjuntos, como sistema fundacional.
El axioma de definición de clases y relaciones no es preciso añadirlo ya que se
sigue de las reglas de conversión lambda.

(f (0α) X α ) → f (0α) (ι(α(0α)) f (0α) )) (11.6)


es la elegante formulación del axioma de elección que en este lenguaje propone
Church.

∀X β (f (αβ) X β = g (αβ) X β ) → f (αβ) = g (αβ)


es extensionalidad.

Henkin en [39] sostiene lo siguiente:

Several features of the theory T sketched above were interesting to


me, but I was especially attracted by the neatness and shortness of
the formula expressing the axiom of choice11 . It seemed to me that
1 0 En [52] y en [54] propongo otros cálculos para la teoría de tipos.
1 1 La fórmula 11.6.
11.2. TEORÍA SIMPLE DE TIPOS DE CHURCH 297

the symbol ια(0α) was put into the formal languaje of T origi-
nally to serve the function of the definite article the, as expressed
in Axiom 9α (el de las descripciones), and that its availability to
provide such a succint formulation of the axiom of choice was a for-
tuitous circumstance that must have come to Church as an inspired
afterthought.

Números naturales en T
En el artículo de Church se introducen como abreviaturas las constantes
para cada número natural y se define a éstos, siguiendo a Russell y a Frege. Se
prueba para ellos, como teoremas, los postulados de Peano.
En particular, el cero, el uno y el dos se definen así:
0
0α = λf (αα) λX α X α
0
1α = λf (αα) λX α (f (αα) X α )
0
2α = λf (αα) λX α (f (αα) (f (αα) X α ))
La función del siguiente y el concepto de número natural también son defini-
dos mediante expresiones con lambda. Incluye Church la definición de la función
del predecesor de un número natural, uno de los logros de Kleene, que sirvió a
ambos para calibrar la enorme potencia de la λ−definibilidad.

Incompletud
Cuando uno se da cuenta de que el cálculo no sólo es completo, sino incom-
pletable –esto es, no se torna completo añadiéndole nuevos axiomas o reglas–
la pregunta es si podemos separar de alguna forma a las fórmulas que son no
sólo válidas, sino también deducibles en el cálculo de las que son sólo válidas.
Cito a Henkin [38]:

This broad, somehow, vague question, has several answers –among


them (a), (b), (c) below–
(a) It is known that there can be no decision procedure to determine
automatically, in a finite number of steps, whether or not a given
logically valid formula is provable.
(b) We can describe certain sets of formulas of type 0 for which we
can demonstrate that any formula of the set will be provable if, and
only if, it is logically valid. Thus, we have completeness relative to
each of these sets...[Se refiere a la teoría de tipos proposicional y a
las fórmulas de teoría de tipos que son de primer orden]
(c) Returning to the totality of logically valid formulas of L, we can
pick out from among them those which are provable by introducing
certain non-classical notions of validity. These are defined by enlar-
ging the notion of model, a possibility engendered by observing that
the language L may be used to refer to other kinds of systems than
those we have described so far. There are two different directions in
298 CAPÍTULO 11. TEORÍA DE TIPOS

which we can proceed, described below...[Aquí describe dos métodos:


el de los modelos generales y el de los booleanos].

11.3. HOL en programación y en computación


La lógica de orden superior HOL incluye a la de segundo orden, a la de
tercer orden y en general a la de cualquier orden finito, así como a la teoría
simple de tipos expuesta en el apartado precedente.
Me voy a detener sólo en dos aspectos:

1. Los tipos de datos de orden superior

2. La naturaleza computacional de la deducción natural

11.3.1. Tipos de datos de orden superior


Las funciones de orden superior –esto es, las funciones de funciones– cons-
tituyen la base de los lenguajes de programación de orden superior. Marcó el
punto de inflexión, todavía en los años 60 del siglo XX, el lenguaje Algol y
los que de él se derivaron, tales como el ADA y el Algol 68 ; en todos ellos
se usa la estructura de tipos de dicha lógica de forma similar a como aparece
en el cálculo lambda con tipos –usan sólo tipos finitos en Algol 60 y ADA,
infinitos en Algol 68.
Una vez que se ha integrado explícitamente en el lenguaje la estructura
de tipos, es natural aplicar también las operacioens de λ–abstracción sobre
ellos. Nos servimos de los tipos tanto para estructurar los datos como para fijar
su comportamiento funcional. Otro lenguaje de programación inspirado en el
cálculo lambda es el LISP 12 .
El denominado polimorfismo es de nuevo una forma de abstracción sobre
tipos propia del lenguaje de programación ML. En este caso se utiliza un cálculo
lambda con abstracción de segundo orden.
¿Qué es lo que caracteriza semejante abstracción?
En la teoría de tipos simple no tenemos algo tan básico como la función
global de identidad, para ello haría falta un abstractor de tipos13 .

11.3.2. La naturaleza computacional de la deducción na-


tural
Podemos remontarnos a 1924, a los inicios de la lógica combinatoria, cuando
Schönfinkel observó que las inferencias básicas de la lógica son de naturaleza
funcional; es decir, que son funciones de fórmulas en fórmulas. Esta analogía fue
posteriormente elaborada por Curry en el 1958 y redescubierta por Howard en
1980.
1 2 Extremo que, contra toda evidencia, niega su creador.
1 3 En la sección 11.4 nos ocupamos extensamente de este problema.
11.3. HOL EN PROGRAMACIÓN Y EN COMPUTACIÓN 299

Vamos a indicar brevemente de qué se trata; el cálculo deductivo que conside-


raremos será el de deducción natural, sus reglas pueden ser interpretadas como
funciones que toman fórmulas como argumentos y devuelven una fórmula como
valor. Estas funciones entre fórmulas lo serán del cálculo lambda: las fórmulas
del cálculo de deducción natural son los tipos básicos del cálculo lambda –esta
analogía es conocida bajo este epígrafe: “proposiciones como tipos”–, las reglas
del cálculo de deducción natural son o bien λ−términos u otras expresiones del
λ−cálculo.
Vamos a presentar brevemente el cálculo de deducción natural para exami-
narlo a la luz de la semántica de Heyting; es decir, considerando a las fórmulas
como secuencias de instrucciones capaces de determinar su sentido y no como el
resultado de efectuar dichas operaciones –esto es, su referencia o denotación–.
La dicotomía sentido/referencia opera a nivel profundo en lógica.
Mientras que la referencia o denotación, la verdad, la semántica y las opera-
ciones algebraicas están en la base de la concepción de Tarski de la verdad, en la
de Heyting se asocia el sentido con la idea de sintaxis y de prueba. La corriente
mayoritaria, de tradición algebraica, abandona toda reflexión sobre el sentido y
acata el punto de vista extensional –opuesto a intensional– que es estático,
denotativo. Sin embrago, el punto de vista intensional es dinámico. En vez de
preguntar ¿En qué condiciones es verdadera la fórmula A? nos preguntamos,
¿qué es una prueba de A?
Por ejemplo, una prueba de A ∧ B es un par hp, qi que consta de una
prueba p de A y de una prueba q de B.

Cálculo de deducción natural


La notación
..
.

A
la usamos para indicar una deducción de A; esto es, que acaba en A. La
deducción se escribirá como un árbol finito cuyas hojas están etiquetadas con
sentencias. Las sentencias pueden aparecer en dos estados: vivas y muertas. En
general estarán vivas en una deducción y sólo están muertas cuando dejan de
funcionar activamente en la prueba.
El caso típico es el de la introducción del condicional

[A]
..
.
B
I→
A→B

(Descargar una sentencia es matarla)


Las reglas de este cálculo las introdujimos en la sección 4.4, por lo que no
las repito ahora, consultadlas allí.
300 CAPÍTULO 11. TEORÍA DE TIPOS

Todas las reglas preservan todas las hipótesis, salvo I → ya que desaparece
(se descarga o se mata) [A].

Interpretación de las reglas de deducción natural como λ−términos


Una fórmula A se entenderá como el conjunto de sus posibles deducciones;
en vez de decir “ δ prueba A” diremos δ ∈ A.
Las reglas del cálculo de deducción natural se verán ahora como un modo
de construir funciones; una deducción de A a partir de las hipótesis B1 , ..., Bn
puede expresarse como una función t [z1 ....zn ] que asocia a los elementos bi ∈
Bi un resultado t [b1 ....bn ] ∈ A.

1. Hipótesis: Una deducción que consta de una hipótesis sola A se representa


mediante una expresión x, donde x es una variable para A

2. Introducción de la conjunción: Si se ha obtenido una deducción mediante


I∧ a partir de otras, que corresponden a los términos

u [x1 ...xn ] y v [x1 ...xn ]

asociamos a la conjunción el par

hu [x1 ...xn ] , v [x1 ...xn ]i

ya que la prueba de una conjunción es un par. (Hacemos que las variables


de las que dependen u y v sean las mismas.)

3. Eliminación de la conjunción: Si una deducción acaba con semejante eli-


minación E1∧ y el término t [x1 ...xn ] estaba asociado con la subprueba
inmediatamente precedente, asociamos a la prueba final

π1 t [x1 ...xn ]

La razón es que puesto que la demostración de una conjunción es un par,


asignamos a esta prueba de eliminación su proyección primera o segunda,
dependiendo de qué miembro de la conjunción se tome.

4. Introducción del condicional: Si una deducción acaba con I → asociamos


a nuestra deducción la función t [x1 ...xn ] que manda cada argumento a ∈
A a v[a x1 ...xn ]. Esto se expresa mediante el término

λx v [x x1 ...xn ]

De esta manera la demostración de un condicional es una función del


cálculo lambda.

5. Eliminación del condicional: El caso de una deducción que termina en


E → es tratado considerando las dos funciones u [z − zn ] y t [z − zn ]
11.4. LA IDENTIDAD 301

asociadas a las dos subpruebas inmediatamente anteriores –de A y de


A → B– y asignando

t [x1 ...xn ] (u [x1 ...xn ])

al resultado final. La razón es que t es una función de A en B y por


lo tanto t (u) es un elemento de B.

Ecuaciones fundamentales
­ 1 2 ®
π 1 hu, vi = u π 2 hu, vi = v π t, π t = t
¡u¢
(λx v) u = v x λx tx = t

11.4. La Identidad
11.4.1. Identidad en FOL.
En la lógica de primer orden se suele introducir entre los signos lógicos el
de igualdad, que se estipula ha de interpretarse como identidad. Es decir, la
identidad es un concepto lógico, primitivo.
En el lenguaje formal, a partir de términos cualesquiera τ y t formamos
la expresión
τ =t
que será verdadera en una interpretación = cuando sus denotaciones coincidan;
es decir,
=(τ = t) = V syss =(τ ) = =(t)
El cálculo deductivo nos debería permitir deducir las leyes habituales de: re-
flexividad, simetría, transitividad, sustitución de iguales, etc. Para ello se añaden
algunas reglas al cálculo deductivo; por ejemplo, nosotros tomamos las reglas
de reflexividad de la igualdad y de sustitución de iguales como reglas primitivas
de inferencia:
RI
aτ =τ
¡ ¢
Ω a ϕ xτ
SI ¡ ¢
Ω, τ = t a ϕ xt
y las restantes leyes mencionadas se obtienen como teoremas.
El que la interpretación del signo de igualdad sea la genuina relación de
identidad –es decir, la identidad genérica, la que mantiene un objeto consigo
mismo, pero sólo consigo mismo– no se lo debemos a la capacidad expresiva
de la lógica de primer orden; sencillamente es un concepto primitivo y se toma
así del metalenguaje.
Pero,
¿Se puede definir la identidad en F OL sin igualdad?
302 CAPÍTULO 11. TEORÍA DE TIPOS

¿Hay una ϕ que la defina? ; es decir, tal que para cada = = hA, Hi

=(ϕ) = {hx, yi ∈ A × A | x = y}

La respuesta es que nó. Sin embargo, en los casos en los que el lenguaje sólo
tenga un número finito de relatores; por ejemplo, R (monario) y T (binario),
la fórmula
(Rx ↔ Ry) ∧ ∀z(T xz ↔ T yz) ∧ ∀z(T zx ↔ T zy) (11.7)
expresa que x e y no se pueden distinguir mediante fórmulas del lenguaje de
primer orden. Esta “definición” obedece las leyes habituales de la igualdad, pero
hay modelos en donde la relación que define esta fórmula no es la de identidad
genérica.
­ ®
Ejemplo 364 En el modelo = = hA,Hi donde A = {1, 2, 3} , T A , RA ,
siendo T A = ∅ y RA = {1, 2, 3} la relación definida por la fórmula (11.7) no
es la identidad.

Comentario 365 Aunque sea tan sólo una relación similar a la de identidad y
requiera un alfabeto con un número finito de relatores, es la mejor aproximación
que tenemos en primer orden al Principio de Leibniz de los Indiscernibles
–según el cual dos individuos son iguales si comparten todos sus atributos–.

11.4.2. Identidad en HOL


Aquí veremos cómo se define la identidad usando otros conceptos lógicos.

Identidad para individuos en HOL


En cualquier lógica de orden superior, como la cuantificación se extiende a
variables predicativas, el principio de Leibniz se formula así:

∀X(Xx ↔ Xy) (11.8)

y la igualdad para individuos se introduce mediante la siguiente definición for-


mal:
∀xy(x = y ↔Df ∀X(Xx ↔ Xy))
No necesitamos entonces reglas primitivas para la igualdad, pues

RI
aτ =τ
¡ ¢
Ω a ϕ τx
SI ¡ ¢
Ω, τ = t a ϕ xt
son ambas reglas derivadas de inferencia.
No es ésta la única forma de definir la identidad, pues también puede usarse

∀Y (∀zY zz → Y xy) (11.9)


11.4. LA IDENTIDAD 303

–Dos individuos son iguales cuando están en todas las relaciones reflexivas.–
Estas dos fórmulas son sintácticamente equivalentes en cualquier cálculo de-
ductivo de orden superior, por ejemplo en λ − C2 . Éste es uno de los que utilizo
para la lógica de segundo orden en [54].

`λ−C2 ∀xy(∀X(Xx ↔ Xy) ↔ ∀Y (∀zY zz → Y xy))

Aunque la igualdad definida de cualquiera de las formas propuestas se com-


porta adecuadamente, la pregunta es,
¿Definen a la identidad prototípica estas fórmulas?
La respuesta es que la relación definida mediante la fórmula 11.8 es la “ge-
nuina” en cualquier Estructura Estándar de orden superior. De hecho, podemos
usar la fórmula
∀X(Xx → Xy)
La razón es que las dos fórmulas son equivalentes en la clase formada por
todas las estructuras estándar:

|=S.S ∀xy(∀X(Xx → Xy) ↔ ∀X(Xx ↔ Xy))

(pues toda estructura estándar contiene a todos los conjuntos unitarios en el


dominio de conjuntos)
También la relación definida mediante (11.9) es la “genuina” en cualquier
estructura estándar de segundo orden, pues la menor relación reflexiva es preci-
samente la de identidad y ésta la tenemos en el dominio de las relaciones binarias
de toda estructura estándar. Todo lo dicho se hace extensivo a cualquier otra
lógica de orden superior.

Marcos y modelos generales


HOL con semántica estándar tiene un extraordinario poder expresivo pero
son escasas sus propiedades lógicas14 : falla completud, tanto en sentido débil
como fuerte; falla compacidad y falla Löweheim-Skolem. Sin embargo, la arit-
mética puede caracterizarse hasta isomorfía y algunas propiedades del universo
matemático cifradas en axiomas tales como el de infinitud, elección o las hipóte-
sis del continuo, pueden expresarse en HOL.
Para recuperar algunas propiedades lógicas propias de FOL se puede modifi-
car la semántica: se introduce semántica no-estándar, en particular los Marcos y
Modelos Generales. Al ampliar la clase de modelos el conjunto de fórmulas váli-
das se reducirá. Esta es la situación con las definiciones de igualdad propuestas;
la fórmula
∀X(Xx ↔ Xy)
es equivalente a
∀Y (∀zY zz → Y xy)
1 4 Lovimos para SOL en el capítulo 10, pero vale igualmente para cualquier otra lógica de
orden superior.
304 CAPÍTULO 11. TEORÍA DE TIPOS

en sentido estándar, incluso en sentido general, pero no en marcos. Tampoco


definen a la identidad en todo marco.
¿Qué pasaría si estando en HOL (sin igualdad primitiva) cambiásemos la
semántica y adoptásemos la de marcos o la de modelos generales?
La respuesta es que volveríamos a una situación propia de la FOL (sin =
primitiva): se puede concebir un marco A y una interpretación = = hA,Hi
tal que
=(x = y) = V pero =(x) 6= =(y)
Ejemplo 366 Tomad una estructura cualquiera A con A = {1, 2, 3} y donde
A1 = {∅, A})

¿Qué se puede hacer para remediarlo?


Hay dos vías de solución:
Tomar la igualdad como signo lógico, primitivo y actuar como en FOL con
igualdad.
1. Se añade el signo = al lenguaje formal (signo lógico)
2. Como denotación tomamos del metalenguaje la identidad prototípica.
Haciéndolo de esta forma, la expresión
τ =t
será verdadera en un modelo-marco si sus denotaciones coinciden
=(τ = t) = V syss =(τ ) = =(t)
3. Añadir (RI) y (SI) como reglas primitivas de inferencia
Eliminar los marcos problemáticos

Identidad para conjuntos y relaciones


Tradicionalmente en lógica de segundo orden no se suele incluir la igualdad
para conjuntos y relaciones entre los signos. Pero, ¿ Se puede definir la igualdad
para conjuntos y relaciones?.
En caso afirmativo, ¿Podemos usar el principio de Leibniz?
Para usar el principio de Leibniz necesitaríamos lógica de tercer orden:
∀X 0(01) (X 0(01) Z (01) ↔ X 0(01) Y (01) )
Lo que se puede hacer es usar el Principio de Extensionalidad para introducir
el signo de igualdad entre relaciones:
∀X n Y n (X n = Y n ↔ ∀x1 ...xn (X n x1 ...xn ↔ Y n x1 ...xn ) (11.10)
Haciendo esto, la fórmula Πn = Ψn debe entenderse como
∀x1 ...xn (Πn x1 ...xn ↔ Ψn x1 ...xn ) (11.11)
Quisiera destacar los puntos siguientes:
11.4. LA IDENTIDAD 305

1. La fórmula (11.11) establece una relación de equivalencia entre los con-


juntos y relaciones de un modelo dado, pero no siempre se trata de la
identidad prototípica.
2. Sin embargo, al introducir la igualdad mediante la fórmula (11.10) ésta
deja de funcionar como principio de extensionalidad, pasando a ser una
mera definición formal del signo de igualdad.
3. Como normalmente tenemos extensionalidad en el metalenguaje (no con-
sideramos más que modelos extensionales), el que se pierda la capacidad
de postularlo axiomáticamente no es grave.
4. Además, la construcción de un modelo extensional a partir de uno no
extensional es fácil: al ser de equivalencia la relación definida por (11.11),
se construye el modelo cociente.

Identidad global
En la teoría de tipos simple no tenemos algo tan básico como la función global
de identidad: para cada tipo τ tenemos la identidad de dicho tipo Iτ := λxτ xτ .
Si usamos una variable b t para tipo, la función identidad sería una generalización
de λxbt xbt . Pero esto no es una expresión bien formada del formalismo; b t no
es un tipo. Para conseguir que la identidad sea una expresión lo que se hace es
utilizar Λ, un abstractor de tipos; la identidad polimorfa es definida como
b b
I :=Df Λb
t λxt xt
­ ®
La colección de tipos se enriquece así con un ∀ y Λb t λxbt xbt es de tipo ∀b
t bt, b
t .
Una expresión ³cuyo tipo es ∀b
t σ puede aplicarse a una de tipo τ y origina
´
una de tipo σ τbt
Por ejemplo, la expresión
b b
Λbt λxt xt τ (11.12)
es de tipo hτ , τ i
Si se usa
¡ una
¢ regla de reducción β para tipos, de la expresión (Λt E) τ se
pasa a E τt . En nuestro caso (11.12) se reduce a λxτ xτ ; es decir a Iτ .

¿Qué opción propongo?


En lógica de segundo orden, cuando se quiera usar modelos no estándar
propongo tomar el genérico de identidad en todos los casos. En [54] presento al
efecto los lenguajes SOL y λ-SOL.

1. En el lenguaje SOL la igualdad, tanto para individuos, como para con-


juntos y relaciones, se toma como signo lógico, primitivo. Siendo así el
Axioma de Extensionalidad

Ext
a ∀X n Y n (X n = Y n ↔ ∀x1 ...xn (X n x1 ...xn ↔ Y n x1 ...xn )
306 CAPÍTULO 11. TEORÍA DE TIPOS

que se incluye como regla sin premisas, surte el efecto deseado; esto es,
excluye modelos no extensionales.
Al combinar su acción con la del Esquema Axiomático de Comprehension
EC
a ∃X n ∀x1 ...xn (X n x1 ...xn ↔ ϕ)
que se incluye también como regla sin premisas, nos permite demostrar
`C2 ∃¡X n ∀x1 ...xn (X n x1 ...xn ↔ ϕ)

¿Qué significado y alcance tiene este teorema?.


Siempre que tengamos extensionalidad y comprehensión –con igualdad
como signo primitivo– podemos darle un nombre a la relación definida por
cada fórmula ϕ –módulo cierta sucesión de variables–, puesto que es
única. Esto quiere decir, que se puede extender de forma “conservativa” el
lenguaje mediante un operador de abstracción λ formando así predicados
de la forma
λx1 ...xn ϕ
cuya interpretación es:
© ª
=(λx1 ...xn ϕ) = hx1 , ..., xn i | =xx11...x
...xn
n
(ϕ) = V
Al escribirlo en notación lambda, el axioma de comprehensión queda así:
∀z1 ...zn (λx1 ...xn ϕ z1 ...zn ↔ ϕ)

2. El lenguaje λ-SOL, contiene igualdad y abstracción como signos lógicos,


primitivos, permitiéndonos formar predicados a partir de fórmulas de la
manera mencionada antes. Su cálculo deductivo contiene las reglas de
Introducción del Abstractor en el Consecuente
³ ´
Ω a ϕ τx11 ...τ
...xn
n

IAC
Ω a λx1 ...xn ϕ τ 1 ...τ n
y de Introducción del Abstractor en el Antecedente
³ ´
Ω ϕ xτ 11 ...τ
...xn a ψ
n

IAA
Ω λx1 ...xn ϕ τ 1 ...τ n a ψ

En este cálculo se puede demostrar como teorema el axioma de comprehen-


sión, no precisándose como regla primitiva
`λ−C2 ∃X n ∀x1 ...xn (X n x1 ...xn ↔ ϕ)
Otro teorema de nuestro cálculo λ − C2 nos va a servir de introducción al
siguiente tema que quisiera, aunque sea muy brevemente, tratar aquí. El teorema
es éste:
`λ−C2 ∀xϕ ↔ λxϕ = λx x = x
11.5. TEORÍA DE TIPOS ECUACIONAL 307

(En un lenguaje de segundo orden que contiene como primitivos λ e igualdad, la


cuantificación universal equivale a la igualdad de los predicados λxϕ y λx x =
x.)

11.5. Teoría de tipos ecuacional


Hemos planteado el tema de la identidad en el contexto de la lógica de primer
orden y en el de la de segundo orden: principalmente nos preocupaba el saber
si podíamos definirla en función de otros signos lógicos o si en vez de conseguir
el “genérico” teníamos que conformarnos con “similares” o “equivalentes” 15
En esta última parte el problema que planteo es el inverso y también recibe
respuesta afirmativa en lógica superior.
¿Se pueden definir, con sólo identidad y abstracción como primitivos, los
restantes signos lógicos?
La idea de reducir otros conceptos al de identidad es muy antigua y fue
tratada con algún resultado por Tarski, quien resolvió lo concerniente a los co-
nectores, Ramsey, que planteó el tema en su conjunto, y Quine, quien introdujo
los cuantificadores. Fue finalmente completamente resuelto por Henkin y mejo-
rado por Andrews.
Las definiciones de todos estos conceptos (conectores y cuantificadores) son
posibles en un lenguaje de orden superior; por ejemplo, el de la teoría de tipos
finitos que incluye variables proposicionales para todos los órdenes finitos –esto
es, incluye el 0 y todos los que se obtienen del 0–. De hecho, la teoría de tipos
proposicional es una subteoría importante de esta presentación de teoría de tipos
y se puede estudiar separadamente. El cálculo que introduciremos para la teoría
de tipos ecuacional, cuando trabaja exclusivamente con tipos proposicionales,
genera todas y solas las fórmulas válidas de la lógica de tipos proposicionales,
como mostró Henkin en 1963.
Comentario 367 Este cálculo es de una belleza y naturalidad extraordinarias
y parece estar concebido para prestar apoyo a la tesis de Wittgenstein sobre
fundamentación de las matemáticas, según la cual toda la matemática está hecha
de ecuaciones, no de tautologías.

Definiciones básicas
El lenguaje de tipos ecuacional que usaremos sólo contiene: Variables para
todos los tipos finitos –con un superíndice que lo indica–; igualdad para todos
los tipos; abstractor λ.
1. Bicondicional: Para fórmulas ϕ y ψ, la expresión
ϕ↔ψ
se usará en vez de
((=hh00i0i ϕ)ψ)
1 5 Véase [57] y [58].
308 CAPÍTULO 11. TEORÍA DE TIPOS

abreviado, ϕ = ψ
2. Lo verdadero: >0 . Su definición abreviada es
λX 0 X 0 = λX 0 X 0

3. Lo falso: ⊥0 . Su definición abreviada es


λX 0 X 0 = λX 0 >

4. Negación: ¬h00i . Su definición abreviada es


λX 0 (⊥ = X 0 )

5. Predicado de existencia: Σh0h0αii . Su definición abreviada es


λX h0αi λX α (X h0αi X α ) 6= λX α ⊥

6. Cuantificador existencial: ∃X α ϕ. Su definición abreviada es


λX α ϕ 6= λX α ⊥

7. Disyuntor: ∨h0h00ii . Su definición abreviada es


λX 0 (λY 0 ∃X h00i ((X h00i ¬X 0 = X h00i >) 6= ¬Y 0 ))

Explicación
La semántica empleada es estándar, pero se puede también usar la de marcos
o la de modelos generales.
Sea = = hD, M i un modelo. Es fácil comprobar que con las siete definiciones
anteriores:
1. =(ϕ ↔ ψ) = V syss =(ϕ) = =(ψ) –Funciona como el bicondicional–
2. =(>) = V –Es un nombre para lo verdadero–
3. =(⊥) = F –Es un nombre para lo falso–
4. =(¬) es una función de tipo h00i cuyo valor es V syss =(X 0 ) = F .
–Es la función veritativa de negación–
5. =(Σ) es una función que asigna a los conjuntos de tipo h0αi el valor
V syss el conjunto no es vacío. –Es un predicado de predicados, afirma
del predicado que “no predica en el desierto”, que bajo él cae cuanto menos
un objeto–
6. La cuantificación existencial ∃X α ϕ podría reducirse a lo anterior, Σ(λX α ϕ).
Hemos optado por definirlo directamente.
7. Finalmente, incluso la disyunción puede definirse usando identidad y lambda;
la fórmula se interpreta como la función que asigna F syss
tanto =(X 0 ) = F como =(Y 0 ) = F
11.6. APÉNDICE: LA PIEDRA FILOSOFAL 309

Un cálculo para ET T
Cálculo axiomático: Sólo contiene cuatro axiomas y una regla de reemplaza-
miento.

Axiomas

(Ax.1) (X h00i ⊥∧X h00i >) = ∀X 0 (X h00i X 0 ) –Hay sólo dos valores de verdad–

(Ax.2) (X α = Y α ) → (Z h0αi X α = Z h0αi Y α ) –Sustitución de iguales–

(Ax.3) ∀X β (X hαβi X β = Y hαβi X β ) = (X hαβi = Y hαβi ) –Extensionalidad–


³ β´
A
(Ax.4) (λX β B α )Aβ = B α X β –Conversión lambda–

(Ax.5) th1h01ii (λX 1 (X 1 = Y 1 )) = Y 1 –Descripción–

Regla de inferencia: R

Reemplazamiento A partir de ϕ y de Aα = B α inferir cualquier fórmula


ψ que se obtenga de ϕ al reemplazar en ϕ cualquier parte de la forma
Aα por B α .

11.6. Apéndice: La piedra filosofal


En lo que sigue intentaré hacer plausible mi tesis de que el gran descubri-
miento de Church fue, sin lugar a dudas, el del cálculo lambda, y que el resto
de sus contribuciones, así como las de algunos de sus discípulos se deben a este
acierto inicial16 . El hilo argumental será éste:

(1) El cálculo lambda


En las primeras décadas de este siglo seguramente se consideraba impres-
cindible para un lógico que se preciara el presentar un sistema lógico propio.
Church creó el cálculo lambda tomando como base el concepto de función y dis-
tinguiendo claramente entre el valor de una función para un argumento F (x)
y la propia función λxF (x). Para ilustrarlo pongamos uno de los ejemplos que
el propio Church usa17 :

If we say, (x2 + x) is greater than 1,000 we make a statement which


depends on x and actually has no meaning unless x is determined as
some particular natural number. On the other hand, if we say (x2 +x)
is a primitive recursion function, we make a definite statement whose
1 6 Esta idea la desarrollo en [55] y en [56].
1 7 Véase [14]. (Página 6 de la edición de 1951.)
310 CAPÍTULO 11. TEORÍA DE TIPOS

meaning in no way depends on a determination of the variable x (so


that in this case x plays the rôle of an apparent, or bound variable).
The difference between the two cases is that in the first case the
expression (x2 +x) serves as an ambiguous, or variable, denotation of
a natural number, while in the second case it serves as the denotation
of a particular function. We shall hereafter distinguish by using (x2 +
x) when we intend an ambiguous denotation of a natural number,
but (λx(x2 + x)) as the denotation of the corresponding function
–and likewise in other cases–.

El elegir el concepto de función como base fue ya un gran acierto, pero el


distinguir en el lenguaje los valores de la función de la función misma, lo fue aún
mayor. Si a esto añadimos la característica de que la formalización permite que
una función anide a otras, el lenguaje está preparado para expresar la recursión.
De hecho, a diferencia de los sistemas axiomáticos fundacionales, la existencia
de los objetos matemáticos (en nuestro caso, funciones) no se postula, sino que
son generados por las propias reglas de formación de expresiones.
Este lenguaje es tan compacto y tan adecuado para expresar funcionalidad
que se convirtió en lenguaje de programación18 .

El cálculo lambda, aunque llevaba circulando varios años, no aparece en


prensa hasta principios de los cuarenta19 . A comienzos de los años treinta Church
ya sabía que tanto la función del siguiente como la suma eran λ−definibles, pero
fue su alumno Kleene quien fue gradualmente descubriendo lo amplia que era la
clase de las funciones definibles mediante lambda y estos resultados constituye-
ron parte de su tesis. Este es el origen de la teoría de la recursión. Sin embargo,
los resultados de la investigación les llevaron más lejos de lo esperado. Veamos
lo que dice Martin Davis [23] al respecto:

Church published a pair of substantial papers on the system he deve-


loped and set his students Stephen C. Kleene and J. Barkley Rosser
to work on it. Their work was extremely effective, if not exactly what
one dreams of having one’s graduate students accomplis for one: Kle-
ene and Rosser proved that Church’s system was inconsistent!

Pese a ese tropiezo inicial, pronto se vio que la definibilidad mediante lambda
equivalía a la recursividad y a la computabilidad mediante máquinas de Turing,
proporcionando así un argumento de gran fuerza a favor de la denominada tesis
de Church; es decir, la de tomarlas como una definición posible de computabili-
dad efectiva o algoritmo. Además, usando la mencionada tesis, Church demostró
la indecidibilidad de la lógica de primer orden.
1 8 Se atribuye la inspiración para crear el lenguaje LISP, desarrollado por John Mc Carthy,

al cálculo lambda.
1 9 El pequeño volumen [14] es interesante. Una presentación moderna se encuentra en los

libros de Hindley [42] y en el de Barendregt [7].


11.6. APÉNDICE: LA PIEDRA FILOSOFAL 311

Veremos más adelante cómo el cálculo lambda sirvió también de base a la


Teoría de tipos, produciendo una presentación muy elegante de la misma. Y
no sólo eso, dio origen a la prueba de completud de Henkin, la que seguimos
actualmente en cualquier lógica, no sólo en la teoría de tipos con lambda.

(2) Entscheidungsproblem
Uno de los temas que más interesaba en aquel momento (estamos en los años
treinta) era el de la decidibilidad. Hilbert y Ackerman [41] lo expresan así:

El Entscheidungsproblem se resuelve cuando uno conoce un proce-


dimiento que le permite decidir, mediante un número finito de ope-
raciones, acerca de la validez, respectivamente la satisfacibilidad, de
una expresión lógica.

Este problema estaba en el centro de los intereses de la escuela de Hilbert,


quienes por aquel entonces esperaban una solución positiva del famoso problema
décimo. Pronto, sin embargo, se pasó a esperar una respuesta negativa pues ya se
veía que en caso contrario traería consecuencias poco plausibles. En particular,
tras la demostración de Gödel de su teorema de incompletud, el panorama y las
expectativas eran completamente diferentes20 .
Como comenté anteriormente, mostrar que un conjunto es decidible no re-
quiere más que señalar el algoritmo que lo genera. Y puesto que la noción
intuitiva basta para identificar a un procedimiento como efectivo, puede hacerse
sin una definición matemática de computabilidad. Sin embargo, para demostrar
que no es decidible no basta con tener una noción intuitiva, se necesita una
definición en regla.
O sea, que del deseo de resolver problemas de indecidibilidad se derivaba la
necesidad imperiosa de contar con una definición matemática de computabili-
dad. Y en particular, el resolver el famoso problema décimo de Hilbert pudo
muy bien servir de acicate en Church para ponerse a la tarea de proporcio-
nar tal definición21 . Puesto que las investigaciones de Kleene y las suyas pro-
pias habían mostrado el enorme poder expresivo del lenguaje introducido por
Church, parecía razonable pensar que una tal definición podía ser precisamente
la λ−definibilidad.

Por lo que al Entscheidungsproblem se refiere, Church demostró que para la


lógica de primer orden no es posible encontrar un algoritmo que determine si
una fórmula es o no válida. El artículo en el que Church prueba este teorema
[12] apareció en 1936 y está basado en un artículo suyo del mismo año [11] y en
la gödelización 22 .
2 0 Gandy [30] expone maravillosamente cual era la situación.
2 1 Sabemos que fue tambien ésta la razón que movió a Turing a definir el concepto de
computable mediante una máquina abstracta; sus famosas máquinas.
2 2 También se dice que el teorema de incompletud, caso de no haber sido probado por Gödel,

podria haberse derivado de los resultados de Church; veamos lo que dice Shoenfield [66] en
312 CAPÍTULO 11. TEORÍA DE TIPOS

(3) Computabilidad: recursividad


La Teoría de la recursión clásica abarca el estudio de las funciones definidas
sobre los naturales, pero la teoría de la recursión actual, al ir desarrollando su
potencial propio y sus métodos específicos, ha alcanzado un notable desarrollo
abstracto y aplicaciones insospechadas. Los orígenes de la teoría clásica pue-
den hallarse en Dedekind, cuando en 1888 introduce el estudio de las funciones
definibles sobre el conjunto de los números naturales usando ecuaciones y, recu-
rrentemente, la inducción sobre los naturales que él había formulado y precisado.
De ahí viene, justamente, el que se adoptara el nombre de Teoría de la recursión.
Por lo que respecta a su estadio presente, cuyo radio de acción cubre la
totalidad de las funciones efectivamente computables, los orígenes hay que bus-
carlos en el grupo de Princeton; empezó con Church, pero si hay que atribuirle
un padre, éste es Kleene. El fue quien la impulsó, definió y acotó. Suyos son los
teoremas de la forma normal y el de la recursión23 .

En cuanto a la definición misma, comentamos con anterioridad que circu-


laban varias versiones de este concepto, aunque, como veremos en el siguiente
apartado, había cierta resistencia a aceptarlas como definición. Varios de es-
tos conceptos aparecieron en los años 30 para caracterizar nociones que en un
principio parecían diferentes: la primera era la caracterización de Gödel de las
funciones definidas mediante recursión, la segunda era la noción de función de-
finible con el operador λ, que Church y Kleene introdujeron, y la tercera, era
la de función computable mediante una máquina abstracta, las máquinas de
Turing. Pronto se demostró que los tres nociones definían las mismas funciones.
Si bien estaba claro que todas las funciones definidas mediante cualquiera de
los procesos anteriores era efectivamente computable, este resultado seguía sin
servir para demostrar que un conjunto es indecidible; necesitamos la conversa.
Por su propia naturaleza esta afirmación no puede ser demostrada, y si no se
considera adecuado que sea una definición, hay que proporcionarle otro status.

(4) Tesis de Church


Otro de los grandes méritos suyos es el haber formulado la tesis de que el
concepto matemático preciso de recursión, tal y como lo había definido Turing, se
correspondía exactamente con el concepto intuitivo de computabilidad efectiva.
Shoenfield [66] dice que la tesis de Church surgió de manera casual, yo diría
algo muy parecido, que surgió de forma natural. Habiendo introducido su sis-
tema lambda y estando interesado en el alcance de las funciones λ−definibles, se
una nota a pie de página al respecto:
“Kleene has pointed out that if Gödel had not already proved his Incompleteness Theorem,
Church might well have derived it from his results. The reader interested in such a derivation
of the Incompleteness Theorem can consult my book Mathematical Logic. Of course, this
takes nothing away from Gödel’s supreme achievement in discovering the Incompleteness
Theorem”.
2 3 Davis [22] es una antología de los artículos básicos de este campo. En Kleene [51] se hace

un estudio histórico de los inicios.


11.6. APÉNDICE: LA PIEDRA FILOSOFAL 313

fue dando cuenta gradualmente (como dije, en parte gracias a su alumno Kleene)
de que dicha clase era muy, pero que muy extensa. Estaba claro que las funciones
λ−definibles eran computables y parecía razonable pensar que todas las com-
putables eran λ−definibles. Es decir, que la noción intuitiva de computabilidad
(o efectividad) se correspondía exactamente con la de λ−definibilidad. En un
principio la formuló como definición y luego Kleene la cambió al status de tesis,
con el que la conocemos actualmente. En su primera formulación computabili-
dad efectiva fue identificada con λ−definibilidad, públicamente fue anunciada
como recursividad y más tarde fue generalmente aceptada como computabilidad
mediante máquinas de Turing. Las vicisitudes de la tesis pueden verse bien en
Davis [23].
Aunque por tratarse de una tesis no se puede demostrar matemáticamente,
hay razones poderosas para aceptarla:
(1) La primera es una razón basada en la experiencia acumulada: todos los
algoritmos conocidos son recursivos. Gandy [30] añade al respecto:

Kleene’s dissertation shows, as we might now put it, the power of


the λ−calculus as a high-level programming language. A λ−term
can take other λ−terms (subroutines), instead of numbers, as inputs;
and, if taken in the right order, successive conversions do correspond
to a natural way of implementing the program wich the λ−term
represents. Of course Kleene did not think in these terms, but this
way of putting it helps one to appreciate the intuitions which led
Church and Kleene to believe in the truth of the thesis.

(2) La segunda está basada en la equivalencia entre los tres conceptos in-
troducidos para establecer la noción de algoritmo: resulta tranquilizador que
desde planteamientos tan distintos se lleguen a definir exactamente las mismas
funciones.
(3) La tercera, que fue la que sin duda convenció a Gödel, está relacionada
con el análisis que Turing hizo del concepto de computabilidad; no se interesa
tanto por la naturaleza de las funciones computables como por el propio proceso
de computación. Al comienzo de su trabajo Turing afirma:

The real question at issue is What are the possible processes which
can be carried out in computing a number?

Las funciones se construyen a partir de funciones elementalísimas de las


que no cabe duda de su carácter algorítmico mediante procesos que tampoco
plantean dudas al respecto.
(4) De hecho, el argumento anterior es muy similar al dado por Church, que
expone Gandy, también en [30] así:

The Step-by step Argument. This is Church’s chief argument. He


considers the evaluation of a value f m of a function either by the
application of an algoritm, or by the derivation of f m = n from
axioms about f in some formal system. In each case the evaluation
314 CAPÍTULO 11. TEORÍA DE TIPOS

proceeds in a series of steps. If each step is recursive then f will be


recursive. As evidence for the premise he points out that Gödel had
shown that the steps in a proof in Gödel system P are primitive
recursive.

(5) Finalmente, la razón que convenció a Kleene: la del fracaso del argumento
diagonal24 . Llamamos diagonalización al proceso que mimetiza el que Cantor
introdujo para demostrar que ℘ (ω) no es biyectable con ω y que permite señalar
conjuntos (en el caso mencionado, Y = {x | x ∈/ f (x)}) que no han sido incluídos
en una enumeración, pretendidamente completa de un determinado dominio.

Ahora se podía demostrar que un conjunto no era decidible pues bastaba


con mostrar que no era recursiva la función que cifraba la pertenencia a él. Esto
lo hizo Church en 1936 para un problema del cálculo lambda. En el mismo año,
apoyándose en los resultados de Gödel, Church demostró que si fuera decidible
la lógica de primer orden, también lo sería el sistema del artículo anterior.

(5) El cálculo lambda y la teoría de tipos


En primer lugar, el cálculo λ de Church permite indagar la naturaleza de
las operaciones matemáticas y hemos visto que se consiguen resultados de gran
importancia asociados a la definibilidad mediante λ. En segundo lugar, y de eso
nos ocupamos ahora, el cálculo lambda –que introdujimos en las sección 11.2–
sirve también para hacer una magnífica presentación de la teoría de tipos.
Posiblemente para solucionar el problema de inconsistencia del cálculo lambda
sin tipos, Church formuló la teoría de tipos que Russell y Withehead habían in-
troducido en los Principia en su potente y peculiar lenguaje lambda y para él
definió un cálculo con algunas de las reglas de la conversión lambda. El resul-
tado fue una maravilla, pues a la capacidad formalizadora de las expresiones
con lambda se añadía la naturalidad de la representación con tipos. Aquí viene
a cuento el comentario 361.
Como mencioné con anterioridad, Church [13] propone un lenguaje λ con
tipos simples en el que las denominadas paradojas lógicas o matemáticas, como
la de Russell, o la de Cantor, desaparecen porque la propia sintaxis del lenguaje
no permite que se formen las construcciones autorreflexivas causantes de las
contradicciones. Las llamadas paradojas semánticas, tales como la del menti-
roso, se evitan al adoptar la semántica de Tarski, como resultado de distinguir
claramente lenguaje objeto y metalenguaje. Haciendo esto no precisa la com-
plicación adicional de establecer órdenes, tal y como hace Russell en su teoría
ramificada.
Pasados muchos años Church publica un artículo [15] en el que se compara
la solución de Russell con la de Tarski.

2 4 En el artículo [1] Enrique Alonso y yo tratamos de desentrañar el misterio de porqué el

fallo del proceso de diagonalización sobre la clase de las funciones recursivas convenció a Kleene,
tan fervientemente, de la tesis de Church.
11.6. APÉNDICE: LA PIEDRA FILOSOFAL 315

Otra versión del cálculo lambda es la que publica Church [16] en los cin-
cuenta. En ella se toma la tesis de Frege, conforme a la cual para entender un
lenguaje no nos basta con conocer la estructura del lenguaje simbólico y el uni-
verso de objetos a los que el primero se refiere; hay que interponer una tercera
instancia de entes abstractos; a saber, los sentidos o conceptos. Church en el ar-
tículo citado desarrolla una teoría matemática del sentido, en la acepción arriba
mencionada, y de su relación con los objetos del universo. Para ello utiliza el
lenguaje de tipos del artículo de 1940 y le añade una nueva jerarquía de tipos
para los sentidos.

(6) Completud de Henkin


Cuando se introduce un lenguaje formal, con un cálculo deductivo asociado,
y una semántica, es una cuestión obligada la de indagar acerca de la adecuación
de estos dos procedimientos de selección de fórmulas. Gödel lo había resuelto
positivamente para la lógica de primer orden y negativamente para cualquier
sistema lógico capaz de contener la aritmética.
El cálculo lambda para la teoría de tipos, con la semántica habitual sobre una
jerarquía estándar de tipos era capaz de expresar la aritmética y por consiguiente
no podía ser otra cosa que incompleto.
No obstante, Henkin demostró que si se interpretan las fórmulas de una
manera menos rígida, aceptando otras jerarquías de tipos que no tengan necesa-
riamente que contener a todas las funciones, sino sólo a las definibles, se prueba
fácilmente que toda consecuencia de un conjunto de hipótesis es demostrable
en el cálculo. Las fórmulas válidas en esta nueva semántica, llamada general, se
reducen hasta coincidir con las generadas por las reglas del cálculo.
Como todo el mundo sabe, la prueba de completud de Henkin consiste en
demostrar que todo conjunto consistente tiene un modelo. Para hacerlo se ex-
tiende el conjunto consistente a uno máximamente consistente y ejemplificado y
se construye el modelo que las fórmulas de este conjunto máximamente consis-
tente están describiendo; pues estos conjuntos precisamente se caracterizan por
ser una descripción pormenorizada de un modelo.

Por supuesto, no entraré aquí en el detalle de este teorema de Henkin25 , lo


único que me interesa señalar es en qué modo su descubrimiento está relacionado
con el cálculo lambda.
Según cuenta su creador, estaba tratando de representarse mentalmente las
funciones que pueden ser nombradas mediante expresiones con λ . Claramente,
si tenemos un universo de individuos numerable, el de conjuntos de individuos
será supernumerable, pero puesto que el lenguaje es sólo numerable, los conjun-
tos que pueden ser nombrados es sólo numerable. El clik definitivo se produjo,
según parece, cuando se dio cuenta de que al intentar representarse a los objetos
de esta jerarquía de tipos, para eliminar repeticiones, estaba usando las reglas de
conversión lambda y que por lo tanto implicaba a la sintaxis y al cálculo. Para
2 5 Lo hice extensamente para la lógica de segundo orden en el capítulo precedente.
316 CAPÍTULO 11. TEORÍA DE TIPOS

identificar a los objetos nombrados mediante M α y N α usaba al cálculo como


criterio; en especial que, ` M α = N α . Finalmente, la prueba se cerró al darse
cuenta de que para que el universo de los objetos nombrados mediante propo-
siciones (el de los valores de verdad) se redujera a sólo dos habría de ampliar
los axiomas hasta que constituyeran un conjunto máximamente consistente, de
suerte que las clases de equivalencia inducidas por la relación ` M α = N α se
redujeran a dos.
Extraeré una serie de frases claves del bonito e ilustrativo relato que hace
Henkin [39] de su propio descubrimiento.

I decided to try to see just which objects of the hierarchy of types


did have names in T.
...
As I struggled to see the action of functions more clearly in this way,
I was struck by the realization that I have used λ−conversion, one
of the formal rules of inference in Church’s deductive system for the
language of the theory T. All my efforts had been directed toward
interpretations of the formal language, and now my attention was
suddenly drawn to the fact that these were related to the formal
deductive system for that language.
...
As soon as I observed this, it occurred to me that if we were to
add further cwffs of type 0 to the list of formal axioms, this would
have the effect of reducing the number of elementes in D00 and that
ultimately, by taking a maximal consistent set of axioms, the number
of elements in D00 would be two.
Bibliografía

[1] Alonso, E y Manzano, M. [2002]. “Kleene’s homework”. History and Phi-


losophy of Logic, en prensa.
[2] Andrews, P. B. [1963]. “A reduction of the axioms for the theory of proposi-
tional types”. The Journal of Symbolic Logic. vol. 52. pp. 345-350.
[3] Andrews, P. B. [1965] A Transfinite Type Theory with Type Variables. Ams-
terdam: North Holland.
[4] Andrews, P.B. [1972]. “General Models, Descriptions, and Choice in Type
Theory”. The Journal of Symbolic Logic. vol. 37. num. 2. pp. 385-394.
[5] Andrews, P.B. [1972]. “General Models and Extensionality”. The Journal
of Symbolic Logic. vol. 37. num. 2. pp. 394-397.
[6] Andrews, P. B. [1986]. An Introduction to Mathematical Logic and Type
Theory: To Truth through Proof. Orlando: Academic Press, Inc.
[7] Barendregt, H. P. [1981]. The Lambda Calculus, its Syntax and Semantics.
Amsterdam: North Holland Publishing Company.
[8] Beth, E.W. [1965]. Las Paradojas de la Lógica. Ed. Castellana de Juan Ma-
nuel Lorente. Cuadernos Teorema 4. Valencia, 1978.
[9] Benthem, J& Doets, K. [1983]. “Higher-order logic”. en [31]
[10] Church, A. [1928]. “On the law of excluded middle”. Bulletin of the Ame-
rican Mathematical Society. vol. 34. pp. 75-78.
[11] Church, A. [1936]. “An unsolvable problem of elementary number theory”.
American journal of mathematics. vol. 58
[12] Church, A. [1936]. “A note on the Entscheidungsproblem”. The Journal of
Symbolic Logic. vol. 1, Number 1. Marzo de 1936. pp 40-41
[13] Church, A. [1940]. “A formulation of the simple theory of types”. The Jour-
nal of Symbolic Logic. vol. 5, pp. 56-68.
[14] Church, A. [1941]. The calculi of lambda-conversion. (Annals of Mathema-
tical Studies. num. 6). Princeton: Princeton University Press. USA.

317
318 BIBLIOGRAFÍA

[15] Church, A. [1976]. “Comparison of Russell’s resolution of the semantical


antinomies with that of Tarski”. The Journal of Symbolic Logic. vol. 41.
pp. 747-760.
[16] Church, A. [1951]. “A formulation of the logic of sense and denotation”.
Structure, Methods and Meaning, Essays in Honor of Henry M. Sheffer,
New York. pp. 3-24. (Revisado en NOUS: vol. 7 (1973), pp. 24-33; vol. 8
(1974), pp. 135-156; and vol. 27 (1993), pp. 141-157.)
[17] Church, A. [1995]. “A theory of the meaning of names”. The heritage of
Kazimierz Ajdukiewicz. Rodopi
[18] Church, A. y Kleene, S. C. [1936]. “Formal definitions in the theory of
ordinal numbers”. Fundamenta Mathematica. vol. 28. pp. 11-21.
[19] Church, A. y Quine, W. V. [1952]. “Some theorems on definability and
decidability”. The Journal of Symbolic Logic. vol. 17. núm. 3..
[20] Copi, I. [1971]. The Theory of Logical Types. London: Routledge & Kega
Paul.
[21] van Dalen, D. [2001]. “Intuitionistic Logic”. en [31]
[22] Davis, M. [1965]. The Undecidable. Rave Press. Nueva York.
[23] Davis, M. [1982]. “Why Gödel Didn’t Have Church’s Thesis”. Information
and Control, 54, pp. 3-24.
[24] Davis, M. [1988]. Mathematical Logic and the origins of modern computers.
(en Herken [40]).
[25] Davis, M. [1995]. “American Logic in the 1920s”. Bulletin of Symbolic
Logic, vol. 1, Number 3, Sept. 1995.
[26] Feferman, S. [1988]. “Turing in the Land of O(z)” (en Herken [40]).
[27] Frege, G. [1879]. “Begrgriffsschrift, eine der arithmetischen nachgebildete
Formlesprache des reinen Denkens”. Traducción al inglés en van Heijenoort,
J. ed. [1967]. pp.5-82.
[28] Gandy, R. O. [1956]. “On the axiom of extensionality”. The Journal of
Symbolic Logic. vol. 21. pp. 36-48.
[29] Gandy, R. O. [1977]. “The simple theory of types”. en [32]
[30] Gandy, R. [1988] . “The Confluence of Ideas in 1936”. (en Herken [40])
[31] Gabbay, D y Guenthner, F. eds. [2001]. Handbook of Philosophical Logic.
vol.I-IV. Kluwer Academic Press. Amsterdam. Holanda.
[32] Gandy, R.O. and Hyland eds. [1977]. Logic Colloquium 76. Amsterdam:
North Holland.
BIBLIOGRAFÍA 319

[33] Gandy, R. (1994): “The Confluence of Ideas in 1936”, en The Universal


Turing Machine. A Half-Century Survey. Springer. Viena, Nueva York, 1994.

[34] van Heijenoort, J. [1967]. From Frege to Gödel: a source book in mathema-
tical logic, 1879-1931. Cambridge, Mass: Harvard University Press.

[35] Henkin, L. [1949]. “The completeness of the first order functional calculus”.
The Journal of Symbolic Logic. vol. 14, pp. 159-166.

[36] Henkin, L. [1950]. “Completeness in the theory of types”.The Journal of


Symbolic Logic. vol. 15. pp. 81-91.

[37] Henkin, L. [1963]. “A theory of propositional types”. Fundamenta mat-


hematicae. vol. 52. pp. 323-344.

[38] Henkin, L. [1975]. “Identity as a logical primitive”. Philosophia. vol. 5.


pp. 31-45.

[39] Henkin, L. [1996]. “The discovery of my completeness proofs”, Dedicated to


my teacher, Alonzo Church, in his 91st year, Bulletin of Symbolic Logic,
vol. 2, Number 2, June 1996. (presentado el 24 de Agosto de 1993 en el XIX
International Congress of History of Science, Zaragoza, Spain).

[40] Herken, R. ed. [1988]. The Universal Turing Machine: A Half-Century Sur-
vey. Oxford: Oxford University Press.

[41] Hilbert, D. and Ackermann, W. [1928]. Grundzege der theoretischen Logik.


Traducido en: Hilbert & Ackermann [1938]. Principles of Mathematical Logic.
New York: Chelsea.

[42] Hindley, R. y Seldin, J. [1986]. Introduction to combinators and


λ−.calculus. Cambridge: Cambridge University Press.

[43] Hindley, R. [1997]. Basic Simple Type Theory. Cambridge Tracts in Theo-
retical Computer Science. Cambridge: Cambridge University Press.

[44] Hodges, A. [1983]. Alan Turing: The Enigma. Publicado por Burnett Books
Ltd, la edición que yo uso es de 1992, de Vintage. Londres.–

[45] Horn, B. K P. y Winston, P. H. [1981]. LISP. Reading: Addison-Wesley


Publishing Company.

[46] Kleene, S. [1935]. “A theory of positive integers in formal logic”. American


journal of mathematics. vol. 57. pp. 153-173, 210-244.

[47] Kleene, S. [1936a]. “General recursive functions on natural numbers”. Mat-


hematische Annalen, vol. 112 (1936), pp. 727-742.(en [22])

[48] Kleene, S. [1936b]. “ λ−definability and recursiveness”. Duke Mathema-


tical Journal. vol. 2. pp. 340-353.
320 BIBLIOGRAFÍA

[49] Kleene, S. [1936c]. “A note on recursive functions”. Bulletin of the Ame-


rican Mathematical Society. vol. 42. pp. 544-546.

[50] Kleene, S. [1967]. Mathematical Logic. Wiley.

[51] Kleene, S. [1981]. “Origins of recursive function theory”. Annals of His-


tory of Computing. vol. 3. pp. 52-65.

[52] Manzano, M. [1980]. Teoría de Tipos. Barcelona: Ediciones de la Universi-


dad de Barcelona.

[53] Manzano, M. [1982]. “Los sistemas generales”. en Estudios de Lógica y


Filosofía de la Ciencia. Serie: Manuales Universitarios. Salamanca: Edicio-
nes Universidad de Salamanca.

[54] Manzano, M. [1996]. Extensions of First Order Logic. Cambridge Tracts in


Theoretical Computer Science. Cambridge: Cambridge University Press.

[55] Manzano, M. [1997]. “Alonzo Church: Hil Life, His Work and Some of His
Miracles”. History and Philosophy of Logic, vol 18, pp 211-232.

[56] Manzano, M. [1999]. Lambda “Lambda Abstractor was Philosopher´s Stone


for Alonzo Church”. Proccedings of the 11th International Congress of
Logic, Methodology and Philosophy of Sciene. Cracoww, Poland, página 435.

[57] Manzano, M. 2000. “Genéricos, Similares y Equivalentes de Identidad”.


en Logic, Language and Information. Angel Nepomuceno et alts eds.
Kronos. ISBN: 84-85101-57-X

[58] “La Identidad y la Igualdad en la Lógica de Orden Superior”. en El cono-


cimeinto y el desarrollo en el siglo XXI. León Olivé et alts eds.

[59] Priest, G. [1979]. “The Logic of Paradox”, Journal of Philosophical Logic,


vol.8, 1979, pp. 219-241.

[60] Quine, W. [1937]. “Logic based on inclusion and abstraction”. The Journal
of Symbolic Logic. vol. 2 pp. 145-152.

[61] - [1976]. The ways of paradoxes and other essays. Cambridge. Massachus-
sets: Harvard University Press.

[62] Ramsey, F. [1926]. The foundations of mathematics. Proc. London Math


Soc. Ser 2. 338-384.

[63] Russell, B. [1908]. “Mathematical Logic as based in the theory of types”. in


van Heijenoort, J. ed. [1967]

[64] Russell, B. y Whitehead, A. [1910-13]. Principia Mathematica. vol. 1-3.


Cambridge: Cambridge University Press.

[65] Sainsbury, R. [1988]. Paradoxes. Cambridge: Cambridge University Press.


BIBLIOGRAFÍA 321

[66] Shoenfield, J. R. [1995]. “The mathematical work of S. C. Kleene”. Bulle-


tin of Symbolic Logic. vol. 1. Núm 1. pp 9- 43.
[67] Tarski, A. [1923] “Sur le terme primitif de la logistique”. Fundamenta
Mathematicae. Vol. IV. pp. 196.
[68] Tarski, A. [1956]. “The concept of truth in formalized languages”. en Tarski
[1956].
[69] Tarski, A. [1956]. Logic, semantics, metamathematics. Artículos desde 1923
hasta 1938. Oxford: Clarendon Press.
[70] Turing, A. [1936]. “On computable numbers with an application to the ens-
heidungsproblem”. Proceedings of the London Mathematical Society,
vol. 42, 1936-37. pp. 230-265. también vol. 43, 1937, pp. 544-546.
[71] Turing, A. [1937]. “Computability and λ−definability”. The Journal of
Symbolic Logic, vol. 2, pp. 153-163.

También podría gustarte