Upload
dani-rvd
View
226
Download
0
Embed Size (px)
Citation preview
7/26/2019 C02 PL
1/62
7/26/2019 C02 PL
2/62
Cuprins
1 Signaturi multisortate
2 Multimi multisortate
3 Algebre multisortate
4 Morfisme de algebre multisortate
2/36
7/26/2019 C02 PL
3/62
Signaturi multisortate
3/36
7/26/2019 C02 PL
4/62
Definitie
Definitie
Osignatura multisortataeste o pereche (S, ), unde
4/36
7/26/2019 C02 PL
5/62
Definitie
Definitie
Osignatura multisortataeste o pereche (S, ), unde
S= este o multime desorturi.
4/36
7/26/2019 C02 PL
6/62
Definitie
Definitie
Osignatura multisortataeste o pereche (S, ), unde
S= este o multime desorturi.
este o multime desimboluri de operatiide forma
:s1s2. . . sn s.
4/36
7/26/2019 C02 PL
7/62
Definitie
Definitie
Osignatura multisortataeste o pereche (S, ), unde
S= este o multime desorturi.
este o multime desimboluri de operatiide forma
:s1s2. . . sn s.
estenumele operatieis1, . . . , sn, sSs1s2. . . sn, s estearitateaoperatieis1, . . . , sn suntsorturile argumentelors estesortul rezultatuluidaca n= 0, atunci :seste simbolul unei constante
4/36
7/26/2019 C02 PL
8/62
Observatii
S multimea cuvintelor finite cu elemente din S.
5/36
7/26/2019 C02 PL
9/62
Observatii
S multimea cuvintelor finite cu elemente din S.
Notatii alternativepentru o signatura (S, ):
5/36
7/26/2019 C02 PL
10/62
Observatii
S multimea cuvintelor finite cu elemente din S.
Notatii alternativepentru o signatura (S, ):
(S, {s1s2...sn,s}s1s2...snS,sS)
5/36
7/26/2019 C02 PL
11/62
Observatii
S multimea cuvintelor finite cu elemente din S.
Notatii alternativepentru o signatura (S, ):
(S, {s1s2...sn,s}s1s2...snS,sS)
(S, {w,s}wS
,sS) w,s ddaca : wsw=s1 . . . sn S
5/36
7/26/2019 C02 PL
12/62
Observatii
S multimea cuvintelor finite cu elemente din S.
Notatii alternativepentru o signatura (S, ):
(S, {s1s2...sn,s}s1s2...snS,sS)
(S, {w,s}wS
,sS) w,s ddaca : wsw=s1 . . . sn S
5/36
7/26/2019 C02 PL
13/62
Observatii
S multimea cuvintelor finite cu elemente din S.
Notatii alternativepentru o signatura (S, ):
(S, {s1s2...sn,s}s1s2...snS,sS)
(S, {w,s}wS
,sS) w,s ddaca : wsw=s1 . . . sn S
Este permisasuprancarcarea operatiilor:
estesuprancarcatadaca w1,s1 w2,s2 si w1, s1 =w2, s2
5/36
7/26/2019 C02 PL
14/62
Exemple
Exemplu
NAT = (S, )
S={nat}
={0 : nat, succ :natnat}
Cum arata ={w,s}wS,sS n acest caz?
,nat={0} si nat,nat={succ}
w,s=, pentru orice alt wS si sS
Modul n Maude:
fmod MYNAT-SIMPLE issort Nat .
op 0 : -> Nat .
op succ : Nat -> Nat .
endfm
6/36
7/26/2019 C02 PL
15/62
Exemple
ExempluBOOL= (S, )
S={bool}
={T : bool, F : bool,
: boolbool,: bool boolbool, : bool boolbool}
Cum arata ={w,s}wS,sS n acest caz?
,bool={T, F}
bool,bool={}
bool bool,bool={, }
w,s=, pentru orice alt wS si sS
7/36
7/26/2019 C02 PL
16/62
Exemple
ExempluNATBOOL= (S, )
S={bool, nat}
={T : bool, F : bool,0 : nat, succ :natnat,:nat natbool}
Cum arata ={w,s}wS,sS n acest caz?
,bool={T, F}
,nat={0}
nat,nat={succ}nat nat,bool={}
w,s=, pentru orice alt wS si sS
8/36
7/26/2019 C02 PL
17/62
Exemple
Exemplu
STIVA= (S, )
S={elem, stiva} ={0 : elem, empty : stiva,
push:elem stiva stiva,pop:stiva stiva,top:stiva elem}
9/36
7/26/2019 C02 PL
18/62
Signaturi ordonat-sortate
Definitie
Osignatura ordonat-sortataeste un triplet (S, , ) unde
(S, )signatura multisortata(S, )multime partial ordonata
conditia de monotonie:
daca w1,s1 w2,s2 atunci w1w2s1 s2
10/36
7/26/2019 C02 PL
19/62
Exemple
ExempluNAT = (S, , )
S={zero, nznat, nat}
zeronat, nznatnat
={0 : zero, succ :natnznat}
Modul n Maude:
fmod MYNAT is
sorts Zero NzNat Nat .
subsort Zero NzNat < Nat .
o p 0 : - > Z e r o .
op succ : Nat -> NzNat .
endfm
11/36
7/26/2019 C02 PL
20/62
Exemple
Exemplu
STIVA= (S, , )
S={elem, stiva, nvstiva}
elem stiva, nvstiva stiva
={0 : elem, empty : stiva,push:elem stiva nvstiva,pop:nvstiva stiva,top:nvstiva elem}
In practica se folosesc signaturi ordonat-sortate.
12/36
7/26/2019 C02 PL
21/62
Multimi multisortate
13/36
7/26/2019 C02 PL
22/62
Definitie
Fixam o mult ime de sorturi S.
Definitie
Omultime S-sortataeste o familie de multimi A= {As}sS indexatadupa S.
Pentru orice sort sS, avem o multime As.
Pentru orice sort sS si a As, spunem ca a este de sort s.
14/36
7/26/2019 C02 PL
23/62
Exemplu
Exemplu
Multime de sorturi: S={nat, bool}
Multime S-sortata: A= {Anat, Abool}, unde
Anat= NAbool ={true, false}
1 este de sort nat
falseeste de sort bool
sorturi= tipurielemente de sort s= date de tip s
15/36
7/26/2019 C02 PL
24/62
Operatii
Operatiile uzuale pe multimi sunt extinse la cazul multisortat pecomponente:
{As}sS{Bs}sS ddaca AsBs, or. sS
{As}sS{Bs}sS={As Bs}sS
{As}sS{Bs}sS={As Bs}sS
{As}sS{Bs}sS={As Bs}sS
16/36
7/26/2019 C02 PL
25/62
Functii
Fixam A= {As}sS, B={Bs}sS, C={Cs}sS multimi S-sortate.Definitie
OfunctieS-sortata f :A Beste o familie de functiif ={fs}sS, undefs :AsBs, pt. or. sS.
Daca f :A B si g :BC, definimcompunerea
f; g={(f; g)s}sS :A C
(f; g)s(a) = (fs; gs)(a) =gs(fs(a)), or. a A.
Compunerea este asociativa: (f; g); h= f; (g; h).
Functia identitate: 1A:A A, 1A={1As}sS.
Observati ca f; 1B=f, 1A; f =f, or. f :A B.
17/36
F
7/26/2019 C02 PL
26/62
Functii
O functieS-sortata f ={fs}sS :A Bse numesteinjectiva,(surjectiva, bijectiva)daca fseste injectiva, (surjectiva, bijectiva),or. sS.
O functieS-sortata f ={fs}sS :A Bse numesteinversabiladaca exista g :BAastfel ncat f; g= 1A si g; f = 1B.
18/36
F ii
7/26/2019 C02 PL
27/62
Functii
O functieS-sortata f ={fs}sS :A Bse numesteinjectiva,(surjectiva, bijectiva)daca fseste injectiva, (surjectiva, bijectiva),or. sS.
O functieS-sortata f ={fs}sS :A Bse numesteinversabiladaca exista g :BAastfel ncat f; g= 1A si g; f = 1B.
Propozitie
O functieS-sortata f :A Beste inversabila este bijectiva.
DemonstratieExercitiu!
18/36
7/26/2019 C02 PL
28/62
Algebre multisortate
19/36
D fi iti
7/26/2019 C02 PL
29/62
Definitie
Fixam o signatura multisortata (S, ).
Definitie
Oalgebra multisortata de tip (S, )este o structura A= (AS, A)unde
AS={As}sSeste o multime S-sortata (multimea suport).
A={A} este o familie de operatii astfel ncat
daca :s1. . . sn s n , atunci A :As1 . . . Asn As(operatie).daca : s n , atunci A As (constanta).
20/36
D fi iti
7/26/2019 C02 PL
30/62
Definitie
Fixam o signatura multisortata (S, ).
Definitie
Oalgebra multisortata de tip (S, )este o structura A= (AS, A)unde
AS={As}sSeste o multime S-sortata (multimea suport).
A={A} este o familie de operatii astfel ncat
daca :s1. . . sn s n , atunci A :As1 . . . Asn As(operatie).daca : s n , atunci A As (constanta).
Exprimari alternative:
A= (AS, A)este o(S, )-algebrasau o -algebraA este o -algebraA este o algebra
Notatie: As1...sn =As1 . . . Asn
20/36
E emple
7/26/2019 C02 PL
31/62
Exemple
Exemplu
NAT = (S, )
S={nat}
={0 : nat, succ :natnat}
21/36
Exemple
7/26/2019 C02 PL
32/62
Exemple
Exemplu
NAT = (S, )
S={nat}
={0 : nat, succ :natnat}
NAT-algebraA
Multimea suport: Anat := N
Operatii: A0 := 0, Asucc(x) :=x+ 1
21/36
Exemple
7/26/2019 C02 PL
33/62
Exemple
Exemplu
NAT = (S, )
S={nat}
={0 : nat, succ :natnat}
NAT-algebraA
Multimea suport: Anat := N
Operatii: A0 := 0, Asucc(x) :=x+ 1
NAT-algebraB
Multimea suport: Bnat :={0, 1}
Operatii: B0 := 0, Bsucc(x) := 1 x
21/36
Exemple
7/26/2019 C02 PL
34/62
Exemple
Exemplu
NAT = (S, )
S={nat}
={0 : nat, succ :natnat}
NAT-algebraA
Multimea suport: Anat := N
Operatii: A0 := 0, Asucc(x) :=x+ 1
NAT-algebraB
Multimea suport: Bnat :={0, 1}
Operatii: B0 := 0, Bsucc(x) := 1 xNAT-algebraC
Multimea suport: Cnat :={2n | n N}
Operatii: C0 := 1, Csucc(2n) := 2n+1
21/36
Exemple
7/26/2019 C02 PL
35/62
Exemple
Exemplu
BOOL= (S, )
S={bool}
={T : bool, F : bool, : boolbool,: bool boolbool, : bool boolbool}
22/36
Exemple
7/26/2019 C02 PL
36/62
Exemple
Exemplu
BOOL= (S, )
S={bool}
={T : bool, F : bool, : boolbool,: bool boolbool, : bool boolbool}
BOOL-algebraA
Multimea suport: Abool :={0, 1}
Operatii:
AT := 1,AF:= 0,A(x) := 1 xA(x, y) := max(x, y),A(x, y) := min(x, y)
22/36
Exemple
7/26/2019 C02 PL
37/62
Exemple
Exemplu
BOOL= (S, )
S={bool}
={T : bool, F : bool, : boolbool,: bool boolbool, : bool boolbool}
23/36
Exemple
7/26/2019 C02 PL
38/62
Exemple
Exemplu
BOOL= (S, )
S={bool}
={T : bool, F : bool, : boolbool,: bool boolbool, : bool boolbool}
BOOL-algebraB
Multimea suport: Bbool :=P(N)
Operatii:
BT := N,BF :=,B(X) := N \ XB(X, Y) :=X Y,B(x, y) :=X Y
23/36
Exemple
7/26/2019 C02 PL
39/62
Exemple
Exemplu
STIVA= (S, )
S={elem, stiva}
={0 : elem, empty : stiva, push:elem stiva stiva,pop:stiva stiva, top:stiva elem}
24/36
Exemple
7/26/2019 C02 PL
40/62
Exemple
Exemplu
STIVA= (S, )
S={elem, stiva}
={0 : elem, empty : stiva, push:elem stiva stiva,pop:stiva stiva, top:stiva elem}
STIVA-algebraAMultimea suport:
Aelem := N,Astiva := N
24/36
Exemple
7/26/2019 C02 PL
41/62
p
Exemplu
STIVA= (S, )
S={elem, stiva}
={0 : elem, empty : stiva, push:elem stiva stiva,pop:stiva stiva, top:stiva elem}
STIVA-algebraAMultimea suport:
Aelem := N,Astiva := N
Operatii:
A0 := 0,Aempty :=,Apush(n, n1. . . nk) :=nn1. . . nk,Apop() :=, Apop(n) :=, Apop(n1n2. . . nk) :=n2. . . nk, pt k2Atop() := 0, Atop(n1. . . nk) :=n1, pt. k1
24/36
Exemple
7/26/2019 C02 PL
42/62
p
Exemplu
STIVA= (S, )
S={elem, stiva}
={0 : elem, empty : stiva, push:elem stiva stiva,pop:stiva stiva, top:stiva elem}
STIVA-algebraBMultimea suport:
Belem :={0},Bstiva := N
25/36
Exemple
7/26/2019 C02 PL
43/62
p
Exemplu
STIVA= (S, )
S={elem, stiva}
={0 : elem, empty : stiva, push:elem stiva stiva,pop:stiva stiva, top:stiva elem}
STIVA-algebraBMultimea suport:
Belem :={0},Bstiva := N
Operatii:
B0 := 0,Bempty:= 0,Bpush(0, n) :=n+ 1,Bpop(0) := 0, Bpop(n) :=n 1, pt. n1,Btop(n) := 0
25/36
Privire de ansamblu
7/26/2019 C02 PL
44/62
signatura (multisortata) simboluri
-algebra A nteles pentru simboluri
26/36
Algebre ordonat-sortate
7/26/2019 C02 PL
45/62
Fixam o signatura ordonat-sortata (S, , ).Definitie
Oalgebra ordonat-sortata de tip (S, , )este o (S, )-algebraA= (AS, A)astfel ncat
daca s1 s2, atunci As1 As2 .daca w1,s1 w2,s2 si w1 w2, atunci
Aw2,s2 (x) =Aw1,s1 (x),
oricare xAw1 .
Semantica unui modul n Maudeeste o algebra ordonat-sortata.
27/36
7/26/2019 C02 PL
46/62
Morfisme de algebre multisortate
28/36
Definitie
7/26/2019 C02 PL
47/62
Fie doua (S, )-algebreA= (AS, A) si B= (BS, B).
29/36
Definitie
7/26/2019 C02 PL
48/62
Fie doua (S, )-algebreA= (AS, A) si B= (BS, B).
Definitie
Unmorfism de (S, )-algebre h: A Beste o functieS-sortatah= {hs}sS :{As}sS {Bs}sScare verificaconditia decompatibilitate:
29/36
Definitie
7/26/2019 C02 PL
49/62
Fie doua (S, )-algebreA= (AS, A) si B= (BS, B).
Definitie
Unmorfism de (S, )-algebre h: A Beste o functieS-sortatah= {hs}sS :{As}sS {Bs}sScare verificaconditia decompatibilitate:
pt. or. :sdin avem hs(A) =B.
29/36
Definitie
7/26/2019 C02 PL
50/62
Fie doua (S, )-algebreA= (AS, A) si B= (BS, B).
Definitie
Unmorfism de (S, )-algebre h: A Beste o functieS-sortatah= {hs}sS :{As}sS {Bs}sScare verificaconditia decompatibilitate:
pt. or. :sdin avem hs(A) =B.
pt. or. :s1. . . sn sdin si or. a1 As1 , . . . , an Asn avem
hs(A(a1, . . . , an)) =B(hs1(a1), . . . , hsn (an)).
As1 AsnA As
hs1 . . . hsn hsBs1 Bsn
B Bs
29/36
Observatii
7/26/2019 C02 PL
51/62
Exprimari alternative:
morfism de -algebre-morfism
1A :A A este -morfism, pt. or. -algebra A (identitatea)
Compunereaa doua (S, )-morfisme este data de compunereafunctiilor S-sortate.
30/36
Exemple
7/26/2019 C02 PL
52/62
Exemplu
NAT = (S, )
S={nat} si ={0 : nat, succ :natnat}
NAT-algebraA
Multimea suport: Anat := N
Operatii: A0 := 0, Asucc(x) :=x+ 1
NAT-algebraB
Multimea suport: Bnat :={0, 1}
Operatii: B0 := 0, Bsucc(x) := 1 x
Morfismul de NAT-algebre f :A Bf ={fnat}: {Anat} {Bnat}
fnat(n) :=n(mod2)
31/36
Exemple
7/26/2019 C02 PL
53/62
Exemplu (cont.)
NU exista niciun morfism de NAT-algebre g :B A!
32/36
Exemple
7/26/2019 C02 PL
54/62
Exemplu (cont.)
NU exista niciun morfism de NAT-algebre g :B A!
Pres. g={gnat}: {Bnat} {Anat} a..
gnat(0) :=z1 si gnat(1) :=z2.
32/36
Exemple
7/26/2019 C02 PL
55/62
Exemplu (cont.)
NU exista niciun morfism de NAT-algebre g :B A!
Pres. g={gnat}: {Bnat} {Anat} a..
gnat(0) :=z1 si gnat(1) :=z2.Conditia de compatibilitate:
32/36
Exemple
7/26/2019 C02 PL
56/62
Exemplu (cont.)
NU exista niciun morfism de NAT-algebre g :B A!
Pres. g={gnat}: {Bnat} {Anat} a..
gnat(0) :=z1 si gnat(1) :=z2.Conditia de compatibilitate:
gnat(B0) =A0, deci z1 =gnat(0) =0
32/36
Exemple
7/26/2019 C02 PL
57/62
Exemplu (cont.)
NU exista niciun morfism de NAT-algebre g :B A!
Pres. g={gnat}: {Bnat} {Anat} a..
gnat(0) :=z1 si gnat(1) :=z2.Conditia de compatibilitate:
gnat(B0) =A0, deci z1 =gnat(0) =0gnat(Bsucc(0)) =Asucc(gnat(0)), deci z2 =gnat(1) =Asucc(0) =1
32/36
Exemple
7/26/2019 C02 PL
58/62
Exemplu (cont.)
NU exista niciun morfism de NAT-algebre g :B A!
Pres. g={gnat}: {Bnat} {Anat} a..
gnat(0) :=z1 si gnat(1) :=z2.Conditia de compatibilitate:
gnat(B0) =A0, deci z1 =gnat(0) =0gnat(Bsucc(0)) =Asucc(gnat(0)), deci z2 =gnat(1) =Asucc(0) =1gnat(Bsucc(1)) =Asucc(gnat(1)), deci 0 =z1 =gnat(0) =Asucc(1) = 2(contradictie!)
32/36
Exemple
7/26/2019 C02 PL
59/62
Exemplu
STIVA= (S, )
S={elem, stiva}
={0 : elem, empty : stiva, push:elem stiva stiva,pop:stiva stiva, top:stiva elem}
STIVA-algebraAMultimea suport: Aelem := N, Astiva:= N
Operatii: A0 := 0, Aempty :=, Apush(n, n1. . . nk) :=nn1. . . nk,Apop() := , Apop(n) := , Apop(n1n2. . . nk) :=n2. . . nk, pt k2Atop() := 0, Atop(n1. . . nk) :=n1, pt. k1
STIVA-algebraBMultimea suport: Belem :={0}, Bstiva:= N
Operatii: B0 := 0, Bempty:= 0, Bpush(0, n) :=n + 1,Bpop(0) := 0, Bpop(n) :=n 1, pt. n 1, Btop(n) := 0
33/36
Exemple
7/26/2019 C02 PL
60/62
Exemplu (cont.)STIVA-algebraA cu Aelem= N, Astiva= N
, etc.
STIVA-algebraBcu Belem ={0}, Bstiva= N, etc.
STIVA-morfism f :A B
f ={felem, fstiva}felem : N {0}, felem(n) := 0, or. n Nfstiva : N
N, fstiva() := 0, fstiva(n1. . . nk) =k, or. k1
STIVA-morfism g :B A
g={gelem, gstiva}gelem :{0} N, gelem(0) := 0gstiva : N N, gstiva(0) := , gstiva(k) := 0 0
k
, or. k1
34/36
Proprietati
7/26/2019 C02 PL
61/62
Fixam signatura multisortata .
PropozitieCompunerea a doua -morfisme este un -morfism.
Demonstratie
Fie h:A B si g :B Cdoua -morfisme.
Aratam ca h; g :A Ceste -morfism.
Fie :s1. . . sn s n si a1As1 , . . . , an Asn . Se observa ca:
(h; g)s(A(a1, . . . , an)) = gs(hs(A(a1, . . . , an)))
= gs(B(hs1(a1), . . . , hsn (an)))
= C(gs1(hs1(a1)), . . . , gsn (hsn (an)))
= C((h; g)s1(a1), . . . , (h; g)sn (an)).
35/36
7/26/2019 C02 PL
62/62
Pe saptamana viitoare!
36/36