0% encontró este documento útil (0 votos)
12 vistas43 páginas

Introducción A La Teoría de Conjuntos y A La Lógica II

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas43 páginas

Introducción A La Teoría de Conjuntos y A La Lógica II

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 43

2.

LÓGICA PROPOSICIONAL

2.1. PROPOSICIONES

Los siguientes son ejemplos de proposiciones:

a) Ana lee un libro.


b) Luis no es médico
c) La Tierra efectúa un movimiento de rotación sobre su eje y un movimiento de
traslación alrededor del Sol.
d) 2 es un número par o divisible por si mismo
e) Si llueve, entonces suspendemos la fiesta
f) Es posible que llueva mañana.
g) Es necesario que alguien lo ayude.
h) Salga usted.
i) ¿Hay alguna forma de vida en el planeta Marte?
j) Se debe aminorar la marcha de un vehículo en las intersecciones

El lector, a partir de estos ejemplos podrá formular otros. Se observará que en


gramática se denominan oraciones a los ejemplos anteriores. La palabra "oración"
tiene una connotación lingüística: cierto tipo de expresiones de un lenguaje son
oraciones. Por otra parte la palabra "proposición" tiene una connotación lógica: las
proposiciones expresan información, conocimiento resultado de nuestra actividad
pensante que puede consistir esencialmente en

- la afirmación (negación) de que un objeto tenga una propiedad dada o de que exista
una relación entre dos o más objetos: a), b)
- conexión lógica entre proposiciones: c), d), e)
- posibilidad de ocurrencia de un hecho: f)
- necesidad de un estado de cosas: g)
- comunicación de una orden: h)
- planteamiento de una interrogante: i)
- enunciado de un precepto legal: j)

Se puede considerar que las proposiciones constituyen el sentido o significado que se


asocia a una oración. La lógica proporciona las teorías y los modelos para representar
y analizar estos significados.

Para que se tenga una idea de la diferencia entre la aproximación gramatical y la lógica,
considere las dos oraciones siguientes:

a) Todos los hombres son mortales


b) Ningún hombre es inmortal

34
Desde un punto de vista gramatical se trata de dos oraciones diferentes ya que diferentes
son sus estructuras sintácticas, sin embargo, intuitivamente se puede apreciar que son
oraciones que expresan el mismo significado. Podríamos además añadir las oraciones
equivalentes a a) y a b) en otros idiomas. La lógica establece la equivalencia entre a) y b)
como se verá más adelante.

Analizando las proposiciones dadas y el significado que expresan, la lógica las clasifica
de la manera siguiente:

a) – e) son proposiciones declarativas, es decir, proposiciones que afirman o niegan


que un objeto o conjunto de objetos tenga una propiedad o que determinados objetos
mantengan determinada relación (interacción, dependencia).
d) – j) son proposiciones modales, es decir, proposiciones en las cuales ocurren ciertos
operadores que introducen cierta modalidad del significado expresando necesidad ( “es
necesario que”), posibilidad (“es posible que”f)), mandato (modo imperativo del verbo),
interrogación (signo de interrogación), deber (“se debe”). Todas estas proposiciones son
de empleo común en las múltiples situaciones cognitivas y comunicativas del ser
humano y se han desarrollado lógicas para su estudio. De paso, a) – e) tienen también
una modalidad, a saber, su declaratividad.

Lógica proposicional bivalente

Todas las proposiciones modales apuntadas son objeto actual de aplicación en la


computación y por lo mismo objeto de estudio de la lógica computacional. Sin embargo,
este libro, por su nivel introductorio, se concentrará en el estudio de las proposiciones
declarativas. Se trata del tipo de proposiciones que de manera esencial y regular se
utilizan en el campo de la matemática y la computación. Por lo tanto, a partir de ahora
cuando se hable de proposiciones se estará haciendo referencia solamente a las
proposiciones declarativas.

Una de las propiedades fundamentales de las proposiciones declarativas y que


las distingue con respecto a los otros tipos de proposiciones, es la de tener lo que en
lógica se denomina un valor de verdad o valor veritativo en un dominio que, en el
caso particular que se estudiará, quiere decir que una proposición puede tener dos
valores de verdad, es decir, la proposición puede ser verdadera o falsa en un dominio. El
estudio de la lógica proposicional queda pues orientado al estudio de las
proposiciones declarativas bivalentes. En resumen, cuando se hable de proposiciones a
seca se estará haciendo referencia exclusivamente a las proposiciones declarativas
bivalentes.

Operaciones proposicionales

Nuestro estudio de la lógica de las proposiciones o lógica proposicional consiste


esencialmente en el estudio de determinadas operaciones que se aplican a proposiciones:

35
ciertos operadores, denominados operadores proposicionales, conectan proposiciones
dadas, dando lugar a nuevas proposiciones, determinándose el valor de la nueva
proposición a partir de los valores de las proposiciones conectadas. A continuación, otros
ejemplos de proposiciones con ocurrencia de los operadores proposicionales que serán
esencialmente objeto de estudio, los cuales aparecen resaltados en itálica:

a) el documento trata de biología molecular


b) el libro no contiene figuras
c) Antonio vive en Cienfuegos o en Santa Clara
d) Luisa es casada y tiene tres hijos
e) Si AB es paralela a CD, entonces CD es paralela a AB
f) A f B si y solo si A ∩ B = A

Una proposición como a) será considerada un ejemplo de proposición elemental, es


decir, proposición en la cual (al menos explícitamente) no interviene ninguna operación
proposicional.

La proposición b) es un ejemplo de negación, es decir, es una proposición resultado de


aplicar a otra proposición una operación lógica que denominaremos negación y que
está lingüísticamente representado por no.

La proposición c) es un ejemplo de disyunción, es decir, es una proposición que resulta


de aplicar a dos proposiciones una operación lógica que denominaremos
disyunción y que está lingüísticamente representada por o.

La proposición d) es un ejemplo de conjunción, es decir, es una proposición que resulta


de aplicar a dos proposiciones una operación lógica que denominaremos
conjunción y que está lingüísticamente representada por y.

La proposición e) es un ejemplo de implicación ( condicional), es decir, es una


proposición que resulta de aplicar a dos proposiciones una operación lógica que
denominaremos condicional y que está lingüísticamente representada por si ..., entonces
..."

La proposición f) es un ejemplo de bicondicional, es decir, es una proposición que


resulta de aplicar a dos proposiciones una operación lógica que denominaremos
bicondicional y que estça lingüísticamente representado por si y solo si.

Muchas proposiciones resultan ser una composición de varias proposiciones elementales


conectadas por varios operadores proposicionales como muestran los siguientes
ejemplos:

a) Si 2 es un número primo y par, entonces 2 no es impar.


b) No es cierto que Pedro y Rosa vinieron a verme.
c) Si AB no es paralela a CD, entonces CD no es paralela a AB y, además, si CD es
paralela a CF, entonces CF no es paralela a AB.

36
Como puede apreciarse la proposición a), es una condicional cuyo operador se aplica
entre una conjunción "2 es un numero primo y par" y una negación "2 no es impar".
La proposición b) es una negación cuyo operador se aplica a la conjunción “Pedro y
Rosa vinieron a verme”. La proposición c) es una conjunción lógica que conecta
condicionales en las que a su vez ocurren negaciones.

Las operaciones proposicionales ejemplificadas están entre las más representativas


operaciones lógicas de nuestros razonamientos. Para realizar su estudio se adopta en
la lógica proposicional un punto de vista extensional, caracterizado por los tres aspectos
siguientes:

a) Se hace abstracción del significado que expresan las proposiciones y se


considera solamente el valor de verdad (verdadero, falso) de las mismas.
b) las operaciones proposicionales se definen como funciones de verdad o
funciones veritativas, es decir, como funciones que determinan el valor de
verdad de una proposición a partir de los valores de las proposiciones a las
que se aplican

como se verificará más adelante un resultado de este punto de vista extensional es que

Las definiciones abstractas de las operaciones proposicionales como funciones


veritativas no necesariamente captan la funcionalidad de operaciones análogas en el
razonamiento ordinario.

De acuerdo con lo anterior, el objetivo de la lógica proposicional es proponer teorías que


caractericen estas operaciones permitiendo la construcción de sistemas de razonamientos
que puedan servir de modelos para la solución de diversas clases de problemas. La lógica
computacional persigue que estos modelos sean computacionalmente implementables, es
decir, programables y por ende aptos para ser ejecutados por una computadora con el fin
de verificarlos y aplicarlos a la resolución automática de diversas clases de problemas.

El estudio de las proposiciones como portadoras de significado, del cual se hace


abstracción en la lógica proposicional, será objeto de estudio en la lógica de predicados.

Lenguaje de la lógica proposicional

Para desarrollar la lógica proposicional se necesita dar ciertas especificaciones de un


lenguaje que se denomina lenguaje de la lógica proposicional.

Alfabeto

El alfabeto del lenguaje proposicional consta de los siguientes símbolos:

i) variables: tales como p, q y r que serán usados para representar proposiciones


elementales cualesquiera o su valor de verdad.

37
ii) constantes proposicionales: los símbolos 1 y 0 que denotarán siempre los
valores de verdad verdadero y falso respectivamente.
iii) operadores proposicionales: ¬ (negación), ∨ (disyunción), ∧ (conjunción), ⇒
(condicional), ⇔ (bicondicional), es decir, símbolos para denotar las
operaciones proposicionales.
iv) signos auxiliares de escritura: [, ] para agrupar operacionalmente a las
proposiciones de manera que quede claro a qué proposiciones se aplica una
operación proposicional evitando así la ambigüedad en la lectura.

Fórmulas

Una vez especificado el alfabeto del lenguaje proposicional se pasa a definir qué
sucesiones lineales finitas de símbolos del alfabeto constituyen las expresiones de la
lógica proposicional, es decir, se debe definir la sintaxis de este lenguaje. Para la lógica
proposicional basta definir un sólo tipo de expresión a la cual se la llamará fórmula (de
la lógica proposicional). Las proposiciones serán pues un caso particular de fórmulas, a
saber, aquel en el cual no hay ocurrencia de variables proposicionales en una fórmula.

Las siguientes reglas constituyen la sintaxis del lenguaje proposicional:

i) Las variables y las constantes proposicionales son fórmulas.


ii) Si A es una fórmula, entonces ¬ [A] es una fórmula.
iii) Si A y B son fórmulas, entonces [A ∨ B], [A ∧ B], [A ⇒ B] y [A ⇔ B] son
fórmulas.
iv) No hay fórmulas en el lenguaje proposicional que no sean las dadas por las
reglas i), ii) y iii).

Debe observarse que los símbolos A, B y todas las letras del alfabeto latino que
aparecerán en negritas en el texto no pertenecen al lenguaje proposicional, se trata de
símbolos de variables que se añaden a la lengua española con la cual se describe el
lenguaje de la lógica proposicional y que, como las reglas expresan, pueden representar
cualquier fórmula. Cuando se usa un lenguaje para describir otro lenguaje se llama al
primero metalenguaje y al segundo lenguaje objeto. Por lo tanto, el lenguaje objeto o
lenguaje que describimos es el lenguaje de la lógica proposicional, mientras que la lengua
española es el metalenguaje con el cual lo describimos. Tiene sentido llamar, pues, a A y
a B metavariables, es decir, variables del metalenguaje en el que hemos formulado las
reglas sintácticas de formación de fórmulas del lenguaje proposicional.

Ejemplos:
a) [¬[p] ∧ ¬ [q ∨ r]] es una fórmula, lo cual puede verificarse analizando la fórmula
mediante las reglas de utilizando dos estrategias que denominaremos abajo-arriba
(bottom-up) y arriba-abajo (top-down).

Bottom-up: p es fórmula por i) y entonces ¬[p] es fórmula por ii), q y r son fórmulas
por i), entonces [q∨r] es fórmula por iii), luego ¬[q∨ r] es fórmula por ii). Dado que
¬[p] y ¬[q∨ r] son fórmulas entonces [¬[p] ∧ ¬ [q ∨ r]] es fórmula por iii).

38
Top-down: [¬[p] ∧ ¬ [q ∨ r]] es una fórmula por la regla iii) si ¬[p] y ¬ [q ∨ r] son
fórmulas. ¬[p] es fórmula por la regla ii) si p es fórmula lo cual se verifica con la regla i).
¬ [q ∨ r] es fórmula por la regla ii) si q ∨ r es fórmula y q ∨ r es fórmula por la regla iii)
si q y r son fórmulas lo cual se verifica en ambos casos por la regla i).
b) ¬[p] ∧ ¬ [ ∨ r]] no es una fórmula, dado que ∨ r no es una fórmula.

Se observa que las reglas i) - iv) constituyen el núcleo de un procedimiento tanto para
generar como para reconocer las fórmulas de la lógica proposicional

Definición de las operaciones proposicionales

Seguidamente se definirán las operaciones proposicionales como funciones veritativas.


En lo que sigue las metavariables A y B representan proposiciones cualesquiera y la
expresión “(la proposición) A es 1 (0)” equivale a decir “el valor de verdad de la
proposición A es verdadero (falso)”:

Negación: Dada una proposición A, su negación ¬A es otra proposición tal que si A es


1, entonces ¬A es 0 y si A es 0, entonces ¬A es 1. Es decir, la negación es una
operación que cambia el valor de la proposición a la cual se aplica. La tabla que aparece
a continuación (llamada tabla veritativa) resume lo anterior:

A ¬A
1 0
0 1

Disyunción: A ∨ B es 1 si al menos una de sus dos proposiciones componentes A o B es


1. En caso contrario A∨ B es 0. Su tabla veritativa es la siguiente:
AB A∨B
11 1
10 1
01 1
00 0

Analice que la definición dada de la disyunción no se corresponde del todo con la


funcionalidad de la disyunción ordinaria en lengua española, donde esta operación tiene
en general un carácter excluyente.

Conjunción: A ∧ B es 1 sólo si sus dos proposiciones componentes A y B son ambas 1.


En los restantes casos A ∧ B es 0. Su tabla veritativa es la siguiente:

39
AB A∧B
11 1
10 0
01 0
00 0

Implicación(Condicional): A ⇒ B es 1 si al menos A es 0 o B es 1. Alternativamente


A ⇒ B solo es 0 cuando A es 1 y B es 0.

AB A⇒B
11 1
10 0
01 1
00 1

Esta definición de la condicional o implicación es una de las posibles abstracciones o


variantes de la condicional que se utiliza en el razonamiento ordinario. Para distinguirla
de otras definiciones de la implicación se la denomina implicación material, en este libro,
al ser la única estudiada, se la llamará solamente implicación o condicional. Como se
apreciará más tarde, la definición dada representa el uso más común de esta operación en
el área de la matemática y de la computación. Se deberán analizar en este sentido algunos
ejemplos ya estudiados como la definición de la relación de inclusión y la definición de
las propiedades de simetría (transitividad) de relaciones entre otros.

Se dice que A el implicante (condicionante, antecedente) y que B el implicado


(condicionado, consecuente) de A ⇒ B.

Bicondicional: A ⇔ B es 1 si A y B tienen ambas el mismo valor de verdad y tiene valor


0 en caso contrario, como muestra la siguiente tabla:

AB A⇔B
11 1
10 0
01 0
00 1

Interpretación de fórmulas

Dada una fórmula A se define una interpretación de A como la asignación de un valor


veritativo a cada una de las variables proposicionales que ocurren en A. De acuerdo con

40
el numero n de variables proposicionales distintas que ocurran en A, dicha fórmula
tendrá 2n interpretaciones, es decir 2n es el número total de combinaciones de valores
veritativos 0 y 1 que puede tener una fórmula con n variables proposicionales
distintas.

Una interpretación de una fórmula A determina un valor veritativo de A.

¿Cómo se calcula este valor? Por supuesto que haciendo uso de las definiciones de las
operaciones proposicionales. Para una fórmula dada, se puede construir una tabla con el
siguiente formato:

Variables Fórmula
proposicionales
Valores
Interpretaciones de
de la fórmula verdad

Ejemplo:
Hallemos los valores veritativos de la fórmula [[p ⇒ q] ∧ [q ⇒ r]] ⇒ [p ⇒ r] para cada
una de sus interpretaciones. La siguiente tabla veritativa muestra en su parte izquierda
todas las interpretaciones o combinaciones de valores veritativos de la fórmula dada, y
en su parte derecha los valores veritativos correspondientes a cada interpretación:

p q r [[p ⇒ q] ∧ [q ⇒ r]] ⇒ [p ⇒ r]
1 1 1 1
1 1 0 1
1 0 1 1
1 0 0 1
0 1 1 1
0 1 0 1
0 0 1 1
0 0 0 1

Se deja como ejercicio verificar cómo fueron hallados los valores de la fórmula para cada
interpretación, teniendo en cuenta que los paréntesis que ocurren en la fórmula agrupan
un operador con sus respectivos operandos. Observe que la fórmula es una implicación
dado que el operador más externo de acuerdo con la parentización es ⇒.

Definición: Una fórmula A es verdadera por una interpretación si y sólo si A es 1 para


dicha interpretación. De lo contrario, A es falsa para dicha interpretación.

Definición: Una fórmula A es satisfacible si y sólo si A es 1 para al menos una


interpretación.

41
Un caso particular muy importante de fórmula satisfacible es el siguiente: una fórmula A
es una tautología si A es 1 para cualquier interpretación.

Una fórmula A es insatisfacible (una contradicción) si y sólo si no es satisfacible, es


decir, si A es 0 para cualquier interpretación.

Ejemplos:
La fórmula p ⇒ [q ∨ r] es satisfacible, la fórmula ¬[p ∧ q] ⇒ [¬p ∨ ¬q] es una
tautología y la fórmula [¬p ∨ q] ∧ ¬[¬p ∨ q] es insatisfacible, como podrá verificarse en
cada caso construyendo la tabla veritativa correspondiente.

Notar que una fórmula A es una tautología si y sólo si ¬A es una contradicción y que
A es una contradicción si y sólo si ¬A es una tautología.

Una relación muy importante entre fórmulas es la siguiente:

Definición: A es lógicamente equivalente a B, lo cual denotaremos por A ≅ B, si la


fórmula A ⇔ B es una tautología. Luego dos fórmulas son lógicamente equivalentes si
y sólo si tienen siempre para la misma interpretación el mismo valor veritativo.

Ejemplos:
Se verificarán como ejercicio las siguientes equivalencias lógicas:

a) p ⇒ q ≅ ¬p ∨ q
b) [p ⇒ q] ≅ ¬[p ∧ ¬q]

Note que las equivalencias a) y b) establecen explícitamente definiciones de la


operación condicional en términos de la negación y de la disyunción en el caso de a) y
de la negación y la conjunción en el caso de b).

c) p ⇔ q ≅ [p ⇒ q] ∧ [q ⇒ p]

Note que c) es una definición de la bicondicional en términos de la conjunción y la


implicación.

Aplicando nuestro conocimiento de las relaciones se puede demostrar que la relación de


equivalencia lógica satisface las propiedades de una relación de equivalencia, según
demostrará el lector como ejercicio:

i) A ≅ A (reflexiva)
ii) Si A ≅ B, entonces B ≅ A (simétrica)
iii) Si A ≅ B y B ≅ C, entonces A ≅ C (transitiva)

42
Definición: A implica lógicamente a B, lo cual se denotará por A => B, si la fórmula
A ⇒ B es una tautología. Es decir, A implica lógicamente a B si y sólo si no existe
ninguna interpretación para la cual A es 1 y B es 0. De manera equivalente A implica
lógicamente a B si B es 1 para cualquier interpretación para la que A es 1.

Aplicando nuestro conocimiento de las relaciones se puede demostrar que la relación de


implicación lógica satisface las propiedades de una relación de orden parcial, según
demostrará el lector como ejercicio:

i) A => A (reflexiva)
ii) Si A =>B y B => A, entonces A ≅ B (antisimétrica)
iii) Si A => B y B => C entonces A => C (transitiva)

Leyes de la lógica proposicional

A partir de las relaciones definidas se da a continuación una lista de equivalencias e


implicaciones lógicas importantes a las que se denominará de manera general leyes de
la lógica proposicional. Las metavariables A, B y C como siempre representan
fórmulas cualesquiera, y las constantes proposicionales 1 y 0 denotan cualquier
tautología y cualquier contradicción respectivamente. Entre paréntesis aparecen algunos
nombres por los que se hace referencia a estas leyes por su importancia..

Equivalencias lógicas

L1. A ∨ A ≅ A (idempotencia de ∨ )
L2. A ∧ A ≅ A (idempotencia de ∧ )
L3. [A ∨ B] ∨ C ≅ A ∨ [B ∨ C] (asociatividad de ∧ )
L4. [A ∧ B] ∧ C ≅ A ∧ [B ∧ C] (asociatividad de ∧ )
L5. A ∨ B ≅ B ∨ A (conmutatividad de ∨ )
L6. A ∧ B ≅ B ∧ A (conmutatividad de ∧ )
L7. A ∨ [B ∧ C] ≅ [A ∨ B] ∧ [A ∨ C] (distributividad de ∨ )
L8. A ∧ [B ∨ C] ≅ [A ∧ B] ∨ [A ∧ C] (distributividad de ∨ )
L9. A ∨ [A ∧ B] ≅ A (primera de absorción)
L10. A ∧ [A ∨ B] ≅ A (segunda de absorción)
L11. A ∨ 0 ≅ A
L12. A ∧ 1 ≅ A
L13. A ∨ 1 ≅ 1
L14. A ∧ 0 ≅ 0
L15. A ∨ ¬A ≅ 1 (tercero excluido)
L16. A ∧ ¬A ≅ 0 (contradicción)
L17. ¬[¬A] ≅ A (doble negación)
L18. ¬1 ≅ 0
L19. ¬0 ≅ 1

43
L20. ¬[A ∨ B] ≅ ¬A ∧ ¬B (De Morgan)
L21. ¬[A ∧ B] ≅ ¬A ∨ ¬B (De Morgan)
L22. A ⇒ B ≅ ¬A ∨ B (Definición de ⇒)
L23. A ⇔ B ≅ [ A ⇒ B ] ∧ [ B ⇒ A ] (Definición de ⇔)

Implicaciones lógicas

L24. A => B ⇒ [A ∧ B]
L25. [A ⇒ B] ∧ [B ⇒ C] => A ⇒ B
L26. ¬B ⇒ ¬A => A ⇒ B
L27. A ⇒ C ∧ B ⇒ C => [A ∨ B] ⇒ C
L28. [A ⇒ B] ∧ [¬A ⇒ B] => B
L29. ¬A ⇒ [B ∧ ¬B] => A
L30. A ⇒ [B ∧ ¬B] => ¬A
L31. ¬A ⇒ A => A
L32. A ⇒ ¬A => ¬A
L33. A ⇒ [¬B ⇒ [C ∧ ¬C]] => [A ⇒ B]
L34. [A ∧ ¬B] ⇒ B => A ⇒ B
L35. [A ∧ ¬B] ⇒ ¬A => A ⇒ B
L36. [A ⇒ B] ∧ [¬A ⇒ C ] => B ∨ C
L37. ¬A ⇒ B => A ∨ B
L38. A ⇒ B => B ∨ ¬A
L39. A => A ∨ B
L40. A ∧ B => A
L41. A => B ⇒ A

Reemplazamiento de fórmulas

Definición: Si A es una fórmula, se dice que la propia A y cualquier sucesión de


símbolos de A que sea una fórmula es una subfórmula de A.

Ejemplos:
Las fórmulas p ⇒ ¬q, ¬q y q ⇒ p son subfórmulas de la fórmula
[p ⇒ ¬q] ⇔ [[p ⇒ q] ∧ [q ⇒ p]].

Teorema del reemplazamiento: Sean C y D fórmulas tales que C ≅ D y sea C una


subfórmula de la fórmula A. Entonces si A′ es la fórmula que resulta de reemplazar una
o más ocurrencias de C por D en A se tiene que A ≅ A′.

Demostración: ejercicio (Sugerencia: considere las interpretaciones de la lista total de


variables proposicionales que ocurren tanto en A como en A′).

44
Ejemplos
Se tiene por L22 que p ⇒ q ≅ ¬p ∨ q luego por el teorema del reemplazamiento
[p ⇒ ¬q] ⇔ [[p ⇒ q] ∧ [q ⇒ p]] ≅ [p ⇒ ¬q] ⇔ [[¬p ∨ q] ∧ [q ⇒ p]].

Ejercicios

1. Haga análisis bottom-up y top-down de las siguientes expresiones para determinar si


son fórmulas: [p ∧ q] ⇒ [¬r ⇒ ¬p], [¬p ∧ ] ⇒ [¬r ⇒ ¬p]

2. En las siguientes expresiones p, q y r representan proposiciones. Sustituya en cada una


de ellas las representaciones lingüísticas de las operaciones proposiconales que conecta a
p, q y r por su notación correspondiente en el lenguaje de la lógica proposicional.
a) Si no p, entonces ni q ni r
b) Si no es cierto que p y q, entonces no p
c) Siempre que p, q
d) Si no es el caso que p implica q, entonces q tampoco implica r

3.- Establezca la estructura lógico-proposicional de las siguientes proposiciones


matematicas:
(Sugerencia: proceda de manera gradual sustituyendo por variables
proposicionales todas las proposiciones elementales (proposiciones que no contienen
Explícitamente operaciones proposicionales) y sustituyendo despues las
representaciones lingtisticas de las operaciones proposicionales por la notacion
correspondiente.)

a) x + y > 2
b) x = 1 ó y + 2 = 2
c) y ? 2 y z = 10
d) Si x > 0, entonces y ? 2
e) Si z > 10, entonces x + z > 10 y z ? 10
f) n es par si y sólo si n es divisible por 2
g) Si x es primo y par, entonces x = 2
h) Si x < y, entonces x < y o x = y
i) A = B, si A ⊆ B y B ⊆ A
j) A d B si y sólo si A ⊆ B y A ? B
k) x > 0 siempre que x > 0
l) Si x = y, entonces x/z = y/z, excepto cuando z = 0
m) (n - 1)! + 1 no es divisible por n a menos que n sea primo

4. Halle los valores de las siguientes fórmulas para cada una de sus interpretaciones y
diga cuáles son satisfacibles, cuales son insatisfacibles y cuáles son tautologías.

a) [p ⇒ [¬q ⇒ p]]
b ) ¬[[p ∧ ¬p] ∨ ¬q]
c) ¬[¬p ∨ [¬q ⇒ p]]

45
5. Determine qué ley de la lógica proposicional justifica a cada una las siguientes
fórmulas como una tautología.
a) [p ∨ [q ∨ r]] ⇔ [[p ∨ q] ∨ r]
b) [¬p ⇒ [¬q ⇒ [r ∧ ¬r]]] ⇒ [¬p ⇒ q]
c) [¬[p ⇒ q] ∧ [r ∨ ¬r]] ⇒ [p ∨ ¬p]

6. Demuestre el teorema del reeplazamiento.

7. Aplicando las leyes de la lógica proposicional simplifique las siguientes fórmulas:


a) ¬¬[p ⇒ q] ∧ ¬[p ∧ ¬p]
b) [r ⇒ q] ∨ [¬p ⇒ [p ⇒ [r ∧ ¬r]]]
c) [¬[p ⇒ q] ∧ [r ∨ ¬r]] ∨ [p ∨ ¬p]

Circuitos lógicos

Los desarrollos de la lógica proposicional hasta aquí expuestos tienen entre sus
aplicaciones más relevantes una tecnológica relacionada con los problemas de diseño y
realización de circuitos lógicos digitales, es decir, circuitos que realizan funciones lógicas
bivalentes y que por lo tanto se utilizan en el procesamiento de la información
representada digitalmente.

La más importante de las máquinas lógicas creadas por el hombre para el procesamiento
de información lo es sin duda la computadora. Una computadora es un sistema que recibe
como información datos de una clase de problemas y un programa que representa un
algoritmo o procedimiento para resolver dicha clase de problemas. La computadora emite
como salida una solución del problema, como resultado de aplicar el programa a los
datos.

El componente fundamental de una computadora lo es la Unidad de Procesamiento y


Control (UPC), que realiza todos los procesos de transformación de la información que
tienen lugar en una computadora. La UPC tiene dos subcomponentes funcionales muy
importantes, la unidad lógico-aritmética (ULA) y la unidad de control (UC), siendo la
ULA, el subcomponente que realiza los procesos de transformación de información..

La ULA y por ende toda la computadora procesa información en forma digital,


específicamente, información que es representada en un lenguaje binario o de dos
símbolos los que se denotarán por 0 y 1 y a los que se denomina bits. Un bit representa
la unidad elemental de información en una computadora.

Se denomina carácter a todo símbolo que se introduce en una computadora, por ejemplo,
presionando una tecla en su teclado. El alfabeto de caracteres de una computadora
incluye esencialmente las letras del alfabeto latino, los dígitos del 0 al 9, signos de
puntuación tales como “.”, “,”, “:” y caracteres que tienen como nombres “espacio”,

46
“return”, “fin de línea” , etc . Para representar cada uno de estos caracteres en la
computadora, existen sistemas de representación binaria standardizados siendo el más
comúnmente utilizado el sistema ASCII ( American Standard Code for Information
Interchange). Mediante el código ASCII se asigna a cada carácter una cadena o sucesión
de 8 bits denominada byte. A continuación se dan ejemplos de caracteres y sus
correspondientes representaciones en bytes en el código ASCII:

A 0100 0001
B 0100 0010
: 0011 1010

Toda la información que es suministrada a una computadora es representada en este


lenguaje binario y de aquí la naturaleza bivalente de las componentes elementales de
los circuitos electrónicos componentes de la ULA que operan sobre estas
representaciones.

La información es cargada y transportada a través de estos circuitos electrónicos en


forma discontinua o discreta. La información fluye como una sucesión de señales que es
comúnmente realizada con pulsos eléctricos constituidos por dos niveles de voltaje
distinguibles como “alto” y “bajo” voltaje en el circuito, a las cuales se asocian los
símbolos del lenguaje binario 1 y 0 respectivamente como indica la Figura 1.

1
0

Figura 1: Representación del flujo de información digital

Los circuitos electrónicos de la ULA transforman la información que reciben realizando


propiamente funciones lógicas: la información codificada mediante 1s y 0s
sufre transformaciones en estos circuitos que son todas describibles mediante la
lógica proposicional bivalente. Por ello se conoce a estos circuitos con el nombre de
circuitos lógicos, nombre con el cual se hará referencia de ahora en adelante a los
mismos.

Los circuitos lógicos se construyen conectando entre si diferentes componentes


electrónicos elementales. Haciendo abstracción de su realización electrónica estos
componentes serán representados por las operaciones lógicas fundamentales de negación,
disyunción y conjunción tal como se muestra en la Figuras 2, 3 y 4 en las cuales aparece
un diagrama que representa a cada componente electrónico fundamental y al cual se
asocia la operación de la lógica proposicional que realiza. Se brinda en cada caso un
ejemplo de flujo de información digital.de entrada al componente y el correspondiente
flujo de información de salida que este suministra.

47
p ¬p

1
p 0

¬p 1
0

Figura 2: Componente electrónico “no”

p
p∨ q
q

1
p 0

1
q 0

1
p∨ q 0

Figura 3: Componente electrónico “o”

p
p∧ q
q

1
p 0

1
q 0

1
p∧ q 0

Figura 4: Componente electrónico “y”

En la Figura 5 se presenta como primer ejemplo de un circuito lógico un comparador


binario. Se verifica que este circuito compara los bits que recepciona por sus entradas y
responde con salida 0 (1) si son iguales (desiguales). El lector verificará que la función
que realiza el comparador binario se corresponde con la fórmula asociada.

48

Figura 5: Comparador binario

Aritmética binaria

La ULA no sólo realiza operaciones lógicas, también operaciones aritméticas como su


nombre lo indica. Para ello utiliza la aritmética binaria, es decir, una representación
binaria de los números naturales a los cuales se aplican las operaciones aritméticas
usuales, como se verá a continuación, definidas por procedimientos adecuados a la
representación binaria basados en la lógica proposicional.

Para proceder a describir algunos circuitos lógicos capaces de realizar operaciones


aritméticas, se darán algunos detalles de la aritmética binaria. El sistema binario o de base
2 de representación de los números, como el usual sistema decimal o de base 10, es un
sistema posicional. El sistema binario consta exclusivamente de los símbolos “0” y
“1”, los cuales precisamente denotan los números 0 y 1 respectivamente. Cualquier otro
número es representable por una cadena de bits (0s y 1s), en la cual la posición del bit en
la cadena es significativa como en el sistema decimal. Los símbolos 0 y 1 en una
posición o columna multiplican una potencia de 2, la base del sistema, y su posición
determina a que potencia de 2 multiplica. Por ejemplo, la cadena de bits 0100 representa
el número natural representado por el 20 en el sistema decimal:

1 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 16 + 0 + 4 + 0 + 0 = 20

A continuación veamos las tablas correspondientes a las operaciones de suma y resta de


la aritmética binaria y ejemplos de suma y resta.

Suma Parcial (SP) Arrastre (A) Resta Parcial Préstamo (P)

1+1=0 1 1-1=0 0
1+0=1 0 1-0=1 0
0+1=1 0 0-1=1 1
0+0=0 0 0-0=0 0

49
10011 10011
+ 01101 - 01101
100000 00110

A continuación el diagrama de un circuito semisumador lógico que realiza la suma


binaria según describe la tabla dada


p
SP

A
q

Figura 6: Semisumador

Dos semisumadoras convenientemente conectadas permiten obtener un sumador, es


decir, un circuito que incorpora el arrastre (A) como muestra el siguiente esquema:

A
p
SP

A
q

Figura 7: Sumador

Se deja al lector la verificación de que el sumador realiza la suma de dos bits más el
arrastre.

Ejercicio

1. Represente el diagrama del circuito lógico que realizaría la función descrita por:
a) ¬[[p ∨ q] ∧ ¬[p ∧ q]]
b) [¬p ∨ ¬q] ∧ [p ∧ q]
Determine además si son equivalentes y describa con palabras la función que realizan.

50
2. Halle las formulas que definen la función que realizan los circuitos lógicos del as
Figuras 8 y 9 y determine si son o no equivalentes.

a)

p •

q •

r •

Figura 8. Determinar Función


b)

p • •

q •

Figura 9. Determinar función

3. Considere los componentes electrónicos elementales utilizados en la construcción de


circuitos lógicos dados en la Figura 10. Diseñe circuitos equivalentes al comparador
binario, el semisumador y el sumador utilizando solamente componentes NAND (NOR).

51
Componente NAND:
p
q ¬[p ∧ q]

Componente NOR:
p
q ¬[p ∧ q]

Figura 10. Componentes NAND y NOR

52
2.2. DEDUCCIÓN LÓGICA

Constantemente los seres humanos razonan deductivamente a partir de conocimiento que


han adquirido para llegar a nuevo conocimiento. Un ejemplo de lo anterior es el
siguiente:

Conocimiento adquirido:
(1) x es abuelo de y, si x es padre de z y z es padre de y (definición de abuelo)
(2) José es padre de Luis (un hecho)
(3) Luis es padre de Ana (un hecho)

Nuevo conocimiento:

(4) José es abuelo de Ana

La forma de razonamiento por la que pasamos del conocimiento de (1)-(3) a (4) se


denomina deducción. La deducción, aparte de constituir, como muestra el ejemplo
anterior, una forma del razonamiento ordinario, es esencial en la solución de problemas
en general. Existen ciencias, como la matemática, en la que es relevante el papel de la
deducción y, en nuestros días, la automatización de la deducción ha ampliado el campo
de utilización de las computadoras en la solución de problemas. Construir teorías que
caractericen la deducción como forma de razonamiento es tarea de la lógica.

Volviendo a la matemática, una situación deductiva corriente en su actividad es la


generación de una demostración (prueba) para una proposición matemática. En tal caso
se presenta un problema similar al ejemplificado: el establecimiento de la verdad de una
proposición partiendo de la verdad de un conjunto de proposiciones, algunas
aceptadas como verdaderas otras quizás previamente demostradas.

El conjunto de las proposiciones aceptadas como verdaderas sin demostración previa, se


denominan axiomas (postulados, creencias, presuposiciones, etcétera) y constituyen lo
que se denominará una teoría T. Note que se está utilizando el término “teoría” en un
sentido bien amplio: cualquier cuerpo de conocimiento expresado en proposiciones del
cual se está tratando de deducir otras proposiciones es una teoría. Otros términos para lo
que aquí se está llamando teoría en el campo de la computación son los de base de datos
y base de conocimiento.

Una teoría debe satisfacer una propiedad muy importante denominada consistencia: una
teoría es consistente o no-contradictoria si está libre de contradicciones. Para demostrar
que una teoría es consistente basta encontrar una interpretación que haga satisfacible
todas las proposiciones de la teoría. Como se verá, el problema de decidir si una teoría es
consistente tiene una solución positiva en la lògica proposicional.

Ejemplos:

53
1. El ejemplo de conocimiento adquirido anteriormente dado es un fragmneto de la teoría
sobre las relaciones familiares que diariamente utilizamos y a la cual pertenecen otras
proposiciones tales como:
Los hijos de una misma madre o un mismo padre son hermanos.

2. El siguiente conjunto de leyes de la lògica proposicional aceptadas como verdaderas,


es decir, como axiomas, constituye una teoría que permiten deducir el resto de las leyes
de la lògica proposicional (Mendelson 1964):

{A ⇒ [B ⇒ A], [A ⇒ [B ⇒ C]] ⇒ [[A ⇒ B][A ⇒ C]],


[¬B ⇒ ¬A] ⇒ [[¬B ⇒ A] ⇒ B]}

Una proposición que se deduce a partir de una teoría se denomina teorema.


Demostración o prueba es el nombre que en general toma el texto que hace explícito un
razonamiento deductivo. En líneas generales, este texto consiste en una sucesión
ordenada finita de proposiciones, cada una de las cuales constituye lo que
denominaremos un paso en la demostración. A Cada paso en la demostración se asocia
una justificación lógica para su inserción en el texto demostrativo.

Se verá ahora que deberá entenderse por un paso en una demostración. De manera
general, sea T una teoría y A una proposición, entonces

T|A

denota que A es consecuencia lógica de T ( A se deduce de T), es decir, que siempre que
las proposiciones en T sean verdaderas por una interpretación, también lo es A por la
misma interpretación. El símbolo | denota el operador de deducción lógica, al cual se
adscriben las tres propiedades fundamentales siguientes:

(i) T, A | A (justificación: ejercicio)

(ii) T | A, si A es una tautología (justificación: ejercicio)

(iii) si T, | B, entonces T, A | B (monotonía de | )

A pesar de que se aceptan como postulados de la teoría sobre la deducción que se


desarrollará en este libro, (i) y (ii) pueden ser justificada semánticamente, es decir
mediante el concepto de interpretación de fórmulas, lo cual se deja como ejercicio al
lector. La propiedad (iii) postula que lo que es teorema a partir de T lo sigue siendo
aunque se agreguen a T nuevos axiomas. La propiedad iii) caracteriza a la lógica que se
desarrolla en este libro como monotónica. Existen por supuesto lógicas no-monotónicas,
que modelan los procesos lógicos en teorías no-monotónicas, es decir, teorías en las que
la inserción de nuevos postulados puede invalidar teoremas previamente demostrados.
Tales lògicas no serán objeto de estudio en este libro.

54
Una expresión de la forma T | A denotará un paso en una demostración. Luego las
propiedades anteriores pueden ser utilizadas como pasos en una demostración y a
continuación se presenta como serán escritas con las justificaciones identificables por un
guión:

T, A | A - por hipótesis
T |A -tautología

La justificación de la monotonicidad se deja implícita.

Reglas de Inferencia

El estudio de los procedimientos que permiten introducir y justificar pasos en una


demostración es el objetivo de la teoría de la deducción de la lógica. Estos
procedimientos están constituidos fundamentalmente por lo que se denominan
reglas de inferencias (deductivas) a cuyo estudio avanzaremos ahora a nivel de la
lógica proposicional.

Las reglas de inferencia deductiva constituyen el método fundamental de generación


y justificación lógica de pasos en una demostración y son las que caracterizan a un
razonamiento como deductivo. La estructura general de una regla de inferencia
deductiva es la siguiente:

Premisas

Conclusión

Donde Premisas denota un conjunto de pasos previos, por lo mismo ya justificados, que
ocurren en una demostración y Conclusión denota el nuevo paso que se inserta en la
demostración al aplicar la regla.

Todo proceso de deducción consta al menos implícitamente de una regla de


inferencia deductiva denominada regla de separación o modus ponens cuyo esquema
general es el siguiente:

Regla de modus ponens

(RI1) Modus Ponens:

T|A
T|A⇒B

T|B

55
cuya lectura puede ser la siguiente: "A partir de que en una demostración exista un paso
de la forma T | A y otro paso de la forma T | A ⇒ B , entonces se puede insertar T | B
como un nuevo paso en la demostración. Note que T | A y T | A ⇒ B son las premisas
de la regla y T | B su conclusión.

Como se verá, por su constante empleo en la obtención de otras reglas, (RI1) es una
regla de inferencia fundamental en la lógica y la regla de inferencia fundamental a nivel
de la lógica proposicional bivalente. Adoptando un punto de vista axiomático tomamos a
(RI1) como un postulado (regla que se acepta sin demostración) en nuestros desarrollos.

Una regla de inferencia deductiva debe tener una propiedad esencial que se denomina
sanidad: si las premisas de una regla de inferencia son verdaderas la conclusión que se
obtenga con la regla debe ser también verdadera.

Recurriendo al concepto de interpretación de la lógica proposicional puede verse que el


paso de A y A ⇒ B a B que permite esta regla es “sano”: verifíquese que si A y
A ⇒ B son proposiciones verdaderas para una interpretación, entonces, como puede
apreciarse en la tabla veritativa de la condicional, se puede afirmar "por separado" que B
es también verdadera. Luego la regla RI es sana.

El empleo de RI1 tanto en el razonamiento ordinario como en el científico es constante,


de hecho cada vez que se aplica una definición se está aplicando RI1.

Se observará que todas las reglas a continuación son reglas lógicamente deducidas. En
las demostraciones lógicas de estas reglas se justifican muchos pasos por las leyes
lógicas o tautologías.

Regla del teorema de la deducción

Muchas proposiciones que han de ser demostradas, en particular muchas


proposiciones matemáticas, son proposiciones condicionales, es decir, proposiciones
de la forma A ⇒ B. La regla que se introducirá a continuación establece que, para
demostrar A ⇒ B a partir de un conjunto de proposiciones T, se puede tomar como
hipótesis (adicionar temporalmente como premisa a A y, entonces demostrando a partir
de T y de A, la proposición B, se puede afirmar que A ⇒ B es una consecuencia lógica
de T. El procedimiento descrito es el fundamento lógico de un método de demostración
de proposiciones condicionales ampliamente utilizado en la práctica matemática: la
demostración de A ⇒ B tomando como hipótesis A, y deduciendo B utilizando A. Tal
procedimiento lo establece precisamente la regla de inferencia

(RI2) Teorema de la Deducción (⇒-introducción):

T, A | B

T|A⇒B

56
Demostración:

Sea B1, B2, ..., B n las proposiciones de parte izquierda que aparecen en los pasos de una
demostración de B a partir de T ∪ {A}, siendo Bn = B. Se demostrará por inducción
sobre i, para 1 ≤ i ≤ n, que T | A ⇒ Bi.
a) i = 1: entonces B1 ∈ T o B1 es una tautología, o A. Para los dos primeros casos se
inserta como paso en la demostración la tautología B1 ⇒ [A ⇒ B1] y se aplica la regla
(I). Para el caso restante A ⇒ B1 es una tautología.
b) Supóngase que se cumple T | A ⇒ Bk para todo k < i pasos. Entonces Bi ∈ T o
Bi es una tautología, o B i es A o B i se deduce por la regla (II) a partir de premisas B j y
Bm, j < i, m < i, y Bm es de la forma Bj ⇒ B i. Se deja como ejercicio la continuación de la
demostración.

Se puede considerar que la regla RI2 es una representación abreviada de su propia


demostración, es decir, los pasos que van desde el paso T, A | B (premisa de la regla)
hasta el paso T | A ⇒ B (conclusión de la regla) se dan de una vez por todas en la
demostración lógica de la regla, la cual da licencia al “salto” de la premisa a la
conclusión en cualquier demostración que satisfaga la premisa de la regla. Lo anterior es
aplicable al resto de las reglas de inferencia que serán introducidas.

Ejemplo:
En la siguiente demostración T es el conjunto de las definiciones dadas para la teoría de
conjuntos desarrollada en este libro.

T| AfA∪B

Demostración:

(1) T, a∈ A | a ∈ A -hipótesis
(2) | a ∈ A ⇒ [a ∈ A ∨ a ∈ B] -L39
(3) | a∈A∨a∈B -(RI1), (1) y (2)
(4) | a∈A∪B -def. de unión a (3)
(5) T| a∈A⇒a∈A∪B -(RI2, (4)
(6) T| AfA∪B -def. de inclusión a (5).

Regla de introducción de la conjunción:

(RI3) ∧-introducción:

T|A
T|B

T|A∧B

57
Veamos como se puede deducir esta regla a partir de la regla RI1, teniendo en cuenta
como se ha establecido que las premisas de la regla son pasos que ocurren en una
demostración.

(1) T|A -premisa


(2) T|B -premisa
(3) | A ⇒ [B ⇒ [A ∧ B]] -L24
(4) T | B ⇒ [A ∧ B] -(RI1), (1) y (3)
(5) T|A∧B -(RI1), (2) y (4).

Ejemplo:
T, a ∈ A, a ∈ B | a ∈ A ∩ B

Demostración:
(1) T, a ∈ A, a ∈ B | a ∈ A -hipótesis
(2) |a∈B -hipótesis
(3) |a∈A∧a∈B -(RI3), (1) y (2)
(4) |a∈A∩B -def. de intersección a (3).

Regla de eliminación de la conjunción

(RI4a) ∧-eliminación:

T|A∧B

T|A

(RI4b) ∧-eliminación:

T|A∧B

T|A

Demostración de (RI4a):
(1) T |A∧B -premisa
(2) | [A ∧ B] ⇒ A -L40
(3) |A -(RI1), (1) y (2).

58
Regla de introducción de la disyunción

(RI5) ∨- introducción

T|A

T|A∨B

Demostración Ejercicio (utilízar L39).

Regla de prueba por casos

(RI6a) prueba por casos:

T|A⇒C
T|B⇒C

T | A∨ B ⇒ C

Demostración:

(1) T | A ⇒ C -premisa
(2) |B⇒C -premisa
(3) | [[A ⇒ C] ∧ [B ⇒ C]] ⇒ [[A ∨ B] ⇒ C] -L27
(4) | [A ⇒ C] ∧ [B ⇒ C] -(RI3), (1), (2)
(5) | [A ∨ B] ⇒ C -(RI1), (4), (3).

(RI6b) prueba por casos:

T|A⇒B
T | ¬A⇒ B

T|B

Demostración: Ejercicio (utilizar L28).

59
Regla de prueba del contrarrecíproco

(RI7) prueba del contrarrecíproco:

T | ¬B ⇒ ¬A

T|A⇒B

Demostración: Ejercicio (utilízar L26).

Regla de transitividad de la implicación

(RI8) ⇒-transitividad:

T|A⇒C
T|C⇒B

T|A⇒B

Demostración:

(1) T|A⇒C -premisa


(2) |C⇒B -premisa
(3) | [A ⇒ C] ∧ [C ⇒ B] -(RI3), (1), (2)
(4) | [[A ⇒ C] ∧ [C ⇒ B]] ⇒ [A ⇒ B] -L25
(5) |A⇒B -(RI1), (3), (4).

Reglas de reducción al absurdo

(RI9a) Reducción al absurdo:

T, ¬A | B ∧ ¬B

T |A

Demostración:
(1) T, ¬A | B ∧ ¬B -premisa
(2) T | ¬A ⇒ [B ∧ ¬B] - (RI2), (1)
(3) | [¬A ⇒ [B ∧ ¬B]] ⇒ A -L29
(4) | A -(RI1), (2), (3).

60
(RI9b) Reducción al absurdo:

T, A | B ∧ ¬B

T | ¬A

Demostración: Ejercicio.

(RI9c) Reducción al absurdo:

T, A, ¬B | C ∧ ¬C

T |A⇒B
Demostración:

(1) T, A, ¬B | C ∧ ¬C -premisa
(2) T, A | ¬B ⇒ [C ∧ ¬C] -(RI2), (1)
(3) T | A ⇒ [¬B ⇒ [C ∧ ¬C]] -(RI2), (2)
(4) | [A ⇒ [¬B ⇒ [C ∧ ¬C]] ⇒ [A ⇒ B] -L31
(5) |A⇒B -(RI1), (3), (4).

(RI9d) Reducción al absurdo:

T, A, ¬B | B

T |A⇒B

Demostración: Ejercicio.

(RI9e) Reducción al absurdo:

T, A, ¬B | ¬A

T |A⇒B

Demostración: Ejercicio.

61
Reglas de Prueba de disyunciones

(RI10a) Prueba de disyunciones:

T|A⇒B
T | ¬A ⇒ C

T |B∨C

Demostración:

(1) T|A⇒B -premisa


(2) | ¬A ⇒ C -premisa
(3) | [A ⇒ B] ∧ [¬A ⇒ C] -(RI3), (1), (2)
(4) | [[A ⇒ B] ∧ [¬A ⇒ C]] ⇒ [B ∨ C] -L36
(5) |B∨C -(RI1), (3), (4).

(RI10b) Prueba de disyunciones:

T | ¬A ⇒ B

T|A∨B

Demostración: Ejercicio.

(RI10c) Prueba de disyunciones:

T|A⇒B

T | ¬A ∨ B

Demostración: Ejercicio.
Regla de prueba de necesidad y suficiencia

(RI11) Prueba de necesidad y suficiencia:

T|A⇒B
T|B⇒A

T|A⇔B

Demostración: Ejercicio.

62
Demostración matemática

A continuación se ejemplifica el uso de estas reglas para analizar demostraciones de


teoremas en Matemática. Toda demostración consta al menos de una regla de
inferencia, y en la mayoría de los casos prácticos, como podrá constatarse, una
demostración combina varias reglas de inferencia. Veamos primeramente una
demostración de un teorema del álgebra de conjuntos. Como ejercicio previo el lector
formulará todas las definiciones de la teoría de conjuntos utilizando la lógica
proposicional, a manera de ejemplo se ofrece la definición de unión entre conjuntos:

x ∈ A ∪ B =def x ∈ A ∨ x ∈ B.

Teorema: A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)

Demostremos que A ∪ (B ∩ C) f (A ∪ B) ∩ (A ∪ C)

(1) T, x ∈ A ∪ (B ∩ C) | x ∈ A ∪ (B ∩ C) -hipótesis
(2) | x ∈ A ∨ x ∈ (B ∩ C) - def. de unión
(3) | x ∈ A ∨ [x ∈ B ∧ x ∈ C] -def. de
intersección
(4) | [x ∈ A ∨ x ∈ B] ∧ [x ∈ A ∨ x ∈ C] -L7
(5) | x ∈ (A ∪ B) ∧ x ∈ (A ∪ C) -def. de unión
(6) | x ∈ ((A ∪ B) ∩ (A ∪ C)) -def de
intersección
(7) T | x ∈ A ∪ (B ∩ C) ⇒ x ∈ ((A ∪ B) ∩ (A ∪ C)) -regla (RI2) ,(6)
(8) T | A ∪ (B ∩ C) f (A ∪ B) ∩ (A ∪ C) -def. de inclusión

El lector completará la demostración del teorema realizando como ejercicio la prueba


de (A ∪ B) ∩ (A ∪ C) f A ∪ (B ∩ C la otra proposición componente de la igualdad .

En la práctica matemática las demostraciones no son tan explícitas, el texto demostrativo


de un teorema se hace con vista a su comprensión por seres humanos que son capaces de
suplir con la ayuda de su razonamiento y utilizando sus conocimientos y entrenamiento
previo en matemática lo que una prueba deja implícita. ¿Cuánto puede dejarse
implícito en una prueba matemática?

No hay regla, primero se deja implícita la justificación lógica de la prueba: se supone que
todo matemático con cierta madurez en su profesión esta familiarizado en la práctica
con los métodos de definición y de demostración lógica propios de su ciencia y,
segundo, se deja implícito cuanto conocimiento matemático es necesario para seguir la
prueba en dependencia del nivel de estudio o de especialización al cual va dirigida la
prueba. No obstante, muchos de los errores e insuficiencias que se pueden advertir en
algunas demostraciones matemáticas, así como la incapacidad para comprender las
mismas o suplir sus ausencias por parte del iniciado tienen su fuente en este modo
implícito de proceder. No hay la menor duda que una familiarización con los

63
mecanismos de deducción utilizados en la matemática constituye un aspecto básico
tanto para generar como para analizar y comprender una demostración matemática.

La prueba del contrarrecíproco

En la demostración del teorema que daremos a continuación se ejemplifica


fundamentalmente el uso de las reglas (RI7) y (RI8). T es un conjunto conocido de
proposiciones verdaderas sobre el conjunto de los enteros Z = {…, -n, …, -1, 0, 1, …, n,
… }.

Teorema: T, x ∈ Z | 2 divide a x2 ⇒ 2 divide a x

Demostración:
(1) T, x ∈ Z | ¬[2 divide a x] ⇒ x = 2 m + 1 -def. número no divisible por
2
(2) | x = 2 m + 1 ⇒ x2 = 4 m2 + 4 m + 1 -cuadrado de un binomio
(3) | x2 = 4 m2 + 4 m + 1 ⇒ ¬[2 divide a x 2] -def. número no divisible por 2
(4) | ¬[2 divide a x] ⇒ ¬[2 divide a x 2] -(RI8), (1), (2) y (3)
(5) | 2 divide a x 2 ⇒ 2 divide a x -(RI7), (4)

Pruebas por reducción al absurdo

En la demostración del siguiente teorema se emplea entre otras la regla (RI9a). Con
respecto a esta regla se pueden presentar dos casos que es conveniente diferenciar.

Primer caso:

B no ha sido demostrado todavía. En este caso se procede a demostrar tanto T,¬A |


B como T,¬A | ¬B. A partir de aquí, por (RI2) se obtiene T,¬A | B ∧ ¬B, y ya puede
aplicarse entonces (RI9a). Este es el caso de los teoremas en los cuales para
demostrar la proposición A se toma como hipótesis ¬A, y se genera una contradicción
B ∧ ¬B en la demostración.
Veamos la siguiente demostración que aparece usualmente en los libros de análisis
matemático:

Teorema: Una sucesión {xn} no puede tender simultáneamente a dos limites (finitos)
distintos.

Demostración: Neguemos el enunciado del teorema. Supongamos que simultáneamente


xn → a y xn → b siendo a < b. Seleccionemos cualquier número r entre a y b, a < r < b.
Entonces como xn → a y a < r, puede encontrarse un numero n' tal que para n > n' se
cumple que xn < r. Por otra parte, si xn → b y b > r puede encontrarse un numero n'' tal
que para n > n'' se tenga que xn > r. Si se toma un n mayor que n' y n'' entonces xn es a

64
la vez menor que r y mayor que r, lo cual es una contradicción. Lo que demuestra el
teorema.

Dejamos como ejercicio la comprobación de que la estrategia de demostración seguida es


la descrita anteriormente..

Segundo caso:

B ha sido demostrada con anterioridad al teorema que se quiere demostrar. En este caso
hay dos estrategias posibles de demostración de A.
La primera es una prueba genuina de reducción al absurdo: Se procede a
demostrar que T,¬A | ¬B, luego se inserta el teorema ya demostrado B como un paso
mas en la demostración y entonces, utilizando (RI2) se obtiene, como en el caso anterior
T,¬A | B ∧ ¬B y ya puede aplicarse entonces (IXa).
La segunda consiste en convertir la demostración en una prueba del contrarrecíproco: Se
procede a demostrar que T, ¬A | ¬B, luego se aplica (RI2) para obtener T | ¬A
⇒ ¬B, entonces por (RI7),
T|B⇒A (1)
Se inserta entonces como paso en la demostración la proposición B
|B (2)
y aplicando (RI1) con (1) y (2) como premisas se obtiene
|A

Pruebas de necesidad y suficiencia

Una forma muy corriente de enunciar un teorema es la siguiente: "Una condición


necesaria y suficiente para que se cumpla A es que se cumpla B". Desde un punto de
vista lógico se trata de la demostración de la equivalencia entre las proposiciones A y B,
es decir, de la demostración de
A⇔B
De acuerdo con (RI11), para demostrar A ⇔ B hay que demostrar tanto que A ⇒ B
como que B ⇒ A. Cuando se demuestra A ⇒ B se dice que se está demostrando la
necesidad (verdad) de B cuando A se considera verdadera, es decir, que bajo la hipótesis
de que A es verdadera se sigue necesariamente que B es verdadera. Cuando se demuestra
B ⇒ A se está demostrando la suficiencia de B para que A sea verdadera, es decir, que
basta que B sea verdadera para que A lo sea también. Por supuesto, desde un punto de
vista lógico, cuando se demuestra la necesidad de B con respecto a A se demuestra al
mismo tiempo la suficiencia de A con respecto a B y, viceversa, cuando se demuestra
la suficiencia de B con respecto a A se está demostrando la necesidad de A con
respecto a B. Por lo tanto, qué proposición se escoge para demostrar que ella es
condición necesaria y suficiente para que se cumpla la otra no depende sino de la
teoría en cuestión que desarrollamos y de la importancia que tenga para la teoría cada
una de las dos proposiciones equivalentes.

Veamos un ejemplo:

65
Teorema: Una condición necesaria y suficiente para que a, b sean raíces de la
ecuación x2 + px – q = 0 donde p2 > 4q es que a + b = -p y ab = q, siendo a ∈ ú,
b ∈ ú".

En este teorema hay dos proposiciones cuya equivalencia lógica tiene que ser
demostrada:
Sea A la proposición "a y b son raíces de la ecuación x2 + px – q = 0" y B la
proposición "a + b = -p ∧ ab = q", es decir, "una condición necesaria y suficiente para
A es que B".

Se puede demostrar primero que B es una condición necesaria para A, es decir, que
A ⇒ B. Esta demostración se lleva a cabo tomando como hipótesis a A y deduciendo
entonces B, luego se aplica (RI2) para obtener A ⇒ B. Se deja al lector los detalles de la
prueba siguiendo esta estrategia como ejercicio.
La demostración de que B es una condición suficiente para A, es decir, que B ⇒ A se
puede realizar también aplicando (RI2) y es un simple ejercicio algebraico.

Ejercicios

1. Justifique las propiedades (i) y (ii) del operador de deducción |.


2. Realice las demostraciones de las reglas de inferencia deductivas propuestas como
ejercicio.

3. Complete y justifique los pasos en la siguiente demostración:

Teorema: T | R es simétrica ⇔ R = R-1


Demostración:
(1) T, R es simétrica | <x, y> ∈ R ⇒ <y, x> ∈ R
(2) | <y, x> ∈ R ⇒ <x, y> ∈ R-1
(3) | <x, y> ∈ R ⇒ <x, y> ∈ R-1
(4) | R ⊆ R-1
(5) | <x, y> ∈ R-1 ⇒ <y, x> ∈ R
(6) | <y, x> ∈ R ⇒ <x, y> ∈ R
(7) | <x, y> ∈ R-1 ⇒ <x, y> ∈ R
(8) | R-1 ⊆ R
(9) | R ⊆ R-1 ∧ R-1 ⊆ R
(10) | R = R-1
(11) T | R es simétrica ⇒ R = R

66
4. Demuestre las siguientes implicaciones lógicas:

(1) | [A ⇒ [B ∧ C]] ⇒ [[A ⇒ B] ∧ [A ⇒ C]]


(2) | [A ⇒ B] ⇒ [[A ∧ C] ⇒ B]

5. Analice las siguientes demostraciones de teoremas adaptadas de libros de Análisis


Matemático y de Geometría Elemental respectivamente, y diga qué reglas de
inferencia se utiliza en las demostraciones.

a) teorema: Dos perpendiculares cd y ef a una misma recta ab son paralelas entre si


Demostración:
F
Supongamos que cd y ef no son paralelas. En este caso tendrían que encontrarse en un
cierto punto m y entonces existirían dos perpendiculares desde ese punto m a la misma
recta ab, lo cual es un absurdo. Por lo tanto, nuestra suposición es falsa.

b) teorema: Si una sucesión {cn} es convergente, entonces la condición cn ≥ 0 implica


lim cn ≥ 0.
Demostración:
Sea lim cn = h y supongamos que h < 0, o lo que es lo mismo, -h > 0. Entonces tenemos
| cn - h| < -h para un n suficientemente grande y de ahí que cn – h < -h, de donde
cn < 0 lo cual niega nuestra suposición .

6. Demuestre que:
a) (A ∪ B)c = Ac ∩ Bc
b) (A ∩ B)c = Ac ∪ Bc

7. Considere la siguiente teoría para la lógica proposicional (Mendelson 1964):

{A ⇒ [B ⇒ A], [A ⇒ [B ⇒ C]] ⇒ [[A ⇒ B][A ⇒ C]],


[¬B ⇒ ¬A] ⇒ [[¬B ⇒ A] ⇒ B]}

Demuestre utilizando exclusivamente (RI1):


a) | A ⇒ A
b) | [¬A ⇒ A] ⇒ A
c) A ⇒ B, B⇒ C | A⇒ C

67
Formas normales proposicionales

Se ha visto que algunas operaciones lógicas son definibles en términos de otras: de


acuerdo con L22 la implicación es definible en términos de la negación y la disyunción;
utilizando las leyes de De Morgan L20 y L21 se puede definir la disyunción en términos
de la negación y la conjunción o la conjunción en términos de la negación y la
disyunción. También se vio que en la aplicación de la lógica al diseño y construcción de
circuitos lógicos sobre la base de estas equivalencias definitorias se utilizan
exclusivamente las operaciones de negación, disyunción y conjunción para construir tales
circuitos. El caso de los circuitos lógicos es sólo un ejemplo de las múltiples aplicaciones
computacionales de la lógica donde las equivalencias definicionales mencionadas son
ampliamente utilizadas.

Los desarrollos que siguen dan cuenta de resultados fundamentales sobre


representaciones de fórmulas de gran trascendencia sobre todo en los usos
computacionales de la lógica. Se introducirán representaciones equivalentes de fórmulas
cualesquiera denominadas de manera general formas normales, así como algunos
procedimientos efectivos o algoritmos asociados al hallazgo y uso de tales
representaciones.

Definición: Una fórmula A se denomina un literal, si A es una variable proposicional o


la negación de una variable proposicional. Si un literal es una variable proposicional se
denomina literal positivo, en el otro caso se denomina un literal negativo.

Ejemplos:
p, ¬q son literales, p es un literal positivo y ¬q un literal negativo.

Definición: Una fórmula A se denomina cláusula, si A es una disyunción de literales.

Ejemplos:
p ∨ q, p ∨ ¬q ∨ r son cláusulas. ¿Son 0 y ¬q cláusulas?

Definición: Una fórmula A se denomina una forma normal conjuntiva (FNC) si A es


de la forma A1 ∧ A2 ∧... ∧ An, y cada Ai, 1≤ i ≥ n es una cláusula.

Ejemplos:
p ∧ ¬q, p ∨ ¬q, [p ∨ ¬q] ∧ [¬ p ∨ ¬q ∨ ¬ r] ∧ [q ∨ r]

Definición: Una fórmula A se denomina una forma normal disyuntiva (FND) si A es


de la forma A1 ∨ A2 ∨... ∨ An, y cada Ai, 1≤ i ≥ n es una conjunción de literales.

Ejemplos:
p, ¬q, p ∧ ¬q, [p ∧ ¬q] ∨ [¬ p ∧ ¬q ∧ ¬ r] ∨ [q ∧ r].

Teorema: Para toda fórmula A puede hallarse una formula A' en FNC (FND) tal que
A ≅ A'.

68
La demostración de este teorema es constructiva y consiste en transformar la fórmula A
en una FNC (FND) A' aplicando repetidamente leyes que preservan la equivalencia
lógica de las fórmulas. Las siguientes instrucciones relacionan las leyes utilizables y su
propósito.

1) Utilizar las leyes L22 y L23 para eliminar los operadores ⇒, ⇔ de una fórmula.
2) Utilizar L17 (doble negación) y L20 y L21 (leyes de De Morgan) para eliminar
todo operador que no se aplique a una variable proposicional.
3) Utilizar L7 y L8 (leyes distributivas) para obtener la forma normal deseada.
4) Utilizar otras leyes para simplificar la fórmula.

Ejemplo:
Dada la fórmula [p ⇒ ¬q] ⇒ ¬ [p ∧ r], entonces
[p ⇒ ¬q] ⇒ ¬ [p ∧ r] ≅ ¬ [p ⇒ ¬q] ∨ ¬ [p ∧ r] -L22
≅ ¬ [¬p ∨ ¬q] ∨ ¬[p ∧ r] -L22
≅ [¬¬p ∧ ¬¬q] ∨ ¬[p ∧ r] -L20
≅ [p ∧ q] ∨ ¬p ∨ ¬r -L21
≅ [[¬p ∨ p] ∧ [¬p ∨ q]] ∨ ¬r -L7
≅ [1 ∧ [¬p ∨ q]] ∨ ¬r -L15
≅ ¬p ∨ q ∨ ¬r -L12

El término izquierdo de la última equivalencia representa una FNC (también una FND)
de la fórmula dada.

El estudio de la lógica proposicional en este libro sin perder en generalidad se contrae en


lo que sigue a la lógica de cláusulas en la que cualquier fórmula está representada en
FNC.

En los desarrollos que siguen una FNC será representada de manera alternativa por el
conjunto de cláusulas que la constituyen. También, alternativamente, una cláusula C será
representada por el conjunto de sus literales.

Ejemplo:
La FNC [p ∨ ¬q] ∧ [¬ p ∨ ¬q ∨ ¬ r] ∧ [q ∨ r] se representa conjuntualmente por {p ∨ ¬q,
¬ p ∨ ¬q ∨ ¬ r, q ∨ r} o por {{¬p, ¬ q, ¬r}, {p, q, s}, {¬q, r, ¬s}}.

El problema de la satisfacibilidad (SAT)

La lógica de cláusulas se ha mostrado en la práctica como un formalismo completo y


simplificado, muy apropiado tanto para representar las especificaciones y los datos de
un problema como los procedimientos para resolverlos mediante una computadora.

69
Se ha visto que un problema muy importante cuando se tiene una fórmula es determinar
si la fórmula es o no consistente, es decir, si es o no satisfacible. Este problema dado su
relevancia en muchas dimensiones para la computación ha pasado a ser conocido bajo el
nombre de problema SAT. La creación de algoritmos que permitan resolver el problema
SAT es de suma importancia y al mismo se dedica gran atención. En este libro, dado su
carácter introductivo, no se estudiará el problema SAT en todas sus dimensiones
computacionales, solamente se hará una introducción a la rica problemática algorítmica
que dicho problema plantea.

Se darán a continuación los detalles de un algoritmo clásico de SAT que a partir de una
FNC de una fórmula determina si la fórmula es o no satisfacible. Se utilizará para la
representación del algoritmo un pseudo lenguaje de programación en el que se utilizan de
algunas estructuras bien conocidas de lenguajes de programación existentes.

Se deberá tener en cuenta que la representación no es un programa ejecutable del


algoritmo sino que su objetivo es mostrar un procedimiento efectivo de solución del
problema planteado, así como la factibilidad de su realización computacional. Se
aprovechará la introducción del algoritmo para desarrollar de manera breve ciertos
aspectos que se deben analizar cuando se construye un algoritmo.

Primero se desarrollarán algunos algoritmos, algunos en forma muy esquemática, que son
utilizados (en el argot computacional, “llamados”) por el algoritmo principal para
resolver el problema.

satisfacible(S):
if S =={1} then true,
else false

insatisfacible(S):
if S =={0} ∈ then true,
else false

Selecciona( var, V): var es seleccionada de un conjunto V de variables proposicionales,


una vez seleccionada, var es eliminada del conjunto V.

simplifica(var, valor, S, Ss):


Ss = ∅;
if valor == 1 then
if S == {C} ∧ var ∈ C then Ss = {1}
else forall C ∈ S

70
{
if var ∈ C then ;
else if ¬var ∈ C then
{
Cs = C – {¬var},
if Cs == ∅ then
{
Ss = {0};
break
}
else Ss = Ss ∪ {Cs}
{
else Ss = Ss ∪ {C}
}
else if valor == 0 then
if S == {C} ∧ ¬var ∈ C then Ss == {1}
else forall C ∈ S
if var ∈ C then
if C = {var} then
{
Ss = {0},
break
}
else
{
Cs = C – {var},
Ss = Ss ∪ {Cs}
}
else if ¬var ∈ C then ;
else Ss = Ss ∪ {C}

Algoritmo de satisfacibilidad (DPLL) ( Davis-Putnam-Logemann-Loveland 1960)

/* Entradas:
/* S: Conjunto de cláusulas siendo cada cláusula representada por su conjunto de
/* literales. Se supone que en S no hay cláusulas repetidas y que ninguna cláusula tiene
/* literales repetidos. Es posible eliminar tales repeticiones con un preprocesamiento
/* previo adecuado.
/* V: Conjunto de las variables proposicionales que ocurren en S

/* Salidas: "satisfacible", "insatisfacible"

71
DPLL(S)
{if S = {{1}} then return “satisfacible”,
if {0} ∈ S then return “insatisfacible”,
DPLL2: if {L} ∈ S then
{
if L = var then simplifica(var, 1, S, Ss)
else if L = ¬var then simplifica(var, 0, S, Ss);
DPLL(Ss)
}
DPLL3: {
selecciona( var, V);
simplifica(var, 1, S, Ss)
if DPLL(Ss) = “satisfacible” then return( "satisfacible");
else if DPLL(Ss) = “insatisfacible” then
{
simplifica(var, 0, S, Ss)
DPLL(Ss)
}
}
}

Para comprender cómo funciona DPLL se darán ejemplos típicos de su aplicación a


determinados conjuntos de cláusulas. El lector suplirá los detalles que se omiten
ejecutando a mano el algoritmo paso a paso. Sin pérdida de generalidad y para facilitar la
ejecución del algortimo se supone que las variables aparecen en orden alfabético en el
conjunto V, así como en las cláusulas. Además, los procedimientos recorren los conjuntos
de izquierda a derecha seleccionando en el orden dado cláusulas y literales, según el caso.
Resultará evidente para el lector que otros recorridos y ordenamientos son aplicables.

Ejemplos:
(1) DPLL({{¬p, ¬ q, ¬r}, {p, q, s}, {¬q, r, ¬s}})
DPLL3: p = 1,
simplificando
DPLL({{¬q, ¬r}, {¬q, r, ¬s}})
DPLL3: q = 1,
simplificando,
DPLL({{¬r}, {r, ¬s}})
DPLL2: r = 0,
simplificando
DPLL({{¬s }})
DPLL2: s = 0
Simplificando
DPLL({1 })
“satisfacible”

72
(2) DPLL({{p, q, ¬r}, {p, ¬q}, {¬p}, {r}, {s}})
DPLL2: p = 0
Simplificando
DPLL({{q, ¬r}, {¬q}, {r}, {s}})
DPLL2: q = 0
simplificando
DPLL({{¬r}, {r}, {s}})
DPLL2: r = 0
Simplificando
DPLL({0})
“insatisfacible

(3) DPLL({{¬p, ¬ q ∨ ¬r}, {¬p ∨ ¬ q ∨ r}, {¬p ∨ q ∨ ¬r}, {¬p ∨ q ∨ r},


{p ∨ ¬ q ∨ ¬r}})
DPLL3: p = 1,
simplificando,
DPLL({{¬ q, ¬r}, {¬ q, r}, {q, ¬r}, {q, r}})
DPLL3: q = 1,
simplificando,
DPLL({{¬r}, {r}}),
DPLL2: r = 0,
simplificando,
DPLL({0}),
insatisfacible
DPLL({{¬ q, ¬r}, {¬ q, r}, {q, ¬r}, {q, r}})
DPLL3: q = 0,
simplificando,
DPLL({{¬r}, {r}}),
DPLL2: r = 0,
simplificando,
DPLL({0}),
insatisfacible
DPLL({{¬p, ¬ q ∨ ¬r}, {¬p ∨ ¬ q ∨ r}, {¬p ∨ q ∨ ¬r}, {¬p ∨ q ∨ r},
{p ∨ ¬ q ∨ ¬r}})
DPLL3: p = 0,
simplificando,
DPLL({{¬ q ∨ ¬r}})
DPLL3: q = 1,
simplificando,
DPLL({{ ¬r}})
DPLL2: r = 0
Simplificando,
DPLL({1}),
satisfacible

73
Análisis de DPLL:

¿ Cómo realiza DPLL el hallazgo de una solución a un caso particular S del problema
SAT? DPLL hace una “búsqueda” de una interpretación que satisfaga S en el conjunto de
las interpretaciones posibles. Se denomina espacio de búsqueda (EB) al espacio virtual
en el que un algoritmo busca una solución a un problema. Una posible representación
completa del EB para problemas de satisfacibilidad S con un conjunto V de tres
variables es dada por la Figura :

p
1 0

q q
1 0 1 0

r r r r
1 0 1 0 1 0 1 0

Figura 11. Representación del EB para un problema de satisfacibilidad de tres variables


proposicionales.

Tal representación corresponde a una estructura de datos denominada árbol. Un árbol


consta de nodos, representados en la figura por círculos y de arcos, representados en la
figura por flechas, los cuales parten de un nodo y llegan a otro según puede apreciarse. El
ejemplo dado es el de un árbol binario, es decir un árbol en el de cada nodo parten dos
acos o ninguno. Hay un nodo al cual no llega ningún arco denominado raiz, un nodo del
cual parten arcos se denominan nodos noterminales y aquellos de los cuales no parten
arcos se denominan nodos terminales u hojas. Se denomina rama del árbol a toda
sucesión de nodos conectados dos a dos por arcos que incluye la raiz y un nodo
terminal.Para representar mediante el árbol el EB de un problema SAT, es decir, el
conjunto de todas las interpretaciones, se cosntruye un árbol binario con tantos nodos
como variables poner V y se acaba eel problemaasocia a cada nodo una variable
proposicional y se bles proposicionales a los cuales se asocian los valores veritativos 1 y
0. Una sucesión de arcos desde la raíz hastas un nodo terminal, es decir una rama del
árbol denota una interpretación, luego las ocho ramas del árbol representan las ocho
interpretaciones posibles para conjuntos de cláusulas con un total de tres variables
proposicionales distintas. Es claro que es irrelevante qué variable se toma cómo raiz, cual
es sucesora de esta, etcétera, por lo que el ejemplo dado es una de las posibles .
Podriamos recorrer el árbol por un método de fuerza bruta

74
¿Cómo “recorre” DPLL este EB, es decir, cómo recorre el árbol?

Antes de aplicar DPLL, se podría pensar en recorrer el árbol haciendo una búsqueda
sistemática, a saber, a) no dejando de considerar ninguna interpretación hasta tanto no se
encuentre una solución del problema y b) no considerando ninguna interpretación más de
una vez.. Note que a) garantiza el hallazgo de una solución, mientras que b) garantiza la
terminación del proceso de ejecución del algortimo. Sin embargo, este proceder por
fuerza bruta no explota resultados de la lógica proposicional que pueden imprimir mayor
eficiencia a la búsqueda de una solución sin sacrificar su hallazgo.

De tales resultados hace uso el algoritmo DPLL. Para DPLL, el EB es un espacio virtual
el cual DPLL más que recorrer, construye parcialmente según sea necesario para
alcanzar una solución. Si se analizan las instrucciones DP2 y DP3 y el resultado de su
aplicaciones a los ejemplos dados, se ve que la búsqueda consiste en ir construyendo una
interpretaciòn asignándoles valores a las variables en S. La acción prioritaria de DP2 es la
siguiente: si hay una cláusula en C que es un literal, necesariamnete hay que asignar a la
variable del literal el valor de verdad que lo haga verdadero (¿Por qué?), a continuación
sustituir la variable por su valor en todas sus ocurrencias en S, simplificar S y continuar
aplicando DPLL a la simplificación de S. Note que en este caso, ya hay ramas
(interpretaciones) que jamás serán generadas (Cuáles?). Si no hay cláusula unitaria en S,
entonces DP3 entra en acción: se selecciona una variable de las que ocurre en S, la cual
aun no ha sido seleccionada y se la sustituye por un valor veritativo ( en el algoritmo
dado por 1) en todas sus ocurrencias en S, se simplifica S y se aplica DP a la
simplificación de S denotada Ss. Si Ss es satisfacible el algortimo termina dando esa
respuesta. Si Ss es insatisfacible, entonces de acuerdo con DP3 se sustituye a la variable
por el otro valor veritativo (en el algoritmo dado por 0), se simplifica nuevamente S en Ss
y se aplica DP a Ss.

Analizando la aplicación de DPLL en el ejemplo (3) representaremos mediante una línea


punteada el recorrido que hace DPLL del EB del problema hasta encontrar la solución, tal
como se muestra en la Figura

75
p
1 0

q q
1 0 1 0

r r r r
1 0 1 0 1 0 1 0

Figura 12. Recorrido en el EB

Vease que en el recorrido se caracteriza por un avance en la profundidad del árbol


buscando una rama, es decir, una interpretación que satisfaga a S. En dos ocasiones se
llega a interpretaciones que hacen insatisfacible a S y entonces se inicia un retroceso
(Backtrack) a los nodos q y p para reconsiderar sus valores según establece DPLL. Lo
que se ha descrito es la estrategia de búsqueda que utiliza DPLL: primero en
profundidad+retroceso.

Ejercicios

1. Un problema importante de todo algoritmo es el de su terminación: un algoritmo


termina si en su aplicación a cualquiera de sus entradas admisibles realiza una parada.
Analice la terminación de DPLL.
2. Otro problema importante de todo algoritmo es el de su corrección: un algoritmo es
correcto si su aplicación a cualquiera de sus entradas admisibles suministra la salidad
correspondiente. Analice la corrección de DPLL.
3. Complete la presentación del algoritmo DP, de modo que si el conjunto de entrada es
satisfacible, DP de cómo salida la interpretación hallada.
4. Reformule el algoritmo DPLL haciendo explícita su estrategia de búsqueda.

76

También podría gustarte