Práctico 5

Introducci´
on a los Algoritmos - 1er. cuatrimestre 2015
Gu´ıa 5: Sem´
antica y C´
alculo de L´
ogica de Predicados
La l´
ogica de predicados o l´
ogica de primer orden es el sistema l´ogico est´andar que formaliza el sistema
deductivo natural. El objetivo general de esta gu´ıa es aprender a utilizar f´ormulas con cuantificadores universales
(∀) y existenciales (∃), tanto para interpretar su significado, como para utilizarlas para realizar demostraciones
formales en este sistema l´
ogico.
Interpretaci´
on y construcci´
on de modelos en L´
ogica de Predicados
La L´
ogica de Predicados cuenta con todos los operadores de la L´ogica Proposicional (≡, ¬, ∧, ∨, etc´etera)
e incorpora dos nuevos operadores de cuantificaci´
on. Por ejemplo, sea el predicado T.x, definido como
.
T.x = x es m´
ultiplo de 3
el cuantificador universal ∀ permite expresar que todo x es m´
ultiplo de 3. Esto se denota por h∀x : : T.xi. El
cuantificador universal indica que la propiedad es satisfecha por todos los valores de la variable. El cuantificador
existencial ∃, expresa que la propiedad es satisfecha por al menos un valor de x. Por ejemplo h∃x : : T.xi
indica que existe un x que es m´
ultiplo de 3. El conjunto de valores sobre el que la propiedad expresada se eval´
ua
se especifica en el rango de la f´
ormula. Mientras que la propiedad se expecifica en el t´
ermino. El rango y el
t´ermino se escriben en las siguientes ubicaciones:
h∀x : rango.x : termino.xi
h∃x : rango.x : termino.xi
Por ejemplo, el enunciado “Todos los naturales son enteros” se formaliza como:
h∀x : naturales.x : enteros.xi
el enunciado s´
olo se eval´
ua sobre el conjunto de naturales (y no de los reales, por ejemplo).
El objetivo de los siguientes ejercicios es clarificar el significado de los nuevos operadores de cuantificaci´
on,
para lograr la capacidad de leer y escribir f´
ormulas que los involucran.
1. Dado el siguiente mundo
decid´ı si las siguientes sentencias son satisfechas o no (y por qu´e). Por ejemplo, la sentencia “Hay un
cuadrado grande” se satisface por el objeto D. Sin embargo, la frase “Todos los c´ırculos son grandes”, no
se satisface a causa del c´ırculo chico E.
1
a) F est´
a entre D y E.
b) Todos los tri´
angulos son chicos.
c) Existe (al menos) un cuadrado chico.
d ) A est´
a a la derecha de todo.
e) Nada est´
a a la derecha de B.
Elimin´
a el tri´
angulo F. ¿El inciso (b) se sigue satisfaciendo? ¿Por qu´e?
2. Constru´ı un mundo en el que se satisfagan progresivamente cada una de las siguientes sentencias, utilizando
cuadrados, c´ırculos y tri´
angulos, chicos o grandes.
a) Algo es grande.
b) Hay un cuadrado.
c) Hay un cuadrado grande.
d ) Un cuadrado grande est´
a a la izquierda de B.
e) Algo que est´
a a la izquierda de B est´a arriba de C.
f ) Alg´
un c´ırculo no es grande.
3. Utilizando sat constru´ı el modelo que se muestra a continuaci´on:
Not´
a que todos los enunciados del ejercicio anterior se satisfacen en este mundo. Luego,
a) Introduc´ı tus formalizaciones de los enunciados y verific´a que se satisfagan. Si no es as´ı, te equivocaste
en algo ¿pod´es encontrar donde est´a el error de la traducci´on?
b) Mov´e el cuadrado grande a la esquina superior derecha del tablero. Observ´a que el enunciado d
no se satisface mientras que los restantes siguen valiendo. Verific´a que lo mismo ocurra con tus
formalizaciones.
c) A partir del mundo original, mov´e c hacia arriba por su propia columna hasta la fila superior y
hac´e grande a b. Ahora los enunciados e y f no se satisfacen. Verific´a que lo mismo ocurra con tus
formalizaciones.
4. Constru´ı un u
´nico modelo como los de sat, en el que se satisfagan, simult´aneamente, las siguientes propiedades
a) h∀x : Circ.x : Rojo.x ≡ Grande.xi
b) h∃x :: h∃y : ¬(x = y) : Grande.x ≡ (¬Rojo.y)ii
c) h∀x : ¬Circ.x : h∃y :: Circ.y ∧ Rojo.yii
2
d ) h∀x : Grande.x : h∀y :: (¬Rojo.y) ≡ Tr.yii
Para evitar confusiones, dar un dibujo del modelo, nombrando todos los elementos, y luedo indicar, para
cada elemento qu´e propiedades (forma, color, tama˜
no) tiene. Ejemplo “e1 es c´ırculo, rojo, grande”.
5. Constru´ı un u
´nico modelo como los de sat, en el que se satisfagan, simult´aneamente, las siguientes propiedades:
a) h∀x : ¬Rojo.x ∨ Tr.x : h∃y : (x = y) : Grande.yii
b) h∃x : Rojo.x : h∃y :: Rojo.x ≡ ¬Rojo.yii
c) h∀x : Cuad.x : h∃y : ¬(x = y) : Tr.yii
d ) h∀x : Rojo.x : Cuad.x ∧ h∃y :: Grande.xii
Para evitar confusiones, dibuj´
a el modelo nombrando cada figura, y luedo indic´a las propiedades (forma,
color, tama˜
no) que cada una tiene. Por ejemplo “e1 es tri´angulo, rojo, grande”.
Interpretaci´
on y formalizaci´
on de enunciados en l´
ogica de predicados
6. Expres´
a el significado de cada una de las siguientes f´ormulas en lenguaje natural. Por ejemplo, en la
f´
ormula
h∀i : 0 6 i < #xs : xs ! i = 0i
debemos suponer que la variable xs es de tipo lista, para que el tipado sea correcto. Las siguientes
sentencias son todas traducciones de esta f´ormula al lenguaje natural:
“Todos los elementos de la lista xs son ceros”
“La lista xs est´a compuesta u
´nicamente por ceros”
“La lista xs no tiene otro valor que cero”. . .
a) h∀x : x ∈ Num : h∃y : y ∈ Int : x < yii
b) h∃x : x ∈ Num : h∀y : y ∈ Int : x < yii ¿Es lo mismo que el anterior?
c) h∀x, z : x, z ∈ Num ∧ x < z : h∃y : y ∈ Num : x < y < zii.
d ) h∀p, q : 0 6 p ∧ 0 6 q ∧ p + q = #xs − 1 : xs ! p = xs ! qi.
e) N 6 #xs ∧ h∃i : 0 6 i < N : xs ! i = 0i
f ) h∃N : N 6 #xs : h∀i : 0 6 i < N : xs ! i > 0ii
g) #xs = #ys ⇒ h∃i : 0 6 i < #xs m´ın #ys : xs ! i 6= ys ! ii.
7. Formaliz´
a las siguientes sentencias escritas en lenguaje natural, utilizando cuantificadores y predicados
arbitrarios para aquellas propiedades elementales. Por ejemplo, para la sentencia “Hay enteros pares”
puede formalizarse con la f´
ormula:
h∃x : entero.x : mod.x.2 = 0i
a) Todo entero es par o impar.
b) El producto de dos impares es impar.
c) Dados dos n´
umeros enteros positivos, existe un tercer entero tal que el primer entero multiplicado
por el tercer entero es mayor que el segundo entero.
d ) x est´
a en la lista xs.
e) La lista xs consiste s´
olo de 0’s y 1’s.
f ) Si el 1 est´
a en xs, entonces tambi´en el 0 est´a.
g) Todos los elementos de xs son iguales.
h) Todos los elementos de la lista son distintos.
i ) La lista xs es capic´
ua.
3
j ) La lista xs est´
a ordenada de manera decreciente.
k ) Las listas xs e ys tienen los mismos elementos.
l ) Todos los elementos de xs tienen al menos un elemento. ¿Cu´al debe ser el tipo de xs?
Demostraciones de l´
ogica de predicados
En los siguientes ejercicios se deben hacer demostraciones en el C´alculo de Predicados, utilizando los axiomas
y teoremas sobre cuantificadores, adem´
as de los axiomas y teoremas del C´alculo Proposicional que venimos
utilizando.
8. Evaluar las siguientes expresiones usando los axiomas de cuantificadores:
a) h∀i : 0 6 i < 3 : mod.([0, 2, 4, 1] ! i).2 = 0i.
b) h∀i : 0 6 i < 4 : mod.([0, 2, 4, 1] ! i).2 = 0i.
9. Justificar las respuestas de estos ejercicios usando los axiomas.
a) Evaluar h∀i : 0 6 i < 3 : h∀j : 0 6 j < 3 : [0, 2, 1] ! i = [0, 2, 1] ! jii.
b) Decidir si la f´
ormula h∀i : 0 6 i < 3 : h∀j : 0 6 j < 3 : xs ! i = xs ! jii es satisfactible.
c) Encontrar valores de x e y que satisfagan la siguiente f´ormula:
h∀i : 0 6 i < 4 : [0, x, 2, y, 6] ! i < [0, x, 2, y, 6] ! (i + 1)i.
10. Demostr´
a justificando cada paso los siguientes teoremas sobre el cuantificador existencial:
a) Regla del T´ermino del ∃: h∃x : : T.xi ∨ h∃x : : U.xi ≡ h∃x : : T.x ∨ U.xi.
b) Rango unitario: h∃x : x = Y : T.xi ≡ T.Y , siempre que Y no ocurra cuantificada en T .
c) Partici´
on de rango para ∃: h∃x : R.x ∨ S.x : T.xi ≡ h∃x : R.x : T.xi ∨ h∃x : S.x : T.xi.
d ) Rango vac´ıo: h∃x : False : T.xi ≡ False.
11. Evaluar las siguientes expresiones usando los axiomas de cuantificadores y comparar con el ejercicio 8:
a) h∃i : 0 6 i < 3 : mod.([0, 2, 4, 1] ! i).2 = 1i.
b) h∃i : 0 6 i < 4 : mod.([0, 2, 4, 1] ! i).2 = 1i.
12. Sea elem : A → [A] → Bool definida de la siguiente manera:
.
elem.y.[ ] =
.
elem.y.(x . xs) =
False
y = x ∨ elem.y.xs
Describ´ı con tus palabras qu´e hace esta funci´on y evalu´a las siguientes f´ormulas, usando la definici´
on de
elem y las propiedades de los cuantificadores.
a) h∀x : elem.x.[0, 1, 3] : x 6 3i.
b) h∃x : elem.x.[0, 1, 3] : x > 3i.
13. Demostr´
a justificando cada paso los siguientes teoremas sobre el cuantificador existencial:
a) Intercambio entre rango y t´ermino: h∃x : R.x : T.xi ≡ h∃x : : R.x ∧ T.xi.
b) Intercambio de cuantificadores: h∃x : : h∃y : : T.x.yii ≡ h∃y : : h∃x : : T.x.yii.
c) Testigo: T.Y ⇒ h∃x : : T.xi, siempre que Y no ocurra cuantificada en T .
d ) Enunci´
a y demostr´
a la propiedad de Cambio de Variable para el cuantificador existencial.
14. Demostr´
a que las siguientes f´
ormulas son v´alidas, justificando en cada paso el axioma o teorema del C´
alculo
de Predicados utilizado.
4
a) h∀x : Circ.x : Grande.xi ≡ h∀x : ¬Grande.x : ¬Circ.xi
b) h∃x : Cuad.x : Chico.xi ⇒ h∃x : : Cuad.xi
c) ¬h∃x : : Tr.xi ⇒ h∀x : Tr.x : Rojo.xi
d ) h∃x : : Cuad.xi ∧ h∀y : : Grande.yi ⇒ h∃x : : Cuad.x ∧ Grande.xi
En todos los items anteriores, ¿es posible cambiar los predicados Circ, Grande, Cuad, etc. por predicados
arbitrarios R, T , S, etc. manteniendo la validez de las f´ormulas? Dicho de otro modo ¿la validez de las
formulas anteriores depende de los predicados espec´ıficos Circ, Grande, Cuad, etc?
15. Decid´ı si cada una de las siguientes f´
ormulas es v´alida o no. En caso que una f´ormula no sea v´
alida,
decid´ı si es satisfactible o no. En todos los casos justific´a con una demostraci´on, ejemplo o contraejemplo.
Ayuda: Pod´es usar sat para definir mundos que sirvan como ejemplo de satisfacci´
on de una f´
ormula, o (contra)ejemplo de invalidez de una f´
ormula.
a) h∀x : Cuad.x : Chico.xi ⇒ (h∀x : : Cuad.xi ⇒ h∀x : : Chico.xi)
b) h∀x : Cuad.x : Chico.xi ⇐ (h∀x : : Cuad.xi ⇒ h∀x : : Chico.xi)
c) h∃x : Tr.x : Grande.xi ∧ h∃x : Tr.x : Azul.xi ⇒ h∃x : Tr.x : Grande.x ∧ Azul.xi
d ) h∃x : Tr.x : Grande.xi ∧ h∃x : Tr.x : Azul.xi ⇐ h∃x : Tr.x : Grande.x ∧ Azul.xi
16.
a) Expres´
a en tus propias palabras lo que significan las expresiones a cada lado de ≡:
h∀i : 0 6 i < #xs : xs ! i < 0i ≡ (xs ! 0 < 0) ∧ h∀i : 1 6 i < #xs : xs ! i < 0i.
b) Prob´
a que esta equivalencia es un teorema.
17. Probar:
h∀i : 1 6 i < #(x . xs) : (x . xs) ! i < 10i ≡ h∀i : 0 6 i < #xs : xs ! i < 10i.
Ayuda: Usar el Teorema de Reenumeraci´
on.
18. Usando la siguiente definici´
on de todosMenores10 : [Num] → Bool
.
todosMenores10.[ ] = True
.
todosMenores10.(x . xs) = x < 10 ∧ todosMenores10.xs,
prob´
a por inducci´
on que
todosMenores10.xs ≡ h∀i : 0 6 i < #xs : xs ! i < 10i.
Ayuda: Aqu´ı te ser´
an u
´tiles tus soluciones de los ejercicios 16 y 17.
19. Probar por inducci´
on en xs:
h∀x : elem.x.xs : T.xi ≡ h∀i : 0 6 i < #xs : T.(xs ! i)i.
5