Sunteți pe pagina 1din 5

Logic a ecuat ional a, programare logic a - probleme rezolvate

Daniel Dr agulici, 2012 Deduct ie ecuat ional a:


1. Fie signatura monosortat a dat a de S = {s}, = {1 : s, : ss s, 1 : s s}. Fie = {1 , 2 , 3 } mult imea format a din urm atoarele ecuat ii: . (1 ) {x} 1 x = x . (2 ) {x} x x1 = 1 . (3 ) {x, y, z } x (y z ) = (x y ) z Justicat i faptul c a urm atoarea secvent a de identit a ti este o -demonstrat ie n logica ecuat ional a, indic and la ecare pas regula de deduct ie folosit a: . 1 1 (1) {a, b} a (a b) = (a a ) b . (2) {a} a a1 = 1 . (3) {b} b = b . (4) {a, b} (a a1 ) b = 1 b . (5) {b} 1 b = b . (6) {a, b} (a a1 ) b = b . (7) {a, b} a (a1 b) = b Rezolvare: Ar at am c a secvent a (1) - (7) este o -demonstrat ie (a ecuat iei (7)), n cazul sistemului de reguli R, S , T , C , Sub : . (1) {a, b} a (a1 b) = (a a1 ) b (3 , Sub cu := {x a, y a1 , z b}) . (2) {a} a a1 = 1 (2 , Sub cu := {x a}) . (3) {b} b = b (R) . (4) {a, b} (a a1 ) b = 1 b (2, 3, C pentru : ss s) . (5) {b} 1 b = b (1 , Sub cu := {x b}) . (6) {a, b} (a a1 ) b = b (4, 5, T) . 1 (7) {a, b} a (a b) = b (1, 6, T) Obs: putem schimba ordinea ecuat iilor demonstrat ia r am an and corect a, dac a avem grij a ca ntotdeauna ecuat iile din care rezult a o anumit a ecuat ie n baza unei reguli de deduct ie s a e scrise naintea ei; mai exact, trebuie ca (2) si (3) s a precead a (4), (4) si (5) s a precead a (6), iar (1) si (6) s a precead a (7); de exemplu urm atoarele secvent e sunt si ele -demonstrat ii corecte pentru (7) ( n cazul sistemului de reguli R, S , T , C , Sub ): (2) (3) (4) (5) (6) (1) (7) (3) (2) (5) (4) (1) (6) (7) . O -demonstrat ie pentru {a, b} a (a1 b) = b n cazul sistemului de reguli R, S , T , SR este urm atoarea: . (1) {a, b} a (a1 b) = (a a1 ) b (3 , SR cu c := z si := {x a, y a1 , z b}) . (2) {a, b} (a a1 ) b = 1 b (2 , SR cu c := z b si := {x a}) . (3) {b} 1 b = b (1 , SR cu c := z si := {x b}) . (4) {a, b} (a a1 ) b = b (2, 3, T) . (5) {a, b} a (a1 b) = b (1, 4, T) Obs: si aici putem schimba ordinea ecuat iilor, cu condit ia ca (2) si (3) s a precead a (4) iar (1) si (4) s a precead a (5); de exemplu: (2) (3) (1) (4) (5)

(3) (2) (4) (1) (5) 2. Fie signatura monosortat a dat a de: S = {elt}, = { : elt elt elt} Fie = {1 , 2 } mult imea format a din urm atoarele ecuat ii: . (1 ) {x} x x = x . (2 ) {x, y } x y = y x . Scriet i demonstrat ii formale pentru a ar ata c a {x, y } (x y ) (y x) = y x, at at n cazul sistemului de reguli R, S , T , C , Sub c at si n cazul sistemului de reguli R, S , T , SR . Indicat i la ecare pas al demonstrat iei regulile de deduct ie folosite. Rezolvare: Ar at am c a (1) {x, y } x (2) {x, y } y (3) {x, y } (x (4) {x, y } (y (5) {x, y } (x Ar at am c a (1) {x, y } (x (2) {x, y } (y (3) {x, y } (x . {x, y } (x y ) (y x) = y x: . y=y x . x=y x (R) . y ) (y x) = (y x) (y x) (1, 2, C pentru : elt elt elt) . x ) (y x ) = y x (1 , Sub cu := {x y x}) . y ) (y x ) = y x (3, 4, T) . R,S,T,SR {x, y } (x y ) (y x) = y x: . y ) (y x) = (y x) (y x) (2 , SR cu c := z (y x) si := Id) . x ) (y x ) = y x (1 , SR cu c := z si := {x y x}) . y ) (y x ) = y x (1, 2, T).
R,S,T,C ,Sub

3. Fie specicat ia multisortat a dat a de: S = {nat, bool} = {T : bool, F : bool, 0 : nat, succ : nat nat, iszero : nat bool} = {1 , 2 , 3 }, unde: . (1 ) succ(succ(0)) = 0 . (2 ) iszero(0) = T . (3 ) {x} iszero(succ(x)) = F . . Scriet i demonstrat ii formale pentru a ar ata c a T = F , at at n cazul sistemului de reguli R, S , T , C , Sub c at si n cazul sistemului de reguli R, S , T , SR . Indicat i la ecare pas al demonstrat iei regulile de deduct ie folosite. Rezolvare: . Ar at am c a R,S,T,C ,Sub T = F : . (1) iszero(0) = T . (2) T = iszero(0) (1, S) . (3) succ(succ(0)) = 0 . (4) 0 = succ(succ(0)) (3, S) . (5) iszero(0) = iszero(succ(succ(0))) (4, C pentru iszero : nat bool) . (6) T = iszero(succ(succ(0))) (2, 5, T) . (7) iszero(succ(succ(0))) = F (3 , Sub cu := {x succ(0)}; ntr-adev ar, avem : {x} T ()) . (8) T = F (6, 7, T)

. Ar at am c a R,S,T,SR T = F : . (1) iszero(0) = T . (2) iszero(succ(succ(0))) = iszero(0) . (3) iszero(succ(succ(0))) = T . (4) T = iszero(succ(succ(0))) . (5) iszero(succ(succ(0))) = F . (6) T = F

(1 , SR cu c := iszero(z ) si := Id) (2, 1, T) (3, S) (3 , SR cu c := z si := {x succ(0)}) (4, 5, T).

Unicare:
1. Fie signatura monosortat a dat a de S = {s}, = { : ss s, 1 : s s}, mult imea de variabile X = {x, y, z, u, v } si termenii t1 = (x y ) z , t2 = v (u v )1 (de sort s). G asit i o substitut ie : X T (X ) a. . (t1 ) = (t2 ). Rezolvare: Scriem termenii n form a funct ional a : t1 = ( (x, y ), z ), t2 = (v, (1)( (u, v )). . Consider am problema de unicare U = {t1 = t2 } si vom g asi un cgu pentru ea, aplic and algoritmul de unicare (am subliniat ecuat iile supuse elimin arii cu regula 4): . Init ial: R = U = { ( (x, y ), z ) = (v, (1)( (u, v ))} . . Regula 3 (descompune): R = { (x, y ) = v, z = (1)( (u, v ))} . . Regula 2 (orienteaz a): R = {v = (x, y ), z = (1)( (u, v ))} . . Regula 4 (elimin a): R = {v = (x, y ), z = (1)( (u, (x, y )))} . . Regula 4 (elimin a): R = {v = (x, y ), z = (1)( (u, (x, y )))} cgu. Cgu furnizat de R este o o substitut ie cu propriet a tile din enunt : 1 (x) = x, (y ) = y , (z ) = (u (x y )) , (u) = u, (v ) = x y . Va rezulta: (t1 ) = (t2 ) = (x y ) (u (x y ))1 . 2. G asit i un unicator pentru termenii t1 = f (x, g (y, y ), x) si t2 = f (z, z, g (w, h(v ))), unde x, y, z, v si w sunt variabile iar operat iile f , g , h au respectiv arit a tile 3,2,1. Rezolvare: . Aplic am algoritmul de unicare problemei U = {t1 = t2 } si obt inem (ca la problema anterioar a, am subliniat ecuat iie supuse elimin arii cu regula 4): . Init ial: R = U = {f (x, g (y, y ), x) = f (z, z, g (w, h(v )))} . . . Regula 3 (descompune): R = {x = z, g (y, y ) = z, x = g (w, h(v ))} . . . Regula 4 (elimin a): R = {x = z, g (y, y ) = z, z = g (w, h(v ))} . . . Regula 2 (orienteaz a): R = {x = z, z = g (y, y ), z = g (w, h(v ))} . . . Regula 4 (elimin a): R = {x = g (y, y ), z = g (y, y ), g (y, y ) = g (w, h(v ))} . . . . Regula 3 (descompune): R = {x = g (y, y ), z = g (y, y ), y = w, y = h(v )} . . . . Regula 4 (elimin a): R = {x = g (w, w), z = g (w, w), y = w, w = h(v )} . . . . Regula 4 (elimin a): R = {x = g (h(v ), h(v )), z = g (h(v ), h(v )), y = h(v ), w = h(v )} cgu. Not and substitut ia rezultat a cu , vom avea: (t1 ) = (t2 ) = f (g (h(v ), h(v )), g (h(v ), h(v )), g (h(v ), h(v ))).

Observ am c a la aplicarea regulii 4 (eliminare) variabilele se pot nlocui si n ecuat iile supuse deja elimin arii. La problemele urm atoare nu vom mai sublinia ecuat iile. 3. Determinat i dac a termenii t1 = g (z, h(z, v ), f (v )) si t2 = g (f (x), h(y, f (a)), f (f (b))) au un unicator (x, y , z , v sunt variabile, a si b sunt constante iar operat iile f , g , h au respectiv arit a tile 1,3,2). Rezolvare: . Termenii au unicatori d.d. aplic and algoritmul de unicare problemei U = {t1 = t2 } obt inem o problem a R = (caz n care substitut ia denit a de R este chiar un cgu). Vom avea: Init ial: . R = U = {g (z, h(z, v ), f (v )) = g (f (x), h(y, f (a)), f (f (b)))} . Descompune t1 = t2 : . . . R = {z = f (x), h(z, v ) = h(y, f (a)), f (v ) = f (f (b))} . Elimin a z cu z = f (x): . . . R = {z = f (x), h(f (x), v ) = h(y, f (a)), f (v ) = f (f (b))} . Descompune h(f (x), v ) = h(y, f (a)): . . . . R = {z = f (x), f (x) = y, v = f (a), f (v ) = f (f (b))} . . . Orienteaz a f (x) = y , elimin a y cu ecuat ia rezultat a y = f ( x) si apoi pe v cu v = f (a): . . . . R = {z = f (x), y = f (x), v = f (a), f (f (a)) = f (f (b))} . . Descompune f (f (a)) = f (f (b)) si apoi ecuat ia rezultat a f (a) = f (b): . . . . R = {z = f (x), y = f (x), v = f (b), a = b} . Descompune a = b (conform ipotezei, a si b sunt operat ii (0-are), nu variabile): R= (deoarece a si b sunt operat ii, iar a = b). Deci, termenii nu au unicatori. 4. Studiat i mult imea de unicatori a termenilor: t1 = h(f (u), h(g (a, w), v, x), f (w)) si t2 = h(f (g (a, w)), h(v, g (w, a), f (v )), y ), unde u, v , w, x, y sunt variabile, a este constant a iar f , g , h operat ii cu respectiv arit a tile 1,2,3. Rezolvare: . Vom aplica algoritmul de unicare problemei U = {t1 = t2 }, obt in and o problem a R. Dac a R = , termenii nu au unicatori. Dac a R = , termenii au unicatori, iar ace stia sunt de forma R ; , unde R este substitut ia denit a de R iar o substitut ie oarecare (extins a la morsm pe termeni). Init ial: . R = U = {h(f (u), h(g (a, w), v, x), f (w)) = h(f (g (a, w)), h(v, g (w, a), f (v )), y )} . Descompune t1 = t2 : . . . R = {f (u) = f (g (a, w)), h(g (a, w), v, x) = h(v, g (w, a), f (v )), f (w) = y } . . Descompune f (u) = f (g (a, w)), apoi elimin a u cu ecuat ia rezultat a u = g (a, w): . . . R = {u = g (a, w), h(g (a, w), v, x) = h(v, g (w, a), f (v )), f (w) = y } . Descompune h(g (a, w), v, x) = h(v, g (w, a), f (v )): . . . . . R = {u = g (a, w), g (a, w) = v, v = g (w, a), x = f (v ), f (w) = y } . . Orienteaz a g (a, w) = v , apoi elimin a v cu ecuat ia rezultat a v = g (a, w): . . . . . R = {u = g (a, w), v = g (a, w), g (a, w) = g (w, a), x = f (g (a, w)), f (w) = y } . Descompune g (a, w) = g (w, a): . . . . . . R = {u = g (a, w), v = g (a, w), a = w, w = a, x = f (g (a, w)), f (w) = y }

. Orienteaz a a = w (a este o constant a, deci nu o variabil a); n problema rezultat a apar astfel . dou a ecuat ii w = a, dar vom p astra doar una, deoarece R este mult ime; apoi elimin a w cu . ecuat ia w = a: . . . . . R = {u = g (a, a), v = g (a, a), w = a, x = f (g (a, a)), f (a) = y } . . Elimin a x cu x = f (g (a, a)) (R r am ane la fel), apoi orienteaz a f (a) = y , apoi elimin a y cu ecuat ia rezultat a y = f (a) (R r am ane la fel): . . . . . R = {u = g (a, a), v = g (a, a), w = a, x = f (g (a, a)), y = f (a)} cgu. Constat am c a R nlocuie ste ecare variabil a cu c ate un termen ground (i.e. f ar a variabile); astfel, compun and n continuare cu o alt a substitut ie, termenii nu se mai modic a. De aceea, . U nif ({t1 = t2 }) = {R } (adic a cei doi termeni au un singur unicator).