note de curs iii

of 27/27
PROGRAMARE LOGIC ˘ A ECUAT ¸ IONAL ˘ A edit ¸ia a III-a VirgilEmilC˘az˘anescu October 4, 2008

Post on 23-Jun-2015

237 views

Category:

Documents

7 download

Embed Size (px)

DESCRIPTION

Parte a cursului de Programare Logica, prof dr. Virgil Emil Cazanescu, Facultatea de Matematica si Informatica, Universitatea Bucuresti

TRANSCRIPT

PROGRAMARE LOGICA ECUATIONALA editia a III-a Virgil Emil Cznescu a a October 4, 2008

Chapter 1

IN PRIMUL RAND SEMANTICAAceast variant este independent de lectiile privind rescrierea rmmnd necesare cunotiintele privind algebrele a a a a a a s multisortate. Mentionm c cei doi membri ai unei egaliti trebuie s aib acela sort. a a at a a s

1.1

Introducere

Pentru orice signatur multisortat (S, ) i orice multime de variabile X notm -algebra liber generat de X cu a a s a a T (X). Denitia 1.1.1 O ecuatie conditionat este a (X)l =s r if H unde X este o multime S-sortat de variabile, l i r sunt dou elemente de sort s din T (X) iar H o multime nit a s a a de egaliti formale din T (X) T (X). 2 at O ecuatie conditionat care H = devine neconditionat i este numit pe scurt ecuatie. acest caz scriem doar a n as a In . . (X)l =s r loc de (X)l =s r if . n Denitia 1.1.2 Algebra D satisface ecuatia conditionat (X)l =s r if H, fapt notat prin a D |= (X)l =s r if H dac pentru orice morsm h : T (X) D pentru care hs (u) = hs (v) pentru orice u =s v H, avem hs (l) = hs (r). a 2 cele ce urmeaz indicele din |= va omis. El va mentionat atunci cnd este pericol de confuzie. In a a . Observm c D |= (X)l =s r dac i numai dac hs (l) = hs (r) pentru orice morsm h : T (X) D. a a as a continuare xm o multime de ecuatii conditionate, numite axiome sau clauze. In a Denitia 1.1.3 Spunem c algebra D satisface sau c D e o -algebr i scriem D |= dac D satisface toate a a as a ecuatiile conditionate din . 2 . . . .

1.2

Semantic i Corectitudine as

Vom lucra ntr-o -algebr A. a Fie relatia pe A denit prin a a c dac i numai dac (h : A M |= )hs (a) = hs (c). as a Mai observm c a a = {Ker(h) | h : A M |= }. Deoarece nucleul unui morsm este o relatie de congruent i deoarece orice intersectie de relatii de congruente este a s o relatie de congruent, deducem c este o relatie de congruent. a a a 1

Congruenta este numit congruent semantic. a a a Dm dou reguli de deductie ale rescrierii Sub i Rew . a a s Sub Rew Pentru orice (X) l =s r if H i orice morsm h : T (X) A s . . . a (u =s v H)hs (u) =s hs (v) implic hs (l) =s hs (r). . Pentru orice (X) l =s r if H i orice morsm h : T (X) A s . . . . a s (u =s v H)(d As )hs (u) =s d i hs (v) =s d implic hs (l) =s hs (r)..

Lem 1.2.1 Pentru orice morsm f : A M |= , Ker(f ) este nchis la Rew . a Demonstratie: Fie (X)l =s r if H i h : T (X) A un morsm cu proprietatea c pentru orice u = v H n s a exist cuv cu proprietile h(u) Ker(f ) cuv i h(v) Ker(f ) cuv . Prin urmare (h; f )(u) = f (cuv ) = (h; f )(v) pentru a at s . orice u = v H. Deoarece h; f : T (X) M |= rezult c (h; f )s (l) = (h; f )s (r), deci hs (l) Ker(f ) hs (r).2 a a Deoarece orice relatie reexiv i a s nchis la Rew este a nchis i la Sub obtinem lema urmtoare. as a Lem 1.2.2 Pentru orice morsm f : A M |= , Ker(f ) este nchis la Sub . a Propozitie 1.2.3 Congruenta semantic este nchis la substitutie. a a Demonstratie: Congruenta semantic este o intersectie de congruente a nchise la substitutie. Deoarece o intersectie de congruente nchise la substitutii este o congruenta nchis la substitutii rezult c este o congruent a a a a nchis a la substitutie. 2 Propozitie 1.2.4 Dac este o congruenta nchis la substitutii, atunci A/ |= . a a Demonstratie: Notm cu : A A/ morsmul de factorizare canonic. a . . Fie (X)l =s r if H i h : T (X) A/ un morsm astfel at ht (u) = ht (v) pentru orice u =t v H. n s nc . Cum T (X) este algebr proiectiv exist un morsm f : T (X) A astfel at f ; = h. Pentru orice u =t v H a a a nc deoarece t (ft (u)) = t (ft (v)) deducem ft (u) ft (v). Deoarece este o congruent a nchis la substitutii obtinem fs (l) fs (r). Prin urmare s (fs (l)) = s (fs (r)), de a unde hs (l) = hs (r). 2 Fie A factorizarea lui A prin congruenta i e : A A morsmul ct. s a Teorema 1.2.5 A |= Demonstratie: Se aplic propozitiile 1.2.3 i 1.2.4. 2 a s Teorema 1.2.6 Pentru orice -algebr B i pentru orice morsm h : A B exist i este unic un morsm a s a s h# : A B astfel nct ; h# = h. a Demonstratie: Este sucient s artm c a c implic h(a) = h(c) i apoi s aplicm proprietatea de univer a aa a a s a a salitate a algebrei ct. a Intr-adevr a c implic h(a) = h(c) deoarece h : A B |= . 2 a a Corolar 1.2.7 Dac A este -algebr initial, atunci A este -algebr initial. a a a a a Demonstratie: Fie B o -algebr arbitrar. a a Cum A este -algebr initial rezult c exist un unic -morsm h : A B. a a a a a Conform teoremei 1.2.6 exist un unic -morsm h# : A B astfel at ; h# = h. Artm c h# este unicul a nc aa a morsm de -algebre de la A la B. Dac f : A B este un alt morsm atunci ; f este morsm de la A la B, rezultnd c ; f = h, deci f = h# . a a a. .

Chapter 2

UNIFICAREAToate algebrele sunt presupuse libere. Prin substitutie vom elege un morsm nt ntre dou algebre libere. a s a Problema unicrii. Se dau un numr nit de perechi de termeni li =si ri i se cere gsirea unui unicator, a a adic a unei substitutii u cu proprietatea u(li ) = u(ri ) pentru orice i. a .

2.1

Algoritmul de unicare

Vom lucra cu dou liste: solutie i de rezolvat. Initial lista solutie este vid i lista de rezolvat contine multimea a s a s ecuatiilor de unicat. Algoritmul de unicare const executia nedeterminist a urmatorilor trei pai. a n a s 1. Scoate. Se scoate din lista de rezolvat orice ecuatie de forma t = t. 2. Descompune. Orice ecuatie din lista de rezolvat de forma f (a1 , a2 , . . . , an ) = f (b1 , b2 , . . . , bn ) se nlocuiete cu ecuatiile a1 = b1 , a2 = b2 , ..., an = bn , s 3. Elimin. Orice ecuatie din lista de rezolvat, de forma x = t sau t = x care x este o variabil care nu apare a n a . t este mutat sub forma x = t lista solutie. In toate celelalte ecuatii x se substitue cu t. n a n Algoritmul este oprit cu concluzia inexistentei unui unicator urmatoarele dou cazuri. n a . 1) Existenta lista de rezolvat a unei ecuatii de forma f (a1 , a2 , . . . , an ) = g(b1 , b2 , . . . , bm ) cu f = g, n . . 2) Existenta lista de rezolvat a unei ecuatii de forma x = t sau t = x care x este o variabil care apare t n n a n i este diferit de t. s a Oprirea normal a algoritmului se face prin epuizarea listei de rezolvat, caz care, aa cum vom proba mai jos, lista a n s solutie coincide cu cel mai general unicator. . . . . . . .

2.2

Terminare

Terminarea algoritmului este probat folosind ordine lexicograc dou criterii exprimate prin numere naturale: a n a a 1. numrul variabilelor care apar lista de rezolvat, care in functie de pasul algoritmului utilizat are urmtoarea a n a comportare (a) Scoate: rmne egal sau se micoreaz, a a s a (b) Descompune: rmne egal, a a (c) Elimin: se micoreaz a s a 2. numrul aparitiilor simbolurilor(semnelor) care apar lista de rezolvat, care se micoreaz cele dou cazuri a n s a n a care ne mai intereseaz Scoate i Descompune. a s 3

2.3

Corectitudine

Corectitudinea algoritmului se bazeaz pe demonstrarea faptului c multimea unicatorilor pentru ecuatiile din a a reuniunea celor dou liste este un invariant, adic nu se modic prin aplicarea celor trei pai ai algoritmului. a a a s Deoarece pentru pasul Scoate armatia este evident ne referim doar la ceilalti pai. a s Descompune: Observm c pentru orice substitutie s egalitatea a a s(f (a1 , a2 , . . . , an )) = s(f (b1 , b2 , . . . , bn )) este echivalent cu a f (s(a1 ), s(a2 ), . . . , s(an )) = f (s(b1 ), s(b2 ), . . . , s(bn )) adic cu s(ai ) = s(bi ) pentru orice i [n]. a Elimin: Observm c orice unicator u pentru ecuatiile din reuniunea celor dou liste att a a a a a nainte de aplicarea pasului ct i dup aceasta trebuie s satisfac egalitatea u(x) = u(t). Pentru o substitutie s cu proprietatea s(x) = a s a a a s(t) observm c a a x t; s = s deoarece (x t; s)(x) = s(t) = s(x) i (x t; s)(y) = s(y) pentru orice alta variabil y. Prin urmare pentru o astfel s a de substitutie s(l) = s(r) dac i numai dac s((x t)(l)) = s((x t)(r)) as a ceea ce arat c un unicator pentru ecuatiile din reuniunea celor dou liste dinainte de aplicarea pasului este a a a unicator i pentru ecuatiile din reuniunea celor dou liste de dup aplicarea pasului i reciproc. s a a s Algoritmul este oprit cu concluzia inexistentei unui unicator deoarece cele dou situatii mentionate se constat n a a c multimea unicatorilor este vid. a a S observm c variabilele care apar membrul stng al ecuatiilor din lista solutie sunt diferite dou cte dou a a a n a a a a i nu mai apar nici una dintre celelalte ecuatii din cele dou liste. s n a Faptul poate dovedit prin inductie. Mentionm c aplicarea primilor doi pai ai algoritmului nu modic lista solutie i nu produc aparitii noi de a a s a s variabile cele dou liste. n a . Fie x = t ecuatia introdus lista solutie prin aplicarea pasului Elimin. Deoarece variabilele din membrul a n a stng ai listei solutie precedent nu apar celelalte ecuatii rezult c variabila x este diferit de celelalte variabile a a n a a a care apar membrul stng al ecuatiilor din lista solutie. In plus prin substituirea lui x cu t celelalte ecuatii n a n variabila x dispare din ele deoarece x nu apare t. Deoarece nici x i nici variabilele din membrul stng ai listei n s a solutie precedent nu apar t rezult c dup efectuarea substitutiei lui x cu t variabilele din membrul stng ai a n a a a a listei solutie nu apar restul ecuatiilor. n S presupunem c algoritmul s-a terminat prin epuizarea listei de rezolvat. S notm cu k numrul ecuatiilor din a a a a a . lista solutie i cu xi = ti pentru i [k] ecuatiile din ea. s Fie U substitutia denit prin a U (xi ) = ti pentru orice i [k]. Denitia este corect deoarece variabilele xi sunt distincte. Deoarece variabilele xi nu apar termenii ti deducem a n c U (ti ) = ti , prin urmare U (ti ) = U (xi ), deci U este un unicator. Vom dovedi c este cel mai general. a a Observm c pentru orice substitutie s compunerea U ; s este tot un unicator. Vom arta c orice alt unicator a a a a este de aceast form. Fie u un alt unicator, adica u(xi ) = u(ti ) pentru orice i [k]. Observm c U ; u = u, cci a a a a a u(U (xi )) = u(ti ) = u(xi ) pentru orice i [k] i u(U (y)) = u(y) pentru orice alt variabil y. s a a Deci U este cel mai general unicator, deoarece orice alt unicator poate exprimat ca o compunere a lui U cu o substitutie. In plus observm c el este idempotent deoarece U ; U = U . a a cele ce urmeaz vom scrie CGU ca o prescurtare pentru Cel mai General Unicator. In a In semantica operational a limbajelor declarative rescrierea joac un rol primordial. Pentru a rescrie un element a a . a cu ajutorul unei reguli l =s r se pune problema identicrii unui subtermen al lui a cu imaginea lui l printr-o a substitutie. Aceast problem de potrivire(matching englez) se poate rezolva tot cu ajutorul algoritmului de a a n a unicare. Mai precis se caut a se unica l cu un subtermen al lui a care toate variabilele sunt considerate a n constante.

Chapter 3

TEOREMELE LUI HERBRAND3.1 Introducere. .

Reamintim urmtoarele denitii specice logicii ecuationale multisortate. a at Denitia 3.1.1 Fie -algebra T (X) i G = {l1 =s1 r1 , . . . , ln =sn rn } o multime de egaliti formale ntre elemente s . din T (X). Atunci = (X)l =s r if G se numete clauz. Notm cu o multime de clauze. s a a Notatii 3.1.2 Fie A o -algebr i o clauz ca mai sus. Notm A |= dac pentru orice morsm h : T (X) A as a a a astfel nct h(li ) = h(ri ) pentru orice i [n] avem h(l) = h(r). Similar A |= dac A |= pentru orice . a a In acest caz spunem c A este o -algebr. a a Notatii 3.1.3 Notm cu T = T () -algebra initial (adic obiectul initial n categoria -algebrelor) i cu T, a a a s -algebra initial (adic obiectul initial n categoria -algebrelor, subcategorie a categoriei -algebrelor). a a Introducem o nou denitie i o nou notatie pentru programarea logic ecuational. a s a a a at Denitia 3.1.4 Fie A o -algebr i G = {l1 =s1 r1 , . . . , ln =sn rn } o multime de egaliti formale ntre elemente as din T (X). A |= (X)G dac exist morsmul h : T (X) A astfel nct h(li ) = h(ri ) pentru orice i [n] . a a a at Notatii 3.1.5 Fie o multime de clauze i G = {l1 =s1 r1 , . . . , ln =sn rn } o multime de egaliti formale ntre s elemente din T (X). Notm |= (X)G dac A |= (X)G pentru orice -algebr A. a a a Programarea logic ecuational ii pune urmtoarea problem (X)G. a a s a a Teoremele lui Herbrand se refer la posibilitatea rezolvrii acestor ecuatii toate -algebrele. a a n Morsmele de algebre se extind natural pentru perechi de elemente i pentru multimi de perechi de elemente. s . . Dac h : A B atunci pentru orice a, b A prin denitie h((a, b)) = (h(a), h(b)) sau hs (a =s b) = (hs (a) =s hs (b)). a De asemenea locul notatiei hs (a) = hs (b) vom mai utiliza hs ((a, b)) B . n . . . .

3.2

Teoremele lui Herbrand

literatura de specialitate se gsesc dou teoreme ale lui Herbrand. Teorema care urmeaz combin cele dou In a a a a a teoreme ntr-una singur. a Teorema 3.2.1 Urmtoarele armatii sunt echivalente: a 1. |= (X)G ; 2. T, |= (X)G ; 3. Exist : T (X) T astfel nct |= ()(G), unde (G) = {(l1 ) =s1 (r1 ), ..., (ln ) =sn (rn )} . a a Demonstratie: (1) (2) este evident, deoarece T, este o -algebr. a a (2) (3) Conform ipotezei, exist h : T (X) T, astfel at h(li ) = h(ri ) pentru orice i [n]. Pentru c a nc a T (X) este algebr liber i deci proiectiv, exist : T (X) T astfel at ; = h. a as a a nc 5

E T (X) T d d h d d d T,

Figure 3.1: Proiectivitatea -algebrei T (X)

Avem deci c (li ) = (ri ) pentru orice i [n]. Deoarece T, se obtine prin factorizarea algebrei T la a congruenta semantic deducem c (li ) (ri ) pentru orice i [n]. a a Rezult c pentru orice morsm f : T A |= c f ((li )) = f ((ri )) pentru orice i [n]. a a a Prin urmare |= ()(G). (3) (1) Fie M o -algebr. Avem de artat c M |= (X)G. a a a Artm c ; M : T (X) M este morsmul care veric proprietatea din denitie. Deoarece M |= , aa a a din ipotez rezult c M |= ()(G). Utiliznd denitie morsmul M : T M deducem c M ((li )) = a a a a n a M ((ri )), pentru orice i [n]. Rezult c (; M )(li ) = (; M )(ri ), pentru orice i [n]. a a Deci M |= (X)G i demonstratia se s ncheie. 2 Prima echivalent a teoremei arat c problema programrii logice se reduce la rezolvarea ei -algebra initial a a a a n a 0, , pas deosebit de mare deoarece loc de o clas de algebre lucrm numai cu o algebr. n a a a A treia armatie din teorem ne arat c rezolvarea problemei se poate face utiliznd numai algebre libere. Ea a a a a face legtura cu programarea ecuational i cu conceptul de solutie. a as A treia armatie mai arat c pentru existenta solutiei este necesar ca suporturile din -algebra initial T , a a a corespunztoare sorturilor variabilelor cuanticate existential, sa e nevide. a Exercitiu. Dat signatura , s se determine multimea sorturilor pentru care suportul corespunztor din T este a a a nevid. Din a treia armatie a teoremei lui Herbrand se mai vede c solutia : T (X) T se caut a a ntr-o subalgebr a T a algebrei T (X) care este pus problema (X)G. Chiar dac T nu mai apare nici o variabil, acest fapt n a a n a este neglijat practic. S presupunem c avem de rezolvat ecuatia x = f (y) unde evident X = {x, y}. Solutia n a a a este dat chiar de aceast ecuatie, adic T ({y}) chiar dac suportul corespunztor lui y este vid T . Prin a a a n a a n urmare ecuatia x = f (y) va avea solutie numai algebrele care suportul corespunztor sortului lui y este nevid. n n a continuare ne vor interesa i astfel de solutii. In s

Chapter 4

CORECTITUDINEA REGULILOR PROGRAMARII LOGICE4.1 Preliminarii

Amintim c pentru o -algebra A, Sen(A ) = {a=s b | s S, a, b As } (propozitiile lui A). a continuare vom considera o multime de ecuatii conditionate, iar G Sen(A). In Spunem c |= (A)G dac, pentru orice -morsm h : A M |= , avem hs (a) = hs (b), pentru orice a a a=s b G. Pentru uurint, vom mai nota i cu h(G) M faptul c hs (a) = hs (b), pentru orice a=s b G, unde s a s a h : A M. a Congruenta semantic A , relativ la o -algebra A, este denit prin: a a A b |= a=s b hs (a) = hs (b), pentru orice h : A M|= . Observatie. |= (A)G dac i numai dac G A . as a Propozitie 4.1.1 Dac h : A B este un -morsm, atunci h(A ) B . a Demonstratie Fie a A b. Vrem s artm c h(a) B h(b). a aa a Fie f : B M|= . Cum h; f : A M|= i a A b, rezult c (h; f )(a) = (h; f )(b), echivalent cu s a a f (h(a)) = f (h(b)). Cum f a fost ales arbitrar, rezult c h(a) B h(b). 2 a a Corolar 4.1.1 Dac |= (A)G i h : A B un -morsm, atunci |= (B)h(G). a s a Demonstratie Din ipotez, conform observatiei, deducem c G A . Aplicnd Propozitia 4.1.1, deducem h(G) a a B , deci, conform observatiei, |= (B)h(G). 2 Fie A o -algebr i z o nou variabil de sort s astfel at z As . Considerm algebra liber generat de a s a a nc / a a A {z}, T (A {z}), pe care o notm cu A[z]. Un element c din A[z] se numete context dac numrul aparitiilor a s a a lui z c este 1. Pentru d As , vom nota cu (z d) : A[z] A unicul -morsm cu proprietatea (z d)(z) = d n i (z d)(a) = a, pentru orice a A. Pentru orice t din A[z] i a As , vom prefera s scriem t[a], loc de s s a n (z a)(t). Datorit faptului c regulile programrii logice lucreaz pe multimi de egaliti formale, vom deni notiunea de a a a a at context extins. Fie A o -algebr, c A[z]s un context i v As . O egalitate formal de forma c=s v sau v =s c se a s a a a a numete context extins. Un context extins c=s v (respectiv v =s c) va notat cu C. S observm c s (c=s v)[a] = (z a)(c=s v) = (c[a]=s c[v]) = (c[a]=s v). Orice morsm h : A B se poate extinde, mod unic, la un morsm hz : A[z] B[z] prin hz (z) = z i n s h (a) = h(a), pentru orice a A. Pentru orice a A, avem (z a); h = hz ; (z h(a)). Pentru un context c A[z] deducem c h(c[a]) = hz (c)[h(a)], unde hz (c) este context. az

7

Pentru C un context extins, se observ c hz (C) este un context extins i c a a s a h(C[a]) = hz (C)[h(a)].

4.2

Solutii i reguli de deductie s

Problema programrii logice este (A)G. a Denitie 4.2.1 Un -morsm s : A B se numete solutie pentru (A)G dac |= (B)s(G). s a Propozitie 4.2.1 Compunerea unei solutii cu orice -morsm este solutie. Demonstratie Fie s : A B o solutie pentru (A)G i h : B C un morsm. Vrem s artm c s; h : A C s a aa a este solutie pentru (A)G, adic |= (C)(s; h)(G). a Deoarece s : A B este solutie pentru (A)G, atunci |= (B)s(G). Corolarul 4.1.1 implic |= (C)h(s(G)). a Deci |= (C)(s; h)(G) i astfel s; h este solutie pentru (A)G. 2 s Din propozitia precedent rezult c dac avem o solutie, atunci aceasta nu este unic. Acest fapt ne a a a a a ndeamn a s cutm o solutie ct mai general. a a a a a general, solutiile sunt construite mai multe etape, aprnd nal ca o compunere de morsme. Morsmele In n a a n care apar procesul de calcul i care, sperm, ca nal s furnizeze o solutie sunt numite morsme calculate. n s a n a continuare vom prezenta regulile de deductie folosite programarea logic. Aceste reguli ne permit s trecem In n a a de la o multime G de egaliti formale la o alt multime G de egaliti formale, obtinnd i un morsm calculat. at a at a s Aplicarea acestor reguli va nceta momentul care ajungem la o multime vid de egaliti formale. acest n n a at In punct, putem compune toate morsmele calculate gsite, ordinea aparitiei lor, i astfel vom obtine o solutie a n s pentru problema initial. Aceast armatie va probat mai trziu ipoteza c toate regulile de deductie utilizate a a a a n a sunt corecte. Mentionm continuare mai multe reguli de deductie utile programarea logic. a n n a Regula morsmului: Dac G Sen(T (X)) i : T (X) T (Y ), atunci a s G m (G), cu morsmul calculat . Regula reexiei extinse: Dac G Sen(T (X)) i : T (X) T (Y ) astfel nct s (l) = s (r), atunci a s a G {l=s r} re (G), cu morsmul calculat . Regula reexiei: Dac G Sen(T (X)) i : T (X) T (Y ) astfel nct = CGU {l, r}, atunci a s a G {l=s r} r (G), cu morsmul calculat . Regula pararescrierii: Fie G Sen(T (X)), (Y )l=s r if H i morsmul : T (Y ) T (X). Dac C este s a un context extins cu variabila distins z de sort s, atunci a G {C[s (l)]} pr G (H) {C[s (r)]}. Mentionm c pentru pararescriere, morsmul calculat este morsmul identitate. a a Regula paramodulatiei extinse: Fie (Y )l=s r if H . Considerm X astfel nct XY = , G Sen(T (X)) a a i morsmul : T (X Y ) T (Z) astfel nct s (l) = s (a), unde a T (X)s . Dac C este un context extins cu s a a variabila distins z de sort s, atunci a G {C[a]} pe (G H {C[r]}),

cu morsmul calculat /X , restrictia lui la T (X). Regula paramodulatiei: Fie (Y )l=s r if H . Considerm X astfel nct X Y = , a a G Sen(T (X)) i morsmul : T (X Y ) T (Z) astfel nct = CGU {l, a}, unde a T (X)s . Dac C este s a a un context extins cu variabila distins z de sort s, atunci a G {C[a]} p (G H {C[r]}), cu morsmul calculat /X , restrictia lui la T (X). Comentariu Dorinta exprimat mai sus de a obtine o solutie ct mai general face ca regulile de deductie utilizate de a a a semantica operational a programrii logice s e mai restrictive. Mai precis reexia este reexia extins cu conditia a a a a suplimentar ca s e cel mai general unicator pentru l i r, iar paramodulatia este paramodulatia extins a a s a n care este cel mai general unicator pentru l i a. Conform uzantelor presupunem X Y = , fapt posibil datorit s a cuanticrii universale a clauzei care ne permite s alegem variabile noi locul celor din Y ori de cte ori este a a n a necesar.

4.3

Legturi a ntre regulile de deductie

continuare vom prezenta legturile In a ntre regulile de deductie pentru programarea logic. Aceste legturi sunt a a importante, ajutndu-ne, de exemplu, s demonstrm mai uor unele proprieti ale regulilor de deductie. a a a s at primul rnd, este evident c regula reexiei i regula paramodulatiei sunt cazuri particulare ale regulilor reexiei In a a s extinse i, respectiv, paramodulatiei extinse (caz particular care cerem ca morsmul implicat regul s e un s n n a a cel mai general unicator, nu doar un -morsm). Observm c a a G {l=s r} m (G) {s (l) = s (r)}, cu morsmul calculat , ceea ce arat c regula morsmului i eliminarea egalitilor evidente permit eliminarea a a s at regulii reexiei extinse dintre regulile de lucru. Propozitie 4.3.1 Pararescrierea este un caz particular de paramodulatie extins. a Demonstratie Considerm pararescrierea G {C[hs (l)]} pr G h(H) {C[hs (r)]}, unde (Y )l=s r if H i a s h : T (Y ) T (X) este un -morsm (presupunem X Y = ). Lum a = hs (l). S considerm -morsmul : T (X Y ) T (X) denit prin: a a a 1. (y) = h(y), pentru orice y Y , 2. (x) = x, pentru orice x X. Observm c (t) = t, pentru orice t T (X) i (u) = h(u), pentru orice u T (Y ). a a s Deoarece G este o multime de egaliti formale din Sen(T (X)), rezult c s (u=s v) = (s (u)=s s (v)) = (u=s v), at a a pentru orice u=s v G. concluzie, putem scrie (G) = G. In Similar, H este o multime de egaliti formale din Sen(T (Y )) i astfel avem s (u=s v) = (s (u)=s s (v)) = at s (hs (u)=s hs (v)), pentru orice u=s v H. concluzie, putem scrie (H) = h(H). In De asemenea, contextul extins C este o egalitate formal din Sen(T (X {z})) i astfel avem z (C) = C. a s Observm c s (r) = hs (r) i s (a) = s (hs (l)) = hs (l) = s (l), deoarece l, r T (Y ). a a s Putem aplica regula paramodulatiei extinse pentru (Y )l=s r if H i : T (X Y ) T (X) astfel obtinnd: s a G {C[hs (l)]} = G {C[a]} pe (G H {C[r]}) = (G) (H) (C[r]) = = G h(H) z (C)[s (r)] = G h(H) C[hs (r)]. Morsmul calculat /X este identitatea lui T (X). 2 Propozitie 4.3.2 Dac pentru orice clauz (Y )l=s r if H din , orice variabil din Y apare n l, atunci pararescrierea a a a este un caz particular de paramodulatie n care substitutia calculat este o identitate. a.

Demonstratie Pstrm notatiile i demonstratia din propozitia precedent. Vom proba, plus, c este cel mai a a s a n a general unicator pentru l i a. s Fie u : T (X Y ) B un unicator pentru l i a. Deoarece us (l) = us (a) = us (hs (l)) i orice variabil din Y s s a apare l, deducem c u(y) = u(h(y)), pentru orice y Y . n a s a a Notm cu u|X restrictia lui u la X i observm c u|X (x) = u(x), pentru orice x X. a s Observm c ; u|X = u: pentru orice x X, u|X ((x)) = u|X (x) = u(x), i pentru orice y Y , u|X ((y)) = a a u|X (h(y)) = u(h(y)) = u(y). Deci este cel mai general unicator pentru l i a deoarece u = ; u|X . 2 s Lem 4.3.1 Dac (Y )t=s t , atunci G p (x t)(G), unde x este o variabil care apare n G i nu apare n t. a a a s Demonstratie Alegem o aparitie a lui x G i scriem G = G C[x], unde C este un context extins. Aplicnd n s a regula paramodulatiei pentru (Y )t=s t , a = x, = CGU {a, l} = CGU {x, t} = x t, obtinem: G = G C[x] p (x t)(G C[t]) = (x t)(G). Ultima egalitate este adevrat deoarece x nu apare t. 2 a a n Ipoteza x apare G nu este esential deoarece, dac x nu apare G, (x t)(G) = G i prin urmare (x t)(G) n a a n s se obtine din G 0 pai. n s Lem 4.3.2 (Lema substitutiei) Dac sunt ndeplinite urmtoarele conditii: G este o multime nit, a a a a (x)x=x pentru orice variabil x, (x1 x2 . . . xn )f (x1 , x2 , . . . , xn )=f (x1 , x2 , . . . , xn ) pentru orice sim a bol de operatie f , atunci regula morsmului poate realizat prin regula paramodulatiei. a Demonstratie Primele dou armatii care urmeaz dovedesc c axiomele lemei substitutiei, mai srace dect cele a a a a a ale lemei 4.3.1, sunt suciente pentru a demonstra concluzia lemei 4.3.1: 1. Substitutia unei variabile x cu o variabil y poate realizat prin regula paramodulatiei prezenta a a n axiomei (y)y =y. cazul care x apare G i x = y se aplica Lema 4.3.1. rest, evident. In n n s In 2. Artm c substitutia unei variabile cu un termen poate realizat prin paramodulatie prezenta a a a a n axiomelor (x)x=x i (x1 x2 . . . xn )f (x1 , x2 , . . . , xn )=f (x1 , x2 , . . . , xn ). s Vom demonstra acest lucru prin inductie dup structura termenului t. a Primul pas al inductiei este chiar (1). Presupunem c t = f (t1 , t2 , . . . , tn ). a Dac x nu apare G, atunci nu avem nimic de demonstrat. Presupunem c x apare G i folosind a n a n s (x1 x2 . . . xn )f (x1 , x2 , . . . , xn )=f (x1 , x2 , . . . , xn ) , unde variabilele x1 , . . . , xn sunt noi, i Lema 4.3.1 deducem s G p (x f (x1 , x2 , . . . , xn ))(G). continuare se aplic ipoteza de inductie pentru orice 1 i n, substituind ecare xi cu ti . In a Mai observm c a a x f (x1 , x2 , . . . , xn ) ; x1 t1 ; x2 t2 ; . . . ; xn tn = x f (t1 , t2 , . . . , tn ), deoarece variabilele x1 , x2 , . . . , xn sunt noi. 3. Artm c regula morsmului poate realizat prin regula paramodulatiei. a a a a Fie h : T (X) T (Y ). Cum var(G) = {x1 , x2 , . . . , xn } X, a realiza regula morsmului revine la a nlocui ecare variabil xi cu h(xi ). Putem realiza acest lucru conform punctelor (1) i (2): a s - ai nt nlocuim ecare variabil xi cu o variabil nou zi , pentru orice 1 i n: a a a G p (x1 z1 )(G) p . . . p (xn zn )(. . . (x1 z1 )(G) . . .) = G - acum nlocuim pentru ecare 1 i n, variabila zi cu h(xi ): G p (z1 h(x1 ))(G) p . . . p (zn h(xn ))(. . . (z1 h(x1 ))(G) . . .) = h(G). 2

Paramodulatie XXX XX Lema 3.1 k Q Q var(l) = Y XXXX XX Q Prop.3.2 XXX Q XX eliminarea Q Pararescriere - Reflexie z X Morfism egalitiilor at extins a Z Z + Prop.3.1 6 Z Prop.3.3 ? / Reflexie Paramodulatie 9 9 extins a Figure 4.1: Legturile dintre regulile de deductie a Observatie. demonstratia anterioar, la pasul (3), este extrem de important s schimbm toate variabilele xi cu In a a a variabile noi. Altfel am putea obtine rezultate nedorite, ca exemplul de mai jos: n Dac h : T ({x, y}) T ({x, y, z}), h(x) = z, h(y) = x i G = {x=y}, atunci: a s h(G) = (h(x)=h(y)) = (z =x), (x h(x))((y h(y))(G)) = (x h(x))(x=x) = (z =z). Deci h(G) = (x h(x))((y h(y))(G)). Propozitie 4.3.3 Regula paramodulatiei extinse se poate obtine din regula morsmului i regula pararescrierii. s Demonstratie Fie (Y )l=s r if H , : T (X Y ) T (Z) astfel at s (l) = s (a), unde a T (X)s . Fie C nc un context extins i z o variabil nou. Aplicnd regula morsmului pentru morsmul , obtinem: s a a a G {C[a]} m (G) {(C[a])}. Mentionm urmtoarele egaliti: a a at (C[a]) = z (C)[(a)] = z (C)[(l)]. Acum putem aplica regula pararescrierii i obtinem: s (G) {z (C)[(l)]} pr (G) (H) {z (C)[(r)]} = (G H {C[r]}). Deci G {C[a]} m (G) {z (C)[(l)]} pr (G H {C[r]}). 2 Putem sintetiza legturile gsite a a ntre regulile de deductie pentru programarea logic prin Figura 1. a

4.4

Corectitudinea regulilor de deductie

Denitie 4.4.1 Fie R o regul de deductie. S presupunem c aplicnd regula R obtinem G R G cu morsmul a a a a calculat . Spunem c regula R este o regul corect dac este ndeplinit urmtoarea conditie: dac s este o a a a a a a a solutie pentru G , atunci ; s este solutie pentru G. Dac se aplic numai reguli corecte ajungndu-se, nal, la multimea vid de ecuatii (sau la o multime format a a a n a a doar din egaliti adevrate), atunci compunerea tuturor morsmelor calculate este o solutie a problemei initiale. at a Aceast armatie rezult din faptul c morsmul identitate este solutie pentru orice multime de egaliti adevrate, a a a at a inclusiv multimea vid. a continuare vom art c regulile de deductie considerate sectiunile anterioare sunt corecte. In aa a n Deoarece |= (X)l=s l, orice solutie pentru G este solutie i pentru G {l=s l}. Prin urmare eliminarea egalitilor s at adevrate este o regul corect. a a a Propozitie 4.4.1 Regula morsmului este corect. a Demonstratie Presupunem c G m (G), unde : T (X) T (Y ). Fie s : T (Y ) T (Z) o solutie pentru a (G), adic |= (Z)s((G)). Trebuie s artm c ; s este solutie pentru G, adic |= (Z)(; s)(G), ceea ce este a a aa a a evident. 2

Propozitie 4.4.2 Regula reexiei extinse este corect. a Demonstratie Stim c regula reexiei extinse se poate obtine din regula morsmului. Cum regula morsmului este a corect, rezult c i regula reexiei extinse este corect. 2 a a as a Corolar 4.4.1 Regula reexiei este corect. a

Propozitie 4.4.3 Regula pararescrierii este corect. a Demonstratie Considerm pararescrierea G C[s (l)] pr G (H) {C[s (r)]}, unde a (Y )l=s r if H i : T (Y ) T (X) un -morsm. s Fie S : T (X) B o solutie pentru (X)G (H) {C[s (r)]}, adic a |= (B)S(G (H) {C[s (r)]}). (1) Avem de artat c S : T (X) B este solutie pentru (X)(G C[s (l)]), adic a a a |= (B)S(G {C[s (l)]}). Fie h : B M|= . Din (1) deducem (S; h)(G) (; S; h)(H) (S; h)(C[s (r)]) M . Prin urmare deducem: (S; h)(G) M , (; S; h)(H) M , (S; h)(C[s (r)]) M . Deoarece M |= (Y )l=s r if H, folosind morsmul ; S; h : T (Y ) M i relatia (3), deducem c s a (; S; h)s (l) = (; S; h)s (r). Probm c a a (z (l)); S; h = (z s (r)); S; h. (6) Observm c cei doi membri sunt -morsme de la T (X {z}) la M. a a Pentru orice x X avem (z s (l))(x) = x = (z s (r))(x). Pe de alt parte (z s (l))(z) = s (l) i a s (z s (r))(z) = s (r). Folosind (5) deducem c a ((z s (l)); S; h)s (z) = (; S; h)s (l) = (; S; h)s (r) = ((z s (r); S; h)s (z). Prin urmare egalitatea (6) este probat. a Observm c h(S(C[s (l)])) = ((z s (l)); S; h)(C) = ((z s (r)); S; h)(C) = (S; h)(C[s (r)]). a a Din (4) deducem c h(S(C[s (l)])) M . Folosind (2) deducem h(S(G {C[s (l)]})) M . 2 a Propozitie 4.4.4 Regula paramodulatiei extinse este corect. a Demonstratie Din Propozitia 4.3.3 tim c orice paramodulatie extins se poate obtine din regula morsmului i s a a s regula pararescrierii. Din Propozitiile 4.4.1 i 4.4.3 tim c regulile morsmului i pararescrierii sunt corecte, de unde s s a s rezulta c i regula paramodulatiei extinse este corect. 2 as a Corolar 4.4.2 Regula paramodulatiei este corect. a(6)

(2) (3) (4) (5)

Chapter 5

RESCRIERI5.1 Reguli de Deductie pentru Rescriere

Reamintim alte reguli de deductie pentru Rescriere algebra A denumite Reexivitate, Tranzitivitate i Compa n s tibilitate cu operatiile din : R T C a =s a . . . a =s d i d =s c implic a =s c s a . . a ai =si ci pentru i [n] implic A (a1 , a2 , . . . , an ) =s A (c1 , c2 , . . . , cn ) pentru orice s1 s2 ...sn ,s ..

Aceste reguli mpreun cu Sub permit o demonstratie mai uoar a rezultatelor teoretice. a s a Pornind de la regulile de substitutie respectiv rescriere vom introduce a dou reguli de deductie algebra A, nc a n substitutia i respectiv rescrierea subtermeni. s n SSub Pentru orice (X) l =s r if H i orice morsm h : T (X) A s . . . implic (c A[z]s context) c[hs (l)] =s c[hs (r)] a (u =s v H)hs (u) =s hs (v) Pentru orice (X) l =s r if H i orice morsm h : T (X) A s . . . . (u =s v H)(d As )hs (u) =s d i hs (v) =s d s implic (c A[z]s context) c[hs (l)] =s c[hs (r)] a. .

SRew

Remarcati c SRew , rescrierea ntr-un subtermen, este o regul de deductie mai puternic dect Rew , rescrierea, a a a a care poate obtinut din SRew pentru c = z. Analog SSub = Sub . a Se observ c Rew i R implic Sub . Indicatie: se ia d = h(v). a a s a

5.2

Rescriere

Dat o multime de ecuatii conditionate putem deni rescrierea, sau mai pe scurt rescrierea, ca ind cea mai mic a a relatie nchis la R, T, C, Rew . Din pcate unele demonstratii sunt greu de fcut lucrnd cu o astfel de denitie, a a a a fapt pentru care vom da cele ce urmeaz o constructie efectiv pentru rescriere. Constructia este fcut trei n a a a a n etape, multimea intervenind numai a treia etap. prima etap este denit n a In a a nchiderea la contexte ale unei relatii. a doua etap este construit In a a nchiderea unei relatii multimea preordinilor compatibile cu operatiile n

5.2.1

Inchiderea la contexte

Denitia 5.2.1 O relatie Q pe A se numete nchis la contexte dac pentru orice context c i pentru orice pereche a a s de elemente a, d din A, a Q d implic c[a] Q c[d]. a Observatia 5.2.2 Fie Q o relatie pe A nchis la contexte. Dac Q este nchis la Sub , respectiv Rew , atunci a a a Q este nchis la SSub , respectiv SRew . a Denitia 5.2.3 O relatie A A se numete compatibil pe componente cu operatiile algebrei A dac s a a a si d implic a A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) s A (a1 , . . . , ai1 , d, ai+1 , . . . , an )

s pentru orice s1 ...sn ,s , orice i [n], unde aj Asj pentru orice j {1, . . . , i 1, i + 1, . . . , n} i a, d Asi . 13

Propozitie 5.2.4 O relatie este nchis la contexte dac i numai dac este compatibil pe componente cu operatiile a as a a algebrei. Demonstratie: Presupunem Q nchis la contexte. Pentru a demonstra compatibilitatea pe componente cu operatia a aplicm ipoteza pentru un context de forma (a1 , . . . , ai1 , z, ai+1 , . . . , an ). a Reciproca se arat prin inductie structural n A[z]. a a Pasul 0: c = z. Pentru orice (a, d) Q, c[a] = a, c[d] = d, deci (c[a], c[d]) Q. Pentru c = (a1 , . . . , ai1 , c , ai+1 , . . . , an ) unde c A[z] este un context c[a] = (z a)(c) = A (a1 , . . . , ai1 , (z a)(c ), ai+1 , . . . , an ) = A (a1 , . . . , ai1 , c [a], ai+1 , . . . , an ). La fel c[d] = A (a1 , . . . , ai1 , c [d], ai+1 , . . . , an ). Din ipoteza de inductie c [a] Q c [d] i innd cont de compatibilitatea pe componente obtinem c[a] Q c[d]. s t a Denitia 5.2.5 Dac Q este o relatie pe A vom nota a Q = {(c[a], c[d]) : (a, d) Qs , c A[z] este context unde variabila z are sortul s}. Propozitie 5.2.6 Q este cea mai mic relatie inchis la contexte care include Q. a a Demonstratie: Pentru a dovedi c Q este inchis la contexte, vom prefera s artm c este compatibil pe a a a aa a a componente cu opreratiile. Fie (c[a], c[d]) n Q unde (a, d) Q, un simbol de operatie i ai nite elemente din s s A. Folosind contextul c = (a1 , . . . , ai1 , c, ai+1 , . . . , an ) deducem c (c [a], c [d]) este n Q . Dar calculnd ca mai a a sus c [a] = A (a1 , . . . , ai1 , c[a], ai+1 , . . . , an ) i c [d] = A (a1 , . . . , ai1 , c[d], ai+1 , . . . , an ) s prin urmare (A (a1 , . . . , ai1 , c[a], ai+1 , . . . , an ), A (a1 , . . . , ai1 , c[d], ai+1 , . . . , an )) este n Q . Incluziunea Q Q se demonstreaz folosind contextul z. a Dac R este nchis la contexte, atunci Q R implic Q R. a a a

5.2.2

Inchiderea la preordini compatibile cu operatiile

Lem 5.2.7 (Compatibilitatea pe argumente) Fie A A o relatie tranzitiv i reexiv n algebra A. Dac a as a a este compatibil pe componente cu operatiile algebrei A, atunci e compatibil cu operatiile, adic nchis la C. a a a a a Demonstratie: Fie s1 ...sn ,s i ai , bi Asi astfel nct ai si bi pentru orice i [n]. s Artm c A (a1 , . . . , an ) s A (b1 , . . . , bn ). aa a Dac n = 0 avem A s A din reexivitate. a Dac n = 1 avem din ipotez A (a1 ) s A (b1 ). a a Dac n 2 aplicnd succesiv ipoteza obtinem a a A (a1 , a2 , . . . , an ) s A (b1 , a2 , . . . , an ) s A (b1 , b2 , a3 , . . . , an ) s . . . s A (b1 , b2 , . . . , bn ) Din tranzitivitatea relatiei deducem A (a1 , a2 , . . . , an ) s A (b1 , b2 , . . . , bn ) Propozitie 5.2.8 Q este cea mai mic preordine compatibil cu operatiile care include Q. a a Demonstratie: Deoarece relatia Q este reexiv i tranzitiv este sucient s demonstrm compatibilitatea cu as a a a a a operatiile numai pentru cte o component, adic s artm pentru ecare s1 ...sn ,s c a Q d implic a a a a aa A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) Q A (a1 , . . . , ai1 , d, ai+1 , . . . , an ). Probm prin inductie dup numrul pailor din a Q d. Presupunem deci a Q u i u Q d cu un numr a a a s s a mai mic de pai ceea ce prin ipoteza de inductie implic s a A (a1 , . . . , ai1 , u, ai+1 , . . . , an ) Q A (a1 , . . . , ai1 , d, ai+1 , . . . , an ). Deoarece Q este compatibil pe componente cu operatiile, din a Q u rezult c a a a A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) Q A (a1 , . . . , ai1 , u, ai+1 , . . . , an ). Prin tranzitivitate obtinem A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) Q A (a1 , . . . , ai1 , d, ai+1 , . . . , an ). Evident Q Q Q . Fie R o preordine compatibil cu operatiile care include Q. Compatibilitatea cu operatiile implic Q R, de a a unde deducem Q R deoarece R este reexiv i tranzitiv. as a Notm u Q v dac exist a A astfel at u Q a i v Q a. a a a nc s

5.2.3

rescriere

Fixm a Denim prin inductie irul cresctor de multimi de perechi de elemente din A. s a Q0 = Qn+1 = {(h(l), h(r)) : (Y )l =s r if H , h : T (Y ) A, i ((u, v) H)hs (u) Qn hs (v)} s Prin denitie Q este reuniunea irului cresctor denit mai sus. s a cazul care Q este denit ca mai sus, loc de Q vom prefera s scriem = . In n a n a Relatia = este denumit rescriere sau mai scurt rescriere. a Propozitie 5.2.9 = este nchis la SRew . a

Demonstratie: Fie (Y )l =s r if H , h : T (Y ) A morsm cu proprietatea hs (u) Q hs (v) pentru orice a a (u, v) H i un context c A[z]s . Trebuie artat c c[h(l)] = c[h(r)]. s Deoarece H este nit i numrul pasilor utilizat hs (u) Q hs (v) unde (u, v) H este nit exist un n natural as a n a astfel at hs (u) Qn hs (v) pentru orice (u, v) H. Prin urmare (h(l), h(r)) Qn+1 . Deoarece (h(l), h(r)) Q nc deducem c[h(l)] = c[h(r)]. 2 Propozitie 5.2.10 = este cea mai mic relatie nchis la R, T, C i Rew . a a s Demonstratie: Evident = este nchis la R, T i C i, ind nchis la SRew , este nchis i la Rew . a s s a as Fie W o relatie nchis la R, T, C i Rew . Demonstrm prin inductie dup n c Qn W. a s a a a Dac n = 0 avem Q0 = W. a Pentru n 1 e (h(l), h(r)) Qn , unde (Y )l =s r if H , h : T (Y ) A i ((u, v) H)hs (u) Qn1 hs (v). s Din ipoteza de inductie Qn1 W . Cum W este nchis la C rezult c W este nchis la contexte, deci Qn1 a a a a W . Folosind faptul c W este nchis la R i T rezult c Qn1 W . Din ((u, v) H)hs (u) Qn1 hs (v) obtinem a a s a a ((u, v) H)hs (u) W hs (v). Folosind nchiderea lui W la Rew rezult c (h(l), h(r)) W , deci Qn W. a a Prin urmare Q W i folosind propozitia 5.2.8 deducem c Q W. s a

5.3

Corectitudinea rescrierii

Toate regulile de deductie de mai sus sunt corecte pentru . Vom demontra acest fapt numai pentru cele mai importante. Lem 5.3.1 Regulile R, T i C sus sunt corecte pentru . a s Demonstratie: Relatia este o congruenta, prin urmare este reexiv, tranzitiv i compatibil cu operatiile a a s a ( s1 s2 ...sn ,s , ai bi pentru orice i [n] implic A (a1 , a2 , . . . , an ) A(b1 , b2 , . . . , bn )). De aici rezult c a a a este nchis la regulile de deductie R, T i C, adic ele sunt corecte pentru . a s a Intr-o lectie anterioar s-a demonstrat c Sub i Rew sunt corecte pentru . Tinnd cont de observatiile de mai a a s a sus putem deduce: Corolar 5.3.2 . (Corectitudinea rescrierii pentru ) general rescrierea nu este complet pentru . In a

5.4

alnirea prin rescriere. Corectitudine i completitudine Int s

Fie relatia de alnire ataat lui . Prin denitie a b dac i numai dac exist c astfel at a c i nt s a as a a nc s b c. Observm c . (Corectitudinea alnirii pentru ) a a nt Propozitie 5.4.1 este nchis la Sub . a Demonstratie: Fie (X)l =s r if H i h : T (X) A un morsm cu proprietatea c ht (u) ht (v) pentru n s a orice u =t v H. Prin urmare pentru orice u =t v H exist cuv cu proprietile h(u) cuv i h(v) cuv . a at s Cu Rew deducem h(l) h(r) deci h(l) h(r). 2 Reamintim c dac este o congruent a a a nchis la substitutii, atunci A/ |= . a Denitia 5.4.2 O relatie pe o multime A se numete conuent dac s a a (a, b, c A){[a b i a c] (d A)[b d i c d]}. 2 s s Propozitie 5.4.3 Dac este o preordine conuent pe multimea A, atunci relatia denit prin a a a a b (c A)a c i b c s este cea mai mic echivalenta pe A care include . a Demonstratie: Reexivitatea rezult lund c := a. a a Simetria este evident. a Probm tranzitivitatea. Fie a b i b c. Observm c exist d, e A astfel at a d, b d, b e i a s a a a nc s c e. Din conuent rezult existenta lui f A astfel at d f i e f . Rezult c a f i c f , deci a a nc s a a s a c. Pentru a dovedi c , presupunnd c a b i observnd c b b deducem a b a a a s a a Fie o relatie de echivalent pe A care include . Probm c include . Presupunnd c a b rezult a a a a a a existenta lui c A astfel at a c i b c. Deducem a c i b c, deci a b. 2 nc s s Observatia 5.4.4 Dac este o preordine conuent i compatibil pe o -algebr multisortat, atunci este o a as a a a congruenta. Demonstratie: Fie s1 s2 ...sn ,s i ai bi pentru orice i [n]. Pentru orice i [n], exist ci astfel at ai ci s a nc i bi ci , prin urmare s A (a1 , a2 , . . . , an ) A (c1 , c2 , . . . , cn ) i A (b1 , b2 , . . . , bn ) A (c1 , c2 , . . . , cn ). s Deci A (a1 , a2 , . . . , an ) A (b1 , b2 , . . . , bn ). 2 Teorema 5.4.5 Dac este conuent, atunci este complet. a a a Demonstratie: Conuenta lui este necesar pentru ca s devin congruent. Deoarece este a a a a nchis la a Sub deducem c A/ |= . a Fie a b. Utiliznd morsmul de factorizare f : A A/ |= deducem f (a) = f (b) deci a b. 2 a

Chapter 6

COMPLETITUDINEA PARAMODULATIEI6.1 Prolog

Reamintim c a nseamn o multime de egaliti adevrate. a at a Teorem 6.1.1 Dac a d, atunci {a=s d} pr . a a Demonstratie Presupunem a d. Atunci exist v astfel at a v i d v. Tinnd cont de denitia lui , a nc s a putem scrie a Q v i d Q v. Deoarece Q este reuniunea irului cresctor {Qn }nN , rezult c exist un numr s s a a a a a s natural n cu proprietatea a Qn v i d Qn v, deci a Qn d. Artm prin inductie dup n c {a=s d} pr . Cazul n = 0 este evident. Presupunem c pentru orice x, y aa a a a a dac x Qn y, atunci {x=s y} pr . Presupunem c a Qn+1 d. a a a s Facem o nou inductie dup numrul pailor Qn+1 folositi. Dac numrul pailor este 0, atunci a = d, concluzia a a a s ind evident. a cazul contrar, presupunem, de exemplu, c a Qn+1 w i w Qn+1 d cu un pas mai putin. Din ipoteza de s In a inductie putem scrie {w=s d} pr . nc a Deoarece a Qn+1 w exist (Y )l=s r if H , morsmul h : T (Y ) T (X) astfel at h(u) Qn h(v), a a s pentru orice u=v H, i contextul c T (X {z}) astfel at a = c[hs (l)] i w = c[hs (r)]. Observm c s n nc . {c[hs (l)]=s d} pr h(H) {c[hs (r)]=s d} = h(H) {w =s d}. Prin urmare, deoarece {w=s d} pr , deducem c {a=s d} pr h(H) . Deoarece h(u) Qn h(v), pentru orice a u=v H, din ipoteza de inductie deducem h(H) pr , deci {a=s d} pr . 2 Corolar 6.1.1 Dac G este o multime nit astfel nct G , atunci G pr . a a a

6.2

Completitudinea

Observm c identitatea lui T (Y ) este solutie pentru (Y ) deoarece |= (Y ). Prin urmare, dac G p a a a cu morsmul calculat , atunci este o solutie pentru (X)G. Prin urmare, putem opri rezolvarea momentul n ajungerii la o multime de egaliti adevrate. at a Presupunem c multimea de ecuatii conditionate satisface urmtoarele conditii: (x) x=x , pentru orice a a variabil x, (x1 x2 . . . xn )f (x1 , x2 , . . . , xn )=f (x1 , x2 , . . . , xn ) , pentru orice simbol de operatie f , i, pentru a s orice axiom (Y )l=s r if H , orice variabil din Y apare l. a a n Teorem 6.2.1 (Teorema de completitudine) conditiile de mai sus, dac este complet, atunci orice a In a a solutie poate obtinut numai cu regula paramodulatiei. a Demonstratie Fie : T (X) T (Y ) o solutie pentru (X)G, adic |= (Y )(G). Prin urmare, (G) este o a submultime a congruentei semantice, adic (G) . a 17

Deoarece este complet, adic = , deducem c (G) . Conform Prologului obtinem (G) pr . a a a Deoarece pentru orice axiom (Y )l=s r if H , orice variabil din Y apare l, deducem, din Propozitia a a n 4.3.2, c orice pararescriere este un caz particular de paramodulatie care substitutia calculat este o identitate. a n a concluzie, putem scrie (G) p cu substitutia calculat identitatea. In a Din Lema substitutiei deducem c G p (G) cu substitutia calculat . a a Deci G p cu substitutia calculat . 2 a

Chapter 7

COMPLETITUDINEA NARROWINGULUI7.1 Forme normale

Reamintim c este relatia de rescriere A. a n Denitia 7.1.1 Elementul n A se numete o form normal pentru dac s a a a (b A)(n b implic n = b). a Fie N multimea elementelor din A care sunt forme normale. Presupunem axioma Formei Normale unice FN! (a A)(! f n(a) N )a f n(a). Observatia 7.1.2 Dac a d, atunci f n(a) = f n(d). a Demonstratie: Din ipotez i d f n(d) deducem a f n(d), deci din unicitatea formei normale a lui a a s deducem f n(a) = f n(d). Observatia 7.1.3 Axioma FN! implic este conuent. a a Demonstratie: Presupunem a d i a c. Deducem f n(a) = f n(d) = f n(c), deci d f n(d) i c f n(d). s s Observatia 7.1.4 Functia f n : A N este surjectiv i as a d f n(a) = f n(d). Demonstratie: Deoarece pentru orice element n form normal n = f n(n) rezult surjectivitatea functiei f n. n a a a Presupunem f n(a) = f n(d). Deoarece a f n(a) i d f n(a) deducem a d. s Presupunem a d. Fie c A astfel at a c i d c. Deducem f n(a) = f n(c) i f n(d) = f n(c), deci nc s s f n(a) = f n(d). 2 Pentru cazul algebrelor libere mai mentionm c orice subexpresie a unei forme normal este tot o form normal. a a a a

7.2

Introducere

Se lucreaz algebre libere. Vom nota cu T (X) algebra din care a n ncepem s lucrm. a a . Fie (Y )l =s r if H o clauz. Multimea de variabile Y va disjunct de X. Vom presupune c T (X) i a a a s T (Y ) sunt subalgebre T (X Y ) i notm cu iX i iY morsmele incluziune. n s a s continuare vom lucra cu un caz particular de paramodulatie denumit narrowing sau In ngustare. 19

. Narrowing( Ingustare): Fie (Y )l =s r if H i = CGU (a, l) : T (X Y ) B unde a T (X) nu este o s variabil. Dac G este o multime de egaliti formale i C este un context extins din T (X {z}), atunci a a at s

G {C[a]} cu morsmul calculat iX ; .2

n

(G H {C[r]})

Mentionm c ipoteza care apare mai jos i anume c membrul stng al concluziei unei axiome nu este o variabil a a s a a a este o ipoteza natural deoarece caz contrar dac conditiile axiomei sunt vericate, atunci orice termen ar putea a n a rescris. Propozitie 7.2.1 Dac pentru orice clauz (Y )l =s r if H din l nu este variabil i orice variabil din Y apare a a as a n l, atunci pararescrierea este un caz particular de ngustare n care substitutia calculat este o identitate. a Demonstratie: Este sucient s relum demonstratiile propozitiilor 4.3.1 i 4.3.2 i din egalitatea a = hs (l) din a a s s faptul c l nu este o variabil rezult c nici a nu este variabil. a a a a a.

7.3

Lema de ridicare

Denitia 7.3.1 O substitutie se numete normal dac duce orice variabil s a a a ntr-un element form normal. n a a Propozitie 7.3.2 Presupunem c multimile de variabile X i Y sunt disjuncte i c T (X) i T (Y ) sunt subalgebre a s s a s n T (X Y ). Fie l T (Y ) astfel nct orice variabil din Y apare n l i a T (X). Fie : X Y T Z o substitutie a a a s crei restrictie la X este normal i (a) = (l). a as Dac = CGU (a, l) : X Y T V i este unica substitutie pentru care = ; , atunci este normal. a s a Demonstratie: Existenta lui CGU (a, l) rezult din faptul c este unicator pentru a i l. plus, fr a restrnge a a s In a a a generalitatea, putea s presupunem c V X Y i c (v) = v pentru orice v V. a a s a Fie v V. Vom studia dou cazuri. a 1. Dac v X, atunci (v) = ((v)) = (v) este normal prin ipotez. a a a 2. Presupunem v Y . Deoarece a T (X) i v X rezult c variabila v nu apare a. Deoarece Y este s a a n multimea variabilelor care apar l, v apare l. Dar (v) = v implic aparitia lui v (l) = (a). Deoarece n n a n variabila v nu apare a rezult c v a fost introdus (a) prin substitutia , deci exist x X o variabil care n a a n a a apare a, astfel at v apare (x). Prin urmare (v) este subtermen ((x)) = (x). Deoarece (x) este prin n nc n n ipotez o forma normal, rezult c orice subtermen al su este o form normal. In particular (v) este o form a a a a a a a a normal. 2 a Dac : X Z i : Y Z sunt dou functii cu domeniile disjuncte notm cu < , >: X Y Z unica a s a a functie care pe X actioneaz ca i pe Y ca . a s Propozitie 7.3.3 Pentru orice (Y )l = r if H din presupunem c orice variabil din Y apare n l. Fie G o a a multime de egaliti din T (X). at Dac : T (X) T (Z) este normal i a as (G) pr Q, atunci = cu normal, exist R cu (R) = Q i a a s G n R cu substitutia calculat . a Demonstratie: Fie (Y )l = r if H regula i : T (Y ) T (Z) substitutia utilizate pararescrieie. Vom s n presupune c variabilele din Y sunt noi, adic Y este disjunct de X. a a Datorit normalitii lui pararescrierea nu se poate face a at ntr-un subtermen de forma (x) unde x este o variabil, a aa c presupunem c ea se face (a) = (l) unde a este un subtermen G care nu este variabil. Prin urmare: s a a n n a G = G {C[a]} i Q = (G ) (H) {z (C)[(r)]} s unde z este o variabil nou, C este un context extins din T (X {z}) i (a) = (l). a a s.

Fie = CGU (a, l) : X Y V i : V Z unica substitutie cu proprietatea =< , > . Deoarece s restrictia a lui < , > la X este normal conform ipotezei, i < , > (a) =< , > (l), aplicnd propozitia 7.3.2 a s a rezult normalitatea lui . a Notnd cu : T (X) T (V ) restrictia lui la T (X) deducem c = . a a Rezult c a a G n (G H {C[r]}) cu morsmul calculat . Notnd R = (G H {C[r]}) mai observm c: a a a (R) = (; )(G H {C[r]}) =< , > (G H {C[r]}) = (G ) (H) {z (C)[(r)]} = Q. 2

G

X

E

Z

(G)

1Z E c Z pr c Q = (R) c Z pr c S

nc R nc G

c V c V

1Z E

Propozitie 7.3.4 Pentru orice (Y )l = r if H din presupunem c orice variabil din Y apare n l. Fie G o a a multime nit de egaliti din T (X). a at Dac : T (X) T (Z) este normal i a as (G) pr S, atunci G n G cu morsmul calculat pentru care exist o substitutie normal cu proprietile (G ) = S i = . a a at s Demonstratie: Prin inductie dup numrul pailor. Vom pune evident prima pararescriere a a s n a (G) pr Q pr S. Conform propozitiei precedente = cu normal, exist R cu (R) = Q i a a s G n R cu morsmul calculat . Folosind ipoteza de inductie din (R) pr S deducem R n G cu morsmul calculat pentru care exist o substitutie normal cu proprietile (G ) = S i = . Din cele de mai sus rezult c a a at s a a G n G cu morsmul calculat i () = = . 2 s

.

7.4

Epilog

Propozitie 7.4.1 Fie G T (X) T (X) nit i morsmul h : T (X) T (Y ) cu h(G) = . Atunci G r as cu substitutia calculat s pentru care exist morsmul f cu proprietatea s ; f = h. a a Demonstratie: Reamintim denitia reexiei: Dac : A B este cel mai general unicator pentru l si r, atunci G {l =t r} r (G) cu mosmul a calculat . Vom demonstra prin inductie dup numrul elementelor multimii G. a a Fie G = G {l =s r}. Din ipotez h(l) = h(r). Fie u : T (X) T (Z) cel mai general unicator pentru l i r. a s Atunci exist un unic v : T (Z) T (Y ) astfel at u; v = h. a nc Observm conform denitiei de mai sus c G r u(G ) cu morsmul calculat u. a a Cum v(u(G )) = h(G ) = , aplicnd ipoteza de inductie pentru u(G ) deducem c u(G) r cu substitutia a a calculat w pentru care exist f astfel at w; f = v. a a nc Atunci G r cu substitutia calculat u; w. plus h = u; v = (u; w); f . 2 a Inip

7.5

Completitudine.

Ipoteze. Pentru orice (Y )l = r if H din presupunem c orice variabil din Y apare l. Rescrierea are a a n proprietatea formei normale unice (FN!). Reamintim c proprietatea FN! implic conuenta rescrierii i completitudinea relatiei de alnire prin rescriere. a a s nt Fie s : X Z o solutie pentru (X)G. Cu ipoteza FN! pentru solutia s se poate normaliza obtinnd solutia a normal s : X Z denit prin s (x) = f n(s(x)) pentru orice x X. Observm c s(x) s (x) pentru orice a a a a x X. Prin inductie structural se arat uor c s(r) s (r) pentru orice r T (X). Pentru orice u =t v G a a s a observm c a a s(u) s (u) i s(v) s (v). s Probm c s este solutie pentru (X)G adic |= (Z)s (G). Fie u =t v G. Deoarece s este solutie pentru (X)G a a a . deducem |= (Z)s(u) =t s(v), deci s(u) s(v). Dar s(u) s (u) i s(v) s (v) deci s (u) s (v) adic s a |= (Z)s (u) =t s (v) (am folosit i tranzitiv). Rezult c |= (Z)s (G), deci s este solutie. s a a a Propozitie 7.5.1 Orice solutie normal se obtine prin particularizarea unei solutii obtinute cu narrowing i reexie. a s Demonstratie: Fie s : T (X) T (Z) o solutie normal. Utiliznd completitudinea relatiei de alnire prin a a nt rescriere din |= (Z)s (G) rezult c s (G) , prin urmare conform prologului s (G) pr . Din lema de a a ridicare rezult existenta substitutiei cu a G n G cu morsmul calculat i a substitutiei normale cu proprietile (G ) = i s = . s at s Deoarece G este o multime de egaliti unicabile prin , deducem conform epilogului at G r cu morsmul calculat i exist o substitutie cu proprietatea = . Deoarece s = deducem c orice solutie normal s poate s a a a obtinut prin particularizarea unei solutii gsite cu narrowing i reexie. a a s .

Chapter 8

` REZOLUTIE A LA PROLOG Programarea logic relational, ilustrat viata de toate zilele de limbajul Prolog, este bazat pe rezolutie. a a a n a

8.1

Rezolutia

Axiomele, clauze Horn, au forma (Y )(v) if H unde 1) (v) este un atom, adic este un predicat i v este un vector de termeni concordant cu aritatea lui iar a s n a 2) H este o multime de atomi. Telul este o multime de atomi. Punnd evident atomul asupra cruia va actiona rezolutia pentru o axiom a n a a a ca mai sus elul devine {(s)} T. Ca mai sus presupunem c variabilele din Y sunt disjuncte de variabilele din el. t a t Fie = CGU (v, s). Prin rezolutie, cu substitutia calculat ajungem la elul (H T ). a t

8.2

Rezolutie = Narrowing = Paramodulatie

Trecerea de la varianta relational la varianta ecuational se face prin a a 1) adugarea la signatur a sortului b, transformarea predicatelor simboluri de operatii avnd rezultatul de sort b a a n a . 2) nlocuirea ecrui atom (v) cu egalitatea (v) =b t unde t este o constant de sort b reprezentnd adevrul. a a a a Varianta ecuational a unei multimi de atomi C va notat cu C e = {(v) =b t : (v) C}. a a Propozitie 8.2.1 varianta ecuational, rezolutia se poate realiza prin narrowing i eliminarea egalitilor reale. In a s at Demonstratie: Fie G o multime de atomi i (Y ) (v) if H o clauz Horn. Considerm G = G {(s)} i s a a s = CGU (v, s). Prin rezolutie obtinem (G H). . . varianta ecuational Ge = Ge {(s) =b t} i (Y ) (v) =b t if He . In a s Alegem a = (s), l = (v) i observm c = CGU (s, v) = CGU ((s), (v)). s a a Cum a nu este variabil rezult c putem aplica narrowing-ul: a a a . Ge {(s) =b t} n . (Ge H e {t =b t}) = . ((G H)e {t =b t}) = . [(G H)]e {t =b t}.

. urma eliminrii egalitii adevrate t =b t obtinem varianta ecuational a rezultatului rezolutiei, (G H). In a at a a Corolar 8.2.1 Fie G o multime de atomi. Orice solutie pentru (X)G obtinut cu rezolutia poate obtinut prin a a narrowing i eliminarea egalitilor adevrate ca solutie pentru (X)Ge s at a Propozitie 8.2.2 Fie o multime de clauze Horn i G o multime de atomi. Aplicarea narrowing-ului folosind e s n varianta ecuational Ge se poate realiza prin rezolutie folosind n G. a . Demonstratie: Fie G = G {P (s)} i (Y ) (v) =b t if He o clauz astfel at s se poat aplica narrowing-ul s a nc a a . lui P (s) =b t. Atunci l = (v) i exist = CGU (l, a), unde a trebuie ales. s a 23

Singura variant posibil pentru a este a = P (s). Observm c a nu este variabil. a a a a a Cum exist = CGU (a, l) rezult c P = i = CGU (v, s). Prin urmare a a a s Ge n (Ge {t =b t} H e ) = (G H)e {t =b t}. Aplicnd rezolutia obtinem a G {P (s)} (G H) cu morsmul calculat concluzie din Ge n G1 cu e i morsmul calculat , deducem c G se duce prin rezolutie cu i morsmul In s a s . calculat F cu G1 = F e {t =b t}. 2 n Corolar 8.2.2 Fie G o multime de atomi. Orice solutie pentru (X)Ge obtinut prin narrowing i eliminarea a s egalitilor adevrate poate obtinut cu rezolutia ca solutie pentru (X)G. at a a Mai observm c varianta ecuational a unui program Prolog reexia nu poate aplicat deoarece unicarea a a n a a nu poate fcut egalitatea (v) = t. a a n Concluzia este c rezolutia este complet, fapt ce rezult din teoremele de completitudine demonstrate anterior. a a a. .

8.3

Exercitiul 1

Se pstreaz notatiile din capitolele precedente. Se d urmtorul fragment de program EQLOG: a a a a sort nat < nlist < list op 0 : -> nat op s : nat -> nat op nil : -> list op _ _ : list list -> list [assoc] op cap : nlist -> nat op cdr : nlist -> list var E : nat var L : list eq cap(E L) = E ***> 1 eq cdr(E L) = L ***> 2 op # : list -> nat eq #(nil) = 0 ***> 3 eq #(E L) = s(#(L)) ***> 4 Se cere s se gseasc solutie pentru urmtoarea interogare: a a a a L{#(L) = s(s(0)), cap(L) = 0} Rezolvare. Avem 3 variante: s unicm membrul stng din ecuatia 1 cu cap(L); a a a s unicm membrul stng din ecuatia 3 cu #(L); a a a s unicm membrul stng din ecuatia 4 cu #(L). a a a Vom alege ultima alternativ. Deoarece ecuatia 4 are variabile care apar scop, redenumim variabilele i obtinem: a n s #(E L1) = s(#(L1)). Identicm cadrul de aplicare a paramodulatiei: a contextul c este z = s(s(0)); cel mai general unicator pentru #(L) i #(E L1) este L := EL1; s ecuatia care se utilizeaz nu este conditionat deci H este vid. a a Noul scop este {cap(E L1) = 0, s(#(L1)) = s(s(0))}. Subtermenul unde se aplic paramodulatia este #(L1), iar ecuatia folosit este 4. Din nou vom face o redenumire a a a variabilelor, ecuatia 4 devine #(E1 L2) = s(#L2) . Dup noul pas de paramodulatie, scopul devine: {cap(E E1 L2) = 0, s(s(#(L2))) = s(s(0))}. Se observ c este a a a posibil s facem din nou paramodulatie cu ecuatia 4 i putem intra astfel ciclu innit. a s n Vom unica cap(E E1 L2) cu membrul stng al ecuatiei 1, care redenumim variabilele; cel mai general unicator a n calculat este E2 := E, L1 := E1 L2. Contextul este z = 0. Scopul devine {E = 0, s(s(#(L2))) = s(s(0))}. Unicm #(L2) cu membrul stng al ecuatiei 3; contextul este z = 0, cel mai general unicator, L2 := nil. a a Noul scop este {E = 0, s(s(0)) = s(s(0))} . Prin aplicarea reexiei, scopul devine i se adaug la solutie E := 0. s a Solutia L = 0 E1 nil se obtine astfel : L = = = = E E E 0 L1 E1 L2 E1 nil E1 nil

8.4

Exercitiul 2***> 1 ***> 2

Se d urmtorul fragment de program: a a 0