Logica Matematica
Logica Matematica
Logica Matematica
No está permitida la reproducción total o parcial de esta obra, ni su tratamiento o transmisión por
ningún procedimiento electrónico o mecánico, incluyendo fotocopiado, grabación magnética o cualquier
almacenamiento de información y sistema de recuperación sin autorización de la editorial. Los derechos
son exclusivos de los autores.
ISBN: 978-958-8801-22-3
c Derechos reservados
Existe una importante cantidad de productividad académica relacionada con los temas de lógica
matemática a nivel de pregrado universitario. Como metodologı́a para la enseñanza de la lógica, es
común que se presenten las técnicas básicas de resolución de problemas, acompañadas de una serie de
ejercicios sobre cada una de las temáticas.
Los lineamientos metodológicos y pedagógicos del libro buscan aportar al propósito general de la
formación de los ingenieros de sistemas y de profesiones afines. Ası́ mismo, se pretende que el
libro contribuya al desarrollo de capacidades en los cuales, el estudiante pueda explicar, demostrar,
solucionar problemas y hacer representaciones, haciendo uso de la lógica matemática. El libro presenta
por capı́tulos los elementos conceptuales fundamentales de la lógica. En cada uno de los capı́tulos
se proponen una serie de actividades de aprendizaje, las cuales están orientados al desarrollo de las
competencias definidas al inicio de las unidades temáticas.
La estructura del libro, está orientada a que el estudiante asuma en cada actividad un rol activo en
su proceso de aprendizaje, pues se considera fundamental que ellos identifiquen la importancia de esta
disciplina dentro de su proceso de formación. Ası́ mismo se espera que el profesor cuente con una
guı́a que soporte el aprendizaje en cada uno de los temas. La experiencia en la enseñanza de la lógica
matemática motiva a proponer un texto universitario a partir del cual se resuelvan problemas lógico –
matemáticos de una forma estructurada y formal.
6
Índice general
Prólogo 5
Capı́tulo 1
13 Fundamentos de la lógica matemática
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2. Proposiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3. Evaluación de las proposiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1. Representación de una proposición . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.2. Negación de una proposición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4. Tipos de proposiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.1. Proposición simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.2. Proposición compuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.1. Conjunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.2. Disyunción inclusiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.5.3. Disyunción exclusiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.5.4. Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5.5. Bicondicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6. Precedencia de los conectivos lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.7. Notación prefija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7.1. Expresiones en prefijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7.2. Árbol de formación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.8. Tablas de verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.8.1. Tabla de verdad de la conjunción . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.8.2. Tabla de verdad de la disyunción inclusiva . . . . . . . . . . . . . . . . . . . . . . 38
1.8.3. Tabla de verdad de la disyunción exclusiva . . . . . . . . . . . . . . . . . . . . . 39
1.8.4. Tabla de verdad del condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.8.5. Tabla de verdad del bicondicional . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.9. Otras tablas de verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.9.1. Tabla de verdad barra de Sheffer . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.9.2. Tabla de verdad de la flecha de Peirce . . . . . . . . . . . . . . . . . . . . . . . . 42
1.9.3. Implicación conversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.10. Formalización de proposiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.11. Clasificación de las fórmulas de acuerdo a las tablas de verdad . . . . . . . . . . . . . . 50
8 ÍNDICE GENERAL
1.11.1. Tautologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.11.2. Contradicción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.11.3. Contingencia o indeterminación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.11.4. Clasificación de la tautologı́as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.11.4.1. Tautologı́as tipo implicación . . . . . . . . . . . . . . . . . . . . . . . . 52
1.11.4.2. Tautologı́a tipo equivalencia . . . . . . . . . . . . . . . . . . . . . . . . 52
Capı́tulo 2
55 Cálculo proposicional
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.1.1. Lenguaje de la lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1.2. Alfabeto de la lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1.3. Sintaxis de la lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.3.1. Reglas de Formación en LP . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.2. Descomposición única del conectivo principal . . . . . . . . . . . . . . . . . . . . . . . . 59
2.3. Semántica de la lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.4. Funciones en LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1. Función Valuación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.1. Negación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.2. Conjunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.3. Disyunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.4. Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.5. Bicondicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.2. Propiedades de la valuación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.3. Función grado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.4. Función Subfórmula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.4.1. Ábol subfórmula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.5. Principio de inducción en fómulas proposicionales . . . . . . . . . . . . . . . . . . . . . . 64
2.6. Fórmulas lógicamente equivalentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7. Satisfacibilidad e insatisfacibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.8. Validez y no validez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.9. Tableros semánticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.9.1. Árbol semántico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.9.2. Construcción del tablero semántico . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.10. Resolución proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.10.1. Formas normal conjuntiva y disyuntiva . . . . . . . . . . . . . . . . . . . . . . . 81
2.10.2. Literales, cláusulas y Forma clausal . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.10.3. Método de resolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.11. Pruebas deductivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.11.1. Sistema de Gentzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.11.2. Sistemas de Hilbert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Capı́tulo 3
93 Argumentos, reglas de inferencia y lı́mites de la lógica
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.2. Análisis de razonamientos y silogismos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.3. Reglas de Inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.3.1. Modus Ponens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3.2. Tollendo Tollens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.3.3. Doble negación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.3.4. Regla de adjunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
ÍNDICE GENERAL 9
El libro Lógica Matemática para Informáticos tiene como propósito fundamental, contribuir a la
formación de los futuros profesionales de la Ingenierı́a de Sistemas y afines. El libro presenta los
conceptos fundamentales de la lógica matemática con aplicaciones a las ciencias computacionales.
El lector de este libro identificará los elementos fundamentales de la lógica matemática. Ası́ mismo,
comprenderá los problemas que puede abordar y resolver desde esta área del conocimiento. En cada
uno de los capı́tulos el lector podrá establecer la relación conceptual entre la teorı́a y su aplicación
en el área de la Ingenierı́a de Sistemas. El libro presenta una serie de actividades a resolver por el
estudiante, las cuales se presentan de forma incremental y buscando que se desarrolle un pensamiento
formal para la solución de problemas.
El capı́tulo 3 denominado argumentos, reglas de inferencia y lı́mites de la lógica, presenta los principales
elementos de los métodos de razonamiento, a partir de los cuales se pueden determinar propiedades
de validez y no validez. Se expone las reglas de inferencia más comúnmente aplicadas en el cálculo
proposicional. Se explicarán reglas de inferencia como Modus Ponens, doble negación, Tollendo
Tollens, Tollendo Ponens, De Morgan, Simplificación, Conmutativa, Bicondicional, Contrarrecı́proca,
Disyuntiva, entre otras.
El capı́tulo 5 del libro denominado programación lógica en Prolog, presenta los elementos sintácticos
fundamentales de la programación lógica. Se introduce el concepto de sección, hecho y conjuntos de
reglas aplicables en Prolog. Se muestra el funcionamiento y aplicación de la recursividad en Prolog.
Para el desarrollo del proyecto, se propone la metodologı́a de proyectos formativos; los cuales, son
una metodologı́a para el desarrollo y evaluación de competencias. La metodologı́a está fundamentada
en el método de proyectos, el cual fue conceptualizado por Kilpatrick (Kilpatrick, 1918), como un
proceso dinámico para organizar la enseñanza mediante fases (propuesta, planificación, ejecución y
evaluación) y actividades formativas articuladas, en las cuales se involucra de forma activa a los
estudiantes en contextos de desempeño especı́ficos y en donde se espera, que ellos desplieguen sus
diferentes competencias encaminadas a la solución de un problema. Un proyecto formativo se estructura
por medio de fases en las cuales, participan el profesor y los estudiantes, estas fases son los escenarios
en donde se establecen las actividades de aprendizaje necesarias para que los estudiantes alcancen las
competencias definidas. Las fases de un proyecto formativo son: direccionamiento, planeación, ejecución
y socialización (Tobón, 2013).
La evaluación en los proyectos formativos está basada en evidencias, las cuales, son valoradas mediante
rúbricas con los niveles de dominio. Los niveles de dominio son los grados que describen cómo se forman
y desarrollan las competencias desde lo más sencillo a lo más complejo, y a partir de los cuales se unifican
los criterios que orientan al docente y a los estudiantes en torno a la valoración de las competencias
que se van desarrollando (Tobón, 2013)
CAPÍTULO 1
En cualquier formalización
consistente de las matemáticas
que sea lo bastante fuerte para
definir el concepto de números
naturales, se puede construir una
afirmación que ni se puede
demostrar ni se puede refutar
dentro de ese sistema.
Kurt Gödel.
1906 − 1978
Comprende el valor de una expresión teniendo en cuenta el significado de los operadores lógicos
y los signos de agrupación.
1.1 Introducción
La lógica en el área de las matemáticas, es la ciencia que estudia los métodos de razonamiento, permite
demostrar teoremas, indica reglas y técnicas para determinar la validez o no de un argumento y
proporciona métodos adecuados para obtener conclusiones. La lógica por medio de la formalización del
lenguaje y de sus reglas básicas proporciona las herramientas necesarias para resolver diferentes tipos
de problemas que tienen sus orı́genes y aplicaciones en diferentes áreas de las ciencias. En diversos
trabajos (Zarate, 2003), (Castel de Haro, 2011), (Ostra, 2008), se presentan las concepciones filosóficas
y matemáticas que dieron origen al concepto de lógica.
El ser humano puede comunicarse por medio de diversos sistemas convencionales de sı́mbolos. Una de
estas formas de comunicación es posible mediante el lenguaje natural, a través del cual es posible
estructurar oraciones interrogativas (preguntas), oraciones exclamativas (de sorpresa), oraciones
desiderativas (de deseo), oraciones imperativas (de orden) y oraciones declarativas (afirmativas o
negativas). La lógica provee los elementos para describir y representar el conocimiento a través de
métodos de formalización de las frases declarativas.
En este capı́tulo se expondrán los conceptos básico de la lógica proposicional desde las frases
declarativas simples (enunciados o proposiciones), debido a que estas se constituyen en los elementos
básicos de transmisión del conocimiento humano. Las frases interrogativas, exclamativas, desiderativas
e imperativas, no denotan hechos y por lo tanto no es posible verificar su veracidad.
1.2 Proposiciones
Una proposición matemática es una expresión declarativa expresada en lenguaje natural que posee un
significado de acuerdo un criterio definido y a partir del cual puede ser clasificada inequı́vocamente
como verdadera o falsa, pero no de ambas formas a la vez. En la lógica matemática se consideran las
oraciones declarativas como oraciones a partir de las cuales se pueden constituir proposiciones. Todas
las proposiciones se consideran oraciones, pero no todas las oraciones se consideran proposiciones.
Las proposiciones pueden denotar acciones, establecer relaciones entre objetos y sujetos, y determinar
propiedades a objetos, personas y animales.
Las siguientes oraciones o enunciados son proposiciones, debido a que para cada de ellas es posible
establecer si es verdadera o falsa.
31 no es un número primo.
Las personas utilizan las redes sociales para establecer relaciones de amistad.
En el lenguaje natural existen oración que son comúnmente utilizadas, estos son las oraciones
interrogativas, exclamativas, imperativas. En lenguajes naturales tales como el español, alemán, inglés,
entre otros, las proposiciones no se pueden constituir a partir de oraciones imperativas, exclamativas
o interrogativas. Este tipo de oraciones no especifican hechos y por lo tanto no es posible determinar
en ellas propiedades de verdad o falsedad. Tampoco las oraciones exclamativas o admirativas, las
1.2 Proposiciones 15
dubitativas y los juicios de valor, son consideradas como proposiciones (Zarate, 2003).
Tipo Oración
Interrogativas ¿Quién soy?
¿Qué hora es?
¿Cuál es tu fecha de nacimiento?
Imperativas Debemos alimentarnos sanamente.
Tienes que cuidar a tu hermana.
Exclamativas ¡Hola amigo!
¡Por favor estudia!
¡Por Dios!
Dubitativas Posiblemente es mejor de esa manera.
Quizás no estudió lo suficiente.
Ambas proposiciones desde la interpretación en lenguaje natural son iguales, a pesar de tener una
estructura sintáctica diferente, por lo tanto, la verdad o falsedad de una proposición se determina
desde el punto de vista de su estructura, sin tener en cuenta el significado semántico. Por ejemplo, si
se tiene la expresión:
En esta expresión, no se sabe si Violeta es una persona, una planta, un animal o cualquier otro concepto.
Es posible otorgar el valor de verdad o falsedad a la expresión, pero su semántica resulta compleja
para ubicarla en un determinado contexto.
Oración Si No
Que tengas un feliz dı́a
Los números primos son impares
Alberto es disciplinado
El número 8 es un número perfecto
¿Por qué no participaste en el evento?
X es un numero par
Nunca engañes a las personas
¡No hagas parte de ese juego!
¿Podrı́as asumir esa deuda?
No puedes usar las redes sociales
El Paı́s está en un periodo de cambio
Java no es un lenguaje de programación
No cambies de gasolina a Diésel
2. Dadas las siguientes expresiones, señale a cual tipo pertenece: imperativa, exclamativa o
dubitativa.
Oración Imperativa Exclamativa Dubitativa
Tal vez es posible la
solución al caso
¿Cuántos años tienes?
Por favor entregue las
llaves de la moto
Quizás las cosas mejoren
para ella
Seguramente será elegido
como alcalde
¿Es posible una rebaja de
precio?
¡Me imagino la alegrı́a de
tu papa!
Escuche lo que dice el
Presidente
¡Qué alegrı́a saber que
llegaste bien!
A lo mejor viaje a
Córdoba el próximo mes
¡Felicidades por tu nuevo
tı́tulo!
Sin duda alguna es la
mejor opción
p: proposición 1
q: proposición 2
r: proposición 3
Basados en la estructura definida, las siguientes expresiones denotan una proposición:
p: Bogotá tiene alcaldı́as locales.
q: Valdivia está ubicado geográficamente al sur de Chile.
r: 54 > 38 % 2
t: x + y = y + x
u: los tiquetes a Miami están en promoción.
s: los estudiantes realizan autoevaluación de sus trabajos.
Cuando se clasifica o establece la verdad o falsedad a una proposición, se está asignando una
interpretación. Para representar una interpretación a la proposición, se usará la letra minúscula v,
seguida de un átomo entre paréntesis y finalmente la asignación del valor de verdad o de falsedad.
v(átomo) = V ó v(átomo) = F
Proposición Interpretación
p: Manuel es experto en mercadeo v(p) = F (p se asignó falso)
q: El número 9 es un numero perfecto v(q) = V (q se asignó verdadero)
r: 2 + 8 6= 10 v(r) = V (r se asignó verdadero)
t: 10 no es divisible por 4 v(t) = F (p se asignó falso)
Es falso p
No es cierto p
No es el caso p
No se da el caso que p
p ¬p
V F
F V
Para mostrar la aplicación de la negación en lenguaje natural, a partir de la oración: “Todas redes
sociales fomentan la difusión de información”, se presentan las diversas formas en que ésta puede ser
negada:
Por ejemplo si se tiene la proposición: “La variable se encuentra inicializada”, una negación directa
serı́a: “No la variable se encuentra inicializada”. La forma en la cual está expresada la negación de la
proposición no es común y su expresión semántica no es la más adecuada. Para este caso es adecuado
utilizar otras formas para la lectura de la negación de la oración. Por ejemplo, una mejor forma de
expresar la negación de la proposición negación serı́a: “La variable no se encuentra inicializada”.
El sı́mbolo de la negación (¬) es un operador unario que se puede aplicar a los átomos y a expresiones
más complejas. A continuación se presenta una proposición y al frente su correspondiente en negación.
Proposición Negación
37 es un número primo 37 no es número primo
5 es mayor que 7 5 no es mayor que 7
Las redes sociales existen Es falso que las redes sociales existen
x es mayor que z x no es mayor que z
El empleado gana bonificación El empleado no gana bonificación
x>y x≤y
Los siguientes son ejemplos en lenguaje natural donde se usa la doble negación:
En la actividad 1.2 se proponen ejercicios para trabajar con negación de las proposiciones.
3. Dadas las siguientes expresiones, niéguelas usando mı́nimo las frases más utilizadas en lenguaje
natural:
El plan de estudios de Ingenierı́a de Sistemas y Computación tiene 178 créditos y tiene
registro calificado.
El presidente de la república está buscando la paz con los actores de la violencia.
Colombia tiene representación en la ONU.
Las proposiciones simples de acuerdo a su estructura pueden ser de carácter relacional o basadas en
predicados. Las de carácter relacional se constituyen de dos o más objetos o sujetos vinculados entre
sı́, por ejemplo:
Las proposiciones simples basadas en predicados, son las que constan de un objeto o sujeto del cual se
afirma algo, por ejemplo:
Juan es investigador.
11 no es un número perfecto.
La mascota está enferma.
La caracterı́stica principal de las proposiciones simples, es que estas no se pueden dividir y por esta
razón, es posible identificar el valor de la formula atómica, bien sea verdadero o falso, lo que implica
que el número posible de interpretaciones de una fórmula simple es 2.
1.5 Operadores lógicos 21
o: x2 − 16 = 0 si y sólo si x = 4 o x = −4
Los conectivos lógicos permiten la relación de proposiciones simples. Por ejemplo, si se tienen las
proposiciones simples:
Es posible construir enunciados compuestos que denotan proposiciones más complejas para su análisis.
En este caso se utilizarán los conectores lógicos: y, o, si... entonces..., si y sólo si...
1. Dadas las siguientes proposiciones, construya enunciados utilizando los conectores lógicos: y, o,
si. . . entonces. . . , si y sólo si. . .
1.5.1 Conjunción
El conectivo lógico para la conjunción se representa mediante el sı́mbolo ∧. Sean p y q dos proposiciones,
entonces p∧q es llamada la conjunción entre las proposiciones p y q. Algunas frases en lenguaje natural
en las que aparece la conjunción pueden ser:
pyq
p pero q
p aunque q
p sin embargo q
p no obstante q
p a pesar de q
p a menos q
p igualmente q
La proposición p ∧ q se considera verdadera cuando p es verdadera y q es verdadera, es decir, cuando
ambas proposiciones son verdaderas a la vez. Algunos ejemplos de representación en lenguaje natural
en los cuales se utiliza la conjunción son los siguientes:
La cobertura en educación y la calidad de los profesores es inadecuada.
El rendimiento académico del estudiante es bueno, sin embargo, su actitud no es la adecuada.
El producto es bueno, no obstante, su precio lo hace inalcanzable.
El rector tiene un plan de gobierno, no obstante, tiene un equipo de trabajo desintegrado.
Aunque esté lloviendo es posible realizar el vuelo.
Está nevando pero es posible navegar.
En el lenguaje natural es frecuente usar formas abreviadas para expresar proposiciones, por ejemplo:
Jorge y Mauricio van a estudiar un Doctorado en Ingenierı́a.
1.5 Operadores lógicos 23
Las siguientes proposiciones tienen asignadas interpretaciones arbitrarias a los átomos, los cuales
determinan la evaluación de la proposición.
Tabla 1.3
Para el caso de la expresión: ¬(p ∧ ¬q ∧ r), de acuerdo con los valores asignados a cada uno de los
átomos, se tiene que (p ∧ ¬q ∧ r) evalúa como falsa la expresión, pero teniendo en cuenta que a la
misma le antepone el operador ¬, la expresión queda evaluada como verdadera.
poq
p o q o ambos
al menos p o q
mı́nimo p o q
Algunas frases de representación en lenguaje natural en los cuales se utiliza la disyunción son las
siguientes:
Para cobrar el subsidio al menos debe ser menor de edad o estar estudiando.
Las siguientes proposiciones tienen asignadas interpretaciones arbitrarias a los átomos, los cuales
determinan la evaluación de la proposición.
Tabla 1.4
1. Dadas las siguientes proposiciones, defina una interpretación para cada uno de los átomos y
evalúe.
Proposición Interpretación Evaluación Proposición
¬(¬p ∨ ¬q)
¬(p ∨ q ∨ ¬r)
(p ∨ q ∨ r)
¬¬(¬p ∨ ¬r)
¬¬¬(¬p ∨ ¬¬q)
1.5 Operadores lógicos 25
Algunos ejemplos de representación en lenguaje natural en los cuales se utiliza la disyunción exclusiva
son los siguientes:
Se puede interpretar que Mario compra el tiquete para viajar a Aruba o para viajar a Lima, pero no
en ambas situaciones. Ası́ mismo que la pasantı́a estudiantil dará inicio para un mes en especial y no
para ambos.
Las siguientes proposiciones tienen asignadas interpretaciones arbitrarias a los átomos, los cuales
determinan la evaluación de la proposición.
Tabla 1.5
26 Fundamentos de la lógica matemática
No es sencillo definir si una oración es inclusiva o exclusiva. Existen casos en los cuales es sencillo
identificar cuando una oración se interpreta de forma exclusiva, como por ejemplo en “el niño
está despierto o está dormido”. Existen casos en los cuales una oración se interpreta de forma inclusiva,
por ejemplo “Quindı́o es más pequeño en extensión que Amazonas o Guaviare”.
1. Dadas las siguientes proposiciones, defina una interpretación para cada uno de los átomos y
evalúe las expresiones.
Proposición Interpretación Evaluación Proposición
(¬p ⊻ q ⊻ s)
(¬p ⊻ q)
¬(p ⊻ q ⊻ r)
¬(¬p ⊻ ¬q ⊻ r)
2. A continuación se muestran pares de proposiciones, a los cuales es necesario determinar su valor
de verdad.
Proposición Proposición Expresión Evaluación
p: 2 es un número q: 2 es un número p ⊻ q
par (V) impar(F)
t: 15 es un número w: 15 es un número t ⊻ w
primo (F) compuesto (V)
1.5.4 Condicional
El conectivo lógico que representa el condicional es el sı́mbolo →. Sean p y q dos proposiciones:
entonces si p entonces q, se representa mediante p → q. La proposición p → q es falsa si la primera
proposición (antecedente) es verdadera y la segunda proposición (consecuente) es falsa. Algunos casos
de representación en lenguaje natural en los cuales se utiliza el condicional son:
Si p entonces q
p implica q
p sólo si q
q si p
p es suficiente para q
Para q es suficiente p
No p a menos que q
q cuando p
q es necesario para p
Para p es necesario q
p en consecuencia q
p se deduce q
p por ende q
Algunos ejemplos en lenguaje natural son los siguientes:
1.5 Operadores lógicos 27
Tabla 1.6
1.5.5 Bicondicional
El conectivo lógico que representa la disyunción inclusiva es el sı́mbolo ↔. Sean p y q dos proposiciones,
la proposición p si y sólo si q, se representa p ↔ q. El bicondicional es verdadero únicamente cuando
tanto p como q tienen los mismos valores de verdad.
Algunos ejemplos de representación en lenguaje natural en los cuales se utiliza el bicondicional son los
siguientes:
p si y sólo si q
p es equivalente a q
La proposición p ↔ q es verdadera sólo cuando las dos proposiciones son ambas verdaderas o falsas.
5 + 5 = 10 si y sólo si 5 × 2 = 10
Tabla 1.7
1. Dadas las siguientes proposiciones, defina una interpretación para cada uno de los átomos y
evalúe mediante su valor cada proposición.
Proposición Interpretación Evaluación Proposición
¬ (¬ q ↔ s)
¬ (p ↔ ¬ s)
(¬ p ↔ ¬ ¬ s)
¬ ¬ (¬ p ↔ ¬ q)
(¬ q ↔ s) ↔ p
1.6 Precedencia de los conectivos lógicos 29
p: Aprobó la asignatura
q: Le gusta la matemática
s: Ganó la beca
Proposición Expresión
¬p
¬q
¬(p ∧ q)
¬(p ∨ q)
(¬p ∨ ¬q)
(¬q → p)
(¬q ↔ p)
¬(q → p)
¬¬p
¬¬q
¬(¬q ↔ ¬p)
(p ∧ q ∧ s)
s ∨ (p ∧ q)
1. Operador de negación ¬
2. Operador de conjunción ∧
3. Operador de disyunción ∨
4. Operador condicional →
5. Operador bicondicional ↔
El operador unario ¬ tiene la prioridad más alta. Para el caso de los operadores binarios ∧ tiene mayor
prioridad seguido de ∨, → y posteriormente ↔. Cuando se tengan expresiones con operadores que
tengan el mismo orden de precedencia, se analizará la expresión de izquierda a derecha. Por ejemplo
30 Fundamentos de la lógica matemática
Las fórmulas pueden ser escritas con paréntesis que contribuyen a eliminar la ambigüedad en la
interpretación de la fórmula proposicional, sin embargo, en ocasiones las fórmulas pueden ser escritas
con paréntesis innecesarios. Por ejemplo la expresión (¬p ∨ ¬q) contiene paréntesis y podrı́a ser escrita
¬p ∨ ¬q.
p ∧
q s
Por ejemplo, si se tiene la expresión: (p ∨ ¬q) → (¬q ∧ r), el árbol de representación será el que se
muestra en la figura 1.2:
∨ ∧
p ¬ ¬ r
q q
En este caso, el operador principal de la expresión es la implicación y por ello se ubica como el nodo
principal del árbol de formación, el cual a su vez tiene dos subexpresiones, denominadas subárbol
izquierdo y subárbol derecho, cada uno de los cuales a su vez se compone de una expresión.
∧
∨
∨ →
s ¬
p q s t
t
En este caso, el operador principal de la expresión es el bicondicional y por ello se ubica como el padre
del árbol, este árbol tiene dos subárboles (derecho e izquierdo), cada uno de los cuales se compone de
una expresión. El izquierdo tiene a su vez una expresión compuesta de subárbol izquierdo y subárbol
derecho.
.:Actividad 1.9.
∧ s
p q
Figura 1.4
p → q → r ∧ q ↔ ¬q → ¬p
q → ¬(p ∧ ¬p) → r ∨ s → p
(p ↔ q) ∧ (p → ¬q) ∧ p ∧ s ↔ ¬q
(p ∧ r) ∨ (¬p ∧ q) → ¬q
3. Dados los siguientes árboles de formación, escriba sus correspondientes fórmulas proposicionales.
(figuras 1.5 y 1.6)
32 Fundamentos de la lógica matemática
∧ ∧
↔ → ¬ ¬
p q s t s ∧
p q
Figura 1.5
∨ ∧
∧ ¬ ¬ ∨
q s q q ¬ ∧
q q s
Figura 1.6
Esta forma de escribir fórmulas es útil cuando se quiere programar pilas de instrucciones, además,
permiten eliminar los paréntesis, es decir, la nueva fórmula sólo contiene operadores lógicos y
letras proposicionales. La notación prefija fue desarrollada por el lógico polaco Jan Lukasiewicz
([Korfhage, 1970] y [Caicedo, 1990]) en los años 50, razón por la cual se le conoce como notación
polaca.
Inicialmente, la notación polaca no usaba los mismos sı́mbolos para expresar las fórmulas. Lukasiewicz
utilizó otras letras para representar los operadores lógicos: (tabla 1.8)
siguientes pasos:
1. Se debe agrupar los elementos de la fórmula, teniendo en cuenta la prioridad de los operadores
(a ∧ b)
a ∨ (∧bc)
Considerando la expresión (∧bc) como un operando, la expresión en prefijo queda
∨a ∧ bc (Fórmula en prefijo)
Dada la siguiente fórmula: (p → q ∨ s) → (q ↔ r ∧ t), se debe transformar a su equivalente en prefijo.
En este caso es necesario agrupar los átomos de la fórmula teniendo en cuenta la precedencia de los
operadores. La fórmula queda expresada de la siguiente manera:
(p → (q ∨ s)) → (q ↔ (r ∧ t))
Primero se aplica el procedimiento de transformar a prefijo las expresiones que están con paréntesis
más internos:
(p → (∨qs)) → (q ↔ (∧rt))
Posteriormente es posible eliminar de la fórmula los paréntesis más internos:
(p → ∨qs) → (q ↔ ∧rt)
Luego se trasforma a prefijo tanto la fórmula (p → ∨qs) como (q ↔ ∧rt), quedando de la siguiente
manera:
(→ p ∨ qs) → (↔ q ∧ rt)
Finalmente se transforma la fórmula en prefijo y la misma queda expresada de la siguiente manera:
→→ p ∨ qs ↔ q ∧ rt (Fórmula en prefijo)
Dada la siguiente fórmula:
(a ∨ b) ∧ (b → a)
La prioridad está establecida mediante la agrupación de los operandos por paréntesis:
34 Fundamentos de la lógica matemática
(∨ab) ∧ (→ ba)
Las expresiones (∨ab) y (→ ba) son consideradas operandos, entonces se procede a transformar la
fórmula a prefijo. Se eliminan los paréntesis existentes en la fórmula.
∧ → ab → ba ( Fórmula en prefijo)
(p ↔ q) ∨ ((q → r) ∧ (r → p))
(↔ pq) ∨ (∧ → qr → rp)
Ahora bien, dada la nueva fórmula: (p ∨ q) ∧ r ∧ s. Se inicia agrupando por paréntesis teniendo en
cuenta la prioridad de operadores y posteriormente se resuelve la fórmula a prefijo.
(((p ∨ q) ∧ r) ∧ s)
(((∨pq) ∧ r) ∧ s)
((∧ ∨ pqr) ∧ s)
(∧ ∧ p ∨ qst) ∧ (↔ pq)
p ∧
q s
p q
((p ∧ q) ∨ r)
((∧pq) ∨ r)
∧ r
p q
(r ∧ p) → ((s ↔ r) ∧ p)
(∧rp) → ((↔ sr) ∧ p)
(∧rp) → (∧ ↔ srp)
→ ∧rp∧ ↔ srp
El árbol de formación de la fórmula es: (figura 1.10)
∧ ∧
r p ↔ p
s r
.:Actividad 1.10.
(((p → q) ∨ r) → (p ∧ ¬p))
(¬(p ∧ q) → (q ∧ r))
1.8 Tablas de verdad 37
p→q ↔r∨s
q → ¬p ∨ r ∨ s
p ∨ q ↔ ¬r ∨ s
q ∧ ¬q ∨ p → r
(¬(¬p ∨ ¬q ∨ q)) → q
(p ∨ q ∧ r) → q
(p → p → q) ↔ (p ∨ q ∧ r)
(((p ∨ q) ∨ (r ∨ s)) → ¬p)
¬(p → ((q ↔ s) → ¬p))
Para construir una tabla de verdad, se debe establecer las posibles combinaciones de la fórmula
proposicional, es decir, en cuántas formas diferentes pueden combinarse los valores de verdad asignados
a las fórmulas atómicas que las componen. Si p es una fórmula atómica, p sólo tiene dos posibles
combinaciones (V ) o (F ). Si p tiene dos fórmulas atómicas, existen cuatro combinaciones posibles. Si
p tiene tres fórmulas atómicas, sus valores de verdad se pueden combinar de ocho formas diferentes, y
ası́ sucesivamente. Ası́, si p tiene n fórmulas atómicas, habrá 2n combinaciones posibles.
Las tablas de verdad se construyen a partir de la interpretación que se realiza a los operadores lógicos y,
o, si. . . entonces. . . , si y sólo si. . . A continuación se presentan las tablas de verdad para los conectores
lógicos presentados en la sección anterior.
A continuación se muestra un ejemplo del uso de la tablas de verdad, extraı́do de (Cardona, Hernández
& Jaramillo, 2010), en este caso la tabla de verdad de la conjunción, el cual parte de una expresión
compuesta:
38 Fundamentos de la lógica matemática
p q p∧q
V V V
V F F
F V F
F F F
.:Actividad 1.11.
A continuación se muestra el uso de la tabla de verdad de la disyunción inclusiva, que parte de una
expresión compuesta:
En una empresa de software requiere un ingeniero de desarrollo que tenga certificación en Cubic
o en experiencia en Flic.
Pueden darse cuatro posibilidades:
1.8 Tablas de verdad 39
p q p∨q
V V V
V F V
F V V
F F F
El ingeniero es aceptado en el primer caso porque tiene certificación y posee experiencia. En los casos
2 y 3 también es aceptado porque el ingeniero cumple con al menos una de las dos. Sólo en el caso 4
el ingeniero no es aceptado porque no dispone de ninguno de los dos requerimientos solicitados por la
empresa de software.
.:Actividad 1.12.
p q p⊻q
V V F
V F V
F V V
F F F
Un cliente solicita una tarjeta de ahorros, el banco le asignará un número de tarjeta que termine
en número par o número impar.
El primer caso no es posible porque no pueden ocurrir a la vez ambas situaciones. Los casos 2 y 3
pueden ocurrir, ya que sólo se puede asignar al final un número par o impar. En el caso 4 no es posible
que ocurran ambas situaciones a la vez.
.:Actividad 1.13.
p q r ¬q ¬r ¬(¬p ⊻ q) ¬(¬p ⊻ q) ∨ ¬r
V V V
V V F
V F V
V F F
F V V
F V F
F F V
F F F
p q p→q
V V V
V F F
F V V
F F V
Existen diferentes formas de representar la conectiva condicional: forma directa y la forma recı́proca.
La forma directa tiene la estructura p → q, en este caso se tiene primero el antecedente y luego el
consecuente. Por ejemplo las expresiones tienen la forma directa:
.:Actividad 1.14.
p q r ¬p ¬q ¬r (¬p → r) (¬p → r) ⊻ ¬q
V V V
V V F
V F V
V F F
F V V
F V F
F F V
F F F
42 Fundamentos de la lógica matemática
p q p↔q
V V V
V F F
F V F
F F V
Por ejemplo:
p q p|q
V V F
V F V
F V V
F F V
p q p↓q
V V F
V F F
F V F
F F V
p q p←q
V V V
V F V
F V F
F F V
.:Actividad 1.15.
p q r ¬p ¬q ¬r (¬p ↔ r) (¬p ↔ r) → ¬q
V V V
V V F
V F V
V F F
F V V
F V F
F F V
F F F
Construya la tabla de verdad de los siguientes enunciados:
• (p|¬q) ↓ (q ↓ ¬r)
• (p ← q) → (q|¬(p ← q))
• (q ← ¬r) ← (p ∧ (¬r|p))
• p ↓ ((r ← ¬r) ↓ (¬p ↓ q))
• (p ∧ q) ↓ ((q ∨ r)|((p ∧ r) ← (p ↔ r)))
• (p ← (q|s)) ↓ r
Construya la tabla de verdad de los siguientes enunciados y trate de deducir una conclusión:
• p ← ¬p
• p|¬p
• p ↓ ¬p
lógicos. La formalización permite aplicar reglas de deducción que permiten determinar la validez de
una o varias proposiciones.
Es posible a partir de una expresión, determinar el valor de verdad o falsedad de una fórmula
proposicional, por ejemplo si se tiene:
Si Andrea no realiza la ponencia, entonces no obtiene la bonificación.
Deseamos saber cuándo esta expresión es verdadera y cuando es falsa. Para ello definimos:
p: Andrea realiza la ponencia.
q: Andrea obtiene la bonificación
La expresión entonces se puede expresar en lenguaje proposicional mediante la fórmula: ¬p → ¬q.
La tabla de verdad asociada a la anterior expresión, contiene dos variables proposicionales y teniendo
en cuenta que una tabla de verdad con n variables proposicionales tiene 2n proposiciones, para este
caso 22 = 4 asignaciones. Estas combinaciones se pueden representar mediante la tabla de verdad:
(tabla 1.18)
p q ¬p ¬q ¬p → ¬q
V V F F V
V F F V V
F V V F F
F V V V V
La tabla de verdad de esta expresión contiene tres variables p,q,r, tenemos que 23 = 8 asignaciones.
Representemos las anteriores combinaciones mediante una tabla de verdad: (tabla 1.19)
Las posibilidades en las cuales la expresión “El departamento de planeación progresa si y sólo si
se tiene crecimiento económico y no existe la corrupción”, se hace verdadera son las siguientes:
46 Fundamentos de la lógica matemática
p q r ¬r (q ∧ ¬r) p ↔ (q ∧ ¬r)
V V V F F F
V V F V V V
V F V F F F
V F F V F F
F V V F F V
F V F V V F
F F V F F V
F F F V F V
p∧q
Las personas sólo están desesperadas si no actúan normalmente o se dejan llevar por las
preocupaciones.
Para traducir esta afirmación en lógica de proposiciones es necesario identificar las proposiciones
atómicas, p: “Las personas solo están desesperadas”, q: “las personas actúan normalmente”, r
“las personas se dejan llevar por las preocupaciones”. Finalmente se tiene la representación lógica:
p → (¬q ∨ r)
En este caso la expresión también puede representarse: p → ¬q ∨ r, por la prioridad definida para
los operadores.
Andrea cancela análisis de algoritmos o estructura de datos, pero no ambas; no obstante si Andrea
cancela análisis de algoritmos, tampoco cancela estructuras de datos.
q : estar
p : ser
Los profesores están conformes cuando el estudiante gana el parcial a pesar de que no enseñan
lo adecuado.
Para ganar análisis de algoritmos es necesario que los estudiantes ganen los parciales, además
deben asistir a asesorı́a con los profesores, sin embargo, los alumnos no ganan la asignatura.
En Zambia hay inflación y no hay crecimiento económico, por tanto, Zambia no va bien.
(p ∧ ¬q) → ¬r
Para ganar el concurso Master Chef es suficiente cocinar bien si se cuenta con los ingredientes
adecuados.
r → (q → p)
1.10 Formalización de proposiciones 49
Para que Julián esté alegre es necesario que tenga salud, a no ser que a Mario le dé un infarto o
se enferme.
¬(p → ¬q) → (r ∨ s)
.:Actividad 1.16.
2. Sean las proposiciones p: Es tenista profesional, q: Vive en Armenia, formalizar los siguientes
enunciados:
Expresiones Formalización
Es tenista profesional y vive en
Armenia
Es tenista profesional pero no
vive en Armenia
Es
falso que sea tenista profesional
o viva en Armenia
No es tenista profesional ni vive
en Armenia
No cierto que no sea tenista
profesional
No cierto que no sea tenista
profesional o no sea tenista
profesional y no viva en Armenia
Es tenista profesional si y solo
si vive en Armenia o no vive en
Armenia.
q a pesar de p
4. Dada la expresión: Para que hoy gane el Barcelona basta que sea domingo, a no ser que haya
mal clima y hoy hay mal clima. Y las siguientes son las proposiciones:
p: hoy es domingo
q: hoy gane el Barcelona
r: hay mal clima
(((p ∧ r) → ¬q) ∧ r
(((p ∧ ¬r) → q) ∧ r
(¬(p → q) → r) ∧ r
(p → (r → q)) ∧ r
6. Dada la expresión: No es cierto que me enfermo siempre que trasnocho; solo me enfermo si tengo
muchas preocupaciones. Seleccione su formalización.
¬(q → p) ∧ (p → q)
(¬q → p) ∧ (p → r)
(¬q → p) ∧ (r → p)
¬(q → p) ∧ (r → p)
Es esta sección, se hará una forma alternativa de crear las tablas de verdad, la cual consiste en escribir
la fórmula y bajo cada letra proposicional y cada conectivo lógico se ubican sus correspondientes
valuaciones. De esta forma, el resultado final de la tabla de verdad no está en la última columna, sino
en la columna que está bajo el operador principal.
1.11.1 Tautologı́a
Es una proposición compuesta, cuya tabla de verdad siempre es verdadera V , independientemente
de los valores de verdad de las proposiciones simples que la componen. Por ejemplo la fórmula
¬(p ∧ q) ↔ (¬p ∨ ¬q) (tabla 1.20)
¬ (p ∧ q) ↔ (¬p ∨ ¬q)
F V V V V F F F
V V F F V F V V
V F F V V V V F
V F F F V V V V
(p ∧ q) → p
V V V V V
V F F V V
F F V V F
F F F V F
1.11.2 Contradicción
Es una proposición compuesta cuya tabla de verdad tiene todas las posibles valuaciones falsas,
independientemente de los valores de verdad de las proposiciones que la componen. Por ejemplo,
la tabla de verdad de la fórmula ¬(p ∨ q) ↔ (p ∨ q): (tabla 1.22)
¬ (p ∨ q) ↔ (p ∨ q)
F V V V F V V V
F V V F F V V F
F F V V F F V V
V F F F F F F F
p ∧ ¬ p
V F F V
F F V F
(p ∨ q) → p
V V V V V
V V F V V
F V V F F
F F F V F
(p ∧ q) → ¬ (¬p ∨ ¬q)
V V V V V F F F
V F F V F F V V
F F V V F V V F
F F F V V V F V
¬ (p ∧ q) ↔ (¬p ∨ ¬q)
F V V V V F F F
V V F F V F V V
V F F V V V V F
V F F F V V V V
Por ejemplo, en la tabla 1.26, la tabla de verdad de la fórmula ¬(p∧q) ↔ (¬p∨¬q), pero en realidad, esta
expresión dice que las sub fórmulas ¬(p ∧ q) y (¬p ∨ ¬q) son equivalentes. El tema de las equivalencia
| {z } | {z }
α β
será abordado en la sección 2.6.
.:Proposición 1.2. Si las fórmulas α y α → β son tautologı́as, entonces β es una tautologı́a.
La proposición 1.2, dice que si una fórmula que es una tautologı́a y además, otra fórmula que es una
tautologı́a tipo implicación, donde la sub fórmula que hace las veces de antecedente es la primera
implicación, entonces la fórmula que hace las veces de consecuente debe ser otra tautologı́a. Esto se
debe a la naturaleza del condicional, que en la tabla de verdad de este operador lógico (ver sección
1.8.4), cuando el antecedente es una verdad, la única forma de obtener otra verdad es que el consecuente
también sea una verdad.
.:Actividad 1.17.
Encuentre dos ejemplos para cada una de las proposiciones 1.1 y 1.2.
54 Fundamentos de la lógica matemática
CAPÍTULO 2
Cálculo proposicional
2.1 Introducción
En el capı́tulo anterior se presentaron los elementos fundamentales de la lógica matemática, las formas
de representación de las expresiones y las propiedades de los operadores lógicos. Ası́ mismo, se explicó el
valor de una proposición teniendo en cuenta el significado de los operadores lógicos y los signos de
56 Cálculo proposicional
agrupación. La interpretación del valor de una fórmula proposicional se trabajó por medio del método
de las tablas de verdad, el cual es un método mecánico que no implica complejidad en cuando al análisis
y manipulación de las fórmulas proposicionales.
{a, b, c, d, . . . , z, A, B, C, D, . . . , Z}
Si usamos sólo este alfabeto, tendrı́amos problemas para entender algunas partes de nuestra carta,
debemos agregar los signos de puntuación:
{a, b, c, d, . . . , z, A, B, C, D, . . . , Z, {, } , {.} , {; }}
También otros signos como los de interrogación y admiración:
{a, b, c, d, . . . , z, A, B, C, D, . . . , Z, {, } , {.} , {; } , ?, ¿, !}
Si lo que deseamos es escribir un artı́culo en matemáticas, entonces el alfabeto debe ser más amplio,
pues además de los números, debe contener otros sı́mbolos:
{a, b, c, d, . . . , z, A, B, C, D, . . . , Z, {, } , {.} , {; } , ?, ¿, !, . . .}
Junto con:
Z X
1, 2, 3, . . . , 9, α, β, γ, . . . , , , ∂, . . .
Retomando el ejemplo de la cata, podemos pensar en ¿qué lenguaje vamos a usar?, en nuestro caso
es el castellano, pero puede ser otro idioma como el ingles o el italiano. Ası́ que es importante definir
el lenguaje, en LP un lenguaje se puede definir como la unión entre el alfabeto y el conjunto de
palabras correctamente construidas. Si escribimos nuestra carta con mala ortografı́a o sin usar signos
de puntuación, pues es muy probable que no se entienda el mensaje que se desea transmitir.
2.1 Introducción 57
.:Definición 2.2. Un lenguaje formal ℑ es una pareja ordenada (A, ξ), donde A es el alfabeto y ξ ∈ A∗
es el conjunto de todas las expresiones bien formadas.
En LP, el alfabeto para dar soporte a la lógica proposicional se estructura a partir de los siguientes
elementos:
Unarios: ¬
Binarios: ∨ , ∧, →, ↔
donde
⋆ = {∧, ∨, →, ↔}
A = {p, q, . . . , z, ¬, ∧, ∨, →, ↔, (, ), V, F }
.:Nota 2.1. Se utilizan letras griegas α, β, γ, . . ., para denotar cadenas arbitrarias de simbolos en LP.
Una vez definido el alfabeto, es necesario definir una estructura formal para la representación de
fórmulas proposicionales. Esta estructura se realiza a partir de una especificación sintáctica.
La siguiente regla, tiene implı́cita las tres reglas anteriores y dice que toda f bf se puede analizar
por medio de f bfs más simples.
58 Cálculo proposicional
F4 Toda f bf de LP o es una letra proposicional o tiene una de las formas ¬(α), (α)⋆(β), donde α
y β son f bfs .
La primera regla nos dice que las letras proposicionales son f bf , es decir que p o q ya es una f bf .
Ahora bien, autores como [Caicedo, 1990] nos dice que la forma correcta es ponerla entre paréntesis,
es decir (p), sin embargo, es poco usual representar las letras proposiciones de esta forma.
De igual manera, la segunda regla nos dice que: ¬(α) es f bf , pero se puede simplificar como: ¬α si
α es una letra proposicional, pues ¬(p) se puede escribir sin problema como ¬p, pero cuando α es
una fórmula compuesta si debemos conservar los paréntesis, para delimitar el alcance de la negación,
recordemos que:
¬(p ∧ q) 6= ¬p ∧ q
En la primera fórmula, el alcance de la negación es para toda la fórmula, mientras que en la segunda,
sólo abarca la primera letra proposicional.
La tercera regla nos dice que: si α y β son f bfs , entonces (α)⋆(β) es f bf.. Aquı́ las dos letras
proposicionales están entre paréntesis, si α y β son letras proposiciones no hay problema, se pueden
suprimir los paréntesis, por ejemplo p ∧ q, pero si α y β son compuestas, entonces debemos tener
cuidado con el alcance de los operadores binarios. Por ejemplo: p ∧ q → r es diferente de p ∧ (q → r) y
de (p ∧ q) → r.
¬¬(¬¬p)
((¬p ∨ ¬p) ∨ ¬(¬p))
(¬p ∧ ¬q)
¬(¬p ∨ ¬q) → ¬(¬r ↔ ¬s)
A : ¬(p → q ↔ r)
B : (p ∨ q) ∧ ¬(q ∨ q)
¬B : ¬p ∧ q
¬A : ¬¬p
2.2 Descomposición única del conectivo principal 59
B : ¬q
A:p
Una fórmula completa también puede representar una combinación de fórmulas, por ejemplo:
(B ∧ A)
(A → ¬C) ∧ B
(A → B) → (C)
Este teorema nos muestra las tres formas básicas de una f bf , donde la fórmula puesde ser una letra
proposicional, una fórmula negada o la unión de dos f bfs unidas por un conectivo lógico.
Para el tratamiento posterior de este tema, usaremos la forma estricta de los paréntesis, Ası́ por
ejemplo, si α es una f bf su negación se escribe ¬(α); si α y β son f bfs y ⋆ es un operador binario,
entonces lo escribiremos como (α)⋆(β). Todo esto con el fin de encontrar operador lógico principal.
El teorema 2.1 nos dice que podemos descomponer una f bf hasta su conectivo principal. Esto hecho
se puede reducir en el siguiente algoritmo ([Caicedo, 1990]):
Algoritmo de descomposición:
Luego, el conectivo principal es ∨. Esto nos permite encontrar el árbol sintáctico de la fórmula: (figura
2.1)
¬
→
→ ¬
p ∧
q ∧
p
r q
r q
Figura 2.1: Árbol sintáctico de la fórmula (((p) → (q)) → ¬((r) ∧ (q))) ∨ ¬((p) ↔ ((r) ∧ (q)))
v : {p, q, . . . } ↔ {V, F }
La semántica asigna valores de verdad a las fórmulas proposicionales, dando una interpretación a estas.
Los siguientes son algunos ejemplos de interpretación:
v(¬A) = F
v(¬B) = V
v(A ∨ B) = F
v(¬C ∧ B) = V
v(A ∨ ¬B) ∨ (C ∨ C) = V
Por ejemplo si se tiene la fórmula A : (¬p ∨ ¬q), la interpretación v(¬p) = F y v(¬q) = F , asigna
valores para cada uno de los átomos. La evaluación de v(A) = F .
Cuando a la fórmula se le asigna verdadero o falso, se afirma que se realiza una interpretación de la
fórmula. Si una fórmula lógica se interpreta para todas las posibles combinaciones de sus componentes,
se dice que se realiza la evaluación semántica de dicha fórmula (Castel de Haro, 2011). El número de
interpretaciones para un número n de átomos que constituyen una fórmula es 2n . En el caso de las
tablas de verdad, cuando se tienen un número alto de átomos en la fórmula proposicional, el tamaño
2.3 Semántica de la lógica proposicional 61
de las tablas crece de forma exponencial, por lo que puede resultar en un método poco eficiente.
De cada uno de los operadores lógicos existen diferentes interpretaciones las cuales están dadas en
función de las fórmulas. La tabla 2.1 muestra la interpretación de los operadores para las fórmulas A
y B.
Las interpretaciones son una analogı́a de los valores que se dan a cada una de las lı́neas que se generan en
una tabla de verdad. Por ejemplo si se tiene la fórmula: A : ¬p∨q ∧r, esta puede tener la interpretación:
v(¬p) = V
v(q) = V
v(r) = F
Dados los valores para la fórmula A, la interpretación v apara cada uno de los átomos, permite afirmar
que v(A) = F .
Una fórmula proposicional es posible representarla mediante un único árbol de formación. Por ejemplo
si se tiene la fórmula A : p ∨ q → p y las interpretaciones:
v(p) = F
v(q) = V
Una posible interpretación puede ser: v(p ∨ (q → p)) = V , la cual tendrı́a como árbol de formación:
(figura 2.2)
p →
q p
Esta misma fórmula se podrı́a interpretar como: v((p ∨ q) → p) = F , la cual tendrı́a como árbol de
formación: (figura 2.3)
62 Cálculo proposicional
∨ p
p q
Cuando una fórmula está definida sin ambigüedades, es posible realizar una representación mediante
un único árbol de formación. Por lo tanto, establecer la prioridad de los operadores y el uso de los
paréntesis, garantiza una adecuada interpretación v para una fórmula proposicional.
∧ ∧
p q q p
.:Actividad 2.1.
A=p∨q →r →s
B = p ∧ q ↔ ¬p → ¬q
C = p∨q∨s ↔ p∧s∨q
D = p → q ↔ ¬p ∧ s
E = p ∨ q → q ∧ ¬q ∨ p
F =p∧q → q∨s
∨ ∧
p q ¬ ∨
p p r
Figura 2.5
2.4 Funciones en LP
2.4.1 Función Valuación
Cuando se encuentran correctamente estructuradas las fórmulas proposicionales, es posible atribuirles
valores de verdad del conjunto {0, 1} (1 equivale a Verdadero y 0 a falso), que permiten dar un
significado a tales fórmulas. La valuación es tal que: v : ξ y {0, 1}, donde ξ es la fórmula.
2.4.1.1 Negación (
1 si v(¬i) = 0
H¬ (i) =
0 si v(¬i) = 1
2.4.1.2 Conjunción (
1 si v(i) = v(j) = 1
H∧ (i, j) =
0 cc - cualquier otro caso
2.4.1.3 Disyunción (
0 si v(i) = v(j) = 0
H∨ (i, j) =
1 cc
2.4.1.4 Condicional (
0 si v(i) = 1 y v(j) = 0
H→ (i, j) =
1 cc
2.4.1.5 Bicondicional(
1 si v(i) = v(j)
H↔ (i, j) =
0 cc
Tomemos por ejemplo la fórmula (p ∧ q) → r, y la función H→ , entonces:
H∧ ((p ∧ q), r)
Sólo tiene dos posibles valores, 1 (verdadero), sólo cuando ambas subfórmulas sean verdaderas, en
cualquier otro caso será 0 (falsas).
Si tenemos la fórmula ¬p, la función H¬ (p), retorna verdadero si p es falsa y retornará falso si p es
verdadera.
64 Cálculo proposicional
p → (r ∨ ¬q)
p r ∨ ¬q
r ¬q
Paso Inductivo.
Por ejemplo: verifique, utilizando inducción en fórmulas, que en toda fórmula el número de parentesis
izquierdos es igual al número de parentesis derechos.
Solución.
Sea:
P I(α): Número de parentesis izquierdos de α
P D(α): Número de parentesis derechos de α
Paso inductivo
P I(¬(α)) = 1 + P I(α)
= 1 + P D(α)
= P D(¬(α))
Por ejemplo, se desea verificar que las fórmulas A : (¬p ∨ ¬q) y B : (¬q ∨ ¬p), son lógicamente
equivalentes. Un procedimiento básico para determinar esa equivalencia es elaborar la tabla de verdad
para la fórmula A y para la fórmula B. (tabla 2.2)
p q ¬p ¬q ¬p ∨ ¬q ¬q ∨ ¬p
V V F F F F
V F F V V V
F V V F V V
F F V V V V
Se observa para cada una de las interpretaciones (lı́nea por lı́nea) de las fórmulas A y B, que estas son
idénticas, y por lo tanto se puede afirmar que son lógicamente equivalentes.
Por ejemplo si se tienen las fórmulas: A : (p ∨ q) y B : (q ∧ p), y se desea verificar si son lógicamente
equivalentes. (tabla 2.3)
p q ¬p ¬q (p ∨ q) ⇔ (q ∧ p)
V V F F V V
V F F V V F
F V V F V F
F F V V F F
Del ejemplo se puede afirmar que las fórmulas A y B no son lógicamente equivalentes, debido a que
tanto la interpretación de la segunda y tercera lı́nea, tienen un valor de verdad diferente tanto para la
fórmula A como para la fórmula B.
Por ejemplo si se tienen las fórmulas A : ¬(p ∨ q) y B : (¬p ∧ ¬q). Se va a verificar si A ⇔ B, y por lo
tanto se analiza si A ↔ B es una tautologı́a. (tabla 2.4)
2.6 Fórmulas lógicamente equivalentes 67
Las siguientes son algunas equivalencias lógicas, las cuales son de común uso en el cálculo proposicional:
A1 Conmutativa
• p∨q ⇔ q∨p
• p∧q ⇔ q∧p
A2 Identidad
• P ∨C ⇔p p∨V ⇔V
• P ∧V ⇔p p∧C ⇔ C
A3 Distributiva
• p ∨ (q ∧ r) ⇔ (p ∨ q) ∧ (p ∨ r)
• p ∧ (q ∨ r) ⇔ (p ∧ q) ∨ (p ∧ r)
A4 Complemento
• p ∨ ¬p ⇔ V p ∧ ¬p ⇔ C
• ¬(¬p) ⇔ p
A5 Idempotencia
• p∧p⇔p
• p∨p⇔p
A6 Asociativa
• (p ∧ q) ∧ r ⇔ p ∧ (q ∧ r)
• (p ∨ q) ∨ r ⇔ p ∨ (q ∨ r)
A7 D’Morgan
• ¬(p ∨ q) ⇔ ¬p ∧ ¬q
• ¬(p ∧ q) ⇔ ¬p ∨ ¬q
A8 Ley del Condicional
• (p → q) ⇔ (¬p ∨ q)
A9 Ley del Bicondicional
• (p ↔ q) ⇔ (p → q) ∧ (q → p)
68 Cálculo proposicional
A10 Absorción
• p ∧ (p ∨ q) ⇔ p
• p ∨ (p ∧ q) ⇔ p
• p ∧ (¬p ∨ q) ⇔ p ∧ q
• p ∨ (¬p ∧ q) ⇔ p ∨ q
Tomemos por ejemplo la siguientes fórmulas: ¬((¬p ∨ ¬q) ∨ ¬q) y p ∧ q. Ahora, determinemos is ambas
fórmulas son equivalentes:
.:Actividad 2.2.
A : (p ↔ q) ↔ s, B : s ∨ (p ↔ q)
A : (p ∨ q) ∧ q, B : (¬q ∨ q) ↔ (p ∧ q)
A : (¬r ∧ ¬t), B : (t ∨ ¬r)
A ↔ B ⇔ B ↔ (A ↔ B)
A ↔ ¬B ⇔ (A ∨ B) → (A ∧ B)
¬A ∨ ¬B ⇔ ¬A → B
A ↔ B ⇔ (A ∨ B) → (A ∧ B)
A ∧ ¬B ⇔ (¬A ↔ B) ↔ (A ∨ ¬B)
A ↔ B ⇔ (A ∨ B) ∧ (B → ¬A)
A ↔ B ⇔ (¬A ∨ B) ∧ (¬B → A)
¬A ↔ B ⇔ (B ↔ A) ∨ (A → B)
¬A → B ⇔ A ↔ (A ∧ B)
2.7 Satisfacibilidad e insatisfacibilidad 69
p q ¬q p ∨ ¬q
V V F V
V F V V
F V F F
F F V V
Una interpretación verdadera se considera un modelo para la fórmula proposicional y por lo tanto la
está en correspondencia con la satisfacibilidad. Para la fórmula A : (p ∨ ¬q), un modelo puede ser:
v(p) = V y v(¬q) = F .
p q ¬q p∧q (p ∧ q) ∨ ¬q
V V F V V
V F V V V
F V F F F
F F V V V
Por ejemplo, la fórmula A : (q∧¬q), es insatisfacible debido a que para cada una de sus interpretaciones
estas son falsas, es decir no existe ninguna interpretación verdadera. (tabla 2.7)
q ¬q q ∧ ¬q
V F F
F V F
La relación existente entre las fórmulas satisfacible se muestra en la figura, en la cual el rectángulo
denota todo el universo de fórmulas proposicionales. Las fórmulas que se encuentran dentro del cı́rculo
exterior son las insatisfacibles y aquellas que se encuentran por fuera del cı́rculo son las insatisfacibles.
(figura 2.7)
Insatisfactibles Insatisfactibles
Satisfactibles
Figura 2.7
Las fórmulas externas al cı́rculo, tienen todas sus interpretaciones falsas y las del área interna al cı́rculo
al menos una interpretación verdadera.
Por ejemplo la fórmula A : (p ∨ ¬p) es una fórmula válida dado que cada lı́nea de la tabla de verdad
se evalúa como verdadera. (tabla 2.9)
p ¬p p ∨ ¬p
V F V
F V V
Por ejemplo, en la fórmula A: (p → q) → (¬q → ¬p). Cada una de las lı́neas de la fórmula son
evaluadas como verdaderas, por lo tanto la fórmula es válida. A las fórmulas que cumplen con esta
condición se les llama tautologı́as. (tabla 2.10)
Por ejemplo la fórmula A: (p ∨ q) es una fórmula no válida dado que existe una interpretación en su
tabla de verdad que es evaluada como falsa. (tabla 2.11)
p q p∨q
V V V
V F V
F V V
F F F
La fórmula A: (p → q) ∨ (¬q → ¬p). Es una fórmula no-válida, pues existe una interpretación que es
evaluada como falsa. (tabla 2.12)
Por ejemplo la fórmula A:(p ∧ q) es satisfacible pero no válida, puesto que evalúa tanto un valor
verdadero como tres valores falsos. (tabla 2.13)
p q p∧q
V V V
V F F
F V F
F F F
Las fórmulas no válidas incluyen fórmulas insatisfacibles ası́ como aquellas que son verdad en alguna
interpretación pero no en otras representadas por el anillo externo del cı́rculo (ver figura 2.8) interior.
72 Cálculo proposicional
El área del cı́rculo más grande representa aquellas fórmulas satisfacibles y el área del cı́rculo interno
representa aquellas fórmulas satisfacibles no exactamente en una interpretación, son en todas, esto es
las fórmulas válidas (Ben-Ari, 2012).
Satisfactibles
Insatisfactibles No válidas
válidas
Figura 2.8
Existe una relación directa tanto entre validez e Insatisfacibilidad y entre satisfacibilidad y no validez.
Tabla 2.14
2. Dada la siguiente fórmula A: ¬(¬p∧¬q) ↔ (¬p∨q), determine de que tipo es: válida, satisfacible,
insatisfacible o no válida. (tabla 2.15)
Determine para cada fórmula si es válida, satisfacible, insatisfacible o no válida. Para aquellas
en las cuales sea posible, defina un modelo.
A = ¬p ∧ p → q ∨ q ↔ p → ¬r
2.9 Tableros semánticos 73
A = (p → ¬q) → ¬(¬q ∧ s)
A = p ∧ ¬((q → ¬p) → ¬r)
A = (¬(p → q) ∨ s) ↔ q → s
A = p → q ↔ ¬p ∧ s
A = ((p ∨ q) → q ∧ ¬q) ∨ p
Un literal es una variable proposicional o la negación de una variable proposicional. Son literales: p, q,
r, ¬q, ¬s, ¬t. Un conjunto de literales es satisfacible si y sólo si, no contiene un par complementario
de literales.
Si p es un átomo, el conjunto {p, ¬p} es un par complementario de literales.
Si A es una fórmula, {A, ¬A} es un par complementario de fórmulas. A es el complemento de
¬A y ¬A es el complemento de A.
A continuación se muestran fórmulas proposicionales con su respectivo complemento: (tabla 2.16)
En la tabla 2.17 se muestran una serie de casos en las cuales se define cada fórmula proposicional un
conjunto de literales y la propiedad de la fórmula.
Considere la fórmula A : q ∧ (p ∨ ¬q), A es verdadera si v(q) = V y v(p ∨ ¬q) = V . Entonces v(A) = V ,
si:
74 Cálculo proposicional
1. v(q) = V y v(p) = V o
2. v(q) = V y v(¬q) = V
Para el conjunto de literales {q, p}, no es un par complementario y se puede establecer un modelo para
la fórmula A, v(q) = V y v(p) = V , y por lo tanto la fórmula es satisfacible. El conjunto de literales
{q, ¬q} es un par complementario, por lo tanto no es satisfacible y no se puede definir un modelo.
Para realizar la búsqueda sistemática de modelos, existen una serie de reglas que deben ser aplicadas
de acuerdo al conector u operador booleano de la fórmula proposicional. Estas dos reglas son (Ben-Ari,
2012):
1. α (alfa) - son conjuntivas y estas satisfacen solo si ambas subfórmulas α1 y α2 son satisfacibles.
2. β (beta) - son disyuntivas y estas satisfacen aun usando solo una de las dos subfórmulas β1 o β2
es satisfacible.
Las reglas se aplican de acuerdo al conectivo principal. Para las α-fórmulas, se deben satisfacer sus dos
componentes α1 y α2 . (tabla 2.18)
α α1 α2
¬¬A A
A1 ∧ A2 A1 A2
¬(A1 ∨ A2 ) ¬A1 ¬A2
¬(A1 → A2 ) A1 ¬A2
A1 ↔ A2 A1 → A2 A2 → A1
Para las β-fórmulas es necesario que al menos uno de sus componentes β1 y β2 , se satisfaga. (tabla
2.19)
2.9 Tableros semánticos 75
β β1 β2
B1 ∨ B2 B1 B2
¬(B1 ∧ B2 ) ¬B1 ¬B2
B1 → B2 ¬B1 B2
¬(B1 ↔ B2 ) ¬(B1 → B2 ) ¬(B2 → B1 )
Por ejemplo, para la fórmula A : p ∧ ¬p. Esta tiene la estructura A1 ∧ A2 , por lo cual se aplica una
α-fórmula que se deriva en α1 y α2 . El árbol semántico contiene dos pares complementarios {p, ¬p} y se
puede etiquetar con una X. Por lo tanto la fórmula proposicional es insatisfacible. El árbol semántico
resultante se muestra en la figura 2.9:
p ∧ ¬p
p, ¬p
Por ejemplo un tablero para la fórmula A : (p ∨ ¬q) ∧ q. Esta fórmula cuenta con la estructura A1 ∧ A2 ,
por lo cual se aplica una α-fórmula que se deriva en α1 y α2 . En donde quedan dos subfórmulas (p∨¬q)
y q. En este caso el conector principal es el ∨, la cual responde a la estructura B1 ∨B2 , y por lo tanto se
aplica una β-fórmula que se deriva en β1 y β2 . Una vez aplicada surgen los conjuntos {q, p} y {q, ¬q}.
El conjunto {q, p} es satisfacible y se etiqueta con O. El conjunto {p, ¬q} es un par complementario
de literales y se etiqueta con X. La fórmula A es satisfacible puesto que el conjunto {q, p} es abierto y
se puede encontrar por lo tanto un modelo: es v(p) = V y v(q) = V . El tablero semántico se muestra
en la figura 2.10.
Por ejemplo, para la fórmula A : (p ∨ q) ∧ (¬p ∧ ¬q), se identifica que la fórmula cuenta con la
estructura A1 ∧ A2 , por lo cual se aplica una α-fórmula que se deriva en α1 y α2 . Se elimina del árbol
el operador ∧ y se separan las subfórmulas con una coma (,), queda el árbol con las subexpresiones:
p ∨ q, ¬p ∧ ¬q. Teniendo en cuenta que en este punto cada subexpresión tiene un conectivo principal,
se puede entonces aplicar ya sea una α fórmula o una β fórmula. Se aplica la α fórmula, y se genera
un nuevo nodo quedando el árbol con: p ∨ q, ¬p, ¬q. Finalmente se aplica una β fórmula, teniendo
en cuenta que solo queda una disyunción. En este caso, se generan dos subexpresiones β1 y β2 . Los
dos hojas del árbol quedan etiquetadas con X, por lo tanto es cerrado y la fórmula proposicional es
insatisfacible. No es posible encontrar un modelo para la fórmula. El árbol semántico resultante se
76 Cálculo proposicional
(p ∨ ¬q) ∧ q
(p ∨ ¬q), q
q, p q, ¬q
O X
(p ∨ q) ∧ (¬p ∧ ¬q)
p ∨ q, ¬p ∧ ¬q
p ∨ q, ¬p, ¬q
p, ¬p, ¬q p, ¬p, ¬q
X X
Generalizando, se puede afirmar que una fórmula proposicional es satisfacible si y solo si el tablero
2.9 Tableros semánticos 77
(p → ((q ∨ r) → (p ∧ r)))
β1 β2
¬p (q ∨ r) → (p ∧ r)
O β1 β2
¬(q ∨ r) p∧r
α α
¬q, ¬r) p, r
O O
semántico es abierto. Un tablero semántico es abierto cuando al menos una de sus hojas es marcada
como abierta. Una fórmula proposicional es insatisfacible si y solo si el tablero semántico es cerrado.
Un tablero semántico es cerrado cuando todas sus hojas son marcadas como cerradas.
Los tableros semánticos pueden ser usados como procedimientos de decisión para verificar la validez
de una fórmula proposicional. Para probar si una fórmula A es válida, entonces se refuta negando a
A. Una fórmula A es válida si y solo si ¬A es insatisfacible si y solo si el tablero semántico para ¬A
es cerrado.
Por ejemplo, se desea verificar si la fórmula A : (p ∨ ¬p) es válida. Inicialmente se niega la fórmula:
¬(p ∨ ¬p). En este caso se aplica una α-fórmula. La cual genera una única hoja que se etiqueta con X,
pues se tiene el par complementario de literales. {p, ¬p}. (figura 2.13)
A : (p ∨ ¬p)
¬(p ∨ ¬p)
p, ¬p
Para la fórmula A, se prueba la validez refutando la fórmula original, como ¬A es cerrado, entonces
¬A es insatisfacible y por lo tanto A es válido. Mediante una tabla de verdad se puede verificar que
no es posible definir un modelo para la fórmula proposicional. (tabla 2.20)
78 Cálculo proposicional
Por ejemplo, se desea verificar la fórmula A : ((p ∨ q) → (¬p ∨ ¬q)), es una fórmula válida. El operador
principal es el → , por lo que la estructura es ¬(A1 → A2 ), por ello tanto se aplica una α-fórmula que
se deriva en α1 y α2 . La subfórmula α1 queda como (p ∨ q), y la subfórmula α2 queda como ¬(¬p ∨ ¬q).
Se aplica una α-fórmula a ¬(¬p ∨ ¬q),quedando conformado el árbol con las subfórmulas: (p ∨ q), p,
q. Se aplica una β-fórmula la cual genera dos nodos hoja. Los conjuntos de literales son: {p, p, q} y
{q, p, q}. No se tiene un par complementario de literales y por lo tanto las hojas se etiquetan como
abiertas. La forma en que se etiqueto el árbol muestra que ¬A es satisfacible, por lo tanto A es no
válida. El árbol semántico resultante se en la figura 2.14:
(p ∨ q), p, q
β1 β2
p, p, q q, p, q
O O
Se desea saber si al fórmula A = (¬s → ¬q) → (q → s), es válida. Inicialmente para probar validez
se niega fórmula. El operador principal es el →, por lo que la estructura es ¬(A1 → A2 ), por ello
tanto se aplica una α-fórmula que se deriva en α1 y α2 . La subfórmula α1 queda como (¬s → ¬q),
y la subfórmula α2 queda como ¬(q → s). Se aplica una β-fórmula la cual genera dos nodos hoja y
finalmente se aplica a cada nodo una α-fórmula. Los conjuntos tienen pares complementarios, por lo
tanto las hojas son cerradas y A es un fórmula válida. El árbol semántico resultante se muestra en la
figura 2.15:
Por ejemplo si se tiene la fórmula proposicional: p ∧ (p → (q → ¬p)), y se aplican las reglas, es posible
2.9 Tableros semánticos 79
(¬s → ¬q) → (q → s)
β1 β2
α α
s, q, ¬s ¬q, q, ¬s
X X
la siguiente representación del árbol. El árbol etiquetado, tiene hojas abiertas y cerradas. La fórmula
proposicional A : p ∧ (p → (q → ¬p)), es satisfacible y el tablero semántico es abierto. (figura 2.16)
p ∧ (p → (q → ¬p))
p, (p → (q → ¬p))
β1 β2
p, ¬p p, (q → ¬p)
X β1 β2
p, ¬q p, ¬p
O X
El método de los tableros semánticos también puede ser extendido a fórmulas. Por ejemplo, si se tiene
la fórmula A : ((p ∨ q) ∧ ¬(p ∨ q)), se aplica una α-fórmula y se observa que se existe un tiene un par
complementario de fórmulas. Por lo tanto se puede afirmar directamente que el tablero semántico es
cerrado y la fórmula es insatisfacible. (figura 2.18)
.:Actividad 2.4.
p ∧ ¬q ∧ (p → ((q ∨ r) → (p ∧ r))
p, ¬q ∧ (p → ((q ∨ r) → (p ∧ r))
β1 β2
p, ¬q, ¬p p, ¬q, (q ∨ r) → (p ∧ r)
X β1 β2
α α
α α
O O
{¬p, p, q}
{q, p, ¬q}
{q, r, p, ¬s}
2. Dadas las siguientes fórmulas A, determine por el método de los tableros semánticos si son
fórmulas: satisfacibles o insatisfacibles, y cuando sea posible determine un modelo.
A = (p → q) ∧ (¬p ∧ q)
A = (q ∧ ¬p) → q)
A = ((p ∨ q)) ↔ (¬p ∨ q)
A = (p → q) ↔ (¬p → ¬q)
A = ¬((p ∨ q) → q) ∧ ¬((¬q ∨ p) ∧ ¬p)
A = (q → q) ∨ ¬(q ∨ p)
2.10 Resolución proposicional 81
3. Dadas las fórmulas proposicionales, determine por el método de los tableros semánticos si son
válidas o no válidas.
A = ¬(p ↔ q) ∧ (p ∧ q)
A = ¬((q → ¬p) → ¬q)
A = ¬(p ∨ q) ↔ (¬p ↔ s)
A = (¬p → ¬q) → (¬q → ¬p)
A = (p → q) → (¬q ∨ p)
A = (q → q) ↔ ¬q ∨ p)
A diferencia de otros métodos de deducción como los tableros semánticos, en donde se manejan cantidad
de reglas para inferir el resultado, el método de resolución solo utiliza una regla para deducir. Ası́ mismo,
es un método que utiliza exclusivamente clausulas.
Una fórmula está en Forma Normal Disyuntiva (FND) si está constituida por una disyunción de
conjunciones, es decir el operador principal es la disyunción y las conjunciones son las dependientes.
Donde C1 ∨ C2 ∨ C3 ∨ C4 ∨ . . . Cn , y cada Ci una clausula y Bi1 ∨ Bi2 ∨ Bi3 ∨ . . . Bini , es un literal de
la cláusula. Se representa formalmente como.
m
_ ni
^
lij
i=1 j=1
p∨q
(¬p ∧ ¬q ∧ r) ∨ (p ∧ s)
(q ∧ p) ∨ (¬p) ∨ (q)
¬p
Una fórmula está en Forma Normal Conjuntiva (FNC) si está constituida por una conjunción de
disyunciones, es decir el operador principal es la conjunción y las disyunciones son las dependientes.
Donde C1 ∧ C2 ∧ C3 ∧ C4 ∧ . . . Cn , y cada Ci una clausula y Bi1 ∧ Bi2 ∧ Bi3 ∧ . . . Bini , es un literal de
la cláusula. Se representa formalmente como:
m
^ ni
_
lij
i=1 j=1
¬p ∧ s
(p ∨ q) ∧ (p ∨ ¬s)
(¬p ∨ ¬q ∨ ¬s) ∧ (p ∨ s) ∧ (¬p)
q
Una fórmula en FND será insatisfacible si todas sus disyunciones son falsas, de lo contrario, se debe
establecer si es una tautologı́a o una fórmula satisfacible. Una fórmula en FNC será una tautologı́a si
todas sus conjunciones son verdaderas, de lo contrario, se debe establecer si la fórmula es satisfacible
o insatisfacible.
Toda fórmula proposicional tiene su equivalente en FNC. Para convertir una fórmula a FNC, es posible
establecer una serie de pasos, los cuales garantizan la propiedad de equivalencia lógica.
1. Eliminar todos los conectivos diferentes a: negación, conjunción y disyunción. (se eliminan los
operadores ↔ y →).
2. Aplicar las leyes de De Morgan, para llevar todas las apariciones de ¬ hasta los átomos.
A ∨ (B ∧ C) ↔ (A ∨ B) ∧ (A ∨ C)
(A ∧ B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C)
En los siguientes ejemplos se muestra la aplicación de los pasos para transformar a FNC. Inicialmente
se desea transformar la fórmula: ((p → q) ∧ p) → q
El siguiente ejemplo muestra cómo se trasforma la fórmula: (p → q) → (¬p → ¬q), a su equivalente en
FNC.
.:Actividad 2.5.
Pasos Fórmula
1. Se eliminan todas la apariciones de → ¬((¬p ∨ q) ∧ p) ∨ q
2. Llevar todas las apariciones de ¬ hasta (p ∧ ¬q) ∨ ¬p ∨ q
los átomos y ası́ disminuir su alcance
3. Aplicar de forma repetida las leyes de (p ∨ ¬p ∨ q) ∧ (¬q ∨ ¬p ∨ q)
Distributividad
Pasos Fórmula
1. Se eliminan todas la apariciones de → ¬(¬p ∨ q) ∨ (¬¬p ∨ ¬q)
2. Llevar todas las apariciones de ¬ hasta (¬¬p ∧ ¬q) ∨ (¬¬p ∨ ¬q))
los átomos y ası́ disminuir su alcance
3. Eliminar las dobles negaciones. (p ∧ ¬q) ∨ (p ∨ ¬q))
4. Aplicar de forma repetida las leyes de (p ∨ p ∨ ¬q) ∧ (¬q ∨ p ∨ ¬q)
Distributividad
(p → q) ∨ ¬(¬p ∧ q)
¬((q → ¬p) → ¬q)
¬((p ∨ q) ↔ (¬p ∨ q)
¬(p → q) ∨ (¬p → ¬q)
((p ∨ q) → q) → ¬p → q
(p → q) ∨ ¬q
(q ∨ ¬p ∧ s) ↔ (¬q ∧ ¬s)
(p ∨ q) → (¬p ∨ q)
¬(p ∨ q) → (¬p ∨ ¬q)
¬((p ∨ q) ∨ q) ↔ (¬p → q)
Una cláusula se compone de literales que se encuentran unidos por medio del operador de disyunción,
esta disyunción se puede dar entre cero o más literales. Una clausula es una disyunción de literales.
Una cláusula que no contenga literales se denomina vacı́a, y su representación es mediante el sı́mbolo
⊛. Una clausula vacı́a es insatisfacible.
Una fórmula está en Forma Clausal si está conformada exclusivamente por un conjunto de cláusulas.
La transformación de una fórmula en FNC a Forma Clausal es inmediata sustituyendo las conectivas ∧
84 Cálculo proposicional
Tabla 2.23
por comas y englobando las disyunciones entre llaves (Blanco, Smith, & Damián, 2001). A continuación
se presentan unas fórmulas proposicionales con su equivalente expresión en términos de cláusulas.
Algunos aspectos a destacar en los conjuntos de cláusulas son:
Existen clausulas con un solo literal, a las cuales se les conoce como cláusulas unitarias.
Cuando una clausula no contiene ningún literal, se denomina clausula vacı́a y como se ha
mencionado, es insatisfacible y no puede ser satisfecha.
La regla de resolución se aplica cuando existan literales complementarios entre pares de cláusulas.
Cuando en dos cláusulas C1 y C2 , se contenga en cada una literales tales que l ∈ C1 y ¬l ∈ C2 , se
afirma que son clausulas resolubles. El resolvente entre dos cláusulas C1 y C2 , da lugar a una nueva
cláusula C. El resolvente entre C1 y C2 , da lugar a una nueva cláusula respecto al literal l. A este
proceso se le denomina paso de resolución. La aplicación del resolvente se denota de la siguiente manera:
Por ejemplo, si se tienen las cláusulas: C1 = pq¬r y C2 = qr¬t, el literal c, está en la cláusula C1 = ¬r
y en la cláusula C2 = r. El resolvente entre C1 y C2 , se obtienen de la siguiente manera:
Los siguientes son ejemplos en los cuales se aplica el resolvente a dos clausulas:
El resolvente de dos cláusulas es satisfacible cuando los pares de cláusulas C1 y C2, son mutuamente
satisfacibles. Un conjunto de cláusulas es satisfacible si y sólo si existe una misma interpretación que
satisface a cada cláusula del conjunto. Cuando el resolvente es C = el conjunto de cláusulas es
insatisfacible.
Son diversos autores (Ben-Ari, 2012), (Labra & Fernández, 1998), que presentan una serie de estrategias
o casos para simplificar clausulas, las cuales están orientadas a eliminar clausulas antes de ser usadas
en el resolvente. Con ello se busca un ahorro en la búsqueda de la solución.
2.10 Resolución proposicional 85
Clausulas Resolvente
C1 = pq, p¬r
C2 = ¬q¬r
C1 = r, (clausula vacı́a)
C2 = ¬r
C1 = ¬p¬q, No se puede aplicar resolvente entre
C2 = ¬q¬r C1 y C2 , (No existen literales
complementarios)
C1 = p¬qr, pr¬t
C2 = qr¬t
Tabla 2.24
Caso 1 : Si en todo el conjunto de cláusulas, existe una cláusula que no contiene un literal complementario
a él en todo el conjunto, es un literal al cual no se le podrá aplicar el resolvente. En este caso
esta cláusula puede ser eliminada del conjunto.
Caso 2 : Si existe una cláusula con un literal repetido, esto es una tautologı́a y por lo tanto a esa cláusula
se le puede eliminar uno de esos literales.
Caso 3 : Si una clausula contiene a otra clausula, entonces es posible eliminar del conjunto de cláusulas,
la cláusula que está contenida en el conjunto.
Tabla 2.25
Por ejemplo, se desea aplicar el algoritmo de resolución proposicional para la fórmula: (p ∧ ¬p).
Inicialmente el cada una de las cláusulas será numeradas para aplicar el procedimiento de resolución.
Cuando sea aplicado el resolvente se indicará sobre que cláusulas se está trabajando. El conjunto de
cláusulas es:
1. p
2. ¬p
3. R(1, 2)
Teniendo en cuenta que el resolvente de entre las cláusulas 1 y 2, llegó a se puede afirmar
que la fórmula proposicional es insatisfacible. Esto se puede verificar desde la definición misma de
interpretación proposicional, pues si v(p) = V , entonces v(¬p) = F , y por lo tanto no es posible
encontrar un modelo para la fórmula (p ∧ ¬p).
1. p
2. ¬q
3. ¬pq
4. q R(1, 3)
5. R(2, 4)
El conjunto de cláusulas es insatisfacible. Este mismo conjunto de cláusulas puede tener una serie de
pasos a los que se llega a la misma deducción de insatisfacibilidad.
1. p
2. ¬q
3. ¬pq
4. ¬p R(2, 3)
2.10 Resolución proposicional 87
5. R(1, 4)
1. pq
2. ¬pq
3. p¬q
4. ¬p¬q
5. q R(1, 2)
6. ¬q R(3, 4)
7. R(5, 6)
El conjunto es insatisfacible.
Retomando el ejemplo de la sección 2.8 se puede también utilizar el método de resolución para verificar
la validez de una fórmula mediante el procedimiento de refutación. Esto se verifica negando la conclusión
obtenida de los argumentos.
p∧q
p→r
¬r
Para este caso se va a negar la conclusión para verificar la validez por medio de la refutación de ella.
El conjunto de cláusulas quedarı́an: {pq, ¬pr, ¬r, ¬q}. Donde ¬q es la negación de la conclusión.
1. pq
2. ¬pr
3. ¬r
4. ¬q
5. ¬p R(2, 3)
6. p R(1, 4)
7. R(5, 6)
Con base en esta deducción, se puede afirmar que la argumentación obtenida es valida por el
procedimiento de refutación.
88 Cálculo proposicional
.:Actividad 2.6.
1. Dadas las siguientes fórmulas, transformar a su equivalente en forma normal conjuntiva y aplicar
cuando sea posible la regla de resolución repetidamente.
C1 = p¬q¬r y C2 = qr¬p
C1 = ¬r y C2 = qrp
C1 = p¬q¬r y C2 = ¬pqr
C1 = ¬pq y C2 = ¬q¬p
C1 = pq¬r y C2 = qr¬t
A continuación se presenta dos tipos de pruebas deductivas: Sistemas de Gentzen y Sistemas de Hilbert.
2.11 Pruebas deductivas 89
En el sistema de Gentzen el axioma establece que un conjunto de fórmulas debe contener al menos un
plan complementario de literales.
Premisas
Conclusión
Para obtener una conclusión a partir de un conjunto de premisas, es necesario aplicar reglas de
inferencia que permiten la manipulación sintáctica de las premisas. Las reglas de inferencia en el sistema
de Gentzen son de tipo α (alfa) o β (beta). Las reglas de inferencia son presentadas en Mordechai Ben-
Ari, Mathematical Logic for Computer Science (Rehovot: Springer-Verlag London, 2012). y retomadas
en este texto. (tabla 2.26)
α α1 α2
A ¬¬A
A1 ∨ A2 A1 A2
¬(A1 ∧ A2 ) ¬A1 ¬A2
(A1 → A2 ) ¬A1 A2
¬A1 ↔ A2 ¬(A1 → A2 ) ¬(A2 → A1 )
β β1 β2
B1 ∧ B2 B1 B2
¬(B1 ∨ B2 ) ¬B1 ¬B2
¬(B1 → B2 ) B1 ¬B2
(B1 ↔ B2 ) (B1 → B2 ) (B2 → B1 )
Con ese conjunto de reglas de inferencia es posible probar una formula proposicional a partir de un
conjunto de premisas. Por ejemplo se desea demostrar (p ∨ q) ∨ p. Entonces la prueba de Gentzen se
realiza ası́: (tabla 2.28)
Por ejemplo si se desea demostrar (¬q → ¬p) ∨ (p → q). Entonces la prueba de Gentzen se puede
realizar de la siguiente manera: (tabla 2.29)
90 Cálculo proposicional
1. p, q, ¬p Axioma
2. p, q, ¬q Axioma
3. (p ∨ q), p α - → (1)
4. (p ∨ q) ∨ p α - → (3)
1. p→q P
2. p P
3. q M P1,2 (2)
Axioma 1: ⊢ (p → (q → p))
Por ejemplo si se desea demostrar (r ∧ s), a partir de la formula (p ∧ ¬q) → (r ∧ s) y (p ∧ ¬q), entonces
se puede aplicar Modus Ponens, llegando a la conclusión (r ∧ s).
1. (p ∧ ¬q) → (r ∧ s) P
2. (p ∧ ¬q) P
C. (r ∧ s) M P1,2 (2)
.:Actividad 2.7.
1. Dadas las siguientes fórmulas, demostrar si es posible por medio del sistema de Gentzen.
(p → q) → (¬p ∧ q)
¬((q → ¬p) → ¬p)
¬((p ∨ q) → (¬p ∨ q)
2.11 Pruebas deductivas 91
p → (¬p → q)
¬((q¬¬p) → q
¬(p → q) → (¬p → ¬q)
((p → q) → q) → (p → q)
92 Cálculo proposicional
CAPÍTULO 3
El argumento se asemeja al
disparo de una ballesta, es igual
de efectivo dirigido a un gigante
que a un enano.
Francis Bacon.
1561 − 1626
3.1 Introducción
En este capı́tulo se trabajará con elementos fundamentales de la lógica proposicional para establecer las
propiedades de argumento a partir de un conjunto de afirmaciones. Para esa deducción, se presentan
diferentes reglas de inferencia, las cuales determinan las propiedades de las proposiciones basadas en
una manipulación sintáctica. El análisis de estas propiedades no se infiere a partir de los posibles
valores de verdad que puede tomar la fórmula proposicional. Con esto se muestra en este capı́tulo
una diferencia en la forma como se han trabajado las proposiciones, los operadores booleanos y las
deducciones.
Mediante los razonamientos es posible resolver diversos problemas que se plantean desde la
lógica, teniendo como referentes proposiciones que responden a la estructura premisas-conclusión.La
conclusión se deriva a partir de las premisas y las premisas sirven como justificación o evidencia de
la conclusión. Si el razonamiento es válido, no puede aceptarse la verdad de las premisas sin aceptar
también la validez de la conclusión (Baldwin & Scragg, 2004). La lógica no estudia la verdad o falsedad
de las premisas y la conclusión, sino que estudia si la verdad de las premisas implica la verdad de la
conclusión (Ramı́rez, 2003).
A continuación se presentan razonamientos concebidos como válidos, en los cuales se presentarán las
premisas y posteriormente la conclusión. Para denotar las premisas se antepone la notación Pi para
cada una de ellas y la letra C para denotar la conclusión. Para los siguientes ejemplos se asume que si
las premisas son verdaderas, también lo será la conclusión. (tabla 3.1)
Premisas Conclusión
P1 . Todos los hombres son mortales Pedro es mortal
P2 . Pedro es hombre
P1 . Los deportistas son personas Los deportistas son exitosos
constantes
P2 . Las personas constantes son
exitosas
Tabla 3.1
Premisas Conclusión
P1 . Todos los tigres son carnı́voros Algunos
P2 . Todos los tigres son cuadrúpedos cuadrúpedos son
carnı́voros
Tabla 3.2
La conclusión tiene un contenido existencial y se menciona que solo algunos, es decir, que existe
cuadrúpedos que son carnı́voros, pero en las premisas se afirma que todos los tigres son carnı́voros.
El siguiente caso no se puede afirmar que la persona no está alegre porque no se compró una vivienda,
puede no estar alegre por otro motivo. Por lo tanto si la primera premisa es válida, lo serán ambas y
3.2 Análisis de razonamientos y silogismos 95
Premisas Conclusión
P1 . Si comprara una vivienda estarı́a No estoy feliz
feliz
P2 . No me compre una vivienda
Tabla 3.3
El razonamiento lógico es un conjunto de juicios que mantienen entre sı́ relaciones lógicas de tal forma
que partiendo de juicios denominados premisas es posible llegar deductivamente a un nuevo juicio
denominado conclusión. La obtención de la conclusión, asegura la validez de la juicios que componen
las premisas (Muñoz, 2011).
Un razonamiento es válido si todas las premisas son válidas y por lo tanto su conclusión también lo
es. Si un razonamiento tiene la estructura:
p1 ∧ p2 ∧ p3 ∧ p4 ∧ · · · ∧ pn → q
En donde la conclusión q es verdadera y también lo son las premisas pi , entonces se puede afirmar que es
un razonamiento válido. Ası́ mismo, se podrı́a afirmar que el razonamiento p1 ∧p2 ∧p3 ∧p4 ∧· · ·∧pn → q,
es una tautologı́a.
p. Tengo beca
q. Estoy estudiando
p→q
¬q
¬p.
Una forma de comprobar la validez del razonamiento es mediante la tabla de verdad. La fórmula:
((p → q) ∧ ¬q) → ¬p, es una tautologı́a y por lo tanto, es un razonamiento válido. (tabla 3.4)
Por ejemplo, si se tiene el siguiente razonamiento con sus premisas y conclusión, se desea verificar si
este es válido.
p. Tengo beca
q. Estoy estudiando
Formalizando tenemos:
p→q
¬p
¬q
La validez del razonamiento se comprueba analizando su tabla de verdad. La fórmula: ((p → q)∧¬q) →
¬p. De la tabla de verdad se puede afirmar que no es una tautologı́a y por lo tanto no es un razonamiento
válido. (tabla 3.5)
bmp ∨ ep
bmp → ca
¬ca
ep.
3.3 Reglas de Inferencia 97
Al analizar la conclusión, se observa que todas las interpretaciones son verdaderas, por lo tanto es una
fórmula válida. (tabla 3.6)
.:Actividad 3.1.
válido
Premisas Conclusión
Si No
Los deportistas cumplen
P1 . Los deportistas son
con los compromisos
disciplinados
P2 . Los disciplinados
cumplen con los
compromisos
Los deportistas no
P1 . Los deportistas no cumplen con los
son disciplinados compromisos
P2 . Los disciplinados no
cumplen con los
compromisos
Los deportistas cumplen
P1 . Los deportistas son
con los compromisos
disciplinados
P2 . Los disciplinados no
cumplen con los
compromisos.
Si es disciplinado,
P1 . Si no es disciplinado,
será feliz
tendrá reconocimiento
P2 . Si tiene
reconocimiento, será feliz
Si es disciplinado,
P1 . Si usted no es
será feliz
disciplinado, no
tendrá reconocimiento
P2 . Si usted no tiene
reconocimiento, será feliz
Si tuviera reconocimiento No tengo reconocimiento
estarı́a contento, No estoy
contento
Tabla 3.7
Son diversos los mecanismos de inferencia que pueden ser usados para demostrar propiedades de las
formulas en el cálculo proposicional, tales como el método de resolución, los tableros semánticos, las
tablas de verdad, las propias reglas de inferencias, entre otros. A través de las reglas de inferencia, es
posible establecer la validez de un argumento sin usar tablas de verdad.
Los tres elementos que fundamentan los razonamientos y permiten realizar las inferencias son:
Reglas de Inferencia: conjuntos de pasos que se utilizar para obtener otras conclusiones de acuerdo
a las premisas.
premisas numeradas y posteriormente se presentan las reglas de inferencia aplicadas para llegar a
una determinada conclusión.
1 p→q P
2 p P
C q M P1,2
Este esquema puede ser aplicado a un conjunto de premisas que estén expresadas en lenguaje natural.
Por ejemplo si se tienen las premisas: Si x es un número es par, entonces x es divisible por 2. La regla
del MP se puede aplicar ası́:
La regla del MP puede ser también aplicada a proposiciones compuestas, es decir, su uso no
está limitado exclusivamente a proposiciones atómicas. Por ejemplo si se tienen las premisas: Si trabajo
y no gano ahorro dinero, entonces me desmotivo y me endeudo. Es el caso que trabajo y no ahorro
dinero.
1 (p ∧ ¬q) → (r ∧ s) P
2 (p ∧ ¬q) P
C (r ∧ s) M P1,2
La regla del Modus Ponens se puede aplicar repetidas veces en un conjunto de premisas. Por ejemplo
se desea demostrar (p ∨ q), considerando las premisas P1 , P2 , P3 , P4 . Se aplica MP entre P2 y P3 ,
obteniéndose una primera conclusión C1 la cual es adicionada al conjunto y se enumera con la lı́nea 4.
Se vuelve aplicar MP entre la premisa P1 y C1 , pudiendo demostrar (p ∨ q) a partir de las premisas
100 Argumentos, reglas de inferencia y lı́mites de la lógica
1 r → (p ∨ q) P
2 (q ∨ p) → r P
3 (q ∨ p) P
4 q P
C, 5 r M P2,3
C (p ∨ q) M P1,4
.:Actividad 3.2.
Tabla 3.8
1 p→q P
2 q→r P
3 q P
4
C
3.3 Reglas de Inferencia 101
1 p → ¬q P
2 ¬q → ¬¬r P
3 p P
4 p P
C
La regla del Tollendo Tollens (TT), es conocida como la regla del negando - niego. Es posible aplicarla
a expresiones condicionales, en la cual a partir de un condicional y la negación del consecuente del
condicional, se puede concluir la negación del antecedente del condicional. Es decir, si en un condicional
el consecuente esta negado, es posible negar el antecedente, debido a que si el consecuente no es
verdadero, su antecedente tampoco lo es.
1 p→q P
2 ¬q P
C ¬p T T1,2
Por ejemplo, si se tiene la premisa: Si Alfonso es una persona mayor de edad, entonces tiene cédula de
ciudadanı́a. Se puede aplicar TT ası́:
Por ejemplo, si se tienen la premisa: Si los sı́ntomas de la enfermedad continúan, entonces se debe
realizar el tratamiento. La regla de TT se aplica como se presenta a continuación:
La regla de Tollendo Tollens como en el caso de las reglas de inferencia se puede aplicar a una lista de
premisas. Por ejemplo, se desea demostrar p 6= 0, a partir de un conjunto de premisas. Inicialmente
se aplica MP entre las premisas 1 y 4, generándose la conclusión p = r. Luego se aplica MP ente 2
y 5, generándose la conclusión p = 1. Finalmente se aplica Tollendo Tollens entre las lı́neas 3 y 6,
obteniendo la conclusión (p 6= 0).
102 Argumentos, reglas de inferencia y lı́mites de la lógica
1 (p = q) → (p = r) P
2 (p = r) → (p = 1) P
3 (p = 0) → (p 6= 1) P
4 p=q P
C, 5 p=r M P1,4
C, 6 p=1 M P2,5
C p 6= 0 T T3,6
.:Actividad 3.3.
1 p→q P
2 ¬q → ¬¬r P
3 ¬p P
4
5
C
3. Aplique las reglas de inferencia a las siguientes premisas, para demostrar si es posible p = 1.
1 (p = s) → (p = w) P
2 (p = w) → (p = 0) P
3 (p = 1) → (p 6= 0) P
4 p=s P
5
6
C
La regla de la DN puede adquirir dos formas, en el primer caso la conclusión se deriva de la negación
de su negación, es decir la premisa se niega doblemente.
3.3 Reglas de Inferencia 103
1 q P
C ¬¬q DN1
1 ¬¬q P
C q DN1
Cuando se tiene un conjunto de premisas, es posible aplicar diferentes reglas de inferencia con el
propósito de demostrar una determinada conclusión. Por ejemplo, si se desea demostrar ¬¬r, partiendo
de las premisas:
1 q→r P
2 q P
C1 , 3 q→r M P1,2
C ¬¬r DN3
En este caso se aplica MP entre las premisas 1 y 2, a partir de las cuales se obtiene una primera
conclusión r, posteriormente se aplica la doble negación y se obtiene la conclusión ¬¬r.
.:Actividad 3.4.
2. Aplique las reglas de inferencia a las siguientes premisas, para demostrar si es posible ¬¬p.
1 p → ¬q P
2 ¬q → p P
3 p P
4
5
C
3. Aplique las reglas de inferencia a las siguientes premisas, para demostrar si es posible ¬¬p.
1 (q → p) P
2 (p → q) P
3 q P
4
5
C
1 p P
2 q P
C p∧q A1,2
ó
1 p P
2 q P
C q∧p A1,2
Tabla 3.9
La regla de Adjuncion también puede ser aplicada a un listado de premisas. Por ejemplo se desea
verfificar que (p ∧ q) ∧ (q ∧ r), es una conclusión valida a partir de las premisas de las lı́neas 1,2 y 3.
1 p P
2 q P
2 r P
C1 , 4 p∧q A1,2
C2 , 5 q∧r A2,3
C (p ∧ q) ∧ (q ∧ r) A1,2
Por medio de la tablas de verdad se puede asumir que (p ∧ q) ∧ (q ∧ r), es válida a partir de las premisas
válidas.
.:Actividad 3.5.
2. Demostrar ¬¬(¬p ∧ (q ∧ r)) si se tienen las siguientes premisas. Se debe indicar el nombre de la
regla aplicada.
1 ¬p P
2 (p ∧ r) P
3
4
C
1 ¬p P
2 q P
3 r
4 s
5
C
3.3.5 Conmutativa
La regla Conmutativa (C) establece que el orden en el cual aparecen las proposiciones en una conjunción
o en una disyunción, no altera las caracterı́sticas de la fórmula proposicional. No sucede igual con la
implicación, pues el alterar el orden las proposiciones modifica las propiedades de la formula.
Para la disyunción, cambiar el orden de los premisas, permite pasar directamente a la conclusión.
1 p∧q P
C q∧p C1
Por ejemplo, a la siguiente premisa (p ∨ q ∨ r) ∧ (¬p ∨ r), se le puede aplicar la regla conmutativa, y
en la conclusión aparece alterado el orden de las premisas.
1 (p ∨ q ∨ r) ∧ (¬p ∨ r) P
C (¬p ∨ r) ∧ (p ∨ q ∨ r) C1
Para la conjunción, cambiar el orden de los premisas, permite pasar directamente a la conclusión.
1 p∨q P
C q∨p C1
3.3 Reglas de Inferencia 107
Por ejemplo, a la siguiente premisa (p ∨ q ∨ ¬r) ∨ (r) , se le puede aplicar la regla conmutativa, y en
la conclusión aparece alterado el orden de las premisas, conservando las propiedades de la conclusión.
1 (p ∨ q ∨ ¬r) ∨ (r) P
C (r) ∨ (p ∨ q ∨ ¬r) C1
Igual sucede con el siguiente ejemplo al cual se le puede aplicar la regla conmutativa:
La regla Conmutativa también puede ser aplicada a un conjunto de premisas. Para el siguiente caso se
observa que en la lı́nea 6 se obtiene la conclusión p ∨ s. En lı́nea 6 se observa que a la conclusión s ∨ p,
se le puede aplicar la regla Conmutativa y se puede verificar p ∨ s.
1 r → ¬q P
2 ¬¬q P
3 ¬(s ∨ p) → r P
C1 , 4 ¬r T T1,2
C2 , 5 ¬¬(s ∨ p) T T3,4
C3 , 5 s∨p DN5
C p∨s C6
.:Actividad 3.6.
1. Dadas las siguientes premisas, aplique la regla conmutativa de manera que la conclusión sea
verdadera.
Tabla 3.10
108 Argumentos, reglas de inferencia y lı́mites de la lógica
2. Dadas las siguientes premisas, formalicelas y aplique entre otras la regla conmutativa.
3. Dadas las siguientes premisas, demuestre que s∨p. Debe aplicar las reglas de inferencia necesarias.
1 x → ¬q P
2 ¬¬q P
3 ¬(p ∨ s) → x P
Si uno de los miembros de una disyunción es negado, el otro miembro queda automáticamente afirmado,
ya que uno de los términos de la elección ha sido descartado (Sanchéz, 2007).
1 p∨q P
2 ¬p P
C q T P1,2
1 p∨q P
2 ¬q P
C p T P1,2
.:Actividad 3.7.
3.3 Reglas de Inferencia 109
Tabla 3.11
Tabla 3.12
1. Dadas las siguientes premisas, aplicar entre ellas la regla de Tollendo Ponens.
1 (p < w) ∨ (p = w) P
2 (p = w) → (w 6= 4) P
3 ((p < w) ∧ (w = 4)) → p < 4 P
4 w=4 P
C
110 Argumentos, reglas de inferencia y lı́mites de la lógica
La regla Simplificación I (SI), establece que de la conjunción de dos proposiciones asumidas como
verdaderas, es posible concluir cada una de ellas. Si la premisa dada en la conjunción es cierta, entonces
cada una de ellas se puede concluir como verdadera. Esto se puede validar desde la definición misma
del operador de la conjunción. La conclusión para esta regla puede tomar las siguientes dos formas:
1 p∧q P
C p S1
1 p∧q P
C q S1
Tabla 3.13
Como se muestra en el ejemplo, de cada una de las premisas es posible obtener dos conclusiones, las
cuales son consideradas verdaderas de forma independiente.
Un ejemplo con la estructura de premisas y conclusión, se presenta a continuación:
La regla de Simplificacion I también puede ser aplicada a un listado de premisas. Por ejemplo se desea
verificar que (q ∧ r), es una conclusión valida a partir de las premisas dadas.
3.3 Reglas de Inferencia 111
1 p P
2 q P
3 r P
4 (p ∧ q) P
C1 , 5 (q ∧ r) A2,3
C2 , 6 (p ∧ q) ∧ (q ∧ r) A4,5
C (q ∧ r) SI5,6
La regla de Simplificación II (SII) establece que si una premisa es verdadera, la disyunción con cualquier
otra premisa garantiza que esta continúe siendo verdadera. Eso se puede verificar mediante la definición
propia del operador booleano de disyunción, el cual define que para que una proposición sea verdadera,
basta con que solo una de las proposiciones sea verdadera.
1 p P
C p∨q II.S1
1 q P
C p∨q II.S1
1 6 es un número perfecto P
C 6 es un número perfecto ó 6 es divisible por 2 II.S1
1 25 es divisible por 5 P
C 25 es divisible por 5 ó 3 es un número perfecto II.S1
1 ¬r ∨ q P
1 ¬r P
C (¬r ∨ q) ∨ ¬r II.S1
La regla II de simplificación se puede usar en una lista de premisas. Si se quiere demostrar q ∨s, a partir
de las premisas 1,2, y 3. Se puede observar que a ¬¬q se le aplica la regla de la doble negación quedando
solo q, y posteriormente se aplica la regla II de simplificación con la cual se sigue garantizando que la
conclusión sigue siendo verdadera.
112 Argumentos, reglas de inferencia y lı́mites de la lógica
.:Actividad 3.8.
Tabla 3.14
1 ¬[(p ∧ q) ∧ r] → (p ∧ r) P
2 ¬(p ∨ r) P
Tabla 3.15
1 ¬p → [(¬p ∨ q) ∧ (p ∧ q)] P
2 ¬(t ∧ r) P
3 p → (t ∧ r) P
3.3.8 Transitiva
La regla Transitiva (T) parte de dos proposiciones condicionales, a partir de la cual se genera otra
proposición. Esa nueva proposición es otro condicional el cual se compone del antecedente de la primera
proposición y el consecuente, es el consecuente de la segunda expresión condicional. La regla transitiva
se presenta a continuación:
1 p→q P
2 q→h P
C p→h T1,2
La regla Transitiva se puede ejemplificar mediante las siguientes premisas: Si realizo la pasantı́a en
México entonces me alojaré en vivienda familiar; si me alojo en vivienda familiar ahorrare dinero; por
lo tanto si realizo la pasantı́a en México ahorraré dinero.
1 p→q P
2 q→r P
C p→r T1,2
A continuación se muestra otro ejemplo con la aplicación de la regla Transitiva. La conclusión obtenida
a partir de las premisas sigue siendo válida.
114 Argumentos, reglas de inferencia y lı́mites de la lógica
La regla Transitiva se puede usar en una lista de premisas. Si se quiere demostrar p → r, a partir de
las premisas 1,2, y 3, es posible aplicar las siguientes reglas:
1 (q → r) ∧ p P
2 p→q P
3 ¬r P
4 q→r IS1
C p→r T2,4
.:Actividad 3.9.
1. Dadas las siguientes premisas aplique la regla transitiva garantizando que la conclusión sea
verdadera.
Si apruebo las asignaturas del ciclo básico entonces puedo cursar las del ciclo profesional; si
curso las asignaturas del ciclo profesional podré presentar el trabajo de grado.
Si Alberto no aprende inglés entonces no puede viajar; si Alberto no puede viajar pierde los
tiquetes aéreos.
Si las personas tienen buena lógica, entonces tendrán éxito en los cursos de programación;
si tienen éxito en los cursos de programación, entonces podrán realizar un buen trabajo de
grado.
2. Aplique las reglas de inferencia a las siguientes premisas, para demostrar ¬p.
1 (q → r) ∧ p P
2 p→q P
3 ¬r P
4
C
3.3.9.1 Regla I
La regla I De Morgan establece negando una conjunción se obtiene la disyunción de las negaciones de
cada una de las proposiciones que esta contiene. La regla I se presenta a continuación:
1 ¬(p ∧ q) P
C ¬p ∨ ¬q M1
Por ejemplo si se tiene la premisa: Es falso que, un menor tiene cédula y puede ejercer el derecho al
voto. Se encuentra que las expresiones: una persona tiene cédula y puede ejercer el derecho al voto,
son afirmativas, pero están unidas por la conjunción e influenciadas por la negación.
Cuando se aplica la regla De Morgan, cada una de las proposiciones queda negadas, por lo tanto ambas
ya no son afirmativas. El operador original de conjunción se transforma a conjunción. Para el ejemplo
anterior entonces la expresión queda de la siguiente forma:
Al igual que en las anteriores reglas de inferencia, es posible aplicar la regla de De Morgan a un
conjunto de premisas. Por ejemplo, en el siguiente listado se puede observar que en la lı́nea 9 se tiene
la expresión: ¬(p = 1 ∧ q = 8), en donde se observa que es posible aplicar la regla de Morgan. La
conclusión continua siendo verdadera, pero ambas expresiones quedan negadas ası́: p 6= 1 ∨ q 6= 8.
1 p=1→q>5 P
2 ¬(q 6= 8) P
3 p+5=7→p=1 P
4 q > 5 → q 6= 8 P
5 (p = 1 ∧ q = 8) → p + 5 = 7 P
C1 , 6 p = 1 → q 6= 8 T1,4
C2 , 7 p 6= 1 T T6,2
C3 , 8 p + 5 6= 7 T T3,7
C4 , 9 ¬(p = 1 ∧ q = 8) T T5,8
C p 6= 1 ∨ q 6= 8 M9
3.3.9.2 Regla II
La regla II De Morgan establece que negando una disyunción de proposiciones, se obtiene la negación
de cada una de estas unidas por el operador de conjunción. La regla II se presenta a continuación.
1 ¬(p ∨ q) P
C ¬p ∧ ¬q M1
116 Argumentos, reglas de inferencia y lı́mites de la lógica
Por ejemplo si se tiene la premisa: Es falso que, un menor tiene cédula o puede ejercer el derecho
al voto. Se tiene que las expresiones: un menor tiene cédula o puede ejercer el derecho al voto, son
afirmativas, están unidas por una disyunción y están negadas. Cuando se aplica la regla De Morgan,
para el ejemplo se puede observar que cada una de las proposiciones ya no es afirmativa, por lo tanto,
cada una de ellas queda negadas y son unidas por el operador de conjunción. La conclusión queda
expresada de la siguiente manera:
Diferentes reglas de inferencia han sido a las premisas que se presentan en el ejemplo. Se observa que
en la lı́nea 6, es posible aplicar la regla De Morgan a la conclusión ¬(s ∨ p).
1 ¬q P
2 ¬(p ∧ q) P
3 ¬[(p ∧ q) ∨ ¬(s ∨ p)] → q P
C1 , 4 ¬¬[(p ∧ q) ∨ ¬(s ∨ p)] T T3,1
C2 , 5 (p ∧ q) ∨ ¬(s ∨ p) DN4
C3 , 6 ¬(s ∨ p) T P2,5
C ¬s ∧ ¬p M6
.:Actividad 3.10.
1. Dadas las siguientes premisas, formalicelas y aplique entre ellas la regla de Morgan I y II de
manera que la conclusión sea verdadera.
2. Dadas las siguientes premisas, formalı́celas y aplique reglas de inferencia que permitan demostrar
que: p 6= 1 ∨ q 6= 9.
1 p=1→q>3 P
2 ¬(q 6= 9) P
3 p+3=7→p=1 P
4 q > 3 → q 6= 9 P
5 (p = 1 ∧ q = 9) → p + 3 = 7 P
C
3.3 Reglas de Inferencia 117
3.3.10 Bicondicional
La regla Bicondicional (B) permite derivar de una expresión bicondicional, dos condicionales, cuyas
forma de representación se presentan a continuación.
a)
1 p↔q P
C p→q B1
b)
1 p↔q P
C q→p B1
La regla del bicondicional también establece que de una expresión bicondicional, se puede concluir los
condicionales con las formas (a) y (b), unidos por el operador de disyunción, tal como se representa a
continuación.
c)
1 p↔q P
C (q → p) ∧ (p → q) B1
Otra aplicación de la regla del bicondicional permite que a partir de dos expresiones condicionales
independientes se pueda concluir un bicondicional.
d)
1 p↔q P
2 q↔p P
C (p ↔ q) B1,2
e)
1 q↔p P
2 p↔q P
C (p ↔ q) B1,2
Se puede observar que a partir de sus condicionales, es posible concluir el condicional de forma tal que
este sigue siendo verdadero. También se podrı́a expresar ası́:
1 q ↔ (s ∧ q) P
2 ¬[¬(s ∧ q) ∨ r] P
C1 , 3 ¬¬(s ∧ q) ∧ ¬r M2
C2 , 4 ¬¬(s ∧ q) IS3
C3 , 5 s∧q DN4
C4 , 6 s∧q →q B1
C q P P5,6
.:Actividad 3.11.
1. Dadas las siguientes premisas, formalicelas y aplique diferentes reglas de inferencia incluyendo
necesariamente el bicondicional.
El número x es impar par si y sólo si no es divisible por 2.
Un número x es compuesto si y sólo si tiene más de dos divisores.
Un número es divisible por 3 si y sólo si al sumar sus cifras el resultado es múltiplo de 3.
2. Dadas las siguientes premisas, complete de acuerdo a la regla del bicondicional
1 Si x + 4 = 8 entonces x = 4 P
2 Si x = 4 entonces x + 8 = 8 P
C
3.3 Reglas de Inferencia 119
1 Si p2 = q → q = p P
2 Si p = q → q > p P
Si (p = q → q > p) → (q = p → p2 = q) P
1 p→q P
2 s→h P
3 p∨s P
C q∨h D1,2,3
Por ejemplo si se tienen las siguientes premisas: Si Lorena aprueba el curso, entonces gana la beca. Si el
estudiante gana la beca, entonces representa a la universidad. A partir de los condicionales se obtiene la
disyunción con los antecedentes quedando la premisa: Lorena aprueba el curso o la estudiante gana la
beca. A partir de la regla del Dilema, se obtiene la conclusión: La estudiante gana la beca o representa
a la Universidad.
Por ejemplo, si se tienen tres premisas, se puede obtener una nueva premisa aplicando la segunda regla
de simplificación. De acuerdo a la configuración que se tiene, es posible entonces aplicar la regla del
dilema a las premisas.
1 s → (s ∧ t) P
2 q→p P
3 s P
C1 , 3 s∨q IIS3
C p ∨ (s ∧ t) D1,2,4
.:Actividad 3.12.
1. Aplique las reglas de inferencia necesarias a las siguientes premisas, para demostrar (s v q).
120 Argumentos, reglas de inferencia y lı́mites de la lógica
1 p → ¬(s ∨ q) P
2 h→q P
3 p→s P
4 h P
1 p∨p P
C p SD1
Por ejemplo en la siguiente lista de premisas se aplican diferentes reglas de inferencia. Se observa que
la premisa de la lı́nea 6 tiene la estructura r ∨ r, en este caso es posible aplicar la regla de simplificación
disyuntiva, obteniendo como simplificación la conclusión n.
3.3 Reglas de Inferencia 121
1 ¬(p ∧ q) P
2 ¬q → r P
3 ¬p → r P
4 m → ¬r P
C1 , 5 ¬p ∨ ¬q M1
C2 , 6 r∨r D3,2,5
C r SD6
Otra definición de simplificación disyuntiva es la propuesta por (Flores, 2011) “Si disponemos de
dos premisas que corresponden a dos implicaciones con el mismo consecuente, y sus antecedentes se
corresponden con los dos miembros de una disyunción, podemos concluir con el consecuente de ambas
implicaciones”. Por ejemplo si se tienen las premisas:
El vuelo es por aerolı́nea nacional o extranjera.
Si vuela por aerolı́nea nacional, entonces se acumulan millas a la cuenta del viajero
Si viajas por aerolı́nea extranjera, entonces se acumulas millas a la cuenta del viajero.
Entonces, acumulan millas a la cuenta del viajero.
Formalizando las anteriores expresiones, se tiene respectivamente:
p∨q
p→r
q→r
De lo cual se puede concluir r.
.:Actividad 3.13.
1. Aplique las reglas de inferencia a las siguientes premisas, para demostrar h
1 ¬(negp ∨ ¬q) P
2 p → (h ∧ t) P
3 q → (h ∧ t) P
1 p → ¬q P
2 ¬¬q P
3 ¬(s ∨ p) → p P
C
122 Argumentos, reglas de inferencia y lı́mites de la lógica
a)
1 p→q P
C ¬q → ¬p CC1
b)
1 ¬q → ¬p P
C p→q CC1
c)
1 q→p P
C ¬p → ¬q CC1
d)
1 ¬p → ¬q P
C q→p CC1
Por ejemplo si se tiene la premisa: Si una persona paga los impuestos, entonces tendrá beneficios
tributarios. Corresponde a la estructura:
a)
1 p→q P
C ¬q → ¬p CC1
O también
En la siguiente lista de premisas se aplican reglas de inferencia. Se observa que en la premisa de la lı́nea
6 tiene la estructura p → (p ∧ q), se puede aplicar la regla de condicional contrarrecı́proca, obteniendo
como conclusión ¬(p ∧ q) → ¬p.
1 p→t P
2 t → ¬s P
3 ¬s → (p ∧ q) P
4 ¬¬q P
C1 , 5 p → ¬s T1,2
C2 , 6 p → (p ∧ q) T5,3
C ¬(p ∧ q) → ¬p CC6
.:Actividad 3.14.
1. Aplique las reglas de inferencia a las siguientes premisas, para demostrar ¬p ∨ q.
1 p→q P
2 ¬q P
C1 , 3 ¬q → ¬p) CC1
C2 , 4 ¬p P P2,4
C ¬p ∨ q
2. Aplique las reglas de inferencia a las siguientes premisas, para demostrar ¬(r ∧ p) → ¬r.
1 r→t P
2 t → ¬¬¬s P
3 ¬s → (r ∧ p) P
P P
C
124 Argumentos, reglas de inferencia y lı́mites de la lógica
CAPÍTULO 4
Lógica cuantificada LC
Los aprendizajes que se espera el estudiante obtenga al finalizar este capı́tulo de la lógica cuantifica o
de predicados son:
Identificar los elementos fundamentales del cálculo de predicados y cuál es su relación con el
cálculo proposicional.
Entender y aplicar los conceptos: término, predicado.
Representar los predicados y su lista de términos.
Establecer equivalencias entre proposiciones que utilizan cuantificadores.
Conocer y aplicar el concepto de argumento constante y argumento variable.
Conocer las equivalencias lógicas clásicas dentro del cálculo de predicados.
Conocer la deducción natural de la lógica cuantificada.
4.1 Introducción
En este capı́tulo se analizarán los elementos fundamentales de la lógica cuantificada (o de predicados),
la cual permite extender la capacidad expresiva y de aplicación del cálculo proposicional. La lógica
cuantificada es una generalización de la lógica proposicional, en la cual se introducen nuevos elementos
del lenguaje, los cuales permiten estudiar y detallar la estructura interna de los enunciados (propiedades
y las relaciones entre los objetos), es decir su estructura sintáctica y semántica.
En la lógica proposicional (LP ) la formalización de las expresiones se puede realizar sin que existan
relaciones entre los objetos, sin embargo, existen situaciones en las cuales el cálculo proposicional no
126 Lógica cuantificada LC
es suficiente para representar todas las afirmaciones que se puedan expresar. Por ejemplo, si se tienen
expresiones como “y < y + x ”, “y = w × 2 ”, no se puede afirmar si estas expresiones son verdaderas o
falsas. Solo cuando se asocien valores a cada una de las variables w, x, y, se podrá establecer un valor
de verdad de verdad o falsedad a la expresión.
La lógica cuantificada, es vista desde ahora como una ampliación de la lógica de enunciados que
cuenta un lenguaje formal más rico (más expresivo) y con un conjunto de reglas que permiten validar
razonamientos expresados utilizando este lenguaje. La lógica de enunciados (LP ) debe entenderse a
partir de este momento, como un subconjunto de la lógica de predicados.
La lógica cuantificada permite simbolizar enunciados o razonamientos con los cuales se dificulta su
simbolización en LP , un ejemplo de estos casos son los siguientes:
Primera situación. Simbolizar el siguiente argumento en LP . (Cardona, Hernández & Jaramillo, 2010)
.
Este razonamiento es válido, veamos ahora que pasa con este razonamiento en LP .
Sea:
La otra situación es poder simbolizar este tipo de enunciados “Todos los estudiantes de lógica tienen
carro o no lo tienen ”.
Para poder simbolizar este enunciado en LP , se tendrı́a que asignar una letra proposicional a cada
uno de los estudiantes del curso de lógica, por ejemplo:
Asumiendo que Andrés, Jorge y Valentina son estudiantes del curso de lógica, el enunciado tomarı́a la
forma:
4.2 Semántica en LC 127
Retomando la inferencia:
Se puede analizar la estructura interna de las proposiciones y se puede escribir de una forma general:
Los elementos A, B y C , son objetos que se pueden elegir libremente. Con base en lo anterior, se hace
necesario identificar otras estructuras que permitan un análisis más exhaustivo de las relaciones de las
proposiciones atómicas, y es en este punto donde la lógica cuantificada se puede aplicar.
Inicialmente, para el análisis más detallado de las proposiciones atómicas se analizarán algunos
conceptos preliminares.
4.2 Semántica en LC
Como se evidenció en la anterior sección, es necesario que a cada una de las proposiciones atómicas,
se le concrete a que objetos reales se hace referencia.
4.2.1 Términos
El término es una expresión en la que se hace referencia a un objeto en particular dentro de una
proposición. Los objetos pueden ser personas, cosas fı́sicas, conceptos. Por ejemplo si se tienen las
proposiciones:
Mario no se divierte
Andrés practica deporte
El automóvil es nuevo
Felipe tiene el mejor promedio
Los términos para estas proposiciones son respectivamente: José, Marı́a, El carro, cinco y cuatro.
El término no siempre debe hacer referencia a un nombre en particular, también puede ser una frase
de la que se pueda identificar el objeto particular, por ejemplo:
La siguiente es una propuesta de clasificación de los términos, hecha por algunos autores como
Constantino Malagón Luque Profesor – Investigador Universidad Nebrija1
Términos singulares o constante: El objeto referenciado es alguien o algo especı́fico. También puede
interpretase como una palabra o frase que designe o se refiera a una cosa individual. Por ejemplo: los
nombres propios (Jorge, Andrés, etc) y las descripciones definidas (el inventor del computador, el
actual presidente de Colombia).
4.2.2 Predicado
La lógica de predicados utiliza dentro de sus conceptos más importantes, el concepto de término el
cual ya se analizó en la anterior sección y el concepto de predicado. El término representa objetos
particulares o especı́ficos. Los predicados denotan o expresan las caracterı́sticas, cualidades o atributos
de los objetos.
En una descripción más general un predicado es una afirmación que expresa una propiedad de un objeto
o una relación entre objetos. Estas afirmaciones se hacen verdaderas o falsas cuando se reemplazan las
variables (objetos) por valores especı́ficos. (Tomado de [González, 2013])
En la anterior proposición se tiene que Mario Vargas es el sujeto de la misma, por lo tanto es un término
y escritor es el resto de la proposición que dice algo del sujeto y por lo tanto este es el predicado.
Las siguientes expresiones atómicas permitirán identificar tanto su término como su predicado:
(Cardona, Hernández & Jaramillo, 2010)
En el enunciado “El Real Madrid es campeón”, “Campeón” es el predicado y se simboliza Cr, donde
C representa el predicado “Campeón” y r denota el témino que en este caso es el Real Madrid.
Por ejemplo, si se tiene Cx, serı́a una función proposicional, que indica que x tiene la propiedad C, y
si nos referimos al ejemplo anterior, indicarı́a que x es un campeón. Cuando x es remplazado por la
constante r, indica que Real Madrid es campeón.
Por ejemplo, si tenemos que Hxy, donde H representa x es hermano de y, el grado de H es dos, debido
a que usa dos variables proposicionales, también dirı́amos que es un predicado binario. Mientras que
Cx representa x es un cantante, es de grado uno (unario).
Si tenemos que Andrés es ingeniero, donde Ándres es el término singular e ingeniero es el predicado.
En la frase: Todos los ingenieros de Sistemas saben programar. Se refiere al conjunto de los ingenieros,
no a uno en particular.
Nota: Por lo general, los enunciados generales son antecedidos por palabras como: todos, algunos,
alguien, cada, ninguno, términos llamados cuantificadores.
.:Actividad 4.1.
1. Dadas las siguientes proposiciones atómicas, identifique los términos y los predicados. Además,
determine si son predicados singulares o generales y el grado de cada proposición.
130 Lógica cuantificada LC
La lista de argumentos la compone un solo objeto que para este caso es Luis y su predicado es Magister
en Informática.
En esta segunda forma de representación, continuaremos teniendo en cuenta únicamente los términos
constantes individuales. Para este caso, cada predicado tiene un nombre, el cual va seguido por una
lista de argumentos (parámetros), los cuales van entre paréntesis.
ejecutiva(Mariana)
capitalDepartamento(Armenia,Quindio)
De la misma forma en la cual en el cálculo proposicional las expresiones tienen un valor de verdad o
falso, pasa en el cálculo de predicados, en el cual estos valores de verdad dependen de sus argumentos.
Un predicado puede ser cierto para un grupo de argumentos pero falso para otro conjunto. Por ejemplo
4.2 Semántica en LC 131
si se tiene el predicado:
Se puede afirmar que este tiene un valor verdadero, pero si se tiene el mismo predicado pero con otro
argumento, no necesarios son verdaderos como por ejemplo:
Los predicados también pueden ser utilizados para asignar una cualidad abstracta a sus términos, o
para representar acciones o relaciones de acción entre dos objetos2 . Por ejemplo:
duerme (Micaela)
clima (martes, lluvioso)
quiere (Alberto, Liliana)
lee (Marcela, periódico)
visito (Gloria, cárcel)
Al igual que en el capı́tulo de cálculo proposicional donde se mencionaba que la validez de las
expresiones únicamente desde el punto de vista de su estructura, sin tener en cuenta el significado
semántico de tales expresiones, en el cálculo de predicados se considera la validez de los predicados en
relación con el contexto del mundo real, sin embargo, se sigue trabajando con su significado semántico.
Estos predicados que se asumen como lógicamente verdaderos se conocen como axiomas.
Barcelona es campeón.
Ci
A continuación se muestran otros ejemplos en los cuales se representan mediante la anterior notación:
.:Actividad 4.2.
Por ejemplo si se tiene la expresión: “7 es un número primo”, se está particularizando un elemento que
para este caso es el número 7, y se podrı́a decir la expresión es verdadera o es falsa.
Pero si se tiene una expresión como “x es un número perfecto”, se está hablando de un argumento
variable, y no se puede afirmar si la expresión es verdadera o es falsa porque x no hace referencia a
un objeto particular. Si se sustituye x por algún valor, será posible identificar el valor de verdad, por
ejemplo:
También puede suceder un caso como el siguiente: moneda(españa,x), la variable x puede tomar el
valor euro, permitiendo afirmar que el predicado es verdadero; o puede tomar el valor peso, dando
lugar a un predicado falso.
Normalmente en el cálculo de predicados se utilizan las letras “x”, “y”, “z” para representar argumentos
variables. También se utiliza dentro de este cálculo las letras “a”, “b”, “c” para representar argumentos
constantes.
Las fórmulas atómicas corresponden a predicados únicos, asociados a una lista de términos o
argumentos. Este tipo de fórmulas son expresiones que también dentro del cálculo de predicados se
pueden combinar con los operadores lógicos, tal como se hacı́a con las proposiciones, con el objetivo
de conformar expresiones más complejas. Los operadores lógicos son los mismos operadores utilizados
en el cálculo proposicional.
En el caso de la expresión: Andrés y Bernardo son Odontólogos, se tiene el operador lógico y, entonces
mediante la primera forma de representación se tendrı́a:
¬M a ∧ ¬M b
4.4 Tipos de cuantificadores 133
Usando la segunda forma de representación, por ejemplo si se tiene la expresión: Natalia es arquitecta
y Natalia tiene planos. Entonces se puede formar:
arquitecta(Natalia) ∧ tienePlanos(Natalia)
asignatura(lógica) ∧ asignatura(Algoritmia)
El edificio no es alto:
¬ alto(edificio)
Cada uno de los casos anteriores, muestra elementos contantes en su lista de argumentos, pero es de
recordar que no siempre se asocian elementos particulares. Para este caso se pueden tener expresiones
con argumentos variables tales como:
color(x) ∧ precio(x)
colombiano(y) ∨ chileno(y)
nota(x) → (x ≥ 0.0) ∧ (x ≤ 5.0)
carro(z) ∧ blanco(z)
De las anteriores expresiones, para poder particularizar, es posible sustituir un término especifico en
cada una de las ocurrencias de x, y y z. Lo cual podrı́a representar la expresión por un objeto en
concreto de la siguiente forma respectivamente:
color(campero) ∧ precio(campero)
colombiano(Didier) ∨ chileno(Didier)
nota(parcial) → (parcial ≥ 0.0) ∧ (parcial≤ 5.0)
carro(mari) ∧ blanco(z)
.:Actividad 4.3.
1. Dadas las siguientes expresiones, representarlas con argumentos variables y determine su validez.
No fuese posible expresarla con los elementos que se han explicado, pues cada una de ellas denota una
frecuencia con la cual es verdadera alguna cosa. Por lo anterior, se hace necesario incluir elementos
adicionales que permitan generalizar las expresiones. Inicialmente se analizará el cuantificador
Universal.
Ejemplo.
ó
(∀x)(Ax → Bx)
Si se desea representar por ejemplo la expresión: “Todas las personas tienen una ilusión”. Para este
caso se identifica el predicado: “tienen una ilusión”, entonces P x significa que x tiene una ilusión. La
palabra “todas las personas” indica que esto se aplica para todos los x. Se formaliza:
(∀x)(Ax → P x)
Donde Ax es x es persona. El predicado anterior también se puede escribir de la siguiente forma:
(∀x)(Ax → P x)
A continuación, se muestra una seria de formalizaciones de expresiones en las cuales se aplica el
cuantificador universal afirmativo.
Todos los Bogotanos son Colombianos, se puede representar: Para todo x, si x es Bogotano,
entonces x es colombiano
(∀x)(Bogotano(x) → Colombiano(x))
(∀x)(Ax → ¬Bx)
Las frases que comúnmente se usan para denotar el cuantificador Universal negativo son:
Para ningún x
Ninguno
No
Nadie
Nada
Si por ejemplo se desea representar la expresión: “ningún empleado público es menor de edad”, En
este caso “ningún empleado público” hace referencia a todo un universo de todos los empleados y el
predicado es “es menor de edad” y por lo tanto se usa para expresar una negación.
(∀x)(Ex → ¬M x)
También los argumentos pueden estar seguidos de los predicados sin necesidad de paréntesis. Pero para
efectos de este libro, utilizaremos los paréntesis.
(∀x)(¬empresario(x))
(∀x)(¬gano(x))
136 Lógica cuantificada LC
.:Actividad 4.4.
Dentro de este cuantificador hay un caso especial, el cual se utiliza para indicar que un único objeto del
universo del discurso cumple cierta propiedad, es el cuantificador universal particular y se simboliza
∃!.
Algunas de las frases con la que se identifica generalmente este cuantificador son:
Existe al menos un x Para algún x Para algunos x Existe un x tal que Algunos x Cuando menos
un x
Ejemplo:
ó
Por ejemplo si se quiere representar la expresión: “Existe al menos un mexicano que escribe poemas y
es polı́tico”, se puede formalizar de la siguiente manera:
(∃x)(Ax ∧ Bx)
Si se desea representar la expresión: “Algunos estudiantes son deportistas”, se podrı́a reestructurar y
representar de la siguiente manera:
(∃x)(Ax ∧ ¬Bx)
Por ejemplo, la frase “Algún número primo no es impar”
(∃x)(primo(x) ∧ ¬impar(x))
Otro ejemplo serı́a “Algunos profesores no tienen Doctorado”. Se puede representar de la siguiente
manera:
“Existe por lo menos un x tal que, x es profesor y x no tiene Doctorado”.
Los cuantificadores existencial y universal son complementarios, es decir, que uno se puede escribir
en términos del otro. Por ejemplo, si decimos: “Todos los ingenieros saben Java”, esta frase se puede
escribir de la forma “No existen ingenieros que no sepan java”. Veamos la siguiente tabla:
Todos son hombres equivale a decir es falso que algunos no sean hombres.
Ninguno es hombre equivale a decir es falso que algunos sean hombres
Algunos son hombres equivale a decir es falso que ninguno sea hombre
Algunos nos son hombres equivale a decir es falso que todos sean hombres.
Existen otros tipos de equivalencias llamadas de oposición aristotélica, a continuación se muestran las
equivalencias.
1. (∀x)(P x → Qx)
2. ¬(∃x)¬(P x → Qx)
3. ¬(∃x)¬(¬P x ∨ Qx)
4. ¬(∃x)(P x ∧ ¬Qx)
Otras equivalencias lógicas que se usan en el cálculo de predicados son las siguientes:
.:Actividad 4.6.
1. Exprese las siguientes expresiones en lenguaje natural, de forma que se apliquen las equivalencias
explicadas en esta sección.
(∃x)P x
(∀x)P x → Qx ↔ Sx
(∃x)P x ∨ Sx
Si el cuantificador antecede los paréntesis, su alcance abarca a toda la expresión que se encuentra entre
los paréntesis, por ejemplo:
(∀x)(Qx ↔ Sx)
(∃x)(P x → Qx ↔ Sx)
Px
P x ↔ Qx ↔ Sx
Qx ∨ Sx
(∀x)(∃y)(Qx ↔ Sy)
(∃y)(∀x)(P y → Qx ↔ Sx)
La lógica cuantificada cuenta con su propio lenguaje formal, sólo que el alfabeto ahora es una extensión
del alfabeto definido en LP .
140 Lógica cuantificada LC
4.5.1 Alfabeto de LC
Letras proposicionales: Son las mismas de LP
p, q, r, s, t, u, v, w, x, y, z
p1 , p2 , . . ., pn
q1 , q2 , . . ., qn
Predicados:. Letras mayúsculas del alfabeto (opcionalmente con super ı́ndice para indicar el grado
del predicado).
A, B, C, . . .
Términos
Variables: denotadas por las últimas letras del alfabeto x, y, z. Permiten representar cosas, elementos
o individuos que no están definidos.
Constantes: Se denotan por las primeras letras del alfabeto a, b, c, . . .. Estas permiten representar
cosas, elementos o individuos que están claramente definidos.
Operadores lógicos.
Unarios: ¬, ∀, ∃
Binarios: ∧, ∨, → y ↔
Sı́mbolos de asociación.
(, )
Numerales
Se utilizan para indicar, de manera opcional el grado del predicado.
Valores de verdad.
v(·) = V y v(·) = F
Es toda expresión de LC que sea o una letra proposicional, o un predicado de LC de grado n, seguido
de n términos individuales de LC.
4.8 Deducción en LC
Para verificar la validez de los argumentos en la lógica cuantificada, se mantienen las reglas de inferencia
vistas en La lógica proposicional y se agregan cuatro nuevas reglas.
Espansión semántica del cuantificador universal Es la conjunción de todas sus instancias de sustitución.
1. (∀x)P x P
C Pa E∀1 (a/x)
Por ejemplo:
1. (∀x)(Lx → P x) P
2. Lj P
C,3 Lj → P j E∀1 (j/x)
C Pj M P23
1. Pa P
C (∀x)P x I∀1
i. La variable x debe ser arbitraria, esto quiere decir que cuando se ha deducido P x, donde esta x
podrı́a haberse puesto cualquier otro término.
ii. No aparece en el encabezamiento (hipótesis) de la subdedución donde la regla se aplica.
iii. La introducción del cuantificador universal no debe provocar capturas involuntarias de variables
libres, esto quiere decir que la variable x, no aparece en la fórmula.
Todo el mundo es amigo de todo el mundo, por lo tanto todo el mundo es amigo de si mismo.
La guı́a de simbolización para la formalización del argumento es la siguiente:
U D : Personas.
Axy : x es amigo de y.
Se tendrı́a que:
1. (∀x)(∀y)Axy P
C,2. (∀y)Aby E∀1 (b/x)
C,3. Abc E∀2 (c/y)
C (∀z)Azz I∀3
1. (∃x)P x P
C Pa E∃1 (a/x)
1. (∃x)(Bx ∧ Ax) P
C,2. Bc ∧ Ac E∃1 (c/x)
C,3. Ac S2
C,4. Bc S2
C Ac ∧ Bc A34
1. Pa P
C (∃x)P x I∃1
Ejemplo.
1. (∀x)(Ax → Rx) P
2. (∀x)(Bx → M x) P
3. Aa ∧ Ba. P
C,4. Aa → Ra E∀1 (a/x)
C,5. Ba → M a E∀2 (a/x)
C,6 Aa S3
C,7 Ra M P46
C,8 Ba S3
C,9 Ma M P58
C,10 Ra ∧ M a A79
C (∃z)(Rz ∧ M z) I∃10
Veamos estos otros ejemplos, donde se aplican varias de las reglas anteriores:
1. (∃x)(∀y)Bxy P
C,2. (∀y)Bay E∃1 (a/x)
C,3. Bac E∀2 (c/y)
C,4. (∃x)Bxc I∃3
C (∀y)(∃x)Bxy I∀4
1. (∀x)(Ax → Bx) P
2. Ab P
C,3 Ab → Bb E∀1 (a/x)
C,4 Bb P P23
C (∃x)Bx I∃4
1. (∀x)Bx ∧ (∀x)T x P
C,2. (∀x)Bx S1
C,3. (∀x)T x S1
C,4. Ba E∀2 (a/x)
C,5. Ta E∀3 (a/x)
C,6. Ba ∧ T a A45
C (∀x)(Bx ∧ T x) I∀6
.:Actividad 4.7.
Si todos los códigos son correctos, todos los ejecutalbes funcionan bien. Sin embargo hay un
ejecutable que no funciona bien. por lo tanto no todos los códigos estan correctos.
Los estudiantes de lógica saben programar, Santiago es estudiante de lógica. Luego Santiago
sabe programar.
Todos los números positivos son mayores que cero. 3 es un número positivo. 7 es un número
positivo. Por consiguiente 3 y 7 son números mayores que cero.
Todos los polı́ticos incumplen alguna promesa. Hay polı́ticos que incumplen todas las
promesas. Pero si un polı́tico es votado, entonces cumple alguna promesa. Por lo tanto
hay polı́ticos que no son votados.
2. Verifique que:
γ γ(a)
(∀x)Ax Aa
¬(∃x)Ax ¬Aa
δ δ(a)
(∃x)Ax Aa
¬(∀x)Ax ¬Aa
Con los elementos conceptuales de este capı́tulo, se considera que es posible que el estudiante pueda
trabajar con los temas fundamentales de la programación lógica.
146 Lógica cuantificada LC
CAPÍTULO 5
5.1 Introducción
Tradicionalmente la formación de los estudiantes en Ingenierı́a de Sistemas y profesiones afines, se
orienta hacia el aprendizaje de lenguajes de programación de carácter comercial. Estos lenguajes de
programación trabajan bajo una concepción orientada a aspectos procedimentales e imperativos, los
cuales están direccionados a “como” obtener resultados mediante un conjunto de sentencias dadas
como órdenes. Sin embargo, existen otros paradigmas de programación como el lógico y el declarativo,
que tienen una amplia aceptación en el contexto académico.
Prolog es un lenguaje de programación que trabaja bajo la concepción del paradigma declarativo.
Su nombre tiene origen en la oración en Francés “PROgrammation en LOGique”. Este lenguaje de
programación fue concebido por los investigadores Alain Colmerauer y Philippe Roussel, en la década
148 Programación lógica en Prolog
El lenguaje de programación Porolog es muy utilizado en el área de la inteligencia artificial, sin embargo,
dado su potencial se aplica a nivel académico en el contexto de los sistemas basados en conocimiento y
en general de la algoritmia. Este lenguaje trabaja bajo el paradigma declarativo en el cual se especifica
que se desea obtener y no cómo llegar a la solución, es decir, el lenguaje define la manera en la cual
solucionará el problema. Formalmente, Prolog va buscando en la memoria de trabajo, hechos que se
unifiquen con el objetivo (Cubero & Berzal, 2014).
http://www.swi-prolog.org
Para otras plataformas como Androit en Tables o dispositivos móviles, es recomendable usar la versión
online, la cual, puede ser encontrada en la dirección:
http://swish.swi-prolog.org/
En las tres plataformas, la forma de la instalación es muy simple. En Windows, se descarga el archivo
swipl-w32-721.exe y se instala siguiendo las recomendaciones del programa instalador. (ver figura 5.1)
De igual manera para Mac, el archivo se llama SWI-Prolog-7.2.1.dmg, el cual contiene a Prolog, este
a su vez debe ser copiado a la carpeta Aplicaciones. (ver figura 5.2)
1 Windows es una marca registrada por Microsoft Corporation. Mac-OS es un amarca registrada por Apple Inc.
GNU/Linux es un software bajo distribución de licencia GNU.
5.2 Primeros pasos en Prolog 149
Para Instalarlo en los derivados de Redhat como Fedora y CentOS, se debe tener en cuenta las
instrucciones de compilación, que se muestran en la página de Swi-Prolog:
http://www.swi-prolog.org/build/Redhat.html
Para OpenSuse y sus derivados, se aconseja seguir las instrucciones de la página web:
https://build.opensuse.org/package/show?package=swipl&project=openSUSE%3A11.4
150 Programación lógica en Prolog
Prolog soporta el uso de caracteres alfanuméricos (letras y números). También permite el uso de
caracteres con los cuales se denotan los operadores aritméticos ( - , /, *, +), los caracteres relacionales
(<,>,=) y caracteres lógicos como &. Prolog tiene un conjunto de palabras clave que restringen el uso
de los predicados y las constantes. Estas palabras clave se pueden encontrar en la documentación del
sitio web http://www.swi-prolog.org.
Las variables en Prolog son cadenas de caracteres que deben estar inicializadas en letra mayúscula. Las
variables deben comenzar por mayúscula. Si un identificador comienza por minúsculas se toma como
una constante de tipo symbol, la cual tiene una funcionalidad similar a la de una cadena. Por ejemplo:
Cuenta es una variable, pero cuenta se considera como una constante de tipo symbol. Por lo general
Prolog no diferencia entre mayúsculas y minúsculas. Por ejemplo: hermana, Hermana y HERMANA
representan el mismo predicado.
Los comentarios en Prolog son considerados como el texto que se encuentre delimitado por los sı́mbolos
de apertura (/*) y por los de cierre ( */.) por ejemplo:
Los comentarios de lı́nea son aquellos que aparecen después del signo de porcentaje ( %). Por ejemplo:
1. La Base de datos de conocimiento: Esta base de datos, es sólo una lista de hechos y relaciones,
las cuales “guardan” por ası́ decirlo, todos los hechos y relaciones entre los objetos almacenados.
2. Las consultas: Una vez creada la base de datos del conocimiento, se le hacen las preguntas
pertinentes a Prolog. Este tratará de hacer las inferencias necesarias con los datos que tiene y
retornará una respuesta.
1 animal(perro).
2 animal(gato).
3 animal(oso).
4 animal(leon).
5
6 animal(gnu).
7 animal(oveja).
8 animal(gallina).
9
10 come(perro, gallina).
11 come(gato,gallina).
5.2 Primeros pasos en Prolog 151
12 come(oso,oveja).
13 come(leon, oveja).
14 come(leon,perro).
15 come(oso, leon).
?- animal(X).
X = perro .
En este caso, Prolog, Asigna a la variable X el valor del primer animal almacenado en la base de datos.
?- animal(leon).
true.
En este caso, se indago si el León es una animal, a lo que Prolog contesta con true, lo que indica que
León si es un animal descrito en la base de datos.
?- come(gato, gallina).
true.
Lo que preguntamos, es que si el gato se come a la gallina, Prolog infiere que dicha afirmación es cierta.
Sin embargo, también podemos preguntar:
?- come(X,leon).
X = oso.
Aquı́ se le pregunta al programa por un animal X que se come al león, lo que infiere que es el oso. De
igual forma:
?- come(leon,Y).
Y = oveja.
Donde se le pide a Prolog que indague por qué animal es comido por el león; donde, se infiere que es
la oveja. Ası́ mismo si preguntamos por quien se come al Ñu:
?- come(X,ngu).
false.
Como en la base de datos, no se hace esta definición, Prolog no puede deducirla, por esta razón retorna
false.
152 Programación lógica en Prolog
En las siguientes secciones, se mostrarán ejemplos más elaborados que permitirán al estudiante
profundizar en el tema.
El primer ejemplo que se presenta corresponde a un problema orientado a identificar los cuñados de
una determinada persona. Se presentan las tres secciones: predicados, cláusulas y metas. Este ejemplo
se retoma y adapta de los propuesto en (Cardona, Hernández & Jaramillo, 2010)
1 PREDICATES
2 nondeterm hermana(STRING,STRING)
3 nondeterm hermano(STRING,STRING)
4 nondeterm casado(STRING,STRING)
5 nondeterm cunado(STRING,STRING)
6 CLAUSES
7 casado("Mario","Diana").
8 casado("Juan","Julia").
9 hermano("Juan","Mario").
10 hermana("Julia","Clara").
11 hermana("Julia","Gloria").
12 cunado(A,B):-
13 casado(A,C),
14 hermana(C,B).
15 cunado(A,B):-
16 hermano(A,C),
17 casado(C,B).
18 GOAL
19 cunado("Juan",Z).
La misma situación aplica para los predicados hermano, casado y cunado, los cuales trabajaran
con argumentos de tipo cadena de caracteres.
1 PREDICATES
2 nondeterm hermana(STRING,STRING)
3 nondeterm hermano(STRING,STRING)
4 nondeterm casado (STRING,STRING)
5 nondeterm cunado (STRING,STRING)
5.3 El Lenguaje Prolog 153
La cláusula nondeterm indica que el predicado puede satisfacer muchas clases de posibles objetos.
Tambien es posible utilizar la cláusula determ, que determina que solo puede existir un solo hecho
particular en ese momento. Cuando se hace un uso no adecuado de los predicados determ o
nondeterm, el compilador de Prolog produce un mensaje de error indicando la situación.
1 CLAUSES
2 casado("Mario","Diana").
3 casado("Juan","Julia").
4 hermano("Juan","Mario").
5 hermana("Julia","Clara").
6 hermana("Julia","Gloria").
7 cunado(A,B):-
8 casado(A,C),
9 hermana(C,B).
10 cunado(A,B):-
11 hermano(A,C),
12 casado(C,B).
La sentencia: casado(Mario,Diana).
Tiene como significado que Mario está casado con Diana. Aunque, por la sintaxis, casado
parece ser una función, en realidad es un predicado. casado corresponde a la parte ...está casado
con... de la interpretación en lenguaje natural. Es importante no confundir el concepto de predicado
en Prolog con el de función en un lenguaje procedimental.
Las reglas se componen de cabeza y cuerpo. Son similares a las expresiones si . . . entonces. . . de los
lenguajes de programación procedimentales.
La cabeza se interpreta como una meta a alcanzar y el cuerpo como submetas. Una forma de
alcanzar la meta A es cuñado de B es alcanzar primero las metas A está casado con C y
C es hermana de B.
Las variables deben comenzar por mayúscula. Si un identificador comienza por minúsculas se toma
como una constante de tipo symbol, la cual tiene una funcionalidad similar a la de una cadena. Ejemplo:
154 Programación lógica en Prolog
Juan es una variable, pero juan es una constante de tipo symbol. Por lo general Prolog no diferencia
entre mayúsculas y minúsculas. Por ejemplo: hermana, Hermana y HERMANA representan el mismo
predicado. Una excepción a esta regla es el caso mencionado en el párrafo anterior.
1 GOAL
2 cunado("Juan",Z).
La meta, en este programa, significa: Hallar todos los valores de Z tales que Juan sea cuñado de Z. Es
decir, hallar las personas de las que Juan es cuñado.
Prolog utiliza un procedimiento llamado unificación para llevar a cabo el proceso de inferencia. El
proceso de unificación busca que dos expresiones coincidan. El proceso se realiza mediante el reemplazo
de variables por constantes o también por otras variables. Por ejemplo si se desean unificar las siguientes
expresiones:
cuñado(josé,Z)
cuñado (A,B),
cuñado(josé,Z)
cuñado(A,B) → cuñado(josé,Z)
A/josé
B/Z
.:Actividad 5.1.
1 padre(A,B)
2 padre(X,luis)
3
4 cunado(jose,Z)
5 cunado(luis,B)
6
7 padre(A,B)
8 cunado(jose,luis)
2. Señale con cuales de las siguientes expresiones se puede unificar la siguiente expresión:
1 recomendar(X, movistar)
2 a) recomendar (juan, movistar)
3 b) recomendar (maria, comcel)
4 c) recomendar (A, B)
5 d) convenir (juan, movistar)
6 e) recomendar (juan, Y)
7 f) recomendar (movistar)
cunado(Juan,z).
Para representar la búsqueda que realiza Prolog, se hará uso de una estructura de árbol, en la cual su
raı́z es el objetivo que se pretende.
cunado(Juan,Z).
Lo primero que intenta Prolog es unificar el objetivo con una cabeza de regla o con un hecho. Unificar
dos sentencias es simplemente hacerlas iguales, mediante sustitución de variables. Prolog hará las
sustituciones de variable que sean necesarias para lograr que las dos sentencias sean iguales.
Inicialmente Prolog intenta unificar el objetivo con una cabeza de regla o con un hecho. Unificar
dos sentencias es hacerlas iguales, mediante un proceso de sustitución de variables. Prolog hará las
sustituciones de variable que sean necesarias para lograr que las dos sentencias sean iguales.
Observemos el programa:
1 CLAUSES
2 casado("Mario","Diana").
3 casado("Juan","Julia").
4 hermano("Juan","Mario").
5 hermana("Julia","Clara").
6 hermana("Julia","Gloria").
7 cunado(A,B):-
156 Programación lógica en Prolog
8 casado(A,C),
9 hermana(C,B).
10 cunado(A,B):-
11 hermano(A,C),
12 casado(C,B).
13 GOAL
14 cunado("Juan",Z).
El objetivo unificó con la cabeza de la primera regla. Para hacer la meta y la cabeza de la regla iguales
basta reemplazar A por “Juan” y B por Z (ver lı́neas 7 y 14).
La regla:
Para la unificación en el árbol se adiciona un nodo hijo. En el nodo hijo aparece el cuerpo de la
regla como quedo después de las sustituciones (ver figura abajo). En la gráfica también aparecen las
sustituciones realizadas (ver figura 5.4).
cuando(”Juan”, Z)
A=”Juan”
B=Z
casado(”Juan”, C)
hermano( C, Z)
Figura 5.4
La figura 5.4 ilustra que, para encontrar cuñados de Juan, Prolog intentará:
1. Encontrar alguna persona C, tal que Juan está casado con C. Es decir, hallar la esposa de Juan.
2. Encontrar personas Z, tales que C sea hermana de Z. Es decir, hallar las hermanas de la esposa
de Juan.
Unificación de la meta con la segunda regla
1 CLAUSES
2 casado("Mario","Diana").
3 casado("Juan","Julia").
4 hermano("Juan","Mario").
5 hermana("Julia","Clara").
5.5 Motor de Inferencia 157
6 hermana("Julia","Gloria").
7 cunado(A,B):-
8 casado(A,C),
9 hermana(C,B).
10 cunado(A,B):-
11 hermano(A,C),
12 casado(C,B).
13 GOAL
14 cunado("Juan",Z).
La meta también se puede unificar con la cabeza de la segunda regla. Basta sustituir A por Juan y B
por Z para que la meta y la cabeza de la segunda regla queden iguales. Agreguemos un segundo hijo
a la raı́z del árbol en forma similar a como se agregó el primero:
cuando(”Juan”, Z)
A=”Juan”
B=Z
hermano(”Juan”, C)
casado( C, Z)
Figura 5.5
cuando(”Juan”, Z)
A=”Juan” A=”Juan”
B=Z B=Z
casado(”Juan”, C) hermano(”Juan”, C)
hermana( C, Z) casado( C, Z)
Figura 5.6
Para continuar expandiendo el árbol, se considera cada una de las sentencias de los nodos hijos como
submetas. Se tienen cuatro submetas en el flujo del programa. Se aplica entonces el procedimiento de
unificación a cada uno de ellas. Se presentan la sección clauses y las submetas del primer nodo hijo:
1 CLAUSES
2 casado("Mario","Diana").
3 casado("Juan","Julia").
4 hermano("Juan","Mario").
158 Programación lógica en Prolog
5 hermana("Julia","Clara").
6 hermana("Julia","Gloria").
7 cunado(A,B):-
8 casado(A,C),
9 hermana(C,B).
10 cunado(A,B):-
11 hermano(A,C),
12 casado(C,B).
13
14 Submetas del primer nodo hijo:
15 casado("Juan", C)
16 hermana(C,Z)
La primera submeta se puede unificar con el segundo de los hechos (ver código en negrilla). Basta
reemplazar C por Julia para que la primera submeta y el segundo hecho queden iguales. El reemplazo
también se hace también en la segunda submeta quedando esta de la siguiente manera:
Se agrega un nuevo nodo al árbol. En el nuevo nodo va la segunda submeta como quedó después de
los reemplazos (ver figura 5.7). Como la unificación no fue con una regla, no hay cuerpo de regla para
escribir en el nuevo nodo. La sección de árbol queda:
casado(”Juan”, C)
hermana( C, Z)
C=”Julia”
hermana( ”Julia”, Z)
Figura 5.7
La figura 5.7 ilustra que Prolog encontró que la esposa de Juan es Julia y que lo siguiente que
hará será buscar las personas Z tales que Julia sea hermana de Z. En pocas palabras, Prolog buscará las
hermanas de Julia.
1 CLAUSES
2 casado("Mario","Diana").
3 casado("Juan","Julia").
4 hermano("Juan","Mario").
5 hermana("Julia","Clara").
6 hermana("Julia","Gloria").
7 cunado(A,B):-
5.5 Motor de Inferencia 159
cunado(”Juan”, Z)
A=”Juan” A=”Juan”
B=Z B=Z
C=”Julia”
hermana( ”Julia”, Z)
Figura 5.8
8 casado(A,C),
9 hermana(C,B).
10
11 cunado(A,B):-
12 hermano(A,C),
13 casado(C,B).
14
15 Submeta:
16 hermana ("Julia", Z)
La meta se puede unificar con el cuarto hecho (ver lı́neas 5 y 16). Basta sustituir Z por Clara . No
hay cuerpo de regla ni subobjetivos adicionales para escribir en el nuevo nodo. Este queda vacı́o.
Gráficamente: (figura 5.9)
hermana( ”Julia”, Z)
Z=”Clara”
NIL
Figura 5.9
El árbol con base en la unificación que produce un nodo vacı́o, queda configurado de la siguiente
manera: (figura 5.10)
Ahora seguimos expandiendo el árbol hasta que todas las hojas sean NIL o sean nodos cuyo primer
objetivo no se pueda unificar con alguna cabeza de regla o hecho. En este primer ejemplo todos los
subobjetivos se pueden unificar, por lo que todas las hojas quedan iguales a NIL. (figura 5.11)
160 Programación lógica en Prolog
cunado(”Juan”, Z)
A=”Juan” A=”Juan”
B=Z B=Z
C=”Julia”
hermana( ”Julia”, Z)
Z=”Clara”
NIL
Figura 5.10
Para obtener la salida del programa anotamos los valores asignados a Z que conduzcan a un nodo
hoja vacı́o. Los valores se presentan en orden de izquierda a derecha como aparecen en el árbol que se
representó anteriormente y para que la salida quede en el mismo orden en que la producirı́a Prolog:
Z=Clara
Z=Gloria
Z=Diana
3 solutions
De esta manera Prolog encuentra las tres cuñadas de Juan con base en los hechos codificados en el
programa.
A continuación se muestra otro ejemplo completo que utiliza razonamiento hacı́a atrás. Este programa
halla los ancestros de una persona.
1 PREDICATES
2 nondeterm padre(symbol,symbol)
3 nondeterm ancestro(symbol,symbol)
4 CLAUSES
5 padre(Juan,pedro).
6 padre(pedro,tibe).
7 padre(tibe,camilo).
8 padre(rober,maria).
9 ancestro(A,B):-
10 padre(A,B).
11 ancestro(A,B):-
12 padre(C,B),
5.5 Motor de Inferencia 161
cunado(”Juan”, Z)
A=”Juan” A=”Juan”
B=Z B=Z
C=”Julia” C=”Mario”
NIL NIL
NIL
Figura 5.11
13 ancestro(A,C).
14 GOAL
15 ancestro(X,tibe).
La meta del programa 5.12, consiste en hallar todos los ancestros de tibe.
PREDICATES
nondeterm padre(symbol,symbol)
nondeterm ancestro(symbol,symbol)
El tipo symbol es similar a una cadena de caracteres pero que no va encerrada entre comillas.
Si un identificador empieza por minúscula, Prolog entenderá que es una constante de tipo symbol y
no una variable. Por ejemplo tibe es una constante de tipo symbol, pero Tibe es una variable.
Lo anterior evidencia que se tiene una rigurosidad en la sintaxis de este lenguaje de programación y
debe ser tenida en cuenta al momento de construir un programa.
Podemos observar recursión. Prolog no dispone de bucles ni de sentencias de decisión, en su lugar utiliza
reglas recursivas. En particular esta regla significa que una forma de llegar a que A es un ancestro de
B es demostrando que algún C es padre de B y que A es ancestro de C.
162 Programación lógica en Prolog
La figura 5.12 ilustra el árbol de búsqueda correspondiente al programa que halla los ancestros. Siguen
explicaciones de algunas de las unificaciones representadas en el árbol.
ancestro(X, tibe)
A=X A=X
B=tibe B=tibe
padre( C, tibe)
padre( X, tibe)
ancestro( X, C)
X=pedro C=tibe
NIL
ancestro( X, pedro)
A=X
B=pedro A=X
B=pedro
padre( C, pedro)
padre( X, pedro)
ancestro( X, C)
X=pedro C=Juan
NIL
ancestro( X, Juan)
A=X A=X
B=Juan B=Juan
padre( C, Juan)
padre( X, Juan)
ancestro( X, C)
* *
Figura 5.12
X=pedro
X=Juan
2 Solutions
La meta se unifica con las dos reglas. Los cuerpos de las reglas, transformados, van en los nuevos nodos.
Observe como se unifica la meta con las dos reglas. Los cuerpos de las reglas, transformados, van en
los nuevos nodos. (figura 5.13)
ancestro(X, tibe)
A=X A=X
B=tibe B=tibe
padre( C, tibe)
padre( X, tibe)
ancestro(X,C)
Figura 5.13
5.5 Motor de Inferencia 163
CLAUSES
padre(Juan,pedro).
padre(pedro,tibe).
padre(tibe,camilo).
padre(rober,maria).
ancestro(A,B):-
padre(A,B).
ancestro(A,B):-
padre(C,B),
ancestro(A,C).
GOAL
ancestro(X,tibe).
Observe como se unifica el primer subobjetivo de un nodo con un hecho. El segundo subobjetivo,
transformado, va en el nuevo nodo. (figura 5.14)
CLAUSES
padre(Juan,pedro).
padre(pedro,tibe).
padre(tibe,camilo).
padre(rober,maria).
ancestro(A,B):-
padre(A,B).
ancestro(A,B):-
padre(C,B),
ancestro(A,C).
Subobjetivos del nodo que se debe expandir:
padre(C,tibe).
ancestro (X,C)
padre(C,tibe).
ancestro (X,C)
Por primera vez se tiene el caso en que el primer subobjetivo de un nodo no se puede unificar con
ningún hecho ni con ninguna regla. En este caso el nodo ”se muere”. Un asterisco indica que nodo no
se expandirá ya más. No interesa que el segundo subobjetivo si se pueda unificar. (figura 5.15)
CLAUSES
padre(Juan,pedro).
padre(pedro,tibe).
padre(tibe,camilo).
164 Programación lógica en Prolog
ancestro(X, tibe)
A=X
B=tibe
padre( C, tibe)
ancestro(X,C)
C=pedro
ancestro(X,pedro)
Figura 5.14
padre(rober,maria).
ancestro(A,B):-
padre(A,B).
ancestro(A,B):-
padre(C,B),
ancestro(A,C).
padre(C,Juan).
ancestro (X,C)
ancestro(X,Juan)
A=X
B=Juan
padre(C, Juan)
ancestro(X,C)
*
Figura 5.15
.:Actividad 5.2.
PREDICATES
nondeterm jugador( symbol)
nondeterm pareja ( symbol, symbol)
nondeterm mayor ( symbol, symbol)
CLAUSES
jugador( pedro).
jugador( Juan).
jugador( Diana).
mayor ( pedro, Diana ).
mayor ( pedro, Juan).
mayor ( Juan, Diana ).
pareja (X,Y):-
jugador(X),
jugador(Y),
mayor ( X, Y).
GOAL
pareja(A,B).
2. Escriba y ejecute un programa Prolog para hallar los abuelos de Luis, con base en los hechos
dados. No incluya en el programa ningún hecho adicional a los dados en el ejercicio. Prolog debe
hacer todo el trabajo de inferencia.
Hechos:
1 PREDICATES
2 entrar (Real, Real)
3 calcular (Real, Real, Real )
4 imprimir (Real)
5 ejecutar
6 CLAUSES
7 ejecutar:-
8 entrar(Base, Altura),
166 Programación lógica en Prolog
1 CLAUSES
2 ejecutar:-
3 entrar(Base, Altura),
4 calcular(Base, Altura, Area),
5 imprimir(Area).
6 entrar(Base, Altura):-
7 write("Base: "),
8 readln(B),
9 str_real(B,Base),
10 write("Altura: "),
11 readln(A),
12 str_real(A,Altura).
13 calcular( Base, Altura, Area):-
14 Base * Altura = Area.
15 imprimir(Area):-
16 write( "Area: ", Area),nl.
17 GOAL
18 ejecutar.
El predicado ejecutar no tiene argumentos (ver lı́neas 2 y 18 del programa 5.14). El programa no
necesitará encontrar valores de variables que hagan verdadero el predicado. El programa unifica la
meta con la cabeza de la primera regla. De hecho, la meta y la cabeza son idénticas. Como resultado
de la unificación, habrá tres submetas para alcanzar: una entrada de datos, un cálculo y una impresión.
1 entrar(Base, Altura):-
2 write("Base: "),
3 readln(B),
4 str_real(B,Base),
5 write("Altura: "),
6 readln(A),
7 str_real(A,Altura).
El predicado entrar en el programa 5.15, representa la meta de que el usuario ingrese por teclado la
base y la altura de un rectángulo. Prolog alcanza esta meta con las siguientes acciones:
Imprimir el letrero Base:
5.6 Flujo de un programa 167
Predicados calculables
imprimir:-
A=3,
write(A), nl,
A=4,
write(A).
El operador igual (=) es un operador relacional y no un operador de asignación. En Prolog no existe
el operador de asignación. En particular la reasignación es imposible. En la regla del ejemplo Prolog
no asignará un valor de 4 a la variable A.
Prolog interpreta la meta A=4 como consiga que 3 sea igual a 4 y no como asigne a A el valor de 4.
La salida del programa indicará que Prolog no puede lograr esto:
3
no
Impresión en pantalla.
imprimir(Area):-
write( "Area: ", Area),nl.
El predicado write tampoco cae en el proceso de unificación. La instrucción simplemente produce
una salida. El predicado nl, new line, representa un avance de lı́nea en la pantalla y se usa en la
mayorı́a de las ocasiones para dar una mejor presentación a la salida de los programas que se están
ejecutando.
Predicados deterministas
168 Programación lógica en Prolog
PREDICATES
entrar (Real, Real)
calcular (Real, Real, Real )
imprimir (Real)
ejecutar
Todos los predicados de este programa son deterministas. Observe que no está la palabra nondeterm
antes de cada predicado. Estos predicados solo pueden satisfacerse una vez, a diferencia de detem, los
cuales son predicados que pueden tener varias instancias y se pueden satisfacer varias veces.
1 PREDICATES
2 entrar ( Real)
3 calcular ( Real, Real )
4 imprimir (Real)
5 nondeterm ejecutar
6 CLAUSES
7 ejecutar:-
8 entrar(X),
9 X>=0,
10 calcular(X,Raiz),
11 imprimir(Raiz).
12 ejecutar:-
13 write("Numero negativo\n").
14 entrar(X):-
15 write("Numero: "),
16 readln(Xs),
17 str_real(Xs,X).
18 calcular( X, Raiz):-
19 Raiz = sqrt (X).
20 imprimir(Raiz):-
21 write("Raiz: "),
22 write( Raiz),nl.
23 GOAL
24 ejecutar.
1. Número: 100
Raı́z: 10
yes
2. Número: -1
Número negativo
yes
El predicado ejecutar no determinista
5.6 Flujo de un programa 169
PREDICATES
nondeterm ejecutar
CLAUSES
ejecutar:-
entrar(X),
X>=0,
calcular(X,Raı́z),
imprimir(Raı́z).
ejecutar:-
write("Número negativo\n").
GOAL
ejecutar.
El predicado ejecutar es no determinista, a pesar de que no tiene argumentos. Esto se debe a que puede
unificarse con dos reglas distintas.
CLAUSES
ejecutar:-
entrar(X),
X>=0,
calcular(X,Raı́z),
imprimir(Raı́z).
ejecutar:-
write("Número negativo\n").
...
GOAL
ejecutar.
Primero, el programa unifica el predicado ejecutar con la primera regla y, por lo tanto, intenta
alcanzar cuatro submetas:
4. Imprimir el resultado.
Si el usuario entra un valor negativo falla la segunda submeta y el programa no intenta alcanzar la
tercera ni la cuarta. Podrı́amos decir que en este programa hay una sentencia if implı́cita.
CLAUSES
ejecutar:-
170 Programación lógica en Prolog
entrar(X),
X>=0,
calcular(X,Raı́z),
imprimir(Raı́z).
ejecutar:-
write("Número negativo\n").
...
GOAL
ejecutar.
Cuando un número negativo hace fallar la primera regla, el programa procede a unificar ejecutar con
la segunda regla. Como resultado de esto imprime el mensaje Número negativo.
Prolog incluye muchas funciones aritméticas como las siguientes: sqrt, exp, sin, cos, tan, abs,
log y ln. En diferentes manuales se encuentran una descripción detallada de estas funciones. Para
más información consultar:
http://www.swi-prolog.org/
.:Actividad 5.3.
Elabore programas Prolog para resolver los siguientes problemas. Pruebe en el computador los
programas.
Resolver una ecuación de primer grado: AX + B = 0, donde A 6= 0. Si el usuario entra un valor
de A igual a cero, el programa debe imprimir el mensaje correspondiente.
Hallar la nota definitiva de una asignatura, la cual es el promedio de dos notas parciales. Además,
el programa imprimir el mensaje ganó o perdió según corresponda. La nota aprobatoria es de
3.0.
Hallar el mayor de tres números enteros,
Hallar las raı́ces reales de una ecuación de segundo grado. AX 2 + BX + C = 0, donde A 6= 0. El
programa imprimir los mensajes correspondientes en caso de que A sea igual a 0, o en caso de
que el discriminante sea negativo.
5.7 Recursión
Si un problema puede resolverse usando la solución de versiones más pequeñas de sı́ mismo, y esas
versiones más pequeñas, se reducen fácilmente a problemas solubles, entonces se tiene un algoritmo
recursivo (Baldwin & Douglas,2004). La recursión es una forma alternativa, para la resolución de
problemas algorı́tmicos y computacionales. En toda definición recursiva de un problema se debe
establecer un estado base, es decir, un estado en el cual la solución no se presente de manera recursiva
sino directamente. Esto permite que las llamadas recursivas no continúen indefinidamente (Cardona,
Jaramillo & Carmona, 2007)
5.7 Recursión 171
Si consultamos un manual de Prolog nos encontraremos con una sorpresa: no hay bucles en Prolog.
Sentencias como for, do ... while y while ..., no existen en Prolog. Solo hay un camino para
lograr la repetición: La recursión.
La llamada a un algoritmo recursivo conduce a una nueva versión del método que comienza a ejecutarse,
también a una organización de la gestión de los parámetros y la memoria.
En esta sección veremos diversos ejemplos que logran con recursión lo que, en otros lenguajes, se hace
con bucles.
5.7.1 Multiplicación
El siguiente método retorna la multiplicación de dos números enteros de forma recursiva. El siguiente
caso de prueba que permita multiplicar los (5 * 3) recursivamente:
5×3 = 5+5×2
5×2 = 5 + 5 = 10
5×1 = 5
Generalizando se tiene:
a×b = a, si b = 1
a×b = a + a × (b − 1), si b > 1
A continuación, se muestra una prueba para este algoritmo recursivo.
multiplicar(5, 4) = 5 + multiplicar(5, 3)
= 5 + (5 + (multiplicar(5, 2)))
= 5 + (5 + (5 + multiplicar(5, 1))
= 5 + (5 + (5 + 5))
= 5 + (5 + 10)
= 5 + 15
= 20
En la siguiente figura se muestra una de las formas como se puede representar este algoritmo recursivo.
(figura 5.16)
0! = 1
1! = 1
2! = 2 × 1 = 2 × 1!
3! = 3 × 2 × 1 = 3 × 2!
4! = 4 × 3 × 2 × 1 = 4 × 3!
.. .. ..
. . .
n! = n × (n − 1)!
172 Programación lógica en Prolog
multiplicar(a, b)
multiplicar(4, 3)
a 4 b 3
multiplicar(4, 2)
a 4 b 2
multiplicar(4, 2)
a 4 b 1
devuelve 4
devuelve 4 + multiplicar(4,2)=8
devuelve 8 + multiplicar(4,3)=12
El factorial está definido en forma recursiva. Es muy natural, entonces, hacer un programa recursivo
para hallar el factorial. La definición es: (figura 5.17)
A continuación se muestra una instancia del algoritmo factorial.
factorial(3) = 3 × (factorial(2))
= 3 × (2 × factorial(1))
= 3 × (2 × 1)
= 3×2
= 6
1 PREDICATES
2 factorial( ushort N, unsigned F)
3 CLAUSES
4 factorial(0,1):-!.
5 factorial(N,F):-
6 M=N-1,
7 factorial(M,F1),
8 F=F1*N.
9 GOAL
10 factorial(5,F).
11 Salida:
12 F=120
13 1 Solution
1.
5.7 Recursión 173
Factorila de n
Factorial (4)
n 4
Factorial (3)
n 3
Factorial (2)
n 2
Factorial (1)
n 1
devuelve: 1
Figura 5.17
Predicates
factorial( ushort N, unsigned F)
Observamos dos tipos de datos enteros, que no habı́amos usado hasta ahora. Para este caso se
debe trabajar con el valor al cual se le desea calcular su factorial.
2.
factorial(0,1):-!.
Esta regla especifica el caso trivial: el factorial de cero es uno. Más adelante se explica el significado
del signo de admiración.
3.
factorial(N,F):-
M=N-1,
factorial(M,F1),
F=F1*N.
174 Programación lógica en Prolog
La regla codifica el método recursivo. Para hallar el factorial de N al que llamamos F el programa
debe:
1. Hallar M, el entero anterior a N, con una resta.
2. Hallar F1, el factorial de M, utilizando el predicado recursivamente.
3. Hallar F, el factorial de N, con una multiplicación
4. factorial(5,F).
El programa se ha codificado con el número 5 fijo, por simplicidad. Es fácil adecuar el programa
para que reciba por teclado un número cualquiera. En este momento el lector ya debe tener los
conocimientos necesarios para hacer esto.
factorial(N,F):-
M=N-1,
factorial(M,F1), Submeta:
F=F1*N. factorial(0,F).
Se requiere de una manera de evitar que se realice la unificación con la segunda regla. Esta es la misión
del sı́mbolo de admiración (!). El sı́mbolo se lee como cortar, es decir detener la búsqueda.
.:Actividad 5.4.
1. Se desea escribir un programa recursivo que calcule la sumatoria de los primeros n números
enteros positivos. Por ejemplo si se desea calcular la sumatoria de los 5 primeros números, una
posible abstracción para resolver el problema puede ser la siguiente:
sumatoria(5) = 5 + sumatoria(4)
= 5 + (4 + (sumatoria(3)))
= 5 + (4 + (3 + sumatoria(2)))
= 5 + (4 + (3 + (2 + sumatoria(1))))
= 5 + (4 + (3 + (2 + 1)))
= 5 + (4 + (3 + 3))
= 5 + (4 + 6)
= 5 + 10
= 15
Sumatoria n
sumatoria (3)
n 3
sumatoria (2)
n 2
sumatoria (1)
n 1
sumatoria (0)
n 0
devuelve: 0
Figura 5.18
.:Actividad 5.5.
La serie de Fibonacci fue Introducida por el matemático Leonardo de Pisa, quien se llamaba
a si mismo Fibonacci. Cada número de la secuencia se obtiene sumando los dos anteriores.
Entonces:
f ib(0) = 1
f ib(1) = 1
f ib(2) = f ib(0) + f ib(1) = 2
f ib(3) = f ib(2) + f ib(1) = 2 + 1 = 3
.
.
.
f ib(n) = f ib(n − 1) + f ib(n − 2)
Por definición, los dos primeros valores son 0 y 1 respectivamente. Los otros números de
la sucesión se calculan sumando los dos números que le preceden. Escriba un programa en
Prolog que resuelva la serie de Fibonacci.
Imprimir los números desde 1 hasta un N dado
176 Programación lógica en Prolog
Cifras n
cifras (4896)
cifras (489)
cifras (48)
n 48 n < 10 (falso)
cifras (4)
n 4
devuelve: 4
Figura 5.19
CAPÍTULO 6
Uno de los métodos de demostración automática es el Método de Resolución, el cual fue diseñando por
J.A Robinson (Robinson, 1965), con el propósito de verificar si un conjunto de cláusulas es insatisfacible.
El método usa una única regla de inferencia, llamada Regla de Resolución. Una de sus caracterı́sticas,
es que tiene como precondición que el conjunto de fórmulas deben ser cláusulas. Para ello es necesario
transformar la formula proposicional a su equivalente en Forma Normal Conjuntiva (FNC).
Los siguientes elementos conceptuales permiten una aproximación al problema en cuestión:
Una cláusula se compone de literales que se encuentran unidos por medio del operador de
disyunción, esta disyunción se puede dar entre cero o más literales.
Por ejemplo la FNC: (p ∨ ¬p ∧ q) ∧ (¬q ∨ p), se puede simplificar en: {p¬pq, ¬qp}.
La regla de resolución se aplica a pares de la cláusulas en las cuales existan literales complementarios
entre ellas. En este caso, dadas dos cláusulas C1 y C2 , en las cuales se tengan un literal de forma tal
que l ∈ C1 y ¬l ∈ C2 , se denomina resolvente de C1 y C2 a la cláusula respecto al literal l:
Por ejemplo si se tienen las cláusulas: C1 = pq¬r y C2 = qr¬t, se tiene que el literal c, está en C1 = ¬r
y en C2 = r, por lo tanto se puede obtener el resolvente entre C1 y C2 :
6.2 Proyecto
El propósito de este proyecto consiste en el diseño e implementación de una herramienta informática,
que permita la comprobación automática de fórmulas proposicionales, aplicando el método de
Resolución Proposicional.
Ingresar al usuario una fórmula proposicional compuesta, mediante una colección de botones
básicos o mediante teclado.
6.3.1 Fase 1
En esta fase está orientada a que el estudiante interprete adecuadamente el problema a resolver en el
proyecto. Las evidencias que se deben generar en esta fase son:
1. Documento con una sı́ntesis de los principales aspectos conceptuales del método de Resolución.
6.3.2 Fase 2
En esta fase está orientada a que el estudiante argumente mediante un diseño, el problema a resolver.
Las evidencias que se deben generar en esta fase son:
6.3.3 Fase 3
En esta fase está orientada a que el estudiante argumente mediante un diseño, el problema a resolver.
Las evidencias que se deben generar en esta fase son:
Cada uno de los indicadores tendrá cuatro niveles de desempeño (Excelente, Bueno, Suficiente,
Deficiente), los cuales se presenta de mayor a menos nivel de complejidad. A continuación se presenta
la descripción del indicador y los niveles de desempeño.
6.4.1 Fase 1
Las evidencias que se deben generar en esta fase son:
1. Documento con una sı́ntesis de los principales aspectos conceptuales del método de Resolución.(ver
tabla 6.1)
Proyecto Final I
6.4 Evidencias de las fases
Indicador Excelente Bueno Suficiente Deficiente
Se presenta un El DFD presentado El DFD presentado El DFD presentado El DFD presenta
diagrama de flujo demuestra compresión demuestra compresión demuestra compresión desconocimiento de los
(DFD) con el del método de parcial del método de parcial del método de procesos y acciones a
proceso para resolución, mostrando resolución, mostrando resolución, pero sin realizar para determinar
determinar la con claridad los procesos algunos procesos y el mostrar los procesos la insatisfacibilidad y
satisfacibilidad o y el flujo de todas las flujo de algunas de las básicos y el flujo de las satisfacibilidad de una
insatisfacibilidad de posibles secuencias, posibles secuencias, secuencias básicas, formula proposicional.
una fórmula orientadas a determinar orientadas a determinar orientadas a determinar
Tabla 6.2
181
182 Proyecto Final I
6.4.2 Fase 2
Las evidencias que se deben generar en esta fase son:
1. Diagrama de clases con las clases de implementación y sus asociaciones. (ver tabla 6.3)
2. Proyecto en java con código fuente que soporta las funcionalidades básicas de acuerdo a los
requerimientos del proyecto. (ver tabla 6.4)
6.4 Evidencias de las fases
Indicador Excelente Bueno Suficiente Deficiente
Diagrama de clases Se presenta un diagrama Se presenta un diagrama El diagrama de clases El diagrama de clases no
con las clases de de clases completo con de clases con la cuenta con la contiene la información
implementación y la información y información básica información adecuada, adecuada ni responde a
sus asociaciones. presentación adecuada (atributos, métodos y pero no responde a los los elementos semánticos
de acuerdo a la asociaciones), con elementos semánticos permitidos.
semántica y sintaxis coherencia entre las permitidos.
permitida (atributos, clases y sus relaciones. No es posible una
métodos, asociaciones, Los elementos del interpretación del
cardinalidad), La mayorı́a de las clases diagrama y sus diagrama.
Tabla 6.3
183
184
Indicador Excelente Bueno Suficiente Deficiente
Proyecto en java con La aplicación permite al La aplicación permite al La aplicación permite al La aplicación permite al
código fuente que usuario ingresar una usuario ingresar una usuario ingresar una usuario ingresar una
soporta formula proposicional formula proposicional formula proposicional fórmula proposicional
funcionalidades compuesta mediante compuesta mediante compuesta mediante compuesta.
básicas de los una interfaz de usuario una interfaz de usuario una interfaz de usuario
requerimientos del completa y la cual básica y la cual contiene básica. No se valida la
proyecto. contiene botones de botones de interacción. correctitud de la formula
interacción. No se valida la proposicional ingresada.
No se valida la correctitud de la
Se valida la correctitud correctitud de la formula proposicional El código fuente de los
de la formula formula proposicional archivos no se encuentra
proposicional, mediante La estructura de la documentada.
la gestión de La estructura de la aplicación
Tabla 6.4
Proyecto Final I
entre 1 y 5 errores de errores de ortografı́a.
ortografı́a.
6.4 Evidencias de las fases 185
6.4.3 Fase 3
Las evidencias que se deben generar en esta fase son:
gestión de excepciones.
gestión de excepciones. la satisfacibilidad o la satisfacibilidad o
La aplicación determina insatisfacibilidad de la insatisfacibilidad de la
La aplicación determina la satisfacibilidad o fórmula proposicional. fórmula proposicional.
la satisfacibilidad o insatisfacibilidad de la
insatisfacibilidad de la La documentación se El código fuente de los
fórmula proposicional.
fórmula proposicional. realiza de una forma archivos no se encuentra
La documentación se muy básica. No se documentado.
La documentación se realiza de una forma consideran convenciones
realiza considerando el básica. Se consideran adecuadas para los
estándar java Doc. convenciones básicas nombres de las variables
La documentación no para los nombres de las y para los distintos tipos
contiene errores de variables y para los de comentarios.
ortografı́a. distintos tipos de
La documentación
comentarios.
presenta entre 6 y 10
La documentación tiene errores de ortografı́a.
entre 1 y 5 errores de
Proyecto Final I
ortografı́a.
CAPÍTULO 7
Dentro del campo de la Inteligencia Artificial una de las áreas de interés de investigación es la
demostración automática. La demostración automática se ocupa entre otras, del desarrollo de métodos
orientados a la automatización de pruebas formales en fórmulas proposicionales y su implementación
en lenguajes de programación. Dentro de los métodos de demostración automática se encuentran los
Tableros Semántico o Tableaux Semánticos, los cuales presentan los sistemas lógicos de una forma
intuitiva, clara y concisa.
El método de los tableros semánticos realiza una búsqueda sistemática de modelos que verifica ciertas
condiciones en una fórmula proposicional, disminuyendo la satisfacibilidad de toda la fórmula a la
de algunos literales de la misma, es decir, la satisfacibilidad para una fórmula proposicional A queda
asociada a la satisfacibilidad de un conjunto de literales.
El procedimiento de decisión de los tableros semánticos puede ser representado mediante un árbol
de formación. La fórmula base representa la raı́z del árbol y cada una de las hojas generadas
como hijos de la raı́z son producto de una búsqueda sistemática y serán considerados como nuevos
nodos o nuevas fórmulas del árbol. El procedimiento del método finaliza cuando todas las hojas o
fórmulas se encuentran debidamente marcadas aplicando α-reglas y β-reglas. Una hoja que contiene
un conjunto complementario de literales será marcada con una X y una hoja que no tenga un conjunto
complementario de literales será marcada con una O. Si la hoja se marca con una X, esta hoja
será insatisfacible (no tiene modelo), en caso contrario esta será satisfacible, (tiene modelo). Un árbol
etiquetado en todas sus hojas, es llamado un tablero semántico.
Ejemplo: Un tablero semántico (árbol que se encuentra etiquetado) para la fórmula A : (p ∧ ¬p) se
muestra en el siguiente árbol:
188 Proyecto Final II
p ∧ ¬p
q ∧ (p ∨ ¬q)
q, p q, ¬q
O X
Planeación: El profesor define los requerimientos del proyecto y las evidencias a generar en esta
fase. Los estudiantes en equipos de trabajo planifican la realización del proyecto.
Ejecución: En esta fase los estudiantes desarrollan el proyecto especificados en la fase anterior,
buscando resolver el problema planteado.
Cada uno de los indicadores tendrá cuatro niveles de desempeño (Excelente, Bueno, Suficiente,
Deficiente), los cuales se presenta de mayor a menos nivel de complejidad. A continuación se
presenta la descripción del indicador y los niveles de desempeño.
2. Se presenta en un blog un análisis conceptual de los tableros semánticos.
190
Indicador Excelente Bueno Suficiente Deficiente
El blog posee una
entrada con un
El blog contiene una
análisis conceptual de
entrada con un
los tableros
análisis conceptual de
semánticos, con el
los tableros
desarrollo de una idea
semánticos,
creativa (mapa
presentando El blog contiene una
conceptual, mapa
coherencia entre la entrada con un
mental), con El blog contiene una
introducción, el análisis conceptual
coherencia entre idea general sobre los
desarrollo y las general sobre los
sı́ para apoyar la idea
conclusiones. tableros semánticos,
Tabla 7.1
Proyecto Final II
7.2 Fases del proyecto 191
1. Se presenta un proyecto en java con código fuente que soporta las funcionalidades básicas de
acuerdo a los requerimientos del proyecto. (tabla 7.2)
2. Se presenta un diagrama de clases con las clases de implementación y sus asociaciones. (tabla
7.3)
3. Se presenta un diagrama de flujo con el proceso para determinar la satisfacibilidad o
insatisfacibilidad de una fórmula proposicional. (tabla 7.4)
192
Indicador Excelente Bueno Suficiente Deficiente
La aplicación permite
al usuario ingresar
una formula La aplicación permite al
proposicional usuario ingresar una
compuesta mediante La aplicación permite al
formula proposicional
una interfaz de usuario ingresar una formula
compuesta mediante una
usuario completa y la proposicional compuesta La aplicación permite al
interfaz de usuario básica y
cual contiene botones mediante una interfaz de usuario ingresar una
la cual contiene botones de
de interacción. usuario básica fórmula proposicional
interacción.
compuesta.
No se valida la correctitud de
No se valida la correctitud
Se valida la la formula proposicional
Proyecto en java con de la formula proposicional No se valida la correctitud
correctitud de la
código fuente que La estructura de la aplicación de la formula proposicional
formula proposicional, La estructura de la
Tabla 7.2
Proyecto Final II
7.2 Fases del proyecto
Indicador Excelente Bueno Suficiente Deficiente
Se presenta un
diagrama de clases
completo con la
información y
presentación adecuada
Se presenta un diagrama de
de acuerdo a la
clases con la información
semántica y sintaxis El diagrama de clases
básica (atributos, métodos El diagrama de clases no
permitida (atributos, cuenta con la información
y asociaciones), con contiene la información
métodos, asociaciones, adecuada, pero no responde
coherencia entre las clases y adecuada ni responde a los
cardinalidad), a los elementos semánticos
sus relaciones. elementos semánticos
obteniendo un permitidos.
diagrama coherente La mayorı́a de las clases permitidos.
Diagrama de clases Los elementos del diagrama
Tabla 7.3
193
194
Indicador Excelente Bueno Suficiente Deficiente
El DFD presentado
demuestra compresión
de los tableros El DFD presentado
semánticos, demuestra compresión El DFD presentado
mostrando con parcial de los tableros demuestra compresión
semánticos, mostrando parcial de los tableros El DFD presenta
claridad los procesos y
el flujo de todas las algunos procesos y el flujo semánticos, pero sin desconocimiento de los
posibles secuencias, de algunas de las posibles mostrar los procesos básicos procesos y acciones a
Se presenta un secuencias, orientadas a y el flujo de las secuencias realizar para determinar la
orientadas a
diagrama de flujo determinar la determinar la básicas, orientadas a insatisfacibilidad y
(DFD) con el proceso insatisfacibilidad y determinar la satisfacibilidad de una
Tabla 7.4
insatisfacibilidad y
para determinar la satisfacibilidad de una insatisfacibilidad y formula proposicional.
satisfacibilidad de una
satisfacibilidad o formula proposicional. formula proposicional. satisfacibilidad de una
insatisfacibilidad de formula proposicional. El DFD presentado no es
El DFD presentado es
una fórmula claro, utiliza notación no
El DFD presentado es claro, utiliza la notación El DFD presentado es
proposicional. permitida.
claro, utiliza la permitida, pero las claro, pero utiliza no utiliza
notación permitida y relaciones entre los adecuadamente la notación
las relaciones entre los elementos no son definida. El DFD presenta errores de
elementos son coherentes. ortografı́a.
coherentes. El DFD presenta errores de
El DFD no presenta errores ortografı́a.
de ortografı́a.
El DFD no presenta
errores de ortografı́a.
Proyecto Final II
7.2 Fases del proyecto 195
Proyecto Final II
1 y 5 errores de ortografı́a.
ortografı́a.
Bibliografı́a
[ACM & IEEE, 2004a] ACM, & IEEE. (2004a). Computer Engineering.
[ACM & IEEE, 2004b] ACM, & IEEE. (2004b). Software Engineering.
[ACM & IEEE, 2008] ACM, & IEEE. (2008). Computer Science Curriculum.
[Alonso & Borrero, 2003] Alonso, J., & Borrero, J. (2003). Deducción automática (Construcción
lógica de sistemas lógicos). Editorial Kronos.
[Ben-Ari, 2012] Ben-Ari, M. (2012). Mathematical logic for computer science. Rehovot: Springer-
Verlag London.
[Baldwin & Scragg, (2004)] Baldwin, D, Scragg, G. (2004). Algorithms and Data Structures: The
Science of Computing. Charles River Media.
[Beth, 1955] Beth, E. (1955). Semantic entailment and formal derivability. Mededelingen Koninklijke
Nederlandse Akademie van Wetenschappen, 18(13), 309–432.
[Blanco, Smith & Damián, 2001] Blanco, J., Smith, S., & Damián, B. (2001). Calculo de
programas. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomı́a y Fı́sica.
[Caicedo, 1990] Caicedo, X. (1990). Elementos de Lógica y Calculabilidad. Colombia - Bogotá DC,
Una Empresa Docente, U. de los Andes.
[Cardona, 2010] Cardona, S, Hernández, L & Jaramillo, S. (2010). Lógica matemática para Ingenierı́a
de Sistemas y Computación. Ediciones Elizcom. Armenia - Colombia.
[Cardona, Jaramillo, S & Carmona, P, 2010] Cardona, S, Jaramillo, S & Carmona, P. (2007). Análisis
de Algoritmos en Java. ISBN: 978-958-44-2384-9.
[Cubero & Berzal, 2014] Cubero. J, Berzal. F. (2014) Tutorial de PROLOG. Departamento de
ciencias de la computación. Universidad de Granada,
España. http://elvex.ugr.es/decsai/intelligent/workbook/ai/PROLOG.pdf, consultado en 11-
2014.
[deLedesma, 2010] DeLedesma, L. (2010). Lógica para la Computación. Editorial Ra-Ma -
Alfaomega. Mexico DF.
[Gentzen, 1934] Gentzen, G. (2003). Untersuchungen Über Das Logische Schliessen (Investigaciones
Sobre La Deducción Lógica). Mathematische Zeitschrift, 34
[González, 2013] González, F. (2005). Apuntes de Lógica Matemática - 2. Lógica de Predicados.
Universidad de Cádiz - Escuela superior de ingenierı́a - Departamento de Matemáticas, Cádiz -
España
[Kilpatrick, 1918] Kilpatrick, W. H. (1918). The Project Method.. Teachers College, 19, 319–335.
[Korfhage, 1970] Korfhage, R. (1970). Lógica y Algoritmos. México - México Df, Limusa - Wiley
S.A
[Labra, 1998] Labra, J., & Fernández, A. (1998). Lógica Proposicional para Informática. Oviedo.
[Muñoz, 2011] Muñoz, C. (2011). Introducción a la Lógica y al Cálculo de Deducción Natural.
Retrieved from www.ucm.es
[Nepomuceno, 2002] Nepomuceno, A. (2002). Enseñar lógica: lenguaje lógico y árboles semánticos.
Salamanca. Retrieved from http://logicae.usal.es
[Obeso, 2010] Obeso, V & Burgos, H. (2007). Lógica matemática - Notas de clase. Ediciones
Uninorte. Bogotá - Colombia.
[Oostra, 2008] Oostra, A. (2008). Una reseña de la lógica matemática. Revista Universidad EAFIT,
44(150), 9–20.
[Ospina, 2010] Ospina, L. (2010). Introducción sistémica al pensamiento lógico matemático
Universidad del Quindı́o. Armenia - Colombia.
[Páez, 2007] Páez, A. (2007). Introducción a la lógica moderna. Ediciones UNIANDES, Universidad
de los Andes - Facultad de Ciencias Sociales - Departamento de Filosofı́a, Bogotá DC.
[Tobón, 2013] Tobón, S. (2013). Formación integral y competencias (Tercera Ed.). Bogotá: ECOE
Ediciones.
[Robinson, 1965] Robinson, J. (1965). A Machine-Oriented Logic Based on the Resolution Principle.
Journal of the ACM (JACM), 12(1), 23–41.
[Zarate, 2003] Zarate, Os. (2003). Introducción a la Lógica. Lima: UNMSN Fondo editorial.