Final 02/08/2023 (Paradigmas)

De Cuba-Wiki
Revisión del 14:44 17 ene 2024 de 2803:9800:9001:bd81:50b1:bce6:d25a:afa4 (discusión) (Página creada con «1) agarra la regla de occur check y la cambia para que en vez de fallar, no hace nada y elimina la ecuación a. Encontrar un problema de unificación donde dependiendo del orden de elección, falle o no falle b. Idem pero dependiendo del orden de sustituciones distintas c. Encontrar un conjunto de clausulas satisfactible desde el cual se pueda llegar a la clausula vacía con esta modificación del algoritmo de mgu 2) dar la lista de todos los predicados sobre naturale…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

1) agarra la regla de occur check y la cambia para que en vez de fallar, no hace nada y elimina la ecuación a. Encontrar un problema de unificación donde dependiendo del orden de elección, falle o no falle b. Idem pero dependiendo del orden de sustituciones distintas c. Encontrar un conjunto de clausulas satisfactible desde el cual se pueda llegar a la clausula vacía con esta modificación del algoritmo de mgu 2) dar la lista de todos los predicados sobre naturales donde la preimagen de True sea finita 3) p(a); p(b); q(c); q(d); r(X) :- not(not(X)), not(not(X)) Describir si falla o no, cual es el resultado y que variables se instancian en caso de que no falle 4) bool <: bool -> bool y viceversa a. Dar el juicio de tipado de true true. Explicar que propiedad se perdió b. tipar (\x. x x) (\x. x x) y dar un juicio de tipado. Explicar que propiedad se perdió. 5) calculo sigma. Define el objeto Zero que tiene un mensaje suc y otro que soporta hacer un fold en naturales con caso base 0. a. Pidió evaluar un término b. Definir el objeto dup que duplique un número usando el esquema de fold descrito en la consigna

Sumo lo que me acuerdo: 5) a) Se define Zero = [ fold = ∆(i)i.z, suc = §(x)x.fold := ∆(i)i.s(x.fold(i))].El triángulo es una lambda por las dudas El termino a evaluar era zero.suc.fold(isZero) b) el dup se esperaba que se use como n.fold(dup) y reduce al objeto que es el doble de n.