carte programare logica

Upload: laura-motoc

Post on 03-Jun-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Carte programare logica

    1/164

    Cuprins

    1 ALGEBRE MULTISORTATE 51.1 CONCEPTUL DE ALGEBRA MULTISORTATA . . . . . . . . . . . . . . . . . . . . . . . 5

    1.1.1 Multimi si functii multisortate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.2 Signaturi multisortate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.3 Algebre multisortate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.4 Morfisme de algebre multisortate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.5 Izomorfisme de algebre multisortate . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    1.2 ALGEBRE LIBERE - APLICATII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.1 Expresii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.2 Unicitatea abstractie de un izomorfism a algebrelor libere . . . . . . . . . . . . . . . 131.2.3 Tipuri abstracte de date - introducere . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    1.3 SUBALGEBRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3.1 Operator de nchidere. Familie Moore . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3.2 Parti stabile, Subalgebre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3.3 Morfisme si parti stabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    1.4 EXISTENTA ALGEBRELOR LIBERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.4.1 Algebre libere si algebre Peano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    1.4.2 Algebre Peano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.4.3 Algebra arborilor de derivare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.4.4 Existenta algebrelor initiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.4.5 Existenta algebrelor libere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    1.5 SEMANTICA ALGEBREI INITIALE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.5.1 Semantica unui sir de cifre ca numar natural . . . . . . . . . . . . . . . . . . . . . . 271.5.2 Un calculator de buzunar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.5.3 Arbori de derivare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.5.4 Scrierea poloneza inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.5.5 Compilare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    1.6 CONGRUENTE si ALGEBRE CAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    1.6.1 Congruente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.6.2 Algebre cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    1.7 ALGEBRE PROIECTIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.7.1 Proiectivitatea algebrelor libere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.7.2 Alte proprietati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    1.8 SPRE ABSTRACTIZAREA TIPURILOR DE DATE . . . . . . . . . . . . . . . . . . . . . 401.8.1 Ecuatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.8.2 Ecuatii conditionate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.8.3 Necesitatea utilizarii cuantificatorilor n ecuatii . . . . . . . . . . . . . . . . . . . . . 421.8.4 In primul rand semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.8.5 Punctul de vedere local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    1.8.6 Congruenta semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    1

  • 8/13/2019 Carte programare logica

    2/164

    2 CUPRINS

    1.8.7 Problema programarii prin rescriere . . . . . . . . . . . . . . . . . . . . . . . . . . . 451.9 TIPURI ABSTRACTE de DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    1.9.1 Tipul abstract al numerelor naturale - continuare . . . . . . . . . . . . . . . . . . . . 45

    2 RESCRIERI 49

    2.1 TEORII DEDUCTIVEA la MOISIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2 LOGICA ECUATIONALA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    2.2.1 Reguli de deductie, corectitudine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.2.2 Completitudine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    2.3 RESCRIERE LOCALA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.3.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.3.2 Inchiderea la contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.3.3 Inchiderea la preordini compatibile cu operatiile . . . . . . . . . . . . . . . . . . . . 542.3.4 rescriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.3.5 Corectitudinea rescrierii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    2.4 Relatia de ntalnire, Forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    2.4.1 Confluenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.4.2 Completitudinea ntalnirii prin recriere . . . . . . . . . . . . . . . . . . . . . . . . . . 582.4.3 Forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.4.4 Relatii canonice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    2.5 RESCRIERE IN SUBTERMENI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612.5.1 Completitudinea rescrierii n subtermeni . . . . . . . . . . . . . . . . . . . . . . . . . 612.5.2 Rescriere ntr-un pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.5.3 Consideratii metodologice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    2.6 UNIFICARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.6.1 Algoritmul de unificare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.6.2 Terminare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642.6.3 Corectitudine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    2.7 LOCAL CONFLUENTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652.8 RESCRIERE MODULO ECUATII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    2.8.1 Motivare semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662.8.2 Rescrierea modulo o relatie de echivalenta . . . . . . . . . . . . . . . . . . . . . . . . 68

    2.9 DEMONSTRAREA ECUATIILOR CONDITIONATE . . . . . . . . . . . . . . . . . . . . . 702.9.1 Preliminarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712.9.2 Schimbarea signaturii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722.9.3 Translatarea ecuatiilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722.9.4 Teorema constantelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    2.10 PERECHI CRITITCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752.11 TERMINAREA si PROCEDURA KNUTH-BENDIX . . . . . . . . . . . . . . . . . . . . . 81

    2.11.1 Terminarea programelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.11.2 Exemplul teoriei grupurilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.11.3 Completarea Knuth-Bendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    3 PROGRAMARE LOGICA ECUATIONALA 913.1 IN PRIMUL RAND SEMANTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913.2 TEOREMELE LUI HERBRAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    3.2.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.2.2 Teoremele lui Herbrand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    3.3 REGULILE PROGRAMARII LOGICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.3.1 Solutii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    3.3.2 Reguli de deductie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

  • 8/13/2019 Carte programare logica

    3/164

    CUPRINS 3

    3.4 CORECTITUDINEA REGULILOR PROGRAMARII LOGICE . . . . . . . . . . . . . . . 973.5 COMPLETITUDINEA PARAMODULATIEI . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    3.5.1 Legaturi ntre regulile de deductie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983.5.2 Amintiri despre rescriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.5.3 Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    3.5.4 Completitudinea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023.6 COMPLETITUDINEA NARROWINGULUI . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    3.6.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023.6.2 Amintiri despre formele normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033.6.3 Lema de ridicare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033.6.4 Epilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053.6.5 Completitudine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    3.7 REZOLUTIE A LA PROLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063.7.1 Rezolutia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063.7.2 Rezolutie = Narrowing = Paramodulatie . . . . . . . . . . . . . . . . . . . . . . . . 107

    3.8 EXEMPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    3.8.1 Primul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083.8.2 Al doilea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    4 INSTITUTII 1114.1 CATEGORII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    4.1.1 Morfisme distinse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.1.2 Dualitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.1.3 Subcategori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

    4.2 FUNCTORI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.3 CONEXIUNI GALOIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    4.3.1 Conexiunea Galois atasata unei relatii . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.4 INSTITUTII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    4.4.1 Consecinta semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.4.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    4.5 PREZENTARI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224.5.1 Institutia prezentarilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    4.6 TEORII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.6.1 Institutia teoriilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    4.7 INSTITUTIA LOGICII ECUATIONALE MULTISORTATE . . . . . . . . . . . . . . . . . 1254.7.1 Categoria signaturilor algebrice Sig . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.7.2 FunctorulAlg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.7.3 FunctorulS en . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.7.4 Incluziuni de signaturi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    4.7.5 Relatia si conditia de satisfacere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

    5 MODULARIZARE 1315.1 LIMITE si COLIMITE INTR-O CATEGORIE . . . . . . . . . . . . . . . . . . . . . . . . . 131

    5.1.1 Colimite de multimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325.1.2 Despre unicitatea colimitelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335.1.3 Crearea colimitelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

    5.2 COLIMITE DE SIGNATURI ALGEBRICE . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355.3 FUNCTORUL Alg CONSERVA COLIMITELE . . . . . . . . . . . . . . . . . . . . . . . . . 139

    5.3.1 Alg conserva colimitele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1405.4 COLIMITEIN INSTITUTII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    5.4.1 Functorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

  • 8/13/2019 Carte programare logica

    4/164

    4 CUPRINS

    5.5 CATEGORII INCLUSIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495.5.1 Categorii inclusive cu sume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545.5.2 Sume fibrate care conserva in c lu z iu n ile . . . . . . . . . . . . . . . . . . . . . . . . . . 155

    5.6 IMPORTURI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595.6.1 Semantica slaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

    5.6.2 Semantica initiala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1605.7 PARAMETRIZAREA PROGRAMELOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

  • 8/13/2019 Carte programare logica

    5/164

    Chapter 1

    ALGEBRE MULTISORTATE

    Textul a fost conceput ca o introducere n programarea declarativa, capitol semnificativ al informaticiimatematice(teoretice).

    Presupunem ca cititorul are cunostiinte de teoria cantoriana a multimilor si putine cunostiinte de al-

    gebra. Pentru ntelegerea exemplelor se presupun cunostiinte privind gramaticile independente de context.

    1.1 CONCEPTUL DE ALGEBRA MULTISORTATA

    Conceptul de algebra multisortata apare n jurul anului 1970 prin generalizarea algebrelor universale. Noulconcept mai este cunoscut si sub numele algebre universale eterogene.

    Deoarece datele cu care lucram nu sunt toate la fel, ele sunt clasificate n mai multe tipurisau sorturi. Acesta este principalul fapt care a dus la aparitia algebrelor multisortate si n particular amultimilor multisortate.

    Algebrele multisortate au fost generalizate conducand la algebrele ordonat sortate.

    1.1.1 Multimi si functii multisortate

    Fixam multimeaSa sorturilor.

    Definitia 1.1.1 O familie de multimi M={Ms}sS indexata de Sse numeste multime S-sortata.

    Observam ca aceeasi litera este folosita atat pentru ntreaga multime M cat si pentru toate componenteleacesteia,Ms unde s S.

    Fie M = {Ms}sS o multime S-sortata. Daca s S si m Ms spunem ca elementul m are sortul ssau cas este sortul elementului m.

    Conceptele uzuale pentru multimi se extind pe componente la multimileS-sortate asa cum se vede dinexemplele de mai jos

    {Ms}sS {Ns}sS daca si numai daca (s S)Ms Ns,{Ms}sS {Ns}sS={Ms Ns}sS,

    {Ms}sS {Ns}sS={Ms Ns}sS,

    {Ms}sS {Ns}sS={Ms Ns}sS.

    O functie ntre doua multimi S-sortate duce un element din prima multime ntr-un element de acelasisort din a doua multime.

    Definitia 1.1.2 O functie S-sortataf :MN

    este o familie de functiif ={fs}sSunde pentru orice s Scomponenta de sort s este o functie uzuala

    fs : MsNs.

    5

  • 8/13/2019 Carte programare logica

    6/164

    6 CHAPTER 1. ALGEBRE MULTISORTATE

    Ca si n cazul multimilor S-sortate, operatiile cu functiile S-sortate se fac pe componente. Dacaf :MN sig= {gs}sS :NP sunt functiiS-sortate atunci compunerea lor

    f; g= {fs; gs}sS :MP

    este definita pentru orice s Sprin(f; g)s =fs; gs.

    Mai detaliat (f; g)s(x) = gs(fs(x)) pentru orice s S si x Ms. Semnul ; folosit pentru compunere esteinspirat din limbajele de programare. Mai observam scrierea diagramaticaf; gutilizata pentru compuneren opozitie cu scrierea clasica g f

    M N Pf g

    f;g

    Compunerea functiilor S-sortate este asociativa. Daca si h = {hs} : P R este functie Ssortata,atunci folosind asocitivitatea compunerii functiilor uzuale pentru orice s S

    ((f; g); h)s = (f; g)s; hs = (fs; gs); hs = fs; (gs; hs) =fs; (g; h)s = (f; (g; h))s.

    Prin urmare (f; g); h= f; (g; h).

    Pentru orice multimeS-sortata M functia ei identitate 1M :MMeste definita prin (1M)s = 1Mspentru orice s S, unde 1Ms este functia identitate a multimiiMs. Functia identitate are efect neutru lacompunere. Pentru orice functieSsortata f :MNau loc egalitatile 1M; f=f=f; 1N.

    Cele doua proprietati de mai sus ne permit sa vorbim de categoria multimilorSsortate(Vezi definitiacategoriei 4.1.1)

    1.1.2 Signaturi multisortate

    In programare, mai mult decat n orice alta activitate, datele utilizate sunt de mai multe feluri, sau sorturiasa cum vom spune n continuare. Mai mult, de cele mai multe ori, n diferitele constructii sintactice,ntr-un anumit loc al acestora nu p oate fi plasata decat o data de un anumit sort. Aceasta ar fi explicatiafaptului ca algebrele multisortate constituie una dintre cele mai utile unelte pentru informatica teoretica.

    Algebrele la randul lor nu sunt toate la fel. Felul algebrelor este dat de signatura lor. O signatur a aredoua componenete una pentru date si una pentru operatii.

    Componenta p entru date este pur si simplu o multime Sale carei elemente s S se numesc sorturi.Fiecare operatie este caracterizata de modul acesteia de act iune. Operatia actioneaza pe un anumit

    numar fix de date de sorturi precizate si are rezultatul de un sort dat. Ca exemplu pentru operatia cunumeleo notam cu

    o: s1s2 . . . sns

    faptul ca ea are n argumente de sorturi s1, s2, . . . , sn si rezultatul este de sort s. Numele unei operatiimai este numit si simbol de operatie.

    Terminologia folosita este urmatoarea:

    s1s2 . . . sn se numeste aritate,seste sortul rezultat sau sortul rezultatului,

    perechea (s1s2 . . . sn, s) se numeste rang.

    Reamintim ca substantivul aritate provine din sufixul ara folosit n expresii ca zeroara, unara, binara,ternara, etc.

    Toate aceste informatii privind felul algebrei sunt adunate n conceptul de signatura. Cu S notam

    multimea sirurilor finite formate cu elemente din S.

  • 8/13/2019 Carte programare logica

    7/164

    1.1. CONCEPTUL DE ALGEBR A MULTISORTATA 7

    Definitia 1.1.3 O signatura algebrica

    (S, {s1s2...sn,s}s1s2...snS,sS)

    este formata dintr-o mutime Sale carei elemente se numesc sorturi si o familie de multimi

    {s1s2...sn,s}s1s2...snS,sS.

    Pentru fiecare s1s2 . . . sn S si s S multimea s1s2...sn,s contine numele operatiilor cu n argumente desorturis1, s2, . . . , sn si rezultat de sort s.

    Mentionam ca multimile s1s2...sn,s pot avea elemente comune, ceea ce permite modelarea suprancarcariioperatiilor, adica permisiunea ca mai multe operatii sa aiba acelas nume, sau altfel spus sa fie denumiteprin acelasi simbol.

    Cand nu exista pericol de confuzie vom scrie signatura n loc de signatura algebrica si vom scrie (S, )sau n loc de

    (S, {s1s2...sn,s}s1s2...snS,sS).

    Cea mai cunoscuta signatura multisortata provenita din algebra clasica este cea corespunzatoare con-ceptelor de spatiu vectorial sau modul. Simbolurile de operatii sunt de trei feluri

    1. simboluri de operatii pentru scalari corespunzatoare structurii de corp sau inel

    2. simboluri de operatii pentru vectori corespunzatoare structurii de grup abelian

    3. produsul cu scalari : scalar vector vector.

    O consecinta deosebita a stilului multisortat este faptul ca relatiile pot fi definite ca operat ii cu sortulrezultat boolean. De exemplu

    :natural naturalboolean

    Observam ca 3 5 = adevar si 5 3 = fals.

    In general prin relatie se ntelege o operarie al carei sort rezultat este boolean. Practic, pentru atransforma o relatie n operatie se nlocuieste relatia cu asa numita functia ei caracteristica. Reamintimca functia caracteristica

    A : M {adevar, fals}

    a submultimiiAa multimiiM este definita prin

    A(m) =

    adevar daca m Afals daca m A.

    Remarcabil este ca unele aspecte privind studiul clasic al modelelor unde apar atat operatii cat si relatiipoate fi redus la studiul algebrelor multisortate unde apar numai operatii.

    1.1.3 Algebre multisortate

    Algebrele sunt formate n mare din date si op eratii. Datele sunt de mai multe sorturi, adica pentru fiecaresortsalgebra contine o multime a datelor de sorts. Familia acestor multimi, numita sisuportul algebrei,constitue o multime sortata.

    Definitia 1.1.4 O -algebra A = ({As}sS, {A}) este formata dintr-o multime S-sortata, numitasuportul algebrei, A = {As}sS si o familie de operatii {A}. Pentru claritate, daca s1s2...sn,s,adica : s1s2 . . . sns, atunci A este o functie

    A :As1 As2 Asn As.

  • 8/13/2019 Carte programare logica

    8/164

    8 CHAPTER 1. ALGEBRE MULTISORTATE

    Daca nu exista pericol de confuzie n loc de ({As}sS, {A}) vom scrie mai simplu (As, A). Maimentionam ca pentru o algebraA si suportul acesteia Afolosim aceeasi litera cu grafii diferite.

    Daca nu este pericol de confuzie n loc de -algebra vom scrie mai scurt algebra.In continuare pentru s1, s2, . . . , sn Svom mai folosi si notatia

    As1s2...sn =As1 As2 Asn .

    Din definitia de mai sus rezulta ca daca ,s unde este sirul vid din S, atunciA este o functie

    definita pe o multime cu un element si cu valori n As. Pentru a simplifica scrierea aceasta functie estenlocuita cu unica ei valoare, element din As adica A As. Deci operatiile fara argumente, numite siconstante, sunt elemente ale algebrei de sort corespunzator sortului rezultat al numelui operatiei.

    Vom continua prin a defini pentru algebrele multisortate cele mai uzuale concepte specifice algebrei:morfisme, subalgebre, algebre libere, congruente, etc.

    Asemanator algebrei care abordeaza pe rand diferite structuri algebrce, trebuie sa facem acelas lucru.Adica trebuie sa studiem, dar n acelas timp, structuri algebrice de naturi diferite. Prin urmare, ncontinuare, fixam signatura (S, ) a algebrelor de care ne ocupam. De altfel unele concepte, ca de exemplu

    cel de morfism, nu pot fi definite decat pentru algebre avand aceeasi signatura.Fixarea signaturii arata ca ne ocupam de o anumita structura algebrica. Faptul ca signatura este

    arbitrara arata ca studiul diferitelor structuri algebrice se face simultan.

    1.1.4 Morfisme de algebre multisortate

    Un morfism ntre doua algebre multisortate, asemanator oricarui morfism de structuri algebrice, este ofunctie multisortata ntre sup orturile celor doua algebre care verifica o conditie suplimentara. Pentru a scrieaceasta conditie pentru cazul algebrelor multisortate sa plecam de la conceptul uzual de morfism pentru ostructura algebrica bazata pe o operatie binara. Functiah : A B este morfism h : (A, ) (B, &)daca

    (a A)(b A)h(a b) =h(a)&h(b).

    Sa analizam egalitatea de mai sus. Se evalueaza cei doi membri pentru un numar de elemente arbitraredin prima algebra egal cu numarul de argumente al operatiei si apoi se egaleaza rezultatele

    - membrul stang:1) se aplica operatia din prima algebra elementelor din prima algebra2) se aplica morfismul h rezultatului obtinut

    - membrul drept:1) se aplica morfismulh elementelor din prima algebra obtinandu-se niste elemente din a doua algebra2) se aplica operatia din a doua algebra acestor elemente

    - se cere ca rezultatul evaluarii celor doi membri sa fie egali.

    Sa facem acelasi lucru pentru doua algebre multisortate A = (As, A), B = (Bs, B) si o functie

    S-sortata h: A B.Conditia de mai sus trebuie pusa pentru fiecare operatie cu numele

    : s1s2 . . . sn s

    si oricare ar fi elementele a1 As1, a2 As2. . . an Asn- membrul stang:

    1) se aplica operatia din prima algebra elementelor din prima algebra: A(a1, a2, . . . , an)2) se aplica morfismul h rezultatului obtinuths(A(a1, a2, . . . , an))

    - membrul drept:1) se aplica morfismulh elementelor din prima algebra obtinandu-se niste elemente din a doua algebra:

    hs1 (a1), hs2 (a2), . . . , hsn(an)

  • 8/13/2019 Carte programare logica

    9/164

    1.1. CONCEPTUL DE ALGEBR A MULTISORTATA 9

    2) se aplica operatia din a doua algebra acestor elemente: B(hs1 (a1), hs2 (a2), . . . , hsn(an))- se cere ca rezultatul evaluarii celor doi membri sa fie egali.

    hs(A(a1, a2, . . . , an)) =B(hs1 (a1), hs2 (a2), . . . , hsn(an)).

    Definitia 1.1.5 FunctiaS-sortata h: A B este un morfism de -algebre multisortate

    h: A = (As, A) B= (Bs, B)

    daca pentru orice s1s2 . . . sn S, pentru orice s S, pentru orice s1s2...sn,s, pentru orice a1 As1 ,a2 As2 , . . . , an Asn

    hs(A(a1, a2, . . . , an)) =B(hs1 (a1), hs2 (a2), . . . , hsn(an)).

    Daca nu este p ericol de confuzie n loc de morfism de -algebre vom scrie morfism de algebre sau chiarmorfism. In continuare pentru s1, s2, . . . , sn Svom mai folosi si notatia

    hs1s

    2...sn =hs

    1

    hs2

    hsn :As1s

    2...sn Bs

    1s

    2...sn .

    Cu aceleasi notatii mai precizam ca daca ai Asi pentru orice 1 i n

    hs1s2...sn(a1, a2, . . . , an) = (hs1 (a1), hs2 (a2), . . . , hsn(an)).

    Este util sa remarcam ca exista cate o conditie pentru fiecare nume de operatie. In cazul operatiilor faraargumente, asa zisele constante, conditia de morfism este pentru orice ,s egalitateahs(A) =B.Cualte cuvinte morfismele trebuie sa pastreze constantele. Pe cazuri particulare observam ca orice morfism demonoizi duce elementul neutru n elementul neutru si ca orice morfism de semiinele duce elementul neutrula adunare, respectiv la nmultire, tot n elementul neutru la adunare respectiv la nmultire.

    Cu notatiile de mai sus conditia de morfism pentru operatia : s1s2 . . . sns este echivalenta cu

    A; hs = hs1s2...sn ; B.

    Este deasemenea util sa mentionam diferenta de notatie dintre o functie S-sortata

    f :A B

    ntre suporturile a doua -algebre A siB si un morfism ntre cele doua algebre

    h: A B.

    Observam ca functia identitate 1Aeste morfism de -algebre de la Ala Afapt notat prin 1A: A A.

    Propozitie 1.1.6 Compunerea ca functii S-sortate a doua morfisme de -algebre este un morfism de-algebre.

    Demonstratie: Fie h: A B si g :B C doua morfisme de -algebre. Probam ca h; g :A Ceste morfism de -algebre.

    Fies1s2 . . . sn S, s S, s1s2...sn,s si a1 As1 , a2 As2, . . . ,an Asn. Observam ca

    (h; g)s(A(a1, a2, . . . , an)) =gs(hs(A(a1, a2, . . . , an))) =gs(B(hs1 (a1), hs2 (a2), . . . , hsn(an))) =

    =C(gs1 (hs1 (a1)), gs2 (hs2 (a2)), . . . , gsn(hsn(an))) =C((h; g)s1 (a1), (h; g)s2 (a2), . . . , (h; g)sn(an)).

    Compunerea morfismelor de -algebre este asociativa.Morfismul identitate are efect neutru la compunere.

    Datorita celor doua proprietati de mai sus putem vorbi de categoria algebrelor.

  • 8/13/2019 Carte programare logica

    10/164

    10 CHAPTER 1. ALGEBRE MULTISORTATE

    1.1.5 Izomorfisme de algebre multisortate

    Definitia 1.1.7 Morfismul de -algebre h : A B se numeste izomorfism daca exista morfismulg: B A cu proprietatile h; g= 1A sig; h= 1B.

    Daca exista, morfismul g din definitia de mai sus este unic. Intradevar daca f : B A este un altmorfism cu proprietatileh; f= 1A si f; h= 1B.Observam ca

    g= g; 1A=g; (h; f) = (g; h); f= 1B; f=f.

    Datorita unicitatii sale, conform uzantelor, morfismul g, denumit si inversul lui h, este notat n continuarecuh1.Prin urmare pentru orice izomorfismh : A Bmentionam egalitatileh; h1 = 1A sih

    1; h= 1B.Observam ca morfismele identitate sunt izomorfisme. In plus (1A)

    1 = 1A.

    Propozitie 1.1.8 Un morfism este izomorfism daca si numai daca are toate componentele bijective.

    Demonstratie: Fieh: A Bun morfism de -algebre.

    Presupunem ca h este izomorfism, adica exista morfismul h

    1

    :B A cu proprietatile h; h

    1

    = 1Asi h1; h= 1B. Rezulta ca pentru orice sort s Sau loc egalitatile hs; h1s = 1As si h

    1s ; hs = 1Bs , adica

    functiahs este inversabila pentru orice s S, deci toate componentele hs ale lui h sunt bijectii.Reciproc, presupunem ca toate componentele hs ale lui h sunt bijectii. Prin urmare pentru orice

    s S exista functia h1s : Bs As cu proprietatile hs; h1s = 1As si h

    1s ; hs = 1Bs . De aici notand

    h1 ={h1s }sS rezulta pentru orice s Sca

    (h; h1)s = hs; h1s = 1As = (1A)s si (h

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

    decih; h1 = 1A si h1; h= 1B .

    Pentru a ncheia demonstratia mai trebuie aratat ca functiaS-sortata h1 :B A este un morfismde -algebre h1 :B A.

    Fies1s2 . . . sn S

    ,s S, s1s2...sn,s sib1 Bs1 ,b2 Bs2 ,. . . ,bn Bsn .Deoarece h este morfismpentru elementele h1s1 (b1), h1s2 (b2), . . . , h

    1sn(bn) din Adeducem

    hs(A(h1s1 (b1), h

    1s2 (b2), . . . , h

    1sn(bn))) =B(hs1 (h

    1s1 (b1)), hs2 (h

    1s2 (b2)), . . . , hsn(h

    1sn(bn))) =

    =B(b1, b2, . . . , bn).

    Aplicand functiah1s ambilor membri deducem

    A(h1s1 (b1), h

    1s2 (b2), . . . , h

    1sn(bn)) =h

    1s (B(b1, b2, . . . , bn))

    decih1 :B A este morfism de -algebre.

    Propozitie 1.1.9 Compunerea a doua izomorfisme f : A B si g : B C este un izomorfism

    f; g: A C. In plus(f; g)1 =g1; f1

    Demonstratie: Pentru a demonstra ca un morfism de la M la Neste izomorfism avand ca invers unalt morfism de la N la M este suficient sa probam ca prin compunerea celor doua morfisme, n ambelesensuri posibile, se obtin identitati. Prin urmare folosind egalitatile f; f1 = 1A, f

    1; f= 1B, g; g1 = 1B

    sig1; g = 1C deducem

    (f; g); (g1; f1) =f; (g; g1); f1 =f; 1B; f1 =f; f1 = 1A si

    (g1; f1); (f; g) =g1; (f1; f); g= g1; 1B; g = g1; g= 1C

    ceea ce arata ca f; g este izomorfism avand inversulg

    1

    ; f

    1

    .

  • 8/13/2019 Carte programare logica

    11/164

    1.2. ALGEBRE LIBERE - APLICATII 11

    1.2 ALGEBRE LIBERE - APLICATII

    Dupa aceasta mica introducere privind algebrele multisortate, trecem la conceptul de algebr a libera datoritaimportantelor aplicatii ale acestuia n informatica. Cu el se modeleaza notiunile de expresie si de evaluareaa unei expresii.

    Mentionam ca demonstratia privind existenta algebrelor libere prezinta dificultati de natura tehnicafapt pentru care este prezentata mai tarziu si recomandata numai celor care p oseda spiritul demonstratiilormatematice.

    Ceilalti se pot multumi numai cu explicatiile de mai jos, acceptand, fara demonstratie, existenta alge-brelor libere.

    1.2.1 Expresii

    Ce este o expresie?

    Conceptul deexpresieasa cum este el folosit n nvatamantul preuniversitar nu are o definitie si un ntelesprecis. Vom da un exemplu care sa ilustreze acest fapt. La ntrebarea estex y z o expresie? raspunsul

    depinde de contextul n care a fost pusa ntrebarea. Daca operatia a fost declarata asociativa, atuncixy z este o expresie. In caz contrar ea nu este o expresie deoarece include o ambiguitate put and fiinterpretata ca x (y z) sau (x y) z ambele fiind expresii. Pentru nceput notiunea de expresie va fidefinita n ipoteza caoperatiile cu care lucram nu au nici o proprietate suplimentara.

    Mai mentionam ca cele doua expresii de mai sus mai p ot fi scrise n scrierea polonezax yz si xyzsau n scrierea poloneza inversa xyz sixy z. Ne intereseazao definitie a conceptului de expresie caresa fie independenta de forma de scriere a acesteia.

    Definitia 1.2.1 -algebra A = (As, A) se numeste liber generata de V A daca pentru orice -algebraD si pentru orice functie sortataf :V D, exista un unic morfism de -algebre f# :A D careextindef.

    -algebraAse numeste libera daca exista V A astfel ncatA este liber generata de V .

    Definitia 1.2.2 Se numeste expresieun element dintr-o algebra libera.

    Cand privim algebra libera ca o algebra de expresii, multimeaVde mai sus reprezinta multimea variabi-lelor. In unele cazuri, elementele lui V sunt numite generatori ai algebrei.

    Binenteles ca acest concept este nca dependent de signatura cu care lucram, fapt pentru care atuncicand dorim sa precizam signatura vorbim de expresii n loc de expresii.

    In plus notiunea naiva de expresie ne da intuitia necesara pentru ntelegerea conceptului de algebralibera: algebrele libere nu sunt altceva decat algebre de expresii.

    Independenta de modul de scriere al expresiilor corespunde unicitatii abstractie de un izomorfism alalgebrei libere pentru care este fixata multimea V a generatorilor.

    Evaluarea expresiilor

    Un alt concept deosebit de util atat n matematica cat si n informatica este cel deevaluare a unei expresii.Desi este clar ca pentru a evalua o expresie este necesar sa dam valori variabilelor care apar n ea, maiputin evident este faptul ca trebuie precizat si unde dam valori acestor variabile. Pentru a ilustra acestfapt mentionam ca expresia x?(yz) nu poate fi evaluata numai dand valori variabilelor x, y si z ntr-omultime daca multimea nu este nzestrata cu doua operatii binare corespunzatoare simbolurilor de operatiibinare ? si . In concluzie pentru a evalua o expresie este necesar sa dam

    1. o algebra n care se fac calculele si care are aceeasi signatura cu cea a expresiei

    2. valori variabilelor din expresie n algebra n care se fac calculele.

  • 8/13/2019 Carte programare logica

    12/164

    12 CHAPTER 1. ALGEBRE MULTISORTATE

    Mentionam caa da valori variabilelor din multimeaX n algebraD este echivalent cu a da o functie

    v : XD.

    Pentru orice variabila x din Xvaloarea data lui x este v(x).

    Vom nota cu T(X) algebra liber generata de multimea Xde variabile. IncluziuneaXT(X) esteechivalenta cu faptul intuitiv ca orice variabila este o expresie. Pentru orice algebra D si pentru oricefunctiev : XD exista, conform definitiei algebrelor libere, un unic morfism v# :T(X) D a caruirestrictie la X coincide cu v.

    Fixand algebra D vom constata ca exista o bijectie naturala ntre Alg(T(X), D) multimea morfismelorde -algebre de la T(X) la D siSetS(X, D) multimea functiilor S-sortate de la X la D . Fie

    r: Alg(T(X), D)SetS(X, D)

    functia restrictie, adica r(h) :XD este restrictiah/X a morfismului h: T(X) D la X. Propri-etatea de mai sus a algebrei libere spune ca

    (v SetS(X, D))(!v#

    Alg(T(X), D))r(v#

    ) =v

    adicar este bijectie. Existenta acestei bijectii ne permite sa identificam elementele celor doua multimi faraa mai face distinctie ntre un morfism v# de la T(X) laD si v , restrictia lui la X.

    Daca mai sus scriam ca a da valori variabilelor din multimea X n algebra D este echivalent cu a da ofunctiev : X D acum putem spune ca:

    A da valori variabilelor din multimea X n algebra D este echivalent cu a da un morfismv : T(X) D .

    O alta consecinta a celor de mai sus este:Pentru a defini un morfism de la algebra liber generata de X la algebra D este suficient sa

    dam o functie de la X la D.Definitia 1.2.3 Dacae T(X) este o expresie cu variabile din X sih : T(X) D morfismul prin carese dau valori n D variabilelor, atunci h(e) este rezultatul evaluarii expresiei e pentru valorile variabilelordate de functiah/X :X D .

    Pentru a ne convinge ca aceasta definitie modeleaza corect realitatea vom relua exemplul de mai sus privindexpresiax?(yz). Sa evaluam aceasta expresie n multimea numerelor naturale unde ? este nmultirea si este adunarea.

    Pentru valorilex= 2, y= 3 si z= 1 intuitiv obtinem 2 (3 + 1) = 8 iar cu definit ia de mai sus unde

    h: (T({x,y,z}), ?, )(N, , +)

    este morfismul definit prin h(x) = 2, h(y) = 3 si h(z) = 1 obtinem

    h(x?(yz)) =h(x) h(yz) =h(x) (h(y) + h(z)) = 2 (3 + 1) = 8.

    Semantica instructiunii de atribuire

    Fie X multimea variabilelor utilizate ntrun program. O instructiune de atribuire este de forma x := eunde x este o variabila sie este o expresie, adica e T(X).

    Fie D -algebra datelor cu care se fac calculele. Ne intereseaza partitia memoriei n care sunt me-morate datele utilizate n timpul executiei programului, date dep ozitate n celule ale memoriei care cores-pund variabilelor din X. Prin urmare starea memoriei este caracterizata n fiecare moment de o functie

    s: XD. Dacax este o variabila s(x) este valoarea din celula de memorie corespunzatoare luix. Fie S

  • 8/13/2019 Carte programare logica

    13/164

    1.2. ALGEBRE LIBERE - APLICATII 13

    multimea starilor memoriei, adica multimea functiilor de la multimea variabilelor X la multimea datelorD.

    O functie partiala de la A la B este o functie definita numai pe o parte a lui A cu valori n B.

    Semantica unei instructiuni, sau mai general a unui program, este o functie partiala Fde la multimeaSa starilor la ea insasi. FunctiaFeste definita pentru starea s a memoriei daca si numai daca executia

    instructiunii nceputa n starea s a memoriei se termina. Mai mult F(s) este starea memoriei n momentulterminarii executiei.

    Vom defini Sem(x := e) : S S, semantica atribuirii x := e. Fies : X D starea memoriei lanceputul executiei atribuirii si s# : T(X) D unica extindere la un morfism a lui s. Observam cas#(e) este rezultatul evaluarii expresiei e n stareas a memorie. Prin urmare, prin definitie

    Sem(x:= e)(s)(y) =

    s#(e) daca y = xs(y) daca y =x.

    Pentru o mai buna ntelegere mentionam cas(y) este valoarea variabilei y n momentul nceperii executieiinstructiunii de atribuire si caSem(x:= e)(s)(y) este valoarea variabileiy n momentul terminarii executiei

    instructiunii de atribuirex := e.

    1.2.2 Unicitatea abstractie de un izomorfism a algebrelor libere

    Daca A este o submultime a lui B numim functie incluziune a lui A n B functia i :A B definitaprin i(a) =a pentru orice a A. In acest caz folosim si notatiai: AB.

    Teorema 1.2.4 Doua algebre liber generate de aceeasi multime sunt izomorfe.

    Demonstratie: Fie A = (As, A) si B = (Bs, B) doua -algebre liber generate de X. Notam cuiA :XA si iB :XB functiile incluziune ale lui X n A, resp ectiv n B. Demonstratia are patru

    pasi.1. Deoarece algebra A este liber generata de X exista un morfism f : A B cu proprietatea

    iA; f=iB .Pasul 2 este asemanator cu primul, doar ca se inverseaza rolul algebrelor A siB. La fel vor fi pasii 3 si 4.

    2. Deoarece algebra Beste liber generata de Xexista un morfism g: B A cu proprietateaiB ; g= iA.

    3. Deoarece iA; (f; g) = (iA; f); g=iB ; g=iA =iA; 1A si deoarece A este algebra liber generata de Xdeducem, folosind partea de unicitate din definitia algebrei libere, ca f; g= 1A.

    4. Deoarece iB ; (g; f) = (iB ; g); f =iA; f=iB =iB ; 1B si deoarece B este algebra liber generata de Xdeducem, folosind partea de unicitate din definitia algebrei libere, ca g ; f= 1B.

    Deci f si g sunt izomorfisme inverse unul altuia.

    Propozitie 1.2.5 Orice algebra izomorfa cu o algebra libera este algebra libera.

    Demonstratie: FieA o algebra liber generata deV A sih : A Bun izomorfism.

    Probam ca algebraBeste liber generata deh(V) B.Fie Co algebra sif :h(V)Co functieSsortata. Fie g: V C functiaSsortata definita prin

    (v V)g(v) =f(h(v)).

    Deoarece A este algebra liber generata de V exista un unic morfismg# :A C cu proprietatea

    (v V)g

    #

    (v) =g(v).

  • 8/13/2019 Carte programare logica

    14/164

    14 CHAPTER 1. ALGEBRE MULTISORTATE

    V

    g

    A

    h

    g#

    h(V)

    f

    B

    C

    Calculand restrictia morfismuluih1; g# :B C la h(V) observam ca

    (v V)(h1; g#)(h(v)) =g#(h1(h(v))) =g#(v) =f(h(v)),

    adica morfismul h1; g# este o extindere a functieif.Vom proba unicitatea acestei extinderi. Fie t : B Cun morfism a carui restrictie la h(V) este f.

    Pentru orice v V observam ca

    (h; t)(v) =t(h(v)) =f(h(v)) =g(v).

    Deducem ca h; t= g# decit = h1; g#.

    Algebre initiale

    Definitia 1.2.6 O -algebraIse numeteintiala daca pentru orice -algebraA exista un unic morfism

    A: I A.

    Observam ca o algebra este initiala daca si numai daca este liber generata de multimea vida.Din cele doua propozitii de mai sus rezulta ca:

    -algebra initiala este unica abstractie facand de un izomorfism.

    Acest fapt are aplicatii importante n informatica.

    Un tip de date se numeste abstract daca este unic determinat abstractie facand de un izomorfism.Se vede prin urmare ca dand o signatura am dat implicit, prin algebra initiala corespunzatoare signaturii,un tip abstract de date.

    Vom da un exemplu cunoscut din algebra de liceu. Se stie ca numerele ntregi formeaza un inel initial.Va invitam sa reflectati asupra urmatoarei definitii a idei de numar ntreg.

    Se numeste numar ntreg un element al inelului initial.

    1.2.3 Tipuri abstracte de date - introducere

    Un tip de date se numeste abstractdaca este unic determinat abstractie facand de un izomorfism. Abstractnseamna de fapt ca nu ne intereseaza cum sunt scrise sau memorate datele.

    Una dintre metodele prin care se poate defini un tip abstract de date este cel al algebrei initiale. Maiclar : este suficient sa dam o signatura si eventual niste axiome(ecuatii conditionate sau nu) deoarecealgebra initiala, a carei existenta este garantata de teoremele care vor fi prezentate mai tarziu, este unicdeterminata abstractie de un izomorfism, prin urmare este un tip abstract de date.

    Tipul numerelor naturale poate fi definit abstract ca fiind semiinelul initial.Observam ca o astfel de definitie nu spune nimic despre scrierea numerelor. Ele pot fi scrise cu cifre

    arabe, cu cifre romane, n baza 2 ca n calculatoare sau altfel.

    Definitiile de mai sus, desi corecte sunt uneori ineficiente, deoarece nu face posibila executia de calculesau executia este ineficienta. Prin urmare dorim alte definitii echivalente care permit calculatorului sa facacalcule care sa fie cat mai eficiente. Vom exemplifica p entru numere naturale fara a intra n prea multe

    detalii.

  • 8/13/2019 Carte programare logica

    15/164

    1.2. ALGEBRE LIBERE - APLICATII 15

    Tipul abstract al numerelor naturale

    Semiinelul este o multimeM nzestrata cu doua operatii binare notate cu + sicu urmatoarele proprietati

    1. (M, +, 0) este monoid comutativ,

    2. (M, , 1) este monoid,

    3. este distributiva fata de + si

    4. (m M)m 0 = 0 m= 0.

    Multimea numerelor naturale cu adunarea si inmultirea uzuale este un semiinel initial, adica conceptul desemiinel caracterizeaza numele naturale ca tip abstract de date.

    Pentru a scrie un program se prefera axiomele lui Peano. Chiar daca Peano nu s-a gandit la programareaprin rescriere, baza programarii declarative, se pare sa fi scris primul program de acest gen.

    Cel caruia i se atribuie prima punere n evidenta a ideilor abstracte privind numerele naturale esteF.W. Lawvere[14].

    Consideram signatura cu un singur sort nat, o singura constanta de sort nat si o singura operatie unaracu argument si rezultat de sort nat:

    sort nat .

    op 0 : nat .op s : nat nat .

    Elementele algebrei initiale sunt

    0, s(0), s(s(0)), s(s(s(0))), s(s(s(s(0)))), ...

    si ele reprezinta numerele naturale 0 1 2 3 4 ...

    Propozitia urmatoare n care conceptul de numar natural este folosit n ntelesul sau clasic arata canumerele naturale formeaza un model al definitiei abstracte. Acest fapt arata corectitudinea definitieiabstracte pentru modelul clasic.

    Propozitie 1.2.7 Fie N = (N, 0N, sN) algebra definita prin: N este multimea numerelor naturale, 0Neste numarul natural zero sisN(n) =n + 1 pentru orice numar naturaln. AlgebraN este initiala.

    Demonstratie: FieA = (A, 0A, sA) o alta algebra pentru signatura de mai sus.Definim funtiah: NA prin inductie

    h(0N) = 0Ah(n+ 1) =sA(h(n)) pentru orice numar natural n.

    Prima egalitate de mai sus si h(sN(n)) =sA(h(n)) pentru orice numar naturaln dovedesc cah: N A este un morfism.

    Probam unicitatea. Fieg : N Aun alt morfism. Aratam prin inductie cag(n) =h(n) pentru oricen natural.g(0N) = 0A =h(0N) si presupunandg(n) =h(n) deducemg(n+ 1) =g(sN(n)) =sA(g(n)) =sA(h(n)) =h(sN(n)) =h(n+ 1).

    Propozitia anterioara ne arata cum pot fi definite numerele naturale prim metoda algebrei initiale ca

    tip abstract de date. Ea dovedeste corectitudinea definit iei de mai sus.

  • 8/13/2019 Carte programare logica

    16/164

    16 CHAPTER 1. ALGEBRE MULTISORTATE

    Deocamdata prin signatura de mai sus calculatorul nvata numerele naturale dar nu stie nca sa cal-culeze. Pentru nceput sa-l nvatam sa adune. Daca introducem n signatura o operatie binara +

    op + : nat nat nat

    nu realizam nimic altceva decat sa adaugam la multimea de mai sus a numerelor natural foarte mult gunoi.De exemplu, deoarece calculatorul nu stie nca sa adune, 0 + 0 este un nou element de care nu avem nevoie.Il nvatam sa adune dandu-i urmatoarele doua reguli de rescriere precedate de o declarare de variabile

    var X Y : nat .

    eq X + 0 = 0 .

    eq X + s(Y) = s(X+Y) .

    Trebuie sa remarcam diferenta esentiala dintre o regula de rescriere si o egalitate. O regula de rescrierese aplica numai de la stanga la dreapta, deoarece simetria este unul dintre marii dusmani ai programariiprin rescriere conducand la neterminarea programelor.

    Ce parere aveti despre comutativitate?Sa vedem cum efectueaza masina adunarea 2 + 2, adica:

    s(s(0)) + s(s(0)).

    Calculatorul nu poate aplica decat a doua regula pentru X=s(s(0)) si Y=s(0) ajungand la

    s( s(s(0)) + s(0) ).

    Trebuie din nou aplicata a doua regula de rescriere pentru X=s(s(0)) si Y=0 a jungand la

    s(s( s(s(0)) + 0 )).

    Acum se poate aplica numai prima regula pentru X=s(s(0)) obtinand rezultatul s(s(s(s(0)))), adica 4.Calculatorul se opreste deoarece nu se mai pot face rescrieri.

    Corectitudinea acestei definitii precum si a celei care urmeaza va fi probata mai tarziu, n sectiunea1.9.1.

    Calculatorul va sti sa si nmulteasca daca mai introducem o operatie binara si doua reguli de rescriere

    op * : nat nat nat .eq X * 0 = 0 .

    eq X * s(Y) = X*Y + X .

    Uneori, n programarea prin rescriere, daca dorim sa scriem un program, partea cea mai dificila estedefinirea abstracta a tipurilor de date cu care lucram. Plecand de la notiunea intuitiva data de o algebraD a datelor, trebuie sa gasim signatura si eventual ecuatiile pentru careD devine algebra initiala.

    Exemplul numerelor naturale este doar un nceput. Va propunem de exemplu sa definiti relatia deordine ca operatie

  • 8/13/2019 Carte programare logica

    17/164

    1.3. SUBALGEBRE 17

    1.3.1 Operator de nchidere. Familie Moore

    Fie (P, ) o multime partial ordonata, adica relatia pe multimeaP este reflexiva, tranzitiva si antisi-metrica.

    Definitia 1.3.1 Se numeste operator de nchidere o functie

    : PP

    cu urmatoarele proprietati:

    1. extensivitate: (p P)p p,

    2. idempotent a: (p P)p =p,

    3. monotonie: (p, q P)p q=p q.

    Vom folosi urmatorul limbaj. p este numit nchiderea elementului p. Un element p cu proprietateap =p se va numi nchis.

    Definitia 1.3.2 Se numestefamilie Mooreo submultimeMPastfel ncat oricare ar fip Pmultimea{m M |p m} are prim, adica cel mai mic, element.

    Vom folosi n continuare pentru orice p P notatia

    Mp = {m M |p m}.

    Propozitie 1.3.3 Daca :PP este un operator de nchidere, atunci multimea elementelor nchise

    M={p P :p = p}

    este o familie Moore. In plusp este cel mai mic(prim) element al multimiiMp.

    Demonstratie: Pentru orice p P probam ca p este cel mai mic(prim) element al multimiiMp.Deoarece p =p rezulta ca p M. Conform extensivitatii p p deducem ca p apartine multimii

    Mp. Pentru orice m Mp din p m deducemp m si din m Mdeducemm =m decip m.

    Observatia 1.3.4 Daca: PPeste un operator de nchidere: p q implicap q

    Demonstratie: Deoarece q este un element nchis cu proprietatea p q sip este cel mai mic elementnchis cu proprietatea p p.

    Propozitie 1.3.5 DacaMeste o familie Moore si daca pentru orice p P definimp

    ca fiind cel maimic element dinMp obtinem un operator de nchidere

    :PP.

    Demonstratie: Deoarece p Mp deducem p M sip p pentru orice p P, adica extensivitatea.Deoarece p este cel mai mic element din multimea{m M |p m} si p apartine acestei multimi

    rezultap p. Folosind extensivitatea p p deducemp =p.Daca p q cumq este cel mai mic element din {m M |qm} rezulta ca q M si qq, prin

    urmare p q. Deoarece q {m M |p m}deducemp q.

    Propozitie 1.3.6 Fie un operator de nchidere, M = {p P | p = p} familia Moore asociata lui

    conform propozitiei 1.3.3 si operatorul de nchidere asociat familiei MooreM conform propozitiei 1.3.5.

    Operatorii de nchidere

    si

    coincid.

  • 8/13/2019 Carte programare logica

    18/164

    18 CHAPTER 1. ALGEBRE MULTISORTATE

    Demonstratie: Demonstram pentru orice p P cap =p.Fie p P. Prin definitiep este cel mai mic element al multimiiMp. Dar propozitia 1.3.3 spune ca p

    este cel mai mic element al lui Mp, prin urmarep =p.Deci operatorii de nchidere si coincid.

    Propozitie 1.3.7 DacaMeste o familie Moore,

    operatorul de nchidere asociat luiMconform propozitiei1.3.5 siM ={q P |q= q} familia Moore asociata lui conform propozitiei 1.3.3, atunciM=M.

    Demonstratie: Aratam pentru orice p P ca p M daca si numai dacap M.Fiep M ={m P |m = m}. Rezulta ca p = p. Din p Mp deducem cap M deci p M.Daca p M atunci p este cel mai mic element din multimea {m M | p m} deci p = p adica

    p M. Din propozitiile de mai sus se observa echivalenta celor doua concepte. Fixand multimea partial

    ordonata (P, ), consideram multimeaO a operatorilor de nchidere si multimeaM a familiilor Moore dinP. Propozitia 1.3.3 ne da o functie de laO laM. Propozitia 1.3.5 ne da o functie de laM la O. Celelaltedoua propozitii ne spun ca aceste functii sunt bijectii inverse una alteia.

    Bazandu-ne pe motivatia de mai sus nu vom mai face nici o distintie ntre cele doua concepte, aparitian discutie a unuia dintre ele introducand automat si pe celalalt.

    Urmatoarea propozitie este utila n multe exemple.

    Propozitie 1.3.8 Intr-o latice completaL,Meste familie Moore daca si numai daca pentru oriceA M,infAM.

    Demonstratie: Reamintim ca prin definitie orice submultime A dintr-o latice completa are infimum(celmai mare minorant), pe care n continuare l notam infA.

    Presupunem ca M este familie Moore. Pentru A M probam infA M. Operatorul de nchidereasociat fiind extensiv, deduceminf A (infA). Probam ca (infA) este minorant pentruA. Dacaa A

    atunciinfA a de unde, deoarece operatorul de nchidere este crescator deducem (infA) a. Deoarecea M deducem a =a prin urmare (infA) a. Asadar (infA) este minorant pentru A, prin urmare(infA) inf A. Rezulta ca (infA) =inf A, deci infAeste element nchis si infA M.

    Pentru cealalta implicatie, presupunem ca orice submultime a luiMare infimum n M. Probam caMeste familie Moore. Fiep L si notam Mp = {m M | p m}. Din ipoteza, infMp M. Deoarecepeste minorant pentru Mp rezulta cap infMp prin urmareinfMp Mp este primul element al multimiiMp.

    1.3.2 Parti stabile, Subalgebre

    Ideea de parte stabila este foarte simpla deoarece este un concept natural. Concret, o parte P a uneialgebre este stabila daca rezultatul aplicarii oricarei operatii din algebra unor elemente din P este tot nP.

    Definitia 1.3.9 Fie A= (As, A) o -algebra si Ps As pentru orice s S. Partea P = {Ps}sS a luiA se numeste stabila daca pentru orice s1s2 . . . sn S, pentru orice s S, pentru orice s1s2...sn,s,pentru orice a1 Ps1 , a2 Ps2 ,. . . ,an Psn elementul A(a1, a2, . . . , an) este n Ps.

    Observam ca orice parte stabila contine toate constantele, adica (s S)( ,s)A Ps.Vom arata n cele ce urmeaza ca partile stabile ale oricarei algebre formeaza o familie Moore. Pentru

    aceasta se poate demonstra ca orice intersectie de parti stabile este o parte stabila si aplica apoi propozitiade mai sus. Lasam acest fapt ca exercitiu. Vom prefera o cale mai dificila, utilizand direct definitia, darcu rezultat mult mai util n multe cazuri.

    FieA = (As, A) o -algebra si XA. Definim prin inductie sirul de parti ale lui A astfel

  • 8/13/2019 Carte programare logica

    19/164

    1.3. SUBALGEBRE 19

    X0 =X siXn+1s =X

    ns {A(a) :w S

    , w,s, a Xnw} pentru orice n N si orice s S.

    Observam ca sirul {Xn}nNeste crescator. Mai observam ca multimea Xn+1 se obtine adaugand la

    Xn rezultatele aplicarii unei singure operatii, o singura data, unor elemente din Xn.

    Definim partea Xa luiA prin

    X=nN

    Xn.

    Propozitie 1.3.10 Xeste partea stabila generata deX.

    Demonstratie: Cu alte cuvinteXeste cea mai mica parte stabila a luiA care include X, adica trebuiesa demonstram ca

    1. XX

    2. Xeste parte stabila

    3. daca Peste o parte stabila care include Xatunci P includeX

    Prima incluziune este evidenta deoarece X=X0 X .Probam ca X este parte stabila. Fies1s2 . . . sn S, s S, s1s2...sn,s si a1 Xs1, a2 Xs2 ,

    . . . , an Xsn. Pentru orice 1 i n din ai Xsi, adica ai nNX

    nsi , rezulta ca exista un numar

    natural ki cu proprietatea ai Xkisi . Fie k cel mai mare dintre numerele k1, k2, . . . , kn. Deoarece sirul{Xn}n este crescator deducem ca ai Xksi pentru orice 1 i n. Din definitia sirului {X

    n}n deducemA(a1, a2, . . . , an) Xk+1s . Deoarece X

    k+1 Xdeducem ca A(a1, a2, . . . , an) Xs deci X este partestabila.

    Fie P o parte stabila a algebrei A cu proprietatea X P. Probam prin inductie ca Xn P pentruoricen natural.

    Daca n= 0 atunci X0

    =X P.PresupunemXn P si demonstram caXn+1 P. Fie a Xn+1s .Dacaa Xns din ipoteza de inductie

    deducema Ps. Altfel exista s1s2 . . . sk S, s S, si ai X

    nsi pentru orice 1 i k cu proprietatea

    a= A(a1, a2, . . . , ak). Din ipoteza de inductie deducem ai Psi pentru orice 1 i k. Deoarece P esteparte stabila deducem ca A(a1, a2, . . . , ak) Ps, decia Ps.

    Deoarece Xn P pentru orice nnatural rezulta canNX

    n P, deci X P.

    Definitia 1.3.11 Fie A o -algebra si X A. Daca X = A spunem ca X genereaza A sau ca A estegenerata de Xsau caXeste o multime de generatori ai algebrei A.

    Operatorul de nchidere asociat familiei Moore a partilor stabile mai are si urmatoarele proprietati:

    1. daca XY sunt parti ale algebrei, atunci XY ,

    2. X=Xpentru orice parte Xa algebrei.

    Inductie structurala

    Aceasta metoda de a face inductie este folosita pentru a demonstra ca elementele unei algebre au o anumitaproprietate. Metoda se numeste structurala deoarece se bazeaza pe structura algebrei.

    Fie A = (As, A) o -algebra, Xo multime de generatori ai algebrei A si P o proprietate referitoarela elementele algebrei A. Pentru a dovedi ca toate elementele algebrei A au proprietatea P este suficientca sa dovedim ca

    1. orice element din Xare proprietatea P,

  • 8/13/2019 Carte programare logica

    20/164

    20 CHAPTER 1. ALGEBRE MULTISORTATE

    2. pentru orice s1s2 . . . sn S, s S, s1s2...sn,s daca a1 As1 , a2 As2 , . . . , an Asn suntelemente arbitrare cu proprietatea P, atunci A(a1, a2, . . . , an) are proprietatea P.

    Sa ne convingem de corectitudinea inductiei structurale. FieB submultimea lui A formata din toateelementele algebrei Acare au propritateaP.

    - Proprietatea 1 de mai sus ne asigura ca XB.- Proprietatea 2 de mai sus ne asigura ca B este parte stabila.Deoarece Xeste cea mai mica parte stabila care include Xdin cele doua proprietati deducemXB.

    DarX=A deoareceXgenereaza algebraA, prin urmareA B, deci orice element din A are proprietateaP.

    Subalgebre

    Conceptul de subalgebra este foarte apropiat de cel de parte stabila. Diferenta principala consta n faptulca subalgebra este o algebra iar partea stabila este o multime.

    O subalgebra a algebrei A = (As, A) este o alta algebra B = (Bs, B) cu proprietatile B A siB(b1, b2, . . . , bn) = A(b1, b2, . . . , bn) oricare ar fi s1s2 . . . sn S, s S, s1s2...sn,s si b1 Bs1 ,

    b2 Bs2 ,. . . , bn Bsn .Observam ca daca algebraB este subalgebra a algebrei A, atunci B este o parte stabila a algebrei A.Reciproc, daca B este o parte stabila a algebrei A putem defini subalgebra B de suport B prin

    B(b1, b2, . . . , bn) = A(b1, b2, . . . , bn) oricare ar fi s1s2 . . . sn S, s S, s1s2...sn,s si b1 Bs1 ,b2 Bs2 ,. . . , bn Bsn .

    1.3.3 Morfisme si parti stabile

    O p ereche de morfisme cu acelasi domeniu si acelasi codomeniu se mai numeste si sageata dubla.

    Definitia 1.3.12 Fie f : A B si g : A Bdoua morfisme. Numinnucleu de sageata dubla almorfismelorf si g submultimea lui Anotata Ker(f,g) si definita pentru orice sort s prin

    Ker(f, g)s = {a As : fs(a) =gs(a)}.

    Propozitie 1.3.13 Nucleul de sageata dubla este o parte stabila.

    Demonstratie: Fie s1s2 . . . sn S, s S, s1s2...sn,s si a1 Ker(f, g)s1 , a2 Ker(f, g)s2, . . . ,an K er(f, g)sn . Pentru orice 1 i n deducem ca fsi(ai) =gsi(ai). Prin urmare

    fs(A(a1, a2, . . . , an)) =B(fs1 (a1), fs2 (a2), . . . , f sn(an)) =B(gs1 (a1), gs2 (a2), . . . , gsn(an)) =

    =gs(A(a1, a2, . . . , an)), deci A(a1, a2, . . . , an) K er(f, g)s.

    Corolar 1.3.14 Fie f : A B si g : A B doua morfisme si X o submultime a lui A. Dacarestrictiile luif sig laXcoincid, atunci restrctiile luif sig laX sunt egale.

    Demonstratie: Deoarece prin ipoteza(x X)f(x) =g(x) deducemXK er(f, g).DeoareceKer(f, g)este parte stabila si X este cea mai mica parte stabil a care include X deducem X Ker(f, g). Deci(x X)f(x) =g(x), adica restrictiile luif sig laX coincid.

    Corolar 1.3.15 Fief :A B sig : A B doua morfisme Daca restrictiile luif sig la o multimede generatori ai algebreiA coincid, atuncif=g.

    Demonstratie: FieXo multime de generatori ai algebreiA, adicaX=A. Presupunem ca restrictiilelui f si g la X sunt egale. Din corolarul anterior deducem ca restrictiile lui f si g la X coincid. DarX=A implicaf=g.

  • 8/13/2019 Carte programare logica

    21/164

    1.4. EXISTENTA ALGEBRELOR LIBERE 21

    Propozitie 1.3.16 Fieh: A Bun morfism de-algebre.

    1. DacaPeste o parte stabila a luiA, atuncih(P) este o parte stabila a luiB.

    2. DacaQ este o parte stabila a luiB, aunci, h1(Q) este o parte stabila a luiA.

    3. DacaXeste o parte a luiA, atuncih(X) =h(X).

    Demonstratie:1. Prima proprietate spune ca imaginea directa a unei parti stabile printr-un -morfism este o parte

    stabila.Fie s1s2 . . . sn S, s S, s1s2...sn,s si b1 hs1 (Ps1 ), b2 hs2 (Ps2 ), . . . , bn hsn(Psn).

    Pentru orice 1 i n exista pi Psi astfel ncat bi = hsi(pi). Deoarece P este o parte stabila deducemA(p1, p2, . . . , pn) Ps. Observam ca

    hs(As(p1, p2, . . . , pn)) =Bs(hs1 (p1), hs2 (p2), . . . , hsn(pn)) =Bs(b1, b2, . . . , bn).

    Prin urmare Bs

    (b1

    , b2

    , . . . , bn

    ) hs(Ps

    ), decih(P) este parte stabila a algebrei B.2. A doua proprietate spune ca imaginea inversa a unei parti stabile printr-un -morfism este o parte

    stabila.Fie s1s2 . . . sn S, s S, s1s2...sn,s si a1 h

    1s1 (Qs1), a2 h

    1s2 (Qs2 ), an h

    1sn(Qsn). Deoarece

    Q este parte stabila si hs1 (a1) Qs1 , hs2 (a2) Qs2 , . . . hsn(an) Qsn deducemB(hs1 (a1), hs2 (a2), . . . , hsn(an)) Qs. Deoarece

    hs(As(a1, a2, . . . , an)) =Bs(hs1 (a1), hs2 (a2), . . . , hsn(an)) Qs

    deducem ca As(p1, p2, . . . , pn) h1s (Qs), deci h1(Q) este parte stabila.

    3. DinXX, deoarece imaginea directa este crescatoare, deducemh(X) h(X). Deoarece membruldrept este o parte stabila a lui Bfapt ce rezulta din prima proprietate deducem ca

    h(X) h(X).

    Din h(X) h(X) deducem h1(h(X)) h1(h(X)). Deoarece X h1(h(X)) rezulta caX h1(h(X)). Deoarece membrul drept este conform proprietatii 2 o parte stabila a lui A de-ducem X h1(h(X)). Deoarece imaginea directa este crescatare h(X) h(h1(h(X))). Deoareceh(h1(h(X))) h(X) deducem

    h(X) h(X).

    Din cele doua incluziuni de mai sus rezulta concluzia.

    1.4 EXISTENTA ALGEBRELOR LIBERE

    1.4.1 Algebre libere si algebre Peano

    Algebrele lib ere si algebrele Peano sunt doua concepte echivalente. Pentru a ntelege mai bine acest faptvom exemplifica un fenomen asemanator din cazul mult mai simplu al monoizilor.

    FieMun monoid si B M.Reamintim doua definitii echivalente pentru faptul camonoidul M esteliber generat de submultimea sa B.

    Definitia 1.4.1 Pentru orice monoidN si orice functief :B Nexista un unic morfismf# :MNde monoizi a carui restrictie la B este f.

    Definitia 1.4.2 Pentru orice m M exista si sunt unice numarul naturaln si elementele b1 B ,b2 B ,

    . . . ,bn B cu proprietatea m= b1b2 . . . bn.

  • 8/13/2019 Carte programare logica

    22/164

    22 CHAPTER 1. ALGEBRE MULTISORTATE

    Sa observam diferenta esentiala dintre cele doua definitii echivalente. Observam ca n definitia 1.4.1 nuapar de loc elemente, aparand numai concepte din afara monoiduluiM. Definitia 1.4.2 n schimb lucreazanumai cu elemente din interiorul monoidului.

    Comparand definitia data algebrelor libere cu cele doua de mai sus constatam ca definitia algebrelorlibere este asemanatoare cu definitia 1.4.1. Sunt atat de asemanatoare ncat pot fi generalizate la cel mai

    nalt nivel de abstractizare, cel al teoriei categoriilor prin conceptul de sageata universala.Conceptul asemanator celui din definitia 1.4.2 este cel de algebra Peano, concept echivalent, asa cum

    am spus mai sus, cu cel de algebra libera.Problema esentiala este de a demonstra existenta algebrelor libere, fapt care nu este simplu. Ream-

    intim ca o algebra libera este de fapt o algebra de expresii. Se poate demonstra ca expresiile formeaza oalgebra Peano si apoi proba ca algebrele Peano sunt libere. Deoarece expresiile pot fi scrise n mai multemoduri, fiecare dintre aceste scrieri p oate conduce la o demonstratie a existentei algebrei Peano. Deoarecetextul se adreseaza n primul rand unor informaticieni vom prefera reprezentarea expresiilor ca arboriietichetati, local ordonati, n care frunzele sunt etichete cu variabile(generatori) sau nume de constante.Restul nodurilor sunt etichetate cu nume de operatii ale caror argumente sunt date de subarborii avandradacinile drept succesori ai nodului.

    Existenta algebrelor libere - varianta scurta

    Definitia 1.4.3 Se numeste multime S-sortata de variabile o multime S-sortata X = {Xs}sS cucomponentele disjuncte doua cate doua.

    Conditia de mai sus rezulta din faptul ca o variabila nu poate fi de doua sorturi diferite. Altfel spus fiecarevariabila si determina sortul. O definitie echivalenta ar fi o functief :XS. In acest caz Xs=f1(s)pentru orice s S.

    Varianta scurta este scrisa pentru cei care au dificultati n a ntelege o demonstratie corecta dar maidificila. Cei care prefera varianta scurta pot sarii sectiunea urmatoare. Ceilalti sunt invitati sa sara directla sectiunea urmatoare.

    In aceasta varianta expresiile sunt scrise folosind scrierea uzuala cu paranteze si virgule.Plecam de la o signatura (S, ) si o multime S-sortata de variabile X.

    FieT(X)cea mai mica multime S-sortata cu urmatoarele proprietati:

    1. Xs T(X)s pentru orice s S,

    2. ,s T(X)s pentru orice s S,

    3. Pentru orice n 1, pentru orice s1s2 . . . sn S, pentru orice s S, pentru orice s1s2...sn,s,daca ti T(X)si pentru orice 1 i n, atunci (t1, t2, . . . , tn) T(X)s.

    Multimea S-sortata T(X) devine o -algebra definind operatiile notate T dupa cum urmeaza:

    1. T = daca ,s

    2. T(t1, t2, . . . tn) =(t1, t2, . . . , tn) daca n1, s1s2...sn,s si ti T(X)si pentru orice 1 i n.

    Vom demonstra n cele ce urmeaza ca -algebra (T(X)s, T) este liber generata de X.

    FieA = (As, A) o -algebra si f :XA o functieS-sortata.Definim functiaS-sortata f# :T(X) A prin

    1. f#s (x) =fs(x) pentru orice x Xs si s S,

    2. f

    #

    s () =A pentru orice ,s,

  • 8/13/2019 Carte programare logica

    23/164

    1.4. EXISTENTA ALGEBRELOR LIBERE 23

    3. f#s ((t1, t2, . . . , tn)) =A(f#s1 (t1), f

    #s2 (t2), . . . , f

    #sn(tn)) pentru orice n 1, orice s1s2 . . . sn S

    ,orices S, orice s1s2...sn,s si orice ti T(X)si pentru orice 1i n.

    Din prima parte a definitiei de mai sus se vede ca restrictia functieif# laX este chiar functiaf .Din celelalte doua parti ale definitiei rezulta caf# este un morfism de -algebre de la T(X) la A.

    Unicitatea: Daca h : T(X) A este un morfism a carui restrictie la X este f, deoarece X esteo multime de generatori ai lui T(X) si deoarece h si f

    # coincid pe X deducem din cololarul 1.3.15 cah= f#.

    Unde-i greseala?

    1.4.2 Algebre Peano

    Definitia 1.4.4 O algebraA = (As, A) se numete Peano peste X A daca1. Xgenereaza algebra A,2. pentru orice w,s si orice a Aw, A(a)Xs si3. ( w,s)(a Aw)( w,s)(a

    Aw)A(a) =A(a) w = w, = si a= a.

    Teorema 1.4.5 Orice algebra Peano pesteXeste liber generata deX.

    Demonstratie: Fie A = (As, A) o algebra Peano peste X A, B o alta algebra si h : X B ofunctie.

    Deoarece algebraA este generata de X rezulta ca

    A=nN

    Xn

    unde X0 =X si pentru orice n N si orice s S

    Xn+1s =Xns {A(a) :w S, w,s si a Xnw}.

    Definim prin inductie dupan N sirul de functiihn :Xn B prinh0 =h si

    hn+1s (a) =

    hns (a) dacaa X

    ns

    B(hnw(a

    )) dacaa= A(a)Xns unde w S

    , w,s sia Xnw

    Corectitudinea acestei definitii rezulta din conditia 3 din definitia algebrei Peano, care ne asigura ca scrierealui a sub formaa = A(a

    ) este unica.

    Observam ca sirul functiilor hn :Xn B este crescator, adica restrictia luihn+1 laXn este chiarhn.Mai mult pentru orice m n restrictia lui hm laXn este chiar hn.

    Definim functiag: A B pentru orice s S si orice a As prin

    gs(a) =hns (a) daca n este cel mai mic numar natural cu proprietatea a X

    ns.

    Observam ca pentru orice s S si orice a As deoarece A =nNX

    n exista n N cu proprietateaa Xns.

    Observam ca gs(a) =hms (a) pentru orice numar natural m cu proprietatea a X

    ms .

    Probam ca g : A Beste morfism de algebre. Fie w,s si a Aw.Deoarece conform conditiei 2 din definitia algebrei Peano A(a)X

    0s exista n cel mai mic numar natural

    cu proprietatea A(a) Xn+1s X

    ns. Rezulta ca

    gs(A(a)) =h

    n+1

    s (A(a)).

  • 8/13/2019 Carte programare logica

    24/164

    24 CHAPTER 1. ALGEBRE MULTISORTATE

    Probam caa Xnw. DeoareceA(a) Xn+1s X

    ns exista

    w,ssia Xnwastfel ncatA(a) =A(a

    ).Rezulta conform conditiei 3 din definitia algebrei Peano ca w = w, = si a = a, deci a Xnw. Prinurmare

    gw(a) =hnw(a) si h

    n+1s (A(a)) =B(h

    nw(a))

    decigs(A(a)) =B(h

    nw(a)) =B(gw(a)).

    Restrictia lui g la X=X0 esteh0 =h.

    Unicitatea luig este consecinta faptului ca Xgenereaza A.

    Am putea spune ca aceasta teorema este partea comuna a tuturor demonstratiilor privind existenta al-gebrelor libere. Rolul acestei teoreme este de a reduce demonstratia existentei algebrelor libere la existentaalgebrelor Peano. Cu alte cuvinte demonstratia de natura semantica este redusa la aspectele ei sintactice.

    Mentionam ca propozitia 1.4.7 este reciproca teoremei de mai sus.

    1.4.3 Algebra arborilor de derivareO gramatica independenta de context poseda doua multimi disjuncte, una a neterminalelor N si una aterminalelorTprecum si multimea PN (N T) a productiilor. Chiar daca conceptul de gramaticaindependenta de context verifica si alte conditii, noi ne restrangem doar la cele de mai sus deoarece acesteasunt utile n cele ce urmeaza.

    Fiecarei gramaticii independente de context G i se poate atasa o signatura:

    - neterminalele devin sorturi,

    - productiile devin nume de operatii,

    - daca (n, t0n1t1 . . . nktk) P unde literele nsunt neterminale si literele tsunt cuvinte cu litere termi-nale, atunci

    (n, t0n1t1 . . . nktk) :n1n2 . . . nk n

    adica operatia corespunzatoare lui (n, t0n1t1 . . . nktk) are ca rezultat un element de sortul indicat de neter-minalul din membrul stang al productiei, un numar de argumente egal cu numarul de neterminale din mem-brul drept al productiei si sorturile argumentelor sunt chiar neterminalele din membrul drept al productiei.

    O algebra a carei signatura este cea atasata gramaticii independente de contextGse numesteG-algebra.

    Un arbore de derivare ntr-o gramatica independenta de context are urmatoarele proprietati:

    1. este un arbore finit si local ordonat, adica succesorii fiecarui nod sunt ntr-o ordine totala;

    2. are noduri etichetate cu terminale sau neterminale, radacina fiind etichetata cu un neterminal;

    3. orice nod etichetat cu un terminal nu are nici un succesor;

    4. pentru orice nod, daca este etichetat cu un neterminal n, atunci perechea formata dinn si cuvantulformat de etichetele succesorilor formeaza o productie (n, s1s2 . . . sk1sk) P.

    n

    s s s s1 2 k-1 k

  • 8/13/2019 Carte programare logica

    25/164

    1.4. EXISTENTA ALGEBRELOR LIBERE 25

    Arborii de derivare ai unei gramatici independente de context G pot fi organizat i ca o G-algebra Adupa cum urmeaza:

    - pentru orice sortn, adica pentru orice neterminaln, multimeaAneste formata din totalitatea arborilorde derivare care au radacina etichetata cun.

    - pentru productia p = (n, t0n1t1 . . . nktk) si arborii ai Ani arborele Ap(a1, a2, . . . , ak) este format

    astfel: radacina este etichetata cu n, etichetele succesorilor radacinii n numar egal cu numarul literelordint0n1t1 . . . nktk sunt chiar literele acestui cuvant si subarb orele fiecarui nod etichetat cuni este chiar ai.

    Ap(a1, a2, . . . , ak) = n

    t0 a1 t1 . . . ak tk

    Teorema 1.4.6 Algebra arborilor de derivare ai unei gramatici independente de context este algebra Peanopeste multimea vida.

    Demonstratie: Pentru a proba caA este generata de multimea vida este suficient sa demonstram caA

    este singura parte stabila a luiA. FiePo parte stabila a luiA. Vom proba prin inductie dupa adancimeaarborilor ca orice arbore este n P. Reamintim ca adancimea unui arbore este lungimea celei mai lungiramuri din arbore. Aici este esentiala finitudinea arborilor de derivare deoarece aceasta implica existentaadancimii oricarui arbore. Fie m un numar natural. Presupunem prin ipoteza de induct ie ca orice arborecu adancimea strict mai mica decatm este n P. Probam ca orice arbore de adancimem este n P. Fiea unarbore de adancimem. Analizand radacina si primul nivel al arborelui a deducem existenta unei productiip= (n, t0n1t1 . . . nktk) cu proprietatea

    a= Ap(a1, a2, . . . , ak).

    unde aisunt subarborii luiacare au varfurile n succesorii radacinii lui acare sunt etichetati cu neterminale.Observam ca arborii a1, a2, . . . , ak au adancimea cu cel putin o unitate mai mica decat adancimea lui

    a, adica strict mai mica decat m. Prin ipoteza de inductie rezulta ca ai Psi pentru orice 1 i k.Deoarece Peste o parte stabila deducem caAp(a1, a2, . . . , ak) Ps, deci a Ps.

    A doua conditie din definitia algebrelor Peano

    Ap(a1, a2, . . . , ak)

    este evident adevarata.Trecem la ultima conditie. Fie p = (n, t0n1t1 . . . nktk) si q = (n, t

    0s1t

    1 . . . skt

    k) doua nume de

    operatii(productii) unde literele n sis sunt neterminale si literelet sunt cuvinte formate din terminale. Fieai Ani pentru 1 i k si bi Asi pentru 1 i k

    astfel ncat

    Ap(a1, a2, . . . , ak) =Aq(b1, b2, . . . , bk)

    Egaland cuvintele formate cu etichetele succesorilor radacinilor din cei doi arbori egali deducem

    t0n1t1 . . . nktk =t0s1t

    1 . . . skt

    k.

    Reamintim ca prin definitia gramaticilor un element nu poate fi n acelasi timp si terminal si neterminal.Deoarece numarul neterminalelor din cele doua cuvintre trebuie sa fie egal deducem egalitatea k = k.Deoarece primele neterminale din cele doua cuvinte trebuie sa fie pe aceeasi pozitie deducem ca t0= t

    0 si

    n1= s1. Rezulta cat1n2t2 . . . nktk =t

    1s2t

    2 . . . skt

    k.

    Continuam rationamentul ca mai sus si deducem ti =ti pentru 0 i k si ni = si pentru 1 i k. De

    aici deducem ca p= q.

  • 8/13/2019 Carte programare logica

    26/164

    26 CHAPTER 1. ALGEBRE MULTISORTATE

    In final egaland subarborii cu radacinile aflate pe aceeasi pozitie a primului nivel din arborii egaliAp(a1, a2, . . . , ak) siAq(b1, b2, . . . , bk) rezulta caai = bi pentru orice 1 i k.

    Scriu randurile care urmeaza deoarece de mai multe ori cativa dintre studentii au contestat lipsaprimului pas al inductiei n prima parte a demonstratiei de mai sus. El nu lipseste ci este pur si simplu

    inclus n demonstratia de mai sus. Primul pas este cazul m= 0. Este evident ca prin ipoteza de inductienu se presupune nimic deoarece nu exista arbori de adancime strict negativa. Arborele a de adancime 0nu are decat radacina etichetata sa spunem cu n, prin urmare p = (n, cuvantul vid) este productie, decia= Ap. In concluzie Ap Pn deoarece Peste parte stabila, deci a Pn.

    1.4.4 Existenta algebrelor initiale

    Urmarim sa aratam ca pentru orice signatura (S, {w,s}wS,sS) exista o -algebra initiala pe care n celece urmeaza o vom nota cu T.

    Constructia algebrei initiale care urmeaza este bazata pe scrierea poloneza a expresiilor fara variabile,adica un sir de semne de operatii n care semnul de operatie este plasat n fata argumentelor sale care

    trebuie sa-l urmeze. Pentru generarea acestor expresii vom folosi o gramatica independenta de context.Productiile de forma (s,s1s2 . . . sn) unde s1s2...sn,s spun ca daca ei este expresie de sort si pentruorice 1 i n, atunci e1e2 . . . en este expresie de sort s.

    Fara a micsora generalitatea vom presupune caS si sunt disjuncte.

    ConsideramGgramatica independenta de context definita prin1. Multimea neterminalelor este S,2. Multimea terminalelor este si3. Multimea productiilor este

    {(s,w) | w S, s S si w,s}.

    Notam cu A = (As, {A(s,w)}w,s) algebra arborilor ei de derivare. Ea este, conform teoremei 1.4.6,algebra Peano peste multimea vida. Conform teoremei 1.4.5, A esteG-algebra liber generata de multimeavida, adica G-algebra initiala.

    Nu ne mai ramane decat sa observam ca notiunile de G-algebra si -algebra coincid. Pentru aceastapentru s1s2...sn,s operatia corespunzatoare productiei atasate (s,s1s2 . . . sn) este o functie

    As1 As2 . . . Asn As.

    1.4.5 Existenta algebrelor libere

    Urmarim sa aratam ca pentru orice signatura (S, ) si pentru multime S-sortata de variabile X exista o-algebra liber generata de Xpe care n cele ce urmeaza o vom nota cu T(X). Reamintim ca multimea

    S-sortata Xare componentele disjuncte doua cate doua. Fara a micsora generalitatea vom presupune ca siXsunt disjuncte.

    Constructia algebrei libere generate de o multime de variabile se bazeaza pe existenta algebrelor intiale.Comparand formarea, n stil intuitiv, al expresiilor fara variabile cu a expresiilor cu variabile observamca diferenta este doar la inceput. Pentru constructia expresiilor fara variabile se pleaca de la costante,operatiile fara argumente. Pentru constructia expresiilor cu variabile se pleaca de la costante si variabile.In continuare, n ambele cazuri se continua cu aplicarea operatiilor neconstante n toate modurile posibile.Se ajunge, n cazul expresiilor fara variabile, la algebra initiala si n cazul expresiilor cu variabile dinmultimea S-sortata Xla algebra liber generata de X.

    Trecem la formalizarea ideilor de mai sus. Consideram signatura algebrica X = X unde orice

    variabila x Xs devine o constanta de sorts.

  • 8/13/2019 Carte programare logica

    27/164

    1.5. SEMANTICA ALGEBREI INITIALE 27

    Fie

    I= ({Is}sS, {I}, {Ix}xX)

    o Xalgebra initiala. Vom proba ca algebra ({Is}sS, {I}) impreuna cu functia injectivaf : X {Is}sS definta prin fs(x) = Ix pentru orice s S si x Xs sunt o algebra liber gen-

    erata de X.Fie A = (As, A) o algebra si g : X A o functie Ssortata. Consideram Xalgebra(As, A , {g(x)}xX) si unicul morfism de Xalgebre existent

    h: I (As, A , {g(x)}xX).

    Este suficient sa mai remarcam ca h : I (As, A, {f(x)}xX) este morfism de Xalgebra daca sinumai daca h: ({Is}sS, {I}) A este morfism de algebre si g; h= f.

    Propozitie 1.4.7 Orice algebra libera este Peano

    Demonstratie: FieL o -algebra liber generata de multimeaX. Consideram o -algebraPPeano peste

    X. Deoarece si Peste liber generata de X rezulta existenta unui izomorfism i : P L cu proprietateai(x) = x pentru orice x X. Deoarece orice algebra izomorfa cu o algebra Peano este algebra Peanorezulta ca L este algebra Peano peste X.

    1.5 SEMANTICA ALGEBREI INITIALE

    Mentionam aici pe marele informatician, regretatul Joseph Goguen, profesorul si prietenul multor romani,care spunea ca semantica algebrei initiale este una dintre cele mai frumoase idei ale sale [10].

    Metoda semanticii algebrei initiale este o simplificare a metodei mai clasice a semanticii denotat ionale,numita si semantica matematica.

    Metoda semanticii algebrei intiale se aplica pentru limbaje definite printr-o gramatica independenta

    de context G= (N , T , P , a), unde N este multimea neterminalelor, T mutimea terminalelor, P multimeaproductiilor si a axioma gramaticii. Ea spune capentru a defini semantica limbajului gramaticii Geste suficient sa dam oG-algebraS= ({Sn}nN, {Sp}pP),numita n continuarealgebra semantica.

    Pentru a ntelege afirmatia de mai sus trebuie sa intram putin n amanunte. FieA algebra arborilorde derivare. DeoareceAeste algebra intiala exista un unic morfism de G-algebre

    M :A S.

    Dat un cuvantc din limbajul gramaticii G exista un arbore de derivare arb cu radacina etichetata cua acarui frontiera este c. Semantica cuvantuluic este prin definitieMa(arb).

    Mentionam ca metoda este bine definita numai pentru gramaticile neambigue, fapt care asigura unici-

    tatea arboreluiarb. Acest aspect este mai degraba legat de analiza sintactica.Trecem la exemple care vor clarifica si mai mult ideile de mai sus.

    1.5.1 Semantica unui sir de cifre ca numar natural

    Vom considera o gramaticaGcare genereaza sirurile finite nevide de cifre zecimale, considerate ca terminale.Gramatica are doua neterminale si ultima fiind si axioma a gramaticii. Descriem ncontinuare productiile gramaticii carora le dam un nume

    ci i pentru orice cifra zecimala in1 n2

  • 8/13/2019 Carte programare logica

    28/164

  • 8/13/2019 Carte programare logica

    29/164

    1.5. SEMANTICA ALGEBREI INITIALE 29

    M pentru unica celula de memorie a calculatorului

    ( ) pentru parantezele necesare n scrierea expresiilor

    IF , pentru o anumita expresie conditionata

    E pentru comanda de evaluarea a unei expresii

    Remarcam ca butoanele diferite de ON, OFF si E sunt folosite pentru introducerea expresiilor carevor fi evaluate la apasarea butonului E. Sintaxa expresiilor este definita de productiile r1-r6 ale gramaticiide mai jos. Expresiile sunt construite pornind de la sirurile finite de cifre zecimale reprezentand numerenaturale(productia r1), variabila M(productia r2) si recursiv, alte expresii cuprinse ntre paranteze(productiar6). Pentru construtia expresiilor sunt folosite numai operatiile de adunare si nmultire(productiile r3 si r4).Productia r5 permite construirea unor expresii conditionate unde conditia reprezentata de prima expresiepermite o alegere ntre celelalte doua expresii.

    Vom considera o gramatica Gcare genereaza limbajul programelor care pot fi executate de minicalcu-lator. Ea extinde gramatica din exemplul precedent. Numele butoanelor de mai sus sunt chiar terminalelegramaticii.

    Gramatica are cinci neterminale , , pentru expresii, pentru anumite

    portiuni de programe si care este si axioma a gramaticii. Descriem n continuare productiilegramaticii carora le dam un nume pe care l-am scris la nceputul randului, n fata productiei.

    ci i pentru orice cifra zecimala in1 n2 r1 r2 Mr3 + r4 r5 IF ,,

    r6 ()r7 E OFFr8 E r9 ON

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

    Vom defini algebra semantica. Deoarece signatura asociata are cinci sorturi, algebra semantica trebuiesa aiba ca suport cinci multimi, primele doua fiind cele de mai sus S siS.

    Expresiile sunt facute pentru a fi evaluate, prin urmare prima idee ar fi ca semantica unei expresii s a fierezultatul evaluarii, adica un numar. Dar oare ce numar se obtine prin evaluarea expresiei M+3. Trebuiesa mentionam ca fiecare aparitie a lui M este nlocuita n timpul evaluarii cu valoarea care se afla n unicacelula de memorie. Prin urmare rezultatul evaluarii lui M+3 depinde de continutul celulei de memorie.Prin urmare semantica expresiei M+3 este functia f : N N defina prin f(x) = x+ 3 care asociazanumarului x care se afla n celula de memorie rezultatul x+ 3 al evaluarii acesteia. Prin urmare prindefinitieS este multimea functiilor de la multimea numerelor naturale la ea nsasi.

    O instructiune, generata de productiile r7 si r8, comanda evaluarea unui sir finit de expresii. Semanticainstructiunii este, prin definitie, sirul numerelor care apar pe ecran n timpul executiei instructiunii, adica

    un sir finit si nevid de numere naturale. Multimea acestor siruri o notam cu N

    +

    . Rezultatul evaluarii

  • 8/13/2019 Carte programare logica

    30/164

    30 CHAPTER 1. ALGEBRE MULTISORTATE