Lógica de predicados · Gratis · Sin registro
Calculadora de reglas de inferencia de predicados online
Escribe tus premisas con cuantificadores y la conclusión, y obtén la demostración línea a línea: especificación y generalización universal y existencial, más las reglas de siempre (modus ponens, modus tollens, silogismos). Y si el argumento no es válido, te enseñamos el contraejemplo: un dominio concreto donde las premisas se cumplen y la conclusión no.
Comprueba si tu argumento es válido
Pulsa los botones si no sabes teclear los símbolos¿Qué es la lógica de predicados?
El ejemplo de siempre: «todos los hombres son mortales», «Sócrates es un hombre», por tanto «Sócrates es mortal». Cualquiera ve que está bien razonado, pero en lógica proposicional eso son tres letras sueltas, P, Q y R, sin ninguna relación entre ellas. Y de P y Q no se deduce R.
La lógica de predicados (o lógica de primer orden) mira dentro de las frases: separa de quién se habla de lo que se dice de él, y añade los cuantificadores para indicar a cuántos elementos afecta la fórmula. Estas son todas las piezas, y no hay más:
Las piezas: predicados, términos y cuantificadores
| Pieza | Cómo se escribe | Qué es | Ejemplo |
|---|---|---|---|
| Predicado | H(x)R(x,y) | La propiedad o la relación: lo que se dice del elemento. El número de huecos es su aridad. | H(x) es «x es un hombre»R(x,y) es «x conoce a y» |
| Constante | s, a, socrates | Un elemento concreto, alguien con nombre y apellidos. | H(s) es «Sócrates es un hombre» |
| Variable | x, y, z | Un hueco todavía sin rellenar. Quien lo rellena es el cuantificador. | En ∀x H(x), la x no es nadie en particular |
| Cuantificador universal | ∀x | «Para todo x», «todos», «cualquiera». Dice que la fórmula vale para todos los elementos. | ∀x M(x) es «todos son mortales» |
| Cuantificador existencial | ∃x | «Existe algún x», «hay alguno», «al menos uno». No dice cuál ni cuántos: solo que hay. | ∃x M(x) es «hay alguno que es mortal» |
| Conectores | ¬ ∧ ∨ → ↔ | Los mismos de la lógica proposicional: no, y, o, implica, si y solo si. Se usan igual. | H(x) → M(x) es «si x es hombre, es mortal» |
Con esas piezas, el argumento de Sócrates se escribe ∀x (H(x) → M(x)), H(s) ⊢ M(s), y ya sí se puede demostrar: el cuantificador universal te deja bajar la primera premisa al caso de Sócrates, y a partir de ahí es un modus ponens de libro.
Cómo se traduce una frase a fórmula
Esta es la parte donde se pierden más puntos, y no tiene nada que ver con las reglas: es solo elegir bien el conector. «Todos los A son B» lleva implicación y «algún A es B» lleva conjunción. No son intercambiables.
| En español | Fórmula | Por qué ese conector |
|---|---|---|
| Todos los A son B | ∀x (A(x) → B(x)) | Con implicación: «si es A, entonces es B». Los que no son A no te importan. |
| Algún A es B | ∃x (A(x) ∧ B(x)) | Con conjunción: hay uno que es A y además es B. Las dos cosas a la vez. |
| Ningún A es B | ∀x (A(x) → ¬B(x)) | Es un «todos», pero negando el consecuente: todo A deja de ser B. |
| Algún A no es B | ∃x (A(x) ∧ ¬B(x)) | Un «algún» normal con la segunda parte negada. |
| No todos los A son B | ¬∀x (A(x) → B(x)) | Lo mismo que la fila de arriba: negar un «todos» es afirmar que hay una excepción. |
| Solo los A son B | ∀x (B(x) → A(x)) | La implicación al revés: para ser B hay que ser A. |
El truco para no equivocarse: si escribieras «todos los A son B» con conjunción, ∀x (A(x) ∧ B(x)), estarías diciendo que absolutamente todo es A y es B, que es muchísimo más de lo que dice la frase. Y si escribieras «algún A es B» con implicación, ∃x (A(x) → B(x)), te valdría con que existiera algo que no es A, porque una implicación con el antecedente falso es verdadera: no estarías diciendo nada.
Las cuatro reglas de inferencia de predicados
La idea del método es sencilla: los cuantificadores estorban, así que se quitan, se razona con las reglas de la lógica proposicional de toda la vida y al final se vuelven a poner. Esas cuatro operaciones son las reglas propias de la lógica de predicados. En el esquema, arriba de la raya lo que tienes y abajo (tras el ∴, «por tanto») lo que puedes deducir:
| Regla | Esquema | Qué dice |
|---|---|---|
| Especificación universal (EU) también la verás como instanciación, particularización o ejemplificación universal | ∀x P(x)∴ P(a) | Si una propiedad vale para todos, vale para el elemento que te convenga. Es la regla con la que se empieza casi siempre: baja la premisa general al caso concreto que te interesa. |
| Generalización universal (GU) | P(a)∴ ∀x P(x) | Si has demostrado la propiedad para un elemento cualquiera, sin usar nada particular suyo, vale para todos. Es la que cierra los ejercicios cuya conclusión empieza por ∀, y la que más condiciones tiene. |
| Especificación existencial (EE) también la verás como instanciación, particularización o ejemplificación existencial | ∃x P(x)∴ P(c) | Si existe alguno que cumple la propiedad, le pones un nombre y sigues trabajando con él. El nombre tiene que ser nuevo: no sabes quién es, solo que hay uno. |
| Generalización existencial (GE) | P(a)∴ ∃x P(x) | Si la propiedad se cumple para un elemento concreto, entonces existe alguno que la cumple. La que remata los ejercicios cuya conclusión empieza por ∃, y la única de las cuatro que no tiene condiciones. |
Según el libro o los apuntes que uses, estas dos primeras aparecen con otro nombre: especificación, instanciación, particularización o ejemplificación, universal o existencial. Son exactamente la misma regla; aquí usamos «especificación», que es la más habitual en los apuntes en español.
Las dos condiciones que suspenden exámenes
Especificar y generalizar parece inofensivo, pero sin estas dos restricciones se pueden «demostrar» cosas falsas. Son las que hay que tener grabadas:
1 · La constante de un existencial tiene que ser nueva. Al aplicar EE a ∃x P(x), el nombre que le pongas (c) no puede haber aparecido antes. Si reutilizas uno, estás dando por hecho que el elemento que existe es justo ese, y eso no te lo ha dicho nadie.
2 · Solo se generaliza sobre un elemento arbitrario. GU vale si la constante venía de una especificación universal, es decir, si representa a «uno cualquiera». Nunca sobre el testigo de un existencial ni sobre una constante del enunciado. Si no, de ∃x P(x) saldría P(c) y de ahí ∀x P(x): de «hay alguno» pasarías a «todos», que es el error clásico.
De la segunda condición sale una consecuencia práctica: especifica primero los existenciales y después los universales. Si lo haces al revés, el universal te deja una constante y el existencial te obliga a estrenar otra distinta, y luego las reglas no encajan porque hablan de elementos diferentes. La calculadora lo hace en ese orden, y te marca al lado de cada línea qué constante ha usado y si era arbitraria.
Las reglas proposicionales siguen ahí
Una vez quitados los cuantificadores te quedan fórmulas normales, y a partir de ahí se razona exactamente igual que en proposicional: modus ponens, modus tollens, silogismo hipotético, silogismo disyuntivo, simplificación, conjunción, adición y resolución. La calculadora las aplica todas y las nombra igual.
Equivalencias con cuantificadores
Además de las reglas, hay reescrituras que no deducen nada nuevo: dicen lo mismo de otra forma. La calculadora las aplica sola cuando hacen falta y te las señala en la demostración. Estas cuatro son las que valen:
| Equivalencia | Nombre | Leída en voz alta |
|---|---|---|
¬∀x P(x) ≡ ∃x ¬P(x) | Negación de cuantificadores (De Morgan generalizadas) | «No todos aprobaron» es lo mismo que «hay alguno que no aprobó». Negar un ∀ lo convierte en ∃. |
¬∃x P(x) ≡ ∀x ¬P(x) | Negación de cuantificadores | «No hay ninguno que apruebe» es lo mismo que «todos suspenden». Negar un ∃ lo convierte en ∀. |
∀x (P(x) ∧ Q(x)) ≡ ∀x P(x) ∧ ∀x Q(x) | Distributividad del ∀ sobre el «y» | «Todos son altos y rubios» es lo mismo que «todos son altos y, además, todos son rubios». |
∃x (P(x) ∨ Q(x)) ≡ ∃x P(x) ∨ ∃x Q(x) | Distributividad del ∃ sobre el «o» | «Hay alguien alto o rubio» es lo mismo que «hay alguien alto, o bien hay alguien rubio». |
Las dos primeras se encadenan sin problema y son, con diferencia, las más usadas. Por ejemplo, ¬∃x (P(x) ∧ ¬Q(x)) pasa a ∀x ¬(P(x) ∧ ¬Q(x)), de ahí a ∀x (¬P(x) ∨ Q(x)) por De Morgan, y a ∀x (P(x) → Q(x)) por la ley de la implicación.
Y las tres que NO valen
Ojo con estas, porque se parecen mucho a las de arriba y es donde se cuela casi todo el mundo. No son equivalencias: solo se cumplen en un sentido, y en el otro son falsas.
| Lo que NO se puede hacer | Por qué es falso | Lo que sí vale |
|---|---|---|
| ∀x (P(x) ∨ Q(x))no implica∀x P(x) ∨ ∀x Q(x) | Todo número es par o impar, y aun así no es verdad que todos sean pares, ni que todos sean impares. | Al revés sí: de ∀x P(x) ∨ ∀x Q(x) se deduce ∀x (P(x) ∨ Q(x)). |
| ∃x P(x) ∧ ∃x Q(x)no implica∃x (P(x) ∧ Q(x)) | Hay alguien alto y hay alguien rubio, pero puede que nadie sea alto y rubio a la vez. Son dos personas distintas. | Al revés sí: de ∃x (P(x) ∧ Q(x)) se deduce ∃x P(x) ∧ ∃x Q(x). |
| ∀x ∃y R(x,y)no implica∃y ∀x R(x,y) | Todo número tiene otro menor que él, y aun así no existe ningún número que sea menor que todos. El y depende del x. |
Al revés sí: de ∃y ∀x R(x,y) se deduce ∀x ∃y R(x,y). |
Si alguna no te la crees, pégala en la calculadora de arriba: te saca el contraejemplo con un dominio de dos elementos y qué cumple cada predicado, que es la forma más rápida de verlo.
Cómo resolver un ejercicio paso a paso
El orden es casi siempre el mismo, y con él salen la mayoría:
Paso 1 · Traducir y separar
Pasa el enunciado a fórmulas con la tabla de traducción de arriba, y decide qué es premisa y qué es conclusión. Si el enunciado ya viene en fórmulas, solo tienes que identificar la conclusión.
Paso 2 · Quitar las negaciones de delante de los cuantificadores
Si alguna premisa empieza por ¬∀ o ¬∃, aplícale la negación de cuantificadores antes de nada. Una premisa que empieza por una negación no sirve para especificar, y en cuanto la reescribes se convierte en un ∀ o un ∃ normal con el que ya puedes trabajar.
Paso 3 · Especificar: primero los ∃, después los ∀
Aplica EE a cada existencial, poniéndole un nombre nuevo a cada uno. Después aplica EU a los universales usando esas mismas constantes, para que las fórmulas hablen del mismo elemento y las reglas puedan encajar. Si no hay ninguna constante en juego, especifica con un elemento arbitrario (a) y recuerda que es el único sobre el que podrás generalizar luego.
Paso 4 · Razonar como en proposicional
Ya sin cuantificadores, encadena reglas: modus ponens donde tengas el antecedente, modus tollens donde tengas negado el consecuente, silogismos para enlazar implicaciones y disyunciones, simplificación para partir las conjunciones. Esta es la parte larga, y es idéntica a cualquier ejercicio de lógica proposicional.
Paso 5 · Volver a poner el cuantificador
Mira cómo empieza la conclusión. Si es ∃x …, te basta con haber llegado a la fórmula para un elemento concreto y aplicar GE. Si es ∀x …, tienes que haber llegado a ella para un elemento arbitrario y aplicar GU. Y si la conclusión es una conjunción, consigue cada parte por separado y júntalas.
Paso 6 · Si no sale, buscar un contraejemplo
En proposicional bastaba una tabla de verdad. Aquí hay que construir una interpretación: un dominio con unos pocos elementos y decidir para cada uno si cumple o no cada predicado, de forma que todas las premisas salgan verdaderas y la conclusión falsa. Si la encuentras, el argumento no es válido y no hay demostración posible. La calculadora busca una automáticamente en dominios de hasta tres elementos y te la enseña entera.
Ejemplo resuelto paso a paso
Un ejercicio típico de examen, con un universal y un existencial:
«Todos los estudiantes de la clase han leído el libro. Algún estudiante de la clase es becario. Demostrar que algún becario ha leído el libro.»
- Paso 1 — Traducimos.
ConE(x)«x es estudiante de la clase»,L(x)«x ha leído el libro» yC(x)«x es becario». Ojo a los conectores: «todos los E son L» con implicación, «algún E es C» con conjunción.Hay que llegar a(1)∀x (E(x) → L(x))Premisa(2)∃x (E(x) ∧ C(x))Premisa∃x (C(x) ∧ L(x)). - Paso 2 — Especificamos el existencial primero.
(2)dice que hay alguien que es estudiante y becario. No sabemos quién, así que le ponemos un nombre nuevo,a. Y como es una conjunción, la partimos.(3)E(a) ∧ C(a)Especificación existencial de (2) · llamamosaa ese elemento(4)E(a)Simplificación de (3)(5)C(a)Simplificación de (3) - Paso 3 — Especificamos el universal con esa misma constante.
Aquí está la clave:(1)vale para cualquiera, así que la bajamos aa, que es justo el elemento del que sabemos cosas. Si la hubiéramos especificado antes con otra letra, no encajaría con nada.(6)E(a) → L(a)Especificación universal de (1) · cona(7)L(a)Modus ponens de (4) y (6) - Paso 4 — Montamos la conclusión.
TenemosC(a)yL(a): los juntamos y generalizamos. La conclusión empieza por∃, así que vale GE sin más condiciones.Hemos llegado a la conclusión partiendo solo de las premisas, así que el argumento es válido.(8)C(a) ∧ L(a)Conjunción de (5) y (7)
Fíjate en que aquí no podríamos haber terminado con una generalización universal: a es el testigo de un existencial, no un elemento cualquiera. De L(a) no se deduce ∀x L(x), y la calculadora tampoco te lo va a dejar.
¿Y si no sale ni la demostración ni el contraejemplo?
Puede pasar, y conviene saber por qué. En lógica proposicional siempre hay respuesta: con unas cuantas variables se evalúan todos los casos y se acabó. En lógica de predicados no existe ningún método que decida siempre si un argumento es válido: el dominio puede ser infinito y no hay nada que recorrer. Es un resultado clásico (el problema de la decisión, Church y Turing), no una pega de esta calculadora.
Así que aquí hay tres respuestas posibles, y cada una significa algo distinto:
- Válido, con la demostración delante. Es seguro: la propia demostración es la prueba.
- No válido, con el contraejemplo delante. También es seguro: ese modelo concreto hace verdaderas las premisas y falsa la conclusión, y con uno basta.
- No concluyente: no ha encontrado demostración y tampoco contraejemplo en dominios pequeños. Suele significar una de dos cosas: que el argumento necesita razonar por casos o suponer el antecedente (movimientos que no son aplicar una regla de la tabla), o que el contraejemplo necesita un dominio más grande del que se explora.
Calculadoras relacionadas
Todas las calculadoras de lógica (índice)
Página que reúne todas las herramientas de esta temática.
Calculadora de reglas de inferencia
La versión proposicional: modus ponens, tollens y silogismos, sin cuantificadores.
Calculadora del método de refutación de Robinson
Niega la conclusión y busca la contradicción. Método completo.
Calculadora de resolución de cláusulas
El mismo problema pasando a forma clausal y resolviendo.
Preguntas frecuentes
¿Cómo escribo los cuantificadores?
Con los botones ∀ y ∃, y después la variable que use tu ejercicio (x, y, z…). También puedes teclearlos directamente, o escribir forall x y exists x, o las abreviaturas \Ax y \Ex. El punto es opcional: ∀x. P(x) y ∀x P(x) son lo mismo. Y para agrupar valen tanto los paréntesis como los corchetes [ ] o las llaves { }.
¿Hasta dónde llega el alcance de un cuantificador?
Solo hasta la fórmula que va justo detrás. Es decir, ∀x P(x) → Q(x) se lee como (∀x P(x)) → Q(x), no como ∀x (P(x) → Q(x)). Si quieres que abarque toda la fórmula, ponle paréntesis. Cuando detectamos una variable cuantificada que se queda fuera del paréntesis te avisamos, porque casi siempre es una errata.
¿Puedo usar corchetes, como ∃x[A(x) ∧ C(x)]?
Sí. Los corchetes [ ] y las llaves { } funcionan igual que los paréntesis, así que puedes copiar la fórmula del enunciado tal cual. En los apuntes se suelen alternar solo para que se vea mejor qué cierra con qué cuando hay varios niveles anidados, pero lógicamente no significan nada distinto: ∃x[A(x) ∧ C(x)] y ∃x (A(x) ∧ C(x)) son la misma fórmula. La calculadora te la reescribe siempre con paréntesis para que todas las líneas de la demostración se vean igual.
¿Qué diferencia hay entre una variable y una constante?
Lo decide el cuantificador: en ∀x (H(x) → M(x)), la x es una variable porque está cuantificada. Cualquier término que no esté cuantificado se trata como una constante, o sea, como un elemento concreto: en H(s), la s es Sócrates. No hace falta que uses mayúsculas ni minúsculas de ninguna forma concreta, aunque lo habitual es escribir los predicados con mayúscula (P, Mortal) y los términos con minúscula (x, a, socrates).
¿Por qué no puedo generalizar sobre la constante que me ha salido de un existencial?
Porque esa constante no representa a «uno cualquiera», sino a «ese del que sabemos que existe». De ∃x P(x) sale P(c), y si de ahí pudieras pasar a ∀x P(x) estarías demostrando que basta con que algo le pase a uno para que le pase a todos, que es falso. La generalización universal solo vale sobre constantes que vienen de especificar un universal.
¿Admite predicados de varios argumentos y cuantificadores anidados?
Sí. Puedes escribir R(x,y), Mayor(x,y) o Entre(x,y,z), y anidar cuantificadores como en ∀x ∃y R(x,y). No se admiten funciones dentro de los predicados (nada de P(f(x))) ni el símbolo de igualdad.
¿Por qué a veces dice que no es concluyente?
Porque en lógica de predicados no hay ningún método que decida siempre si un argumento es válido: eso es un resultado matemático, no un fallo de la herramienta. Cuando no encuentra ni demostración ni contraejemplo te lo dice tal cual, en vez de arriesgarse a darte una respuesta falsa. Suele ocurrir con argumentos que necesitan razonar por casos.