Documente Academic
Documente Profesional
Documente Cultură
2015-2016
Programare Logica
1 / 41
Cuprins
3 Termeni. Algebr
a de termeni.
4 Algebre initiale
2 / 41
Amintiri
Definitie
O signatura multisortata este o pereche (S, ), unde
S 6= este o multime de sorturi.
este o multime de simboluri de operatii de forma
: s1 s2 . . . sn s.
3 / 41
Amintiri
Definitie
O signatura multisortata este o pereche (S, ), unde
S 6= este o multime de sorturi.
este o multime de simboluri de operatii de forma
: s1 s2 . . . sn s.
Definitie
O algebra multisortata de tip (S, ) este o structura A = (AS , A ) unde
AS = {As }sS este o multime S-sortata (multimea suport).
A = {A } este o familie de operatii astfel ncat
dac
a : s1 . . . sn s n , atunci A : As1 . . . Asn As
(operatie).
dac
a : s n , atunci A As (constant
a).
3 / 41
Amintiri
Fie doua (S, )-algebre A = (AS , A ) si B = (BS , B ).
Definitie
Un morfism de (S, )-algebre h : A B este o functie S-sortata
h = {hs }sS : {As }sS {Bs }sS care verifica conditia de
compatibilitate:
pt. or. : s din avem hs (A ) = B .
pt. or. : s1 . . . sn s din si or. a1 As1 , . . . , an Asn avem
hs (A (a1 , . . . , an )) = B (hs1 (a1 ), . . . , hsn (an )).
A
As1
h s1
...
Asn
h sn
Bs1
Bsn
As
hs
Bs
4 / 41
5 / 41
Definitie si proprietati
Definitie
Un -morfism h : A B se numeste izomorfism daca exista un
-morfism g : B A astfel ncat h; g = 1A si g ; h = 1B .
Daca -morfismul g de mai sus exista, atunci este unic:
fie un -morfism f : B A astfel ncat h; f = 1A si f ; h = 1B
avem g = g ; 1A = g ; (h; f ) = (g ; h); f = 1B ; f = f
6 / 41
Proprietati
Propozitie
Fie h : A B un -morfism. Atunci
h este izomorfism este functie S-sortata bijectiva.
Demonstratie
() Presupunem ca h este izomorfism.
Atunci exista -morfismul h1 : B A a.. h; h1 = 1A si
h1 ; h = 1B .
Deducem ca hs ; hs1 = 1As si hs1 ; hs = 1Bs , or. s S.
Deci hs este inversabila, si deci bijectiva, pt. or. s S.
In concluzie, h este functie S-sortata bijectiva.
7 / 41
Demonstratie (cont.)
() Presupunem ca h este functie S-sortata bijectiva.
Pt. or. s S exista hs1 : Bs As a.. hs ; hs1 = 1As si
hs1 ; hs = 1Bs .
Definim -morfismul h1 = {hs1 }sS .
Evident avem
(h; h1 )s = hs ; hs1 = 1As = (1A )s
(h1 ; h)s = hs1 ; hs = 1Bs = (1B )s
Deci h; h
= 1A si h1 ; h = 1B .
8 / 41
Demonstratie (cont.)
Trebuie sa aratam ca functia S-sortata h1 : B A este -morfism.
Fie : s1 . . . sn s n si (b1 , . . . , bn ) Bs1 . . . Bsn .
Cum h este -morfism, pt. hs1
(b1 ) As1 , . . . , hs1
(bn ) Asn avem
1
n
hs (A (hs1
(b1 ), . . . , hs1
(bn )))
1
n
= B (hs1 (hs1
(b1 )), . . . , hsn (hs1
(bn )))
1
n
= B (b1 , . . . , bn ).
9 / 41
Proprietati
Propozitie
Compunerea a doua izomorfisme f : A B si g : B C este un
izomorfism. Mai mult,
(f ; g )1 = g 1 ; f 1 .
Demonstratie
Exercitiu!
10 / 41
-algebre izomorfe
Definitie
Doua -algebre A si B sunt izomorfe daca exista un izomorfism
f : A B.
Daca A si B sunt izomorfe, notam A ' B.
Daca A ' B, atunci As ' Bs , or. s S.
A ' A (1A este izomorfism)
A'BB'A
A ' B si B ' C A ' C
Relatia de izomorfism este o relatie de echivalenta
(reflexiva, simetrica si tranzitiva).
11 / 41
Exemple
Exemplu
NAT = (S = {nat}, = {0 : nat, succ : nat nat})
NAT -algebra A: Anat := N, A0 := 0, Asucc (x) := x + 1
NAT -algebra B: Bnat := {0, 1}, B0 := 0, Bsucc (x) := 1 x
NAT -algebra C: Cnat := {2n | n N}, C0 := 1, Csucc (2n ) := 2n+1
A 6' B
nu exista niciun NAT -morfism g : B A
A ' C:
h = {hnat } : {Anat } {Cnat }, hnat (n) := 2n
h este izomorfism
12 / 41
Observatie
13 / 41
14 / 41
15 / 41
15 / 41
15 / 41
15 / 41
16 / 41
16 / 41
16 / 41
Definitie
Un tip abstract de date este o clasa C de (S, )-algebre cu proprietatea
ca oricare doua (S, )-algebre din C sunt izomorfe:
A, B C A ' B.
16 / 41
17 / 41
Definitie
Multimea S-sortata a termenilor fara variabile,
T ,
este cea mai mica multime de siruri finite peste alfabetul
S
L = w ,s w ,s {(, )} {, }
care verifica:
1
Daca : s n , atunci (T )s ,
18 / 41
Exemple
Exemplu
NATBOOL = (S, )
S = {bool, nat}
= {T : bool, F : bool, 0 : nat, s : nat nat,
: nat nat bool}
TNATBOOL :
(TNATBOOL )nat = {0, s(0), s(s(0)), . . .}
(TNATBOOL )bool = {T , F , (0, 0), (0, s(0)), . . .}
Cateva siruri care nu sunt termeni: (T , F ), s (0), Ts(0), . . .
19 / 41
Exemple
Exemplu
NATEXP = (S, )
S = {nat}
= {0 : nat, s : nat nat,
+ : nat nat nat, ? : nat nat nat}
TNATEXP :
(TNATEXP )nat = {0, s(0), s(s(0)), . . . ,
+(0, 0), ?(0, +(s(0), 0)), . . .}
Cateva siruri care nu sunt termeni: +(0), 0(s)s(0), ?(s(0)), . . .
20 / 41
Multime de variabile
Definitie
O multime de variabile este o multime S-sortata X = {Xs }sS astfel
ncat
Xs Xs 0 = , or. s, s 0 S, s 6= s 0 ,
Xs {}:s1 ...sn s = ,
Xs {}:s = .
Simbolurile de variabile sunt distincte ntre ele si sunt distincte de
simbolurile de operatii/constante din .
21 / 41
Termeni (expresii)
Fie (S, ) o signatura multisortata si X o multime de variabile.
Definitie
Multimea S-sortata a termenilor cu variabile din X ,
T (X ),
este cea mai mica multime de siruri finite peste alfabetul
S
S
L = sS Xs w ,s w ,s {(, )} {, }
care verifica:
1
X T (X ),
Daca : s n , atunci T (X )s ,
Exemple
Exemplu
NATEXP = (S, )
S = {nat}
= {0 : nat, s : nat nat,
+ : nat nat nat, ? : nat nat nat}
X:
Xnat = {x, y }
TNATEXP (X ):
TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), s(s(x)), . . . ,
+(0, 0), +(0, x), ?(0, +(s(0), 0)), . . .}
Cateva siruri care nu sunt termeni: +(x), 0x, 0(s)s(0), ?(s(0)), . . .
23 / 41
Exemple
Exemplu
STIVA = (S, )
S = {elem, stiva}
= {0 : elem, empty : stiva, push : elem stiva stiva,
pop : stiva stiva, top : stiva elem}
X:
Xelem = {x, y } si Xstiva =
TSTIVA (X ):
TSTIVA (X )elem = {0, x, y , top(pop(empty )),
top(push(x, empty )), . . .}
TSTIVA (X )stiva = {empty , push(y , empty ), pop(empty ),
push(top(empty ), empty ), . . .}
Cateva siruri care nu sunt termeni: pop(0), (pop)top(empty ), empty (y )
24 / 41
Inductia pe termeni
25 / 41
Termeni ca arbori
arb(t1 )
...
arb(tn )
26 / 41
Exemple
Exemplu
NATEXP = (S, )
S = {nat}
= {0 : nat, s : nat nat,
+ : nat nat nat, ? : nat nat nat}
arb(?(0, +(s(0), 0))) =
?
+
0
s
0
27 / 41
Algebra termenilor
Fie (S, ) o signatura multisortata si X o multime de variabile.
Definitie
Multimea S-sortata a termenilor T (X ) este o (S, )-algebra, numita
algebra termenilor cu variabile din X si notata tot T (X ), cu operatiile
definite astfel:
pt. or. : s din , operatia corespunzatoare este
T := T (X )s
pt. or. : s1 . . . sn s din , operatia corespunzatoare este
T : T (X )s1 ...sn T (X )s
T (t1 , . . . , tn ) := (t1 , . . . , tn )
or. t1 T (X )s1 , . . . , tn T (X )sn .
T algebra termenilor fara variabile (X = )
28 / 41
Exemple
Exemplu
NATEXP = (S, )
S = {nat}
= {0 : nat, s : nat nat,
+ : nat nat nat, ? : nat nat nat}
TNATEXP :
(TNATEXP )nat = {0, s(0), s(s(0)), . . . ,
+(0, 0), ?(0, +(s(0), 0)), . . .}
Algebra termenilor:
Multimea suport: TNATEXP
Operatii:
T0 := 0, Ts (t) := s(t),
T+ (t1 , t2 ) := +(t1 , t2 ),
T? (t1 , t2 ) := ?(t1 , t2 ).
29 / 41
Observatii
30 / 41
Algebre initiale
31 / 41
Algebra initiala
Fie
(S, ) o signatura multisortata,
K o clasa de (S, )-algebre.
Definitie
O (S, )-algebra I K este initiala n K daca pentru orice B K
exista un unic (S, )-morfism f : I B.
32 / 41
Proprietati
Propozitie
Daca I este initiala n K si A K astfel ncat A ' I, atunci A este
initiala n K.
33 / 41
Proprietati
Propozitie
Daca I este initiala n K si A K astfel ncat A ' I, atunci A este
initiala n K.
Demonstratie
Cum A K astfel ncat A ' I, fie A : A I un izomorfism.
Fie B K. Cum I este initiala, exista un unic morfism fB : I B.
Demonstram ca exista un unic morfism h : A B:
Existenta. Consideram h := A ; fB : A B. Deoarece compunerea
morfismelor este morfism, obtinem ca h este morfism.
Unicitatea. Presupunem ca exista un alt morfism g : A B.
1
Atunci 1
a ca
A ; g : I B este morfism, deci A ; g = fB . Rezult
g = A ; fB = h.
33 / 41
Proprietati
Propozitie
Daca A1 si A2 sunt initiale n K, atunci A1 ' A2 .
34 / 41
Proprietati
Propozitie
Daca A1 si A2 sunt initiale n K, atunci A1 ' A2 .
Demonstratie
Cum A1 si A2 sunt initiale n K, exista
un unic morfism f : A1 A2 si
un unic morfism g : A2 A1 .
Avem f ; g : A1 A1 , 1A1 : A1 A1 si A1 initiala, deci f ; g = 1A1 .
Similar obtinem g ; f = 1A2 .
In concluzie A1 ' A2 .
34 / 41
Teorema
Pentru orice (S, )-algebra B, exista un unic morfism f : T B.
f (t) este interpretarea termenului t T n B.
35 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
pasul initial: daca : s , atunci fs () := B .
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
pasul initial: daca : s , atunci fs () := B .
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 . . . , tn (T )sn astfel ncat fs1 (t1 ), . . . , fsn (tn ) definite,
atunci fs ((t1 , . . . , tn )) := B (fs1 (t1 ), . . . , fsn (tn )).
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
pasul initial: daca : s , atunci fs () := B .
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 . . . , tn (T )sn astfel ncat fs1 (t1 ), . . . , fsn (tn ) definite,
atunci fs ((t1 , . . . , tn )) := B (fs1 (t1 ), . . . , fsn (tn )).
Din principiului inductiei pe termeni, f (t) este definita pt. or. t T .
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
pasul initial: daca : s , atunci fs () := B .
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 . . . , tn (T )sn astfel ncat fs1 (t1 ), . . . , fsn (tn ) definite,
atunci fs ((t1 , . . . , tn )) := B (fs1 (t1 ), . . . , fsn (tn )).
Din principiului inductiei pe termeni, f (t) este definita pt. or. t T .
Demonstram ca f este morfism.
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
pasul initial: daca : s , atunci fs () := B .
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 . . . , tn (T )sn astfel ncat fs1 (t1 ), . . . , fsn (tn ) definite,
atunci fs ((t1 , . . . , tn )) := B (fs1 (t1 ), . . . , fsn (tn )).
Din principiului inductiei pe termeni, f (t) este definita pt. or. t T .
Demonstram ca f este morfism.
daca : s , atunci fs (T ) = fs () = B ;
36 / 41
Demonstratie
Fie B o (S, )-algebra.
Demonstram ca exista un unic morfism f : T B.
Existenta. Definim f : T B prin inductie pe termeni:
(P(t) = f (t) este definit)
pasul initial: daca : s , atunci fs () := B .
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 . . . , tn (T )sn astfel ncat fs1 (t1 ), . . . , fsn (tn ) definite,
atunci fs ((t1 , . . . , tn )) := B (fs1 (t1 ), . . . , fsn (tn )).
Din principiului inductiei pe termeni, f (t) este definita pt. or. t T .
Demonstram ca f este morfism.
daca : s , atunci fs (T ) = fs () = B ;
daca : s1 . . . sn s si t1 (T )s1 , . . . , tn (T )sn , atunci
fs (T (t1 , . . . , tn )) = fs ((t1 , . . . , tn )) = B (fs1 (t1 ), . . . , fsn (tn )).
36 / 41
Demonstratie (cont.)
Unicitatea. Fie g : T B un morfism.
Demonstram ca g = f prin inductie pe termeni:
(P(t) = gs (t) = fs (t))
37 / 41
Demonstratie (cont.)
Unicitatea. Fie g : T B un morfism.
Demonstram ca g = f prin inductie pe termeni:
(P(t) = gs (t) = fs (t))
pasul initial: daca : s , atunci gs () = gs (T ) = B = fs ().
37 / 41
Demonstratie (cont.)
Unicitatea. Fie g : T B un morfism.
Demonstram ca g = f prin inductie pe termeni:
(P(t) = gs (t) = fs (t))
pasul initial: daca : s , atunci gs () = gs (T ) = B = fs ().
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 , . . . , tn (T )sn a. .
gs1 (t1 ) = fs1 (t1 ), . . . , gsn (tn ) = fsn (tn ), atunci
37 / 41
Demonstratie (cont.)
Unicitatea. Fie g : T B un morfism.
Demonstram ca g = f prin inductie pe termeni:
(P(t) = gs (t) = fs (t))
pasul initial: daca : s , atunci gs () = gs (T ) = B = fs ().
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 , . . . , tn (T )sn a. .
gs1 (t1 ) = fs1 (t1 ), . . . , gsn (tn ) = fsn (tn ), atunci
gs ((t1 , . . . , tn )) = gs (T (t1 , . . . , tn )) = B (gs1 (t1 ), . . . , gsn (tn )) =
B (fs1 (t1 ), . . . , fsn (tn )) = fs ((t1 , . . . , tn )).
37 / 41
Demonstratie (cont.)
Unicitatea. Fie g : T B un morfism.
Demonstram ca g = f prin inductie pe termeni:
(P(t) = gs (t) = fs (t))
pasul initial: daca : s , atunci gs () = gs (T ) = B = fs ().
pasul de inductie: daca : s1 . . . sn s si
t1 (T )s1 , . . . , tn (T )sn a. .
gs1 (t1 ) = fs1 (t1 ), . . . , gsn (tn ) = fsn (tn ), atunci
gs ((t1 , . . . , tn )) = gs (T (t1 , . . . , tn )) = B (gs1 (t1 ), . . . , gsn (tn )) =
B (fs1 (t1 ), . . . , fsn (tn )) = fs ((t1 , . . . , tn )).
Conform principiului inductiei pe termeni, gs (t) = fs (t), oricare t T , s,
deci g = f .
37 / 41
Consecinta
Corolar
T este (S, )-algebra initiala.
38 / 41
Exemplu
Exemplu
(S, ) signatura multisortata
39 / 41
Exemplu
Exemplu
(S, ) signatura multisortata
(S, )-algebra D = (DS , D )
Ds := N, or. s S,
dac
a : s, atunci D := 0
dac
a : s1 . . . sn s, k1 , . . . , kn N, atunci
D (k1 , . . . , kn ) := 1 + max(k1 , . . . , kn ).
39 / 41
Exemplu
Exemplu
(S, ) signatura multisortata
(S, )-algebra D = (DS , D )
Ds := N, or. s S,
dac
a : s, atunci D := 0
dac
a : s1 . . . sn s, k1 , . . . , kn N, atunci
D (k1 , . . . , kn ) := 1 + max(k1 , . . . , kn ).
f : T D unicul morfism
39 / 41
Exemplu
Exemplu
(S, ) signatura multisortata
(S, )-algebra D = (DS , D )
Ds := N, or. s S,
dac
a : s, atunci D := 0
dac
a : s1 . . . sn s, k1 , . . . , kn N, atunci
D (k1 , . . . , kn ) := 1 + max(k1 , . . . , kn ).
f : T D unicul morfism
Ce reprezinta valoarea f (t) pentru un termen t?
39 / 41
Exemplu
Exemplu
(S, ) signatura multisortata
(S, )-algebra D = (DS , D )
Ds := N, or. s S,
dac
a : s, atunci D := 0
dac
a : s1 . . . sn s, k1 , . . . , kn N, atunci
D (k1 , . . . , kn ) := 1 + max(k1 , . . . , kn ).
f : T D unicul morfism
Ce reprezinta valoarea f (t) pentru un termen t?
f (t) este ad
ancimea arborelui arb(t).
39 / 41
Observatii
Un tip abstract de date este o clasa C de (S, )-algebre cu
proprietatea ca oricare doua (S, )-algebre din C sunt izomorfe
(A, B C A ' B.)
Consideram clasa de (S, )-algebre
I(S,) = {I | I (S, )-algebra initiala}
I(S,) este un tip abstract de date.
T I(S,) .
Un modul n Maude (care contine doar declatii de sorturi si
operatii) defineste un astfel de tip abstract de date si construieste
efectiv algebra T .
40 / 41
Pe saptamana viitoare!
41 / 41