C02 PL

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