Hace ahora mismo 107 años y unos días (28 de abril) nació Kurt Gödel, la persona que desbarató cualquier atisbo de consistencia en las matemáticas y que puso fin a la noción de que las mismas no tenían límite, que eran autocontenidas. No obstante poca gente sabe que también unió lo que es verdadero y lo que se puede demostrar, que será la piedra angular de este hilo.
Todo será a nivel introductorio, aunque puede que haya alguna formulita. Si no tenéis TeX the world os puede ser útil. Si no os funciona ya lo pasaré a mathbin.
Paso 1: Qué es una interpretación de una fórmula
La mayoría de lenguajes formales (lógica de primer orden en nuestro caso) solo describen sintácticamente fórmulas que serán válidas o no. Es decir, tenemos una serie de normas que nos dicen si una proposición es correcta sintácticamente, por ejemplo los cuantificadores van al principio, los paréntesis engloban los términos de las funciones, etc.
Por ejemplo tenemos la siguiente fórmula correcta:
'[; \forall x_1 \forall x_2 \exists x_3 R(f(x_1,x_2),x_3) ;]'
Para todos los x1, para todos los x2, existe un x3 tal que la operación entre x1 y x2 está relacionada con x3.
Esto es sintácticamente correcto pero no significa nada. Tenemos que darle una interpretación.
La interpretación se da a las variables, a las relaciones y a las funciones, pero no a los símbolos lógicos: para todo significa lo que todos entendemos, existe igual, "o", "y", "no" e "implica" más de lo mismo, es decir los símbolos lógicos son los que vienen dados por sus tablas de verdad, y los cuantificadores los que entendemos desde siempre (ojo, hay lógicas que lo cambian pero ya no son la de primer orden: lógica difusa, lógica modal...).
Por ejemplo ahora nuestra interpretación será: Las variables son números enteros. la función f(x1,x2) es x1+x2, y la relación R(x,y) será "y divide a x".
En este caso nuestra fórmula se traduce a: Para todo x1, x2 existe un x3 tal que x3 divide a x1+x2.
Y esto es cierto en esta interpretación!!
Cuando tenemos una fórmula bien escrita que es cierta en alguna interpretación decimos que la fórmula es satisfactible: Se satisface bajo cierta interpretación. En este caso la interpretación, o el modelo, es A, y la fórmula la llamaremos φ, diremos que A satisface φ, o escrito en lenguaje matemático:
A ⊧ φ
Ahora tenemos esta fórmula:
'[; \exists x \neg x = x ;]'
Existe x tal que x no es igual a x.
Esta fórmula, le demos el significado que le demos a las variables (manzanas, números, espacios topológicos...) es siempre falsa: No es cierto que exista un elemento que no sea igual a sí mismo. Esta fórmula es insatisfactible.
En cambio su negación: Existe x tal que x es igual a x, es cierta lo interpretemos como lo interpretemos: Es una tautología, es una fórmula válida. Si a la fórmula la llamamos φ escribiremos:
⊧ φ
Volviendo a la primera fórmula, ahora interpretemos de otra manera: Los elementos son enteros de nuevo, la función es la suma, pero la relación significa que la multiplicación da 1. Ahora nuestra fórmula es: Para todos enteros x1, x2 existe un entero x3 tal que (x1+x2)x3 = 1. Esto no es cierto: si x1 = 2, x2 = 2 no existe ninguna x3 tal que x34 = 1. Esta fórmula por tanto se satisface en ciertas interpretaciones y no se satisface en otras: No es válida.
Si tenemos una fórmula con variables libres, por ejemplo φ[x]=R(x), también podemos interpretar y ver si es cierto: por ejemplo aquí las variables son los enteros y R es "es par", entonces la fórmula φ[2] (es decir, sustituyendo x por 2) se satisface bajo este modelo. Escribimos A ⊧ φ[2]
Otra cosa que se escribe comúnmente es algo como:
G ⊧ φ donde G es también una colección de fórmulas. Esto es una manera rápida de escribir
⊧ G -> φ , es decir que la fórmula "los axiomas de G implican φ" es una tautología, es decir que en cualquier interpretación en la que G se satisfaga φ también se satisface.
Paso 2: Demostración y derivación de una fórmula
Fijaos que hasta ahora todo lo que hemos hecho es, dada una afirmación, ver si se cumple o no al darle significado a sus partes. Para ver si se cumple pues usaremos nuestras herramientas de la aritmética, geometría, lo que corresponda a la interpretación. Pero no hemos hecho nada con la sintaxis de la fórmula. Todo ha sido en base a la semántica.
No obstante, nosotros podemos tener una serie de reglas de deducción sintáctica, algo que podríamos enchufar a un ordenador y que haga teoremas. Estas reglas se llaman LK, introducidas por Gentzen en 1936. Por ejemplo una regla dice:
_____________(Ax)
A , φ => B, φ
Básicamente esto significa que siempre que tengamos la misma fórmula a un lado y al otro de la implicación esto es totalmente deducible de la nada.
Otra dice:
A => B, φ[y/x]
______________(∃R)
A => B, ∃xφ
(es decir que del hecho que A implique B y φ para cierto y, se deduce que A implica B y la existencia de un cierto x que cumpla φ).
Y otra dice:
A, t=t => B
_______________(Ref)
A => B
(Es decir que t=t no añade información).
Vamos a demostrar que ∃x x = x es deducible:
____________________(Ax)
x = x [y/x] => x = x [y/x]
____________________(Ref) (es lo mismo que decir y = y => y=y)
=> x=x [y/x]
___________(∃R)
=> ∃x x=x
Como veis esto lo podría hacer un ordenador mismamente.
Cuando una fórmula φ es deducible se escribe:
⊢ φ
Si escribimos que de unos axiomas A se deduce un conjunto de fórmulas B, escribimos:
A ⊢ B
Paso 3: La relación
Fijaos que a priori tenemos por un lado el hecho de que una afirmación sea válida o no dados unos axiomas, y por otro el hecho de que sea deducible mediante un cálculo lógico. Intuitivamente puede parecer lo mismo... Y lo es!
Teorema de completitud (de Gödel)
⊧ = ⊢
Recordad que siempre hablamos de lógica de primer orden, y cálculo LK. Es decir, todo lo que es válido es deducible por una máquina. Es decir, si una fórmula es válida, entonces es perfectamente deducible.
Hay varias demostraciones, yo estudié el método de Schütte, que estudia los árboles que se generan de posibles deducciones, y demuestra que toda fórmula válida tiene un árbol finito de deducción.
La más simple y famosa es la de Henkin:
Decimos que un conjunto de fórmulas F es consistente si y solo si no existe ninguna fórmula φ tal que F ⊢ φ y F ⊢ ¬φ.
El teorema escrito en la manera de Henkin dice que un conjunto de fórmulas F es satisfactible (es decir, hay una interpretación en la cual F es cierta) si y solo si F es consistente.
Bueno, pues aquí tenéis el primer gran descubrimiento de la lógica , básicamente dice lo siguiente:
Con un ordenador podemos generar teoremas y tener la certeza de que serán cosas que pasarán en la interpretación.
Espero que os haya parecido un poco interesante, la próxima edición será sobre los de incompletitud. Creo sinceramente que estos teoremas cambiaron radicalmente la manera de pensar en matemáticas igual que la incertidumbre cambió radicalmente la manera de entender el mundo, y me sorprende que aún ahora, 100 años después, la mentalidad de la sociedad no haya cambiado tanto ni tenga estos resultados como algo "fundamental".