Ejercicios de Lógica de Predicados

Enunciados

Formalizar las siguientes frases:
  1. Juan afeita a los que no se afeitan a sí mismos
  2. Existe un estudiante que afeita a todos los que no se afeitan a sí mismos
  3. Hay estudiantes que no afeitan a nadie, pero Juan se afeita a sí mismo
  4. Todos los estudiantes afeitan a Juan sólo si Juan no se afeita a sí mismo
  5. Los estudiantes no afeitan a Juan a menos que Juan sea estudiante

Demostrar mediante deducción natural
{"x(P(x)→Q(x)),"x(R(x)→Q(x)),"x(P(x)ÚR(x))}=>"xQ(x)
Demostrar mediante deducción natural
{$x(P(x)}=>¬"x¬P(x)
Demostrar por deducción natural
{"x(¬(¬Q(x)Ú¬R(x))),$x(P(x)→¬R(x)),$x(¬R(x)ÚS(x))}=>$xS(x)
Demostrar por deducción natural
{"x"y(¬(R(x)→¬S(x,y))),"x$y(P(x)→Q(x,y)),$x"y(R(x)ÙQ(x,y)→¬S(x,y))}=>$x¬P(x)
Formalizar y demostrar la corrección del siguiente razonamiento mediante deducción natural.Quien a buen árbol se arrima, buena sombra le cobija. Juan se arrima a un buen árbol. Por tanto, existen buenas sombras
Construir los siguientes predicados que utilizan aritmética pura en Prolog
  1. suma(X,Y,Z) se cumple si Z es la suma de X e Y
  2. prod(X,Y,Z) se cumple si Z es el producto de X e Y
  3. pot(X,Y,Z) se cumple si Z es el resultado de elevar X a Y
  4. fact(X,Y) se cumple si Y es el factorial de X
  5. mayor(X,Y,Z) se cumple si Z es el mayor de X e Y
  6. mcd(X,Y,Z) se cumple si Z es el máximo común divisor de X e Y (utilizar el algoritmo de Euclides)

Construir los siguientes predicados en Prolog
  1. junta(L1,L2,L3) se cumple si L3 es la lista resultante de juntar L1 y L2
  2. ultimo(L,X) se cumple si X es el último elemento de la lista L (definirlo de forma recursiva y utilizando el predicado junta
  3. seguidos(X,Y,L) se cumple si X e Y aparecen seguidos en la lista L

Soluciones

  1. "x(¬A(x,x)→A(j,x))
  2. $x(E(x)Ù"y(¬A(y,y)→A(x,y)))
  3. $x(E(x)Ù¬$yA(x,y))ÙA(j,j)
  4. ("x(E(x)→A(x,j))))→¬A(j,j)
  5. ("x(E(x)→A(x,j)))→E(j)

1. "x(P(x)→Q(x))           Premisa
2. "x(R(x)→Q(x))           Premisa
3. "x(P(x)ÚR(x))           Premisa
4. (a)           Var. libre
5. P(a)→Q(a)           "E 1
6. R(a)→Q(a)           "E 2
7. P(a)ÚR(a)           "E 3
8. Q(a)           ÚE 5,6,7
9. "xQ(x)           "I 4-8

1. $x(P(x)           Premisa
2. (a) P(a)           Supuesto
3. "x¬P(x)           Supuesto
4. ¬P(a)           "E 3
5. P(a)Ù¬P(a)           ÙI2,4
6. ¬"x¬P(x)           ¬I 3-5
7. ¬"x¬P(x)           $E 1,2-6

1. "x(¬(¬Q(x)Ú¬R(x)))           Premisa
2. $x(P(x)→¬R(x))           Premisa
3. $x(¬R(x)ÚS(x))           Premisa
4. (y) ¬R/y)ÚS(y)           Supuesto
5. ¬R(y)           Supuesto
6. ¬Q(y)Ú¬R(y)           ÚI 5
7. ¬(¬Q(y)Ú¬R(y))           "E 1
8. ¬Q(y)Ú¬R(y)Ù¬(¬Q(y)Ú¬R(y))           ÙI 6,7
9. F           FI 8
10. S(y)           FE 9
11. ¬R(y)→S(y)           →I 5-9
12. S(y)           Supuesto
13. S(y)→S(y)           →I 12
14. S(y)           ÚE 4,11,13
15. $xS(x)           $I 14
16. $xS(x)           $E 3,4-16

1. "x"y(¬(R(x)→¬S(x,y)))           Premisa
2. "x$y(P(x)→Q(x,y))           Premisa
3. $x"y(R(x)ÙQ(x,y)→¬S(x,y))           Premisa
4. (z) "y(R(z)ÙQ(z,y)→¬S(z,y))           Supuesto
5. $y(P(z)→Q(z,y))           "E 2
6. (t) P(z)→Q(z,t)           Supuesto
7. R(z)ÙQ(z,t)→¬S(z,t)           "E 4
8. "y (¬R(z)→¬S(z,y))           "E 1
9. ¬(R(z)→¬S(z,t))           "E 8
10. P(z)           Supuesto
11. Q(z,t)           →E 6
12. R(z)           Supuesto
13. Q(z,t)ÙR(z)           ÙI 11,12
14. ¬S(z,t)           →E 7,13
15. R(z)→¬S(z,t)           →I 12-14
16. (R(z)→¬S(z,t))Ù¬(R(z)→¬S(z,t))           ÙI 9,15
17. ¬P(z)           ¬I 10-16
18. $x¬P(x)           $I 17
19. $x¬P(x)           $E 5,6-18
20. $x¬P(x)           $E 3,4-19

1. "x($y(B(y)ÙA(y)ÙR(x,y))→$y(B(y)ÙS(y)ÙC(y,x)))           P.
2. $x(B(x)ÙA(x)ÙR(j,x))           Premisa
3. (z) R(j,z)ÙB(z)ÙA(z)           Supuesto
4. $y(B(y)ÙA(y)ÙR(j,y))→$y(B(y)ÙS(y)ÙC(y,j))           "E 1
5. $y(B(y)ÙA(y)ÙR(j,y))           $I 3
6. $y(B(y)ÙS(y)ÙC(y,j))           →E 4,5
7. (t)B(t)ÙS(t)ÙC(t,j)           Supuesto
8. B(t)           ÙE 7
9. S(t)           ÙE 7
10. B(t)ÙS(t)           ÙI 8,9
11. $x(B(x)ÙS(x))           $I 10
12. $x(B(x)ÙS(x))           $E 6,7-11
13. $x(B(x)ÙS(x))           $E 2, 3-12

suma(0,Y,Y).suma(s(X),Y,s(Z)):-suma(X,Y,Z).prod(0,Y,0).prod(s(X),Y,Z):-prod(X,Y,P),suma(P,Y,Z).pot(X,0,s(0)).pot(X,s(Y),Z):-pot(X,Y,P),prod(P,X,Z).fact(0,s(0)).fact(s(X),Y):-fact(X,F),prod(s(X),F,Y).mayor(s(X),0).mayor(s(X),s(Y)):-mayor(X,Y).mcd(X,X,X).mcd(X,Y,M):-mayor(X,Y),suma(R,Y,X),mcd(R,Y,M).mcd(X,Y,M):-mayor(Y,X),suma(R,X,Y),mcd(R,X,M).

junta([],L,L).junta([X|L],M,[X|N]):-junta(L,M,N)./* De forma recursiva */ultimo([X],X).ultimo([Y|L],X):-ultimo(L,X)./* usando el predicado "junta" */ultimo(L,X):-junta(M,[X],L).seguidos(X,Y,L):-junta(M,[X,Y|N],L).