Práctica 1: Lógica Proposicional y Tipos Básicos (Algoritmos I)

De Cuba-Wiki
La versión para imprimir ya no se admite y puede contener errores de representación. Actualiza los marcadores del navegador y utiliza en su lugar la función de impresión predeterminada del navegador.

Plantilla:Back

Sintaxis

Ejercicio 1

Sean x : , y : y z: Bool tres variables ¿Qué tipo tienen las siguientes expresiones?

a) 3 + 7 ()
b) True (Bool)
c) y·y ()
d) (z z) (Bool)
e) x==6 (Bool)
f) x==y (Bool)
g) ==3 (Bool)
h) x + y·2 ()
i) z 0==1 (No tiene tipo: faltan los paréntesis)
j) +x ()


Ejercicio 2

Sean x : , y : y z: Bool tres variables ¿Cuáles de las siguientes expresiones pueden tiparse correctamente?

a) +1 (Sí)
b) z + x (Sí)
c) (1==0)(x==z) (No, faltan los paréntesis)
d) (x+10)==y (Sí)
e) +x (Sí)
f) (xy) (No, el operador se aplica a dos bool)
g) ==3 (Sí)
h) z==(x==y) (Sí, z toma el mismo valor de verdad que x==y)
i) z==(x==) (Sí, ídem)
j) y·y<0 (Sí)

Ejercicio 3

La expresión (3 + 7 == − 8) True tiene tipo Bool. Justifique informal, pero detalladamente, el porqué.

En realidad este enunciado tiene un pequeño error: esa expresión no es de tipo Bool, no tiene ningún tipo, ya que le faltan los paréntesis que encierren toda la expresión. Estos paréntesis son necesarios, ya que (pq ), donde p y q son de tipo Bool, es una fórmula bien formada, pero no es válido para pq.

El enunciado puede ser reemplazado por este:

La expresión ((3 + 7 == − 8) True) tiene tipo Bool. Justifique informal, pero detalladamente, el porqué.

Justificación: el operador + puede aplicarse a dos elementos de tipo numérico, y representa otro elemento numérico. A su vez el operador ==, cada vez que se le aplica a dos elementos de igual tipo, nos representa un Bool. El operador puede aplicarse a dos Bool, y devuelve un tercero. En conclusión: tipa bien y es un Bool.

Semántica proposicional clásica

Ejercicio 4

Sean p y q variables proposicionales ¿Cuáles de las siguientes expresiones son fórmulas bien formadas?

a) (pq) (No, el conectivo es unario)
b) p q True (No, el y el están bien formados sólo usando paréntesis)
c) (p p q) (No, los paréntesis no deben encerrar a toda la fórmula, sino a cada subfórmula que tenga un conectivo binario. Lo cual no sucede en este caso.)
d) (p) (No. Los paréntesis se usan sólo cómo está explicito en las reglas de fórmulas bien formadas. A pesar de que es claro lo que representa, las reglas de "bienformación" de formulas no admite ese uso de los paréntesis.)
e) (p p q) (No, los incisos de fórmulas bien formadas no dicen nada respecto de la combinación de y . Por lo tanto no está bien formada.)
f)(True True True ) (No, pero sí valdría si fueran FINITOS)
g) (p) (No, ídem d)
h) (p False) (Sí, cumple las reglas de bienformación)
i) (p==q) (No, == no es un conectivo, sino un operador. Esta operación tiene valor Bool. Algo de tipo Bool NO necesita paréntesis, ya que representa un valor de verdad en sí mismo.)


Ejercicio 5

Determinar el valor de verdad de las siguientes proposiciones, si el valor de verdad de a, b y c es verdadero, mientras que el de x e y es falso.

a) (a b) (True)
b) (c (y x) b) (True)
c) (c y) (False)
d) ((c y) (c y)) (True)
e) ((c y) (x b)) (True)
f) (((c y) (x b)) (c (y x) b)) (True)
g) (c b) (False)

Ejercicio 6

Determinar, utilizando tablas de verdad, si las siguientes fórmulas son tautologías, contradicciones o contingencias.

a) (p p) (Tautología)
b) (p p) (Contradicción)
c) ((p q) (p q)) (Tautología)
d) ((p q) p) (Contingencia)
e) ((p q) (p q)) (Tautología)
f) (p p) (Tautología)
g) ((p q) p) (Tautología)
h) (( p (q r)) ((p q) (p r))) (Tautología)
i) ((p (q r)) ((p q) (p r))) (Tautología)

Ejercicio 7

Dadas las proposiciones lógicas a y b, se dice que a es más fuerte que b si y sólo si a b es una tautología. En este caso, también decimos que b es más débil que a. Determinar la relación de fuerza de los siguientes pares de fórmulas:

a) True, False (es más fuerte False)
b) (p q), (p q) (es más fuerte la primera)
c) True, True (son igualmente fuertes)
d) p, (pq) (es más fuerte la segunda)
e) False, False (son igualmente fuertes)
f) p, (p q) (es más fuerte p)
g) p,q (ninguno es más fuerte que otro ya que es contingencia)
h) p, (p q) (ídem)
La proposición más débil que aparece en el ejercicio es True (ya que cualquier cosa implica True), y la más fuerte False (False implica cualquier cosa)


Ejercicio 8

Decimos que un conectivo es expresable mediante otros si es posible escribir una fórmula utilizando exclusivamente estos últimos y que tenga la misma tabla de verdad que el primero (es decir, son equivalentes). Por ejemplo, la disyunción es expresable mediante la conjunción mmás la negación, ya que (p q) tiene la misma tabla de verdad que: (p q). Mostrar que cualquier fórmula de la lógica proposicional que utilice los conectivos: (negación), (conjunción), (disyunción), (implicación), (equivalencia) puede reescribirse utilizando sólo los conectivos y .

Si logramos escribir la tabla de verdad de cada conectivo usando y , entonces cualquier fórmula que use cualquiera de esos conectivos podrá escribirse en función de ellos.

Conjunción: (p q) puede escribirse como (p q)
Esto se prueba fácilmente haciendo la tabla de verdad de cada una y viendo que son iguales, o haciendo la de ((p q) (p q) y viendo que es tautología.

Implicación: (p q) puede escribirse como (p q)

Equivalencia: ( p q) puede escribirse como (( p q) (q p))

Pueden probarse todos de la misma manera, lo dejamos como ejercicio.


Ejercicio 9

Sean las variables proposicionales f, e y m con los siguientes significados:
f"es fin de semana", e "Juan estudia" y m"Juan escucha música".

a) Escribir usando lógica proposicional las siguientes oraciones:

  1. "Si es fin de semana, Juan estudia o escucha música, pero no ambas cosas":
    ()
  2. "Si no es fin de semana, entonces Juan no estudia":
    ()
  3. "Cuando Juan estudia los fines de semana, lo hace escuchando música":
    (()

b) Asumiendo que valen las tres proposiciones anteriores se puede deducir que Juan no estudia? Justificar usando argumentos de la logica proposicional.

Probar que bajo esas hipótesis Juan no estudia, significa probar que ((1 2 3) e) se cumple cualesquiera sean los valores que tomen f, e y m (es decir es tautología). Dejamos la tabla de verdad como tarea para el dulce hogar.

Ejercicio 10

En la salita verde de un jardín se sabe que las siguientes circunstancias son ciertas:

a)Si todos conocen a Juan entonces todos conocen a Camila (podemos pensar que esto se debe a que siempre caminan juntos).

b) Si todos conocen a Juan, entonces que todos conozcan a Camila implica que todos conocen a Gonzalo.


La pregunta entonces es: ¿Es cierto que si todos conocen a Juan entonces todos conocen a Gonzalo? Justificar.

Pasemos todo a lenguaje lógico:

  • j"Todos conocen a Juan"
  • c"Todos conocen a Camila"
  • g"Todos conocen a Gonzalo"

Entonces a) y b) son: (j c) y (j (c g)).

Queremos ver si de esas hipótesis se desprende (j g).


Esto es: probar que (((j c) (j (c g))) (j g)) es verdadero para cualquier valor de j, c y g (otra vez: probar que es tautología).

Va a ser verdadero.


Ejercicio 11

Siempre que Haroldo se pelea con sus compañeritos, vuelve a casa con un ojo morado. Si un día lo viéramos llegar con el ojo destrozado, podríamos sentirnos inclinados a concluir que se ha tomado a golpes de puño y cabezazos con los otros niñitos. ¿Puede identificar el error en el razonamiento anterior? Pista: Es conocido como falacia de afirrmar el consecuente.

Como lo dice el enunciado es la famosa falacia de afirmación del consecuente. Analicemos este razonamiento erróneo:

  • Si vale (p q) y p es verdadero, entonces q es verdadero.
  • Si vale (p q) y q es verdadero ¿Puedo deducir algo? No.

Ejemplos:

  • "Si un alumno aprueba la materia, aprobó los trabajos prácticos". Un alumno aprobó los trabajos prácticos, entonces aprobó la materia (MENTIRA! Pudo haber reprobado terriblemente los parciales y los recuperatorios)


  • "Todas las novias de Leonel están buenas". Ayer ví una chica que estaba buena, entonces es novia de Leonel.

Semántica de Cortocircuito

Ejercicio 12

Asignar un valor de verdad (verdadero, falso o indefinido) a cada una de las siguientes expresiones aritméticas en los reales.

Recordemos antes que todas las operaciones numéricas son estrictas: esto es si se indefine algún operando se indefine toda la operación.


a) 5 > 0 (Verdadero)

b) 1 1 (Verdadero)

c) (Indefinido)

d) 0 5 (Falso)

e) (Indefinido)

f) (Indefinido)

g) (Indefinido)

h) (Indefinido)

i) (Indefinido)

Ejercicio 13

La semántica de cortocircuito se basa en una forma particular de evaluar las expresiones booleanas. ¿Puede identificarla? ¿Cuál es su motivación?.

La semántica de cortocircuito se basa en evaluar de izquierda a derecha las expresiones booleanas, con el objetivo de resolver expresiones más rápidamente y de evitar indefiniciones. En este sentido, es tan efectivo evaluar de izquierda a derecha como evaluarlas de derecha a izquierda, según del modo en el que esten armadas las expresiones, sin embargo la semántica de cortocicuito utiliza la evaluación de izquierda a derecha.


Ejercicio 14

Determinar los valores de verdad de las proposiciones del ejercicio 5 cuando el valor de verdad de b y c es verdadero, el de x es falso y el de a e y es indefinido


a) (a b)
Indefinido (porque si se llega a evaluar un indefinido se indefine todo)
b) (c (y x) b)
Verdadero (la semántica de cortocircuito nos permite decidir que una disyunción es verdadera al encontrar el primer valor verdadero)
c) (c y)
Falso (por lo mismo que antes podemos afirmar que la disyunción es verdadera sin evaluar el indefinido, y al negarla todo se vuelve falso)
d) ((c y) (c y))
Indefinido (no podemos aprovechar la semántica de cortocircuito en este caso, ya que no podemos evitar evaluar la indefinición, por lo cual se indefine todo)
e) ((c y) (x b))
Falso (nuevamente aprovechando la semántica de cortocircuito podemos escapar de evaluar la indefinición. Recordemos que si evaluamos una indefinición se indefine TODO!)
f) (((c y) (x b)) (c (y x) b))
Falso (la evaluación no se indefine y el resultado que da es Falso)
g) (c b)
Falso (nuevamente podemos asegurar que la conjunción es falsa sin evaluar el término que se indefine)

Ejercicio 15

Construir las tablas de verdad de las fórmulas del ejercicio 6, teniendo en cuenta los tres valores de verdad (verdadero, falso e indefinido).


Debido a lo dificultoso de compartir tablas de verdad por este medio, momentáneamente, lo dejamos como tarea para el dulce hogar.


Ejercicio 16

A diferencia de lo que sucede en la lógica proposicional clásica, en general no vale que (pq) es equivalente a (qp) cuando admitimos a como valor de verdad. Mostrar que sin embargo (p q), ((p q)(q p)) y ((q p)(p q)) siguen siendo equivalentes.


Veamos las tablas de verdad de cada una, con la lógica trivaluada, y veamos que efectivamente son equivalentes (es decir, las tres fórmulas tienen la misma tabla de verdad)

p q (p q)
0 0 1
0 1 0
0
1 0 0
1 1 1
1
0
1


p q (p q) (q p) ((p q)(q p))
0 0 1 1 1
0 1 1 0 0
0 1
1 0 0 1 0
1 1 1 1 1
1
0 1
1



p q (p q) (q p) ((q p)(p q))
0 0 1 1 1
0 1 1 0 0
0 1
1 0 0 1 0
1 1 1 1 1
1
0 1
1


Es claro que tienen las mismas tablas de verdad.


Ejercicio 17

Sean p, q y r tres variables de las que se sabe que:

  • p y q nunca están indefinidas
  • r se indefine sii q es verdadera

Proponer una fórmula que nunca se indefina, utilizando siempre las tres variables y que sea verdadera si se cumple que:


a) Al menos una de las variables es verdadera.
b) Ninguna es verdadera.
c) Exactamente una de las tres es verdadera.
d) Solo p y q son verdaderas
e) No todas al mismo tiempo son verdaderas.
f) r es verdadera.


a) Al menos una de las variables es verdadera.

(p q r)

Si p es verdadera, podemos asegurar que todo es verdadero. Si q lo es, r se indefine, pero antes de llegar a evaluarla se define la fórmula con valor verdadero. Si r es verdadero, llega a r sin ningún problema porque p y q nunca se indefinen, y la disyunción toma valor verdadero.


b) Ninguna es verdadera
Primero pensemos cuáles son los valores posibles que pueden tomar las variables. Recordemos que que en la lógica trivaluada lo que no es True no necesariamente es False (podría ser indefinido). Como p y q no se indefinen (porque nos dijeron en el enunciado) tenemos que valen False. A su vez sabemos que r se indefine sii q es True. Pero q es False, por lo anterior, entonces r no se indefine. Si r no se indefine el hecho de que r no sea True significa que r toma valor False

Por lo tanto bajo ESTAS hipótesis si ninguno es True es porque son todos False. Una fórmula que se hace True con estos valores de p q y r es:

(p q r)

c) Exactamente una de las tres es verdadera.
Analicemos de vuelta cuáles son los valores posibles que pueden tomar las variables: Caso 1: p es True Si el que es True es p, el resto NO es True (recordemos que eso no es lo mismo que ser False). La variable q nunca se indefine, entonces, como no es verdadera ni se indefine, sólo puede suceder que sea False. Además r se indefine sii q es verdadero. Pero q es false, entonces r no se indefine. Y además r no era True (porque el que era True es p), por lo tanto sólo es posible que r sea False. Entonces, si p es True el resto es False.

Caso 2: q es True Si q es True, el resto NO es True. Como p no se indefine, entonces es False. Y r se indefine en caso de que q sea True. Por lo tanto: si q es True, p es False y r se indefine.

Caso 3: r es True Si r es True, el resto NO es True. Pero sabemos que q y p no se indefinen. Entonces toman valor False. si r es True, el resto es False.

Proponemos esta fórmula: ((p q ) (q p) (r p))

Notese que es verdadera sii una sola de las variables es True.


d) Solo p y q son verdaderas Si q es verdaderas, r se indefine. Por lo tanto podríamos usar la siguiente fórmula:

((p r) (q r))


e) No todas al mismo tiempo son verdaderas ¿Cuáles son las combinaciones de valores para p q y r que cumplen esto? Todas. Ya que nunca pueden ser todas verdaderas, porque si q es verdadera r se indefine. Por lo tanto cualquier fórmula que sea True funciona. Por ejemplo:

((p p) (q q) r)

Es claro que nunca se llega a evaluar ni el segundo ni el tercer término. Pero el enunciado pide explícitamente que se usen todas las variables.


f) r es verdadero Si r es verdadero, entonces no está indefinido. Por lo tanto q es falso. Sobre p no sabemos que puede pasar, así que nombremos cualquier cosa siempre verdadera sobre p como (p p):

(r q (p p))