Académique Documents
Professionnel Documents
Culture Documents
ogica Computacional
Sandor Ortegon Pineda
Politecnico Grancolombiano
Enero de 2011
Indice general
Introducci
on 5
1. Introducci
on a la l
ogica simb
olica: Expresiones booleanas 7
1.1. Sintaxis y evaluacion de expresiones booleanas . . . . . . . . . . . . . . . . 7
1.1.1. Operadores unarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.2. Operadores binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3. Descripcion de los principales conectivos binarios . . . . . . . . . . 9
1.2. Proposiciones y traduccion de textos en lenguaje natural . . . . . . . . . . 10
1.2.1. Lectura de Negacion, conjuncion y disyuncion . . . . . . . . . . . . 11
1.2.2. Lectura de Implicacion y Equivalencia . . . . . . . . . . . . . . . . 12
1.2.3. Condiciones necesarias y suficientes . . . . . . . . . . . . . . . . . . 14
1.2.4. La equivalencia en el lenguaje natural . . . . . . . . . . . . . . . . . 14
1.2.5. Reglas de precedencia entre conectivos . . . . . . . . . . . . . . . . 15
1.3. Uso de Tablas de verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4. Diferencias entre igualdad y equivalencia . . . . . . . . . . . . . . . . . . . 17
1.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3. Preliminares al c
alculo proposicional 39
3.1. Expresiones aritmeticas y notacion de sustitucion textual . . . . . . . . . . 39
1
Cartilla Herramientas de L
ogica Computacional
3.2. Sustitucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3. Sustitucion y variables ocultas . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4. La sustitucion como regla de inferencia . . . . . . . . . . . . . . . . . . . . 43
3.5. Igualdad y sustitucion. Regla de Leibniz . . . . . . . . . . . . . . . . . . . 44
3.6. Sistemas deductivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.1. El sistema deductivo que usaremos en nuestro curso . . . . . . . . . 47
3.7. Propiedades a evaluar en los conectivos logicos . . . . . . . . . . . . . . . . 49
3.7.1. Asociatividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.7.2. Conmutatividad (Simetra) . . . . . . . . . . . . . . . . . . . . . . . 49
3.7.3. Reflexividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.4. Distributividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.5. Identidad (o elemento neutro) . . . . . . . . . . . . . . . . . . . . . 51
3.7.6. Elemento absorvente (cero) . . . . . . . . . . . . . . . . . . . . . . 52
3.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4. Axiomas y Teoremas de C
alculo Proposicional 55
4.1. Axiomas sobre la equivalencia . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2. Esquema de demostracion en calculo proposicional . . . . . . . . . . . . . . 56
4.3. La negacion, discrepancia (no equivalencia), y false . . . . . . . . . . . . . 58
4.4. Heursticas y tecnicas de demostracion . . . . . . . . . . . . . . . . . . . . 59
4.5. La disyuncion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.6. La conjuncion y la Regla de Oro . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7. Usos de la Regla de Oro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.8. Usando lemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.9. La implicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.10. Prueba de teoremas en donde participa la implicacion . . . . . . . . . . . . 70
4.11. Aplicacion: Propiedades de Distributividad . . . . . . . . . . . . . . . . . . 71
4.12. Dualidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.13. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5. M
etodos de Demostraci
on 85
5.1. Forma abreviada en la prueba de implicaciones . . . . . . . . . . . . . . . . 85
2
Cartilla Herramientas de L
ogica Computacional
3
Cartilla Herramientas de L
ogica Computacional
8. Nociones b
asicas de conjuntos 143
8.0.1. Conjunto universal . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.0.2. Pertenencia e igualdad de conjuntos . . . . . . . . . . . . . . . . . . 144
8.0.3. Conjuntos y predicados . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.0.4. Cardinalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.0.5. Operaciones entre conjuntos . . . . . . . . . . . . . . . . . . . . . . 150
8.0.6. Subconjunto y Superconjunto . . . . . . . . . . . . . . . . . . . . . 153
8.0.7. Conjunto potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
8.0.8. Teoremas de Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . 153
8.0.9. Union e interseccion de familias de conjuntos . . . . . . . . . . . . . 156
8.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Bibliografa 159
4
Introducci
on
Este libro constituye una introduccion a los conceptos formales que cimientan la ela-
boracion de demostraciones matematicas. Con una frase tan corta como la anterior, se
pretende indicar que se describen tecnicas y conceptos fundamentales que facilitaran la
formalizacion de argumentos y el entrenamiento en razonamiento deductivo.
La segunda mitad del siglo XX significo entre otras cosas, un periodo de tiempo donde
la computacion y las tecnologas de informacion ocuparon un papel preponderante, que
muy seguramente no tendra marcha atras. Con ello, se establecio la Ciencia de la Compu-
tacion como disciplina academica, entendiendo por esta el conjunto de bases teoricas de la
computacion y los sistemas computacionales. Y en esta area, el papel principal lo han ocu-
pado ciertas ramas de las matematicas donde no tienen cabida nociones de cercana,
suavidad o continuidad que son claves en el estudio del Calculo Infinitesimal y el
Analisis Matematico. Estas ramas constituyen lo que hoy en da se agrupa bajo el nombre
de Matematicas Discretas y en la actualidad se considera que una formacion adecuada
en matematicas discretas es indispensable para cualquier matematico y para cualquier
estudioso de las ciencias de la computacion.
Entre estos tres aspectos mencionados en el parrafo anterior, los dos primeros consti-
tuyen la mayor parte de la formacion matematica en la ense nanza primaria y secun-
daria. El tercero constituye el aspecto menos explorado y en el cual la formacion de
muchos estudiantes es bastante . Debido a esto, las instituciones de ense nanza supe-
rior han dise
nado cursos para suplir llenar estas carencias, de acuerdo a la carrera o
especialidad escogida por el estudiante. El comun denominador de los mismos reside
en estudiar fundamentos de logica formal (como bibliografa, podemos citar los libros
[Fer90, Gom98, Bal00, Ari09, Gri94, Gri98]).
5
Cartilla Herramientas de L
ogica Computacional
6
Captulo 1: Introducci
on a la l
ogica simb
olica: Expresiones booleanas
La logica simbolica surgio como una manera de analizar los razonamientos escritos en
lenguaje natural. Los operadores que se describiran en este captulo fueron pensados
como contrapartidas formales de operadores del lenguaje. Si se tiene cierto cuidado puede
traducirse una proposicion escrita en lenguaje natural en una expresion booleana.
Esta traduccion nos permitira dos cosas: por un lado resolver ambiguedades del lenguaje
natural, por otro manipular y analizar las expresiones booleanas as obtenidas usando
reglas que seran introducidas en el proximo captulo. Como veremos luego, las reglas
logicas ofrecen una alternativa efectiva para razonamientos expresados en el lenguaje
corriente.
En este captulo trabajaremos sobre las expresiones booleanas, cuyo nombre se debe a
George Boole (18151864), quien describio gran parte del material que veremos en los
primeros dos captulos en su clasico libro The laws of thought (Las leyes del pensamien-
to) escrito en el siglo XIX. Podramos considerar dicho libro como la primera referencia
escrita de la logica simbolica y la aproximacion de usar reglas de calculo para determinar
la validez de argumentos logicos. Es de mencionar que no hacemos mencion historica de la
aproximacion a la logica y el razonamiento usados en la Edad Antigua y la Edad Media;
el lector interesado en datos historicos adicionales y diversos enfoques puede consultar
textos como [Ari09] y [EJF03].
Las expresiones booleanas son utilizadas con frecuencia en distintos lenguajes de progra-
macion, por lo tanto el material de este captulo sera familiar para aquellos que tengan
alguna nocion de Pascal, C, Java o algun otro lenguaje. Veremos como expresar frases en
espa
nol a traves de expresiones booleanas.
Secci
on 1.1: Sintaxis y evaluaci
on de expresiones booleanas
7
Cartilla Herramientas de L
ogica Computacional Sintaxis y evaluaci
on de expresiones booleanas
La tabla anterior es conocida como Tabla de verdad. Las entradas en la tabla de verdad
tienen el significado siguiente: si p es una variable booleana, la primer columna se reserva
para p y sus distintos estados, mientras que en cada una de las siguientes aparece el
resultado de la aplicacion de cada funcion sobre cada uno de los estados. Por ejemplo, en
la segunda columna de la derecha vemos que id(True) = True y id(False) = False, esta
funcion recibe el nombre de funcion identica o tambien identidad. Tambien observamos
en la primera y la u ltima columna dos funciones constantes que no tienen asignado un
nombre especfico. La funcion simbolizada con se llama negacion y corresponde al
operador unario not, por ejemplo notaremos False = True.
Si ahora consideramos todas las funciones booleanas de dos argumentos, es decir definidas
sobre el conjunto
se obtienen dieciseis posibles funciones. Para representarlas en una tabla, se puede abreviar
True con el numero 1 y False con el n umero 0. Dependiendo del texto que se use, a veces
se usa esta convencion o simplemente se escriben las letras V,F (o T,F seg un el idioma).
A continuacion mostramos las tablas de los 16 operadores booleanos. Las dos primeras
columnas representan las combinaciones de valores que pueden tomar dos variables boo-
leanas. Por ejemplo, la primera fila, al indicar un 1 1, se esta contemplando el caso donde
la primera variable vale 1 (True) y la segunda variable vale 0 (False). En las columnas
donde el nombre de los operadores es conocido, colocamos el smbolo que corresponde;
8
Cartilla Herramientas de L
ogica Computacional Sintaxis y evaluaci
on de expresiones booleanas
cuando hay mas de una alternativa de smbolo para un operador particular, se indica
arriba una alternativa.
A nivel de escritura por ejemplo, si se tuviera una variable booleana b y otra c que
representan las dos primeras columnas, la aplicacion de las funciones correspondientes a
la segunda y tercer columna a la derecha (despues de la division) se denota b c y b c,
respectivamente.
En el siguiente apartado se describen esas funciones y en proximas secciones se indicara su
significado, se mostraran textos de la vida cotideana donde dichos operadores aparecen y
se hablara de sus propiedades a nivel sintactico.
xor
= 6=
nand 6 nor
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1.1.3: Descripci
on de los principales conectivos binarios
A continuacion daremos un detalle de cada uno de los conectivos binarios mas conocidos.
9
Cartilla Herramientas de L
ogica Computacional Proposiciones y traducci
on de textos en lenguaje nat
Secci
on 1.2: Proposiciones y traducci
on de textos en lenguaje natural
Es claro, que se trata de dos oraciones diferentes, pero ambas tienen el mismo significado,
por lo tanto lo que ellas afirman es considerado una proposicion.
10
Cartilla Herramientas de L
ogica Computacional Proposiciones y traducci
on de textos en lenguaje nat
1.1 Observaci on. La palabra pero se traduce como una conjuncion, puesto que afir-
ma ambas componentes. Por otro lado la disyuncion usada es inclusiva, ya que podra
haber defendido la felicidad de su madre la propia o ambas.
11
Cartilla Herramientas de L
ogica Computacional Proposiciones y traducci
on de textos en lenguaje nat
aqu la palabra y se usa para expresar una relacion entre Joyce y Picasso.
La palabra usual que corresponde a la disyuncion es o, tambien la variante o bien.
El caso de la disyuncion es mas complejo que los anteriores, dado que existen en el
lenguaje dos tipos de disyunciones, la llamada inclusiva y la exclusiva. Basicamente ambos
tipos difieren cuando las proposiciones intervinientes son ambas verdaderas. La disyuncion
inclusiva considera a este caso como verdadero. Por ejemplo:
Para ser emperador hay que tener el apoyo de la nobleza o del pueblo
donde se interpreta que el consejero no puede pertenecer simultaneamente a las dos clase
sociales. Utilizaremos para este caso el operador discrepancia que simbolizamos como 6,
por tanto si llamamos
12
Cartilla Herramientas de L
ogica Computacional Proposiciones y traducci
on de textos en lenguaje nat
Para la logica clasica que presentamos aqu, la frase anterior es verdadera (mirando la
tabla de verdad del operador ), pues ambos antecedente y consecuente son falsos, lo
cual hace verdadera a la proposicion.
Normalmente se usa una implicacion con un consecuente falso como una manera de negar
el antecedente. Por ejemplo, decir
es una manera sarcastica de decir que la economa no mejoro con los ajustes.
Veamos este ejemplo:
13
Cartilla Herramientas de L
ogica Computacional Proposiciones y traducci
on de textos en lenguaje nat
p : Vacuno a mi hijo
q : Mi hijo contrae el sarampion
La proposicion (1.4) asegura que vacunar es condicion suficiente para no contraer el sa-
rampion, nada dice acerca de aquellos ni
nos que no son vacunados
Otro ejemplo donde aparece la idea de necesidad logica es:
Para que Juan crezca sano, es necesario que tome la sopa (1.5)
La proposicion (1.5) establece que tomar la sopa es condicion necesaria para que Juan
crezca sano, pero no garantiza que si Juan se toma la sopa crecera sano. Si formulamos
esta proposicion en terminos de si . . . entonces. . . , resulta
p : f es biyectiva
q : f es inyectiva
r : f es sobreyectiva
14
Cartilla Herramientas de L
ogica Computacional Proposiciones y traducci
on de textos en lenguaje nat
tener un lugar secundario en los libros de logica. Nosotros no seguiremos esa tradicion,
dado que el uso de la logica en el desarrollo de programas, la equivalencia tiene un rol
fundamental. Como u ltimo ejemplo de la inadecuacion del lenguaje para parafrasear la
equivalencia, presentamos la frase (verdadera en lenguaje corriente) acerca de las capaci-
dades de Juan.
Una vez presentados todos los operadores logicos, se tienen unas reglas de precedencia en-
tre ellos, lo cual permitira eliminar algunos parentesis en expresiones booleanas y abreviar
as la escritura:
1.2 Definici on. Los operadores logicos tendran la precedencia que se indica a conti-
nuacion, los numeros senalan la jerarqua entre ellos, el primero corresponde a la m
as
alta, y los siguientes siguen en orden. Cuando dos operadores aparezcan con el mismo
orden de jerarqua significa que tienen la misma precedencia respecto de los demas:
1. operador =
2. operador
3. operadores y
15
Cartilla Herramientas de L
ogica Computacional Uso de Tablas de verdad
4. operadores y
5. operadores y 6
Secci
on 1.3: Uso de Tablas de verdad
16
Cartilla Herramientas de L
ogica Computacional Diferencias entre igualdad y equivalencia
Una alternativa mas simplificada de tabla de verdad (que se puede usar cuando la expre-
sion es muy grande) consiste en colocar debajo de los conectivos el valor de verdad de
la frase que hasta el momento eval ua dicho conectivo. Por ejemplo, si la expresion fuera
(p q) r escribimos en una sola columna dicha expresion, escribiendo debajo de
el valor de p q y teniendo esa respuesta, junto a r nos permitira evaluar la expresion
completa, de manera la respuesta final quedara debajo del conectivo principal de la
expresion. La siguiente es una version simplificada de la tabla del ejemplo anterior.
p q r p q r
1 1 1 0 1 1
1 1 0 0 1 0
1 0 1 1 1 1
1 0 0 1 0 0
0 1 1 0 1 1
0 1 0 0 1 0
0 0 1 0 1 1
0 0 0 0 1 0
Secci
on 1.4: Diferencias entre igualdad y equivalencia
17
Cartilla Herramientas de L
ogica Computacional Ejercicios
bcd b=c=d
= h es asociativai = h= es conjuntivai
(b c) d (b = c) (c = d)
= hreemplazo de operadoresi = hreemplazo de operadoresi
(b c) = d (b c) (c d)
= hreemplazo de operadoresi =
(b = c) = d
Secci
on 1.5: Ejercicios
p q A
1 1 1
1 0 1
0 1 0
0 0 1
2. Evaluar las siguientes expresiones en el estado {(p, True), (q, False), (r, False)}
a) (p q) r
18
Cartilla Herramientas de L
ogica Computacional Ejercicios
b) (p q) r
c) p (q r)
d) p (q r)
e) (p q) r
f ) (p q) r
g) (p q) r
3. Escribir las tablas de verdad para las siguientes expresiones, determinando los casos
en los cuales son tautologas o contradicciones.
a) (p q) q
b) (p q) q
c) (p 6 q) (p q)
d) p (q p)
e) (p 6 q) 6 p
f ) (p q) p
g) q p (q p) q
h) (p p p) p
4. Escribir las expresiones duales PD de cada una de las expresiones booleanas P que
se indican
a) b c True
b) b c d
c) b (c d)
d) b (c d)
e) False b c
f ) b b c
g) (b True) b
h) (b c) (b c) (c b)
a) p q
b) p p p
c) p p True
19
Cartilla Herramientas de L
ogica Computacional Ejercicios
d) p q p q
e) True p p
f) False p True
g) p (q r) (p q) (p r)
h) pqqp
6. Traducir las siguientes frases en expresiones booleanas
a) Llueva o no, ire a nadar.
b) Llueve, no ire a nadar.
c) Llueven rayos y centellas.
d) Llueven rayos o centellas.
e) Llueven rayos y centellas pero ire a nadar.
7. Traducir las siguientes frases en expresiones booleanas
a) Ninguno entre p y q es verdadero.
b) Exactamente uno entre p y q es verdadero.
c) Cero, dos o cuatro entre p, q, r o s son verdaderos.
d) Uno o tres entre p, q, r o s son verdaderos.
8. Identificar las proposiciones elementales en las siguientes frases y traducirlas en
expresiones booleanas.
a) x < y o x = y.
b) x < y o x = y o x > y.
c) Si x > y e y > z entonces v = w.
d) Las siguientes expresiones son todas verdaderas: x < y, y < z y v = w.
e) A lo sumo una de las siguientes expresiones es verdadera: x < y, y < z y v = w.
f) Ninguna de las siguientes expresiones es verdadera: x < y, y < z y v = w.
g) Las siguientes expresiones no son todas verdaderas al mismo tiempo: x < y,
y < z y v = w.
h) Cuando x < y entonces y < z; cuando x y entonces v = w.
i) Cuando x < y entonces y < z significa que v = w, pero si x y entonces y > z
no ocurre; sin embargo si v = w entonces x < y.
9. Explique por que el procedimiento del ejercicio 1 se puede adaptar a la tabla de
cualquier conectivo binario. En otras palabras, explique por que todo conectivo
logico binario (dentro de los 16 que existen) se puede expresar usando u
nicamente
1
los conectivos , , .
1
Advertencia: Su explicaci
on no debe ser del estilo: Ensayando uno por uno con los 16 conectivos,
20
Cartilla Herramientas de L
ogica Computacional Ejercicios
21
Cartilla Herramientas de L
ogica Computacional Ejercicios
22