Una lógica de primer orden, también llamada lógica predicativa, lógica de predicados, cálculo de predicados o lógica predicativa de calculo, es un sistema formal diseñado para estudiar la inferencia en los lenguajes de primer orden. Los lenguajes de primer orden son, a su vez, lenguajes formales con cuantificadores que alcanzan solo a variables de individuo, y con predicados y funciones cuyos argumentos son solo constantes o variables de individuo, lo que garantiza que toda inferencia sea computacionalmente decidible.
La lógica de primer orden tiene un poder expresivo superior al del Razonamiento deductivo.
Introducción
El desarrollo histórico y las aplicaciones de la lógica de primer orden están muy ligados a la matemática. En lo que sigue se hará una introducción que contemple e ilustre esta relación, tomando ejemplos tanto de la matemática como del lenguaje natural. Primero se introducen cada uno de los conceptos básicos del sistema, y luego se muestra cómo utilizarlos para analizar argumentos.
Predicados
Un predicado es una expresión lingüística que se puede conectar con una o varias otras expresiones para formar una oración. Por ejemplo, en la oración «Marte es un planeta», la expresión «es un planeta» es un predicado que se conecta con la expresión «Marte» para formar una oración. Y en la oración «Júpiter es más grande que Marte», la expresión «es más grande que» es un predicado que se conecta con dos expresiones, «Júpiter» y «Marte», para formar una oración.
En lógica matemática, cuando un predicado se conecta con una expresión, se dice que expresa una propiedad (como la propiedad de ser un planeta), y cuando se conecta con dos o más expresiones, se dice que expresa una relación (como la relación de ser más grande que). Sin embargo, la lógica de primer orden no hace ningún supuesto sobre si existen o no las propiedades o las relaciones. Solo se ocupa de estudiar el modo en que hablamos y razonamos con expresiones lingüísticas.
En la lógica de primer orden, los predicados son tratados como funciones. Una función es, metafóricamente hablando, una máquina que recibe un conjunto de cosas, las procesa, y devuelve como resultado una única cosa. A las cosas que entran a las funciones se las llama argumentos,No deben confundirse con los argumentos que estudia la lógica. y a las cosas que salen, valores o imágenes. Considérese por ejemplo la siguiente función matemática:
f(x) = 2x
Esta función toma números como argumentos y devuelve más números como valores. Por ejemplo, si toma el número 1, devuelve el número 2, y si toma el 5, devuelve el 10. En la lógica de primer orden, se propone tratar a los predicados como funciones que no solo toman números como argumentos, sino expresiones como «Marte», «Mercurio» y otras que se verán más adelante. De este modo, la oración «Marte es un planeta» puede transcribirse, siguiendo la notación propia de las funciones, de la siguiente manera:
Planeta(Marte)
O, más abreviadamente:
P(m)
En la matemática existen además funciones que toman varios argumentos. Por ejemplo:
f(x,y) = x + y
Esta función, si toma los números 1 y 2, devuelve el número 3, y si toma el -5 y el -3, devuelve el -8. Siguiendo esta idea, la lógica de primer orden trata a los predicados que expresan relaciones, como funciones que toman dos o más argumentos. Por ejemplo, la oración «Caín mató a Abel» se puede formalizar así:
Mató(Caín,Abel)
O abreviando:
M(c,a)
Este procedimiento se puede extender para tratar con predicados que expresan relaciones entre muchas entidades. Por ejemplo, la oración «Ana está sentada entre Bruno y Carlos» puede formalizarse:
S(a,b,c)
Constantes individuales
Una constante individual es una expresión lingüística que refiere a una entidad. Por ejemplo «Marte», «Júpiter», «Caín» y «Abel» son constantes de individuo. También lo son las expresiones «1», «2», etc., que refieren a números. Una entidad no tiene que existir para que se pueda hablar acerca de ella, de modo que la lógica de primer orden tampoco hace supuestos acerca de la existencia o no de las entidades a las que refieren sus constantes individuales.
Variables individuales
Además de las constantes individuales que hacen referencia a entidades determinadas, la lógica de primer orden cuenta con otras expresiones, las variables, cuya referencia no está determinada. Su función es similar a la de las expresiones del lenguaje natural como «él», «ella», «esto», «eso» y «aquello», cuyo referente varía con el contexto. Las variables generalmente se representan con letras minúsculas cerca del final del alfabeto latino, principalmente la x, y y z. Del mismo modo, en la matemática, la x en la función f(x) = 2x no representa ningún número en particular, sino que es algo así como un espacio vacío donde se pueden insertar distintos números. En conclusión, podemos representar una expresión como «esto es antiguo» con la expresión:
Antiguo(x)
O abreviadamente:
A(x)
Es evidente, sin embargo, que hasta que no se determine a qué refiere la x, no es posible asignar un valor de verdad a la expresión «esto es antiguo», del mismo modo que hasta que no se determine un número para la x en la función f(x) = 2x, no será posible calcular ningún valor para la función.
Por supuesto, al igual que con las constantes individuales, las variables sirven también para formalizar relaciones. Por ejemplo, la oración «esto es más grande que aquello» se formaliza:
G(x,y)
Y también se pueden combinar constantes individuales con variables. Por ejemplo en la oración «ella está sentada entre Bruno y Carlos»:
S(x,b,c)
Cuantificadores
Considérese ahora la siguiente expresión matemática:
x > 3
Esta expresión no es ni verdadera ni falsa, y parece que no lo será hasta que no reemplacemos a la x por algún número cualquiera. Sin embargo, también es posible dar un valor de verdad a la expresión si se le antepone un cuantificador. Un cuantificador es un operador sobre un conjunto de individuos, se trata de un recurso expresivo que permite construir proposiciones sobre conjuntos o dicho de otra forma, un cuantificador es una expresión que afirma que una condición se cumple para un cierto número de individuos. En la lógica clásica, los dos cuantificadores más estudiados son el cuantificador universal y el cuantificador existencial. El primero afirma que una condición se cumple para todos los individuos de los que se está hablando, y el segundo que se cumple para al menos uno de los individuos. Por ejemplo, la expresión "para todo x" es un cuantificador universal, que antepuesto a "x < 3", produce:
Para todo x, x < 3
Esta es una expresión con valor de verdad, en particular, una expresión falsa, pues existen muchos números (muchos x) que son mayores que tres. Anteponiendo en cambio la expresión "para al menos un x", un cuantificador existencial, se obtiene:
Para al menos un x, x < 3
La cual resulta ser una expresión verdadera.
Adviértase ahora, sin embargo, que el valor de verdad de las dos expresiones anteriores depende de qué números se esté hablando. Si cuando se afirma "para todo x, x < 3", se está hablando solo de los números negativos, por ejemplo, entonces la afirmación es verdadera. Y si al afirmar "para al menos un x, x < 3" se está hablando solamente de los números 3, 4 y 5, entonces la afirmación es falsa. En lógica, a aquello de lo que se está hablando cuando se usa algún cuantificador, se lo llama el dominio de discurso.
Esta maquinaria se puede adaptar fácilmente para formalizar oraciones con cuantificadores del lenguaje natural. Tómese por caso la afirmación "todos son amigables". Esta oración se puede traducir así:
Para todo x, x es amigable.
Y una oración como "alguien está mintiendo" puede traducirse:
Para al menos un x, x está mintiendo.
También es frecuente traducir esta última oración así:
Existe al menos un x, tal que x está mintiendo.
A continuación se formalizan ambas oraciones, introduciendo a la vez la notación especial para los cuantificadores:
| Para todo x, x es amigable. | ∀x A(x) |- | Existe al menos un x, tal que x está mintiendo. | ∃x M(x)
Conectivas
La lógica de primer orden incorpora además las conectivas de la lógica proposicional. Combinando las conectivas con los predicados, constantes, variables y cuantificadores, es posible formalizar oraciones como las siguientes:
!align="left" | Oración !align="left" | Formalización |- |Sócrates es sabio y prudente. |Ss ∧ Ps |- |Si Sócrates es sabio, entonces también es prudente. |Ss → Ps |- |Nadie es sabio y además prudente. |¬∃x (Sx ∧ Px) |- |Todos los sabios son prudentes. |∀x (Sx → Px)
Argumentos
Considérese el siguiente argumento clásico:
Todos los hombres son mortales. Sócrates es un hombre. Por lo tanto, Sócrates es mortal.
La tarea de la lógica de primer orden consiste en determinar por qué los argumentos como este resultan válidos. Para eso, el primer paso es traducirlos a un lenguaje más preciso, que pueda ser analizado mediante métodos formales. Según lo visto más arriba, la formalización de este argumento es la siguiente:
∀x (Hx → Mx) Hs ∴ Ms
Sistema formal
A continuación se define un lenguaje formal, Q, y luego se definen axiomas y reglas de inferencia sobre ese lenguaje que dan como resultado el sistema lógico SQ.
Sintaxis
El alfabeto del lenguaje formal Q consta de los siguientes símbolos:
a x f P * ' ¬ ∧ ∨ → ↔ ∀ ∃ ( )
A partir de estos símbolos, se definen las siguientes nociones:
Un nombre (o constante individual) es una a seguida de una o más comillas. Por ejemplo, a', a'' y a'''''' son nombres. Para facilitar la lectura, se suelen omitir las comillas y utilizar distintas letras cerca del comienzo del alfabeto latino, con o sin subíndices, para distinguir nombres distintos: a, b, c, d, e, a1, a3, c9, etc.
Una variable (o variable individual) es una x seguida de una o más comillas. Por ejemplo, x', x'' y x'''''' son variables. Para facilitar la lectura, se suelen omitir las comillas y utilizar distintas letras cerca del final del alfabeto latino, con o sin subíndices, para distinguir variables distintas: x, y, z, x1, x3, z9, etc.
Un functor es una f seguida de uno o más asteriscos, y luego de una o más comillas. Por ejemplo, f *', f **'''' y f ****'' son functores. El número de asteriscos indica la aridad del functor. Para facilitar la lectura, se suelen omitir los asteriscos y las comillas y utilizar distintas letras del alfabeto latino cerca de la f, con o sin subíndices, para distinguir functores distintos: f, g, h, f1, f3, h9, etc.
Un predicado es una P seguida de uno o más asteriscos, y luego de una o más comillas. Por ejemplo, P *', P **'''' y P ****'' son predicados. El número de asteriscos indica la aridad del predicado. Para facilitar la lectura, se suelen omitir los asteriscos y las comillas y utilizar distintas letras en mayúscula a lo largo del alfabeto latino para distinguir predicados distintos: P, A, B, C, S, T, etc.
La noción de término se define recursivamente mediante las siguientes cláusulas: Todos los nombres son términos. Todas las variables son términos. Si f es un functor de aridad n ≥ 1 y t1,...,tn son términos, entonces f(t1,...,tn) es un término. Nada más es un término.
Según esta definición, las siguientes cadenas de caracteres son términos: Cadena Simplificación Posible interpretación a' a Aristóteles x''''' y f *'''(a''') h(c) El hermano de Caín f *''(f *''(f *''(a'))) f(f(f(b))) El padre del padre del padre de Beatriz
Y en cambio, las siguientes cadenas de caracteres no son términos:
Cadena ErroraFaltan comillas.x*'''Sobra el asterisco.f 'Faltan asteriscos y argumentos.f **Faltan comillas y argumentos.f *'(f *')Falta el argumento del functor más anidado.f *'(a',a'') El functor es de aridad 1 pero tiene dos argumentos.
La noción de fórmula bien formada de Q se define a través de las siguientes cláusulas: