Lógica Computacional
Nota 02. Lógica proposicional11Esta nota se basa en el libro Logic in Computer Science por Huth y Ryan. También en los apuntes del profesor Favio Miranda.

Noé Salomón Hernández S

1 Introducción

La meta de la lógica en Ciencias de la Computación es desarrollar lenguajes que modelen las situaciones con las que nos encontramos como científicos de la computación, de tal modo que podamos razonar acerca de ellas formalmente, lo cual significa construir argumentos que las describan. Por ejemplo,

Ejemplo 1.1

Si un tren llega tarde y no hay taxis en la estación, entonces Juan llega tarde a su reunión. Juan no llega tarde a su reunión. El tren llegó tarde. Por lo tanto, hubo taxis en la estación.

Intuitivamente, el argumento es válido. Otro ejemplo:

Ejemplo 1.2

Si está lloviendo y Laura no tiene paraguas, entonces ella se mojará. Laura no está mojada. Está lloviendo. Por lo tanto, Laura tiene paraguas.

Este argumento también es válido. Veamos un ejemplo más:

Ejemplo 1.3

Si Rivendell es destruido y Chewbacca no es un saiyajin, entonces es amigo de Lex Luthor. Chewbaca no es amigo de Lex Luthor. Rivendell es destruido. Por lo tanto, Chewbacca es un saiyajin.

Un análisis cuidadoso revela que en realidad los tres ejemplos anteriores tienen la misma estructura, aunque el tercero carezca de significado.

El argumento en cada ejemplo pudo haberse presentado sin hablar de trenes o de lluvia, como sigue:

Si p y no q, entonces r. No r. p. Por lo tanto, q.

En el desarrollo de la lógica, no nos interesa el significado real, sino sólo la estructura lógica.

2 Oraciones declarativas

Para lograr que los argumentos sean rigurosos, necesitamos desarrollar un lenguaje en el que podamos expresar oraciones de un modo que obtengamos su estructura lógica. Empezamos con el lenguaje de la lógica proposicional, el sistema lógico más simple. Se basa en proposiciones u oraciones declarativas que podemos clasificar como verdaderas o falsas. Por ejemplo:

  1. 1.

    La suma de los números 3 y 22 es 25.

  2. 2.

    Superman es más fuerte que Batman.

  3. 3.

    El uniforme de los Pumas es el más bonito de todos.

  4. 4.

    A todos los marcianos les gusta el pepperoni en sus pizzas.

Las cuales son capaces de ser declaradas ‘verdaderas’ o ‘falsas’. Las oraciones declarativas pueden efectuarse en cualquier lenguaje natural o artificial.

Ejemplos de oraciones no declarativas son:

  • ¿Me pasas la sal, por favor?

  • Que la fuerza te acompañe.

  • ¿Cómo estás?

  • ¡Felicidades!

  • ¡Haz tu tarea!

Estamos interesados en oraciones declarativas precisas acerca del comportamiento de programas. No solo queremos especificar tales oraciones, queremos también verificar si tales programas satisfacen una especificación dada. Por lo que necesitamos desarrollar una teoría de razonamiento que nos permita llegar a conclusiones a partir de suposiciones y que preserve la verdad: si todas nuestras suposiciones son verdaderas, entonces nuestra conclusión también debe ser cierta.

La lógica que diseñaremos es simbólica. Traduciremos un conjunto de oraciones declarativas del español a cadenas de símbolos. Nuestra estrategia será considerar ciertas oraciones declarativas como atómicas.

Asignamos símbolos diferentes p,q,r,,p1,q1,r1, a cada una de las oraciones atómicas, por lo que ahora podemos codificar oraciones más complejas. Dadas las oraciones atómicas:

p: gané la lotería la semana pasada
q: compré un boleto de lotería
r: gané las apuestas de la semana pasada

podemos formar oraciones más complejas de acuerdo a las reglas siguientes:

¬p: No es cierto que gané la lotería la semana pasada.
pq: Establece que al menos uno de ellos es cierto. Gané la lotería la semana pasada o gané las apuestas de la semana pasada.
pq: Establece que ambos tienen que ser ciertos. La semana pasada gané la lotería y las apuestas.
pq: Sugiere que q es consecuencia lógica de p. Si gané la lotería la semana pasada, entonces compré un boleto de lotería.

3 Sintaxis

La sintaxis de la lógica proposicional se anuncia a continuación.

Definición 3.1

Sintaxis de la lógica proposicional

Las fórmulas de la lógica proposicional son aquellas que obtenemos aplicando un número finito de veces las reglas que aparecen a continuación, y sólo ellas:

  1. 1.

    Todas las variables proposicionales p,q,r,,p1,q1,r1, son fórmulas de la lógica proposicional.

  2. 2.

    Si φ1 y φ2 son fórmulas de la lógica proposicional, entonces también lo son (¬φ1), (φφ2), (φ1φ2), (φ1φ2) y (φ1φ2).

Una definición alternativa usando una gramática en la Forma Backus Naur (BNF por sus siglas en inglés) se presenta enseguida.

Definición 3.2

Las fórmulas de la lógica proposicional son aquellas que se obtienen a partir de la siguiente gramática en BNF.

φ::=p|(¬φ)|(φφ)|(φφ)|(φφ)|(φφ) (1)

donde p representa cualquier proposición atómica, y cada presencia de φ a la derecha de ::= representa cualquier fórmula ya construida. Adicionalmente, las dos constantes sintácticas booleanas son y .

Precedencia: ¬ tiene mayor precedencia que y , estos dos conectivos tienen mayor precedencia que , y la implicación tiene mayor precedencia que el bi-condicional . Los operadores , y son asociativos, mientras que la implicación se asocia a la derecha, por ejemplo, pqr denota p(qr). Así, p¬qrq¬p es equivalente a ((p(¬q))r)(q(¬p)).

¿Cómo mostramos que una cadena es una fórmula? ¿Es φ una fórmula, donde φ es

(((¬p)q)(p(q(¬r)))) ?

la respuesta se facilita al notar que la gramática (1) satisface el principio de inversión, lo que significa que podemos invertir el proceso de construcción de fórmulas, es decir, en la gramática siempre hay una única cláusula que fue aplicada al último. Para la fórmula de arriba, la última regla aplicada fue la quinta cláusula, por lo que φ es una implicación con antecedente ((¬p)q) y consecuente (p(q(¬r))). Al emplear el principio de inversión al antecedente, vemos que es la conjunción de (¬p) y q. Luego, (¬p) resulta de aplicar la segunda cláusula sobre la fórmula p, que resulta de aplicar la primer cláusula. Por esta misma cláusula q es una fórmula. De manera similar podemos aplicar el principio de inversión para concluir que el consecuente (p(q(¬r)))) es una fórmula.

La Figura 1 muestra el árbol de análisis sintáctico de la fórmula φ. En esta representación los paréntesis son innecesarios ya que las trayectorias y la estructura ramificada elimina cualquier ambigüedad al interpretar a φ. Mientras que en la representación lineal de φ, la estructura ramificada del árbol se conserva al insertar paréntesis como se hace en la definición de fórmulas.

Refer to caption
Figura 1: Un árbol de análisis sintáctico para la fórmula (((¬p)q)(p(q(¬r)))).

La manera más sencilla de verificar que una cadena de símbolos φ es una fórmula es intentar construir su árbol de derivación.

Al considerar los árboles de análisis sintáctico podemos entender nociones como el concepto de subfórmula. Dada la fórmula φ definida arriba, sus subfórmulas son aquellas que corresponden a los subárboles del árbol en la Figura 1.

4 Inducción estructural

Teorema 4.1 (Inducción estructural)

Para demostrar que una propiedad es cierta para toda fórmula φ de la lógica proposicional:

  1. 1.

    Demuestre que la propiedad es cierta para todo átomo p.

  2. 2.

    Suponga que la propiedad es cierta para una fórmula φ y demuestre que la propiedad se cumple para ¬φ.

  3. 3.

    Suponga que la propiedad es cierta para las fórmulas φ y ψ, y demuestre que la propiedad se cumple para φψ, donde corresponde a cada conectivo lógico binario.

5 Semántica

Definición 5.1

Un estado o una asignación de las variables proposicionales es una función I que asigna a cada variable proposicional el valor de falso (0) o verdadero (1),

I:Variables proposicionales{0,1}.

Dadas n variables proposicionales existen 2n estados distintos para tales variables.

Definición 5.2

Dado un estado de las variables I, definimos la interpretación de las fórmulas con respecto a I como la función I, que asigna valores de verdad a las fórmulas de la lógica proposicional:

  • I(p)=I(p) para toda variable proposicional p,

  • I()=1,

  • I()=0,

  • I(¬φ)=1 syss I(φ)=0,

  • I(φψ)=0 syss I(φ)=I(ψ)=0,

  • I(φψ)=1 syss I(φ)=I(ψ)=1,

  • I(φψ)=0 syss I(φ)=1 e I(ψ)=0, y

  • I(φψ)=1 syss I(φ)=I(ψ).

Un estado de las variables I genera de manera única a la interpretación I por lo que de ahora en adelante escribiremos I en lugar de I. Esto se conoce como sobrecarga de operadores.

5.1 Declaración condicional en español

Como la declaración condicional o implicación juega un papel muy importante en el razonamiento matemático, una variedad de terminología se usa para expresar pq. La mayoría de las maneras de expresar la implicación en español se pueden encontrar a continuación:

  • si p, entonces q

  • si p, q

  • p es suficiente para q

  • q si p

  • q cuando p

  • una condición necesaria para p es q

  • q a menos que ¬p

  • p implica q

  • p solo si q

  • una condición suficiente para q es p

  • q siempre que p

  • q es necesaria para p

  • q se sigue de p

Para recordar la traducción correcta de “p solo si q” y de “una condición necesaria para p es q” notemos que de estos enunciamos podemos concluir que si q no se cumple, entonces p tampoco. Es decir, los enunciados son falsos si p es verdadero y q falso; son verdaderos de otro modo. Ambas declaraciones presentan un mismo comportamiento que pq.

Khan Academy menciona lo siguiente sobre la traducción de la oración “q es condición necesaria para p”:

Para alcanzar un objetivo p hay un requisito u obligación q. Lo más importante que debes saber sobre las condiciones necesarias es que no garantizan ningún tipo de resultado.

Por ejemplo, “pagar la tarifa de la visa americana es necesario para obtenerla”, pero realizar el pago no garantiza que se obtenga ya que también se toma en consideración la información en la solicitud, estados financieros, y la entrevista en la embajada/consulado, entre otros. Así, q se tiene que cumplir para que ocurra p, pero no hay garantía de que al cumplir con la condición necesaria q se lleve a cabo p. Lo que sí es seguro es que si se alcanza el objetivo, entonces se cumplió con el requisito, i.e., pq.

La frase “a menos” es usada para expresar una declaración condicional. Observemos que “q a menos que ¬p” significa que si ¬p es falsa, entonces q debe ser cierta. Es decir, la declaración “q a menos que ¬p” es falsa cuando p es verdadera y q es falsa, de otro modo es verdadera. Por consiguiente, “q a menos que ¬p” y pq tienen siempre el mismo valor de verdad.

5.2 Valor de verdad de la implicación

Una manera útil de entender el valor de verdad de la implicación es considerarla como un contrato u obligación. Por ejemplo, la promesa que muchos políticos hacen cuando hay elecciones es:

“Si me eligen, entonces reduciré los impuestos.”

Si el político es electo, los electores esperarían que el político redujera los impuestos. Si el político no es electo, no se tendría expectativa alguna de que tal persona redujera los impuestos, aunque la persona pudiera tener suficiente influencia sobre los que estén en el poder para reducirlos. Es únicamente cuando el político es electo y no reduce los impuestos que los electores pueden decir que el político ha roto su promesa de campaña. Este último escenario corresponde al caso cuando p es verdadero y q falso en pq.

5.3 Ejemplo

Dado el significado de las siguientes variables proposicionales,

p:el Sr. López está felizq:la Sra. López está felizr:x es impars:x es primot:la secuencia αn convergeu:la secuencia αn está acotadav:Kasparov ganará el torneo de ajedrezw:Kasparov gana hoy

indique una fórmula de la lógica proposicional que corresponda a cada una de las expresiones siguientes:

  1. 1.

    Si el Sr. López está feliz, la Sra. López no está feliz, y si el Sr. López no está feliz, la Sra. López no está feliz.

  2. 2.

    El Sr. López está feliz y la Sra. López no, o el Sr. López no está feliz y la Sra. López sí.

  3. 3.

    Una condición suficiente para que x sea impar es que x es primo.

  4. 4.

    Una condición necesaria para que x sea impar es que x sea primo.

  5. 5.

    La secuencia αn converge si está acotada.

  6. 6.

    La secuencia αn converge solo si está acotada.

  7. 7.

    Kasparov ganará el torneo de ajedrez a menos que Kasparov gane hoy.

  8. 8.

    Kasparov ganará el torneo de ajedrez si y solo si Kasparov gana hoy.

6 Sustitución

La operación de sustitución de las presencias de la variable proposicional p por la fórmula ψ en la fórmula φ, denotada por φ[p:=ψ], se define recursivamente como:

p[p:=ψ]=ψq[p:=ψ]=q,si pq[p:=ψ]=[p:=ψ]=¬φ[p:=ψ]=¬(φ[p:=ψ])(φ1φ2)[p:=ψ]=(φ1[p:=ψ]φ2[p:=ψ])

donde ={,,,}

Similarmente se puede definir la sustitución simultánea φ[p1,,pn:=ψ1,,ψn], denotada como φ[p:=ψ].

La sustitución tiene las siguientes propiedades:

  • φ[p:=ψ]=φ si p no está presente en φ.

  • φ[p:=ψ][q:=χ]=φ[q:=χ][p:=ψ[q:=χ]] si pq y p no está presente en χ.

  • φ[q,p:=ψ,χ]=φ[q:=ψ][p:=χ] si p{q} y p no está presente en ψ.

Ejemplo 6.1

Realice la sustitución que viene a continuación y elimine los paréntesis redundantes:

((p(sq))(((¬p)q)(¬s)))[p,q:=(sq),(sr)][s:=p]=(((sq)(s(sr)))(((¬(sq))(sr))(¬s)))[s:=p]=(((pq)(p(pr)))(((¬(pq))(pr))(¬p)))=(pq)ppr¬(pq)pr¬p

7 Conceptos semánticos básicos

Sea φ una fórmula. Entonces,

  • φ es una tautología, o fórmula válida, si I(φ)=1 para toda interpretación I. En tal caso escribimos φ.

  • La interpretación I es un modelo de φ si I(φ)=1. En tal caso escribimos Iφ, y catalogamos a φ como satisfacible.

  • La interpretación I no es un modelo de φ si I(φ)=0. En tal caso escribimos I⊧̸φ.

  • φ es una contradicción, o fórmula insatisfacible, si I(φ)=0 para toda interpretación I.

  • φ es contingente si existen interpretaciones I e I, tales que I(φ)=1 e I(φ)=0.

Sea Γ un conjunto de fórmulas.

  • Γ es satisfacible si existe una interpretación I tal que I(φ)=1 para toda φΓ.

  • Γ es insatisfacible si no existe una interpretación I tal que I(φ)=1 para toda φΓ.

Se extiende de la manera usual la función de interpretación de fórmulas para que también se aplique a conjuntos de fórmulas. De manera que podamos escribir I(Γ)=1 si Γ es satisfacible por I.

Proposición 7.1

Sea Γ={φ1,,φn} un conjunto de fórmulas.

  • Γ es satisfacible si y solo si φ1φn es satisfacible.

  • Γ es insatisfacible si y solo si φ1φn es una contradicción.

Lema 7.2

El conjunto vacío de fórmulas, , es válido.

Demostración. Un conjunto de fórmulas es válido syss toda fórmula en el conjunto es verdadera bajo cualquier interpretación. De otro modo, hay un fórmula φ que alguna interpretación no satisface. Pero decir que hay una fórmula en está mal. Por lo tanto, es un conjunto de fórmulas válido.

Equivalencia de Fórmulas

Sean φ y ψ dos fórmulas. Decimos que son equivalentes si I(φ)=I(ψ) para toda interpretación I. Lo denotamos como φψ.

Proposición 7.3

Sean φ y ψ dos fórmulas. Se cumple que φψ si y solo si φψ.

Proposición 7.4 (Regla de Leibniz)

Si φψ y p es una variable proposicional, entonces τ[p:=φ]τ[p:=ψ].

Consecuencia lógica

Sean Γ un conjunto de fórmulas y φ una fórmula. Decimos que φ es consecuencia lógica de Γ, lo cual se denota como Γφ, si para toda interpretación I que satisface a Γ, entonces I también satisface a φ.

La relación de consecuencia lógica se entiende a través de una implicación del siguiente modo:

para toda interpretación I,I(Γ)=1I(φ)=1

lo que nos indica que siempre que I satisfaga a Γ, entonces necesariamente I satisface a φ. Para corroborar una consecuencia lógica se debe tomar una interpretación I cualquiera que suponemos satisface a Γ, y debe probarse que esa misma I también satisface a φ.

Proposición 7.5

La consecuencia lógica cumple las siguientes propiedades:

  • Si φΓ, entonces Γφ.

  • φ es tautología syss φ.

  • Γφψ syss Γ{φ}ψ.

  • Si Γ es insatisfacible, entonces Γφ para toda fórmula φ.

  • Principio de refutación: Γφ syss Γ{¬φ} es insatisfacible.

Demostración. Se demostrará el Principio de refutación, los demás incisos se dejan como ejercicio. Dicho principio es equivalente a demostrar que Γ⊧̸φ syss Γ{¬φ} es satisfacible. Así,

Γ{¬φ} es satisfacible     syssexiste una interpretación I tal que I(Γ{¬φ})        =1syssexiste una interpretación I tal que I(Γ)=1 y I(¬φ)=1syssexiste una interpretación I tal que I(Γ)=1 y I(φ)=0syssΓ⊧̸φ

Correctud de argumentos lógicos

Un argumento lógico es una sucesión de fórmulas φ1,,φn que llamamos premisas y una fórmula ψ que llamamos conclusión.

Un argumento con premisas φ1,,φn y conclusión ψ es lógicamente correcto si la conclusión se sigue lógicamente de las premisas, i.e., {φ1,,φn}ψ.

Ejemplo 7.6

Supongamos que estamos en la isla de los caballeros y de los bribones. En esta isla todos son o caballeros o bribones. Los caballeros siempre dicen la verdad y los bribones siempre mienten. En una ocasión, hubo una epidemia que causaba que los caballeros enfermos siempre dijesen mentiras y que los bribones enfermos siempre dijesen la verdad. ¿Cuál de las siguientes oraciones puede ser dicha por un caballero enfermo?

  1. a)

    Soy un caballero.

  2. b)

    Si soy un caballero, entonces estoy enfermo.

  3. c)

    Soy un bribón enfermo.

  4. d)

    O bien soy un caballero enfermo, o bien soy un bribón enfermo.

  5. e)

    Si estoy sano, entonces soy un caballero.

Ejemplo 7.7

Sean Γ y Δ dos conjuntos de oraciones de la lógica proposicional, y sean φ y ψ fórmulas de la lógica proposicional. Determine para cada una de las siguientes afirmaciones si es verdadera, con una demostración, o si es falsa, con un contraejemplo.

  • Si Γφ y Δφ, entonces ΓΔφ.

  • Si Γφ y Δφ, entonces ΓΔφ.

  • Si Γφ y Δ⊧̸φ, entonces ΓΔφ.

  • Si Γ⊧̸ψ, entonces Γ¬ψ.

  • Si Γ¬ψ, entonces Γ⊧̸ψ.