Autor Tema: Número 2. (2013) - 3 Lógica de primer orden

0 Usuarios y 1 Visitante están viendo este tema.

04 Marzo, 2013, 11:21
Leído 20574 veces

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Como es habitual en este tipo de hilos, para facilitar el seguimiento del texto los comentarios que puedan surgir deben dirigirse a este hilo auxiliar de comentarios.



¿Qué es la lógica? Para formarnos una primera idea de cómo hay que entender la palabra "lógica" en el contexto de este artículo, creo que será ilustrativo considerar el silogismo siguiente:

Toda palabra properispómena es barítona,
\[ \delta\tilde\omega\rho\omicron\nu \] es una palabra properispómena,
luego \[ \delta\tilde\omega\rho\omicron\nu \] es una palabra barítona.


Tenemos ahí tres afirmaciones, y cualquiera que sepa algo de gramática griega podrá asegurarnos que las tres son verdaderas. Ahora bien, lo interesante desde el punto de vista lógico es que, sin saber absolutamente nada de gramática griega, podemos afirmar sin riesgo a equivocarnos que si las dos primeras afirmaciones son verdaderas, entonces la tercera también lo es.

Más detalladamente: Si toda palabra properispómena (signifique esto lo que signifique) es barítona (signifique esto lo que signifique) y \[ \delta\tilde\omega\rho\omicron\nu \] (sea esto lo que sea) es una palabra properispómena (sea esto lo que sea), podemos afirmar sin riesgo a equivocarnos que \[ \delta\tilde\omega\rho\omicron\nu \] (aunque no sepamos lo que es eso) es una palabra barítona (aunque no sepamos lo que es eso).

¡Pues esto es la lógica formal! ¡Esto es razonar formalmente! Consiste en concluir que determinadas afirmaciones son necesariamente ciertas bajo el supuesto de que otras lo sean, y llegar a tal conclusión sin atender en ningún momento al posible significado de las afirmaciones, sino meramente a su "forma". El razonamiento anterior tiene la forma siguiente:

Todo P es Q,
X es P,
luego X es Q.


y sólo por tener esa forma, podemos asegurar que es lógicamente válido, es decir, que si las dos primeras afirmaciones son verdaderas, entonces la tercera también tiene que serlo, y da igual que P signifique "palabra properispómena" o "bailarina de ballet".

La lógica formal determina qué razonamientos son válidos en este sentido (de que llevan necesariamente de afirmaciones verdaderas a afirmaciones verdaderas) atendiendo únicamente a la "forma", a la sintaxis, de las afirmaciones involucradas, y nunca a su posible significado. Esto no significa que no vayamos a estudiar y tener en cuenta los posibles significados de las afirmaciones que consideremos, sino únicamente que nuestro objetivo es tener en cuenta tales significados posibles sólo para acabar confirmando que hemos logrado nuestro propósito, es decir, que tenemos ciertamente la garantía de que nuestras conclusiones serán válidas independientemente cuáles sean tales significados posibles.

Para lograr este objetivo necesitamos sustituir el castellano por un lenguaje alternativo lo suficientemente simple como para ser estudiado teóricamente, pero a la vez lo suficientemente potente como para que pueda expresar cualquier razonamiento en el que podamos estar interesados.

El problema es que el castellano (como cualquier otra lengua natural) presenta ambigüedades que sólo pueden ser resueltas por el contexto, lo cual a menudo significa tener en cuenta el significado de las afirmaciones que estamos haciendo. Por ejemplo, recordemos lo que un desdichado amante le decía a su amada:

¿Cómo quieres que venga a verte, si el perro de tu padre sale a morderme?

Ésta es una frase que respeta totalmente la sintaxis castellana y, sin embargo, es inevitablemente ambigua. Podemos leerla una y mil veces y nada nos permitirá concluir con seguridad si quien afirmó esto estaba diciendo que su suegro tenía un perro o más bien que su suegro era un perro. Más concretamente, la expresión castellana "el perro de tu padre", puede significar "el perro que tiene tu padre" y también "el perro que es tu padre" (y, paralelamente, "morderme" puede tener un sentido literal o figurado).

Para estar en condiciones de estudiar la lógica con precisión necesitamos un lenguaje en el que estas cosas no puedan suceder, en el que cada afirmación tenga, no un significado, pero sí una forma precisa e inequívoca. El problema de la frase anterior no es que no sepamos el significado exacto de "te" en "verte" (no importa si la amada es fulana o mengana), ni que no sepamos quién es su padre (quién sea en concreto sería irrelevante para entender la lógica de la frase). Lo que hace que la frase no tenga una "lógica", una "forma" definida es que no sabemos si "perro" y "padre" se refieren al mismo objeto o a objetos distintos.

Sin embargo, sería injusto decir, por culpa de ejemplos como éste, que el castellano es un lenguaje inapropiado para razonar con precisión. Tal prejuicio lleva necesariamente a absurdos epistemológicos. La realidad es que en castellano se puede razonar con absoluta precisión (y cualquier ambigüedad que surja siempre se puede resolver en cuanto sea detectada) siempre y cuando hablemos de objetos cuyo significado sea totalmente preciso, hasta el punto de que no tengamos dificultades en determinar objetivamente el significado exacto de cada afirmación que consideremos.

La necesidad de la lógica formal, es decir, de la posibilidad de razonar mediante un lenguaje libre de ambigüedades sin tener en cuenta el significado posible de las palabras que empleemos, surge desde el momento en que pretendemos razonar con objetos a los que no somos capaces de dar un significado preciso. El caso más representativo es el concepto de "conjunto". Aunque todos tengamos una idea más o menos vaga de qué entendemos por "conjunto", lo cierto es que no es posible precisar su significado hasta el punto de poder hablar con seguridad sobre conjuntos controlando lo que decimos en función del significado de nuestras afirmaciones. La única forma conocida de razonar con rigor sobre conjuntos arbitrarios, como hacen los matemáticos, es manejar la palabra "conjunto" como alguien que no sepa griego puede manejar la palabra "properispómeno" para convencerse de que el silogismo anterior era correcto. Se trata de decir: si los "conjuntos" (sean lo que sean) cumplen tales axiomas, entonces los conjuntos "sean lo que sean" cumplen tales teoremas.

Así pues, nuestro propósito es, por una parte, diseñar lenguajes (no uno solo, sino que podemos considerar lenguajes distintos adaptados a cada contexto que queramos describir) con una gramática precisa y libre de ambigüedades (que impida que algunas expresiones como "el perro de tu padre" se puedan entender de formas lógicamente distintas), por otra parte estudiar la relación entre dichos lenguajes y los significados posibles de sus palabras (o, más precisamente, de sus signos) y finalmente mostrar que es posible manipular tales lenguajes sin atender para nada a los significados posibles de sus signos, pero con la garantía de que si, de acuerdo con un significado establecido, partimos de afirmaciones verdaderas, las conclusiones formales que obtendremos serán también verdaderas.

Este proyecto nos lleva inevitablemente a la necesidad de distinguir con sumo cuidado los signos y sus posibles significados. Nuevamente el castellano deja estas distinciones a cargo del contexto de una forma demasiado vaga para nuestras necesidades. Consideremos por ejemplo las dos frases siguientes:

España está en Europa                España tiene tres sílabas.

Cualquiera que las lea las entiende correctamente y reconoce que ambas son verdaderas, pero para ello ha tenido que interpretar la palabra "España" de dos formas completamente distintas, sin que nada en las frases advierta explícitamente de la necesidad de hacer tal distinción. En la primera frase "España" se interpreta como un país, mientras que en la segunda frase "España" se interpreta como una palabra.

El país España es un objeto completamente distinto de la palabra España. Para distinguir ambos conceptos (cosa que el castellano no obliga a hacer) adoptaremos el convenio de poner una palabra entre comillas cuando no queramos referirnos a su significado, sino a la palabra en sí. Con este criterio deberíamos escribir:

España está en Europa                "España" tiene tres sílabas.

Así, por ejemplo, entre los signos de los lenguajes que vamos a definir, llamaremos constantes a los que pretenden nombrar objetos (los equivalentes de los sustantivos en castellano), de modo que si diseñamos un lenguaje formal en el que hay una constante \[ N \] que pretendemos usar para nombrar a Napoleón, entonces \[ N \] será el equivalente en nuestro lenguaje a la palabra "Napoleón" en castellano, mientras que usaremos una barra \[ \overline N \] para referirnos al significado de la constante \[ N \] (en este caso, Napoleón, sin comillas, o, más precisamente, el emperador Napoleón I de Francia).

La diferencia entre \[ N \] y \[ \overline N \] es exactamente la misma que hay entre "Napoleón" y Napoleón. Y confundir \[ N \] con \[ \overline N \] resultaría tan catastrófico como creer que una palabra ha sido emperador de Francia o que un emperador de Francia estuvo formado por ocho letras, en lugar de por carne, huesos, fluidos corporales, etc.)

Más concretamente, \[ N \] es una palabra (un signo) de nuestro lenguaje formal, de mismo modo en que "Napoleón" es una palabra castellana, mientras que \[ \overline N \] no es una palabra de nuestro lenguaje formal, sino un hombre que lleva mucho tiempo muerto.

Más vueltas sobre lo mismo
Un lector malicioso puede objetar que, al fin y al cabo, "\[ \overline N \]" no es un emperador, sino una letra con un palito encima. En efecto, si alguien pregunta ¿qué es "\[ \overline N \]"? la respuesta es que "\[ \overline N \]" es un signo que empleamos para nombrar a Napoleón, pero un signo que no pertenece al lenguaje formal del que estamos hablando, sino que es una extensión del castellano.

Hay muchas formas de referirnos a Napoleón en castellano. Algunas de ellas son: Napoleón, el primer emperador de Francia, el significado de la palabra "Napoleón", o también el significado de la constante \[ N \] de nuestro lenguaje formal. Todas estas expresiones castellanas nombran a una misma persona, a saber, a Napoleón Bonaparte. Pues bien, "\[ \overline N \]" es simplemente una abreviatura por "el significado de la constante \[ N \]", es una expresión castellana como "el primer emperador de Francia". Es cierto que en los diccionarios de castellano no viene reflejado que una barrita encima de una letra debe leerse como "el significado de", pero se trata de un convenio que estamos introduciendo aquí y ahora. No es más que una abreviatura taquigráfica. Podemos decir que "vengo xq tengo q trabajar" es una frase castellana escrita taquigráficamente y, en ese mismo sentido, "\[ \overline N \] es un emperador francés" es una frase castellana escrita taquigráficamente. Si desarrollamos la primera tenemos "vengo porque tengo que trabajar", y si desarrollamos la segunda tenemos "El significado de \[ N \] es un emperador francés".
[cerrar]

Como decimos, la distinción cuidadosa entre \[ N \] y \[ \overline N \] va a marcar la diferencia entre entender qué estamos haciendo o no entender nada de nada. En particular hay que tener presente que definir un lenguaje formal que contenga una constante \[ N \] convierte a \[ N \] en un signo fijo e inamovible de dicho lenguaje, pero esto no nos obliga a fijarle de forma inamovible un significado \[ \overline N \]. Por el contrario, podemos trabajar con un lenguaje formal sin atribuir ningún significado concreto a sus signos, o bien podemos establecer en un momento dado que la constante \[ N \] significa Napoleón, pero también podemos más tarde considerar el mismo lenguaje formal pero interpretando \[ N \] de otra forma, digamos como Nabucodonosor, o como Beethoven. En resumen, nos va a interesar fijar lenguajes con unos signos específicos, como pueda ser una constante \[ N \], y luego comparar distintas interpretaciones de dichos signos, de modo que  \[ \overline N \] pueda ser Napoleón en un caso o Nabucodonosor en otro. De hecho, lo que nos interesará es poder decir cosas del estilo de "esto va a ser cierto sea lo que sea \[ \overline N \] ".

La idea subyacente en todo lo que vamos a exponer es la siguiente:

1) Tenemos diversas realidades de las que podemos hablar en buen castellano

2) Podemos diseñar lenguajes formales para hablar de dichas realidades de forma "controlada".

3) Los lenguajes que vamos a diseñar pueden ser manipulados con total precisión sin hacer referencia a ninguna realidad concreta (incluso si no somos capaces de precisar una realidad concreta que se ajuste a lo que afirmamos), pero con la garantía de que si partimos de afirmaciones verdaderas en una realidad cualquiera, las conclusiones a las que llegaremos serán verdaderas en esa misma realidad.

En el mensaje siguiente empezaremos a precisar debidamente estas ideas.

04 Marzo, 2013, 17:13
Respuesta #1

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
En este mensaje presentaremos sin ánimo de ser rigurosos los conceptos básicos que vamos a manejar. Presentaremos "mezclados" los conceptos sintácticos (relativos a los signos) y los semánticos (relativos a los significados de los signos) porque resulta más natural. Luego, en el mensaje siguiente los separaremos cuidadosamente y precisaremos todo lo que aquí haya podido quedar "en el aire".



El universo de una interpretación Como hemos dicho en el mensaje anterior, cada lenguaje formal se diseña para describir una realidad. También hemos señalado que al final no será obligatorio explicar cuál es esa realidad de la que queremos hablar, sino que los lenguajes formales terminarán siendo "autónomos" y podremos razonar con ellos sin necesidad de especificar qué son los objetos de los que presuntamente estamos hablando. Ahora bien, si, pese a no estar obligados a ello, queremos especificar cuál es la "realidad" de la que estamos hablando con un lenguaje dado, lo primero que tendremos que especificar es la colección de objetos que integran dicha realidad. Dicha colección de objetos será lo que llamaremos el universo de la interpretación.

Por ejemplo, vamos a construir un lenguaje formal y le vamos a asignar a la vez una interpretación, y establecemos aquí que el universo de dicha interpretación será la colección \[ U \] de todos los seres humanos que han vivido o viven en la Tierra desde el año 1 hasta el año 2012.

Colecciones
Usamos aquí la palabra "colección" en el mismo sentido en que normalmente se emplea la palabra "conjunto", pero preferimos evitar el término "conjunto" para no confundirlo con el término técnico de la teoría de conjuntos. Observemos que "la colección de todos los seres humanos que han vivido o viven en la Tierra desde el año 1 hasta el año 2012" es una colección de objetos bien definida, en el sentido de que no hay ninguna duda de qué objetos pertenecen a ella. Si alguien encuentra cualquier ambigüedad, puede concretarla a su gusto sin que altere nada de lo que vamos a decir. Por ejemplo, podemos concretar que si alguien ha nacido en 2012 y ha muerto en 2013 está contenido en \[ U \] por definición, al igual que alguien que haya nacido antes del año 1 pero haya muerto en dicho año o después.

En general, hemos determinado una colección siempre que hayamos dado un criterio claro e inequívoco de qué objetos pertenecen a la colección y cuáles no. Napoleón está en \[ U \], el caballo de Napoleón no está en \[ U \], el faraón Keops no está en \[ U \], etc. En general, está perfectamente definido qué es estar en \[ U \] (sin perjuicio de que pueda haber un individuo del que no sepamos si está o no en \[ U \] porque no sabemos si murió antes o después del año 1, pero eso sólo significa que no sabemos si tal persona está o no en \[ U \], no que no esté bien definida su pertenencia (o no) a \[ U \].
[cerrar]



Constantes Definir un lenguaje formal supone especificar unos signos. No vamos a poner restricciones sobre la forma que puedan adoptar los signos de un lenguaje formal. Cada signo podrá ser una letra (latina, griega, hebrea, etc.), una combinación de letras o cualquier "garabatito" con el único requisito de que podamos diferenciar clara e inequívocamente un signo de otro.

Pero, al establecer que un signo forma parte de un determinado lenguaje formal, estamos obligados a especificar su "función sintáctica" (el equivalente en castellano a ser un sustantivo, un adjetivo, un verbo, un pronombre, una conjunción, etc). Por ejemplo, en el mensaje precedente ya hemos hablado de las constantes. Son los nombres propios de los lenguajes formales. Una constante es un signo al que, en caso de que decidamos especificarle un significado, éste será un objeto concreto (perteneciente a un universo prefijado).

Por ejemplo, podemos empezar a construir un lenguaje formal estableciendo que va a tener tres constantes, \[ N \], \[ J \] y \[ n \]. Y además podemos atribuirles un significado. Por ejemplo, considerando el universo \[ U \] especificado anteriormente, podemos establecer que \[ \overline N \] (el significado de la constante \[ N \]) sea el emperador Napoleón I, mientras que \[ \overline J \] (el significado de \[ J \]) sea la emperatriz Josefina Beauharnais y que \[ \overline n \] sea Napoleón II, el hijo de ambos.

Aquí es crucial recordar que \[ N \] es un signo de un lenguaje formal y \[ \overline N \] es un emperador de Francia.



Relatores Fijado un universo, entre sus objetos podemos seleccionar las relaciones que nos interesen. En general, una relación \[ n \]-ádica \[ R \] en un universo \[ U \] es cualquier criterio que, a cada \[ n \] objetos \[ x_1,\ldots, x_n \] de \[ U \], repetidos o no y en un cierto orden, les asigna un "verdadero" o "falso". Cuando la relación \[ R \] es verdadera sobre \[ x_1,\ldots, x_n \] escribimos (a modo de taquigrafía) \[ R(x_1,\ldots, x_n) \].

Por ejemplo, en nuestro universo \[ U \] tenemos la relación monádica "ser un hombre", que es verdadera sobre los objetos de \[ U \] que son hombres y es falsa sobre los que son mujeres (donde podemos definir "hombre" como "tener al menos un cromosoma Y").

Un ejemplo de relación diádica en \[ U \] sería por ejemplo "estar casados".

Los relatores son los signos de un lenguaje formal que, en caso de ser interpretados, su significado es una relación. Un relator monádico es un relator que debe ser interpretado por una relación monádica, un relator diádico es un relator que debe ser interpretado por una relación diádica, etc.

Por ejemplo, en nuestro lenguaje formal podemos incluir dos relatores monádicos \[ H \] y \[ M \] y asignarles como significado las relaciones \[ \overline H \] y \[ \overline M \] en \[ U \] dadas por "ser un hombre" y "ser una mujer", respectivamente.

En estos términos las cadenas de signos \[ HN, MJ, Hn \] serían verdaderas, pues significan que Napoleón I es un hombre, que Josefina es una mujer y que Napoleón II es un hombre. En cambio \[ HJ \] sería una afirmación falsa.

También podemos introducir un relator diádico \[ C \] y asignarle como significado la relación diádica \[ \overline C \] tal que \[ \overline C(x,y) \] se cumple cuando \[ x \] e \[ y \] están casados (para cualesquiera objetos \[ x \], \[ y \] del universo \[ U \].

En estos términos, \[ CNJ \] es una afirmación verdadera en nuestro lenguaje formal, de acuerdo con la interpretación fijada. En cambio, \[ CNn \] es falsa.

Podemos considerar también un relator triádico \[ \rm Pd \] y asignarle como significado la relación \[ \overline{\rm Pd} \] en \[ U \] tal que \[ \overline {\rm Pd}(x,y,z) \] se cumple si \[ x \] e \[ y \] son los padres de \[ z \].

Así, \[ {\rm Pd}NJn \] es una afirmación verdadera, y \[ {\rm Pd}NnJ \] es falsa.

Cuando definimos un lenguaje formal, debemos especificar sus signos, así como a qué categoría pertenece cada signo (si es una constante, o un relator, o pertenece a cualquiera de las otras categorías que aún tenemos que introducir) y, en caso de que sea un relator, debemos especificar su rango, es decir, si se trata de un relator monádico, o diádico, o triádico, etc. No estamos obligados a asignarle un significado a un relator, pero si lo hacemos, la relación asignada a un relator monádico debe ser monádica (es decir, debe requerir un complemento), la asignada a un relator diádico debe ser diádica (debe requerir dos complementos), etc.

Observaciones
En principio, podríamos admitir también relatores \[ 0 \]-ádicos, es decir, relatores cuyas relaciones asociadas no necesitaran ningún complemento, sino que fueran directamente verdaderas o falsas. Por ejemplo, un relator \[ 0 \]-ádico podría ser un signo \[ p \] cuyo significado \[ \overline p \] fuera, por ejemplo, "Llueve".

También podríamos considerar relatores sin rango definido, como un relator \[ H \] cuyo significado fuera "ser hermanos", de modo que \[ Hxy \] significara "x e y son hermanos", mientras que \[ Hxyz \] significara "x, y, z, son hermanos", etc.

Sin embargo, no vamos a admitir ni lo uno ni lo otro. La razón es que podemos prohibir ambas posibilidades sin reducir por ello las capacidades expresivas de nuestros lenguajes, y no admitir estos casos simplifica considerablemente la sintaxis.

Por ejemplo, si definimos \[ H \] como un relator diádico, para expresar que "x, y, z son hermanos" podemos escribir \[ Hxy\land Hyz\land Hxz \], donde hemos usado un signo \[ \land \] que todavía no hemos introducido).

Observemos ahora que tendríamos problemas si quisiéramos definir un lenguaje formal que constara de un relator monádico \[ H \] (con el significado de "ser un hombre") y de unas constantes \[ E \] y \[ HE \], (con el significado de Elena y "Héctor"). Entonces, no estaría claro si \[ HE \] es la constante que representa a Héctor o si es la afirmación (falsa) "Helena es un hombre".

Una forma de evitar estos problemas sería ser muy estrictos sobre qué signos se admiten como válidos. Por ejemplo, podríamos decretar que si un lenguaje va a tener dos constantes, éstas tengan que ser precisamente \[ C_1, C_2 \], y que si va a tener un relator monádico, éste tenga que ser precisamente \[ R_1^1 \] (el superíndice indica que es monádico y el subíndice que es el primero). Ahora bien, esto haría muy rígidos y molestos de usar los lenguajes formales. En la práctica es preferible dejar que los signos tomen nombres "sugerentes" y a la vez tener cuidado de no dar pie a dudas sobre dónde empieza y dónde termina cada signo.
[cerrar]

Cada lenguaje formal puede tener las constantes que queramos (incluso ninguna) y los relatores que queramos, pero exigiremos que todo lenguaje formal tenga al menos un relator diádico que representaremos por \[ = \] (y que llamaremos igualador) y al que siempre asignaremos el mismo significado, a saber la relación diádica \[ \equiv \] de identidad (de modo que \[ x\equiv y \] se cumple si y sólo si \[ x \] e \[ y \] son el mismo objeto).



Funtores En un universo dado \[ U \], además de relaciones, podemos considerar funciones \[ n \]-ádicas, es decir, criterios \[ f \] que a cada \[ n \] objetos de \[ U \] repetidos o no y en un cierto orden les asigne un nuevo objeto de \[ U \] que representaremos por \[ f(x_1,\ldots, x_n) \].

Los signos de un lenguaje formal que, en caso de ser interpretados, deben tener asignado como significado una función \[ n \]-ádica se llaman funtores \[ n \]-ádicos.

Por ejemplo, podemos añadir a nuestro lenguaje un funtor monádico \[ P \] cuyo significado sea la función monádica \[ \overline P \] dada por

\[ \overline P(x)=\left\{\begin{array}{cl}\text{el padre de } x & \text{si el padre de } x \text{ está en } U\\ x&\text{en caso contrario.}\end{array}\right. \]

De este modo, \[ N=Pn \] es una afirmación verdadera en nuestro lenguaje formal (siempre respecto de la interpretación fijada), pues significa que Napoleón I es el padre de Napoleón II.

Como en el caso de los relatores, exigiremos que cada funtor tenga un rango definido (no admitiremos funtores que admitan una cantidad indeterminada de argumentos). Notemos que los funtores \[ 0 \]-ádicos serían simplemente las constantes.



Conectores lógicos Los conectores lógicos son signos de naturaleza diferente a las constantes, los relatores y los funtores, porque van a tener siempre la misma interpretación y no admitiremos que se modifique. Además, el significado de un conector lógico no será un objeto, una relación o una función, sino una tabla de verdad.

Por ejemplo, un conector lógico es el negador, al que le reservaremos siempre el signo \[ \lnot \], y su significado es la tabla:

\[ \begin{array}{|c|c|}
p&\lnot p\\
\hline
V&F\\
F&V
\end{array} \]

Esto significa que si \[ p \] es una afirmación de nuestro lenguaje formal, entonces \[ \lnot p \] es otra afirmación que es falsa cuando \[ p \] es verdadera y viceversa. Esto se abrevia diciendo que el significado de \[ \lnot \] es el mismo que el de la palabra castellana "no".

Por ejemplo, \[ MN \] significa que Napoleón es una mujer, y es una afirmación falsa, mientras que \[ \lnot MN \] significa que Napoleón no es una mujer, y es una afirmación verdadera.

Los restantes conectores lógicos requieren dos argumentos. Son \[ \land, \lor, \rightarrow, \leftrightarrow \], se llaman conjuntor, disyuntor, implicador y coimplicador, y sus significados vienen dados por las tablas de verdad:

\[ \begin{array}{|cc|c|c|c|c|}
p&q&p\land q&p\lor q&p\rightarrow q&p\leftrightarrow q\\
\hline
V&V&V&V&V&V\\
V&F&F&V&F&F\\
F&V&F&V&V&F\\
F&F&F&F&V&V
\end{array} \]

Estas tablas se resumen en que \[ \land \] significa "y", \[ \lor \] significa "o", \[ \rightarrow \] significa "si... entonces" y \[ \leftrightarrow \] significa "si y sólo si".

Por ejemplo, la afirmación \[ HJ\rightarrow MN \] es verdadera, pues su significado es "Si Josefina es un hombre entonces Napoleón es una mujer", y esto es cierto, porque la tabla de verdad del implicador asigna el valor "verdadero" al caso en que ambas afirmaciones son falsas.



Variables y cuantificadores Las variables son signos similares a las constantes, pero a los que en ningún caso se asignará un significado fijo. Son el equivalente a los pronombres indefinidos en castellano, como "todo", "alguno", etc.

Así, por ejemplo, \[ Hx \] significa que "x" es un hombre, y no podemos decir que sea una afirmación verdadera o falsa, pues no está especificado el significado de la variable \[ x \]. La afirmación \[ x={\rm Pd}n \] significa que "x" es el padre de Napoleón II, y ahora podemos decir que será verdadera si la variable \[ x \] se interpreta como Napoleón I, y falsa en cualquier otro caso.

Las variables están pensadas para ser usadas en combinación con los cuantificadores, que son otros dos signos con un significado fijo. Les reservaremos los signos \[ \forall \] y \[ \exists \]. El primero se llama cuantificador universal o generalizador y el segundo cuantificador existencial o particularizador.

Cada cuantificador debe ir seguido de una variable, e indica que para que la afirmación sea verdadera, debe serlo para toda interpretación posible de la variable (en el caso del generalizador) o al menos para alguna interpretación posible de la variable (en el caso del particularizador).

Por ejemplo, la afirmación \[ \exists x\ Hx \] significa que existe al menos un hombre, y es una afirmación verdadera, mientras que \[ \forall x(Hx\rightarrow \lnot Mx) \] significa que todo \[ x \] que sea un hombre no puede ser una mujer, y también es una afirmación verdadera.



Los signos lógicos de un lenguaje formal serán aquellos cuya presencia es obligada y su significado es fijo, a saber, los conectores lógicos, el igualador y los cuantificadores. Además, también consideraremos a las variables como signos lógicos.  Los demás signos de un lenguaje formal serán sus signos opcionales, es decir, los signos que un lenguaje puede tener o no y que, en caso de existir, requieren que se les asigne una interpretación si queremos interpretar las afirmaciones en las que aparezcan, ya que no tienen ningún significado fijo asignado. Los signos opcionales son, pues, las constantes, los relatores distintos de igualador y los funtores. Las variables las consideraremos como signos lógicos pues, por una parte, son obligatorios (exigiremos que todo lenguaje formal tenga infinitas variables) y, por otra parte, no hay que fijarles ninguna interpretación.

Ejemplo Vamos a definir ahora otro lenguaje formal distinto del que acabamos de construir. Sus signos opcionales serán dos relatores monádicos \[ P \] y \[ B \] y una constante \[ D \]. En este lenguaje formal podemos considerar las afirmaciones siguientes:

\[ \forall x(Px\rightarrow Bx) \]
\[ PD \]
\[ BD \]

Se trata de la formalización del silogismo del mensaje anterior. Mejor dicho, la formalización de dicho silogismo sería lo que más adelante expresaremos así:

\[ \forall x(Px\rightarrow Bx), PD\vdash BD \]

Según veremos, aquí dice que la tercera afirmación es consecuencia lógica de las dos primeras. La lógica nos permitirá probar que esto es así sin necesidad de considerar ninguna interpretación de los signos opcionales. No obstante, hay muchas interpretaciones posibles. La que es fiel al significado en castellano del silogismo del mensaje anterior tiene por universo la colección \[ U \] de todas las palabras griegas, la interpretación del relator \[ P \] es la relación monádica \[ \overline P \] en \[ U \] que cumplen las palabras llamadas properispómenas (que son cierta clase de palabras griegas, como en castellano hay palabras agudas, llanas y esdrújulas), la interpretación del relator \[ B \] es la relación monádica \[ \overline B \] que cumplen las palabras barítonas (que son otra clase de palabras griegas) y la interpretación de la constante \[ D \] es la palabra griega \[ \overline D\equiv \delta\tilde\omega\rho\omicron\nu \].

Con esta interpretación, el \[ \forall x \] de la primera afirmación se interpreta como "para toda palabra griega" (pues hemos fijado como universo la colección de las palabras griegas), y la afirmación significa "para toda palabra griega x, si x es properispómena, entonces x es barítona" o, lo que es lo mismo, "toda palabra (griega) properispómena es barítona".

Ahora bien, nada nos impide cambiar completamente la interpretación, tomar como universo la colección de las personas vivas en 2012, interpretar \[ P \] como "ser español", interpretar \[ B \] como "ser europeo" e interpretar \[ D \] como "El rey Juan Carlos I". Entonces, exactamente las mismas afirmaciones del mismo lenguaje formal (que no hemos modificado en nada) se interpretan como el silogismo:

Todo español (vivo en 2012) es europeo,
El rey Juan Carlos I es español (vivo en 2012),
luego el rey Juan Carlos I es europeo.

Este silogismo tiene exactamente la misma forma lógica que el considerado en el mensaje anterior. Esto significa que ambos silogismos son interpretaciones particulares de las mismas fórmulas de un mismo lenguaje formal.

Como hemos dicho al principio de este mensaje, nuestro objetivo aquí era únicamente el de presentar los conceptos principales que vamos a manejar. En los mensajes sucesivos precisaremos todos los conceptos que aquí hemos empleado sin más explicaciones, como el de "afirmación", el de "verdadero", etc.

04 Marzo, 2013, 22:10
Respuesta #2

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
En este mensaje empezaremos a precisar y separar por completo los conceptos sintácticos y semánticos que en el mensaje anterior hemos presentado conjuntamente. Empezamos dando una definición de lenguaje formal que no haga absolutamente ninguna referencia al posible significado de los signos que lo componen:

Definición Un lenguaje formal es una colección de signos arbitrarios divididos arbitrariamente en las categorías que especificamos a continuación:

Variables: Un lenguaje formal debe tener infinitas variables, y cada una de ellas debe tener asociado un único número natural al que llamaremos su índice. Recíprocamente, todo número natural es el índice de una única variable.

Notas
Lo más simple es tomar como variables, por ejemplo, los signos \[ x_0, x_1, x_2, x_3, \ldots \] de modo que \[ x_i \] es la variable de índice \[ i \]. En la práctica, no obstante, es útil dar nombres alternativos a las variables. Por ejemplo, en lugar de escribir \[ \forall x_0x_1(x_0=x_1\rightarrow x_1=x_0) \] es más cómodo escribir \[ \forall xy(x=y\rightarrow y=x) \]. Si hacemos esto, simplemente estamos adoptando el convenio taquigráfico de escribir \[ x \] cuando deberíamos escribir \[ x_0 \] e \[ y \] cuando deberíamos escribir \[ x_1 \]. Si sabemos lo que estamos haciendo no hay confusión posible.

En la práctica iremos más lejos y usaremos letras cualesquiera para representar variables sin especificar qué variable es concretamente cada letra (si \[ x_0 \] o \[ x_1 \] o cuál de todas). La explicación es que nunca será relevante si una variable \[ x \] que consideremos en un momento dado es en realidad \[ x_0 \] o \[ x_{213} \].
[cerrar]

Constantes: Un lenguaje formal puede tener cualquier cantidad de constantes, desde ninguna hasta infinitas. Si hay un número finito \[ n \] de ellas, a cada una le corresponderá un número natural (un índice) de \[ 0 \] a \[ n-1 \], mientras que si hay infinitas entonces habrá una para cada índice natural.

Relatores: Cada signo clasificado como relator debe tener asociado un número natural no nulo llamado su rango. Los relatores de rango \[ n \] se llaman relatores \[ n \]-ádicos. Un lenguaje formal puede tener cualquier cantidad de relatores \[ n \]-ádicos, desde ninguno hasta infinitos, pero si los hay cada uno de ellos debe estar identificado por un índice, que varíe entre los primeros números naturales (si hay un número finito de relatores \[ n \]-ádicos) o en todos los números naturales, si hay infinitos.

La única excepción a lo dicho es que todo lenguaje formal debe tener el relator diádico de índice \[ 0 \], al que llamaremos igualador y representaremos por \[ = \].

Funtores: Todo lo dicho para los relatores vale igualmente para los funtores, salvo que no hay ningún funtor obligatorio.

Conectores lógicos: Todo lenguaje formal debe tener dos signos llamados conectores lógicos, a saber, el negador \[ \lnot \] y el implicador \[ \rightarrow \].

Nota
En contra de lo establecido en el mensaje anterior, no incluimos el conjuntor, el disyuntor ni el coimplicador porque estos tres signos podrán ser definidos más tarde en función del negador y el implicador. Lo mismo sucede con el cuantificador existencial, que no lo incluimos a continuación porque podrá ser definido a partir del cuantificador universal o generalizador.
[cerrar]

Generalizador: Todo lenguaje formal debe tener un signo llamado generalizador y que representaremos por \[ \forall \].

Se entiende que cada signo de un lenguaje formal debe estar clasificado en una única de estas categorías y cumplir los requisitos indicados.

Observemos que en la definición anterior no hay la menor alusión al significado posible de los signos de un lenguaje formal. Por ejemplo, no decimos que \[ \forall \] significa "para todo". Simplemente especificamos que \[ \forall \] es un signo obligatorio en todo lenguaje formal.

Ejemplo: Para definir un lenguaje formal basta especificar sus signos opcionales (sus constantes, relatores y funtores) Por ejemplo, podemos llamar \[ \mathcal L_0 \] al lenguaje formal cuyos signos opcionales son una constante \[ D \] (que tendrá índice \[ 0 \]) y dos relatores monádicos \[ P \] y \[ B \] (de índices \[ 0 \] y \[ 1 \] respectivamente).

Con esto \[ \mathcal L_0 \] queda completamente determinado. Sus signos son los indicados además de las variables \[ x_0, x_1, x_2, \ldots \] y los signos lógicos \[ =, \lnot, \rightarrow, \forall \].



Una vez definido el concepto de lenguaje formal sin hacer referencia a los posibles significados de los signos, podemos definir el concepto de modelo de un lenguaje formal, que es una asignación de significados:

Definición: Un modelo \[ M \] de un lenguaje formal \[ \mathcal L \] está determinado por:

Un universo \[ U \], es decir, una colección no vacía bien definida de objetos cualesquiera.

Un criterio que a cada constante \[ c \] de \[ \mathcal L \] le asigna un objeto \[ \overline c \] de \[ U \], al que llamaremos objeto denotado por \[ c \] respecto a \[ M \] o, simplemente, el significado de la constante \[ c \] (en el modelo \[ M \]).

Un criterio que a cada relator \[ n \]-ádico \[ R \] de \[ \mathcal L \] le asigne una relación \[ n \]-ádica \[ \overline R \] en el universo \[ U \], que será el significado del relator \[ R \] en el modelo \[ M \]. La relación asociada al igualador \[ = \] será obligatoriamente la relación \[ \equiv \] de identidad en \[ U \], es decir, la relación tal que \[ a\equiv b \] se cumple exactamente cuando \[ a \] y \[ b \] son el mismo objeto.

Un criterio que a cada funtor \[ n \]-ádico \[ f \] de \[ \mathcal L \] le asigne una función \[ n \]-ádica \[ \overline f \] en el universo \[ U \], que será el significado del funtor \[ f \] en el modelo \[ M \].

Ejemplo: Un modelo para el lenguaje formal \[ \mathcal L_0 \] que hemos definido antes puede ser el especificado como sigue: el universo del modelo es el conjunto de personas vivas en el año 2012, el objeto denotado por la constante \[ D \] es el rey de España, la relación \[ \overline P \] asociada al relator \[ P \] es la relación "ser español" y la relación \[ \overline B \] asociada al relator \[ B \] es la relación "ser europeo".

Nota
Al especificar un modelo de un lenguaje formal, toda afirmación de dicho lenguaje pasa a tener un significado que la hace verdadera o falsa. Por ejemplo, la afirmación \[ \forall x(Px\rightarrow x = D) \] significa "Para toda persona \[ x \] (viva en 2012), si \[ x \] es español entonces \[ x \] es el rey de España" o, equivalentemente, el único español es a lo sumo el rey de España. Obviamente es una afirmación falsa (aunque podría ser verdadera en otro modelo definido adecuadamente).

Sin embargo, esta observación no está debidamente justificada de momento, pues para poder afirmar esto con precisión necesitamos definir primero qué es una "afirmación" de un lenguaje formal y qué significa que una afirmación sea verdadera o falsa.
[cerrar]



Términos y fórmulas Cuando escribimos consecutivamente un número finito de signos de un lenguaje formal \[ \mathcal L \] tenemos lo que se llama una cadena de signos de \[ \mathcal L \]. Por ejemplo, una cadena de signos del lenguaje que hemos definido más arriba es:

\[ ==\forall\lnot BBP\rightarrow \]

Concretamente, se trata de una cadena de longitud 8 (la longitud de una cadena de signos es simplemente el número de signos que contiene, contando varias veces los signos repetidos).

De entre todas las cadenas de signos posibles, vamos a especificar las que llamaremos términos y fórmulas. En términos imprecisos, un término es una cadena de signos que nombra a un objeto, mientras que una fórmula es una cadena de signos que afirma algo, pero estas "definiciones" aparte de que no son suficientemente específicas, hacen referencia al posible significado de las cadenas de signos, y eso las vuelve completamente inaceptables. Queremos una definición de "término" y "fórmula" que no use más que los conceptos que aparecen en la definición de lenguaje formal, sin hacer referencia para nada a los significados que aporta un modelo dado.

Definición Diremos que una cadena de signos \[ t \] de un lenguaje formal \[ \mathcal L \] es un término si existe una sucesión de cadenas de signos \[ t_1,\ldots, t_m \] tal que \[ t\equiv t_m \] y cada \[ t_i \] es una variable, una constante, o bien se obtiene yuxtaponiendo un funtor \[ n \]-ádico \[ f \] de \[ \mathcal L \] con \[ n \] elementos anteriores de la sucesión.

De este modo: toda variable y toda constante de \[ \mathcal L \] es un término, y si \[ t_1,\ldots, t_n \] son términos de \[ \mathcal L \] y \[ f \] es un funtor \[ n \]-ádico, se cumple que \[ ft_1\cdots t_n \] también es un término de \[ \mathcal L \] (pues podemos construirlo encadenando las sucesiones de términos que definen a cada \[ t_i \] y luego añadiendo \[ ft_1\cdots t_n \]. La sucesión así obtenida satisface la definición precedente).

Ejemplo: Llamaremos lenguaje de la aritmética al lenguaje \[ \mathcal L_a \] cuyos signos opcionales son una constante \[ 0 \], un funtor monádico \[ S \] y dos funtores diádicos \[ f_+ \] y \[ f_\times \].

Adoptamos el convenio de notación consistente en que, en lugar de escribir \[ f_+t_1t_2 \] o \[ f_\times t_1t_2 \], como exige la definición de término, escribiremos \[ (t_1+t_2) \] y \[ (t_1\cdot t_2) \] respectivamente.

Entonces, algunos ejemplos de términos de \[ \mathcal L_a \] son las cadenas de signos siguientes:

\[ 0,\quad S0, \quad SS0,\quad (S0+SS0),\quad (SS0\cdot(S0+SS0)) \].

Por ejemplo, la primera de estas cadenas es un término porque es una constante, la segunda es un término porque consta del funtor monádico \[ S \] seguido del término \[ 0 \], la tercera es un término porque consta del funtor monádico \[ S \] seguido del término \[ S0 \], la cuarta es un término porque consta del funtor diádico \[ f_+ \] seguido de los términos \[ S0 \] y \[ SS0 \]. (Sólo que, según hemos acordado, en lugar de escribir \[ f_+S0SS0 \] escribimos \[ (S0+SS0) \]) y la última cadena es un término porque consta del funtor diádico \[ f_\times \] seguido de los términos \[ SS0 \] y \[ (S0+SS0) \].

Definición: Una cadena de signos \[ \alpha \] de un lenguaje formal \[ \mathcal L \] es una fórmula si existe una sucesión de cadenas de signos \[ \alpha_1,\ldots, \alpha_m \] tal que \[ \alpha\equiv \alpha_m \] y cada cadena de la sucesión es de una de estas formas:

a) \[ Rt_1,\ldots, t_n \], donde \[ R \] es un relator \[ n \]-ádico de \[ \mathcal L \] y \[ t_1,\ldots, t_n \] son términos de \[ \mathcal L \]. (En la práctica escribiremos \[ (t_1=t_2) \] en lugar de \[ =t_1t_2 \].)

b) \[ \lnot \beta \], donde \[ \beta \] es una cadena anterior en la sucesión. (En la práctica escribiremos \[ (t_1\neq t_2) \] en lugar de \[ \lnot(t_1=t_2) \].)

c) \[ \rightarrow \beta\gamma \], donde \[ \beta \] y \[ \gamma \] son cadenas anteriores de la sucesión. (En la práctica escribiremos \[ (\beta \rightarrow \gamma) \] en lugar de \[ \rightarrow \beta\gamma \].)

d) \[ \forall x\beta \], donde \[ x \] es una variable y \[ \beta \] es una cadena anterior de la sucesión.

Nota técnica
La razón por la que, en principio, definimos las implicaciones en la forma \[ \rightarrow \beta\gamma \], aunque en la práctica escribiremos, por supuesto, \[ \beta\rightarrow\gamma \], es que de este modo los paréntesis son absolutamente innecesarios desde un punto de vista teórico. Poniendo en medio los implicadores es ambiguo escribir \[ \alpha\rightarrow\beta\rightarrow\gamma \], pues no está claro si debe ser entendido como \[ (\alpha\rightarrow\beta)\rightarrow\gamma \] o como \[ \alpha\rightarrow (\beta\rightarrow\gamma) \]. Ahora bien, si escribimos estas fórmulas como lo indica estrictamente la definición, la primera es \[ \rightarrow\rightarrow\alpha\beta\gamma \], es decir, una implicación cuya primera fórmula es la implicación de \[ \alpha \] y \[ \beta \] y la segunda es \[ \gamma \], mientras que la otra fórmula es \[ \rightarrow\alpha\rightarrow\beta\gamma \], una implicación cuya primera fórmula es \[ \alpha \] y su segunda fórmula es la implicación de \[ \beta \] y \[ \gamma \]. De este modo los paréntesis quedan relegados a meros signos taquigráficos, usados para aclarar las ambigüedades que se pueden general al escribir las fórmulas de la forma que nos resulta familiar.

Más aún, si entendemos que "oficialmente" (es decir, sin abusos de lenguaje) las fórmulas son como indica la definición, tenemos que toda fórmula es de una de las formas indicadas en los apartados a), b), c) o d). Concretamente, si el primer signo de una fórmula es un relator, entonces es del tipo a), si el primer signo es un negador, es de tipo b), si el primer signo es un implicador es de tipo c) y si el primer signo es un generalizador es de tipo d).
[cerrar]
Por lo tanto:

Al escribir un relator \[ n \]-ádico seguido de \[ n \] términos obtenemos una fórmula (aunque cuando el relator sea el igualador lo escribiremos en medio de los términos, y no delante).

Si \[ \beta \] es una fórmula, \[ \lnot \beta \] también es una fórmula (porque si prolongamos con \[ \lnot\beta \] la sucesión que justifica que \[ \beta \] es una fórmula obtenemos una justificación de que \[ \lnot\beta \] es una fórmula).

Si \[ \beta \] y \[ \gamma \] son fórmulas, también lo es \[ \rightarrow\beta\gamma \] (aunque en la práctica escribiremos \[ (\beta\rightarrow \gamma) \]. Esto es porque si encadenamos las sucesiones que justifican que \[ \beta \] y \[ \gamma \] son fórmulas y luego escribimos  \[ (\beta\rightarrow \gamma) \] tenemos una sucesión que justifica que  \[ (\beta\rightarrow \gamma) \] es una fórmula.

Si \[ \beta \] es una fórmula y \[ x \] es una variable, entonces \[ \forall x\beta \] es una fórmula, pues si prolongamos con \[ \forall x\beta \]  la sucesión que justifica que \[ \beta \] es una fórmula obtenemos una sucesión que justifica que \[ \forall x\beta \] también lo es.

Ejemplo: La sucesión siguiente de cadenas de signos justifica que la última de ellas (y, de hecho, también todas las anteriores) es una fórmula del lenguaje \[ \mathcal L_a \]:

\[ x=Sy \] (un relator diádico actuando sobre dos términos).

\[ x=0 \] (ídem)

\[ x\neq 0 \] (negación de la fórmula precedente)

\[ (x=Sy\rightarrow x\neq 0) \] (implicación de dos fórmulas precedentes)

\[ \forall y(x=Sy\rightarrow x\neq 0) \] (generalización de una fórmula precedente)

\[ \forall x\forall y(x=Sy\rightarrow x\neq 0) \] (generalización de una fórmula precedente).

En la práctica, cuando haya varios cuantificadores seguidos, como en la última fórmula, los abreviaremos escribiendo \[ \forall xy(x=Sy\rightarrow x\neq 0) \].



Hemos definido el lenguaje de la aritmética \[ \mathcal L_a \], pero no le hemos asociado ningún modelo. El modelo natural de \[ \mathcal L_a \] es el modelo que tiene por universo el conjunto de los números naturales, en el que el significado de la constante \[ 0 \] es el número natural cero, el significado del relator \[ S \] es la función que a cada número natural le asigna el número siguiente, y los significados de los funtores diádicos \[ f_+ \] y \[ f_\times \] son las funciones de suma y producto de números naturales, respectivamente.

En este modelo "está claro" que la fórmula \[ \forall xy(x=Sy\rightarrow x\neq 0) \] significa que si un número natural es el siguiente de otro, entonces no puede ser el número natural cero. En el mensaje siguiente explicitaremos este "hecho claro", es decir, veremos cómo asociar un significado a cada término y a cada fórmula de un lenguaje formal respecto a un modelo prefijado. Sin embargo, es un hecho fundamental que aquí hemos definido los conceptos de "término" y "fórmula" sin hacer referencia en ningún momento a posibles modelos de un lenguaje formal.

05 Marzo, 2013, 20:29
Respuesta #3

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Antes de seguir adelante hagamos un resumen de lo que tenemos hasta ahora. Cualquiera que vea estas dos cadenas de signos:

\[ \forall\forall \lnot\rightarrow xy= \],    \[ \forall xy(x=Sy\rightarrow x\neq 0) \]

se da cuenta de forma inmediata que la primera es un galimatías, mientras que la segunda tiene sentido.

Lo que hemos visto en el mensaje anterior es que

1) Esa distinción que sabemos hacer a simple vista, incluso sin saber explicar en qué notamos la diferencia, puede describirse mediante unas reglas muy simples, que pueden ser fácilmente programadas para que un ordenador distinga entre cadenas con y sin sentido (es decir, entre términos y fórmulas y galimatías).

2) La distinción entre cadenas con y sin sentido puede hacerse sin hacer referencia para nada al sentido (el significado posible) de las cadenas de signos, atendiendo únicamente a la forma en que están ordenados los distintos signos (es decir, formalmente, atendiendo a la forma y no al significado).

En particular hemos descrito la estructura formal de los términos y las fórmulas, que se resume en lo siguiente:

1) Cada término de un lenguaje formal es una variable, una constante o un funtor n-ádico seguido de n términos.

2) Cada fórmula de un lenguaje formal es un relator n-ádico seguido de n términos, o bien un negador seguido de una fórmula, o bien un implicador seguido de dos fórmulas (aunque en la práctica escribimos el implicador en medio de ambas) o bien un generalizador seguido de una variable y una fórmula (aunque en la práctica simplifiquemos a veces la escritura, como al escribir \[ \forall xy \] en lugar de \[ \forall x\forall y \]).

Para acabar de sentar las bases más elementales de la lógica nos falta ver que otra acción que sabemos hacer instintivamente puede ser descrita también de forma "entendible para ordenadores". Me refiero a "leer", "entender el significado". Por ejemplo, cuando vemos la fórmula escrita más arriba, si suponemos una interpretación de su lenguaje formal cuyo universo sea el conjunto de los números naturales y en la que el objeto denotado por la constante \[ 0 \] sea el número cero y la función denotada por el funtor \[ S \] sea la operación sucesor, inmediatamente "entendemos" que la fórmula dice que el sucesor de un número natural no puede ser el cero. Más precisamente, ¿qué relación hay entre estas dos afirmaciones?:

\[ \color{blue} \forall xy(x=Sy\rightarrow x\neq 0) \]

El sucesor de un número natural no puede ser el cero.

La respuesta es que la relación entre la primera y la segunda es la misma que entre la segunda y ésta otra:

The successor of a natural number cannot be zero.

Las tres son versiones de la misma afirmación en tres idiomas diferentes: un cierto lenguaje formal, el castellano y el inglés. Las tres tienen perfecto sentido en su propio lenguaje, y las tres tienen el mismo significado, pasar de una a otra cualquiera es lo que se conoce como "traducir". Ahora bien, así como traducir del castellano al inglés es un arte que los ordenadores distan mucho de dominar, traducir de un lenguaje formal al castellano es una labor puramente mecánica que ahora vamos a describir.

Cabe señalar que no toda afirmación castellana puede traducirse a un determinado lenguaje formal, pues un lenguaje formal puede tener únicamente signos específicos para hablar de conceptos muy concretos, mientras que toda afirmación de un lenguaje formal puede traducirse al castellano (supuesto que se haya fijado un modelo del lenguaje formal). Cuando una afirmación castellana puede traducirse a un lenguaje formal decimos que es formalizable en dicho lenguaje, y formalizar afirmaciones castellanas es el primer paso para poder estudiarlas desde el punto de vista de la lógica.

En definitiva, lo que nos preguntamos ahora es ¿qué es exactamente el significado de un término o de una fórmula (respecto de un modelo)?

Para responder a esta pregunta necesitamos asignar un significado provisional a las variables de un lenguaje formal, que, precisamente por ser "variables" no tienen asignado en principio ningún significado fijo:

Definición: Sea \[ \mathcal L \] un lenguaje formal y sea \[ M \] un modelo de \[ \mathcal L \]. Una valoración de \[ \mathcal L \] en \[ M \] es cualquier criterio \[ v \] que a cada variable \[ x \] de \[ \mathcal L \] le asigne un objeto \[ v(x) \] del universo de \[ M \].

En definitiva, una valoración asigna a cada variable un "significado provisional", como hemos dicho.

Si \[ v \] es una valoración, \[ x \] es una variable y \[ a \] es un objeto del universo de \[ M \], representaremos por \[ v_x^a \] la valoración que coincide con \[ v \] salvo que \[ v_x^a(x)\equiv a \], independientemente de lo que valga \[ v(x) \].

Ahora ya podemos definir el objeto denotado por (es decir, el significado de) un término:

Definición: Sea \[ \mathcal L \] un lenguaje formal, sea \[ M \] un modelo de \[ \mathcal L \] y sea \[ v \] una valoración en \[ M \]. Cada término \[ t \] de \[ \mathcal L \] tiene asignado un objeto \[ \overline t \] del universo de \[ M \] (al que llamaremos objeto denotado por \[ t \], respecto de \[ M \] y \[ v \]) mediante las reglas siguientes:

Si \[ x \] es una variable, entonces el objeto que denota es \[ \bar x = v(x) \].

Si \[ c \] es una constante, entonces el objeto \[ \overline c \] que denota es el fijado por el modelo \[ M \].

Si \[ t = ft_1\ldots t_n \] es un término compuesto por un funtor \[ n \]-ádico seguido de \[ n \] términos, entonces su objeto denotado es \[ \overline t = \overline f(\overline{t_1},\ldots, \overline{t_n}) \], es decir, es el objeto que resulta de aplicar la función denotada por \[ f \] (dada por el modelo) sobre los objetos denotados por los términos \[ t_1,\ldots, t_n \].

Cuando queramos indicar que \[ \overline t \] depende de \[ M \] y \[ v \] escribiremos \[ \overline t = M(t)[v] \].

Notemos que el cálculo de el objeto denotado por un término requiere calcular previamente los objetos denotados por los términos menores que contenga, pero como éstos son necesariamente un número finito, es claro que el proceso para calcular dicho objeto denotado es siempre finito.

Ejemplo: Consideremos el término \[ SS0+S0 \] del lenguaje \[ \mathcal L_a \] de la aritmética y vamos a calcular el objeto que denota respecto de su modelo natural.

Para ello observamos que \[ \overline 0 \] es el número natural cero, pues el objeto denotado por una constante es el que le asigna el modelo, y el modelo natural de \[ \mathcal L_a \] establece que la constante \[ 0 \] denota al cero.

A continuación calculamos \[ \overline{S0} = \overline S(\overline 0) \]. Como la función \[ \overline S \] es la función sucesor (por la definición del modelo) y ya sabemos que \[ \overline 0 \] es el cero, concluimos que \[ \overline{S0} \] es el sucesor del número cero, es decir, el número uno.

Igualmente concluimos que \[ \overline{SS0} \] es el número dos.

Por último, el término \[ SS0+S0 \] es lo que, sin el abuso de notación de poner el funtor en medio, sería \[ f_+SS0S0 \], es decir, el funtor diádico \[ f_+ \] (que denota en el modelo a la función suma de números naturales) seguido de los términos \[ SS0 \] y \[ S0 \]. Por lo tanto \[ \overline{SS0+S0} \] es el número que resulta de aplicar la función suma \[ \overline{f_+} \] a los números \[ \overline{SS0} \] y \[ \overline{S0} \], es decir, la suma de dos más uno, o sea, tres. Concluimos que  \[ \overline{SS0+S0} \] es el número natural tres.

Ahora pasamos a definir el significado de una fórmula o, equivalentemente, qué significa exactamente que una fórmula dada sea verdadera o falsa (respecto de un modelo). La presencia de valoraciones hace que evitemos de momento las palabras "verdadero" y "falso" y hablemos más bien de si una fórmula es satisfecha o no por una valoración en un modelo.

Definición:  Sea \[ \mathcal L \] un lenguaje formal, sea \[ M \] un modelo de \[ \mathcal L \] y sea \[ v \] una valoración en \[ M \]. Diremos que una fórmula \[ \alpha \] de \[ \mathcal L \] es satisfecha en \[ M \] por la valoración \[ v \] (y lo representaremos \[ M\vDash \alpha[v] \]) si se cumple lo siguiente, según la estructura de \[ \alpha \]:

1) \[ M\vDash Rt_1\cdots t_n[v] \] si y sólo si \[ \overline R(\overline{t_1},\ldots, \overline{t_n}) \], es decir, una fórmula del tipo "relator seguido de términos" es satisfecha si la relación asociada al relator por el modelo se cumple sobre los objetos denotados por los términos. En particular, \[ M\vDash (t_1=t_2)[v] \] equivale a que los objetos denotados por \[ t_1 \] y \[ t_2 \] sean el mismo (porque la relación denotada por \[ = \] es la identidad).

2) \[ M\vDash \lnot \alpha [v] \] si y sólo si no \[ M\vDash \alpha[v] \], es decir, una fórmula de tipo \[ \lnot \alpha \] es satisfecha si y sólo si la fórmula \[ \alpha \] no es satisfecha.

3) \[ M\vDash (\alpha\rightarrow \beta) [v] \] si y sólo si no \[ M\vDash \alpha[v] \] o bien \[ M\vDash \beta[v] \] o, equivalentemente, \[ \alpha\rightarrow \beta \] es satisfecha salvo si \[ \alpha \] es satisfecha y \[ \beta \] no lo es.

4) \[ M\vDash \forall x\alpha[v] \] si y sólo si para todo objeto \[ a \] del universo de \[ M \] se cumple que \[ M\vDash \alpha[v_x^a] \], es decir, si la fórmula \[ \alpha \] es satisfecha, no sólo por la valoración \[ v \], sino también por cualquier valoración en la que la variable \[ x \] denote cualquier objeto \[ a \] posible. En otras palabras, \[ \forall x\alpha \] es satisfecha si y sólo si \[ \alpha \] es satisfecha cualquiera que sea la interpretación de la variable \[ x \].

Nota
Por definición, un modelo asigna un significado a cada constante, a cada relator y a cada funtor de un lenguaje formal, pero no asigna ningún significado a los signos lógicos \[ \lnot, \rightarrow, \forall \]. La razón es que queríamos que estos signos tuvieran siempre el mismo significado, y es ahora cuando acabamos de asignarles el significado fijo que queremos que tengan.

Los puntos 2) y 3) de la definición anterior vienen a decir que \[ \lnot \] y \[ \rightarrow \] tienen el significado dado por las tablas de verdad

\[ \begin{array}{|c|c|}
\alpha&\lnot \alpha\\
\hline
V&F\\
F&V
\end{array}\qquad \begin{array}{|cc|c|}
\alpha&\beta&\alpha\rightarrow \beta\\
\hline
V&V&V\\
V&F&F\\
F&V&V\\
F&F&V
\end{array} \]

mientras que el punto 4) viene a decir que \[ \forall x \] debe interpretarse siempre como "para todo valor posible de la variable \[ x \]".
[cerrar]

Ejemplo: Considerando el modelo natural de \[ \mathcal L_a \] y una valoración cualquiera \[ v \], nos preguntamos a qué equivale exactamente

\[ M\vDash \forall xy(x=Sy\rightarrow x\neq 0)[v] \]

Ya sabemos la respuesta: equivale a que un número natural que sea el sucesor de otro no puede ser cero, pero vamos a comprobar que esto es precisamente lo que obtenemos cuando aplicamos la definición precedente.

Por el punto 4) sabemos que \[ M\vDash \forall xy(x=Sy\rightarrow x\neq 0)[v] \] equivale a que, para todo objeto \[ a \] del universo de \[ M \], es decir, para todo número natural \[ a \], se cumpla

\[ M\vDash \forall y(x=Sy\rightarrow x\neq 0)[v_x^a] \].

De nuevo por 4) sabemos que esto equivale a que para todo número natural \[ b \] se cumpla que

\[ M\vDash (x=Sy\rightarrow x\neq 0)[v_{xy}^{ab}] \].

Por 3) esto equivale a que para todos los números naturales \[ a \] y \[ b \], o bien no se cumple \[ M\vDash(x=Sy)[v_{xy}^{ab}] \], o bien \[ M\vDash (x\neq 0)[v_{xy}^{ab}] \]. Equivalentemente, esto es tanto como afirmar que si se cumple \[ M\vDash(x=Sy)[v_{xy}^{ab}] \], también se ha de cumplir \[ M\vDash (x\neq 0)[v_{xy}^{ab}] \].

Por 1) y 2) esto equivale a que, para todo par de números naturales \[ a \] y \[ b \], supuesto que cumplan \[ M(x)[v_{xy}^{ab}]\equiv M(Sy)[v_{xy}^{ab}] \], también deben cumplir que no \[ M\vDash (x=0)[v_{xy}^{ab}] \].

Ahora tenemos en cuenta que el objeto denotado por \[ x \] respecto a la valoración \[ v_{xy}^{ab} \] es \[ v_{xy}^{ab}(x)\equiv a \], mientras que el objeto denotado por \[ Sy \] es el siguiente del número denotado por \[ y \], que es \[ v_{xy}^{ab}(y)\equiv b \]. Por lo tanto tenemos:

Para todo par de números naturales \[ a \] y \[ b \], si \[ a \] es el siguiente de \[ b \], entonces no se cumple que \[ M(x)[v_{xy}^{ab}]\equiv M(0)[v_{xy}^{ab}] \]. En definitiva:

Para todo par de números naturales \[ \color{blue} a \] y \[ \color{blue} b \], si \[ \color{blue} a \] es el siguiente de \[ \color{blue} b \], entonces \[ \color{blue} a \] no es cero.

Así pues, lo que obtenemos después de morirnos de asco aplicando metódicamente la definición de satisfacción es lo que cualquiera capta de un golpe de vista al mirar la fórmula de partida. Obviamente, en la práctica es absurdo seguir todo este camino para llegar a lo evidente. El interés de la definición de satisfacción es que nos permite estudiar el concepto teóricamente con la garantía de que estamos hablando de lo mismo que hacemos en la práctica cuando "entendemos" el significado de una fórmula.

09 Marzo, 2013, 18:54
Respuesta #4

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Nuestra descripción básica de los lenguajes formales no puede estar completa si no introducimos de algún modo los "signos perdidos" que hemos omitido en la definición bajo la promesa de recuperarlos más tarde, a saber, el conjuntor, el disyuntor, el coimplicador y el cuantificador existencial.

Si tenemos dos fórmulas \[ \alpha \] y \[ \beta \], definimos

\[ \alpha\lor \beta\equiv \lnot\alpha\rightarrow \beta \]

Aquí hay que destacar que esta definición no es "caprichosa" o arbitraria. Por el contrario, esta definición es la que tiene que ser para que el conjuntor \[ \lor \] que acabamos de definir tenga por tabla de verdad la correspondiente a la disyunción, es decir, a la conjunción "o" (no exclusiva) castellana.

En efecto, Si fijamos un modelo \[ M \] de un lenguaje formal y una valoración \[ v \], tenemos que

\[ M\vDash(\alpha\lor \beta)[v] \] es lo mismo que \[ M\vDash(\lnot\alpha\rightarrow \beta)[v] \], lo cual sucede si y sólo si no \[ M\vDash \lnot\alpha[v] \] o \[ M\vDash \beta[v] \], lo cual sucede si y sólo si \[ M\vDash \alpha[v] \] o \[ M\vDash \beta[v] \].

Puesto que los conectores \[ \lnot \] y \[ \rightarrow \] tienen siempre la misma interpretación en todos los modelos (la dada por sus respectivas tablas de verdad) acabamos de probar que \[ \lor \] tiene siempre la misma interpretación en todos los modelos, de modo que una fórmula \[ \alpha\lor\beta \] es satisfecha cuando y sólo cuando lo es al menos una de las dos fórmulas \[ \alpha \] y \[ \beta \].

Si hubiéramos optado por introducir el disyuntor \[ \lor \] como un signo lógico obligatorio más de todo lenguaje formal (en igualdad de condiciones que el negador y el implicador), en la definición de satisfacción habríamos tenido que añadir que una fórmula \[ \alpha\lor \beta \] es satisfecha si y sólo si al menos una de las dos \[ \alpha \] o \[ \beta \] lo es. Y en tal caso las fórmulas \[ \alpha\lor \beta \] y \[ \lnot\alpha\rightarrow \beta \] no serían la misma fórmula (como lo son según el convenio que hemos adoptado), sino que serían un ejemplo de un par de fórmulas lógicamente equivalentes, es decir, dos fórmulas tales que una es satisfecha por una valoración en un modelo si y sólo si lo es la otra.

Análogamente podemos definir el conjuntor mediante:

\[ \alpha\land \beta\equiv \lnot(\lnot\alpha\lor\lnot\beta) \].

Si ahora analizamos cuándo sucede \[ M\vDash (\alpha\land\beta)[v] \], según la definición de satisfacción y el resultado que acabamos de probar para la satisfacción del disyuntor, concluiremos fácilmente que \[ M\vDash (\alpha\land\beta)[v] \] se cumple cuando y sólo cuando \[ M\vDash \alpha[v] \] y \[ M\vDash \beta[v] \], lo que demuestra que la tabla de verdad asociada al conjuntor es precisamente la que corresponde a la conjunción castellana "y".

Igualmente podemos (o, mejor, debemos) definir el coimplicador como

\[ \alpha\leftrightarrow \beta \equiv (\alpha\rightarrow\beta)\land (\beta\rightarrow \alpha) \].

Nuevamente, esta definición no es "caprichosa", sino que es la necesaria para que la tabla de verdad del coimplicador sea la esperada.

Consideremos por último el caso del cuantificador existencial o particularizador:

\[ \exists x\alpha\equiv\lnot \forall x\lnot \alpha \].

Veamos con detalle su interpretación. Si fijamos un modelo \[ M \] y una valoración \[ v \] tenemos que \[ M\vDash \exists x\alpha[v] \] es lo mismo que \[ M\vDash \lnot \forall x\lnot \alpha[v] \], lo cual, por definición de satisfacción, equivale a que no \[ M\vDash \forall x\lnot \alpha[v] \]. Esto, a su vez equivale a que no se cumpla para todo \[ a \] en el universo del modelo,  \[ M\vDash \lnot\alpha[v_x^a]  \].

Decir que esto no se ha de cumplir para todo \[ a \] es lo mismo que decir que existe un \[ a \] en el universo del modelo que no cumple \[ M\vDash \lnot\alpha[v_x^a]  \], o también que existe un \[ a \] en el universo del modelo que cumple \[ M\vDash \alpha[v_x^a]  \].

Ésta es la interpretación del cuantificador existencial: se cumple \[ M\vDash \exists x\alpha[v] \] si y sólo si existe un objeto \[ a \] en el universo del modelo tal que \[ \alpha \] es satisfecha si modificamos la valoración para que la variable \[ x \] se interprete como \[ a \].

Dicho más laxamente, \[ \exists x\alpha \] es satisfecha si existe una posible interpretación para la variable \[ x \] que hace que \[ \alpha \] sea satisfecha.

Así, la definición de \[ \exists \] no es caprichosa, sino que es la necesaria para que \[ \exists x \] signifique "existe un \[ x \]". Si hubiéramos introducido el cuantificador existencial como un signo más de los lenguajes formales (en lugar de definirlo luego a partir del cuantificador universal), entonces habría que haber añadido a la definición de satisfacción que \[ M\vDash \exists x\alpha[v] \] equivale a lo que acabamos de probar, y entonces las fórmulas \[ \exists x\alpha \] y \[ \lnot\forall x\lnot\alpha \] no serían la una una abreviatura de la otra, sino que serían dos fórmulas distintas, pero lógicamente equivalentes.

Para terminar destacamos que las definiciones

\[ \alpha\lor \beta\equiv \lnot\alpha\rightarrow \beta \], \[ \alpha\land \beta\equiv \lnot(\lnot\alpha\lor\lnot\beta) \], \[ \alpha\leftrightarrow \beta \equiv (\alpha\rightarrow\beta)\land (\beta\rightarrow \alpha) \] y \[ \exists x\alpha\equiv\lnot \forall x\lnot \alpha \]

son puramente sintácticas, es decir, que no dependen para nada de ningún posible modelo del lenguaje formal. Una vez dadas podemos determinar (como hemos hecho) el significado de los nuevos signos lógicos en cualquier modelo, pero todos ellos están definidos sin hacer referencia a modelos (ni, por lo tanto, a su posible significado).

12 Marzo, 2013, 18:34
Respuesta #5

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Consideremos una fórmula como

\[ \exists y\ x = Sy \].

En esta fórmula la variable \[ x \] está libre, mientras que la variable \[ y \] está ligada. En general, se dice que una variable está libre en una fórmula cuando aparece en ella, pero no está afectada por ningún cuantificador, mientras que en caso contrario se dice que está ligada. Hay que tener en cuenta que una misma variable puede estar a la vez libre y ligada en una fórmula. Es el caso, por ejemplo, de la variable \[ x \] en

\[ x= 0\land \exists x\ x = S0 \]

Aquí la primera \[ x \] está libre, mientras que la segunda está ligada. Estas indicaciones bastan para que cualquiera sepa distinguir qué variables están libres o ligadas en una fórmula cualquiera. No obstante, a efectos de hacer demostraciones conviene observar que estos conceptos satisfacen las relaciones recurrentes siguientes:

1) Las variables libres de un término son exactamente las que aparecen en él. Un término no tiene variables ligadas.

2) Las variables libres de una fórmula de tipo \[ Rt_1\ldots t_n \] son exactamente las que aparecen en ella, y no tiene variables ligadas.

3) Las variables libres/ligadas de una fórmula de tipo \[ \lnot \alpha \] son las mismas que las de \[ \alpha \].

4) Las variables libres/ligadas de una fórmula de tipo  \[ \alpha\rightarrow \beta \]  son las que están libres/ligadas en \[ \alpha \] o en \[ \beta \].

5) Las variables libres en una fórmula de tipo \[ \forall x\,\alpha \] son las variables libres de \[ \alpha \] distintas de \[ x \]; las variables ligadas son las variables ligadas de \[ \alpha \] y además \[ x \].

Teniendo en cuenta las definiciones introducidas en el mensaje anterior, de estas reglas se deduce que las variables libres/ligadas en una fórmula de tipo \[ \alpha\lor\beta \], \[ \alpha\land \beta \] o \[ \alpha\leftrightarrow \beta \] son las que están libres/ligadas en \[ \alpha \] o en \[ \beta \], así como que la regla 5) es válida si cambiamos \[ \forall x \] por \[ \exists x \].

La interpretación semántica del concepto de variable libre es que las variables libres de un término o fórmula son las únicas (a lo sumo) a las que necesitamos asignar una interpretación para determinar el objeto denotado por el término o si la fórmula es o no satisfecha en un modelo. Éste es el contenido de los dos teoremas siguientes:

Teorema: Sea \[ M \] un modelo de un lenguaje formal \[ \mathcal L \], sean \[ v \] y \[ w \] dos valoraciones en \[ M \] y sea \[ t \] un término de \[ \mathcal L \]. Si \[ v \] y \[ w \] coinciden sobre las variables libres en \[ t \], entonces \[ M(t)[v]\equiv M(t)[w] \].

En otras palabras, que para calcular el objeto denotado \[ M(t)[v] \] sólo necesitamos saber cómo actúa \[ v \] sobre las variables libres en \[ t \]. Su actuación sobre las variables que no aparezcan en \[ t \] es irrelevante.

Demostración
Por inducción sobre la longitud de \[ t \].

Si \[ t\equiv x \] es una variable, entonces \[ x \] está libre en \[ t \], luego por hipótesis, \[ M(t)[v] \equiv v(x)\equiv w(x)\equiv M(t)[w] \].

Si \[ t\equiv c \] es una constante, entonces el objeto que denota es \[ M(c) \], que depende únicamente del modelo \[ M \] y no de las valoraciones.

Supongamos que \[ t\equiv ft_1\cdots t_n \], para cierto funtor \[ n \]-ádico \[ f \]. Los términos \[ t_i \] tienen longitud menor que \[ t \], luego por hipótesis de inducción denotan un mismo objeto \[ \overline{t_i} \] respecto de ambas valoraciones. El objeto denotado por \[ t \] es

\[ M(t)[v] \equiv M(f)(\overline{t_1},\ldots, \overline{t_n}) = M(t)[w] \].

Notemos el argumento subyacente al razonamiento inductivo: si el teorema no fuera cierto, habría un termino \[ t \] que denotaría dos objetos distintos respecto de dos valoraciones que coinciden sobre sus variables libres. De entre todos los términos así, podríamos tomar uno de la longitud mínima posible. El razonamiento anterior prueba que dicho término de longitud mínima no podría ser ni una variable, ni una constante, ni un funtor con términos, pero todo término ha de ser de uno de estos tipos, luego tenemos una contradicción.
[cerrar]

Teorema: Sea \[ M \] un modelo de un lenguaje formal \[ \mathcal L \], sean \[ v \] y \[ w \] dos valoraciones en \[ M \] y sea \[ \alpha \] una fórmula de \[ \mathcal L \]. Si \[ v \] y \[ w \] coinciden sobre las variables libres en \[ \alpha \], entonces \[ M\vDash \alpha[v] \] es equivalente a \[ M\vDash \alpha[w] \].

Demostración
Por inducción sobre la longitud de \[ \alpha \].

Si \[ \alpha\equiv Rt_1\ldots t_n \] las variables libres de cada término \[ t_i \] están entre las de \[ \alpha \], luego \[ v \] y \[ w \] coinciden en dichas variables libres y, por el teorema anterior, \[ t_i \] denota un mismo objeto \[ \overline{t_i} \] respecto de ambas valoraciones. Entonces

\[ M\vDash Rt_1\cdots t_n[v] \] equivale a \[ M(R)(\overline{t_1},\ldots, \overline{t_n}) \], que a su vez equivale a \[ M\vDash Rt_1\cdots t_n[w] \].

Si \[ \alpha\equiv \lnot \beta \], entonces las variables libres de \[ \beta \] son las mismas que las de \[ \alpha \], por lo que, por hipótesis de inducción \[ M\vDash \beta[v] \] equivale a \[ M\vDash \beta[w] \]. Por lo tanto, no \[ M\vDash \beta[v] \] equivale a no \[ M\vDash \beta[w] \], es decir, que \[ M\vDash \lnot\beta[v] \] equivale a \[ M\vDash \lnot\beta[w] \].

El argumento si \[ \alpha\equiv\beta\rightarrow\gamma \] es similar.

Si \[ \alpha\equiv \forall x\beta \], entonces las variables libres de \[ \alpha \] son las de \[ \beta \] menos \[ x \]. Tenemos que \[ M\vDash \forall x\beta[v] \] si y sólo si para todo \[ a \] en el universo del modelo se cumple que \[ M\vDash \beta[v_x^a] \]. Las valoraciones \[ v_x^a \] y \[ w_x^a \] coinciden sobre todas las variables libres en \[ \beta \] (pues coinciden sobre \[ x \], ya que ambas toman el valor \[ a \], y cualquier otra variable libre en \[ \beta \] está libre en \[ \alpha \], luego las valoraciones coinciden por hipótesis). Por lo tanto, por hipótesis de inducción tenemos que \[ M\vDash \forall x\beta[v] \] si y sólo si para todo \[ a \] en el universo del modelo \[ M\vDash \beta[w_x^a] \], lo cual equivale a que \[ M\vDash \forall x\beta[w] \].
[cerrar]

Es útil usar la notación \[ \alpha(x_1,\ldots, x_n) \] para indicar que las variables libres de \[ \alpha \] están entre \[ x_1,\ldots, x_n \] y, en tal caso, escribir \[ M\vDash \alpha[a_1,\ldots, a_n] \] para indicar que se cumple \[ M\vDash \alpha[v] \], donde \[ v \] es cualquier valoración que cumpla \[ v(x_i)\equiv a_i \], es decir, que la fórmula \[ \alpha \] es satisfecha por cualquier valoración que interprete la variable \[ x_i \] como \[ a_i \]. Según el teorema anterior, las posibles interpretaciones que dé la valoración a las demás variables es irrelevante.

Definición: Se dice que un término es abierto si tiene variables libres. En caso contrario se dice que es cerrado, o que es un designador. Se dice que una fórmula es \[ abierta \] si tiene variables libres. En caso contrario se dice que es \[ cerrada \] o que es una sentencia.

Los dos teoremas anteriores se traducen en que un designador designa a un mismo objeto en cada modelo, que no depende de la valoración que se considere, e igualmente una sentencia es satisfecha o no en un modelo, sin que importe la valoración que se considere.

El tratamiento de las variables libres nos plantea un problema técnico, y es que los matemáticos, en su uso cotidiano, tratan a veces las variables libres como que representan a objetos arbitrarios (y sus conclusiones valen entonces para todo valor de las variables) y a veces como que representan a objetos particulares (y sus conclusiones valen entonces para un cierto valor de las variables). La diferencia depende del contexto. Si un matemático ha empezado un razonamiento diciendo "tomemos un número real arbitrario \[ x \]", entonces la variable \[ x \] es genérica, mientras que si la introduce en la forma "podemos asegurar que esta ecuación tiene al menos una solución \[ x \]", en lo sucesivo "recuerda" que la variable \[ x \] es particular.

De momento no estamos en condiciones de tener en cuenta estos contextos, así que vamos a adoptar una interpretación "por defecto" de las variables libres (la genérica), pero teniendo en cuenta que más adelante nos las ingeniaremos para considerar variables particulares sin contradecir estrictamente nada de lo que vamos a decir ahora.

Definición: Diremos que una fórmula \[ \alpha \] es verdadera en un modelo \[ M \], y lo representaremos por \[ M\vDash \alpha \], si \[ M\vDash \alpha[v] \] para toda valoración \[ v \] en el modelo. Diremos que es falsa si no  \[ M\vDash \alpha[v] \] para toda valoración \[ v \] en el modelo.

En otras palabras, una fórmula \[ \alpha \] es verdadera si es satisfecha con cualquier valoración o, equivalentemente, con cualquier asignación de significados para sus variables libres, y es falsa si no es satisfecha con ninguna valoración (con cualquier asignación de significados a sus variables libres). Con esta definición se cumple:

Teorema: Si \[ \alpha \] es una fórmula de un lenguaje formal y \[ M \] es un modelo de dicho lenguaje, entonces \[ M\vDash \alpha \] si y sólo si \[ M\vDash \forall x\alpha \].

Demostración
Supongamos que \[ M\vDash \alpha \]. Tomemos una valoración \[ v \] en \[ M \] y tomemos un \[ a \] arbitrario en el universo de \[ M \]. Entonces \[ M\vDash \alpha[v_x^a] \], pues por la definición anterior esto vale para toda valoración, en particular para \[ v_x^a \]. Pero el hecho de que esto valga para todo \[ a \] en el universo de \[ M \] equivale a que \[ M\vDash \forall x\alpha[v] \], y como esto vale para toda valoración \[ v \] concluimos que \[ M\vDash \forall x\alpha \].

Recíprocamente, si \[ M\vDash \forall x\alpha \], fijamos una valoración \[ v \], de modo que \[ M\vDash \forall x\alpha [v] \]. Esto significa que para todo \[ a \] en el universo de \[ M \] se cumple \[ M\vDash \alpha[v_x^a] \]. En particular, si \[ a\equiv v(x) \], tenemos que \[ M\vDash \alpha[v] \], y como esto vale para toda \[ v \] concluimos que \[ M\vDash \alpha[v] \].
[cerrar]

Por ejemplo, la fórmula \[ x+y=y+x \] del lenguaje de la aritmética es verdadera en su modelo natural, pues es satisfecha sean cuales sean los números naturales con los que se interpreten las variables \[ x \] e \[ y \], y esto es equivalente a que sea verdadera la sentencia \[ \forall xy(x+y=y+x) \]. Por el contrario, la fórmula \[ x=Sy \] no es ni verdadera ni falsa, pues es satisfecha con ciertas valoraciones (las que asignan a la variable \[ x \] el número siguiente al que asignan a la variable \[ y \]) y no es satisfecha por otras.

Insistimos en que la equivalencia entre

\[ M\vDash x+y=y+x \] y \[ M\vDash \forall xy(x+y=y+x) \]

sólo expresa un convenio arbitrario que acabamos de adoptar: que, a efectos de que una fórmula se considere verdadera, debe ser satisfecha con cualquier valoración o, lo que es lo mismo, las variables libres se deben considerar cuantificadas universalmente.

Observemos que si \[ \alpha \] es una sentencia, entonces, o bien es satisfecha en un modelo por todas las valoraciones o bien no lo es por ninguna, pues hemos demostrado que de la valoración considerada solo influye su actuación sobre las variables libres, y en este caso no las hay. Por lo tanto:

Teorema: Toda sentencia es verdadera o falsa en un modelo dado.

Está claro que las fórmulas:

\[ \alpha_1\equiv \exists x\ y = Sx \],   \[ \alpha_2\equiv \exists z\ y = Sz \],   

son equivalentes, en el sentido de que, fijado un modelo y una valoración, \[ M\vDash \alpha_1[v] \] es equivalente a \[ M\vDash \alpha_2[v] \]

Observemos en general que si en una fórmula cambiamos sistemáticamente una variable ligada (y no libre) por otra nueva (es decir, por otra que no esté presente en la fórmula) esto no altera su significado, es decir, que la formula inicial y la final serán ambas satisfechas o no por una valoración dada en un modelo.  La razón es que al interpretar una fórmula no tenemos en cuenta la interpretación que asigna la valoración a una variable ligada, sino que consideramos todas sus interpretaciones posibles (para ver si todas cumplen lo requerido, en el caso de un cuantificador universal, o si alguna lo cumple, en el caso existencial). Esto debería bastar para que uno se convenza de lo dicho, de manera que la demostración tediosa siguiente no debería aportar gran cosa a nadie.

Demostración tediosa
En primer lugar probamos que si \[ t \] es un término y \[ t' \] es el término que resulta de cambiar toda aparición de la variable \[ x \] por una nueva variable \[ y \], entonces, fijado un modelo \[ M \] y una valoración \[ v \], se cumple que

\[ M(t)[v] \equiv M(t')[v_y^{v(x)}] \].

En efecto, razonamos por inducción sobre la longitud de \[ t \]. Si \[ t\equiv z \] es una variable distinta de \[ x \] (luego de \[ y \]), entonces \[ t'\equiv z \], y entonces
\[ M(t)[v] \equiv v(x)\equiv  M(t')[v_y^{v(x)}] \].

Si \[ t\equiv x \], entonces \[ t'\equiv y \], luego \[ M(t)[v] \equiv v(x)\equiv v_y^{v(x)}(y)\equiv  M(t')[v_y^{v(x)}] \].

Si \[ t \] es una constante es trivial, pues el objeto que denota no depende de la valoración.

Si \[ t\equiv ft_1\cdots t_n \], entonces \[ t'\equiv ft'_1\cdots t'_n \] y por hipótesis de inducción todos los términos \[ t_i \] y \[ t'_i \] denotan los mismos objetos \[ \overline{t_i}=\overline{t'_i} \] respecto de las dos valoraciones \[ v \] y \[ v_y^{v(x)} \] respectivamente, luego también

\[ M(t)[v] \equiv M(f)(\overline{t_1},\ldots, \overline{t_n}) \equiv M(f)(\overline{t'_1},\ldots, \overline{t'_n})\equiv M(t')[v_y^{v(x)}] \].

Seguidamente probamos que si \[ \alpha \] una fórmula y \[ \alpha' \] es la fórmula que resulta de cambiar todas sus variables \[ x \] por una nueva variable \[ y \]. Entonces, fijado un modelo \[ M \] y una valoración \[ v \]:

\[ M\vDash \alpha[v] \] si y sólo si \[ M\vDash \alpha'[v_y^{v(x)}] \].

En efecto, si \[ \alpha\equiv Rt_1\cdots t_n \], entonces \[ \alpha'\equiv Rt'_1\cdots t'_n \] y hemos probado que los términos \[ t_i \] y \[ t'_i \] denotan un mismo objeto \[ \overline{t_i}=\overline{t'_i} \] con las dos valoraciones, luego

\[ M\vDash \alpha[v] \] si y sólo si \[ M(R)(\overline{t_1},\ldots, \overline{t_n}) \] si y sólo si \[ M(R)(\overline{t'_1},\ldots, \overline{t'_n}) \] si y sólo si \[ M\vDash \alpha'[v_y^{v(x)}] \].

Los casos \[ \alpha\equiv \lnot\beta \] y \[ \alpha\equiv \beta\rightarrow \gamma \] son inmediatos.

Si \[ \alpha\equiv \forall z\beta \], donde \[ z \] no es \[ x \], entonces \[ \alpha'\equiv \forall z\beta' \], de modo que

\[ M\vDash \forall z\beta \] si y sólo si para todo \[ a \] en el universo del modelo \[ M\vDash \beta[v_z^a] \], si y sólo si \[ M\vDash \beta'[v_{zy}^{av(x)}] \] si y sólo si \[ M\vDash \beta'[v_{yz}^{v(x a)}] \] si y sólo si \[ M\vDash \forall z\beta'[v_y^{v(x)}] \].

Si \[ \alpha\equiv \forall x\beta \], entonces \[ \alpha'\equiv \forall y\beta' \] y entonces

\[ M\vDash \forall x\beta[v] \] si y sólo si para todo \[ a \] en el universo del modelo \[ M\vDash \beta [v_x^a] \], si y sólo si \[ M\vDash \beta'[v_{xy}^{av_x^a(x)}] \] si y sólo si (siempre para todo \[ a \]) \[ M\vDash \beta'[v_{xy}^{aa}] \] si y sólo si \[ M\vDash \beta'[v_{y}^{a}] \] (porque \[ x \] no aparece en \[ \beta' \], ni libre ni ligada) si y sólo si \[ M\vDash \forall y\beta'[v] \]

En particular, si \[ x \] está ligada y no libre en \[ \alpha \], entonces \[ y \] no está libre en \[ \alpha' \], luego lo que hemos probado se reduce a

\[ M\vDash \alpha[v] \] si y sólo si \[ M\vDash \alpha'[v] \],

como queríamos probar.
[cerrar]

Esto hace que en cualquier momento podemos cambiar una variable ligada por otra (nueva) sin cambiar el significado de una fórmula. Por ello, se considera "de mal gusto" escribir fórmulas como

\[ x= 0\land \exists x\ x = S0 \]

En su lugar, es preferible escribir

\[ x= 0\land \exists y\ y = S0 \],

para evitar que la variable \[ x \] deba ser interpretada de dos formas distintas (primero como una variable libre que requiere, para que la fórmula sea satisfecha, una valoración que le asigne como interpretación el cero, y luego como una variable ligada que puede ajustarse como haga falta para que se cumpla la segunda parte, de modo que la interpretación "correcta" en la segunda parte no tiene nada que ver con la interpretación de la variable en la primera parte). Decimos "de mal gusto" porque no hay nada de incorrecto en ella, pero los matemáticos prefieren que (en un mismo contexto) objetos que no son necesariamente el mismo estén representados por variables distintas. Fórmulas como \[ x= 0\land \exists x\ x = S0 \] son técnicamente correctas y su uso no genera ningún problema, pero siempre es posible sustituirlas por fórmulas como \[ x= 0\land \exists y\ y = S0 \], que significan lo mismo y son "más claras". De hecho, si uno no lo piensa mucho puede creer que la fórmula \[ x= 0\land \exists x\ x = S0 \] no puede ser satisfecha en el modelo usual de la aritmética (parece que diga que \[ x \] tiene que ser cero y uno a la vez), y no es así. Es satisfecha por cualquier valoración para la que \[ v(x) \] sea el número cero.

16 Marzo, 2013, 10:21
Respuesta #6

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Nos falta discutir un último aspecto sobre los lenguajes formales antes de poder usarlos para formalizar razonamientos. Se trata del concepto de sustitución. Es un concepto que los matemáticos usan cotidiana e instintivamente. Por ejemplo, cuando un matemático escribe

\[ A = \{x\in \mathbb R\mid \alpha(x)\} \]

y luego tiene que \[ 3\in A \], de ahí deduce \[ \alpha(3) \]. Al escribir esto ha sustituido la variable \[ x \] por el término \[ 3 \] en la fórmula \[ \alpha \]. Parece una operación trivial que apenas requiere un comentario para ser definida, pero no es exactamente así, como vamos a ver ahora. En esencia es ciertamente trivial, pero hay una cuestión técnica que debemos tener presente a la hora de tratar con sustituciones.

Para empezar, a la hora de tratar teóricamente con la sustitución, es preferible usar una notación más explícita, en la que se vean todos los elementos involucrados. En lugar de escribir \[ \alpha(x) \] y \[ \alpha(3) \], escribiremos \[ \alpha \] (porque una fórmula puede tener varias variables libres, y cualquiera de ellas puede ser sustituida en cualquier momento por un término) y escribiremos \[ S_x^3\alpha \] para la sustitución (de modo que se indica claramente que estamos sustituyendo la variable \[ x \] por el término \[ 3 \] en la fórmula \[ \alpha \]). El objetivo de este mensaje es dar una definición precisa de \[ S_x^t\theta \], donde \[ \theta \] es un término o una fórmula, \[ x \] es una variable y \[ t \] es un término.

Como siempre en estos contextos, la idea subyacente al concepto que queremos definir se expresa de forma natural en términos semánticos, es decir, en términos de lo que pretendemos que signifique lo que queremos definir, supuesto que hayamos fijado un modelo para el lenguaje formal considerado, pero al final daremos una definición puramente sintáctica (formal) que no haga referencia a ningún modelo posible, pero de tal modo que cuando se fije un modelo se corresponda con lo que pretendíamos.

En términos semánticos, el propósito de la sustitución es el siguiente:

Si \[ \color{blue} T \] es un término, una sustitución \[ \color{blue} S_x^tT \] debe ser otro término con la propiedad de que el objeto que denote en un modelo dado sea el objeto que denota el término \[ \color{blue} T \] cuando la variable \[ \color{blue} x \] se interpreta como el objeto denotado por el término \[ \color{blue} t \]

Si \[ \color{blue} \alpha \] es una fórmula, una sustitución \[ \color{blue} S_x^t\alpha \] debe ser otra fórmula que sea satisfecha en un modelo si \[ \color{blue} \alpha \] es satisfecha interpretando la variable \[ \color{blue} x \] como el objeto denotado por \[ \color{blue} t \].


Veamos algún ejemplo concreto con el lenguaje de la aritmética (y su modelo natural):

Si \[ T= Sx \], se trata de un término que significa "el siguiente del número natural \[ x \]". El objeto que denota en el modelo natural depende de la valoración \[ v \] que consideremos, pues será el siguiente del número natural \[ v(x) \].

¿Qué queremos que sea \[ S_x^{SS0}Sx \]? Queremos que sea un término que signifique lo mismo que \[ T \], es decir, "el siguiente de \[ x \]", pero cuando la variable \[ x \] se interpreta concretamente como el objeto denotado por \[ SS0 \], es decir, como el número natural dos. Así pues, \[ S_x^{SS0}Sx \] debe denotar al siguiente del número natural dos, es decir, el tres. Por lo tanto, lo natural es tomar \[ S_x^{SS0}Sx\equiv SSS0 \], que es simplemente lo que resulta de quitar la variable \[ x \] y poner en su lugar el término \[ SS0 \], es decir, lo que vulgarmente se entiende por "sustituir".

Veamos ahora un ejemplo con una fórmula: tomemos

\[ \alpha\equiv \forall y(\exists z\ x=y\cdot z\land y\neq S0\rightarrow \exists w\ y=w\cdot SS0) \]

Esta fórmula dice que todo divisor de \[ x \] distinto de \[ 1 \] es par. Más precisamente, esta fórmula es satisfecha en el modelo natural del lenguaje de la aritmética si y sólo si el objeto denotado por \[ x \], es decir, \[ v(x) \], tiene todos sus divisores no triviales pares o, equivalentemente, si y sólo si \[ v(x) \] es potencia de dos.

¿Qué queremos que sea \[ S_x^{SSSx}\alpha \]? Tiene que ser una fórmula que ya no sea satisfecha cuando \[ v(x) \] sea potencia de dos, sino cuando el objeto denotado por \[ SSSx \] sea potencia de dos, es decir, cuando \[ v(x)+3 \] sea potencia de dos. La fórmula obvia que cumple esto es:

\[ S_x^{SSSx}\alpha\equiv \forall y(\exists z\ SSSx=y\cdot z\land y\neq S0\rightarrow \exists w\ y=w\cdot SS0) \].

Una vez más, se trata de la fórmula que se obtiene quitando \[ x \] y poniendo en su lugar \[ SSSx \], es decir, "sustituyendo", en el sentido usual de la palabra.

Esto podría llevarnos a pensar que una definición puramente sintática de \[ S_x^t\theta \] (sin hacer referencia a modelos) es definirlo como la expresión (término o fórmula, según lo sea \[ \theta \]) que resulta de cambiar cada \[ x \] que aparezca en \[ \theta \] por el término \[ t \]. Sin embargo, dar esa definición no sería una buena idea, al menos sin tener presentes un par de cuestiones técnicas.

1) En primer lugar tenemos las "fórmulas de mal gusto" en las que una misma variable puede aparecer a la vez libre y ligada. La fórmula siguiente es lógicamente equivalente a la que hemos puesto como ejemplo, en el sentido de que será satisfecha en cualquier modelo y con cualquier valoración si y sólo si lo es la que hemos dado:

\[ \alpha^*\equiv \forall y(\exists z\ x=y\cdot z\land y\neq S0\rightarrow \exists x\ y=x\cdot SS0) \]

Cuando interpretamos esta fórmula en un modelo con una valoración, la primera \[ x \] que aparece se interpretará como \[ v(x) \], mientras que la segunda \[ x \], al estar ligada por el cuantificador \[ \exists x \], se interpretará como convenga (si es posible) para que se cumpla la fómrula que sigue al cuantificador, y no será necesario asignarle precisamente el valor \[ v(x) \].

Según explicábamos en otro mensaje, los matemáticos evitan este tipo de fórmulas, y en lugar de expresar así la propiedad "tener sólo divisores pares", la expresan con la fórmula inicial, donde la variable \[ x \] no representa dos papeles distintos. Pero lo cierto es que estas fórmulas existen, y nuestra definición debe dar cuenta de ellas, y si seguimos al pie de la letra nuestra propuesta de definición de sustitución obtendríamos este "engendro" que ni siquiera es una fórmula:

\[ S_x^{SSSx}\alpha^*\equiv \forall y(\exists z\ SSSx=y\cdot z\land y\neq S0\rightarrow \exists SSSx\ y=SSSx\cdot SS0) \]

Observemos que esto no es una fórmula porque las reglas sintácticas no permiten escribir \[ \exists SSSx \], sino que detrás de un cuantificador sólo puede ir una variable. Pero aunque corrigiéramos nuestra definición para no tocar las variables que siguen a los cuantificadores y calculáramos esto:

\[ S_x^{SSSx}\alpha^*\equiv \forall y(\exists z\ SSSx=y\cdot z\land y\neq S0\rightarrow \exists x\ y=SSSx\cdot SS0) \]

seguiríamos sin acertar, porque esta fórmula no significa que el objeto denotado por \[ x \] más tres es potencia de dos. Aquí dice que todo divisor de \[ x \] más tres distinto de \[ 1 \] es un número par mayor o igual que \[ 6 \], cosa que no cumple, por ejemplo, el \[ 1 \], a pesar de que \[ 1+3=4 \] es potencia de dos.

La sustitución correcta es:

\[ S_x^{SSSx}\alpha^*\equiv \forall y(\exists z\ SSSx=y\cdot z\land y\neq S0\rightarrow \exists x\ y=x\cdot SS0) \]

y la moraleja que extraemos de este ejemplo es que la sustitución \[ S_x^t\alpha \] debe definirse de modo que las apariciones ligadas de \[ x \] no se alteren en absoluto. Sustituir una variable por un término es sustituir únicamente las apariciones libres de la variable.

Sin embargo, esta precisión era la menor de las dos consideraciones que nos vemos obligados a hacer si queremos llegar a un concepto de "sustitución" que se corresponda realmente con nuestro objetivo en todos los casos.

2) Volvamos a nuestra fórmula \[ \alpha \] original, sin el doble papel "de mal gusto" que la \[ x \] tenía en la fórmula \[ \alpha^* \], pero supongamos ahora que queremos calcular \[ S_x^{y+z}\alpha \].

Puesto que \[ \alpha \] significa "\[ x \] es potencia de dos", queremos que \[ S_x^{y+z}\alpha \] signifique "\[ y+z \] es potencia de dos", pero si nos limitamos a sustituir cada \[ x \] (libre) que aparece en \[ \alpha \] por \[ y+z \] lo que nos sale es:

\[ S_x^{y+z}\alpha\equiv \forall y(\exists z\ y+z=y\cdot z\land y\neq S0\rightarrow \exists w\ y=w\cdot SS0) \]

y esto es un "enredo" que nada tiene que ver con que los divisores de \[ y+z \] sean pares. Ahí dice algo que es cierto, algo así como que, para todo número \[ y \], si existe un \[ z \] que cumple la ecuación \[ y+z=yz \] e \[ y \] no es uno, entonces \[ y \] es par (y es cierto porque la condición sólo se da cuando \[ y=2,z=2 \]). ¿Qué ha fallado? Que las variables \[ y, z \] estaban libre en \[ y+z \], pero al meter este término en el lugar de \[ x \], han quedado en el radio de alcance de los cuantificadores \[ \forall y\ \exists z \], y se han mezclado con otras \[ y, z \] que ya estaban en la fórmula \[ \alpha \], y el resultado ha sido completamente imprevisible.

Los libros de lógica evitan estas sustituciones incontroladas de dos formas distintas:

A) Quizá la solución más aceptada sea prohibir que se realice la sustitución en este caso. Para ello definen que una variable \[ x \] es sustituible por un término \[ t \] en una fórmula \[ \alpha \] si ninguna variable que está (libre) en \[ t \] aparece ligada en \[ \alpha \], y sólo consideran definida la sustitución \[ S_x^t\alpha \] cuando se cumple esta condición.

En nuestro ejemplo, la variable \[ x \] no es sustituible por el término \[ y+z \] en la fórmula \[ \alpha \] porque las variables \[ y, z \] están en \[ y+z \] y están ligada en \[ \alpha \].

La solución A), con ser, como decimos, la más habitual y totalmente operativa, tiene dos defectos. Uno es que obliga a poner como hipótesis en todos los teoremas que involucren una sustitución que tal o cual variable debe ser sustituible por tal o cual término en tal o cual fórmula, lo cual supone mantener en un constante primer plano lo que es una mera anécdota que nunca se encuentra uno en la práctica.

El segundo inconveniente es que esto de que ciertas variables no puedan ser sustituidas por ciertos términos es algo totalmente ajeno a la práctica habitual del matemático que razona competentemente sin conocer los tecnicismos de la lógica. Si un matemático ve \[ \alpha(x) \] y tiene un \[ t \] a mano y le interesa decir que \[ t \] cumple \[ \phi(x) \], no concibe que no pueda escribir \[ \phi(t) \]. ¿Qué hace en la práctica un matemático? La realidad es que lo que hace es evitar que se le den casos como el que nos ocupa eligiendo prudentemente las variables, pero imaginemos que, por un descuido, un matemático ha escrito la fórmula \[ \alpha \] como nosostros lo hemos hecho y, en el curso de un razonamiento está trabajando con una \[ y \] y una \[ z \] y se ve en la necesidad de decir que \[ y+z \] cumple la propiedad \[ \alpha \]. ¿Qué haría?

El matemático vería \[ \alpha \]:

\[ \forall y(\exists z\ x=y\cdot z\land y\neq S0\rightarrow \exists w\ y=w\cdot SS0) \],

se daría cuenta de que no puede meter ahí \[ y+z \] sin hacer un estropicio y, en lugar de detenerse, corregiría la fórmula \[ \alpha \], cambiándola por

\[ \forall u(\exists v\ x=u\cdot v\land u\neq S0\rightarrow \exists w\ u=w\cdot SS0) \],

pues sabe que las \[ y, z \] que aparecen ligadas en la fórmula no tienen nada que ver con las \[ y,z \] concretas que está manejando y que le aparecen en su término \[ y+z \], y sabe que si en la fórmula cambia las \[ y, z \] ligadas por unas \[ u,v \] ligadas pasa a otra fórmula que significa lo mismo, que le vale igual, y ahora puede sustituir con tranquilidad y escribir que

\[ S_x^{y+z}\alpha\equiv \forall u(\exists v\ y+z=u\cdot v\land u\neq S0\rightarrow \exists w\ u=w\cdot SS0) \]

Así obtiene una fórmula que realmente significa "\[ y+z \] es potencia de dos".

En definitiva, la solución B) al problema consiste en definir la sustitución incluyendo instrucciones para sustituir variables ligadas cuando éstas entran en conflicto con variables del término que queremos sustituir. Con esto complicamos la definición de sustitución, pero eso afecta únicamente a los tres o cuatro resultados que hay que demostrar basándose en la definición de sustitución y, a partir de ahí, como las sustituciones se tratarán apelando a esos tres o cuatro resultados ya demostrados, en la práctica usual este caso patológico no deja rastro alguno. Ni hace falta añadir hipótesis a los teoremas recordando siempre lo que no es más que un caso extraño, ni hace falta contradecir la idea natural de que cualquier variable es sustituible en cualquier fórmula por cualquier término si uno tiene dos dedos de frente a la hora de hacerlo.

Naturalmente, adoptaremos la solución B), y tras esta discusión ya estamos en condiciones de dar una definición sintáctica no ingenua de sustitución de una variable por un término. En el próximo mensaje daremos dicha definición y demostraremos que cumple lo requerido.

18 Marzo, 2013, 12:12
Respuesta #7

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Ahora estamos en condiciones de definir el concepto de sustitución, teniendo en cuenta los requisitos apuntados por la discusión del hilo precedente.

La sustitución de una variable por un término en otro término no tiene ninguna complicación. Simplemente \[ S_x^tT \] es el término que resulta de cambiar cada \[ x \] por una \[ T \]. Una definición recurrente es esta:

\[ S_x^t y\equiv \left\{\begin{array}{lll} t & \mbox{si}& y\equiv x\\ y & \mbox{si}& y\not\equiv x\end{array}\right. \]

Observación
Aquí hay que entender que \[ x \], \[ y \] son variables de un sistema formal. Por ejemplo, podría ser \[ x\equiv x_5 \], \[ y\equiv x_7 \], pero también podría ser \[ x\equiv y\equiv x_5 \], y ésos son los dos casos que distinguimos. Normalmente, cuando en una fórmula escribimos, por ejemplo, \[ \forall xy \], sobrentendemos que \[ x \] e \[ y \] representan dos variables distintas, aunque no se especifique, pero en la definición de sustitución de una variable por un término en una variable necesitamos considerar el caso en que la variable sea la variable a sustituir o que sea otra distinta, y por ello (puntualmente) hemos incumplido el convenio tácito de que letras distintas hacen referencia a variables distintas.
[cerrar]

Si \[ c \] es una constante, \[ S_x^tc \equiv c \].

\[ S_x^t ft_1\cdots t_n\equiv fS_x^tt_1\cdots S_x^tt_n \].

La última relación indica que para sustituir \[ x \] por \[ t \] en un término de la forma \[ ft_1\cdots t_n \] basta dejar el funtor como está y sustituir la variable en cada uno de los términos que le siguen.

Estas reglas permiten calcular en la práctica cualquier sustitución en un término en un número finito de pasos. Más aún, nos muestran (por si alguien no lo consideraba evidente) que al sustituir una variable por un término en un término, lo que sale sigue siendo un término, pues vemos que es siempre una variable, el término sustituido, una constante o una cadena de la forma funtor n-ádico seguido de n términos.

Observación
El último argumento es en realidad un argumento por inducción sobre la longitud de un término. Más explícitamente puede razonarse así: supongamos que existiera un término \[ T \] tal que al calcular la sustitución \[ S_x^tT \] el resultado no fuera un término. Si hay un término así, podemos tomar uno \[ T \] que tenga la longitud mínima posible. Ahora bien, dicho \[ T \] no puede ser una variable, pues la definición de sustitución en una variable implica que el resultado es una variable o \[ t \], ni puede ser una constante, pues el resultado sería una constante, ni puede ser \[ T\equiv ft_1\cdots t_n \], ya que entonces los términos \[ t_i \] tendrían longitud menor que \[ T \], luego por la elección de \[ T \] se cumpliría que cada \[ S_x^tt_i \] es un término, y entonces \[ S_x^t T \] también lo sería. Como \[ T \] tendría que ser de una de estas formas por definición de término, concluimos que \[ T \] no puede existir.
[cerrar]

Es en la definición de una variable por un término en una fórmula donde las consideraciones del hilo anterior nos llevan a dar una definición algo más sofisticada de lo que uno podría esperar:

\[ S_x^tRt_1\cdots t_n\equiv RS_x^tt_1\cdots S_x^tt_n \]

(es decir, la sustitución de \[ x \] por \[ t \] en una fórmula atómica se define dejando el relator como está y sustituyendo \[ x \] por \[ t \] en cada uno de los términos.

\[ S_x^t\lnot\alpha\equiv \lnot S_x^t\alpha \]

\[ S_x^t(\alpha\rightarrow \beta)\equiv S_x^t\alpha\rightarrow S_x^t\beta \]

(Estas dos condiciones implican a su vez que \[ S_x^t(\alpha\lor \beta)\equiv S_x^t\alpha\lor S_x^t\beta \], \[ S_x^t(\alpha\land \beta)\equiv S_x^t\alpha\land S_x^t\beta \], \[ S_x^t(\alpha\leftrightarrow \beta)\equiv S_x^t\alpha\leftrightarrow S_x^t\beta \]. Basta sustituir cada conector por su definición y aplicar las reglas que acabamos de dar.)

\[ S_x^t\forall y\alpha\equiv \left\{\begin{array}{lll} \forall y\alpha & \mbox{ si } x \text{ no está libre en } \forall y\alpha\\ \forall yS_x^t\alpha & \mbox{si }  x \text{ está libre en }\forall y\alpha \text{ e } y \text{ no está libre en } t\\
\forall z S_x^tS_y^z\alpha&\mbox{si } x \text{ está libre en } \forall x\alpha,\ y \text{ está libre en } t.\end{array}\right. \]

En el tercer caso, \[ z \] es la variable de menor índice que no está ni en \[ \forall y\alpha \] ni en \[ t \]. De la definición del cuantificador existencial se sigue fácilmente que la misma regla vale cambiando \[ \forall \] por \[ \exists \].

Nota conceptual importante
La última condición de la definición de sustitución no es evidente. Si uno lee las observaciones del hilo anterior puede convencerse de que es "razonable", pues lo que dice la primera condición es que si la variable \[ x \] no está libre no se realiza sustitución alguna, y que si la variable \[ y \] (que está ligada en \[ \forall y\alpha \] está libre en \[ t \], antes de hacer la sustitución cambiamos \[ y \] por una variable nueva \[ z \], de modo que la \[ y \] siga quedando libre en el resultado de la sustitución.

Pero es importante comprender que nada de esto es suficiente. En el hilo anterior hemos visto que hay que tomar ciertas precauciones si queremos que la sustitución se comporte correctamente, pero ¿hemos tenido en cuenta todo lo que hacía falta tener en cuenta? ¿No puede ocurrir que, aparte de los problemas señalados en el hilo anterior pudiera haber otros que no hemos tenido en cuenta y que vuelvan "defectuosa" la definición que acabamos de dar? La respuesta es negativa, pero lo que garantiza que nuestra definición es correcta es el teorema siguiente, que demuestra que la sustitución se comporta exactamente como pretendíamos que se comportara.

Esto está relacionado con una discusión desarrollada en el hilo de comentarios: si uno toma un libro de lógica, se encuentra con esta definición de sustitución u otra distinta y la acepta porque sí, y uno o dos temas más adelante se encuentra con el teorema siguiente, y lo toma simplemente como "una propiedad que tiene la sustitución", sin darse cuenta de que no es "una propiedad más", sino la justificación de que la sustitución está bien definida, entonces está adquiriendo una visión deformada de la lógica, pues no está siendo consciente de que las definiciones "porque sí" son inadmisibles, que hay que demostrar que las definiciones que se dan cumplen la función que se espera de ellas y, sí, el libro lo demostrará, pero no basta con que esté demostrado, hace falta comprender que esa demostración no es gratuita, sino que es un requisito indispensable para justificar que lo que estamos haciendo no es un juego en el que se fijan las reglas por capricho o conveniencia, sino que son pasos en un programa concreto con un objetivo concreto cuya consecución debe ser justificada: formalizar el razonamiento (aunque de momento estamos en el paso previo de formalizar el lenguaje que se usa en los razonamientos). Formalizar no es inventar, es cerciorarse de que las definiciones formales describen fielmente los conceptos no formalizados que deseamos capturar mediante definiciones formales.

Es como si tengo un problema que involucra unas ciudades y unas carreteras que las unen, y quiero tratarlo formalmente, y para ello decido representar los datos como un grafo. Si tengo siete ciudades (objetos no matemáticos, no son conjuntos de la teoría de conjuntos), no puedo "formalizar" el problema tomando un grafo de cinco vértices. No puedo decir que "mis ciudades" son por definición los vértices de un grafo de cinco vértices. La formalización debe reflejar las características relevantes de la situación no formalizada que se quiere capturar para estudiarla matemáticamente, no soy libre de definir como quiera un grafo que debe representar a las ciudades (no formalizadas) de mi problema. Debo justificar que la formalización se ajusta a la realidad a formalizar. Nuestro caso es idéntico.
[cerrar]

Teorema: Consideremos un lenguaje formal,  un modelo \[ M \] y una valoración \[ v \]. Sean \[ x, t, T y \alpha \] una variable, dos términos y una fórmula del lenguaje. Entonces:

\[ M(S_x^tT)[v]\equiv M(T)[v_x^{M(t)[v]}] \]

\[ M\vDash (S_x^t\alpha)[v] \] se cumple si y sólo si  \[ M\vDash \alpha[v_x^{M(t)[v]}] \]


La primera parte dice que el objeto denotado por \[ S_x^tT \] es el objeto denotado por \[ T \] cuando la variable \[ x \] se interpreta como el objeto denotado por \[ t \]. La segunda parte dice que \[ S_x^t\alpha \] es satisfecha si y sólo si \[ \alpha \] es satisfecha cuando la variable \[ x \] se interpreta como el objeto denotado por \[ t \]. Son estos hechos los que nos permiten decir que la sustitución está "bien definida" en el sentido de que es una expresión definida "como haga falta" para que al final signifique lo que tiene que significar.

Demostración
Probamos primero la parte de los términos. Razonamos por inducción sobre la longitud de \[ T \]. Esto supone considerar un \[ T \] de longitud mínima que incumpliera el resultado para llegar a una contradicción. En la práctica, basta ver que el teorema se cumple para variables y constantes, y demostrar que se cumple para términos \[ ft_1\cdots t_n \] supuesto que se cumpla para \[ t_1\cdots t_n \].

En efecto:

Si \[ T\equiv x \] tenemos:

\[ M(S_x^tx)[v] \equiv M(t)[v] \equiv M(x)[v_x^{M(t)[v]}] \]

Si \[ T\equiv y \] es una variable distinta de \[ x \] entonces

\[ M(S_x^ty)[v]\equiv M(y)[v] \equiv v(y)\equiv M(y)[v_x^{M(t)[v]}] \], porque la últma valoración asigna a \[ y \] el valor \[ v(y) \].

Si \[ T\equiv c \] entonces

\[ M(S_x^tc)[v]\equiv M(c)[v]\equiv M(c)\equiv M(c)[v_x^{M(t)[v]}] \].

Si \[ T\equiv ft_1\cdots t_n \] y el resultado vale para los \[ t_i \], entonces

\[ M(S_x^tft_1\cdots t_n)[v]\equiv M(fS_x^tt_1\cdots S_x^tt_n)[v]\equiv \bar f(M(S_x^tt_1)[v],\ldots, M(S_x^tt_n)[v])\equiv \bar f(M(t_1)[v_x^{M(t)[v]}],\ldots, M(t_n)[v_x^{M(t)[v]}]) \]

\[ \equiv M(ft_1\cdots t_n)[v_x^{M(t)[v]}] \],

donde hemos representado por \[ \bar f \] la función asociada a \[ f \] por el modelo \[ M \]. Ahora vamos a probar la propiedad para las fórmulas. Razonamos de nuevo por inducción sobre la longitud de \[ \alpha \]. En el primer caso usamos la parte ya probada:

Si \[ \alpha\equiv Rt_1\cdots t_n \] y llamamos \[ \overline R \] a la relación asociada a \[ R \] por el modelo, entonces

\[ M\vDash  S_x^tRt_1\cdots t_n[v] \] equivale a \[ M\vDash  RS_x^tt_1\cdots S_x^tt_n[v] \], que a su vez equivale a \[ \overline R(M(S_x^tt_1)[v],\cdots, M(S_x^tt_n)[v]) \], que por la parte ya probada equivale a \[ \overline R(M(t_1)[v_x^{M(t)[v]}],\cdots, M(t_n)[v_x^{M(t)[v]}]) \], pero esto es lo mismo que \[ M\vDash Rt_1\cdots t_n[v_x^{M(t)[v]}] \].

Si vale para \[ \alpha \], entonces

\[ M\vDash S_x^t\lnot\alpha[v] \] equivale a \[ M\vdash \lnot S_x^t\alpha[v] \], que equivale a que no se cumpla \[ M\vdash  S_x^t\alpha[v] \], que, por hipótesis de inducción equivale a que no se cumpla \[ M\vDash \alpha[v_x^{M(t)[v]}] \], que a su vez equivale a que \[ M\vDash \lnot \alpha[v_t^{M(t)[v]}] \].

El razonamiento para \[ \alpha\rightarrow \beta \] es análogo y lo dejamos al lector.

Consideremos ahora una fórmula \[ \forall y\alpha \] y suponemos que el resultado vale para \[ \alpha \]. Distinguimos los tres casos que se distinguen en la definición de sustitución:

Si \[ x \] no está libre en \[ \forall y\alpha \], entonces

\[ M\vDash (S_x^t\forall y\alpha)[v] \] es lo mismo que \[ M\vDash \forall y\alpha[v] \], que es lo mismo que \[ M\vDash \forall y\alpha[v_x^{M(t)[v]}] \], donde hemos usado que la satisfacción sólo depende de cómo actúa la valoración sobre las variables libres en la fórmula, y como \[ x \] no está libre en la fórmula considerada, podemos cambiar \[ v \] por \[ v_x^{M(t)[v]} \] sin que ello influya en nada.

Si \[ x \] está libre en \[ \forall y\alpha \] pero \[ y \] no está libre en \[ t \], entonces

\[ M\vDash (S_x^t\forall y \alpha)[v] \] equivale a \[ M\vDash (\forall yS_x^t\alpha)[v] \], que a su vez equivale a que para todo \[ a \] del universo del modelo se cumpla \[ M\vDash (S_x^t\alpha)[v_y^a] \]. Por hipótesis de inducción esto equivale a que, para todo \[ a \], se cumpla \[ M\vDash \alpha[v_{yx}^{aM(t)[v_y^a]}] \].

Ahora usamos que, como \[ y \] no está libre en \[ t \], se cumple que \[ M(t)[v_y^a]\equiv M(t)[v] \] y que, como \[ x \] y \[ y \] son variables distintas (porque una está libre en \[ \forall y\alpha \] y la otra no), la valoración  \[ v_{yx}^{aM(t)[v]} \] es la misma que \[ v_{xy}^{M(t)[v]a} \]. Por lo tanto, la última condición que hemos obtenido es equivalente a que para todo \[ a \] del universo del modelo se cumpla \[ M\vDash \alpha[v_{xy}^{M(t)[v]a}] \], lo cual equivale a que \[ M\vDash \forall y\alpha[v_x^{M(t)[v]}] \].

Por último, supongamos que \[ x \] está libre en \[ \forall y\alpha \], que \[ y \] está libre en \[ t \] y sea \[ z \] la menor variable que no está ni en \[ \forall y\alpha \] ni en \[ t \]. (En particular \[ z \] es distinta de \[ x \] y de \[ y \].)

\[ M\vDash S_x^t\forall y\alpha[v] \] equivale a que \[ M\vDash \forall z S_x^tS_y^z\alpha [v] \]. Por definición de satisfacción esto equivale a que para todo \[ a \] en el universo del modelo se cumpla \[ M\vDash S_x^t S_y^z\alpha [v_z^a] \].

Ahora aplicamos la hipótesis de inducción a la fórmula \[ S_y^z\alpha \], que tiene longitud igual a \[ \alpha \] (porque cambiar una variable por otra no altera la longitud), luego menor que \[ \forall y\alpha \]. Así, lo anterior equivale a que para todo \[ a \] en el universo del modelo \[ M\vDash S_y^z\alpha[v_{zx}^{aM(t)[v_z^a]}] \].

Notemos que \[ M(t)[v_z^a] \] es lo mismo que \[ M(t)[v] \], porque la variable \[ z \] no está libre en \[ t \], luego no importa el valor que le asigne \[ v \]. Usando la hipótesis de inducción para \[ \alpha \] esto equivale a que (siempre para todo \[ a \]) \[ M\vDash \alpha[v_{zxy}^{aM(t)[v]M(z)[v_{zx}^{aM(t)[v]}]}] \].

Aquí observamos que \[ M(z)[v_{zx}^{aM(t)[v]}]\equiv a \], luego \[ v_{zxy}^{aM(t)[v]M(z)[v_{zx}^{aM(t)[v]}]} \] es lo mismo que \[ v_{zxy}^{aM(t)[v]a} \]. Por lo tanto la condición equivale a que (para todo \[ a \]) \[ M\vDash \alpha[v_{zxy}^{aM(t)[v]a}] \]. Pero \[ z \] no está libre en \[ \alpha \], luego el valor que la valoración asigna a \[ z \] es irrelevante, luego esto equivale a \[ M\vDash \alpha[v_{xy}^{M(t)[v]a}] \].

Por definición de satisfacción esto equivale a que \[ M\vDash \forall y\alpha[v_{x}^{M(t)[v]}] \], como queríamos probar.
[cerrar]

En la prueba anterior se ve la utilidad de haber introducido los signos \[ \lor, \land, \leftrightarrow, \exists \] como signos definidos y no primitivos. Si fueran signos primitivos tendríamos que haber añadido a la prueba un caso más para cada uno de ellos. Ahora sabemos (con la prueba tal como la hemos presentado) que el resultado es cierto para toda fórmula, luego en particular para las que contienen los signos definidos.

Como explicábamos en el mensaje anterior, los matemáticos no usan la notación \[ S_x^t\alpha \], sino que en su lugar prefieren escribir \[ \alpha(x) \] sin que esto indique nada en especial (la variable \[ x \] puede estar o no libre en \[ \alpha \] y aparte puede haber otras variables libres), pero cuando luego escriben \[ \alpha(t) \] eso es una forma de escribir \[ S_x^t\alpha \].

Un ejemplo de sustitución aparece en la definición de existencia con unicidad. Definimos:

\[ \exists! x\alpha(x)\equiv \exists x\alpha(x)\land \forall xy(\alpha(x)\land \alpha(y)\rightarrow x=y) \],

donde \[ y \] es la variable de menor índice que no está en \[ \exists x\alpha \].

Escrito con la notación \[ S \] para la sustitución sería:

\[ \exists! x\alpha \equiv \exists x\alpha \land \forall xy(\alpha \land S_x^y\alpha\rightarrow x=y) \].

El teorema que justifica que esta definición no es caprichosa, sino que realmente formaliza la existencia con unicidad es el siguiente:

Teorema: Dado un lenguaje formal y fijado un modelo \[ M \] y una valoración \[ v \], se cumple \[ M\vDash \exists!x\alpha[v] \] si y sólo si existe un único \[ a \] en el universo del modelo tal que \[ M\vDash \alpha[v_x^a] \].

Demostración
\[ M\vDash \exists!x\alpha[v] \] equivale a que \[ M\vDash \exists x\alpha[v] \] y \[ M\vDash  \forall xy(\alpha \land S_x^y\alpha\rightarrow x=y)[v] \].

La primera parte equivale a que existe un \[ a \] en el universo del modelo tal que \[ M\vDash \alpha[v_x^a] \].

La segunda parte (aplicando dos veces la definición de satisfacción de un cuantificador) equivale a que para todo par de objetos \[ a \] y \[ b \] en el universo del modelo se cumple

\[ M\vDash (\alpha \land S_x^y\alpha\rightarrow x=y)[v_{xy}^{ab}] \].

Esto equivale a que, \[ a \] y \[ b \] cumplen \[ M\vDash \alpha[v_{xy}^{ab}] \] y \[ M\vDash S_x^y\alpha[v_{xy}^{ab}] \], entonces \[ a\equiv b \].

Como \[ y \] no está en \[ \alpha \], la primera condición equivale a \[ M\vDash \alpha[v_{x}^{a}] \] y por el teorema anterior la segunda equivale a \[ M\vDash \alpha[v_{xyx}^{abM(y)[v_{xy}^{ab}]}] \], que se simplifica obviamente a \[ M\vDash \alpha[v_x^b] \], pues podemos eliminar la modificación de la valoración en \[ y \] (que no está en \[ \alpha \]) y de las dos modificaciones de \[ x \] prevalece la última.

En resumen, la fórmula que hemos definido se satisface si y sólo si:

Existe un \[ a \] en el universo del modelo tal que \[ M\vDash \alpha[v_x^a] \] y si dos elementos \[ a,b \] en dicho universo cumplen \[ M\vDash \alpha[v_x^a] \] y \[ M\vDash \alpha[v_x^b] \], necesariamente \[ a\equiv b \].

Pero esto es lo mismo que decir que sólo hay un \[ a \] que cumpla \[ M\vDash \alpha[v_x^a] \].
[cerrar]

Dejamos como ejercicio probar que el teorema anterior se cumple también con esta definición alternativa de la existencia con unicidad (que no involucra el concepto de sustitución)

\[ \exists! x\alpha\equiv \exists y\forall x(\alpha\leftrightarrow x=y) \],

donde \[ y \] es la menor variable que no está en \[ \exists x\alpha \].

Las dos definiciones posibles que hemos dado son ejemplos de fórmulas lógicamente equivalentes, es decir, de fórmulas tales que una es satisfecha en un modelo cualquiera si y sólo si lo es la otra.

Con esto ya tenemos suficientes resultados sobre lenguajes formales para empezar (a partir del hilo siguiente) a utilizarlos en nuestro proyecto de formalizar el razonamiento.

18 Marzo, 2013, 20:47
Respuesta #8

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Definición: Usaremos la notación \[ \alpha_1,\ldots, \alpha_n\vDash \alpha \] para indicar que \[ \alpha_1,\ldots, \alpha_n, \alpha \] son fórmulas de un lenguaje formal \[ \mathcal L \] tales que es posible demostrar que cuando \[ M \] es un modelo de \[ \mathcal L \] y se cumple \[ M\vDash \alpha_1,\ldots, \alpha_n \] necesariamente se cumple también  \[ M\vDash \alpha \].

En palabras: el hecho de que \[ \alpha_1,\ldots, \alpha_n, \alpha \] sean verdaderas en un modelo hace que necesariamente \[ \alpha \] también lo sea.

Ejemplo: Si \[ \alpha \] y \[ \beta \] son fórmulas arbitrarias de un lenguaje formal, se cumple

\[ \alpha\rightarrow\beta,\ \alpha\vDash \beta \].

Demostración
Vamos a dar dos demostraciones de este hecho:

1) Supongamos que \[ M \] es un modelo del lenguaje considerado y que se cumple \[ M\vDash \alpha \] y \[ M\vDash (\alpha\rightarrow \beta) \], esto significa que, para toda valoración \[ v \] en el modelo, se cumple \[ M\vDash \alpha[v] \] y \[ M\vDash (\alpha\rightarrow \beta)[v] \]. Por definición de satisfacción, lo segundo significa que o bien no \[ M\vDash \alpha[v] \], o bien \[ M\vDash \beta[v] \], pero la primera posibilidad no puede darse, pues tenemos que  \[ M\vDash \alpha[v] \]. Así pues, tiene que ser \[ M\vDash \beta[v] \]. Como esto vale para toda valoración \[ v \], concluimos que \[ M\vDash \beta \], como queríamos probar.

2) Cuando no hay cuantificadores involucrados podemos usar tablas de verdad. En este caso tenemos:

\[ \begin{array}{c|c|c}
\alpha&\beta&\alpha\rightarrow \beta\\
\hline
\color{blue}V&V&\color{blue}V\\
V&F&F\\
F&V&V\\
F&F&V
\end{array} \]

Observamos que en el único caso en que tanto \[ \alpha \] como \[ \alpha\rightarrow\beta \] son verdaderas, sucede que \[ \beta \] también lo es. Como la tabla contempla todas las posibilidades para las tres fórmulas, queda claro que es imposible que  \[ \alpha \] y \[ \alpha\rightarrow\beta \] sean verdaderas en un modelo sin que \[ \beta \] lo sea.
[cerrar]

Se dice que una expresión de la forma \[ \alpha\rightarrow\beta,\ \alpha\vDash \beta \] es una regla de inferencia semántica, es decir, un criterio que nos garantiza que si sabemos que unas fórmulas son verdaderas (en un modelo cualquiera) otra tiene que serlo necesariamente. También se dice que \[ \beta \] es una consecuencia lógica de \[ \alpha \] y \[ \alpha\rightarrow\beta \].

Es costumbre dar nombre a las reglas de inferencia. La del ejemplo anterior se llama modus ponendo ponens (en latín, la regla que afirmando (\[ \alpha \]) afirma (\[ \beta \])), aunque se suele abreviar en modus ponens.

Otro ejemplo es el modus tollendo ponens (la regla que negando (\[ \alpha \]) afirma \[ (\beta) \]):

\[ \alpha\lor\beta,\lnot\alpha\vDash\beta \]

Demostración
Basta considerar la tabla de verdad:

\[ \begin{array}{c|c|c|c}
\alpha&\beta&\lnot\alpha&\alpha\lor\beta\\
\hline
V&V&F&V\\
V&F&F&V\\
F&V&\color{blue} V&\color{blue} V\\
F&F&V&F
\end{array} \]

Vemos que en el único caso (a priori podría haber habido más) en que tanto \[ \lnot\alpha \] como \[ \alpha\lor\beta \] son verdaderas sucede que \[ \beta \] también es verdadera.

Es claro entonces que si tomamos un modelo en el que tanto \[ \lnot\alpha \] como \[ \alpha\lor\beta \] sean verdaderas también lo será \[ \beta \], como queríamos probar.
[cerrar]

El modus tollendo tollens (la regla que niega negando) es

\[ \alpha\rightarrow\beta,\ \lnot\beta\vDash \lnot\alpha \].

Dejamos la comprobación al lector.

Definición: Una clase particular de reglas de inferencia semánticas son las de la forma \[ \vDash \alpha \]. Esto significa que podemos razonar que la fórmula \[ \alpha \] es verdadera en cualquier modelo. Entonces se dice también que \[ \alpha \] es una fórmula lógicamente válida.

Por ejemplo, es fácil comprobar que \[ \vDash \alpha\lor\lnot \alpha \]. Esta regla recibe el nombre de tercio excluido o, en latín, tertium non datur. Demostrarla equivale a comprobar que en su tabla de verdad sólo puede tomar el valor V, cosa que se comprueba trivialmente.

Veamos ahora alguna regla de inferencia que no puede demostrarse mediante tablas de verdad. Por ejemplo la de transitividad de la igualdad:

\[ t_1=t_2,\ t_2=t_3\vDash t_1=t_3 \],
donde \[ t_1,t_2,t_3 \] son términos cualesquiera.

Demostración
Supongamos que \[ M \] es un modelo en el que \[ M\vDash (t_1=t_2) \] y \[ M\vDash (t_2=t_3) \]. Esto significa que, para cualquier valoración \[ v \], se cumple que \[ M\vDash (t_1=t_2)[v] \] y \[ M\vDash (t_2=t_3)[v] \]. A su vez, esto equivale a que \[ M(t_1)[v]\equiv M(t_2)[v] \] y \[ M(t_2)[v]\equiv M(t_3)[v] \], es decir, a que \[ M(t_1)[v] \], \[ M(t_2)[v] \] y \[ M(t_3)[v] \] son el mismo objeto, luego en particular  \[ M(t_1)[v]\equiv M(t_3)[v] \], lo cual equivale a \[ M\vDash (t_1=t_3)[v] \]. Como vale para toda valoración, \[ M\vDash (t_1=t_3) \].
[cerrar]

Tampoco podemos usar tablas de verdad cuando hay cuantificadores involucrados. Por ejemplo en la regla de eliminación del generalizador:

\[ \forall x\alpha\vDash S_x^t\alpha \],

donde \[ x, t, \alpha \] son una variable, un término y una fórmula arbitrarios de un lenguaje formal dado.

Demostración
Supongamos que \[ M \] es un modelo en el que \[ M\vDash\forall x\alpha \]. Esto significa que, para toda valoración \[ v \], se cumple \[ M\vDash (\forall x\alpha)[v] \]. Esto significa que, para todo \[ a \] en el universo del modelo, se cumple \[ M\vDash \alpha[v_x^a] \]. Aplicamos esto concretamente para \[ a\equiv M(t)[v] \]. Entonces \[ M\vDash \alpha[v_x^{M(t)[v]}] \], pero por el teorema fundamental que hemos probado para la sustitución, esto equivale a \[ M\vDash S_x^t\alpha[v] \]. Como vale para toda valoración, concluimos que \[ M\vDash S_x^t\alpha \].
[cerrar]

Veamos un ejemplo más sofisticado que involucra al igualador y a un cuantificador. Si la variable \[ x \] no está libre en el término \[ t \], entonces:

\[ \vDash (\forall x(x=t\rightarrow \alpha)\leftrightarrow S_x^t\alpha) \].

Observemos que los dos miembros de la fórmula afirman (cada cual a su manera) que \[ t \] cumple lo que dice \[ \alpha \].

Demostración
Tomamos un modelo \[ M \] del lenguaje formal considerado y hemos de probar que la fórmula indicada es verdadera en \[ M \]. Esto equivale a que para toda valoración \[ v \] se tiene que cumplir

\[ M\vDash (\forall x(x=t\rightarrow \alpha)\leftrightarrow S_x^t\alpha)[v] \]

Por la tabla de verdad del coimplicador, esto equivale a que se cumple \[ M\vDash \forall x(x=t\rightarrow \alpha)[v] \] si y sólo si se cumple \[ M\vDash(S_x^t\alpha)[v] \].

Supongamos en primer lugar que \[ M\vDash \forall x(x=t\rightarrow \alpha)[v] \]. Esto quiere decir que, para todo \[ a \] en el universo del modelo (y tomamos concretamente \[ a\equiv M(t)[v] \]) se cumple \[ M\vDash (x=t\rightarrow \alpha)[v_x^{M(t)[v]}] \].

Esto significa que, o bien no se cumple \[ M\vDash (x=t)[v_x^{M(t)[v]}] \], o bien \[ M\vDash \alpha[v_x^{M(t)[v]}] \].

Ahora bien, \[ M\vDash (x=t)[v_x^{M(t)[v]}] \] equivale a \[ v_x^{M(t)[v]}(x)\equiv M(t)[v] \], y esto sí que se cumple, luego tenemos \[ M\vDash \alpha[v_x^{M(t)[v]}] \]. El teorema sobre la sustitución nos da que esto equivale a \[ M\vDash S_x^t\alpha[v] \].

Recíprocamente, si se cumple \[ M\vDash S_x^t\alpha[v] \], para probar que también se tiene \[ M\vDash \forall x(x=t\rightarrow \alpha)[v] \] hemos de probar que para todo \[ a \] en el universo del modelo, se cumple \[ M\vDash(x=t\rightarrow \alpha)[v_x^a] \]. Para que esto suceda, hemos de ver que si \[ M\vDash (x=t)[v_x^a] \], entonces \[ M\vDash\alpha[v_x^a] \].

Suponemos, pues, que \[ M\vDash (x=t)[v_x^a] \], es decir, que \[ a\equiv M(t)[v_x^a] \]. En este punto usamos que \[ x \] no está libre en \[ t \], lo que nos permite afirmar que \[ a\equiv M(t)[v_x^a]\equiv M(t)[v] \].

Ahora usamos que \[ M\vDash S_x^t\alpha \], que por el teorema de sustituciones es lo mismo que \[ M\vDash \alpha[v_x^{M(t)[v]}] \], o también que \[ M\vDash\alpha[v_x^a] \], que es justo lo que queríamos probar.
[cerrar]

Hay una regla de inferencia que involucra el cuantificador universal que requiere especial atención. Es la de introducción del generalizador:

\[ \alpha\vDash \forall x\alpha \]

Demostración
Si se cumple \[ M\vDash \alpha \], esto significa que se cumple \[ M\vDash \alpha[v] \], para toda valoración \[ v \]. En particular, para cualquier \[ a \] en el universo del modelo, lo anterior se cumple para la valoración \[ v_x^a \], es decir, \[ M\vDash \alpha[v_x^a] \], y esto es justo lo que significa que \[ M\vDash \forall x\alpha[v] \]. Como vale para toda valoración, tenemos que \[ M\vDash \forall x\alpha \].
[cerrar]

Su peculiaridad es que se cumple en virtud del convenio que hemos adoptado de considerar que una fórmula es verdadera cuando es satisfecha por cualquier valoración, lo cual equivale a que se cumple si y sólo si se cumple para toda posible interpretación de sus variables libres, y en particular si y sólo si se cumple "para todo x". Ahora bien, ya hemos comentado que los matemáticos no siempre entienden que lo que dice una fórmula hay que entenderlo como que vale para cualquier interpretación de sus variables, sino que distinguen (según el contexto) variables que representan objetos generales y variables que representan objetos particulares. Al adoptar el convenio sobre interpretación de las variables libres nos hemos apartado ligeramente de los hábitos matemáticos y la regla de introducción del generalizador pone de manifiesto esa divergencia. Más adelante veremos cómo podemos "congraciarnos" de nuevo con la práctica usual de los matemáticos sin desdecirnos de lo dicho.

Las reglas de inferencia nos permiten desglosar los razonamientos complejos en razonamientos más simples y reducirlos a "piezas" ya chequeadas y que no es necesario volver a chequear. Por ejemplo, consideremos de nuevo el silogismo que pusimos de ejemplo al inicio del hilo (el de las palabras properispómenas y barítonas). Su formalización es:

\[ \forall x(Px\rightarrow Bx),\ PD\vDash BD \]

Ya comentamos que estas fórmulas pueden interpretarse en un modelo cuyo universo sean todas las palabras griegas, en el que los relatores \[ P \] y \[ B \] se interpretan como dos propiedades de las palabras griegas que los gramáticos griegos sabrán qué demonios significan, y donde la constante \[ D \] se interpreta como una cierta palabra griega. Pero el hecho de que el silogismo sea lógicamente válido significa que todo eso es irrelevante, que se cumple lo que acabamos de escribir ahora, es decir, que si las dos premisas son verdaderas en un modelo cualquiera (no importa si su universo son palabras griegas o animales microscópicos) entonces la conclusión también tiene que serlo. Podríamos razonar esto con la misma clase de razonamientos que hemos venido usando en este mensaje, pero, en su lugar, podemos encadenar reglas de inferencia ya demostradas, así:

\[ \begin{array}{lll}
1)&\forall x(Px\rightarrow Bx)&\mbox{Premisa}\\
2)&PD&\mbox{Premisa}\\
3)& PD\rightarrow BD&\mbox{Eliminación del generalizador 1}\\
4)&BD&\mbox{Modus Ponens 2,3}
\end{array} \]

¿Cómo hay que entender esto? Supongamos que las dos premisas son verdaderas en un modelo \[ M \]. Entonces podemos asegurar que la fórmula 3) también será verdadera en \[ M \], porque resulta de aplicar la regla de inferencia de eliminación del generalizador, que ya hemos demostrado (notemos que la fórmula 3 resulta de calcular \[ S_x^{D} \] sobre la fórmula tras \[ \forall x \] en 1). A su vez 4) tiene que ser verdadera en \[ M \] porque se obtiene de 2 y 3 por la regla Modus Ponens, que también está demostrada.

Así hemos reducido un razonamiento que podríamos haber improvisado directamente a la aplicación de unas reglas de inferencia, que no son sino razonamientos ya comprobados y que no hace falta comprobar cada vez. Más aún, para construir la sucesión de fórmulas precedente no ha hecho falta considerar para nada ningún modelo. Sólo ha sido un problema de encajar las reglas oportunas adecuadamente, como un puzzle.

Ahora estamos en condiciones de precisar nuestro objetivo inmediato: ¿es posible seleccionar un número finito de reglas de inferencia semánticas (lo cual supone demostrarlas) de modo que siempre que queramos probar una afirmación del tipo \[ \alpha_1,\ldots, \alpha_n\vDash \alpha \] (es decir, que el hecho de que unas premisas sean verdaderas en un modelo obliga a que también lo sea la conclusión) podamos hacerlo aplicando oportunamente a las premisas las reglas de inferencia seleccionadas, de modo que no sea necesario mencionar modelos para nada?

La respuesta es afirmativa (pero no es nada trivial que así sea, y esto es una de las joyas que nos regala la lógica), y eso es formalizar el razonamiento, es decir, reducir cualquier razonamiento (que, en su versión no formalizada, significa justificar racionalmente que la verdad de unas premisas en un modelo fuerza a la verdad de la conclusión) a una concatenación de un número finito (fijo) de reglas de inferencia semánticas previamente demostradas, de modo que el razonamiento se reduce a una sucesión de fórmulas enlazadas por unas reglas fijas (que han sido verificadas razonando con modelos, pero que ya no necesitan volver a ser verificadas y, por consiguiente, en la demostración formal no queda referencia alguna a modelos).

En el mensaje siguiente empezaremos a desarrollar este programa de formalización. De momento terminamos con una observación sobre el concepto de regla de inferencia semántica.

Observación: Si en lugar de trabajar metamatemáticamente estuviéramos trabajando en una teoría formal, habríamos dado una definición de regla de inferencia ligeramente distinta, a saber:

\[ \alpha_1,\ldots, \alpha_n\vDash \alpha \] significa que para todo modelo \[ M \] del lenguaje formal considerado, si \[ M\vDash \alpha_1,\ldots, \alpha_n \] entonces \[ M\vDash \alpha \].

¿Cuál es la diferencia? Que aquí decimos "si las premisas son verdaderas, la conclusión también lo es", mientras que en la definición al principio del hilo hemos dicho "se puede demostrar que si las premisas son verdaderas..."

No es lo mismo. ¿No podría suceder que tuviéramos unas premisas y una presunta conclusión pero, por una parte no se nos ocurriera (o, peor aún, no hubiera) ningún razonamiento que justificara que la conclusión tiene que ser verdadera cuando lo son las premisas y, al mismo tiempo, no se nos ocurriera cómo construir (o, peor aún, no hubiera forma de construir) un modelo \[ M \] en el que las premisas fueran verdaderas pero la conclusión falsa?

Si se diera ese caso, ¿tendría sentido decir que la regla de inferencia es válida o no lo es, aunque no sepamos cuál es el caso? Si no hubiera forma de razonar que la regla es válida ni de construir un modelo que sirva de contraejemplo, ¿tendría sentido decir que hay tal modelo pero no podemos encontrarlo? ¿o habría que decir que no hay tal modelo y la regla es válida pero no hay un razonamiento que lo justifique?

Volveremos sobre estas preguntas más adelante, pero de momento, para evitar esa situación embarazosa, recordemos que hemos definido \[ \alpha_1,\ldots, \alpha_n\vDash \alpha \] como que existe un razonamiento que justifica la regla.

19 Marzo, 2013, 13:30
Respuesta #9

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
En este mensaje empezamos a materializar el proyecto esbozado al final del mensaje anterior. Se trata de seleccionar un número finito de reglas de inferencia semánticas para considerar todas las deducciones que pueden realizarse únicamente con ellas, donde una deducción es una sucesión de fórmulas en la que sólo admitimos las premisas que se quieran considerar y las consecuencias lógicas de esas premisas que se obtienen por aplicación de alguna de las reglas de inferencia seleccionadas. Las deducciones obtenidas de esta forma serán lógicamente válidas en el sentido de que tendremos la garantía de que todas las consecuencias a las que lleguemos de este modo serán verdaderas en todo modelo en el que las premisas sean verdaderas. Lo realmente interesante es que, según veremos, eligiendo adecuadamente las reglas de inferencia, todo razonamiento podrá obtenerse a partir de ellas, es decir, siempre que podamos razonar (por cualquier medio) que se cumple \[ \alpha_1,\ldots, \alpha_n\vDash \alpha \], podremos obtener \[ \alpha \] a partir de las premisas dadas aplicando oportunamente las reglas de inferencia seleccionadas a las premisas.

Concretamente, vamos a necesitar ocho reglas de inferencia, seis de las cuales serán de la forma \[ \vDash \alpha \], para fórmulas \[ \alpha \] con cierta estructura prefijada. En tal caso, en lugar de decir que \[ \vDash \alpha \] es una regla de inferencia (o, equivalentemente, que \[ \alpha \] es una fórmula lógicamente válida) diremos que \[ \alpha \] es un axioma lógico, es decir, una fórmula que puede escribirse en cualquier momento en una deducción independientemente de lo que hayamos escrito hasta el momento.

Introducimos primero los seis axiomas lógicos que vamos a considerar. Con más precisión debemos decir que hay infinitos axiomas lógicos, pero que son de seis tipos concretos, fácilmente reconocibles, que constituyen lo que se llama seis esquemas axiomáticos:

Definición: Dado un lenguaje formal \[ \mathcal L \], llamaremos axiomas lógicos en \[ \mathcal L \] a las fórmulas de \[ \mathcal L \] que sean de uno de los seis tipos siguientes (donde \[ \alpha,\beta,\gamma \] representan fórmulas arbitrarias, \[ t \] representa un término arbitrario y \[ x \] representa una variable arbitraria):

K1) \[ \alpha\rightarrow (\beta\rightarrow\alpha) \]

K2) \[ (\alpha\rightarrow (\beta\rightarrow\gamma))\rightarrow ((\alpha\rightarrow\beta)\rightarrow (\alpha\rightarrow\gamma)) \]

K3) \[ (\lnot\alpha\rightarrow\lnot\beta)\rightarrow (\beta\rightarrow\alpha) \]

K4) \[ \forall x\alpha\rightarrow S_x^t\alpha \]

K5) \[ \forall x(\alpha\rightarrow\beta)\rightarrow (\alpha\rightarrow \forall x\beta) \]     si \[ x \] no está libre en \[ \alpha \].

K6) \[ \forall x(x=t\rightarrow \alpha)\leftrightarrow S_x^t\alpha \]     si \[ x \] no está libre en \[ t \].

Las condiciones en K5) y K6) significan que si una fórmula tiene la forma indicada pero no cumple esas condiciones adicionales no se considera (por definición) un axioma lógico.

Estos axiomas se eligen con ciertos grados de libertad, pero no de forma arbitraria. Para que lo que hacemos tenga sentido es necesario, por una parte, que todos ellos sean fórmulas lógicamente válidas, es decir, que sean verdaderas en cualquier modelo (para que \[ \vDash \alpha \] sea realmente una regla de inferencia semántica) y por otra parte se eligen para que (junto con las dos reglas de inferencia que nos falta por introducir) sean suficientes para formalizar cualquier razonamiento.

Empecemos comprobando que en efecto se cumple una parte de estos requisitos:

Teorema: Todos los axiomas lógicos son fórmulas lógicamente válidas.

Demostración
La comprobación de que los axiomas de tipo K1, K2 y K3 son lógicamente válidos se reduce a calcular sus tablas de verdad y comprobar que ninguno de ellos puede ser falso sean cuales sean los valores de verdad de las fórmulas \[ \alpha,\beta,\gamma \] que en ellos aparecen.

El caso de K4 está casi comprobado en el mensaje anterior, donde vimos que \[ \forall x \alpha\vDash S_x^t\alpha \] es una regla de inferencia semántica. En efecto, sabiendo esto, si \[ M \] es un modelo cualquiera del lenguaje formal considerado, para que un axioma de tipo K4 sea verdadero en \[ M \] tiene que suceder que, para toda valoración \[ v \], se cumpla \[ M\vDash (\forall x\alpha\rightarrow S_x^t\alpha)[v] \], lo cual equivale a que, si \[ M\vDash \forall x\alpha[v] \], entonces también se cumpla \[ M\vDash S_x^t\alpha[v] \], pero eso es justo lo que comprobamos en el mensaje anterior para demostrar la regla de inferencia citada.

El caso de K6 lo vimos con detalle en el mensaje anterior, luego sólo falta comprobar K5. Queremos probar que, en cualquier modelo \[ M \] y con cualquier valoración \[ v \] se cumple

\[ M\vDash \forall x(\alpha\rightarrow\beta)\rightarrow (\alpha\rightarrow \forall x\beta)[v] \],

bajo el supuesto de que \[ x \] no está libre en \[ \alpha \]. Esto equivale a que si el modelo cumple \[ M\vDash  \forall x(\alpha\rightarrow\beta)[v] \] también tiene que cumplir \[ M\vDash (\alpha\rightarrow \forall x\beta)[v] \].

Para que se cumpla esto último lo que tiene que suceder es que si \[ M\vDash \alpha[v] \], también se tiene que cumplir \[ M\vDash \forall x\beta [v] \].

En definitiva, suponemos que \[ M\vDash  \forall x(\alpha\rightarrow\beta)[v] \] y \[ M\vDash \alpha[v] \], y queremos probar que \[ M\vDash \forall x\beta [v] \].

Para ello consideramos un \[ a \] arbitrario en el universo del modelo y sabemos que \[ M\vDash (\alpha\rightarrow \beta)[v_x^a] \]. Como \[ x \] no está libre en \[ \alpha \], sabemos que \[ M\vDash \alpha[v] \] es equivalente a \[ M\vDash \alpha[v_x^a] \], pues sólo importan los valores asignados a las variables libres.

De \[ M\vDash (\alpha\rightarrow \beta)[v_x^a] \] y \[ M\vDash \alpha[v_x^a] \] se deduce \[ M\vDash \beta[v_x^a] \], y como tenemos esto para todo \[ a \], podemos afirmar que \[ M\vDash \forall x\beta \], como había que probar.
[cerrar]

Ahora introducimos el concepto de deducción lógica junto con las dos reglas de inferencia que nos falta seleccionar:

Definición: Una deducción lógica en un lenguaje formal a partir de unas premisas \[ \alpha_1,\ldots, \alpha_n \] es una sucesión finita de fórmulas del lenguaje tal que cada fórmula de la sucesión es una premisa, un axioma lógico o bien es consecuencia inmediata de fórmulas anteriores de la sucesión, donde consecuencia inmediata significa que puede obtenerse por la aplicación de una de las dos reglas de inferencia primitivas siguientes:

Modus Ponens: De \[ \alpha \] y \[ \alpha\rightarrow\beta \] es consecuencia inmediata \[ \beta \].

Introducción del generalizador De \[ \alpha \] es consecuencia inmediata \[ \forall x\alpha \].

Escribiremos \[ \alpha_1,\ldots, \alpha_n\vdash \alpha \] para indicar que existe una deducción con premisas \[ \alpha_1,\ldots, \alpha_n \] cuya última fórmula es \[ \alpha \].

De este modo, tenemos dos conceptos distintos que hemos expresado mediante las notaciones

\[ \alpha_1,\ldots, \alpha_n\vDash \alpha,\qquad \alpha_1,\ldots, \alpha_n\vdash \alpha \]

El primero significa que \[ \alpha \] tiene que ser verdadera en todos los modelos en los que las premisas sean verdaderas, mientras que el segundo significa que \[ \alpha \] puede obtenerse en un número finito de pasos a partir de las premisas y de axiomas lógicos aplicando oportunamente las dos reglas de inferencia a las que hemos llamado primitivas. El primer concepto tiene un sentido muy claro, mientras que el segundo no es en principio más que un cúmulo de arbitrariedades ¿por qué esos axiomas lógicos y no otros? ¿por qué esas reglas de inferencia y no otras? Lo que da sentido al segundo concepto de deducción es que es equivalente al primero, aunque la prueba dista mucho de ser inmediata.

Queda, pues, claro que los axiomas y las reglas de inferencia no se eligen arbitrariamente, pero no es menos cierto que tenemos un margen para elegir los axiomas y las reglas. Hay otras elecciones posibles distintas de las que hemos hecho que dan lugar a un concepto de deducción formal igualmente equivalente al de consecuencia lógica en el sentido semántico. Para recoger estas distintas posibilidades igualmente válidas conviene introducir un concepto general de sistema deductivo formal:

Definición: Dado un lenguaje formal \[ \mathcal L \], un sistema deductivo formal \[ F \] sobre \[ \mathcal L \] está determinado por una colección de fórmulas de \[ \mathcal L \] a las que se llama axiomas de \[ F \] y un conjunto finito de reglas primitivas de inferencia, que son criterios que especifican cuándo una fórmula se considera consecuencia inmediata en \[ F \] de otra u otras fórmulas de \[ \mathcal L \].

Una deducción en \[ F \] a partir de unas premisas \[ \alpha_1,\ldots, \alpha_n \] es cualquier sucesión finita de fórmulas de \[ \mathcal L \] de modo que cada una de ellas sea una premisa, un axioma de \[ F \] o sea consecuencia inmediata en \[ F \] de fórmulas anteriores de la sucesión (es decir, que resulte de aplicar una de las reglas de inferencia de \[ F \]).

Escribiremos \[ \alpha_1,\ldots, \alpha_n\vdash_F\alpha \] para indicar que \[ \alpha \] es la última línea una deducción en \[ F \] con premisas \[ \alpha_1,\ldots, \alpha_n \].

En estos términos, hemos asociado un sistema deductivo formal a cada lenguaje formal \[ \mathcal L \] al que llamaremos \[ K_{\mathcal L} \], aunque escribiremos \[ \vdash \] en lugar de \[ \vdash_{K_{\mathcal L}} \], porque es el único que vamos a usar.

En principio, cualquiera puede tomar las fórmulas más pintorescas y diseñar reglas de inferencia estrafalarias y decir que ha definido un sistema deductivo formal, pero que sus elecciones arbitrarias satisfagan la definición de sistema deductivo formal no ponen al engendro en pie de igualdad con nuestro \[ K_{\mathcal L} \], pues éste ha sido diseñado teniendo en cuenta unos requisitos muy específicos:

Definición: Un sistema deductivo formal es correcto si sus axiomas son lógicamente válidos y sus reglas de inferencia son reglas de inferencia semánticas.

Sabemos que \[ K_{\mathcal L} \] es correcto, pues hemos demostrado que sus axiomas son lógicamente válidos y en el mensaje anterior vimos que sus dos reglas de inferencia primitivas son reglas de inferencia semánticas. Esto tiene una consecuencia importante:

Teorema: Si \[ F \] es un sistema deductivo formal correcto y \[ \alpha_1,\ldots, \alpha_n\vdash_F\alpha \], entonces \[ \alpha_1,\ldots, \alpha_n\vDash \alpha \].

Demostración
Supongamos que  \[ \alpha_1,\ldots, \alpha_n\vdash_F\alpha \]. Esto significa que existe una sucesión \[ \beta_1,\ldots, \beta_m \] de fórmulas del lenguaje formal considerado tales que \[ \beta_m\equiv\alpha \] y cada fórmula es una premisa, un axioma de \[ F \] o bien una consecuencia inmediata en \[ F \] de fórmulas anteriores de la sucesión.

Queremos probar que \[ \alpha_1,\ldots, \alpha_n\vDash \alpha \], es decir, que tenemos un razonamiento que nos asegura que si las premisas son verdaderas en un modelo \[ M \] entonces \[ \alpha \] también tiene que ser verdadera en \[ M \]. Veamos cuál es ese razonamiento:

Consideramos \[ \beta_1 \]. Como no tiene fórmulas anteriores, tiene que ser un axioma o una premisa. Si es un axioma de \[ F \], como los axiomas de \[ F \] son lógicamente válidos existe un razonamiento que garantiza que \[ \beta_1 \] tiene que ser verdadera en \[ M \]. Si es una premisa no hay nada que razonar, sino que el hecho de que \[ \beta_1 \] es verdadera en \[ M \] es una de las premisas (en el sentido informal del término) de nuestro razonamiento.

Ahora pasamos a \[ \beta_2 \]. Si es un axioma, podemos razonar que es verdadero en \[ M \], porque es lógicamente válido, y si es una premisa, no hay nada que justificar. Por último, si \[ \beta_2 \] se deduce de \[ \beta_1 \] por una regla de inferencia de \[ F \], como dicha regla es una regla de inferencia semántica, esto significa que existe un razonamiento que nos asegura que \[ \beta_2 \] es verdadera en \[ M \] partiendo de que \[ \beta_1 \] lo es.

De este modo, encadenando los razonamientos que prueban que los axiomas lógicos que intervienen en la deducción son verdaderos en cualquier modelo con los que prueban que las reglas de inferencia de \[ F \] llevan siempre de premisas verdaderas a conclusiones verdaderas, vamos construyendo un razonamiento que va justificando que cada fórmula \[ \beta_i \] es verdadera en \[ M \] apoyándonos en que lo tenemos ya garantizado (sea por ser una premisa o por haberlo demostrado a partir de las premisas) para las fórmulas anteriores. Procediendo de esta forma, tras un número finito de pasos llegamos a un razonamiento que prueba que \[ \beta_m\equiv \alpha \] es verdadera en \[ M \].

En resumen, una deducción formal en un sistema deductivo formal correcto contiene toda la información necesaria para construir un razonamiento que pruebe que la verdad de la conclusión se sigue de la verdad de las premisas enlazando adecuadamente los razonamientos que justifican que los axiomas del sistema son lógicamente válidos y las reglas de inferencia son reglas de inferencia semánticas. Las deducciones formales no son razonamientos, sino que codifican razonamientos, igual que una fórmula no es una afirmación, sino que codifica una información. La información, al igual que los razonamientos, está hecha de pensamiento, no de signos. Los signos sólo la codifican.
[cerrar]

Diseñar sistemas deductivos formales correctos es muy fácil. Sólo hay que tener cuidado de elegir axiomas y reglas de inferencia correctas, y hay muchos donde elegir y es fácil verificar que en efecto lo son. Lo que ya requiere cierto arte es elegir esos axiomas y esas reglas de inferencia para que el sistema sea semánticamente completo, en el sentido siguiente:

Definición: Un sistema deductivo formal \[ F \] sobre un lenguaje formal \[ \mathcal L \] es semánticamente completo si para todas las fórmulas \[ \alpha_1,\ldots, \alpha_n, \alpha \] de \[ \mathcal L \] se cumple que

\[ \alpha_1,\ldots, \alpha_n\vdash_F\alpha \]      si y sólo si      \[ \alpha_1,\ldots, \alpha_n\vDash\alpha \]

Veremos que \[ K_{\mathcal L} \] es semánticamente completo y, desde el momento en que existen sistemas deductivos formales semánticamente completos, sería absurdo trabajar con uno que no lo fuera. Se pueden tomar otros axiomas y otras reglas de inferencia, pero dichas alternativas estarán bien elegidas si al final dan lugar a un sistema completo. Notemos que si \[ F \] y \[ G \] son dos sistemas deductivos semánticamente completos sobre un mismo lenguaje formal, por muy diferentes que sean sus axiomas y sus reglas de inferencia, al final se tiene que

\[ \alpha_1,\ldots, \alpha_n\vdash_F\alpha \]      si y sólo si     \[ \alpha_1,\ldots, \alpha_n\vdash_G\alpha \]

para fórmulas cualesquiera de su lenguaje, ya que ambas afirmaciones equivalen a \[ \alpha_1,\ldots, \alpha_n\vDash\alpha \], y esta afirmación es independiente de cualquier convenio arbitrario. Ser una consecuencia lógica de unas premisas significa simplemente que si las premisas son verdaderas en un modelo la consecuencia también tiene que serlo, y esto es así o no es así, pero no depende de si hemos elegido definir "razonar" de esta o de aquella manera. Podemos definir sistemas deductivos formales con unos criterios u otros, pero no se define "razonar", lo que está bien razonado está bien razonado y lo que no está bien razonado no lo está. O bien un sistema deductivo formal formaliza sólo razonamientos correctos (es decir, es correcto) o no lo es, y o bien puede formalizar todos los razonamientos correctos (es decir, es completo) o no lo es.

Nota filosófica
Alguien podrá objetar que lo anterior es falso, porque sí que existen distintas nociones de lo que es razonar. Por ejemplo, uno puede aceptar que toda afirmación es verdadera o falsa, mientras que otro puede sostener que hay afirmaciones que no son verdaderas ni falsas, sino "indeterminadas". Alguien así no admitirá que se afirmen cosas como que, dado un modelo, una valoración y una fórmula, se tiene que cumplir \[ M\vDash \alpha[v] \] o no se tiene que cumplir (en cuyo caso se cumple \[ M\vDash \lnot\alpha[v] \]). Esto es cierto, pero cuando yo hablo de "razonar", me refiero a una forma concreta de razonar (lo que se conoce como lógica clásica, que la humanidad viene empleando desde que el mundo es mundo y, desde luego, mucho antes de que se inventara la lógica formal) que todos tenemos la capacidad de emplear (incluso los que tienen objeciones de conciencia hacia ella) y que es una realidad anterior a cualquier sistema formal, una realidad que se pretende capturar con el concepto de sistema deductivo formal y que, de hecho, se captura con éxito, en virtud del teorema de completitud semántica.

Si consideramos lógicas "informales" alternativas, como la lógica intuicionista, nos encontramos con la misma situación: tenemos una lógica informal y tenemos la posibilidad de formalizarla. Naturalmente, un sistema deductivo formal que formalice la lógica intuicionista será distinto de \[ K_{\mathcal L} \], pero igualmente podremos decir que un sistema deductivo formal intuicionista estará diseñado para capturar las formas de razonamiento aceptadas por los intuicionistas, y no dejará de ser cierto que no es el sistema formal el que define el razonamiento, sino el razonamiento el que condiciona la definición de un sistema deductivo que lo capture adecuadamente.

Otro hecho que no tiene nada que ver con lo anterior es que cuando hablo de "razonamiento" me refiero a la restricción de nuestra capacidad de razonamiento a lo que se puede razonar sobre modelos de un lenguaje formal de primer orden. Esto es un contexto muy específico, y nuestra capacidad de razonar va mucho más allá, pero simplemente nuestras posibilidades de razonar, por ejemplo, con realidades que varían con el tiempo, o en situaciones de incertidumbre, simplemente no son aplicables a nuestro contexto, donde estudiamos únicamente realidades (modelos) estáticas en el tiempo, y con propiedades libres de toda posible imprecisión o ambigüedad. Este contexto, aparentemente muy restrictivo, es el único necesario para razonar en teoría de conjuntos, en la cual es posible a su vez formalizar cualquier realidad dinámica, incierta, con lógicas multivaluadas, etc., de tal modo que cualquier lógica alternativa se reduce a la lógica clásica gracias a que puede ser formalizada en la teoría de conjuntos, cuya lógica es la clásica.
[cerrar]

El interés de formalizar el razonamiento es evidente (dejando de lado las necesidades técnicas de fundamentar una teoría de conjuntos). En principio, afirmar que \[ \alpha_1,\ldots, \alpha_n\vDash\alpha \] tiene un significado muy concreto, pero es algo muy amplio. Razonar es razonar. No se puede acotar a priori qué argumentos son correctos y cuales son falaces. Si uno argumenta que \[ \alpha \] tiene que ser verdadera si lo son las premisas, su razonamiento puede estar bien o puede estar mal, y distinguir los razonamientos correctos de los falaces es precisamente la característica que se llama "racionalidad". Si uno ve un razonamiento de otro y considera que está mal, tendrá que advertirle su error y, o bien el otro reconoce el error, o a su vez considerará que es erróneo el razonamiento que afirma que hay un error. Y no hay unas reglas a priori por las que se pueda decir quién tiene razón. Si un tercero hace de árbitro, podrán convencerle los argumentos de uno o los del otro o los de nadie, pero lo único objetivo es el hecho empírico de que los seres racionales suelen llegar a consensos en las discusiones racionales (las disensiones se producen cuando hay premisas dudosas o implícitas, no por razonamientos dudosos a partir de las premisas).

En cambio, si todos los seres racionales llegan a aceptar que los razonamientos que justifican que \[ K_{\mathcal L} \] es semánticamente completo son correctos, a partir de ese momento desaparece cualquier posibilidad de discrepancia sobre lo que es un razonamiento correcto (en el contexto de la lógica de primer orden, es decir, sobre cualquier problema que pueda expresarse como si una determinada afirmación de un lenguaje de primer orden es verdadera o falsa en un modelo). Sencillamente, si un razonamiento puede reducirse a una deducción en \[ K_{\mathcal L} \], entonces es correcto, y si no se puede, no es correcto. De este modo, la razón se concreta a sí misma. (Al menos en el contexto de los razonamientos matemáticos) no es necesario confiar en que dos seres racionales que discutan sobre si un razonamiento es válido o no lo es lleguen a un consenso sin saber a qué atenerse más que a su capacidad de raciocinio, sino que si los dos llegan a consensuar que el razonamiento que prueba que \[ K_{\mathcal L} \] es semánticamente completo, a partir de ahí tienen garantizado que pueden consensuar cualquier otra discrepancia: si estamos de acuerdo en esto, estamos de acuerdo en todo (en el sentido de que podemos dilucidar sistemáticamente cualquier futura discrepancia estableciendo que sólo tendrá razón quien pueda formalizar su razonamiento en \[ K_{\mathcal L} \]). Por supuesto, uno puede equivocarse al formalizar un argumento igual que puede equivocarse al razonar "en el aire", pero la diferencia es que la corrección de una demostración en \[ K_{\mathcal L} \] es algo que puede ser comprobado mecánicamente, incluso por un ordenador que no entienda nada, pero sepa distinguir qué es un axioma y qué es una regla de inferencia bien aplicada.

Hay que advertir que esto tiene un poco de utópico, porque trabajar en \[ K_{\mathcal L} \] "a bajo nivel" sería muy tedioso y nadie lo hace en la práctica, sino que las demostraciones matemáticas se dejan normalmente a un nivel "semiformalizado", en el sentido de un nivel que no tiene el detalle suficiente como para que uno pueda decir que aquí se aplica MP y allá se aplica IG, pero sí lo suficientemente detallado como para que pasar de ahí a una prueba completamente detallada sea una mera rutina sin interés y que cualquiera podría hacer sin dificultad si tuviera un par de eras geológicas libres, pero en la práctica surgen inconvenientes técnicos, como que unos teoremas se basan en otros, y es fácil que en un enunciado falte una pequeña hipótesis que se ha asumido tácitamente en la prueba pero que haga inválidas referencias posteriores en las que no se tiene tal hipótesis, etc.

Pese a todo, resulta indiscutible que poder "enlatar" toda la capacidad de razonamiento matemático en seis esquemas de axioma y dos reglas de inferencia tiene un gran valor tanto teórico (para estudiar el alcance y las limitaciones del razonamiento matemático) como práctico (para concretar lo que es un razonamiento válido y resolver discrepancias entre seres con uso de razón).

Para terminar, una reflexión: La idea de que uno puede definir un sistema deductivo formal como \[ K_{\mathcal L} \] con el propósito de "definir" el razonamiento lógico y limitarse a presentar unos axiomas y reglas de inferencia considerando que no está obligado a justificar nada es esencialmente perversa. Los axiomas y las reglas deben ser demostrados (cosa que nosotros ya hemos hecho) y aún demostrándolos nos quedamos cortos, pues todavía falta justificar que no nos falta ningún axioma o regla por añadir, sino que los que hemos dado son suficientes para extraer todas las consecuencias lógicas posibles de unas premisas dada (cosa que aún tenemos pendiente, y que es lo que se conoce como teorema de completitud semántica).

21 Marzo, 2013, 19:22
Respuesta #10

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
En este mensaje presentamos algunas reflexiones sobre el concepto de deducción lógica, para lo cual pondremos un ejemplo que nos sirva de referencia. Vamos a demostrar que, para cualquier fórmula \[ \alpha \] se cumple
\[ \vdash \alpha\rightarrow \alpha \].

Una deducción posible es la siguiente:

\[ \begin{array}{lll}
(1)&(\alpha\rightarrow((\alpha\rightarrow\alpha)\rightarrow\alpha))\rightarrow
((\alpha\rightarrow(\alpha\rightarrow\alpha))\rightarrow(\alpha\rightarrow\alpha))
&\mbox{(K2)}\\
(2)&\alpha\rightarrow((\alpha\rightarrow\alpha)\rightarrow\alpha)&\mbox{(Axioma K1)}\\
(3)&(\alpha\rightarrow(\alpha\rightarrow\alpha))
\rightarrow(\alpha\rightarrow\alpha)&\mbox{(MP 1,2)}\\
(4)&\alpha\rightarrow(\alpha\rightarrow\alpha)&\mbox{(Axioma K1)}\\
(5)&\alpha\rightarrow\alpha&\mbox{(MP 3,4)}
\end{array} \]

Lo primero que observa cualquiera a la vista de esto es que la prueba es horripilante. A nadie se le habría ocurrido recurrir a un "argumento" así para probar que  \[ \alpha\rightarrow \alpha \].

Si tratamos de precisar esta primera impresión tratando de expresarla de forma más objetiva, lo que podemos decir es que la conclusión es mucho más evidente que los axiomas que presuntamente la demuestran. Más concretamente, lo que a uno le convence de que \[ \alpha\rightarrow \alpha \] "es verdad" (más técnicamente, que es una fórmula lógicamente válida, verdadera en todo modelo) es considerar esta modesta tabla de verdad:

\[ \begin{array}{c|c}
\alpha&\alpha\rightarrow \alpha\\
\hline
V&V\\
F&V
\end{array} \]

En cambio, para probar que el primer axioma de la prueba es lógicamente válido, y por lo tanto un axioma legítimo, hay que construir esta tabla de verdad:

\[ \begin{array}{c|c|c|c|c|c|c}
\alpha&\alpha\rightarrow\alpha&(\alpha\rightarrow\alpha)\rightarrow\alpha&(\alpha\rightarrow((\alpha\rightarrow\alpha)\rightarrow\alpha))&\alpha\rightarrow(\alpha\rightarrow\alpha)&((\alpha\rightarrow(\alpha\rightarrow\alpha))\rightarrow(\alpha\rightarrow\alpha))&\alpha\rightarrow((\alpha\rightarrow\alpha)\rightarrow\alpha))\rightarrow
((\alpha\rightarrow(\alpha\rightarrow\alpha))\rightarrow(\alpha\rightarrow\alpha))\\
\hline
V&V&V&V&V&V&V\\
F&V&F&V&V&V&V
\end{array} \]

En este sentido podemos decir objetivamente que los axiomas de esta deducción son mucho más complicados que la conclusión. Y la idea que inevitablemente debería venirnos a la mente es si no estaremos haciendo el ridículo con \[ K_{\mathcal L} \]. La respuesta es negativa, pero conviene entender por qué.

Una axiomática "tradicional" (por ejemplo una axiomática para la geometría euclídea) pretende reducir lógicamente afirmaciones complejas a otras lo más simples posibles que se toman como axiomas. De este modo, una deducción a partir de unos axiomas resulta explicativa. Por ejemplo, si demostramos el teorema de Pitágoras a partir de los axiomas de la geometría euclídea estamos reduciendo una afirmación que no puede tenerse por evidente (nadie puede ver un triángulo rectángulo y decir "se ve claramente que el cuadrado de la hipotenusa es igual a ...") a otras que sí lo son (como "por dos puntos pasa una única recta", etc.) Cuando decimos que los axiomas de la geometría euclídea son intuitivamente evidentes queremos decir que cualquiera que los examine se da cuenta de que se corresponden con hechos intuitivamente verdaderos y que, por consiguiente, todas sus consecuencias serán intuitivamente verdaderas (aunque no sean intuitivamente evidentes).

De todos modos, el carácter intuitivo de los axiomas de la geometría euclídea es aquí secundario. Lo que importa es que (normalmente) los axiomas de una teoría axiomática se toman lo más simples posibles para que alguien que los vea pueda formarse una idea clara de lo que supone admitirlos como tales axiomas. Ya que los axiomas no se pueden demostrar, se procura al menos que se puedan juzgar fácilmente y sea igualmente fácil determinar bajo qué condiciones podemos esperar que se cumplan.

En cambio, los criterios para definir \[ K_{\mathcal L} \] se han fijado siguiendo unos criterios que no tienen nada que ver con éstos. No hay necesidad de tomar axiomas simples porque los axiomas SÍ se demuestran (ya hemos demostrado que son lógicamente válidos), es decir, nadie necesita sopesarlos para decidir si "se los cree" o "no se los cree". (A lo sumo uno tendrá que decidir si quiere razonar como todo el mundo —clásicamente— o si quiere adherirse a alguna secta de razonamiento, pero si opta por lo primero puede razonar que los axiomas elegidos son lógicamente válidos, y eso los hace automáticamente aceptables como axiomas). Por ello, en lugar de la simplicidad, lo que se ha buscado en ellos es la potencia: que contengan la máxima información en el mínimo esfuerzo.

Podríamos haber elegido otra colección de axiomas para \[ K_{\mathcal L} \] que fueran mucho más simples y "naturales", como \[ \alpha\rightarrow \alpha\lor \beta \], \[ \alpha\land \beta\rightarrow \alpha \], etc., pero el precio sería que en lugar de bastarnos con seis esquemas de axioma habríamos necesitado unas dos docenas de ellos, más o menos. ¿Merece la pena comprimir el número de axiomas necesarios (de esquemas de axioma, en realidad) a costa de hacerlos "poco naturales"? La respuesta es afirmativa. Como ya hemos comentado, la naturalidad es poco importante, pues al fin y al cabo podemos demostrar que son lógicamente válidos, y eso los legitima como axiomas, y como contrapartida hay varios resultados de la lógica matemática (del tipo "si se puede demostrar tal cosa también se puede demostrar tal otra cosa") que requieren razonar sobre los esquemas de axioma de \[ K_{\mathcal L} \] uno por uno, y entonces es muy de agradecer que esa parte de la prueba pueda despacharse distinguiendo sólo seis casos en lugar de veintiocho.

Con este criterio para elegir los axiomas no podemos ver las deducciones en \[ K_{\mathcal L} \] como explicativas, es decir, la prueba anterior no es una explicación de por qué es cierto (es lógicamente válido) que \[ \alpha\rightarrow\alpha \], sino que es una deducción a partir de axiomas lógicamente válidos (pero no obviamente lógicamente válidos) de una conclusión obviamente lógicamente válida. ¿Qué aporta entonces? De la deducción anterior podemos aprender algo interesante y no trivial, que no es que alfa implica alfa (eso es trivial y, por eso mismo, de interés dudoso) sino que alfa implica alfa es deducible en \[ K_{\mathcal L} \]. Prueba de que esto no es trivial es que a pocos se les habría ocurrido cómo hacer la deducción. Y este hecho no trivial es sólo el primer paso en la prueba de otro hecho menos trivial aún, y es que todas las fórmulas lógicamente válidas son deducibles en \[ K_{\mathcal L} \].

Hemos presentado un conjunto extraño (pero comprimido) de axiomas, y queremos demostrar que esos "bichos raros" que hemos tomado como axiomas de entre todas las fórmulas lógicamente válidas son suficientes para deducir de ellas todas las demás.

Pero esto no significa que todas las deducciones en \[ K_{\mathcal L} \] vayan a ser "monstruos" como el ejemplo anterior. Por el contrario, un uso "sensato" de \[ K_{\mathcal L} \] pasa por dos fases:

1) En una primera fase, lo que procede es "desembalar" la lógica que está ingeniosamente "embalada" en los axiomas de \[ K_{\mathcal L} \]. Es como si alguien hubiera logrado embalar una mesa desmontada en piezas en un espacio tan pequeño y tan bien aprovechado que no deja un hueco libre y parece mentira que toda una mesa de ese tamaño quepa en una caja tan diminuta. Lo primero que procede hacer es abrir la caja, sacar las piezas y ensamblarlas para tener la mesa lista para ser usada (aunque luego nadie sabría volver a meterla en la caja sin dejar cuarenta piezas fuera). En la práctica, esto significa demostrar las dos docenas (o más) de resultados que habríamos tomado como axiomas o reglas de inferencia de \[ K_{\mathcal L} \] si no nos hubiera obsesionado reducir los axiomas a la mínima expresión. Tales demostraciones serán tremendamente "monstruosas" o, si se prefiere, tremendamente ingeniosas, pues son parte de la demostración de un teorema nada trivial, el que dice "toda la lógica cabe en esta reducidísima caja".

2) En segundo lugar, una vez demostrados esos resultados básicos que bien podrían haberse tomado como axiomas y reglas de inferencia de un sistema deductivo formal, lo que procede es olvidarse de los axiomas de \[ K_{\mathcal L} \] y de todas las demostraciones monstruosas, y no usarlos nunca más salvo para propósitos teóricos (es como tirar el embalaje de la mesa), y a partir de ese momento realizar las deducciones prácticas en \[ K_{\mathcal L} \] apoyándonos, no en los axiomas, sino en los resultados básicos deducidos de ellos que habrían sido axiomas si hubiéramos apostado por la naturalidad en vez de por la compacidad.

Insisto en esto porque no es raro encontrar libros y profesores de lógica que presentan sistemas deductivos formales como \[ K_{\mathcal L} \] y no sólo no se molestan en "desembalar la lógica", como aquí haremos, sino que plantean ejercicios a sus lectores / alumnos en los que tratan de entrenarlos para hacer deducciones "monstruosas" del tipo necesario en la fase 1), como si eso fuera "lo normal" en \[ K_{\mathcal L} \], y el efecto es que el lector / alumno se forma la imagen distorsionada de que razonar en lógica es algo que poco tiene que ver con razonar en matemáticas, porque en matemáticas uno hace cosas "naturales": si quiero probar que \[ x\in A\rightarrow x\in B \], supongo que \[ x\in A \] y argumento que tiene que estar en \[ B \], mientras que demostrar esto mismo "en lógica" es buscar la combinación adecuada de axiomas esotéricos que, debida e ingeniosamente combinados, añadiendo un poco de MP, otro poco de IG y un algo de "vendo mi alma y salvación a Satán a cambio del don de la lógica formal", lleven a la implicación deseada.

Es como si un profesor de análisis, en lugar de reservar la definición de derivada para probar las reglas de derivación y otros resultados teóricos y enseñar a sus alumnos a usar las reglas de derivación para calcular derivadas en la práctica, ocultara a sus alumnos que existen las reglas de derivación (o las presentara aisladamente en ejercicios sin darles importancia) y exigiera a sus alumnos que calcularan cualquier derivada "normal" aplicando la definición de derivada cada vez.

Aquí trataremos de distinguir cuidadosamente la fase 1) de la fase 2), es decir, primero demostraremos (mediante pruebas "diabólicas") que en \[ K_{\mathcal L} \] pueden probarse los principios elementales de argumentación que los matemáticos utilizan de forma natural sin pretender deducirlos de nada más elemental, y después mostraremos que, contando con tales principios elementales trabajar en \[ K_{\mathcal L} \] es hacer exactamente lo mismo que hace un matemático que jamás haya oído hablar de \[ K_{\mathcal L} \].

Es en los razonamientos de la fase 2) en los que un profesor de lógica debería ejercitar a sus alumnos (reservando los axiomas de \[ K_{\mathcal L} \] para los razonamientos teóricos, como hacen los analistas con la definición de derivada), y son esos razonamientos los que los alumnos deben considerar como "típicos". Los razonamientos de la fase 1) son simplemente parte de la prueba de un teorema no trivial, y es que bastan los axiomas de  \[ K_{\mathcal L} \] para fundamentar los principios en los que se apoyan los razonamientos de la fase 2. Es bueno que los alumnos conozcan la demostración de ese teorema, pero eso es una cosa, y otra muy distinta es tomar las técnicas ingeniosas que requiere la demostración del teorema y usarlas "cotidianamente", cuando es tonto usar tales técnicas para otra cosa que no sea demostrar ese teorema.

21 Marzo, 2013, 21:57
Respuesta #11

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Vamos a presentar y analizar brevemente un ejemplo de deducción "natural" en \[ K_{\mathcal L} \], no de las correspondientes a lo que hemos llamado "fase 1", sino de las correspondientes a la "fase 2". Como aún no hemos desarrollado la "fase 1" no estamos en condiciones de justificar que lo que vamos a escribir es realmente una deducción en \[ K_{\mathcal L} \] (mejor dicho, es evidente que NO es una deducción en \[ K_{\mathcal L} \], pero más adelante será también evidente que se puede desarrollar hasta una deducción en \[ K_{\mathcal L} \]).

Consideramos el lenguaje de la aritmética, que ya hemos tratado otras veces, introducimos la abreviatura siguiente (que leeremos "x divide a y"):

\[ x\mid y\equiv \exists u\ y=xz \].

y vamos a probar lo siguiente:

\[ \forall xyz((xy)z=x(yz))\vdash \forall xyz(x\mid y\land y\mid z\rightarrow x\mid z) \].

Expresamos la deducción en tres columnas. A la izquierda ponemos lo que diría un matemático, en el centro la deducción propiamente dicha y a la derecha las indicaciones que bastan para justificar que la deducción es correcta (supuesto que hubiéramos desarrollado ya la fase 1) sin necesidad de la columna de la izquierda:



Como decíamos, las dos primeras columnas constituyen lo que un matemático reconocería como una demostración válida (muy detallada) de la conclusión a partir de la premisa. Aunque parece que sus explicaciones son suficientes para justificar la validez del razonamiento, lo cierto es que hay una serie de reglas que el matemático respeta implícitamente, incluso subconscientemente, y que, aunque no estén indicadas de forma explícita, son indispensables para que la prueba sea correcta.

Por ejemplo, el matemático distingue entre las variables \[ x, y, z \], que en la línea (2) usa para referirse a tres números arbitrarios, y las variables \[ u \] y \[ v \], que introduce en (5) y (8) para referirse a dos números particulares. El matemático usa subconscientemente que no puede hacer lo mismo con una variable que represente a un objeto arbitrario que con otra que represente a un objeto particular. Por ejemplo, en la línea (12) escribe \[ \exists u \] y jamás habría pensado en escribir \[ \forall u \], porque esa \[ u \] representa al número particular \[ uv \], que es particular porque \[ u \] y \[ v \] lo eran. En cierto sentido, la posibilidad de escribir \[ \forall u \] o sólo \[ \exists u \] depende de "la historia" de las variables, y no sólo de la línea (11), a partir de la cual se introduce el cuantificador.

Sin embargo, aunque, según decimos, el hecho de que  \[ u \] y \[ v \] sean variables particulares prohíbe al matemático ligarlas con un generalizador, el hecho de que \[ x, y, z \] sean variables generales no significa que pueda ligarlas en cualquier momento por un generalizador. Por ejemplo, al matemático jamás se le habría pasado por la cabeza escrbir (3)  \[ \forall xyz(x\mid y\land y\mid z) \]. Él lo razonaría así: \[ x, y, z \] son tres números arbitrarios de los que supongo que \[ x\mid y\land y\mid z \], pero eso no significa que tres números cualesquiera deban cumplir esto, por lo que sería absurdo introducir ahí un generalizador. Sólo cuando llego a la línea (14) y tengo que si \[ x\mid y\land y\mid z \] también se cumple que \[ x\mid z \], sólo entonces puedo decir que esto vale para tres números arbitrarios, y eso justifica el paso a (15).

Más en general: cuando queremos probar que todo \[ x \] que cumple A también cumple B, puedo tomar un \[ x \] genérico que cumpla A, pero dicha generalidad no me permite afirmar que todo x cumple A. Sólo cuando pruebo la implicación \[ A\rightarrow B \] es cuando puedo decir que dicha implicación vale para todo \[ x \]. Puedo generalizar respecto de \[ x \] después, pero no antes de llegar a la implicación.

Otro hecho que el matemático tiene en cuenta instintivamente es que, aunque en la línea (7) tiene un \[ \exists u \], al eliminar el cuantificador está obligado a sustituir la variable \[ u \] por otra variable nueva \[ v \], porque ya está usando la variable \[ u \] para referirse al número que cumple (5) y no tiene por qué ser el mismo que cumpla (8). En cambio, cuando elimina los cuantificadores de (1) para escribir (10), no le importa que ya esté usando la variable \[ x \] ni tampoco tiene inconveniente en sustituir las variables \[ y, z \] por las variables \[ u, v \] que ya está usando para nombrar otros objetos. La diferencia la marca que los cuantificadores de (1) son universales, por lo que las variables ligadas por ellos pueden sustituirse por cualquier objeto, aunque sea uno del que ya estemos hablando.

En general, podemos decir que el matemático aplica reglas "locales", es decir, reglas que dependen del punto de la demostración en el que estemos: no es lo mismo generalizar antes de haber probado la implicación que después, no es lo mismo quitar un \[ \exists u \] si antes ya hemos hablado de una \[ u \] que si no, etc. Por el contrario, las reglas de inferencia de \[ K_{\mathcal L} \] son globales: dadas una o dos fórmulas, o de ellas se deduce algo o no se deduce, no importa qué otras líneas haya en la deducción. Otro ejemplo de "localidad" es que el matemático tiene claro que, en caso de prolongar la deducción, no podría usar ya que \[ x\mid y \], porque esto no es una premisa de la deducción, sino una hipótesis local que ha usado para probar la implicación (15), en caso de seguir usando la línea (3) estaría convirtiendo en premisa de su deducción lo que no era más que una premisa local, y no sería cierto que sus consecuencias fueran realmente consecuencias de la línea (1), que es la única premisa declarada.

Esto podría hacernos sospechar que \[ K_{\mathcal L} \] no es suficientemente potente como para formalizar razonamientos como el anterior, puesto que le falta la "sensibilidad al contexto" en la que constante y casi inconscientemente se apoya el matemático. Pese a las apariencias, veremos que no es así. Eso sí, para formalizar este tipo de razonamientos en  \[ K_{\mathcal L} \] tendremos que explicitar todos los detalles como los que hemos comentado y que un matemático tiene en cuenta casi sin decirlo explícitamente, pues para que algo sea una auténtica deducción en \[ K_{\mathcal L} \] tiene que cumplir una serie de requisitos muy concretos totalmente explícitos, y eso es incompatibles con asumir condiciones tácitas que el "sentido común" dicte en cada momento improvisadamente.

En los próximos mensajes nos dedicaremos a mostrar que (una vez hecho el "trabajo sucio") en \[ K_{\mathcal L} \] es posible razonar siempre al estilo de la deducción anterior y que nunca será necesario deprimirse con deducciones como la que consideramos en el mensaje anterior.

22 Marzo, 2013, 19:56
Respuesta #12

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
El teorema de deducción afirma que (pese a las apariencias) en \[ K_{\mathcal L} \] es válida una técnica de razonamiento que usan constantemente los matemáticos. La hemos usado en la deducción que hemos puesto como ejemplo en el mensaje anterior. Allí la única premisa era (1), y queríamos demostrar la implicación \[ x\mid y\land y\mid z\rightarrow x\mid z \] que constituye la línea (14). Para ello hemos supuesto la hipótesis (2), contraviniendo la definición de deducción, pues (2) no es una premisa, ni un axioma, ni se deduce de líneas anteriores, y hemos llegado hasta (13).

Lo que dice el teorema de deducción es que esto es correcto, que si suponiendo (2) (aunque no sea una premisa de la deducción) llegamos a (13), podemos afirmar la implicación (14). El enunciado general es el siguiente:

Teorema de deducción Sea \[ \mathcal L \] un lenguaje formal y consideremos fórmulas de \[ \mathcal L \] tales que \[ \alpha_1,\ldots, \alpha_n,\alpha\vdash \beta \]. Si es posible deducir \[ \beta \] sin aplicar la regla de introducción del generalizador a variables libres en \[ \alpha \], entonces \[ \alpha_1,\ldots, \alpha_n\vdash \alpha\rightarrow \beta \].

En pocas palabras, lo que dice el teorema de deducción es que para deducir \[ \alpha\rightarrow\beta \] a partir de unas premisas, podemos añadir \[ \alpha \] como premisa y deducir \[ \beta \]. Lo que obtendremos así no será una deducción de \[ \alpha\rightarrow\beta \] en \[ K_{\mathcal L} \], pero la demostración del teorema de deducción muestra cómo a partir de esta deducción es posible obtener una auténtica deducción de \[ \alpha\rightarrow\beta \] a partir de las premisas indicadas.

Notemos la restricción (que no puede ser pasada por alto) de que en la deducción de \[ \beta \] no puede generalizarse respecto de variables libres en \[ \alpha \]. Esta limitación puede parecer extraña a un matemático, pero, como explicábamos en el mensaje anterior, en realidad es una limitación que todos los matemáticos se autoimponen inconscientemente cuando se ven en una situación concreta de las descritas por el teorema anterior.

Por ejemplo, en la deducción que poníamos como ejemplo, desde el momento en que suponemos \[ x\mid y\land y\mid z \] queda prohibido generalizar respecto de \[ x, y, z \], porque al hacerlo estaríamos afirmando que todos los números cumplen \[ x\mid y\land y\mid z \] y esto es falso. Desde el momento en que introducimos esta hipótesis, debemos romper nuestro convenio semántico de que una variable libre representa a un objeto arbitrario, y a partir de aquí \[ x, y, z \] representan números arbitrarios de entre los que cumplan la hipótesis (y si generalizáramos como si fueran números totalmente arbitrarios estaríamos afirmando que todos los números cumplen la hipótesis, lo cual no tiene por qué ser cierto). Una vez hemos aplicado el teorema de deducción para escribir (14) el teorema nos asegura que esta línea es consecuencia de la premisa (1), y a partir de aquí podemos "olvidarnos" de que hemos usado el teorema de deducción para probarlo (pues ya sabemos que existe una deducción "normal" de (14) a partir de (1), y podemos generalizar para pasar a (15).

Demostración
Por hipótesis existe una deducción \[ \gamma_1,\ldots, \gamma_m \] con premisas entre \[ \alpha_1,\ldots, \alpha_n,\alpha \] tal que \[ \gamma_m\equiv\beta \] y en la que no se generaliza respecto de variables libres en \[ \alpha \].

Vamos a construir una deducción con premisas \[ \alpha_1,\ldots, \alpha_n \] (pero no \[ \alpha \]) que contenga las fórmulas \[ \alpha\rightarrow \gamma_1,\ldots, \alpha\rightarrow\gamma_m \] (con otras posibles fórmulas intercaladas). Como la última fórmula es \[ \alpha\rightarrow\beta \], con esto tendremos probado que la implicación es consecuencia de las premisas.

Si \[ \gamma_i \] es un axioma lógico o una premisa \[ \alpha_1,\ldots, \alpha_n \], la forma de incorporar \[ \alpha\rightarrow \gamma_i \] a la deducción es la siguiente:

\[ \begin{array}{lll}
(1)& \gamma_i&\mbox{Axioma o premisa}\\
(2)&\gamma_i\rightarrow (\alpha\rightarrow \gamma_i)&\mbox{K1}\\
(3)&\alpha\rightarrow \gamma_i&\mbox{MP 1, 2.}
\end{array} \]

Si \[ \gamma_i\equiv \alpha \], entonces debemos incorporar a la deducción que estamos construyendo la fórmula \[ \alpha\rightarrow\alpha \], y esto es correcto porque ya hemos visto anteriormente cómo deducir esta fórmula en \[ K_{\mathcal L} \].

Si \[ \gamma_i \] se deduce por MP, entonces hay dos fórmulas anteriores de la forma \[ \gamma_j \] y \[ \gamma_j\rightarrow \gamma_i \]. Puesto que en nuestra deducción vamos incorporando las implicaciones de forma sucesiva, cuando lleguemos a \[ \gamma_i \] ya habremos incorporado las fórmulas \[ \alpha\rightarrow \gamma_j \] y \[ \alpha\rightarrow (\gamma_j\rightarrow \gamma_i) \]. Éstas son, pues, líneas anteriores de nuestra deducción y podemos usarlas para deducir \[ \alpha\rightarrow \gamma_i \]. Lo hacemos de este modo:

\[ \begin{array}{lll}
(1)&\alpha\rightarrow \gamma_j&\mbox{fórmula anterior de la deducción}\\
(2)&\alpha\rightarrow(\gamma_j\rightarrow\gamma_i)&\mbox{fórmula anterior de la deducción}\\
(3)&(\alpha\rightarrow(\gamma_j\rightarrow\gamma_i))\rightarrow((\alpha\rightarrow \gamma_j)\rightarrow(\alpha\rightarrow\gamma_i))&\mbox{K2}\\
(4)&(\alpha\rightarrow \gamma_j)\rightarrow(\alpha\rightarrow\gamma_i)&\mbox{MP 2, 3}\\
(5)&\alpha\rightarrow\gamma_i&\mbox{MP 1, 4}
\end{array} \]

Supongamos, por último que \[ \gamma_i \] se deduce por generalización de otra fórmula anterior \[ \gamma_j \]. Esto significa que \[ \gamma_i\equiv \forall x\gamma_j \], y por la hipótesis del teorema sabemos que \[ x \] no está libre en \[ \alpha \].

Entonces incorporamos \[ \alpha\rightarrow \forall x\gamma_j \] de este modo:

\[ \begin{array}{lll}
(1)&\alpha\rightarrow \gamma_j&\mbox{fórmula anterior de la deducción}\\
(2)&\forall x(\alpha\rightarrow \gamma_j)&\mbox{IG 1}\\
(3)&\forall x(\alpha\rightarrow \gamma_j)\rightarrow (\alpha\rightarrow \forall x\gamma_j)&\mbox{K5 (porque $x$ no está libre en $\alpha$)}\\
(4)&\alpha\rightarrow \forall x\gamma_j&\mbox{MP2, 3}
\end{array}
 \]

Esto completa la prueba.
[cerrar]

De la demostración del teorema de deducción se sigue que en la deducción que se construye de \[ \alpha_1,\ldots, \alpha_n\vdash \alpha\rightarrow \beta \] se generaliza exactamente respecto de las mismas variables que en la deducción dada de  \[ \alpha_1,\ldots, \alpha_n,\alpha\vdash \beta \].

En la práctica podemos usar el teorema de deducción en una versión ligeramente más general. Imaginemos que estamos construyendo una deducción a partir de unas premisas \[ \alpha_1,\ldots, \alpha_n \], digamos \[ \gamma_1,\ldots, \gamma_m \], y a continuación queremos deducir una fórmula de tipo \[ \alpha\rightarrow \beta \]. Entonces escribimos \[ \alpha \] y la usamos como una premisa más hasta obtener \[ \beta \] (sin generalizar respecto de variables libres en \[ \alpha \]). Al llegar a \[ \beta \], lo que hemos probado es que \[ \gamma_1,\ldots, \gamma_m,\alpha\vdash \beta \] con una deducción en la que no se generalizan variables libres en \[ \alpha \], luego el teorema de deducción nos da que \[ \gamma_1,\ldots, \gamma_n\vdash \alpha\rightarrow \beta \], es decir, que existe una deducción de \[ \alpha\rightarrow \beta \] con premisas en \[ \gamma_1,\ldots, \gamma_m \]. Pero por otra parte sabemos que \[ \gamma_1,\ldots, \gamma_m \] se deducen de \[ \alpha_1,\ldots, \alpha_n \], luego también \[ \alpha_1,\ldots, \alpha_n\vdash \alpha\rightarrow \beta \]. (Para tener una deducción que prueba esto deducimos cada \[ \gamma_i \] de las premisas y luego deducimos \[ \alpha\rightarrow \beta \] de las \[ \gamma_i \]).

En la práctica marcaremos todas las líneas desde que suponemos \[ \alpha \] hasta que llegamos a \[ \beta \] con una línea vertical (tal y como se ve en el ejemplo del hilo anterior). Esta línea advierte de que las fórmulas abarcadas por ella no son consecuencia de las premisas de la deducción principal, sino de las premisas más una hipótesis auxiliar (la fórmula \[ \alpha \]) que sólo hemos aceptado provisionalmente para aplicar el teorema de deducción. Si una vez hemos añadido \[ \alpha\rightarrow \beta \] a la deducción la prosiguiéramos haciendo uso de las líneas marcadas, la deducción sería inválida, pues estaríamos haciendo uso de una premisa \[ \alpha \] que no forma parte de las premisas de la deducción.

La observación de que para obtener la deducción cuya existencia afirma el teorema de deducción sólo se generaliza respecto de variables generalizadas en la prueba dada es esencial para que estemos seguros de que no estamos generalizando en un momento dado respecto de una variable "prohibida". El uso del teorema de deducción oculta el uso de algunos axiomas y reglas de inferencia (las que aparecen en la demostración al construir la deducción de \[ \alpha\rightarrow \beta \]), pero no oculta ningún uso de IG.

Ejemplo Hemos explicado que la restricción sobre el uso de IG en el teorema de deducción es "razonable", pero ahora vamos a demostrar que es necesaria. Para ello veamos un ejemplo de falsa deducción en la que se usa el teorema de deducción sin respetar la restricción sobre el uso de IG. Concretamente, en la línea (2) generalizamos respecto de una variable libre en la hipótesis:



La línea (7) es deducible en \[ K_{\mathcal L} \] (sin premisas), aunque posponemos la prueba hasta más adelante (cuando "desenlatemos" la lógica del igualador). Aceptando este hecho, podemos incorporarla en nuestra deducción.

Si el teorema de deducción fuera válido sin la restricción sobre el uso de IG, la deducción anterior sería correcta y podríamos concluir que \[ \vdash \forall xy\ x=y \], luego, por el teorema de corrección, \[ \vDash \forall xy\ x=y \], pero esta fórmula no es lógicamente válida. Al contrario, es falsa en todos los modelos del lenguaje formal considerado cuyo universo tenga más de un objeto. Esta contradicción prueba que la hipótesis sobre IG es necesaria en el teorema de deducción.

Observemos que el teorema de deducción tiene un recíproco trivial:

Recíproco del teorema de deducción: Si \[ \alpha_1,\ldots, \alpha_n\vdash\alpha\rightarrow\beta \] entonces \[ \alpha_1,\ldots, \alpha_n,\alpha\vdash \beta \].

En efecto, para deducir \[ \beta \] deducimos primero \[ \alpha\rightarrow \beta \] y luego aplicamos MP.

Aclaración
Aunque en realidad es una obviedad, tal vez no esté de más recalcar que el teorema de deducción es un teorema sobre \[ K_{\mathcal L} \], no una modificación o rectificación de \[ K_{\mathcal L} \], es decir, en ningún momento hemos dicho "aunque en la definición de \[ K_{\mathcal L} \] no está contemplado hacer esto, a partir de ahora admitiremos que para probar \[ \alpha\rightarrow \beta \] podremos suponer \[ \alpha \] y demostrar \[ \beta \]. En absoluto. Lo que dice el teorema de deducción es que, si hacemos esto (respetando la restricción sobre IG) la deducción que obtenemos NO es una deducción en \[ K_{\mathcal L} \] de \[ \alpha\rightarrow \beta \], pero a partir de dicha deducción podemos obtener mecánicamente una deducción de \[ \alpha\rightarrow \beta \] que respeta exactamente la definición de deducción en \[ K_{\mathcal L} \], sin ningún retoque.

Esto significa que cuando estemos analizando una deducción arbitraria en un contexto teórico no tendremos que preocuparnos por la posibilidad de que en ella se use el teorema de deducción. Si así fuera, siempre podríamos reemplazarla por otra deducción en la que no se use. Por lo tanto, siempre podremos suponer que toda fórmula que aparezca en la deducción es una premisa, un axioma lógico o una consecuencia de las líneas anteriores por MP o IG, tal y como estipula la definición de deducción en \[ K_{\mathcal L} \]. El uso del teorema de deducción no es un caso más a considerar en un contexto teórico.
[cerrar]

23 Marzo, 2013, 13:06
Respuesta #13

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Llamaremos reglas de inferencia derivadas a cualquier resultado de la forma

\[ \alpha_1,\ldots, \alpha_n\vdash \alpha \]

y las llamamos así porque una vez hemos comprobado que esto es cierto (es decir, hemos encontrado una deducción de \[ \alpha \] a partir de las premisas correspondientes) podemos usarlas en las deducciones como reglas de inferencia en pie de igualdad con las dos reglas primitivas MP e IG. En efecto, si en una deducción hemos escrito ya (entre otras) las líneas \[ \alpha_1,\ldots, \alpha_n \], podemos escribir \[ \alpha \] en cualquier momento que nos interese, aunque no se deduzca ni por MP ni por IG. Con esto nuestra deducción tendrá un "agujero", pero sabemos que ese agujero se puede "llenar" intercalando las líneas de la deducción de \[ \alpha \] a partir de \[ \alpha_1,\ldots, \alpha_n \] que ya conocemos.

Por ejemplo, en la deducción sobre divisibilidad de números naturales que vimos dos mensajes atrás, para pasar de la línea (2) a la (3) usamos la regla de inferencia derivada de eliminación del conjuntor, que en realidad son dos reglas de inferencia a las que no merece la pena dar nombres distintos:

\[ \alpha\land \beta\vdash \alpha \]    y    \[ \alpha\land\beta\vdash\beta \].

Para que la deducción indicada estuviera completa haría falta (entre otras cosas) insertar la deducción en \[ K_{\mathcal L} \] de \[ x\mid y \] a partir de \[ x\mid y\land y\mid z \], pero si demostramos que las reglas anteriores valen en general para todas las fórmulas \[ \alpha \] y \[ \beta \] podemos omitir las líneas necesarias para ello en nuestras deducciones con la garantía de que si quisiéramos una deducción completa, sin que falte una sola línea, sabríamos cómo añadir lo que hemos omitido.

Esto es lo que hacen los matemáticos cada vez que citan un teorema ya demostrado. Una demostración que en un momento dado diga "por el teorema del valor medio podemos afirmar que..." está incompleta, y sólo estaría completa si antes de decir "por el teorema del valor medio" insertáramos una demostración del teorema del valor medio, pero no ganaríamos nada con ello, al contrario, sólo volveríamos ilegibles todas las demostraciones.

El teorema de completitud semántica (que todavía no hemos demostrado) garantizará que para toda regla de inferencia semática \[ \alpha_1,\ldots, \alpha_n\vDash\alpha \], es decir, que siempre que el hecho de que \[ \alpha_1,\ldots, \alpha_n \] sean verdaderas en un modelo es necesario (no necesario según ciertos convenios arbitrarios prefijados, sino necesario a secas) que \[ \alpha \] sea verdadera, entonces \[ \alpha_1,\ldots, \alpha_n\vdash \alpha \], es decir, existe una deducción de \[ \alpha \] a partir de los axiomas lógicos que hemos seleccionado en principio arbitrariamente y de las dos reglas de inferencia que hemos elegido en principio arbitrariamente.

Como aún no estamos en condiciones de probar esto, no podemos justificar una regla de inferencia constatando simplemente que es semánticamente válida, pues eso no nos garantiza que sea deducible en \[ K_{\mathcal L} \] y a menudo sucederá que la validez semántica es inmediata, mientras que la validez sintáctica, es decir, la existencia de una deducción, requiera utilizar los escasos recursos que proporciona \[ K_{\mathcal L} \] de forma retorcida y antinatural. Ya hemos explicado cómo debe entenderse esto y no entraremos aquí de nuevo en ello.

Una regla de inferencia muy tonta pero, pese a ello, muy útil, es la regla de repetición (R):

\[ \alpha\vdash \alpha \]

Es útil porque a menudo conviene cambiar el nombre con el que nos estamos refiriendo a una misma fórmula. Así lo hemos hecho, por ejemplo en la prueba sobre divisibilidad al pasar de la línea (3) a la (4) que son la misma fórmula, pues (3) es por definición una abreviatura taquigráfica de (4).

Nota
Una peculiaridad de la regla de repetición es que el hecho de que \[ \alpha\vdash \alpha \] se justifica sin más que observar que \[ \alpha \] es ya de por sí una deducción de \[ \alpha \] a partir de \[ \alpha \], pero lo cierto es que este argumento no justifica la repetición de \[ \alpha \] en una deducción, pues \[ \alpha \] no se deduce de \[ \alpha \] ni por MP ni por IP.

Una forma de justificar que, intercalando las líneas oportunas en una deducción, podemos acabar escribiendo de nuevo \[ \alpha \] es demostrar \[ \alpha\rightarrow \alpha \] (que ya hemos visto que se puede) y luego aplicar MP a \[ \alpha \] y \[ \alpha\rightarrow \alpha \].

Por supuesto, una forma más elegante de justificar la legitimidad de repetir líneas es darse cuenta de que podemos extraer las mismas consecuencias tanto si repetimos una línea como si no, pues la línea en cuestión estará igualmente disponible para ser usada luego si aparece una vez o si aparece dos veces.
[cerrar]

Una regla de inferencia que admite una deducción "natural" gracias a que contamos ya con el teorema de deducción es la siguiente:

Modus Barbara (MB)  \[ \alpha\rightarrow \beta,\beta\rightarrow\gamma\vdash\alpha\rightarrow\gamma \]

La deducción sería la siguiente (llamamos hipótesis a las premisas adicionales que añadimos para emplear el teorema de deducción):





Reglas relacionadas con el negador y el implicador

Una regla muy especial es la siguiente:

Regla de la contradicción (C)   \[ \alpha,\lnot\alpha\vdash \beta \]

En palabras: a partir de una contradicción (es decir si contamos con una fórmula y su negación como premisas) podemos deducir cualquier otra fórmula. La versión semántica de esta regla es peculiar, pues se reduce a que si en un modelo \[ M \] son verdaderas a la vez \[ \alpha \] y \[ \lnot\alpha \] entonces en \[ M \] es verdadera cualquier fórmula, y esto es trivialmente cierto porque es imposible que en un modelo sean verdaderas a la vez \[ \alpha \] y \[ \lnot\alpha \].

Demostración
\[
\begin{array}{lll}
(1)&\alpha&\mbox{Premisa}\\
(2)&\lnot\alpha&\mbox{Premisa}\\
(3)&\lnot\alpha\rightarrow(\lnot\beta\rightarrow\lnot\alpha)&\mbox{K1}\\
(4)&\lnot\beta\rightarrow \lnot\alpha&\mbox{MP 2, 3}\\
(5)&(\lnot\beta\rightarrow\lnot\alpha)\rightarrow (\alpha\rightarrow\beta)&\mbox{K3}\\
(6)&\alpha\rightarrow\beta&\mbox{MP 4, 5}\\
(7)&\beta&\mbox{MP 1, 6}
\end{array}
 \]
[cerrar]

La deducción de la regla en \[ K_{\mathcal L} \] sugiere un argumento semántico algo más sofisticado: si en un modelo \[ M \] se cumple \[ M\vDash \lnot\alpha \], entonces se cumple claramente \[ \vDash \alpha\rightarrow\beta \] (porque una implicación con hipótesis falsa es verdadera), luego si se cumpliera \[ \alpha \] también tendría que cumplirse \[ \beta \].

Regla de la doble negación (DN)   \[ \lnot\lnot\alpha\vdash \alpha \],      \[ \alpha\vdash\lnot\lnot\alpha \]

Notemos que aplicando el teorema de deducción a estas reglas (lo cual es válido porque en su prueba no se usa para nada IG) obtenemos que \[ \vdash \lnot\lnot\alpha\rightarrow \alpha \] y \[ \vdash\alpha\rightarrow \lnot\lnot\alpha \]. También llamaremos DN a estos dos hechos, es decir, al insertar fórmulas de cualquiera de estos dos tipos en una deducción.

Notemos que \[ \lnot\lnot\alpha\vDash \alpha \] es inmediato. Si un modelo cumple \[ M\vDash \lnot\lnot\alpha \] eso es exactamente lo mismo que cumplir \[ M\vDash \alpha \]. Sin embargo, el hecho de que la regla sea semánticamente trivial no nos exime de justificar que \[ K_{\mathcal L} \] es lo suficientemente potente para demostrarla, y la prueba es horripilante:

Demostración
\[
\begin{array}{lll}
(1)&\lnot\lnot\alpha&\mbox{Premisa}\\
(2)&\lnot\lnot\alpha\rightarrow(\lnot\lnot\lnot\lnot\alpha\rightarrow \lnot\lnot\alpha)&\mbox{K1}\\
(3)&\lnot\lnot\lnot\lnot\alpha\rightarrow\lnot\lnot\alpha&\mbox{MP 1,2}\\
(4)&(\lnot\lnot\lnot\lnot\alpha\rightarrow \lnot\lnot\alpha)\rightarrow(\lnot\alpha\rightarrow\lnot\lnot\lnot\alpha)&\mbox{K3}\\
(5)&\lnot\alpha\rightarrow\lnot\lnot\lnot\alpha&\mbox{MP 3,4}\\
(6)&(\lnot\alpha\rightarrow\lnot\lnot\lnot\alpha)\rightarrow (\lnot\lnot\alpha\rightarrow\alpha)&\mbox{K3}\\
(7)&\lnot\lnot\alpha\rightarrow \alpha&\mbox{MP 5,6}\\
(8)&\alpha&\mbox{MP 1,7}
\end{array}
 \]

Por el teorema de deducción \[ \vdash \lnot\lnot\alpha\rightarrow\alpha \]. Esto vale para toda fórmula \[ \alpha \]. Si lo aplicamos a \[ \lnot\alpha \] obtenemos \[ \vdash \lnot\lnot\lnot\alpha\rightarrow\lnot\alpha \]. Usamos esto en la deducción siguiente:

\[
\begin{array}{lll}
(1)&\alpha&\mbox{Premisa}\\
(2)&\lnot\lnot\lnot\alpha\rightarrow\lnot\alpha&\mbox{por la observación precedente}\\
(3)&(\lnot\lnot\lnot\alpha\rightarrow\lnot\alpha)\rightarrow(\alpha\rightarrow\lnot\lnot\alpha)&\mbox{K3}\\
(4)&\alpha\rightarrow \lnot\lnot\alpha&\mbox{MP 2,3}\\
(5)&\lnot\lnot\alpha&\mbox{MP 1,4}
\end{array}
 \]

Aun a riesgo de resultar pesados insistiremos en que esto no es "la lógica", esto no son ejemplos representativos de lo que es "razonar lógicamente", sino todo lo contrario, son ejemplos absolutamente atípicos y nada representativos de lo que es un razonamiento lógico. Esto es una prueba técnica de un teorema técnico que sólo tiene interés para los especialistas en lógica, a saber, que toda la lógica es formalizable en \[ K_{\mathcal L} \]. Alguien interesado en usar la lógica para razonar en matemáticas puede simplemente aceptar las reglas de doble negación por el mero hecho de que son semánticamente válidas. Eso sí, si más adelante se interesa, por ejemplo, por entender los teoremas de incompletitud de Gödel, o quiere entender por qué no se puede demostrar la hipótesis del continuo, necesitará saber que todas esas reglas que ha aceptado por su validez semántica pueden deducirse de \[ K_{\mathcal L} \], de modo que estudiar las posibilidades de demostración en \[ K_{\mathcal L} \] es equivalente a estudiar las posibilidades de demostración en matemáticas.
[cerrar]

Reglas de la negación de la implicación (NI)  \[ \alpha\rightarrow\beta\vdash \lnot\beta\rightarrow\lnot\alpha \],   \[ \lnot\beta\rightarrow\lnot\alpha\vdash\alpha\rightarrow \beta \],   \[ \alpha\rightarrow\lnot\beta\vdash\beta\rightarrow\lnot\alpha \],   \[ \lnot\alpha\rightarrow \beta\vdash\lnot\beta\rightarrow\alpha \]

Para la prueba remito al lector a mi libro de lógica (página 47). La prueba de las reglas NI es "menos horripilante" que la de las reglas DN, pero no por ello dejan de ser "antinaturales" en el sentido de que no pueden ser entendidas como una justificación de por qué son semánticamente válidas. (Pero esto no ha de entenderse como ninguna clase de crítica a la teoría, la teoría es exactamente la que tiene que ser y las pruebas son antinaturales porque así tienen que ser, no hay nada de erróneo en el planteamiento).

Modus tollendo tollens (MT)     \[ \alpha\rightarrow\beta,\lnot\beta\vdash \lnot\alpha \],    \[ \alpha\rightarrow\lnot\beta, \beta\vdash \lnot\alpha \].

Para deducir estas reglas basta aplicar el recíproco del teorema de deducción a NI.



Reglas relacionadas con el disyuntor

Reglas de equivalecia entre disyunción e implicación (EDI)   \[ \alpha\lor\beta\vdash \lnot\alpha\rightarrow\beta \],   \[ \lnot\alpha\rightarrow \beta\vdash \alpha\lor \beta \].

Estas reglas son un caso particular de la regla de repetición, pues las dos fórmulas que relacionan son de hecho la misma, por la definición que hemos dado del disyuntor.

Notemos que nos proporcionan una técnica que es útil a menudo para demostrar una disyunción: suponemos que no se cumple una de las fórmulas y usamos eso para demostrar la otra. El teorema de deducción nos da entonces \[ \lnot\alpha\rightarrow \beta \] y esto equivale a \[ \alpha\lor\beta \].

Recíprocamente, una forma de "aprovechar" una premisa que sea una disyunción (no es la única posible) consiste en llegar a que no se cumple una de las fórmulas y concluir que se tiene que cumplir la otra. Esto lo expresa de forma más explícita la regla siguiente:

Modus tollendo ponens (MTP)  \[ \alpha\lor \beta,\lnot\alpha\vdash \beta \],   \[ \alpha\lor\beta,\lnot\beta\vdash \alpha \].

La primera se deduce inmediatamente de EDI: si suponemos \[ \alpha\lor\beta \] y \[ \lnot\alpha \], tenemos que \[ \lnot\alpha\rightarrow \beta \] y basta aplicar MP. Para la segunda:

\[
\begin{array}{lll}
(1)&\alpha\lor\beta&\mbox{Premisa}\\
(2)&\lnot\beta&Premisa\\
(3)&\lnot\alpha\rightarrow\beta&\mbox{EDI 1}\\
(4)&\lnot\lnot\alpha&\mbox{MT 2, 3}\\
(5)&\alpha&\mbox{DN 4.}
\end{array}
 \]

Una regla con demostración inmediata es:

Regla del tercio excluso o tertium non datur (TND)  \[ \vdash \alpha\lor\lnot\alpha \]

Basta tener en cuenta que esta fórmula es la misma que \[ \lnot\alpha\rightarrow\lnot\alpha \], que ya sabemos que es deducible en \[ K_{\mathcal L} \].

En cambio, la regla siguiente es algo más complicada de probar:

Regla de eliminación del disyuntor (ED)   \[ \alpha\lor\alpha\vdash\alpha \]

Una prueba directa a partir de los axiomas de \[ K_{\mathcal L} \] es especialmente monstruosa. En cambio, se simplifica muchísimo si se demuestran primero las reglas relacionadas con el conjuntor, de las que hablaremos luego. Remito a mi libro de lógica para la prueba (página 49).

Con esta regla podemos probar otra técnica útil para sacarle partido a una disyunción en una deducción: si contamos con que \[ \alpha\lor \beta \], una forma de concluir de ahí que se cumple una fórmula \[ \gamma \] es probar que cada una de las dos fórmulas por separado implica \[ \gamma \], esto es lo que se suele llamar "distinguir casos":

Regla del dilema (Dil)  \[ \alpha\rightarrow \gamma, \beta\rightarrow\gamma\vdash(\alpha\lor\beta)\rightarrow\gamma \]

Demostración

[cerrar]

Un caso particular de argumento "distinguiendo casos" consiste en tomar cualquier fórmula \[ \alpha \] que sea relevante en la discusión y probar que tanto \[ \alpha\rightarrow \beta \] como \[ \lnot\alpha\rightarrow\beta \]. Así, como tenemos \[ \alpha\lor\lnot\alpha \] por TND, podemos concluir \[ \beta \] por la regla anterior.

Regla de introducción del disyuntor (ID) \[ \alpha\vdash \alpha\lor\beta \],   \[ \beta\vdash\alpha\lor\beta \]

Una es trivial: aplicando el teorema de deducción a la regla de la contradicción obtenemos \[ \alpha\vdash \lnot\alpha\rightarrow\beta \], pero esto es exactamente lo mismo que \[ \alpha\vdash \alpha\lor\beta \], por la definición del disyuntor. Para la segunda usamos K1: \[ \beta\rightarrow(\lnot\alpha\rightarrow\beta) \], que con la premisa nos da \[ \lnot\alpha\rightarrow\beta \], que es lo mismo que \[ \alpha\lor\beta \].



Reglas relacionadas con el conjuntor

Las relaciones fundamentales entre el conjuntor y el disyuntor son las llamadas leyes de De Morgan, una de las cuales la hemos tomado como definición del conjuntor y, por consiguiente, su prueba es trivial (ya que se reduce a la regla de repetición):

Leyes de De Morgan (DM)

\[
\begin{array}{ll}
\phantom\lnot\alpha\land\beta\vdash\lnot(\lnot\alpha\lor\lnot\beta)&\lnot(\lnot\alpha\lor\lnot\beta)\vdash\alpha\land \beta\\
\phantom\lnot\alpha\lor\beta\vdash\lnot(\alpha\land\lnot\beta)&\lnot(\alpha\land\lnot\beta)\vdash\alpha\lor\beta\\
\lnot(\alpha\land\beta)\vdash \lnot\alpha\lor\lnot\beta&\lnot\alpha\lor\lnot\beta\vdash\lnot(\alpha\land\beta)\\
\lnot(\alpha\land\beta)\vdash \lnot\alpha\lor\lnot\beta&\lnot\alpha\lor\lnot\beta\vdash\lnot(\alpha\land\beta)
\end{array} \]

Según ya hemos dicho, las dos primeras son casos particulares de la regla de repetición, pues las dos fórmulas involucradas son la misma por definición. Para la prueba de las restantes remito a mi libro de lógica (página 48).

Una consecuencia inmediata de las leyes de De Morgan es la regla de no contradicción:

Regla de no contradicción \[ \vdash\lnot(\alpha\land\lnot\alpha) \]

En efecto, un caso particular de TND es \[ \lnot\alpha\lor\lnot\lnot\alpha \], y de aquí se pasa a la fórmula que indica la regla por DM.

Regla de introducción del conjuntor (IC)  \[ \alpha,\beta\vdash \alpha\land \beta \]

La prueba es bastante artificial. Remito a mi libro de lógica (página 48).

Reglas de eliminación del conjuntor (EC) \[ \alpha\land\beta\vdash\alpha \],   \[ \alpha\land \beta\vdash \beta \]

También llamaremos (EC) a los resultados \[ \vdash (\alpha\land\beta)\rightarrow \alpha \],  \[ \vdash(\alpha\land \beta)\rightarrow \beta \], que resultan de aplicar el teorema de deducción.

Para la prueba de estas reglas remito a mi libro de lógica (página 49).



Reglas relacionadas con el bicondicionador

Para razonar de forma natural con el coimplicador o bicondicionador basta considerar las dos reglas que resultan de combinar su definición (que es una conjunción) con las reglas de introducción y eliminación del conjuntor:

Regla de introducción del bicondicionador (IB) \[ \alpha\rightarrow\beta, \beta\rightarrow\alpha\vdash \alpha\leftrightarrow\beta \]

Reglas de eliminación del bicondicionador (EB) \[ \alpha\leftrightarrow\beta\vdash \alpha\rightarrow\beta \],   \[ \alpha\leftrightarrow\beta\vdash \beta\rightarrow\alpha \]



Las reglas que hemos dado son suficientes para que, contando con ellas, cualquier deducción en \[ K_{\mathcal L} \] que no requiera tratar con cuantificadores o el igualador pueda realizarse de forma natural, es decir, sin tener que recurrir a combinar de forma "inspirada" axiomas lógicos aplicados a fórmulas elegidas "inspiradamente". En el mensaje siguiente introduciremos las reglas necesarias para poder trabajar del mismo modo con los cuantificadores y el igualador.

Conviene observar que en la deducción de todas las reglas derivadas que hemos visto hasta aquí sólo han intervenido los axiomas K1, K2 y K3 y la regla MP. En particular, como nunca hemos usado IG, todas las reglas pueden usarse libremente aunque estemos trabajando bajo hipótesis adicionales para aplicar el teorema de deducción, pues la aplicación de estas reglas nunca supondrá una generalización inadvertida sobre una variable libre en alguna hipótesis (ni sobre ninguna otra variable).

Las reglas de inferencia que hemos presentado bastan para justificar que una técnica de razonamiento muy habitual en matemáticas es formalizable en \[ K_{\mathcal L} \]:

Razonamiento por reducción al absurdo

Si en una deducción tomamos \[ \lnot\alpha \] como premisa adicional y, sin generalizar respecto de variables libres en \[ \alpha \], llegamos a una contradicción \[ \beta\land\lnot\beta \], podemos concluir \[ \alpha \].

Más precisamente, lo que estamos afirmando es que en esta situación:



si a partir del momento en que suponemos \[ \lnot\alpha \] no generalizamos respecto a variables libres en \[ \alpha \], la fórmula \[ \alpha \] escrita en la línea \[ (k+1) \] es deducible en \[ K_{\mathcal L} \] a partir de las premisas, pero las líneas marcadas con la raya vertical a la izquierda no lo son, porque suponen la hipótesis adicional \[ \lnot\alpha \].

En efecto, lo que nos dice el teorema de deducción al llegar a la línea \[ (k) \] es que \[ \lnot\alpha\rightarrow (\beta\land\lnot\beta) \] es deducible de las premisas, luego podríamos haber escrito esta fórmula en la línea \[ (k+1) \], y la deducción podría haber continuado así:

\[ \begin{array}{lll}
(k+1)&\lnot\alpha\rightarrow (\beta\land\lnot\beta)\\
(k+2)&\lnot (\beta\land\lnot\beta)&\mbox{NC}\\
(k+3)&\lnot\lnot\alpha&\mbox{MT $k+1, k+2$}\\
(k+4)&\alpha&\mbox{DN $k+3$}
\end{array} \]

En la práctica suprimiremos estas líneas y escribiremos directamente \[ \alpha \] tras haber llegado a una contradicción. En suma:

Una forma válida de concluir \[ \alpha \] es suponer \[ \lnot\alpha \] como hipótesis adicional y llegar a una contradicción, con la condición de que a partir de ese momento no se generalice respecto de variables libres en \[ \alpha \].

Nuevamente, la restricción sobre la generalización es algo que todo matemático respetará de forma instintiva en cada caso concreto. Por ejemplo, supongamos que, en el curso de una prueba, un matematico quiere probar que un cierto \[ p \] que está considerando es un número primo y se propone hacerlo por reducción al absurdo. Jamás razonaría así:

(1) Supongamos (por reducción al absurdo) \[ \lnot (p \] es primo)

(2) \[ \forall p\lnot (p \] es primo) (generalización que viola la restricción sobre el uso de IG)

(3) \[ \exists p\ (p \] es primo) (resultado probado anteriormente)

(4) \[ \lnot\forall p\ \lnot (p \] es primo) (equivalencia lógica con 3 que veremos en el mensaje siguiente)

(5)  \[ \forall p\lnot (p \] es primo) \[ \land \lnot\forall p\ \lnot(p \] es primo) contradicción

(6) \[ p \] es primo, por reducción al absurdo.

Esto en realidad no prueba nada. Podemos suponer para llegar a un absurdo que \[ p \] no es primo, pero no podemos pasar de ahí a que ningún p es primo (que es lo que obtenemos si generalizamos ilegalmente respecto de p).

24 Marzo, 2013, 12:20
Respuesta #14

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Aunque todavía nos falta por dar reglas que nos permitan trabajar de forma natural con los cuantificadores y con el igualador, podemos decir que en este punto "ya hemos desempaquetado la lógica", porque los únicos axiomas "pensados con ingenio" para contener mucha lógica en poco espacio son los axiomas K1, K2, K3 que ya hemos desarrollado, y el axioma K5, que hemos usado únicamente en la prueba del teorema de deducción y no volveremos a usarlo nunca más.

Más concretamente, K5 se usa para probar que el teorema de deducción es aplicable a deducciones que usen IG, pero como en el mensaje anterior sólo lo hemos usado para deducciones que no usaban IG, todo lo dicho hasta aquí es válido incluso sin K5, y ahora sólo lo vamos a usar indirectamente, cuando apliquemos el teorema de deducción a deducciones que usan IG.

Ahora sólo nos falta desarrollar los axiomas K4 y K6, que hasta ahora no hemos usado para nada, y ambos son bastante "naturales", así que ya nunca más vamos a necesitar demostrar nada mediante argumentos "retorcidos".

Reglas relacionadas con los cuantificadores

Las propiedades de los cuantificadores (sin tener en cuenta el uso indirecto de K5 que acabamos de explicar) se siguen todas del axioma K4, que recordamos aquí:

\[ \forall x\alpha\rightarrow S_x^t\alpha \]

Lo que afirma es muy natural y podemos expresarlo equivalentemente en forma de regla de inferencia:

Regla de eliminación del generalizador (EC) \[ \forall x\alpha\vdash S_x^t\alpha \]

Lo que afirma esta regla es que si contamos con que todo \[ x \] cumple lo que dice \[ \alpha \], entonces podemos afirmar que un término \[ t \] cualquiera cumple lo que dice \[ \alpha \].

No damos una regla de introducción del generalizador porque ésta es una de las dos reglas primitivas que hemos usado para definir \[ K_{\mathcal L} \].

La relación entre el cuantificador universal y el existencial son consecuencia esencialmente de la definición del segundo y de la regla de doble negación:

Reglas de negación del generalizador (NG) \[ \lnot\forall x\lnot\alpha\vdash \exists x\alpha \],   \[ \exists x\alpha\vdash \lnot\forall x\lnot\alpha \],     \[ \lnot\forall x\alpha\vdash \exists x\lnot\alpha \],   \[ \exists x\lnot\alpha\vdash \lnot\forall x\alpha \]

Las dos primeras son casos particulares de la regla de repetición, pues hemos definido \[ \exists x\alpha \] precisamente como \[ \lnot\forall x\lnot\alpha \], luego las dos fórmulas que involucran las reglas son la misma.

Las otras dos sólo requieren aplicar oportunamente la regla de doble negación, lo cual exige eliminar primero el cuantificador para luego volverlo a introducir:

Demostración


Observemos que desde el momento en que suponemos (2) está prohibido generalizar respecto de variables libres en (2), pero luego sólo generalizamos respecto de \[ x \], que no está libre en (2).



Notemos que aquí hemos usado una variante de la reducción al absurdo: en vez de suponer \[ \lnot\alpha \] para llegar a una contradicción y deducir \[ \alpha \], hemos supuesto \[ \alpha \] para deducir \[ \lnot\alpha \]. Esto es válido en general, pues podríamos haber supuesto \[ \lnot\lnot\alpha \], aplicar DN y luego seguir como hemos hecho. Notemos también que el uso de IG no viola la restricción que exige la hipótesis (2) por reducción al absurdo.
[cerrar]

Reglas de negación del particularizador (NP) \[ \lnot\exists x\alpha\vdash \forall x\lnot\alpha \],    \[ \forall x\lnot\alpha\vdash \lnot\exists x\alpha \],    \[ \lnot\exists x\lnot\alpha\vdash \forall x\alpha \],     \[ \forall x\alpha\vdash \lnot\exists x\lnot\alpha \].

Éstas se prueban más fácilmente incluso que las anteriores, porque al anteponer un negador al particularizador y aplicar la definición de éste, se juntan dos negadores que pueden ponerse o quitarse por DN, y no hacen falta reducciones al absurdo. Dejamos las pruebas al lector y, en todo caso, remito a mi libro de lógica (página 51).

Regla de introducción del particularizador (IP) \[ S_x^t\alpha\vdash \exists x\alpha \]

Esta regla afirma que si hemos probado que un cierto término \[ t \] cumple lo que dice \[ \alpha \], entonces podemos afirmar que existe un \[ x \] que cumple \[ \alpha \]. Tenemos un ejemplo de  su uso en la línea 12 de la deducción sobre divisibilidad que pusimos como ejemplo más arriba.

Demostración

[cerrar]

Por último nos falta una "regla de eliminación del particularizador", que es la que aplica un matemático cuando tiene que \[ \exists x\alpha \] y dice "tomemos un \[ x \] que cumpla \[ \alpha \]". Tenemos dos ejemplos en las líneas 5 y 8 de la deducción sobre divisibilidad que pusimos como ejemplo. Ahora bien, esta "regla" no es realmente una regla derivada de inferencia, sino un (meta)teorema análogo al teorema de deducción. Para probarlo necesitamos un hecho previo que tiene interés en sí mismo:

Teorema: Si la variable \[ y \] no está en la fórmula \[ \forall x\alpha \], entonces

\[ \vdash\forall x\alpha\leftrightarrow \forall yS_x^y\alpha,\qquad \vdash \exists x\alpha\leftrightarrow \exists y S_x^y\alpha \]

Demostración


Notemos que podemos generalizar sobre \[ y \] porque suponemos que la variable no está libre en la hipótesis.

Ahora observamos que la variable \[ x \] no está libre en \[ \forall y S_x^y\alpha \] (porque todas sus apariciones libres han sido sustituidas por \[ y \]), luego podemos aplicar lo que acabamos de probar a la variable \[ x \] y la fórmula \[ \forall yS_x^y\alpha \], con lo que obtenemos \[ \vdash \forall y S_x^y\alpha\rightarrow \forall x S_y^xS_x^y\alpha \], pero es fácil ver que la doble sustitución es simplemente \[ \alpha \]. Así hemos probado:

\[ \vdash \forall x\alpha\rightarrow \forall yS_x^y\alpha\qquad \vdash \forall y S_x^y\alpha\rightarrow\forall x\alpha \]

Aplicando la regla IB obtenemos la primera parte del enunciado. Para la segunda parte aplicamos lo que hemos visto a la fórmula \[ \lnot\alpha \] y tenemos:

\[ \vdash \forall x\lnot \alpha\rightarrow \forall y\lnot S_x^y\alpha\qquad \vdash \forall y\lnot S_x^y\alpha\rightarrow\forall x\lnot\alpha \]

Prolongando ambas deducciones con una aplicación de NI obtenemos

\[ \vdash \lnot\forall y\lnot S_x^y\alpha\rightarrow\lnot\forall x\lnot\alpha\qquad \vdash \lnot\forall x\lnot \alpha\rightarrow \lnot\forall y\lnot S_x^y\alpha \]

Y esto es exactamente lo mismo que

\[ \vdash\exists y S_x^y\alpha\rightarrow\exists x\alpha\qquad \vdash\exists x\alpha\rightarrow \exists y S_x^y\alpha \],

de donde se sigue la segunda parte del enunciado.
[cerrar]

Regla de eliminación del particularizador (EP):

En esta situación:

\[ \begin{array}{lll}
(1)&\gamma_1\\
\ \ \vdots&&\mbox{deducción a partir de unas premisas $\alpha_1,\ldots, \alpha_n$}\\
(k)& \exists x\alpha&\\
\ \ \vdots\\
(m)&\gamma_m\\
(m+1)&S_x^y\alpha&\mbox{EP k}\\
\ \ \vdots&&\mbox{deducción a partir de las premisas, las líneas precedentes y $S_x^y\alpha$}\\
\end{array} \]

Si la variable \[ y \] no está en \[ \alpha \] o bien \[ y\equiv x \] (en cuyo caso \[ S_x^x\alpha\equiv \alpha \]) y a partir de la línea \[ m+1 \] no se generaliza respecto de variables libres en \[ S_x^y\alpha \], entonces toda línea posterior \[ \beta \] que no tenga libre la variable \[ y \] es una consecuencia de las premisas.

Demostración
En principio, en la situación descrita tenemos que

\[ \alpha_1,\ldots, \alpha_n,S_x^y\alpha\vdash \beta \].

Ahora bien,  como para obtener \[ \beta \] no se ha generalizado respecto de ninguna variable libre en \[ S_x^y\alpha \], podemos aplicar el teorema de deducción y concluir que

\[ \alpha_1,\ldots, \alpha_n\vdash S_x^y\alpha\rightarrow \beta \].


Pero también sabemos que \[ \alpha_1,\ldots, \alpha_n\vdash \exists x\alpha \] y por el teorema anterior también

\[ \alpha_1,\ldots, \alpha_n\vdash \exists yS_x^y\alpha \]

Por lo tanto, sólo necesitamos probar que \[ S_x^y\alpha\rightarrow \beta,  \exists yS_x^y\alpha\vdash\beta \]. En efecto:


[cerrar]

Es muy importante observar que en la deducción de \[ \beta \] a partir de las premisas se generaliza respecto de la variable \[ y \]. Esto significa que si aplicamos EP en un contexto en el que tenemos prohibido generalizar respecto de ciertas variables, debemos elegir la variable \[ y \] como una nueva variable sobre la que no exista prohibición de generalizar. Una vez más, esto es algo que el matemático hace instintivamente. Consideremos por ejemplo la deducción sobre divisibilidad que presentamos unos mensajes atrás:

Desde la línea 2, tenemos prohibido generalizar respecto de \[ x, y, z \]. En la línea 5 eliminamos un particularizador \[ \exists u \], y no cambiamos de variable porque no hay problema en generalizar respecto de \[ u \]. A partir de esa línea tenemos prohibido generalizar respecto de \[ u \], por lo que, cuando queremos eliminar el \[ \exists u \] de la línea 7 nos vemos obligados a sustituir la variable \[ u \] por una nueva variable \[ v \] que tiene que ser distinta de \[ x, y, z, u \], que son las variables respecto a las que tenemos prohibido generalizar. El matemático hace esto instintivamente cuando piensa que no puede tomar \[ u \] tal que \[ z=yu \] porque ya está llamando \[ u \] a otro número, y mucho menos se le ocurriría llamarlo \[ x, y, z \] por el mismo motivo, porque sabe que el \[ u \] que existe por 7 no tiene por qué ser el mismo que cualquiera de los números que está considerando hasta entonces.

Al introducir el particularizador en 12 dejamos de tener libres las variables \[ u, v \], por lo que todas las fórmulas que siguen son ya auténticas consecuencias de las premisas (y de la hipótesis 2), y podemos aplicar el teorema de deducción para pasar a 14 (hubiera sido incorrecto hacerlo con una fórmula que tuviera libre la variable \[ u \] o la variable \[ v \].

Nótese la sutileza: a partir del momento en que suponemos \[ y=xu \] queda prohibido generalizar respecto de \[ u \], pero la deducción de \[ x\mid z \] a partir de las premisas y la hipótesis (2) usa la regla IG respecto de \[ u \], es decir, tenemos prohibido generalizar, pero a la vez la prueba completa que elimina la premisa adicional \[ y=xu \] generaliza respecto de \[ u \]. En general:

Cuando aplicamos EP, debemos reemplazar la variable afectada por el particularizador por una variable respecto a la que sea lícito generalizar hasta ese momento, pero a partir de ese momento tenemos prohibido generalizar respecto de ella.

Como al eliminar un particularizador dejamos libre una variable que no puede quedar libre en la conclusión, la única forma de volver a ligarla es mediante la regla de introducción del particularizador (IP), porque la regla de introducción del generalizador la tenemos prohibida. Aquí es fundamental observar que en la demostración de IP no se generaliza respecto a la variable que particularizamos.

Notemos que es "de sentido común": si una variable procede de eliminar un \[ \exists u \], luego no podemos ligarla con un \[ \forall u \], sino que tendremos que volver a introducir un particularizador.

Reglas relacionadas con el igualador

Finalmente vamos a "desempaquetar" la lógica del igualador, que la tenemos toda "empaquetada" en el axioma K6. Si queremos expresar este axioma como reglas de inferencia tenemos trivialmente las dos reglas siguientes:

Reglas de introducción y eliminación del igualador (II, EI)

\[ S_x^t\alpha\vdash \forall x(x=t\rightarrow \alpha)\qquad \forall x(x=t\rightarrow \alpha)\vdash S_x^t\alpha \]

Estas reglas sólo son aplicables si la variable \[ x \] no está (libre) en \[ t \].

Lo que dice aquí es que es equivalente que \[ t \] cumpla \[ \alpha \] que cuando \[ x=t \] entonces \[ x \] cumple \[ \alpha \].

De aquí se deducen todas las propiedades que cabe esperar del igualador:

Regla de la identidad (I) \[ \vdash t=t \]

Demostración
Sea \[ x \] una variable que no esté en \[ t \]. La primera línea de la deducción siguiente la incluimos porque ya hemos probado que es deducible en \[ K_{\mathcal L} \].

\[ \begin{array}{lll}
(1)&x=t\rightarrow x=t\\
(2)&\forall x(x=t\rightarrow x=t)&\mbox~{IG 1}\\
(3)&S_x^t(x=t)&\mbox{EI 2}\\
(4)&t=t&\mbox{R3}
\end{array} \]

Notemos que en la prueba usamos IG, pero respecto de una variable que podemos elegir arbitrariamente, por lo que no hay problema en usar la regla I en contextos donde no se pueda generalizar respecto de ciertas variables, pues para llenar el "agujero" que supone usar I siempre podemos elegir \[ x \] distinta de tales variables prohibidas. Lo mismo se aplica a las reglas siguientes.
[cerrar]

Regla se la simetría de la identidad (SI) \[ t_1=t_2\vdash t_2=t_1 \]

Regla se la transitividad de la identidad (TI) \[ t_1=t_2,t_2=t_3\vdash t_1=t_3 \]

Para la prueba de las dos reglas precedentes remito a mi libro de lógica (página 52). Veamos la prueba de la propiedad más importante y la que se usa en todo momento cuando se trabaja con igualdades:

Regla de equivalencia entre términos idénticos (ETI) \[ t_1=t_2, S_x^{t_2}\alpha\vdash S_x^{t_1}\alpha \]

Lo que afirma esta regla es que si tenemos que \[ t_1=t_2 \] y que \[ t_2 \] cumple lo que afirma \[ \alpha \], entonces lo mismo vale para \[ t_1 \] o, más en general, que si tenemos \[ t_1=t_2 \] entonces todo lo que sepamos de \[ t_2 \] vale también para \[ t_1 \].

Demostración
Sea \[ y \] una variable que no esté en \[ \alpha \], \[ t_1 \] o \[ t_2 \] (tomamos esta variable en previsión de que \[ x \] pudiera estar libre en alguno de los términos). Es fácil ver entonces que \[ S_y^{t_2}S_x^y\alpha\equiv S_x^{t_2}\alpha \] y \[ S_y^{t_1}S_x^y\alpha\equiv S_x^{t_1}\alpha \].

\[ \begin{array}{lll}
(1)&S_y^{t_2}S_x^y\alpha&\mbox{Premisa}\\
(2)&t_1=t_2&\mbox{Premisa}\\
(3)&\forall y(y=t_2\rightarrow S_x^y\alpha)&\mbox{II 1}\\
(4)&t_1=t_2\rightarrow S_y^{t_1}S_x^y\alpha&\mbox{EG 3}\\
(5)&S_x^{t_1}\alpha&\mbox{MP 2,4}
\end{array} \]
[cerrar]

24 Marzo, 2013, 22:42
Respuesta #15

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Ahora estamos en condiciones de usar de forma natural el cálculo deductivo que hemos construido. Conviene enriquecer un poco el lenguaje que estamos empleando:

Definición Una teoría axiomática de primer orden \[ T \] sobre un lenguaje formal \[ \mathcal L \] es un sistema deductivo formal cuyos axiomas son los de \[ K_{\mathcal L} \] más quizá otros axiomas adicionales, a los que se les llama axiomas propios de la teoría, y cuyas reglas de inferencia son las de  \[ K_{\mathcal L} \].

Pese a lo que acabamos de decir, en la práctica es costumbre llamar axiomas de \[ T \] a sus axiomas propios, y axiomas lógicos de \[ T \] a los axiomas de \[ K_{\mathcal L} \].

Una demostración en una teoría axiomática \[ T \] es una deducción sin premisas (que es lo mismo que una deducción en \[ K_{\mathcal L} \] que tiene por premisas los axiomas (propios) de \[ T \]).

Esto hace que todos los resultados que hemos obtenido para deducciones en \[ K_{\mathcal L} \] son aplicables a toda teoría axiomática \[ T \], pues las deducciones en \[ T \] son también deducciones en \[ K_{\mathcal L} \], sólo que cuentan con premisas adicionales, a saber, los axiomas de \[ T \].

Las fórmulas demostrables en \[ T \] (es decir, deducibles sin premisas o deducibles en \[ K_{\mathcal L} \] tomando como premisas los axiomas de \[ T \])  se llaman teoremas de \[ T \].

Si \[ \lnot\alpha \] es demostrable en \[ T \] se dice que \[ \alpha \] es refutable en \[ T \], y una demostración de \[ \lnot\alpha \] se llama también una refutación de \[ \alpha \].

Así \[ K_{\mathcal L} \] es la teoría axiomática de primer orden más simple posible (la única que no tiene axiomas propios) y sus teoremas se llaman teoremas lógicos. El teorema de completitud semántica (que aún no hemos demostrado) implica que los teoremas lógicos son precisamente las fórmulas lógicamente válidas, es decir, las verdaderas en todos los modelos.

Una teoría axiomática de primer orden \[ T \] es contradictoria si en ella se puede demostrar una contradicción, es decir, si existe una fórmula \[ \alpha \] tal que \[ \vdash_T\alpha\land\lnot\alpha \]. En caso contrario se dice consistente.

Notemos que, por la regla de contradicción, en una teoría contradictoria se pueden demostrar todas las fórmulas, luego sus demostraciones no tienen valor alguno. Recíprocamente, una teoría es consistente si y sólo si hay al menos una fórmula que no sea un teorema.

Una teoría \[ T \] es completa si para toda sentencia \[ \alpha \] se cumple \[ \vdash_T\alpha  \] o bien \[ \vdash_T\lnot \alpha \], es decir, si toda sentencia es demostrable o refutable en \[ T \].

Nota
Es importante que en la definición de teoría completa hablamos sólo de sentencias (fórmulas sin variables libres) y no de fórmulas arbitrarias. Por ejemplo, consideremos la fórmula \[ x=y \]. Esta fórmula no es refutable en ninguna teoría consistente, pues si \[ \vdash_T x\neq y \] entonces, usando IG,  \[ \vdash_T\forall xy(x\neq y) \], pero esto es contradictorio, ya que usando EG se obtiene también \[ \vdash_T x\neq x \]. Como también tenemos \[ \vdash_Tx=x \], resulta que \[ T \] es contradictoria.

Por otro lado, si una teoría cumple \[ \vdash_Tx=y \] entonces también \[ \vdash_T\forall xy(x=y) \], y resulta que los únicos modelos que admite \[ T \] tienen un único elemento en su universo. Así pues, la fórmula \[ x=y \] no es demostrable ni refutable en ninguna teoría que admita modelos con más de un elemento. Hemos definido la completitud de modo que esto no sea obstáculo para que una teoría pueda ser completa.
[cerrar]

Ejemplo Una teoría axiomática de primer orden es la aritmética de Peano (de primer orden) AP, que es la teoría axiomática cuyo lenguaje formal es el lenguaje de la aritmética que ya hemos descrito (el que tiene una constante \[ 0 \], un funtor monádico \[ S \] y dos funtores diádicos \[ + \] y \[ \cdot \]) y cuyos axiomas (propios) son:

\[ \forall x\ Sx\neq 0 \]

\[ \forall xy(Sx=Sy\rightarrow x=y) \]

\[ \forall x(x+0=x) \]

\[ \forall xy(x+Sy=S(x+y)) \]

\[ \forall x(x\cdot 0=0) \]

\[ \forall xy(x\cdot Sy = (x\cdot y)+x) \]

\[ \alpha(0)\land \forall x(\alpha(x)\rightarrow \alpha(Sx))\rightarrow \forall x\alpha(x) \], para toda fórmula \[ \alpha \].

Notemos que usamos la notación \[ \alpha(0)\equiv S_x^0\alpha \],      \[ \alpha(Sx)\equiv S_x^{Sx}\alpha \].



Introducidos estos conceptos, nos centramos ahora en ilustrar el concepto de deducción formal. Tomemos este ejemplo:

\[ \alpha\rightarrow \alpha',\beta\rightarrow \beta'\vdash (\alpha\lor \beta)\rightarrow (\alpha'\lor\beta') \]

Lo importante es que estamos en condiciones de probar esto (y cualquier otra cosa) razonando exactamente como razonaría un matemático. Un matemático razonaría así:

Tenemos como premisas que \[ \alpha\rightarrow \alpha' \] y \[ \beta\rightarrow \beta' \]. Para probar \[ (\alpha\lor \beta)\rightarrow (\alpha'\lor\beta') \] suponemos \[ \alpha\lor\beta \] y queremos probar \[ \alpha'\lor\beta' \]. Para probar una disyunción suponemos que no se cumple una de las partes y demostramos la otra. Suponemos, pues, \[ \lnot\alpha' \]. Entonces, por la primera premisa, \[ \lnot\alpha \] y como suponemos \[ \alpha\lor \beta \], tiene que ser \[ \beta \], luego por la segunda premisa \[ \beta' \], como queríamos probar.

Si ponemos esto en orden nos queda:



Si alguien lee esto y el razonamiento le parece artificial o enrevesado, significa que no está bien familiarizado con la lógica formal, y es con esto con lo que necesita familiarizarse, tiene que aprender a hacer deducciones formales como ésta y llegar a verlas naturales, no tiene que esforzarse por entender e imaginar deducciones kafkianas a partir de axiomas kafkianos, como las que hemos considerado en los mensajes anteriores para "desempaquetar" la lógica. El razonamiento formal es razonar así y no razonar como hemos tenido que hacer antes de poder llegar hasta aquí.

Por supuesto, las reglas de inferencia que hemos presentado en los mensajes precedentes no son las únicas posibles, ni forman ninguna especie de club selecto al que no se puede añadir nada más. Por el contrario, todos los resultados que demostremos y que puedan considerarse lo suficientemente generales como para que puedan ser de utilidad en diferentes contextos pueden y deben ser incorporados a la lista de resultados "utilizables" siempre que sea conveniente.

Por ejemplo, si tenemos \[ \alpha\leftrightarrow \beta \] y \[ \alpha \], podemos concluir \[ \beta \], esto no es exactamente MP porque tenemos una coimplicación, pero está claro que de la coimplicación podemos deducir la implicación (EB) y a ésta le podemos aplicar MP. En la práctica no hay ningún inconveniente en dar los dos pasos en uno si sabemos lo que estamos haciendo.

Vamos a enumerar aquí algunos resultados de utilidad general:

Resultados sobre coimplicaciones

\[ \vdash \alpha\leftrightarrow \alpha \]

\[ \alpha\leftrightarrow\beta\vdash \beta\leftrightarrow \alpha \]

\[ \alpha\leftrightarrow \beta, \beta\leftrightarrow \gamma\vdash\alpha\leftrightarrow\gamma \]

\[ \alpha\leftrightarrow\beta\vdash \lnot\alpha\leftrightarrow \lnot\beta \]

\[ \alpha\leftrightarrow \alpha', \beta\leftrightarrow \beta'\vdash (\alpha\land\beta)\leftrightarrow (\alpha'\land \beta') \]

\[ \alpha\leftrightarrow \alpha', \beta\leftrightarrow \beta'\vdash (\alpha\lor\beta)\leftrightarrow (\alpha'\lor \beta') \]

\[ \alpha\leftrightarrow \alpha', \beta\leftrightarrow \beta'\vdash (\alpha\rightarrow \beta)\leftrightarrow (\alpha'\rightarrow \beta') \]

\[ \alpha\leftrightarrow \alpha', \beta\leftrightarrow \beta'\vdash (\alpha\leftrightarrow \beta)\leftrightarrow (\alpha'\leftrightarrow \beta') \]

\[ \alpha\leftrightarrow \alpha'\vdash \forall x\alpha\leftrightarrow \forall x\alpha' \]

\[ \alpha\leftrightarrow \alpha'\vdash \exists x\alpha\leftrightarrow \exists x\alpha' \]

Demostración
Las pruebas son sencillas: las cuatro primeras se demuestran desdoblando las coimplicaciones de las premisas en implicaciones, aplicando las propiedades correspondientes para implicaciones (que ya las tenemos probadas) y agrupando de nuevo las implicaciones en coimplicaciones.

La sexta se obtiene desdoblando igualmente las premisas y aplicando el resultado que hemos probado más arriba como ejemplo. La quinta, séptima y octava son similares, pero más fáciles. Veamos la penúltima:



Un matemático diría: suponemos la premisa (1). Para probar la equivalencia empezamos suponiendo (2). Tomemos ahora un \[ x \] arbitrario. Por (2) sabemos que cumple \[ \alpha \], es decir, (3), por la premisa nuestro \[ x \] cumple también \[ \alpha' \], es decir, (4), y como \[ x \] era arbitrario podemos generalizar y escribir (5). Esto prueba la implicación (6) y análogamente se prueba (7), luego tenemos (8).

El último resultado se prueba exactamente igual cambiando EG, IG por EP, IP. En la versión del matemático, los únicos cambios son que ahora diría "tomemos un \[ x \] que cumple \[ \alpha \], es decir, (3) (sabemos que existe por (2)), entonces \[ x \] cumple también \[ \alpha' \], es decir, (4), luego existe un \[ x \] que cumple \[ \alpha' \], es decir, (6)..."
[cerrar]

El álgebra del cálculo proposicional

A menudo es útil sustituir una fórmula por otra lógicamente equivalente con otra estructura, normalmente con intención de llegar a expresiones más simples o más manejables. Para ello ayudan las propiedades siguientes (donde usamos la notación \[ \top \] para nombrar cualquier fórmula que sea un teorema lógico y \[ \bot \] para representar cualquier fórmula cuya negación sea un teorema lógico:

\[ \vdash (\alpha\land \beta)\land \gamma\leftrightarrow \alpha\land (\beta\land \gamma) \]

\[ \vdash (\alpha\lor \beta)\lor \gamma\leftrightarrow \alpha\lor (\beta\lor \gamma) \]

\[ \vdash (\alpha\land \beta)\leftrightarrow (\beta\land \alpha) \]

\[ \vdash (\alpha\lor \beta)\leftrightarrow (\beta\lor \alpha) \]

\[ \vdash \alpha\land (\beta\lor\gamma)\leftrightarrow (\alpha\land\beta)\lor (\alpha\land \gamma) \]

\[ \vdash \alpha\lor (\beta\land\gamma)\leftrightarrow (\alpha\lor\beta)\land (\alpha\lor \gamma) \]

\[ \vdash \alpha\lor \bot\leftrightarrow \alpha \]

\[ \vdash \alpha\land \top\leftrightarrow \alpha \]

\[ \vdash\alpha\lor\lnot\alpha\leftrightarrow \top \]

\[ \vdash\alpha\land\lnot\alpha\leftrightarrow \bot \]

Los dos primeros resultados justifican que escribamos \[ \alpha_1\land \cdots \land \alpha_n \] y \[ \alpha_1\lor \cdots \lor \alpha_n \] sin paréntesis, porque las fórmulas resultantes son equivalentes sin que importe cómo se disponen los paréntesis.

Demostración
Dejamos la primera al lector porque es más fácil que la segunda.



La otra implicación es análoga.

Dejamos al lector las propiedades conmutativas y probamos la primera distributiva:



¿Y no sería más fácil probar esta equivalencia demostrando que la tabla de verdad de la coimplicación es siempre verdadera? Si hacemos eso habremos probado que la fórmula es lógicamente válida, pero en principio eso no es lo mismo que ser deducible en \[ K_{\mathcal L} \], que es lo que acabamos de probar. Ahora bien, aceptando el teorema de completitud semántica ambos métodos son equivalentes, eso sí, con las tablas de verdad probamos que la equivalencia se puede demostrar, pero no obtenemos una demostración.

Veamos la primera de las cuatro últimas y dejamos las demás al lector:


[cerrar]

El spoiler siguiente contiene una observación marginal:

El álgebra de Lindenbaum-Tarski
Aunque esto tendría sentido metamatemáticamente, no hay razón para plantearlo fuera de una teoría de conjuntos, así que en esta nota consideramos que estamos desarrollando la lógica formalizada en ZF.

Dada una teoría axiomática \[ T \] consideramos el conjunto de todas sus sentencias (fórmulas sin variables libres) y definimos en él la relación de equivalencia dada por

\[ \alpha\sim \beta \] si y sólo si \[ \vdash_T\alpha\leftrightarrow \beta \]

Los teoremas precedentes muestran que, en efecto, se trata de una relación de equivalencia. Por ejemplo, si \[ \alpha\sim \beta \], entonces \[ \vdash_T\alpha\leftrightarrow \beta \], y como \[ \alpha\leftrightarrow \beta\vdash \beta\leftrightarrow\alpha \], también \[ \vdash_T\beta\leftrightarrow\alpha \], luego \[ \beta\sim \alpha \].

Se define el álgebra de Lindenbaum-Tarski de \[ T \] como el conjunto cociente \[ \mathbb B(T) \] respecto de esta relación de equivalencia. Así, los elementos de \[ \mathbb B(T) \] son clases de equivalencia \[ [\alpha] \] de sentencias del lenguaje de \[ T \].

Los teoremas anteriores prueban que las operaciones dadas por \[ \lnot[\alpha]=[\lnot\alpha] \], \[ [\alpha]\land [\beta]=[\alpha\land \beta] \], \[ [\alpha]\lor [\beta]=[\alpha\lor\beta] \] están bien definidas, en el sentido de que no dependen de los representantes con los que se calculan.

Todos los teoremas de \[ T \] forman una misma clase de equivalencia, a la que llamaremos \[ 1=[\top] \]. En efecto, es claro que \[ \alpha,\beta\vdash \alpha\leftrightarrow \beta \], por lo que dos teoremas cualesquiera de \[ T \] son equivalentes. A su vez, la clase \[ 0=\lnot 1 \] está formada por las negaciones de los teoremas de \[ T \].

Las propiedades que hemos demostrado implican claramente que \[ \mathbb B(T) \] con estas operaciones es un álgebra de Boole. La teoría \[ T \] es contradictoria si y sólo si \[ \mathbb B(T)=\{0\} \] (y se dice que el álgebra es degenerada). Si es consistente, será completa si y sólo si \[ \mathbb B(T)=\{0,1\} \] (y se dice que el álgebra es trivial). Cuanto mayor sea el álgebra de Lindenbaum-Tarski, "más incompleta" es la teoría.
[cerrar]

Ejemplos de deducciones con cuantificadores

Para terminar veamos algunos ejemplos que involucren las reglas sobre cuantificadores:

\[ \forall xy(Bxy\rightarrow Sy), \exists x(\lnot Bxa\rightarrow Cx), \forall x\lnot Cx\vdash \exists ySy \]

(Aquí se entiende que \[ B, S, C, \] son relatores y que \[ a \] es una constante.)

Solución

Añadimos una primera columna con "lo que diría un matemático":

\[ \begin{array}{llll}
&(1)&\forall xy(Bxy\rightarrow Sy)&\mbox{Premisa}\\
&(2)&\exists x(\lnot Bxa\rightarrow Cx)&\mbox{Premisa}\\
&(3)&\forall x\lnot Cx&\mbox{Premisa}\\
\mbox{Tomemos un $x$ que cumpla (2)}&(4)&\lnot Bxa\rightarrow Cx&\mbox{EP 2}\\
\mbox{Por (3), dicho $x$ cumple}&(5)&\lnot Cx&\mbox{EG 3}\\
\mbox{luego}&(6)&Bxa&\mbox{MT 4, 5}\\
\mbox{Aplicamos (1) a $x$ y $a$}&(7)&Bxa\rightarrow Sa&\mbox{EG 1}\\
\mbox{de donde}&(8)&Sa&\mbox{MP 6, 7}\\
\mbox{Como $a$ cumple $S$ tenemos que}&(9)&\exists y\ Sy&\mbox{IP 8}
\end{array} \]

Notemos que a partir de (4) no se podía generalizar respecto de \[ x \] y que (8) puede verse como \[ S_y^aSy \] para aplicar IP. La conclusión es correcta porque no tiene a \[ x \] como variable libre.
[cerrar]

\[ \exists y\forall x(Pxy\rightarrow Rxy), \forall yz\ Pyz\vdash \forall y\exists z\ Ryz \]

Solución
\[ \begin{array}{lrll}
&(1)&\exists y\forall x(Pxy\rightarrow Rxy)&\mbox{Premisa}\\
&(2)&\forall yz\ Pyz&\mbox{Premisa}\\
\mbox{Tomamos un $y$ arbitrario}\\
\mbox{Llamemos $z$ a alguien que cumpla (1)}&(3)&\forall x(Pxz\rightarrow Rxz)&\mbox{EP 1}\\
\mbox{Aplicamos esto al $y$ que hemos fijado}&(4)&Pyz\rightarrow Ryz&\mbox{EG 3}\\
\mbox{Aplicamos (2) a nuestros $y$, $z$}&(5)&Pyz&\mbox{EG 2}\\
\mbox{Entonces}&(6)&Ryz&\mbox{MP 4, 5}\\
\mbox{Esto prueba que}&(7)&\exists z\ Ryz&\mbox{IP 6}\\
\mbox{Como $y$ era arbitrario}&(8)&\forall y\exists z Ryz&IG 7
\end{array} \]

A partir de (3) no se podía generalizar respecto de \[ z \], pero no hay problema en ligar \[ z \] en (7) mediante IP, ni en generalizar luego respecto de \[ y \]. La conclusión es correcta porque no tiene libre la variable \[ z \].
[cerrar]

\[ \exists x(Pxa\rightarrow Qx), \forall y\lnot Qy,\forall xy(\lnot Rxy\lor Pxy)\vdash \exists xy\lnot Rxy \]

Solución
\[ \begin{array}{lrll}
&(1)&\exists x(Pxa\rightarrow Qx)&\mbox{Premisa}\\
&(2)&\forall y\lnot Qy&\mbox{Premisa}\\
&(3)&\forall xy(\lnot Rxy\lor Pxy)&\mbox{Premisa}\\
\mbox{Tomemos un $x$ que cumpla (1)}&(4)&Pxa\rightarrow Qx&\mbox{EP 1}\\
\mbox{Por (2) dicho $x$ cumple&(5)}&\lnot Qx&\mbox{EG 2}\\
\mbox{luego}&(6)&\lnot Pxa&\mbox{MT 4, 5}\\
\mbox{Aplicamos (3) a $x$ y $a$}&(7)&\lnot Rxa\lor Pxa&\mbox{EG 3 (dos veces)}\\
\mbox{Entonces}&(8)&\lnot Rxa&\mbox{MTP 6, 7}\\
\mbox{Por lo tanto}&(9)&\exists y \lnot Rxy&\mbox{IP 8}\\
&(10)&\exists xy\lnot Rxy&\mbox{IP 9}
\end{array} \]

A partir de (4) no se podía generalizar respecto de \[ x \]. Podemos ver (8) como \[ S_y^a\lnot Rxy \] para aplicar IP. La conclusión es válida porque \[ x \] no está libre en ella.
[cerrar]

03 Abril, 2013, 07:56
Respuesta #16

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
En este mensaje demostraremos finalmente que el cálculo deductivo que hemos definido es justo lo que tiene que ser, es decir, que permite deducir de unas premisas todas las consecuencias que cabe esperar que puedan deducirse. Aunque en este artículo pretendo centrarme en los aspectos prácticos de lo que supone realizar deducciones en el cálculo deductivo de primer orden, demostrar el teorema de completitud es obligado para terminar de justificar que lo que estamos haciendo es correcto. Por ello este mensaje tendrá un nivel mucho más técnico que los anteriores y que los siguientes, y en realidad nada de lo que veremos aquí será necesario para lo que diremos después, por lo que el lector puede pasar directamente al mensaje siguiente si así lo prefiere.

Aunque la tarea que pretendemos realizar aquí ya ha sido perfilada en los mensajes anteriores, no está de más acabar de centrarla:

Si nos fijamos en cómo razonan en la práctica los matemáticos, veremos que en realidad nunca se cuidan de comprobar si, en efecto, todo cuanto dicen puede justificarse paso a paso aplicando oportunamente las reglas de inferencia de \[ K_{\mathcal L} \], de si en tal paso tienen permitido aplicar o no IG, etc. Esto puede interpretarse de dos modos distintos: La interpretación más formal es que sus demostraciones son en realidad esbozos de demostración, lo suficientemente detallados como para que cualquiera que se lo proponga pueda desarrollarlos hasta convertirlos en auténticas demostraciones, paso a paso, en \[ K_{\mathcal L} \]. Pero la realidad es que cuando un matemático razona y valora si sus razonamientos son correctos o no, no tiene en cuenta para nada si tal o cual cosa se podrá justificar con EDI o con MB, sino que da por bueno un argumento si se convence de que si sus hipótesis son ciertas sus conclusiones también tienen que serlo. Pero ¿ciertas en qué sentido? El matemático no se plantea eso, pero no es difícil responder: se da por satisfecho cuando se convence de que si unos objetos (los que sean) cumplen sus hipótesis, necesariamente tienen que cumplir también sus conclusiones. Se puede decir que el matemático en la práctica razona semánticamente (es decir, preocupado de no pasar nunca de afirmaciones verdaderas a falsas) y no formalmente (preocupado de aplicar sólo unas reglas de razonamiento prefijadas).

El problema de razonar semánticamente (si uno quiere a la vez ser riguroso) es que en principio nos pone en la obligación de explicar de qué estamos hablando (es decir, de explicar qué objetos se supone que cumplen nuestras afirmaciones para que podamos decir con sentido ``si nuestras hipótesis son verdaderas\ldots") Lo que suele hacer el matemático si le piden este tipo de explicaciones es dar la respuesta fácil (y válida) de que, en realidad, se podría comprobar que todo cuanto razona puede ser formalizado en \[ K_{\mathcal L} \], y eso basta para que sus razonamientos sean rigurosos. En efecto, esto resuelve el problema de fundamentar su trabajo ``sin agujeros", porque razonar formalmente en \[ K_{\mathcal L} \] es un proceso objetivo y bien definido, pero, ¿de verdad hace falta recurrir al ``se podría comprobar"? ¿Es casualidad que todo lo que un matemático razona sin preocuparse de\[ K_{\mathcal L} \] al final resulta que, en efecto, puede formalizarse en \[ K_{\mathcal L} \]? ¿No puede justificarse que razonar semánticamente tiene sentido sin refugiarse en \[ K_{\mathcal L} \]?

En este mensaje responderemos afirmativamente a las dos últimas preguntas. De hecho, veremos que la respuesta a la segunda lleva fácilmente a la respuesta a la primera. Notemos en primer lugar que para que tenga sentido razonar formalmente no es necesario dar un modelo explícito de los axiomas aceptados, porque el argumento no es: ``tales objetos concretos cumplen lo que digo", sino ``si unos objetos (los que sean) cumplen mis axiomas, también tienen que cumplir mis teoremas", por lo que sólo necesitamos justificar que existen unos objetos (los que sean) que cumplan mis axiomas.

Eso es precisamente lo que afirma el teorema siguiente, debido a Gödel (aunque la prueba que daremos se debe a Henkin):

Teorema: Una teoría axiomática es consistente si y sólo si tiene un modelo.

(Un modelo de una teoría axiomática es un modelo en el que sus axiomas, y por consiguiente sus teoremas, son verdaderos.) Por lo tanto, el único requisito para que el razonamiento semántico tenga sentido es garantizar que sus axiomas son consistentes (requisito obviamente necesario, por otra parte). Ahora bien, una cosa es que tenga sentido y otra distinta que razonar semánticamente sea lo mismo que razonar formalmente. El teorema que garantiza esto es el que se conoce propiamente como teorema de completitud semántica de Gödel:

Teorema de completitud semántica Si \[ \Gamma \] es una colección de fórmulas de un lenguaje formal y \[ \alpha \] es una fórmula tal que \[ \Gamma\vDash \alpha \], es decir, tal que podemos razonar que \[ \alpha \] es necesariamente verdadera en todo modelo en el que las fórmulas de \[ \Gamma \] son verdaderas, entonces \[ \Gamma\vdash \alpha \].

Esto significa que todo razonamiento semántico (de tipo: si las premisas son verdad entonces la conclusión es verdad) es formalizable en \[ K_{\mathcal L} \].

Como el segundo teorema es una consecuencia sencilla del primero y el primero se usa bastante más que el segundo, es frecuente llamar también "teorema de completitud" al primero, aunque el nombre no le corresponde propiamente. Pasemos a demostrarlos.

Ante todo, es inmediato que si una teoría axiomática tiene un modelo entonces es consistente, pues en tal caso todos sus teoremas tienen que ser verdaderos en el modelo, luego hay sentencias que no pueden ser demostradas (las que son falsas en el modelo, recordemos que una sentencia y su negación no pueden ser ambas verdaderas en un modelo). El problema es demostrar el recíproco. Si llamamos \[ \Gamma \] a la colección de los axiomas de una teoría formal, se trata de probar que si \[ \Gamma \] es consistente (es decir, si de \[ \Gamma \] no se deducen contradicciones), entonces \[ \Gamma \] tiene un modelo.

En principio no hay inconveniente en que las fórmulas de \[ \Gamma \] tengan variables libres, pero en primer lugar observamos que no perdemos generalidad si suponemos que no las tienen, es decir, que son sentencias.

Demostración
Para cada fórmula \[ \alpha \], llamamos \[ \alpha^c \] a su clausura universal, es decir, a la sentencia que resulta de añadir cuantificadores \[ \forall x \] para todas sus variables libres.
Llamamos \[ \Gamma^c \] a la colección de las clausuras universales de todas las fórmulas de \[ \Gamma \]. Observamos que si \[ \Gamma \] es consistente, entonces \[ \Gamma^c \] también lo es. En efecto, si \[ \Gamma^c\vdash \alpha\land\lnot\alpha \], existirá un número finito de sentencias en \[ \Gamma^c \], digamos \[ \gamma_1^c,\ldots, \gamma_n^c \], tales que \[ \gamma_1^c,\ldots, \gamma_n^c\vdash \alpha\land\lnot\alpha \] (porque en una deducción sólo puede aparecer una cantidad finita de premisas).

Pero \[ \gamma_i\vdash \gamma_i^c \], sin más que aplicar IG las veces que haga falta, luego \[ \Gamma\vdash \alpha\land\lnot\alpha \] (primero deducimos las sentencias \[ \gamma_i^c \] a partir de las fórmulas \[ \gamma_i \] y luego deducimos de éstas la contradicción). Pero esto es imposible porque estamos suponiendo a \[ \Gamma \] consistente.

Así pues, \[ \Gamma^c \] es consistente. Supongamos que podemos demostrar que \[ \Gamma^c \] tiene un modelo \[ M \]. Entonces cada sentencia \[ \gamma^c \] es verdadera en \[ M \], pero esto implica que cada fórmula \[ \Gamma \] es verdadera en \[ M \], si más que aplicar un número finito de veces el hecho que sabemos, según el cual \[ M\vDash \alpha \] si y sólo si \[ M\vDash \forall x\alpha \] (por la definición de verdad que hemos dado).
[cerrar]

Así pues, basta probar que si \[ \Gamma \] es una colección consistente de sentencias de un lenguaje formal, entonces \[ \Gamma \] tiene un modelo.

Vamos a necesitar un hecho elemental sobre consistencia:

Teorema: Sea \[ \Gamma \] una colección de fórmulas y \[ \alpha \] una sentencia. Entonces \[ \Gamma\cup\{\alpha\} \] es consistente si y sólo si no \[ \Gamma\vdash \lnot\alpha \].

Demostración
Si \[ \Gamma\vdash \lnot\alpha \], entonces \[ \Gamma\cup\{\alpha\} \] es obviamente contradictoria, porque permite probar \[ \alpha \] y \[ \lnot\alpha \].

Si \[ \Gamma\cup\{\alpha\} \] es contradictoria entonces a partir de sus premisas se puede demostrar cualquier cosa, en particular \[ \Gamma\cup\{\alpha\}\vdash \lnot\alpha \]. Como \[ \alpha \] es una sentencia, en la deducción no se generaliza respecto de variables libres en \[ \alpha \] (no las hay), luego podemos aplicar el teorema de deducción y concluir que \[ \Gamma\vdash \alpha\rightarrow\lnot\alpha \], pero esto equivale a \[ \lnot\alpha\lor\lnot\alpha \] (por EDI) y a su vez a \[ \lnot\alpha \] (por ED).
[cerrar]

Notemos que este resultado se usa de forma habitual casi sin nombrarlo. Por ejemplo, es lo mismo decir que la hipótesis del continuo es consistente con ZFC que decir que no puede demostrarse que es falsa.

Definición Diremos que una colección de sentencias \[ \Gamma \] es maximalmente consistente si es consistente y para toda sentencia \[ \alpha \] se cumple que \[ \Gamma\cup\{\alpha\} \] es contradictoria.

Notemos que si una colección de sentencias \[ \Gamma \] tiene un modelo \[ M \], entonces \[ \Gamma \] se extiende a una colección maximalmente consistente de sentencias. Basta tomar la colección de todas las sentencias verdaderas en \[ M \]. Dicha colección contiene a toda sentencia \[ \alpha \] o bien a su negación, luego si intentamos añadirle una sentencia más, pasamos a una teoría contradictoria, pues contendrá la sentencia añadida y su negación.

De lo que se trata es de probar que toda colección consistente de sentencias puede extenderse a una colección maximalmente consistente (sin suponer que tiene un modelo) y usar esta extensión para construir el modelo.

Antes de ello observamos algunas consecuencias sencillas de la definición:

Teorema Sean \[ \Gamma \] una colección maximalmente consistente de sentencias de un lenguaje formal y sean \[ \alpha,\beta \] dos sentencias de dicho lenguaje. Entonces:

a) \[ \Gamma\vdash \alpha \] si y sólo si \[ \alpha \] está en \[ \Gamma \].

b) \[ \Gamma \] contiene a todos los teoremas lógicos (sin variables libres).

c) \[ \lnot\alpha \] está en \[ \Gamma \] si y sólo si \[ \alpha \] no está en \[ \Gamma \].

d) \[ \alpha\rightarrow\beta \] está en \[ \Gamma \] si y sólo si \[ \alpha \] no está en \[ \Gamma \] o \[ \beta \] está en \[ \Gamma \].

e) \[ \alpha\lor\beta \] está en \[ \Gamma \] si y sólo si \[ \alpha \] está en \[ \Gamma \] o \[ \beta \] está en \[ \Gamma \].

f) \[ \alpha\land\beta \] está en \[ \Gamma \] si y sólo si \[ \alpha \] y \[ \beta \] están en \[ \Gamma \].

g) \[ \alpha\leftrightarrow \beta \] está en \[ \Gamma \] si y sólo si \[ \alpha \] y \[ \beta \] están ambas en \[ \Gamma \] o ninguna lo está.


Notemos que este teorema es puramente sintáctico, pero tiene ya un "sabor" semántico, en el sentido de que está poniendo de manifiesto la interpretación de los conectores lógicos.

Demostración
a) Si \[ \Gamma\vdash \alpha \], entonces no \[ \Gamma\vdash \lnot\alpha \] (porque \[ \Gamma \] es consistente), luego \[ \Gamma\cup\{\alpha\} \] es consistente (por el teorema anterior), luego \[ \alpha \] está en \[ \Gamma \] (por ser maximalmente consistente). El recíproco es obvio.

b) es un caso particular de a)

c) Si \[ \lnot\alpha \] está en \[ \Gamma \] entonces \[ \alpha \] no puede estar en \[ \Gamma \] (por la consistencia)

Si \[ \alpha \] no está en \[ \Gamma \], entonces \[ \Gamma\cup\{\alpha\} \] es contradictorio (por la consistencia maximal), luego \[ \Gamma\vdash\lnot\alpha \] (por el teorema anterior), luego \[ \lnot\alpha \] está en \[ \Gamma \] por a).

d) Si \[ \alpha\rightarrow\beta \] está en \[ \Gamma \] y \[ \alpha \] está en \[ \Gamma \], entonces \[ \Gamma\vdash \beta \], luego \[ \beta \] está en \[ \Gamma \].

Si \[ \alpha \] no está en \[ \Gamma \] o \[ \beta \] está en \[ \Gamma \], por c) tenemos que \[ \lnot\alpha \] está en \[ \Gamma \] o \[ \beta \] está en \[ \Gamma \]. Por consiguiente \[ \Gamma\vdash \lnot\alpha \] o \[ \Gamma\vdash \lnot\alpha \]. En ambos casos \[ \Gamma\vdash (\alpha\rightarrow\beta) \], luego \[ \alpha\rightarrow\beta \] está en \[ \Gamma \].

Los apartados siguientes se deducen de los dos anteriores por las definiciones de los conectores.
[cerrar]

Necesitamos resultados análogos a los anteriores para los cuantificadores, pero para ello no basta la consistencia maximal:

Definición: Una colección \[ \Gamma \] de sentencias de un lenguaje formal es ejemplificada si cuando \[ \exists x\alpha \] está en \[ \Gamma \] existe un designador \[ t \] (un término sin variables libres) tal que \[ S_x^t\alpha \] está en \[ \Gamma \].

Es decir, si siempre que \[ \Gamma \] afirma la existencia de un \[ x \] que cumple algo, también pone un ejemplo de un \[ t \] concreto que cumple ese algo.

Teorema Sea \[ \Gamma \] una colección de sentencias maximalmente consistente y ejemplificada y sea \[ \alpha \] una fórmula en la que a lo sumo esté libre la variable \[ x \]

a) \[ \exists x\alpha \] está en \[ \Gamma \] si y sólo si existe un designador \[ t \] del lenguaje formal considerado tal que \[ S_x^t\alpha \] está en \[ \Gamma \].

b) \[ \forall x\alpha \] está en \[ \Gamma \] si y sólo si para todo designador \[ t \] del lenguaje formal se cumple que \[ S_x^t\alpha \] está en \[ \Gamma \].


Demostración
a) Si \[ \exists x\alpha \] está en \[ \Gamma \] hay un designador \[ t \] tal que \[ S_x^t\alpha \] está en \[ \Gamma \] por definición de ejemplificación.

Si \[ S_x^t\alpha \] está en \[ \Gamma \], entonces por IP se cumple que \[ \Gamma\vdash \exists x\alpha \], luego \[ \exists x\alpha \] está en \[ \Gamma \] por el teorema anterior.

b) Si \[ \forall x\alpha \] está en \[ \Gamma \] y \[ t \] es un designador, por EG se cumple que \[ \Gamma\vdash S_x^t\alpha \], luego \[ S_x^t\alpha \] está en \[ \Gamma \] por el teorema anterior.

Si \[ S_x^t\alpha \] está en \[ \Gamma \] para todo designador \[ t \], entonces el teorema anterior nos da que \[ \lnot S_x^t\alpha\equiv S_x^t\lnot\alpha \] no está en \[ \Gamma \], para todo \[ t \], luego por a) \[ \exists x\lnot\alpha \] no está en \[ \Gamma \], luego \[ \lnot\exists\lnot\alpha \] está en \[ \Gamma \] por el teorema anterior, luego \[ \Gamma\vdash \forall x\alpha \] por NP, luego \[ \forall x\alpha \] está en \[ \Gamma \] por el teorema anterior.
[cerrar]

Nuestro objetivo es obtener una colección maximalmente consistente y ejemplificada de sentencias a partir de una colección consistente. Para ello necesitamos el siguiente resultado técnico:

Teorema Si una constante \[ c \] no está en una fórmula \[ \alpha \], la variable \[ x \] no está ligada en \[ \alpha \] y \[ \vdash S_x^c\alpha \], entonces \[ \vdash\alpha \].

La demostración de este teorema es una rutinaria inducción sobre la longitud de una demostración de \[ S_x^c\alpha \] como muchas otras que hemos visto. Remito a mi libro de lógica para la prueba (teorema 4.10). La idea de fondo es que en una demostración da igual referirse a un objeto con una constante o con una variable que no se use para nada más, de modo que si en la demostración con la constante se sustituye sistemáticamente ésta por una variable "nueva", que no aparezca en la prueba para nada, lo que sale sigue siendo una demostración.

A partir de aquí demostramos el resultado que nos permite ejemplificar una sentencia:

Teorema Si \[ \Gamma\cup\{\exists x\alpha\} \] es una colección consistente de sentencias de un lenguaje formal y \[ c \] es una constante que no esté en ninguna de sus sentencias, entonces \[ \Gamma\cup\{\exists x\alpha,S_x^c\alpha\} \] es consistente.

Demostración
Si \[ \Gamma\cup\{\exists x\alpha,S_x^c\alpha\} \] es contradictoria, por el teorema elemental probado más arriba \[ \Gamma\cup\{\exists x\alpha\}\vdash \lnot S_x^c\alpha \]. Entonces existen \[ \gamma_1,\ldots, \gamma_n \] en \[ \Gamma \] tales que

\[ \gamma_1\land\cdots \land \gamma_n\land\exists x\alpha\vdash \lnot S_x^c\alpha \].

Sea \[ y \] una variable que no esté en ninguna de las sentencias consideradas. Entonces

\[ \gamma_1\land\cdots \land \gamma_n\land\exists x\alpha\vdash S_y^cS_x^y\lnot\alpha \],

luego por el teorema de deducción

\[ \vdash \gamma_1\land\cdots\land \gamma_n\land \exists x\alpha\rightarrow S_y^cS_x^y\lnot\alpha \],

y esto equivale a

\[ \vdash S_y^c(\gamma_1\land\cdots\land \gamma_n\land \exists x\alpha\rightarrow S_x^y\lnot\alpha) \],

ya que \[ y \] no aparece en \[ \gamma_1\land\cdots\land \gamma_n\land \exists x\alpha \]. Por el teorema anterior

\[ \vdash \gamma_1\land\cdots\land \gamma_n\land \exists x\alpha\rightarrow S_x^y\lnot\alpha \],

luego \[ \Gamma\cup\{\exists x\alpha\}\vdash \lnot S_x^y\alpha \]. Aplicando IG y NP obtenemos que \[ \Gamma\cup\{\exists x\alpha\}\vdash \lnot \exists y S_x^y\alpha \], pero esto es equivalente a \[ \Gamma\cup\{\exists x\alpha\}\vdash \lnot \exists x\alpha \], con lo que \[ \Gamma\cup\{\exists x\alpha\} \] resulta ser contradictoria.
[cerrar]

Ahora viene el teorema fundamental, el núcleo del argumento que prueba el teorema de completitud. Si alguien se pregunta qué necesitamos suponer sobre las colecciones metamatemáticas que estamos usando, la respuesta es muy simple: ni más ni menos que lo necesario para reconocer que el argumento del teorema siguiente tiene sentido y es concluyente. En este teorema aparecen las colecciones de objetos más generales que hemos necesitado o vamos a necesitar.

Teorema Sea \[ \mathcal L \] un lenguaje formal, sea \[ \mathcal L' \] el lenguaje formal que resulta de añadir a \[ \mathcal L \] una sucesión de constantes \[ d_0,d_1,d_2,\ldots \], sea \[ \Gamma \] una colección consistente de sentencias de \[ \mathcal L \]. Entonces existe una colección \[ \Gamma_\infty \] maximalmente consistente y ejemplificada de sentencias de \[ \mathcal L \] que contiene a \[ \Gamma \].

Demostración
Fijamos una enumeración \[ \alpha_0,\alpha_1,\alpha_2,\ldots \] de todas las sentencias de \[ \mathcal L' \]. Dicha enumeración puede definirse explícitamente, de modo que la pueda calcular incluso un ordenador, pero no servirá de mucho, porque el argumento que nos ocupa pronto se volverá no constructivo.

Llamemos \[ \Gamma_0 \] a la colección de sentencias dada, que por hipótesis es consistente y vamos a definir recurrentemente una sucesión de colecciones consistentes de sentencias \[ \Gamma_n \]. Supuesto que hayamos definido ya \[ \Gamma_n \] y sea consistente, definimos \[ \Gamma_{n+1} \] distinguiendo tres casos:

1) Si \[ \Gamma_n\cup\{\alpha_n\} \] es contradictoria, entonces \[ \Gamma_{n+1}=\Gamma_n \], que obviamente será consistente.

2) Si \[ \Gamma_n\cup\{\alpha_n\} \] es consistente y \[ \alpha_n \] no es de la forma \[ \exists x\beta \], entonces \[ \Gamma_{n+1}=\Gamma_n\cup\{\alpha_n\} \], que obviamente será consistente.

3) Si \[ \Gamma_n\cup\{\alpha_n\} \] es consistente y \[ \alpha_n\equiv \exists x\beta \], entonces observamos que en  \[ \Gamma_n\cup\{\alpha_n\} \] sólo puede haber un número finito de constantes \[ d_k \], ya que en \[ \Gamma \] no hay ninguna y en cada paso de la construcción añadimos sólo una o dos sentencias nuevas (en los casos anteriores una, en éste añadiremos dos), luego en \[ \Gamma_n \] sólo hay un número finito de fórmulas que pueden contener constantes \[ d_k \]. Por ello, podemos tomar el mínimo \[ k \] tal que la constante \[ d_k \] no aparece en ninguna fórmula de \[ \Gamma_n\cup\{\alpha_n\} \]. Definimos \[ \Gamma_{n+1}=\Gamma_n\cup\{\exists x\beta, S_x^{d_k}\beta\} \], que es consistente por el teorema anterior.

Así tenemos definidas todas las colecciones \[ \Gamma_n \], cada una de las cuales extiende a la anterior, y todas son consistentes.

Definimos \[ \Gamma_\infty \] como la unión de todas las colecciones \[ \Gamma_n \]. Claramente contiene a \[ \Gamma \] y es consistente, pues si de \[ \Gamma_\infty \] se dedujera una contradicción se deduciría de un número finito de premisas, que estarían todas contenidas en un \[ \Gamma_n \], con \[ n \] suficientemente grande, y entonces \[ \Gamma_n \] sería contradictorio.

Más aún, \[ \Gamma_\infty \] es maximalmente consistente, pues si una sentencia \[ \alpha \] de \[ \mathcal L' \] no está en \[ \Gamma_\infty \], será de la forma \[ \alpha\equiv\alpha_n \], para algún \[ n \], y si no está en \[ \Gamma_{n+1} \] es porque \[ \Gamma_n\cup\{\alpha\} \] es contradictoria, luego \[ \Gamma_\infty\cup\{\alpha\} \] también lo es.

Por último veamos que \[ \Gamma_\infty \] es ejemplificada. Si \[ \exists x\alpha \] está en \[ \Gamma_\infty \], entonces \[ \exists x\alpha\equiv \alpha_n \], para cierto \[ n \]. Como \[ \Gamma_n\cup\{\exists x\alpha\} \] está contenida en \[ \Gamma_\infty \], tiene que ser consistente, luego por construcción \[ \Gamma_{n+1} \] contiene a \[ S_x^{d_k}\alpha \], y la constante \[ d_k \] es un designador que cumple la definición de ejemplificación.
[cerrar]

Observaciones El lector no debe dejarse confundir por la notación conjuntista que hemos empleado (hemos hablado de uniones infinitas y otras cosas) que sólo sirve para simplificar la exposición. El argumento de la prueba es, en cierto sentido, elemental: tenemos numeradas las sentencias de \[ \mathcal L' \] y lo que hacemos es ir recorriéndolas todas una por una y decidiendo si la añadimos o no a la extensión de \[ \Gamma \] que vamos construyendo: si cada sentencia es consistente con las que ya tenemos, la añadimos (y si es existencial la ejemplificamos de paso) y si es contradictoria con las que ya tenemos la rechazamos. Eso es todo, sin necesidad de considerar uniones ni historias.

El punto delicado es que puede probarse que no existe un algoritmo para decidir si una colección de fórmulas es consistente o no, aunque sea finita. Por lo tanto, en cada paso tenemos un criterio muy concreto y definido que determina si cada sentencia \[ \alpha_n \] tiene que ser añadida o no a la colección que estamos definiendo, pero no sabemos comprobar en la práctica si \[ \alpha_n \] lo satisface o no. Esto hace que \[ \Gamma_\infty \] esté perfectamente definida y que sus elementos dependan únicamente de la ordenación que hemos dado  a las fórmulas (si \[ \alpha \] y \[ \lnot\alpha \] son consistentes con \[ \Gamma \], añadiremos una o la otra según cuál aparezca antes en la enumeración), pero en general no podemos decir cuáles son sus elementos.

Ahora ya podemos probar que toda colección consistente de sentencias tiene un modelo.

Demostración
Sea \[ \Gamma \] una colección consistente de sentencias de un lenguaje \[ \mathcal L \]. Sea \[ \mathcal L' \] el lenguaje que resulta de añadir la sucesión de constantes del teorema anterior. Basta probar que la colección \[ \Gamma_\infty \] dada por el teorema tiene un modelo \[ M \], pues entonces \[ M \] también es un modelo de \[ \Gamma \] (en principio sobre el lenguaje \[ \mathcal L' \], pero si "nos olvidamos" de las nuevas constantes, podemos ver a \[ M \] como un modelo de \[ \mathcal L \] en el que las fórmulas de \[ \Gamma \] siguen siendo verdaderas, pues en ellas no están las constantes nuevas y su interpretación en \[ M \] es irrelevante para que sean o no verdaderas.

Por consiguiente, podemos suponer que \[ \Gamma \] es  maximalmente consistente y ejemplificada.

Sea \[ T \] la colección de todos los designadores de \[ \mathcal L \] y definimos en \[ T \] la relación dada por \[ t_1\sim t_2 \] si y sólo si \[ t_1=t_2 \] está en \[ \Gamma \]. Veamos que se trata de una relación de equivalencia.

Por ejemplo, si \[ t_1\sim t_2 \] y \[ t_2\sim t_3 \], entonces \[ t_1\sim t_3 \]. En efecto, lo que tenemos es que \[ t_1=t_2, t_2=t_3 \] están en \[ \Gamma \], luego por TI \[ \Gamma\vdash t_1=t_3 \], luego \[ t_1=t_3 \] está en \[ \Gamma \] por la consistencia maximal. La reflexividad y la simetría se prueban exactamente igual.

Llamaremos \[ U \] a la colección de todas las clases de equivalencia de designadores de \[ \mathcal L \] respecto a la relación de equivalencia que acabamos de definir y vamos a definir un modelo \[ M \] de universo \[ U \] (notemos que podemos definir explícitamente una enumeración de \[ T \], de donde se deduce que \[ U \] es numerable, aunque no podemos encontrar una enumeración explícita de sus elementos porque eso supondría conocer de forma efectiva qué sentencias están en \[ \Gamma \], y en general eso no es posible).

El modelo \[ M \] (de universo \[ U \]) se define como sigue:

1) Si \[ c \] es una constante de \[ \mathcal L \] su interpretación es su clase de equivalencia: \[ M(c)=[c] \].

2) Si \[ R \] es un relator \[ n \]-ádico en \[ \mathcal L \], su interpretación es la relación \[ \bar R \] dada por

\[ \bar r([t_1],\ldots, [t_n]) \] si y sólo si \[ Rt_1\cdots t_n \] está en \[ \Gamma \].

3) Si \[ f \] es un funtor \[ n \]-adico en \[ \mathcal L \], su interpretación es la función \[ \bar f \] dada por \[ \bar f([t_1],\ldots, [t_n])\equiv [ft_1\cdots t_n] \].

Hay que comprobar que \[ \bar R \] y \[ \bar f \] están bien definidas, en el sentido de que, en el caso de \[ \bar R \], si \[ [t_1]\equiv [t'_1],\ldots [t_n]\equiv [t'_n] \], entonces \[ Rt_1\cdots t_n \] está en \[ \Gamma \] si y sólo si \[ Rt'_1\cdots t'_n \] está en \[ \Gamma \].

En efecto, tenemos que las sentencias \[ t_i=t'_i \] están en \[ \Gamma \], luego claramente

\[ \Gamma\vdash Rt_1\cdots t_n\leftrightarrow Rt'_1\cdots t'_n \],

luego, por las propiedades de las colecciones maximalmente consistentes, la coimplicación está en \[ \Gamma \] y a su vez esto implica que una parte está en \[ \Gamma \] si y sólo si lo está la otra, que era lo que teníamos que probar.

Más aún, cuando el relator \[ R \] es la igualdad, la relación \[ \bar R \] es la dada por \[ \bar R([t_1],[t_2]) \] si y sólo si \[ t_1=t_2 \] está en \[ \Gamma \] si y sólo si \[ [t_1]\equiv [t_2] \], luego la igualdad se interpreta como la relación de identidad, tal y como exige la definición de modelo.

La prueba de que las funciones están bien definidas es análoga.

Ahora es fácil ver, por inducción sobre la longitud de un designador \[ t \], que \[ M(t)=[t] \], es decir, que cada designador denota a su propia clase de equivalencia. En efecto, para las constantes se cumple por la definición del modelo, y sólo falta ver que si vale para unos términos \[ t_1,\ldots, t_n \] vale para \[ ft_1\cdots t_n \], lo cual se cumple por la definición de \[ \bar f \].

Por último, basta probar que si \[ \alpha \] es una sentencia de \[ \mathcal L \], entonces \[ M\vDash \alpha \] si y sólo si \[ \alpha \] está en \[ \Gamma \], con lo que \[ M\vDash \Gamma \].

Esto se demuestra por inducción sobre el número de signos lógicos (\[ \lnot, \rightarrow, \forall \]) que contiene \[ \alpha \]. Si \[ \alpha \] no tiene signos lógicos debe ser de la forma \[ Rt_1\cdots t_n \], y entonces el resultado es cierto por definición de \[ \bar R \].

Si vale para \[ \alpha \], es trivial que vale para \[ \lnot\alpha \]:

\[ M\vDash \not\alpha \] si y sólo si no \[ M\vDash \alpha \] si y sólo si \[ \alpha \] no está en \[ \Gamma \] si y sólo si \[ \lnot\alpha \] está en \[ \Gamma \].

Análogamente se razona el caso de \[ \alpha\rightarrow \beta \].

Supongamos por último que \[ \alpha\equiv \forall x\beta \], y aquí hemos de tener cuidado porque \[ \beta \] puede tener libre la variable \[ x \], luego no es una sentencia y no podemos aplicarle la hipótesis de inducción.

\[ M\vDash \forall x\alpha \] si y sólo si para toda valoración \[ v \] y todo [t] de \[ M \] se cumple \[ M\vDash \beta[v_x^{[t]}] \], pero sabemos que \[ [t]=M(t)[v] \], luego por el teorema sobre satisfacción de sustituciones que probamos al definir la sustitución esto equivale a que \[ M\vDash S_x^t\beta[v] \] (para toda \[ v \] y todo \[ t \]), luego esto equivale a que \[ M\vDash S_x^t \] para todo \[ t \]. Pero \[ S_x^t \] es una sentencia con un signo lógico menos que \[ \alpha \] (un cuantificador menos, porque los designadores no contienen signos lógicos). Por lo tanto podemos aplicarle la hipótesis de inducción, y esto equivale a que \[ S_x^t\beta \] esté en \[ \Gamma \] para todo designador \[ t \] y por el teorema sobre colecciones ejemplificadas maximalmente consistentes, esto equivale a que \[ \forall x\beta \] esté en \[ \Gamma \].
[cerrar]

Notemos que hemos demostrado algo un poco más fuerte:

Teorema: Si una colección \[ \Gamma \] de fórmulas es consistente, entonces tiene un modelo (de universo) numerable.

La numerabilidad tiene consecuencias notables a la hora de entender la lógica de la teoría de conjuntos, pero no vamos a entrar en ello. De momento lo que nos interesa es que ya hemos probado que, si tenemos una teoría axiomática consistente, tiene sentido razonar semánticamente en ella, pues existen unos objetos (con las relaciones y funciones adecuadas) para los cuales los axiomas son verdaderos, luego tiene sentido plantearse qué fórmulas son necesariamente verdaderas en un modelo en el que los axiomas sean verdaderos, y eso es razonar semánticamente (razonar informalmente con afirmaciones expresadas como fórmulas de un lenguaje formal).

Ahora nos falta probar que razonar semánticamente es equivalente a razonar formalmente, es decir, vamos a demostrar el teorema de completitud. La prueba es elemental:

Spoiler
Si tenemos \[ \Gamma\vDash \alpha \], es decir, si tenemos un argumento que nos convence de que \[ \alpha \] tiene que ser necesariamente verdadera sobre todo modelo de \[ \Gamma \], veamos qué pasaría si no \[ \Gamma\vdash \alpha \]. Entonces tampoco \[ \Gamma\vdash \alpha^c \] (porque de \[ \alpha \] se deduce su clausura universal aplicando IG tantas veces como variables libres tenga), y tampoco \[ \Gamma\vdash \lnot\lnot\alpha^c \], luego por el teorema elemental sobre consistencia tenemos que \[ \Gamma\cup\{\lnot\alpha^c\} \] es consistente, luego tiene un modelo \[ M \], es decir, tenemos un modelo en el que las fórmulas de \[ \Gamma \] son verdaderas, pero no \[ M\vdash \alpha^c \], luego tampoco \[ M\vDash \alpha \], que es equivalente. Esto contradice la hipótesis.
[cerrar]

Terminamos con un par de observaciones. La primera es que hemos demostrado lo siguiente:

Teorema de Löwenheim-Skolem Si una teoría axiomática tiene un modelo, entonces tiene un modelo numerable.

La segunda es que cuando definimos el concepto de fórmula lógicamente válida advertimos de que debíamos entenderlo como que una fórmula \[ \alpha \] es lógicamente válida, no si es verdadera en todo modelo, sino si tenemos un argumento que nos convence de que tiene que ser verdadera en todo modelo. Ahora podemos simplificar esto. Hay dos posibilidades: o bien \[ \vdash \alpha \] o bien no \[ \vdash\alpha \]. En el primer caso existe un razonamiento que nos convence de que \[ \alpha \] tiene que ser verdadera en todo modelo (el razonamiento informal codificado por una demostración formal de \[ \alpha \]). En el segundo caso sabemos que \[ \lnot\alpha \] es consistente, luego tiene un modelo, de modo que existe un modelo en el que \[ \alpha \] no es verdadera.

En definitiva, el concepto de fórmula lógicamente válida ya no depende de si sabemos o no encontrar un argumento. Podemos decir que una fórmula es lógicamente válida si es verdadera en todo modelo, pues, o bien existe un argumento que lo justifique (lo conozcamos o no) o bien existe un modelo que lo refuta (lo conozcamos o no).

03 Abril, 2013, 18:14
Respuesta #17

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Nadie puede tener una idea clara de la razón de ser de toda la teoría que hemos presentado hasta aquí sin comprender el papel que desempeña en la fundamentación de la teoría de conjuntos. Como no se trata aquí de entrar en los detalles de las teorías axiomáticas de conjuntos, vamos a plantear una muy simple, que es suficiente para ilustrar las ideas que queremos discutir aquí:

Definición El lenguaje de la teoría de conjuntos \[ \mathcal L_{\rm tc} \] es el  lenguaje formal cuyo único signo eventual es un relator diádico que representaremos por \[ \in \] y lo llamaremos {\it relator de pertenencia.} Escribiremos \[ t_1\notin t_2\equiv \lnot t_1\in t_2 \]. También es frecuente abreviar \[
\forall u\in x\,\alpha\equiv \forall u(u\in x\rightarrow \alpha),\ \  \exists u\in x\, \alpha\equiv \exists u(u\in x\land \alpha).
 \]

La teoría básica de conjuntos es la teoría axiomática T cuyos axiomas son las sentencias siguientes:

\[ \begin{array}{ll}
\mbox{Extensionalidad}&\forall xy(\forall u(u\in x\leftrightarrow u\in y)\rightarrow x=y)\\[1mm]
\mbox{Vacío}&\exists x\forall u\ u\notin x\\[1mm]
\mbox{Par}&\forall xy\exists z\forall u(u\in z\leftrightarrow u=x\lor u=y)\\[1mm]
\mbox{Unión}&\forall x\exists y\forall u(u\in y\leftrightarrow \exists v(u\in v\land v\in x))\\[1mm]
\mbox{Diferencia}&\forall xy\exists z\forall u(u\in z\leftrightarrow u\in x\land u\notin y)
\end{array}
 \]

Vamos a analizar esta definición. Ante todo observemos que todo lo dicho tiene sentido. La definición anterior determina exactamente qué es una fórmula del lenguaje \[ \mathcal L_{\rm tc} \], qué es lo que significa "ser un axioma" de \[ \mathcal L_{\rm tc} \] y, por consiguiente, está perfectamente determinado qué significa "ser un teorema" de \[ \mathcal L_{\rm tc} \]. Podemos ponernos ya mismo a demostrar formalmente teoremas de \[ \mathcal L_{\rm tc} \] y todo esto podemos hacerlo sin responder en ningún momento a la pregunta de "qué significa \[ \in \]".

Más aún, vamos a establecer, no sin cierta dosis de cinismo, que cuando leamos sentencias de \[ \mathcal L_{\rm tc} \], cada vez que nos encontremos con un \[ \forall x \] leeremos "para todo conjunto \[ x \]", cada vez que nos encontremos con un \[ \exists x \] leeremos "existe un conjunto \[ x \] tal que", y cuando nos encontremos con una fórmula \[ x\in y \] leeremos que "el conjunto \[ x \] pertenece a (o es un elemento de) el conjunto \[ y \]", y si alguien nos pregunta qué queremos decir cuando hablamos de "conjuntos" y de "pertenencia", le responderemos que nada, que es sólo una forma cómoda de leer las fórmulas de \[ \mathcal L_{\rm tc} \]. Y lo bueno es que nadie podrá acusarnos de falta de rigor.

Más concretamente, podemos leer el axioma de extensionalidad diciendo que "si dos conjuntos \[ x \] e \[ y \] tienen los mismos elementos, entonces son iguales", y podemos trabajar con esta afirmación, y deducir consecuencias lógicas de ella y los demás axiomas, sin necesidad de dar explicaciones sobre qué son esos conjuntos y esa relación de pertenencia de la que se supone que estamos hablando.

Si nos cansamos de ser cínicos y preferimos ser algo más conciliadores, podemos decir que suponemos que existen unos objetos llamados conjuntos, entre los cuales está definida una relación de pertenencia, y de forma que, cuando consideramos el modelo de \[ \mathcal L_{\rm tc} \] cuyo universo es la colección de todos esos conjuntos e interpretamos el relator \[ \in \] como la relación de pertenencia, todos los axiomas de T resultan ser verdaderos.

Pero si nos preguntan si tenemos garantías de que existen realmente tales objetos y tal relación, o si podemos poner algún ejemplo de objetos que realmente cumplan esos axiomas, podemos responder sin vacilar que no necesitamos responder a ninguna de esas preguntas para trabajar rigurosamente con la teoría~ T, porque para razonar formalmente no es necesario conocer los objetos sobre los que presuntamente estamos razonando, sino que basta con respetar las reglas sintácticas de \[ \mathcal L_{\rm tc} \] y las reglas deductivas de \[ K_{\mathcal L_{\rm tc}} \].

En resumen: todo el aparato lógico que hemos montado hasta aquí nos sirve ahora para que podamos hablar de conjuntos y de pertenencia sin necesidad de responder a ninguna pregunta embarazosa sobre qué son los conjuntos y qué es la pertenencia. Nos basta con suponer que los conjuntos y la pertenencia cumplen los axiomas de T y respetar en todo momento las reglas de deducción formal que hemos establecido.

En la práctica, cuando uno ya está habituado a estas situaciones y no necesita dar tantas vueltas a estos hechos, abrevia diciendo simplemente que los conceptos de "conjunto" y "pertenencia" son los conceptos primitivos (o no definidos) de la teoría T.

La lógica formal tendrá mil virtudes, pero si hoy tiene el grado de desarrollo que tiene, es porque sirve precisamente para esto: para justificar que uno se ponga a hablar de cosas sin decir de qué cosas está hablando y sin que nadie le pueda reprochar falta de rigor por ello. La fundamentación de las matemáticas consiste esencialmente en eso: en poder hablar de conjuntos y de pertenencia sin verse en la necesidad (o en el aprieto) de explicar qué significan exactamente estas palabras. De ahí el énfasis que hemos puesto en todo momento en la posibilidad de definir formalmente con rigor todos los conceptos sintácticos (fórmulas, axiomas, teoremas, etc.) sin hacer referencia en ningún momento a modelos, porque cuando llega el momento de introducir una teoría de conjuntos no sabríamos cómo justificar que nuestros axiomas tienen un modelo (en el caso de T es relativamente fácil hacerlo, pero en las teorías de conjuntos "para adultos" es práctica y teóricamente imposible). Lo bueno, lo que valdría su peso en oro si no fuera porque las buenas ideas no pesan, es que podemos decir con toda la autosuficiencia del mundo: "ni sé decirte nada sobre qué es un conjunto o qué cosas pueden formar un modelo de la teoría de conjuntos, ni tengo necesidad alguna de hacerlo para desarrollar con perfecto rigor formal toda la matemática".

Una vez eximidos de la necesidad de explicar qué es un conjunto o qué es la relación de pertenencia, nada nos impide tratar de formarnos una idea sobre qué características tendrían que tener unos objetos para cumplir los axiomas de~T. Si \[ x \] es un conjunto, entonces podemos hablar de la colección (en el sentido intuitivo de la palabra) de todos los conjuntos que cumplen \[ u\in x \]. En principio, esa colección recibe el nombre de la extensión de \[ x \], y lo que dice el axioma de extensionalidad es que si dos conjuntos tienen la misma extensión, entonces son iguales.

De aquí obtenemos dos cosas: por una parte, cada conjunto (en el sentido técnico, no definido de la palabra) tiene asociada una colección de objetos (su extensión) y en segundo lugar está completamente determinado por ella, de modo que lo único que diferencia a un conjunto de otro es que haya otros conjuntos que pertenezcan a uno y no al otro. Por lo tanto, podemos identificar a un conjunto con su extensión. Podemos considerar que, cuando hablamos de un conjunto, en realidad estamos hablando de su extensión. Según esto, los conjuntos son colecciones de objetos (colecciones de conjuntos). Eso sí, sería ingenuo y catastrófico identificar "conjunto" y "colección de conjuntos". Si \[ M \] es un modelo de T y consideramos unos cuantos objetos de \[ M \], nadie nos asegura que exista un conjunto (es decir, un elemento de \[ M \]) cuya extensión sea precisamente la colección de objetos de \[ M \] que hemos tomado, ni tampoco hay ninguna condición sencilla que nos permita decir: "de entre las colecciones de objetos de \[ M \], son conjuntos las que cumplen tal cosa". El concepto de "conjunto" es un concepto técnico: son conjuntos las colecciones de conjuntos que conviene que lo sean para que se cumplan los axiomas, y no lo son las que no conviene que lo sean. Y punto. De hecho, sucede que que en todo modelo de T hay colecciones de conjuntos que no son (extensiones de) conjuntos.

En el mensaje siguiente desarrollaremos un poco la teoría T para tratar de describir el papel de la lógica que hemos estudiado (y de algún concepto que tenemos pendiente de introducir) en el razonamiento matemático. La teoría T parece poca cosa, pero sus axiomas bastan para definir los números naturales (aunque no la suma de números naturales).

07 Abril, 2013, 07:45
Respuesta #18

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Hasta ahora hemos analizado lo que hay de fondo en las demostraciones formales que hacen los matemáticos, pero los matemáticos no sólo demuestran, sino que también definen. La teoría de conjuntos que usan habitualmente los matemáticos (al igual que le sucede a la teoría T que hemos expuesto en el mensaje anterior) no tiene más conceptos primitivos que los de "conjunto" y "pertenencia". Sin embargo, los matemáticos tratan con un rico abanicos de conceptos. ¿De dónde salen? ¿Cómo se interpreta formalmente la introducción de un nuevo concepto?

Por poner un caso muy simple, si trabajamos en la teoría T un matemático podría empezar diciendo:

Citar
Definición Diremos que un conjunto \[ x \] es un subconjunto de otro conjunto \[ y \] (y lo representaremos por \[ x\subset y \]) si todo elemento de \[ x \] es también un elemento de \[ y \].

¿Cómo se formaliza esto, que no es un teorema?

Hay esencialmente dos formas distintas de concebir una definición. Una es considerar que estamos añadiendo un nuevo signo al lenguaje formal de la teoría, en este caso un relator diádico \[ x\subset y \], y el nuevo relator se acompaña de un nuevo axioma que regula su uso:

\[ \forall xy(x\subset y\leftrightarrow \forall u(u\in x\rightarrow u\in y)) \]

Según esta concepción, las definiciones son axiomas. Ahora bien, está claro que no pueden considerarse axiomas "normales", en el sentido de que no es lo mismo añadir como axioma la definición de inclusión que añadir como axioma la hipótesis del continuo. Las definiciones, así entendidas, son lo que los lógicos llaman "axiomas inesenciales", lo cual viene a decir que no añaden información a la teoría, y con precisión significa que todo modelo de la teoría puede dotarse de una nueva relación que hace verdadero al nuevo axioma. De este modo, los axiomas inesenciales no restringen las interpretaciones posibles de la teoría (al contrario que los axiomas esenciales, como la hipótesis del continuo: si un modelo no la cumple, no se puede hacer nada para que la cumpla, y es un modelo que se descarta al añadir el axioma adicional).

Sin embargo, hay una forma conceptualmente mucho más simple de concebir una definición, y es considerar que es una mera abreviatura. Vista así, la definición se reduce a

\[ x\subset y\equiv \forall u(u\in x\rightarrow u\in y), \]

donde ahora hay que entender que el término de la izquierda es otro nombre para la misma fórmula que nombra el término de la derecha. Deshaciendo todos los convenios de notación que venimos adoptando, la fórmula en cuestión es la sucesión de signos

\[ \forall x\rightarrow \in ux\in uy \]

Incluso podríamos considerar que esto no es más que una sucesión de números naturales. Puestos a referirnos a esta sucesión de signos o números con el nombre más cómodo de \[  \forall u(u\in x\rightarrow u\in y) \], nada nos impide usar un nombre más cómodo y llamarla \[ x\subset y \]. Así, aquí no hemos de ver una fórmula con tres signos, sino una fórmula con nueve signos, el primero de los cuales no es la variable \[ x \] sino el cuantificador universal.

Con esta forma de concebir las demostraciones el lenguaje de la teoría formal es siempre el mismo, y lo único que cambia es nuestra forma de referirnos a sus fórmulas. Así, en un razonamiento teórico sobre fórmulas arbitrarias no tenemos que preocuparnos para nada por los signos añadidos, ya que en realidad no hemos añadido ninguno. Podemos asegurar sin comprobación alguna que toda fórmula de la teoría (por muchas definiciones sucesivas que acumule) puede escribirse en términos de los signos primitivos de la teoría porque en realidad es una sucesión de signos primitivos del lenguaje de la teoría, porque nunca hemos añadido ninguno más.

Por el contrario, cuando se conciben las definiciones como axiomas que introducen un nuevo signo a la teoría, es necesario demostrar teoremas que justifiquen la inesencialidad en términos formales y no semánticos, estableciendo concretamente que toda fórmula que incluya signos "definidos" es equivalente a otra que no los contiene, pues para razonar con fórmulas "en abstracto" no podemos tener en cuenta todos los signos que podrían haberse introducido en la teoría mediante las definiciones oportunas. Con la segunda concepción todo esto es inmediato.

Sin embargo, hay dos clases muy distintas de definiciones, y todo lo que hemos dicho sólo vale para una de ellas. Imaginemos que un matemático sigue razonando en la teoría T y dice lo siguiente:

Citar
El axioma del par dice que, dados dos conjuntos \[ x \] e \[ y \], existe otro conjunto \[ z \] cuyos elementos son exactamente \[ x \] e \[ y \]. Dicho conjunto es único por el axioma de extensionalidad. En efecto, si hubiera dos conjuntos \[ z \] y \[ z' \] cuyos elementos fueran precisamente \[ x \] e \[ y \], ambos tendrían los mismos elementos, y lo que dice el axioma de extensionalidad es que dos conjuntos con los mismos elementos son iguales. A este único conjunto \[ z \] cuyos elementos son \[ x \] e \[ y \] lo llamaremos par desordenado de \[ x \] e \[ y \] y lo representaremos por \[ \{x,y\} \].

¿Cómo se ha de entender esto? Cuando escribimos \[ x\in \{x,y\} \], ¿qué hay que entender que es \[ \{x,y\} \]?

Al igual que antes, tenemos la opción de considerar que la definición consiste en añadir un nuevo signo al lenguaje formal, en este caso un funtor diádico, que podríamos representar en principio por \[ P \], junto con el axioma

\[ \forall xy(\forall u(u\in Pxy\leftrightarrow u=x\lor u=y)), \]

y además convenir en escribir \[ \{x,y\}\equiv Pxy \].

Con este convenio, la respuesta a la pregunta que habíamos planteado es que \[ \{x,y\} \] es un término del lenguaje formal de la teoría extendido con un nuevo funtor \[ P \], concretamente el término que consta del nuevo funtor seguido de las dos variables \[ x, y \].

De nuevo, esto exige justificar qué condiciones deben darse para que un axioma de este tipo sea inesencial, lo que formalmente supone demostrar que toda fórmula escrita con el nuevo signo \[ \{x,y\} \] es equivalente a otra que no lo contiene.

Si intentamos concebir una definición de este tipo como una abreviatura, nos encontramos con un problema: el lenguaje \[ \mathcal L_{\rm tc} \] no tiene más términos que las variables, y \[ \{x,y\} \] debería ser un término, pero no una variable. Entonces, ¿qué término es?

Una solución en esta línea consiste en considerar que en realidad no definimos \[ \{x,y\} \], sino más bien la fórmula

\[ z=\{x,y\}\equiv \forall u(u\in z\leftrightarrow u\in y). \]

Aquí se entiende que la parte izquierda es sólo una forma abreviada de escribir la fórmula de la derecha, que es una fórmula de \[ \mathcal L_{\rm tc} \], sin ningún signo añadido.

Toda fórmula en la que aparezca \[ \{x,y\} \] debe entenderse como una abreviatura de otra fórmula en la que \[ \{x,y\} \] aparece en la forma \[ z=\{x,y\} \]. Por ejemplo,
\[ x\in \{x,y\}\equiv \exists z(z=\{x,y\}\land x\in z) \].

Concretando algunos detalles, ésta es una forma viable de concebir las definiciones de términos sin implicar la adición de nuevos funtores o constantes al lenguaje de la teoría. Sin embargo, hay una tercera opción más "concreta" que vamos a discutir seguidamente:



Lenguajes con descriptor

Una forma de tratar las definiciones de términos de forma clara y sistemática es añadir un nuevo signo lógico a los lenguajes formales, llamado el descriptor "\[ | \]".

Ello nos obliga a modificar las definiciones que hemos dado en los mensajes anteriores para cubrir también este signo adicional.

En primer lugar, las definiciones de término y fórmula deben unirse a una definición conjunta de "expresión", pues igual que los relatores nos pasan de términos a fórmulas, el descriptor nos pasa de fórmulas a términos. En efecto, la definición de expresión queda ahora como sigue:

Toda variable \[ x \] es un término.

Toda constante \[ c \] es un término.

Si \[ f \] es un funtor \[ n \]-ádico y \[ t_1,\ldots, t_n \] son términos, entonces \[ ft_1\cdots t_n \] es una término.

Si \[ R \] es un relator \[ n \]-ádico y \[ t_1,\ldots, t_n \] son términos, entonces \[ Rt_1\cdots t_n \] es una fórmula.

Si \[ \alpha \] es una fórmula \[ \lnot\alpha \] es una fórmula.

Si \[ \alpha \] y \[ \beta \] son fórmulas, entonces \[ \alpha\rightarrow \beta \] es una fórmula.

Si \[ \alpha \] es una fórmula y \[ x \] es una variable, entonces \[ \forall x\alpha \] es una fórmula.

Si  \[ \alpha \] es una fórmula y \[ x \] es una variable, entonces \[ |x\alpha\equiv (x|\alpha) \] es un término.

Como siempre, el orden "real de los signos" es \[ |x\alpha \], con el nuevo signo delante, para marcar inequívocamente el tipo de expresión, pero en la práctica escribiremos \[ x|\alpha \], añadiendo paréntesis si es necesario. Los términos de la forma \[ x|\alpha \] se llaman descripciones.

Con ayuda del descriptor, la definición de par desordenado es:

\[ \{x,y\}\equiv z|\forall u(u\in z\leftrightarrow u=x\lor u=y). \]

Esto se lee: "\[ \{x, y\} \] es el conjunto \[ z \] tal que sus elementos son exactamente \[ x \] e \[ y \]".

Para poder manipular formalmente las descripciones necesitamos incorporar a \[ _{\mathcal L} \] un axioma que diga qué podemos decir de ellas. Es el axioma K7:

\[ \exists !x\alpha\rightarrow S_x^{x|\alpha}\alpha \]

Naturalmente, esto supone extender la definición de la sustitución para incluir el caso de las descripciones. La definición sigue exactamente el mismo criterio seguido para definir la sustitución en una fórmula de tipo \[ \forall x\alpha \]. Dejando de lado esos detalles, lo que dice el axioma K7, (que también puede presentarse en forma de regla derivada de inferencia (DP descripciones propias):

\[ \exists !x\alpha\vdash S_x^{x|\alpha}\alpha \])

es que si existe un único \[ x \] que cumple la descripción, entonces el \[ x|\alpha \] cumple la descripción (y por lo tanto es ese único objeto que la cumple).

En nuestro caso: como hemos demostrado que \[ \exists! z(\forall u(u\in z\leftrightarrow u=x\lor u)y)) \], la regla de las descripciones propias nos permite sustituir \[ z \] por \[ z|\forall u(u\in z\leftrightarrow u=x\lor u=y) \] es decir, por \[ \{x,y\} \] en la definición, y nos queda

\[ \forall u(u\in \{x,y\}\leftrightarrow u=x\lor u=y) \],

es decir, el par \[ \{x,y\} \] cumple la propiedad que lo define.

Antes de presentar con más detalle el uso del descriptor, vamos a ver más ejemplos de su funcionamiento. Todos ellos siguen el mismo esquema:



Razonamos en la teoría T: el axioma del conjunto vacío afirma que \[ \exists x\forall u\ u\notin x \]. Este \[ x \] es único, porque si hubiera dos conjuntos sin elementos, ambos tendrían los mismos elementos (ninguno) y el axioma de extensionalidad afirma que dos conjuntos con los mismos elementos son iguales.

Por lo tanto, en T se demuestra: \[ \exists ! x\forall u\ u\notin x \].

Esta unicidad nos permite aplicar la regla de las descripciones propias. Si definimos

\[ \emptyset\equiv x|\forall u\ u\notin x \],

la regla DP nos permite pasar de la existencia con unicidad a la sustitución de la descripción \[ \emptyset \] en la fórmula que lo define, es decir: \[ \forall u\ u\notin \emptyset \], y a partir de ahí ya podemos usar el conjunto vacío sabiendo que cumple lo que dice su definición.

Similarmente, el axioma de la unión dice que, para todo conjunto \[ x \], existe un conjunto \[ y \] cuyos elementos son los elementos de los elementos de \[ x \], y dicho \[ y \] tiene que ser único por el axioma de extensionalidad. Por lo tanto, tenemos:

\[ \forall x\exists !y\forall u(u\in y\leftrightarrow \exists v(u\in v\land v\in x)) \]

Si definimos

\[ \bigcup x\equiv y|\forall u(u\in y\leftrightarrow \exists v(u\in v\land v\in x)) \]

La unicidad nos permite aplicar la regla DP para concluir que podemos sustituir \[ \bigcup x \] en la fórmula que la define, es decir:

\[ \forall u(u\in \bigcup x\leftrightarrow \exists v(u\in v\land v\in x)) \]

Notemos que la regla DP sigue el "espíritu" de \[ K_{\mathcal L} \], es decir, es una regla que el matemático puede usar "instintivamente", sin siquiera ser consciente del paso lógico concreto que está dando. En la práctica, un matemático razona simplemente así:

Citar
El axioma de la diferencia afirma que, para todo par de conjuntos \[ x \] e \[ y \] existe un conjunto \[ z \] cuyos elementos son los elementos de \[ x \] que no pertenecen a \[ y \]. Claramente, dicho \[ z \] es único por el axioma de extensionalidad, luego podemos llamarmo \[ x\setminus y \]

Por debajo de esto hay dos cosas:

1) Que cuando el matemático dice ``podemos llamar \[ x\setminus y \] al conjunto cuyos elementos son los elementos de \[ x \] que no están en \[ y \]" eso se formaliza como

\[ x\setminus y\equiv z|\forall u(u\in z\leftrightarrow u\in x\land u\notin y) \]

2) Que el matemático tiene conciencia de que no puede dar nombre a algo salvo que haya demostrado que la definición lo caracteriza, es decir, que existe un único \[ z \] que cumple la definición. Esto se formaliza como que es la condición necesaria para que sea aplicable la regla DP, que nos permite afirmar que

\[ \forall xyu(u\in x\setminus y\leftrightarrow u\in x\land u\notin y). \]

Los ejemplos que hemos visto son los usos típicos del descriptor y, en realidad, todo uso del descriptor es un uso típico como los que acabamos de ver. Vemos así que la finalidad del descriptor no es ni más ni menos que (junto con la regla DP) formalizar de forma el concepto de definición matemática sin necesidad de recurrir a añadir signos al lenguaje formal.



Como comentábamos, la incorporación del descriptor a los lenguajes formales requiere retocar todas las definiciones para tenerlo en consideración. El cambio más drástico es el que ya hemos indicado: que ya no es posible definir los conceptos de término y fórmula por separado, sino que es necesario definirlos simultáneamente porque se puede construir fórmulas a partir de términos y términos a partir de fórmulas.

En segundo lugar, las definiciones de variable libre y ligada se han de extender para tener en cuenta que en un término como \[ z|\forall u(u\in z\leftrightarrow u\in x\land u\notin y) \] la variable \[ z \] está ligada por el descriptor, igual que la variable \[ u \] está ligada por el cuantificador, mientras que las variables \[ x, y \] están libres. La idea es que el descriptor liga variables exactamente igual que lo hacen los cuantificadores.

Por último, hay que definir el concepto de sustitución de una variable por un término en una expresión (término o fórmula) considerando a la vez los dos casos, pues ahora están relacionados, y sólo hay que añadir la definición de sustitución \[ S_x^t y|\alpha \], que se define exactamente igual que \[ S_x^t\forall y\alpha \], sin más que cambiar \[ \forall y \] por \[ y| \].

Remito para los detalles a mi libro de lógica (capítulo I).

Desde el punto de vista semántico, hay que definir qué es el objeto denotado en un modelo \[ M \] por una descripción \[ x|\alpha \] respecto de una valoración \[ v \].

Para ello necesitamos hacerle un pequeño añadido a la definición de modelo. En un modelo \[ M \] de un lenguaje con descriptor debe fijarse (además de una interpretación para cada constante, relator y funtor del lenguaje) un objeto \[ d \] de su universo al que llamaremos "descripción impropia" en el modelo \[ M \] y que será el objeto asignado a cada descripción impropia, en el sentido siguiente:

\[ M(x|\alpha)[v] \] se define como el único objeto \[ a \] que cumple \[ M\vDash \alpha[v_x^a] \], si es que existe tal único \[ a \], o bien \[ M(x|\alpha)[v]\equiv d \]  en caso contrario (tanto si no existe ningún \[ a \] como si existen varios).

De este modo el objeto denotado por \[ x|\alpha \] es lo que cabe esperar que sea (el único objeto que cumple \[ \alpha \]) cuando existe tal objeto, pero sucede que el término \[ x|\alpha \] está ahí, es un término que requiere interpretación, aunque no se dé la unicidad, y en tal caso le asignamos un significado convencional, el objeto al que llamamos \[ d \], y que podemos elegirlo en cada modelo.

Por ejemplo, un matemático nunca diría "definimos \[ A \] como el conjunto que tiene entre sus elementos al conjunto vacío", porque sabe que eso no define un conjunto (no hay un único conjunto que cumpla eso), pero nada nos impide considerar el término \[ A\equiv x|\emptyset\in x \].

Aunque un matemático nunca definiría esta \[ A \], no hay ningún problema en definirla a condición de que tengamos claro que no podemos aplicar la regla DP y, por consiguiente, no podemos afirmar que \[ \emptyset \in A \] (y, por consiguiente, no podemos decir nada de \[ A \] a partir de su "definición", podemos dar la definición, pero no usarla, y ahí se ataja formalmente el sinsentido).

Pero como \[ A \] es un término (si no "bien definido" en el sentido que los matemáticos usan la definición, sí al menos correctamente definido), tiene que tener una interpretación en todo modelo, y hemos convenido que se interpreta como un objeto \[ d \] fijado arbitrariamente en el modelo de antemano, y que no tiene nada que ver con la definición. Si da la casualidad de que dicho objeto contiene al conjunto vacío, entonces \[ A \] denotará un objeto que casualmente cumplirá la definición de \[ A \], pero no tiene por qué ser así.

Con la definición que hemos dado de "objeto denotado por una descripción" se comprueba inmediatamente que el axioma K7 es verdadero en todo modelo, por lo que \[ K_{\mathcal L} \] sigue siendo correcto.

En cambio, con dicha definición ha dejado de ser semánticamente completo. Hay sentencias verdaderas en todo modelo de T que no son demostrables a partir de los axiomas de T. Por ejemplo:

\[ (x|\emptyset\in x)=(x|\emptyset\notin x) \]

Esta sentencia es verdadera en todo modelo de T, porque ambos miembros son descripciones impropias: ni hay un único conjunto que contenga al conjunto vacío, ni hay un único conjunto que no contenga al conjunto vacío. Por ejemplo, \[ \{\emptyset\}, \{\emptyset, \{\emptyset\}\} \] son dos conjuntos que cumplen lo primero y \[ \emptyset, \{\{\emptyset\}\} \] son dos conjuntos que cumplen lo segundo. Esto hace que en cualquier modelo de T ambos términos denoten la descripción impropia \[ d \] y, por consiguiente, la sentencia resulta verdadera. Pero no tenemos ninguna regla de inferencia que nos permita tratar con descripciones impropias para que podamos demostrar esa igualdad.

La completitud semántica de \[ K_{\mathcal L} \] se recupera añadiendo un octavo y último axioma que recoja el convenio que hemos adoptado con las descripciones impropias:

\[ \lnot\exists !x\alpha\rightarrow (x|\alpha)=(x|x=x) \]

Notemos que \[ x|x=x \] siempre denota en un modelo a la descripción impropia (porque sólo es una descripción propia si en el modelo hay un único objeto que es idéntico a sí mismo, lo cual sólo puede suceder si el modelo tiene un único objeto, y entonces dicho objeto tiene que ser \[ d \] necesariamente, porque no hay otra posibilidad para \[ d \]). Por lo tanto, lo que afirma K8 es que cuando no hay un único objeto que cumple \[ \alpha \], la descripción \[ x|\alpha \] (es decir, cualquier descripción impropia) es igual a una descripción impropia concreta (luego todas las descripciones impropias son iguales entre sí, todas denotan al mismo objeto en un modelo).

Este axioma K8 no se usa para nada en la práctica, pues explica cómo tratar el caso que nunca plantea un matemático, pues un matemático nunca usa descripciones impropias. Sin embargo, es todo lo que hace falta para demostrar igualdades "tontas" como la anterior que, queramos o no, tienen que poder demostrarse para que podamos decir que nuestro cálculo deductivo es semánticamente completo. En efecto, con este último axioma, la demostración del teorema de completitud sigue siendo válida aunque el lenguaje tenga descriptor.

Pese a todo, es posible dar al axioma K8 una utilidad práctica que un matemático considerará, si no especialmente útil, al menos razonable. Podemos añadir un axioma a T que diga:

\[ (x|x=x)=\emptyset \]

Esto significa "la descripción impropia es el conjunto vacío". Dicho así puede que lo le diga mucho a un matemático, pero se puede explicar en términos más simples: "Cualquier cosa que esté mal definida se entenderá por convenio que es igual al conjunto vacío". Eso sí lo entiende el matemático y, aunque no le preocupe mucho, porque no tiene por costumbre definir cosas mal, sí puede serle útil a veces, para no tener que precisar qué sucede en los casos que no le interesan.

Por ejemplo, si la Aritmética de Peano adoptamos como axioma \[ (x|x=x)=0 \], entonces podemos definir

\[ x-y\equiv z|(x=y+z) \],

y con esta definición puede demostrarse que \[ 0''''-0'''=0' \], mientras que \[ 0''-0'''' \] es una descripción impropia, porque puede probarse que no existe ningún número \[ z \] tal que \[ 0''''+z=0'' \], pero entonces, por K8 y el axioma específico sobre las descripciones impropias, podemos afirmar que \[ 0''-0''''=(x|x=x)=0 \]. Así estamos conviniendo en que todas las restas que no se pueden calcular valen cero.

Similarmente, volviendo a la teoría de conjuntos, podemos convenir que las integrales de las funciones no integrables son el conjunto vacío, que los límites de las sucesiones que no tienen límite son el conjunto vacío, etc. No es imprescindible, pero no queda mal. Evita que podamos escribir cosas que no tengan interpretación.

Lo dicho es suficiente para manejar descripciones en la práctica (y manejarlas inconscientemente, como hace el matemático), así que nos limitaremos a citar un último resultado: si en una teoría podemos caracterizar la descripción impropia sin usar descriptores (por ejemplo, como el único \[ x \] que cumple \[ \forall u\ u\notin x \] en T, o como \[ x=0 \] en AP), entonces toda fórmula con descriptores es equivalente en dicha teoría a otra sin descriptores. Por lo tanto, al estudiar la teoría a nivel teórico siempre podemos decir "consideramos únicamente fórmulas sin descriptores", y con ello (si lo que vamos a decir sobre fórmulas se conserva por equivalencia lógica) no perdemos generalidad. Por ello, una vez demostrado este teorema, el considerar descriptores no es un lastre con el que estemos obligados a cargar para siempre, sino que en cualquier momento podemos desprendernos de él a efectos teóricos, y usar los descriptores únicamente a efectos prácticos, para formalizar definiciones de forma económica y precisa.


10 Abril, 2013, 18:11
Respuesta #19

Carlos Ivorra

  • Administrador
  • Mensajes: 9.060
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Página web personal
Para terminar esta exposición de la lógica que subyace al razonamiento matemático quiero destacar algo que ya ha quedado implícito en el mensaje anterior. Imaginemos que le pedimos a un matemático que nos demuestre que \[ \forall xy(x\subset y\land y\subset x\rightarrow x=y) \]. Podemos comparar varias posibilidades:

Respuesta típica del matemático Por el axioma de extensionalidad.

Respuesta típica del matemático al que hemos mirado con cara de pocos amigos por haber acabado tan rápido Si tomas un \[ u \] que esté en \[ x \], tienes que estará en \[ y \] por definición de inclusión \[ x\subset y \], e igualmente al revés, luego tienes que \[ x \] e \[ y \] tienen los mismos elementos, luego son iguales por el axioma de extensionalidad.

Demostración formal:



Un matemático tiende a dar por evidentes ciertos pasos que, detallados al máximo, requieren varios razonamientos menores, pero si realmente sabe lo que está diciendo, es capaz de detallar más cualquier fragmento de su argumentación (como si pusiéramos una lupa sobre él). Es posible que si alguien con serios problemas para entender razonamientos lógicos presiona mucho al matemático preguntándole "¿y eso cómo  lo sabes?", "¿y eso por qué?", "no entiendo ese paso," etc., el matemático no sea capaz de llegar a detallar su argumento hasta el nivel de detalle que supone el razonamiento formal que hemos presentado, porque el matemático no necesita conocer \[ K_{\mathcal L} \], ni qué es EC o IB. Sin embargo, lo verdaderamente importante es que si a un matemático desesperado porque no logra hacer ver a alguien que su argumento está justificado le enseñamos el razonamiento formal que hemos presentado y nos aseguramos de que lo entienda, no dirá "bueno... sí... es otra forma de verlo", sino que dirá, "¡exacto!, eso es lo que estaba tratando de explicar sin saber ya cómo".

Lo que quiero decir es que el razonamiento formal no es otra forma de razonar, distinta de la habitual del matemático, aunque éste la reconozca como válida, sino que es exactamente la forma de razonar del matemático, sólo que detallada al máximo. El matemático abrevia todos aquellos pasos que pueden darse "por pura lógica", sin necesidad de recurrir a alguna idea matemática propiamente dicha (y en niveles más avanzados incluso abrevia los pasos que un experto en la teoría tratada puede rellenar por su experiencia), pero esos pasos lógicos que abrevia son su lógica subyacente, independientemente de que pueda no estar familiarizado con la forma de expresarla formalmente (con un cálculo deductivo formal en concreto).

Si alguien ha estudiado lógica y se ha quedado con la idea de que lo que le han enseñado tiene cierta relación con el razonamiento matemático, pero es otra cosa, que se puede razonar algo "por lógica" o "como hacen los matemáticos", como si fueran dos cosas distintas, es que no ha entendido lo que le han enseñado o (muy probablemente) no se lo han enseñado bien.

La lógica que hemos expuesto aquí es la que subyace a todo razonamiento matemático "usual" exactamente en el mismo sentido en que el código máquina subyace a toda aplicación informática ejecutable en un ordenador. Un programador familiarizado con el lenguaje C puede no saber nada de código máquina, pero lo que al final está programando es una secuencia de instrucciones en código máquina, aunque el software de programación que utilice le permita explicitar sólo instrucciones de alto nivel que luego se pueden concretar mecánicamente (de eso se encarga su compilador). La diferencia es que, aunque todos los razonamientos de alto nivel de un matemático (si son correctos) se pueden desarrollar al lenguaje de bajo nivel de \[ K_{\mathcal L} \], nadie se molesta en hacerlo porque no hace falta para nada.

De este modo, sin perjuicio de que la lógica sea un campo de estudio muy vasto, con mil direcciones para explorar, puede decirse que quien entienda todo lo expuesto aquí entiende todo lo que hay debajo del trabajo de un matemático "normal". Naturalmente, es posible dar cálculos deductivos distintos pero equivalentes al que hemos dado, es posible desarrollar la teoría de otro modo, etc., pero salvo variantes insustanciales, lo que sirve de fundamento al razonamiento matemático es que disponemos de un cálculo deductivo correcto y semánticamente completo que funciona como hemos visto que funciona. Razonar correctamente en matemáticas es razonar de forma que todos los pasos puedan desarrollarse hasta adquirir el aspecto del razonamiento formal precedente. Hacerlo en la práctica sería insufrible, porque los árboles no dejarían ver el bosque de los razonamientos: tanto paso insustancial impediría captar las ideas centrales de las demostraciones, sin contar con la prueba más elemental se haría eterna, pero, desde un punto de vista teórico, lo que hace un matemático es aplicar dando cien pasos en uno las técnicas de razonamiento que aquí hemos descrito, ni más ni menos.

Confío en que este artículo pueda servir a sus lectores para ver con más claridad tanto lo que es la concepción moderna de las matemáticas como lo que es la lógica formal que sirve de sustento a las matemáticas. La conexión concreta entre ambas se realiza a través de la teoría de conjuntos. No hemos entrado aquí en detalles sobre cómo es una teoría de conjuntos, pero para entender en qué consiste eso de usar una teoría de conjuntos basta haber entendido cómo se usa la teoría T, pues la diferencia entre T y ZFC es simplemente que en ZFC se pueden demostrar más cosas, pero siempre de la misma manera.