Professional Documents
Culture Documents
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
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 ⊥ ⊥
⊥ ⊥ ⊥ ⊥
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 ⊥ ⊥
⊥ ⊥ ⊥ ⊥
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 ⊥ ⊥
⊥ ⊥ ⊥ ⊥