Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
Limitaciones de la Lógica Proposicional ..................................................................................2
Sintaxis de la Lógica de Predicados ........................................................................................4
El Vocabulario .....................................................................................................................6
Reglas de sintaxis ................................................................................................................7
Distinción: Primer Orden vs Segundo Orden .......................................................................9
Árbol de sintaxis y precedencia .........................................................................................10
Cuantificación y ligadura de variables ...............................................................................11
La sintaxis de LPO en Haskell ............................................................................................12
Recursión en LPO ..............................................................................................................13
Formalización de enunciados ............................................................................................15
1
Limitaciones de la Lógica Proposicional
La sintaxis de un lenguaje natural, como el Español o el Inglés, es mucho más compleja que
la sintaxis del lenguaje formal de Lógica Proposicional que hemos considerado hasta ahora.
Cuando usamos LP para formalizar un razonamiento del lenguaje natural, se eligen letras
proposicionales (típicamente 𝑝, 𝑞, 𝑟, etc.) para denotar las oraciones declarativas más
básicas que podemos identificar en el razonamiento, las cuales llamamos proposiciones
atómicas.
2
Consideremos el siguiente razonamiento:
Para formalizarlo en LP, tomamos las letras 𝑝, 𝑞, 𝑟, y 𝑠 para denotar las siguientes
proposiciones atómicas:
3
Sintaxis de la Lógica de Predicados
El lenguaje formal de Lógica de Predicados que vamos a introducir es mucho más expresivo
que el lenguaje de Lógica Proposicional porque su sintaxis permite representar los
componentes lingüísticos mencionados anteriormente (términos, predicados y
cuantificadores), además de las conectivas lógicas habituales (¬ , ∧ , ∨ , etc.). Podemos
pensarlo como una extensión de la Lógica Proposicional. Al mismo tiempo, tener mayor
expresividad tendrá su precio.
Más precisamente, la lógica de predicados que vamos a estudiar es una Lógica de Primer
Orden (LPO), el motivo de esta denominación quedará claro luego. Antes de dar la sintaxis
formal, hacemos un resumen anticipado. La sintaxis consta de:
4
Por ejemplo, podemos denotar la función suma con f 2 . Si en vez de hablar de
personas queremos hablar de números y las constantes a y d representan ciertos
numeros específicos, entonces f 2 (a, d) representa la suma de ellos.
• Símbolos de Variable: 𝑥1 , 𝑥2 , 𝑥3 , ….
Se asume que disponemos de una cantidad infinita de estos símbolos. Estos símbolos
denotan individuos arbitrarios del universo del discurso.
En la práctica, cuando es posible nos permitimos usar otras letras minúsculas que
sean convenientes como 𝑥, 𝑦, 𝑧, …
Atención: no son equivalentes a las “variables/letras proposicionales” de LP, ni nada
parecido.
• Símbolos de Cuantificación: ∀ , ∃
Se usan sobre variables y predicados. Por ejemplo, asumiendo que el contexto que
nos interesa consiste en personas y sus relaciones de amistad, para expresar que
todos son amigos de todos escribimos: (∀𝑥 )(∀𝑦)P 2 (𝑥, 𝑦), mientras que para
expresar que todos son amigos de David escribimos: (∀𝑥 )P 2 (𝑥, d),
De manera similar a LP, seguimos teniendo símbolos para las conectivas lógicas habituales y
los paréntesis ( y ) como símbolos de agrupacion.
5
El Vocabulario
En general, al razonar siempre tenemos cierto contexto o situación particular en mente.
Este es llamado el universo (o dominio) del discurso. Los símbolos que adoptamos y el
significado que les damos depende de ese universo del cual queremos hablar. Para cada
universo que nos interesa, queremos tener bien definido un vocabulario que sea apropiado
para razonar sobre las propiedades y relaciones entre los individuos de ese universo.
Ejemplo.
• Si queremos formalizar el razonamiento válido considerado antes, es suficiente
definir un vocabulario con tres símbolos de constantes (para los individuos Alicia,
David y Juan), tres símbolos de predicado (para las relaciones “_ es radical”, “_
apoya a _” y “_ es amigo de _”) y sin ningún símbolo de función.
Tal vocabulario podría ser:
({a, b, c}, ∅, {P1, Q2, R2 })
6
Reglas de sintaxis
Las reglas de sintaxis que describen (o generan) las expresiones bien formadas de un
lenguaje de primer orden se definen con respecto a un vocabulario 𝑉 y a un conjunto
de variables 𝑉𝑎𝑟 .
𝑡 ∷= 𝑥 donde 𝑥 ∈ 𝑉𝑎𝑟
| c 𝑐∈ 𝒦
| f 𝑘 (𝑡1, … , 𝑡𝑘 ) f𝑘 ∈ ℱ
Los “casos base” aquí son las variables y las constantes, mientras que el caso
recursivo es la formación de funciones. Los términos tienen como propósito denotar
individuos del universo.
Ejemplos de términos bien formados: f 1 (𝑥), f 1 (f 1 (𝑥)) , f 1 (g 2 (𝑥, f 1 (a)))
El “caso base” aquí es la formación de predicados, mientras que los demás casos son
recursivos. Sin embargo, notar que los predicados están formados por términos y
estos a su vez se forman recursivamente por las reglas dadas antes.
7
Las fórmulas tienen como propósito denotar valores de verdad. Estas son las
fórmulas propiamente dichas del lenguaje de LPO, están formadas por términos y no
al revés. Notar que los términos no pueden construirse a partir de fórmulas.
Ejemplos de fórmulas bien formadas: P1 (𝑥) , P1 (f 1 (𝑥)) , (∃𝑥)P1 (f 1 (𝑥))
A veces puede ser conveniente agrupar los cuantificadores en una sola regla de
manera similar a como hacemos con las conectivas binarias, por lo cual las últimas
dos reglas se pueden abreviar en una sola:
| (𝑄𝑥)α 𝑥 ∈ 𝑉𝑎𝑟 y 𝑄 ∈ { ∀, ∃ }
No vamos a trabajar bajo esta modalidad en este curso, esto complicaría nuestra
discusión posterior de sistemas deductivos. Pero de todas maneras, en cualquier
universo donde sea necesario hablar de igualdad, podemos reservar en el
vocabulario un símbolo de predicado binario para darle ese significado y esto
será suficiente para nuestros propósitos.
De aquí en adelante, otra simplificación notacional que haremos cuando sea posible es
omitir las aridades en los símbolos de predicado y función, ya que la aridad la podemos
deducir directamente de la cantidad de argumentos presentes. O sea, P1 (𝑥) lo escribimos
P(𝑥). Pero en el contexto de un mismo vocabulario, no tiene sentido usar P(𝑥) en un lado y
luego usar P(𝑥, 𝑦) en otro, todo símbolo debe ser usado de manera consistente con la
misma aridad.
8
Distinción: Primer Orden vs Segundo Orden
Se dice que las reglas dadas definen un lenguaje de primer orden, porque los
cuantificadores solo aplican sobre individuos del universo (las variables 𝑥, 𝑦, 𝑧, etc.). En un
lenguaje de segundo orden, sería posible también cuantificar sobre predicados, teniendo
que tener también variables para predicados además de las variables para individuos.
Solo aplica para una propiedad expresada por el predicado unario P1. Pero hay infinitas
propiedades sobre números, las cuales podríamos expresar si además incluimos el resto de
los símbolos de predicados P2, P3, …, etc., lo que nos lleva a que en este lenguaje
deberíamos tener una versión del axioma disponible para cada símbolo:
… etc.
Por esto no hay una axiomatización finita para la aritmética en LPO. Lo mejor que podemos
hacer aquí expresar el axioma como un esquema de axioma que sea instanciado para cada
propiedad de interés, ocultando el hecho de que en realidad hay infinitos axiomas de
inducción.
Por otro lado, en un lenguaje de segundo orden podríamos escribir algo como:
donde 𝑃 es una variable de predicado (no un predicado específico del vocabulario), así
como 𝑥 es una variable de individuo. Con un solo axioma basta.
Si bien una lógica de segundo orden (LSO) provee aún mayor expresividad, esto siempre
tiene un precio. Se dejan de cumplir propiedades deseables. Por ejemplo, no existe para
LSO un sistema deductivo que sea Sólido y Completo. En este curso, por “lógica de
predicados” nos referimos siempre a LPO.
9
Árbol de sintaxis y precedencia
Los cuantificadores son como nuevas conectivas lógicas unarias. L es asignamos el
mismo nivel de precedencia que la negación.
Las reglas de precedencia de LPO en orden descendente:
(∀ 𝑥 ) (∃𝑥 ) ¬
∧
∨
⊃
↔
Ejemplo.
• (∀𝑥 )P(𝑥 ) ∨ Q(𝑥 ) es (((∀𝑥)P(𝑥)) ∨ Q(𝑥)) de la misma manera en que ¬ α ∨ β es
((¬ α) ∨ β).
• (∀𝑥)(∀𝑥)P(𝑥) es ((∀𝑥)((∀𝑥)P(𝑥))) de la misma manera en que ¬¬α es (¬ (¬ α))
∨
d
(∀𝑥) Q
P 𝑥
(∀𝑥 )P(f(𝑥, c)) ∨ Q(𝑥 )
𝑥 c
(∀𝑥)
f Q
𝑥 𝑦 𝑦
10
Cuantificación y ligadura de variables
Los cuantificadores ∀ y ∃ en LPO son operadores de ligadura, de manera similar al 𝜆 en el
calculo lambda o el ∑ en la aritmética. Estos operadores ligan una variable dentro de cierto
alcance, y se dice que esa variable no está libre en dicho alcance. Por otro lado, cualquier
variable no ligada por ningún cuantificador, se dice que está libre.
Ejemplo.
• En (∀𝑥 )P(𝑥 ) ∨ Q(𝑥 ) la variable 𝑥 está libre, porque el alcance del universal es la
subfórmula (∀𝑥 )P(𝑥 ).
• En (∀𝑥)(P(𝑥) ∨ Q(𝑥)) la variable 𝑥 no está libre, porque el alcance del universal es
toda la fórmula.
Vamos a escribir 𝐹𝑉(𝛼) para denotar el conjunto de las variables libres en 𝛼. Más adelante,
definimos 𝐹𝑉 por recursión.
Ejemplo.
• La fórmula (∀𝑥 )P(𝑥 ) ∨ Q(𝑥 ) es abierta porque 𝐹𝑉((∀𝑥 )P(𝑥 ) ∨ Q(𝑥 )) = {𝑥}
• La fórmula (∀𝑥)(P(𝑥) ∨ Q(𝑥)) es cerrada porque 𝐹𝑉 ((∀𝑥)(P(𝑥) ∨ Q(𝑥))) = ∅
• 𝑥 ⋕ (∀𝑥 )P(𝑥 )
• 𝑥 ⋕ P(𝑦)
• En la fórmula (∀𝑥 )P(𝑥 ) ∨ Q(𝑥 ), la variable 𝑥 se esta usando de forma libre y ligada
dentro de la misma fórmula. Aunque no es incorrecto, para evitar confusión es
recomendable usar nombres diferentes. Como el nombre de las variables ligadas no
importa, podemos reescribirla en la forma equivalente (∀𝑦)P(𝑦) ∨ Q(𝑥 ).
• En la fórmula (∀𝑥)(P(𝑥) ⊃ (∃𝑥)Q(𝑥)), la sub-fórmula (∃𝑥)Q(𝑥) se encuentra
dentro del alcance del universal, pero este no tiene injerencia sobre la variable 𝑥
dentro de (∃𝑥)Q(𝑥) porque aquí 𝑥 está ligada por el existencial. Es decir, la misma
11
variable 𝑥 no denota necesariamente el mismo individuo dentro de la sub-fórmula
(∃𝑥)Q(𝑥) y fuera de ella. Aquí también puede ser conveniente reescribir la fórmula
en otra forma equivalente: (∀𝑥)(P(𝑥) ⊃ (∃𝑦)Q(𝑦)).
En realidad, hasta aquí no hemos definido ningún tipo nuevo, los tipos recién
introducidos se definieron como abreviaciones en términos de otros tipos de Haskell
más básicos que parecen convenientes para nuestro propósito.
Ahora podemos definir qué son los términos. Para esto definimos un nuevo tipo
inductivo siguiendo las reglas de sintaxis de LPO:
12
Recursión en LPO
Siempre que sea posible y convenga, asumimos que en las reglas de sintaxis las
conectivas binarias están agrupadas en un solo caso y lo mismo para los
cuantificadores.
ℎ ∶ Term → 𝐵 ℎ ∶ Term → 𝐵
ℎ = 𝜆 𝑡 . case 𝑡 of ℎ(𝑥 ) =𝑏
𝑉𝑥→𝑏 (
ℎ 𝑐 ) = 𝑏′
𝐶 𝑐 → 𝑏′ ℎ(f 𝑘 𝑡𝑠) = … ℎ 𝑡𝑠 …
𝐹 f 𝑘 𝑡𝑠 → … ℎ 𝑡𝑠 …
donde 𝑏, 𝑏 ′ : 𝐵 donde 𝑏, 𝑏 ′ : 𝐵
𝑔 ∶ Form → 𝐵 𝑔 ∶ Form → 𝐵
𝑔 = 𝜆 𝛼 . case 𝛼 of 𝑔(P 𝑘 𝑡𝑠) = … ℎ 𝑡𝑠 …
𝑃 P 𝑘 𝑡𝑠 → … ℎ 𝑡𝑠 … 𝑔 (¬ 𝛼 ) = … 𝑔 𝛼 …
¬𝛼 → … 𝑔𝛼… 𝑔(𝛼 𝑜 𝛽 ) = … 𝑔 𝛼 … 𝑔 𝛽 …
𝛼𝑜𝛽 → … 𝑔𝛼… 𝑔𝛽… 𝑔((𝑄𝑥)𝛼) = … 𝑔 𝛼 …
(𝑄𝑥 )𝛼 → … 𝑔 𝛼 …
13
Anteriormente dijimos que 𝐹𝑉(𝛼) denota el conjunto de las variables libres en 𝛼. 𝐹𝑉 es una
función que se define por recursión primitiva en 𝛼. Usando conceptos matemáticos
ordinarios podemos definir FV como:
𝑣𝑎𝑟𝑠 (𝑥 ) = {𝑥}
𝑣𝑎𝑟𝑠(c) =∅
𝑣𝑎𝑟𝑠(f 𝑡𝑠) = ⋃𝑘𝑖=1 𝑣𝑎𝑟𝑠(𝑡𝑖 )
𝑘
Ejemplo:
𝐹𝑉((∃𝑥 )P (f (𝑥, a), 𝑦)) = 𝐹𝑉(P (f (𝑥, a), 𝑦)) ∖ {𝑥}
= (𝑣𝑎𝑟𝑠(f (𝑥, a)) ∪ 𝑣𝑎𝑟𝑠(𝑦)) ∖ {𝑥}
= ((𝑣𝑎𝑟𝑠(𝑥) ∪ 𝑣𝑎𝑟𝑠(a)) ∪ 𝑣𝑎𝑟𝑠(𝑦)) ∖ {𝑥}
= (({𝑥} ∪ ∅) ∪ {𝑦}) ∖ {𝑥 }
= {𝑥, 𝑦} ∖ {𝑥 }
= {𝑦}
Para trasladar la definición anterior en algo más cercano a Haskell es más conveniente
trabajar con listas, cuya notación ya forma parte del lenguaje. La unión de los conjuntos de
variables que aparecen en cada término lo expresamos como la concatenación de las listas
de variables que aparecen en cada término, o sea:
𝑣𝑎𝑟𝑠 𝑡1 ++ 𝑣𝑎𝑟𝑠 𝑡2 ++ … ++ 𝑣𝑎𝑟𝑠 𝑡𝑘
Para esto combinamos las funciones 𝑚𝑎𝑝 ∶ (𝑎 → 𝑏) → [𝑎] → [𝑏] y 𝑐𝑜𝑛𝑐𝑎𝑡 ∶ [[𝑎]] → [𝑎].
Adicionalmente hay que eliminar repetidos, ya que originalmente la idea original era
obtener un “conjunto” de variables.
𝐹𝑉 ∶ Form → [Var]
𝐹𝑉 (P 𝑘 𝑡𝑠) = 𝑛𝑢𝑏 (𝑐𝑜𝑛𝑐𝑎𝑡 (𝑚𝑎𝑝 𝑣𝑎𝑟𝑠 𝑡𝑠))
𝐹𝑉 (¬ 𝛼) = 𝐹𝑉 𝛼
𝐹𝑉 (𝛼 𝑜 𝛽 ) = 𝑛𝑢𝑏 (𝐹𝑉 𝛼 ++ 𝐹𝑉 𝛽)
𝐹𝑉((𝑄𝑥)𝛼) = 𝐹𝑉 𝛼 ∖∖ [𝑥]
14
Formalización de enunciados
Todo A es B Ningún A es B
Algún A es B No todo A es B
Observaciones:
• En la notación matemática habitual los conceptos son expresados en términos de
conjuntos. El “tipo” de los individuos se indica usando la relación de pertenencia ∈.
Pero el lenguaje de LPO no tiene un símbolo de pertenencia, la sintaxis no presupone
la noción de conjunto. En LPO es necesario indicar el tipo también como una
propiedad, ese es el rol del “A(𝑥)” en las fórmulas de la tabla anterior.
• Los enunciados universales son juicios hipotéticos, no presuponen la existencia de un
individuo. Es decir, si no hay ningún individuo con la propiedad, el enunciado es
verdadero vacuamente.
• Los enunciados existenciales afirman la existencia de un individuo con la propiedad.
• Por los puntos anteriores, las expresiones universales hacen uso del ⊃, mientras que
las expresiones existenciales hacen uso del ∧.
15
Ejemplo.
16
Suponiendo que el universo es finito y que conocemos explícitamente que consiste en los
individuos 𝑑1 , 𝑑2 …, 𝑑𝑛 , entonces el universal es precisamente equivalente a una
conjuntoria y el existencial es precisamente equivalente a una disyuntoria:
(∀ 𝑥 )𝛼 ≈ 𝛼[𝑥 ≔ 𝑑1 ] ∧ … ∧ 𝛼[𝑥 ≔ 𝑑𝑛 ]
(∃ 𝑥 )𝛼 ≈ 𝛼[𝑥 ≔ 𝑑1 ] ∨ … ∨ 𝛼[𝑥 ≔ 𝑑𝑛 ]
De todas maneras, sin importar si el universo es finito o no, tenemos una forma más general
para las leyes de De Morgan ya vistas en LP:
En LP y LPO En LPO
¬(𝛼 ∧ 𝛽 ) ≈ ¬ 𝛼 ∨ ¬𝛽 ¬(∀ 𝑥 )𝛼 ≈ (∃ 𝑥 )¬ 𝛼
¬(𝛼 ∨ 𝛽 ) ≈ ¬ 𝛼 ∧ ¬𝛽 ¬(∃ 𝑥 )𝛼 ≈ (∀ 𝑥 )¬ 𝛼
Con las cuales es fácil justificar que tener dos cuantificadores no es necesario porque
cualquiera de los dos se puede definir en términos del otro y haciendo uso de la negación:
(∀ 𝑥 ) 𝛼 ≈ ¬(∃ 𝑥 )¬ 𝛼
(∃ 𝑥 ) 𝛼 ≈ ¬(∀ 𝑥 )¬ 𝛼
17
Consideremos nuevamente el ejemplo de razonamiento usado como motivación inicial:
Definimos un vocabulario formado por los símbolos de constante {a, d, j} y los símbolos de
predicado {R1 , A2 , P 2 }, los cuales interpretamos como:
• a = Alicia
• d = David
• j = Juan
• R1 = “_ es radical”
• A2 = “_ es amigo de _”
• P 2 = “_ apoya a_”
Ahora sabemos que Alicia no es amiga de David. Pero vale preguntarse, ¿también es cierto
que David no es amigo de Alicia?. No hemos supuesto que la amistad sea una relación
bilateral (o sea, simétrica), por lo que no hay necesidad de que eso sea cierto.
Para modelar la relación de amistad como una relación bilateral tendríamos que agregar a
nuestras premisas: (∀ 𝑥)(∀ 𝑦)(A(𝑥, 𝑦) ↔ A(𝑦, 𝑥))
18