Sunteți pe pagina 1din 40

1

MULTISORTATA

CONCEPTUL DE ALGEBRA

Conceptul de algebra multisortata apare n jurul anului 1970 prin generalizarea algebrelor universale. Noul concept
mai este cunoscut si sub numele algebre universale eterogene.
Deoarece datele cu care lucr
am nu sunt toate la fel, ele sunt clasificate n mai multe tipuri sau sorturi.
Acesta este principalul fapt care a dus la aparitia algebrelor multisortate si n particular a multimilor multisortate.
Algebrele multisortate au fost generalizate conduc
and la algebrele ordonat sortate.

1.1

Multimi si functii multisortate

Fixam multimea S a sorturilor.


Definitia 1.1 O familie de multimi M = {Ms }sS indexata de S se numeste multime S-sortat
a.
Observam ca aceeasi litera este folosita at
at pentru ntreaga multime M cat si pentru toate componentele acesteia,
Ms unde s S.
Fie M = {Ms }sS o multime S-sortata. Daca s S si m Ms spunem ca elementul m are sortul s sau ca s este
sortul elementului m.
Conceptele uzuale pentru multimi se extind pe componente la multimile S-sortate asa cum se vede din exemplele
de mai jos
{Ms }sS {Ns }sS daca si numai daca (s S)Ms Ns ,
{Ms }sS {Ns }sS = {Ms Ns }sS ,
{Ms }sS {Ns }sS = {Ms Ns }sS ,
{Ms }sS {Ns }sS = {Ms Ns }sS .
O functie ntre doua multimi S-sortate duce un element din prima multime ntr-un element de acelasi sort din a
doua multime.
Definitia 1.2 O functie S-sortat
a
f : M N
este o familie de functii f = {fs }sS unde fs : Ms Ns , componenta de sort s, este pentru orice s S o functie
uzuala.
Ca si n cazul multimilor S-sortate, operatiile cu functiile S-sortate se fac pe componente. Daca f : M N si
g = {gs }sS : N P sunt functii S-sortate atunci compunerea lor
f ; g = {fs ; gs }sS : M P
este definita pentru orice s S prin
(f ; g)s = fs ; gs .
Mai detaliat (f ; g)s (x) = gs (fs (x)) pentru orice s S si x Ms . Semnul ; folosit pentru compunere este inspirat din
limbajele de programare. Mai observam scrierea diagramatica f ; g utilizata pentru compunere n opozitie cu scrierea
clasica g f
f
M

N
f;g

g
P

Compunerea functiilor S-sortate este asociativa. Daca si h = {hs } : P R este functie Ssortata, atunci
folosind asocitivitatea compunerii functiilor uzuale pentru orice s S
((f ; g); h)s = (f ; g)s ; hs = (fs ; gs ); hs = fs ; (gs ; hs ) = fs ; (g; h)s = (f ; (g; h))s .
Prin urmare (f ; g); h = f ; (g; h).
Pentru orice multime S-sortata M functia ei identitate 1M : M M este definita prin (1M )s = 1Ms pentru
orice s S, unde 1Ms este functia identitate a multimii Ms . Functia identitate are efect neutru la compunere. Pentru
orice functie Ssortata f : M N au loc egalitatile 1M ; f = f = f ; 1N .
Cele doua proprietati de mai sus ne permit sa vorbim de categoria multimilor Ssortate.

1.2

Signaturi multisortate

In programare, mai mult dec


at n orice alta activitate, datele utilizate sunt de mai multe feluri, sau sorturi asa cum
vom spune n continuare. Mai mult, de cele mai multe ori, n diferitele constructii sintactice, ntr-un anumit loc al
acestora nu poate fi plasata dec
at o data de un anumit sort. Aceasta ar fi explicatia faptului ca algebrele multisortate
constituie una dintre cele mai utile unelte pentru informatica teoretica.
Algebrele la r
andul lor nu sunt toate la fel. Felul algebrelor este dat de signatura lor. O signatura are doua
componenete: una pentru date si una pentru operatii.
Componenta pentru date este pur si simplu o multime S ale carei elemente s S se numesc sorturi.
Fiecare operatie este caracterizata de modul acesteia de actiune. Operatia actioneaza pe un anumit numar fix de
date de sorturi precizate si are rezultatul de un sort dat. Ca exemplu pentru operatia cu numele o notam cu
o : s1 s2 . . . sn s
faptul ca ea are n argumente de sorturi s1 , s2 , . . . , sn si rezultatul este de sort s. Numele unei operatii mai este
numit simbol de operatie sau operator.
Terminologia folosita este urmatoarea:
s1 s2 . . . sn se numeste aritate,
s este sortul rezultat sau sortul rezultatului,
perechea (s1 s2 . . . sn , s) se numeste rang.
Reamintim ca substantivul aritate provine din sufixul ara folosit n expresii ca zeroara, unara, binara, ternara,
etc.
Toate aceste informatii privind felul algebrei sunt adunate n conceptul de signatura. Cu S notam multimea
sirurilor finite formate cu elemente din S.
Definitia 1.3 O signatura algebrica
(S, {s1 s2 ...sn ,s }s1 s2 ...sn S ,sS )
este formata dintr-o multime S ale carei elemente se numesc sorturi si o familie de multimi
{s1 s2 ...sn ,s }s1 s2 ...sn S ,sS .
Pentru fiecare s1 s2 . . . sn S si s S multimea s1 s2 ...sn ,s contine numele operatiilor cu n argumente de sorturi
s1 , s2 , . . . , sn si rezultat de sort s.
Mentionam ca multimile s1 s2 ...sn ,s pot avea elemente comune, ceea ce permite modelarea suprancarcarii operatiilor,
adica permisiunea ca mai multe operatii sa aiba acelas nume, sau altfel spus sa fie denumite prin acelasi simbol.
Cand nu exista pericol de confuzie vom scrie signatura n loc de signatura algebrica si vom scrie (S, ) sau n
loc de
(S, {s1 s2 ...sn ,s }s1 s2 ...sn S ,sS ).
Cea mai cunoscuta signatura multisortata provenita din algebra clasica este cea corespunzatoare conceptelor de
spatiu vectorial sau modul. Datele sunt de doua sorturi: scalari si vectori. Simbolurile de operatii sunt de trei feluri
1. simboluri de operatii pentru scalari corespunzatoare structurii de corp sau inel
2. simboluri de operatii pentru vectori corespunzatoare structurii de grup abelian
vector.
3. produsul cu scalari : scalar vector
O consecinta deosebita a stilului multisortat este faptul ca relatiile pot fi definite ca operatii cu sortul rezultat
boolean. De exemplu
: natural natural boolean
Observam ca 3 5 = adevar si 5 3 = fals.
In general prin relatie se ntelege o operarie al carei sort rezultat este boolean. Practic, pentru a transforma o
relatie n operatie se nlocuieste relatia cu asa numita functia ei caracteristica. Reamintim ca functia caracteristica
A : M {adevar, fals}
a submultimii A a multimii M este definita prin
A (m) =

adevar
fals

daca m A
daca m
6 A.

Remarcabil este c
a unele aspecte privind studiul clasic al modelelor unde apar at
at operatii c
at si relatii poate fi
redus la studiul algebrelor multisortate unde apar numai operatii.
2

1.3

Algebre multisortate

Algebrele sunt formate n mare din date si operatii. Datele sunt de mai multe sorturi, adica pentru fiecare sort s
algebra contine o multime a datelor de sort s. Familia acestor multimi, numita si suportul algebrei, constitue o
multime sortata.
Definitia 1.4 O -algebra A = ({As }sS , {A } ) este formata dintr-o multime S-sortata, numita suportul algebrei, A = {As }sS si o familie de operatii {A } . Pentru claritate, daca s1 s2 ...sn ,s , adica : s1 s2 . . . sn s,
atunci A este o functie
A : As1 As2 Asn As .
Daca nu exista pericol de confuzie n loc de ({As }sS , {A } ) vom scrie mai simplu (As , A ). Mai mentionam ca
pentru o algebra A si suportul acesteia A folosim aceeasi litera cu grafii diferite.
Daca nu este pericol de confuzie n loc de -algebra vom scrie mai scurt algebra.
In continuare pentru s1 , s2 , . . . , sn S vom mai folosi si notatia
As1 s2 ...sn = As1 As2 Asn .
Din definitia de mai sus rezulta ca daca ,s unde este sirul vid din S , atunci A este o functie definita
pe o multime cu un element si cu valori n As . Pentru a simplifica scrierea aceasta functie este nlocuita cu unica
ei valoare, element din As adica A As . Deci operatiile fara argumente, numite si constante, sunt elemente ale
algebrei de sort corespunzator sortului rezultat al numelui operatiei.
Vom continua prin a defini pentru algebrele multisortate cele mai uzuale concepte specifice algebrei: morfisme,
algebre libere, congruente, etc.
Asemanator algebrei care abordeaza pe r
and diferite structuri algebrce, trebuie sa facem acelas lucru. Adica
trebuie sa studiem, dar n acelasi timp, structuri algebrice de naturi diferite. Prin urmare, n continuare, fixam
signatura (S, ) a algebrelor de care ne ocupam. De altfel unele concepte, ca de exemplu cel de morfism, nu pot fi
definite decat pentru algebre av
and aceeasi signatura.
Fixarea signaturii arata ca ne ocupam de o anumita structura algebrica. Faptul ca signatura este arbitrara arata
ca studiul diferitelor structuri algebrice se face simultan.

1.4

Morfisme de algebre multisortate

Un morfism ntre doua algebre multisortate, asemanator oricarui morfism de structuri algebrice, este o functie
multisortata ntre suporturile celor doua algebre care verifica o conditie suplimentara. Pentru a scrie aceasta conditie
pentru cazul algebrelor multisortate sa plecam de la conceptul uzual de morfism pentru o structura algebrica bazata
pe o operatie binara. Functia h : A B este morfism h : (A, ) (B, &) daca
(a A)(b A)h(a b) = h(a)&h(b).
Sa analizam egalitatea de mai sus. Se evalueaza cei doi membri pentru un numar de elemente arbitrare din prima
algebra egal cu numarul de argumente al operatiei si apoi se egaleaza rezultatele
- membrul stang:
1) se aplica operatia din prima algebra elementelor a si b din prima algebra
2) se aplica morfismul h rezultatului obtinut a b
- membrul drept:
1) se aplica morfismul h elementelor a si b din prima algebra obtinandu-se niste elemente h(a) si h(b) din a doua
algebra
2) se aplica operatia & din a doua algebra acestor elemente
- se cere ca rezultatul evaluarii celor doi membri sa fie egali.
Sa facem acelasi lucru pentru doua algebre multisortate A = (As , A ), B = (Bs , B ) si o functie
S-sortata h : A B. Conditia de mai sus trebuie pusa pentru fiecare operatie cu numele
: s1 s2 . . . sn s
si oricare ar fi elementele a1 As1 , a2 As2 . . . an Asn din prima algrbra
- membrul stang:
1) se aplica operatia din prima algebra elementelor din prima algebra: A (a1 , a2 , . . . , an )
2) se aplica morfismul h rezultatului obtinut hs (A (a1 , a2 , . . . , an ))
3

- membrul drept:
1) se aplica morfismul h elementelor din prima algebra obtinandu-se niste elemente din a doua algebra:
hs1 (a1 ), hs2 (a2 ), . . . , hsn (an )
2) se aplica operatia din a doua algebra acestor elemente: B (hs1 (a1 ), hs2 (a2 ), . . . , hsn (an ))
- se cere ca rezultatul evaluarii celor doi membri sa fie egali.
hs (A (a1 , a2 , . . . , an )) = B (hs1 (a1 ), hs2 (a2 ), . . . , hsn (an )).
Definitia 1.5 Functia S-sortata h : A B este un morfism de -algebre multisortate
h : A = (As , A ) B = (Bs , B )
daca pentru orice s1 s2 . . . sn S , pentru orice s S, pentru orice s1 s2 ...sn ,s , pentru orice a1 As1 , a2 As2 ,
. . . , an Asn
hs (A (a1 , a2 , . . . , an )) = B (hs1 (a1 ), hs2 (a2 ), . . . , hsn (an )).
Daca nu este pericol de confuzie n loc de morfism de -algebre vom scrie morfism de algebre sau chiar morfism.
Este util sa remarcam ca exista cate o conditie pentru fiecare nume de operatie. In cazul operatiilor fara argumente, asa zisele constante, conditia de morfism este pentru orice ,s egalitatea hs (A ) = B . Cu alte
cuvinte morfismele trebuie sa pastreze constantele. Pe cazuri particulare observam ca orice morfism de monoizi duce
elementul neutru n elementul neutru si ca orice morfism de semiinele duce elementul neutru la adunare, respectiv
la nmultire, tot n elementul neutru la adunare respectiv la nmultire.
In continuare pentru s1 , s2 , . . . , sn S vom mai folosi si notatia
hs1 s2 ...sn = hs1 hs2 hsn : As1 s2 ...sn Bs1 s2 ...sn .
Cu aceleasi notatii mai precizam ca daca ai Asi pentru orice 1 i n
hs1 s2 ...sn (a1 , a2 , . . . , an ) = (hs1 (a1 ), hs2 (a2 ), . . . , hsn (an )).
Cu aceasta notatie, conditia de morfism pentru operatia : s1 s2 . . . sn s este echivalenta cu
A ; hs = hs1 s2 ...sn ; B .
Este deasemenea util sa mentionam diferenta de notatie dintre o functie S-sortata
f : A B
ntre suporturile a doua -algebre A si B si un morfism ntre cele doua algebre
h : A B.
Observam ca functia identitate 1A este morfism de -algebre de la A la A fapt notat prin 1A : A A.
Propozitie 1.6 Compunerea ca functii S-sortate a dou
a morfisme de -algebre este un morfism de -algebre.
Demonstratie: Fie h : A B si g : B C doua morfisme de -algebre. Probam ca h; g : A C este morfism
de -algebre.
Fie s1 s2 . . . sn S , s S, s1 s2 ...sn ,s si a1 As1 , a2 As2 , . . . , an Asn . Observam ca
(h; g)s (A (a1 , a2 , . . . , an )) = gs (hs (A (a1 , a2 , . . . , an ))) = gs (B (hs1 (a1 ), hs2 (a2 ), . . . , hsn (an ))) =
= C (gs1 (hs1 (a1 )), gs2 (hs2 (a2 )), . . . , gsn (hsn (an ))) = C ((h; g)s1 (a1 ), (h; g)s2 (a2 ), . . . , (h; g)sn (an )).
Compunerea morfismelor de -algebre este asociativa.
Morfismul identitate are efect neutru la compunere.
Datorita celor doua proprietati de mai sus putem vorbi de categoria algebrelor.

ALGEBRE LIBERE

Dupa aceasta mica introducere privind algebrele multisortate, trecem la conceptul de algebra libera datorita importantelor aplicatii ale acestuia n informatica. Cu el se modeleaza notiunile de expresie si de evaluarea a unei
expresii.
Mentionam ca demonstratia privind existenta algebrelor libere este prezentata mai t
arziu dupa o motivatie
intuitiva si un exemplu de utilizare a conceptului n informatica.

2.1
2.1.1

Expresii
Ce este o expresie?

Conceptul de expresie asa cum este el folosit n nvatamantul preuniversitar nu are o definitie si un nteles precis.
Vom da un exemplu care sa ilustreze acest fapt. La ntrebarea este x y z o expresie? raspunsul depinde de
contextul n care a fost pusa ntrebarea. Daca operatia a fost declarata asociativa, atunci x y z este o expresie.
In caz contrar ea nu este o expresie deoarece include o ambiguitate put
and fi interpretata ca x (y z) sau (x y) z
ambele fiind expresii. Pentru nceput notiunea de expresie va fi definita n ipoteza ca operatiile cu care lucr
am nu
au nici o proprietate suplimentar
a.
Mai mentionam ca cele doua expresii de mai sus mai pot fi scrise n scrierea poloneza x yz si xyz sau n
scrierea poloneza inversa xyz si xy z. Ne intereseaza o definitie a conceptului de expresie care s
a fie independent
a
de forma de scriere a acesteia.
Definitia 2.1 -algebra A = (As , A ) se numeste liber generat
a de V A daca pentru orice -algebra D si
pentru orice functie sortata f : V D, exista un unic morfism de -algebre f # : A D care extinde f .
-algebra A se numeste libera daca exista V A astfel ncat A este liber generata de V.
Definitia 2.2 Se numeste expresie un element dintr-o algebra libera.
Cand privim algebra libera ca o algebra de expresii, multimea V de mai sus reprezinta multimea variabilelor. In
unele cazuri, elementele lui V sunt numite generatori ai algebrei.
Binenteles ca acest concept este nca dependent de signatura cu care lucram, fapt pentru care atunci cand dorim
sa precizam signatura vorbim de expresii n loc de expresii.
In plus notiunea naiva de expresie ne da intuitia necesara pentru ntelegerea conceptului de algebra libera:
algebrele libere nu sunt altceva decat algebre de expresii.
Independenta de modul de scriere al expresiilor corespunde unicitatii abstractie de un izomorfism al algebrei
libere pentru care este fixata multimea V a generatorilor.
2.1.2

Evaluarea expresiilor

Un alt concept deosebit de util at


at n matematica cat si n informatica este cel de evaluare a unei expresii.
Incepem cu un exemplu. Sa presupunem ca se doreste evaluare unei expresii a + b care este suma a doua expresii
a su b. Se procedeaza astfel:
- se evalueaza una dintre expresii, de exemplu a, obtinandu-se rezultatul evaluarii notat ev(a),
- se evalueaza cealalta expresie b, obtinandu-se rezultatul evaluarii notat ev(b),
- se aduna cele doua rezultate ev(a) + ev(b), obtinandu-se rezultatul evaluarii expresiei a + b notat ev(a + b).
In concluzie
ev(a + b) = ev(a) + ev(b)
ceea ce arata ca modelarea matematica adecvata pentru evaluare este conceptul de morfism.
Desi este clar ca pentru a evalua o expresie este necesar sa dam valori variabilelor care apar n ea, mai putin
evident este faptul ca trebuie precizat si unde dam valori acestor variabile. Pentru a ilustra acest fapt mentionam
ca expresia x?(yz) nu poate fi evaluata numai dand valori variabilelor x, y si z ntr-o multime daca multimea nu
este nzestrata cu doua operatii binare corespunzatoare simbolurilor de operatii binare ? si . In concluzie pentru a
evalua o expresie este necesar sa dam
1. o algebra n care se fac calculele si care are aceeasi signatura cu cea a expresiei
2. valori variabilelor din expresie n algebra n care se fac calculele.

Mentionam ca a da valori variabilelor din multimea X n algebra D este echivalent cu a da o functie


v : X D.
Pentru orice variabila x din X valoarea data lui x este v(x).
Vom nota cu T (X) algebra liber generata de multimea X de variabile. Incluziunea X T (X) este echivalenta
cu faptul intuitiv ca orice variabila este o expresie. Pentru orice algebra D si pentru orice functie v : X D exista,
conform definitiei algebrelor libere, un unic morfism v # : T (X) D a carui restrictie la X coincide cu v.
Fixand algebra D vom constata ca exista o bijectie naturala ntre Alg (T (X), D) multimea morfismelor de
-algebre de la T (X) la D si SetS (X, D) multimea functiilor S-sortate de la X la D. Fie
r : Alg (T (X), D) SetS (X, D)
functia restrictie, adica r(h) : X D este restrictia h/X a morfismului h : T (X) D la X. Proprietatea de
mai sus a algebrei libere spune ca
(v SetS (X, D))(!v # Alg (T (X), D))r(v # ) = v
adica r este bijectie. Existenta acestei bijectii ne permite sa identificam elementele celor doua multimi fara a mai
face distinctie ntre un morfism v # de la T (X) la D si v, restrictia lui la X.
Daca mai sus scriam ca a da valori variabilelor din multimea X n algebra D este echivalent cu a da o functie
v : X D acum putem spune ca:
A da valori variabilelor din multimea X n algebra D este echivalent cu a da un morfism v : T (X) D.
O alta consecinta a celor de mai sus este:
Pentru a defini un morfism de la algebra liber generat
a de X la algebra D este suficient s
a d
am o
functie de la X la D.
Definitia 2.3 Daca e T (X) este o expresie cu variabile din X si h : T (X) D morfismul prin care se dau
valori n D variabilelor, atunci h(e) este rezultatul evaluarii expresiei e pentru valorile variabilelor date de functia
h/X : X D.
Pentru a ne convinge ca aceasta definitie modeleaza corect realitatea vom relua exemplul de mai sus privind expresia
x?(yz). Sa evaluam aceasta expresie n multimea numerelor naturale unde ? este nmultirea si este adunarea.
Pentru valorile x = 2, y = 3 si z = 1 intuitiv obtinem 2 (3 + 1) = 8 iar cu definitia de mai sus unde
h : (T ({x, y, z}), ?, ) (N, , +)
este morfismul definit prin h(x) = 2, h(y) = 3 si h(z) = 1 obtinem
h(x?(yz)) = h(x) h(yz) = h(x) (h(y) + h(z)) = 2 (3 + 1) = 8.
2.1.3

Semantica instructiunii de atribuire

Fie X multimea variabilelor utilizate ntrun program. O instructiune de atribuire este de forma x := e unde x este
o variabila si e este o expresie, adica e T (X).
Fie D -algebra datelor cu care se fac calculele. Ne intereseaza partitia memoriei n care sunt memorate datele utilizate n timpul executiei programului, date depozitate n celule ale memoriei care corespund variabilelor din X. Prin
urmare
starea
memoriei
este
caracterizata
n
fiecare
moment
de
o
functie
s : X D. Daca x este o variabila s(x) este valoarea din celula de memorie corespunzatoare lui x. Fie S multimea
starilor memoriei, adica multimea functiilor de la multimea variabilelor X la multimea datelor D.
O functie partiala de la A la B este o functie definita numai pe o parte a lui A cu valori n B.
Semantica unei instructiuni, sau mai general a unui program, este o functie partiala F de la multimea S a starilor
la ea insasi. Functia F este definita pentru starea s a memoriei daca si numai daca executia instructiunii nceputa
n starea s a memoriei se termina. Mai mult F (s) este starea memoriei n momentul terminarii executiei.
Vom defini Sem(x := e) : S S, semantica atribuirii x := e. Fie s : X D starea memoriei la nceputul
executiei atribuirii si s# : T (X) D unica extindere la un morfism a lui s. Observam ca s# (e) este rezultatul
evaluarii expresiei e n starea s a memorie. Prin urmare, prin definitie
#
s (e) daca y = x
Sem(x := e)(s)(y) =
s(y)
daca y 6= x.
Pentru o mai buna ntelegere mentionam ca s(y) este valoarea variabilei y n momentul nceperii executiei instructiunii
de atribuire si ca Sem(x := e)(s)(y) este valoarea variabilei y n momentul terminarii executiei instructiunii de
atribuire x := e.
6

2.1.4

Algebre initiale

Definitia 2.4 O -algebr


a I se numeste initial
a daca pentru orice -algebra A exista un unic morfism
A : I A.
Observam ca o algebra este initiala daca si numai daca este liber generata de multimea vida.

2.2

Algebra arborilor de derivare

O gramatica independenta de context poseda doua multimi disjuncte, una a neterminalelor N si una a terminalelor
T precum si multimea P N (N T ) a productiilor. Chiar daca conceptul de gramatica independenta de context
verifica si alte conditii, noi ne restr
angem doar la cele de mai sus deoarece acestea sunt utile n cele ce urmeaza.
Fiecarei gramaticii independente de context G i se poate atasa o signatura:
- neterminalele devin sorturi,
- productiile devin nume de operatii,
- daca (n, t0 n1 t1 . . . nk tk ) P unde literele n sunt neterminale si literele t sunt cuvinte cu litere terminale, atunci
(n, t0 n1 t1 . . . nk tk ) : n1 n2 . . . nk n
adica operatia corespunzatoare lui (n, t0 n1 t1 . . . nk tk ) are ca rezultat un element de sortul indicat de neterminalul
din membrul stang al productiei, un numar de argumente egal cu numarul de neterminale din membrul drept al
productiei si sorturile argumentelor sunt chiar neterminalele din membrul drept al productiei.
O algebra a carei signatura este cea atasata gramaticii independente de context G se numeste G-algebra.
Un arbore de derivare ntr-o gramatica independenta de context are urmatoarele proprietati:
1. este un arbore finit si local ordonat, adica succesorii fiecarui nod sunt ntr-o ordine totala;
2. are noduri etichetate cu terminale sau neterminale, radacina fiind etichetata cu un neterminal;
3. orice nod etichetat cu un terminal nu are nici un succesor;
4. pentru orice nod, daca este etichetat cu un neterminal n, atunci perechea formata din n si cuvantul format de
etichetele succesorilor formeaza o productie (n, s1 s2 . . . sk1 sk ) P .

n
s1

s k-1 s

s2

Arborii de derivare ai unei gramatici independente de context G pot fi organizati ca o G-algebra A dupa cum
urmeaza:
- pentru orice sort n, adica pentru orice neterminal n, multimea An este formata din totalitatea arborilor de
derivare care au radacina etichetata cu n.
- pentru productia p = (n, t0 n1 t1 . . . nk tk ) si arborii ai Ani arborele Ap (a1 , a2 , . . . , ak ) este format astfel:
radacina este etichetata cu n, etichetele succesorilor radacinii n numar egal cu numarul literelor din t0 n1 t1 . . . nk tk
sunt chiar literele acestui cuvant si subarborele fiecarui nod etichetat cu ni este chiar ai .
Ap (a1 , a2 , . . . , ak ) =
t0 t

n n CC
nnn
CC
n
n
n
CC
nnn
CC
n
n
n
}
!
n
v
?>=<
89:;
0123
7654
...
ak
a1 n
t1

tk

2.3

Initialitatea algebrei arborilor de derivare

Lem
a 2.5 Pentru orice arbore de derivare a An , unde n este un neterminal exist
a si sunt unice o productie
p = (n, t0 n1 t1 . . . nk tk ) si arborii de derivare ai Ani cu proprietatea a = Ap (a1 , a2 , . . . , ak ).
Demonstratie: Fie n un neterminal si a An . Analiz
and radacina si primul nivel al arborelui a deducem existenta
unei productii p = (n, t0 n1 t1 . . . nk tk ) cu proprietatea
a = Ap (a1 , a2 , . . . , ak )
unde ai sunt subarborii lui a care au radacinile n succesorii radacinii lui a care sunt etichetati cu neterminale.
Pentru a proba unicitatea presupunem ca
a = Aq (b1 , b2 , . . . , bk )

, t0 s1 t1

. . . sk tk )

unde q = (n
este o productie n care literele n si s sunt neterminale si literele t sunt cuvinte formate
din terminale. In plus bi Asi pentru orice 1 i k .
Toate concluziile vor rezulta din egalitatea
Ap (a1 , a2 , . . . , ak ) = Aq (b1 , b2 , . . . , bk ).
Deoarece eticheta radacinii este unica deducem n = n .
Egaland cuvintele formate cu etichetele succesorilor radacinilor din cei doi arbori egali deducem
t0 n1 t1 . . . nk tk = t0 s1 t1 . . . sk tk .
Reamintim ca prin definitia gramaticilor un element nu poate fi n acelasi timp si terminal si neterminal. Deoarece
numarul neterminalelor din cele doua cuvintre trebuie sa fie egal deducem egalitatea k = k . Deoarece primele
neterminale din cele doua cuvinte trebuie sa fie pe aceeasi pozitie deducem ca t0 = t0 si n1 = s1 . Rezulta ca
t1 n2 t2 . . . nk tk = t1 s2 t2 . . . sk tk .
Continuam rationamentul ca mai sus si deducem ti = ti pentru 0 i k si ni = si pentru 1 i k. De aici
deducem ca p = q.
In final egal
and subarborii cu radacinile aflate pe aceeasi pozitie a primului nivel din arborii egali Ap (a1 , a2 , . . . , ak )
si Aq (b1 , b2 , . . . , bk ) rezulta ca ai = bi pentru orice 1 i k.
Teorema 2.6 Algebra arborilor de derivare ai unei gramatici independente de context este algebr
a initial
a.
Demonstratie: Fie B = ({Bn }nN , {Bp }pP ) o Galgebra. Vom arata ca exista si este unic un morfism h de la
algebra A a arborilor de derivare la B.
Definim functia N sortata h : A B. Prin inductie dupa adancimea arborelui a An definim hn (a) n Bn .
Fie m un numar natural. Pentru orice neterminal n N si orice arbore de derivare a An de adancime strict
mai mica decat m presupunem definit hn (a) Bn .
Fie arborele de derivare a An de adancime m. Conform lemei exista si sunt unice o productie p = (n, t0 n1 t1 . . . nk tk )
si arborii de derivare ai Ani cu proprietatea a = Ap (a1 , a2 , . . . , ak ). Observam ca pentru orice 1 i k arborele
de derivare ai Ani are adancimea strict mai mica decat m, prin urmare hni (ai ) Bni este definit. Definim
hn (a) = Bp (hn1 (a1 ), hn2 (a2 ), . . . , hnk (ak )).
Se observa ca prin aceasta definitie
hn (Ap (a1 , a2 , . . . , ak )) = Bp (hn1 (a1 ), hn2 (a2 ), . . . , hnk (ak ))
adica h : A B este morfism de Galgebre.
Probam unicitatea. Fie f : A B un morfism de Galgebre. Demonstram egalitatea f = g printr-o inductie la
fel ca mai sus.
Fie m un numar natural. Pentru orice neterminal n N si orice arbore de derivare a An de adancime strict
mai mica decat m presupunem ca fn (a) = hn (a).
Fie arborele de derivare a An de adancime m. Conform lemei exista si sunt unice o productie p = (n, t0 n1 t1 . . . nk tk )
si arborii de derivare ai Ani cu proprietatea a = Ap (a1 , a2 , . . . , ak ). Deoarece arborii de derivare ai Ani au
adancimea strict mai mica dec
at m, conform ipotezei de inductie fni (ai ) = hni (ai ) pentru orice 1 i k. Rezulta
ca
fn (a) = fn (Ap (a1 , a2 , . . . , ak )) = Bp (fn1 (a1 ), fn2 (a2 ), . . . , fnk (ak )) =
Bp (hn1 (a1 ), hn2 (a2 ), . . . , hnk (ak )) = hn (Ap (a1 , a2 , . . . , ak )) = hn (a).
8

2.4

Existenta algebrelor libere

Fie (S, ) o signatura si X = {Xs }sS o multime Ssortata de variabile. Componentele multimii X sunt prin definitie
doua cate doua disjuncte.
Teorema 2.7 Pentru orice signatur
a (S, ) si orice multime Ssortat
a de variabile X exist
a algebra liber generat
a
de X.
Demonstratie: Fara a micsora generalitatea vom presupune ca si X sunt disjuncte. Definim gramatica independenta de context
G = (S, X, P )
unde P = {s s1 s2 . . . sk : s1 s2 ...sk ,s } {s x : s S si x Xs }.
Notam cu
A = ({As }sS , {Ass1 s2 ...sk }s1 s2 ...sk ,s , {Asx }sS,xXs )
Galgebra initiala.
Observam ca
A = ({As }sS , {Ass1 s2 ...sk }s1 s2 ...sk ,s )
este o algebra. Vom arata ca ea este liber generata de X.
Multimea variabilelor din X este injectata n {As }sS prin functia
i : X {As }sS definita pentru orice s S si x Xs prin
is (x) = Asx .
Fie D = (Ds , D ) o algebra si f : X {Ds }sS o functie Ssortata. Deoarece
(Ds , D , {f (x)}sS,xXs )
este o Galgebra exista un unic morfism de Galgebre
h : A (Ds , D , {f (x)}sS,xXs ).
Observam ca h este morfism de Galgebre daca si numai daca h este morfism de algebre si hs (Asx ) = f (x)
pentru orice s S si x Xs , adica daca si numai daca h este morfism de algebre si i; h = f.
In concluzie exista un unic morfism de algebre h : A D cu proprietatea i; h = f.

3
3.1

Tipuri abstracte de date - introducere


Izomorfisme de algebre multisortate

Definitia 3.1 Morfismul de -algebre h : A B se numeste izomorfism daca exista morfismul g : B A cu


proprietatile h; g = 1A si g; h = 1B .
Daca exista, morfismul g din definitia de mai sus este unic. Intradevar daca f : B A este un alt morfism cu
proprietatile h; f = 1A si f ; h = 1B . Observam ca
g = g; 1A = g; (h; f ) = (g; h); f = 1B ; f = f.
Datorita unicitatii sale, conform uzantelor, morfismul g, denumit si inversul lui h, este notat n continuare cu h1 .
Prin urmare pentru orice izomorfism h : A B mentionam egalitatile h; h1 = 1A si h1 ; h = 1B .
Observam ca morfismele identitate sunt izomorfisme. In plus (1A )1 = 1A .
Propozitie 3.2 Un morfism este izomorfism dac
a si numai dac
a are toate componentele bijective.
Demonstratie: Fie h : A B un morfism de -algebre.
Presupunem ca h este izomorfism, adica exista morfismul h1 : B A cu proprietatile h; h1 = 1A si h1 ; h =
a functia hs este
1B . Rezulta ca pentru orice sort s S au loc egalitatile hs ; h1
= 1As si h1
s ; hs = 1Bs , adic
s
inversabila pentru orice s S, deci toate componentele hs ale lui h sunt bijectii.

Reciproc, presupunem ca toate componentele hs ale lui h sunt bijectii. Prin urmare pentru orice s S exista
a
and h1 = {h1
= 1As si h1
: Bs As cu proprietatile hs ; h1
functia h1
s }sS rezult
s ; hs = 1Bs . De aici not
s
s
pentru orice s S ca
(h; h1 )s = hs ; h1
s = 1As = (1A )s

si

(h1 ; h)s = h1
s ; hs = 1Bs = (1B )s

deci h; h1 = 1A si h1 ; h = 1B .
Pentru a ncheia demonstratia mai trebuie aratat ca functia S-sortata h1 : B A este un morfism de -algebre
1
h : B A.
Fie s1 s2 . . . sn S , s S, s1 s2 ...sn ,s si b1 Bs1 , b2 Bs2 , . . . , bn Bsn . Deoarece h este morfism pentru
1
1
elementele h1
s1 (b1 ), hs2 (b2 ), . . . , hsn (bn ) din A deducem
1
1
1
1
1
hs (A (h1
s1 (b1 ), hs2 (b2 ), . . . , hsn (bn ))) = B (hs1 (hs1 (b1 )), hs2 (hs2 (b2 )), . . . , hsn (hsn (bn ))) =
= B (b1 , b2 , . . . , bn ).

Aplicand functia h1
s ambilor membri deducem
1
1
1
A (h1
s1 (b1 ), hs2 (b2 ), . . . , hsn (bn )) = hs (B (b1 , b2 , . . . , bn ))

deci h1 : B A este morfism de -algebre.


Propozitie 3.3 Compunerea a dou
a izomorfisme f : A B si g : B C este un izomorfism f ; g : A C.
In
plus
(f ; g)1 = g 1 ; f 1
Demonstratie: Pentru a demonstra ca un morfism de la M la N este izomorfism av
and ca invers un alt morfism
de la N la M este suficient sa probam ca prin compunerea celor doua morfisme, n ambele sensuri posibile, se obtin
identitati. Prin urmare folosind egalitatile f ; f 1 = 1A , f 1 ; f = 1B , g; g 1 = 1B si g 1 ; g = 1C deducem
(f ; g); (g 1 ; f 1 ) = f ; (g; g 1 ); f 1 = f ; 1B ; f 1 = f ; f 1 = 1A si
(g 1 ; f 1 ); (f ; g) = g 1 ; (f 1 ; f ); g = g 1 ; 1B ; g = g 1 ; g = 1C
ceea ce arata ca f ; g este izomorfism av
and inversul g 1 ; f 1 .

3.2

Unicitatea abstractie de un izomorfism a algebrelor libere

Daca A este o submultime a lui B numim functie incluziune a lui A n B functia i : A B definita prin i(a) = a
pentru orice a A. In acest caz folosim si notatia i : A B.
Teorema 3.4 Dou
a algebre liber generate de aceeasi multime sunt izomorfe.
Demonstratie: Fie A = (As , A ) si B = (Bs , B ) doua -algebre liber generate de X. Notam cu iA : X A si
iB : X B functiile incluziune ale lui X n A, respectiv n B. Demonstratia are patru pasi.
1. Deoarece algebra A este liber generata de X exista un morfism f : A B cu proprietatea iA ; f = iB .
Pasul 2 este asemanator cu primul, doar ca se inverseaza rolul algebrelor A si B. La fel vor fi pasii 3 si 4.
2. Deoarece algebra B este liber generata de X exista un morfism g : B A cu proprietatea iB ; g = iA .
3. Deoarece iA ; (f ; g) = (iA ; f ); g = iB ; g = iA = iA ; 1A si deoarece A este algebra liber generata de X deducem,
folosind partea de unicitate din definitia algebrei libere, ca f ; g = 1A .
4. Deoarece iB ; (g; f ) = (iB ; g); f = iA ; f = iB = iB ; 1B si deoarece B este algebra liber generata de X deducem,
folosind partea de unicitate din definitia algebrei libere, ca g; f = 1B .
Deci f si g sunt izomorfisme inverse unul altuia.
Corolar 3.5 -algebra initial
a este unic
a abstractie f
ac
and de un izomorfism.

10

3.3

Conceptul abstract de tip de date

Un tip de date se numeste abstract daca este unic determinat abstractie facand de un izomorfism. Se vede prin
urmare ca dand o signatura am dat implicit, prin algebra initiala corespunz
atoare signaturii, un tip abstract de date.
Vom da un exemplu cunoscut din algebra de liceu. Se stie ca numerele ntregi formeaza un inel initial. Va invitam
sa reflectati asupra urmatoarei definitii a idei de numar ntreg.
Se numeste num
ar ntreg un element al inelului initial.
Abstract nseamna de fapt ca nu ne intereseaza cum sunt scrise sau memorate datele.
Una dintre metodele prin care se poate defini un tip abstract de date este cel al algebrei initiale. Mai clar :
este suficient sa dam o signatura si eventual niste axiome(ecuatii conditionate sau nu) deoarece algebra initiala, a
carei existenta este garantata de teoremele care vor fi prezentate mai t
arziu, este unic determinata abstractie de un
izomorfism, prin urmare este un tip abstract de date.
Tipul numerelor naturale poate fi definit abstract ca fiind semiinelul initial.
Observam ca o astfel de definitie nu spune nimic despre scrierea numerelor. Ele pot fi scrise cu cifre arabe, cu
cifre romane, n baza 2 ca n calculatoare sau altfel.
Definitiile de mai sus, desi corecte sunt uneori ineficiente, deoarece nu face posibila executia de calcule sau executia
este ineficienta. Prin urmare dorim alte definitii echivalente care permit calculatorului sa faca calcule care sa fie cat
mai eficiente. Vom exemplifica pentru numere naturale fara a intra n prea multe detalii.
3.3.1

Tipul abstract al numerelor naturale

Semiinelul este o multime M nzestrata cu doua operatii binare notate cu + si cu urmatoarele proprietati
1. (M, +, 0) este monoid comutativ,
2. (M, , 1) este monoid,
3. este distributiva fata de + si
4. (m M )m 0 = 0 m = 0.
Multimea numerelor naturale cu adunarea si inmultirea uzuale este un semiinel initial, adica conceptul de semiinel
caracterizeaza numele naturale ca tip abstract de date.
Pentru a scrie un program se prefera axiomele lui Peano. Chiar daca Peano nu s-a g
andit la programarea prin
rescriere, baza programarii declarative, se pare sa fi scris primul program de acest gen.
Cel caruia i se atribuie prima punere n evidenta a ideilor abstracte privind numerele naturale este F.W. Lawvere.
Consideram signatura cu un singur sort nat, o singura constanta de sort nat si o singura operatie unara cu
argument si rezultat de sort nat:
sort nat .
op 0 : nat .
op s : nat nat .
Elementele algebrei initiale sunt
0, s(0), s(s(0)), s(s(s(0))), s(s(s(s(0)))), ...
si ele reprezinta numerele naturale 0 1 2 3 4 ...
Propozitia urmatoare n care conceptul de numar natural este folosit n ntelesul sau clasic arata ca numerele
naturale formeaza un model al definitiei abstracte. Acest fapt arata corectitudinea definitiei abstracte pentru modelul
clasic.
Propozitie 3.6 Fie N = (N, 0N , sN ) algebra definit
a prin: N este multimea numerelor naturale, 0N este num
arul
natural zero si sN (n) = n + 1 pentru orice num
ar natural n. Algebra N este initial
a.

11

Demonstratie: Fie A = (A, 0A , sA ) o alta algebra pentru signatura de mai sus.


Definim funtia h : N A prin inductie
h(0N ) = 0A
h(n + 1) = sA (h(n)) pentru orice numar natural n.
Prima egalitate de mai sus si h(sN (n)) = sA (h(n)) pentru orice numar natural n dovedesc ca
h : N A este un morfism.
Probam unicitatea. Fie g : N A un alt morfism. Aratam prin inductie ca g(n) = h(n) pentru orice n natural.
g(0N ) = 0A = h(0N ) si presupunand g(n) = h(n) deducem
g(n + 1) = g(sN (n)) = sA (g(n)) = sA (h(n)) = h(sN (n)) = h(n + 1).
Propozitia anterioara ne arata cum pot fi definite numerele naturale prim metoda algebrei initiale ca tip abstract
de date. Ea dovedeste corectitudinea definitiei de mai sus.
Deocamdata prin signatura de mai sus calculatorul nvata numerele naturale dar nu stie nca sa calculeze. Pentru
nceput sa-l nvatam sa adune. Daca introducem n signatura o operatie binara +
op + : nat nat nat
nu realizam nimic altceva dec
at sa adaugam la multimea de mai sus a numerelor naturale foarte mult gunoi. De
exemplu, deoarece calculatorul nu stie nca sa adune, 0 + 0 este un nou element de care nu avem nevoie. Il nvatam
sa adune dandu-i urmatoarele doua reguli de rescriere precedate de o declarare de variabile
var X Y : nat .
eq X + 0 = 0 .
eq X + s(Y) = s(X+Y) .
Trebuie sa remarcam diferenta esentiala dintre o regula de rescriere si o egalitate. O regula de rescriere se aplica
numai de la stanga la dreapta. Simetria este unul dintre marii dusmani ai programarii prin rescriere conduc
and la
neterminarea programelor.
Ce parere aveti despre comutativitate?
Sa vedem cum efectueaza masina adunarea 2 + 2, adica:
s(s(0)) + s(s(0)).
Calculatorul nu poate aplica dec
at a doua regula pentru X=s(s(0)) si Y=s(0) ajungand la
s( s(s(0)) + s(0) ).
Trebuie din nou aplicata a doua regula de rescriere pentru X=s(s(0)) si Y=0 ajungand la
s(s( s(s(0)) + 0 )).
Acum se poate aplica numai prima regula pentru X=s(s(0)) obtinand rezultatul s(s(s(s(0)))), adica 4. Calculatorul
se opreste deoarece nu se mai pot face rescrieri.
Corectitudinea acestei definitii precum si a celei care urmeaza va fi probata mai t
arziu, n sectiunea 8.1.
Calculatorul va sti sa si nmulteasca daca mai introducem o operatie binara si doua reguli de rescriere
op * : nat nat nat .
eq X * 0 = 0 .
eq X * s(Y) = X*Y + X .
Uneori, n programarea prin rescriere, daca dorim sa scriem un program, partea cea mai dificila este definirea
abstracta a tipurilor de date cu care lucram. Plecand de la notiunea intuitiv
a data de o algebra D a datelor, trebuie
sa gasim signatura si eventual ecuatiile pentru care D devine algebra initiala.
Exemplul numerelor naturale este doar un nceput. Va propunem de exemplu sa definiti relatia de ordine ca
operatie < : nat nat bool. Piatra de ncercare va fi nsa operatia de mpartire.

12

SEMANTICA ALGEBREI INIT


IALE

Mentionam aici pe marele informatician, regretatul Joseph Goguen, profesorul si prietenul multor rom
ani, care spunea
ca semantica algebrei initiale este una dintre cele mai frumoase idei ale sale [?].
Metoda semanticii algebrei initiale este o simplificare a metodei mai clasice a semanticii denotationale, numita si
semantica matematica.
Metoda semanticii algebrei intiale se aplica pentru limbaje definite printr-o gramatica independenta de context
G = (N, T, P, a), unde N este multimea neterminalelor, T mutimea terminalelor, P multimea productiilor si a axioma gramaticii. Ea spune ca pentru a defini semantica limbajului gramaticii G este suficient s
a d
am o
G-algebr
a S = ({Sn }nN , {Sp }pP ), numita n continuare algebr
a semantic
a.
Pentru a ntelege afirmatia de mai sus trebuie sa intram putin n amanunte. Fie A algebra arborilor de derivare.
Deoarece A este algebra intiala exista un unic morfism de G-algebre
M : A S.
Dat un cuvant c din limbajul gramaticii G exista un arbore de derivare arb cu radacina etichetata cu a a carui
frontiera este c. Semantica cuvantului c este prin definitie Ma (arb).
Mentionam ca metoda este bine definita numai pentru gramaticile neambigue, fapt care asigura unicitatea arborelui arb. Acest aspect este mai degraba legat de analiza sintactica.
Trecem la exemple care vor clarifica si mai mult ideile de mai sus.

4.1

Semantica unui sir de cifre ca num


ar natural

Vom considera o gramatica G care genereaza sirurile finite nevide de cifre zecimale, considerate ca terminale. Gramatica are doua neterminale <cifra> si <nat> ultima fiind si axioma a gramaticii. Descriem n continuare productiile
gramaticii carora le dam un nume
ci
n1
n2

<cifra>
<nat>
<nat>

i
<cifra>
<nat> <cifra>

pentru orice cifra zecimala i

Vom defini algebra semantica explicand de ce o definim astfel. Deoarece gramatica are doua neterminale, signatura
asociata are doua sorturi, prin urmare algebra semantica trebuie sa aiba ca suport doua multimi. Semantica unei
cifre, care nu este nimic altceva decat un semn, este numarul reprezentat de cifra. Prin urmare suportul corespunzator
neterminalului <cifra> trebuie sa contina macar numerele de la zero la noua. Deci prin definitie
S<cif ra> = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
Deoarece semantica unui sir finit de cifre este numarul natural pe care acest sir l reprezinta, suportul corespunzator
neterminalului <nat> trebuie sa contina macar multimea numerelor naturale. Deci prin definitie
S<nat> = este multimea numerelor naturale.
Sa trecem la definirea operatiilor algebrei semantice.
Deoarece productia ci corespunzatoare cifrei i nu are nici un neterminal n membrul drept, operatia corespunzatoare ei este o operatie fara argumente, adica un element din S<cif ra>
Sci este numarul natural reprezentat de cifra i.
Productia n1 spune ca orice cifra este un sir dr cifre. Deoarece valoarea numarului reprezentat de un sir de lungime
unu este egala cu valoarea numarului reprezentat de singura cifra din sir si semantica lor trebuie sa fie aceeasi. Deci
prin definitie
Sn1 este functia incluziune de la S<cif ra> la S<nat> .
Productia n2 ne spune ca prin adaugarea la dreapta unui sir de cifre, sa spunem s1, a unei cifre, sa spunem c, se
obtine un nou sir de cifre s2 = s1c. Operatia corespunzatoare productiei n2 trebuie sa fie o functie
Sn2 : S<nat> S<cif ra> S<nat>
definita pentru numele n si m prin
Sn2 (n, m) = 10n + m
13

deoarece valoarea ca numar a sirului s2 este egala cu de zece ori valoarea ca numar a sirului s1 plus valoarea ca
numar a cifrei.
Cu aceasta semantica este complet definita. Vom exemplifica pentru sirul 023. Arborele de derivare pentru acest
sir este
An2 (An2 (An1 (Ac0 ), Ac2 ), Ac3 ).
Sa-i aplicam morfismul semantic acestui arbore.
M<nat> (An2 (An2 (An1 (Ac0 ), Ac2 ), Ac3 )) = Sn2 (Sn2 (Sn1 (Sc0 ), Sc2 ), Sc3 ) = Sn2 (Sn2 (Sn1 (0), 2), 3) =
= Sn2 (Sn2 (0, 2), 3) = Sn2 (10 0 + 2, 3) = Sn2 (2, 3) = 10 2 + 3 = 23
Ce sa nt
ampla daca n membrul drept al productiei n2 scriem < cif ra >< nat >?

4.2

Un calculator de buzunar

Vom da un alt exemplu, cel al unui minicalculator pe fata caruia se afla un mic ecran pe care se poate afisa un singur
numar si mai multe butoane:
ON pentru pornirea calculatorului
OFF pentru oprirea calculatorului
0 1 2 3 4 5 6 7 8 9 pentru cifrele zecimale
+ pentru adunare si nmultire
M pentru unica celula de memorie a calculatorului
( ) pentru parantezele necesare n scrierea expresiilor
IF , pentru o anumita expresie conditionata
E pentru comanda de evaluarea a unei expresii
Remarcam ca butoanele diferite de ON, OFF si E sunt folosite pentru introducerea expresiilor care vor fi evaluate
la apasarea butonului E. Sintaxa expresiilor este definita de productiile r1-r6 ale gramaticii de mai jos. Expresiile
sunt construite pornind de la sirurile finite de cifre zecimale reprezent
and numere naturale(productia r1), variabila
M(productia r2) si recursiv, alte expresii cuprinse ntre paranteze(productia r6). Pentru construtia expresiilor sunt
folosite numai operatiile de adunare si nmultire(productiile r3 si r4). Productia r5 permite construirea unor expresii
conditionate unde conditia reprezentata de prima expresie permite o alegere ntre celelalte doua expresii.
Vom considera o gramatica G care genereaza limbajul programelor care pot fi executate de minicalculator. Ea
extinde gramatica din exemplul precedent. Numele butoanelor de mai sus sunt chiar terminalele gramaticii.
Gramatica are cinci neterminale <cifra>, <nat>, <exp> pentru expresii, <inst> pentru anumite portiuni de
programe si <program> care este si axioma a gramaticii. Descriem n continuare productiile gramaticii carora le
dam un nume pe care l-am scris la nceputul r
andului, n fata productiei.
ci
n1
n2
r1
r2
r3
r4
r5
r6
r7
r8
r9

<cifra>
<nat>
<nat>
<exp>
<exp>
<exp>
<exp>
<exp>
<exp>
<inst>
<inst>
<program>

i
<cifra>
<nat> <cifra>
<nat>
M
<exp> + <exp>
<exp> <exp>
IF <exp>,<exp>,<exp>
(<exp>)
<exp> E OFF
<exp> E <inst>
ON <inst>

pentru orice cifra zecimala i

Pentru a da semantica este necesar sa explicam cum functioneaza calculatorul. Se porneste calculatorul apasand
butonul ON, moment n care se initializeaza unica celula de memorie cu zero. Se introduce o expresie care la apasarea
butonului E se evalueaza. Rezultatul evaluarii este afisat pe ecran si introdus n unica celula de memorie n locul
vechii valori. Se introduce alta expresie, se apasa butonul E si asa mai departe. La final se apasa butonul OFF
pentru nchiderea calculatorului. Mai remarcam ca se calculeaza numai cu numere naturale.
14

Vom defini algebra semantica. Deoarece signatura asociata are cinci sorturi, algebra semantica trebuie sa aiba ca
suport cinci multimi, primele doua fiind cele de mai sus S<cif ra> si S<nat> .
Expresiile sunt facute pentru a fi evaluate, prin urmare prima idee ar fi ca semantica unei expresii sa fie rezultatul
evaluarii, adica un numar. Dar oare ce numar se obtine prin evaluarea expresiei M+3. Trebuie sa mentionam ca
fiecare aparitie a lui M este nlocuita n timpul evaluarii cu valoarea care se afla n unica celula de memorie. Prin
urmare rezultatul evaluarii lui M+3 depinde de continutul celulei de memorie. Prin urmare semantica expresiei M+3
este functia f : N N defina prin f (x) = x + 3 care asociaza numarului x care se afla n celula de memorie
rezultatul x + 3 al evaluarii acesteia. Prin urmare prin definitie S<exp> este multimea functiilor de la multimea
numerelor naturale la ea nsasi.
O instructiune, generata de productiile r7 si r8, comanda evaluarea unui sir finit de expresii. Semantica instructiunii
este, prin definitie, sirul numerelor care apar pe ecran n timpul executiei instructiunii, adica un sir finit si nevid
de numere naturale. Multimea acestor siruri o notam cu N + . Rezultatul evaluarii depinde evident de valoarea din
memorie din momentul nceperii executiei instructiunii, prin urmare
S<inst> = {f : N N + | f este functie.}
Un program, generat de productia r9, difera de o instructiune prin faptul ca se introduce zero n celula de memorie
nainte de executia instructiunii pe care o contine, prin urmare sirul de numere care apar pe ecran n timpul executiei
programului nu mai depinde de continutul memoriei, fiind un element din N + , deci S<program> = N + .
Folosind urmatoarele notatii
m este un numar natural reprezent
and continutul celulei de memorie
n este un numar natural
e este o functie de la N la N reprezent
and semantica unei expresii
este o functie de la N la N + reprezent
and semantica unei instructiuni
definitiile pentru operatii, fara a le mai repeta pe cele de mai sus sunt:
Sr1 (n)(m) = n
Sr2 (m) = m
Sr3 (e1, e2)(m) = e1(m) + e2(m)
Sr4 (e1, e2)(m) = e1(m) e2(m)
Sr5 (e1, e2, e3)(m) = daca e1(m) = 0 atunci e2(m) altfel e3(m)
Sr6 (e) = e
Sr7 (e)(m) = e(m)
Sr8 (e, )(m) = e(m)(e(m))
Sr9 () = (0)

4.3

Arbori de derivare

Reamintim proprietatile unui arbore de derivare dintr-o gramatica independenta de context:


1. este un arbore finit si local ordonat, adica succesorii fiecarui nod sunt ntr-o ordine totala;
2. are noduri etichetate cu terminale sau neterminale, radacina fiind etichetata cu un neterminal;
3. orice nod etichetat cu un terminal nu are nici un succesor;
4. pentru orice nod, daca este etichetat cu un neterminal n, atunci perechea formata din n si cuvantul format de
etichetele s1 , s2 , . . . , sk ale succesorilor sai formeaza o productie (n, s1 s2 . . . sk1 sk ) P .
4.3.1

O gramatic
a pentru expresii

Definim o gramatica independenta de context pentru expresiile construite cu variabilele x, y si z, cu operatiile


binare de adunare si nmultire si cu paranteze. Gramatica trebuie constrita respectand urmatoarele conditii privind
expresiile:
1. nmultirile se fac naintea adunarilor
2. adunarile se fac de la stanga la dreapta
3. nmultirile de la dreapta la stanga.
Multimea terminalelor este {x, y, z, (, ), +, }. Fie N = {V, F, T, E, P } multimea neterminalelor. Semnificatia lor este
urmatoarea:

15

V
F
T
E
P

reprezinta variabilele
de la factor, reprezinta cele mai mici elemente folosite n constructia expresiilor
de la termen, reprezinta un produs de factori
de la expresie, reprezinta o suma de termeni
de la program.

Continuam cu multimea regulilor(productiilor) gramaticii:


0. P E
5. F (E)

1. V x
6. T F

2. V y
7. T F T

3. V z
8. E T

4. F V
9. E E + T

Observati productiile 7 si 9 pentru a vedea cum se precizeaza ordinea de executie a operatiilor de acelasi fel.
Neterminalul din membrul stang se afla n dreapta, respectiv n stanga semnului operatiei.
4.3.2

Un exemplu

Sa se construiasca arborele de derivare pentru expresia x + y (x + y) z + z.


P
E
E
E

*
F

E + T

Pentru a reface expresia, arborele se parcurge n inordine.


Daca veti incerca sa construiti alt arbore de derivare pentru aceeasi expresie veti constata ca acest lucru nu este
posibil. Prin urmare modul de constructie al expresiei va impune o anumita ordine n evaluarea acesteia.
Folosind numerele care denumesc productiile ca nume ale operatiilor din algebra arborilor de derivare arborele
de mai sus este
A = 0(9[9{a, 7(4[2], 7[ 5{9(a,6[4(2)])},b ]) },b])
unde a = 8(6[4(1)]) si b = 6(4(3)).

16

0
9
9

6
4

8
6

4.4

Scrierea polonez
a invers
a

Semantica pe care o dam unui limbaj depinde de scopul pe care-l urmarim. Pentru a ilustra aceasta idee vom da
doua semantici pentru expresiile definite mai sus.
Prima semantica va da scrierea poloneza inversa pentru expresii. A doua semantica va fi data n sectiunea
urmatoare.
Algebra semantica va avea toate suporturile egale cu semigrupul liber generat de {x, y, z, +, }, sau mai popular
multimea sirurilor finite nevide de semne din {x, y, z, +, }. Operatiile sunt urmatoarele:
0 = 4 = 5 = 6 = 8 sunt aplicatia identitate,
1 = x, 2 = y si 3 = z,
7(, ) = si 9(, ) = +.
Notam cu S algebra semantica de mai sus, cu A algebra arborilor de derivare si cu C : A S unicul morfism
de algebre existent. Morfismul C este modelarea algebrica a rescrierii expresiei n scrierea poloneza inversa.
Conform metodei semanticii algebrei initiale rezulta ca C(A) este scrierea poloneza nversa a expresiei x + y
(x + y) z + z.
Calculele sunt urmatoarele
C(a) = 8(6[4(1)]) = x

si

C(b) = 6(4(3)) = z

C(A) = C(0(9[9{a, 7(4[2], 7[ 5{9(a,6[4(2)])},b ]) },b])) = 9[9{x, 7( y , 7[ 9(x,y) ,z ]) },z] =


9[9{x, 7( y , 7[xy+,z]) },z] = 9[9{x, 7(y,xy + z) },z] = 9[9{x, yxy + z },z] = 9[xyxy + z +,z] =
xyxy + z + z + .
Rezultatul final confirma corectitudinea si eficacitatea metodei.

4.5

Compilare

Un compilator care va produce un program pentru evaluarea expresiilor si tiparirea rezultatului evalarii va fi modelat
printr-un morfism.
Vom pune n evidenta elementele care apar n programele obtinute prin compilare. R este un registru din memorie.
P este un pointer catre primul loc liber al stivei utilizate n timpul evaluarii. Ori de cate ori se pune un element n

17

stiva pointerul creste automat cu o unitate. Ori de cate ori se scoate un element din stiva pointerul scade automat
cu o unitate. Presupunem ca la nceputul executiei programului pointerul indica primul loc liber din stiva.
Presupunem ca limbajul de asamblare include urmatoarele instructiuni:
Ad R
Mu R
ld R
st R
print

scoate valoarea din v


arful stivei, o aduna cu continutul lui R si pune rezultatul n R
scoate valoarea din v
arful stivei, o inmulteste cu continutul lui R si pune rezultatul n R
scoate valoarea din v
arful stivei si o pune n R
valoarea din R este pusa n v
arful stivei
tipareste valoarea din v
arful stivei

Semantica unei expresii va fi programul care evalueaza expresia si imprima rezultatul evaluarii. Programul care
evalueaza o expresie are ca efect plasarea n v
arful stivei a rezultatului evaluarii acesteia si avansarea pointerului.
Pentru definirea acesteia se va folosi metoda semanticii algebrei initiale.
Toate cele 5 suporturi ale algebrei semantice, corespunzatoare neterminalelor, sunt identice si coincid cu multimea
bucatilor de program(siruri de instructiuni separate prin ;). Astfel de bucati de programe vor fi notate cu litere
grecesti.
Cele 10 operatii ale algebrei semantice, corespunzatoare productiilor sunt:
1S
2S
3S
4S ()
5S ()
6S ()
7S (,)
8S ()
9S (,)
0S ()

=
=
=
=
=
=
=
=
=
=

st x
st y
st z

; ; ld R ; Mu R ; st R

; ; ld R ; Ad R ; st R
; print

Notam cu S algebra semantica de mai sus, cu A algebra arborilor de derivare si cu C : A S unicul morfism
de algebre existent. Morfismul C este modelarea algebrica a compilatorului.
Conform metodei semanticii algebrei initiale rezulta ca C(A) este programul care evalueaza si tipareste rezultatul
pentru expresia x + y (x + y) z + z.
4.5.1

Program

Prezentam calculele care dovedesc afirmatia de mai sus.


C(a) = 8S (6S [4S (1S )]) = 1S si C(b) = 6S (4S (3S )) = 3S
Notand c = 7[ 5{9(a,6[4(2)])},b] deducem
C(c) = 7S [ 5S {9S (1S ,6S [4S (2S )])},3S ] =
7S [ 9S (1S ,2S ),3S ] =
9S (1S ,2S ) ; 3S ; ld R ; Mu R ; st R =
1S ; 2S ; ld R ; Ad R ; st R ; 3S ; ld R ; Mu R ; st R =
st x ; st y ; ld R ; Ad R ; st R ; st z ; ld R ; Mu R ; st R
Deoarece
A = 0(9[9{a, 7(4[2], c)}, b])
deducem
C(A) = 0S (9S [9S {1S , 7S (2S ,C(c))},3S ]) =
9S [9S {1S , 7S (2S ,C(c)) },3S ] ; print =
9S {1S , 7S (2S ,C(c)) } ; 3S ; ld R ; Ad R ; st R ; print =
1S ; 7S (2S ,C(c)) ; ld R ; Ad R ; st R ; 3S ; ld R ; Ad R ; st R ; print =
1S ; 2S ; C(c) ; ld R ; Mu R ; st R ; ld R ; Ad R ; st R ; 3S ; ld R ; Ad R ; st R ; print =
st x ; st y ; st x ; st y ; ld R ; Ad R ; st R ; st z ; ld R ; Mu R ;
st R ; ld R ; Mu R ; st R ; ld R ; Ad R ; st R ; st z ; ld R ; Ad R ; st R ; print
18

4.5.2

Optimizare cod

Programul de mai sus poate fi simplificat. Observam ca grupul de instructiuni st R ; ld R are efect cumulat nul
ceea ce conduce la programul
st x ; st y ; st x ; st y ; ld R ; Ad R ; st R ; st z ; ld R ; Mu R ;
Mu R ; Ad R ; st R ; st z ; ld R ; Ad R ; st R ; print

Introducere n semantica logicii ecuationale

Logica ecuationala, n varianta fara sorturi, a fost intens studiata n prima jumatate a secolului XX cand i-a fost
demonstrata completitudinea.

5.1

Ecuatii

Sa analizam conceptul de axioma asa cum apare el n algebra. De exemplu comutativitatea si asociativitatea se scriu
(xy)x?y = y?x

(xyz)x?(y?z) = (x?y)?z.

Ce sunt acestea? Sunt egalitati de doua expresii cuantificate universal prin multimea variabilelor continute n cele
doua expresii. Deci o astfel de axioma are forma

(X)l = r

unde l si r sunt elemente din algebra liber generata de multimea X de variabile. Semnul = este utilizat n loc de =,
ntre doua expresii, pentru a marca faptul ca egalitatea poate fi si falsa, fapt pentru care vom folosi denumirea de
egalitate formal
a n loc de egalitate. In cazul multisortat, cei doi membri ai unei egalitati formale trebuie sa fie

de acelas sort. Uneori scriem l =s r pentru a marca sortul comun s al celor doi membri.
Ce nseamna ca o axioma este adevarata ntr-o algebra D? Intuitiv este necesar ca rezultatul evaluarii celor doua
expresii l si r n algebra D sa fie acelasi indiferent de valorile date n D variabilelor din X. T
inand cont ca a da valori
variabilelor din X n algebra D este echivalent cu a da un morfism de la T (X) la D, aceasta idee intuitiva conduce
la:

Definitia 5.1 Axioma (X)l = r este satisfacuta n algebra D daca si numai daca pentru orice morfism
h : T (X) D este adevarata egalitatea h(l) = h(r).

Daca (X)l = r este satisfacuta n algebra D, vom folosi notatia

D |= (X)l = r

si mai spunem ca algebra D satisface (X)l = r.

In continuare vom folosi pentru (X)l =


r termenul de ecuatie n locul celui de axioma, pentru a ne conforma cu
terminologia internationala.
In plus vor intra n joc si asa zisele ecuatii conditionate. De exemplu

(xyz)(x y = x z y = z)
ceea ce corespunde axiomei de simplificare la stanga care este adevarata n orice grup sau n orice monoid liber.

5.2

Ecuatii conditionate

In logica ecuationala o axioma poate fi o implicatie


a1 = c1 , a2 = c2 , . . . , an = cn a = c
unde ipoteza este o conjunctie de egalitati formale si concluzia o egalitate formala. Toata implicatia este cuantificata
universal, fapt care nu apare scris mai sus. In acest cadru o axioma, numita n continuare si ecuatie conditionata a
logicii ecuationale, poate fi scrisa sub forma

(X) a =s c if H
19

unde a si c sunt elemente de acelasi sort s, iar H este o multime finit


a de egalitati formale din algebra liber generata
de multimea X de variabile. Ipoteza implicatiei este data de conjunctia tuturor egalitatilor formale din multimea H.
Pentru a verifica daca o algebra D satisface axioma de mai sus se dau valori arbitrare variabilelor din X n D fapt
ce poate fi facut printr-o functie arbitrara f : X D sau echivalent printr-un morfism arbitrar h : T (X) D.
Apoi se evalueaza expresiile din H pentru a se verifica daca rezultatul evaluarii conduce la egalitati adevarate, caz

n care trebuie ca hs (a) = hs (c). Deci -algebra D satisface ecuatia conditionata (X)a =s c if H fapt notat prin

D |= (X) a =s c if H
daca si numai daca

(h : T (X) D) {(u =t v H)ht (u) = ht (v)} implica hs (a) = hs (c).

Credem ca este bine sa mentionam din nou diferenta esentiala ntre semnele =s si =, diferenta care va fi mentinuta

constant pe parcursul ntregului text. Egalul peste care s-a pus un cerculet (=s ) indica o egalitate formala care poate
fi adevarata sau falsa. Egalul = are semnificatia uzuala indic
and deobicei o egalitate adevarata.
Formalizam cele de mai sus n definitiile urmatoare.
Definitia 5.2 O ecuatie conditionat
a este

(X)l =s r if H
unde X este o multime S-sortata de variabile, l si r sunt doua elemente de sort s din T (X) iar H o multime finit
a
de egalitati formale din T (X).
O ecuatie conditionata n care H = devine neconditionata si este numita pe scurt ecuatie. In acest caz scriem doar

(X)l =s r n loc de (X)l =s r if .

Definitia 5.3 Algebra D satisface ecuatia conditionata (X)l =s r if H, fapt notat prin

D |= (X)l =s r if H

daca pentru orice morfism h : T (X) D pentru care hs (u) = hs (v) pentru orice u =s v H, are loc egalitatea
hs (l) = hs (r).
In cele ce urmeaza indicele din |= va fi omis. El va fi mentionat atunci cand este pericol de confuzie.

Observam ca D |= (X)l =s r daca si numai daca hs (l) = hs (r) pentru orice morfism h : T (X) D.

5.3

algebre

In continuare fixam o multime de ecuatii conditionate, numite axiome.


Definitia 5.4 Spunem ca algebra D satisface sau ca D este o -algebra si scriem D |= daca D satisface toate
ecuatiile conditionate din .
Un morfism de -algebre ntre doua -algebre se numeste morfism de -algebre sau mai scurt -morfism.

CONGRUENT
E, ALGEBRE CAT,
PROIECTIVITATE

Daca f : A B este o functie relatia Ker(f ) definita prin


Ker(f ) = {(a, b) A A : f (a) = f (b)}
se numeste echivalenta nuclear
a a lui f , sau mai pe scurt nucleul lui f.
Echivalenta nucleara a unei functii este o relatie de echivalenta. In cazul multisortat nucleul este luat pe componente, adica pentru fiecare sort n parte.

20

6.1

Congruente

O relatie de echivalenta ntr-o -algebra (As , A ) este de fapt o familie de relatii de echivalente, cate una pentru
fiecare multime As . O congruenta este o relatie de echivalenta care este compatibila cu operatiile algebrei. De fapt
compatibilatea trebuie ceruta numai pentru operatiile cu argumente caci pentru o constanta A A rezulta din
reflexivitate.
Definitia 6.1 O congruenta = {s }sS n -algebra (As , A ) este o relatie de echivalenta cu proprietatea pentru
orice s1 s2 . . . sn S , pentru orice s S, pentru orice s1 s2 ...sn ,s , daca ai si bi n Asi pentru orice 1 i n,
atunci
A (a1 , a2 , . . . , an ) s A (b1 , b2 , . . . , bn ).
Cea mai mica congruenta este relatia de egalitate. Cea mai mare congruenta este relatia totala.
Propozitie 6.2 Dac
a h : A B este un -morfism, atunci Ker(h) este o congruenta
.
Demonstratie: Fie s1 s2 . . . sn S , s S si s1 s2 ...sn ,s . Presupunem c
a ai Ker(hsi ) bi n Asi pentru orice
1 i n. Rezult
a c
a hsi (ai ) = hsi (bi ) pentru orice 1 i n. Prin urmare
hs (A (a1 , a2 , . . . , an )) = B (hs1 (a1 ), hs2 (a2 ), . . . , hsn (an )) =
B (hs1 (b1 ), hs2 (b2 ), . . . , hsn (bn )) = hs (A (b1 , b2 , . . . , bn ))
asadar A (a1 , a2 , . . . , an ) Ker(hs ) A (b1 , b2 , . . . , bn ). Deci Ker(h) este congruenta
.
Propozitie 6.3 Orice intersectie de congruente este tot o congruenta
.
Demonstratie: Fie {k }kK o multime de congruente si
\
=
k .
kK

Prob
am c
a este congruenta
.
a c
a ai k bi
Fie s1 s2 . . . sn S , fie s S, fie s1 s2 ...sn ,s si ai bi n Asi pentru orice 1 i n. Rezult
pentru orice k K si orice 1 i n.
Pentru orice k K deoarece k este congruenta
, fiindc
a ai k bi n Asi pentru orice 1 i n deducem
A (a1 , a2 , . . . an ) k A (b1 , b2 , . . . , bn ).
Deci
A (a1 , a2 , . . . an ) A (b1 , b2 , . . . , bn ).

6.2
6.2.1

Algebre c
at
Proprietatea de universalitate a multimii c
at.

Propozitie 6.4 Fie o relatie de echivalenta n multimea A. Fie A/ multimea c


at si : A A/ surjectia
natural
a de factorizare. Pentru orice functie f : A B
dac
a Ker(f ), atunci exist
a o unic
a functie f # : A/ B cu proprietatea ; f # = f.
Demonstratie: Definim functia f # pentru orice a A prin
f # ((a)) = f (a).
Definitia este corecta deoarece b a implica, folosind ipoteza Ker(f ), ca bKer(f )a, adica f (a) = f (b).
Egalitatea din enunt ; f # = f rezulta direct din definitie.
Unicitatea rezulta din surjectivitatea functiei de factorizare. Fie g : A/ B o functie cu proprietatea
; g = f. Rezulta ca pentru orice a A
g((a)) = f (a).
Prin urmare g((a)) = f # ((a)) pentru orice a A. Deoarece orice element din A/ este de forma (a) cu a A
rezulta ca g = f # .

21

6.2.2

Proprietatea de universalitate a algebrei c


at.

Fie (As , A ) o -algebra si o congruenta. Definim operatiile algebrei cat


A/ = ({As / }sS , A/ )
pentru orice s1 s2 . . . sn S , s S, s1 s2 ...sn ,s si ai Asi pentru orice 1 i n prin
A/((a1 ), (a2 ), . . . , (an )) = (A (a1 , a2 , . . . , an )).
Trebuie sa probam corectitudinea acestei definitii. Cu notatiile de mai sus presupunem pentru orice 1 i n ca
bi Asi si (ai ) = (bi ). Cu aceste ipoteze este suficient sa probam ca (A (a1 , a2 , . . . , an )) = (A (b1 , b2 , . . . , bn )).
Pentru orice 1 i n din (ai ) = (bi ) deducem ai bi . Deoarece este congruenta deducem A (a1 , a2 , . . . , an )
A (b1 , b2 , . . . , bn ), deci (A (a1 , a2 , . . . , an )) = (A (b1 , b2 , . . . , bn )).
Teorema 6.5 Pentru orice morfism de -algebre f : A B dac
a Ker(f ), atunci exist
a un unic morfism de
-algebre f # : A/ B cu proprietatea ; f # = f.
Demonstratie:
Din proprietatea de universalitate a multimii cat deducem existenta unei unice functii
f # : A/ B cu proprietatea ; f # = f. Observam ca fs# ((a)) = fs (a) pentru orice s S si a As . Mai
trebuie sa demonstram ca functia f # este un morfism de -algebre.
Fie s1 s2 . . . sn S , s S, s1 s2 ...sn ,s si ai Asi pentru orice 1 i n. Observam ca
fs# (A/((a1 ), (a2 ), . . . , (an ))) = fs# ((A (a1 , a2 , . . . , an ))) = fs (A (a1 , a2 , . . . , an )) =
B (fs1 (a1 ), fs2 (a2 ), . . . , fsn (an )) = B (fs#1 ((a1 )), fs#2 ((a2 )), . . . , fs#n ((an ))).
Deci f # este morfism de -algebre.
Sa se arate ca pentru orice -morfism h : A B algebrele A/Ker(h) si h(A) sunt izomorfe.

6.3

Proiectivitatea algebrelor libere

Definitia 6.6 O -algebra P se numeste proiectiv


a daca pentru orice -morfism cu toate componentele surjective
e : A B si pentru orice morfism f : P B exista un morfism g : P A astfel ncat g; e = f.
Propozitie 6.7 Orice -algebr
a liber
a este proiectiv
a.
Demonstratie: Fie X o multime S-sortata de variabile. Vom proba ca -algebra T (X) liber generata de X este
proiectiva.
Fie A, B doua -algebre si e : A B un morfism cu toate componentele surjective. Daca f : T (X) B este
un morfism oarecare trebuie sa demonstram ca exista un morfism g : T (X) A astfel ncat g; e = f .
Pentru a defini morfismul g este suficient sa dam actiunea lui pe variabile.
Fie s S si x Xs . Deoarece es este surjectiv, deci exista ax As astfel ncat fs (x) = es (ax ). Definim g
ca fiind unicul morfism cu proprietatea ca gs (x) = ax pentru orice s S si orice x Xs . Este evident faptul ca
(g; e)s (x) = fs (x) pentru orice s S si orice x Xs . Deoarece morfismele g; e si f coincid pe generatorii algebrei
libere T (X) rezulta ca g; e = f si demonstratia este ncheiata.
Comentariu. Faptul ca gs (x) poate fi ales arbitrar n e1
a unicitatea lui g.
s ({fs (x)}) nu garanteaz

Semantica logicii ecuationale

Privind multimea de ecuatii conditionate ca o multime de axiome, ne intereseaza toate consecintele ei semantice.
Prin consecinta semantica se ntelege orice fapt adevarat n orice algebra. Logica ecuationala este interesata de
consecintele semantice care sunt scrise ca egalitati formale.

Prin urmare ecuatia (X)l =s r este o consecinta semantica a lui , denumita si tautologie sau propozitie valabila
sau valida a logicii ecuationale, daca ea este adevarata n orice algebra, adica hs (l) = hs (r) pentru orice algebra
M si pentru orice morfism h : T (X) M.
Pentru conceptul de consecinta semantica folosim notatia

|= (X)l =s r.
22

Sintetizand observam ca

|= (X)l =s r daca si numai daca (h : T (X) M |= )hs (l) = hs (r).


Conceptul poate fi generalizat nlocuind algebra libera T (X) cu o algebra arbitrara A. Prin urmare pentru
elementele l si r de sort s din algebra A putem scrie

|= l =s r daca si numai daca (h : A M |= )hs (l) = hs (r).


Pentru orice algebra A = (As , A ) notam cu

Sen(A) = {l =s r|s S, l, r As }
multimea propozitilor sale. Propozitiile sunt de fapt egalitati formale care pot fi adevarate sau false.
Pentru orice algebra A, putem identifica Sen(A) cu produsul cartezian A A. Poate cea mai buna reprezentare
a unei propozitii din A este un triplet format dintr-un sort s si doua elemente de sort s din A.
Avand n vedere cele de mai sus nu vom mai face nici o distinctie ntre relatiile lui A si multimile de egalitati
formale ntre elementele lui A.

7.1

Congruenta semantic
a

Vom lucra ntr-o -algebra A si vom grupa ntr-o relatie toate tautologiile(propozitiile valide) logicii ecuationale din
algebra A.
Fie A
ia pe A definita prin
relat
a A
a si numai daca (h : A M |= )hs (a) = hs (c).
c dac
Daca nu exista pericol de confuzie vom prefera sa scriem n loc de A
.
Observam ca
\
=
{Ker(h) | h : A M |= }.

Deoarece nucleul unui morfism este o relatie de congruenta si deoarece orice intersectie de relatii de congruente este
o relatie de congruenta, deducem ca este o relatie de congruenta.
este numita congruent
a semantic
a.

Definim regula de deductie a substitutiei utilizata at


at n logica ecuationala cat si n rescrierea termenilor.
Sub

Pentru orice (X) l =s r if H si orice morfism h : T (X) A

(u =t v H)ht (u) =t ht (v) implica hs (l) =s hs (r).

Definitia 7.1 O submultime M a lui Sen(A) se numeste nchis


a la substitutie sau nchisa la Sub daca pentru

orice (X)l =s r if H n si orice h : T (X) A

(u =t v H)ht (u) =t ht (v) M implica hs (l) =s hs (r) M.


Observam ca intersectia unor multimi nchise la substitutie este tot o multime nchisa la substitutie.
Lem
a 7.2 Pentru orice morfism f : A M |= , Ker(f ) este nchis la Sub .

Demonstratie: Fie (X)l =s r if H n si h : T (X) A un morfism cu proprietatea ht (u) Ker(f ) ht (v)

pentru orice u =t v H. Prin urmare (h; f )t (u) = (h; f )t (v) pentru orice u = v H. Deoarece h; f : T (X)

M |= (X)l =s r if H rezulta ca (h; f )s (l) = (h; f )s (r), deci hs (l) Ker(f ) hs (r).
Propozitie 7.3 Congruenta semantic
a este nchis
a la substitutie.
Demonstratie: Congruenta semantica este o intersectie de congruente nchise la substitutie. Deoarece o intersectie
de congruente nchise la substitutii este o congruenta nchisa la substitutii rezulta ca este o congruenta nchisa
la substitutie.
Propozitie 7.4 Dac
a este o congruenta
nchis
a la substitutii, atunci A/ |= .
23

Demonstratie: Notam cu : A A/ morfismul de factorizare canonic.

Fie (X)l =s r if H n . Fie h : T (X) A/ un morfism astfel ncat ht (u) = ht (v) pentru orice u =t v H.
Deoarece orice algebra libera este proiectiva rezulta ca T (X) este algebra proiectiva, prin urmare exista un morfism

f : T (X) A astfel ncat f ; = h. Pentru orice u =t v H deoarece t (ft (u)) = t (ft (v)) deducem ft (u) ft (v).
Deoarece este o congruenta nchisa la substitutii obtinem fs (l) fs (r). Prin urmare s (fs (l)) = s (fs (r)), de
unde hs (l) = hs (r).
Propozitie 7.5 Congruenta semantic
a este cea mai mic
a congruenta
nchis
a la substitutie.
Demonstratie: Fie o congruenta nchisa la substitutie. Conform propozitiei 7.4 A/ |=
Deoarece
\
=
{Ker(h) | h : A M |= }.

rezulta incluziunea

Ker(h)
pentru orice morfism h : A M |= }.
Deoarece morfismul de factorizare canonic de la A la A/ este un astfel de morfism si nucleul lui este deducem
.

7.2

??

Fie A factorizarea lui A prin congruenta si fie : A A morfismul cat.


Teorema 7.6 A |=
Demonstratie: Se aplica propozitiile 7.3 si 7.4.
Teorema 7.7 Pentru orice -algebr
a B si pentru orice morfism h : A B exist
a si este unic un morfism
h# : A B astfel nc
at ; h# = h.
Demonstratie: Este suficient sa aratam ca a c implica h(a) = h(c) si sa aplicam proprietatea de universalitate
a algebrei cat. Intr-adevar a c implica h(a) = h(c) deoarece h : A B |= .
Corolar 7.8 Dac
a A este -algebr
a initial
a, atunci A este -algebr
a initial
a.
Corolar 7.9 Pentru orice signatur
a si pentru orice multime de ecuatii conditionate exist
a o
-algebr
a initial
a.
Demonstratie: Se foloseste existenta algebrei initiale si corolarul precedent.

7.3

Problema program
arii prin rescriere

Principala problem
a este : poate o masin
a s
a demonstreze c
a a c?.
Se stie ca n unele cazuri rescrierile ne dau o solutie.

TIPURI ABSTRACTE de DATE

Am vazut n lectiile precedente ca orice signatura determina prin algebra sa initiala un tip abstract de date. Tipul
abstract de date al numerelor naturale a fost determinat de signatura formata din constanta 0 si operatia unara
cunoscuta sub numele de succesor.
Acum am pus n evidenta un instrument mai puternic deoarece orice signatura mpreuna cu o multime de
ecuatii conditionate determina prin -algebra initiala, a carei existenta am dovedit-o mai sus, un tip abstract de
date.

24

8.1

Tipul abstract al numerelor naturale - continuare

Consideram signatura cu un singur sort nat, o singura constanta de sort nat si o singura operatie unara cu argument
si rezultat de sort nat:
sort nat .
op 0 : nat .
op s : nat nat .
Elementele algebrei initiale sunt
0, s(0), s(s(0)), s(s(s(0))), s(s(s(s(0)))), ...
si ele reprezinta numerele naturale 0 1 2 3 4 ...
Propozitie 8.1 Algebra (N, 0N , sN ) definit
a prin: N este multimea numerelor naturale, 0N este num
arul natural
zero si sN (n) = n + 1 pentru orice num
ar natural n; este initial
a. (vezi si propozitia 3.6)
Propozitia anterioara ne arata cum pot fi definite numerele naturale prim metoda algebrei initiale ca tip abstract
de date.
Deocamdata prin signatura de mai sus calculatorul nvata numerele naturale dar nu stie nca sa calculeze. Sa-l
nvatam deocamdata sa adune si sa nmulteasca.
Adunarea poate fi introdusa prin declaratia
op + : nat nat nat .
dar aceasta, singura, nu face decat sa strice ceea ce am construit deja. Deoarece nu stie sa adune calculatorul
interpreteaza de exemplu 0 + 0 ca un nou element diferit de 0, ceea ce evident nu dorim.
La cele de mai sus adaugam prea cunoscutele axiome ale lui Peano.
op + : nat nat nat .
var X Y : nat .
eq X + 0 = 0 .
eq X + s(Y) = s(X+Y) .
Inmultirea este introdusa prin
op * : nat nat nat .
eq X * 0 = 0 .
eq X * s(Y) = (X*Y) + X .
Parantezele din ultimul r
and sunt puse pentru ca masina sa nteleaga ca nmultirea se efectueaza inaintea adunarii.
Exista metode mai eficiente care fac masina sa nteleaga acest fapt, dar acesta nu este scopul prezentului text. In
demonstratia de mai jos nu mai punem aceste paranteze deoarece textul nu se mai adreseaza calculatorului.
Trebuie sa mentionam ca egalitatiile de mai sus sunt folosite n dou
a moduri:
a) ca ecuatii care mpreuna cu signatura de patru operatii formeaza o multime pentru a defini o structura
algebrica si
b) ca reguli de rescriere n timpul executiei programelor, adica se aplica numai de la stanga la dreapta.
Propozitie 8.2 Algebra N = (N, 0N , sN , +N , N ) este -algebr
a initial
a.
Demonstratie: Fie A = (A, OA , sA , +A , A ) o -algebra. Mentionam ca algebra A satisfac ecuatiile din , adica
1)
2)
3)
4)

a +A 0A = a pentru orice a din A,


a +A sA (b) = sA (a + b) pentru orice a, b din A,
a A 0A = 0A pentru orice a din A,
a A sA (b) = a A b +A a pentru orice a, b din A.

Vom proba ca exista un unic morfism de -algebre de la N la A.


Sa ncepem cu unicitatea. Daca h : N A este un -morfism, atunci h : (N, 0N , sN ) (A, 0A , sA ) este
morfism prin urmare coincide cu unicul morfism dat de propozitia de mai sus.

25

Pentru a demonstra existenta nu avem decat o singura sansa si anume sa dovedim ca unicul morfism
h : (N, 0N , sN ) (A, 0A , sA ) este si morfism de -algebre. Reamintim ca
h(0N ) = 0A si pentru orice n numar natural h(n + 1) = sA (h(n)).
Probam ca h(n +N m) = h(n) +A h(m) prin inductie dupa m
h(n +N 0N ) = h(n) = h(n) +A 0A = h(n) +A h(0N ) si
h(n+N (m+1)) = h(sN (n+N m)) = sA (h(n+N m)) = sA (h(n)+A h(m)) = h(n)+A sA (h(m)) = h(n)+A h(m+1).
Probam ca h(n N m) = h(n) A h(m) prin inductie dupa m
h(n N 0N ) = h(0N ) = 0A = h(n) A 0A = h(n) A h(0N ) si
h(n N (m + 1)) = h(n N m +N n) = h(n N m) +A h(n) = (h(n) A h(m)) +A h(n) = h(n) A sA (h(m)) =
h(n) A h(m + 1).
Propozitia anterioara demonstreaza corectitudinea definitiei de mai sus. Deoarece algebra N este initiala rezulta
ca ea este izomorfa cu -algebra initiala, deci specificatia de mai sus caracterizeaza, prin -algebra sa initiala, tipul
de date al numerelor naturale.
Cred ca este util sa mentionam aici ca dat un tip de date nu este suficient sa gasim o structura algebrica care sa-l
defineasca ca tip abstract de date. De exemplu stim din algebra ca numerele naturale formeaza un semiinel initial.
Caracterizarea numerelor naturale ca semiinel initial nu ne multumeste deoarece axiomele conceptului de semiinel
nu ne dau un program(calculatorul este incapabil sa faca operatii cu numerele naturale folosind numai axiomele
semiinelului). Axiomele lui Peano dau un program n programarea prin rescriere.

26

` la MOISIL
TEORII DEDUCTIVE A

Fie E o multime de propozitii. O regul


a de deductie pe E este o pereche (H, e) unde H este o submultime finit
aa
lui E (si se numeste ipoteza regulii) si e E (si se numeste concluzia regulii ). Poate mai sugestiv o regula (H, e)
ar fi trebuit scrisa H e deoarece semnificatia ei este propozitia e este o consecinta a propozitiilor din H. Mai
mentionam ca n cazul particular H = regula (, e) spune ca e este o axioma.
O submultime D a lui E se numeste nchis
a la regula (H, e) daca H D implica e D. In acest caz se mai
spune ca regula (H, e) este corecta pentru D deoarece regula nu ne scoate din D.
Fie R o multime de reguli de deductie. O submultime D a lui E se numeste inchisa la R daca si numai daca D
este inchisa la orice regula din R.
Definitia nchiderii la substitutie, data n sectiunea 7.1, este un caz particular al definitiei de mai sus.
T
a la R.
Observatia 9.1 Dac
a Di E este inchis
a la R pentru fiecare i I, atunci iI Di este nchis
Demonstratie: Fie (H, e) R astfel
ncat H
T
H Di deducem e Di . Deci e iI Di .

iI

Di . Pentru orice i I, deoarece Di este inchisa la R si

Prin definitie [n] = {1, 2, . . . , n} pentru orice numar natural n.


O propozitie e E poate fi demonstrata folosind R daca si numai daca exista o secventa finita de propozitii
e1 e2 . . . en astfel ncat en = e si pentru orice i [n], exista (H, ei ) R astfel ncat H {e1 , e2 , . . . , ei1 }. Vom spune
ca e1 e2 . . . en este o demonstratie pentru en = e.
Observatia 9.2 Dac
a si sunt demonstratii atunci este demonstratie.
Notam cu Teor(R) multimea propozitiilor care pot fi demonstrate folosind R.
Lem
a 9.3 Fie D E. Dac
a D este inchis
a la R atunci Teor(R) D.
Demonstratie: Fie e Teor(R). Prin urmare exista o secventa finita de propozitii e1 e2 . . . en astfel ncat en = e
si pentru oricare i din [n] exista (H, ei ) R astfel ncat H {e1 , e2 , . . . , ei1 }.
Probam prin inductie ca ei D pentru orice i din [n]. Ipoteza de inductie este (k < i) ek D. Deoarece sirul
e1 e2 . . . en este o demonstratie exista (H, ei ) R cu H {e1 , e2 , . . . , ei1 }. Din ipoteza de inductie deducem H D.
Deoarece D este nchisa la R rezulta ca ei D.
In particular pentru i = n deducem e D.
Dar e a fost luata arbitrar n Teor(R), deci Teor(R) D.
Aceasta lema ne furnizeaza o metoda prin care putem arata ca toate propozitiile demonstrabile folosind R au o
anumita proprietate si anume este suficient sa aratam ca multimea propozitiilor cu proprietatea data este nchisa la
R.
Teorema 9.4 Teor(R) este cea mai mic
a multime(n raport cu ) care este nchis
a la R.
Demonstratie: Demonstram ca Teor(R) este nchisa la R. In acest scop presupunem (H, e) R, unde H =
{f1 , . . . , fn } si H Teor(R). Pentru orice i [n] din fi Teor(R) deducem existenta unei demonstratii i fi
unde i este un sir de propozitii din E. Atunci 1 f1 . . . n fn este o demonstratie deoarece este o concatenare
de demonstratii si pentru ca ({f1 , . . . , fn }, e) R deducem ca 1 f1 . . . n fn e este o demonstratie pentru e. Deci
e Teor(R). Rezulta ca Teor(R) este nchisa la R. Din lema 9.3 rezulta ca Teor(R) este cea mai mica n sensul
incluziunii care este nchisa la R.

27

10

ECUAT
LOGICA
IONALA

Fie o multime de ecuatii conditionale si o -algebra A fixata.


Multimea propozitiilor adevarate, tautologiile, din A este chiar congruenta semantica

= {a =s b Sen(A) : (M |= )(f : A M )fs (a) = fs (b)}.


Conform traditiei mai scriem

|= a =s b daca si numai daca a b


Se cauta o multime corecta si completa de reguli de deductie pentru A
.

10.1

Necesitatea utiliz
arii cuantificatorilor n ecuatii

Vom ilustra printr-un exemplu necesitatea utilizarii cuantificatorilor n ecuatiile logicii ecuationale multisortate.
Fie signatura S = {a, bool} si = {g, F, T }. Rangurile simbolurilor de operatii sunt date prin desenul urmator :
F
bool

T
unde se vede ca sortul rezultat al celor trei simboluri de operatie g, F si T este bool; operatiile F si T nu au argumente
si g are un singur argument de sort a.
Vom lucra cu doua algebre.
algebra initiala este I = (, {F, T }; Ig , IF , IT ) unde F 6= T ; IF = F , IT = T si Ig : {F, T } este functia
incluziune.
Pentru orice variabila x de sort a, -algebra liber generata de aceasta variabila T ({x}, ) are suporturile {x}
pentru sortul a si {g(x),F,T} pentru sortul bool.

Are loc relatia I |= F = T ? Sau mai intuitiv: este egalitatea formala F = T adevarata n algebra I? Vom
arata ca raspunsul depinde de algebra libera n care este scrisa egalitatea.
Sunt posibile cel putin doua variante.
a

1. I |= ()T = F daca si numai daca pentru orice morfism h : I I, hbool (F ) = hbool (T ),


ceea ce este fals deoarece hbool (F ) = F 6= T = hbool (T ).

2. I |= (x)T = F daca si numai daca pentru orice morfism h : T ({x}, ) I, hbool (F ) = hbool (T ),
ceea ce este adev
arat deoarece nu exista nici un morfism h : T ({x}, ) I.

Am aratat ca I |= ()T = F este falsa si ca I |= (x)T = F este adevarata. Daca omitem cuantificatorii

obtinem: I |= T = F este falsa si I |= T = F este adevarata.

Contradictia obtinuta prin omiterea cuantificatorilor din fata egalitatii formale F = T arata ca n logica ecuationala
multisortata prezenta cuantificatorilor n ecuatii este necesara.
In multe cazuri, de exemplu n limbajele de programare PROLOG, OBJ, Maude, CafeOBJ, etc cuantificatorii
din fata ecuatiilor sunt omisi dar se presupune implicit ca ecuatiile sunt cuantificate prin multimea variabilelor care

apar n ecuatie. Egalitatea formala T = F este implicit interpretata ()T = F .

10.2

Punctul de vedere local

Fixam o algebra A si lucram cu propozitii din Sen(A). Acesta este punctul local de vedere al logicii ecuationale.
Cazul n care ne intereseaza propozitii din algebre diferite este numit global dar va fi putin folosit n acesta carte. In

cazul global o propozitie din D va fi scrisa (D)a =s c n loc de a =s c. Notatia fara cuantificatori folosita n cazul
local nu contrazice ceea ce am scris despre necesitatea utilizarii cuantificatorilor n ecuatii. Pur si simplu nu scriem
cuantificatorul pentru ca fix
and algebra A el va fi mereu acelasi (A) si deci l stim chiar daca nu-l vedem scris.
O alta idee pe care dorim sa o subliniem este folosirea unei algebre arbitrare A n locul unei algebre libere.
Principalele rezultate privind rescrierile, care se refera at
at la rescrierile de termeni cat si la rescrierile modulo
ecuatii, raman valabile n acest cadru mai general. Aceasta prezentare unitara a diverselor tipuri de rescriere este
de fapt contributia autorului la modernizarea lectiilor despre rescriere. Exist
a n lume trei carti privind rescrieriile
[?, ?, ?]. Nici una nu prezinta stilul local.

Mentionam ca algebra A nu are legatura cu algebra T (X) folosita n vreo axioma (X)l =s r if H din .
Mentionam si faptul ca n axiome diferite putem folosi algebre libere diferite. Aceasta corespunde cazului practic, de
exemplu scriem comutativitatea xy = yx ntr-o algebra libera cu doi generatori x si y iar asociativitatea (xy)z = x(yz)
ntr-o algebra libera cu trei generatori x, y si z.
28

10.3

Reguli de deductie, corectitudine

Notam cu RE multimea urmatoarelor reguli de deductie pentru logica ecuationala multisortata:


R
S
T
C
Sub

a =s a

a =s b implica b =s a

a =s b si b =s c implica a =s c
Pentru orice s1 s2 ...sn ,s :

ai =si bi pentru 1 i n implica A (a1 , a2 , . . . , an ) =s A (b1 , b2 , . . . , bn ).

Pentru orice (X) l =s r if H si pentru orice h : T (X) A

ht (u) =t ht (v) pentru orice u =t v H implica hs (l) =s hs (r)

Conform traditiei notam prin a =s b faptul ca egalitatea formala a =s b este demonstrabila cu regulile de mai sus.
Observatia 10.1 Observ
am c
a o multime de egalit
ati formale este nchis
a la regula R dac
a si numai dac
a este o
relatie reflexiv
a.
Din aceasta cauza R este numita regula reflexivitatii.
Observatia 10.2 Observ
am c
a o multime de egalit
ati formale este nchis
a la regula S dac
a si numai dac
a este o
relatie simetric
a.
Din aceasta cauza S este numita regula simetriei.
Observatia 10.3 Observ
am c
a o multime de egalit
ati formale este nchis
a la regula T dac
a si numai dac
a este o
relatie tranzitiv
a.
Din aceasta cauza T este numita regula tranzitivitatii.
Observatia 10.4 Observ
am c
a o multime de egalit
ati formale este nchis
a la regula C dac
a si numai dac
a este o
relatie compatibil
a cu toate operatiile algebrei A.
Din aceasta cauza C este numita regula compatibilitatii cu operatiile din .
Teorema 10.5 Regulile de deductie RE sunt corecte pentru .
Demonstratie: Deoarece este congruenta rezulta ea este nchisa la primele patru reguli, prin urmare ele
sunt corecte pentru . Corectitudinea ultimei reguli rezulta din nchiderea congruentei semantice la substitutii n
conformitate cu propozitia 7.3.

Corolar 10.6 a =s b implic


a |= a =s b.

Demonstratie: Congruenta semantica, adica multimea egalitatilor formale cu proprietatea |= a =s b, este nchisa
la RE conform teoremei 10.5
Multimea egalitatilor formale demonstrabile, adica multimea egalitatilor formale cu proprietatea

a =s b, este cea mai mica multime nchisa la RE conform teoremei 9.4.

Prin urmare multimea egalitatilor formale cu proprietatea a =s b este inclusa n multimea egalitatilor formale

cu proprietatea |= a =s b, de unde rezulta concluzia.

10.4

Completitudine

Pentru orice s S si a, b As se defineste relatia in A prin:

a b a =s b.
Deoarece regulile R, S si T sunt n RE deducem ca este nchisa la R, S si T deci este o echivalenta. Deoarece
C este n RE rezulta ca este nchisa la C deci este congruenta. Mai mult, deoarece Sub este n RE rezulta
ca este nchisa la substitutii.
Fie A catul lui A prin .
Observatia 10.7 A |=
29

Demonstratie: Deoarece este nchisa la substitutii, aplicand propozitia 7.4 rezulta concluzia.

Teorema 10.8 Teorem


a de completitudine: |= a =s b implic
a a =s b.
Demonstratie: Deoarece congruenta este nchisa la substitutii si conform propozitiei 7.5 congruenta semantica
este cea mai mica congruenta nchisa la substitutii rezulta incluziunea
.

Prin urmare |= a =s b implica a =s b.


In concluzie congruenta si congruenta semantica coincid. Prin urmare algebra A coincide cu cea introdusa
ntr-un mod numai aparent diferit n sectiunea ??, teoremele 7.6 si 7.7. Proprietatea de universalitate a algebrei A
demonstrata atunci, teorema 7.7, ram
ane adevarata si n noul context.
Urmatorul pas dupa o teorema de completitudine care ne asigura existenta unei demonstratii pentru orice tautologie este de a gasi aceste demonstratii. Informaticienii sunt ceva mai pretentiosi deoarece doresc ca aceste demonstratii
sa fie gasite de un calculator. Pentru acest scop rescrierea este foarte utila.

11

RESCRIERE LOCALA

Rescrierile sunt un fapt pe care-l nt


alnim din primii ani de scoala. De exemplu n sirul de egalitati
2 (3 + 4) = 2 7 = 14
facem doua rescrieri(nlocuiri): 3+4 esre rescris n 7 si apoi 2 7 este rescris n 14. Aceste rescrieri sunt permise de
regulile adunarii si nmultirii. Partea expresiei care ramane neschimbata deoarece rescrierea are loc n interiorul ei
se numeste context. La prima rescriere contextul este 2 , unde este un semn special care arata locul n care se
face rescrierea. Deoarece a doua rescriere se face la v
arf contextul este .
De obicei rescrierile se fac de la expresii mai complicate spre expresii mai simple. Rescrierea lui 3+4 n 7 este
ceva firesc, pe cand rescrierea lui 7 n 3+4 este ceva artificial. Dece 3+4 si nu 2+5? Prin urmare spre deosebire de
egalitate care este simetrica, rescrierea nu este simetric
a.
Deoarece se doreste ca rescrierile sa fie facute de calculator, practica programarii ne da un argument foarte
puternic mpotriva simetriei. Simetria este o regula care conduce la neterminarea programelor, deoarece dupa ce am
rescris a n b putem rescrie pe b n a, pe a n b si asa mai departe.
Eliminarea simetriei dintre regulile de deductie este principala diferenta dintre rescriere si calculul cu egalitati
eflectat de logica ecuationala. Deoarece eliminarea simetriei duce la pierderea completitudinii, simetria va trebui
nlocuita cu altceva pentru a reobtine completitudinea.

11.1

Preliminarii

Signatura , multimea de axiome si algebra A n care se fac rescrierile(localizare) sunt fixate.


Fie X o multime Ssortata de variabile si T (X) algebra liber generata de X. Pentru orice x X si T (X),
vom nota cu
nrx () numarul de aparitii ale lui x n .
Observam ca nrx (x) = 1, nrx (y) = 0 pentru orice y X {x} si
nrx ((e1 , e2 , . . . , ek )) = nrx (e1 ) + nrx (e2 ) + . . . nrx (ek ).
Fie A o algebra, o variabila de sort s,
/ As . Consideram algebra liber generata de A {}, si anume
T (A {}). Vom presupune fara a micsora generalitatea ca
T (A) T (A {}).
Un element c din T (A {}) se numeste context daca nr (c) = 1. Daca c = (c1 , c2 , . . . , cn ) este un context, atunci
exista un 1 i n astfel ncat ci este context si cj T (A) pentru orice j 6= i.
Pentru d As , vom nota cu d : T (A {}) A unicul morfism de algebre definit prin ( d)() = d
si ( d)(a) = a pentru orice a A. Mentionam ca restrictia lui d la T (A) este un morfism care evalueaza n
A o expresie n care elementele din A erau considerate variabile.
30

Pentru orice t din T (A {}) si a As , vom prefera sa scriem


t[a]
n loc de ( a)(t), deoarece ( a)(t) este de fapt rezultatul nlocuirii lui prin a n t si al evalarii n A al
expresiei obtinute n T (A).
Daca n t nu apare , adica t este din -algebra liber generata de A, atunci t[a] = t[d] pentru orice a, d As ,
deoarece ambele sunt egale cu evaluarea n A a lui t.
Compunerea relatiilor R A B si Q B C este relatia R; Q A C definita prin
R; Q = {(a, c) | (b B)(a, b) R si (b, c) Q}.
Compunerea relatiilor este asociativa.
Relatiile ntre elementele aceleeasi multimi A, adica partile lui A A, formeaza cu operatia de compunere un
monoid al carui element neutru este relatia de egalitate. Pentru astfel de relatii sunt definite puterile lor naturale.
Prin definitie R0 este chiar relatia de egalitate. Prin definitie
[
R =
Rn
n0

este nchiderea reflexiva si tranzitiva a relatiei R, adica R este cea mai mica relatie reflexiva si tranzitiva care
include R. Mentionam ca * este operator de nchidere n multimea partilor lui A A.

Pentru o relatie notata n loc de notatia se prefera notatia .

11.2

Inchiderea la contexte

Definitia 11.1 O relatie Q pe A se numete nchis


a la contexte daca pentru orice context c si pentru orice pereche
de elemente a, d din As , a Q d implica c[a] Q c[d].
Observam ca relatia de egalitate este nchisa la contexte.
Introducem regula de deductie
CA

a =si d implica A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) =s A (a1 , . . . , ai1 , d, ai+1 , . . . , an )


( s1 ...sn ,s ), orice 1 i n, unde aj Asj pentru orice j {1, . . . , i 1, i + 1, . . . , n} si a, d Asi .

Definitia 11.2 O relatie A A se numeste compatibil


a pe argumente cu operatiile algebrei A daca este
nchisa la CA.
Propozitie 11.3 O relatie compatibil
a pe argumente cu operatiile algebrei este nchis
a la contexte.
Demonstratie:
Se arata prin inductie structurala n T (A {}).
Pasul 0: c = . Pentru orice (a, d) Q, c[a] = a, c[d] = d, deci (c[a], c[d]) Q.
Pentru un context c = (a1 , . . . , ai1 , c , ai+1 , . . . , an ) unde c T (A {}) este un context si ai T (A)
c[a] = ( a)(c) = A (a1 [a], . . . , ai1 [a], c [a], ai+1 [a], . . . , an [a]).
La fel c[d] = A (a1 [d], . . . , ai1 [d], c [d], ai+1 [d], . . . , an [d]). Mai observam ca aj [a] = aj [d] pentru orice j 6= i.
Din ipoteza de inductie c [a] Q c [d] si tinand cont de compatibilitatea pe argumente obtinem c[a] Q c[d].

11.3

Inchiderea la preordini compatibile cu operatiile

Preordine semnifica o relatie reflexiva si tranzitiva.


Reamintim regulile de deductie n multimea egalitatilor formale ntre elementele algebrei A denumite Reflexivitate,
Tranzitivitate si Compatibilitate cu operatiile din :
R
T
C

a =s a

a =s d si d =s c implica a =s c

ai =si ci pentru orice i [n] implica

A (a1 , a2 , . . . , an ) =s A (c1 , c2 , . . . , cn ) pentru orice s1 s2 ...sn ,s

31

Remarcam ca C si R implica CA.


Reciproca CA, R si T implica C este demonstrata de lema urmatoare.
Lem
a 11.4 Fie A A o relatie tranzitiv
a si reflexiv
a n algebra A. Dac
a este compatibil
a pe argumente cu
operatiile algebrei A, atunci e compatibil
a cu operatiile, adic
a nchis
a la C.
Demonstratie: Fie s1 ...sn ,s si ai , bi Asi astfel ncat ai si bi pentru orice i [n].
Aratam ca A (a1 , . . . , an ) s A (b1 , . . . , bn ).
Daca n = 0 din reflexivitate deducem A s A .
Daca n = 1 din ipoteza CA rezulta A (a1 ) s A (b1 ).
Daca n 2 aplic
and succesiv ipoteza CA obtinem
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 ).

11.4

rescriere

Un prim pas pentru suplinirea simetriei este nlocuirea regulii substitutiei cu regula rescrierii. Vom mai folosi si
regula rescrierii n subtermeni.

Rew

Pentru orice (X) l =s r if H si orice morfism h : T (X) A

(u =t v H)(d At )ht (u) =t d si ht (v) =t d implica hs (l) =s hs (r).

SRew

Pentru orice (X) l =s r if H si orice morfism h : T (X) A

(u =t v H)(d At )ht (u) =t d si ht (v) =t d implica

c[hs (l)] =s c[hs (r)] pentru orice context c T (A {})s .

Remarcati ca SRew , rescrierea ntr-un subtermen, este o regula de deductie mai puternica decat Rew , rescrierea,
care poate fi obtinuta din SRew pentru c = .
Deasemenea Rew si regula contextului implica SRew .
Compar
and substitutia si rescrierea observam urmatoarele.
1) Rew si R implica Sub .
2) Sub , S si T implica Rew .

Probam ultima afirmatie. Fie (X) l =s r if H si un morfism h : T (X) A cu proprietatea ca pentru

orice u =s v H exista d As cu hs (u) =s d si hs (v) =s d. Pentru orice u =s v H cu S deducem d =s, hs (v)

si apoi cu T obtinem hs (u) =s hs (v). In final aplicam Sub si deducem hs (l) =s hs (r).
Pentru a rezuma desenam schema
S,T
Sub

Rew

CA

SRew

Definitia 11.5 Cea mai mica relatie nchisa la R, T, C si Rew este denumita rescriere sau mai scurt

rescriere si este notata cu = .

12
12.1

RELAT
IA DE INTALNIRE,
FORME NORMALE
Confluent
a

Definitia 12.1 O relatie pe o multime A se numeste confluent


a daca
(a, b, c A){[a b si a c] (d A)[b d si c d]}.
Observam ca orice relatie simetrica este confluenta.

32

Propozitie 12.2 Dac


a este o preordine confluent
a pe multimea A, atunci relatia definit
a prin
a b (c A)a c si b c
si denumit
a nt
alnire prin este cea mai mic
a echivalenta
pe A care include .
Demonstratie:
Deoarece din a a si a a deducem a a. Deci relatia ese reflexiva.
Simetria este evidenta.
Probam tranzitivitatea. Fie a b si b c. Observam ca exista d, e A astfel ncat a d, b d, b e si
c e. Din confluenta rezulta existenta lui f A astfel ncat d f si e f . Rezulta prin tranzitivitate ca
a f si c f , deci a c.
Pentru a dovedi ca , presupunand ca a b si observand ca b b deducem a b
Fie o relatie de echivalenta pe A care include . Probam ca include . Presupunand ca a b rezulta
existenta lui c A astfel ncat a c si b c. Deducem a c si b c, deci a b.
Observatia 12.3 Dac
a este o preordine confluent
a si compatibil
a pe o -algebr
a multisortat
a, atunci este o
congruenta
.
Demonstratie: Fie s1 s2 ...sn ,s si ai bi pentru orice i [n]. Pentru orice i [n], exista ci astfel ncat ai ci
si bi ci , prin urmare cu C deducem
A (a1 , a2 , . . . , an ) A (c1 , c2 , . . . , cn ) si A (b1 , b2 , . . . , bn ) A (c1 , c2 , . . . , cn ).
Deci A (a1 , a2 , . . . , an ) A (b1 , b2 , . . . , bn ).

12.2

Corectitudinea rescrierii pentru congruenta semantic


a

Teorema 12.4 Toate regulile de deductie de mai sus sunt corecte pentru congruenta semantic
a .
Demonstratie: Din lectia privind logica ecuationala stim ca regulile de deductie R, S, T, C si Sub sunt corecte.
Deoarece C si R implica CA deducem ca CA este corecta.
Deoarece Sub , S si T implica Rew rezulta ca Rew este corecta.
Deoarece Rew si CA implica SRew deducem ca SRew este corecta.

Corolar 12.5 = . (Corectitudinea rescrierii pentru congruenta semantic


a)
Rescrierea nu este completa pentru congruenta semantica deoarece SRew nu capteaza ntreaga forta a simetriei.

12.3

Completitudinea nt
alnirii prin recriere

Prin definitie, pentru orice s S si orice a, d As :

a d daca si numai daca exista c As astfel ncat a c si d c.


Relatia este denumita nt
alnire prin rescriere.
Propozitie 12.6 .

and
Demonstratie: Din a d deducem existenta lui c astfel ncat: a c si d c. Din aceasta utiliz
corectitudinea rescrierii fata de congruenta semantica deducem ca a c si d c deci a d.
Aceasta dovedeste corectitudinea lui n raport cu congruenta semantica. Pentru a demonstra si completitudinea

sa, adica incluziunea inversa, avem nevoie sa presupunem ca este confluenta. Folosind observatia 12.3 deducem
ca este o congruenta.

Lem
a 12.7 Dac
a este confluent
a, atunci congruenta este nchis
a la substitutie.
33

Demonstratie: Fie (X) l =s r if H si fie h : T (X) A un morfism pentru care ht (u) ht (v) pentru

orice u =t v H. Pentru orice u =t v H exista auv At cu proprietatile ht (u) auv si ht (v) auv . Deoarece

este nchisa la Rew deducem ca hs (l) hs (r). Prin urmare hs (l) hs (r).
Doarece congruenta este nchisa la substitutie deducem din propozitia 7.4 ca factorizarea lui A prin este o
algebra.

Teorema 12.8 Dac


a este confluent
a, atunci = .
Demonstratie: Folosind propozitia 12.6 mai trebuie sa demonstram doar .
Incluziunea de mai sus rezulta aplicand propozitia 7.5 congruentei care conform propozitiei precedente este
nchisa la substitutie.
In concluzie = ceea ce demonstreaza completitudinea lui .
Din punct de vedere practic aceast
a teorem
a arat
a c
a demonstrarea propozitiei a c poate fi redus
a la a demonstra
a c dac
a rescrierea este confluent
a. Prin urmare principala problem
a devine
poate o masin
a s
a demonstreze c
a a c ?

12.4
12.4.1

Forme normale
La multimi

Presupunem n continuare ca este o preordine pe multimea A.


Definitia 12.9 Elementul n A se numeste o form
a normal
a pentru relatia pe multimea A daca
(b A)(n b n = b).
In limbajul teoriei multimilor partial ordonate, o forma normala este numita element minimal. Unele texte folosesc
ireductibil sau forma canonica n loc de forma normala.
Fie N multimea elementelor din A care sunt forme normale pentru . Presupunem axioma Formei Normale
unice
FN! (a A)(! f n(a) N )a f n(a).
Observatia 12.10 Dac
a a d, atunci f n(a) = f n(d).
Demonstratie: Din ipoteza si d f n(d) deducem a f n(d), deci din unicitatea formei normale a lui a deducem
f n(a) = f n(d).
Observatia 12.11 Axioma FN! implic
a este confluent
a.
Demonstratie: Presupunem a d si a c. Deducem f n(a) = f n(d) = f n(c), deci d f n(d) si c f n(d).
Observatia 12.12 Functia f n : A N este surjectiv
a si
a d f n(a) = f n(d).
Demonstratie: Deoarece pentru orice element n n forma normala n = f n(n) rezulta surjectivitatea functiei f n.
Presupunem f n(a) = f n(d). Deoarece a f n(a) si d f n(a) deducem a d.
Presupunem a d. Fie c A astfel ncat a c si d c. Deducem f n(a) = f n(c) si f n(d) = f n(c), deci
f n(a) = f n(d).
Din punct de vedere practic aceast
a observatie arat
a c
a dac
a rescrierea are proprietatea FN! demonstrarea lui a d
este echivalent
a cu egalitatea formelor normale pentru rescriere ale lui a si d.

34

12.5

Relatii canonice

In practica pentru a verifica ca satisface axioma FN!, preferam uneori sa verificam ca satisface proprietatile de
confluenta si terminare.
Definitia 12.13 Spunem ca are proprietatea de terminare daca nu exista siruri {an } de elemente din A astfel
ncat pentru orice numar natural n sa avem an an+1 si an 6= an+1 .
Remarcam ca terminarea, concept venit din informatica, coincide cu buna fondare, concept provenit din lumea
relatiilor sau din teoria axiomatica a multimilor.
Observatia 12.14 Dac
a are proprietatea de terminare, atunci pentru orice element a din A exist
a un element n
form
a normal
a n N cu proprietatea a n.
Demonstratie: Ration
and prin absurd, a nu este n forma normala; prin urmare exista a1 A cu proprietatile
a a1 si a 6= a1 . Ration
and n continuare prin absurd, a1 nu este n forma normala; prin urmare exista a2 A cu
proprietatile a1 a2 si a1 6= a2 . Continuand acest rationament prin inductie putem construi un sir de elemente care
contrazice proprietatea de terminare.
Definitia 12.15 Daca preordinea este confluenta si are proprietatea de terminare, atunci < A, > se numeste
canonic
a.
Propozitie 12.16 Dac
a < A, > este canonic
a atunci axioma FN! este verificat
a.
Demonstratie: Unicitatea va rezulta din confluenta. Presupunand ca n si n sunt doua elemente n forma normala cu proprietatea a n si a n din confluenta exista d A astfel ncat n d si n d. Deoarece n si n n
sunt forma normala deducem ca n = d si n = d, deci n = n.
Din punct de vedere practic terminarea este necesar
a pentru a opri executia calculatorului iar confluenta este necesar
a
pentru completitudine. Aceste propriet
ati implic
a FN!. Pentru a demonstra c
a a c, adic
a a c, este suficient
conform observatiei 12.12 s
a rescriem a si c in forma lor normal
a f n(a) si f n(c) pentru ca apoi s
a verific
am egalitatea
f n(a) = f n(c).

13

RESCRIERE IN SUBTERMENI

Am vazut ca rescrierea canonica da o metoda de demonstrare automata a propozitiilor valide. Urmatoarea problema
consta n a arata cum regulile de deductie pentru rescriere pot fi utilizate n mod practic.
Teoremele din aceasta lectie explica modul n care se fac rescrierile n limbajele de programare declarativa.

13.1

Completitudinea rescrierii n subtermeni

Propozitiile ?? si 11.5 ne asigura ca rescrierea este cea mai mica preordine nchisa la SRew compatibila cu toate
operatiile din A. Teorema urmatoare ne spune ceva mai mult.
Teorema 13.1 Rescrierea este cea mai mic
a preordine din A nchis
a la SRew .
Demonstratie: Fie R cea mai mica relatie pe A care este nchisa la R, T si SRew . Din definitia lui R deducem

ca R =.
Pentru a demonstra incluziunea contrara este suficient sa aratam ca R este nchisa n C.
Dar R este tranzitiva si reflexiva, deci este suficient sa aratam ca R este nchisa la CA, adica pentru fiecare
s1 ...sn ,s si ai Asi ca a R d implica
A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) R A (a1 , . . . , ai1 , d, ai+1 , . . . , an ).
Demonstram ca multimea
D = {a R d | s1 s2 ...sn ,s ; (aj Asj )A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) R A (a1 , . . . , ai1 , d, ai+1 , . . . , an )}
35

este nchisa la R, T si SRew . Observam ca D R .


Reflexivitatea lui D rezulta din reflexivitatea lui R .
Presupunem ca (a, u) si (u, d) sunt n D. Folosind tranzitivitatea lui R din a R u si u R d deducem a R d si
din A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) R A (a1 , . . . , ai1 , u, ai+1 , . . . , an ) si
A (a1 , . . . , ai1 , u, ai+1 , . . . , an ) R A (a1 , . . . , ai1 , d, ai+1 , . . . , an ) deducem
A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) R A (a1 , . . . , ai1 , d, ai+1 , . . . , an ). Prin urmare (a, d) D. Deci D este tranzitiva.

Probam ca D este nchisa la SRew . Fie (X)l =s r if H , un morfism h : T (X) A cu proprietatea

ca pentru orice u =t v H. exista auv At astfel ncat (ht (u), auv ) D si (ht (v), auv ) D Pentru orice context
c T (A {})s trebuie aratat ca (c[hs (l)], c[hs (r)]) D.

Deoarece R este nchisa la SRew din ht (u) R auv si ht (v) R auv pentru orice u =t v H deducem
c[hs (l)] R c[hs (r)]

c [hs (l)] R c [hs (r)]

si

unde c = (a1 , . . . , ai1 , c, ai+1 , . . . , an ) este un context.


Din c [hs (l)] = A (a1 , . . . , ai1 , c[hs (l)], ai+1 . . . , an ) si c [hs (r)] = A (a1 , . . . , ai1 , c[hs (r)], ai+1 , . . . , an ) obtinem
A (a1 , . . . , ai1 , c[hs (l)], ai+1 , . . . , an ) R A (a1 , . . . , ai1 , c[hs (r)], ai+1 , . . . , an ).
Deci (c[hs (l)], c[hs (r)]) D.
Deoarece R este cea mai mica relatie care este nchisa la R, T si SRew si D este nchisa la R, T si SRew
rezulta ca R D. Prin urmare R = D.

Probam ca R este nchisa la CA. Fie a = d n R . rezulta ca a = d este n D. Prin urmare


( s1 s2 ...sn ,s )(aj Asj )A (a1 , . . . , ai1 , a, ai+1 , . . . , an ) R A (a1 , . . . , ai1 , d, ai+1 , . . . , an ). Deci R este nchisa la CA.
Deoarece R este reflexiva, tranzitiva si nchisa la CA deducem ca R este nchisa la C.

Deoarece R este nchisa la R, T, C si Rew , iar = este cea mai mica relatie nchisa la acestea deducem ca

= R .

In concluzie R = =.

13.2

Rescriere ntr-un pas

Fie c n T (A {})s un context.

Fie (X)l =s r if H si fie h : T (X) A un morfism astfel ncat pentru orice u =t v H exista auv At

cu proprietatile ht (u) auv si ht (v) auv . Daca c[hs (l)] 6= c[hs (r)] spunem ca c[hs (l)] se rescrie ntr-un pas n
c[hs (r)] si scriem
c[hs (l)] c[hs (r)].
Propozitie 13.2 Rescrierea este nchiderea reflexiv
a si tranzitiv
a a rescrierii ntr-un pas.

Demonstratie: Fie nchiderea reflexiv-tranzitiva a rescrierii ntr-un pas.

Deoarece si este preordine deducem incluziunea .

Reciproc, deoarece este reflexiva si tranzitiva este suficient sa aratam ca este nchisa la SRew .

Fie (X) l =s r if H , h : T (X) A un morfism astfel ncat pentru orice u =t v H exista auv At cu

proprietatile ht (u) auv si ht (v) auv si c un context din A[z]. Din incluziunea deja demonstrata rezulta ca

pentru orice u =t v H exista auv At cu proprietatile ht (u) auv si ht (v) auv . Avem cazurile:

1. Daca c[h(l)] = c[h(r)] deducem din reflexivitatea lui ca c[h(l)] c[h(r)].

2. Altfel, daca c[h(l)] 6= c[h(r)], atunci c[h(l)] c[h(r)], deci c[h(l)] c[h(r)] deoarece rescrierea ntr-un pas
este inclusa n nchiderea reflexiva si tranzitiva a rescrierii ntr-un pas.
In continuare rescrierea ntr-un pas va fi notata cu sau .

13.3

Consideratii metodologice

Pentru a demonstra ca a b este suficient, n ipotezele de mai sus, sa aratam ca f ns (a) = f ns (b) si aceasta se face
prin rescrierea lui a, respectiv a lui b n formele lor normale, pentru a verifica c
a sunt egale.
Fie a As elementul de rescris. Se cauta
36

(X)l =s r if H n , h : T (X) A si un context c in A[z] astfel ncat c[hs (l)] = a.


Pentru a putea face rescrierea lui a = c[hs (l)] n c[hs (r)] este suficient sa aratam ca ht (u) ht (v) pentru orice

u =t v H. Se ntrerupe rescrierea principala pentru a face acesta verificare si n caz de reusita se rescrie a n
c[hs (r)]. In caz de nereusita se continua cautarile pentru a reajunge n situatia de mai sus. Intrucat n timpul
verificarii uneia dintre conditiile ht (u) ht (v) se rescriu at
at ht (u) cat si ht (v) n forma lor normala, fenomenul de
mai sus se poate repeta se apeleaza la mecanismul numit backtracking.
Daca contine doar ecuatii neconditionate, rescrierea ntr-un singur pas nu depinde de alte rescrieri, ca n cazul
general. Acest fapt explica de ce, n acest caz metoda backtracking nu este folosita n implementarea rescrierii.
Remarcam diferenta esentiala dintre o multime de axiome si un program. Un program este o multime de axiome
care verifica niste conditii si care sunt scrise respectand sintaxa unui limbaj de programare declarativa.
Am pus deja n evidenta niste conditii suficiente pe care trebuie sa le ndeplineasca o multime de axiome pentru
a deveni program: rescrierea generata trebuie sa fie confluenta si sa aiba proprietatea de terminare.
Practic, de exemplu, ntr-o ecuatie din este interzis ca n membrul drept sa apara o variabila care nu apare n
membrul stang, deoarece n caz contrar rescrierea nu are proprietatea de terminare. De asemenea este interzis ca

membrul stang al unei ecuatii sa fie o variabila. Daca ecuatia x =s r cu x variabila ar fi n , atunci orice expresie t
de sort s ar putea fi rescrisa t = (x t)r.
Exemplu Signatura are doua sorturi nat si bool; trei constante true, f alse de sort bool si 0 de sort nat; doua
simboluri de operatii s : nat nat si : nat nat bool. Axiomele acceptate cu x si y variabile de sort nat sunt
1. 0 x = true

2. s(x) s(y) = true if x y = true


0

GFED
@ABC
nat
M

Obool
NML
/ HIJK
_

3. s(x) 0 = f alse

true

false

Vrem sa rescriem s(s(0)) s(s(z)). Se poate aplica numai axioma 2 pentru x = s(0) si y = s(z).
Inainte de aceasta trebuie sa rescriem s(0) s(z). Se poate aplica numai axioma 2 pentru x = 0 si y = z.
Inainte de aceasta rescriem 0 z true cu axioma 1.
Deoarece am obtinut true putem rescrie s(0) s(z) true.
Deoarece prin rescrierea lui s(0) s(z) am obtinut true putem rescrie s(s(0)) s(s(z)) true.

14

UNIFICARE

In semantica operationala a limbajelor de specificatie rescrierea joaca un rol primordial. Pentru a rescrie un subtermen
a T (Y ) al termenului de rescris cu ajutorul unei reguli se pune problema identificarii lui a cu imaginea membrului
stang l T (X) al unei reguli din printr-o substitutie(morfism) de la T (X) la T (Y ). Aceasta problema de
potrivire(matching n engleza) se poate rezolva cu ajutorul algoritmului de unificare. Mai precis se cauta a se unifica
l cu a n care toate variabilele din a sunt considerate constante. Daca n l si a exista variabile comune, aceste variabile
comune pot fi nlocuite n axioma utilizata din prin variabile noi. Acest fapt nu restr
ange generalitatea deoarece
variabilele din axiome sunt cuantificate universal fapt ce permite redenumirea lor.
Toate algebrele sunt presupuse libere. Prin substitutie vom ntelege un morfism ntre doua algebre libere.

Problema unific
arii. Se dau un numar finit de egalitatii formale li =si ri si se cere gasirea unui unificator,
adica a unei substitutii u cu proprietatea u(li ) = u(ri ) pentru orice i.
De fapt multimea finita de egalitatii formale este privita ca un sistem de ecuatii. S
i de aici poate proveni denumirea
de ecuatie folosita ca un sinonim pentru egalitatile formale. Acest subcapitol descrie modul de rezolvare a unui astfel
de sistem chiar n algebra libera din care provin termenii ecuatiilor. Cuvantul unificator nseamna de fapt solutie n
algebra libera din care provin termenii ecuatiilor.
Algoritmul prezentat aici este ales pentru simplcitatea sa. Mentionam existenta unor algoritmi mai eficienti.

37

14.1

Algoritmul de unificare

Vom lucra cu doua liste: solutie si de rezolvat. Initial lista solutie este vida si lista de rezolvat contine multimea
ecuatiilor de unificat.
Algoritmul de unificare consta n executia nedeterminista a urmatorilor trei pasi.

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 nlocuieste cu ecuatiile a1 = b1 , a2 = b2 , ..., an = bn ,

3. Elimin
a. Orice ecuatie din lista de rezolvat, de forma x = t sau t = x n care x este o variabila care nu apare

n t este mutata sub forma x = t n lista solutie. In toate celelalte ecuatii x se substitue cu t.
Algoritmul este oprit cu concluzia inexistentei unui unificator n urmatoarele doua cazuri.

1) Existenta n lista de rezolvat a unei ecuatii de forma f (a1 , a2 , . . . , an ) = g(b1 , b2 , . . . , bm ) cu f 6= g,

2) Existenta n lista de rezolvat a unei ecuatii de forma x = t sau t = x n care x este o variabila care apare n t
si este diferita de t.
Oprirea normala a algoritmului se face prin epuizarea listei de rezolvat, caz n care, asa cum vom proba mai jos, lista
solutie ne furnizeaza cel mai general unificator.

14.2

Terminare

Terminarea algoritmului este probata folosind n ordine lexicografica doua criterii exprimate prin numere naturale:
1. numarul variabilelor care apar n lista de rezolvat, care in functie de pasul algoritmului utilizat are urmatoarea
comportare
(a) Scoate: ram
ane egal sau se micsoreaza,
(b) Descompune: ram
ane egal,
(c) Elimin
a: se micsoreaza
2. numarul aparitiilor simbolurilor(semnelor) care apar n lista de rezolvat, care se micsoreaza n cele doua cazuri
care ne mai intereseaza Scoate si Descompune.

14.3

Corectitudine

Corectitudinea algoritmului se bazeaza pe demonstrarea faptului ca multimea unificatorilor pentru ecuatiile din
reuniunea celor doua liste este un invariant, adica nu se modifica prin aplicarea celor trei pasi ai algoritmului.
Deoarece pentru pasul Scoate afirmatia este evidenta ne referim doar la ceilalti pasi.
Descompune: Observam ca pentru orice substitutie s egaliatea

s(f (a1 , a2 , . . . , an )) = s(f (b1 , b2 , . . . , bn ))


este echivalenta cu

f (s(a1 ), s(a2 ), . . . , s(an )) = f (s(b1 ), s(b2 ), . . . , s(bn ))

adica cu s(ai ) = s(bi ) pentru orice i [n].


Elimin
a: Observam ca orice unificator u pentru ecuatiile din reuniunea celor doua liste at
at nainte de aplicarea
pasului cat si dupa aceasta trebuie sa satisfaca egalitatea u(x) = u(t). Pentru o substitutie s cu proprietatea s(x) =
s(t) observam ca
x t; s = s
deoarece (x t; s)(x) = s(t) = s(x) si (x t; s)(y) = s(y) pentru orice alta variabila y. Prin urmare pentru o astfel
de substitutie
s(l) = s(r) daca si numai daca s((x t)(l)) = s((x t)(r))

38

ceea ce arata ca un unificator pentru ecuatiile din reuniunea celor doua liste dinainte de aplicarea pasului este
unificator si pentru ecuatiile din reuniunea celor doua liste de dupa aplicarea pasului si reciproc.
Algoritmul este oprit cu concluzia inexistentei unui unificator deoarece n cele doua situatii mentionate se constata
ca multimea unificatorilor este vida.
Sa observam ca variabilele care apar n membrul stang al ecuatiilor din lista solutie sunt diferite doua cate doua
si nu mai apar n nici una dintre celelalte ecuatii din cele doua liste.
Faptul poate fi dovedit prin inductie.
Mentionam ca aplicarea primilor doi pasi ai algoritmului nu modifica lista solutie si nu produc aparitii noi de
variabile n cele doua liste.

Fie x = t ecuatia introdusa n lista solutie prin aplicarea pasului Elimin


a. Deoarece variabilele din membrul
stang ai listei solutie precedenta nu apar n celelalte ecuatii rezulta ca variabila x este diferita de celelalte variabile
care apar n membrul stang al ecuatiilor din lista solutie. Prin urmare, variabilele din membrul stang al noii liste
solutie sunt diferite ntre ele.
In plus prin substituirea lui x cu t n celelalte ecuatii variabila x dispare din ele deoarece x nu apare n t. Deoarece
nici x si nici variabilele din membrul stang ai listei solutie precedenta nu apar n t rezulta ca dupa efectuarea
substitutiei lui x cu t variabilele din membrul stang ai listei solutie nu apar n restul ecuatiilor.
Sa presupunem ca algoritmul s-a terminat prin epuizarea listei de rezolvat. Sa notam cu k numarul ecuatiilor din

lista solutie si cu xi = ti pentru i [k] ecuatiile din ea.


Fie U substitutia definita prin
U (xi ) = ti pentru orice i [k].
Definitia este corecta deoarece variabilele xi sunt distincte. Deoarece variabilele xi nu apar n termenii ti deducem
ca U (ti ) = ti , prin urmare U (ti ) = U (xi ), deci U este un unificator. Vom dovedi ca este cel mai general.
Observam ca pentru orice substitutie s compunerea U ; s este tot un unificator. Vom arata ca orice alt unificator
este de aceasta forma. Fie u un alt unificator, adica u(xi ) = u(ti ) pentru orice i [k]. Observam ca U ; u = u, caci
u(U (xi )) = u(ti ) = u(xi ) pentru orice i [k] si u(U (y)) = u(y) pentru orice alta variabila y.
Deci U este cel mai general unificator, deoarece orice alt unificator poate fi exprimat ca o compunere a lui U cu
o substitutie. In plus observam ca el este idempotent deoarece U ; U = U .
Notand V = X {x1 , x2 , . . . , xk } observam ca V X si ca
U : T (X) T (V )
este un morfism cu proprietatea U (v) = v pentru orice v V .
In cele ce urmeaza vom scrie CGU ca o prescurtare pentru Cel mai General Unificator.

15

LOCAL CONFLUENT
A

Daca terminarea unui program poate fi chiar si o problema deschisa, problema confluentei are solutie, adica se pot
scrie programe care pentru o multime data de reguli sa constate, n ipoteza terminarii, daca -rescrierea este
confluenta. De fapt se probeaza local confluenta care mpreuna cu terminarea implica confluenta.
Reamintim ca relatia de rescriere este confluenta daca

(a, b, c) [(a = b si a = c) implica (d) (b = d si c = d)].


Definitia 15.1 Spunem ca rescrierea este local confluent
a daca
(a, b, c) [(a = b si a = c) implica (d) (b = d si c = d)].
Reamintim ca rescrierea are proprietatea de terminare, daca nu exista siruri {an }n cu proprietatea an = an+1
pentru orice n numar natural.
Propozitie 15.2 Dac
a rescrierea este local confluent
a si are proprietatea de terminare atunci rescrierea este confluent
a.

39

Demonstratie: Reamintim ca proprietatea de terminare ne aisgura pentru orice a existenta unei forme normale

n cu proprietatea a = n. Vom demonstra unicitatea formei normale fapt ce implica confluenta. Notam cu N
multimea formelor normale. Fie M multimea elementelor care se pot rescrie n cel putin doua forme normale.

M = {a : (n1 , n2 N )a = n1 , a = n2 , n1 6= n2 }.
Probam ca a M implica (b M )a = b.

Deoarece a M exista n1 , n2 N cu proprietatile a = n1 , a = n2 si n1 6= n2 . Daca a ar fi o forma normala,


atunci a = n1 si a = n2 ceea ce contrazice n1 6= n2 .

Deoarece a nu este forma normala exista elemntul b cu proprietatile a = b si b = n1 . La fel exista c cu

proprietatile a = c si c = n2 . Deoarece rescrierea este local confluenta exista elementul d cu proprietatile b = d

si c = d. Deoarece terminarea implica existenta formei normale deducem n N cu proprietatea d = n.


Deoarece n1 6= n2 deducem n 6= n1 sau n 6= n2 .

Daca n 6= n1 deoarece b = n1 si b = n decucem b M. Daca n 6= n2 deoarece c = n si c = n2 deducem


c M.
Probam unicitatea formei normale. Rationand prin absurd presupunem ca M este nevida. Plecand de la a1 M
aplicand observatia de mai sus deducem existenta lui a2 M cu proprietatea a1 = a2 . Repetand rationamentul
printr-o inductie deducem existenta unui sir {an }n cu proprietatea an = an+1 pentru orice n natural. Deci rescrierea
nu are proprietatea de terminare, n contradictie cu ipoteza.

40

S-ar putea să vă placă și