You are on page 1of 6

Lógica Proposicional

Algoritmos y Estructuras de Datos I


Segundo cuatrimestre de 2004

1. Introducción
En la lógica proposicional clásica se asigna un valor de verdad verdadero
o falso a las proposiciones y se trabaja sólo con estos dos valores de ver-
dad. Nosotros vamos a trabajar con una lógica proposicional con tres valores
de verdad: verdadero, falso e indefinido. Como veremos más adelante, el in-
definido no representa una incógnita (algo que no sabemos si es verdadero o
falso), sino un error, una indefinición o algo que no es posible determinar.
Usaremos un lenguaje lógico para la especificación de algoritmos. Infor-
malmente, un algoritmo consiste de una serie de indicaciones claras acerca
de cómo proceder para calcular una función a partir de su entrada. Puede
ocurrir que durante su ejecución, el algoritmo realice alguna operación inváli-
da; por ejemplo dividir por cero o calcular la raı́z cuadrada de un número
negativo. Este tipo de operaciones provocan que el programa produzca un
error y no termine adecuadamente.
Para pensar en un ejemplo concreto, imaginemos lo que pasa en una
calculadora cuando le pedimos que nos calcule el resultado de 1/0. En este
caso, la calculadora no va a devolvernos un número sino un mensaje de error.
Sabemos que el cociente de dividir 1 por 0 no es un número porque la división
no está definida cuando el denominador es cero. Sin embargo, nada nos impide
escribir “1/0” en la calculadora y pedirle el resultado.
Los lenguajes de programaciı́on (aquellos que se usan para escribir algo-
ritmos formalmente) utilizan operadores lógicos que están pensados para que
el programador pueda evitar, cuando corresponda, las indefiniciones. Quer-
emos que los operadores lógicos de nuestro lenguaje de especificación coin-
cidan con aquellos que se utilizan para escribir algoritmos. Es por ello que
aquı́ presentamos una lógica proposicional que permite distinguir los casos
de indefinición, es decir, que considere tres valores de verdad.

1
2. Indefiniciones
Para entender mejor el concepto de indefinido, consideremos las siguientes
expresiones en los números reales:
1. p ≡ 2 + 2 = 4
2. q ≡ 20 > 1

3. r ≡ −1 > 0
4. s ≡ 0 · (1 + 10 ) = 0
Supongamos que las variables proposicionales p, q y r tienen el valor de
verdad de dichas expresiones. El valor de verdad que tiene p es verdadero
porque si sumamos 2 y 2 obtenemos 4. En cambio, el valor de verdad de
q es falso porque 2 elevado a la 0 es 1, y 1 no es mayor estricto que 1.
Veamos qué pasa con r. Es claro que r no es verdadero y también es claro
que no es falso. √El hecho de que no sea ni verdadera ni falsa, viene, en
realidad, de que −1 no es un número real (por más que sea una expresión
que podamos ingresar, por ejemplo, en una calculadora). Es por este motivo
que no podemos decidir si es o no mayor que 0. En este caso, decimos que r
está indefinido. Lo mismo pasa con s: no existe el número 1/0 y, por lo tanto,
0 · 1/0 tampoco es un número. Uno podrı́a pensar aquı́ que cero multiplicado
por cualquier cosa es cero. Sin embargo, esto no es del todo exacto. Lo que
sabemos es que cero multiplicado por cualquier número es cero, y 1/0 no
es un número. Esto impide que el resultado de multiplicar a 0 por 1/0 sea
comparable con 0 y ası́ toda la expresión se indefine. El indefinido intenta,
justamente, capturar errores o indefiniciones. Ası́, no debemos entender al
indefinido como una indeterminada (una variable de la que desconocemos si
es verdadera o falsa), sino como un valor distinto a verdadero y distinto a
falso que representa un caso anómalo.
A continuación presentaremos la sintaxis de la lógica proposicional y luego
daremos su semántica.

3. Sintaxis
Las fórmulas de la lógica proposicional estarán formadas con sı́mbolos del
alfabeto dado por Σ = {True, False, ⊥, ¬, ∧, ∨, →, ↔} ∪ Prop, donde Prop es
un conjunto numerable de variables proposicionales. Una expresión es una
cadena de sı́mbolos del alfabeto Σ. Una fórmula bien formada (o simplemente
fórmula) es una expresión obtenida a partir de la aplicación finita de las
siguientes reglas de formación:

2
1. True, False y ⊥ son fórmulas bien formadas

2. Las variables proposicionales son fórmulas bien formadas

3. Si A es una fórmula bien formada, ¬A es una fórmula bien formada

4. Si A1 , A2 , . . . , An (n > 1) son fórmulas bien formadas, (A1 ∧A2 ∧· · ·∧An )


es una fórmula bien formada

5. Si A1 , A2 , . . . , An (n > 1) son fórmulas bien formadas, (A1 ∨A2 ∨· · ·∨An )


es una fórmula bien formada

6. Si A y B son fórmulas bien formadas, (A → B) es una fórmula bien


formada

7. Si A y B son fórmulas bien formadas, (A ↔ B) es una fórmula bien


formada

Por ejemplo, la fórmula (p ∨ q → r) no es una fórmula bien formada


porque no puede ser construida a partir de las reglas de formación. En cambio
((p ∨ q) → r) y (p ∨ (q → r)) sı́ son fórmulas bien formadas.

4. Semántica
Como mencionamos anteriormente, cada variable proposicional podrá tomar
uno de tres valores de verdad: verdadero, falso o indefinido.
La constante del lenguaje True es siempre verdadera, la constante False es
siempre falsa, mientras que la constante ⊥ está siempre indefinida (el sı́mbolo
⊥ se denomina indefinido o bottom).
Una fórmula de la Lógica Proposicional puede evaluarse conociendo el
valor de las variables proposicionales que en ella aparecen, mediante el uso de
las Tablas de Verdad. Una Tabla de Verdad para una fórmula A con variables
proposicionales p1 , . . . , pn es una lista de todas las posibles combinaciones de
valores para p1 , . . . , pn y el valor que toma la fórmula A para cada una de estas
asignaciones de valores. En general, si A tiene n variables proposicionales
distintas, la tabla de verdad de A tendrá 3n filas. (Notar que en la lógica
proposicional clásica, necesitarı́amos 2n filas porque solo existen dos valores
de verdad.)
Veamos formalmente cuál es es la semántica que le asignamos a las fórmu-
las. La idea es que el operador ¬ se interpretará como un “no”, el ∧ como un
“y”secuencial, el ∨ como un “o”secuencial, el → como un “entonces” secuen-
cial y el ↔ como un “si y sólo si”. A continuación exhibimos las Tablas de

3
Verdad de los operadores ¬, ∧ y ∨. Vale aclarar que en ellas representamos
con el 1 al valor verdadero, con el 0 al valor falso y con el sı́mbolo ⊥ al valor
indefinido y que estamos cometiendo un abuso de notación, ya que utilizamos
el mismo sı́mbolo (⊥) para una constante sintáctica del lenguaje y para un
valor de verdad.

p ¬p
1 0
0 1
⊥ ⊥

p q (p ∧ q) (p ∨ q)
1 1 1 1
1 0 0 1
1 ⊥ ⊥ 1
0 1 0 1
0 0 0 0
0 ⊥ 0 ⊥
⊥ 1 ⊥ ⊥
⊥ 0 ⊥ ⊥
⊥ ⊥ ⊥ ⊥

La semántica de la fórmula (p ∧ q ∧ r) es la de la fórmula (p ∧ (q ∧ r)) y


la semántica de la fórmula (p ∨ q ∨ r) es la de (p ∨ (q ∨ r)). Lo mismo pasa
para n variables, siempre se considera el valor de verdad de la fórmula con
los paréntesis asociados a derecha.
La idea de esta semántica con tres valores es que, evaluando la fórmula
siempre de izquierda a derecha, obtenemos el valor de verdad posiblemente
antes de terminar de leer por completo la fórmula. Ası́, si tenemos (p ∨ q)
y sabemos que p es verdadera, concluimos que la fórmula es verdadera sin
importar el valor que tome q (aun en el caso de que q esté indefinida). En
este caso, basta con que p sea verdadera para concluir que toda la fórmula
es verdadera.
Del mismo modo, si consideramos la fórmula (p ∧ q) y sabemos que p es
falsa, no esperamos a analizar el valor de q y concluimos que (p ∧ q) es falsa.
Nuevamente, q podrı́a estar indefinido, pero eso no lo tenemos en cuenta y,
aún en este caso, establecemos que la fórmula es falsa.
La semántica de la fórmula (p → q) es la de (¬p ∨ q) y la semántica de
(p ↔ q) es la de ((p → q) ∧ (q → p)). Por lo tanto, las Tablas de Verdad para
estos operadores son:

4
p q (p → q) (p ↔ q)
1 1 1 1
1 0 0 0
1 ⊥ ⊥ ⊥
0 1 1 0
0 0 1 1
0 ⊥ 1 ⊥
⊥ 1 ⊥ ⊥
⊥ 0 ⊥ ⊥
⊥ ⊥ ⊥ ⊥

Decimos que la semántica es secuencial justamente porque determinamos el


valor de verdad a partir de la lectura secuencial de la fórmula de izquierda
a derecha. De esta manera, la fórmula (p ∧ q) no es equivalente a la fórmula
(q ∧ p), y lo mismo pasa con los operadores ∨ y →. Esta es una diferencia
importante con respecto a la lógica proposicional clásica. Otra observación
importante es que ¬¬p tiene siempre el mismo valor de verdad que p.

5. Tautologı́as, Contradicciones y Contingen-


cias
Si una fórmula es verdadera siempre que ninguna de sus variables proposi-
cionales se encuentra indefinida, entonces decimos que es una tautologı́a. Por
ejemplo, la fórmula (p ∨ ¬p) es una tautologı́a porque su Tabla de Verdad es

p ¬p (p ∨ ¬p)
1 0 1
0 1 1
⊥ ⊥ ⊥

Si miramos sólo las filas que tienen en la primera columna 1 o 0, vemos que
la tercera columna (la correspondiente a la fórmula (p∨¬p) tiene únicamente
1.
En cambio (p → (p ∧ q)) no es una tautologı́a:

5
p q (p ∧ q) (p → (p ∧ q))
1 1 1 1
1 0 0 0
1 ⊥ ⊥ ⊥
0 1 0 1
0 0 0 1
0 ⊥ 0 1
⊥ 1 ⊥ ⊥
⊥ 0 ⊥ ⊥
⊥ ⊥ ⊥ ⊥

Como vemos, si p es verdadero y q es falsa, la fórmula se hace falsa.


Una fórmula es una contradicción si su negación es una tautologı́a. Por
ejemplo, la fórmula (p ∧ ¬p) es una contradicción:

p ¬p (p ∧ ¬p) ¬(p ∧ ¬p)


1 0 0 1
0 1 0 1
⊥ ⊥ ⊥ ⊥

Finalmente, las fórmulas que no son ni tautologı́as ni contradicciones se


denominan contingencias. Por ejemplo, (p → (p ∧ q)) es una contingencia.
Por último, sean A y B fórmulas de la Lógica Proposicional; decimos que
A es más fuerte que B, o que A fuerza a B si A → B es una tautologı́a. Por
ejemplo p es más fuete que (p ∨ q) y (p ∧ q) es más fuerte que p.

You might also like