Programare Logica - Leustean

download Programare Logica - Leustean

of 94

description

Programare Logica - Leustean 2011

Transcript of Programare Logica - Leustean

  • Programare Logica

    Ioana Leustean

    http://moodle.fmi.unibuc.ro/course/view.php?id=186

    1

    Continutul cursului

    I Introducere in MAUDE

    I Signaturi si algebre multisortate. Termeni

    I Morfisme. Tipuri abstracte de date. Algebre initiale

    I Subalgebre. Algebre libere

    I Semantica termenilor

    I Ecuatii. Relatia de satisfacere

    I Specificatii algebrice

    I -algebra initiala

    2

    I Teorema constantelor. Demonstratii prin inductie

    I Logica ecuationala: sintaxa

    I Logica ecuationala: corectitudine si completitudine

    I Regula Subterm Replacement

    I Rescrierea termenilor

    I Substitutii. Algoritmul de unificare

    3

    I Sisteme de rescriere abstracte

    I Rescrierea termenilor: terminare, confluenta, completare

    I Logica ecuationala si rescriere locala

    I Deductie si rescriere modulo axiome

    I Semantica algebrei initiale

    I Clauze Horn. Rezolutie

    4

  • Programare Logica

    Maude

    http://maude.cs.uiuc.edu/

    5

    Maude

    I Este dezvoltat la:

    I University of Illinois at Urbana-Champaign (UIUC)I Stanford Research Institute (SRI)

    I Apartine familiei OBJ, al carei initiator a fostJoseph Goguen(1941 - 2006).

    6

    Maude

    I Poate fi folosit ca demonstrator. Mecanismul de rescriere esteun procedeu de demonstrare automata, dar sunt implementatesi facilitati speciale.

    I Poate fi un instrument util in dezvoltarea de software,deoarece permite atat specificarea, cat si analiza unui limbajde programare. Faptul ca este executabil ofera si avantajulunei implementari indirecte.

    7

    Maude

    I Este un interpretor.

    I Comenzile sunt introduse una cate una si sunt executateimediat.

    I Un program este o multime de module.

    I Modulele pot fi scrise n fisiere sau direct n linia de comanda.

    I Modulele pot fi importate. Modulul predefinit BOOL esteimportat de orice modul.

    8

  • Comenzi sistem

    in ../nume-fisier.modshow module nume-modul .select nume-modul .show sorts .show ops .reduce termen .reduce termen1 == termen2 .parse term .set trace on .set trace off .quit

    Manual de Maude (html)

    9

    Maude> in PL/Exemple-Curs1.maude

    ==========================================

    fmod MYNAT

    Maude> show module MYNAT .

    fmod MYNAT is

    sorts Nat .

    op 0 : -> Nat .

    op s_ : Nat -> Nat .

    endfm

    Maude> select MYNAT .

    10

    Maude> reduce s s s s s 0 .

    reduce in MYNAT : s s s s s 0 .

    rewrites: 0 in 6641663802ms cpu (0ms real) (0 rew/sec)

    result Nat: s s s s s 0

    Maude> parse s s s s s 0 .

    Nat: s s s s s 0

    Maude> reduce s s s 0 == s s 0 .

    reduce in MYNAT : s s s 0 == s s 0 .

    rewrites: 1 in 10534570934ms cpu (0ms real) (0 rew/sec)

    result Bool: false

    11

    Exemplul 1

    fmod MYNAT is

    sorts Nat .

    op 0 : -> Nat .

    op s_ : Nat -> Nat .

    endfm

    Acest modul introduce tipul de date Nat.Datele de tip Nat sunt:

    0, s 0, s s 0, s s s 0, s s s s 0, s s s s s 0, ...

    Reprezentarea matematica:S = {Nat}, = {0 : Nat, s : Nat Nat}(S ,) este o signatura si defineste o clasa de algebre (structuri,structuri algebrice). Algebra (N, 0, succesor) este un obiectprivilegiat al acestei clase.

    12

  • fmod ... endfm

    fmod MYNATLIST is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    endfm

    Structura generala a unui modul: importuri (protecting, extending, including), declararea sorturilor si a subsorturilor, declararea operatiilor, declararea variabilelor, ecuatii.

    13

    Importuri

    Exista trei modalitati de importare a modulelor

    I protectingse foloseste atunci cand datele definite in modulul importantnu sunt afectate de operatiile dau ecuatiile noului modul: nuse construiesc date noi pe sorturi vechi (no junk) si nu suntidentificate date care in modulul initial erau diferite (noconfusion)

    I extendingpermite aparitia unor date noi pe sorturile vechi (junk) darnu permite identificarea datelor care in modulul initial eraudiferite (no confusion)

    I includingnu are restrictii

    14

    [assoc]

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    Atributul [assoc] inlocuieste ecuatiile:

    eq (L;P);Q = L;(P;Q) .

    eq L;(P;Q) = (L;P);Q .

    Ecuatiile definite cu eq sunt transformate in reguli de rescriere.Cele doua ecuatii care definesc asociativitatea duc la neterminarearescrierii, deci ele nu pot fi adaugate in sectiunea eq. Efectulatributului [assoc] este faptul ca rescrierea se face pe clase determeni modulo asociativitate. In mod asemanator, atributul[comm] se foloseste pentru a indica faptul ca o operatie estecomutativa.

    15

    Exemplul 2

    fmod MYNATLIST is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    endfm

    16

  • Exemplul 2

    Reprezentarea matematica:

    sort Nat ListNat .

    subsort Nat < ListNat .

    op 0 : -> Nat .

    op s_ : Nat -> Nat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat .

    Signatura (ordonat-sortata): ((S ,),)S = {Nat, ListNat}, S S , = {(Nat, ListNat)} = {0 : Nat, s : Nat Nat, nil : ListNat,

    ; : ListNat ListNat ListNat}

    17

    Exemplul 2

    Reprezentarea matematica:

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    Prezentare (multime de ecuatii):(1)L.ListNat(nil ; L = L)(2)L.ListNat(L; nil = L)(3)L.ListNatP.ListNatQ.ListNat((L; P); Q = L; (P; Q)) = {1, 2, 3}

    18

    Exemplul 2

    fmod MYNATLIST is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    endfm

    Reprezentarea matematica a unui modul este ospecificatie algebrica ordonat-sortata

    ((S ,),, )19

    Exemplul 2

    Date de tipul ListNat sunt:

    nil ; s 0

    s s 0 ; s 0 ; 0

    (nil ; s 0) ; s s 0 ; nil ; 0

    Aceste date le numim expresii sau termeni.Un program este un modul, adica o specificatie; modelulmatematic al unei specificatii este o algebra de termeni; oexecutie este o rescriere n algebra de termeni asociata.

    Maude> select MYNATLIST .

    Maude> reduce (nil ; s 0) ; s s 0 ; nil ; 0 .

    reduce in MYNATLIST : (nil ; s 0) ; s s 0 ; nil ; 0 .

    rewrites: 2 in 2753904389ms cpu (0ms real)

    result ListNat: s 0 ; s s 0 ; 0

    20

  • Exemplul 2

    Maude> set trace on .

    Maude> reduce (nil ; s 0) ; s s 0 ; nil ; 0 .

    reduce in MYNATLIST : (nil ; s 0) ; s s 0 ; nil ; 0 .

    *********** equation

    eq nil ; L = L .

    L --> s 0

    nil ; s 0 ---> s 0

    *********** equation

    eq nil ; L = L .

    L --> 0

    nil ; 0 ---> 0

    rewrites: 2 in 2753904388ms cpu (12ms real)

    result ListNat: s 0 ; s s 0 ; 0

    21

    Exemplul 2

    fmod MYNATLIST is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    endfm

    Ce date defineste MYNATLIST?

    22

    Exemplul 2

    fmod MYNATLIST is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    endfm

    Modulul MYNATLIST defineste

    k0Nk(secventele ordonate finite de numere naturale ).

    Maude> reduce (0 ; s 0 ) == (0 ; s 0 ; 0) .

    ...

    result Bool: false 23

    Exemplul 3

    fmod MYNATLIST1 is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc comm ] .

    var L : ListNat .

    var I : Nat .

    eq nil ; L = L .

    eq L ; nil = L .

    eq I ; I = I .

    endfm

    Maude> reduce (0 ; s 0) == (0 ; s 0 ; 0) .

    ...

    result Bool: true

    Ce defineste MYNATLIST1 ?24

  • Exemplul 4

    fmod COMPLEXINT is

    protecting INT .

    sort ComplexInt .

    subsort Int < ComplexInt .

    op _+i_ : Int Int -> ComplexInt .

    op i_ : Int -> ComplexInt .

    op _+_ : ComplexInt ComplexInt -> ComplexInt [ditto] .

    var z : Int .

    eq 0 +i z = i z .

    eq z +i 0 = z .

    ...

    endfm

    Observati suprancarcarea operatiei + si atributul [ditto]+ : Int Int > Int+ : ComplexInt ComplexInt > ComplexInt

    25

    Exemplul 5

    fmod GRUP is

    sort Element .

    op e : -> Element .

    op _+_ : Element Element -> Element [ assoc ] .

    op -_ : Element -> Element .

    vars x y : Element .

    eq e + x = x .

    eq x + e = x .

    eq (- x) + x = e .

    eq x + (- x) = e .

    eq - - x = x .

    eq - e = e .

    eq - (x + y) = (- y) + (- x) .

    endfm

    26

    TRS canonic

    O ecuatie l = r se transforma, prin orientare de la stanga ladreapta, ntr-o regula de rescriere l r . Ecuatiile modululuiGRUP determina astfel un sistem de rescriere canonic:

    I orice sir de rescrieri se termina,

    I ordinea de aplicare regulilor de rescriere nu schimba rezultatulfinal.

    O ecuatie t1 = t2 din teoria de ordinul I a grupurilor este verificatan orice grup daca si numai daca exista un termen t astfel ncatt1 t si t2 t.

    Maude-ul poate fi utilizat ca demonstrator.

    27

    Exemplul 5

    Maude> select GRUP .

    Maude> reduce x + (-( - y + x)) == y .

    reduce in GRUP : x + - (- y + x) == y .

    *********** equation

    eq - (x + y) = - y + - x .

    x --> - y

    y --> x

    - (- y + x) ---> - x + - - y

    *********** equation

    eq - - x = x .

    x --> y

    - - y ---> y

    28

  • Exemplul 5

    *********** equation

    eq x + - x = e .

    x --> x

    x + - x + y ---> e + y

    *********** equation

    eq e + x = x .

    x --> y

    e + y ---> y

    *********** equation

    (built-in equation for symbol _==_)

    y == y ---> true

    rewrites: 5 in 179156223ms cpu (23ms real)

    result Bool: true

    29

    Exemplul 6

    fmod MYNATLIST is

    protecting MYNAT .

    sort ListNat .

    subsort Nat < ListNat .

    op nil : -> ListNat .

    op _;_ : ListNat ListNat -> ListNat [ assoc ] .

    var L : ListNat .

    eq nil ; L = L .

    eq L ; nil = L .

    endfm

    fmod MYNATLIST2 is

    protecting MYNATLIST .

    op _ Bool .

    ...

    endfm30

    Exemplul 6

    fmod MYNATLIST2 is

    protecting MYNATLIST .

    op _ Bool .

    vars I J : Nat .

    eq s I < s J = I < J .

    eq 0 < s I = true .

    eq I < 0 = false .

    ceq I ; J = J ; I if (J < I ) .

    endfm

    Observati ecuatia conditionala

    ceq I ; J = J ; I if (J < I ) .

    Ce tip de date defineste modulul MYNATLIST2 ?31

    Exemplul 6

    Maude> select MYNATLIST2 .

    Maude> reduce s s s 0 ; s s 0 ; s s s 0 ; 0 .

    ...

    result ListNat: 0 ; s s 0 ; s s s 0 ; s s s 0

    Modulul MYNATLIST2 defineste liste de numere naturale ordonatecrescator.

    A se vedea si D. Dragulici, Revista de logica

    32

  • Exemplul 7

    fmod STACK{X :: TRIV} is

    sorts EmptyStack{X} NonEmptyStack{X} Stack{X} .

    subsorts EmptyStack{X} NonEmptyStack{X} < Stack{X} .

    op empty : -> EmptyStack{X} .

    op push : X$Elt Stack{X} -> NonEmptyStack{X} .

    op pop_ : NonEmptyStack{X} -> Stack{X} .

    op top_ : NonEmptyStack{X} -> X$Elt .

    var E : X$Elt .

    var S : Stack{X} .

    eq top push (E , S) = E .

    eq pop push (E , S) = S .

    endfm

    Modulul STACK{X} creaza o stiva generica.Parametrul formal X este descris de teoria TRIV

    fth TRIV is sort Elt. endfh 33

    Exemplul 8

    fth TRIV is

    sort Elt.

    endfh

    fmod STACK{X :: TRIV} is ... endfm

    Instantiind modulul parametru X cu modulul predefinit NATdefinim stivele de numere naturale.

    view Inst from TRIV to NAT is

    sort Elt to Nat .

    endv

    fmod STACKNAT is

    protecting STACK{Inst} .

    endfm34

    Exemplul 8

    Maude> select STACKNAT .

    Maude> show sorts .

    sort Bool .

    sort Zero . subsort Zero < Nat .

    sort NzNat . subsort NzNat < Nat .

    sort Nat . subsorts NzNat Zero < Nat .

    sort EmptyStack{Inst} .

    subsort EmptyStack{Inst} < Stack{Inst} .

    sort NonEmptyStack{Inst} .

    subsort NonEmptyStack{Inst} < Stack{Inst} .

    sort Stack{Inst} .

    subsorts NonEmptyStack{Inst} EmptyStack{Inst} < Stack{Inst} .

    35

    Limbajul Maude este un limbaj de specificatie bazat pe logicaecuationala. Un program este o colectie de module. Executia esteo rescriere. Cateva din caracteristicile acestui limbaj sunt:

    I modularizare si parametrizare,

    I definirea tipurilor de date este independenta de implementare,

    I extensibilitate,

    I permite tratarea erorilor si suprancarcarea operatiilor,

    I poate fi folosit ca demonstrator.

    36

  • Programare logica

    Signaturi. Algebre. Termeni

    37

    Multimi S-sortate

    S 6= I O multime S- sortata A este o familie A = {As}sS .I Daca A = {As}sS si B = {Bs}sS atunci

    I = {s}sS , s = or. s S ,I A B As Bs or. s S ,I A B = {As Bs}sS , A B = {As Bs}sS ,I A B = {As Bs}sS .

    Exemplu: S = {nat, bool}, A = {Anat ,Abool},Anat = N, Abool = {T ,F}

    sorturi=tipuri, elemente de sort s= date de tip s

    38

    Functii S-sortate

    A = {As}sS , B = {Bs}sS , C = {Cs}sSI O functie S- sortata f : A B este o familie de functii

    f = {fs}sS , unde fs : As Bs oricare s S .I Daca f : A B si g : B C , definim

    f ; g : A C , f ; g = {fs ; gs}sSI fs ; gs : As Cs ,

    fs ; gs(a) := gs(fs(a)) or. s S , a AsI 1A : A A, 1A = {1As}sSI (f ; g); h = f ; (g ; h) (compunerea este asociativa)

    I f ; 1B = f , 1A; f = f or. f : A B

    39

    Functii S-sortate

    A = {As}sS , B = {Bs}sS ,I O functie S-sortata f : A B se numeste

    injectiva, (surjectiva, bijectiva)daca fs este injectiva, (surjectiva, bijectiva) oricare s S .

    I O functie S-sortata f : A B se numeste inversabila dacaexista g : B A a.. f ; g = 1A si g ; f = 1B .

    Propozitie. O functie S-sortata f : A B este inversabila daca sinumai daca este bijectiva (fs este bijectiva oricare s S).

    40

  • Signaturi multisortate

    (S ,) signatura multisortata

    I S multimea sorturilorI multimea simbolurilor de operatii : s1 sn s

    I este simbolul (numele) operatieiI s1, , sn,s S

    s1, , sn sorturile argumentelors sortul rezultatului< s1 sn, s > aritatea operatiei

    I daca n = 0 atunci : s este simbolul unei operatii constanteI = (w ,s)wS,sS w ,s : w Sw = s1 sn S

    I este permisa suprancarcarea operatiilor

    41

    Signaturi

    (S ,) signatura multisortata

    I S :=

    n0 Sn

    S0 := {}, Sn := {s1 sn|si S or. i}I = (w ,s)wS,sS w ,s : w sw = s1 sn S

    I este suprancarcat (overloaded) daca w1,s1 w2,s2 si < w1, s1 >6=< w2, s2 >

    I este permisa suprancarcarea operatiilor

    42

    Exemple

    I BOOL = (S ,)I S = {bool}I = {T : bool ,F : bool ,

    : bool bool , : bool bool bool , : bool bool bool}

    I NAT = (S ,)I S = {nat}I = {0 : nat, succ : nat nat}

    43

    Exemple

    I NATBOOL = (S ,)I S = {bool , nat}I = {T : bool ,F : bool , 0 : nat,

    succ : nat nat,: nat nat bool}

    I = (w ,s)wS,sS,bool = {T ,F}, ,nat = {0},nat,nat = {succ}, nat nat,bool = {},w ,s = pentru celelalte < w , s > S S

    44

  • Exemple

    I STIVA = (S ,)I S = {elem, stiva}I = {0 : elem, empty : stiva,

    push : elem stiva stiva,pop : stiva stiva,top : stiva elem}

    45

    Exemple

    I AUTOMAT = (S ,)I S = {intrare, stare, iesire}I = {s0 : stare,

    f : intrare stare stare,g : stare iesire}

    I GRAF = (S ,)I S = {arc , nod}I = {v0 : arc nod , v1 : arc nod}

    46

    Signaturi ordonat-sortate

    (S ,,) signatura ordonat-sortataI (S ,) signatura multisortata

    I (S ,) multime partial ordonataI conditia de monotonie w1,s1 w2,s2 , w1 w2 s1 s2

    Exemplu:S = {elem, stiva, nvstiva}, elem stiva, nvstiva stiva = {empty : stiva, push : elem stiva nvstiva,

    pop : nvstiva stiva, top : nvstiva elem}.In practica se folosesc signaturi ordonat-sortate.

    47

    Algebre multisortate

    (S ,) - signatura multisortataO algebra multisortata de tip (S ,) este o pereche (AS ,A), unde

    I AS = {As}sS (multimea suport)I A = {A} (familie de operatii) a..

    I daca : s atunci A AsI daca : s1 sn s atunci A : As1 Asn As

    A = (AS ,A) este o (S ,)-algebra

    48

  • Exemple

    I BOOL = (S = {bool},) = {T : bool ,F : bool , : bool bool , : bool bool bool , : bool bool bool}

    I BOOL-algebra A:Abool := {0, 1}AT := 1, AF := 0, A(x) := 1 x ,A(x , y) := max(x , y), A(x , y) := min(x , y)

    I BOOL-algebra B:Bbool := P(N)BT := N, BF := , B(X ) := N \ X ,B(X ,Y ) := X Y , B(X ,Y ) := X Y

    49

    Exemple

    I NAT = (S = {nat},) = {0 : nat, succ : nat nat}

    I NAT -algebra A:Anat := NA0 := 0, Asucc(x) := x + 1

    I NAT -algebra B:Bnat := {0, 1}B0 := 0, Bsucc(x) := 1 x

    I NAT -algebra C :Cnat := {2n|n N}C0 := 1, Csucc(2

    n) := 2n+1

    50

    Exemple

    I STIVA = (S = {elem, stiva},) = {0 : elem, empty : stiva, pop : stiva stiva,

    push : elem stiva stiva, top : stiva elem}I STIVA-algebra A: Aelem := N, Astiva := N

    A0 := 0, Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I STIVA-algebra B: Belem := {0}, Bstiva := NB0 := 0, Bempty := 0, Bpush(0, n) := n + 1 or. n,Bpop(0) := 0, Bpop(n) := n 1 pt. n 1,Btop(n) := 0 or. n.

    51

    Exemple

    I AUTOMAT = (S = {intrare, stare, iesire},) = {s0 : stare, f : intrare stare stare,

    g : stare iesire}I AUTOMAT -algebra A:

    Aintrare = {x , y}, Astare = {s0, s1}, Aiesire := {T ,F}As0 := s0, Ag (s0) := F , Ag (s1) := T ,Af (x , s0) := s0, Af (y , s0) := s1,Af (x , s1) := s0, Af (y , s1) := s1

    I AUTOMAT -algebra B:Bintrare = Bstare = Biesire := NBs0 := 0, Bf (m, n) := m + n, Bg (n) := n + 1

    52

  • Algebre ordonat-sortate

    (S ,,) signatura ordonat-sortataO algebra ordonat-sortata de tipul (S ,,) este o (S ,)-algebra(AS ,A) care satisface urmatoarele proprietati:

    I s1 s2 As1 As2I w1,s1 w2,s2 , w1 w2

    Aw2,s2 (x) = Aw1,s1 (x) oricare x Aw1 .

    I Semantica unui modul functional in Maude este o algebraordonat-sortata.

    53

    Multime de variabile

    (S ,) signatura multisortata

    || := w ,s w ,s|X | := sS Xs daca X multime S-sortataO multime de variabile este o multime S-sortata X a..:

    I Xs Xs = or. s 6= s I |X | || =

    simbolurile de variabile sunt distincte ntre ele si sunt distincte desimbolurile de operatii din

    54

    Termeni (expresii, cuvinte)

    (S ,) signatura, X multime de variabile

    Multimea S-sortata termenilor cu variabile din X , T(X ), este ceamai mica multime de siruri finite peste alfabetul

    L =

    sS Xs

    w ,s w ,s {(, )} {,}care verifica urmatoarele proprietati:

    I (T1) Xs T(X )sI (T2) dc. : s, at. T(X )s ,I (T3) dc. : s1 sn s si ti T(X )si or. i = 1, . . . , n

    at. (t1, . . . , tn) T(X )s . Var(t) := multimea variabilelor care apar n t T

    55

    Termeni fara variabile (ground terms)

    (S ,) signatura multisortata

    Multimea S-sortata termenilor fara variabile, T, este cea maimica multime de siruri finite peste alfabetul

    L =

    w ,s w ,s {(, )} {,}care verifica urmatoarele proprietati:

    I (T2) dc. : s, at. T,s ,I (T3) dc. : s1 sn s si ti T,si or. i = 1, . . . , n

    at. (t1, . . . , tn) T,s . T = T()

    56

  • Exemple

    I STIVA = (S ,)S = {elem, stiva}, Xelem = {x , y}, Xstiva = , = {0 : elem, empty : stiva,

    push : elem stiva stiva,pop : stiva stiva,top : stiva elem}

    I T(X )elem = {0, x , y , top(pop(empty)),top(push(x, empty)), . . .}

    T(X )stiva = {empty,push(y , empty),pop(empty),push(top(empty), empty), . . .}

    I siruri care nu sunt termenipop(0), (pop)top(empty), empty(y), . . .

    57

    Exemple

    I NATBOOL = (S ,)S = {bool , nat} = {T : bool ,F : bool , 0 : nat,

    s : nat nat,: nat nat bool}

    I TNATBOOL,nat = {0, s(0), s(s(0)), . . .}TNATBOOL,bool = {T,F, (0, 0), (0, s(0)), . . .}

    I siruri care nu sunt termeni (T ,F ), s (0), Ts(0), . . .

    58

    Exemple

    I AUTOMAT = (S ,), S = {intrare, stare, iesire}, = {s0 : stare,

    f : intrare stare stare,g : stare iesire}

    TAUTOMAT ,stare = {s0}, TAUTOMAT ,intrare = ,TAUTOMAT ,iesire = {g(s0)}

    I GRAF = (S ,), S = {arc , nod} = {v0 : arc nod , v1 : arc nod}TGRAF ,arc = TGRAF ,nod =

    59

    Expresii aritmetice

    I NATEXP = (S = {nat},)I = {0 : nat, s : nat nat ,

    + : nat nat nat, : nat nat nat}I TNATEXP = {0, s(0), s(s(0)), . . .

    +(0, 0),(0,+(s(0), 0)),(s(0), s(s(0))), . . .}I siruri care nu sunt termeni

    +(0), 0(s)s(0), (0), . . .I TNATEXP este multimea expresiilor aritmetice peste N.

    60

  • Inductia pe termeni

    (S ,) signatura multisortata, X multime de variabileFie P o proprietate a.. urmatoarele conditii sunt satisfacute:

    I pasul initial:P(x) = true or. x X , P() = true or. : s,

    I pasul de inductie:daca t1 T(X )s1 , . . ., tn T(X )sn siP(t1) = = P(tn) = true atunciP((t1, . . . , tn)) = true or. : s1 . . . sn s.

    Atunci P(t) = true oricare t T(X ).

    61

    Algebra termenilor

    Algebra termenilor

    (S ,) signatura, X multime de variabileMultimea termenilor T(X ) = {T(X )s}sS este (S ,)-algebracu operatiile definite astfel:

    I pt. : s, operatia corespunzatoare este T := I pt. : s1 sn s, operatia corespunzatoare este

    T : T(X )s1 T(X )sn T(X )sT(t1, . . . , tn) := (t1, . . . , tn)or. t1 T(X )s1 , . . ., tn T(X )sn

    T(X ) algebra termenilor cu variabile din XT algebra termenilor fara variabile (X = )

    62

    Algebra expresiilor aritmetice

    I NATEXP = (S = {nat},)I = {0 : nat, s : nat nat ,

    + : nat nat nat, : nat nat nat}I T0 := 0,

    I Ts(t) := s(t),

    I T+(t1, t2) := +(t1, t2)

    I T(t1, t2) := (t1, t2)

    I Semantica unui modul n Maude (care contine numaideclaratii de sorturi, operatii si variabile) este o algebra determeni.

    63 64

  • Programare logica

    Morfisme.Tipuri abstracte de date.

    Algebre initiale

    65

    Morfisme

    Exemplu. SignaturaMONOID = (S = {s}, = {e : s, : ss s})Fie (A, 1, ?) si (B, 0,+) monoizi(Ae := 1, A := ?, Be := 0, B := +)O functie f : A B este morfism de monoizi daca:I f (1) = 0 f (Ae) = BeI f (x ? y) = f (x) + f (y) f (A(x , y)) = B(f (x), f (y))

    or. x , y A.

    A A A Af f f B B B B

    66

    Morfisme

    (AS ,A), (BS ,B) (S ,)-algebre

    Un morfism de (S ,)-algebre ((S ,)-morfism) este o functieS-sortata f : A B care verifica conditiile de compatibilitate:I fs(A) = (B) oricare : s,I fs(A(a1, . . . , an)) = B(fs1(a1), . . . , fsn(an))

    or. : s1 sn s, or. (a1, . . . , an) As1 Asn .

    As1 Asn A Asfs1 . . . fsn fsBs1 Bsn B Bs

    Observatie

    1A : A A este morfism or. A (S ,)-algebra.67

    Exemplu

    I NAT = (S = {nat}, = {0 : nat, succ : nat nat})I NAT -algebra A:

    Anat := N, A0 := 0, Asucc(x) := x + 1I NAT -algebra B:

    Bnat := {0, 1}, B0 := 0, Bsucc(x) := 1 xI f : A B, f = {fnat}, fnat(n) = n(mod 2)

    este morfism de NAT -algebre

    I Nu exista morfism de NAT -algebre g : B A.

    68

  • Exemple

    I STIVA = (S = {elem, stiva},) = {0 : elem, empty : stiva, pop : stiva stiva,

    push : elem stiva stiva, top : stiva elem}I STIVA-algebra A: Aelem := N, Astiva := N

    A0 := 0, Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I STIVA-algebra B: Belem := {0}, Bstiva := NB0 := 0, Bempty := 0, Bpush(0, n) := n + 1 or. n,Bpop(0) := 0, Apop(n) := n 1 pt. n 1,Btop(n) := 0 or. n.

    69

    Exemple

    I STIVA-algebra A = (Aelem = N,Astiva = N, . . .)I STIVA-algebra B = (Belem = {0},Bstiva := N, . . .)I f : A B, f = (felem : N {0}, fstiva : N N)

    felem(n) := 0 or. n,fstiva() := 0, fstiva(n1 nk) := k pt. k 1

    I g : B A, g = (gelem : {0} N, gstiva : N N)gelem(0) := 0,gstiva(0) := , gstiva(k) := 0 0

    k

    pt. k 1

    f si g sunt morfisme de STIVA-algebre

    70

    Morfisme de mpo

    Observatie.

    Multimile partial ordonate se pot reprezenta ca (S ,)-algebre,S := {elem, bool}, := {: elem elem bool ,T : bool ,F : bool}.I Mpo (A,) este reprezentata ca (S ,)-algebra prin

    (A, {0, 1} ,T ,F ), undeAelem := A, Abool := {0, 1}, AT := 1, AF := 0,A(x , y) = T x y

    I Ce relatiile este ntre functii crescatoare si morfisme de(S ,)-algebre?

    I Orice (S ,)-morfism este functie crescatoare dar invers nueste adevarat!

    71

    Proprietati

    (S ,) signatura multisortata

    Propozitia 1.

    Fie A, B, C algebre si f : A B, g : B C morfisme. Atuncif ; g : A C este morfism.Dem.

    I : s (f ; g)s(A) = gs(fs(A)) = gs(B) = C,

    I : s1 sn s , (a1, . . . , an) As1 Asn(f ; g)s(A(a1, . . . , an)) = gs(fs(A(a1, . . . , an))) =

    gs(B(fs1(a1), . . . , fsn(an))) =C(gs1(fs1(a1)), . . . , gsn(fsn(an)))= C((g ; f )s1(a1), . . . , (g ; f )sn(an)). qed

    72

  • Proprietati

    Teorema 2.

    Exista un unic morfism f : T B or. B (S ,)-algebra.Dem. Fie B (S ,)-algebra.Existenta. Definim f : T B prin inductie pe termeni

    (P(t) = f (t) este definita).

    I pasul initial: dc. : s , at. fs() := B,I pasul de inductie: dc. : s1 . . . sn s si

    t1 Ts1 , . . ., tn Tsn a. fs1(t1), , fsn(tn) definite at.fs((t1, . . . , tn)) := B(fs1(t1), , fsn(tn))

    Conform principiului inductiei pe termeni,fs(t) este definita or. t T.

    73

    Continuare

    Demonstram ca f este morfism.

    I dc. : s , at. fs(T) = fs() = B,I dc. : s1 . . . sn s si

    t1 Ts1 , . . ., tn Tsn at.fs(T(t1, . . . , tn)) = fs((t1, . . . , tn))

    = B(fs1(t1), , fsn(tn))

    74

    Continuare

    Unicitatea. Fie g : T B un morfism.Demonstram ca g = f prin inductie pe termeni

    (P(t) = dc. t Ts at. gs(t) si fs(t) sunt egale).

    I pasul initial: dc. : s , at. gs() = B = fs(),I pasul de inductie: dc. : s1 . . . sn s si

    t1 Ts1 , . . ., tn Tsn a.gs1(t1) = fs1(t1), , gsn(tn) = fsn(tn) at.

    gs((t1, . . . , tn)) = B(gs1(t1), , gsn(tn)) =B(fs1(t1), , fsn(tn)) = fs((t1, . . . , tn))

    Conform principiului inductiei pe termeni,gs(t) = fs(t) or. t Ts , adica g = f . qed

    75

    Exemplu

    (S ,) signatura multisortata

    I D = (DS ,D), Ds := N or. s Sdaca : s atunci D := 0,daca : s1 . . . sn s, k1, . . ., kn ND(k1, . . . , kn) := 1 + max(k1, . . . , kn)

    I fD : T D unicul morfismCe reprezinta valoarea fD(t) pentru un termen t?

    76

  • Termeni ca arbori

    Un termen t poat fi reprezentat ca un arbore arb(t) astfel:

    I Ts arb() := I t = (t1, . . . , tn)

    arb(t) :=

    ##{{arb(t1) arb(tn)

    Pentru orice t valoarea fD(t) este adancimea arborelui arb(t).

    77

    Izomorfisme

    Un (S ,)-morfism f : A B este izomorfism daca exista unmorfism g : B A a.. f ; g = 1A si g ; f = 1B .

    Propozitia 3

    Un morfism f : A B este izomorfism daca si numai daca estefunctie bijectiva, adica fs : As Bs este bijectie oricare s S .Dem. Revine la a demonstra ca implicatia:

    f morfism si bijectie f 1 morfism.

    78

    Continuare

    Demonstram ca f 1 : B A este morfism.I dc. : s , at. fs(A) = B, deci f 1s (B) = A,I dc. : s1 . . . sn s si

    b1 Bs1 , . . ., bn Bsn at.ex. a1 As1 , . . ., an Asn a..fs1(a1) = b1, . . ., fsn(an) = bn si

    fs(A(a1, . . . , an)) = B(fs1(a1), . . . , fsn(an)) = B(b1, . . . , bn)

    Atunci fs1(B(b1, . . . , bn)) = A(a1, . . . , an) =

    A(fs11(b1), . . . , fsn

    1(bn)). qed

    79

    Izomorfisme de mpo

    I (A = {x1, x2, x3, x4},), unde x1 x2 x3 x4I (B = {0, 1}2,), unde ordinea pe componenteI A si B sunt (S ,)-algebre, unde

    S := {elem, bool}, := {: elem elem bool ,T : bool ,F : bool}

    I f : A Bf (00) = x1, f (01) = x2, f (10) = x3, f (11) = x4este functie bijectiva si crescatoare

    I A 6' B

    80

  • Izomorfisme

    Spunem ca algebrele A = (AS ,A) si B = (BS ,B) sunt izomorfedaca exista un izomorfism f : A B. In acest caz notam A ' B.I A ' A (1A este izomorfism)I A ' B B ' AI A ' B, B ' C A ' C

    Relatia de izomorfism este o relatie de echivalenta (reflexiva,simetrica si tranzitiva).

    Observatie.

    A ' B As ' Bs oricare s S

    81

    Exemple

    I NAT = (S = {nat}, = {0 : nat, succ : nat nat})I NAT -algebra A: Anat = N, A0 := 0, Asucc(x) := x + 1I NAT -algebra B: Bnat := {0, 1}, B0 := 0, Bsucc(x) := 1 xI NAT -algebra C : Cnat := {2n|n N}

    C0 := 1, Csucc(2n) := 2n+1

    I A 6' BI A ' C

    f : A C , f (n) := 2n este un NAT -izomorfism.

    82

    Exemple

    I BOOL = (S = {bool},) = {T : bool ,F : bool , : bool bool , : bool bool bool , : bool bool bool}

    I Abool := {0, 1}AT := 1, AF := 0, A(x) := 1 x ,A(x , y) := max(x , y), A(x , y) := min(x , y)

    I Bbool := P(N)BT := N, BF := , B(X ) := N \ X ,B(X ,Y ) := X Y , B(X ,Y ) := X Y

    I A 6' B

    83

    Exemple

    I BOOL-algebra C :Cbool := {t : N {0, 1}| t functie}CT (n) := 1, CF (n) := 0 or. n NC(t)(n) := 1 t(n) or. t Cbool , n NC(t1, t2)(n) := max(t1(n), t2(n)) or. t1, t2 Cbool , n NC(t1, t2)(n) := min(t1(n), t2(n)) or. t1, t2 Cbool , n N

    I B ' Cf : B C , f (Y ) := Y oricare Y P(N)f (Y )(n) = 1 daca n Y , f (Y )(n) = 0 daca n 6 Yf este BOOL-izomorfism

    84

  • Exemple

    I STIVA-algebra A = (Aelem = N,Astiva = N, . . .)

    I STIVA-algebra B = (Belem = {0},Bstiva := N, . . .)I A 6' B

    85

    Exemple

    I STIVA-algebra A: Aelem := N, Astiva := N A0 := 0,Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I STIVA-algebra C : Celem := Z, Cstiva := ZC0 := 0, Cempty := , Cpush(x , x1 xk) := x1 xkx ,Cpop() = Cpop(x) := ,Cpop(x1 xk1xk) := x1 xk1 pt. k 2,Ctop() := 0, Ctop(x1 xk) := xk pt. k 1.

    86

    Exemple

    I STIVA-algebra A: Aelem := N, Astiva := N

    I STIVA-algebra C : Celem := Z, Cstiva := Z

    I f : A C , f = (felem : N Z, fstiva : N Z)felem(2k) := k , felem(2k + 1) := k 1 pt. k N,fstiva(n1 nk) := felem(nk) felem(n1) pt. n1 nk N.f este STIVA-izomorfism

    I Algebrele izomorfe sunt identice (modulo redenumire).

    87

    ADT

    I Un tip abstract de date este o multime de date ( valori) sioperatii asociate lor, a caror descriere (specificare) esteindependenta de implementare.abstract=disassociated from any specific instance

    I O algebra este formata dintr-o multime de elemente si omultime de operatii. Algebrele pot modela tipuri de date.

    I Doua algebre izomorfe au acelasi comportament, deci trebuiesa fie modele ale acelasi tip de date. Aceasta asiguraindependenta de implementare.

    88

  • ADT

    I O signatura (S ,) este interfata sintactica a unui tip abstractde date.

    I O algebra A = (AS ,A) este o posibila implementare.

    I Daca A ' B, atunci A si B implementeaza acelasi tip de date.I Un tip abstract de date este o clasa C de (S ,)-algebre cu

    proprietatea ca oricare doua algebre sunt izomorfe:

    A, B C A ' B.I [A] := {B (S ,) algebra| A ' B} este tip abstract de date.

    89

    Algebra initiala

    K clasa de (S ,)-algebreI O (S ,)-algebra I este initiala n K daca I K si pentru

    orice B K exista un unic morfism f : I B.

    Propozitia 4

    I (a) I initiala n K, A K, A ' I A initiala n KI (b) A1 si A2 initiale n K A1 ' A2.

    90

    Continuare

    Dem. (a) I initiala n K, A K si A : A I izomorfismFie B K si fB : I B unicul morfism. Demonstram ca exista ununic morfism h : A B.I Existenta. h := A; fB : A B mofismI Unicitatea. daca g : A B morfism, atunci A1; g : I B

    morfism,deci A1; g = fB ; rezulta g = A; fB = h.

    (b) A1 si A2 initiale n KExista un unic morfism f : A1 A2 si un unic morfismg : A2 A1. Atunci f ; g : A1 A1 si 1A1 : A1 A1, decif ; g = 1A1 . Analog g ; f = 1A2 , deci A1 ' A2. qed

    91

    (S ,) -algebra initiala

    (S ,) signatura multisortata

    I K clasa tuturor (S ,)-algebrelor.I I este (S ,)-algebra initiala daca oricare B (S ,)-algebra

    exista un unic morfism f : I B.Teorema 2. T este (S ,)-algebra initiala.

    I I(S ,) = {I | I (S ,) -algebra initiala}este un tip abstract de date si T I(S ,).Un modul functional n Maude (care contine numai declaratiide sorturi si operatii) defineste un astfel de tip abstract dedate si construieste efectiv algebra T.

    92

  • Programare logica

    Subalgebre. Algebre libere

    93

    Subalgebre

    (S ,) - signatura multisortata, A (S ,)-algebra

    B A este parte stabila a lui A dacaI A Bs or. : s,I A(b1, . . . , bn) Bs or. : s1 sn s,

    or. (b1, . . . , bn) Bs1 Bsn .

    Daca B este parte stabila a lui A atunci(BS = B,B) este (S ,)-subalgebra a lui (AS ,A), unde

    I B := A or. : s,I B(b1, . . . , bn) := A(b1, . . . , bn) or. : s1 sn s,

    or. (b1, . . . , bn) Bs1 Bsn .

    94

    Exemple

    I BOOL-algebra B:Bbool := P(N)BT := N, BF := , B(X ) := N \ X ,B(X ,Y ) := X Y , B(X ,Y ) := X Y

    I B1 = {,N} {{n}|n N}nu este subalgebra.

    I B2 = {,N} {{n},N \ {n}}este subalgebra (n N fixat).

    95

    Exemple

    I AUTOMAT -algebra AAintrare = {x , y}, Astare = {s0, s1}, Aiesire := {T ,F}As0 := s0, Ag (s0) := F , Ag (s1) := T ,Af (x , s0) := s0, Af (y , s0) := s1,Af (x , s1) := s0, Af (y , s1) := s1

    I P = {Pintrare := {x},Pstare := {s0},Piesire := {F}}este subalgebra A

    96

  • Multimi de generatori

    (S ,) signatura multisortata,A-algebra, X multime, X AI Algebra generata de X n A este cea mai mica () subalgebra

    B a lui A cu X B. Vom nota B = XI F := {B A |B subalgebra, X B}

    I A F , deci F 6= I {Bi}iI F implica

    iI Bi F

    I X ={B | B F}

    I Spunem ca A este generata de X daca X A si X = A. Inacest caz X este multime de generatori pentru A.

    97

    Constructia algebrei generate

    (S ,) signatura multisortata,A-algebra, X multime, X A

    I Construim un sir de multimi S-sortate (Xn)n astfel:

    I X0 := X ,I Xn+1,s := Xn,s {A | : s} {A(a1, . . . , an) | : s1 . . . sn s, (a1, . . . , an) Xn,s1 Xn,sn}.

    I Propozitia 5. X =

    n Xn.Dem: va fi adaugata!

    98

    Proprietati

    h : A B functieh1 : P(B) P(A), h1(Y ) := {a A|h(a) Y }imaginea inversa

    Propozitia 6.

    Fie h : A B morfism.I (a) dc. C A subalgebra at. h(C ) B subalgebra,I (b) dc. D B subalgebra at. h1(D) B subalgebra,I (c) h( X ) = h(X ) pentru X A,I (d) h1(Y ) h1( Y ) pentru Y B.

    Dem. (a), (b), (d) exercitii.

    99

    Continuare

    (c) h( X ) = h(X ) pentru X A,.

    X A subalgebra h( X ) B subalgebra

    h( X ) B subalgebra, h(X ) h( X ) h(X ) h( X )

    h1(h(X )) A subalgebra, X h1(h(X )) X h1(h(X )) h(X ) h(h1(h(X ))) h(X )

    h(X ) h( X ) csi h(X ) h(X ) h(X ) = h(X )

    100

  • Algebre libere

    (S ,) signatura multisortata, X multime de variabile

    O algebra A este liber generata de X daca

    X A, oricare ar fi B o algebra si f : X B o functie exista un unic

    morfism f : A B cu fs(x) = fs(x) oricare x Xs , s S .

    Observatii Daca A1 si A2 sunt liber generate de X , atunci A1 ' A2. Daca X A si A este liber generata de X , atunci X = A.

    Invers nu este ntotdeauna a adeva rat.

    I T este liber generata de multimea .

    101

    Multimi de generatori liberi

    (S ,) signatura multisortata,A-algebra, X multime de variabile, X ADaca A este liber generata de X , atunci X = A.Spunem ca X este multime de generatori liberi pentru A.

    I NAT = (S = {s},), = {0 : nat, succ : nat nat}Anat := N, A0 := 0, Asucc(x) := x + 1 A este liber generata de {1} este multime de generatori pentru A {1} nu este multime de generatori liberi pentru A

    102

    Exemple

    I STIVA = (S = {elem, stiva},) = {0 : elem, empty : stiva, pop : stiva stiva,

    push : elem stiva stiva, top : stiva elem}I STIVA-algebra A: Aelem := N, Astiva := N

    A0 := 0, Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I Daca P := atunci Pelem = {0} si Pstiva = {0}.I A este liber generata de X , unde Xelem := N si Xstiva := .

    103 104

  • Programare logica

    Semantica termenilor

    105

    Multime de variabile

    (S ,) signatura multisortata

    || := w ,s w ,s|X | := sS Xs daca X multime S-sortataO multime de variabile este o multime S-sortata X a..:

    I Xs Xs = or. s 6= s I |X | || =

    simbolurile de variabile sunt distincte ntre ele si sunt distincte desimbolurile de operatii din

    106

    Termeni cu variabile din X

    (S ,) signatura, X multime de variabile

    Multimea S-sortata termenilor cu variabile din X , T(X ), este ceamai mica multime de siruri finite peste alfabetul

    L =

    sS Xs

    w ,s w ,s {(, )} {,}care verifica urmatoarele proprietati:

    I (T1) Xs T(X )sI (T2) dc. : s, at. T(X )s ,I (T3) dc. : s1 sn s si ti T(X )si or. i = 1, . . . , n

    at. (t1, . . . , tn) T(X )s .

    107

    Algebra de termeni T(X )

    (S ,) signatura, X multime de variabileMultimea termenilor T(X ) = {T(X )s}sS este (S ,)-algebraastfel:

    I pt. : s, operatia corespunzatoare este T := I pt. : s1 sn s, operatia corespunzatoare este

    T : T(X )s1 T(X )sn T(X )sT(t1, . . . , tn) := (t1, . . . , tn)or. t1 T(X )s1 , . . ., tn T(X )sn

    T(X ) algebra termenilor cu variabile din X vom nota (t1, . . . , tn) := (t1, . . . , tn)

    108

  • Semantica termenilor

    (S ,) signatura, X multime de variabile

    Teorema 7 (Evaluarea termenilor n algebre).

    Fie A o (S ,)-algebra. Orice functie e : X A (evaluare,atribuire, interpretare)se extinde la un unic (S ,)-morfisme : T(X ) A.Dem.

    I Definim e(t) prin inductie pe termeni:I or. x Xs , es(x) := es(x),I or. : s, es() := AI or. : s1 sn s, or. t1 T(X )s1 , . . ., tn T(X )sn

    es((t1, . . . , tn)) := A(es1 (t1), . . . , esn(tn))

    I Demonstram ca e : T(X ) A este morfism.I Daca f : T(X ) A morfism si f |X = e atunci se

    demonstreaza prin inductie pe termeni ca f = e.109

    Semantica expresiilor aritmetice

    I NATEXP = (S = {nat},), X = {x , y}I = {0 : nat, s : nat nat ,

    + : nat nat nat, : nat nat nat}I TNATEXP(X ) = {0, x , y , s(0), s(x), s(y), s(s(0)), . . .

    +(0, 0),+(0, x),+(x , y), (0,+(s(0), x)), (s(y), s(s(x))), . . .}I A = (Z4, 0, s,+, ) cu operatiile obisnuiteI e : {x , y} Z4, e(x) := 1, e(y) := 3I e(+(x, y)) = A+(e(x), e(y)) = 1 + 3 = 0 (mod 4)

    e((s(x), s(s(0)))) = A(As(e(x)),As(As(A0))) =(1 + 1) (0 + 1 + 1) = 2 2 = 0 (mod 4)

    110

    Exemple

    I STIVA = (S = {elem, stiva},) = {0 : elem, empty : stiva, pop : stiva stiva,

    push : elem stiva stiva, top : stiva elem}I STIVA-algebra A: Aelem := N, Astiva := N

    A0 := 0, Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I STIVA-algebra B: Belem := {0}, Bstiva := NB0 := 0, Bempty := 0, Bpush(0, n) := n + 1 or. n,Bpop(0) := 0, Bpop(n) := n 1 pt. n 1,Btop(n) := 0 or. n.

    111

    Exemplu

    Xelem := {x , y}, Xstiva := {s},t := push(x, push(y, s)) T(X )stivaI e : X A

    e(x) := 5, e(y) := 3, e(s) := 6 7

    e(t) = Apush(e(x),Apush(e(y), e(s))) = 5 3 6 7

    I e : X Be(x) := 0, e(y) := 0, e(s) := 10

    e(t) = Bpush(e(x),Bpush(e(y), e(s))) =(10 + 1) + 1 = 12

    112

  • Consecinte

    I T(X ) este (S ,)-algebra liber generata de X n clasa tuturor(S ,)-algebrelor.

    o expresie este un element al unei algebre libere

    I X = T este (S ,)-algebra initiala.

    I A = T(Y )O substitutie este o atribuire : X T(Y ).Orice substitutie : X T(Y ) se extinde la un unicmorfism de (S ,)-algebre : T(X ) T(Y ).

    113

    Proprietati

    Propozitia 8.

    Fie A o (S ,)-algebra. Daca f : T(X ) A si g : T(X ) Asunt morfisme, atunci g = f g |X = f |XDem. Presupunem ca gs(x) = fs(x) or. s S , x Xs .Demonstram ca g = f prin inductie pe termeni

    I pasul initial: dc. s S si x Xs at. gs(x) = fs(x) (ipoteza),dc. : s , at. gs() = A = fs(),

    I pasul de inductie: dc. : s1 . . . sn s sit1 T(X )s1 , . . ., tn T(X )sn a.

    gs1(t1) = fs1(t1), , gsn(tn) = fsn(tn) at.gs((t1, . . . , tn)) = A(gs1(t1), , gsn(tn)) =

    A(fs1(t1), , fsn(tn)) = fs((t1, . . . , tn))Conform principiului inductiei pe termeni,gs(t) = fs(t) or. t T(X )s , adica g = f .

    114

    Proprietati

    Propozitia 9.

    X ' Y T(X ) ' T(Y )Dem. Fie u : X Y o functie bijectiva. Din Teorema 7 rezulta caI exista un unic morfism f : T(X ) T(Y ) a.

    fs(x) = us(x) or. s S , x Xs ,I exista un unic morfism g : T(Y ) T(X ) a.

    gs(y) = u1s (y) or. s S , y Xs .Observam ca (f ; g)s(x) = gs(fs(x)) = x or. s S , x X .Aplicand Propozitia 6, obtinem ca f ; g = 1T(X ).

    Similar, g ; f = 1T(Y ), deci T(X ) ' T(Y ).

    115

    Proprietati

    Propozitia 10.

    Fie h : A B morfism surjectiv.Or. f : T(X ) B morfism,ex. g : T(X ) A a. . g ; h = f

    Ah // B

    T(X )

    f

    OO

    g

    bb

    Dem. Daca f : T(X ) B morfism, atuncior. s S , x Xs ex. a As a.. hs(a) = fs(x).Oricare s S , x Xs , alegem a As a.. hs(a) = fs(x) si definimes(x) := a. Atunci e : X A este o evaluare si .(e; h)s(x) = fs(x) r. s S , x Xs .Din Teorema 7, e; h = f , deci g := e.

    116

  • Definirea operatiilor derivate

    A o -algebra, t T(X )Definim functia termen At : A

    n A prinAt(a1, . . . , an) := e(t), unde e(xi ) := ai or. i = 1, . . . , n

    At este operatie derivata pe A

    I = {0, 1,,, } signatura algebrelor Boole,X = {x , y}, t = x y T(X )Daca B este o algebra Boole, atunciBt(b1, b2) = b1 b2 oricare b1, b2 B.

    117

    Semantica instructiunii de atribuire x:=e

    I X este multimea variabilelor, x X , t T(X )I D este -algebra datelor

    I o stare a memoriei este o functie e : X DI semantica unei instructiuni descrie modul n care instructiunea

    modifica starile memoriei

    I Mem := {e : X D| e functie}Sem(x := t) : Mem MemSem(x := t)(e)(y) :=

    {e(t) daca y = x ,e(y) daca y 6= x .

    118

    119 120

  • Programare logica

    Ecuatii. Relatia de satisfacere.

    121

    Ecuatiile si semantica lor

    (S ,) signatura multisortata

    I O (S ,)-ecuatie este formata dintr-o multime de variabile Xsi din doi termeni t si t de acelasi sort din T(X ).Vom nota o ecuatie prin

    (X )t =s t .

    I Spunem ca o (S ,)-algebra A satisface o ecuatie (X )t =s t (A este model al ecuatiei) daca es(t) = es(t ) pentru oricee : X A. In acest caz, vom nota

    A |= (X )t =s t .

    = egalitate formala, = egalitate efectiva

    122

    Necesitatea cuantificarii

    I S = {s, bool}, := {T : bool ,F : bool , g : s bool}I T,s = , T,bool = {T ,F}I T 6|= ()T =bool FI T |= (X )T =bool F ,

    unde Xs := {x}, Xbool :=

    123

    Ecuatiile conditionate

    O (S ,)-ecuatie conditionata este notata prin

    (X )t =s t if H.

    si este formata din:

    I o multime de variabile X ,

    I doi termeni de acelasi sort t, t T(X )s .I o multime H de ecuatii u

    =s v , cu u,v T(X )s .

    In practica H este finita H = {u1 =s1 v1, . . . , un =sn vn}.Ecuatiile din H sunt cuantificate cu X .

    O ecuatie (X )t =s t este ecuatie conditionata n care multimeaconditiilor H este vida (X )t =s t if .

    124

  • Ecuatiile conditionate

    A (S ,)-algebra A, := (X )t =s t if H

    A satisface (A este model al lui ) daca,

    es(u) = es(v) or. u

    =s v H es(t) = es(t ).

    pentru orice e : X A.Vom nota A |= (X )t =s t if H.

    I A |= (X )t =s t A |= (X )t =s t if

    125

    Exemplu

    I STIVA = (S ,), Xelem := {E}, Xstiva := {S ,Q} := (X )top(S) =elem E if {S =stiva push(E ,Q)}

    I STIVA-algebra A: Aelem := N, Astiva := NA0 := 0, Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I STIVA-algebra B: Belem := {0}, Bstiva := NB0 := 0, Bempty := 0, Bpush(0, n) := n + 1 or. n,Bpop(0) := 0, Bpop(n) := n 1 pt. n 1, Btop(n) := 0 or. n.

    I A |= si B |=

    126

    Exemplu

    Xelem := {E}, Xstiva := {S ,Q}A |= (X )top(S) =elem E if {S =stiva push(E ,Q)}Fie e : X A evaluare a. . estiva(S) = estiva(push(E ,Q)).Rezulta estiva(S) = Apush(eelem(E ), estiva(Q))

    Notam n = eelem(E ), w := estiva(S), w := estiva(Q).

    Rezulta w = nw si

    eelem(top(S)) = Atop(estiva(S)) = Atop(w) =Atop(nw

    ) = n = eelem(E )

    127

    Exemplu

    I STIVA = (S ,), Xelem := {E}, Xstiva := {S ,Q} := (X )top(S) =elem E if {S =stiva push(E ,Q)}

    I STIVA-algebra C : Celem := N, Cstiva := NC0 := 0, Cempty := , Cpush(n, n1 nk) := n1 nk n,Cpop() = Cpop(n) := ,Cpop(n1n2 nk) := n2 nk pt. k 2,Ctop() := 0, Ctop(n1 nk) := n1 pt. k 1.

    I C 6|= e : X C evaluarea definita prineelem(E ) = 2, estiva(Q) = 3 4, estiva(S) = 3 4 2

    Atunci estiva(S) = estiva(push(E ,Q)),

    dar eelem(E ) = 2 6= 3 = eelem(top(S)).128

  • Programare logica

    Specificatii algebrice

    129

    -algebre

    multime de ecuatii conditionate

    O algebra A este -algebra (A este model pentru )daca A |= oricare .In acest caz, vom nota A |= .

    Vom nota cu Alg(S ,, ) clasa -algebrelor

    Alg(S ,, ) := {A Alg(S ,) |A |= }

    130

    -algebre

    Teorema 11.

    Fie A ' B (S ,)-algebre, := (X )t =s t if H.A |= B |=

    Dem. Notam : B A un izomorfism.Fie e : X B a.. es(u) = es(v) or. u =s v H.Definim f : X A prin f := e;Atunci f = e;, deoarece f|X = (e;)|X .fs(u) = s(es(u)) = s(es(v)) = fs(v) or. u

    =s v H

    Din ipoteza rezulta fs(t) = fs(t ), i.e.s(es(t)) = s(es(t )). este injectiv, deci es(t) = es(t ).

    131

    Specificatii

    I O specificatie este un triplet (S ,, ), unde (S ,) este osignatura multisortata si este o multime de ecuatiiconditionate. Specificatia (S ,, ) defineste clasa modelelorAlg(S ,, ), care reprezinta semantica ei.

    I In Maude teoriile

    fth ... endfth

    au ca semantica Alg(S ,, ), unde S este multimeasorturilor, este multimea simbolurilor de operatii, estemultimea ecuatiilor definite n modul, iar fiecare ecuatieeq t = t si ceq t = t if Heste cuantificata de variabilele care apar n t si t.

    132

  • Specificatii echivalente

    fth GROUP is

    sort Element .

    op e : -> Element.

    op _+_ : Element Element -> Element [assoc] .

    op -_ : Element -> Element .

    vars x y : Element .

    eq e + x = x .

    eq x + e = x .

    eq (- x) + x = e .

    eq x + (- x) = e .

    endfth

    133

    Consecinte semantice

    (S ,, ) specificatie, ecuatie, multime de ecuatii

    Ecuatia este o consecinta semantica a lui daca

    A |= implica A |=

    pentru orice algebra A. In acest caz, vom nota |= .

    |= |= or.

    134

    Teoria grupurilor

    (S = {Element}, := {e,,+}, ) :=

    {({x , y , z})(x + y) + z = x + (y + z),({x})e + x = x ,({x})x + e = x ,({x})(x) + x = e,({x})x + (x) = e

    }I 1 := ({x , y , z})x = y if {x + z = y + z},I 2 := ({x , y})x + y = y + x

    |= 1, 6|= 2

    135

    Specificatii echivalente

    Doua specificatii (S ,, 1) si (S ,, 2) sunt echivalente dacadefinesc aceeasi clasa de modele:

    A |= 1 A |= 2

    Observatie

    Fie si multimi de ecuatii. Daca |= atunci (S ,, ) si(S ,, ) sunt specificatii echivalente.

    136

  • -algebra initiala

    (S ,, ) specificatie

    I, := {A | A initiala n Alg(S ,, )}este un tip abstract de date.

    I, reprezinta semantica unui modul functional n Maude

    fmod ... endfm

    unde S este multimea sorturilor, este multimea simbolurilor deoperatii, este multimea ecuatiilor definite n modul.Fiecare ecuatieeq t = t si ceq t = t if Heste cuantificata de variabilele care apar n t si t.

    137

    Specificatie corecta

    (S ,) o signatura multisortata, A (S ,)-algebra

    O specificatie (S ,, ) este adecvata pentru A daca A este-algebra initiala, i.e. A I,.

    Exemplu

    Determinati o specificatie adecvata pentru A = (Z4, 0, succ), undesucc(x) := x + 1 (mod 4).

    138

    Continuare

    fmod Z4 is

    sort s .

    op 0 : -> s .

    op succ : s -> s .

    vars x : s .

    eq succ(succ(succ(succ(x)))) = x .

    endfm

    S := {s}, := {0 : s, succ : s s}, := {(x)succ(succ(succ(succ(x)))) = x}A este -algebra initiala daca:

    I (a) A |= or. ,I (b) or. B |= ex. unic f : A B morfism.

    139

    Continuare

    A = (Z4, 0, succ), unde succ(x) := x + 1

    (a) A |= (x)succ(succ(succ(succ(x)))) = xDaca X := {x} si e : X A, atuncie(succ(succ(succ(succ(x))))) =

    Asucc(Asucc(Asucc(Asucc(e(x))))) = e(x) + 4 (mod 4)= e(x) = e(x)

    (b) Fie B o -algebra.Existenta: definim f : A B prinf (0) := B0, f (x + 1) := Bsucc(f (x)) pt. 0 x 2 .f morfism: f (Asucc(x)) = f (x + 1) = Bsucc(f (x)) pt. 0 x 2.Ramane de demontrat f (Asucc(3)) = Bsucc(f (3)).

    140

  • Continuare

    (1) f (Asucc(3)) = f (0) = B0

    (2) Bsucc(f (3)) = Bsucc(Bsucc(f (2))) =Bsucc(Bsucc(Bsucc(Bsucc(B0)))

    Deoarece B |= (x)succ(succ(succ(succ(x)))) = x ,pentru e : X B, e(x) := B0 obtinemBsucc(Bsucc(Bsucc(Bsucc(B0)))) = e

    (succ(succ(succ(succ(x))))) =e(x) = B0

    Din (1) si (2) rezulta f (Asucc(3)) = Bsucc(f (3)).

    Unicitatea: fie g : A B un morfism;dem. ca g(x) = f (x) prin inductie pt. i {0, 1, 2, 3}g(0) = g(A0) = B0 = f (0),g(x + 1) = g(Asucc(x)) = Bsucc(g(x)) = Bsucc(f (x)) =

    f (Asucc(x)) = f (x + 1).141

    Exercitiu

    Determinati un model intial pentru specificatia:

    fmod NSET is

    sorts nat nset .

    op 0 : -> nat .

    op s : nat -> nat .

    op vid : -> nset .

    op ins : nat nset -> nset .

    vars x y : nat .

    var A : nset .

    eq ins(x,ins(x,A)) = ins(x,A) .

    eq ins(x,ins(y,A)) = ins(y,ins(x,A)) .

    endfm

    142

    143 144

  • Programare logica

    Congruente. -algebra initiala

    145

    Congruente

    (S ,) signatura, A (S ,) algebra

    I O relatie S-sortata = {s}sS A A este congruentadaca:

    I s As As echivalenta or. s S ,I este compatibila cu operatiile

    ai si bi or. i = 1, . . . , n A(a1, . . . , an) s A(b1, . . . , bn)or. : s1 . . . sn s

    146

    Exemple

    (S ,) signatura, A (S ,) algebra

    I NAT -algebra A:Anat := N, A0 := 0, Asucc(x) := x + 1n1 k n2 k|(n1 n2) pentru k N fixat n1 k n2 Asucc(n1) k Asucc(n2)

    I AUTOMAT -algebra B:Bintrare = Bstare = Biesire := NBs0 := 0, Bf (m, n) := m + n, Bg (n) := n + 1 este congruenta pe B, unde intrare=stare=iesire :=k

    147

    Algebra cat

    (S ,) signatura, A algebra, congruenta pe AI [a]s := {a As | a s a} (clasa lui a)I As/s := {[a]s | a As} or. s SI A/ := {As/s}sS este (S ,)-algebra

    I (A/) := [A] or. : s,I (A/)([a1]s1 , . . . , [an]sn ) := [A(a1, . . . , an)]s

    or. : s1 . . . sn s si (a1, . . . , an) As1 AsnI [] : A A/, a 7 [a]s or. a As este morfism.

    [a]s = [b]s a s b

    148

  • Exemple

    I STIVA-algebra A: Aelem := N, Astiva := NA0 := 0, Aempty := , Apush(n, n1 nk) := n n1 nk ,Apop() = Apop(n) := ,Apop(n1n2 nk) := n2 nk pt. k 2,Atop() := 0, Atop(n1 nk) := n1 pt. k 1.

    I elem:= N N,stiva:= {(w ,w ) | (w ,w ) N N, |w | = |w |}= {elem,stiva} congruenta

    I A/ ' B, undeSTIVA-algebra B: Belem := {0}, Bstiva := NB0 := 0, Bempty := 0, Bpush(0, n) := n + 1 or. n,Bpop(0) := 0, Bpop(n) := n 1 pt. n 1, Btop(n) := 0 or. n.

    149

    Ker(f )

    (S ,) signatura, A si B algebre, f : A B morfismKer(f ) = {Ker(fs)}sS , undeKer(fs) := {(a, a) As As | fs(a) = fs(a)} or. s S

    Propozitia 12

    I (a) Ker(f ) este congruenta pe A.

    I (b) Daca congruenta pe A, atunci Ker([]) =.Dem. exercitiu

    150

    Proprietatea de universalitate

    (S ,) signatura, A algebra, congruenta pe A

    Teorema 13 ( Proprietatea de universalitate a algebrei cat)

    Oricare ar fi B o algebra si h : A B un morfism a.. Ker(h)exista un unic morfism h : A/ B a.. []; h = h.

    Dem. h : A B, Ker(h)Existenta: definim hs([a]s ) := hs(a)

    or. a As

    A[] //

    h

    A/

    h}}B

    151

    Continuare

    h este bine definit: [a1]s = [a2]s hs(a1) = hs(a2)[a1]s = [a2]s (a1, a2) s Ker(hs) hs(a1) = hs(a2)h morfism:

    I dc. : s , at.hs(A/equiv) = hs([A]) = hs(A) = B,

    I dc. : s1 . . . sn s sia1 As1 , . . ., an Asn at.

    hs(A([a1], . . . , [an])) = hs([A(a1, . . . , an)]) =hs(A(a1, . . . , an)) == B(hs1(a1), , hsn(an)) =

    B(hs1([a1]), , hsn([an]))Unicitatea: fie g : A/ B a.. []; g = hgs([a]s) = hs(a) = hs([a]s ) or. a As .

    152

  • Consecinte

    Teorema 14 (Teorema I de izomorfism)

    Oricare f : A B morfism, A/Ker(f ) ' f (A).Dem. exercitiu

    Propozitia 15

    Fie K o clasa de (S ,)-algebre. Daca

    K:={Ker(h) | h : T B K, h morfism},

    atunci urmatoarele proprietati sunt adevarate:

    I K este congruenta pe T,I or. B K ex. unic morfism h : T/K B.

    Dem. Intersectia unei familii arbitrare de congruente estecongruenta (exercitiu).

    153

    Continuare

    Fie B K si h : T B unicul morfism.Existenta: deoarece K Ker(h), dinProprietatea de universalitate aalgebrei cat ex. unic morfismh : T/K B a.. []K ; h = h.

    T[]K //

    h

    T/K

    h{{B

    Unicitatea: fie g : T/K B un morfism; atunci[]K ; g : T B, deci []K ; g = h, deci g verifica proprietateacare-l defineste n mod unic pe h; rezulta g = h.

    154

    -algebre

    (S ,, ) specificatie,A algebra si o congruenta pe ASpunem ca este este nchisa la substitutie daca:CS(,A)

    or. (X )t =s t if H , or. e : X Aes(u) s es(v) or. u =s v H es(t) s es(t ).

    Propozitia 16

    Daca este o congruenta pe A nchisa la substitutie atunciA/ |= .

    155

    Continuare

    Dem. Fie (X )t =s t if H si f : T(X ) A/ a..fs(u) = fs(v) or. u

    =s v H.

    [] : A A/ morfism surjectiv,f : T(X ) A/ morfismDin Propozitia 10, ex. e : T(X ) Aa. . e; [] = f

    A[] // A/

    T(X )

    f

    OO

    e

    bb

    Atunci es(u) s es(v) or. u =s v H si, deoarece estenchisa la substitutie, obtinem es(t) s es(t ), adica fs(t) = fs(t ).

    156

  • Echivalenta semantica

    (S ,, ) specificatie, A o (S ,)-algebra

    ,A:={Ker(h) | h : A B morfism B |= }

    echivalena semantica pe A

    I A = T notam :=,T .

    Propozitia 17

    ,A este o congruenta pe A nchisa la substitutie.

    157

    Continuare

    Dem. Notam :=,A

    Fie (X )t =s t if H si e : X A a..es(u) s es(v) or. u =s v H.Rezulta (es(u), es(v)) Ker(h) or. h : A B |= , decih(es(u)) = h(es(v)) or. u

    =s v H.

    Fie B |= i h : A B. Atunci e; h : T(X ) B sih(es(u)) = h(es(v)) or. u

    =s v H, deci h(es(t)) = h(es(t )).

    Rezulta (es(t), es(t )) Ker(h) or. h : A B |= , deci(es(t), es(t )) , i.e. es(t) s es(t ).

    158

    -algebra initiala

    (S ,, ) specificatie

    I Definim pe T congruenta semantica:=

    {Ker(f ) | f : T A, A |= },care este nchisa la substitutie cf. Propozitiei 17.

    I T/ |= cf. Propozitiei 16.I =K, unde K = Alg(S ,, )

    or. B |= ex. unic morfism f : T/ B cf. Propozitiei 15.

    Teorema 18.

    T/ este -algebra initiala.

    159

    ADT

    (S ,, ) specificatie

    I, := {A | A initiala n Alg(S ,, )}este un tip abstract de date.

    Un modul functional fmod ... endfm n Maude defineste tipulabstract de date I, si construiete efectiv algebra T/ ,unde S este multimea sorturilor, este multimea simbolurilor deoperatii, este multimea ecuatiilor definite n modul. Fiecareecuatieeq t = t si ceq t = t if Heste cuantificata de variabilele care apar n t si t.

    160

  • Consecinte

    (S ,, ) specificatie, A algebra, hA : T A unicul morfismTeorema

    Sunt echivalente:

    I A este -algebra initialaI A verifica urmatoarele proprietati:

    I No Junk: hA este surjectivI No Confusion: hAs(t1) = hAs(t2) |= ()t1 =s t2

    or. t1, t2 T,s

    161 162

    163 164

  • Programare logica

    Teorema constantelorDemonstratii prin inductie

    165

    Demonstrarea ec. conditionate

    (S ,) signatura, X multime de variabile multime de ecuatii conditionate

    ?

    |= (X )t =s t if H

    Propozitia 19

    I (a) Daca |= (X )t =s t if H atunci{(X )u =s v | u =s v H} |= (X )t =s t .

    I (b) Implicatia inversa nu este adevarta n general .

    I (c) Daca {()u =s v | u =s v H} |= ()t =s t

    atunci |= ()t =s t if H.166

    Continuare

    Dem. (a) Fie A |= {(X )u =s v | u =s v H} si e : X Ao evaluare. Dar A |= (X )u =s v or. u =s v H, decies(u) = es(v) or. u

    =s v H. Deoarece A |= , din ipoteza,

    A |= (X )t =s t if H. Deoarec e : X A este o evaluare a..es(u) = es(v) or. u

    =s v H, rezulta es(t) = es(t ).

    (b) Implicatia inversa nu este n general adevarata.S = {s}, = {0 : s}, X = {x , y}{(X )x = 0} |= (X )y = 0 este adevarata, dar6|= (X )y = 0 if {x = 0}.(b) Fie A |= , e : T A unicul morfism. Daca es(u) = es(v)or. u

    =s v H, atunci A |=

    {()u =s v | u =s v H}. Dinipoteza, obtinem A |= ()t =s t , deci es(t) = es(t ). Amdemonstrat ca daca unicul morfism e : T A verificaes(u) = es(v) or. u

    =s v H, atunci es(t) = es(t ).

    167

    (X )

    (S ,) signatura, X multime de variabile

    I multimea X poate fi privita ca o signatura care are numaioperatii constante:variabila x Xs devine operatia constanta cx : s

    I (X ) := ((X )w ,s)wS,sSI (X )w ,s = w ,s pentru w 6= I (X ),s = ,s {cx |x Xs}

    168

  • (X )-algebre

    A (S ,)-algebra, a : X A atribuireI (A, a) este (X )-algebra

    I Acx := as(x) oricare x Xs , s SI orice (X )-algebra poate fi construita astfel

    T(X ) = {T(X ),s}sSI T(X ),s = T(X )sI Tcx := x oricare x Xs , s S

    Observatie

    T(X ) este (X )-algebra initiala(A, a) (X )-algebraa : T(X ) A unicul morfism de (X )-algebre

    169

    Teorema constantelor I

    (S ,) signatura, X multime de variabile

    Teorema 20(Teorema constantelor I)

    Sunt echivalente:

    I (a) A |= (X )t =s t ,I (b) (A, a) |=(X ) ()t =s t or. a : X A.

    Dem. Ambele enunturi sunt echivalente cu:as(t) = as(t ) or. a : X A

    170

    Teorema constantelor II

    (S ,) signatura, X multime de variabile o multime de -ecuatii neconditionate a..nici o variabila din X nu apare n .

    Teorema 21 (Teorema constantelor II).

    Sunt echivalente:

    I (a) |= (X )t =s t if HI (b)

    {()u =s v | u =s v H} |=(X ) ()t =s t Dem. Deoarece nici o variabila din X nu apare n , pentru orice(S ,)-algebra A sunt echivalnte:I A |= ,I (A, a) |=(X ) or. a : X A.

    171

    Continuare

    (a) (b) Fie (A, a) o (X )-algebra a..(A, a) |=(X )

    {()u =s v | u =s v H}. AvemA |= , deoarece (A, a) |=(X ) sias(u) = as(v) or. u

    =s v H, deoarece

    (A, a) |=(X ) {()u =s v | u =s v H}.Din (a) rezulta ca as(t) = as(t ), adica(A, a) |=(X ) ()t =s t .(b) (a) Fie A o (S ,)-algebra a.. A |= sia : X A a.. as(u) = as(v) or. u =s v H.Atunci(A, a) |=(X ) si(A, a) |=(X ) {()u =s v | u =s v H}.Din (b) rezulta ca (A, a) |=(X ) ()t =s t , adicaas(t) = as(t ).

    172

  • Demonstratii prin inductie

    fmod MYNAT is

    sort MyNat .

    op 0 : -> MyNat .

    op s_ : MyNat -> MyNat .

    op _+_ : MyNat MyNat -> MyNat [comm assoc prec 50 ] .

    op _*_ : MyNat MyNat -> MyNat [ comm assoc prec 49 ] .

    vars x y : MyNat .

    eq x + 0 = x .

    eq x + s y = s(x + y) .

    eq x * 0 = 0 .

    eq x * s y = (x * y) + x .

    endfm

    173

    cx (cy + cz) = (cx cy) + (cx cz)

    fmod IND0 is

    including MYNAT .

    ops cy cz : -> MyNat .

    endfm

    *** pasul initial

    red 0 * (cy + cz) == 0 * cy + 0 * cz .

    fmod IND is

    including IND0 .

    op cx : -> MyNat .

    *** ipoteza inductie

    eq cx * (cy + cz) = cx * cy + cx * cz .

    endfm

    *** pasul de inductie

    red s cx * ( cy + cz) == s cx * cy + s cx * cz .

    174

    Demonstratii prin inductie

    ==========================================

    fmod MYNAT

    ==========================================

    fmod IND0

    ==========================================

    reduce in IND0 : 0 * (cy + cz) == 0 * cy + 0 * cz .

    rewrites: 5 in 10534559934ms cpu (0ms real)

    result Bool: true

    ==========================================

    fmod IND

    ==========================================

    reduce in IND : s cx * (cy + cz) == cy * s cx + cz * s cx .

    rewrites: 5 in 10534543934ms cpu (0ms real)

    result Bool: true

    175

    Constructori S = {s}

    . In exemplul anterior, = {0 : MyNat, s : MyNat MyNat,+ : MyNat MyNat MyNat, : MyNat MyNat MyNat}dar n inducta sructurala am folosit numaic = {0 : MyNat, s : MyNat MyNat}.

    Fie o signatura (monosortata) si A o -algebra . O subsignaturaCons se numeste signatura de constructori pentru A dacaunicul morfism h : TCons A este surjectiv.Daca P = (, ) este o prezentare, notam TP = T/ . AtunciCons se numeste signatura de constructori pentru P daca estesignatura de constructori pentru TP .

    176

  • Constructori S = {s}

    .P = (, ) o prezentare, Cons signatura de constructoriTP := T/t T, [t] := [t]

    Teorema (Demonstratii prin inductie)

    Fie Q o proprietate a elementelor lui TP a.. urmatoarele conditiisunt satisfacute:

    I pasul initial:Q([]) = true or. Cons,s

    I pasul de inductie:daca t1, . . ., tn Ts si Q([t1]) = = Q([tn]) = true atunciQ([(t1, . . . , tn)]) = true or. Conssn,s .

    Atunci Q([t]) = true oricare [t] TP .177 178

    179 180

  • Programare logica

    Sintaxa logicii ecuationale

    181

    Regulile deductiei ecuationale

    (S ,) signatura, X si Y multimi de variabile multime de ecuatii (neconditionate)

    R(X )t =s t

    S(X )t1 =s t2(X )t2 =s t1

    T(X )t1 =s t2, (X )t2 =s t3

    (X )t1 =s t3

    C(X )t1 =s1 t 1, . . . , (X )tn =sn t n

    (X )(t1, . . . , tn) =s (t 1, . . . , t n) : s1 sn s

    Sub(X )(t) =s (t )

    unde

    (Y )t =s t , : Y T(X )182

    Deductia sintactica

    Fie o multime de ecuatii, numite axiome sau ipoteze. Spunem caecuatia := (X )t =s t se deduce sintactic din daca exista osecventa de ecuatii 1, . . ., n a. .

    I n = si

    I pentru orice i {1, . . . , n} i sau i se obtine din ecuatiile1, . . ., i1 aplicand una din regulile R, S, T, C, Sub.

    In acest caz scriem ` si spunem ca este deductibila(sintactic), demonstrabila, derivabila din . Secventa1, . . ., n = este o demonstratie pentru din ipotezele .

    183

    Exemplu

    = {x + 0 = x , x + succ(y) = succ(x + y)}E ` 0 + succ(0) = succ(0)(1) x + succ(y)

    = succ(x + y) E

    (2) 0 + succ(0)

    = succ(0 + 0) (1, Sub{x , y 0})(3) x + 0 = x E(4) 0 + 0

    = 0 (3,Sub{x 0})

    (5) succ(0 + 0)

    = succ(0) (4,C)

    (6) 0 + succ(0)

    = succ(0) (2, 5,T )

    x + succ(y)

    = succ(x + y)

    0 + succ(0)

    = succ(0 + 0)(Sub{x , y 0})

    x + 0

    = x

    0 + 0

    = 0Sub{x 0}

    succ(0 + 0)

    = succ(0)(C)

    0 + succ(0)

    = succ(0)(T )

    184

  • Axiomele sunt ecuatii conditionate

    Fie o multime de ecuatii conditionate.

    Sub(X )(u1) =s1 (v1), . . . , (X )(un) =sn (vn)

    (X )(t) =s (t )

    unde (Y )t =s t if H , H = {u1 =s1 v1, . . . , un =sn vn} si : Y T(X ) substitutie

    I Identificam substitutia : Y T(X ) cu : T(Y ) T(X ).

    I Daca H = atunci Sub(X )(t) =s (t )

    185

    Axiomele sunt ecuatii conditionate

    NATBOOL = (S ,), S = {n, b}, = {T ,F , 0, s, , >} = {, 1, 2} := {x , y , z}x =n y if {z x =n z y , z > 0 =b T}1 := {a, c}s(s(s(0))) a =n s(s(s(0))) c,2 := {a, c}s(s(s(0))) > 0 =b T

    ` {a, c}a =n c

    Sub1, 2

    a

    =s c

    , n(x) := a, n(y) := c , n(z) := s(s(s(0)))

    186

    187 188

  • Programare logica

    Logica ecuationala

    Corectitudine. Completitudine

    189

    Regulile deductiei ecuationale

    (S ,) signatura, X si Y multimi de variabile multime de ecuatii (neconditionate)

    R(X )t =s t

    S(X )t1 =s t2(X )t2 =s t1

    T(X )t1 =s t2, (X )t2 =s t3

    (X )t1 =s t3

    C(X )t1 =s1 t 1, . . . , (X )tn =sn t n

    (X )(t1, . . . , tn) =s (t 1, . . . , t n) : s1 sn s

    Sub(X )(u1) =s1 (v1), . . . , (X )(un) =sn (vn)

    (X )(t) =s (t )unde

    (Y )t =s t if {u1 =s1 v1, . . . , un =sn vn} , : Y T(X )190

    Corectitudinea regulilor de deductie

    multime de ecuatii conditionate

    O regula de deductie1, . . . , n

    este corecta daca

    |= 1, . . ., |= n |=

    Propozitia 22

    Regulile deductiei ecuationale R, S, T, C, Sub sunt corecte.

    191

    Continuare

    I Demonstram ca C este corecta.

    Fie : s1 sn s si presupunem ca |= (X )t1 =s1 t 1, . . ., |= (X )tn =sn t n (*)Trebuie sa aratam ca |= (X )(t1, . . . , tn) =s (t 1, . . . , t n).Fie A |= si f : T(X ) A un morfism. Din (*),fs1(t1) = fs1(t

    1), . . ., fsn(tn) = fsn(t

    n), deci

    fs((t1, . . . , tn)) = A(fs1(t1), . . . , fsn(tn)) =A(fs1(t

    1), . . . , fsn(t

    n)) = fs((t1, . . . , tn)).

    In consecinta, A |= (X )(t1, . . . , tn) =s (t 1, . . . , t n).Deoarece A este o -algebra arbitrara, |= (X )(t1, . . . , tn) =s (t 1, . . . , t n).

    192

  • Continuare

    I Demonstram ca Sub este corecta.

    Fie (Y )t =s t if H , H = {u1 =s1 v1, . . . , un =sn vn} si : Y T(X ) substitutie a.. |= (X )(u1) =s1 (v1), . . ., |= (X )(un) =sn (vn) (*)Trebuie sa aratam ca |= (X )(t) =s (t ).Fie A |= si f : T(X ) A un morfism. Atunci; f : T(Y ) A si, din (*),(; f )s1(u1) = (; f )s1(v1), . . ., (; f )sn(un) = (; f )sn(vn).

    Deoarece A |= (Y )t =s t if H , obtinem(; f )s(t) = (; f )s(t

    ) i.e. fs((t)) = fs((t )).

    In consecinta, A |= (X )(t) =s (t ).Deoarece A este o -algebra arbitrara, |= (X )(t) =s (t ).

    193

    Corectitudinea deductiei ecuationale

    multime de ecuatii conditionate

    Teorema 23 (Corectitudine)

    ` (X )t =s t |= (X )t =s t

    Dem.: Fie 1, . . ., n = (X )t =s t o demonstratie din ipotezele. Demonstram |= i prin inductie dupa i = 1, . . . , n.Observam ca 1 sau 1 = (X )t =s t, deci |= 1.Presupunem ca |= 1, . . ., |= i1. Stim ca i se obtine dinecuatiile 1, . . ., i1 aplicand una din regulile dedeductie.Deoarece R, S, T, C, Sub sunt corecte, rezulta |= i .

    194

    Inchiderea la reguli de deductie

    (S ,) o signatura multisortata, X o multime de variabile

    Reg(X )t1 =s1 t 1, . . . , (X )tn =sn t n

    (X )t =s t

    Relatie binara T(X ) T(X ) este nchisa la Reg dacat1 s1 t 1, . . ., tn sn t n t s t

    Propozitia 24

    Sunt echivalente:

    I (a) este congruenta pe T(X ),I (b) este nchisa la R, S, T, C .

    195

    Continuare

    Dem. (a)(b) Presupunem ca este congruenta si demontramnchiderea la C.Fie : s1 sn s si t1 s1 t 1, . . ., tn sn t n.Deoarece este congruenta, (t1, . . . , tn) s (t 1, . . . , t n),deci este nchisa la C.(b)(a) Presupunem este echivalenta nchisa la C sidemonstram ca este compatibila cu operatiile. Fie : s1 sn s si t1 s1 t 1, . . ., tn sn t n. Deoarece estenchisa la C, (t1, . . . , tn) s (t 1, . . . , t n), deci estecompatibila cu operatiile.

    196

  • -algebre

    (S ,, ) specificatie, X o multime de variabile, o congruenta pe T(X )CS(,T(X ))

    or. (Y )t =s t if H , or. h : T(Y ) T(X ) morfismhs(u) s hs(v) or. u =s v H hs(t) s hs(t ).

    Propozitia 25

    Sunt echivalente:

    I (a) verifica CS(,T(X )),I (b) este nchisa la Sub,I (c) T(X )/ |= .

    197

    Echivalenta sintactica

    (S ,, ) specificatie, X o multime de variabile

    Pe T(X ) definim urmatoarea relatie S-sortata

    tst ` (X )t =s t oricare s S .

    este echivalenta sintactica determinata de .

    Propozitia 26

    este o congruenta nchisa la substitutie.Dem. Din definitia deductiei sintactice `, rezulta ca estenchisa la R, S, T, C, Sub.

    198

    Echivalenta semantica

    (S ,, ) specificatie, A o (S ,)-algebra

    ,A :={Ker(h) | h : A B morfism B |= }

    este echivalenta semantica pe A determinata de .

    Propozitia 27

    ,A este cea mai mica congruenta pe A nchisa la substitutie.Dem. Din Propozitia 17, ,A este congruenta A nchisa lasubstitutie. Fie o alta congruenta pe A nchisa la substitutie sip : A A/ surjectia canonica ( p(a) = [a] or. a A). DinPropozitia 16, A/ |= , deci = Ker(p) ,A.

    199

    Completitudinea deductiei ecuationale

    multime de ecuatii conditionate, = (X )t =s t ecuatie

    Teorema 28 (Completitudine)

    |= (X )t =s t ` (X )t =s t

    Dem. Din Propozitia 26 si Propozitia 16, T(X )/ este o-algebra, deci T(X )/ |= .Fie p : T(X ) T(X )/surjectia canonica, p(t) := [t] oricare t T(X ), unde [t] esteclasa de echivalenta a lui t determinata de . Rezultaps(t) = ps(t

    ), i.e. [t] = [t ].In consecinta tst , adica ` (X )t =s t .

    Demonstratie scurta: Se aplica Propozitiile 26 si 27.

    200

  • Teorema de completitudine

    (S ,) signatura, X multime de variabile, t, t T(X )sI t t ` (X )t =s t (echiv. sintactica)I t t |= (X )t =s t (echiv. semantica)I Corectitudinea regulilor de deductie: I Completitudinea regulilor de deductie:

    Teorema 29 (Teorema de completitudine) = |= (X )t =s t ` (X )t =s t

    201

    Reguli de deductie

    (S ,, ) specificatie, X , Y multimi disjuncte de variabile

    Abstractizarea(X )t1 =s t2

    (X Y )t1 =s t2

    Concretizarea(X Y )t1 =s t2

    (X )t1 =s t2t1, t2 T(X )sYs 6= T,s 6=

    Propozitia 30

    Abstractizarea si Concretizarea sunt reguli de deductie corecte.

    Dem. exercitiu

    202

    Exemplu

    Orice functie inversabila la dreapta este injectiva.

    S := {s}, := {f : s s, g : s s} := {({z}) g(f (z)) = z} (g inversa la dreapta a lui f ) ` ({x , y}) x = y if {f (x) = f (y)}

    {() f (cx) = f (cy )} ` () cx = cy (teorema constantelor)(1) () f (cx) = f (cy ) (ipoteza)(2) () g(f (cx)) = g(f (cy )) (C)(3) () g(f (cy )) = cy (Sub{z cy})(4) () g(f (cx)) = cy (2,3,T)(5) ({z}) z = g(f (z)) (S)(6) () cx = g(f (cx)) (5, Sub{z cx})(7) () cx = cy (4,6, T)

    203 204

  • Programare logica

    Logica ecuationala

    Regula SR (SubtermReplacement)

    205

    Contexte

    (S ,) signatura, X multime de variabile

    I Pentru t T(X ) si y X notamnry (t) = numarul de aparitii ale lui y n t

    I Daca z 6 X atunci un termen c T(X {z}) se numestecontext daca nrz(c) = 1.

    I Daca t0 T(X ) si t0 are acelasi sort cu z , atunci notamc[z t0] := {z t0}(c)

    pentru un context c T(X {z}), unde{z t0} : X {z} T(X ) este substitutia{z t0}(z) = t0 si {z t0}(x) = x or. x X

    206

    Regula de deductie SR

    (S ,, ) specificatie

    SR(X )(u) =s (v) or. u =s v H(X )c[z (l)] =s c[z (r)]

    unde (Y )l =s r if H , : Y T(X ) substitutiec T(X {z})s , z 6 X , nrz(c) = 1

    I c = z SR = SubI E multime de ecuatii neconditionate

    SRE(X )c[z (l)] =s c[z (r)]

    unde (Y )l =s r E , : Y T(X ) substitutiec T(X {z})s , z 6 X , nrz(c) = 1

    207

    Exemplu

    E = {x + 0 = x , x + succ(y) = succ(x + y)}E `SRE 0 + succ(0)

    = succ(0)

    (1) x + succ(y)

    = succ(x + y) E(2) 0 + succ(0)

    = succ(0 + 0) (1,SRE , c := z , := {x , y 0})

    (3) x + 0 = x E(4) succ(0 + 0)

    = succ(0) (3,SRE , c := succ(z), := {x 0})

    (5) 0 + succ(0)

    = succ(0) (2, 4,T )

    (1) x + succ(y)

    = succ(x + y) E(2) 0 + succ(0)

    = succ(0 + 0) (1, Sub{x , y 0})

    (3) x + 0 = x E(4) 0 + 0

    = 0 (3,Sub{x 0})

    (5) succ(0 + 0)

    = succ(0) (4,C )

    (6) 0 + succ(0)

    = succ(0) (2, 5,T )

    208

  • Regula de deductie SR

    Propozitia 31

    SR este regula de deductie corecta.

    Dem. Fie (Y )l =s r if H , : Y T(X ) substitutiec T(X {z})s , z 6 X , nrz(c) = 1 a.. |= (X )(u) =s (v) or. u =s v H.Demonstram ca |= (X )c[z (l)] =s c[z (r)] prininductie dupa |c| (lungimea lui c).I Daca |c| = 1, atunci c = z si |= (X )(l) =s (r) deoarece

    Sub este corecta.

    209

    Continuare

    I Presupunem ca |= (X )c [z (l)] =s c [z (r)] daca|c | < |c |. Atunci ex. : s1 sn s ,t1 T(X )s1 , . . ., tn T(X )sn si k a..c = (t1, . . . , tk , . . . , tn) si nrz(tk) = 1.Pentru tk aplicam ipoteza de inductie: |= (X )tk [z (l)] =si tk [z (r)].Deoarece |= (X )ti =si ti or. i 6= k, aplicand corectitudinearegulii C, obtinem |= (X )(t1, . . . , tk [z (l)], . . . , tn) =s

    (t1, . . . , tk [z (r)], . . . , tn).Observam ca c[z t] = (t1, . . . , tk [z t], . . . , tn) or.t T(X )s , deci |= (X )c[z (l)] =s c[z (r)].

    210

    Regula de deductie SR

    Definim SR T(X ) T(X ) print SR t `R,S ,T ,SR (X )t =s t

    Propozitia 32

    SR este congruenta nchisa la substitutie.Dem. Din definitie, SR este nchisa la R, S, T, deci este o relatiede echivalenta.

    I SR este nchisa la SubSub se obtine aplicand SR cu c = z .

    211

    Continuare

    I SR este nchisa la C (schita)Fie : s1 sn s si t1 SR t 1, . . ., tn SR t n.

    (1) Daca k {1, . . . , n} si (X )tk =sk t k se deduce prin aplicarearegulii SR, atunci exista (Y )l =s r if H , : Y T(X ) substitutie c T(X {z})sk , z 6 X ,nrz(c) = 1 a.. tk = c[z (l)] si t k = c[z (r)].Definim c = (t1, . . . , tk1, c , tk+1, . . . , tn), atunci(t1, . . . , tk , . . . , tn) = c

    [z (l)] si(t1, . . . , t

    k , . . . , tn) = c

    [z (r)],deci (X )(t1, . . . , tk , . . . , tn) =s (t1, . . . , t k , . . . , tn) sededuce prin aplicarea regulii SR.

    (2) Daca k {1, . . . , n} si tk SR t k atunci(t1, . . . , tk1, tk , tk+1, . . . , tn) SR (t1, . . . , tk1, t k , tk+1, . . . , tn).

    (3) (t1, t2, . . . , tn) SR (t 1, t2, . . . , tn) SR (t 1, t 2, t3 . . . , tn)SR (t 1, t 2, t 3, . . . , tn) SR SR (t 1, t 2, . . . , t n)

    212

  • Completitudinea SR

    (S ,, ) specificatie, X multime de variabile, t, t T(X )s

    Teorema 33

    Sunt echivalente:

    I (a) `R,S ,T ,C,Sub (X )t =s t I (b) `R,S ,T ,SR (X )t =s t

    Dem. (a) (b) (SR) Rezulta din Propozitia 32 si dinfaptul ca = este cea mi mica congruenta nchisa lasubstitutie, definita pe T(X ).

    (b) (a) (SR) Din corectitudinea regulii SR (Propozitia31) si Teorema de completitudine (Teorema 29), rezultaSR =.

    213 214

    215 216

  • Programare logica

    Rescrierea termenilor

    217

    Rescrierea

    (S ,) signaturaI O regula de rescriere este formata dintr-o multime de variabile

    Y si doi termeni l , r de acelasi sort din T(Y ) a..I l nu este variabilaI Var(r) Var(l) = Y .

    Vom nota l r (l s r).I Un sistem de rescriere (TRS) este o multime finita de reguli

    de rescriere.

    I R = {x + 0 x , x + succ(y) succ(x + y)}

    218

    Relatia R

    I Fie R un sistem de rescriere. Daca t, t T(X )s definimrelatia t R t astfel:

    t R t t este c[z (l)] sit este c[z (r)], undec T(X {z}), z 6 X , nrz(c) = 1l r R cu Var(l) = Y , : Y T(X ) este o substitutie.

    I t R t daca si numai daca t se obtine din t nlocuindo instanta a lui l cu o instanta a lui r .

    219

    Sistemul de rescriere RE

    (S ,) specificatie, E multime de ecuatii neconditionate a..

    Var(r) Var(l) = Y or. (Y )l =s r E .RE := {l r | (Y )l =s r E} este sistemul de rescrieredeterminat de E .

    In acest caz vom nota E :=RE

    ecuatiile devin reguli de rescriere prin orientare

    In Maude ecuatiile eq t = t trebuie sa verifice conditiaVar(t) Var(t) deoarece n reduceri ecuatiile sunt folosite careguli de rescriere.

    220

  • Exemplu

    E = {x + 0 = x , x + succ(y) = succ(x + y)}RE = {x + 0 x , x + succ(y) succ(x + y)}0 + succ(0)E succ(0 + 0)(l := x + succ(y), r := succ(x + y), c := z , := {x , y 0})succ(0 + 0)E succ(0)(l := x + 0, r := x , c := succ(z), := {x 0})0 + succ(0)E succ(0 + 0)E succ(0)

    221

    Maude

    fmod INTLIST is

    protecting INT .

    sort IntList .

    subsort Int < IntList .

    op nil : -> IntList .

    op _,_ : IntList IntList -> IntList [ assoc id: nil] .

    vars L1 L2 L3 : IntList . var x : Int .

    eq L1 , x , L2 , - x , L3 = L1 , L2 , L3 .

    endfm

    set trace on .

    reduce 4 , 3 , 5 , 6 , - 3 , 8 , -5 .

    222

    Maude

    reduce in INTLIST : 4,3,5,6,-3,8,-5 .

    *********** equation

    eq L1,x,L2,- x,L3 = L1,L2,L3 .

    L1 --> nil

    x --> 5

    L2 --> 6,-3,8

    L3 --> nil

    5,6,-3,8,-5

    --->

    nil,(6,-3,8),nil

    223

    Maude

    *********** equation

    eq L1,x,L2,- x,L3 = L1,L2,L3 .

    L1 --> nil

    x --> 3

    L2 --> 6

    L3 --> nil

    3,6,-3,8

    --->

    (nil,6,nil),8

    rewrites: 2 in 6264381186ms cpu (27ms real)

    result IntList: 4,6,8

    224

  • Sisteme de rescriere abstracte

    Un sistem de rescriere abstract este o pereche (T ,), unde Teste o multime si T T ( este o relatie binara pe T ).Definitii:=1 (relatia inversa):= (nchiderea simetrica):= () (nchiderea reflexiva si tranzitiva):= () (echivalenta generata)(T(X )s ,s) sistem de rescriere abstract

    225

    Exemplu

    T := N \ {0, 1}, := {(m, k) | k < m, k |m}I = {(k ,m) | k < m, k |m}I = {(k1, k2) | k1 6= k2, k1|k2 sau k2|k1}I += {(m, k) | ex.n 0, ex. k1, , kn T

    m k1 kn k}I = + {(k , k)|k T}I Cine este

    ?

    226

    Rescriere si deductie

    (S ,) signatura, X multime de variabile,E multime de ecuatii neconditionate,RE sistemul de rescriere determinat de E ,E T(X ) T(X ) relatia de rescriere

    Teorema 34.

    Fie t, t T(X )s . Sunt echivalente:(1) E |= (X )t =s t (2) E `R,S ,T ,C,SubE (X )t =s t (3) E `R,S ,T ,SRE (X )t =s t (4) t

    E t ,unde

    E este echivalenta generata de E .

    227

    Continuare

    Dem. (1) (2) (3) rezulta din E = E = SR(3) (4) revine la SR = EDin ESR rezulta ESR .Pentru a demonstra implicatia inversa vom arata ca

    E estenchisa la C si SubE .

    I E este nchisa la SubE(Y )t =s t E , : Y T(X ) substitutie implica t E t sau t E t.Daca t E t atunci (t)E (t ) pentru c = z .Daca t E t atunci (t )E (t) pentru c = z .Rezulta (t)E (t ).

    I E este nchisa la CFie : s1 sn s si k {1, . . . , n}.

    228

  • Continuare

    (1) tkE t k implica (t1, . . . , tk , . . . , tn)E (t1, . . . , t k , . . . , tn)Din ipoteza, tk este c[z (l)], t k este c[z (r)], undec T(X {z}) e un context, l r RE cu Var(l) = Y si : Y T(X ).Definim c := (t1, . . . , c , . . . , tn). Rezulta ca(t1, . . . , tk , . . . , tn) este c

    [z (l)] si(t1, . . . , t

    k , . . . , tn) este c

    [z (r)].(2) Demonstram prin inductie dupa p 1 ca

    tkpE t k implica (t1, . . . , tk , . . . , tn)

    E (t1, . . . , t k , . . . , tn)Pentru p = 1 aplicam (1) si simetria.

    Daca tkp+1 E t k atunci tk

    pE t k E t k . Din ip. de inductie(t1, . . . , tk , . . . , tn)

    E (t1, . . . , t k , . . . , tn) E (t1, . . . , t k , . . . , tn)deci (t1, . . . , tk , . . . , tn)

    E (t1, . . . , t k , . . . , tn).229

    Continuare

    (3) Din (2), daca t1E t 1, . . ., tn E t n atunci

    (t1, . . . , tk , . . . , tn)E (t1, . . . , t k , . . . , tn)

    or. k {1, . . . , n}(4) (t1, . . . , tn)

    E (t 1, t2 . . . , tn) E (t 1, t 2, . . . , tn) E E (t 1, . . . , t k , tk+1, . . . , tn)

    E E (t 1, . . . , t n)

    In consecinta,E este nchisa la C si SubE , deci

    SR =E E din Propozitia 27.

    230

    231 232

  • Programare logica

    Substitutii. Unificare

    F. Baader, T. Nipkow, Terms Rewriting and All That,Cambridge University Press, 1998.

    233

    Substitutie

    (S ,) signatura multisortata, X si Y multimi de variabileO substitutie a variabilelor din X cu termeni din T(Y ) este ofunctie : X T(Y ).Substitutia se extinde la o functie : T(X ) T(Y ) dupacum urmeaza:

    I s(x) := (x) or. x Xs ,I s() := or. : s,I s((t1, . . . , tn)) := (s1(t1), . . . , sn(tn)) or. : s1 . . . sn s, or. t1 T(X )s1 , . . ., tn T(X )sn .

    Observatie: : T(X ) T(Y ) morfism de (S ,)-algebre.

    234

    Substitutie

    X , Y si Z multimi de variabileI Daca : X T(Y ), : X T(Y ) atunci

    = = .I vom identifica uneori cu

    I {x1 t1, , xn tn} e notatie pt. : X T(X ),(xi ) := ti or. i = 1, . . . , n si (x) := x pt. x 6= xi

    I compunerea substitutiilor : X T(Y ), : Y T(Z ); : X T(Z ), (;)s(x) := ;

    I compunerea substitutiilor este asociativa,

    I compunerea substitutiilor nu este n general comutativa.

    235

    Exemplu

    S = {s}, = {a : s, p : sssss s, f : s s, g : s s},X = {x , y , z , u, v}t = p(u, v , x , y , z)

    = {x f (y), y f (a), z u}(t) = p(u, v , f (y), f (a), u)

    = {y g(a), u z , v f (f (a))}; = {x f (g(a)), y f (a), u z , v f (f (a))}(;)(t) = p(z , f (f (a)), f (g(a)), f (a), z)

    (; )(t) = p(u, f (f (a)), f (y), g(a), u)

    236

  • Termeni. Cazul monosortat

    (S ,) signatura monosortata, S = {s}X multime de variabile,T(X ) termenii cu variabile din X

    O ecuatie este o pereche de termeni t, t , unde t, t T(X ).Ecuatia t, t o vom nota t = t .

    Egalitatea termenilor

    Daca t = (t1, . . . , tn) si t = (t 1, . . . , t

    k) atunci

    t = t = , n = k , ti = t i or. i

    = egalitate formala, = egalitate efectiva

    237

    Unificare. Cazul monosortat.

    (S = {s},) signatura, X multime de variabileI O problema de unificare este o multime finita de ecuatii

    U = {t1 = t 1, . . . , tn = t n}I Un unificator (o solutie) pentru U este o substitutie : X T(X ) a.. (ti ) = (t i ) or. i = 1, . . . , n.Notam cu Unif (U) multimea unificatorilor lui U.

    I Un unificator Unif (U) este un cel mai general unificator(cgu, mgu) daca or. Unif (U) ex. substitutie a.. = ; .

    238

    Exemplu

    S = {s}, = {0 : s,+ : ss s, : ss s}, X = {x , y , z}t = x + (y y) = +(x , (y , y)), u = x + (y x) = +(x , (y , x))I (x) := y , (y) := y , (z) := z ,

    I (x) := 0, (y) := 0, (z) := z , = ; {y 0}I (x) := z + 0, (y) := z + 0, (z) := z , = ; {y z + 0}

    I (x) := z , (y) := z , (z) := z , = ; {y z}I si sunt cgu

    cgu nu este unic

    239

    Notatii

    I Unif (U) := multimea unificatorilor lui U

    I Var(U) :=n

    i=1(Var(ti )

    Var(t i )), undeVar(t) := multimea variabilelor care apar n t T(X )

    I daca = {x1 t1, , xn tn} atunci{x1 t1, , xn tn}U := {(t) = (t ) | t = t U}

    240

  • Unificare

    (S = {},) signatura, X multime de variabileSpunem ca problema de unificare R = {x1 = t1, . . . , xn = tn}este rezolvata daca

    I xi X , x1 6= xj or. i 6= jI xi 6

    ni=1 Var(ti ) or. i = 1, . . . , n.

    O problema rezolvata R defineste o substitutie RI R(xi ) := {x1 t1, . . . , xn tn}I R Unif (R)

    Algoritmul transforma o problema de unificare U ntr-o problemade unificare R. Daca R = atunci U nu are unificatori. In cazcontrar, R este rezovata, iar substitutia determinata de R este cgupentru U.

    241

    Unificare

    Propozitia 35.

    Daca R = {x1 = t1, . . . , xn = tn} este o problema de unificarerezolvata, atunci R este cgu idempotent pentru R:

    I = R ; or. Unif (R),I R ; R = R .

    Dem.

    (R ; )(x) = (R(x)) =

    { (x) x 6 {x1, . . . , xn}, (ti ) x = xi

    Dar (ti ) = (xi ) deoarece Unif (R),deci (R ;

    )(x) = (x) or. x X .Pentru = R , rezulta R ; R = R .

    242

    Algoritmul de unificare

    (S = {},) signatura, X multime de variabileIntrare: U = {t1 = t 1, . . . , tn = t n}Initializare: R = USe executa nedeterminist urmatorii pasi, atata timp cat este posibil:(1) Sterge: R {t = t} R(2) Orienteaza: R {t = x} R {x = t} dc. x X , t 6 X(3) Descompune:

    . R {(e1, . . . , en) = (e 1, . . . , e n)} R {e1 = e 1, . . . , en = e n}

    . R {(e1, . . . , en) = (e 1, . . . , e k)} dc. 6= (4) Elimina:

    . R {x = t} {x = t} {x t}R dc.. x Var(R) \ Var(t)

    . R {x = t} dc. x Var(t) si t 6= xIesire: daca R = atunci nu exita solutii pentru U

    daca R 6= atunci R este cgu pentru U243

    {g : s s, h : s s, f : sss s}, X = {x , y , z ,w}

    U = R = {g(y) = x , f (x , h(x), y) = f (g(z),w , z)}(2) R = {x = g(y), f (x , h(x), y) = f (g(z),w , z)}(4) R = {x = g(y), f (g(y), h(g(y)), y) = f (g(z),w , z)}(3) R = {x = g(y), g(y) = g(z), h(g(y)) = w , y = z}(3) R = {x = g(y), y = z , h(g(y)) = w , y = z}(4) R = {x = g(z), y = z , h(g(z)) = w , z = z}(2)(1) R = {x = g(z), y = z ,w = h(g(z))}(4) R = {x = g(z), y = z ,w = h(g(z))} cgu

    244

  • {a : s, g : s s, h : s s, f : sss s}, X = {x , z ,w}

    U = R = {g(a) = x , f (x , h(x), a) = f (g(z),w , z)}(2) R = {x = g(a), f (x , h(x), a) = f (g(z),w , z)}(4) R = {x = g(a), f (g(a), h(g(a)), a) = f (g(z),w , z)}(3) R = {x = g(a), g(a) = g(z), h(g(a)) = w , a = z}(3) R = {x = g(a), a = z , h(g(a)) = w , a = z}(2) R = {x = g(a), z = a,w = h(g(a)), z = a}(4) R = {x = g(a), z = a,w = h(g(a)), a = a}(1) R = {x = g(a), z = a,w = h(g(a))} cgu

    245

    {b : s, g : s s, h : s s, f : sss s}, X = {x , y , z}

    U = R = {g(y) = x , f (x , h(x), y) = f (g(z), b, z)}(2) R = {x = g(y), f (x , h(x), y) = f (g(z), b, z)}

    (4) R = {x = g(y), f (g(y), h(g(y)), y) = f (g(z), b, z)}

    (3) R = {x = g(y), g(y) = g(z), h(g(y)) = b, y = z}

    (3) R = {x = g(y), y = z , h(g(y)) = b, y = z}

    (4) R = {x = g(z), y = z , h(g(z)) = b, z = z}(3) R = deoarece b 6= h

    246

    {g : s s, h : s s, f : sss s}, X = {x , y , z ,w}

    U = R = {g(y) = x , f (x , h(x), y) = f (y ,w , z)}(2) R = {x = g(y), f (x , h(x), y) = f (y ,w , z)}

    (4) R = {x = g(y), f (g(y), h(g(y)), y) = f (y ,w , z)}

    (3) R = {x = g(y), g(y) = y , h(g(y)) = w , y = z}

    (2) R = {x = g(z), y = g(y), h(g(y)) = w , y = z}

    (4) R = deoarece y Var(g(y))

    247

    Terminare

    Propozitia 36.

    Algoritmul de unificare se termina.

    Dem. Fie R problema de unificare. Notamnsol := |{x Var(R)|R = R {x = t}, x 6 Var(R ) Var(t)}|,n1 := |Var(R)| nsol , n2 :=

    s

    =tR(|s|+ |t|),n3 := |{t = x R|t 6 X , x X}|Fiecare pas al algoritmului modifica n1, n2, n3

    n1 n2 n3Sterge >Orienteaza = >Descompune >Elimina >

    Daca la executia unui pas (n1, n2, n3) se schimba n (n1, n2, n3),

    atunci (n1, n2, n3) >lex (n1, n2, n3), adica (n1, n2, n3) descreste

    strict n ordine lexicografica.248

  • Corectitudine

    Propozitia 37.

    Daca R T si T 6= , atunci Unif (R) = Unif (T ).Dem. Evident adevarat pentru Stergesi Orienteaza.Descompune. R = R {(e1, . . . , en) = (e 1, . . . , e n)}

    T = R {e1 = e 1, . . . , en = e n}Daca : X T(X ) substitutie, atunci((e1