Programare Logica

164
Cuprins 1 ALGEBRE MULTISORTATE 5 1.1 CONCEPTUL DE ALGEBR ˘ A MULTISORTAT ˘ A ....................... 5 1.1.1 Mult ¸imi ¸ si funct ¸ii multisortate .............................. 5 1.1.2 Signaturi multisortate ................................... 6 1.1.3 Algebre multisortate .................................... 7 1.1.4 Morfisme de algebre multisortate ............................. 8 1.1.5 Izomorfisme de algebre multisortate ........................... 10 1.2 ALGEBRE LIBERE - APLICAT ¸II ................................ 11 1.2.1 Expresii ........................................... 11 1.2.2 Unicitatea abstract ¸ie de un izomorfism a algebrelor libere ............... 13 1.2.3 Tipuri abstracte de date - introducere .......................... 14 1.3 SUBALGEBRE ........................................... 16 1.3.1 Operator de ˆ ınchidere. Familie Moore .......................... 17 1.3.2 arti stabile, Subalgebre .................................. 18 1.3.3 Morfisme ¸ si p˘ art ¸i stabile .................................. 20 1.4 EXISTENT ¸ A ALGEBRELOR LIBERE ............................. 21 1.4.1 Algebre libere ¸ si algebre Peano .............................. 21 1.4.2 Algebre Peano ....................................... 23 1.4.3 Algebra arborilor de derivare ............................... 24 1.4.4 Existent ¸a algebrelor init ¸iale ................................ 26 1.4.5 Existent ¸a algebrelor libere ................................. 26 1.5 SEMANTICA ALGEBREI INIT ¸ IALE .............................. 27 1.5.1 Semantica unui ¸ sir de cifre ca num˘ ar natural ...................... 27 1.5.2 Un calculator de buzunar ................................. 28 1.5.3 Arbori de derivare ..................................... 30 1.5.4 Scrierea polonez˘ a invers˘ a ................................. 33 1.5.5 Compilare .......................................... 34 1.6 CONGRUENT ¸E¸ si ALGEBRE C ˆ AT ............................... 35 1.6.1 Congruent ¸e ......................................... 36 1.6.2 Algebre cˆ at ......................................... 38 1.7 ALGEBRE PROIECTIVE ..................................... 39 1.7.1 Proiectivitatea algebrelor libere .............................. 39 1.7.2 Altepropriet˘at ¸i ....................................... 39 1.8 SPRE ABSTRACTIZAREA TIPURILOR DE DATE ..................... 40 1.8.1 Ecuat ¸ii ........................................... 40 1.8.2 Ecuat ¸ii condit ¸ionate .................................... 41 1.8.3 Necesitatea utiliz˘ arii cuantificatorilor ˆ ın ecuat ¸ii ..................... 42 1.8.4 In primul rˆ and semantica ................................. 42 1.8.5 Punctul de vedere local .................................. 43 1.8.6 Congruent ¸a semantic˘ a ................................... 43 1

description

progrmare logica

Transcript of Programare Logica

Page 1: Programare Logica

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.8.6 Congruenta semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1

Page 2: Programare Logica

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 492.1 TEORII DEDUCTIVE A 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

2.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 91

3.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.3.2 Reguli de deductie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Page 3: Programare Logica

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.5.4 Completitudinea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

3.6 COMPLETITUDINEA NARROWINGULUI . . . . . . . . . . . . . . . . . . . . . . . . . . 1023.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

4.3 CONEXIUNI GALOIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.3.1 Conexiunea Galois atasata unei relatii . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.4 INSTITUTII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.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 Functorul Alg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.7.3 Functorul Sen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.7.4 Incluziuni de signaturi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

5.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 COLIMITE IN INSTITUTII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

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

Page 4: Programare Logica

4 CUPRINS

5.5 CATEGORII INCLUSIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495.5.1 Categorii inclusive cu sume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545.5.2 Sume fibrate care conserva incluziunile . . . . . . . . . . . . . . . . . . . . . . . . . . 155

5.6 IMPORTURI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595.6.1 Semantica slaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1605.6.2 Semantica initiala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

5.7 PARAMETRIZAREA PROGRAMELOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Page 5: Programare Logica

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 multimea S a sorturilor.

Definitia 1.1.1 O familie de multimi M = {Ms}s∈S indexata de S se 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}s∈S o multime S-sortata. Daca s ∈ S si m ∈ Ms spunem ca elementul m are sortul ssau ca s este sortul elementului m.

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

{Ms}s∈S ⊆ {Ns}s∈S daca si numai daca (∀s ∈ S)Ms ⊆ Ns,

{Ms}s∈S ∪ {Ns}s∈S = {Ms ∪Ns}s∈S ,

{Ms}s∈S ∩ {Ns}s∈S = {Ms ∩Ns}s∈S ,

{Ms}s∈S × {Ns}s∈S = {Ms ×Ns}s∈S .

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 : M −→ N

este o familie de functii f = {fs}s∈S unde pentru orice s ∈ S componenta de sort s este o functie uzualafs : Ms −→ Ns. �

5

Page 6: Programare Logica

6 CHAPTER 1. ALGEBRE MULTISORTATE

Ca si ın cazul multimilor S-sortate, operatiile cu functiile S-sortate se fac pe componente. Dacaf : M −→ N si g = {gs}s∈S : N −→ P sunt functii S-sortate atunci compunerea lor

f ; g = {fs; gs}s∈S : M −→ P

este definita pentru orice s ∈ S prin

(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 diagramatica f ; g utilizata pentru compunereın 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 S–sortata,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 multime S-sortata M functia ei identitate 1M : M −→M este definita prin (1M )s = 1Ms

pentru orice s ∈ S, unde 1Ms este functia identitate a multimii Ms. Functia identitate are efect neutru lacompunere. Pentru orice functie S–sortata f : M −→ N au loc egalitatile 1M ; f = f = f ; 1N .

Cele doua proprietati de mai sus ne permit sa vorbim de categoria multimilor S–sortate(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 poate 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 signatura aredoua componenete una pentru date si una pentru operatii.

Componenta pentru date este pur si simplu o multime S ale carei elemente s ∈ S se numesc sorturi.

Fiecare operatie este caracterizata de modul acesteia de actiune. Operatia actioneaza pe un anumitnumar fix de date de sorturi precizate si are rezultatul de un sort dat. Ca exemplu pentru operatia cunumele o notam cu

o : s1s2 . . . sn −→ s

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,s este 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∗ notammultimea sirurilor finite formate cu elemente din S.

Page 7: Programare Logica

1.1. CONCEPTUL DE ALGEBRA MULTISORTATA 7

Definitia 1.1.3 O signatura algebrica

(S, {Σs1s2...sn,s}s1s2...sn∈S∗,s∈S)

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

{Σs1s2...sn,s}s1s2...sn∈S∗,s∈S.

Pentru fiecare s1s2 . . . sn ∈ S∗ si s ∈ S multimea Σs1s2...sn,s contine numele operatiilor cu n argumente de

sorturi s1, s2, . . . , sn si rezultat de sort s.

Mentionam ca multimile Σs1s2...sn,s pot avea elemente comune, ceea ce permite modelarea supraıncarcariioperatiilor, 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...sn∈S∗,s∈S).

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 operatii cu sortulrezultat boolean. De exemplu

≤ : natural natural −→ boolean

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 submultimii A a multimii M este definita prin

χA(m) =

{

adevar daca m ∈ Afals daca m 6∈ 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 operatii. Datele sunt de mai multe sorturi, adica pentru fiecaresort s algebra contine o multime a datelor de sort s. Familia acestor multimi, numita si suportul algebrei,constitue o multime sortata.

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

Aσ : As1 ×As2 × · · · ×Asn −→ As. �

Page 8: Programare Logica

8 CHAPTER 1. ALGEBRE MULTISORTATE

Daca nu exista pericol de confuzie ın loc de ({As}s∈S , {Aσ}σ∈Σ) vom scrie mai simplu (As, Aσ). Maimentionam ca pentru o algebra A si suportul acesteia A folosim 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 ∈ S vom mai folosi si notatia

As1s2...sn = As1 ×As2 × · · · ×Asn .

Din definitia de mai sus rezulta ca daca σ ∈ Σλ,s unde λ este sirul vid din S∗, atunci Aσ este o functiedefinita pe o multime cu un element si cu valori ın As. Pentru a simplifica scrierea aceasta functie esteınlocuita 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 exemplucel 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 estearbitrara 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 suporturile 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. Functia h : 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 morfismul h 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 functieS-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 obtinut hs(Aσ(a1, a2, . . . , an))

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

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

Page 9: Programare Logica

1.1. CONCEPTUL DE ALGEBRA 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 Functia S-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 pericol de confuzie ın loc de morfism de Σ-algebre vom scrie morfism de algebre sau chiarmorfism. In continuare pentru s1, s2, . . . , sn ∈ S vom mai folosi si notatia

hs1s2...sn = hs1 × hs2 × · · · × hsn : As1s2...sn −→ Bs1s2...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 egalitatea hs(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 . . . sn −→ s 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 si B si un morfism ıntre cele doua algebre

h : A −→ B.

Observam ca functia identitate 1A este morfism de Σ-algebre de la A la A fapt 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.

Fie s1s2 . . . 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.

Page 10: Programare Logica

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 si g;h = 1B.

Daca exista, morfismul g din definitia de mai sus este unic. Intradevar daca f : B −→ A este un altmorfism cu proprietatile h; 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 continuarecu h−1. Prin urmare pentru orice izomorfism h : A −→ B mentionam egalitatile h;h−1 = 1A si h−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: Fie h : A −→ B un morfism de Σ-algebre.Presupunem ca h este izomorfism, adica exista morfismul h−1 : B −→ A cu proprietatile h;h−1 = 1A

si h−1;h = 1B. Rezulta ca pentru orice sort s ∈ S au loc egalitatile hs;h−1s = 1As si h−1

s ;hs = 1Bs , adicafunctia hs 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 orices ∈ S exista functia h−1

s : Bs −→ As cu proprietatile hs;h−1s = 1As si h−1

s ;hs = 1Bs . De aici notandh−1 = {h−1

s }s∈S rezulta pentru orice s ∈ S ca

(h;h−1)s = hs;h−1s = 1As = (1A)s si (h−1;h)s = h−1

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

deci h;h−1 = 1A si h−1;h = 1B .Pentru a ıncheia demonstratia mai trebuie aratat ca functia S-sortata h−1 : B −→ A este un morfism

de Σ-algebre h−1 : B −→ A.Fie s1s2 . . . sn ∈ S

∗, s ∈ S, σ ∈ Σs1s2...sn,s si b1 ∈ Bs1 , b2 ∈ Bs2 , . . . , bn ∈ Bsn . Deoarece h este morfismpentru elementele h−1

s1 (b1), h−1s2 (b2), . . . , h

−1sn (bn) din A deducem

hs(Aσ(h−1s1 (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 functia h−1s ambilor membri deducem

Aσ(h−1s1 (b1), h

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

−1sn (bn)) = h−1

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

deci h−1 : B −→ A este morfism de Σ-algebre.

Propozitie 1.1.9 Compunerea a doua izomorfisme f : A −→ B si g : B −→ C este un izomorfismf ; g : A −→ C. In plus

(f ; g)−1 = g−1; f−1

Demonstratie: Pentru a demonstra ca un morfism de la M la N este 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 ; f−1 = 1A, f−1; f = 1B, g; g−1 = 1Bsi g−1; g = 1C deducem

(f ; g); (g−1; f−1) = f ; (g; g−1); f−1 = f ; 1B; f−1 = f ; f−1 = 1A si

(g−1; f−1); (f ; g) = g−1; (f−1; f); g = g−1; 1B; g = g−1; g = 1C

ceea ce arata ca f ; g este izomorfism avand inversul g−1; f−1.

Page 11: Programare Logica

1.2. ALGEBRE LIBERE - APLICATII 11

1.2 ALGEBRE LIBERE - APLICATII

Dupa aceasta mica introducere privind algebrele multisortate, trecem la conceptul de algebra 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 poseda 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 de expresie asa 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 “este x∗y ∗z o expresie?” raspunsuldepinde de contextul ın care a fost pusa ıntrebarea. Daca operatia ∗ a fost declarata asociativa, atuncix ∗ y ∗ z este o expresie. In caz contrar ea nu este o expresie deoarece include o ambiguitate putand fiinterpretata ca x ∗ (y ∗ z) sau (x ∗ y) ∗ z ambele fiind expresii. Pentru ınceput notiunea de expresie va fidefinita ın ipoteza ca operatiile cu care lucram nu au nici o proprietate suplimentara.

Mai mentionam ca cele doua expresii de mai sus mai pot fi scrise ın scrierea poloneza ∗x ∗ yz si ∗ ∗ xyzsau ın scrierea poloneza inversa xyz ∗ ∗ si xy ∗ z∗. Ne intereseaza o 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 Σ-algebra D si pentru orice functie sortata f : V → D, exista un unic morfism de Σ-algebre f# : A→ D careextinde f .

Σ-algebra A se numeste libera daca exista V ⊆ A astfel ıncat A este liber generata de V.

Definitia 1.2.2 Se numeste expresie un element dintr-o algebra libera.

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

Bineınteles 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 de evaluare 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?(y⊤z) 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.

Page 12: Programare Logica

12 CHAPTER 1. ALGEBRE MULTISORTATE

Mentionam ca a da valori variabilelor din multimea X ın algebra D este echivalent cu a da o functie

v : X −→ D.

Pentru orice variabila x din X valoarea data lui x este v(x).Vom nota cu TΣ(X) algebra liber generata de multimea X de variabile. Incluziunea X ⊆ TΣ(X) este

echivalenta cu faptul intuitiv ca orice variabila este o expresie. Pentru orice algebra D si pentru oricefunctie v : X −→ D 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 si SetS(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) : X −→ D este restrictia h/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

adica r 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) la D 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 ofunctie v : 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 sadam o functie de la X la D.

Definitia 1.2.3 Daca e ∈ TΣ(X) este o expresie cu variabile din X si h : TΣ(X) −→ D morfismul prin carese dau valori ın D variabilelor, atunci h(e) este rezultatul evaluarii expresiei e pentru valorile variabilelordate de functia h/X : X −→ D. �

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

Pentru valorile x = 2, y = 3 si z = 1 intuitiv obtinem 2 ∗ (3 + 1) = 8 iar cu definitia 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?(y⊤z)) = h(x) ∗ h(y⊤z) = 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 si e 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 depozitate ın celule ale memoriei care cores-pund variabilelor din X. Prin urmare starea memoriei este caracterizata ın fiecare moment de o functies : X −→ D. Daca x este o variabila s(x) este valoarea din celula de memorie corespunzatoare lui x. Fie S

Page 13: Programare Logica

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 F de la multimeaS a starilor la ea insasi. Functia F este definita pentru starea s a memoriei daca si numai daca executiainstructiunii ı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. Fie s : X −→ D starea memoriei laınceputul executiei atribuirii si s# : TΣ(X) −→ D unica extindere la un morfism a lui s. Observam cas#(e) este rezultatul evaluarii expresiei e ın starea s a memorie. Prin urmare, prin definitie

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

{

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

Pentru o mai buna ıntelegere mentionam ca s(y) este valoarea variabilei y ın momentul ınceperii executieiinstructiunii de atribuire si ca Sem(x := e)(s)(y) este valoarea variabilei y ın momentul terminarii executieiinstructiunii de atribuire x := 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 notatia i : A → B.

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 : X −→ A si iB : X −→ B functiile incluziune ale lui X ın A, respectiv ın B. Demonstratia are patrupasi.

1. Deoarece algebra A este liber generata de X exista un morfism f : A −→ B cu proprietateaiA; f = iB .Pasul 2 este asemanator cu primul, doar ca se inverseaza rolul algebrelor A si B. La fel vor fi pasii 3 si 4.

2. Deoarece algebra B este liber generata deX exista un morfism g : B −→ A cu proprietatea iB ; 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: Fie A o Σ–algebra liber generata de V ⊆ A si h : A −→ B un izomorfism.

Probam ca Σ–algebra B este liber generata de h(V ) ⊆ B. Fie C o Σ–algebra si f : h(V ) −→ C o functieS–sortata. Fie g : V −→ C functia S–sortata definita prin

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

Deoarece A este Σ–algebra liber generata de V exista un unic Σ–morfism g# : A −→ C cu proprietatea

(∀v ∈ V )g#(v) = g(v).

Page 14: Programare Logica

14 CHAPTER 1. ALGEBRE MULTISORTATE

V�

� //

��g

A

h

��

g#

pp

h(V ) �

� //

f

��

B

C

Calculand restrictia morfismului h−1; g# : B −→ C la h(V ) observam ca

(∀v ∈ V )(h−1; g#)(h(v)) = g#(h−1(h(v))) = g#(v) = f(h(v)),

adica Σ–morfismul h−1; g# este o extindere a functiei f .Vom proba unicitatea acestei extinderi. Fie t : B −→ C un 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# deci t = h−1; g#. �

Algebre initiale

Definitia 1.2.6 O Σ-algebra I se numete intiala daca pentru orice Σ-algebra A 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 abstract daca este unic determinat abstractie facand de un izomorfism. Abstractınseamna 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 pentru numere naturale fara a intra ın prea multedetalii.

Page 15: Programare Logica

1.2. ALGEBRE LIBERE - APLICATII 15

Tipul abstract al numerelor naturale

Semiinelul este o multime M ınzestrata cu doua operatii binare notate cu + si ∗ cu 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 si sN (n) = n+ 1 pentru orice numar natural n. Algebra N este initiala.

Demonstratie: Fie A = (A, 0A, sA) o alta algebra pentru signatura de mai sus.Definim funtia h : N −→ A 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 natural n dovedesc cah : N −→ A este un morfism.

Probam unicitatea. Fie g : N −→ A un alt morfism. Aratam prin inductie ca g(n) = h(n) pentru oricen natural.g(0N ) = 0A = h(0N ) si presupunand g(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 catip abstract de date. Ea dovedeste corectitudinea definitiei de mai sus.

Page 16: Programare Logica

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 ajungand 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 care D devine algebra initiala.

Exemplul numerelor naturale este doar un ınceput. Va propunem de exemplu sa definiti relatia deordine ca operatie < : nat nat −→ bool. Piatra de ıncercare va fi ınsa operatia de ımpartire.

1.3 SUBALGEBRE

Vom continua prezentarea teoriei algebrelor multisortate cu conceptele de parte stabila si subalgebra.Deoarece partile stabile formeaza o familie Moore, concept echivalent cu cel de operator de ınchidere vomıncepe cu o scurta prezentare a acestor concepte.

Page 17: Programare Logica

1.3. SUBALGEBRE 17

1.3.1 Operator de ınchidere. Familie Moore

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

Definitia 1.3.1 Se numeste operator de ınchidere o functie

• : P −→ P

cu urmatoarele proprietati:

1. extensivitate: (∀p ∈ P ) p ≤ p•,

2. idempotenta: (∀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 numeste familie Moore o submultimeM ⊂ P astfel ıncat oricare ar fi p ∈ P multimea{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 • : P −→ P este un operator de ınchidere, atunci multimea elementelor ınchise

M = {p ∈ P : p = p•}

este o familie Moore. In plus p• este cel mai mic(prim) element al multimii Mp.

Demonstratie: Pentru orice p ∈ P probam ca p• este cel mai mic(prim) element al multimii Mp.

Deoarece p• = p•• rezulta ca p• ∈ M . Conform extensivitatii p ≤ p• deducem ca p• apartine multimiiMp. Pentru orice m ∈Mp din p ≤ m deducem p• ≤ m• si din m ∈M deducem m• = m deci p• ≤ m. �

Observatia 1.3.4 Daca • : P −→ P este un operator de ınchidere: p ≤ q• implica p• ≤ q•

Demonstratie: Deoarece q• este un element ınchis cu proprietatea p ≤ q• si p• este cel mai mic elementınchis cu proprietatea p ≤ p•. �

Propozitie 1.3.5 Daca M este o familie Moore si daca pentru orice p ∈ P definim p• ca fiind cel maimic element din Mp obtinem un operator de ınchidere • : P −→ P .

Demonstratie: Deoarece p• ∈Mp deducem p• ∈M si p ≤ 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

rezulta p•• ≤ p•. Folosind extensivitatea p• ≤ p•• deducem p• = p••.Daca p ≤ q cum q• este cel mai mic element din {m ∈ M | q ≤ m} rezulta ca q• ∈ M si q ≤ q•, prin

urmare p ≤ q•. Deoarece q• ∈ {m ∈M | p ≤ m} deducem p• ≤ 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 Moore M conform propozitiei 1.3.5.Operatorii de ınchidere ′ si • coincid.

Page 18: Programare Logica

18 CHAPTER 1. ALGEBRE MULTISORTATE

Demonstratie: Demonstram pentru orice p ∈ P ca p′ = p•.

Fie p ∈ P . Prin definitie p• este cel mai mic element al multimii Mp. Dar propozitia 1.3.3 spune ca p′

este cel mai mic element al lui Mp, prin urmare p′ = p•.

Deci operatorii de ınchidere ′ si • coincid. �

Propozitie 1.3.7 Daca M este o familie Moore, • operatorul de ınchidere asociat lui M conform propozitiei1.3.5 si M• = {q ∈ P | q = q•} familia Moore asociata lui • conform propozitiei 1.3.3, atunci M = M•.

Demonstratie: Aratam pentru orice p ∈ P ca p ∈M daca si numai daca p ∈M•.

Fie p ∈M• = {m ∈ P | m = m•}. Rezulta ca p = p•. Din p• ∈Mp deducem ca p• ∈M deci p ∈M .

Daca p ∈ M atunci p este cel mai mic element din multimea {m ∈ M | p ≤ m} deci p = p• adicap ∈M•. �

Din propozitiile de mai sus se observa echivalenta celor doua concepte. Fixand multimea partialordonata (P,≤), consideram multimea O a operatorilor de ınchidere si multimeaM a familiilor Moore dinP . Propozitia 1.3.3 ne da o functie de la O 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, aparitiaın discutie a unuia dintre ele introducand automat si pe celalalt.

Urmatoarea propozitie este utila ın multe exemple.

Propozitie 1.3.8 Intr-o latice completa L, M este familie Moore daca si numai daca pentru orice A ⊆M,infA ∈M .

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, deducem infA ≤ (infA)•. Probam ca (infA)• este minorant pentru A. Daca a ∈ Aatunci infA ≤ 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)• ≤ infA. Rezulta ca (infA)• = infA, deci infA este element ınchis si infA ∈M .

Pentru cealalta implicatie, presupunem ca orice submultime a lui M are infimum ın M . Probam ca Meste familie Moore. Fie p ∈ L si notam Mp = {m ∈ M | p ≤ m}. Din ipoteza, infMp ∈ M . Deoarece peste minorant pentru Mp rezulta ca p ≤ infMp prin urmare infMp ∈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}s∈S 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.

Fie A = (As, Aσ) o Σ-algebra si X ⊆ A. Definim prin inductie sirul de parti ale lui A astfel

Page 19: Programare Logica

1.3. SUBALGEBRE 19

X0 = X siXn+1s = Xn

s ∪ {Aσ(a) : w ∈ S∗, σ ∈ Σw,s, a ∈ Xnw} pentru orice n ∈ N si orice s ∈ S.

Observam ca sirul {Xn}n∈N este crescator. Mai observam ca multimea Xn+1 se obtine adaugand laXn rezultatele aplicarii unei singure operatii, o singura data, unor elemente din Xn.

Definim partea X a lui A prin

X =⋃

n∈N

Xn.

Propozitie 1.3.10 X este partea stabila generata de X.

Demonstratie: Cu alte cuvinte X este cea mai mica parte stabila a lui A care include X, adica trebuiesa demonstram ca

1. X ⊆ X

2. X este parte stabila

3. daca P este o parte stabila care include X atunci P include X

Prima incluziune este evidenta deoarece X = X0 ⊆ X.Probam ca X este parte stabila. Fie s1s2 . . . sn ∈ S

∗, s ∈ S, σ ∈ Σs1s2...sn,s si a1 ∈ Xs1, a2 ∈ Xs2 ,. . . , an ∈ Xsn . Pentru orice 1 ≤ i ≤ n din ai ∈ Xsi , adica ai ∈

n∈N Xnsi , 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 {Xn}n deducem

Aσ(a1, a2, . . . , an) ∈ Xk+1s . Deoarece Xk+1 ⊆ X deducem ca Aσ(a1, a2, . . . , an) ∈ Xs deci X este parte

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

orice n natural.Daca n = 0 atunci X0 = X ⊆ P.Presupunem Xn ⊆ P si demonstram ca Xn+1 ⊆ P. Fie a ∈ Xn+1

s . Daca a ∈ Xns din ipoteza de inductie

deducem a ∈ 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, deci a ∈ Ps.

Deoarece Xn ⊆ P pentru orice n natural rezulta ca⋃

n∈N Xn ⊆ 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 X sau ca X este o multime de generatori ai algebrei A.

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

1. daca X ⊆ Y sunt parti ale algebrei, atunci X ⊆ Y ,

2. X = X pentru orice parte X a 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, X o 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 X are proprietatea P,

Page 20: Programare Logica

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. Fie B submultimea lui A formata din toateelementele algebrei A care au propritatea P.- Proprietatea 1 de mai sus ne asigura ca X ⊆ B.- Proprietatea 2 de mai sus ne asigura ca B este parte stabila.

Deoarece X este cea mai mica parte stabila care include X din cele doua proprietati deducem X ⊆ B.Dar X = A deoarece X genereaza algebra A, prin urmare A ⊆ 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 algebra B 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 pereche 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 −→ B doua morfisme. Numin nucleu de sageata dubla almorfismelor f si g submultimea lui A notata 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 ∈ Ker(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), . . . , fsn(an)) = Bσ(gs1(a1), gs2(a2), . . . , gsn(an)) =

= gs(Aσ(a1, a2, . . . , an)), deci Aσ(a1, a2, . . . , an) ∈ Ker(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 lui f si g la X coincid, atunci restrctiile lui f si g la X sunt egale.

Demonstratie: Deoarece prin ipoteza (∀x ∈ X)f(x) = g(x) deducem X ⊆ Ker(f, g). Deoarece Ker(f, g)este parte stabila si X este cea mai mica parte stabila care include X deducem X ⊆ Ker(f, g). Deci(∀x ∈ X)f(x) = g(x), adica restrictiile lui f si g la X coincid. �

Corolar 1.3.15 Fie f : A −→ B si g : A −→ B doua morfisme Daca restrictiile lui f si g la o multimede generatori ai algebrei A coincid, atunci f = g.

Demonstratie: Fie X o multime de generatori ai algebrei A, adica X = 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 implica f = g.

Page 21: Programare Logica

1.4. EXISTENTA ALGEBRELOR LIBERE 21

Propozitie 1.3.16 Fie h : A −→ B un morfism de Σ-algebre.

1. Daca P este o parte stabila a lui A, atunci h(P ) este o parte stabila a lui B.

2. Daca Q este o parte stabila a lui B, aunci, h−1(Q) este o parte stabila a lui A.

3. Daca X este o parte a lui A, atunci h(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), deci h(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) ∈ h−1s (Qs), deci h−1(Q) este parte stabila.

3. Din X ⊆ X, deoarece imaginea directa este crescatoare, deducem h(X) ⊆ h(X). Deoarece membruldrept este o parte stabila a lui B fapt ce rezulta din prima proprietate deducem ca

h(X) ⊆ h(X).

Din h(X) ⊆ h(X) deducem h−1(h(X)) ⊆ h−1(h(X)). Deoarece X ⊆ h−1(h(X)) rezulta caX ⊆ h−1(h(X)). Deoarece membrul drept este conform proprietatii 2 o parte stabila a lui A de-ducem X ⊆ h−1(h(X)). Deoarece imaginea directa este crescatare h(X) ⊆ h(h−1(h(X))). Deoareceh(h−1(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 libere 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.

Fie M un monoid si B ⊆M. Reamintim doua definitii echivalente pentru faptul ca monoidul M esteliber generat de submultimea sa B.

Definitia 1.4.1 Pentru orice monoid N si orice functie f : B −→ N exista un unic morfism f# : M −→ Nde monoizi a carui restrictie la B este f .

Definitia 1.4.2 Pentru orice m ∈M exista si sunt unice numarul natural n si elementele b1 ∈ B, b2 ∈ B,. . . , bn ∈ B cu proprietatea m = b1b2 . . . bn.

Page 22: Programare Logica

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 monoidului M . 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 cumam 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 poate 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}s∈S 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 functie f : X −→ S. In acest caz Xs = f−1(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.

Fie TΣ(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 n ≥ 1, σ ∈ Σ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.

Fie A = (As, Aσ) o Σ-algebra si f : X −→ A o functie S-sortata.Definim functia S-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,

Page 23: Programare Logica

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

∗,orice s ∈ S, orice σ ∈ Σs1s2...sn,s si orice ti ∈ TΣ(X)si pentru orice 1 ≤ i ≤ n.

Din prima parte a definitiei de mai sus se vede ca restrictia functiei f# la X este chiar functia f.Din celelalte doua parti ale definitiei rezulta ca f# 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 Σ algebra A = (As, Aσ) se numete Peano peste X ⊆ A daca

1. X genereaza algebra A,2. pentru orice σ ∈ Σw,s si orice a ∈ Aw, Aσ(a) 6∈ Xs si

3. (∀σ ∈ Σw,s)(∀a ∈ Aw)(∀σ′ ∈ Σw′,s)(∀a′ ∈ Aw′) Aσ(a) = Aσ′(a

′)⇒ w = w′, σ = σ′ si a = a′.

Teorema 1.4.5 Orice algebra Peano peste X este liber generata de X.

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

Deoarece algebra A este generata de X rezulta ca

A =⋃

n∈N

Xn

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

Xn+1s = Xn

s ∪ {Aσ(a) : w ∈ S∗, σ ∈ Σw,s si a ∈ Xnw}.

Definim prin inductie dupa n ∈ N sirul de functii hn : Xn −→ B prin h0 = h si

hn+1s (a) =

{

hns (a) daca a ∈ Xns

Bσ(hnw(a′)) daca a = Aσ(a

′) 6∈ Xns unde w ∈ S∗, σ ∈ Σw,s si a′ ∈ Xn

w

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

′) este unica.

Observam ca sirul functiilor hn : Xn −→ B este crescator, adica restrictia lui hn+1 la Xn este chiar hn.Mai mult pentru orice m ≥ n restrictia lui hm la Xn este chiar hn.

Definim functia g : 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 ∈ Xns .

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

n∈N Xn exista n ∈ N cu proprietatea

a ∈ Xns .

Observam ca gs(a) = hms (a) pentru orice numar natural m cu proprietatea a ∈ Xms .

Probam ca g : A −→ B este morfism de algebre. Fie σ ∈ Σw,s si a ∈ Aw.Deoarece conform conditiei 2 din definitia algebrei Peano Aσ(a) 6∈ X

0s exista n cel mai mic numar natural

cu proprietatea Aσ(a) ∈ Xn+1s −Xn

s . Rezulta ca

gs(Aσ(a)) = hn+1s (Aσ(a)).

Page 24: Programare Logica

24 CHAPTER 1. ALGEBRE MULTISORTATE

Probam ca a ∈ Xnw. Deoarece Aσ(a) ∈ X

n+1s −Xn

s exista σ′ ∈ Σw′,s si a′ ∈ Xnw′ astfel ıncat Aσ(a) = Aσ′(a

′).Rezulta conform conditiei 3 din definitia algebrei Peano ca w = w′, σ = σ′ si a = a′, deci a ∈ Xn

w. Prinurmare

gw(a) = hnw(a) si hn+1s (Aσ(a)) = Bσ(h

nw(a))

deci

gs(Aσ(a)) = Bσ(hnw(a)) = Bσ(gw(a)).

Restrictia lui g la X = X0 este h0 = h.

Unicitatea lui g este consecinta faptului ca X genereaza 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 derivare

O gramatica independenta de context poseda doua multimi disjuncte, una a neterminalelor N si una aterminalelor T precum si multimea P ⊆ N × (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 n sunt neterminale si literele t sunt 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 context G se numeste G-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 din n si cuvantulformat de etichetele succesorilor formeaza o productie (n, s1s2 . . . sk−1sk) ∈ P .

n

s s s s1 2 k-1 k

Page 25: Programare Logica

1.4. EXISTENTA ALGEBRELOR LIBERE 25

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

- pentru orice sort n, adica pentru orice neterminal n, multimea An este formata din totalitatea arborilorde derivare care au radacina etichetata cu n.

- pentru productia p = (n, t0n1t1 . . . nktk) si arborii ai ∈ Ani arborele Ap(a1, a2, . . . , ak) este formatastfel: radacina este etichetata cu n, etichetele succesorilor radacinii ın numar egal cu numarul literelordin t0n1t1 . . . nktk sunt chiar literele acestui cuvant si subarborele fiecarui nod etichetat cu ni este chiar ai.

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

tt vvnnnnnnnnnnnnnnn

}} !!CCC

CCCC

C

((t0 ?>=<89:;a1 t1 . . . ?>=<89:;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 ca A este generata de multimea vida este suficient sa demonstram ca Aeste singura parte stabila a lui A. Fie P o parte stabila a lui A. 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 inductie ca orice arborecu adancimea strict mai mica decat m este ın P. Probam ca orice arbore de adancime m este ın P . Fie a unarbore de adancime m. Analizand radacina si primul nivel al arborelui a deducem existenta unei productiip = (n, t0n1t1 . . . nktk) cu proprietatea

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

unde ai sunt subarborii lui a care au varfurile ın succesorii radacinii lui a care 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 P este o parte stabila deducem ca Ap(a1, a2, . . . , ak) ∈ Ps, deci a ∈ Ps.

A doua conditie din definitia algebrelor Peano

Ap(a1, a2, . . . , ak) 6∈ ∅

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

′1 . . . sk′t

′k′) doua nume de

operatii(productii) unde literele n si s sunt neterminale si literele t 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 = t′0s1t′1 . . . sk′t

′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 sin1 = s1. Rezulta ca

t1n2t2 . . . nktk = t′1s2t′2 . . . skt

′k.

Continuam rationamentul ca mai sus si deducem ti = t′i pentru 0 ≤ i ≤ k si ni = si pentru 1 ≤ i ≤ k. Deaici deducem ca p = q.

Page 26: Programare Logica

26 CHAPTER 1. ALGEBRE MULTISORTATE

In final egaland subarborii cu radacinile aflate pe aceeasi pozitie a primului nivel din arborii egaliAp(a1, a2, . . . , ak) si Aq(b1, b2, . . . , bk′) rezulta ca ai = 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 simpluinclus ı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 P este parte stabila, deci a ∈ Pn.

1.4.4 Existenta algebrelor initiale

Urmarim sa aratam ca pentru orice signatura (S, {Σw,s}w∈S∗,s∈S) 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 caretrebuie 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 ca S si Σ sunt disjuncte.

Consideram G gramatica 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 este G-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 X pe care ın cele ce urmeaza o vom nota cu TΣ(X). Reamintim ca multimeaS-sortata X are componentele disjuncte doua cate doua. Fara a micsora generalitatea vom presupune caΣ si X sunt 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 X la algebra liber generata de X.

Trecem la formalizarea ideilor de mai sus. Consideram signatura algebrica ΣX = Σ ∪ X unde oricevariabila x ∈ Xs devine o constanta de sort s.

Page 27: Programare Logica

1.5. SEMANTICA ALGEBREI INITIALE 27

Fie

I = ({Is}s∈S , {Iσ}σ∈Σ, {Ix}x∈X)

o ΣX–algebra initiala. Vom proba ca Σ–algebra ({Is}s∈S , {Iσ}σ∈Σ) impreuna cu functia injectivaf : X −→ {Is}s∈S 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 S–sortata. Consideram ΣX–algebra(As, Aσ , {g(x)}x∈X ) si unicul morfism de ΣX–algebre existent

h : I −→ (As, Aσ , {g(x)}x∈X ).

Este suficient sa mai remarcam ca h : I −→ (As, Aσ, {f(x)}x∈X ) este morfism de ΣX–algebra daca sinumai daca h : ({Is}s∈S , {Iσ}σ∈Σ) −→ A este morfism de Σ–algebre si g;h = f. �

Propozitie 1.4.7 Orice algebra libera este Peano

Demonstratie: Fie L o Σ-algebra liber generata de multimea X. Consideram o Σ-algebra P Peano pesteX. Deoarece si P este 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 denotationale,numita si semantica matematica.

Metoda semanticii algebrei intiale se aplica pentru limbaje definite printr-o gramatica independentade context G = (N,T, P, a), unde N este multimea neterminalelor, T mutimea terminalelor, P multimeaproductiilor si a axioma gramaticii. Ea spune ca pentru a defini semantica limbajului gramaticii Geste suficient sa dam o G-algebra S = ({Sn}n∈N , {Sp}p∈P ), numita ın continuare algebra semantica.

Pentru a ıntelege afirmatia de mai sus trebuie sa intram putin ın amanunte. Fie A algebra arborilorde derivare. Deoarece A este algebra intiala exista un unic morfism de G-algebre

M : A −→ S.

Dat un cuvant c din limbajul gramaticii G exista un arbore de derivare arb cu radacina etichetata cu a acarui frontiera este c. Semantica cuvantului c este prin definitie Ma(arb).

Mentionam ca metoda este bine definita numai pentru gramaticile neambigue, fapt care asigura unici-tatea arborelui arb. 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 gramatica G care genereaza sirurile finite nevide de cifre zecimale, considerate ca terminale.Gramatica are doua neterminale <cifra> si <nat> ultima fiind si axioma a gramaticii. Descriem ıncontinuare productiile gramaticii carora le dam un nume

ci <cifra> −→ i pentru orice cifra zecimala in1 <nat> −→ <cifra>n2 <nat> −→ <nat> <cifra>

Page 28: Programare Logica

28 CHAPTER 1. ALGEBRE MULTISORTATE

Vom defini algebra semantica explicand de ce o definim astfel. Deoarece gramatica are doua neterminale,signatura asociata are doua sorturi, prin urmare algebra semantica trebuie sa aiba ca suport doua multimi.Semantica unei cifre, care nu este nimic altceva decat un semn, este numarul reprezentat de cifra. Prinurmare suportul corespunzator neterminalului <cifra> trebuie sa contina macar numerele de la zero lanoua. Deci prin definitie

S<cifra> = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

Deoarece semantica unui sir finit de cifre este numarul natural pe care acest sir ıl reprezinta, suportulcorespunzator neterminalului <nat> trebuie sa contina macar multimea numerelor naturale. Deci prindefinitie

S<nat> = este multimea numerelor naturale.

Sa trecem la definirea operatiilor algebrei semantice.Deoarece productia ci corespunzatoare cifrei i nu are nici un neterminal ın membrul drept, operatia

corespunzatoare ei este o operatie fara argumente, adica un element din S<cifra>

Sci este numarul natural reprezentat de cifra i.

Productia n1 spune ca orice cifra este un sir dr cifre. Deoarece valoarea numarului reprezentat de un sir delungime unu este egala cu valoarea numarului reprezentat de singura cifra din sir si semantica lor trebuiesa fie aceeasi. Deci prin definitie

Sn1 este functia incluziune de la S<cifra> la S<nat>.

Productia n2 ne spune ca prin adaugarea la dreapta unui sir de cifre, sa spunem s1, a unei cifre, sa spunemc, se obtine un nou sir de cifre s2 = s1c. Operatia corespunzatoare productiei n2 trebuie sa fie o functie

Sn2 : S<nat> × S<cifra> −→ S<nat>

definita pentru numele n si m prinSn2(n,m) = 10n +m

deoarece valoarea ca numar a sirului s2 este egala cu de zece ori valoarea ca numar a sirului s1 plus valoareaca numar a cifrei.

Cu aceasta semantica este complet definita. Vom exemplifica pentru sirul 023. Arborele de derivarepentru acest sir este

An2(An2(An1(Ac0), Ac2), Ac3).

Sa-i aplicam morfismul semantic acestui arbore.

M<nat>(An2(An2(An1(Ac0), Ac2), Ac3)) = Sn2(Sn2(Sn1(Sc0), Sc2), Sc3) = Sn2(Sn2(Sn1(0), 2), 3) =

= Sn2(Sn2(0, 2), 3) = Sn2(10× 0 + 2, 3) = Sn2(2, 3) = 10× 2 + 3 = 23

Ce sa ıntampla daca ın membrul drept al productiei n2 scriem < cifra >< nat >?

1.5.2 Un calculator de buzunar

Vom da un alt exemplu, cel al unui minicalculator pe fata caruia se afla un mic ecran pe care se poateafisa un singur numar si mai multe butoane:

ON pentru pornirea calculatoruluiOFF pentru oprirea calculatorului0 1 2 3 4 5 6 7 8 9 pentru cifrele zecimale+ × pentru adunare si ınmultire

Page 29: Programare Logica

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 G care 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 <cifra>, <nat>, <exp> pentru expresii, <inst> pentru anumiteportiuni de programe si <program> 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 <cifra> −→ i pentru orice cifra zecimala in1 <nat> −→ <cifra>n2 <nat> −→ <nat> <cifra>r1 <exp> −→ <nat>r2 <exp> −→ Mr3 <exp> −→ <exp> + <exp>r4 <exp> −→ <exp> × <exp>r5 <exp> −→ IF <exp>,<exp>,<exp>r6 <exp> −→ (<exp>)r7 <inst> −→ <exp> E OFFr8 <inst> −→ <exp> E <inst>r9 <program> −→ ON <inst>

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<cifra> si S<nat>.

Expresiile sunt facute pentru a fi evaluate, prin urmare prima idee ar fi ca semantica unei expresii sa 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 prindefinitie S<exp> 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, adicaun sir finit si nevid de numere naturale. Multimea acestor siruri o notam cu N+. Rezultatul evaluarii

Page 30: Programare Logica

30 CHAPTER 1. ALGEBRE MULTISORTATE

depinde evident de valoarea din memorie din momentul ınceperii executiei instructiunii, prin urmare

S<inst> = {f : N −→ N+ | f este functie.}

Un program, generat de productia r9, difera de o instructiune prin faptul ca se introduce zero ın celulade memorie ınainte de executia instructiunii pe care o contine, prin urmare sirul de numere care apar peecran ın timpul executiei programului nu mai depinde de continutul memoriei, fiind un element din N+,deci S<program> = N+.

Folosind urmatoarele notatii

m este un numar natural reprezentand continutul celulei de memorien este un numar naturale este o functie de la N la N reprezentand semantica unei expresiiı este o functie de la N la N+ reprezentand semantica unei instructiuni

definitiile pentru operatii, fara a le mai repeta pe cele de mai sus sunt:

Sr1(n)(m) = n

Sr2(m) = m

Sr3(e1, e2)(m) = e1(m) + e2(m)

Sr4(e1, e2)(m) = e1(m)× e2(m)

Sr5(e1, e2, e3)(m) = daca e1(m) = 0 atunci e2(m) altfel e3(m)

Sr6(e) = e

Sr7(e)(m) = e(m)

Sr8(e, ı)(m) = e(m)ı(e(m))

Sr9(ı) = ı(0)

1.5.3 Arbori de derivare

Reamintim proprietatile unui arbore de derivare dintr-o gramatica independenta de context: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 din n si cuvantulformat de etichetele s1, s2, . . . , sk ale succesorilor sai formeaza o productie (n, s1s2 . . . sk−1sk) ∈ P .

O gramatica pentru expresii

Definim o gramatica independenta de context pentru expresiile construite cu variabilele x, y si z, cuoperatiile binare de adunare si ınmultire si cu paranteze. Gramatica trebuie constrita respectand urma-toarele conditii privind expresiile:

1. ınmultirile se fac ınaintea adunarilor

2. adunarile se fac de la stanga la dreapta

3. ınmultirile de la dreapta la stanga.Multimea terminalelor este {x, y, z, (, ),+, ∗}. FieN = {V, F, T,E, P}multimea neterminalelor. Semnificatialor este urmatoarea:

V reprezinta variabilele

F de la factor, reprezinta cele mai “mici” elemente folosite ın constructia expresiilor

T de la termen, reprezinta un produs de factori

E de la expresie, reprezinta o suma de termeni

Page 31: Programare Logica

1.5. SEMANTICA ALGEBREI INITIALE 31

P de la program.

Continuam cu multimea regulilor(productiilor) gramaticii:

0. P → E 1. V → x 2. V → y 3. V → z 4. F → V5. F → (E) 6. T → F 7. T → F ∗ T 8. E → T 9. E → E + T

Observati productiile 7 si 9 pentru a vedea cum se precizeaza ordinea de executie a operatiilor de acelasifel. Neterminalul din membrul stang se afla ın dreapta, respectiv ın stanga semnului operatiei.

Un exemplu

Sa se construiasca arborele de derivare pentru expresia x+ y ∗ (x+ y) ∗ z + z.

Page 32: Programare Logica

32 CHAPTER 1. ALGEBRE MULTISORTATE

P

E

E

E T

T

T

z

F

F

+

+

V

x

T*

V

y

F T*

( )E

E + T

T

F

V

x

F

V

y

F

V

F

V

z

Pentru a reface expresia, arborele se parcurge ın inordine.Daca veti incerca sa construiti alt arbore de derivare pentru aceeasi expresie veti constata ca acest lucru

nu este posibil. Prin urmare modul de constructie al expresiei va impune o anumita ordine ın evaluareaacesteia.

Folosind numerele care denumesc productiile ca nume ale operatiilor din algebra arborilor de derivarearborele de mai sus este

A = 0(9[9{a, 7(4[2], 7[ 5{9(a,6[4(2)])},b ]) },b])

unde a = 8(6[4(1)]) si b = 6(4(3)).

Page 33: Programare Logica

1.5. SEMANTICA ALGEBREI INITIALE 33

0

9

9

8 7

6

6

4

4

1

7

2 5 6

9

8 6

6

4

1

4

2

4

3

4

3

1.5.4 Scrierea poloneza inversa

Semantica pe care o dam unui limbaj depinde de scopul pe care-l urmarim. Pentru a ilustra aceasta ideevom da doua semantici pentru expresiile definite mai sus.

Prima semantica va da scrierea poloneza inversa pentru expresii. A doua semantica va fi data ınsectiunea urmatoare.

Algebra semantica va avea toate suporturile egale cu semigrupul liber generat de {x, y, z,+, ∗}, sau maipopular multimea sirurilor finite nevide de semne din {x, y, z,+, ∗}. Operatiile sunt urmatoarele:

0 = 4 = 5 = 6 = 8 sunt aplicatia identitate,

1 = x, 2 = y si 3 = z,

Page 34: Programare Logica

34 CHAPTER 1. ALGEBRE MULTISORTATE

7(α, β) = αβ∗ si 9(α, β) = αβ+.

Notam cu S algebra semantica de mai sus, cu A algebra arborilor de derivare si cu C : A −→ S uniculmorfism de algebre existent. Morfismul C este modelarea algebrica a rescrierii expresiei ın scrierea polonezainversa.

Conform metodei semanticii algebrei initiale rezulta ca C(A) este scrierea poloneza ınversa a expresieix+ y ∗ (x+ y) ∗ z + z.

Calculele sunt urmatoarele

C(a) = 8(6[4(1)]) = x si C(b) = 6(4(3)) = z

C(A) = C(0(9[9{a, 7(4[2], 7[ 5{9(a,6[4(2)])},b ]) },b])) = 9[9{x, 7( y , 7[ 9(x,y) ,z ]) },z] =

9[9{x, 7( y , 7[xy+,z]) },z] = 9[9{x, 7(y,xy + z∗) },z] = 9[9{x, yxy + z ∗ ∗ },z] = 9[xyxy + z ∗ ∗+,z] =

xyxy + z ∗ ∗+ z + .

Rezultatul final confirma corectitudinea si eficacitatea metodei.

1.5.5 Compilare

Un compilator care va produce un program pentru evaluarea expresiilor si tiparirea rezultatului evalarii vafi modelat printr-un morfism.

Vom pune ın evidenta elementele care apar ın programele obtinute prin compilare. R este un registrudin memorie. P este un pointer catre primul loc liber al stivei utilizate ın timpul evaluarii. Ori de cate orise pune un element ın stiva pointerul creste automat cu o unitate. Ori de cate ori se scoate un element dinstiva pointerul scade automat cu o unitate. Presupunem ca la ınceputul executiei programului pointerulindica primul loc liber din stiva.

Presupunem ca limbajul de asamblare include urmatoarele instructiuni:

Ad R scoate valoarea din varful stivei, o aduna cu continutul lui R si pune rezultatul ın RMu R scoate valoarea din varful stivei, o inmulteste cu continutul lui R si pune rezultatul ın Rld R scoate valoarea din varful stivei si o pune ın Rst R valoarea din R este pusa ın varful stiveiprint tipareste valoarea din varful stivei

Semantica unei expresii va fi programul care evalueaza expresia si imprima rezultatul evaluarii. Pro-gramul care evalueaza o expresie are ca efect plasarea ın varful stivei a rezultatului evaluarii acesteia siavansarea pointerului. Pentru definirea acesteia se va folosi metoda semanticii algebrei initiale.

Toate cele 5 suporturi ale algebrei semantice, corespunzatoare neterminalelor, sunt identice si coincidcu multimea bucatilor de program(siruri de instructiuni separate prin ;). Astfel de bucati de programe vorfi notate cu litere grecesti.

Cele 10 operatii ale algebrei semantice, corespunzatoare productiilor sunt:

1S = st x2S = st y3S = st z4S(α) = α5S(α) = α6S(α) = α7S(α,β) = α ; β ; ld R ; Mu R ; st R8S(α) = α9S(α,β) = α ; β ; ld R ; Ad R ; st R0S(α) = α ; print

Page 35: Programare Logica

1.6. CONGRUENTE SI ALGEBRE CAT 35

Notam cu S algebra semantica de mai sus, cu A algebra arborilor de derivare si cu C : A −→ S uniculmorfism de algebre existent. Morfismul C este modelarea algebrica a compilatorului.

Conform metodei semanticii algebrei initiale rezulta ca C(A) este programul care evalueaza si tiparesterezultatul pentru expresia x+ y ∗ (x+ y) ∗ z + z.

Program

Prezentam calculele care dovedesc afirmatia de mai sus.

C(a) = 8S(6S [4S(1S)]) = 1S si C(b) = 6S(4S(3S)) = 3S

Notand c = 7[ 5{9(a,6[4(2)])},b] deducem

C(c) = 7S [ 5S{9S(1S ,6S [4S(2S)])},3S ] =7S [ 9S(1S ,2S),3S ] =9S(1S ,2S) ; 3S ; ld R ; Mu R ; st R =1S ; 2S ; ld R ; Ad R ; st R ; 3S ; ld R ; Mu R ; st R =st x ; st y ; ld R ; Ad R ; st R ; st z ; ld R ; Mu R ; st R

Deoarece

A = 0(9[9{a, 7(4[2], c)}, b])

deducem

C(A) = 0S(9S [9S{1S , 7S(2S ,C(c))},3S ]) =9S [9S{1S , 7S(2S ,C(c)) },3S ] ; print =9S{1S , 7S(2S ,C(c)) } ; 3S ; ld R ; Ad R ; st R ; print =1S ; 7S(2S ,C(c)) ; ld R ; Ad R ; st R ; 3S ; ld R ; Ad R ; st R ; print =

1S ; 2S ; C(c) ; ld R ; Mu R ; st R ; ld R ; Ad R ; st R ; 3S ; ld R ; Ad R ; st R ; print =

st x ; st y ; st x ; st y ; ld R ; Ad R ; st R ; st z ; ld R ; Mu R ;st R ; ld R ; Mu R ; st R ; ld R ; Ad R ; st R ; st z ; ld R ; Ad R ; st R ; print

Optimizare cod

Programul de mai sus poate fi simplificat. Observam ca grupul de instructiuni “st R ; ld R” are efectcumulat nul ceea ce conduce la programul

st x ; st y ; st x ; st y ; ld R ; Ad R ; st R ; st z ; ld R ; Mu R ;Mu R ; Ad R ; st R ; st z ; ld R ; Ad R ; st R ; print

1.6 CONGRUENTE si ALGEBRE CAT

Daca f : A −→ B este o functie relatia Ker(f) definita prin

Ker(f) = {(a, b) ∈ A×A : f(a) = f(b)}

se numeste echivalenta nucleara a lui f , sau mai pe scurt nucleul lui f.

Echivalenta nucleara a unei functii este o relatie de echivalenta. In cazul multisortat nucleul este luatpe componente, adica pentru fiecare sort ın parte.

Page 36: Programare Logica

36 CHAPTER 1. ALGEBRE MULTISORTATE

1.6.1 Congruente

O relatie de echivalenta ıntr-o Σ-algebra (As, Aσ) este de fapt o familie de relatii de echivalente, cate unapentru fiecare multime As. O congruenta este o relatie de echivalenta care este compatibila cu operatiile al-gebrei. De fapt compatibilatea trebuie ceruta numai pentru operatiile cu argumente caci pentru o constantaAσ ∼ Aσ rezulta din reflexivitate.

Definitia 1.6.1 O congruenta ∼= {∼s}s∈S ın Σ-algebra (As, Aσ) este o relatie de echivalenta cu propri-etatea pentru orice s1s2 . . . sn ∈ S

∗, pentru orice s ∈ S, pentru orice σ ∈ Σs1s2...sn,s, daca ai ∼si bi ın Asipentru orice 1 ≤ i ≤ n, atunci

Aσ(a1, a2, . . . , an) ∼s Aσ(b1, b2, . . . , bn).

Cea mai mica congruenta este relatia de egalitate. Cea mai mare congruenta este relatia totala.

Propozitie 1.6.2 Daca h : A −→ B este un Σ-morfism, atunci Ker(h) este o congruenta.

Demonstratie: Fie s1s2 . . . sn ∈ S∗, s ∈ S si σ ∈ Σs1s2...sn,s. Presupunem ca aiKer(hsi) bi ın Asi pentru

orice 1 ≤ i ≤ n. Rezulta ca hsi(ai) = hsi(bi) pentru orice 1 ≤ i ≤ n. Prin urmare

hs(Aσ(a1, a2, . . . , an)) = Bσ(hs1(a1), hs2(a2), . . . , hsn(an)) =Bσ(hs1(b1), hs2(b2), . . . , hsn(bn)) = hs(Aσ(b1, b2, . . . , bn))

asadar Aσ(a1, a2, . . . , an) Ker(hs) Aσ(b1, b2, . . . , bn). Deci Ker(h) este congruenta.

Propozitie 1.6.3 Orice intersectie de congruente este tot o congruenta.

Demonstratie: Fie {∼k}k∈K o multime de congruente si

∼ =⋂

k∈K

∼k .

Probam ca ∼ este congruenta.

Fie s1s2 . . . sn ∈ S∗, fie s ∈ S, fie σ ∈ Σs1s2...sn,s si ai ∼ bi ın Asi pentru orice 1 ≤ i ≤ n. Rezulta ca

ai ∼k bi pentru orice k ∈ K si orice 1 ≤ i ≤ n.Pentru orice k ∈ K deoarece ∼k este congruenta, fiindca ai ∼

k bi ın Asi pentru orice 1 ≤ i ≤ n deducem

Aσ(a1, a2, . . . an) ∼k Aσ(b1, b2, . . . , bn).

Deci

Aσ(a1, a2, . . . an) ∼ Aσ(b1, b2, . . . , bn). �

Aceasta propozitie ne spune ca multimea congruentelor unei algebre este o familie Moore. Incercati sacaracterizati operatorul de ınchidere asociat.

Congruente de grupuri - numai pentru cei stiu ce este un subgrup normal

Grupurile sunt privite ca algebre cu trei operatii: una binara ×, una unara * si o constanta e. De ce?Exista cel putin doua motive.

a)Motivul principal este disparitia cuantificatorului existential din axiomele conceptului de grup

(∀x∀y∀z)x× (y × z) = (x× y)× z

(∀x)x× e = x

(∀x)x× x∗ = e.

Page 37: Programare Logica

1.6. CONGRUENTE SI ALGEBRE CAT 37

Aceasta plaseaza conceptul de grup printre structurile algebrice ecuational axiomatizabile, concept binestudiat ın algebra.

b) Conceptele generale din teoria algebrelor multisortate dau prin particularizare conceptele uzuale dinteoria grupurilor.

Conceptul de parte stabila coincide cu cel de subgrup.

Conceptul de morfism de Σ-algebra coincide cu cel de morfism de grup.

Doua conditii se impun pentru conceptul de congruenta

1. a ∼ b si c ∼ d implica a× c ∼ b× d,

2. a ∼ b implica a∗ ∼ b∗.

Practic ramane numai una deoarece a doua conditie este o consecinta a primeia: presupunand a ∼ b,folosind reflexivitatea din a∗ ∼ a∗, a ∼ b si b∗ ∼ b∗ deducem a∗× a× b∗ ∼ a∗× b× b∗, prin urmare b∗ ∼ a∗,deci a∗ ∼ b∗.

Propozitie 1.6.4 In orice grup conceptul de congruenta este echivalent cu cel de subgrup normal

Demonstratie:

1. Data o congruenta clasa elementului neutru este un subgrup normal.

2. Dat un subgrup normal N relatia definita prin

a ∼ b daca si numai daca a× b∗ ∈ N

este o congruenta.

3. Cele doua treceri, de la un concept la celalalt si reciproc, stabilesc o bijectie ıntre multimeacongruentelor unui grup si multimea subgrupurilor sale normale. �

Congruente de inele - numai pentru cei care stiu ce este un ideal

Pentru simplicitate vom prefera cazul comutativ.

Signatura conceptului de inel contine pe langa cele trei operatii corespunzatoare grupurilor ınca douasimboluri de aritate 2, respectiv 0 corespunzatoare structurii monoidului multiplicativ.

Conceptul de parte stabila coincide cu cel de subinel.

Conceptul de morfism de Σ-algebra coincide cu cel de morfism de inel.

Avand ın vedere cazul grupurilor este suficient sa punem conditia de congruenta numai pentru celedoua operatii binare.

Propozitie 1.6.5 In orice inel comutativ conceptul de congruenta este echivalent cu cel de ideal.

Demonstratie:

1 Data o congruenta clasa elementului neutru pentru adunare este un ideal.

2 Dat un ideal N relatia definita prin

a ∼ b daca si numai daca a− b ∈ N

este o congruenta.

3. Cele doua treceri, de la un concept la celalalt si reciproc, stabilesc o bijectie ıntre multimeacongruentelor unui inel si multimea idealelor sale. �

Page 38: Programare Logica

38 CHAPTER 1. ALGEBRE MULTISORTATE

Concluzie

Conceptul de congruenta este cel important. Este un fapt ıntamplator ca pentru anumite structuri algebricecongruentele pot fi caracterizate de unele substructuri particulare.

1.6.2 Algebre cat

Proprietatea de universalitate a multimii cat.

Propozitie 1.6.6 Fie ∼ o relatie de echivalenta ın multimea A. Fie A/∼ multimea cat si ρ : A −→ A/∼surjectia naturala de factorizare. Pentru orice functie f : A −→ B

daca ∼ ⊆ Ker(f), atunci exista o unica functie f# : A/∼ −→ B cu proprietatea ρ; f# = f.

Demonstratie: Definim functia f# pentru orice a ∈ A prin

f#(ρ(a)) = f(a).

Definitia este corecta deoarece b ∼ a implica, folosind ipoteza ∼ ⊆ Ker(f), ca bKer(f)a, adica f(a) = f(b).Egalitatea din enunt ρ; f# = f rezulta direct din definitie.Unicitatea rezulta din surjectivitatea functiei ρ de factorizare. Fie g : A/∼−→ B o functie cu propri-

etatea ρ; g = f. Rezulta ca pentru orice a ∈ A

g(ρ(a)) = f(a).

Prin urmare g(ρ(a)) = f#(ρ(a)) pentru orice a ∈ A. Deoarece orice element din A/∼ este de forma ρ(a)cu a ∈ A rezulta ca g = f#. �

Proprietatea de universalitate a algebrei cat.

Fie (As, Aσ) o Σ-algebra si ∼ o congruenta. Definim operatiile algebrei cat

A/∼ = ({As/∼}s∈S , A/∼σ)

pentru orice s1s2 . . . sn ∈ S∗, s ∈ S, σ ∈ Σs1s2...sn,s si ai ∈ Asi pentru orice 1 ≤ i ≤ n prin

A/∼σ(ρ(a1), ρ(a2), . . . , ρ(an)) = ρ(Aσ(a1, a2, . . . , an)).

Trebuie sa probam corectitudinea acestei definitii. Cu notatiile de mai sus presupunem pentru orice1 ≤ i ≤ n ca bi ∈ Asi si ρ(ai) = ρ(bi). Cu aceste ipoteze este suficient sa probam ca ρ(Aσ(a1, a2, . . . , an)) =ρ(Aσ(b1, b2, . . . , bn)). Pentru orice 1 ≤ i ≤ n din ρ(ai) = ρ(bi) deducem ai ∼ bi. Deoarece ∼ este congruentadeducem Aσ(a1, a2, . . . , an) ∼ Aσ(b1, b2, . . . , bn), deci ρ(Aσ(a1, a2, . . . , an)) = ρ(Aσ(b1, b2, . . . , bn)).

Teorema 1.6.7 Pentru orice morfism de Σ-algebre f : A −→ B daca ∼ ⊆ Ker(f), atunci exista un unicmorfism de Σ-algebre f# : A/∼ −→ B cu proprietatea ρ; f# = f.

Demonstratie: Din proprietatea de universalitate a multimii cat deducem existenta unei unice functiif# : A/∼ −→ B cu proprietatea ρ; f# = f. Observam ca f#

s (ρ(a)) = fs(a) pentru orice s ∈ S si a ∈ As.Mai trebuie sa demonstram ca functia f# este un morfism de Σ-algebre.

Fie s1s2 . . . sn ∈ S∗, s ∈ S, σ ∈ Σs1s2...sn,s si ai ∈ Asi pentru orice 1 ≤ i ≤ n. Observam ca

f#s (A/∼σ(ρ(a1), ρ(a2), . . . , ρ(an))) = f#

s (ρ(Aσ(a1, a2, . . . , an))) = fs(Aσ(a1, a2, . . . , an)) =

Bσ(fs1(a1), fs2(a2), . . . , fsn(an)) = Bσ(f#s1(ρ(a1)), f

#s2(ρ(a2)), . . . , f

#sn(ρ(an))).

Deci f# este morfism de Σ-algebre. �

Sa se arate ca pentru orice Σ-morfism h : A −→ B algebrele A/Ker(h) si h(A) sunt izomorfe.

Page 39: Programare Logica

1.7. ALGEBRE PROIECTIVE 39

1.7 ALGEBRE PROIECTIVE

1.7.1 Proiectivitatea algebrelor libere

Definitia 1.7.1 O Σ-algebra P se numeste proiectiva daca pentru orice Σ-morfism cu toate componentelesurjective e : A −→ B si pentru orice morfism f : P −→ B exista un morfism g : P −→ A astfel ıncatg; e = f.

Propozitie 1.7.2 Orice Σ-algebra libera este proiectiva.

Demonstratie: Fie X o multime S-sortata de variabile. Vom proba ca Σ-algebra TΣ(X) liber generatade X este proiectiva.

Fie A, B doua Σ-algebre si e : A −→ B un morfism cu toate componentele surjective. Dacaf : TΣ(X) −→ B este un morfism oarecare trebuie sa demonstram ca exista un morfism g : TΣ(X) −→ Aastfel ıncat g; e = f .

Pentru a defini morfismul g este suficient sa dam actiunea lui pe variabile.

Fie s ∈ S si x ∈ Xs. Deoarece es este surjectiv, deci exista ax ∈ As astfel ıncat fs(x) = es(ax). Definimg ca fiind unicul morfism cu proprietatea ca gs(x) = ax pentru orice s ∈ S si orice x ∈ Xs. Este evidentfaptul ca (g; e)s(x) = fs(x) pentru orice s ∈ S si orice x ∈ Xs. Deoarece morfismele g; e si f coincid pegeneratorii algebrei libere TΣ(X) rezulta ca g; e = f si demonstratia este ıncheiata. �

Comentariu. Faptul ca gs(x) poate fi ales arbitrar ın e−1s ({fs(x)}) nu garanteaza unicitatea lui g.

1.7.2 Alte proprietati

Cei care nu sunt interesati de toate detaliile pot sari aceasta sectiune, dar ın continuare pot lua dreptdefinitie pentru Σ-algebre: epimorfism = morfism cu toate componentele surjective.

Intr-o categorie, un morfism e : A −→ B se numeste epimorfism daca pentru orice pereche de morfismef : B −→ C si g : B −→ C daca e; f = e; g, atunci f = g.

Propozitie 1.7.3 Fie A si B doua (S,Σ)-algebre si h : A −→ B un (S,Σ)-morfism. Morfismul h esteepimorfism ın AlgΣ daca si numai daca hs este surjectiv pentru orice s ∈ S.

Demonstratie: Fie A = ({As}s∈S , {Aσ}σ∈Σ) si B = ({Bs}s∈S , {Bσ}σ∈Σ).(⇐) Fie C o (S,Σ)-algebra si m, n : B −→ C doua morfisme astfel ıncat h;m = h;n. Rezulta ca hs;ms =hs;ns pentru orice s ∈ S. Deoarece pentru orice s ∈ S, hs este surjectiv rezulta ca ms = ns. Amdemonstrat ca m = n.(⇒) Fie C = {Cs}s∈S o multime S-sortata, cu Cs = Bs ∐ (Bs − hs(As)) pentru orice s ∈ S. Simbolul ∐indica o reuniune disjuncta de multimi.

Fie ι : B −→ C functia incluziune de multimi S-sortate si r : B −→ C definit prin

rs(b) =

{

b, daca b ∈ hs(As)b daca b ∈ Bs − hs(As)

pentru orice s ∈ S si b ∈ Bs (pentru b ∈ Bs − hs(As) am notat cu b elementul care ıi corespunde ın Cs).

In continuare vom defini pe C o structura de (S,Σ)-algebra astfel ıncat ι si r sa devina morfisme de(S,Σ)-algebre.

Fie σ ∈ Σs1···sn,s. Definim:1) Cσ(b1, . . . , bn) = Bσ(b1, . . . , bn) daca bi ∈ Bsi pentru orice i ∈ [n];2) Cσ(rs1(b1), . . . , rsn(bn)) = rs(Bσ(b1, . . . , bn)) daca bi ∈ Bsi pentru orice i ∈ [n];3) ın celelalte situatii operatia Cσ poate fi definita oricum.

Sa demonstram ca definitia de mai sus nu este contradictorie.

Page 40: Programare Logica

40 CHAPTER 1. ALGEBRE MULTISORTATE

Fie b1 ∈ Bs1, . . ., bn ∈ Bsn astfel ıncat rsi(bi) = bi ∈ Bsi pentru orice i ∈ [n]. Atunci bsi ∈ hsi(Asi) deunde rezulta ca Bσ(b1, . . . , bn) ∈ hs(As) si deci Bσ(b1, . . . , bn) = rs(Bσ(b1, . . . , bn)).

Din 1) rezulta ca ι este morfism iar din 2) rezulta ca r este morfism.

Am definit astfel o (S,Σ)-algebra C = ({Cs}s∈S , {Cσ}σ∈Σ) si doua morfisme ι, r : B −→ C. Se observaca hι = hr deoarece pe h(A) cele doua morfisme actioneaza la fel. Deoarece h este epimorfism rezulta caι = r de unde obtinem Bs = hs(As) pentru orice s ∈ S (daca exista s ∈ S astfel ıncat Bs − hs(As) 6= ∅atunci exista b ∈ Bs−hs(As) si ι(b) = b, r(b) = b deci ι 6= r ceea ce contrazice faptul ca h este epimorfism).Am demonstrat ca hs este surjectie pentru orice s ∈ S. �

Aceasta propozitie ne asigura ca algebrele proiective corespund conceptului categorial cu acelasi nume.

Lema 1.7.4 Orice subalgebra a unei algebre libere este algebra libera.

Demonstratie: Intr-o algebra definim relatia

a ⊢ b daca si numai daca a = σ(. . . , b, . . . ).

Observam ca ın orice algebra libera relatia ⊢ este bine fondata, adica nu exista siruri infinite {an}n∈N cuproprietatea an ⊢ an+1 pentru orice n natural.

Fie P o subalgebra a unei algebre libere L. Relatia ⊢ este bine fondata si ın subalgebra P.

Fie X multimea tuturor elementelor din P care nu sunt rezultatul aplicarii vreunei operatii din P unorelemente din P. Prin urmare pentru orice s ∈ S

Xs = {x ∈ Ps|(∀σ)(∀p1, p2, . . . , pn)x 6= Pσ(p1, p2, . . . , pn)}

Vom dovedi ca X , subalgebra generata de X ın P, este chiar P. Presupunem prin absurd ca existap0 ∈ P −X. Deoarece p0 6∈ X el este rezultatul aplicarii cel putin al unei operatii. In plus cel putin unuldintre argumentele acestei operatii nu este din X deoarece ın caz contrar obtinem contradictia p0 ∈ X .Prin urmare exista p1 ∈ P −X astfel ıncat p0 ⊢ p1. Continuand rationamentul prin inductie ar rezulta carelatia ⊢ nu este bine fondata ın P, o contradictie.

Observam ca P este algebra Peano peste X. Chiar din definitia lui X rezulta ca rezultatul aplicariiunei operatii din P unor elemente din P nu este ın X. Ultima conditie din definitia algebrelor Peano esteadevarata ın P deoarece este adevarata ın L.

Deci P este liber generata de X deoarece este Peano peste X. �

Propozitie 1.7.5 (Andrei Popescu) In AlgΣ orice algebra proiectiva este libera.

Demonstratie: Fie P o algebra proiectiva. Fie ǫ : TΣ(P ) −→ P unicul morfism a carui restrictie la Peste 1P , identitatea lui P . Evident ǫ este epimorfism.

Deoarece P este o algebra proiectiva exista un morfism g : P −→ TΣ(P ) cu proprietatea g; ǫ = 1P .Obserevam ca g este o injectie. Prin urmare algebra P este izomorfa cu subalgebra g(P ) a lui TΣ(P ).

Algebra g(P ) este libera deoarece este subalgebra a unei algebre libere.

Algebra P este libera deoarece este izomorfa cu o algebra libera.

1.8 SPRE ABSTRACTIZAREA TIPURILOR DE DATE

1.8.1 Ecuatii

Sa analizam conceptul de axioma asa cum apare el ın algebra. De exemplu comutativitatea si asociativitatease scriu

(∀x∀y)x?y = y?x (∀x∀y∀z)x?(y?z) = (x?y)?z.

Page 41: Programare Logica

1.8. SPRE ABSTRACTIZAREA TIPURILOR DE DATE 41

Ce sunt acestea? Sunt egalitati de doua expresii cuantificate universal prin multimea variabilelor continuteın cele doua expresii. Deci o astfel de axioma are forma

(∀X)l◦= r

unde l si r sunt elemente din algebra liber generata de multimea X de variabile. Semnul◦= este utilizat ın

loc de =, ıntre doua expresii, pentru a marca faptul ca egalitatea poate fi si falsa, fapt pentru care vomfolosi denumirea de egalitate formala ın loc de egalitate. In cazul multisortat, cei doi membri ai uneiegalitati formale trebuie sa fie de acelas sort. Uneori scriem l

◦=s r pentru a marca sortul comun s al celor

doi membri.

Ce ınseamna ca o axioma este adevarata ıntr-o algebra D? Intuitiv este necesar ca rezultatul evaluariicelor doua expresii l si r ın algebra D sa fie acelasi indiferent de valorile date ın D variabilelor din X.Tinand cont ca a da valori variabilelor din X ın algebra D este echivalent cu a da un morfism de la TΣ(X)la D, aceasta idee intuitiva conduce la:

Definitia 1.8.1 Axioma (∀X)l◦= r este satisfacuta ın algebra D daca si numai daca pentru orice morfism

h : TΣ(X) −→ D este adevarata egalitatea h(l) = h(r).

Daca (∀X)l◦= r este satisfacuta ın algebra D, vom folosi notatia

D |=Σ (∀X)l◦= r

si mai spunem ca algebra D satisface (∀X)l◦= r. �

In continuare vom folosi pentru (∀X)l◦= r termenul de ecuatie ın locul celui de axioma, pentru a ne

conforma cu terminologia internationala.In plus vor intra ın joc si asa zisele ecuatii conditionate. De exemplu

(∀x∀y∀z)(x ∗ y = x ∗ z ⇒ y = z)

ceea ce corespunde axiomei de simplificare la stanga care este adevarata ın orice grup sau ın orice monoidliber.

1.8.2 Ecuatii conditionate

In logica ecuationala o axioma poate fi o implicatie

a1 = c1, a2 = c2, . . . , an = cn ⇒ a = c

unde ipoteza este o conjunctie de egalitati formale si concluzia o egalitate formala. Toata implicatia estecuantificata universal, fapt care nu apare scris mai sus. In acest cadru o axioma, numita ın continuare siecuatie conditionata a logicii ecuationale, poate fi scrisa sub forma

(∀X) a◦=s c if H

unde a si c sunt elemente de acelasi sort s, iar H este o multime finita de egalitati formale din algebraliber generata de multimea X de variabile. Ipoteza implicatiei este data de multimea H.

Pentru a verifica daca o algebra D satisface axioma de mai sus se dau valori arbitrare variabilelor din Xın D fapt ce poate fi facut printr-o functie arbitrara f : X −→ D sau echivalent printr-un morfism arbitrarh : TΣ(X) −→ D. Apoi se evalueaza expresiile din H pentru a se verifica daca rezultatul evaluarii conducela egalitati adevarate, caz ın care trebuie ca hs(a) = hs(c). Deci Σ-algebra D satisface ecuatia conditionata

(∀X)a◦=s c if H fapt notat prin

D |=Σ (∀X) a◦=s c if H

Page 42: Programare Logica

42 CHAPTER 1. ALGEBRE MULTISORTATE

daca si numai daca

(∀h : TΣ(X) −→ D) (∀u◦=t v ∈ H)ht(u) = ht(v) implica hs(a) = hs(c).

Credem ca este bine sa mentionam din nou diferenta esentiala ıntre semnele◦=s si =, diferenta care va

fi mentinuta constant pe parcursul ıntregului text. Egalul peste care s-a pus un cerculet (◦=s) indica o

egalitate formala care poate fi adevarata sau falsa. Egalul = are semnificatia uzuala indicand deobicei oegalitate adevarata.

1.8.3 Necesitatea utilizarii cuantificatorilor ın ecuatii

Vom ilustra printr-un exemplu necesitatea utilizarii cuantificatorilor ın ecuatiile logicii ecuationale multi-sortate.

Fie signatura S = {a, bool} si Σ = {g, F, T}. Rangurile simbolurilor de operatii sunt date prin desenulurmator :

a bool- ��g F

Tunde se vede ca sortul rezultat al celor trei simboluri de operatie g, F si T este bool; operatiile F si T nuau argumente si g are un singur argument de sort a.

Vom lucra cu doua Σ–algebre.Σ–algebra initiala este I = (∅, {F, T}; Ig , IF , IT ) unde F 6= T ; IF = F , IT = T si Ig : ∅ −→ {F, T} este

functia incluziune.Pentru orice variabila x de sort a, Σ-algebra liber generata de aceasta variabila TΣ({x}, ∅) are suporturile

{x} pentru sortul a si {g(x),F,T} pentru sortul bool.

Are loc relatia I |=Σ F◦= T ? Sau mai intuitiv: este egalitatea formala F

◦= T adevarata ın algebra I?

Vom arata ca raspunsul depinde de algebra libera ın care este scrisa egalitatea.Sunt posibile cel putin doua variante.

1. I |=Σ (∀∅)T◦= F daca si numai daca pentru orice morfism h : I −→ I, hbool(F ) = hbool(T ),

ceea ce este fals deoarece hbool(F ) = F 6= T = hbool(T ).

2. I |=Σ (∀x)T◦= F daca si numai daca pentru orice morfism h : TΣ({x}, ∅) −→ I, hbool(F ) = hbool(T ),

ceea ce este adevarat deoarece nu exista nici un morfism h : TΣ({x}, ∅) −→ I.

Am aratat ca I |=Σ (∀∅)T◦= F este falsa si ca I |=Σ (∀x)T

◦= F este adevarata. Daca omitem

cuantificatorii obtinem: “I |=Σ T◦= F este falsa si I |=Σ T

◦= F este adevarata.”

Contradictia obtinuta prin omiterea cuantificatorilor din fata egalitatii formale F◦= T arata ca ın logica

ecuationala multisortata prezenta cuantificatorilor ın ecuatii este necesara.In multe cazuri, de exemplu ın limbajele de programare PROLOG, OBJ, Maude, CafeOBJ, etc cuantifi-

catorii din fata ecuatiilor sunt omisi dar se presupune implicit ca ecuatiile sunt cuantificate prin multimeavariabilelor care apar ın ecuatie. Egalitatea formala T

◦= F este implicit interpretata (∀∅)T

◦= F .

1.8.4 In primul rand semantica

Pentru orice algebra D = (Ds,Dσ) notam cu

Sen(D) = {a◦=s c | s ∈ S, a, c ∈ Ds}

multimea propozitiilor sale. Propozitiile sunt de fapt egalitati formale care pot fi adevarate sau false.Sa observam ca Sen(D) se poate identifica cu produsul cartezian D × D. Poate cea mai buna

reprezentare a unei propozitii din D este un triplet format dintr-un sort s si doua elemente de sort sdin D.

Avand ın vedere cele de mai sus nu vom mai face nici o distinctie ıntre relatiile lui D si multimile deegalitati formale ıntre elementele lui D.

Page 43: Programare Logica

1.8. SPRE ABSTRACTIZAREA TIPURILOR DE DATE 43

Definitia 1.8.2 O ecuatie conditionata este

(∀X)l◦=s r if H

unde X este o multime S-sortata de variabile, l si r sunt doua elemente de sort s din TΣ(X) iar H omultime finita de egalitati formale din TΣ(X). �

O ecuatie conditionata ın care H = ∅ devine neconditionata si este numita pe scurt ecuatie. In acest cazscriem doar (∀X)l

◦=s r ın loc de (∀X)l

◦=s r if ∅.

Definitia 1.8.3 Algebra D satisface ecuatia conditionata (∀X)l◦=s r if H, fapt notat prin

D |=Σ (∀X)l◦=s r if H

daca pentru orice morfism h : TΣ(X) −→ D pentru care hs′(u) = hs′(v) pentru orice u◦=s′ v ∈ H, are loc

egalitatea hs(l) = hs(r). �

In cele ce urmeaza indicele Σ din |=Σ va fi omis. El va fi mentionat atunci cand este pericol de confuzie.

Observam ca D |= (∀X)l◦=s r daca si numai daca hs(l) = hs(r) pentru orice morfism h : TΣ(X) −→ D.

In continuare fixam o multime Γ de ecuatii conditionate, numite axiome.

Definitia 1.8.4 Spunem ca algebra D satisface Γ sau ca D este o Γ-algebra si scriem D |= Γ daca Dsatisface toate ecuatiile conditionate din Γ.

Un morfism de Σ-algebre ıntre doua Γ-algebre se numeste morfism de Γ-algebre sau mai scurt Γ-morfism.�

1.8.5 Punctul de vedere local

Fixam o algebra A si lucram cu propozitii din Sen(A). Acesta este punctul local de vedere al logiciiecuationale. Cazul ın care ne intereseaza propozitii din algebre diferite este numit global dar va fi putinfolosit ın acesta carte. In cazul global o propozitie din D va fi scrisa (∀D)a

◦=s c ın loc de a

◦=s c.

Notatia fara cuantificatori folosita ın cazul local nu contrazice ceea ce am scris despre necesitatea utilizariicuantificatorilor ın ecuatii. Pur si simplu nu scriem cuantificatorul pentru ca fixand algebra A el va fimereu acelasi (∀A) si deci ıl stim chiar daca nu-l vedem scris.

O alta idee pe care dorim sa o subliniem este folosirea unei algebre arbitrare A ın locul unei algebrelibere. Principalele rezultate privind rescrierile, care se refera atat la rescrierile de termeni cat si la rescrierilemodulo ecuatii, raman valabile ın acest cadru mai general. Aceasta prezentare unitara a diverselor tipuride rescriere este de fapt contributia autorului la modernizarea lectiilor despre rescriere. Exista ın lume treicarti privind rescrieriile [1, 16, 17]. Nici una nu prezinta stilul local.

Mentionam ca algebra A nu are legatura cu algebra TΣ(X) folosita ın vreo axioma (∀X)l◦=s r if H

din Γ. Mentionam si faptul ca ın axiome diferite putem folosi algebre libere diferite. Aceasta corespundecazului practic, de exemplu scriem comutativitatea xy = yx ıntr-o algebra libera cu doi generatori x si yiar asociativitatea (xy)z = x(yz) ıntr-o algebra libera cu trei generatori x, y si z.

1.8.6 Congruenta semantica

Privind Γ ca o multime de axiome, ne intereseaza toate consecintele ei semantice. Prin consecinta seman-tica se ıntelege orice fapt adevarat ın orice Γ–algebra. Logica ecuationala este interesata de consecintelesemantice care sunt scrise ca egalitati formale.

Prin urmare ecuatia (∀X)l◦=s r este o consecinta semantica a lui Γ, denumita si tautologie sau

propozitie valabila sau valida a logicii ecuationale, daca ea este adevarata ın orice Γ–algebra, adicahs(l) = hs(r) pentru orice Γ–algebra M si pentru orice morfism h : TΣ(X) −→M.

Page 44: Programare Logica

44 CHAPTER 1. ALGEBRE MULTISORTATE

Pentru locarizare fixam algebra TΣ(X) si pentru generalizare o ınlocuim cu o Σ–algebra arbitrara A.Prin urmare vom lucra ıntr-o Σ-algebra A si vom grupa ıntr-o relatie toate tautologiile(propozitiile

valide) logicii ecuationale din algebra A.Fie ≡A

Γ relatia pe A definita prin

a ≡AΓ c daca si numai daca (∀h : A −→M |= Γ)hs(a) = hs(c).

Daca nu exista pericol de confuzie vom prefera sa scriem ≡Γ ın loc de ≡AΓ .

Observam ca≡Γ =

{Ker(h) | h : A −→M |= Γ}.

Deoarece nucleul unui morfism este o relatie de congruenta si deoarece orice intersectie de relatii decongruente este o relatie de congruenta, deducem ca ≡Γ este o relatie de congruenta.

≡Γ este numita congruenta semantica.

Definim regula de deductie a substitutiei utilizata atat ın logica ecuationala cat si ın rescrierea ter-menilor.

SubΓ Pentru orice (∀X) l◦=s r if H ∈ Γ si orice morfism h : TΣ(X) −→ A

(∀u◦=t v ∈ H)ht(u)

◦=t ht(v) implica hs(l)

◦=s hs(r).

Definitia 1.8.5 O submultime M a lui Sen(A) se numeste ınchisa la substitutie sau ınchisa la SubΓ

daca pentru orice (∀X)l◦=s r if H ın Γ si orice h : TΣ(X) −→ A

(∀u◦=t v ∈ H)ht(u)

◦=t ht(v) ∈M implica hs(l)

◦=s hs(r) ∈M.

Observam ca intersectia unor multimi ınchise la substitutie este tot o multime ınchisa la substitutie.

Lema 1.8.6 Pentru orice morfism f : A −→M |= Γ, Ker(f) este ınchis la SubΓ.

Demonstratie: Fie (∀X)l◦=s r if H ın Γ si h : TΣ(X) −→ A un morfism cu proprietatea ca ht(u) Ker(f) ht(v)

pentru orice u◦=t v ∈ H. Prin urmare (h; f)t(u) = (h; f)t(v) pentru orice u

◦= v ∈ H. Deoarece

h; f : TΣ(X) −→M |= (∀X)l◦=s r if H rezulta ca (h; f)s(l) = (h; f)s(r), deci hs(l) Ker(f) hs(r).�

Propozitie 1.8.7 Congruenta semantica este ınchisa la substitutie.

Demonstratie: Congruenta semantica este o intersectie de congruente ınchise la substitutie. Deoareceo intersectie de congruente ınchise la substitutii este o congruenta ınchisa la substitutii rezulta ca ≡Γ esteo congruenta ınchisa la substitutie. �

Propozitie 1.8.8 Daca ∼ este o congruenta ınchisa la substitutii, atunci A/∼ |= Γ.

Demonstratie: Notam cu ρ : A −→ A/∼ morfismul de factorizare canonic.

Fie (∀X)l◦=s r if H ın Γ. Fie h : TΣ(X) −→ A/∼ un morfism astfel ıncat ht(u) = ht(v) pentru orice

u◦=t v ∈ H. Deoarece orice algebra libera este proiectiva rezulta ca TΣ(X) este algebra proiectiva, prin

urmare exista un morfism f : TΣ(X) −→ A astfel ıncat f ; ρ = h. Pentru orice u◦=t v ∈ H deoarece

ρt(ft(u)) = ρt(ft(v)) deducem ft(u) ∼ ft(v).Deoarece ∼ este o congruenta ınchisa la substitutii obtinem fs(l) ∼ fs(r). Prin urmare ρs(fs(l)) =

ρs(fs(r)), de unde hs(l) = hs(r). �

Aratati ca ≡Γ este cea mai mica congruenta ınchisa la substitutie.

Fie AΓ factorizarea lui A prin congruenta ≡Γ si fie η : A −→ AΓ morfismul cat.

Page 45: Programare Logica

1.9. TIPURI ABSTRACTE DE DATE 45

Teorema 1.8.9 AΓ |= Γ

Demonstratie: Se aplica propozitiile 1.8.7 si 1.8.8. �

Teorema 1.8.10 Pentru orice Γ-algebra B si pentru orice morfism h : A −→ B exista si este unic unmorfism h# : AΓ −→ B astfel ıncat η;h# = h.

Demonstratie: Este suficient sa aratam ca a ≡Γ c implica h(a) = h(c) si sa aplicam proprietatea deuniversalitate a algebrei cat. Intr-adevar a ≡Γ c implica h(a) = h(c) deoarece h : A −→ B |= Γ. �

Corolar 1.8.11 Daca A este Σ-algebra initiala, atunci AΓ este Γ-algebra initiala.

Corolar 1.8.12 Pentru orice signatura Σ si pentru orice multime Γ de ecuatii conditionate exista oΓ-algebra initiala.

Demonstratie: Se foloseste existenta Σ–algebrei initiale si corolarul precedent.

1.8.7 Problema programarii prin rescriere

Principala problema este : ”poate o masina sa demonstreze ca a ≡Γ c?”.Se stie ca ın unele cazuri rescrierile ne dau o solutie.

1.9 TIPURI ABSTRACTE de DATE

Am vazut ın lectiile precedente ca orice signatura determina prin algebra sa initiala un tip abstract dedate. Tipul abstract de date al numerelor naturale a fost determinat de signatura formata din constanta0 si operatia unara cunoscuta sub numele de succesor.

Acum am pus ın evidenta un instrument mai puternic deoarece orice signatura ımpreuna cu o multimeΓ de ecuatii conditionate determina prin Γ-algebra initiala, a carei existenta am dovedit-o mai sus, un tipabstract de date.

1.9.1 Tipul abstract al numerelor naturale - continuare

Consideram signatura cu un singur sort nat, o singura constanta de sort nat si o singura operatie unara cuargument 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 ...

Propozitie 1.9.1 Algebra (N, 0N , sN ) definita prin: N este multimea numerelor naturale, 0N este numarulnatural zero si sN (n) = n+ 1 pentru orice numar natural n; este initiala. (vezi si propozitia 1.2.7)

Propozitia anterioara ne arata cum pot fi definite numerele naturale prim metoda algebrei initiale catip abstract de date.

Deocamdata prin signatura de mai sus calculatorul ınvata numerele naturale dar nu stie ınca sa cal-culeze. Sa-l ınvatam deocamdata sa adune si sa ınmulteasca.

Adunarea poate fi introdusa prin declaratia

Page 46: Programare Logica

46 CHAPTER 1. ALGEBRE MULTISORTATE

op + : nat nat −→ nat .

dar aceasta, singura, nu face decat sa strice ceea ce am construit deja, deoarece de exemplu calculatorulinterpreteaza 0 + 0, deoarece nu stie sa adune ca un nou element diferit de 0, ceea ce evident nu dorim.

La cele de mai sus adaugam prea cunoscutele axiome ale lui Peano.

op + : nat nat −→ nat .

var X Y : nat .

eq X + 0 = 0 .

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

op * : nat nat −→ nat .

eq X * 0 = 0 .

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

Parantezele din ultimul rand sunt puse pentru ca masina sa ınteleaga ca ınmultirea se efectueazainaintea adunarii. Exista metode mai eficiente care fac masina sa ınteleaga acest fapt, dar acesta nu estescopul prezentului text. In demonstratia de mai jos nu mai punem aceste paranteze deoarece textul nu semai adreseaza calculatorului.

Trebuie sa mentionam ca egalitatiile de mai sus sunt folosite ın doua moduri:

a) ca ecuatii care ımpreuna cu signatura de patru operatii formeaza o multime Γ pentru a defini ostructura algebrica si

b) ca reguli de rescriere ın timpul executiei programelor, adica se aplica numai de la stanga la dreapta.

Propozitie 1.9.2 Algebra N = (N, 0N , sN ,+N , ∗N ) este Γ-algebra initiala.

Demonstratie: Fie A = (A,OA, sA,+A, ∗A) o Γ-algebra. Mentionam ca algebra A satisfac ecuatiile dinΓ, adica

1) a+A 0A = a pentru orice a din A,

2) a+A sA(b) = sA(a+ b) pentru orice a, b din A,

3) a ∗A 0A = 0A pentru orice a din A,

4) a ∗A sA(b) = a ∗A b+A a pentru orice a, b din A.

Vom proba ca exista un unic morfism de Γ-algebre de la N la A.

Sa ıncepem cu unicitatea. Daca h : N −→ A este un Γ-morfism, atunci h : (N, 0N , sN ) −→ (A, 0A, sA)este morfism prin urmare coincide cu unicul morfism dat de propozitia de mai sus.

Pentru a demonstra existenta nu avem decat o singura sansa si anume sa dovedim ca unicul morfismh : (N, 0N , sN ) −→ (A, 0A, sA) este si morfism de Γ-algebre. Reamintim ca

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

Probam ca h(n +N m) = h(n) +A h(m) prin inductie dupa m

h(n +N 0N ) = h(n) = h(n) +A 0A = h(n) +A h(0N ) si

h(n +N (m + 1)) = h(sN (n +N m)) = sA(h(n +N m)) = sA(h(n) +A h(m)) = h(n) +A sA(h(m)) =h(n) +A h(m+ 1).

Probam ca h(n ∗N m) = h(n) ∗A h(m) prin inductie dupa m

h(n ∗N 0N ) = h(0N ) = 0A = h(n) ∗A 0A = h(n) ∗A h(0N ) si

h(n∗N (m+1)) = h(n∗Nm+N n) = h(n∗Nm)+Ah(n) = (h(n)∗Ah(m))+Ah(n) = h(n)∗A sA(h(m)) =h(n) ∗A h(m+ 1). �

Page 47: Programare Logica

1.9. TIPURI ABSTRACTE DE DATE 47

Propozitia anterioara demonstreaza corectitudinea definitiei de mai sus. Deoarece algebra N esteinitiala rezulta ca ea este izomorfa cu Γ-algebra initiala, deci specificatia de mai sus caracterizeaza, prinΓ-algebra sa initiala, tipul de date al numerelor naturale.

Cred ca este util sa mentionam aici ca dat un tip de date nu este suficient sa gasim o structura algebricacare sa-l defineasca ca tip abstract de date. De exemplu stim din algebra ca numerele naturale formeaza unsemiinel initial. Caracterizarea numerelor naturale ca semiinel initial nu ne multumeste deoarece axiomeleconceptului de semiinel nu ne dau un program(calculatorul este incapabil sa faca operatii cu numerelenaturale folosind numai axiomele semiinelului). Axiomele lui Peano dau un program ın programarea prinrescriere.

Page 48: Programare Logica

48 CHAPTER 1. ALGEBRE MULTISORTATE

Page 49: Programare Logica

Chapter 2

RESCRIERI

2.1 TEORII DEDUCTIVE A la MOISIL

Fie E o multime de propozitii. O regula de deductie pe E este o pereche (H, e) unde H este o submultimefinita a lui E (si se numeste ipoteza regulii) si e ∈ E (si se numeste concluzia regulii ). Poate mai sugestivo regula (H, e) ar fi trebuit scrisa H −→ e deoarece semnificatia ei este “propozitia e este o consecinta apropozitiilor din H”. Mai mentionam ca ın cazul particular H = ∅ regula (∅, e) spune ca e este o axioma.

O submultime D a lui E se numeste ınchisa la regula (H, e) daca H ⊆ D implica e ∈ D. In acest cazse mai spune ca regula (H, e) este corecta pentru D deoarece regula nu ne scoate din D.

Fie R o multime de reguli de deductie. O submultime D a lui E se numeste inchisa la R daca si numaidaca D este inchisa la orice regula din R.

Definitia ınchiderii la substitutie, data ın sectiunea 1.8.6, este un caz particular al definitiei de mai sus.

Observatia 2.1.1 Daca Di ⊆ E este inchisa la R pentru fiecare i ∈ I, atunci⋂

i∈I Di este ınchisa la R.

Demonstratie: Fie (H, e) ∈ R astfel ıncat H ⊆⋂

i∈I Di. Pentru orice i ∈ I, deoarece Di este inchisa laR si H ⊂ Di deducem e ∈ Di. Deci e ∈

i∈I Di. �

Prin definitie [n] = {1, 2, . . . , n} pentru orice numar natural n.O propozitie e ∈ E poate fi demonstrata folosind R daca si numai daca exista o secventa finita de

propozitii e1e2 . . . en astfel ıncat en = e si pentru orice i ∈ [n], exista (H, ei) ∈ R astfel ıncat H ⊆{e1, e2, . . . , ei−1}. Vom spune ca e1e2 . . . en este o demonstratie pentru en = e.

Observatia 2.1.2 Daca α si β sunt demonstratii atunci αβ este demonstratie.

Notam cu Teor(R) multimea propozitiilor care pot fi demonstrate folosind R.

Lema 2.1.3 Fie D ⊆ E. Daca D este inchisa la R atunci Teor(R) ⊆ D.

Demonstratie: Fie e ∈ Teor(R). Prin urmare exista o secventa finita de propozitii e1e2 . . . en astfelıncat en = e si pentru oricare i din [n] exista (H, ei) ∈ R astfel ıncat H ⊆ {e1, e2, . . . , ei−1}.

Probam prin inductie ca ei ∈ D pentru orice i din [n]. Ipoteza de inductie este (∀k < i) ek ∈ D.Deoarece sirul e1e2 . . . en este o demonstratie exista (H, ei) ∈ R cu H ⊆ {e1, e2, . . . , ei−1}. Din ipoteza deinductie deducem H ⊆ D. Deoarece D este ınchisa la R rezulta ca ei ∈ D.

In particular pentru i = n deducem e ∈ D.Dar e a fost luata arbitrar ın Teor(R), deci Teor(R) ⊆ D. �

Aceasta lema ne furnizeaza o metoda prin care putem arata ca toate propozitiile demonstrabile folosindR au o anumita proprietate si anume este suficient sa aratam ca multimea propozitiilor cu proprietateadata este ınchisa la R.

49

Page 50: Programare Logica

50 CHAPTER 2. RESCRIERI

Teorema 2.1.4 Teor(R) este cea mai mica multime(ın raport cu ⊆) care este ınchisa la R.

Demonstratie: Demonstram ca Teor(R) este ınchisa la R. In acest scop presupunem (H, e) ∈ R,unde H = {f1, . . . , fn} si H ⊆ Teor(R). Pentru orice i ∈ [n] din fi ∈ Teor(R) deducem existentaunei demonstratii αifi unde αi este un sir de propozitii din E. Atunci α1f1 . . . αnfn este o demonstratiedeoarece este o concatenare de demonstratii si pentru ca ({f1, . . . , fn}, e) ∈ R deducem ca α1f1 . . . αnfneeste o demonstratie pentru e. Deci e ∈ Teor(R). Rezulta ca Teor(R) este ınchisa la R. Din lema 2.1.3rezulta ca Teor(R) este cea mai mica ın sensul incluziunii care este ınchisa la R. �

Observatia 2.1.1 ne spune ca multimile ınchise la R formeaza, conform propozitiei 1.3.8, o familie Moore.Pentru a pune ın evidenta operatorul de ınchidere asociat trebuie sa ne referim la demonstratii din ipoteze.Mai precis pentru X ⊆ D adaugam elementele lui X ca axiome X ′ = {(∅, e) : e ∈ X}. Inchiderea lui Xeste Teor(R ∪X ′).

2.2 LOGICA ECUATIONALA

Fie Γ o multime de ecuatii conditionale si o Σ-algebra A fixata.Multimea propozitiilor adevarate, tautologiile, din A este chiar congruenta semantica

≡Γ = {a◦=s b ∈ Sen(A) : (∀M |= Γ)(∀f : A −→M)fs(a) = fs(b)}.

Conform traditiei mai scriem|= a

◦=s b daca si numai daca a ≡Γ b

Se cauta o multime corecta si completa de reguli de deductie pentru ≡AΓ .

2.2.1 Reguli de deductie, corectitudine

Notam cu RE multimea urmatoarelor reguli de deductie pentru logica ecuationala multisortata:

R a◦=s a

S a◦=s b implica b

◦=s a

T a◦=s b si b

◦=s c implica a

◦=s c

CΣ Pentru orice σ ∈ Σs1s2...sn,s:

ai◦=si bi pentru 1 ≤ i ≤ n implica Aσ(a1, a2, . . . , an)

◦=s Aσ(b1, b2, . . . , bn).

SubΓ Pentru orice (∀X) l◦=s r if H ∈ Γ si pentru orice h : TΣ(X) −→ A

ht(u)◦=t ht(v) pentru orice u

◦=t v ∈ H implica hs(l)

◦=s hs(r)

Conform traditiei notam prin ⊢ a◦=s b faptul ca egalitatea formala a

◦=s b este demonstrabila cu regulile

de mai sus.

Observatia 2.2.1 Observam ca o multime de egalitati formale este ınchisa la regula R daca si numaidaca este o relatie reflexiva.

Din aceasta cauza R este numita regula reflexivitatii.

Observatia 2.2.2 Observam ca o multime de egalitati formale este ınchisa la regula S daca si numai dacaeste o relatie simetrica.

Din aceasta cauza S este numita regula simetriei.

Observatia 2.2.3 Observam ca o multime de egalitati formale este ınchisa la regula T daca si numaidaca este o relatie tranzitiva.

Din aceasta cauza T este numita regula tranzitivitatii.

Page 51: Programare Logica

2.2. LOGICA ECUATIONALA 51

Observatia 2.2.4 Observam ca o multime de egalitati formale este ınchisa la regula CΣ daca si numaidaca este o relatie compatibila cu toate operatiile algebrei A.

Din aceasta cauza CΣ este numita regula compatibilitatii cu operatiile din Σ.

Teorema 2.2.5 Regulile de deductie RE sunt corecte pentru ≡Γ.

Demonstratie: Deoarece ≡Γ este congruenta rezulta ea este ınchisa la primele patru reguli, prin urmareele sunt corecte pentru ≡Γ . Corectitudinea ultimei reguli rezulta din ınchiderea congruentei semantice lasubstitutii ın conformitate cu propozitia 1.8.7. �

Corolar 2.2.6 ⊢ a◦=s b implica |= a

◦=s b. �

Demonstratie: Congruenta semantica, adica multimea egalitatilor formale cu proprietatea |= a◦=s b,

este ınchisa la RE conform teoremei 2.2.5

Multimea egalitatilor formale demonstrabile, adica multimea egalitatilor formale cu proprietatea⊢ a

◦=s b, este cea mai mica multime ınchisa la RE conform teoremei 2.1.4.

Prin urmare multimea egalitatilor formale cu proprietatea ⊢ a◦=s b este inclusa ın multimea egalitatilor

formale cu proprietatea |= a◦=s b, de unde rezulta concluzia.

2.2.2 Completitudine

Pentru orice s ∈ S si a, b ∈ As se defineste relatia ∼Γ in A prin:

a ∼Γ b⇐⇒⊢ a◦=s b.

Deoarece regulile R, S si T sunt ın RE deducem ca ∼Γ este ınchisa la R, S si T deci este o echivalenta.Mai mult, deoarece CΣ este ın RE rezulta ca ∼Γ este ınchisa la CΣ deci este congruenta.

Fie AΓ catul lui A prin ∼Γ si fie ηA : A −→ AΓ Σ-morfismul canonic de factorizare.

Observatia 2.2.7 AΓ |= Γ

Demonstratie: Deoarece SubΓ este ın RE rezulta ca ∼Γ este ınchisa la substitutii prin urmare aplicandpropozitia 1.8.8 rezulta concluzia.

Teorema 2.2.8 Teorema de completitudine: |= a◦=s b implica ⊢ a

◦=s b.

Demonstratie: Fie |= a◦=s b. Din definitia tautologiilor deducem (∀h : A −→ B |=Γ) hs(a) = hs(b).

Intrucat AΓ |= Γ si ηA : A −→ AΓ este Σ-morfism rezulta ca ηA(a) = ηA(b). Prin urmare a ∼Γ b, deci

⊢ a◦=s b. �

In concluzie congruenta ∼Γ si congruenta semantica ≡Γ coincid. Prin urmare algebra AΓ si morfismulηA coincid cu cele introduse ıntr-un mod numai aparent diferit ın sectiunea 1.8, teoremele 1.8.9 si 1.8.10.

Proprietatea de universalitate a algebrei AΓ demonstrata atunci, teorema 1.8.10, ramane adevarata siın noul context.

Urmatorul pas dupa o teorema de completitudine care ne asigur u a existenta unei demonstratii pentruorice tautologie este de a gasi aceste demonstratii. Informaticienii sunt ceva mai pretentiosi deoarece dorescca aceste demonstratii sa fie gasite de un calculator. Pentru acest scop rescrierea este foarte utila.

Page 52: Programare Logica

52 CHAPTER 2. RESCRIERI

2.3 RESCRIERE LOCALA

Rescrierile sunt un fapt pe care-l ıntalnim din primii ani de scoala. De exemplu ın sirul de egalitati

2 ∗ (3 + 4) = 2 ∗ 7 = 14

facem doua rescrieri(ınlocuiri): 3+4 esre rescris ın 7 si apoi 2 ∗ 7 este rescris ın 14. Aceste rescrieri suntpermise de regulile adunarii si ınmultirii. Partea expresiei care ramane neschimbata deoarece rescriereaare loc ın interiorul ei se numeste context. La prima rescriere contextul este 2 ∗ •, unde • este un semnspecial care arata locul ın care se face rescrierea. Deoarece a doua rescriere se face la varf contextul este •.

De obicei rescrierile se fac de la expresii mai complicate spre expresii mai simple. Rescrierea lui 3+4ın 7 este ceva firesc, pe cand rescrierea lui 7 ın 3+4 este ceva artificial. Dece 3+4 si nu 2+5? Prin urmarespre deosebire de egalitate care este simetrica, rescrierea nu este simetrica.

Deoarece se doreste ca rescrierile sa fie facute de calculator, practica programarii ne da un argumentfoarte puternic ımpotriva simetriei. Simetria este o regula care conduce la neterminarea programelor,deoarece dupa ce am rescris a ın b putem rescrie pe b ın a, pe a ın b si asa mai departe.

Eliminarea simetriei dintre regulile de deductie este principala diferenta dintre calculul cu egalitatireflectat de logica ecuationala. Deoarece eliminarea simetriei duce la pierderea completitudinii, simetriava trebui ınlocuita cu altceva pentru a reobtine completitudinea.

2.3.1 Preliminarii

Signatura Σ, multimea Γ de axiome si algebra A ın care se fac rescrierile(localizare) sunt fixate.Fie X o multime S–sortata de variabile si TΣ(X) Σ–algebra liber generata de X. Pentru orice x ∈ X si

α ∈ TΣ(X), vom nota cu

nrx(α) numarul de aparitii ale lui x ın α.

Observam ca nrx(x) = 1, nrx(y) = 0 pentru orice y ∈ X − {x} sinrx(σ(e1, e2, . . . , ek)) = nrx(e1) + nrx(e2) + . . . nrx(ek).

Fie A o Σ–algebra, • o variabila de sort s, • /∈ As. Consideram algebra liber generata de A ∪ {•}, sianume TΣ(A ∪ {•}). Vom presupune fara a micsora generalitatea ca

TΣ(A) ⊆ TΣ(A ∪ {•}).

Un element c din TΣ(A ∪ {•}) se numeste context daca nr•(c) = 1. Daca c = σ(c1, c2, . . . , cn) este uncontext, atunci exista un 1 ≤ i ≤ n astfel ıncat ci este context si cj ∈ TΣ(A) pentru orice j 6= i.

Pentru d ∈ As, vom nota cu • ← d : TΣ(A ∪ {•}) −→ A unicul morfism de Σ–algebre cu proprietatea(• ← d)(•) = d si (• ← d)(a) = a pentru orice a ∈ A. Mentionam ca restrictia lui • ← d la TΣ(A) este unmorfism care evalueaza ın A o expresie ın care elementele din A erau considerate variabile.

Pentru orice t din TΣ(A ∪ {•}) si a ∈ As, vom prefera sa scriem

t[a]

ın loc de (• ← a)(t), deoarece (• ← a)(t) este de fapt rezultatul ınlocuirii lui • prin a ın t si al evalarii ınA al expresiei obtinute ın TΣ(A).

Daca ın t nu apare •, adica t este din Σ-algebra liber generata de A, atunci t[a] = t[d] pentru oricea, d ∈ As, deoarece ambele sunt egale cu evaluarea ın A a lui t. Egalitatea poate fi demonstrata printr-osimpla inductie structurala.

Compunerea relatiilor R ⊆ A×B si Q ⊆ B × C este relatia R;Q ⊆ A× C definita prin

R;Q = {(a, c) | (∃b ∈ B)(a, b) ∈ R si (b, c) ∈ Q}.

Page 53: Programare Logica

2.3. RESCRIERE LOCALA 53

Compunerea relatiilor este asociativa.Relatiile ıntre elementele aceleeasi multimi A, adica partile lui A×A, formeaza cu operatia de compunere

un monoid al carui element neutru este relatia de egalitate. Pentru astfel de relatii sunt definite puterilelor naturale. Prin definitie R0 este chiar relatia de egalitate. Prin definitie

R∗ =⋃

n≥0

Rn

este ınchiderea reflexiva si tranzitiva a relatiei R, adica R∗ este cea mai mica relatie reflexiva si tranzitivacare include R. Mentionam ca * este operator de ınchidere ın multimea partilor lui A×A.

Pentru o relatie notata −→ ın loc de notatia −→∗ se prefera notatia∗−→ .

2.3.2 Inchiderea la contexte

Definitia 2.3.1 O relatie Q pe A se numete ınchisa la contexte daca pentru orice context c si pentruorice pereche de elemente a, d din As, aQd implica c[a]Qc[d].

Observam ca relatia de egalitate este ınchisa la contexte.

Lema 2.3.2 Compunerea relatiilor ınchise la contexte este ınchisa la contexte.

Demonstratie: Presupunem ca relatiile Q si R sunt ınchise la contexte. Fie c un context.Presupunem aQ;R b. Prin urmare exista d astfel ıncat aQd si dR b. Deoarece Q si R sunt ınchise la

contexte deducem c[a]Qc[d] si c[d]R c[b], prin urmare c[a]Q;R c[b]. �

Propozitie 2.3.3 Daca relatia R este ınchisa la contexte, atunci ınchiderea ei reflexiva si tranzitiva R∗

este ınchisa la contexte.

Demonstratie: Presupunem ca R este ınchisa la contexte. Folosind observatia si lema de mai susdeducem ca pentru orice n natural relatia Rn este ınchisa la contexte.

Fie c un context si aR∗ b. Prin urmare exista n natural cu proprietatea aRn b. Deducem ca c[a]Rn c[b],deci c[a]R∗ c[b]. �

Introducem regula de deductie

CAΣ a◦=si d implica Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)

◦=s Aσ(a1, . . . , ai−1, d, ai+1, . . . , an)

(∀σ ∈ Σs1...sn,s), orice 1 ≤ i ≤ n, unde aj ∈ Asj pentru orice j ∈ {1, . . . , i− 1, i+ 1, . . . , n}si a, d ∈ Asi .

Definitia 2.3.4 O relatie ρ ⊂ A×A se numeste compatibila pe argumente cu operatiile algebrei Adaca este ınchisa la CAΣ.

Propozitie 2.3.5 O relatie este ınchisa la contexte daca si numai daca este compatibila pe argumente cuoperatiile algebrei.

Demonstratie: Presupunem Q ınchisa la contexte. Pentru a demonstra compatibilitatea pe argumentecu operatia σ aplicam ipoteza pentru contextul c = σ(a1, . . . , ai−1, •, ai+1, . . . , an). Presupunem (a, d) ∈ Qsi deducem din ınchiderea la contexte ca (c[a], c[d]) ∈ Q. Observam ca

c[a] = (• ← a)(c) = (• ← a)(σ(a1, . . . , ai−1, •, ai+1, . . . , an)) = Aσ(a1, . . . , ai−1, a, ai+1, . . . , an).

Analog c[d] = Aσ(a1, . . . , ai−1, d, ai+1, . . . , an), prin urmare

Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)◦= Aσ(a1, . . . , ai−1, d, ai+1, . . . , an) este ın Q.

Page 54: Programare Logica

54 CHAPTER 2. RESCRIERI

Reciproca se arata prin inductie structurala ın TΣ(A ∪ {•}).

Pasul 0: c = •. Pentru orice (a, d) ∈ Q, c[a] = a, c[d] = d, deci (c[a], c[d]) ∈ Q.

Pentru un context c = σ(a1, . . . , ai−1, c′, ai+1, . . . , an) unde c′ ∈ TΣ(A ∪ {•}) este un context si

ai ∈ TΣ(A)

c[a] = (• ← a)(c) = Aσ(a1[a], . . . , ai−1[a], c′[a], ai+1[a], . . . , an[a]).

La fel c[d] = Aσ(a1[d], . . . , ai−1[d], c′[d], ai+1[d], . . . , an[d]). Mai observam ca aj [a] = aj[d] pentru orice

j 6= i.Din ipoteza de inductie c′[a]Qc′[d] si tinand cont de compatibilitatea pe argumente obtinem c[a]Qc[d].

Definitia 2.3.6 Daca Q este o relatie pe A vom nota

−→Q = {(c[a], c[d]) : (a, d) ∈ Qs, c ∈ TΣ(A ∪ {•}) este context unde variabila • are sortul s}.

Propozitie 2.3.7 −→Q este inchiderea la contexte a lui Q.

Demonstratie: Trebuie sa dovedim ca −→Q este cea mai mica relatie ınchisa la contexte care includeQ.

Pentru a dovedi ca −→Q este inchisa la contexte, vom prefera sa aratam ca este compatibila pe argu-mente cu opreratiile. Fie (c[a], c[d]) ın −→Q unde (a, d) ∈ Q, σ ∈ Σt1t2...tn,t un simbol de operatie si ai ∈ Atiniste elemente din A. Folosind contextul c′ = σ(a1, . . . , ai−1, c, ai+1, . . . , an) deducem ca (c′[a], c′[d]) este ın−→Q. Dar calculand ca mai sus

c′[a] = Aσ(a1, . . . , ai−1, c[a], ai+1, . . . , an) si c′[d] = Aσ(a1, . . . , ai−1, c[d], ai+1, . . . , an)

prin urmare(Aσ(a1, . . . , ai−1, c[a], ai+1, . . . , an), Aσ(a1, . . . , ai−1, c[d], ai+1, . . . , an)) este ın −→Q.

Incluziunea Q ⊆−→Q se demonstreaza folosind contextul •.

Presupunem Q ⊆ R si ca R este ınchisa la contexte. Probam ca −→Q ⊆ R. Fie (c[a], c[d]) ın −→Q

unde (a, d) ∈ Q. Incluziunea Q ⊆ R implica (a, d) ∈ R. Deoarece R este ınchisa la contexte deducem ca(c[a], c[d]) este ın R. �

Propozitia precedenta ne asigura ca −→Q este operator de ınchidere.

2.3.3 Inchiderea la preordini compatibile cu operatiile

Preordine semnifica o relatie reflexiva si tranzitiva.

Reamintim regulile de deductie ın multimea egalitatilor formale ıntre elementele algebrei A denumiteReflexivitate, Tranzitivitate si Compatibilitate cu operatiile din Σ:

R a◦=s a

T a◦=s d si d

◦=s c implica a

◦=s c

CΣ ai◦=si ci pentru orice i ∈ [n] implica

Aσ(a1, a2, . . . , an)◦=s Aσ(c1, c2, . . . , cn) pentru orice σ ∈ Σs1s2...sn,s

Remarcam ca CΣ si R implica CAΣ.Reciproca CAΣ, R si T implica CΣ este demonstrata de lema urmatoare.

Lema 2.3.8 Fie ρ ⊂ A × A o relatie tranzitiva si reflexiva ın algebra A. Daca ρ este compatibila peargumente cu operatiile algebrei A, atunci ρ e compatibila cu operatiile, adica ınchisa la CΣ.

Page 55: Programare Logica

2.3. RESCRIERE LOCALA 55

Demonstratie: Fie σ ∈ Σs1...sn,s si ai, bi ∈ Asi astfel ıncat aiρsibi pentru orice i ∈ [n].Aratam ca Aσ(a1, . . . , an) ρsAσ(b1, . . . , bn).Daca n = 0 din reflexivitate deducem Aσ ρsAσ .Daca n = 1 din ipoteza CAΣ rezulta Aσ(a1) ρsAσ(b1).Daca n ≥ 2 aplicand succesiv ipoteza CAΣ obtinem

Aσ(a1, a2, . . . , an) ρsAσ(b1, a2, . . . , an) ρsAσ(b1, b2, a3, . . . , an) ρs . . . ρsAσ(b1, b2, . . . , bn)

Din tranzitivitatea relatiei ρ deducem Aσ(a1, a2, . . . , an) ρsAσ(b1, b2, . . . , bn). �

Pentru a rezuma desenam schema

� -CΣ CAΣR

R,T⇔ ınchiderea la contexte

Un comentariu privind regulile de deductie CΣ si CAΣ este bine venit. Regula CΣ este utilizataın logica ecuationala. La rescrieri este preferabil sa lucram cu regula CAΣ, deoarece ea este echivalentacu ınchiderea la contexte. Din cele de mai sus rezulta ca ın prezenta reflexibilitatii si a tranzitivitatiiregulile CAΣ si CΣ sunt echivalente. Deoarece reflexivitatea si tranzitivitatea sunt acceptate atat delogica ecuationala cat si de rescrieri, cele doua reguli au aceeasi putere.

Propozitie 2.3.9∗−→Q este cea mai mica preordine compatibila cu operatiile care include Q.

Demonstratie: Relatia∗−→Q este prin definitie ınchiderea reflexiva si tranzitiva a relatiei −→Q. Ea este,

prin definitie, reflexiva si tranzitiva. Este si ınchisa la contexte, conform propozitiei 2.3.3 deoarece −→Q

este ınchisa la contexte.Evident Q ⊆−→Q⊆

∗−→Q .

Fie R o preordine compatibila cu operatiile care include Q. Deoarece CΣ si R implica CAΣ relatia Reste compatibila pe argumente cu operatiile, asadar relatia R este ınchisa la contexte, prin urmare aplicandpropozitia 2.3.7, deducem −→Q ⊆ R. Rezulta ca

∗−→Q ⊆ R deoarece R este reflexiva si tranzitiva. �

Din proprietatile operatorilor de ınchidere si R ⊆ Q deducem −→R⊆−→Q si∗−→R⊆

∗−→Q.

Notam u ⇓Q v daca exista a ∈ A astfel ıncat u∗−→Q a si v

∗−→Q a.

2.3.4 Γ–rescriere

Un prim pas pentru suplinirea simetriei este ınlocuirea regulii substitutiei cu regula rescrierii. Vom maifolosi si regula rescrierii ın subtermeni.

RewΓ Pentru orice (∀X) l◦=s r if H ∈ Γ si orice morfism h : TΣ(X) −→ A

(∀u◦=t v ∈ H)(∃d ∈ At)ht(u)

◦=t d si ht(v)

◦=t d implica hs(l)

◦=s hs(r).

SRewΓ Pentru orice (∀X) l◦=s r if H ∈ Γ si orice morfism h : TΣ(X) −→ A

(∀u◦=t v ∈ H)(∃d ∈ At)ht(u)

◦=t d si ht(v)

◦=t d implica

c[hs(l)]◦=s′ c[hs(r)] pentru orice context c ∈ TΣ(A ∪ {•})s′ .

Remarcati ca SRewΓ, rescrierea ıntr-un subtermen, este o regula de deductie mai puternica decat RewΓ,rescrierea, care poate fi obtinuta din SRewΓ pentru c = •.

Deasemenea RewΓ si regula contextului implica SRewΓ.

Comparand substitutia si rescrierea observam urmatoarele.1) RewΓ si R implica SubΓ.2) SubΓ, S si T implica RewΓ.

Page 56: Programare Logica

56 CHAPTER 2. RESCRIERI

Probam ultima afirmatie. Fie (∀X) l◦=s r if H ∈ Γ si un morfism h : TΣ(X) −→ A cu proprietatea

ca pentru orice u◦=s′ v ∈ H exista d ∈ As′ cu hs′(u)

◦=s′ d si hs′(v)

◦=s′ d. Pentru orice u

◦=s′ v ∈ H

cu S deducem d◦=s, hs′(v) si apoi cu T obtinem hs′(u)

◦=s′ hs′(v). In final aplicam SubΓ si deducem

hs(l)◦=s hs(r).

Pentru a rezuma desenam schema

� -SubΓ RewΓ

R

S,T-

CAΣ

� SRewΓ

Definim prin inductie sirul crescator de multimi de egalitati formale din A.

Q0 = ∅

Qn+1 = {hs(l)◦=s hs(r) : (∀Y )l

◦=s r if H ∈ Γ, h : TΣ(Y ) −→ A, si (∀u

◦=t v ∈ H)ht(u) ⇓Qn ht(v)}

Pentru a ne convinge ca sirul de mai sus este crescator putem demonstra prin inductie ca (∀n)Qn ⊆ Qn+1.

Evident Q0 = ∅ ⊆ Q1. Presupunem Qn ⊆ Qn+1 si probam Qn+1 ⊆ Qn+2. Fie hs(l)◦=s hs(r) ın Qn+1,

adica exista (∀Y )l◦=s r if H ∈ Γ si h : TΣ(Y ) −→ A cu proprietatea (∀u

◦=t v ∈ H)ht(u) ⇓Qn ht(v).

Deoarece sirul ⇓Qn este crescator deducem ht(u) ⇓Qn+1 ht(v), deci hs(l)◦=s hs(r) este ın Qn+2.

Deoarece −→• si∗−→• sunt operatori de ınchidere deducem ca sirurile −→Qn si

∗−→Qn sunt crescatoare.

Observatia 2.3.10 Daca Γ nu contine decat ecuatii, adica ın Γ nu exista nici o ecuatie conditionata,observam ca sirul {Qn}n≥1 este constant, deci Q = Q1.

Prin definitie Q este reuniunea sirului crescator definit mai sus

Q =⋃

n∈N

Qn.

Remarcam ca a −→Q d implica existenta unui n natural cu proprietatea a −→Qn d. Deasemenea a∗−→Q d

implica existenta unui n natural cu proprietatea a∗−→Qn d.

Sirul ⇓Qn este crescator. In plus a ⇓Q b implica existenta unui n natural cu proprietatea a ⇓Qn b.

In cazul ın care Q este definita ca mai sus, ın loc de∗−→Q vom prefera sa scriem

∗=⇒Γ . Relatia

∗=⇒Γ

este denumita Γ–rescriere sau mai scurt rescriere.

Propozitie 2.3.11∗

=⇒Γ este ınchisa la SRewΓ.

Demonstratie: Fie (∀Y )l◦=s r if H ∈ Γ, h : TΣ(Y ) −→ A morfism cu proprietatea ht(u) ⇓Q ht(v)

pentru orice u◦=t v ∈ H si un context c ∈ TΣ(A ∪ {•})s′ . Trebuie aratat ca c[h(l)]

∗=⇒Γ c[h(r)].

Deoarece H este finita si numarul pasilor utilizat ın ht(u) ⇓Q ht(v) unde u◦=t v ∈ H este finit exista

un n natural astfel ıncat ht(u) ⇓Qn ht(v) pentru orice u◦=t v ∈ H. Prin urmare hs(l)

◦=s hs(r) ∈ Qn+1.

Deoarece hs(l)◦=s hs(r) ∈ Q deducem c[hs(l)]

∗=⇒Q c[hs(r)], adica c[hs(l)]

∗=⇒Γ c[hs(r)]. �

Propozitie 2.3.12∗

=⇒Γ este cea mai mica relatie ınchisa la R, T, CΣ si RewΓ.

Demonstratie: Evident∗

=⇒Γ este ınchisa la R, T si CΣ si, fiind ınchisa la SRewΓ, este ınchisa si laRewΓ.

Fie W o relatie ınchisa la R, T, CΣ si RewΓ. Demonstram prin inductie dupa n ca Qn ⊆W.Daca n = 0 avem Q0 = ∅ ⊆W.Pentru n ≥ 1 fie hs(l)

◦=s hs(r) ∈ Qn, unde (∀Y )l

◦=s r if H ∈ Γ, h : TΣ(Y ) −→ A si ht(u) ⇓Qn−1 ht(v)

Page 57: Programare Logica

2.4. RELATIA DE INTALNIRE, FORME NORMALE 57

pentru orice u◦=t v ∈ H. Din ipoteza de inductie Qn−1 ⊆ W . Cum W este ınchisa la CΣ si R rezulta ca

W este ınchisa la CAΣ, adica la contexte, deci −→Qn−1 ⊆ W . Folosind faptul ca W este ınchisa la R si

T rezulta ca∗−→Qn−1⊆W , prin urmare ⇓Qn−1⊆ ⇓W .

Din (∀u◦=t v ∈ H)ht(u) ⇓Qn−1 ht(v) obtinem (∀u

◦=t v ∈ H)ht(u) ⇓W ht(v). Folosind ınchiderea lui W la

RewΓ rezulta ca hs(l)◦=s hs(r) ∈W , deci Qn ⊆W.

Prin urmare Q ⊆W si folosind propozitia 2.3.9 deducem ca∗−→Q ⊆W.

2.3.5 Corectitudinea rescrierii

Teorema 2.3.13 Toate regulile de deductie de mai sus sunt corecte pentru congruenta semantica ≡Γ.

Demonstratie: Din lectia privind logica ecuationala stim ca regulile de deductie R, S, T, CΣ si SubΓ

sunt corecte.Deoarece CΣ si R implica CAΣ deducem ca CAΣ este corecta.Deoarece SubΓ, S si T implica RewΓ rezulta ca RewΓ este corecta.Deoarece RewΓ si CAΣ implica SRewΓ deducem ca SRewΓ este corecta. �

Corolar 2.3.14∗

=⇒ ⊆ ≡Γ. (Corectitudinea rescrierii pentru congruenta semantica)

Rescrierea nu este completa pentru congruenta semantica deoarece SRewΓ nu capteaza ıntreaga fortaa simetriei.

2.4 Relatia de ıntalnire, Forme normale

2.4.1 Confluenta

Definitia 2.4.1 O relatie ≻ pe o multime A se numeste confluenta daca

(∀a, b, c ∈ A){[a ≻ b si a ≻ c]⇒ (∃d ∈ A)[b ≻ d si c ≻ d]}. �

Propozitie 2.4.2 Daca ≻ este o preordine confluenta pe multimea A, atunci relatia ↓ definita prin

a ↓ b⇐⇒ (∃c ∈ A)a ≻ c si b ≻ c

si denumita “ıntalnire prin ≻” este cea mai mica echivalenta pe A care include ≻.

Demonstratie:

• Deoarece din a ≻ a si a ≻ a deducem a ↓ a. Deci relatia ↓ ese reflexiva.

• Simetria este evidenta.

• Probam tranzitivitatea. Fie a ↓ b si b ↓ c. Observam ca exista d, e ∈ A astfel ıncat a ≻ d, b ≻ d,b ≻ e si c ≻ e. Din confluenta rezulta existenta lui f ∈ A astfel ıncat d ≻ f si e ≻ f . Rezulta printranzitivitate ca a ≻ f si c ≻ f , deci a ↓ c.

• Pentru a dovedi ca ≻ ⊆ ↓, presupunand ca a ≻ b si observand ca b ≻ b deducem a ↓ b

• Fie ≡ o relatie de echivalenta pe A care include ≻. Probam ca ≡ include ↓. Presupunand ca a ↓ brezulta existenta lui c ∈ A astfel ıncat a ≻ c si b ≻ c. Deducem a ≡ c si b ≡ c, deci a ≡ b. �

Observatia 2.4.3 Daca ≻ este o preordine confluenta si compatibila pe o Σ-algebra multisortata, atunci↓ este o congruenta.

Page 58: Programare Logica

58 CHAPTER 2. RESCRIERI

Demonstratie: Fie σ ∈ Σs1s2...sn,s si ai ↓ bi pentru orice i ∈ [n]. Pentru orice i ∈ [n], exista ci astfelıncat ai ≻ ci si bi ≻ ci, prin urmare cu CΣ deducem

Aσ(a1, a2, . . . , an) ≻ Aσ(c1, c2, . . . , cn) si Aσ(b1, b2, . . . , bn) ≻ Aσ(c1, c2, . . . , cn).

Deci Aσ(a1, a2, . . . , an) ↓ Aσ(b1, b2, . . . , bn). �

2.4.2 Completitudinea ıntalnirii prin recriere

Prin definitie, pentru orice s ∈ S si orice a, d ∈ As:

a ↓Γ d daca si numai daca exista c ∈ As astfel ıncat a∗⇒Γ c si d

∗⇒Γ c.

Relatia ↓Γ este denumita ıntalnire prin rescriere.

Propozitie 2.4.4 ↓Γ ⊆ ≡Γ.

Demonstratie: Din a ↓Γ d deducem existenta lui c astfel ıncat: a∗⇒Γ c si d

∗⇒Γ c. Din aceasta utilizand

corectitudinea rescrierii fata de congruenta semantica deducem ca a ≡Γ c si d ≡Γ c deci a ≡Γ d. �

Aceasta dovedeste corectitudinea lui ↓Γ ın raport cu congruenta semantica. Pentru a demonstra si com-pletitudinea sa, adica incluziunea inversa, avem nevoie sa presupunem ca

∗⇒Γ este confluenta. Folosind

observatia 2.4.3 deducem ca ↓Γ este o congruenta.

Lema 2.4.5 Daca∗⇒Γ este confluenta, atunci congruenta ↓Γ este ınchisa la substitutie.

Demonstratie: Fie (∀X) l◦=s r if H ∈ Γ si fie h : TΣ(X) −→ A un morfism pentru care ht(u) ↓Γ ht(v)

pentru orice u◦=t v ∈ H. Pentru orice u

◦=t v ∈ H exista auv ∈ At cu proprietatile ht(u)

∗⇒Γ auv si

ht(v)∗⇒Γ auv. Deoarece

∗⇒Γ este ınchisa la RewΓ deducem ca hs(l)

∗⇒Γ hs(r). Prin urmare hs(l) ↓Γ hs(r).

Fie AΓ factorizarea lui A prin ↓Γ si fie τ : A −→ AΓ morfismul de factorizare. Doarece congruenta ↓Γeste ınchisa la substitutie deducem din propozitia 1.8.8 ca AΓ |= Γ.

Teorema 2.4.6 Daca∗⇒Γ este confluenta, atunci ↓Γ = ≡Γ.

Demonstratie: Folosind propozitia 2.4.4 avem de demonstrat doar ≡Γ ⊆ ↓Γ.

Fie a ≡Γ c. Deoarece AΓ |= Γ si τ : A −→ AΓ este morfism rezulta ca τs(a) = τs(c) adica a ↓Γ c.In concluzie ↓Γ = ≡Γ ceea ce demonstreaza completitudinea lui ↓Γ. �

Din punct de vedere practic aceasta teorema arata ca demonstrarea propozitiei a ≡Γ c poate fi redusa la ademonstra a ↓Γ c daca rescrierea este confluenta. Prin urmare principala problema devine

”poate o masina sa demonstreze ca a ↓Γ c ?”

2.4.3 Forme normale

La multimi

Presupunem ın continuare ca ≻ este o preordine pe multimea A.

Definitia 2.4.7 Elementul n ∈ A se numeste o forma normala pentru relatia ≻ pe multimea A daca

(∀b ∈ A)(n ≻ b⇒ n = b).

Page 59: Programare Logica

2.4. RELATIA DE INTALNIRE, FORME NORMALE 59

In limbajul teoriei multimilor partial ordonate, o forma normala este numita element minimal. Unele textefolosesc “ireductibil” sau forma “canonica” ın loc de forma “normala”.

Fie N multimea elementelor din A care sunt forme normale pentru ≻. Presupunem axioma FormeiNormale unice

FN! (∀a ∈ A)(∃! fn(a) ∈ N)a ≻ fn(a).

Observatia 2.4.8 Daca a ≻ d, atunci fn(a) = fn(d).

Demonstratie: Din ipoteza si d ≻ fn(d) deducem a ≻ fn(d), deci din unicitatea formei normale a lui adeducem fn(a) = fn(d).

Observatia 2.4.9 Axioma FN! implica ≻ este confluenta.

Demonstratie: Presupunem a ≻ d si a ≻ c. Deducem fn(a) = fn(d) = fn(c), deci d ≻ fn(d) sic ≻ fn(d).

Observatia 2.4.10 Functia fn : A −→ N este surjectiva si

a ↓ d⇔ fn(a) = fn(d).

Demonstratie: Deoarece pentru orice element n ın forma normala n = fn(n) rezulta surjectivitateafunctiei fn.

Presupunem fn(a) = fn(d). Deoarece a ≻ fn(a) si d ≻ fn(a) deducem a ↓ d.Presupunem a ↓ d. Fie c ∈ A astfel ıncat a ≻ c si d ≻ c. Deducem fn(a) = fn(c) si fn(d) = fn(c),

deci fn(a) = fn(d). �

Din punct de vedere practic aceasta observatie arata ca daca rescrierea are proprietatea FN! demonstrarealui a ↓Γ d este echivalenta cu egalitatea formelor normale pentru rescriere ale lui a si d.

Remarcam ca N este un sistem complect si independent de reprezentanti pentru ↓. Independentınseamna ca nu exista doua forme normale echivalente si diferite, adica n ↓ n′ implica n = n′, oricare arfi formele normale n si n′. Complect ınseamna ca orice element este echivalent cu o forma normala, adicapentru orice a ∈ A exista o forma normala n ∈ N cu proprietatea a ↓ n.

Observatia 2.4.11 Exista o unica bijectie b : A/↓ −→ N astfel ıncat ρ; b = fn unde ρ : A −→ A/↓ estefunctia naturala de factorizare.

Demonstratie: Din proprietatea 1.6.6 de universalitate a multimii cat rezulta existenta si unicitateafunctiei b : A/↓ −→ N cu proprietatea ρ; b = fn.

Probam ca functia b este surjectiva. Fie n ∈ N . Deoarece fn(n) = n deducem b(ρ(n)) = n, deci functiab este surjectiva.

Probam ca este injectiva. Presupunem ca b(ρ(a)) = b(ρ(c)). Rezulta ca fn(a) = fn(c). Prin urmarea ↓ c. Deci ρ(a) = ρ(c). �

La Algebre

In Σ-algebra A = (As, Aσ) presupunem ca ≻ este o preordine multi-sortata compatibila cu proprietateaFN!.Σ-algebra N = (Ns, Nσ) a formelor normale este definia prin:

Ns = {a ∈ As : a este forma normala } pentru s ∈ S si

Nσ(n1, n2, . . . , nk) = fn(Aσ(n1, n2, . . . , nk)) pentru orice σ ∈ Σs1s2...sk,s sini ∈ Nsi pentru 1 ≤ i ≤ k.

Page 60: Programare Logica

60 CHAPTER 2. RESCRIERI

Observatia 2.4.12 fn : A −→ N este un Σ-morfism.

Demonstratie: Fie σ ∈ Σs1s2...sn,s si ai ∈ Asi . Deoarece ai ≻ fnsi(ai) pentru orice i ∈ [n] deducem ca

Aσ(a1, a2, . . . , an) ≻ Aσ(fns1(a1), fns2(a2), . . . , fnsn(an)),

prin urmare

fns(Aσ(a1, a2, . . . , an)) = fns(Aσ(fns1(a1), fns2(a2), . . . , fnsn(an))) == Nσ(fns1(a1), fns2(a2), . . . , fnsn(an)). �

Propozitie 2.4.13 Daca ın Σ-algebra A = (As, Aσ), ≻ este o preordine multi-sortata compatibila cuoperatiile algebrei si cu proprietatea FN!, atunci algebrele A/↓ si N sunt izomorfe.

Demonstratie: Notam ca mai sus cu ρ : A −→ A morfismul de factorizare. Din proprietatea deuniversalitate a algebrei cat 1.6.7 rezulta existenta si unicitatea morfismului h : A/↓ −→ N cu proprietateaρ;h = fn. Ca ın cazul multimilor rezulta ca morfismul h este bijectiv. Din propozitia 1.1.8 rezulta ca heste izomorfism.

Teorema 2.4.14 Daca∗⇒Γ satisface axioma FN!, atunci algebra formelor normale este isomorfa cu AΓ.

2.4.4 Relatii canonice

In practica pentru a verifica ca∗⇒Γ satisface axioma FN!, preferam uneori sa verificam ca satisface pro-

prietatile de confluenta si terminare.

Definitia 2.4.15 Spunem ca ≻ are proprietatea de terminare daca nu exista siruri {an} de elemente dinA astfel ıncat pentru orice numar natural n sa avem an ≻ an+1 si an 6= an+1. �

Remarcam ca terminarea, concept venit din informatica, coincide cu buna fondare, concept provenit dinlumea relatiilor sau din teoria axiomatica a multimilor.

Observatia 2.4.16 Daca ≻ are proprietatea de terminare, atunci pentru orice element a din A exista unelement ın forma normala n ∈ N cu proprietatea a ≻ n.

Demonstratie: Rationand prin absurd, a nu este ın forma normala; prin urmare exista a1 ∈ A cuproprietatile a ≻ a1 si a 6= a1. Rationand ın continuare prin absurd, a1 nu este ın forma normala; prinurmare exista a2 ∈ A cu proprietatile a1 ≻ a2 si a1 6= a2. Continuand acest rationament prin inductieputem construi un sir de elemente care contrazice proprietatea de terminare. �

Definitia 2.4.17 Daca preordinea ≻ este confluenta si are proprietatea de terminare, atunci < A,≻> senumeste canonica. �

Propozitie 2.4.18 Daca < A,≻> este canonica atunci axioma FN! este verificata.

Demonstratie: Unicitatea va rezulta din confluenta. Presupunand ca n′ si n′′ sunt doua elemente ınforma normala cu proprietatea a ≻ n′ si a ≻ n” din confluenta exista d ∈ A astfel ıncat n′ ≻ d si n” ≻ d.Deoarece n′ si n” ın sunt forma normala deducem ca n′ = d si n” = d, deci n′ = n”. �

Din punct de vedere practic terminarea este necesara pentru a opri executia calculatorului iar confluentaeste necesara pentru completitudine. Aceste proprietati implica FN!. Pentru a demonstra ca a ≡Γ c, adicaa ↓Γ c, este suficient conform observatiei 2.4.10 sa rescriem a si c in forma lor normala fn(a) si fn(c)pentru ca apoi sa verificam egalitatea fn(a) = fn(c).

Page 61: Programare Logica

2.5. RESCRIERE IN SUBTERMENI 61

2.5 RESCRIERE IN SUBTERMENI

Am vazut ca rescrierea canonica da o metoda de demonstrare automata a propozitiilor valide. Urmatoareaproblema consta ın a arata cum regulile de deductie pentru rescriere pot fi utilizate ın mod practic.

Teoremele din aceasta lectie explica modul ın care se fac rescrierile ın limbajele de programare decla-rativa.

2.5.1 Completitudinea rescrierii ın subtermeni

Propozitiile 2.3.11 si 2.3.12 ne asigura ca rescrierea este cea mai mica preordine ınchisa la SRewΓ com-patibila cu toate operatiile din A. Teorema urmatoare ne spune ceva mai mult.

Teorema 2.5.1 Rescrierea este cea mai mica preordine din A ınchisa la SRewΓ.

Demonstratie: Fie RΓ cea mai mica relatie pe A care este ınchisa la R, T si SRewΓ. Din definitia luiRΓ deducem ca RΓ ⊆

∗⇒Γ.

Pentru a demonstra incluziunea contrara este suficient sa aratam ca RΓ este ınchisa ın CΣ.

Dar RΓ este tranzitiva si reflexiva, deci este suficient sa aratam ca RΓ este ınchisa la CAΣ, adicapentru fiecare σ ∈ Σs1...sn,s′ si ai ∈ Asi ca aRΓ d implica

Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)RΓAσ(a1, . . . , ai−1, d, ai+1, . . . , an).

Demonstram ca multimea

D = {aRΓ d | σ ∈ Σs1s2...sn,s; (∀aj ∈ Asj)Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)RΓAσ(a1, . . . , ai−1, d, ai+1, . . . , an)}

este ınchisa la R, T si SRewΓ.

Reflexivitatea lui D rezulta din reflexivitatea lui RΓ.

Presupunem ca (a, u) si (u, d) sunt ın D. Folosind tranzitivitatea lui RΓ din aRΓ u si uRΓ d deducemaRΓ d si din Aσ(a1, . . . , ai−1, a, ai+1, . . . , an) RΓ Aσ(a1, . . . , ai−1, u, ai+1, . . . , an) siAσ(a1, . . . , ai−1, u, ai+1, . . . , an) RΓ Aσ(a1, . . . , ai−1, d, ai+1, . . . , an) deducemAσ(a1, . . . , ai1 , a, ai+1, . . . , an)RΓAσ(a1, . . . , ai−1, d, ai+1, . . . , an). Prin urmare (a, d) ∈ D. Deci D estetranzitiva.

Probam ca D este ınchisa la SRewΓ. Fie (∀X)l◦=s r if H ∈ Γ, un morfism h : TΣ(X) → A cu

proprietatea ca pentru orice u◦=t v ∈ H. exista auv ∈ At astfel ıncat (ht(u), auv) ∈ D si (ht(v), auv) ∈ D

Pentru orice context c ∈ TΣ(A ∪ {•})s′ trebuie aratat ca (c[hs(l)], c[hs(r)]) ∈ D.

Deoarece RΓ este ınchisa la SRewΓ din ht(u)RΓ auv si ht(v)RΓ auv pentru orice u◦=t v ∈ H deducem

c[hs(l)]RΓ c[hs(r)] si c′[hs(l)]RΓ c′[hs(r)]

unde c′ = σ(a1, . . . , ai−1, c, ai+1, . . . , an) este un context.Din c′[hs(l)] = Aσ(a1, . . . , ai−1, c[hs(l)], ai+1 . . . , an) si c′[hs(r)] = Aσ(a1, . . . , ai−1, c[hs(r)], ai+1, . . . , an)obtinem

Aσ(a1, . . . , ai−1, c[hs(l)], ai+1, . . . , an)RΓAσ(a1, . . . , ai−1, c[hs(r)], ai+1, . . . , an).

Deci (c[hs(l)], c[hs(r)]) ∈ D.

In concluzie RΓ =∗⇒Γ. �

Page 62: Programare Logica

62 CHAPTER 2. RESCRIERI

2.5.2 Rescriere ıntr-un pas

Fie c ın TΣ(A ∪ {•})s′ un context. Fie (∀X)l◦=s r if H ∈ Γ si fie h : TΣ(X) → A un morfism astfel

ıncat pentru orice u◦=t v ∈ H exista auv ∈ At cu proprietatile ht(u)

∗⇒Γ auv si ht(v)

∗⇒Γ auv. Daca

c[hs(l)] 6= c[hs(r)] spunem ca c[hs(l)] se rescrie ıntr-un pas ın c[hs(r)] si scriem

c[hs(l)]⇒ c[hs(r)].

Propozitie 2.5.2 Rescrierea este ınchiderea reflexiva si tranzitiva a rescrierii ıntr-un pas.

Demonstratie: Fie∗⇒ ınchiderea reflexiv-tranzitiva a rescrierii ıntr-un pas.

Deoarece ⇒⊆∗⇒Γ si

∗⇒Γ este preordine deducem incluziunea

∗⇒⊆

∗⇒Γ.

Reciproc, deoarece∗⇒ este reflexiva si tranzitiva este suficient sa aratam ca

∗⇒ este ınchisa la SRewΓ.

Fie (∀X) l◦=s r if H ∈ Γ, h : TΣ(X)→ A un morfism astfel ıncat pentru orice u

◦=t v ∈ H exista auv ∈ At

cu proprietatile ht(u)∗⇒ auv si ht(v)

∗⇒ auv si c un context din A[z]. Din incluziunea deja demonstrata

rezulta ca pentru orice u◦=t v ∈ H exista auv ∈ At cu proprietatile ht(u)

∗⇒Γ auv si ht(v)

∗⇒Γ auv. Avem

cazurile:

1. Daca c[h(l)] = c[h(r)] deducem din reflexivitatea lui∗⇒ ca c[h(l)]

∗⇒ c[h(r)].

2. Altfel, daca c[h(l)] 6= c[h(r)], atunci c[h(l)] ⇒ c[h(r)], deci c[h(l)]∗⇒ c[h(r)] deoarece rescrierea

ıntr-un pas este inclusa ın ınchiderea reflexiva si tranzitiva a rescrierii ıntr-un pas. �

In continuare rescrierea ıntr-un pas va fi notata cu ⇒Γ sau ⇒ .

2.5.3 Consideratii metodologice

Pentru a demonstra ca a ≡Γ b este suficient, ın ipotezele de mai sus, sa aratam ca fns(a) = fns(b) siaceasta se face prin rescrierea lui a, respectiv a lui b ın formele lor normale, pentru a verifica ca sunt egale.

Fie a ∈ As elementul de rescris. Se cauta

(∀X)l◦=s r if H ın Γ, h : TΣ(X) −→ A si un context c in A[z] astfel ıncat c[hs(l)] = a.

Pentru a face rescrierea este suficient sa aratam ca ht(u) ↓Γ ht(v) pentru orice u◦=t v ∈ H. Se ıntrerupe

rescrierea principala pentru a face acesta verificare si ın caz de reusita se rescrie a ın c[hs(r)]. In caz denereusita se continua cautarile pentru a reajunge ın situatia de mai sus. Intrucat ın timpul verificarii uneiadintre conditiile ht(u) ↓Γ ht(v) se rescriu atat ht(u) cat si ht(v) ın forma lor normala, fenomenul de maisus se poate repeta se apeleaza la mecanismul numit backtracking.

Daca Γ contine doar ecuatii neconditionate, rescrierea ıntr-un singur pas nu depinde de alte rescrieri, caın cazul general. Acest fapt explica de ce, ın acest caz metoda backtracking nu este folosita ın implementarearescrierii.

Remarcam diferenta esentiala dintre o multime Γ de axiome si un program. Un program este o multimede axiome care verifica niste conditii si care sunt scrise respectand sintaxa unui limbaj de programaredeclarativa.

Am pus deja ın evidenta niste conditii suficiente pe care trebuie sa le ındeplineasca o multime Γ deaxiome pentru a deveni program: rescrierea generata trebuie sa fie confluenta si sa aiba proprietatea determinare.

Practic, de exemplu, ıntro ecuatie din Γ este interzis ca ın membrul drept sa apara o variabila care nuapare ın membrul stang, deoarece ın caz contrar rescrierea nu are proprietatea de terminare.

Exemplu Signatura are doua sorturi nat si bool; trei constante true, false de sort bool si 0 de sort nat;doua simboluri de operatii s : nat −→ nat si ≤: nat nat −→ bool. Axiomele acceptate cu x si y variabilede sort nat sunt

Page 63: Programare Logica

2.6. UNIFICARE 63

1. 0 ≤ x = true 2. s(x) ≤ s(y) = true if x ≤ y = true 3. s(x) ≤ 0 = false

GFED@ABCnat

0 ��

s

LL≤ // ONMLHIJKbool

true��

false__

Vrem sa rescriem s(s(0)) ≤ s(s(z)). Se poate aplica numai axioma 2 pentru x = s(0) si y = s(z).

Inainte de aceasta trebuie sa rescriem s(0) ≤ s(z). Se poate aplica numai axioma 2 pentru x = 0 si y = z.

Inainte de aceasta rescriem 0 ≤ z ⇒Γ true cu axioma 1.

Deoarece am obtinut true putem rescrie s(0) ≤ s(z)⇒Γ true.Deoarece prin rescrierea lui s(0) ≤ s(z) am obtinut true putem rescrie s(s(0)) ≤ s(s(z))⇒Γ true.

2.6 UNIFICARE

In semantica operationala a limbajelor de specificatie rescrierea joaca un rol primordial. Pentru a rescrieun subtermen a ∈ TΣ(Y ) al termenului de rescris cu ajutorul unei reguli se pune problema identificarii luia cu imaginea membrului stang l ∈ TΣ(X) al unei reguli din Γ printr-o substitutie(morfism) de la TΣ(X)la TΣ(Y ). Aceasta problema de potrivire(matching ın engleza) se poate rezolva cu ajutorul algoritmului deunificare. Mai precis se cauta a se unifica l cu a ın care toate variabilele din a sunt considerate constante.Daca ın l si a exista variabile comune, aceste variabile comune pot fi ınlocuite ın axioma utilizata din Γprin variabile noi. Acest fapt nu restrange generalitatea deoarece variabilele din axiome sunt cuantificateuniversal fapt ce permite redenumirea lor.

Toate algebrele sunt presupuse libere. Prin substitutie vom ıntelege un morfism ıntre doua algebrelibere.

Problema unificarii. Se dau un numar finit de egalitatii formale li◦=si ri si se cere gasirea unui

unificator, adica a unei substitutii u cu proprietatea u(li) = u(ri) pentru orice i.

De fapt multimea finita de egalitatii formale este privita ca un sistem de ecuatii. Si de aici poate provenidenumirea de ecuatie folosita ca un sinonim pentru egalitatile formale. Acest subcapitol descrie modul derezolvare a unui astfel de sistem chiar ın algebra libera din care provin termenii ecuatiilor. Cuvantulunificator ınseamna de fapt solutie ın algebra libera din care provin termenii ecuatiilor.

Algoritmul prezentat aici este ales pentru simplcitatea sa. Mentionam existenta unor algoritmi maieficienti.

2.6.1 Algoritmul de unificare

Vom lucra cu doua liste: solutie si de rezolvat. Initial lista solutie este vida si lista de rezolvat continemultimea ecuatiilor de unificat.

Algoritmul de unificare consta ın executia nedeterminista a urmatorilor trei pasi.

1. Scoate. Se scoate din lista de rezolvat orice ecuatie de forma t◦= t.

2. Descompune. Orice ecuatie din lista de rezolvat de forma

f(a1, a2, . . . , an)◦= f(b1, b2, . . . , bn)

se ınlocuieste cu ecuatiile a1◦= b1, a2

◦= b2, ..., an

◦= bn,

Page 64: Programare Logica

64 CHAPTER 2. RESCRIERI

3. Elimina. Orice ecuatie din lista de rezolvat, de forma x◦= t sau t

◦= x ın care x este o variabila care

nu apare ın t este mutata sub forma x◦= t ın lista solutie. In toate celelalte ecuatii x se substitue cu

t.

Algoritmul este oprit cu concluzia inexistentei unui unificator ın urmatoarele doua cazuri.

1) Existenta ın lista de rezolvat a unei ecuatii de forma f(a1, a2, . . . , an)◦= g(b1, b2, . . . , bm) cu f 6= g,

2) Existenta ın lista de rezolvat a unei ecuatii de forma x◦= t sau t

◦= x ın care x este o variabila care

apare ın t si este diferita de t.

Oprirea normala a algoritmului se face prin epuizarea listei de rezolvat, caz ın care, asa cum vom probamai jos, lista solutie ne furnizeaza cel mai general unificator.

2.6.2 Terminare

Terminarea algoritmului este probata folosind ın ordine lexicografica doua criterii exprimate prin numerenaturale:

1. numarul variabilelor care apar ın lista de rezolvat, care in functie de pasul algoritmului utilizat areurmatoarea comportare

(a) Scoate: ramane egal sau se micsoreaza,

(b) Descompune: ramane egal,

(c) Elimina: se micsoreaza

2. numarul aparitiilor simbolurilor(semnelor) care apar ın lista de rezolvat, care se micsoreaza ın celedoua cazuri care ne mai intereseaza Scoate si Descompune.

2.6.3 Corectitudine

Corectitudinea algoritmului se bazeaza pe demonstrarea faptului ca multimea unificatorilor pentru ecuatiiledin reuniunea celor doua liste este un invariant, adica nu se modifica prin aplicarea celor trei pasi aialgoritmului.

Deoarece pentru pasul Scoate afirmatia este evidenta ne referim doar la ceilalti pasi.

Descompune: Observam ca pentru orice substitutie s egaliatea

s(f(a1, a2, . . . , an))◦= s(f(b1, b2, . . . , bn))

este echivalenta cu

f(s(a1), s(a2), . . . , s(an))◦= f(s(b1), s(b2), . . . , s(bn))

adica cu s(ai)◦= s(bi) pentru orice i ∈ [n].

Elimina: Observam ca orice unificator u pentru ecuatiile din reuniunea celor doua liste atat ınaintede aplicarea pasului cat si dupa aceasta trebuie sa satisfaca egalitatea u(x) = u(t). Pentru o substitutie scu proprietatea s(x) = s(t) observam ca

x← t; s = s

deoarece (x ← t; s)(x) = s(t) = s(x) si (x ← t; s)(y) = s(y) pentru orice alta variabila y. Prin urmarepentru o astfel de substitutie

s(l) = s(r) daca si numai daca s((x← t)(l)) = s((x← t)(r))

ceea ce arata ca un unificator pentru ecuatiile din reuniunea celor doua liste dinainte de aplicarea pasuluieste unificator si pentru ecuatiile din reuniunea celor doua liste de dupa aplicarea pasului si reciproc.

Page 65: Programare Logica

2.7. LOCAL CONFLUENTA 65

Algoritmul este oprit cu concluzia inexistentei unui unificator deoarece ın cele doua situatii mentionatese constata ca multimea unificatorilor este vida.

Sa observam ca variabilele care apar ın membrul stang al ecuatiilor din lista solutie sunt diferite douacate doua si nu mai apar ın nici una dintre celelalte ecuatii din cele doua liste.

Faptul poate fi dovedit prin inductie.Mentionam ca aplicarea primilor doi pasi ai algoritmului nu modifica lista solutie si nu produc aparitii

noi de variabile ın cele doua liste.Fie x

◦= t ecuatia introdusa ın lista solutie prin aplicarea pasului Elimina. Deoarece variabilele din

membrul stang ai listei solutie precedenta nu apar ın celelalte ecuatii rezulta ca variabila x este diferita decelelalte variabile care apar ın membrul stang al ecuatiilor din lista solutie. Prin urmare, variabilele dinmembrul stang al noii liste solutie sunt diferite ıntre ele.

In plus prin substituirea lui x cu t ın celelalte ecuatii variabila x dispare din ele deoarece x nu apareın t. Deoarece nici x si nici variabilele din membrul stang ai listei solutie precedenta nu apar ın t rezultaca dupa efectuarea substitutiei lui x cu t variabilele din membrul stang ai listei solutie nu apar ın restulecuatiilor.

Sa presupunem ca algoritmul s-a terminat prin epuizarea listei de rezolvat. Sa notam cu k numarulecuatiilor din lista solutie si cu xi

◦= ti pentru i ∈ [k] ecuatiile din ea.

Fie U substitutia definita prin

U(xi) = ti pentru orice i ∈ [k].

Definitia este corecta deoarece variabilele xi sunt distincte. Deoarece variabilele xi nu apar ın termenii tideducem ca U(ti) = ti, prin urmare U(ti) = U(xi), deci U este un unificator. Vom dovedi ca este cel maigeneral.

Observam ca pentru orice substitutie s compunerea U ; s este tot un unificator. Vom arata ca orice altunificator este de aceasta forma. Fie u un alt unificator, adica u(xi) = u(ti) pentru orice i ∈ [k]. Observamca U ;u = u, caci u(U(xi)) = u(ti) = u(xi) pentru orice i ∈ [k] si u(U(y)) = u(y) pentru orice alta variabilay.

Deci U este cel mai general unificator, deoarece orice alt unificator poate fi exprimat ca o compunerea lui U cu o substitutie. In plus observam ca el este idempotent deoarece U ;U = U .

Notand V = X − {x1, x2, . . . , xk} observam ca V ⊆ X si ca

U : TΣ(X) −→ TΣ(V )

este un Σ–morfism cu proprietatea U(v) = v pentru orice v ∈ V .In cele ce urmeaza vom scrie CGU ca o prescurtare pentru Cel mai General Unificator.

2.7 LOCAL CONFLUENTA

Daca terminarea unui program poate fi chiar si o problema deschisa, problema confluentei are solutie,adica se pot scrie programe care pentru o multime data de reguli Γ sa constate, ın ipoteza terminarii, dacaΓ-rescrierea este confluenta. De fapt se probeaza local confluenta care ımpreuna cu terminarea implicaconfluenta.

Reamintim ca relatia de rescriere este confluenta daca

(∀a, b, c) [(a∗

=⇒ b si a∗

=⇒ c) implica (∃d) (b∗

=⇒ d si c∗

=⇒ d)].

Definitia 2.7.1 Spunem ca rescrierea este local confluenta daca

(∀a, b, c) [(a =⇒ b si a =⇒ c) implica (∃d) (b∗

=⇒ d si c∗

=⇒ d)].

Page 66: Programare Logica

66 CHAPTER 2. RESCRIERI

Reamintim ca rescrierea are proprietatea de terminare, daca nu exista siruri {an}n cu proprietateaan =⇒ an+1 pentru orice n numar natural.

Propozitie 2.7.2 Daca rescrierea este local confluenta si are proprietatea de terminare atunci rescriereaeste confluenta.

Demonstratie: Reamintim ca proprietatea de terminare ne aisgura pentru orice a existenta unei formenormale n cu proprietatea a

∗=⇒ n. Vom demonstra unicitatea formei normale fapt ce implica confluenta.

Notam cu N multimea formelor normale. Fie M multimea elementelor care se pot rescrie ın cel putin douaforme normale.

M = {a : (∃n1, n2 ∈ N)a∗

=⇒ n1, a∗

=⇒ n2, n1 6= n2}.

Probam ca a ∈M implica (∃b ∈M)a =⇒ b.

Deoarece a ∈M exista n1, n2 ∈ N cu proprietatile a∗

=⇒ n1, a∗

=⇒ n2 si n1 6= n2. Daca a ar fi o formanormala, atunci a = n1 si a = n2 ceea ce contrazice n1 6= n2.

Deoarece a nu este forma normala exista elemntul b cu proprietatile a =⇒ b si b∗

=⇒ n1. La fel existac cu proprietatile a =⇒ c si c

∗=⇒ n2. Deoarece rescrierea este local confluenta exista elementul d cu

proprietatile b∗

=⇒ d si c∗

=⇒ d. Deoarece terminarea implica existenta formei normale deducem ∃n ∈ Ncu proprietatea d

∗=⇒ n.

Deoarece n1 6= n2 deducem n 6= n1 sau n 6= n2.Daca n 6= n1 deoarece b

∗=⇒ n1 si b

∗=⇒ n decucem b ∈ M. Daca n 6= n2 deoarece c

∗=⇒ n si c

∗=⇒ n2

deducem c ∈M.

Probam unicitatea formei normale. Rationand prin absurd presupunem ca M este nevida. Plecandde la a1 ∈ M aplicand observatia de mai sus deducem existenta lui a2 ∈ M cu proprietatea a1 =⇒ a2.Repetand rationamentul printr-o inductie deducem existenta unui sir {an}n cu proprietatea an =⇒ an+1

pentru orice n natural. Deci rescrierea nu are proprietatea de terminare, ın contradictie cu ipoteza. �

2.8 RESCRIERE MODULO ECUATII

Motivare : Comutativitatea folosita ca regula de rescriere conduce la pierderea proprietatii de terminare.Deoarece unele ecuatii, de exemplu comutativitatea, nu pot fi folosite ca axiome pentru rescriere, s-a

gasit o alta cale pentru utilizarea acestora si anume rescrierea modulo ecuatii. Multimea E reprezintaecuatiile neconditionate care ın loc de a fi folosite ca axiome vor fi utilizate pentru rescrierea moduloecuatii.

2.8.1 Motivare semantica

Fie E o multime de Σ–ecuatii si Γ o multime de Σ–ecuatii conditionate.

Propozitie 2.8.1 Fie m : A −→ B un morfism din categoria Σ–algebrelor cu toate componentele injective.Daca B |= Γ, atunci A |= Γ.

Demonstratie: Fie (∀X)l◦=s r if H ∈ Γ. Fie h : TΣ(X) −→ A un morfism astfel ıncat ht(u) = ht(v)

pentru orice u◦=t v ∈ H. Atunci h;m : TΣ(X) −→ B este un morfism si

(h;m)t(u) = mt(ht(u)) = mt(ht(v)) = (h;m)t(v)

pentru orice u◦=t v ∈ H. Deoarece B satisface Γ rezulta ca (h;m)s(l) = (h;m)s(r), adica ms(hs(l)) =

ms(hs(r)). Dar componenta ms a morfismului m este injectiva, deci hs(l) = hs(r).

Asadar A satisface orice (∀X)l◦=s r if H ∈ Γ, adica A |= Γ. �

Corolar 2.8.2 Orice subalgebra a unei Γ–algebre este Γ–algebra.

Page 67: Programare Logica

2.8. RESCRIERE MODULO ECUATII 67

Propozitie 2.8.3 Fie e : A −→ B un morfism din categoria Σ–algebrelor cu toate componentele surjectivesi E o multime de ecuatii neconditionate. Daca A |= E, atunci B |= E.

Demonstratie: Fie (∀X)l◦=s r ∈ E si h : TΣ(X) −→ B un morfism. Deoarece Σ-algebra libera TΣ(X)

este proiectiva, conform propozitiei 1.7.2, rezulta ca exista un morfism g : TΣ(X) −→ A astfel ıncat g; e = h.Atunci

A |= (∀X)l◦=s r ∈ E ⇒ gs(l) = gs(r)⇒ es(gs(l)) = es(gs(r))⇒ hs(l) = hs(r).

Deci B satisface orice ecuatie (∀X)l◦=s r din E, adica B satisface E. �

Reamintim ca AΓ = A/≡Γ. Pentru a,c ∈ As reamintim deasemenea ca a ≡Γ c daca si numai daca

hs(a) = hs(c) pentru orice h : A −→ B |= Γ.Notam AE,Γ = (AE)Γ, iar cu ρ : A −→ AE si j : AE −→ AE,Γ morfismele canonice de factorizare.

Observatia 2.8.4 Algebrele AΓ∪E si AE,Γ sunt izomorfe.

Demonstratie: Ideea demonstratiei este de a arata caAE,Γ are proprietatile care caracterizeaza abstractiede un izomorfism Σ–algebra AΓ∪E .

Evident AE,Γ |= Γ. Deoarece morfismul j : AE −→ AE,Γ are toate componentele surjective si AE |= Erezulta din propozitia 2.8.3 ca AE,Γ |= E, deci AE,Γ |= Γ ∪ E.

Pentru restul demonstratiei puteti utiliza figura 2.1.

A -ρAE -j

AE,Γ

SS

SS

SS

SSw

��

��

��

��/B?

h′h′′h

Figure 2.1:

Fie B o Σ–algebra cu proprietatea B |= Γ ∪ E. Deoarece B |= E, din proprietatea de universalitatea algebrei AE deducem ca exista un unic morfism h′ : AE −→ B astfel ıncat ρ;h′ = h. Deoarece B |= Γrezulta ca exista un unic morfism h′′ : AE,Γ −→ B astfel ıncat j;h′′ = h′. Atunci (ρ; j);h′′ = h.

Unicitatea lui h′′ rezulta din surjectivitatea lui ρ; j. �

Propozitie 2.8.5 a ≡Γ∪E c ⇔ ρs(a) ≡Γ ρs(c) pentru oricare a, c ∈ As.

Demonstratie: Fie t : A −→ AΓ∪E morfismul canonic de factorizare si i : AE,Γ −→ AΓ∪E uniculizomorfism cu proprietatea ρ; j; i = t.

Presupunem ρs(a) ≡Γ ρs(c). Deoarece js(ρs(a)) = js(ρs(c)) aplicand izomorfismul i si tinand cont deegalitatea de mai sus deducem ts(a) = ts(c) deci a ≡Γ∪E c.

Reciproc, presupunem a ≡Γ∪E c. Deoarece ts(a) = ts(c) aplicand inversul izomorfismului i si tinandcont de egalitatea ρ; j = t; i−1 deducem js(ρs(a)) = js(ρs(c)) deci ρs(a) ≡Γ ρs(c). �

Propozitia 2.8.5 ne da o metoda de a evita ecuatiile E care nu pot fi folosite ca axiome ın rescriere.Presupunem ca avem de demonstrat a ≡Γ∪E c ın A. Propozitia 2.8.5 ne spune ca ın loc sa demonstram

acest lucru, putem arata ca ρs(a) ≡Γ ρs(b) ın AE. Daca am dorii sa folosim metoda data ın lectiileanterioare, pentru a o demonstra vom ajunge la rescrieri ın AE.

Page 68: Programare Logica

68 CHAPTER 2. RESCRIERI

2.8.2 Rescrierea modulo o relatie de echivalenta

Rescrierea ın AE se numeste rescriere de clase. Deoarece clasele de echivalenta ale relatiei ≡E pot fi infinite,vom prefera sa le ınlocuim pe acestea cu un reprezentant din A care la randul lui va putea fi substituit cuun alt reprezentant al aceleiasi clase si apoi rescris ın A. Aceasta rescriere din A este denumita rescrieremodulo E. Scopul acesteia este ca trecand la clase, sa produca rescrierea din AE.

Conceptul de rescriere modulo E poate fi generalizat prin conceptul de rescriere modulo o relatie deechivalenta ∼ ce poate fi cu usurinta formalizat. Conceptul de rescriere modulo o relatie de echivalenta∼ se obtine din conceptul clasic de rescriere la care se adauga o noua regula de deductie numita regulaclaselor.

Cl∼ a ∼s b implica a◦=s b

De remarcat faptul ca Cl∼ este o regula deductiva mai puternica decıt R, prin urmare ın rescrierea modulo∼ regula Cl∼ va ınocui pe R.

Utilizarea fara restrictii a regulei claselor duce la pierderea proprietatii de terminare. Un element poatefi rescris ın altul din aceeasi clasa, acesta la randul lui poate fi rescris ın alt element echivalent si asamai departe. Observam ca un sir finit de astfel de resrieri poate fi ınlocuit cu una singura deoarece toateelementele care apar ın rescriere sunt din aceeasi clasa. Prin urmare, restrictia de a nu folosi de doua oriconsecutiv regula claselor nu restrange puterea acestei reguli si este suficienta pentru implementare.

Preliminarii

Fie un morfism h : A −→ B si • o variabila de sort s.Fie h• : TΣ(A ∪ {•}) −→ TΣ(B ∪ {•}) unicul morfism definit pentru orice x ∈ A ∪ {•} prin

h•(x) =

{

• daca x = •h(x) daca x ∈ A

.

Pentru orice c din TΣ(B ∪ {•}) fie nrB• (c) numarul de aparitii ale lui • ın c. Deoarece h•;nrB• = nr•rezulta ca pentru c din TΣ(A ∪ {•}), h•(c) este context daca si numai daca c este context.

Pentru oricare a din A(• ← a);h = h•; (• ← h(a)).

Pentru orice c din TΣ(A ∪ {•}) are loc egalitatea

h(c[a]) = h•(c)[h(a)].

Daca ın plus morfismul h : A −→ B este surjectiv pe componente, atunci morfismulh• : TΣ(A ∪ {•}) −→ TΣ(B ∪ {•}) este si el surjectiv pe componente fapt care se demonstreaza prininductie structurala proband ca pentru orice c′ ∈ TΣ(B ∪ {•}) exista c ∈ TΣ(A ∪ {•}) cu proprietateah•(c) = c′. In plus pentru fiecare context c′ ∈ TΣ(B ∪ {•}) exista un context c ∈ TΣ(A ∪ {•}) astfel ıncıth•(c) = c′.

Corectitudinea

Rescrierea din algebra B este notata cu∗⇒

B

Γ . In continuare vom nota prinh⇒ rescrierea din A modulo

echivalenta nucleara Ker(h) a morfismului h : A −→ B.

Propozitie 2.8.6 Fie un morfism h : A −→ B. Daca ah⇒ d atunci h(a)

∗⇒

B

Γ h(d).

Demonstratie: Vom arata ca multimea de propozitii din A

D = {a◦=s d : hs(a)

∗⇒

B

Γ hs(d)}

Page 69: Programare Logica

2.8. RESCRIERE MODULO ECUATII 69

este ınchisa la regulile ClKer(h), T si SRewΓ.

ClKer(h). Fie aKer(h)sd. Prin urmare hs(a) = hs(d). Din reflexivitate hs(a)∗⇒

B

Γ hs(d), deci a◦= d ∈ D.

T. Fie a◦=s b ∈ D si b

◦=s c ∈ D. Prin urmare hs(a)

∗⇒

B

Γ hs(b) si hs(b)∗⇒

B

Γ hs(c). Datorita tranzitivitatii

hs(a)∗⇒

B

Γ hs(c), deci a◦= c ∈ D.

SRewΓ. Fie (∀X)l◦=s r if H ∈ Γ si f : TΣ(X) −→ A un morfism astfel ıncıt pentru orice u

◦=t v

exista auv ∈ At cu proprietatile ft(u)◦=t auv ∈ D si ft(v)

◦=t auv ∈ D. Prin urmare ht(ft(u))

∗⇒

B

Γ ht(auv)

si ht(ft(v))∗⇒

B

Γ ht(auv).

Pentru orice context c din TΣ(A ∪ {•}), deoarece∗⇒

B

Γ este ınchis la SRewΓ, folosind contextul h•(c) simorfismul f ;h : TΣ(X) −→ B obtinem

h•(c)[(f ;h)s(l)]∗⇒

B

Γ h•(c)[(f ;h)s(r)].

Deoarece

h•(c)[(f ;h)s(l)] = h•(c)[hs(fs(l))] = h(c[fs(l)])

si analog

h•(c)[(f ;h)s(r)] = h•(c)[hs(fs(r))] = h(c[fs(r)])

rezulta ca

h(c[fs(l)])∗⇒

B

Γ h(c[fs(r)])

ceea ce ıncheie demonstratia, deoarece arata ca c[fs(l)]◦=s c[fs(r)] ∈ D.

Deoarece D este ınchisa la regulile ClKer(h), T si SRewΓ rezulta ca

h⇒ ⊆ D

fapt care implica concluzia. �

Din propozitia de mai sus aplicata pentru morfismul de factorizare canonic rezulta ca daca a se rescriemodulo o echivalenta ∼ ın b, atunci clasa de echivalenta a lui a se rescrie ın clasa de echivalenta a lui b.

Corolar 2.8.7 Daca a∗⇒Γ d atunci h(a)

∗⇒

B

Γ h(d).

Demonstratie: Putem aplica propozitia folosind∗⇒Γ⊆

h⇒.

Completitudinea

Propozitie 2.8.8 Fie h : A −→ B un morfism surjectiv pe componente. Daca h(a)∗⇒

B

Γ h(d) atunci

ah⇒ d.

Demonstratie: Fie multimea

D = {hs(a)◦= hs(d) : a

h⇒ d}.

Observam ca hs(u)◦= hs(v) ∈ D implica u

h⇒ v. Din ipoteza exista a, b asfel ıncat hs(u) = hs(a), a

h⇒ d si

hs(d) = hs(v), prin urmare uh⇒ v.

Probam ca D este ınchisa la R,T si SRewΓ.

R. Fie d ∈ Bs. Deoarece hs este surjectiva exista a ∈ As cu hs(a) = d. Din ah⇒ a deoarece

h⇒ este

reflexiva, rezulta ca hs(a)◦=s hs(a) ∈ D, prin urmare d

◦=s d ∈ D. Deci D este reflexiva.

Page 70: Programare Logica

70 CHAPTER 2. RESCRIERI

T. Fie x◦= y si y

◦= z ın D. Exista a

h⇒ v si u

h⇒ d cu x = h(a), h(v) = y, h(u) = y si h(d) = z.

Deoarece h(v) = h(u) deducem vh⇒ u. Folosind ın plus a

h⇒ v si u

h⇒ d deducem prin T ca a

h⇒ d,

deci h(a)◦= h(d) ∈ D, adica x

◦= z ∈ D. In concluzie D este tranzitiva.

SRewΓ. Fie (∀X)l◦=s r if H ∈ Γ, un morfism f : TΣ(X) → B astfel ıncat pentru orice u

◦=t v ∈ H

exista buv ∈ Bt cu proprietatile ft(u)◦=t buv ∈ D si ft(v)

◦=t buv ∈ D. Pentru orice context c ∈ TΣ(B∪{•})s′

dorim sa dovedim ca

c[fs(l)]◦= c[fs(r)] ∈ D.

Deoarece Σ-algebra libera TΣ(X) este proiectiva si h este un morfism surjectiv pe componente existaun morfism g : TΣ(X) −→ A astfel ıncıt g;h = f .

Deoarece h este surjectiv pe componente pentru orice u◦=t v ∈ H exista auv ∈ At cu proprietatea

ht(auv) = buv.

Observam ca pentru orice u◦=t v ∈ H, din

ht(gt(u))◦= ht(auv) ∈ D si ht(gt(u))

◦= ht(auv) ∈ D

deducem

gt(u)h⇒ auv si gt(v)

h⇒ auv.

Deoarece exista un context c′ ∈ TΣ(A ∪ {•})s′ astfel ıncıt h•s′(c′) = c folosind SRewΓ deducem ca

c′[gs(l)]h⇒ c′[gs(r)].

Prin urmare

hs′(c′[gs(l)])

◦= hs′(c

′[gs(r)]) ∈ D.

Dar,

c[fs(l)] = h•s′(c′)[hs(gs(l))] = hs′(c

′[gs(l)])

si

c[fs(r)] = h•s′(c′)[hs(gs(r))] = hs′(c

′[gs(r)]).

Deci c[fs(l)]◦= c[fs(r)] ∈ D. �

Corolar 2.8.9 a se rescrie modulo o echivalenta ∼ ın b, daca si numai daca clasa de echivalenta a lui ase rescrie ın clasa de echivalenta a lui b.

Aceste propozitii arata ca rescrierea claselor ıntr-o algebra cıt A/∼ poate fi ınlocuita cu rescrierea modulo∼ din A. Rescrierea modulo ecuatii este doar un caz particular.

Comentariu. In acest moment cititorul poate ıntelege dece am preferat sa ne bazam lectiile pe rescrieriıntr-o algebra, stil pe care nu l-am mai ıntalnit pana ın prezent. Autorii prefera sa ınceapa cu rescrieriıntr-o algebra libera(term rewriting) si ın momentul cand ajung la rescrierile modulo ecuatii sa expunaacceasi teorie privind acest alt tip de rescriere. In concluzie rescrierile ıntr-o algebra unifica rescrierieleıntr-o algebra libera cu rescrierile modulo ecuatii.

2.9 DEMONSTRAREA ECUATIILOR CONDITIONATE

Pentru doua multimi de Σ-ecuatii conditionate Γ si Γ′, vom scrie Γ |=Σ Γ′ daca si numai daca A |=Σ Γimplica A |=Σ Γ′ pentru orice Σ-algebra A. In acest caz spunem ca Γ′ este consecinta semantica a luiΓ.

Pana acum ne-am ocupat numai de ecuatiile neconditionate adevarate ın orice Γ-algebra. In aceastasubcapitol vom da o cale prin care se poate demonstra ca o ecuatie conditionata γ este adevarata ın oriceΓ-algebra, adica Γ |=Σ γ.

Page 71: Programare Logica

2.9. DEMONSTRAREA ECUATIILOR CONDITIONATE 71

2.9.1 Preliminarii

Se arata usor ca

B |=Σ (∀X)l◦=s r if H si B |=Σ {(∀X)u

◦=t v | u

◦=t v ∈ H} implica B |=Σ (∀X)l

◦=s r.

Intradevar pentru orice morfism h : TΣ(X) −→ B din B |=Σ {(∀X)u◦=t v | u

◦=t v ∈ H} deducem

ht(u) = ht(v) pentru orice u◦=t v ∈ H. Prin urmare din B |=Σ (∀X)l

◦=s r if H rezulta ca hs(l) = hs(r).

Am probat ca pentru orice morfism h : TΣ(X) −→ B are loc egalitatea hs(l) = hs(r), deci B |=Σ (∀X)l◦=s r.

Din pacate reciproca nu este adevarata ın general, ci numai ın cazul particular al Σ-algebrei initiale.

Lema 2.9.1

B |=Σ (∀∅)l◦=s r if H daca si numai daca [B |=Σ {(∀∅)u

◦=t v | u

◦=t v ∈ H} implica B |=Σ (∀∅)l

◦=s r].

Demonstratie: Presupunem ca B |=Σ {(∀∅)u◦=t v | u

◦=t v ∈ H} implica B |=Σ (∀∅)l

◦=s r.

Probam ca B |=Σ (∀∅)l◦=s r if H.

Fie h : TΣ −→ B cu ht(u) = ht(v) pentru orice u◦=t v ∈ H.

Probam ca B |=Σ {(∀∅)u◦=t v | u

◦=t v ∈ H}. Fie g : TΣ −→ B. Deoarece TΣ este initiala deducem ca

g = h, deci gt(u) = gt(v) pentru orice u◦=t v ∈ H.

Din ipoteza deducem B |=Σ (∀∅)l◦=s r, deci hs(l) = hs(r). �

Corolar 2.9.2

Γ |=Σ (∀∅)l◦=s r if H daca si numai daca Γ ∪ {(∀∅)u

◦=t v | u

◦= v ∈ H} |=Σ (∀∅)l

◦=s r.

Demonstratie: Demonstratia se va face printr-un sir de echivalente. Plecam de la

Γ |=Σ (∀∅)l◦=s r if H

care prin definitie este echivalenta cu

(∀B |=Σ Γ)B |=Σ (∀∅)l◦=s r if H.

Conform lemei afirmatia de mai sus este echivalenta cu

(∀B |=Σ Γ)(B |=Σ {(∀∅)u◦=t v | u

◦= v ∈ H} implica B |=Σ (∀∅)l

◦=s r)

care este echivalenta cu

(∀B |=Σ (Γ ∪ {(∀∅)u◦=t v | u

◦= v ∈ H})) B |=Σ (∀∅)l

◦=s r

adica cu

Γ ∪ {(∀∅)u◦=t v | u

◦= v ∈ H} |=Σ (∀∅)l

◦=s r. �

Lema si corolarul precedent ne permit sa spargem o ecuatie conditionata de demonstrat ın partile eicomponente. Din pacate acest fapt este posibil numai pentru ecuatiile conditionate fara variabile. Teoremaconstantelor ne va permite sa ınlocuim demonstrarea unei ecuatii conditionate cu variabile cu o ecuatieconditionata fara variabile.

Page 72: Programare Logica

72 CHAPTER 2. RESCRIERI

2.9.2 Schimbarea signaturii

Prima etapa consta ın ınlocuirea ecuatiei conditionate cu o alta “echivalenta” dintr-o algebra initiala.Pentru aceasta este necesara schimbarea signaturii prin transformarea variabilelor din ecuatia conditionatade demonstrat ın constante (simboluri de operatii fara argumente). Aceasta tehnica de demonstratie a maifost folosita ın subcapitolul 1.4.5.

Fie Σ o signatura S-sortata si X o multime S-sortata de variabile disjuncta de Σ. Vom lucra ıncontinuare cu o noua signatura S-sortata ΣX care include Σ si ın care fiecare x ∈ Xs devine un simbol deoperatie fara argumente de sort s.

Vom nota cu j : Σ −→ ΣX morfismul incluziune de signaturi. Ganditi-va la el ca la o functie incluziunede multimi deoarece conceptul de morfism de signaturi va fi introdus mult mai tarziu. Vom nota functoruluituc cu

Mod(j) : AlgΣX −→ AlgΣ.

Deoarece conceptul categorial de functor nu este definit aici puneti mai mult accent pe cuvantul uituc.Un alt exemplu de functor uitic, de la inele la grupuri, este cel care uita ınmultirea inelului pastrandnumai structura aditiva a grupului. Mod(j) uita constantele corespunzatoare lui X din fiecare ΣX–algebrapastrand numai structura de Σ–algebra.

In categoria ΣX-algebrelor AlgΣX vom utiliza o notatie speciala si anume o ΣX-algebra va fi scrisaca o pereche (A, a) unde A este o Σ-algebra si a : X −→ A este o functie S-sortata. Prin Σ-algebraA se dau suporturile si operatiile corespunzatoare simbolurilor din Σ iar prin functia a se dau operatiilecorespunzatoare simbolurilor din X, adica operatia corespunzatoare lui x ∈ Xs este as(x).

Observam ca h : (A, a) −→ (B, b) este un morfism de ΣX-algebre daca si numai daca h : A −→ B estemorfism de Σ-algebre si a;h = b. Explicit egalitatea a;h = b spune ca

hs(as(x)) = bs(x)

pentru orice s ∈ S si x ∈ Xs.

Avand in vedere notatiile de mai sus observam ca

Mod(j)(A, a) = A pentru orice ΣX-algebra (A, a) si

Mod(j)(h) = h pentru orice ΣX-morfism h.

Un cititor mai putin experimentat poate considera cele doua egalitati de mai sus drept definitii. Primaegalitate reflecta uitarea constantelor corespunzatoare variabilelor din X. A doua egalitate spune ca oricemorfism de ΣX–algebre este morfism de Σ–algebre

Schimbarea signaturii Σ cu ΣX impune translatarea Σ–axiomelor ın ΣX–axiome.

2.9.3 Translatarea ecuatiilor

Vom nota cu Y o multime de variabile cuantificata universal ıntr-o Σ-axioma. Fara a restrange generalitateaputem presupune ca Y este disjuncta de X. Vom nota cu

i : TΣ(Y ) −→ TΣ(X ∪ Y )

unicul Σ-morfism pentru care i(y) = y pentru orice y din Y . Fara a restrange generalitatea putempresupune ca i este o incluziune.

Mai observam ca

TΣX (Y ) = (TΣ(X ∪ Y ),X → TΣ(X ∪ Y )).

Prin urmare Mod(j)(TΣX (Y )) = TΣ(X ∪ Y ).

Page 73: Programare Logica

2.9. DEMONSTRAREA ECUATIILOR CONDITIONATE 73

Observatia 2.9.3 Pentru orice ΣX-algebra (M,m) functia

F : AlgΣX (TΣX (Y ), (M,m)) −→ AlgΣ(TΣ(Y ),M)

definita prin F (h) = i;Mod(j)(h) este o bijectie.

Demonstratie: Observam ca F (h) este restrictia lui h la TΣ(Y ).Probam surjectivitatea lui F . Fie Σ-morfismul u : TΣ(Y ) −→M. Definim g : TΣ(X∪Y ) −→M unicul

morfism cu proprietatile

g(z) =

{

u(z) daca z ∈ Y,m(z) daca z ∈ X.

Deoarece g(x) = m(x) pentru orice x ∈ X, observam ca g : TΣX (Y ) −→ (M,m) este ΣX -morfism.Deoarece g(y) = u(y) pentru orice y ∈ Y deducem ca restrictia lui g la TΣ(Y ) coincide cu u.

Probam injectivitatea lui F . Fie h1 : TΣX (Y ) −→ (M,m) si h2 : TΣX (Y ) −→ (M,m) douaΣX–morfisme cu proprietatea F (h1) = F (h2). Deoarece h1 si h2 sunt ΣX–morfisme deducemh1(x) = m(x) = h2(x) pentru orice x ∈ X. Din F (h1) = F (h2) deducem h1(y) = h2(y) pentru oricey ∈ Y . Deoarece h1 si h2 sunt morfisme definite pe TΣ(X ∪ Y ) deducem ca h1 = h2. �

Faptele expuse pana acum ca si lema urmatoare au un caracter tehnic. Deoarece signatura a fostschimbata este necesar ca axiomele sa fie rescrise ın noua signatura. Multimea Y reprezinta variabilelecuantificate universal dintr-o axioma. Ele nu sunt afectate prin trecerea la noua signatura. Schimbareasignaturii axiomelor este mai mult formala caci ın noile axiome constantele obtinute din variabilele din Xnu sunt practic folosite. Aceasta este motivul pentru care ın lema si cololarul care urmeaza functia m, princare sunt date constantele, apare numai ın membrul stang, membrul drept fiind independent de aceasta.

Fiecarei Σ-ecuatii conditionateγ = (∀Y )l

◦=s r if H

ıi atasam o alta ΣX-ecuatie conditionata

J(γ) = (∀Y )is(l)◦=s is(r) if {it(u)

◦= it(v) | u

◦=t v ∈ H}.

Functia J duce o Σ-ecuatie neconditionata ıntr-o ΣX-ecuatie neconditionata.

Lema 2.9.4 Satisfacerea. Pentru orice ΣX-algebra (M,m)

(M,m) |=ΣX J(γ) daca si numai daca M |=Σ γ.

Demonstratie: Observam ca (M,m) |=ΣX J(γ) este, prin definitie, echivalenta cu

∀h : TΣX (Y ) −→ (M, m) daca ht(it(u)) = ht(it(v)) pentru orice u◦=t v, atunci hs(is(l)) = hs(is(r)),

prin urmare echivalenta cu

∀h : TΣX (Y ) −→ (M, m) daca (i;Mod(j)(h))t(u) = (i;Mod(j)(h))t(v) pentru orice u◦=t v ∈ H, atunci

(i;Mod(j)(h))s(l) = (i;Mod(j)(h))s(r);

adica echivalenta cu

∀h : TΣX (Y ) −→ (M, m) daca F (h)t(u) = F (h)t(v) pentru orice u◦=t v ∈ H, atunci F (h)s(l) = F (h)s(r).

Folosind bijectia de mai sus deducem ca (M,m) |=ΣX J(γ) este echivalenta cu

∀g : TΣ(Y ) −→M daca gt(u) = gt(v) pentru orice u◦=t v ∈ H, atunci gs(l) = gs(r)

adica cu M |=Σ γ. �

Pentru o multime Γ de Σ-ecuatii conditionate notam J(Γ) = {J(γ) | γ ∈ Γ}.

Corolar 2.9.5 Pentru orice ΣX-algebra (M,m) si orice multime Γ de Σ-ecuatii conditionate

(M,m) |=ΣX J(Γ) daca si numai daca M |=Σ Γ. �

Page 74: Programare Logica

74 CHAPTER 2. RESCRIERI

2.9.4 Teorema constantelor

Teorema 2.9.6 Teorema constantelor:

Γ |=Σ (∀X)l◦=s r if H daca si numai daca J(Γ) |=ΣX (∀∅)l

◦=s r if H.

Demonstratie: La ınceput vom mentiona forme echivalente pentru cei doi membri ai echivalentei dinenunt.

Membrul stangΓ |=Σ (∀X)l

◦=s r if H

este echivalent succesiv cu:

1. Oricare ar fi Σ-algebra A, daca A |=Σ Γ, atunci A |=Σ (∀X)l◦=s r if H,

2. Oricare ar fi Σ-morfismul h : TΣ(X) −→ A |= Γ daca ht(u) = ht(v) pentru orice u◦=t v ∈ H, atunci

hs(l) = hs(r).

Membrul dreptJ(Γ) |=ΣX (∀∅)l

◦=s r if H

este echivalent succesiv cu:

1. Oricare ar fi ΣX-algebra (M,m), daca (M,m) |=ΣX J(Γ), atunci (M,m) |=ΣX (∀∅)l =s r if H,

2. Oricare ar fi ΣX-morfismul h : TΣX −→ (M, m) |=ΣX J(Γ)

daca ht(u) = ht(v) pentru orice u◦=t v ∈ H, atunci hs(l) = hs(r).

Presupunem ca Γ |=Σ (∀X)l◦=s r if H. Fie h : TΣX −→ (M, m) |=ΣX J(Γ) cu ht(u) = ht(v) pentru orice

u◦=t v ∈ H.

Deoarece M |=Σ Γ rezulta ca M |=Σ (∀X)l◦=s r if H prin urmare din h : TΣ(X) −→ M si ht(u) =

ht(v) pentru orice u◦=t v ∈ H deducem hs(l) = hs(r).

Reciproc, presupunem ca J(Γ) |=ΣX (∀∅)l◦=s r if H. Fie h : TΣ(X) −→ M |=Σ Γ cu ht(u) = ht(v)

pentru orice u◦=t v ∈ H.

Deoarece (M, h/X) |=ΣX J(Γ), h : TΣX −→ (M, h/X) este un ΣX-morfism si ht(u) = ht(v) pentru

orice u◦=t v ∈ H din ipoteza deducem hs(l) = hs(r). �

Acesta teorema ne permite sa eliminam cuantificatorul universal prin ınlocuirea variabilelor cuantificateprin simboluri de operatii constante. Astfel primul obiectiv de a ne muta ıntr-o algebra initiala a fost atins.

Teorema urmatoare nu face decat sa traga concluziile, furnizand o cale prin care putem ıncerca demon-starea ecuatiilor conditionate. Problema care ramane este demonstrarea corectitudinii programului obtinutfolosind noul set de axiome ın ipoteza ca programul dat de axiomele Γ este corect.

Teorema 2.9.7 Teorema deductiei:

Γ |=Σ (∀X)l◦=s r if H daca si numai daca J(Γ) ∪ {(∀∅)u

◦=t v | u

◦=t v ∈ H} |=ΣX (∀∅)l

◦=s r.

Demonstratie: Conform teoremei constantelor

Γ |=Σ (∀X)l◦=s r if H

este echivalenta cuJ(Γ) |=ΣX (∀∅)l

◦=s r if H

care conform corolarului 2.9.2 este echivalenta cu

Page 75: Programare Logica

2.10. PERECHI CRITITCE 75

J(Γ) ∪ {(∀∅)u◦=t v ∈ H} |=ΣX (∀∅)l

◦=s r. �

In concluzie pentru demonstrarea Σ-ecuatiei conditionate (∀X)l◦=s r if H putem proceda astfel

• schimbam signatura Σ cu signatura ΣX , translatand axiomele din Γ ın noua signatura

• adaugam {(∀∅)u◦=t v | u

◦=t v ∈ H} la axiome si

• demonstram (∀∅)l◦=s r ın noul context.

Credem ca este bine sa semnalam ıntrebarea. Daca Γ este program, este si J(Γ) ∪ {(∀∅)u◦=t v ∈ H} un

program?

2.10 PERECHI CRITITCE

Toate algebrele sunt libere. Presupunem ın plus ca Γ contine numai ecuatii neconditionate.Mai mentionam ca membrul stang al unei ecuatii nu poate fi format numai dintr-o variabila, deoarece

ın caz contrar orice expresie ar putea fi rescrisa. O consecinta a acestui fapt este ca nici o variabila nu maipoate fi rescrisa, adica este o forma normala.

Lema 2.10.1 Pentru orice c ∈ TΣ(A ∪ {•}) daca a∗⇒Γ d, atunci c[a]

∗⇒Γ c[d].

Demonstratie: Mentionam ca lema arata mai mult decat ınchiderea la contexte, caci ın enunt nu sepresupune nimic despre c.

Probam prin inductie structurala dupa c.Daca c = • concluzia coincide cu ipoteza.Daca c ∈ A utilizam reflexivitatea.Daca c = σ(c1, c2, . . . , cn) din ipoteza de inductie ci[a]

∗⇒Γ ci[d] pentru orice i, prin urmare aplicand

CΣ deducemAσ(c1[a], c2[a], . . . , cn[a])

∗⇒Γ Aσ(c1[d], c2[d], . . . , cn[d]),

prin urmare deoareceAσ(c1[a], c2[a], . . . , cn[a]) = Aσ(• ← a(c1), • ← a(c2), . . . , • ← a(cn)) =

= • ← a(σ(c1, c2, . . . , cn)) = • ← a(c) = c[a] siAσ(c1[d], c2[d], . . . , cn[d]) = Aσ(• ← d(c1), • ← d(c2), . . . , • ← d(cn)) =

= • ← d(σ(c1, c2, . . . , cn)) = • ← d(c) = c[d] tragem concluzia

c[a]∗⇒Γ c[d]. �

Lema 2.10.2 Pentru orice c ∈ TΣ(A ∪ {•}) daca a ↓Γ d, atunci c[a] ↓Γ c[d].

Demonstratie: Deoarece exista m astfel ıncat a∗⇒Γ m si d

∗⇒Γ m din lema precedenta deducem

c[a]∗⇒Γ c[m] si c[d]

∗⇒Γ c[m] de unde rezulta concluzia. �

Lema 2.10.3 Daca y nu apare ın c ∈ TΣ(A ∪ {•}), atunci (y −→ b)(c[a]) = c[(y −→ b)(a)].

Demonstratie: Se face prin inductie structurala dupa c. �

Definitia 2.10.4 Fie (∀X1)l1◦=s′ r1 si (∀X2)l2

◦=s′′ r2 doua axiome din Γ fara variabile comune, ipoteza

care nu restrange generalitatea. Fie c ın TΣ(A ∪ {•}s′) un context astfel ıncat

l1 = c[d]

unde d nu este o variabila. Fie u un cel mai general unificator al lui d si al lui l2. Elementele

u(r1) si u(c[r2])

formeaza o pereche critica. �

Page 76: Programare Logica

76 CHAPTER 2. RESCRIERI

Pe scurt notam multimea perechilor critice

PCΓ = {(u(r1), u(c[r2])) : (∀X1)l1◦=s′ r1, (∀X2)l2

◦=s′′ r2 ∈ Γ, l1 = c[d], c este context, d nu este

variabila si u = CGU{d, l2} }

Propozitiile din care se formeaza perechile critice sunt axiome, eventual identice, din Γ unde, la nevoie,variabilele uneia sunt ınlocuite cu variabile noi pentru ca cele doua propozitii sa devina fara variabilecomune.

Observatia 2.10.5 Daca rescrierea este local confluenta, atunci PCΓ ⊆↓Γ .

Demonstratie: Observam cau(l1)⇒Γ u(r1) si

u(l1) = u•(c)[u(d)] = u•(c)[u(l2)]⇒Γ u•(c)[u(r2)] = u(c[r2]).

Deoarece rescrierea este local confluenta deducem ca

u(r1) ↓Γ u(c[r2]). �

Teorema 2.10.6 Daca PCΓ ⊆ ↓Γ, atunci rescrierea este local confluenta.

Demonstratie: Fara a micsora generalitatea vom presupune ca toate multimile de variabile cu carelucram sunt disjuncte doua cate doua si ca variabilele nou introduse sunt distincte ıntre ele si nu apartinaltor multimi de variabile.

Presupunem caa⇒ a1 si a⇒ a2.

Prin urmare pentru i ∈ [2] exista (∀Xi)li◦= ri ∈ Γ, contextul ci ∈ A[zi] si morfismul hi : TΣ(Xi) −→ A

astfel ıncat a = ci[hi(li)] si ai = ci[hi(ri)].

Cei doi subarbori h1(l1) si h2(l2) ai lui a pot fi disjuncti(cazul 1 de mai jos) sau inclusi unul ıncelalalt(cazurile 2 si 3 trei de mai jos). In cazurile 2 si 3 vom presupune fara a restrange generalitatea cah2(l2) este subarbore a lui h1(l1).

Cazul 1(fara suprapunere). Intuitiv cele doua rescrieri se fac ın zone disjuncte din a, adica h1(l1) sih2(l2) sunt subarbori disjuncti ai lui a. Rescrierea a ⇒ a1 se face ınlocuind h1(l1) cu h1(r1), subarboreleh2(l2) ramanand neschimbat. Rescrierea a ⇒ a2 se face ınlocuind h2(l2) cu h2(r2), subarborele h1(l1)ramanand neschimbat. Observam ca a1 si a2 pot fi rescrisi ın acelasi element care se obtine fie ınlocuindın a1 pe h2(l2) cu h2(r2), fie ınlocuind ın a2 pe h1(l1) cu h1(r1).

Formal ınlocuind ın a subarborii h1(l1) si h2(l2) cu doua variabile noi z1 si z2 exista c ∈ TΣ(A∪{z1, z2})cu cate o aparitie a variabilelor z1 si z2 astfel ıncat

c1 = (z2 ← h2(l2))(c) si c2 = (z1 ← h1(l1))(c).

Deoarece z1 nu apare ın h2(l2) si nici z2 nu apare ın h1(r1) deducem

(z1 ← h1(r1))[(z2 ← h2(l2))(c)] = (z2 ← h2(l2))[(z1 ← h1(r1))(c)].

Observam ca

a1 = c1[h1(r1)] = (z1 ← h1(r1))(c1) = (z1 ← h1(r1))[(z2 ← h2(l2))(c)] = (z2 ← h2(l2))[(z1 ← h1(r1))(c)] ={(z1 ← h1(r1))(c)}[h2(l2)]

prin urmare

Page 77: Programare Logica

2.10. PERECHI CRITITCE 77

z1

h1(l1)

z2

h2(l2)

a:

c

z1

h1(l1)

z2

h2(r2)

a2:

c

z1

h1(r1)

z2

h2(r2)

c

z2

h2(l2)

z1

h1(r1)

a1:

c

⇒⇒

Figure 2.2: Cazul 1. Subarbori disjuncti

a1 ⇒ (z1 ← h1(r1))(c)[h2(r2)] = (z2 ← h2(r2))[(z1 ← h1(r1))(c)].

Observam ca

a2 = c2[h2(r2)] = (z2 ← h2(r2))(c2) = (z2 ← h2(r2))([z1 ← h1(l1)](c)) = {(z2 ← h2(r2))(c)}[h1(l1)]

prin urmare

a2 ⇒ {(z2 ← h2(r2))(c)[h1(r1)] = (z1 ← h1(r1))[(z2 ← h2(r2))(c)] = [z2 ← h2(r2)][(z1 ← h1(r1))(c)],

deci a1 ↓Γ a2.

Cazurile 2-3(cu suprapunere, adica h2(l2) este subexpresie ın imaginea prin h1 a lui l1).Cazul 2(cu suprapunere critica, adica h2(l2) este imaginea prin h1 al unui subtermen d al lui l1 care

nu este variabila).Deoarece h2(l2) este o subexpresie a lui h1(l1) rezulta existenta unei subexpresii d a lui l1 astfel ıncat

h2(l2) = h1(d).

Notam cu c contextul cu variabila distinsa z2 ın care d apare ın l1, adica

l1 = c[d].

Deoarece

a = c1[h1(l1)] = c1[h1(c[d])] = c1[hz21 (c)[h1(d)]] = c1[h

z21 (c)[h2(l2)]] = c1[(z2 ← h2(l2))(h

z21 (c))].

Deoarece z2 nu apare ın c1

a = (z2 ← h2(l2))(c1[hz21 (c)]) = c1[h

z21 (c)][h2(l2)]

Page 78: Programare Logica

78 CHAPTER 2. RESCRIERI

z2

h2(r2)

hz21 (c)

z1

c1

a2:

z2

h1(d)

h2(l2)=

hz21 (c)

z1

c1

a: z1

h1(l1)

c1

z1

w

c1

z1

h1(r1)

c1

a1:

∗⇐

=

⇒∗

Figure 2.3: Cazul 2. Cu suprapunere critica

prin urmarec2 = c1[h

z21 (c)],

decia = c1[h

z21 (c)][h2(l2)]

sia2 = c1[h

z21 (c)][h2(r2)] = (z2 ← h2(r2))(c1[h

z21 (c)]).

Fieh : TΣ(X1 ∪X2) −→ A

unicul morfism care extinde atat pe h1 cat si pe h2. Observam ca h este un unificator pentru d si l2. Fieu : TΣ(X1 ∪ X2) −→ T un cel mai general unificator al lui d si l2 si t : T −→ A unicul morfism cuproprietatea u; t = h.

Doarece d nu este variabila rezulta ca u(r1) si u(c[r2]) formeaza o pereche critica. Din ipoteza deducemu(r1) ↓Γ u(c[r2]). Aplicand morfismul t obtinem t(u(r1)) ↓Γ t(u(c[r2])), deci

h(r1) ↓Γ h(c[r2]).

Prin urmare exista w astfel ıncath1(r1)

∗⇒Γ w si h(c[r2])

∗⇒Γ w.

Din prima rescriere deducem a1 = c1[h1(r1)]∗⇒Γ c1[w].

Utilizand a doua rescriere deducem

a2 = (z2 ← h2(r2))((z1 ← hz21 (c))(c1)) deoarece z2 nu apare c1= (z1 ← {z2 ← h2(r2)(h

z21 (c))})(c1) = (z1 ← {h

z21 (c)[h2(r2)]})(c1) = (z1 ← h(c[r2]))(c1) =

= c1[h(c[r2])]∗⇒Γ c1[w],

deci a1 ↓Γ a2.

Page 79: Programare Logica

2.10. PERECHI CRITITCE 79

x

h1(x)

x

h1(x)

z2

h2(l2)

x

c

h1(l1)

z1

c1

a:

. . .. . .

h2(r2)

x

h2(r2)

x

h2(r2)

x

z1

c1

fost h1(l1)

. . .. . .

z2

h2(l2)

x

c

z2

h2(l2)

x

c

z1

c1

a1:

h1(r1)

. . .

z2

h2(r2)

x

c

z2

h2(r2)

x

c

z1

c1

h1(r1)

. . .

z2

h2(r2)

x

c

h2(l2)

x

h2(l2)

x

z1

c1

fost h1(l1)a2:

. . .. . .

⇒∗

⇒∗

⇒⇒

c1[(u; x← c[h2(r2)])(l1)]

c1[(u; x← c[h2(r2)])(r1)]

Figure 2.4: Cazul 3. Cu suprapunere necritica

Cazul 3(cu suprapunere necritica, adica h2(l2) este subexpresie ın imaginea prin h1 a unei variabile xdin l1).

Page 80: Programare Logica

80 CHAPTER 2. RESCRIERI

Notam cu c ∈ TΣ(A ∪ {z2}) contextul ın care se gaseste h2(l2) ın h1(x), prin urmare

h1(x) = c[h2(l2)] (2.1)

Fie

u : TΣ(X1) −→ TΣ(A ∪ {x})

unicul morfism cu u(x) = x si care actioneaza ca h1 pe TΣ(X1 − {x}). Observam ca h1 = u;x← h1(x).In plus x← h1(x) = x← c[h2(l2)] = x← c ; z2 ← h2(l2), deci

h1 = u;x← c; z2 ← h2(l2).

Deoarece

h1(r1) = (z2 ← h2(l2))((u;x← c)(r1))

observam, deoarece z2 nu apare ın c1, ca

a1 = c1[(z2 ← h2(l2))((u;x← c)(r1))] = (z2 ← h2(l2))(c1[(u;x← c)(r1)]) = (c1[(u;x← c)(r1)])[h2(l2)],

prin urmare

a1∗⇒Γ c1[(u;x← c)(r1)])[h2(r2)] = (z2 ← h2(r2))(c1[(u;x← c)(r1)]) = c1[(z2 ← h2(r2))((u;x ← c)(r1))]

deci

a1∗⇒Γ c1[(u;x← c; z2 ← h2(r2))(r1)] = c1[(u;x← c[h2(r2)])(r1)].

Pentru a continua analizam contextul c2 si observam ca ın acesta apar subarbori de doua tipuriprovenind din variabila x din l1

1) Aparitia lui x care creaza subtermenul h2(l2) care este rescris pentru a-l obtine pe a2 si care ın c2este ınlocuita cu subarborele c

2) Restul aparitiilor lui x din l1 care ın c2 dau nastere unui subarbore h1(x).Pentru a diferentia aceste aparitii ale lui x ın l procedam dupa cum descriem ın cele de mai jos.

Punand ın evidenta ın l1 aparitia lui x care prin aplicarea lui h1 da nastere subtermenului h2(l2)care este rescris pentru a da nastere lui a2 si substituind-o cu o variabila noua z obtinem un contextl ∈ TΣ(X1 ∪ {z}) cu proprietatea l1 = l[x].

Fie w : TΣ(X1 ∪ {z}) −→ A[z2] unicul morfism cu proprietatile w(x1) = h1(x1) pentru orice x1 ∈ X1 siw(z) = c. Observam ca

z ← x;h1 = w; z2 ← h2(l2).

Folosind egalitatea tocmai dovedita, deoarece z2 nu apare ın c1

a = c1[h1((z ← x)(l))] = c1[(z2 ← h2(l2))(w(l))] = (z2 ← h2(l2))(c1[w(l)]) = (c1[w(l)])[h2(l2)]

deducem ca

c2 = c1[w(l)].

Fie p : TΣ(X1 ∪ {z}) −→ A[x] morfismul definit prin p(x1) = h1(x1) pentru orice x1 ∈ X1 − {x}, p(x) = xsi p(z) = c[h2(r2)]. Observam ca

w; z2 ← h2(r2) = p;x← h1(x).

a2 = c2[h2(r2)] = (z2 ← h2(r2))(c1[w(l)]) = c1[(w; z2 ← h2(r2))(l)] = c1[(p;x← h1(x))(l)].

Deoarece x← h1(x) = x← c; z2 ← h2(l2)

Page 81: Programare Logica

2.11. TERMINAREA SI PROCEDURA KNUTH-BENDIX 81

a2 = c1[(z2 ← h2(l2))((p;x← c)(l))] = (z2 ← h2(l2))(c1[(p;x← c)(l)]) = (c1[(p;x← c)(l)])[h2(l2)].Prin urmare

a2∗⇒Γ (c1[(p;x← c)(l)])[h2(r2)] = (z2 ← h2(r2))(c1[(p;x← c)(l)]) = c1[(p;x← c; z2 ← h2(r2))(l)].

Observam cap;x← c; z2 ← h2(r2) = z ← x;u;x← c[h2(r2)]

prin urmare

a2∗⇒Γ c1[(z ← x;u;x← c[h2(r2)])(l)] = c1[(u;x← c[h2(r2)])(l1)]

∗⇒Γ c1[(u;x← c[h2(r2)])(r1)]

decia1 ↓Γ a2. �

2.11 TERMINAREA si PROCEDURA KNUTH-BENDIX

2.11.1 Terminarea programelor

Terminarea este o propritate impusa de practica. Din pacate nu dispunem ınca de metode puternicepentru a proba aceasta proprietate. Dam ın cele ce urmeaza cateva fapte care ne permit uneori sa probamterminarea. Mentionam ca terminarea este denumirea folosita ın informatica pentru buna fondare.

Reamintim ca prin ınsasi definitia rescrierii ıntr-un pas, a ⇒Γ d implica a 6= d. Rescrierea∗⇒Γ are

proprietatea de terminare daca nu exista siruri {an}n∈N cu proprietatea an ⇒Γ an+1 pentru orice n ∈ N.

Teorema 2.11.1 Urmatoarele proprietati sunt echivalente

1. Rescrierea are proprietatea de terminare,

2. ınchiderea tranzitiva a rescrierii ıntrun pas+⇒Γ este o relatie de ordine stricta si bine fondata,

3. exista o relatie de ordine ≥ pe A compatibila cu structura algebrica cu proprietatile:

(a) varianta ei stricta > este bine fondata,

(b) pentru orice (∀X)l =s r if H ∈ Γ si orice h : TΣ(X)→ A daca h(H) ⊆ ↓Γ, atunci h(l) ≥ h(r)

4. exista o relatie bine fondata ⊢ pe o multime M si o functie ρ : A −→M cu proprietatile

(a) pentru orice (∀X)l =s r if H ∈ Γ si orice h : TΣ(X) → A daca h(H) ⊆ ↓Γ si h(l) 6= h(r),atunci ρ(h(l)) ⊢ ρ(h(r))

(b) pentru orice n ≥ 1 si orice σ ∈ Σs1s2...sn,s, ρ(a) ⊢ ρ(d) siAσ(a1, . . . , ai−1, a, ai+1, . . . , an) 6= Aσ(a1, . . . , ai−1, d, ai+1, . . . , an) implicaρ(Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)) ⊢ ρ(Aσ(a1, . . . , ai−1, d, ai+1, . . . , an)),

5. exista o relatie bine fondata ⊢ pe o multime M si ρ : A −→M o functie cu proprietatile

(a) pentru orice (∀X)l =s r if H ∈ Γ si orice h : TΣ(X) → A daca h(H) ⊆ ↓Γ si h(l) 6= h(r),atunci ρ(h(l)) ⊢ ρ(h(r)),

(b) pentru orice context c ∈ A[z]s′ si pentru orice a, d ∈ As daca ρ(a) ⊢ ρ(d) si c[a] 6= c[d], atunciρ(c[a]) ⊢ ρ(c[d]),

6. exista o relatie bine fondata ⊢ pe multimea M si ρ : A −→M o functie cu proprietatea

(a) a⇒Γ d implica ρ(a) ⊢ ρ(d).

Page 82: Programare Logica

82 CHAPTER 2. RESCRIERI

Demonstratie:

1−→2. E suficient sa probam ca a+⇒Γ a este falsa pentru orice a ∈ A. Presupunand prin absurd

existenta lui a ∈ A cu proprietatea a+⇒Γ a se poate construi un sir care contrazice terminarea.

2−→3. Rescrierea∗⇒Γ verifica conditiile cerute.

3−→4. Pentru M = A si ρ aplicatia identica, observam ca relatia > verifica conditiile cerute.

4−→5. Probam (b) prin inductie structurala dupa contextul c. Observam ca elementele algebrei A nusunt contexte.

Daca c = •, deoarece c[a] = a si c[d] = d concluzia rezulta direct din ipoteza.

Daca c = σ(a1, a2, . . . , an) unde σ ∈ Σs1s2...sn,s′ . Deoarece c este context rezulta ca n ≥ 1. In plusexista un i ∈ [n] astfel ınca ai este context si restul argumentelor sunt din A. Presupunem c[a] 6= c[d].Deoarece c[a] = Aσ(a1, . . . , ai−1, ai[a], ai+1, . . . , an) si c[d] = Aσ(a1, . . . , ai−1, ai[d], ai+1, . . . , an) rezulta caai[a] 6= ai[d]. Din ipoteza de inductie deducem ca ρ(ai[a]) ⊢ ρ(ai[d]).

Deoarece Aσ(a1, . . . , ai−1, ai[a], ai+1, . . . , an) 6= Aσ(a1, . . . , ai−1, ai[d], ai+1, . . . , an), din ipoteza rezultaca

ρ(Aσ(a1, . . . , ai−1, ai[a], ai+1, . . . , an)) ⊢ ρ(Aσ(a1, . . . , ai−1, ai[d], ai+1, . . . , an)).

5−→6. Presupunem ca a⇒Γ d. Prin urmare exista (∀X)l =s r if H ∈ Γ, morfismul h : TΣ(X)→ A sicontextul c ∈ TΣ(A ∪ {•})s′ cu proprietatile h(H) ⊆ ↓Γ, a = c[hs(l)] si d = c[hs(r)].

In plus a 6= d implica hs(l) 6= hs(r).

Din prima ipoteza deducem ρ(hs(l)) ⊢ ρ(hs(r)).Folosim c[hs(l)] 6= c[hs(r)] si aplicand a doua ipoteza rezulta ca ρ(c[hs(l)]) ⊢ ρ(c[hs(r)]). Prin urmare

ρ(a) ⊢ ρ(d).

6−→1. Presupunrm prin absurd ca∗⇒Γ nu are proprietatea de terminare. Prin urmare exista sirul

{an}n cu proprietatea an ⇒Γ an+1 pentru orice n natural. Aplicand functia ρ elementelor acestui sirobtinem un alt sir care contrazice bine fondarea relatiei ⊢. �

Se poate observa diferenta esentiala dintre cele doua ipoteze ale variantelor 4 sau 5 din teorema 2.11.1.Prima se refera la Γ rolul algebrei A fiind secundar. A doua ipoteza nu are nici o legatura cu Γ fiind defapt o proprietate de compatibilitate ıntre algebra A si relatia utilizata.

2.11.2 Exemplul teoriei grupurilor

Vom aplica teoria de mai sus pentru programul corespunzator teoriei grupurilor.

obj GRUP is sort E .

op _*_ : E E -> E .

op e : -> E .

op _’ : E -> E [prec 2].

var A B C : E .

eq (A*B)’ = B’ * A’ .

eq A’’ = A .

eq e’ = e .

eq (A*B)*C = A*(B*C) .

eq e * A = A .

eq A * e = A .

eq A’ * A = e .

eq A * A’ = e .

Page 83: Programare Logica

2.11. TERMINAREA SI PROCEDURA KNUTH-BENDIX 83

eq A’ * (A * B) = B .

eq A * (A’ * B) = B .

endo

Ca relatie bine fondata vom folosi relatia “strict mai mare” uzuala > pe multimea numerelor naturale.Algebra pentru care facem demonstratia este presupusa a fi o algebra libera. Aceasta ipoteza permitedefinirea functiei ρ este astfel:

ρ(e) = 2, ρ(x) = 2 pentru orice variabila x

ρ(t′) = 2ρ(t) si ρ(t ∗ s) = ρ(t)2ρ(s).

Observam ca ρ(t) ≥ 2 pentru orice termen t.

Verificam prima ipoteza a echivalentelor 4 sau 5 din teorema 2.11.1.

1. ρ(h((A ∗B)′)) = ρ((h(A) ∗ h(B))′) = 2ρ(h(A))2ρ(h(B))

ρ(h(B′ ∗ A′)) = ρ(h(B)′ ∗ h(A)′) = (2ρ(h(B)))22ρ(h(A)) = 22ρ(h(B))+ρ(h(A))

Notand x = ρ(h(A)) − 2 si y = ρ(h(B))− 2 observam ca este suficient sa demonstram ca(x+ 2)2(y + 2) > 2(y + 2) + (x+ 2) oricare ar fi numerele naturale x, y, ceea ce este usor.

2. ρ(h(A′′)) = 22ρ(h(A))> ρ(h(A))

3. ρ(h(e′)) = ρ(h(e)′) = 22 = 4 > 2 = ρ(h(e))

4. ρ(h((A∗B)∗C)) = (ρ(h(A))2ρ(h(B)))2ρ(h(C)) = ρ(h(A))4ρ(h(B))2ρ(h(C))> ρ(h(A))2ρ(h(B))2ρ(h(C)) =

ρ(h(A ∗ (B ∗ C)))

5. ρ(h(e ∗ A)) = 22ρ(h(A)) > ρ(h(A))

6. ρ(h(A ∗ e)) = 2ρ(h(A))2 > ρ(h(A))

7. ρ(h(A′ ∗ A)) = (2ρ(h(A)))2ρ(h(A)) > 2 = ρ(h(e))

8. ρ(h(A ∗A′)) = ρ(h(A))22ρ(h(A)) > 2 = ρ(h(e))

9. ρ(h(A′ ∗ (A ∗B))) = (2ρ(h(A)))2ρ(h(A))2ρ(h(B)) > ρ(h(B))

10. ρ(h(A ∗ (A′ ∗B))) = ρ(h(A))2(2ρ(h(A)))2ρ(h(B)) > ρ(h(B))

Verificarea ipotezei a doua din echivalenta 4 este imediata.

2.11.3 Completarea Knuth-Bendix

Este vorba de o procedura care ne permite ın anumite conditii destul de restrictive sa gasim un programpentru o prezentare ecuationala data. Conditiile sunt restrictive deoarece se presupune existenta uneirelatii care sa verifice conditia (b) din conditiile echivalente 4 sau 5 din teorema 2.11.1. In aceste conditiiatentia se va concentra asupra veridicitatii conditiei (a) din aceleasi conditii echivalente.

Un exemplu

Vom ıncepe cu un exemplu care va arata cum se obtine programul pentru teoria grupurilor din specificatiauzuala a grupurilor.

Specificatia uzuala de la care plecam este inclusa ın programul de mai sus.

e ∗A = A (2.2)

Page 84: Programare Logica

84 CHAPTER 2. RESCRIERI

A′ ∗ A = e (2.3)

(A ∗B) ∗ C = A ∗ (B ∗ C) (2.4)

In acest exemplu ne bazam mai mult pe intuitie, ıncercand sa realizam ıntalnirea prin rescriereaperechilor critice. Cautam cel mai general unificator u pentru membrul stang l2 al unei ecuatii E2 siun subtermen d al unui membru stang l1 al unei ecuatii E1, posibil aceeasi. Prin urmare exista un contextc astfel ıncat l1 = c[d]. Apoi rescriem u(l1) la doua forme normale n1 si n2 ıncepand cu

u(l1)⇒ u(r1) si u(l1) = u•(c)[u(l2)]⇒ u•(c)[u(r2)] = u(c[r2])

dupa care adaugam una dintre ecuatiile n1 = n2 sau n2 = n1 cu intentia de a asigura local confluenta.Vom specula existenta functiei ρ si a relatiei > pe numere naturale din exemplul dat ın sectiunea 2.11.2,pentru a alege ıntre cele doua egalitati si anume daca ρ(n1) > ρ(n2) alegem n1

◦= n2 pentru a o adauga

celorlalte reguli.

Unificand membrul stang al lui (2.3) cu subtermenul A ∗B din membrul stang al lui (2.4) si calculandformele normale obtinem

(A′ ∗A) ∗ C2.3=⇒ e ∗ C

2.2=⇒ C

(A′ ∗ A) ∗ C2.4=⇒ A′ ∗ (A ∗ C)

prin urmare adaugam regulaA′ ∗ (A ∗ C) = C (2.5)

Unificand membrul stang al lui (2.2) cu subtermenul A ∗C din membrul stang al lui (2.5) si calculandformele normale obtinem

e′ ∗ (e ∗A)2.5=⇒ A

e′ ∗ (e ∗A)2.2=⇒ e′ ∗A

prin urmare adaugam regulae′ ∗ A = A (2.6)

Mai tarziu vom observa ca aceasta regula este superflua.Unificand membrul stang al lui (2.3) cu subtermenul A ∗C din membrul stang al lui (2.5) si calculand

formele normale obtinem

B′′ ∗ (B′ ∗B)2.3=⇒ B′′ ∗ e

B′′ ∗ (B′ ∗B)2.5=⇒ B

prin urmare adaugam regulaB′′ ∗ e = B (2.7)

Mai tarziu vom observa ca aceasta regula este superflua.Unificand membrul stang al lui (2.7) cu subtermenul A ∗B din membrul stang al lui (2.4) si calculand

formele normale obtinem

(B′′ ∗ e) ∗ A2.4=⇒ B′′ ∗ (e ∗A)

2.2=⇒ B′′ ∗ A

(B′′ ∗ e) ∗ A2.7=⇒ B ∗ A

prin urmare adaugam regulaB′′ ∗A = B ∗A (2.8)

Mai tarziu vom observa ca aceasta regula este superflua.Unificand membrul stang al lui (2.7) cu membrul stang al lui (2.8) si calculand formele normale obtinem

B′′ ∗ e2.7=⇒ B

Page 85: Programare Logica

2.11. TERMINAREA SI PROCEDURA KNUTH-BENDIX 85

B′′ ∗ e2.8=⇒ B ∗ e

prin urmare adaugam regulaB ∗ e = B (2.9)

Unificand membrul stang al lui (2.7) cu membrul stang al lui (2.9) si calculand formele normale obtinem

B′′ ∗ e2.7=⇒ B

B′′ ∗ e2.9=⇒ B′′

prin urmare adaugam regulaB′′ = B (2.10)

Marind lista regulilor cu noi reguli de rescriere, este posibil ca unele reguli sa devina inutile, fiindposibila ınlaturarea lor fara a pierde din forta rescrierii. Concret, daca se constata pentru o regula l1

◦= l2

ca folosind celelalte reguli (fara l1◦= l2) l1 si l2 pot fi rescrise ın aceeasi forma normala, atunci vom elimina

regula l1◦= l2.

In acest moment regulile (2.7) si (2.8) pot fi eliminate deoarece

B′′ ∗ e2.10=⇒ B ∗ e

2.9=⇒ B si

B′′ ∗ A2.10=⇒ B ∗A.

Lucram ın continuare cu regulile (2.2, 2.3, 2.4, 2.5, 2.6, 2.9 si 2.10).Unificand membrul stang al lui (2.6) cu membrul stang al lui (2.9) si calculand formele normale obtinem

e′ ∗ e2.6=⇒ e

e′ ∗ e2.9=⇒ e′

prin urmare adaugam regulae′ = e (2.11)

In acest moment regula (2.6) poate fi eliminata deoarece

e′ ∗A2.11=⇒ e ∗ A

2.2=⇒ A

Lucram ın continuare cu regulile (2.2, 2.3, 2.4, 2.5, 2.9, 2.10 si 2.11).Unificand membrul stang al lui (2.10) cu subtermenul A′ din membrul stang al lui (2.3) si calculand

formele normale obtinem

B′′ ∗B′ 2.3=⇒ e

B′′ ∗B′ 2.10=⇒ B ∗B′

prin urmare adaugam regulaB ∗B′ = e (2.12)

Unificand membrul stang al lui (2.12) cu subtermenul A ∗B din membrul stang al lui (2.4) si calculandformele normale obtinem

(A ∗A′) ∗ C2.4=⇒ A ∗ (A′ ∗ C)

(A ∗ A′) ∗ C2.12=⇒ e ∗ C

2.2=⇒ C

prin urmare adaugam regulaA ∗ (A′ ∗ C) = C (2.13)

Page 86: Programare Logica

86 CHAPTER 2. RESCRIERI

Unificand membrul stang al lui (2.4) cu membrul stang al lui (2.12) si calculand formele normaleobtinem

(A ∗B) ∗ (A ∗B)′2.4=⇒ A ∗ (B ∗ (A ∗B)′)

(A ∗B) ∗ (A ∗B)′2.12=⇒ e

prin urmare adaugam regula

A ∗ (B ∗ (A ∗B)′) = e (2.14)

Mai tarziu vom observa ca aceasta regula este superflua.

Unificand membrul stang al lui (2.14) cu subtermenul A ∗C din membrul stang al lui (2.5) si calculandformele normale obtinem

A′ ∗ (A ∗ (B ∗ (A ∗B)′))2.14=⇒ A′ ∗ e

2.9=⇒ A′

A′ ∗ (A ∗ (B ∗ (A ∗B)′))2.5=⇒ B ∗ (A ∗B)′

prin urmare adaugam regula

B ∗ (A ∗B)′ = A′ (2.15)

Mai tarziu vom observa ca aceasta regula este superflua.

In acest moment regula (2.14) poate fi eliminata deoarece

A ∗ (B ∗ (A ∗B)′)2.15=⇒ A ∗ A′ 2.12

=⇒ e

Lucram ın continuare cu regulile (2.2, 2.3, 2.4, 2.5, 2.9, 2.10, 2.11, 2.12, 2.13 si 2.15).

Unificand membrul stang al lui (2.15) cu subtermenul A ∗C din membrul stang al lui (2.5) si calculandformele normale obtinem

B′ ∗ (B ∗ (A ∗B)′)2.15=⇒ B′ ∗A′

B′ ∗ (B ∗ (A ∗B)′)2.5=⇒ (A ∗B)′

prin urmare adaugam regula

(A ∗B)′ = B′ ∗ A′ (2.16)

In acest moment regula (2.15) poate fi eliminata deoarece

B ∗ (A ∗B)′2.16=⇒ B ∗ (B′ ∗ A′)

2.13=⇒ A′

Regulile ramase (2.2, 2.3, 2.4, 2.5, 2.9, 2.10, 2.11, 2.12, 2.13 si 2.16) coincid cu programul prezentat ınsectiunea 2.11.2.

Despre problema punerii celor doua expresii ın membrul stang, respectiv drept, al noilor ecuatii amputea spune ca am plasat expresia mai complexa ın membrul stang pentru ca regula sa conduca de lacomplex la simplu. Dar oare ce ınseamna mai simplu sau mai complex?

De fapt le-am pus ca ın programul din sectiunea 2.11.2 ca sa dam din nou peste el. Dar nici acesta nueste un criteriu, deoarece procedura are chiar rolul de a crea un program pe care nu-l cunoastem.

Singura motivatie corecta este ca alegerea este facuta pentru ca regula creata sa verifice conditianecesara pentru demonstrarea terminarii, fapt dat de functia ρ si relatia > pentru numere naturale.

Page 87: Programare Logica

2.11. TERMINAREA SI PROCEDURA KNUTH-BENDIX 87

Procedura Knuth-Bendix, varianta redusa

Toate ecuatiile utilizate ın aceasta sectiune sunt neconditionate.Procedura Knuth-Bendix se aplica unei specificatii ecuationale E. Vom prezenta la ınceput, din motive

didactice, o varianta incompleta.Procedura lucreaza cu o multime de ecuatii si o multime de reguli. Initial E0 = E si Γ0 = ∅.La fiecare pas se alege o ecuatie care la terminarea pasului se va elimina din multimea ecuatiilor. Fiecare

termen al ecuatiei se aduce la o forma normala folosind multimea regulilor. Vom considera doua cazuri.A) Daca cele doua forme normale coincid pasul consta doar ın eliminarea ecuatiei.B) Daca cele doua forme normale sunt diferite, ele vor alcatui o noua regula care se adauga multimii

regulilor. Din noua regula si din noua multime de reguli se calculeaza toate perechile critice posibile carese adauga la multimea ecuatiilor.

Daca procedura se termina prin epuizarea multimii ecuatiilor, multimea finala de reguli este localconfluenta si o specificatie echivalenta cu cea initiala.

Observatia 2.11.2 Daca Γ1 ⊆ Γ, atunci ≡AΓ1⊆ ≡A

Γ pentru orice algebra A.

Demonstratie: Fie a ≡AΓ1b.

Fie h : A→ B |= Γ. Deoarece B |= Γ1 deducem h(a) = h(b). Deci a ≡AΓ b. �

Pentru doua multimi de ecuatii neconditionate vom folosi notatia

Γ1 ⊆ ≡Γ

cu semnificatia

u ≡TΣ(X)Γ v pentru orice (∀X)u

◦= v ∈ Γ1

Observatia 2.11.3 Γ ⊆ ≡Γ

Demonstratie: Fie (∀X)l◦=s r ∈ Γ. Fie h : TΣ(X) −→ A |= Γ. Deoarece A |= (∀X)l

◦=s r deducem

hs(l) = hs(r). Deci l ≡TΣ(X)Γ r.

Propozitie 2.11.4 Daca Γ1 ⊆ ≡Γ, atunci1) Orice Γ-algebra este Γ1-algebra si2) ≡A

Γ1⊆ ≡A

Γ .

Demonstratie: 1) Presupunem A |= Γ.

Fie (∀X)u◦= v ∈ Γ1 si h : TΣ(X) −→ A. Deoarece u ≡

TΣ(X)Γ v si h : TΣ(X) −→ A |= Γ deducem

h(u) = h(v). Deci A |= Γ1.2) Presupunem ın Σ-algebra A ca a ≡A

Γ1d si probam ca a ≡A

Γ d. Fie h : A −→ M |= Γ. Prin urmareh : A −→M |= Γ1, deci din a ≡Γ1 d deducem h(a) = h(d). �

Mentionam utilitatea concluziei a doua. Pentru a demonstra egalitatea ≡Γ=≡Γ1 este suficient saprobam incluziunile Γ ⊆ ≡Γ1 si Γ1 ⊆ ≡Γ .

Observatia 2.11.5 Daca (w, v) este o pereche critica pentru Γ, atunci w ≡Γ v.

Demonstratie: Presupunem w = u(r1) si v = u(c[r2]) unde (l1 = c[d], r1) si (l2, r2) sunt reguli cu multimide variabile disjuncte din Γ si u = CGU(d, l2). Deoarece u(l1) ⇒Γ w si u(l1) ⇒Γ v din corectitudinea

relatiei∗⇒Γ deducem w ≡Γ v. �

Propozitie 2.11.6 Echivalenta semantica asociata reuniunii multimii ecuatiilor cu multimea regulilor esteun invariant al procedurii.

Page 88: Programare Logica

88 CHAPTER 2. RESCRIERI

Demonstratie: Sa presupunem ca la ınceputul pasului multimea de ecuatii este E ∪ {(∀X)l = r} cuecuatia aleasa (∀X)l = r si multimea de reguli Γ. Fie l′ forma normala a lui l si r′ forma normala a lui r.

In cazul A) l ↓Γ r implica l ↓E∪Γ r, prin urmare din corectitudinea relatiei ↓E∪Γ deducem l ≡E∪Γ r.Prin urmare E ∪ {(∀X)l = r} ∪ Γ ⊆ ≡E∪Γ deci din propozitia 2.11.4 deducem ≡E∪{(∀X)l=r}∪Γ ⊆ ≡E∪Γ .Incluziunea contrara fiind evidenta obtinem concluzia.

Trecem la cazul B). Fie P multimea perechilor critice dintre l′◦= r′ si Γ ∪ {l′

◦= r′}. Din observatia

2.11.5 deducem P ⊆≡Γ∪{l′

=r′}.

Din l∗⇒Γ l

′ si r∗⇒Γ r

′ deducem l ≡Γ l′ si r ≡Γ r

′. Folosind l ≡Γ∪(∀X)l

=rr si l′ ≡

Γ∪(∀X)l′◦

=r′r′ deducem

l ≡Γ∪(∀X)l′

=r′r si l′ ≡

Γ∪(∀X)l◦

=rr′, prin urmare

l ≡E∪P∪Γ∪(∀X)l′

=r′r si l′ ≡

E∪Γ∪(∀X)l◦

=rr′.

Din l′ ≡Γ∪(∀X)l

=rr′ deducem Γ ∪ (∀X)l′

◦= r′ ⊆ ≡

Γ∪(∀X)l◦

=r, asadar ≡

Γ∪(∀X)l′◦

=r′⊆ ≡

Γ∪(∀X)l◦

=r, deci

P ⊆ ≡E∪Γ∪(∀X)l

=r.

Din cele de mai sus deducem

E ∪ P ∪ Γ ∪ (∀X)l′◦= r′ ⊆ ≡

E∪Γ∪(∀X)l◦

=rsi

E ∪ Γ ∪ (∀X)l◦= r ⊆ ≡

E∪P∪Γ∪(∀X)l′◦

=r′,

deci

≡E∪Γ∪(∀X)l

=r= ≡

E∪P∪Γ∪(∀X)l′◦

=r′.�

Propozitie 2.11.7 Daca procedura se termina, multimea finala de reguli genereaza o rescrire local con-fluenta.

Demonstratie:Observam ca pe parcursul algoritmului multimea regulilor devine din ce ın ce mai mare, fara a fi scoase

reguli din aceasta multime. Prin urmare orice rescriere posibila ıntr-un anumit moment al algoritmuluiramane posibila pana la terminarea algoritmului.

Conform teoremei 2.10.6 este suficient sa probam ca multimea perechilor critice este inclusa ın relatiade ıntalnire prin rescriere.

Fie (a, b) o pereche critica pentru multimea finala de reguli. Din pasul B al algoritmului rezulta ca

perechea critica (a, b) este adaugata multimii ecuatiilor. Pentru ca ecuatia a◦= b sa dispara din multimea

ecuatiilor se calculeaza fn(a) forma normala a lui a si fn(b) forma normala a lui b. Daca fn(a) = fn(b)

rezulta ca a si b se ıntalnesc prin rescriere. In caz contrar se adauga noua regula fn(a)◦= fn(b) sau

fn(a)◦= fn(b) ceea ce face ca a si b sa se ıntalneasca prin rescriere.

Pentru a obtine concluzia este suficient sa mai aplicam teorema 2.10.6 a perechilor critice pentru cazulecuational. �

Procedura Knuth-Bendix

Forma completa a procedurii Knuth-Bendix se obtine folosind un criteriu care sa asigure terminarea pro-gramului final. Gasirea acestui criteriu este o problema dificila. Ipoteza care accepta acest criteriu estepartea slaba a acestei proceduri.

Criteriul este folosit numai ın cazul B al procedurii ın momentul adaugarii unei noi reguli. Cele douaforme normale diferite pot forma o regula ın doua moduri diferite. Criteriul este folosit numai pentrualegerea uneia dintre cele doua variante. Daca criteriul nu poate alege, atunci procedura se blocheaza.

Page 89: Programare Logica

2.11. TERMINAREA SI PROCEDURA KNUTH-BENDIX 89

Dupa cum am vazut mai sus procedura lucreaza numai cu termeni, prin urmare criterul se refera numaila algebra TΣ(X) a termenilor.

Criteriul A: exista o relatie de ordine compatibila cu structura algebrica, a carei varianta stricta estebine fondata.

Criteriul B: exista o relatie bine fondata ⊢ pe o multime M si o functie ρ : A −→ M cu proprietateapentru orice n ≥ 1 si σ ∈ Σs1s2...sn,s,

ρ(a) ⊢ ρ(d) si ρ(Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)) 6= ρ(Aσ(a1, . . . , ai−1, d, ai+1, . . . , an)) implicaρ(Aσ(a1, . . . , ai−1, a, ai+1, . . . , an)) ⊢ ρ(Aσ(a1, . . . , ai−1, d, ai+1, . . . , an)),

Aplicarea criteriului la alegerea regulilor face posibila aplicarea teoremei 2.11.1 programului final. Seobserva deci ca programul final se termina.

Page 90: Programare Logica

90 CHAPTER 2. RESCRIERI

Page 91: Programare Logica

Chapter 3

PROGRAMARE LOGICA

ECUATIONALA

3.1 IN PRIMUL RAND SEMANTICA

Reamintim cateva concepte introduse ın capitolul precedent pe care le vom folosi ın continuare.Fixam o signatura multisortata (S,Σ).O ecuatie conditionata este

(∀X)l◦=s r if H

unde X este o multime S-sortata de variabile, l si r sunt doua elemente de sort s din TΣ(X) iar H omultime finita de egalitati formale din Sen(TΣ(X)) = TΣ(X) × TΣ(X).

Algebra D satisface ecuatia conditionata (∀X)l◦=s r if H, fapt notat prin

D |=Σ (∀X)l◦=s r if H

daca pentru orice morfism h : TΣ(X) −→ D pentru care ht(u) = ht(v) pentru orice u◦=t v ∈ H, are loc

egalitatea hs(l) = hs(r).

In continuare fixam o multime Γ de ecuatii conditionate, numite axiome sau clauze.Spunem ca algebra D satisface Γ sau ca D e o Γ-algebra si scriem D |= Γ daca D satisface toate ecuatiile

conditionate din Γ.Vom lucra ıntr-o Σ-algebra A.

Congruenta semantica ≡Γ a lui A, notata si ≡AΓ atunci cand este pericol de confuzie, a fost definita prin

a ≡Γ c daca si numai daca (∀h : A −→M |= Γ)hs(a) = hs(c).

Fie G ⊆ Sen(TΣ(X)) o multime de egalitati formale din TΣ(X). Reamintim ca

Γ |= (∀X)G

daca si numai daca orice Γ–algebra satisface (∀X)G, adica hs(u) = hs(v) pentru orice morfism

h : TΣ(X) −→M |= Γ si orice u◦=s t ∈ G.

Observatia 3.1.1 Γ |= (∀X)G daca si numai daca G ⊆ ≡TΣ(X)Γ .

Demonstratie: Γ |= (∀X)G este succesiv echivalent cu- pentru orice Σ–algebra M daca M |= Γ, atunci M |= (∀X)G- pentru orice Σ–algebra M care satisface Γ si pentru orice morfism h : TΣ(X) → M are loc egalitatea

hs(u) = hs(v) pentru orice u◦=s v din G,

- u ≡Γ v oricare ar fi u◦=s v ∈ G,

- G ⊆ ≡TΣ(X)Γ . �

91

Page 92: Programare Logica

92 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

Propozitie 3.1.1 Fie h : A → B un Σ-morfism. Daca a ≡AΓ c, atunci h(a) ≡B

Γ h(c).

Demonstratie: Fie a ≡AΓ b. Vrem sa aratam ca h(a) ≡B

Γ h(b).Fie f : B → M|= Γ. Cum h; f : A → M|= Γ si a ≡A

Γ b, rezulta ca (h; f)(a) = (h; f)(b), echivalent cuf(h(a)) = f(h(b)). Cum f a fost ales arbitrar, rezulta ca h(a) ≡B

Γ h(b). �

Aceasta propozitie arata de fapt corectitudinea regulii logicii ecuationale globale: daca h : A −→ Beste un morfism de Σ-algebre, atunci (∀A)a

◦=s a

′ implica (∀B)hs(a)◦=s hs(a

′).

Corolar 3.1.1 Daca Γ |= (∀X)G si h : TΣ(X)→ TΣ(Y ) este un Σ-morfism, atunci Γ |= (∀Y )h(G).

Demonstratie: Din ipoteza, conform observatiei, deducem ca G ⊆ ≡TΣ(X)Γ . Aplicand Propozitia 3.1.1,

deducem h(G) ⊆ ≡TΣ(Y )Γ , deci conform observatiei Γ |= (∀Y )h(G). �

Fie AΓ factorizarea lui A prin congruenta sa semantica ≡Γ si ηA : A −→ AΓ morfismul de factorizare.Reamintim principalele proprietati ale acestei algebre

AΓ |= Γ

Pentru orice Γ-algebra B si pentru orice morfism h : A −→ B exista si este unic un morfism h# : AΓ −→ Bastfel ıncat ηA;h# = h.

Daca A este Σ-algebra initiala, atunci AΓ este Γ-algebra initiala.

3.2 TEOREMELE LUI HERBRAND

3.2.1 Introducere

Morfismele de algebre se extind natural pentru perechi de elemente sau egalitatii formale si pentru multimide perechi de elemente sau multimi de egalitatii formale. Daca h : A −→ B este un Σ–morfism, atuncipentru orice a, b ∈ A prin definitie h((a, b)) = (h(a), h(b)) sau hs(a

◦=s b) = (hs(a)

◦=s hs(b)). De asemenea

ın locul notatiei hs(a) = hs(b) vom mai utiliza hs((a, b)) ∈ ∆B .Daca G este o multime de egalitati formale din A prin definitie

h(G) = {hs(a)◦=s hs(b) : a

◦=s b ∈ G}.

In plus h(G) ⊆ ∆B ınseamna hs(a) = hs(b) pentru orice a◦=s b ∈ G.

Programarea logica ecuationala se ocupa de rezolvarea unui sistem finit de ecuatii format din egalitatiformale ın care variabilele sunt privite ca necunoscute. De aici provine si denumirea de ecuatii folosita ıncadin capitolele precedente. De fapt rezolvarea unui astfel de sistem a fost facuta ın algebra libera din caresunt termenii ecuatiilor asa cum a fost prezentat ın subcapitolul 2.6 privind unificarea.

Se cauta solutii ın anumite Σ–algebre D. Adica pentru o astfel de algebra D se cauta valori datevariabilelor ın D pentru care egalitatile formale devin egalitati adevarate ın D. Urmeaza formalizarea celorde mai sus.

Notam cu TΣ = TΣ(∅) Σ-algebra initiala (adica obiectul initial ın categoria Σ-algebrelor) si cu TΣ,Γ

Γ-algebra initiala (adica obiectul initial ın categoria Γ-algebrelor, subcategorie a categoriei Σ-algebrelor).

Definitia 3.2.1 Fie A o Σ-algebra si G o multime de egalitati formale ıntre elemente din TΣ(X).

A |= (∃X)G daca exista morfismul h : TΣ(X)→ A astfel ıncat hs(l) = hs(r) pentru orice l◦=s r.

Notam Γ |= (∃X)G daca A |= (∃X)G pentru orice Γ-algebra A.

Programarea logica ecuationala isi pune urmatoarea problema Γ |= (∃X)G.Teoremele lui Herbrand se refera la posibilitatea rezolvarii acestor ecuatii ın toate Γ-algebrele.

Page 93: Programare Logica

3.2. TEOREMELE LUI HERBRAND 93

3.2.2 Teoremele lui Herbrand

In literatura de specialitate se gasesc doua teoreme ale lui Herbrand. Teorema care urmeaza combina celedoua teoreme ıntr-una singura.

Teorema 3.2.2 Fie G o multime de egalitati formale ıntre elemente din TΣ(X). Urmatoarele afirmatiisunt echivalente:

1. Γ |= (∃X)G ;

2. TΣ,Γ |= (∃X)G ;

3. Exista ψ : TΣ(X)→ TΣ astfel ıncat Γ |= (∀∅)ψ(G).

Demonstratie: (1)⇒ (2) este evidenta, deoarece TΣ,Γ este o Γ-algebra.(2)⇒ (3) Conform ipotezei, exista morfismul h : TΣ(X)→ TΣ,Γ astfel ıncat hs(l) = hs(r) pentru orice

l◦=s r ∈ G. Pentru ca TΣ(X) este algebra libera si deci proiectiva conform propozitiei 1.7.2, deoarece

morfismul ηTΣeste surjectiv pe componente exista morfismul ψ : TΣ(X)→ TΣ astfel ıncat ψ; ηTΣ

= h.

TΣ(X) TΣ

TΣ,Γ

-

@@

@@@R

��

���

∃ψ

h ηTΣ

Figure 3.1: Proiectivitatea Σ-algebrei TΣ(X)

Prin urmare ηTΣ(ψ(l)) = ηTΣ

(ψ(r)) pentru orice l◦= r ∈ G. Deoarece η : TΣ −→ TΣ,Γ este morfismul

de factorizare al algebrei TΣ la congruenta semantica ≡Γ deducem ca ψ(l) ≡Γ ψ(r) pentru orice l◦= r ∈ G,

adica ψ(G) ⊆ ≡TΣΓ . Din observatia 3.1.1 deducem Γ |= (∀∅)ψ(G).

(3)⇒ (1) Fie M o Γ-algebra. Avem de aratat ca M |= (∃X)G.Notam cu αM : TΣ →M unicul morfism existent ıntre cele doua algebre. Aratam ca morfismul

ψ;αM : TΣ(X)→M

este solutie, adica αM(ψ(l)) = αM(ψ(r)), pentru orice l◦= r ∈ G.

Deoarece M |= Γ, din ipoteza rezulta ca M |= (∀∅)ψ(G). Utilizand ın definitia satisfacerii mor-

fismul αM : TΣ → M deducem ca αM(ψ(l)) = αM(ψ(r)) pentru orice l◦= r ∈ G, prin urmare

(ψ;αM)(l) = (ψ;αM)(r), pentru orice l◦= r ∈ G.

Deci M |= (∃X)G si demonstratia se ıncheie. �

Prima echivalenta a teoremei arata ca problema programarii logice se reduce la rezolvarea ei ın Γ-algebrainitiala TΣ,Γ, pas deosebit de mare deoarece ın loc de o clasa de algebre lucram numai cu o algebra.

A treia afirmatie din teorema ne arata ca rezolvarea problemei se poate face utilizand numai algebrelibere. Ea face legatura cu programarea prin rescriere si cu conceptul de solutie.

A treia afirmatie mai arata ca pentru existenta solutiei ın TΣ este necesar ca suporturile din Σ-algebrainitiala TΣ, corespunzatoare sorturilor variabilelor cuantificate existential, sa fie nevide.

Exercitiu. Data signatura Σ, sa se determine multimea sorturilor pentru care suportul corespunzatordin TΣ este nevid.

Page 94: Programare Logica

94 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

Din a treia afirmatie a teoremei lui Herbrand se mai vede ca solutia ψ : TΣ(X) → TΣ se cauta ıntr-osubalgebra TΣ a algebrei TΣ(X) ın care este pusa problema (∃X)G. Chiar daca ın TΣ nu mai apare nicio variabila, acest fapt este neglijat ın practica. Sa presupunem ca avem de rezolvat ecuatia x = f(y)unde evident X = {x, y}. Solutia este data chiar de aceasta ecuatie, adica ın TΣ({y}) chiar daca suportulcorespunzator sortului lui y este vid ın TΣ. In continuare ne vor interesa si astfel de solutii, chiar dacaecuatia x = f(y) are solutie numai ın algebrele ın care suportul corespunzator sortului lui y este nevid.

3.3 REGULILE PROGRAMARII LOGICE

In continuare vom considera Γ o multime de ecuatii conditionate si G o multime finita de ecuatii, egalitatiformale, din TΣ(X). Problema programarii logice este Γ |= (∃X)G.

3.3.1 Solutii

Revenim asupra conceptului de solutie deoarece ın cele ce urmeaza vom utiliza o varianta putin modificata,fapt datorat contextului ın care suntem: solutiile se cauta ın Γ–algebre. Comentariile urmatoare se bazeazape diagrama comutativa din figura 3.2. Observam ca:

1. Dat morfismul f , morfismul s este chiar compunerea lui f cu ηTΣ(Y ).

2. Dat morfismul s existenta morfismului f care face diagrama comutativa rezulta din proiectivitateaΣ-algebrei libere TΣ(X).

TΣ(X) TΣ(Y )

TΣ(Y )Γ

-

@@

@@@R

��

���

∃f

s ηTΣ(Y )

Figure 3.2: Folosind proiectivitatea Σ-algebrei TΣ(X)

Propozitie 3.3.1 Cu notatiile din figura 3.2 urmatoarele afirmatii sunt echivalente

1. st(u) = st(v) pentru orice u◦=t v ∈ G

2. ft(u) ≡Γ ft(v) pentru orice u◦=t v ∈ G

Demonstratie: Egalitatea st(u) = st(v) este, datorita comutativitatii diagramei, echivalenta cuηTΣ(Y )(ft(u)) = ηTΣ(Y )(ft(v)), adica cu ft(u) ≡Γ ft(v) deoarece doua elemente sunt egalate de surjectianaturala ηTΣ(Y ) daca si numai daca sunt echivalente semantic. �

Prima conditie spune ca s este solutie pentru (∃X)G ın TΣ(Y )Γ. Vom prefera sa folosim pentruconceptul de solutie a doua conditie din propozitia de mai sus, fapt ce conduce la urmatoarea definitie ıncare facem o generalizare ınlocuind algebra libera TΣ(Y ) cu o algebra.

Definitie 3.3.1 Σ-morfismul f : TΣ(X) −→ A se numeste solutie pentru (∃X)G daca f(G) ⊆ ≡AΓ .

Observatia 3.3.2 Daca ∆ este o multime de egalitati adevarate din TΣ(X), atunci identitatea lui TΣ(X)este solutie pentru (∃X)∆.

Page 95: Programare Logica

3.3. REGULILE PROGRAMARII LOGICE 95

Demonstratie: 1TΣ(X)(∆) ⊆ ∆TΣ(X) ⊆ ≡TΣ(X)Γ .

Observatia 3.3.3 Un Σ-morfism f : TΣ(X) −→ A este solutie solutie pentru (∃X)G daca Γ |= (∀A)f(G),

adica pentru orice morfism h : A −→M |=Σ Γ, h(f(l)) = h(f(r)) pentru orice l◦= r ∈ G.

Demonstratie: Este suficient sa folosim definitia congruentei semantice. Vezi si demonstratia observatiei3.1.1

Propozitie 3.3.1 Compunerea unei solutii cu orice Σ-morfism este solutie.

Demonstratie: Fie s : TΣ(X) −→ TΣ(Y ) o solutie pentru (∃X)G si h : TΣ(Y ) → TΣ(Z) un morfism.Vrem sa aratam ca s;h : TΣ(X)→ TΣ(Z) este solutie pentru (∃X)G, adica Γ |= (∀Z)(s;h)(G).

Deoarece s : TΣ(X) −→ TΣ(Y ) este solutie pentru (∃X)G, atunci Γ |= (∀Y )s(G). Corolarul 3.1.1implica Γ |= (∀Z)h(s(G)).

Deci Γ |= (∀Z)(s;h)(G) si astfel s;h este solutie pentru (∃X)G. �

Din propozitia precedenta rezulta ca daca avem o solutie, atunci aceasta nu este unica. Acest fapt neındeamna sa cautam o solutie cat mai generala.

In general, solutiile sunt construite ın mai multe etape, aparand ın final ca o compunere de morfisme.Morfismele care apar ın procesul de calcul si care, speram, ca ın final sa furnizeze o solutie sunt numitemorfisme calculate.

3.3.2 Reguli de deductie

Fie A o Σ-algebra si • o noua variabila de sort s astfel ıncat • /∈ As. Consideram algebra liber generata deA ∪ {•}, notata TΣ(A ∪ {•}). Un element c din TΣ(A ∪ {•}) se numeste context daca numarul aparitiilorlui • ın c este 1. Pentru d ∈ As, vom nota cu (• ← d) : TΣ(A∪{•})→ A unicul Σ–morfism cu proprietatea(• ← d)(•) = d si (• ← d)(a) = a, pentru orice a ∈ A. Pentru orice t din TΣ(A ∪ {•}) si a ∈ As, vomprefera sa scriem t[a], ın loc de (• ← a)(t).

Datorita faptului ca regulile programarii logice lucreaza pe multimi de egalitati formale, vom defininotiunea de context extins. Fie A o Σ–algebra, c ∈ TΣ(A∪{•})s un context si v ∈ As. O egalitate formala

de forma c◦=s v sau v

◦=s c se numeste context extins. Un context extins c

◦=s v (respectiv v

◦=s c) va fi

notat cu C. Sa observam ca(c

◦=s v)[a] = (• ← a)(c

◦=s v) = (c[a]

◦=s c[v]) = (c[a]

◦=s v).

Orice morfism h : A → B se poate extinde, ın mod unic, la un morfism h• : TΣ(A∪{•}) → TΣ(B∪{•})prin h•(•) = • si h•(a) = h(a), pentru orice a ∈ A. Pentru orice a ∈ A, avem (• ← a);h = h•; (• ← h(a)).Pentru un context c ∈ TΣ(A ∪ {•}) deducem ca h(c[a]) = h•(c)[h(a)], unde h•(c) este context.

Pentru C un context extins, se observa ca h•(C) este un context extins si ca

h(C[a]) = h•(C)[h(a)].

In continuare vom prezenta regulile de deductie folosite ın programarea logica. Aceste reguli ne permit satrecem de la o multime G de egalitati formale la o alta multime G′ de egalitati formale, obtinand si unmorfism calculat. Aplicarea acestor reguli va ınceta ın momentul ın care ajungem la o multime de egalitatiadevarate, ın particular la multimea vida. In acest moment, putem compune toate morfismele calculategasite, ın ordinea aparitiei lor, si astfel vom obtine o solutie pentru problema initiala. Aceasta afirmatieva fi probata mai tarziu ın ipoteza ca toate regulile de deductie utilizate sunt corecte.

Mentionam ın continuare mai multe reguli de deductie utile ın programarea logica.

Page 96: Programare Logica

96 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

Regula morfismului: Daca G ⊆ Sen(TΣ(X)) si θ : TΣ(X)→ TΣ(Y ), atunci

G→m θ(G),

cu morfismul calculat θ.

Regula reflexiei extinse: Daca G ⊆ Sen(TΣ(X)) si θ : TΣ(X) → TΣ(Y ) astfel ıncat θs(l) = θs(r),atunci

G ∪ {l◦=s r} →re θ(G),

cu morfismul calculat θ.

Regula reflexiei: Daca G ⊆ Sen(TΣ(X)) si θ : TΣ(X)→ TΣ(Y ) astfel ıncat θ = CGU{l, r}, atunci

G ∪ {l◦=s r} →r θ(G),

cu morfismul calculat θ.

Observam ca regula reflexiei permite eliminarea din sistem a egalitatilor adevarate, caz ın care morfismulcalculat este o identitate.

Regula pararescrierii: Fie G ⊆ Sen(TΣ(X)), (∀Y )l◦=s r if H ∈ Γ si morfismul θ : TΣ(Y ) → TΣ(X).

Daca C este un context extins cu variabila distinsa • de sort s, atunci

G ∪ {C[θs(l)]} →pr G ∪ θ(H) ∪ {C[θs(r)]}.

Mentionam ca pentru pararescriere, morfismul calculat este morfismul identitate.

Regula paramodulatiei extinse: Fie (∀Y )l◦=s r if H ∈ Γ. Consideram X astfel ıncat X ∩ Y = ∅,

G ⊆ Sen(TΣ(X)) si morfismul θ : TΣ(X ∪ Y )→ TΣ(Z) astfel ıncat θs(l) = θs(a), unde a ∈ TΣ(X)s. DacaC este un context extins cu variabila distinsa • de sort s, atunci

G ∪ {C[a]} →pe θ(G ∪H ∪ {C[r]}),

cu morfismul calculat θ/X , restrictia lui θ la TΣ(X).

Regula paramodulatiei: Fie (∀Y )l◦=s r if H ∈ Γ. Consideram X astfel ıncat X ∩ Y = ∅,

G ⊆ Sen(TΣ(X)) si morfismul θ : TΣ(X ∪ Y ) → TΣ(Z) astfel ıncat θ = CGU{l, a}, unde a ∈ TΣ(X)s.Daca C este un context extins cu variabila distinsa • de sort s, atunci

G ∪ {C[a]} →p θ(G ∪H ∪ {C[r]}),

cu morfismul calculat θ/X , restrictia lui θ la TΣ(X).

Comentariu Dorinta exprimata mai sus de a obtine o solutie cat mai generala face ca regulile de deductieutilizate de semantica operationala a programarii logice sa fie mai restrictive. Mai precis reflexia este reflexiaextinsa cu conditia suplimentara ca θ sa fie cel mai general unificator pentru l si r, iar paramodulatia esteparamodulatia extinsa ın care θ este cel mai general unificator pentru l si a. Conform uzantelor presupunemX ∩ Y = ∅, fapt posibil datorita cuantificarii universale a clauzei care ne permite sa alegem variabile noiın locul celor din Y ori de cate ori este necesar.

Nu recomandam utilizarea variantei extinse a regulilor si nici a regulii morfismului deoarece ele potconduce la pierderea partiala a generalitatii solutiei. Aceste regulile au un rol teoretic.

Page 97: Programare Logica

3.4. CORECTITUDINEA REGULILOR PROGRAMARII LOGICE 97

3.4 CORECTITUDINEA REGULILOR PROGRAMARII LOGICE

Definitie 3.4.1 Fie R o regula de deductie. Sa presupunem ca aplicand regula R obtinem G →R G′ cumorfismul calculat θ : TΣ(X) −→ TΣ(Y ). Spunem ca regula R este o regula corecta daca este ındeplinitaurmatoarea conditie: daca s este o solutie pentru (∃Y )G′, atunci θ; s este solutie pentru (∃X)G.

Observam ca aplicarea unei reguli corecte G→R G′ reduce problema gasirii unei solutii pentru (∃X)G

la gasirea unei solutii pentru (∃Y )G′.Daca se aplica numai reguli corecte ajungandu-se, ın final la o multime formata doar din egalitati

adevarate, ın particular la multimea vida de ecuatii, atunci compunerea tuturor morfismelor calculate esteo solutie a problemei initiale. Aceasta afirmatie rezulta din faptul ca morfismul identitate este solutiepentru orice multime de egalitati adevarate, inclusiv multimea vida.

In continuare vom arata ca regulile de deductie considerate ın sectiunile anterioare sunt corecte.

Deoarece |= (∀X)l◦=s l, orice solutie pentru G este solutie si pentru G ∪ {l

◦=s l}. Prin urmare

eliminarea egalitatilor adevarate este o regula corecta.

Propozitie 3.4.1 Regula morfismului este corecta.

Demonstratie: Presupunem ca G →m θ(G), unde θ : TΣ(X) → TΣ(Y ). Fie s : TΣ(Y ) → TΣ(Z) osolutie pentru (∃Y )θ(G), adica Γ |= (∀Z)s(θ(G)). Trebuie sa aratam ca θ; s este solutie pentru G, adicaΓ |= (∀Z)(θ; s)(G), ceea ce este evident. �

Propozitie 3.4.2 Regula reflexiei extinse este corecta.

Demonstratie: Observam ca regula reflexiei extinse se poate obtine din regula morfismului si eliminareaegalitatilor adevarate. Cum regula morfismului si eliminarea egalitatilor adevarate sunt corecte, rezulta casi regula reflexiei extinse este corecta. �

Corolar 3.4.1 Regula reflexiei este corecta.

Reamintim ca S : TΣ(X) −→ B este solutie pentru (∃X)G daca si numai daca S(G) ⊆ ≡BΓ .

Propozitie 3.4.1 Regula pararescrierii este corecta.

Demonstratie: Consideram pararescrierea

G ∪ C[θs(l)]→pr G ∪ θ(H) ∪ {C[θs(r)]},

unde (∀Y )l◦=s r if H ∈ Γ si θ : TΣ(Y )→ TΣ(X) un Σ-morfism.

Fie S : TΣ(X)→ B o solutie pentru (∃X)G ∪ θ(H) ∪ {C[θs(r)]}, prin urmare

S(G ∪ θ(H) ∪ {C[θs(r)]}) ⊆ ≡BΓ . (1)

Trebuie sa aratam ca S : TΣ(X)→ B este solutie pentru (∃X)(G ∪ C[θs(l)]), adica

S(G ∪ {C[θs(l)]}) ⊆ ≡BΓ .

Deoarece S(G) ⊆ ≡BΓ rezulta direct din (1) mai avem de aratat ca S(C[θs(l)]) ∈ ≡

BΓ .

Fie h : B →M |= Γ. Din (1) folosind morfismul S;h : TΣ(X) −→M |= Γ deducem

(S;h)(G) ∪ (θ;S;h)(H) ∪ {(S;h)(C[θs(r)])} ⊆ ∆M .

Prin urmare:

Page 98: Programare Logica

98 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

(θ;S;h)(H) ⊆ ∆M , (2)(S;h)(C[θs(r)]) ∈ ∆M . (3)

Deoarece M |= (∀Y )l◦=s r if H, folosind morfismul θ;S;h : TΣ(Y )→ M si relatia (2), deducem ca

(θ;S;h)s(l) = (θ;S;h)s(r). (4)

Observam ca

h(S(C[θs(l)])) = (S;h)(C[θs(l)]) = (S;h)•(C)[(S;h)(θs(l))] = (S;h)•(C)[(θs;S;h)(l)] == (S;h)•(C)[(θs;S;h)(r)] = (S;h)•(C)[(S;h)(θs(r))] = (S;h)(C[θs(r)]).

Din (3) deducem ca h(S(C[θs(l)])) ∈ ∆M .Deci S(C[θs(l)]) ∈ ≡

BΓ . �

Propozitie 3.4.3 Regula paramodulatiei extinse se poate obtine din regula morfismului si regula pararescrierii.

Demonstratie: Fie (∀Y )l◦=s r if H ∈ Γ, θ : TΣ(X ∪ Y ) → TΣ(Z) astfel ıncat θs(l) = θs(a), unde

a ∈ TΣ(X)s. Fie C un context extins si • o variabila noua. Aplicand regula morfismului pentru morfismulθ, obtinem:

G ∪ {C[a]} →m θ(G) ∪ {θ(C[a])}.

Mentionam urmatoarele egalitati:

θ(C[a]) = θ•(C)[θ(a)] = θ•(C)[θ(l)].

Acum putem aplica regula pararescrierii si obtinem:

θ(G) ∪ {θ•(C)[θ(l)]} →pr θ(G) ∪ θ(H) ∪ {θ•(C)[θ(r)]} = θ(G ∪H ∪ {C[r]}).

Deci G ∪ {C[a]} →m θ(G) ∪ {θ•(C)[θ(l)]} →pr θ(G ∪H ∪ {C[r]}). �

Propozitie 3.4.4 Regula paramodulatiei extinse este corecta.

Demonstratie: Din Propozitia 3.4.3 stim ca orice paramodulatie extinsa se poate obtine din regula mor-fismului si regula pararescrierii. Din Propozitiile 3.4.1 si 3.4.1 stim ca regulile morfismului si pararescrieriisunt corecte, de unde rezulta ca si regula paramodulatiei extinse este corecta. �

Corolar 3.4.2 Regula paramodulatiei este corecta.

3.5 COMPLETITUDINEA PARAMODULATIEI

3.5.1 Legaturi ıntre regulile de deductie

In continuare vom prezenta alte legaturi dintre regulile de deductie pentru programarea logica.

In primul rand, este evident ca regula reflexiei si regula paramodulatiei sunt cazuri particulare aleregulilor reflexiei extinse si, respectiv, paramodulatiei extinse (caz particular ın care cerem ca morfismulimplicat ın regula sa fie un cel mai general unificator, nu doar un Σ-morfism).

Observam caG ∪ {l=sr} →m θ(G) ∪ {θs(l)

◦= θs(r)},

cu morfismul calculat θ, ceea ce arata ca regula morfismului si eliminarea egalitatilor evidente permiteliminarea regulii reflexiei extinse dintre regulile de lucru.

Page 99: Programare Logica

3.5. COMPLETITUDINEA PARAMODULATIEI 99

Propozitie 3.5.1 Pararescrierea este un caz particular de paramodulatie extinsa.

Demonstratie: Consideram pararescrierea

G ∪ {C[hs(l)]} →pr G ∪ h(H) ∪ {C[hs(r)]},

unde (∀Y )l◦=s r if H ∈ Γ si h : TΣ(Y )→ TΣ(X) este un Σ-morfism (presupunem X ∩ Y = ∅).

Sa consideram Σ-morfismul θ : TΣ(X ∪ Y )→ TΣ(X) definit prin:

1. θ(y) = h(y), pentru orice y ∈ Y ,

2. θ(x) = x, pentru orice x ∈ X.

Observam ca θ(t) = t, pentru orice t ∈ TΣ(X) si θ(u) = h(u), pentru orice u ∈ TΣ(Y ).Deoarece G este o multime de egalitati formale din Sen(TΣ(X)), rezulta ca θs(u=sv) = (θs(u)=sθs(v)) =

(u=sv), pentru orice u=sv ∈ G. In concluzie, putem scrie θ(G) = G.Similar, H este o multime de egalitati formale din Sen(TΣ(Y )) si astfel avem θs(u=sv) = (θs(u)=sθs(v)) =

(hs(u)=shs(v)), pentru orice u=sv ∈ H. In concluzie, putem scrie θ(H) = h(H).De asemenea, contextul extins C este o egalitate formala din Sen(TΣ(X∪{•})) si astfel avem θ•(C) = C.

Luam a = hs(l). Observam ca θs(r) = hs(r) si θs(a) = θs(hs(l)) = hs(l) = θs(l), deoarece l, r ∈ TΣ(Y ).Putem aplica regula paramodulatiei extinse pentru (∀Y )l=sr if H ∈ Γ si θ : TΣ(X ∪ Y ) → TΣ(X)

astfel obtinand:

G ∪ {C[hs(l)]} = G ∪ {C[a]} →pe θ(G ∪H ∪ {C[r]}) = θ(G) ∪ θ(H) ∪ θ(C[r]) =

= G ∪ h(H) ∪ θ•(C)[θs(r)] = G ∪ h(H) ∪C[hs(r)].

Morfismul calculat θ/X este identitatea lui TΣ(X). �

Propozitie 3.5.2 Daca pentru orice clauza (∀Y )l◦=s r if H din Γ, orice variabila din Y apare ın l, atunci

pararescrierea este un caz particular de paramodulatie ın care substitutia calculata este o identitate.

Demonstratie: Pastram notatiile si demonstratia din propozitia precedenta. Vom proba, ın plus, ca θeste cel mai general unificator pentru l si a.

Fie u : TΣ(X ∪ Y ) → TΣ(Z) un unificator pentru l si a. Deoarece us(l) = us(a) = us(hs(l)) rezulta cau(y) = u(h(y)) pentru orice variabila y care apare ın l. Deoarece orice variabila din Y apare ın l, deducemca u(y) = u(h(y)), pentru orice y ∈ Y .

Notam cu u|X restrictia lui u la TΣ(X). Evident u|X (t) = u(t), pentru orice t ∈ TΣ(X).Observam ca θ;u|X = u: pentru orice x ∈ X, u|X (θ(x)) = u|X (x) = u(x), si pentru orice y ∈ Y ,

u|X (θ(y)) = u|X (h(y)) = u(h(y)) = u(y).

Deci θ este cel mai general unificator pentru l si a deoarece u = θ;u|X . �

Lema 3.5.1 Daca (∀Y )t◦=s t ∈ Γ, atunci G →p (x ← t)(G), unde x este o variabila care apare ın G si

nu apare ın t.

Demonstratie: Alegem o aparitie a lui x ın G si scriem G = G′∪{C[x]}, unde C este un context extins.Aplicand regula paramodulatiei pentru (∀Y )t=st ∈ Γ, a = x, θ = CGU{a, l} = CGU{x, t} = x ← t,obtinem:

G = G′ ∪ C[x] −→p (x← t)(G′ ∪ C[t]) = (x← t)(G′) ∪ (x← t)(C[x]) = (x← t)(G).

Page 100: Programare Logica

100 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

Penultima egalitate este adevarata deoarece x nu apare ın t. �

Ipoteza x apare ın G nu este esentiala deoarece, daca x nu apare ın G, (x← t)(G) = G si prin urmare(x← t)(G) se obtine din G ın 0 pasi.

Lema 3.5.2 (Lema substitutiei) Daca sunt ındeplinite urmatoarele conditii: G este o multime finita,

(∀x)x◦= x ∈ Γ pentru orice variabila x, (∀x1 ∀x2 . . . ∀xn)f(x1, x2, . . . , xn)

◦= f(x1, x2, . . . , xn) ∈ Γ pentru

orice simbol de operatie f , atunci regula morfismului poate fi realizata prin regula paramodulatiei.

Demonstratie Primele doua afirmatii care urmeaza dovedesc ca axiomele lemei substitutiei, mai saracedecat cele ale lemei 3.5.1, sunt suficiente pentru a demonstra concluzia lemei 3.5.1:

1. Substitutia unei variabile x cu o variabila y poate fi realizata prin regula paramodulatieiın prezenta axiomei (∀y)y

◦= y.

In cazul ın care x apare ın G si x 6= y se aplica Lema 3.5.1. In rest, evident.

2. Aratam ca substitutia unei variabile cu un termen poate fi realizata prin paramodulatieın prezenta axiomelor (∀x)x

◦= x si (∀x1 ∀x2 . . . ∀xn)f(x1, x2, . . . , xn)

◦= f(x1, x2, . . . , xn).

Vom demonstra acest lucru prin inductie dupa structura termenului t.Primul pas al inductiei este chiar (1).Presupunem ca t = f(t1, t2, . . . , tn).Daca x nu apare ın G, atunci nu avem nimic de demonstrat. Presupunem ca x apare ın G si folosind

(∀x1 ∀x2 . . . ∀xn)f(x1, x2, . . . , xn)=f(x1, x2, . . . , xn) ∈ Γ, unde variabilele x1, . . . , xn sunt noi, si Lema 3.5.1deducem

G→p (x← f(x1, x2, . . . , xn))(G).

In continuare se aplica ipoteza de inductie pentru orice 1 ≤ i ≤ n, substituind fiecare xi cu ti.Mai observam ca

x← f(x1, x2, . . . , xn) ; x1 ← t1 ; x2 ← t2 ; . . . ; xn ← tn = x← f(t1, t2, . . . , tn),

deoarece variabilele x1, x2, . . . , xn sunt noi.

3. Aratam ca regula morfismului poate fi realizata prin regula paramodulatiei.

Fie h : TΣ(X)→ TΣ(Y ). Cum var(G) = {x1, x2, . . . , xn} ⊆ X, a realiza regula morfismului revine la aınlocui fiecare variabila xi cu h(xi). Putem realiza acest lucru conform punctelor (1) si (2):

- ıntai ınlocuim fiecare variabila xi cu o variabila noua zi, pentru orice 1 ≤ i ≤ n:

G→p (x1 ← z1)(G)→p . . .→p (xn ← zn)(. . . (x1 ← z1)(G) . . .) = G′

- acum ınlocuim pentru fiecare 1 ≤ i ≤ n, variabila zi cu h(xi):

G′ ∗→p (z1 ← h(x1))(G)

∗→p . . .

∗→p (zn ← h(xn))(. . . (z1 ← h(x1))(G) . . .) = h(G). �

Observatie. In demonstratia anterioara, la pasul (3), este extrem de important sa schimbam toatevariabilele xi cu variabile noi. Altfel am putea obtine rezultate nedorite, ca ın exemplul de mai jos:

Daca h : TΣ({x, y})→ TΣ({x, y, z}), h(x) = z, h(y) = x si G = {x◦= y}, atunci:

h(G) = (h(x)◦= h(y)) = (z

◦= x),

(x← h(x))((y ← h(y))(G)) = (x← h(x))(x◦= x) = (z

◦= z).

Deci h(G) 6= (x← h(x))((y ← h(y))(G)).Putem sintetiza legaturile gasite ıntre regulile de deductie pentru programarea logica prin Figura 3.3.

Page 101: Programare Logica

3.5. COMPLETITUDINEA PARAMODULATIEI 101

Paramodulatie

Paramodulatieextinsa

Pararescriere Morfism Reflexieextinsa

ReflexieEliminareaegalitatilor �

��

�-

+-

XXXXXXXXXXXXXXXXXz

Lema 3.5.26

var(l) = YProp.3.5.2

QQ

QQQs

Prop.3.5.1

��

��7 ��������������������9

����������9

ZZZ+

••

Prop.3.4.3 ?

Figure 3.3: Legaturile dintre regulile de deductie

3.5.2 Amintiri despre rescriere

Reamintim cateva fapte din sectiunea 2.3.4 privind rescrierile pe care le folosim ın demonstratia urmatoare.Lucram ıntro Σ–algebra A.

O relatie Q pe A se numete ınchisa la contexte daca pentru orice context c si pentru orice perechede elemente a, d din A, aQd implica c[a]Qc[d].

Data o relatie Q pe A, relatia

−→Q = {(c[a], c[d]) : (a, d) ∈ Qs, c ∈ TΣ(A ∪ •) este context unde variabila • are sortul s}.

este cea mai mica relatie inchisa la contexte care include Q.

Notam u ↓Q v daca exista a ∈ A astfel ıncat u∗−→Q a si v

∗−→Q a.

Fixam Γ.Definim prin inductie sirul crescator de multimi de perechi de elemente din A.

Q0 = ∅

Qn+1 = {(h(l), h(r)) : (∀Y )l =s r if H ∈ Γ, h : TΣ(Y ) −→ A, si (∀(u, v) ∈ H)hs(u) ↓Qn hs(v)}

Prin definitie Q este reuniunea sirului crescator definit mai sus.

In cazul ın care Q este definita ca mai sus, ın loc de∗−→Q vom prefera sa scriem

∗=⇒Γ .

Relatia∗

=⇒Γ este denumita Γ–rescriere sau mai scurt rescriere.

Fie ↓Γ relatia de ıntalnire atasata lui∗⇒Γ. Prin definitie a ↓Γ b daca si numai daca exista c astfel ıncat

a∗⇒Γ c si b

∗⇒Γ c. Reamintim ca ıntalnirea prin rescriere ↓Γ este corecta pentru ≡Γ, adica ↓Γ⊆≡Γ.

Teorema 3.5.1 Daca∗⇒Γ este confluenta, atunci ↓Γ este completa.

3.5.3 Prolog

Reamintim ca ∆ ınseamna o multime de egalitati adevarate.

Teorema 3.5.1 Daca a ↓Γ d, atunci {a=sd}∗→pr ∆.

Demonstratie: Presupunem a ↓Γ d. Prin definitie, exista v astfel ıncat a∗⇒Γ v si d

∗⇒Γ v. Tinand cont

de definitia lui∗⇒Γ, putem scrie a

∗→Q v si d

∗→Q v. Deoarece Q este reuniunea sirului crescator {Qn}n∈N ,

rezulta ca exista un numar natural n cu proprietatea a∗→Qn v si d

∗→Qn v, deci a ↓Qn d.

Aratam prin inductie dupa n ca {a◦=s d}

∗→pr ∆.

1. Pentru n = 0 observam ca →Q0 este vida si∗→Q0 este relatia de egalitate. Prin urmare a = d,

concluzia fiind evidenta.

Page 102: Programare Logica

102 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

2. Presupunem, prin ipoteza de inductie, ca pentru orice x, y daca x ↓Qn y, atunci {x◦=s y}

∗→pr ∆.

Presupunem ca a ↓Qn+1 d.Facem o noua inductie dupa numarul pasilor→Qn+1 folositi. Daca numarul pasilor este 0, atunci a = d,

concluzia fiind evidenta.In cazul contrar, presupunem, de exemplu, ca a →Qn+1 w si w ↓Qn+1 d cu un pas mai putin. Din

ipoteza de inductie putem scrie {w◦=s d}

∗→pr ∆.

Deoarece a →Qn+1 w exista (∀Y )l◦=s′ r if H ∈ Γ, morfismul h : TΣ(Y ) → TΣ(X) astfel ıncat

h(u) ↓Qn h(v), pentru orice u◦= v ∈ H, si contextul c ın TΣ(X ∪ {•}) astfel ıncat a = c[hs′(l)] si

w = c[hs′(r)]. Observam ca {c[hs′(l)]◦=s d} →pr h(H) ∪ {c[hs′(r)]

◦=s d} = h(H) ∪ {w

◦=s d}.

Prin urmare, deoarece {w◦=s d}

∗→pr ∆, deducem ca {a

◦=s d}

∗→pr h(H)∪∆. Deoarece h(u) ↓Qn h(v),

pentru orice u◦= v ∈ H, din ipoteza de inductie deducem h(H)

∗→pr ∆, deci {a

◦=s d}

∗→pr ∆. �

Corolar 3.5.1 Daca G este o multime finita astfel ıncat G ⊆↓Γ, atunci G∗→pr ∆.

3.5.4 Completitudinea

Observam ca identitatea lui TΣ(Y ) este solutie pentru (∃Y )∆ deoarece Γ |= (∀Y )∆. Prin urmare, daca

G∗→p ∆ cu morfismul calculat σ, atunci σ este o solutie pentru (∃X)G. Prin urmare, putem opri rezolvarea

ın momentul ajungerii la o multime de egalitati adevarate.

Presupunem ca multimea Γ de ecuatii conditionate satisface urmatoarele conditii: (∀x)x=x ∈ Γ pentruorice variabila x, (∀x1 ∀x2 . . . ∀xn)f(x1, x2, . . . , xn)=f(x1, x2, . . . , xn) ∈ Γ pentru orice simbol de operatief si pentru orice axioma (∀Y )l=sr if H ∈ Γ, orice variabila din Y apare ın l.

Teorema 3.5.2 (Teorema de completitudine) In conditiile de mai sus, daca ↓Γ este completa, atunciorice solutie poate fi obtinuta numai cu regula paramodulatiei.

Demonstratie: Fie σ : TΣ(X)→ TΣ(Y ) o solutie pentru (∃X)G. Prin urmare, σ(G) este o submultimea congruentei semantice, adica σ(G) ⊆≡Γ.

Deoarece ↓Γ este completa, adica ↓Γ=≡Γ, deducem ca σ(G) ⊆↓Γ. Conform Prologului obtinem

σ(G)∗→pr ∆.

Deoarece pentru orice axioma (∀Y )l◦=s r if H ∈ Γ, orice variabila din Y apare ın l, deducem, din

Propozitia 3.5.2, ca orice pararescriere este un caz particular de paramodulatie ın care substitutia calculataeste o identitate. In concluzie, putem scrie σ(G)

∗→p ∆ cu substitutia calculata identitatea.

Din Lema substitutiei deducem ca G∗→p σ(G) cu substitutia calculata σ.

Deci G∗→p ∆ cu substitutia calculata σ. �

3.6 COMPLETITUDINEA NARROWINGULUI

3.6.1 Introducere

Se lucreaza ın algebre libere. Vom nota cu TΣ(X) algebra din care ıncepem sa lucram.

Fie (∀Y )l◦=s r if H ∈ Γ o clauza. Multimea de variabile Y va fi disjuncta de X. Vom presupune ca

TΣ(X) si TΣ(Y ) sunt subalgebre ın TΣ(X ∪ Y ) si notam cu

iX : TΣ(X) −→ TΣ(X ∪ Y ) si iY : TΣ(Y ) −→ TΣ(X ∪ Y )

morfismele incluziune.

In continuare vom lucra cu un caz particular de paramodulatie denumit narrowing sau ıngustare.

Page 103: Programare Logica

3.6. COMPLETITUDINEA NARROWINGULUI 103

Narrowing(Ingustare): Fie (∀Y )l◦=s r if H ∈ Γ si θ = CGU(a, l) : TΣ(X ∪ Y ) −→ B unde a ∈ TΣ(X)

nu este o variabila. Daca G este o multime de egalitati formale din TΣ(X) si C este un context extinsdin TΣ(X ∪ {•}), atunci

G ∪ {C[a]} −→n θ(G ∪H ∪ {C[r]})

cu morfismul calculat iX ; θ.�

Mentionam ca ipoteza care apare mai jos si anume ca membrul stang al concluziei unei axiome nu esteo variabila este o ipoteza naturala deoarece ın caz contrar daca conditiile axiomei sunt verificate, atunciorice termen ar putea fi rescris.

Propozitie 3.6.1 Daca pentru orice clauza (∀Y )l◦=s r if H din Γ l nu este variabila si orice variabila

din Y apare ın l, atunci pararescrierea este un caz particular de ıngustare ın care substitutia calculata esteo identitate.

Demonstratie: Este suficient sa reluam demonstratiile propozitiilor 3.5.1 si 3.5.2 si din egalitatea a =hs(l) din faptul ca l nu este o variabila rezulta ca nici a nu este variabila.

3.6.2 Amintiri despre formele normale

Reamintim ca∗⇒Γ este relatia de rescriere ın A. Faptele de mai jos au fost demonstrate ın sectiunea 2.4.3.

Definitia 3.6.2 Elementul n ∈ A se numeste o forma normala pentru daca

(∀b ∈ A)(n∗⇒Γ b implica n = b).

Fie N multimea elementelor din A care sunt forme normale. Presupunem axioma Formei Normaleunice

FN! (∀a ∈ A)(∃! fn(a) ∈ N)a∗⇒Γ fn(a).

Observatia 3.6.3 Daca a∗⇒Γ d, atunci fn(a) = fn(d).

Observatia 3.6.4 Axioma FN! implica∗⇒Γ este confluenta.

Observatia 3.6.5 Functia fn : A −→ N este surjectiva si a ↓Γ d⇔ fn(a) = fn(d).

Pentru cazul algebrelor libere mai mentionam ca orice subexpresie a unei forme normale este tot oforma normala.

3.6.3 Lema de ridicare

Definitia 3.6.6 O substitutie se numeste normala daca duce orice variabila ıntr-un element ın formanormala.

Propozitie 3.6.7 Presupunem ca multimile de variabile X si Y sunt disjuncte si ca TΣ(X) si TΣ(Y ) suntsubalgebre ın TΣ(X ∪ Y ).

Fie l ∈ TΣ(Y ) astfel ıncat orice variabila din Y apare ın l si a ∈ TΣ(X). Fie ρ : TΣ(X ∪ Y ) −→ TΣ(Z)o substitutie a carei restrictie la TΣ(X) este normala si ρ(a) = ρ(l).

Daca ψ = CGU(a, l) : TΣ(X ∪ Y ) −→ TΣ(V ) si θ este unica substitutie pentru care ρ = ψ; θ, atunci θeste normala.

Page 104: Programare Logica

104 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

Demonstratie: Existenta lui CGU(a, l) rezulta din faptul ca ρ este unificator pentru a si l. In plus,conform observatiei de la finalul sectiunii 2.6, putem sa presupunem ca V ⊆ X ∪ Y si ca ψ(v) = v pentruorice v ∈ V.

Fie v ∈ V. Vom studia doua cazuri.1. Daca v ∈ X, atunci θ(v) = θ(ψ(v)) = ρ(v) este normala prin ipoteza.2. Presupunem v ∈ Y . Deoarece a ∈ TΣ(X) si v 6∈ X rezulta ca variabila v nu apare ın a. Deoarece Y

este multimea variabilelor care apar ın l, v apare ın l. Dar ψ(v) = v implica aparitia lui v ın ψ(l) = ψ(a).Deoarece variabila v nu apare ın a rezulta ca v a fost introdus ın ψ(a) prin substitutia ψ, deci exista x ∈ Xo variabila care apare ın a, astfel ıncat v apare ın ψ(x). Prin urmare θ(v) este subtermen ın θ(ψ(x)) = ρ(x).Deoarece ρ(x) este prin ipoteza o forma normala, rezulta ca orice subtermen al sau este o forma normala.In particular θ(v) este o forma normala. �

Daca θ : X −→ Z si ϕ : Y −→ Z sunt doua functii cu domeniile disjuncte notam cu < θ,ϕ >: X∪Y −→Z unica functie care pe X actioneaza ca θ si pe Y ca ϕ.

Propozitie 3.6.8 Pentru orice (∀Y )l = r if H din Γ presupunem ca orice variabila din Y apare ın l. FieG o multime de egalitati formale din TΣ(X).

Daca θ : TΣ(X) −→ TΣ(Z) este normala si

θ(G) −→pr Q,

atunci θ = ϕθ′ cu θ′ normala, exista R cu θ′(R) = Q si

G −→n R cu substitutia calculata ϕ.

Demonstratie: Fie (∀Y )l◦= r if H ∈ Γ regula si η : TΣ(Y ) −→ TΣ(Z) substitutia utilizate ın pararescriere.

Vom presupune ca variabilele din Y sunt noi, adica Y este disjunct de X.Datorita normalitatii lui θ pararescrierea nu se poate face ıntr-un subtermen de forma θ(x) unde x este

o variabila, asa ca presupunem ca ea se face ın θ(a) = η(l) unde a este un subtermen ın G care nu estevariabila. Prin urmare:

G = G′ ∪ {C[a]}, θ(G) = θ(G′) ∪ {θ•(C)[η(l)]} si Q = θ(G′) ∪ η(H) ∪ {θ•(C)[η(r)]}

unde • este o variabila noua, C este un context extins din TΣ(X ∪ {•}) si θ(a) = η(l).Fie ψ = CGU(a, l) : TΣ(X ∪ Y ) −→ TΣ(V ) si θ′ : TΣ(V ) −→ TΣ(Z) unica substitutie cu propri-

etatea ψθ′ =< θ, η > . Deoarece restrictia θ a lui < θ, η > la TΣ(X) este normala conform ipotezei, si< θ, η >(a) =< θ, η >(l), aplicand propozitia 3.6.7 rezulta normalitatea lui θ′.

Notand cu ϕ : TΣ(X) −→ TΣ(V ) restrictia lui ψ la TΣ(X) deducem ca θ = ϕθ′.Rezulta ca

G −→n ψ(G′ ∪H ∪ {C[r]}) cu morfismul calculat ϕ.

Notand R = ψ(G′ ∪H ∪ {C[r]}) mai observam ca:

θ′(R) = (ψ; θ′)(G′ ∪H ∪ {C[r]}) =< θ, η > (G′ ∪H ∪ {C[r]}) = θ(G′) ∪ η(H) ∪ {θ•(C)[η(r)]} = Q. �

Propozitie 3.6.9 Pentru orice (∀Y )l◦= r if H din Γ presupunem ca orice variabila din Y apare ın l. Fie

G o multime finita de egalitati din TΣ(X).Daca θ : TΣ(X) −→ TΣ(Z) este normala si

θ(G)∗−→pr S,

atunciG

∗−→n G

′ cu morfismul calculat σ

pentru care exista o substitutie normala ǫ cu proprietatile ǫ(G′) = S si θ = σǫ.

Page 105: Programare Logica

3.6. COMPLETITUDINEA NARROWINGULUI 105

G′

R

G

n

n

?

?

V

V ′

X

σ

ϕ

?

?

-

-

-

ǫ

θ′

θ

Z

Z

Z

1Z

1Z

?

?

S

Q = θ′(R)

θ(G)

pr

pr

?

?

Demonstratie: Prin inductie dupa numarul pasilor. Vom pune ın evidenta prima pararescriere

θ(G) −→pr Q∗−→pr S.

Conform propozitiei precedente θ = ϕθ′ cu θ′ normala, exista R cu θ′(R) = Q si

G −→n R cu morfismul calculat ϕ.

Folosind ipoteza de inductie din θ′(R)∗−→pr S deducem

R∗−→n G

′ cu morfismul calculat σ

pentru care exista o substitutie normala ǫ cu proprietatile ǫ(G′) = S si θ′ = σǫ. Din cele de mai sus rezultaca

G∗−→n G

′ cu morfismul calculat ϕσ

si (ϕσ)ǫ = ϕθ′ = θ. �

3.6.4 Epilog

Propozitie 3.6.10 Fie G ⊆ TΣ(X) × TΣ(X) finita. Daca morfismul h : TΣ(X) −→ TΣ(Y ) este un unifi-

cator pentru G, atunci G∗−→r ∅ cu substitutia calculata s′ pentru care exista morfismul f cu proprietatea

s′; f = h.

Demonstratie: Reamintim definitia reflexiei:”Daca θ : A −→ B este cel mai general unificator pentru l si r, atunci G∪{l =t r} −→r θ(G) cu morfismulcalculat θ.”

Vom demonstra propozita prin inductie dupa numarul elementelor multimii G.

Fie G = G′ ∪ {l =s r}. Din ipoteza h(l) = h(r). Fie u : TΣ(X) −→ TΣ(Z) cel mai general unificatorpentru l si r. Atunci exista un unic v : TΣ(Z) −→ TΣ(Y ) astfel ıncat u; v = h.

Observam conform definitiei de mai sus ca G −→r u(G′) cu morfismul calculat u.

Deoarece v(u(G′)) = h(G′) si h este unificator pentru G rezulta ca v este unificator pentru u(G′) care

are mai putire elemente decat G. Aplicand ipoteza de inductie pentru u(G′) deducem ca u(G′)∗−→r ∅ cu

substitutia calculata w pentru care exista f astfel ıncat w; f = v.

Atunci G∗−→r ∅ cu substitutia calculata u;w. In plus h = u; v = (u;w); f . �

Page 106: Programare Logica

106 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

3.6.5 Completitudine

Ipoteze. Pentru orice (∀Y )l◦= r if H din Γ presupunem ca orice variabila din Y apare ın l. Rescrierea

are proprietatea formei normale unice (FN!).

Reamintim ca proprietatea FN! implica confluenta rescrierii si completitudinea relatiei de ıntalnireprin rescriere.

Fie s : TΣ(X) −→ TΣ(Z) o solutie pentru (∃X)G. Cu ipoteza FN! pentru Γ solutia s se poatenormaliza obtinand solutia normala s′ : TΣ(X) −→ TΣ(Z) definita prin s′(x) = fn(s(x)) pentru orice

x ∈ X. Observam ca s(x)∗⇒Γ s′(x) pentru orice x ∈ X. Prin inductie structurala se arata usor ca

s(r)∗⇒Γ s

′(r) pentru orice r ∈ TΣ(X). Pentru orice u◦=t v ∈ G observam ca

s(u)∗⇒Γ s

′(u) si s(v)∗⇒Γ s

′(v).

Probam ca s′ este solutie pentru (∃X)G adica s′(G) ⊆ ≡Γ . Fie u◦=t v ∈ G. Deoarece s este solutie pentru

(∃X)G deducem s(u) ≡Γ s(v). Deoarece∗⇒Γ⊆≡Γ din s(u)

∗⇒Γ s

′(u) si s(v)∗⇒Γ s

′(v) deducem s(u) ≡Γ s′(u)

si s(v) ≡Γ s′(v). Deoarece ≡Γ este relatie de echivalenta obtinem s′(u) ≡Γ s

′(v). Deci s′ este solutie.

Propozitie 3.6.11 Orice solutie normala se obtine prin particularizarea unei solutii obtinute cu narrowingsi reflexie.

Demonstratie: Fie s′ : TΣ(X) −→ TΣ(Z) o solutie normala. Utilizand completitudinea relatiei de

ıntalnire prin rescriere din s′(G) ⊆ ≡TΣ(Z)Γ rezulta ca s′(G) ⊆↓Γ, prin urmare conform prologului

s′(G)∗−→pr ∆. Din lema de ridicare rezulta existenta substitutiei σ cu

G∗−→n G′cu morfismul calculat σ

si a substitutiei normale ǫ cu proprietatile ǫ(G′) = ∆ si s′ = σǫ.

Deoarece G′ este o multime de egalitati unificabile prin ǫ, deducem conform epilogului

G′ ∗−→r ∅ cu morfismul calculat θ

si exista o substitutie ζ cu proprietatea ǫ = θζ. Deoarece s′ = σǫ = σθζ deducem ca orice solutie normalas′ poate fi obtinuta prin particularizarea unei solutii σθ gasite cu narrowing si reflexie.

3.7 REZOLUTIE A LA PROLOG

Programarea logica relationala, ilustrata ın viata de toate zilele de limbajul Prolog, este bazata pe rezolutie.

3.7.1 Rezolutia

Axiomele, clauze Horn, au forma (∀Y )π(v) if H unde1) π(v) este un atom, adica π este un predicat si v este un vector de termeni ın concordanta cu aritatealui π iar2) H este o multime finita de atomi.

Telul, scopul, este o multime finita de atomi. Punand ın evidenta atomul asupra caruia va actionarezolutia pentru o axioma ca mai sus telul devine {π(s)} ∪ T. Ca mai sus presupunem ca variabilele din Ysunt disjuncte de variabilele din tel.

Fie θ = CGU(v, s). Prin rezolutie, cu substitutia calculata θ ajungem la telul θ(H ∪ T ).

Page 107: Programare Logica

3.7. REZOLUTIE A LA PROLOG 107

3.7.2 Rezolutie = Narrowing = Paramodulatie

Trecerea de la varianta relationala la varianta ecuationala se face prin1) adaugarea la signatura a sortului b, transformarea predicatelor ın simboluri de operatii avand rezultatulde sort b2) ınlocuirea fiecarui atom π(v) cu egalitatea π(v)

◦=b t unde t este o constanta de sort b reprezentand

adevarul.

Varianta ecuationala a unei multimi de atomi C va fi notata cu Ce = {π(v)◦=b t : π(v) ∈ C}.

Propozitie 3.7.1 In varianta ecuationala, rezolutia se poate realiza prin narrowing si eliminarea egalitatilorreale.

Demonstratie: Fie G o multime de atomi si (∀Y )π(v) if H o clauza Horn. Consideram G = G′∪{π(s)}si θ = CGU(v, s). Prin rezolutie obtinem θ(G′ ∪H).

In varianta ecuationala Ge = G′e ∪ {π(s)◦=b t} si (∀Y )π(v)

◦=b t ifH

e.Alegem a = π(s), l = π(v) si observam ca θ = CGU(s, v) = CGU(π(s), π(v)).Cum a nu este variabila rezulta ca putem aplica narrowing-ul:

G′e ∪ {π(s)◦=b t} −→n θ(G′e ∪He ∪ {t

◦=b t}) =

θ((G′ ∪H)e ∪ {t◦=b t}) =

[θ(G′ ∪H)]e ∪ {t◦=b t}

In urma eliminarii egalitatii adevarate t◦=b t obtinem varianta ecuationala a rezultatului rezolutiei

θ(G′ ∪H).

Corolar 3.7.1 Fie G o multime de atomi. Orice solutie pentru (∃X)G obtinuta cu rezolutia poate fiobtinuta prin narrowing si eliminarea egalitatilor adevarate ca solutie pentru (∃X)Ge

Propozitie 3.7.2 Fie Γ o multime de clauze Horn si G o multime de atomi. Aplicarea narrowing-uluifolosind Γe ın varianta ecuationala Ge se poate realiza prin rezolutie folosind Γ ın G.

Demonstratie: Fie G = G′ ∪ {P (s)} si (∀Y )π(v)◦=b t ifH

e o clauza din Γe astfel ıncat sa se poata

aplica narrowing-ul lui P (s)◦=b t. Atunci l = π(v) si exista θ = CGU(l, a), unde a trebuie ales.

Singura varianta posibila pentru a este a = P (s). Observam ca a nu este variabila.Cum exista θ = CGU(a, l) rezulta ca P = π si θ = CGU(v, s). Prin urmare

Ge −→n θ(G′e ∪ {t

◦=b t} ∪H

e) = θ(G′ ∪H)e ∪ {t◦=b t}.

Aplicand rezolutia obtinem

G′ ∪ {P (s)} −→ θ(G′ ∪H) cu morfismul calculat θ

In concluzie din Ge −→n G1 cu Γe si morfismul calculat θ, deducem ca G se duce prin rezolutie cu Γsi morfismul calculat θ ın F cu G1 = F e ∪ {t

◦=b t}. �

Corolar 3.7.2 Fie G o multime de atomi. Orice solutie pentru (∃X)Ge obtinuta prin narrowing si elim-inarea egalitatilor adevarate poate fi obtinuta cu rezolutia ca solutie pentru (∃X)G.

Mai observam ca ın varianta ecuationala a unui program Prolog reflexia nu poate fi aplicata deoareceunificarea nu poate fi facuta ın egalitatea π(v) = t.

Concluzia este ca rezolutia este completa, fapt ce rezulta din teoremele de completitudine demonstrateanterior.

Page 108: Programare Logica

108 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

3.8 EXEMPLE

3.8.1 Primul

Se pastreaza notatiile din capitolele precedente. Se da urmatorul fragment de program EQLOG:

sort nat < nlist < list

op 0 : -> nat

op s : nat -> nat

op nil : -> list

op _ _ : list list -> list [assoc]

op cap : nlist -> nat

op cdr : nlist -> list

var E : nat

var L : list

eq cap(E L) = E ***> 1

eq cdr(E L) = L ***> 2

op # : list -> nat

eq #(nil) = 0 ***> 3

eq #(E L) = s(#(L)) ***> 4

Se cere sa se gaseasca solutie pentru urmatoarea interogare:

∃L{#(L) = s(s(0)), cap(L) = 0}

Rezolvare. Avem 3 variante:

• sa unificam membrul stang din ecuatia 1 cu cap(L);

• sa unificam membrul stang din ecuatia 3 cu #(L);

• sa unificam membrul stang din ecuatia 4 cu #(L).

Vom alege ultima alternativa. Deoarece ecuatia 4 are variabile care apar ın scop, redenumim variabilelesi obtinem: #(E L1) = s(#(L1)).

Identificam cadrul de aplicare a paramodulatiei:

• contextul c este z = s(s(0));

• cel mai general unificator pentru #(L) si #(E L1) este L := EL1;

• ecuatia care se utilizeaza nu este conditionata deci H este vid.

Noul scop este {cap(E L1) = 0, s(#(L1)) = s(s(0))}.Subtermenul unde se aplica paramodulatia este #(L1), iar ecuatia folosita este 4. Din nou vom face o

redenumire a variabilelor, ecuatia 4 devine #(E1 L2) = s(#L2) .Dupa noul pas de paramodulatie, scopul devine: {cap(E E1 L2) = 0, s(s(#(L2))) = s(s(0))}. Se

observa ca este posibil sa facem din nou paramodulatie cu ecuatia 4 si putem intra astfel ın ciclu infinit.Vom unifica cap(E E1 L2) cu membrul stang al ecuatiei 1, ın care redenumim variabilele; cel mai

general unificator calculat este E2 := E,L1 := E1 L2. Contextul este z = 0.Scopul devine {E = 0, s(s(#(L2))) = s(s(0))}.Unificam #(L2) cu membrul stang al ecuatiei 3; contextul este z = 0, cel mai general unificator,

L2 := nil.Noul scop este {E = 0, s(s(0)) = s(s(0))} .Prin aplicarea reflexiei, scopul devine ∅ si se adauga la solutie E := 0.Solutia L = 0 E1 nil se obtine astfel :

Page 109: Programare Logica

3.8. EXEMPLE 109

L = E L1

= E E1 L2

= E E1 nil

= 0 E1 nil

3.8.2 Al doilea

Se da urmatorul fragment de program:

0 <= x ***> 1

s x <= s y :- x <= y ***> 2

Se cere solutia pentru:

1. w <= s 0 (toate solutiile);

2. s s 0 <= w ;

3. s s 0 <= w = true, pentru programul echivalent ın EQLOG.

Rezolvare:

1. Prima varianta este de a utiliza prima clauza, cel mai general unificator este w := 0, x := s 0. Scopuldevine 0 <= s 0 care este adevarat din prima clauza; solutia este w = 0 .

A doua varianta este de a utiliza a doua clauza, cel mai general unificator este w := s x, y := 0.Scopul devine x <= 0. Cu prima clauza ın care redenumim variabilele obtinem 0 <= 0, care esteadevarat cu cel mai general unificator x := 0, x′ := 0. Solutia este w = s 0.

2. Folosind clauza 2, unificatorul cel mai general este x := s 0, w := s y, iar scopul devine s 0 <= y.Folosim clauza 2, cu variabilele redenumite deoarece apar ın scop; unificatorul este x′ := 0, y := s y′,iar scopul devine 0 <= y′ care este adevarat conform primei clauze, unificand x := y′. Solutia estew = s s y′.

3. Programul echivalent ın EQLOG se obtine ınlocuind Π(x1, ..., xn) cu Π(x1, ..., xn) = true.

Scopul este {s s 0 <= w = true}. Identificam cadrul de aplicare a narrowing-ului cu ecuatia a doua:

• contextul extins este z = true;

• a este s s 0 <= w;

• l este s x <= s y;

• cel mai general unificator pentru a si l este w := s y, x := s 0.

Scopul devine {true = true, s 0 <= y = true}. Folosim din nou a doua ecuatie, dar redenumimvariabilele:

• contextul extins este z = true;

• a este s 0 <= y;

• l este s x′ <= s y′;

• cel mai general unificator pentru a si l este y := s y′, x′ := 0.

Scopul devine {true = true, true = true, 0 <= y′ = true}. Folosim prima ecuatie ın care redenumimvariabilele:

• contextul extins este z = true;

Page 110: Programare Logica

110 CHAPTER 3. PROGRAMARE LOGICA ECUATIONALA

• a este 0 <= y′;

• l este 0 <= x”;

• cel mai general unificator pentru a si l este x” := y′.

Scopul devine {true = true, true = true, true = true} si prin reflexie devine ∅. Solutia este w = s s y′.

Page 111: Programare Logica

Chapter 4

INSTITUTII

4.1 CATEGORII

Vom folosi cuvantul clasa pentru a desemna colectiile arbitrare de elemente. Orice multime este o clasa.Reciproca este falsa, de exemplu clasa multimilor nu este o multime.

Categoria este unul dintre cele mai abstracte concepte create de algebra. Exemplele de categorii abundaın cele mai multe dintre ramurile matematicii. Definitia categoriei este mai lunga si o vom prezenta ca peo poveste ın mai multe episoade.

Definitia 4.1.1 O categorie C este formata din obiecte si morfisme. Ambele formeaza cate o clasa.Clasa obiectelor categoriei C se noteaza cu Ob(C) sau |C|.

Fiecare morfism f determina unic doua obiecte:1) Primul, sa-l notam A, este numit domeniul sau sursa morfismului2) Al doilea, sa-l notam B, este numit codomeniul sau cosursa morfismului.Pentru fiecare morfism f de sursa A si cosursa B folosim una dintre notatiile

f : A −→ B sau Af−→ B.

Pentru orice pereche de obiecte A si B totalitatea morfismelor de sursa A si cosursa B formeaza o multimenotata C(A,B).

Morfismele se pot compune ın anumite conditii asemanatoare functiilor. Doua morfisme f si g se potcompune numai daca codomeniul primului coincide cu domeniul celui de al doilea. Domeniul compuneriif ; g coincide cu domeniul primului morfism f si codomeniul compunerii coincide cu codomeniul celui de aldoilea morfism g asa cum se vede mai jos

-- -A B C .f g

f;g

Compunerea este asociativa, adica oricare ar fi morfismele f : A −→ B, g : B −→ C si h : C −→ D areloc egalitatea

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

Pentru fiecare obiect A exista un morfism distins 1A : A −→ A care este numit morfismul identitateal lui A deoarece are efect neutru la compunere, adica

1A; f = f pentru orice morfism f de sursa A si g; 1A = g penrtu orice morfism g de cosursa A. �

In orice categorie morfismele identitate sunt unice.

Vom continua cu mai multe exemple.

111

Page 112: Programare Logica

112 CHAPTER 4. INSTITUTII

Sunt mai multe categorii ın care obiectele sunt toate multimile.1. Categoria relatiilor notata Rel ın care morfismele sunt relatiile. Compunerea relatiilor P ∈ Rel(A,B)si Q ∈ Rel(B,C), adica P ⊆ A×B si Q ⊆ B × C este prin definitie

P ;Q = {(a, c) ∈ A×C : (∃b)(a, b) ∈ P si (b, c) ∈ Q} ∈ Rel(A,C).

2. Categoria functiilor partiale este notata PFn. Prin definitie F ∈ PFn(A,B) daca si numai dacaF ⊆ A×B si

(∀a ∈ A)(∀b ∈ B)(∀c ∈ B){(a, b) ∈ F si (a, c) ∈ F implica b = c}.

Observatia 4.1.2 Compunerea ca relatii a doua functii partiale este tot o functie partiala.

Demonstratie: Presupunem F ∈ PFn(A,B) si G ∈ PFn(B,C) si probam ca F ;G ∈ PFn(A,C).

Fie (a, c) ∈ F ;G si (a, c′) ∈ F ;G. Din definitia compunerii exista b, b′ ∈ B astfel ıncat (a, b) ∈ F ,(b, c) ∈ G, (a, b′) ∈ F si (b′, c′) ∈ G. Deoarece F este functie partiala deducem b = b′. Prin urmare(b, c) ∈ G si (b, c′) ∈ G deci c = c′ deoarece si G este functie partiala. In concluzie F ;G este functiepartiala. �

3. Categoria multimilor notata Set are drept morfisme functiile, a caror compunere ca functii coincide cua lor compunere ca relatii.

Sa continuam cu algebra.1. Categoria grupurilor are grupurile ca obiecte si morfismele de grupuri drept morfisme.2. Categoria grupurile abeliene sau comutative are grupurile abeliene ca obiecte si morfismele de grupuridrept morfisme.3. Categoria inelelor are inelele ca obiecte si morfismele de inele drept morfisme.4. Categoria Σ–algebrelor notata AlgΣ.5. Categoria Γ–algebrelor notata AlgΓ.

Din topologie amintim categoria spatiilor topologice ın care obiectele sunt spatie topologice iar morfis-mele sunt functiile continue.

Incheiem cu un exemplu ın care morfismele nu mai sunt functii: categoria atasata unei multimi preor-donate (P,≤). Obiectele acetei categorii sunt chiar elementele multimii P . Date doua elemente x, y dinP multimea morfismelor de la x la y are cel mult un element. Exista un morfism de la x la y daca sinumai daca x ≤ y. Tranzitivitatea relatiei ≤ ne asigura existenta si unicitatea compunerii morfismelor.Reflexivitatea relatiei ≤ ne asigura existenta morfismelor identitate.

4.1.1 Morfisme distinse

Definitia 4.1.3 Un morfism f : A −→ B se numeste izomorfism daca exista un morfism g : B −→ A cuproprietatile f ; g = 1A si g; f = 1B .

Observatia 4.1.4 Morfismul g din definitia anterioara este unic determinat.

Demonstratie: Daca h : B −→ A are proprietatile f ;h = 1A si h; f = 1B , atunci

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

Datorita unicitatii sale morfismul g de mai sus este numit inversul lui f si este notat f−1. �

Page 113: Programare Logica

4.1. CATEGORII 113

Propozitie 4.1.5 Daca f : A −→ B si g : B −→ C sunt izomorfisme, atunci f ; g : A −→ C esteizomorfism. In plus

(f ; g)−1 = g−1; f−1.

Demonstratie: Deoarece f : A −→ B este izomorfism exista morfismul f−1 : B −→ A cu proprietatilef ; f−1 = 1A si f−1; f = 1B . Deoarece g : B −→ C este izomorfism exista morfismul g−1 : C −→ B cuproprietatile g; g−1 = 1B si g−1; g = 1C .

Egalitatile

(f ; g); (g−1; f−1) = f ; (g; g−1); f−1 = f ; 1B ; f−1 = f ; f−1 = 1A

si

(g−1; f−1); (f ; g) = g−1; (f−1; f); g = g−1; 1B ; g = g−1; g = 1C

dovedesc ca f ; g este izomorfism al carui invers este g−1; f−1 ceeace probeaza egalitatea din enunt. �

Definitia 4.1.6 Un morfism f : A −→ B se numeste monomorfism sau monic daca oricare ar fimorfismele g : C −→ A si h : C −→ A egalitatea g; f = h; f implica g = h.

Observatia 4.1.7 Orice izomorfism este monomorfism.

Demonstratie: Sa presupunem ca f : A −→ B este izomorfism, prin urmare exista morfismul f−1 :B −→ A cu proprietatile f ; f−1 = 1A si f−1; f = 1B .

Daca morfismele g : C −→ A si h : C −→ A verifica egalitatea g; f = h; f prin compunere la dreaptacu f−1 deducem g; f ; f−1 = h; f ; f−1 prin urmare g; 1A = h; 1A deci g = h.

Propozitie 4.1.8 Compunerea monomorfismelor este un monomorfism.

Demonstratie: Sa presupunem ca morfismele f : A −→ B si g : B −→ C sunt monomorfisme.

Daca morfismele u : D −→ A si v : D −→ A verifica egalitatea u; (f ; g) = v; (f ; g) adica (u; f); g =(v; f); g, deoarece g este monomorfism rezulta ca u; f = v; f , deci u = v deoarece si f este monomorfism.

Definitia 4.1.9 Un morfism f : A −→ B se numeste epimorfism sau epic daca oricare ar fi morfismeleg : B −→ C si h : B −→ C egalitatea f ; g = f ;h implica g = h.

Observatia 4.1.10 Orice izomorfism este epimorfism.

Propozitie 4.1.11 Compunerea epimorfismelor este un epimorfism.

4.1.2 Dualitate

Fiecare categorie C are o categorie duala notata Cop, definita ın continuare.

Definitia 4.1.12 Duala Cop are aceleasi obiecte ca si C. Morfismele isi permuta sursa si cosursa, adicaprin definitie oricare ar fi obiectele A si B

Cop(A,B) = C(B,A).

Oricare ar fi morfismele f ∈ Cop(A,B) si g ∈ Cop(B,C) compunerea lor este notata f ◦ g si definita prin

f ◦ g = g; f. �

Page 114: Programare Logica

114 CHAPTER 4. INSTITUTII

Corectitudinea acestei definitii rezulta din urmatoarele:

f : A −→ B si g : B −→ C sunt morfismele din Cop;

ın C morfismele devin f : B −→ A si g : C −→ B si se pot compune obtinand morfismul g; f : C −→ A;

care ın Cop devine un morfism de la A la C.

Se poate verifica cu usurinta ca Cop satisface conditiile de a fi o categorie.

Observatia 4.1.13 Duala categoriei Cop este C.

Fiecare concept din teoria categoriilor are un dual. Pentru a obtine conceptul dual procedam astfel:

Scriem definitia conceptului ın Cop si apoi revenim ın C, obtinand conceptul dual.

Dualul dualului oricarui concept este conceptul initial.

Observatia 4.1.14 Notiunile de monomorfism si epimorfism sunt duale una alteia.

Demonstratie: Fie f ∈ Cop(A,B) un monomorfism, adica oricare ar fi morfismele g ∈ Cop(C,A) sih ∈ Cop(C,A) egalitatea g ◦ f = h ◦ f implica g = h.

Sa ne mutam ın C. Morfismul f ∈ C(B,A) este dualul unui monomorfism daca oricare ar fi morfismeleg ∈ C(A,C) si h ∈ C(A,C) egalitatea f ; g = f ;h implica g = h.

Deci dualul unui momomorfism este un epimorfism. �

Exista si concepte autoduale, adica dualul este chiar conceptul initial. Exemple de concepte autodualesunt morfismele identitate si izomorfismele.

Fiecare propozitie P din teoria categoriilor are o propozitie duala P o, care se obtine din P ınlocuindfiecare concept cu dualul sau.

Principiul dualitati. Daca o propozitie privind teoria categoriilor este adevarata ın orice categorie,atunci si duala ei este adevarata ın orice categorie.

Motivatie: Presupunem ca propozitia P este adevarata ın orice categorie si aratam ca duala P o esteadevarata ın orice categorie C.

Deoarece P este adevarata ın orice categorie, rezulta ca P este adevarata ın Cop, prin urmare P o esteadevarata ın categoria C. �

Principiul dualitatii este util deoarece ne permite sa facem mai putine demonstratii. De exemplu:propozitiile “compunerea de monomorfisme este un monomorfism” si “compunerea de epimorfisme este unepimorfism” sunt duale, prin urmare este suficent sa demonstram numai una dintre ele deoarece a douarezulta din prima folosind principiul dualitatii.

4.1.3 Subcategori

O categorie D se numeste subcategorie a categoriei C daca

1. Orice obiect din D este obiect al lui C,2. Oricere ar fi obiectele A si B din D, morfismele din D(A,B) sunt din C(A,B), adica D(A,B) ⊆

C(A,B),

3. morfismele din D se compun ca ın C si

4. pentru orice obiect A din D morfismul 1A din C(A,A) se gaseste ın D(A,A).

Page 115: Programare Logica

4.2. FUNCTORI 115

PFn este subcategorie a lui Rel. Set este subcategorie a lui PFn. In aceste exemple obiectelesubcategoriei coincid cu cele ale categoriei.

Subcategoria D a categoriei C se numeste plina daca D(A,B) = C(A,B) oricare ar fi obiectele A si Bdin D. O subcategorie plina este caracterizata de obiectele ei, deoarece morifsmele sunt toate morfismeledin categoria C cu sursa si cosursa din D. De exemplu subcategoria grupurilor comutative este subcategorieplina a categoriei grupurilor.

4.2 FUNCTORI

Categoriile, ca toate structurile algebrice, au si ele morfismele lor. Ele se numesc functori.

Definitia 4.2.1 Fie doua categorii C si D. Un functor F : C −→ D de la categoria C la categoria D

1. asociaza fiecarui obiect C din categoria C un alt obiect F (C) din categoria D

2. asociaza fiecarui morfism f : A −→ B din categoria C un alt morfism F (f) : F (A) −→ F (B) dincategoria D astfel ıncat

(a) F (f ; g) = F (f);F (g) oricare ar fi morfismele f : A −→ B si g : B −→ C din C,

(b) F (1A) = 1F (A) pentru orice obiec A din C. �

Fiecare categorie C poseda un functor identitate 1C : C −→ C definit prin

1. 1C(A) = A pentru orice obiect A din C si,

2. 1C(f) = f pentru orice morfism f din C.

Ca toate morfismele functorii se pot compune daca cosursa primului coincide cu sursa celui de al doilea.

Definitia 4.2.2 Compunerea F ;G : A −→ C a functorilor F : A −→ B si G : B −→ C este definita prin

1. (F ;G)(A) = G(F (A)) pentru orice obiect A din C,

2. (F ;G)(f) = G(F (f)) pentru orice morfism f din C. �

Probam ca F ;G este functor.

1. (F ;G)(f ; g) = G(F (f ; g)) = G(F (f);F (g)) = G(F (f));G(F (g)) = (F ;G)(f); (F ;G)(g) undef : A −→ B si g : B −→ C sunt morfisme din C,

2. (F ;G)(1A) = G(F (1A)) = G(1F (A)) = 1G(F (A)) = 1(F ;G)(A) pentru orice obiect A din C.

Compunerea functorilor este asociativa. Fie F : A −→ B, G : B −→ C si H : C −→ D. Pentru orice obiectA din A

((F ;G);H)(A) = H((F ;G)(A)) = H(G(F (A))) = (G;H)(F (A)) = (F ; (G;H))(A).

Pentru orice morfism f din A

((F ;G);H)(f) = H((F ;G)(f)) = H(G(F (f))) = (G;H)(F (f)) = (F ; (G;H))(f).

In concluzie (F ;G);H) = F ; (G;H).

Daca F : A −→ B este un functor, atunci 1A;F = F si F ; 1B = F. Prin urmare categoriile formeaza ocategorie “mare” deoarece totalitatea functorilor dintre doua categorii fixate s-ar putea sa nu fie o multime.Vom nota aceasta categorie mare cu Cat.

Page 116: Programare Logica

116 CHAPTER 4. INSTITUTII

Propozitie 4.2.3 Daca F : C −→ D este un functor si f : A −→ B un izomorfism, atunci F (f) este unizomorfism.

Demonstratie: Deoarece f : A −→ B un izomorfism exista morfismul f−1 : B −→ A cu proprietatilef ; f−1 = 1A si f−1; f = 1B . Aplicand functorul functorul F obtinem

F (f ; f−1) = F (1A) si F (f−1; f) = F (1B),

prin urmare

F (f);F (f−1) = 1F (A) si F (f−1);F (f) = 1F (B),

deci F (f) este izomorfism avand inversul F (f−1) adica

F (f)−1 = F (f−1). �

Fie S si C doua categorii si M : S −→ Cop un functor. Daca f : A −→ B si g : B −→ C sunt douamorfisme din S, atunci

M(f ; g) = M(g);M(f).

Intradevar M(f ; g) = M(f) ◦M(g) = M(g);M(f). Un astfel de functor se mai numeste contravariant.

4.3 CONEXIUNI GALOIS

O conexiune Galois

(P,≤)∗−→←−∗

(Q,≤)

este formata din doua multimi partial ordonate (P,≤) si (Q,≤) si doua functii * (desi sunt notate la feldeosebirea se va face din context) cu urmatoarele proprietati:

1. (∀p, p1 ∈ P ) p ≤ p1 =⇒ p∗1 ≤ p∗,

2. (∀q, q1 ∈ Q) q ≤ q1 =⇒ q∗1 ≤ q∗,

3. (∀p ∈ P ) p ≤ p∗∗,

4. (∀q ∈ Q) q ≤ q∗∗.

Primele doua cerinte ne spun ca functiile * sunt descrescatoare.

Probam unele consecinnte ale axiomelor de mai sus

1. ∗ ∗ ∗ = ∗.Din (4) rezulta p∗ ≤ p∗∗∗. Din (3), p ≤ p∗∗, si cu (1) obtinem p∗∗∗ ≤ p∗. Deci p∗∗∗ = p∗.

2. • = ∗∗ este operator de ınchidere.Din (3) avem p ≤ p•. Cum p∗ = p∗∗∗ rezulta p∗∗ = p∗∗∗∗ deci p• = p••. Daca p ≤ q, aplicand (1) si (2)avem q∗ ≤ p∗ si p∗∗ ≤ q∗∗ deci p• ≤ q•.

Exercitiu Inlocuiti una dintre relatiile de ordine cu duala ei si aratati ca notiunea de conexiune Galoiseste echivalenta cu o pereche de aplicatii F : Q −→ P si G : P −→ Q cu proprietatea

(∀p ∈ P )(∀q ∈ Q)F (q) ≤ p⇔ q ≤ G(p).

Conceptul de conexiune Galois mai este echivalent si cu cel de functori adjuncti ıntre categoriile atasateunor multimi partial ordonate.

Page 117: Programare Logica

4.4. INSTITUTII 117

4.3.1 Conexiunea Galois atasata unei relatii

Fie A si B doua multimi si R ⊆ A×B o relatie. Relatiei R ıi atasam conexiunea Galois

(P(A),⊆)∗−→←−∗

(P(B),⊆)

unde (P(X),⊆) reprezinta multimea partilor multimii X (X ∈ {A,B}) ordonata (partial) cu incluziuneaiar functiile * sunt definite ın modul urmator:

C∗ = {b ∈ B | ∀c ∈ C, cRb} pentru orice C ⊆ A,

D∗ = {a ∈ A | ∀d ∈ D,aRd} pentru orice D ⊆ B.Se verifica usor cele patru proprietati din definitia conexiunii Galois. Probam numai prima si a treiaconditie

Fie C ⊆ C1 ⊆ A. Probam C∗1 ⊆ C

∗.Fie b ∈ C∗

1 . Prin definitie bRc pentru orice c ∈ C1. Deoarece C ⊆ C1 deducem ca bRc pentru orice c ∈ C.Deci b ∈ C∗.

Fie C ⊆ A. Probam ca C ⊆ C∗∗.Fie c ∈ C. Din definitia lui C∗ deducem ca pentru orice b ∈ C∗ are loc cRb. Deoarece c este ın relatia Rcu orice element din C∗ deducem ca c ∈ C∗∗.

Propozitie 4.3.1 Conexiunea Galois atasata unei relatii satisface

1. (⋃

i∈I Ci)∗ =

i∈I C∗i unde Ci ⊆ A pentru orice i ∈ I,

2. (⋃

i∈I Di)∗ =

i∈I D∗i unde Di ⊆ B pentru orice i ∈ I.

Demonstratie: Probam numai prima egalitate. Pentru orice b ∈ B remarcam echivalenta urmatoarelorobservatii

b ∈ (⋃

i∈I Ci)∗,

bRc pentru orice c ∈⋃

i∈I Ci,

bRc pentru orice i ∈ I si c ∈ Ci,bRc pentru orice c ∈ Ci si i ∈ I,b ∈ C∗

i pentru orice i ∈ I si

b ∈⋂

i∈I C∗i .

4.4 INSTITUTII

Se numeste institutie (notata cu I) urmatoarea constructie

Sign

Set

Catop

Sen

Mod

�����*

HHHHHj

unde Sign este o categorie, Set este categoria multimilor, Catop este duala categoriei categoriilor iar Sensi Mod sunt doi functori. Obiectele categoriei Sign se numesc signaturi. Sign este numita categoriasignaturilor. De asemenea, se mai da cate o relatie de satisfacere pentru fiecare signatura (obiect dincategoria signaturilor),

|=Σ ⊆ |Mod(Σ)| × Sen(Σ) pentru orice signatura Σ ∈ |Sign|

Page 118: Programare Logica

118 CHAPTER 4. INSTITUTII

care verifica urmatoarea conditie de satisfacere:

∀ϕ : Σ −→ Σ′,∀M ′ ∈ |Mod(Σ′)|,∀e ∈ Sen(Σ),

M ′ |=Σ′ Sen(ϕ)(e) ⇐⇒Mod(ϕ)(M ′) |=Σ e. �

Se numeste Σ-model orice obiect M ∈ |Mod(Σ)|. Se numeste Σ-propozitie orice element e ∈ Sen(Σ).

Pentru orice signatura Σ, relatiei |=Σ ıi putem asocia o conexiune Galois ca mai ınainte

(P(|Mod(Σ)|),⊆)∗−→←−∗

(P(Sen(Σ)),⊆).

Definitia 4.4.1 Spunem ca Σ-modelul M satisface multimea de Σ-propozitii E ⊆ Sen(Σ), fapt notat prinM |=Σ E daca M |=Σ e pentru orice e ∈ E.

Observatia 4.4.2 M |=Σ E daca si numai daca M ∈ E∗.

Observam ca E∗ este multimea modelelor lui E.

Observatia 4.4.3 Daca M |=Σ E atunci M |=Σ E•.

Demonstratie: Intr-adevar, daca M |=Σ E atunci M ∈ E∗ = E∗∗∗ = E•∗ adica M |=Σ E•. �

Are loc si conditia de satisfacere extinsa:Pentru orice morfism de signaturi ϕ : Σ −→ Σ′, pentru orice M ′ ∈ |Mod(Σ′)| si pentru orice E ⊆ Sen(Σ)

M ′ |=Σ′ Sen(ϕ)(E)⇐⇒Mod(ϕ)(M ′) |=Σ E.

Membrul stang este echivalent cuM ′ |=Σ′ Sen(ϕ)(e) pentru orice e ∈ E care conform conditiei de satisfacere este echivalent cuMod(ϕ)(M ′) |=Σ e pentru orice e ∈ E, adica cu membrul drept.

4.4.1 Consecinta semantica

Definitia 4.4.4 Spunem ca multimea de Σ-propozitii E implica Σ-propozitia e ∈ Sen(Σ), sau ca e este oconsecinta semantica a lui E si notam E |=Σ e daca

(∀M ∈ |Mod(Σ)|)M |=Σ E =⇒M |=Σ e. �

Observatia 4.4.5 E |=Σ e daca si numai daca e ∈ E•.

Demonstratie: Din definitie E |=Σ e este echivalent cu (∀M)M ∈ E∗ =⇒ M |=Σ e, adica cu e ∈ E∗∗,deci cu e ∈ E•.

Multimea E• se numeste multimea consecintelor semantice ale multimii E.

Definitia 4.4.6 Oricare ar fi multimile de Σ-propozitii E si E1 spunem ca E1 este o consecinta semanticaa lui E si notam E |=Σ E1 daca

(∀M ∈ |Mod(Σ)|)M |=Σ E =⇒M |=Σ E1. �

Observatia 4.4.7 E |=Σ E1 daca si numai daca E∗ ⊆ E∗1 , daca si numai daca E1 ⊆ E

Page 119: Programare Logica

4.4. INSTITUTII 119

Lema 4.4.1 Pentru orice morfism de signaturi ϕ : Σ −→ Σ′ si pentru orice E ⊆ Sen(Σ) avem

Sen(ϕ)(E)∗ = Mod(ϕ)−1(E∗).

Demonstratie: Din conditia de satisfacere extinsa, pentru orice M ′ ∈ |Mod(Σ′)|,

M ′ |=Σ′ Sen(ϕ)(E)⇐⇒Mod(ϕ)(M ′) |=Σ E

de unde M ′ ∈ Sen(ϕ)(E)∗ ⇐⇒Mod(ϕ)(M ′) ∈ E∗ deci

M ′ ∈ Sen(ϕ)(E)∗ ⇐⇒M ′ ∈Mod(ϕ)−1(E∗)

ceea ce demonstreaza egalitatea din enunt. �

Observatia 4.4.8 (Lema ınchiderii) Pentru orice ϕ : Σ −→ Σ′ morfism de signaturi si orice E ⊆Sen(Σ) avem

Sen(ϕ)(E•) ⊆ Sen(ϕ)(E)•.

Demonstratie: Plecand de la

Sen(ϕ)(E•) ⊆ Sen(ϕ)(E•)• = Sen(ϕ)(E•)∗∗

si folosind observatia anterioara

Sen(ϕ)(E•)∗∗ = (Mod(ϕ)−1(E•∗))∗ = (Mod(ϕ)−1(E∗))∗ = (Sen(ϕ)(E))∗∗ = (Sen(ϕ)(E))•

obtinem concluzia. �

Observatia 4.4.9 Fie ϕ : Σ −→ Σ′ un morfism de signaturi e ∈ Sen(Σ) si E ⊆ Sen(Σ).

1. E |=Σ e implica Sen(ϕ)(E) |=Σ′ Sen(ϕ)(e),

2. Daca Mod(ϕ) : Mod(Σ′) −→Mod(Σ) este surjectiv pe obiecte, atunciE |=Σ e daca si numai daca Sen(ϕ)(E) |=Σ′ Sen(ϕ)(e).

Demonstratie:

1. Semnificatia lemei ınchiderii este aceea ca pentru orice e ∈ E•, Sen(ϕ)(e) ∈ Sen(ϕ)(E)• adica dacaE |=Σ e atunci Sen(ϕ)(E) |=Σ′ Sen(ϕ)(e) ceea ce, ın cuvinte, ınseamna ca daca aplicam unei deductibilitatisemantice un morfism de signaturi obtinem tot o deductibilitate semantica.

2. Pentru demonstrarea incluziunii contrare folosim ipoteza Sen(ϕ)(E) |=Σ′ Sen(ϕ)(e).

FieM |=Σ E. Deoarece Mod(ϕ) : Mod(Σ′) −→Mod(Σ) este surjectiv pe obiecte existaM ′ ∈ |Mod(Σ′)|astfel ıncat M = Mod(ϕ)(M ′), prin urmare Mod(ϕ)(M ′) |=Σ E. Din conditia de satisfacere deducemM ′ |=Σ′ Sen(ϕ)(E), prin urmare din ipoteza M ′ |=Σ′ Sen(ϕ)(e). Folosind din nou conditia de satisfacereMod(ϕ)(M ′) |=Σ e, deci M |=Σ e. �

Propozitie 4.4.10 Daca ϕ : Σ −→ Σ′ este morfism de signaturi iar Mod(ϕ) : Mod(Σ′) −→Mod(Σ) estesurjectiv pe obiecte, atunci pentru orice E ⊆ Sen(Σ) avem Mod(ϕ)(Sen(ϕ)(E)∗) = E∗.

Demonstratie: Facem observatia ca pentru o functie surjectiva f : A −→ B, pentru orice C ⊆ B areloc egalitatea f(f−1(C)) = C. Cum din lema 4.4.1 rezulta egalitatea

Sen(ϕ)(E)∗ = Mod(ϕ)−1(E∗)

obtinem, tinand seama de observatia anterioara, Mod(ϕ)(Sen(ϕ)(E)∗) = Mod(ϕ)(Mod(ϕ)−1(E∗)) = E∗.

Page 120: Programare Logica

120 CHAPTER 4. INSTITUTII

4.4.2 Exemple

Un exemplu din algebra

Vom descrie succint un exemplu simplu si neartificial de institutie. In acest exemplu X este o multimefixata de variabile.

Drept categorie a signaturilor luam categoria inelelor comutative CRing. Functorul

Sen : CRing −→ Set

asociaza fiecarui inel R, inelul de polinoame cu coeficienti ın R si variabile din X, adica Sen(R) = R[X].In plus orice morfism de inele g : R→ R′ se prelungeste ın mod natural la un morfism de ineleSen(g) : R[X] −→ R′[X] prin Sen(g)(x) = x pentru orice x ∈ X.

Functorul

Mod : CRing −→ Catop

asociaza fiecarui inel comutativ R categoria R-algebrelor notata Mod(R). O R-algebra este o pereche (a, I)unde a : R→ I este un morfism de inele.

Pentru orice morfism de inele ϕ : R′ → R functorul

Mod(ϕ) : Mod(R)→Mod(R′)

este definit prin:

Mod(ϕ)(a, I) = (ϕ; a, I) pentru orice R-algebra (a, I) si

Mod(ϕ)(m) = m pentru orice morfism m de R-algebre.

Relatia de satisfacere asa cum este definita mai jos reflecta ideea ca ıntro R–algebra polinomul areradacini.

Pentru orice R-algebra (a, I) si orice functie f : X → I notam cu < a, f >: R[X] −→ I unicul morfismde inele a carui restrictie la R este a si a carui restrictie la X este f . Pentru orice R-algebra (a, I) si oricepolinom p ∈ R[X], relatia de satisfacere este definita prin:

(a, I) |=R p⇐⇒ (∃s : X → I) < a, s > (p) = 0.

Pentru orice morfism de signaturi, adica de inele comutative ϕ : R′ → R, pentru orice R-algebra (a, I)si pentru orice functie s : X → I observam ca

Sen(ϕ);< a, s >=< ϕ; a, s > .

Verificam conditia de satisfacere. Fie ϕ : R′ → R un morfism de inele comutative, (a, I) o R-algebra sip ∈ R′[X]. Observam ca afirmatia

(a, I) |=R Sen(ϕ)(p)

este succesiv echivalenta cu

(∃s : X → I) < a, s > (Sen(ϕ)(p)) = 0,(∃s : X → I) < ϕ; a, s > (p) = 0,

(ϕ; a, I) |=R′ p,Mod(ϕ)(a, I) |=R′ p

deci conditia de satisfacere este verificata.

Page 121: Programare Logica

4.4. INSTITUTII 121

Institutia calculului propozitional

Fie X o multime de variabile propozitionale si Σ o signatura algebrica cu un singur sort, cu simbolurile defunctii

¬ : bool→ bool si ∧ : bool bool→ bool.

Consideram TΣ(X), Σ-algebra expresiilor booleene cu variabile din X. Mentionam ca textul urmator esteindependent de signatura aleasa pentru a defini expresiile calculului propozitional.

Pentru institutia calculului propozitional categoria signaturilor este data de Set, categoria multimilor.O multime este o signatura deoarece ın definitia urmatoare se considera a fi multimea variabilelor propo-zitionale folosite ın constructia expresiilor booleene.

Functorul Sen

Functorul Sen : Set → Set se defineste pe obiecte prin Sen(X) = TΣ(X). Astfel se asociaza fiecareimultimi de variabile propozitionale X, multimea suport a Σ-algebrei TΣ(X) a expresiilor booleene cuvariabile din X formate cu ajutorul conectorilor logici dati de signatura Σ.

Fie f : X → Y o functie si iX : X → TΣ(X), iY : Y → TΣ(Y ) incluziuni. Atunci conform proprietatiide universalitate a Σ-algebrei liber generate exista un unic Σ-morfism Sen(f) : TΣ(X) → TΣ(Y ) cuproprietatea iX ;Sen(f) = f ; iY , fapt reflectat de comutativitatea diagramei de mai jos.

XiX //

f

��

TΣ(X)

∃!Sen(f)��

YiY // TΣ(Y )

Aratam ca Sen astfel definit este functor.Mai intai legea compunerii. Fie f : X → Y si g : Y → Z doua functii. Atunci conform diagramei de

mai jos si a modului ın care a fost definit Sen rezulta ca

iX ;Sen(f);Sen(g) = f ; iY ;Sen(g) = f ; g; iZ

Din proprietatea de universalitate a Σ-algebrei TΣ(X), partea cerand unicitatea, rezulta caSen(f ; g) = Sen(f);Sen(g).

XiX //

f

��

TΣ(X)

∃!Sen(f)��

∃!Sen(f ;g)

vv

YiY //

g

��

TΣ(Y )

∃!Sen(g)��

ZiZ // TΣ(Z)

Pentru o multime de variabileX si functia identitate 1X : X → X observam ca Sen(1X) = 1TΣ(X) = 1Sen(X)

Functorul Mod

Vom nota cu B2 algebra booleana cu doua elemente care ın cele ce urmeaza este privita ca o Σ-algebra.Pentru o multime de variabile X definim Mod(X) ca fiind categoria discreta (ın care toate morfismele

sunt identitati) ale carei obiecte sunt Σ-morfismele h ∈ AlgΣ(TΣ(X),B2).Mentionam ca un functor ıntre doua categorii provenind din multimi ca mai sus este pur si simplu o

functie. Pentru a defini Mod pentru functii consideram f : X → Y o functie. AtunciMod(f) : Mod(Y )→Mod(X) sau

Mod(f) : AlgΣ(TΣ(Y ),B2)→ AlgΣ(TΣ(X),B2).

Page 122: Programare Logica

122 CHAPTER 4. INSTITUTII

Definim Mod(f) prin Mod(f)(h) = Sen(f);h pentru orice morfism h : TΣ(Y )→ B2 iar pentru morfismeMod(f) duce identitatile ın identitati. Din constructie rezulta imediat ca pentru orice functie f : X → Y ,Mod(f) este functor.

Aratam ca Mod este functor.

Pentru compunere consideram Xf // Y

g // Z doua functii si imaginile lor prin Mod

AlgΣ(TΣ(Z),B2)Mod(g)// AlgΣ(TΣ(Y ),B2)

Mod(f)// AlgΣ(TΣ(X),B2)

Verificarea legii compunerii rezulta din sirul de egalitati

Mod(f ; g)(h) = Sen(f ; g);h

= Sen(f);Sen(g);h

= Sen(f);Mod(g)(h)

= Mod(f)(Mod(g)(h))

= (Mod(g);Mod(f))(h)

Deci Mod(f ; g) = Mod(g);Mod(f).

Pentru identitati avem Mod(1X )(h) = Sen(1X);h = 1TΣ(X);h = h pentru orice h ∈ AlgΣ(TΣ(X),B2),deci Mod(1X ) = 1AlgΣ(TΣ(X),B2).

Relatia de satisfacere

Fie X o multime de variabile, e ∈ Sen(X) si h ∈ Mod(X) = AlgΣ(TΣ(X),B2). Intuitiv, morfismulh : TΣ(X) −→ B2 care da valori de adevar variabilelor din X, satisface expresia e a calculului propozitionaldaca rezultatul evaluarii expresiei e pentru valorile de adevar ale variabilelor din X este 1, adica adevarul.Definim relatia de satisfacere |=X prin

h |=X e⇔ h(e) = 1

Verificam conditia de satisfacere. Fie f : X → Y o functie, e ∈ Sen(X), h′ ∈Mod(Y ). Atunci

Mod(f)(h′) |=X e ⇔ Mod(f)(h′)(e) = 1

⇔ (Sen(f);h′)(e) = 1

⇔ h′(Sen(f)(e)) = 1

⇔ h′ |=Y Sen(f)(e)

4.5 PREZENTARI

Observatia 4.5.1 Fie f : A −→ B o functie.

1. f(f−1(D)) ⊆ D pentru orice D ⊆ B.

2. Daca C ⊆ A si D ⊆ B atunci, f(C) ⊆ D daca si numai daca C ⊆ f−1(D).

Propozitie 4.5.2 Fie ϕ : Σ −→ Σ1 un morfism de signaturi, E ⊆ Sen(Σ) ai E1 ⊆ Sen(Σ1). Urmatoareleafirmatii sunt echivalente:

1. Sen(ϕ)(E) ⊆ E•1 ,

2. E1 |=Σ Sen(ϕ)(E).

3. pentru orice M1 ∈ |Mod(Σ1)|,M1 |=Σ1 E1 =⇒Mod(ϕ)(M1) |=Σ E,

Page 123: Programare Logica

4.5. PREZENTARI 123

Demonstratie: Observatia 4.4.7 dovedeste echivalenta primelor doua afirmatii, dar si echivalenta lor cu

E∗1 ⊆ Sen(ϕ)(E)∗.

Folosind lema 4.4.1 ultima incluziune este echivalenta cu

E∗1 ⊆Mod(ϕ)−1(E∗).

Prin urmare conform proprietatii 2 din observatia 4.5.1 este echivalenta cu

Mod(ϕ)(E∗1 ) ⊆ E∗

adica pentru orice M1 ∈ |Mod(Σ1)|,M1 ∈ E∗1 implica Mod(ϕ)(M1) ∈ E∗ ceea ce, evident, este a treia

afirmatie. �

Definitia 4.5.3 Se numeste prezentare o pereche (Σ, E) unde Σ ∈ |Sign|, si E ⊆ Sen(Σ).

Un morfism de signaturi ϕ : Σ −→ Σ′ se numeste morfism de prezentari ϕ : (Σ, E) −→ (Σ′, E′) dacasatisface conditiile echivalente ale propozitiei precedente.

Observatia 4.5.4 Daca ϕ : (Σ, E) −→ (Σ′, E′) este morfism de prezentari, atunci ϕ : (Σ, E•) −→ (Σ′, E′)este tot morfism de prezentari.

Demonstratie: Din ipoteza rezulta ca Sen(ϕ)(E) ⊆ E′• de unde Sen(ϕ)(E)• ⊆ E′• si, folosind lemaınchiderii, obtinem Sen(ϕ)(E•) ⊆ Sen(ϕ)(E)• ⊆ E′• ceea ce demonstreaza concluzia. �

Propozitie 4.5.5 Compunerea ca morfisme de signaturi a doua morfisme de prezentari este tot un mor-fism de prezentari.

Demonstratie: Fie (Σ, E)ϕ−→ (Σ′, E′)

ψ−→ (Σ′′, E′′) doua morfisme de prezentari. Observam ca

Sen(ϕψ)(E) = (Sen(ϕ)Sen(ψ))(E) = Sen(ψ)(Sen(ϕ)(E)) ⊆ Sen(ψ)(E′•) ⊆ E′′•

ultima incluziune datorandu-se observatiei anterioare. �

4.5.1 Institutia prezentarilor

Din propozitia anterioara obtinem ca multimea prezentarilor unei institutii I ımpreuna cu morfismele deprezentari formeaza o categorie, pe care o vom nota cu Pres(I).

Definim institutia prezentarilor Ip unei institutii I. Categoria prezentarilor lui I devine categoriasignaturilor lui Ip

Signp = Pres(I).

Notam cu V : Pres(I) −→ Sign functorul uituc, definit prin V (Σ, E) = Σ pentru orice prezentare (Σ, E)si V (φ) = φ pentru orice morfism de prezentari φ. Prin definitie

Senp = V ;Sen.

Folosind propozitia 4.5.2 putem defini corespondentul lui Mod pentru categoria prezentarilor si anume

Modp : Pres(I) −→ Catop.

Prin definitie Modp(Σ, E) reprezinta subcategoria plina data de toate modelele ce satisfac E. Pentru oricemorfism de prezentari ϕ : (Σ, E) −→ (Σ′, E′) consideram diagrama

Page 124: Programare Logica

124 CHAPTER 4. INSTITUTII

��

6

��

6Mod(Σ′)

Modp(Σ′, E′)

Mod(Σ)

Modp(Σ, E)

-

-

Mod(ϕ)

Modp(ϕ)

unde prin definitie Modp(ϕ) este restrictia si co-restrictia lui Mod(ϕ).

Este suficient sa mai definim relatia de satisfacere si sa demonstram conditia de satisfacere. Prindefinitie

M |=(Σ,E) e⇐⇒M |=Σ e

pentru orice (Σ, E)-model M si orice e ∈ Sen(Σ).

Demonstam conditia de satisfacere. Fie ϕ : (Σ, E) −→ (Σ′, E′) un morfism de prezentari, M ′ un (Σ′, E′)model si e ∈ Sen(Σ).

Modp(ϕ)(M ′) |=(Σ,E) e

adica Mod(ϕ)(M ′) |=Σ e este echivalenta conform conditiei de satisfacere din I cu M ′ |=Σ Sen(ϕ)(e), deciechivalenta cu

M ′ |=(Σ,E) Senp(ϕ)(e).

4.6 TEORII

Se numeste teorie o prezentare (Σ, E) cu E = E•. Deoarece • este operator de ınchidere rezulta ca teoriileformeaza pentru fiecare signatura cate o familie Moore ın multimea partial ordonata prin incluziune amultimii partilor lui Sen(Σ). Propozitia urmatoare este un caz particular al propozitiei 1.3.8.

Propozitie 4.6.1 Orice intersectie de teorii este o teorie.

Propozitie 4.6.2 Daca ϕ : Σ −→ Σ′ este morfism de signaturi iar (Σ′, E′) este o teorie atunci si(Σ, Sen(ϕ)−1(E′)) este teorie.

Demonstratie: Din lema ınchiderii

Sen(ϕ)(Sen(ϕ)−1(E′)•) ⊆ Sen(ϕ)(Sen(ϕ)−1(E′))•.

Folosind prima proprietate din observatia 4.5.1 si faptul ca ınchiderea este crescatoare

Sen(ϕ)(Sen(ϕ)−1(E′))• ⊆ E′• = E′.

Prin tranzitivitatea incluziunii

Sen(ϕ)(Sen(ϕ)−1(E′)•) ⊆ E′,

deci Sen(ϕ)−1(E′)• ⊆ Sen(ϕ)−1(E′), conform proprietatii a doua din observatia 4.5.1.

4.6.1 Institutia teoriilor

Un morfism de teorii este un morfism de prezentari ıntre doua teorii. Se obntine astfel o noua categorie,categoria teoriilor, notata Th(I). Prin definitie, Th(I) este o subcategorie plina a lui Pres(I).

Putem considera restrictia lui Modp la categoria teoriilor pe care o vom nota cu Modt.

Th(I) Pres(I) CatopModp

Modt

-�

� -6

Page 125: Programare Logica

4.7. INSTITUTIA LOGICII ECUATIONALE MULTISORTATE 125

4.7 INSTITUTIA LOGICII ECUATIONALE MULTISORTATE

Institutia logicii ecuationale multisortate este urmatoarea constructie

Sig

Set

Catop

Sen

Alg

�����*

HHHHHj

unde categoria Sig a signaturilor algebrice, functorii Alg si Sen si relatia de satisfacere |=Σ vor fi definiteın sectiunile urmatoare.

4.7.1 Categoria signaturilor algebrice Sig

Definitia 4.7.1 Fie S o multime si Σ = {Σw,s}w∈S∗,s∈S o familie de multimi. Perechea

(S, {Σw,s}w∈S∗,s∈S) se numeste signatura algebrica.

In cele ce urmeaza vom folosi si notatiile (S,Σw,s) sau (S,Σ).Vom nota cu Sig categoria signaturilor algebrice construita astfel :Obiectele categoriei Sig sunt signaturile algebrice.Daca (S,Σw,s) si (S′,Σ′

w′,s′) sunt doua signaturi algebrice, morfismele categoriei Sig ıntre obiectele(S,Σw,s) si (S′,Σ′

w′,s′) sunt de forma

ϕ = (f, {gw,s}w∈S∗,s∈S) : (S,Σw,s) −→ (S′,Σ′w′,s′),

unde f : S −→ S′ si gw,s : Σw,s −→ Σ′f∗(w),f(s) pentru orice w ∈ S∗, s ∈ S sunt functii. (Am notat cu

f∗ : S∗ −→ S′∗ functia definita prin f∗(s1s2 . . . sn) = f(s1)f(s2) . . . f(sn), pentru orice n ∈ IN , si si ∈ Spentru orice 1 ≤ i ≤ n).

In cele ce urmeaza vom utiliza si notatia ϕ = (f, g).Operatia de compunere a morfismelor se defineste astfel :Fie ϕ = (f, g) : (S,Σ) −→ (S′,Σ′) si ϕ′ = (f ′, g′) : (S′,Σ′) −→ (S′′,Σ′′) doua morfisme. Atunci

ϕ;ϕ′ : (S,Σ) −→ (S′′,Σ′′) este morfismul

ϕ;ϕ′ = (f ; f ′, {gw,s; g′f∗(w),f(s)}w∈S∗,s∈S).

Propozitie 4.7.2 Sig este o categorie.

Demonstratie: Pentru orice signatura algebrica (S,Σ) morfismul identic este 1(S,Σ) = (1S , {1Σw,s}w∈S∗,s∈S).

In plus, operatia de compunere a morfismelor este asociativa. Intr-adevar, fieϕ = (f, g) : (S,Σ) −→ (S′,Σ′), ϕ′ = (f ′, g′) : (S′,Σ′) −→ (S′′,Σ′′) siϕ′′ = (f ′′, g′′) : (S′′,Σ′′) −→ (S′′′,Σ′′′) trei morfisme de signaturi algebrice. Atunci

(ϕ;ϕ′);ϕ′′ = ((f ; f ′); f ′′, (gw,s; g′f∗(w),f(s)); g

′′(f ;f ′)∗(w),(f ;f ′)(s))

= (f ; (f ′; f ′′), gw,s; (g′f∗(w),f(s); g

′′f ′∗(f∗(w)),f ′(f(s))))

= (f, g); (f ′; f ′′, g′w′,s′ ; g′′f ′∗(w′),f ′(s′))

= ϕ; (ϕ′;ϕ′′)

Deci Sig este categorie.

Page 126: Programare Logica

126 CHAPTER 4. INSTITUTII

4.7.2 Functorul Alg

Definim functorul

Alg : Sig −→ Catop.

Pe obiecte:

Alg(S,Σ) = AlgΣ,

pentru orice (S,Σ) ∈ |Sig|, unde AlgΣ este categoria Σ-algebrelor.

Un obiect A din |AlgΣ| este de forma A = (A, {Aw,s}w∈S∗,s∈S), unde

A : S −→ Set si Aw,s : Σw,s −→ (Aw → As) pentru orice w ∈ S∗, s ∈ S sunt functii.

Vom nota As = A(s), pentru orice s ∈ S. Reamintim ca As1s2...sn = As1 ×As2 × · · · ×Asn . Daca σ ∈ Σw,s

ın loc de Aw,s(σ) mai scriem Aw,sσ sau chiar Aσ daca nu este pericol de confuzie.

Pe morfisme: pentru orice (f, g) ∈ Sig((S,Σ), (S′,Σ′)), functorul

Alg(f, g) : AlgΣ′ −→ AlgΣ

este definit astfel:

a) Pe obiecte: Fie (A, {Aw,s}w∈S′∗,s∈S′) o Σ′–algebra. Atunci

Alg(f, g)(A, {Aw′ ,s′}w′∈S′∗,s′∈S′) = (f ;A, {gw,s;A

f∗(w),f(s)}w∈S∗,s∈S) ∈ |AlgΣ|

Din f : S −→ S′ si A : S′ −→ Set rezulta ca f ;A : S −→ Set. Conform notatiei precedente,Af(s) = (f ;A)s pentru orice s ∈ S. Prin urmare elementele de sort s din Alg(f, g)(A, {Aw

′ ,s′}w′∈S′∗,s′∈S′)

sunt elementele de sort f(s) din (A, {Aw′,s′}w′∈S′∗,s′∈S′).

Observatie: Daca w = s1 . . . sn, atunci(f ;A)w = (f ;A)s1 × · · · × (f ;A)sn = Af(s1) × · · · ×Af(sn) = Af(s1)...f(sn) = Af∗(w).

Deoarece gw,s : Σw,s −→ Σ′f∗(w),f(s) si Af

∗(w),f(s) : Σ′f∗(w),f(s) −→ (Af∗(w) −→ Af(s)) rezulta ca

gw,s;Af∗(w),f(s) : Σw,s −→ ((f ;A)w −→ (f ;A)s), pentru orice w ∈ S∗ si orice s ∈ S.

b) Pe morfisme : Fie h : (A,Aw′,s′) −→ (B,Bw′,s′) un morfism de Σ′–algebre. Definim

Alg(f, g)(h) : (f ;A, {gw,s;Af∗(w),f(s)}) −→ (f ;B, {gw,s;B

f∗(w),f(s)}) prin

Alg(f, g)(h) = f ;h,

unde (f ;h)(s) = hf(s) : Af(s) −→ Bf(s) pentru orice s ∈ S.

Aratam ca definitia este corecta, adica familia de functii f ;h este un morfism de Σ–algebre. Aceastarevine la a arata ca pentru orice w ∈ S∗, orice s ∈ S si orice σ ∈ Σw,s diagrama urmatoare este comutativa

? ?

(f ;A)w

(f ;B)w

(f ;A)s

(f ;B)s

(f ;h)w (f ;h)s

-

-

(gw,s;Af∗(w),f(s))(σ)

(gw,s;Bf∗(w),f(s))(σ)

Comutativitatea diagramei precedente este echivalenta cu comutativitatea diagramei

Page 127: Programare Logica

4.7. INSTITUTIA LOGICII ECUATIONALE MULTISORTATE 127

? ?

Af∗(w)

Bf∗(w)

Af(s)

Bf(s)

hf∗(w) hf(s)

-

-

Af∗(w),f(s)(gw,s(σ))

Bf∗(w),f(s)(gw,s(σ))

iar aceasta rezulta din faptul ca h este morfism de Σ′–algebre.

Propozitie 4.7.3 Alg(f,g) este functor.

Demonstratie: Daca 1A este morfismul identic al unei Σ-algebre, atunci Alg(f, g)(1A) = 1Alg(f,g)(A).Fie h : A −→ B si h′ : B −→ C doua morfisme de Σ′–algebre. Prin urmare pentru orice s ∈ S

(Alg(f, g)(h);Alg(f, g)(h′))s = Alg(f, g)(h)s;Alg(f, g)(h′)s

= (f ;h)s; (f ;h′)s = hf(s);h′f(s)

= (h;h′)f(s) = (f ; (h;h′))s = (Alg(f, g)(h;h′))s,

deci Alg(f, g)(h);Alg(f, g)(h′) = Alg(f, g)(h;h′). Asadar Alg(f, g) este functor.

Propozitie 4.7.4 Alg este functor.

Demonstratie: Pentru orice signatura algebrica (S,Σ) avem evident Alg(1(S,Σ)) = 1AlgΣ .Fie ϕ = (f, g) : (S,Σ) −→ (S′,Σ′) si ϕ′ = (f ′, g′) : (S′,Σ′) −→ (S′′,Σ′′) doua morfisme de signaturi

algebrice. Vom arata ca functorii Alg(ϕ′);Alg(ϕ) si Alg(ϕ;ϕ′) coincid, demonstrand ca actioneaza identicpe obiecte si pe morfisme.

Fie A = (A, {Aw,s}w∈S′′∗,s∈S′′) o Σ′′–algebra. Atunci

(Alg(ϕ′);Alg(ϕ))(A) = Alg(ϕ)(Alg(ϕ′)(A)) = Alg(ϕ)(f ′;A, {g′w,s;Af ′∗(w),f ′(s)}w∈S′∗,s∈S′) =

= (f ; (f ′;A), {gw,s; (g′f∗(w),f(s);A

f ′∗(f∗(w)),f ′(f(s)))}w∈S∗,s∈S)

= ((f ; f ′);A, {(gw,s; g′f∗(w),f(s));A

(f ;f ′)∗(w)),(f ;f ′)(s)}w∈S∗,s∈S)

= Alg(f ; f ′, {gw,s; g′f∗(w),f(s)})(A) = Alg(ϕ;ϕ′)(A).

Pentru orice morfism de Σ′′–algebre h : A −→ B

(Alg(ϕ′);Alg(ϕ))(h) = Alg(f, g)(Alg(f ′, g′)(h)) = Alg(f, g)(f ′;h) = f ; (f ′;h) = (f ; f ′);h = Alg(ϕ;ϕ′)(h).

Deci Alg(ϕ);Alg(ϕ′) = Alg(ϕ;ϕ′),oricare ar fi morfismele de signaturi algebrice ϕ si ϕ′ . Asadar Alg estefunctor.

4.7.3 Functorul Sen

Un comentariu este necesar pentru a motiva prezentarea de mai jos.Propozitiile logicii ecuationale sunt si propozitii ale calculului cu predicare cu egalitate. Reciproca nu

este adevarata. In multe variante ale calculului cu predicate apar variabile libere si variabile legate, fapt

Page 128: Programare Logica

128 CHAPTER 4. INSTITUTII

ce ıngreuneaza, cel putin din punct de vedere tehnic, atat expunerea cat si intelegerea. Vom folosi dinnou artificiul de transformare a variabilelor ın operatii constante. Dupa cum am mai facut-o ın capitoleleprecedente, aceasta transformare a variabilelor ın constante se realizeaza prin schimbarea signaturii. Acestfapt explica utilizarea unei algebre initiale ın locul unei algebrei libere pentru modelarea “expresiilor” dincalculul cu predicate.

Pentru orice morfism de signaturi algebrice ϕ : (S,Σ) −→ (S′,Σ′), notam cu ϕ# : TΣ −→ Alg(ϕ)(TΣ′ )unicul morfism de Σ–algebre. Reamintim ca TΣ este Σ–algebra initiala.

Definim functorul Sen : Sig −→ Set astfel :

1. Pe obiecte : Pentru orice signatura algebrica Σ

Sen(Σ) = TΣ × TΣ = {l◦=s r|s ∈ S, l, r ∈ (TΣ)s}s∈S .

2. Pe morfisme : Pentru orice morfism de signaturi algebrice ϕ : (S,Σ) −→ (S′,Σ′) functiaSen(ϕ) : Sen(Σ) −→ Sen(Σ′) este definita prin

Sen(ϕ)(l◦=s r) = ϕ#

s (l)◦=f(s) ϕ

#s (r).

Propozitie 4.7.5 Sen este functor.

Demonstratie:Fie ϕ = (f, g) : (S,Σ) −→ (S′,Σ′) si ψ = (f ′, g′) : (S′,Σ′) −→ (S′′,Σ′′) doua morfisme de signaturi

algebrice. Deoarece Alg(ϕ)(Alg(ψ)(TΣ′′ )) = (Alg(ψ);Alg(ϕ))(TΣ′′ ) = Alg(ϕ;ψ)(TΣ′′ ) siψ# : TΣ′ → Alg(ψ)(TΣ′′ ), deducem

Alg(ϕ)(ψ#) : Alg(ϕ)(TΣ′ ) −→ Alg(ϕ;ψ)(TΣ′′ ),

prin urmare exista doua morfisme

TΣ Alg(ϕ;ψ)(TΣ′′ )--ϕ#;Alg(ϕ)(ψ#)

(ϕ;ψ)#care deoarece TΣ este Σ–algebra initiala sunt egale. Asadar avem

(Sen(ϕ);Sen(ψ))(l◦=s r) = Sen(ψ)(ϕ#

s (l)◦=f(s) ϕ

#s (r))

= (ψ#f(s)(ϕ

#s (l))

◦=f ′(f(s)) ψ

#f(s)(ϕ

#s (r))

= (ϕ#s ;Alg(ϕ)(ψ#)s)(l)

◦=(f ;f ′)(s) (ϕ#

s ;Alg(ϕ)(ψ#)s)(r)

= (ϕ;ψ)#s (l)◦=(f ;f ′)(s) (ϕ;ψ)#s (r)

= Sen(ϕ;ψ)(l◦=s r),

deci Sen este functor.

4.7.4 Incluziuni de signaturi

Definitia 4.7.6 O incluziune de signaturi este un morfism de signaturi

ϕ = (f, g) : (S,Σ) −→ (S′,Σ′)

care verifica conditiile suplimentare

Page 129: Programare Logica

4.7. INSTITUTIA LOGICII ECUATIONALE MULTISORTATE 129

1. S este o submultime a lui S′ si f este functia incluziune a lui S ın S′

2. Pentru orice w ∈ S∗ si s ∈ S, Σw,s este o submultime a lui Σ′f∗(w),f(s) si functia gw,s este incluziunea

dintre cele doua multimi.

Propozitie 4.7.7 Daca ϕ este o incluziune de signaturi, atunci Alg(ϕ) este un functor uituc.

Cuantificarea .s are rolul de a indica sortul.Fie (S,Σ) o signatura algebrica. Vom nota cu LΣ o anumita Σ-algebra initiala. Suportul ei este definit

drept cea mai mica familie {Ts}s∈S de multimi cu proprietatea

σ ∈ Σs1s2...sn,s, xi ∈ Tsi =⇒ σ(x1, x2, . . . , xn).s ∈ Ts.

Folosind constructia de mai sus observam ca pentru orice incluziune de signaturi i : (S,Σ) → (S′,Σ′)obtinem (LΣ)s ⊂ (LΣ′)s pentru orice s ∈ S. Mai mult LΣ este subalgebra a lui Alg(i)(LΣ′), morfismul deincluziune al subalgebrei LΣ ın algebra Alg(i)(LΣ′) fiind chiar i#.

Propozitie 4.7.8 Daca i este o incluziune de signaturi, atunci Sen(i) este o incluziune de multimi.

4.7.5 Relatia si conditia de satisfacere

Vom defini ın continuare relatia de satisfacere.

Definitia 4.7.9 Fie A o Σ–algebra. Spunem ca A satisface Σ–ecuatia l◦=s r daca si numai daca

us(l) = us(r) pentru unicul Σ–morfism u : TΣ −→ A.

Notatii 4.7.10 Daca A satisface l◦=s r, vom nota A |=Σ l

◦=s r.

Cu aceasta definitie are loc

Propozitie 4.7.11 Fie ϕ = (f, g) : (S,Σ) −→ (S′,Σ′) un morfism de signaturi algebrice, l◦=s r ∈ Sen(Σ)

si B o Σ′–algebra. Atunci este ındeplinita conditia de satisfacere

Alg(ϕ)(B) |=Σ l◦=s r ⇐⇒ B |=Σ′ Sen(ϕ)(l

◦=s r).

Demonstratie: Notand cu t : TΣ′ −→ B unicul Σ′-morfism deducem ca

ϕ#;Alg(ϕ)(t) : TΣ −→ Alg(ϕ)(B)

este unicul Σ-morfism. Din definitia relatiei de satisfacere deducem urmatoarele echivalente:

Alg(ϕ)(B) |=Σ l◦=s r ⇔

(ϕ#;Alg(ϕ)(t))s(l) = (ϕ#;Alg(ϕ)(t))s(r)⇔

(ϕ#s ;Alg(ϕ)(t)s)(l) = (ϕ#

s ;Alg(ϕ)(t)s)(r)⇔

tf(s)(ϕ#s (l)) = tf(s)(ϕ

#s (r))⇔

B |=Σ′ ϕ#s (l)

◦=f(s) ϕ

#s (r)⇔

B |=Σ′ Sen(ϕ)(l◦=s r).

Cu aceasta conditia de satisfacere este demonstrata.

Page 130: Programare Logica

130 CHAPTER 4. INSTITUTII

Page 131: Programare Logica

Chapter 5

MODULARIZARE

5.1 LIMITE si COLIMITE INTR-O CATEGORIE

Limitele si colimitele sunt notiuni duale. Din punct de vedere tehnic nu conteaza pe care o tratam. Vomprefera colimitele deoarece au mai multe aplicatii ın informatica.

Definitia 5.1.1 Fie F : I −→ C un functor. Un cocon sau con inductiv F (i)γi−→ A pentru functorul F

este format dintr-un obiect A din categoria C si o familie de morfisme γi : F (i) −→ A indexata de obiectele

i ale categoriei I cu proprietatea F (α); γj = γi pentru orice morfism α : i −→ j din I.

In loc de F (i)γi−→ A mai scriem si (γi, A). �

Numele coconului provine din cel al conceptului dual numit con

Compunerea unui cocon cu un morfism este tot un cocon.

Observatia 5.1.2 Daca F (i)γi−→ A este un cocon pentru F : I −→ C si daca f : A −→ B este un

morfism, atunci F (i)γi;f−→ B este un cocon pentru F .

Demonstratie: Pentru orice morfism α : i −→ j din I, din F (α); γj = γi deducem F (α); (γj ; f) = γi; f

deci F (i)γi;f−→ B este un cocon pentru F . �

Orice functor duce un cocon ıntrun cocon.

Observatia 5.1.3 Daca F (i)γi−→ A este un cocon pentru F : I −→ C si daca G : C −→ D este un functor,

atunci G(F (i))G(γi)−→ G(A) este un cocon pentru F ;G.

Demonstratie: Pentru orice morfism α : i −→ j din I, din F (α); γj = γi deducem

(F : G)(α);G(γj ) = G(F (α));G(γj ) = G(F (α); γj) = G(γi),

deci G(F (i))G(γi)−→ G(A) este cocon pentru F ;G. �

131

Page 132: Programare Logica

132 CHAPTER 5. MODULARIZARE

Definitia 5.1.4 Un cocon F (i)γi−→ A pentru functorul F : I −→ C se numeste colimita a lui F daca

pentru orice alt cocon F (i)βi−→ B exista un unic morfism f : A −→ B pentru care αi; f = βi pentru orice

obiect i din I. Vom utiliza notatia

colim F = F (i)γi−→ A. �

Definitia 5.1.5 O categorie se numeste mica daca obiectele sale formeaza o multme.

Un caz particular de colimite sunt sumele directe, numite si coproduse. Ele se obtin pentru o categoriemica I ın care toate morfismele sunt identitati, adica o multime. Un functor de la I la categoria C este defapt o familie {F (i)}i∈I de obiecte din C indexata de multimea I. Observam ca un cocon pentru F estepur si simplu o familie de morfisme αi : F (i) −→ A, deoarece conditia impusa mai sus pentru morfismeledin I este automat ındeplinita pentru morfismele identitate.

Definitia 5.1.6 Familia de morfisme αi : F (i) −→ A este o suma directa a familiei de obiecte {F (i)}i∈I

daca pentru orice alta familie de morfisme βi : F (i) −→ B indexata de obiectele i din I exista un unic

morfism f : A −→ B cu proprietatea αi; f = βi pentru orice obiect i din I.

Mentionam ca ın categoria atasata unei multimi partial ordonate sumele directe, daca exista, coincidcu supremurile.

5.1.1 Colimite de multimi

Propozitie 5.1.7 In cazul particular al teoriei multimilor, suma directa a unei familii {Fi}i∈I de multimi

este reuniunea lor disjuncta A =⋃

i∈I Fi × {i} ımpreuna cu familia de functii {αi : Fi −→ A}i∈I definita

pentru orice obiect i din I si orice a ∈ Fi prin αi(a) = (a, i).

Demonstratie: Fie {βi : Fi −→ B}i∈I o familie de functii. Definim functia β : A −→ B prin β(a, i) =βi(a) pentru orice i ∈ I si a ∈ Fi. Observam ca pentru orice i ∈ I si a ∈ Fi

(αi;β)(a) = β(αi(a)) = β(a, i) = βi(a).

Deci pentru orice i ∈ I rezulta ca αi;β = βi.

Pentru a proba unicitatea presupunem ca functia γ : A −→ B verifica egalitatile αi; γ = βi pentru oricei ∈ I. Observam pentru orice i ∈ I si orice a ∈ Fi ca

γ(a, i) = γ(αi(a)) = (αi; γ)(a) = βi(a) = β(a, i)

deci γ = β. �

Definitia 5.1.8 Categoria C are colimite daca orice functor F : I −→ C definit pe o categorie mica I

are o colimita.

Page 133: Programare Logica

5.1. LIMITE SI COLIMITE INTR-O CATEGORIE 133

Propozitie 5.1.9 Categoria multimilor are colimite.

Demonstratie: Fie I o categorie mica si F : I −→ Set un functor. Vom construi o colimita pentru F .Fie (αi, A) suma directa a familiei de multimi {F (i)}i∈|I| construita ca mai sus. Definim ın multimea

A relatiaR = {((a, i), (F (α)(a), j)) : i, j ∈ |I|, a ∈ F (i), α ∈ I(i, j)}.

Fie ∼ relatia de echivalenta generata de R, adica cea mai mica relatie de echivalenta din A care includeR. Fie A/∼ catul lui A prin echivalenta ∼ si s : A −→ A/∼ surjectia canonica care duce fiecare elementdin A ın clasa sa de echivalenta. Vom proba ca

F (i)αi;s−→ A/∼

este o colimita a functorului F .Probam ca F (i)

αi;s−→ A/∼ este cocon. Fie α ∈ I(i, j) un morfism din I. Pentru orice a ∈ F (i) observam

ca(F (α); (αj ; s))(a) = (αj ; s)(F (α)(a)) = s(αj(F (α)(a))) = s(F (α)(a), j) = s(a, i) = (αi; s)(a)

deci F (α); (αj ; s) = αi; s.

Fie F (i)βi−→ B un alt cocon pentru functorul F . Deoarece F (i)

αi−→ A este suma directa exista ununic morfism f : A −→ B cu proprietatea αi; f = βi pentru orice obiect i din I. Probam ca relatia R esteinclusa ın echivalenta nucleara a lui f . Fie α ∈ I(a, b) un morfism din I si a ∈ F (i). Observam ca

f(F (α)(a), j) = f(αj(F (α)(a))) = (αj ; f)(F (α)(a)) = βj(F (α)(a)) = (F (α);βj)(a) =

(deoarece {βi} este cocon) = βi(a) = (αi; f)(a) = f(αi(a)) = f(a, i).

Rezulta ca ∼ este inclusa ın echivalenta nucleara a lui f , prin urmare exista o unica functie g : A/∼ −→ Bcu proprietatea s; g = f . Deci

(αi; s); g = αi; (s; g) = αi; f = βi.

Daca h : A/∼ −→ B este o alta functie cu proprietatea (αi; s);h = βi pentru orice obiect i din I.Deoarece αi; (s;h) = βi pentru orice obiect i din I deducem s;h = f, prin urmare din s;h = s; g deducemdatorita surjectivitatii lui s ca h = g. �

Observatia 5.1.10 Familia de functii F (i)αi;s−→ A/∼ are proprietatea

pentru orice b ∈ A/∼ exista i ∈ |I| si a ∈ F (i) cu proprietatea b = (αi; s)(a)

fapt pentru care se numeste epimorfa.

Demonstratie: Fie b ∈ A/∼. Deoarece functia s : A−→A/∼ este surjectiva exista c ∈ A cu propietateab = s(c). Din definitia lui A exista i ∈ |I| si a ∈ F (i) astfel ıncat c = (a, i). Prin urmare(αi; s)(a) = s(αi(a)) = s(a, i) = s(c) = b.

5.1.2 Despre unicitatea colimitelor

Pentru un functor dat F : I −→ C colimitele lui sunt unice abstractie facand de un izomorfism. Acest fapteste ilustrat de urmatoarele doua propozitii.

Propozitie 5.1.11 Daca (αi, A) este o colimita a functorului F : I −→ C si j : A −→ B un izomorfism,

atunci (αi; j,B) este o colimita a lui F .

Page 134: Programare Logica

134 CHAPTER 5. MODULARIZARE

Demonstratie: Observam ca (αi; j,B) este cocon deoarece se obtine din alt cocon prin compunere cuun morfism.

Fie (βi, C) un cocon pentru F . Deoarece (αi, A) este o colimita a functorului F : I −→ C exista ununic morfism f : A −→ C cu proprietatea αi; f = βi pentru orice obiect i din I.

Observam ca (αi; j); (j−1; f) = βi pentru orice obiect i din I. In plus daca g : B −→ C este un alt

morfism cu proprietatea (αi; j); g = βi pentru orice obiect i din I, deducem αi; (j; g) = βi pentru oriceobiect i din I. Prin urmare f = j; g, deci g = j−1; f.

Propozitie 5.1.12 Doua colimite ale aceluiasi functor sunt izomorfe.

Demonstratie: Fie (αi, A) si (βi, B) doua colimite ale functorului F : I −→ C.Deoarece (αi, A) este o colimita a functorului F : I −→ C si (βi, B) este cocon pentru F exista un unic

morfism f : A −→ B cu proprietatea αi; f = βi pentru orice obiect i din I.Deoarece (βi, B) este o colimita a functorului F : I −→ C si (αi, A) este cocon pentru F exista un unic

morfism g : B −→ A cu proprietatea βi; g = αi pentru orice obiect i din I.Deoarece αi; (f ; g) = (αi; f); g = βi; g = αi = αi; 1A pentru orice obiect i din I. Tinand cont ca (αi, A)

este o colimita a functorului F : I −→ C deducem din unicitate ca f ; g = 1A.Deoarece βi; (g; f) = (βi; g); f = αi; f = βi = βi; 1B pentru orice obiect i din I. Tinand cont ca (βi, B)

este o colimita a functorului F : I −→ C deducem din unicitate ca g; f = 1B .Egalitatile f ; g = 1A si g; f = 1B arata ca f si g sunt izomorfisme inverse unul altuia.

5.1.3 Crearea colimitelor

Definitia 5.1.13 Fie F : I −→ C un functor si (γi, C) o colimita a sa. Spunem ca functorul G : C −→ D

conserva colimita (γi, C) daca (G(γi), G(C)) este o colimita a functorului F ;G. Spunem ca functorul

G : C −→ D conserva colimitele daca el conserva orice colimita a oricarui functor F : I −→ C.

Observatia 5.1.14 Daca functorul G : C −→ D conserva o colimita a functorului F : I −→ C, atunci

functorul G conserva orice colimita a functorului F .

Demonstratie: Consideram o colimita a functorului F

Colim F = (γi, C).

pe care functorul G o duce ıntr-o colimita a functorului F ;G

Colim F ;G = (G(γi), G(C)).

Fie (γ′i, C′) o alta colimita a functorului F.

Cele doua colimite ale lui F fiind izomorfe rezulta existenta izomorfismului f : C −→ C ′ cu proprietateaγi; f = γ′i pentru orice obiect i din I.

AplicandG deducemG(γi);G(f) = G(γ′i). Deoarece G(f) este izomorfism si Colim F ;G = (G(γi), G(C))rezulta ca (G(γ′i), G(C ′)) este o colimita a functorului F ;G.

Definitia 5.1.15 Functorul G : C −→ D creaza slab(creaza) colimitele daca pentru orice functor

F : I −→ C si pentru orice colimita G(F (i))δi−→ D functorului F ;G exista(si e unica) o colimita F (i)

γi−→ C

a functorului F cu proprietatile G(C) = D si G(γi) = δi pentru orice obiect i din I.

Page 135: Programare Logica

5.2. COLIMITE DE SIGNATURI ALGEBRICE 135

Propozitie 5.1.16 Daca categoria D are colimite si functorul G : C −→ D creaza slab colimitele, atunci

categoria C are colimite si functorul G comuta cu colimitele.

Demonstratie: Fie F : I −→ C un functor si o colimita a functorului F ;G

Colim F ;G = G(F (i))δi−→ D.

Deoarece functorul G : C −→ D creaza slab colimitele exista o colimita F (i)γi−→ C a functorului F cu

proprietatile G(C) = D si G(γi) = δi pentru orice obiect i din I. Am probat existenta unei colimite a luiF cu care G comuta. Este acum suficient sa aplicam observatia precedenta.

5.2 COLIMITE DE SIGNATURI ALGEBRICE

Functorul uituc U : Sig −→ Set este definit astfel:

• pe obiecte: pentru orice signatura algebrica (S,Σ) ∈ |Sig|

U(S,Σ) = S;

• pe morfisme: pentru orice morfism de signaturi algebrice (f, g) : (S,Σ) −→ (S′,Σ′)

U(f, g) = f.

Teorema 5.2.1 Functorul uituc U : Sig −→ Set creaza slab(dar nu creaza) colimitele.

Demonstratie: Fie I o categorie mica si F : I −→ Sig un functor. Folosim urmatoarele notatii:

F (i) = (Si,Σi) pentru orice obiect i ∈ |I|,

F (α) = (fα, gα) : (Si,Σ

i) −→ (Sj ,Σj) pentru orice morfism α ∈ I(i, j).

Daca α : i −→ j si β : j −→ k sunt morfisme din I din F (α;β) = F (α);F (β), adica

(fα;β , gα;βwi,si

) = (fα; fβ , gαwi,si; g

βf∗α(wi),fα(si)

)

deducem

fα;β = fα; fβ si gα;βwi,si

= gαwi,si ; gβf∗α(wi),fα(si)

(5.1)

pentru orice wi ∈ S∗i si si ∈ Si.

Fie

colimF ;U = (fi, S) = Sifi−→ S (5.2)

Observam ca pentru orice morfism α : i −→ j din I

fi = fα; fj. (5.3)

Pentru orice w ∈ S∗ si s ∈ S vom constui multimea Σw,s. Definim categoria mica Cw,s astfel:pe obiecte:

|Cw,s| = { (i, wi, si) | i ∈ |I|, wi ∈ S∗i , s

i ∈ Si, cu f∗i (wi) = w, fi(s

i) = s },

Page 136: Programare Logica

136 CHAPTER 5. MODULARIZARE

pe morfisme:

Cw,s((i, wi, si), (j, wj , sj)) = {α ∈ I(i, j) | f∗α(w

i) = wj , fα(si) = sj}.

Compunerea morfismelor din Cw,s se face ca ın categoria I. Pentru morfismele α : (i, wi, si) −→ (j, wj , sj)si β : (j, wj , sj) −→ (k,wk, sk) observam ca

(fα;β)(si) = fβ(fα(s

i)) = fβ(sj)) = sk si ca (f∗α;β)(w

i) = f∗β(f∗α(w

i)) = f∗β(wj)) = wk,

ceea ce arata ca

α ∈ Cw,s((i, wi, si), (j, wj , sj)) si β ∈ Cw,s((j, w

j , sj), (k,wk , sk)) implica α;β ∈ Cw,s((i, wi, si), (k,wk , sk)).

Definim functorul

Gw,s : Cw,s −→ Set

pe obiecte:

Gw,s(i, wi, si) = Σi

wi,si;

si pe morfisme: pentru orice α ∈ Cw,s((i, wi, si), (j, wj , sj))

Gw,s(α) = gαwi,si : Σiwi,si −→ Σj

wj ,sj.

Pentru morfismele α : (i, wi, si) −→ (j, wj , sj) si β : (j, wj , sj) −→ (k,wk, sk) observam ca

Gw,s(α);Gw,s(β) = gαwi,si; gβwj ,sj

= gαwi,si ; gβf∗α(wi),fα(si)

= gα;βwi,si

= Gw,s(α;β)

Fie

colim Gw,s = (giwi,si,Σw,s) = Σiwi,si

giwi,si

−→ Σw,s (5.4)

deoarece f∗i (wi) = w si f∗i (s

i) = s pentru orice (i, wi, si) ∈ |Cw,s|.

Pentru orice i ∈ |I|, wi ∈ S∗i si si ∈ Si, pentru w = f∗i (w

i) si s = f∗i (si) constatam existenta morfismului

giwi,si : Σiwi,si −→ Σf∗i (wi),fi(si).

Vom dovedi

colim F = ((fi, gi), (S,Σ)) = (Si,Σ

i)(fi,gi

wi,si)

−→ (S,Σ).

A. Pentru ınceput aratam ca ((fi, gi), (S,Σ)) este un con inductiv de baza F .

Pentru α ∈ I(i, j) probam ca (fα, gα)(fj , g

j) = (fi, gi).

Deoarece egalitatea fα; fj = fi este evidenta conform (5.3) mai trebuie probat pentru wi ∈ S∗i si si ∈ Si

ca

gαwi,sigjf∗α(wi),fα(si)

= giwi,si

Definind w = f∗i (wi) si s = fi(s

i) observam ca (i, wi, si) ∈ |Cw,s|. Deoarece w = f∗j (f∗α(w

i)) si

s = fj(fα(si)) observam ca (j, f∗α(wi), fα(si)) ∈ |Cw,s| si ca α : (i, wi, si) −→ (j, f∗α(wi), fα(s

i)) este morfismın Cw,s. Proprietatea de con inductiv a lui (giwi,si ,Σw,s) aplicata lui α implica comutativitatea urmatoareidiagrame:

Page 137: Programare Logica

5.2. COLIMITE DE SIGNATURI ALGEBRICE 137

Gw,s(i, wi, si) = Σi

wi,si-

Gw,s(α) = gαwi,si

Σjf∗α(wi),fα(si)

=

Gw,s(j, f∗α(wi), fα(si))

@@

@@

@@

@@

@@

@@R

giwi,si

��

��

��

��

��

��

gjf∗α(wi),fα(si)

Σw,s

Comutativitatea diagramei este chiar egalitatea de mai sus.

B. Fie ((ui, vi), (S′,Σ′) alt con inductiv de baza F .

Deoarece (ui, S′) este con inductiv de baza F ;U exista un unic morfism f : S −→ S′ cu proprietatea

fi; f = ui pentru orice i ∈ |I|.

Si-

fi

S@

@@

@@

@@

@@

@@@R

ui

��

��

��

��

��

��

f

S′

Pentru orice i ∈ |I|, orice wi ∈ S∗i si orice si ∈ S consideram morfismul

viwi,si : Σiwi,si −→ Σ′

u∗i (wi),ui(si)

Daca (i, wi, si) ∈ |Cw,s| utilizand f∗(w) = f∗(f∗i (wi)) = u∗i (w

i) si f(s) = ui(si) observam ca

viwi,si : Gw,s(i, wi, si) −→ Σ′

f∗(w),f(s).

Pentru orice w ∈ S∗ si s ∈ S probam ca

(viwi,si ,Σ′f∗(w),f(s))

este cocon pentru Gw,s. Intr-adevar pentru orice morfism α de la (i, wi, si) la (j, wj , sj) din Cw,s dinproprietatea de cocon a lui ((ui, v

i), (S′,Σ′)) aplicata morfismului α : i −→ j obtinem comutativitateadiagramei

Page 138: Programare Logica

138 CHAPTER 5. MODULARIZARE

(Si,Σi)

-(fα, g

α)

(Sj,Σj)

@@

@@

@@

@@

@@

@@R

(ui, vi)

��

��

��

��

��

��

(uj , vj)

(S′,Σ′)

prin urmare folosind compenentele de pe a doua pozitie deducem gαwi,si

vjwj ,sj

= viwi,si

, deci urmatoareadiagrama este comutativa

Σiwi,si

-Gw,s(α) = gαwi,si

Σjwj,sj

@@

@@

@@

@@

@@

@@R

viwi,si

��

��

��

��

��

��

vjwj ,sj

Σ′w,s

Prin urmare pentru orice w ∈ S∗ si s ∈ S exista un unic morfism gw,s : Σw,s −→ Σ′f(w),f(s) cu

proprietatea giwi,si ; gw,s = viwi,si pentru orice (i, wi, si) ∈ |Cw, s|.

Gw,s(i, wi, si) = Σi

wi,si-

giwi,si

Σw,s

@@

@@

@@

@@

@@

@@R

viwi,si

��

��

��

��

��

��

gw,s

Σ′f∗(w),f(s)

Deoarece giwi,si

; gf∗i (wi),fi(si) = viwi,si

deducem ca (fi, gi); (f, g) = (ui, v

i).

Page 139: Programare Logica

5.3. FUNCTORUL ALG CONSERVA COLIMITELE 139

(Si,Σi)

-(fi, g

i)

(S,Σ)@

@@

@@

@@

@@

@@@R

(ui, vi)

��

��

��

��

��

��

(f, g)

(S′,Σ′)

Unicitatea se arata usor. �

Folosind propozitia 5.1.16 si existenta colimitelor din Set deducem

Corolar 5.2.2 Categoria signaturilor algebrice are colimite si functorul uituc comuta cu colimitele.

5.3 FUNCTORUL Alg CONSERVA COLIMITELE

Reamintim definitia functoruluiAlg : Sig −→ Catop

dupa cum urmeaza:1) pe obiecte: pentru orice signatura algebrica (S,Σ)

Alg(S,Σ) = AlgΣ

este categoria Σ-algebrelor.Un obiect A din AlgΣ este de forma: A = (A, {Aw,s}w∈S∗,s∈S) unde

A : S −→ Set si Aw,s : Σw,s −→ (Aw → As) pentru orice w ∈ S∗, s ∈ S.

2) pe morfisme: pentru orice morfism de signaturi (f, g) : (S,Σ) −→ (S′,Σ′)

Alg(f, g) : AlgΣ′ −→ AlgΣ,

este functorul definit astfel:α) pe obiecte: pentru orice Σ′-algebra (A, {Aw,s}w∈S′∗,s∈S′)

Alg(f, g)(A, {Aw,s}w∈S′∗,s∈S′) = (f ;A, {gw,s;Af∗(w),f(s)}w∈S∗,s∈S) ∈ |AlgΣ|. (5.5)

Din f : S −→ S′ si A : S′ −→ Set rezulta ca

f ;A : S −→ Set;

Pentru orice w ∈ S∗ ai s ∈ S din gw,s : Σw,s −→ Σ′f∗(w),f(s) si

Af∗(w),f(s) : Σ′f∗(w),f(s) −→ (Af∗(w) −→ Af(s)) deducem

gw,s;Af∗(w),f(s) : Σw,s −→ ((fA)w −→ (fA)s).

β) pe morfisme: pentru orice morfism h de Σ-algebre

Alg(f, g)(h) = f ;h. (5.6)

Page 140: Programare Logica

140 CHAPTER 5. MODULARIZARE

5.3.1 Alg conserva colimitele

Fie I o categorie mica si F : I −→ Sig un functor. Folosim aceleasi notatii si construim ca ın sectiuneaanterioara

colim F = ((fi, gi), (S,Σ)) = (Si,Σi)

(fi,giwi,si

)

−→ (S,Σ).

Vom arata in continuare ca functorul Alg comuta cu colimitele, adica limita functorului F ;Alg este

Alg(fi, gi) : AlgΣ −→ AlgΣi .

Este un con fiind obtinut prin aplicarea functorului contravariant Alg unui cocon.

Fie C o categorie si pentru orice i ∈ |I|, fie Gi : C → AlgΣi un functor. Pentru orice c ∈ |C|, notamΣi-algebra

Gi(c) = (Gi(c)s, Gi(c)

o),

unde Gi(c)s este suport algebrei si Gi(c)

o sunt operatiile algebrei.

Presupunem ca (C, Gi) este con pentru F ;Alg, adica pentru orice morfism α ∈ I(i, j), urmatoareadiagrama este comutativa:

������9XXXXXXz

C

AlgΣi AlgΣj

Gi Gj

Alg(fα, gα)

prin urmare pentru orice morfism α ∈ I(i, j)

a) pentru orice obiect c din C

(Gi(c)s, Gi(c)

o) = Alg(fα, gα)((Gj(c)

s, Gj(c)o) = (fα;Gj(c)

s, {gαw,s;Gj(c)of∗α(w),fα(s)}w∈S∗

i ,s∈Si)

de unde pentru fiecare componenta obtinem

fαGj(c)s = Gi(c)

s (5.7)

si pentru orice wi ∈ S∗i si si ∈ Si

Gi(c)owi,si = gαwi,si ;Gj(c)

of∗α(wi),fα(si), (5.8)

b) pentru orice morfism u ∈ C(c, c′)

Alg(fα, gα)(Gj(u)) = fαGj(u) = Gi(u) (5.9)

1. Existenta

Vom construi un functor G : C −→ AlgΣ astfel ıncat urmatoarea diagrama sa fie comutativa pentru oriceobiect i din I:

Page 141: Programare Logica

5.3. FUNCTORUL ALG CONSERVA COLIMITELE 141

-

SS

SS

SS

SSo

��

��

��

��7

G Gi

Alg(fi, gi)

AlgΣ AlgΣi

C

Constructia lui G pe obiecte

Fie c un obiect din categorie C. Din relatia (5.7) rezulta ca familia de functii Gi(c)s : Si −→ Set formeaza

un cocon pentru F ;U prin urmare exista o unica functie G(c)s : S −→ Set astfel ıncat pentru orice obiecti din |I|

fi;G(c)s = Gi(c)s (5.10)

-

SS

SS

SS

SSw

��

��

��

��/

Gi(c)s G(c)s

fiSi S

Set

G(c)s astfel determinat va constitui suportul Σ-algebrei G(c).Din (5.10) deducem ca pentru orice si ∈ Si

G(c)sfi(si) = Gi(c)ssi (5.11)

si analog pentru orice cuvınt wi ∈ S∗i

G(c)sf∗i (wi) = Gi(c)swi . (5.12)

Operatiile Σ-algebrei G(c) se construiesc astfel:Fie w ∈ S∗ si s ∈ S. Familia de functii Gi(c)

owi,si

: Σiwi,si

−→ (Gi(c)swi−→ Gi(c)

ssi

) indexata de

(i, wi, si) ∈ |Cw,s|, formeaza, asa cum ne arata relatiile (5.8), un cocon pentru Gw,s. Este util sa re-marcam aici ca toate codomeniile functiilor din familia de mai sus coincid deoarece conform egalitatilor(5.11) si (5.12)

Gi(c)swi −→ Gi(c)

ssi coincide cu G(c)sw −→ G(c)ss.

Prin urmare exista o unica functie

G(c)ow,s : Σw,s −→ (G(c)sw → G(c)ss)

astfel incat pentru orice (i, wi, si) ∈ |Cw,s|

giwi,siG(c)ow,s = Gi(c)owi,si (5.13)

adica urmatoarea diagrama este comutativa:

Page 142: Programare Logica

142 CHAPTER 5. MODULARIZARE

-

JJ

JJJ

JJJ

Gw,s(i, wi, si) = Σi

wi,si Σw,s

(G(c)sw −→ G(c)ss)

giwi,si

G(c)ow,sGi(c)owi,si

Prin urmare pentru orice obiect i ∈ |I| pentru orice wi ∈ S∗i si orice si ∈ Si, pentru w = f∗i (w

i) si s = fi(si)

deoarece (i, wi, si) ∈ |Cw,s| rezulta ca

giwi,si;G(c)of∗i (wi),fi(si)= Gi(c)

owi,si. (5.14)

Pentru orice obiect c ∈ |C| prin definitie

G(c) = (G(c)s, G(c)o)

cu G(c)s si G(c)o definiti mai sus.

Pentru orice c ∈ |C| observam ca

Gi(c) = (Gi(c)s, Gi(c)

o)(5.10)= (fi;G(c)s, Gi(c)

o)(5.14)= (fi;G(c)s, {giwi,si ;G(c)of∗i (wi),fi(si)

}wi,si),

adica pentru orice c ∈ |C| si orice i ∈ |I|

Alg(fi, gi)(G(c)) = Gi(c). (5.15)

Constructia lui G pe morfisme:

Fie u : c −→ c′ un morfism din C. Observam ca pentru orice obiect i din I

Gi(u) : Gi(c) −→ Gi(c′).

Familia functiilor indexata de obiectele lui I

Gi(u) : Si −→⋃

i∈|I|

si∈Si

(Gi(c)ssi −→ Gi(c

′)ssi)

formeaza ın conformitate cu (5.9) un cocon pentru functorul F ;U, prin urmare exista si este unica o functie

G(u) : S →⋃

(Gi(c)ssi → Gi(c)

ssi)

astfel incat pentru orice i ∈ |I|fi;G(u) = Gi(u) (5.16)

Vom arata ca G(u)s : G(c)ss −→ G(c′)ss pentru orice s ∈ S.Fie s ∈ S. Deoarece {fi}i∈I este familie epimorfa conform observatiei 5.1.10, exista i ∈ |I| si si ∈ Si, cufi(si) = s. Rezulta ca

G(u)s = G(u)fi(si)(5.16)= Gi(u)si : Gi(c)

ssi −→ Gi(c

′)ssi .

Page 143: Programare Logica

5.3. FUNCTORUL ALG CONSERVA COLIMITELE 143

Dar

Gi(c)ssi

(5.10)= (fiG(c)s)si = G(c)sfi(si) = G(c)ss

si analog

Gi(c′)ssi = G(c′)ss

deci pentru orice s ∈ S

G(u)s : G(c)ss → G(c′)ss.

G(u) este morfism de Σ-algebre

Aratam ca {G(u)s}s∈S formeaza un morfism de la G(c) in G(c′), pentru orice u ∈ C(c, c′).

Fie w ∈ S∗, s ∈ S si σ ∈ Σw,s. Deoarece familia

{giwi,si}(i,wi,si)∈|Cw,s |

este epimorfa, vezi si 5.1.10, rezulta ca exista (i, wi, si) ∈ |Cw,s| si σi ∈ Σi

wi,siastfel incat

σ = giwi,si(σi) (5.17)

Deoarece Gi(u) : Gi(c) −→ Gi(c′) este morfism de Σi-algebre, diagrama de mai jos este comutativa:

-

?-

?

Gi(c)owi,si(σ

i) Gi(c)ssi

Gi(c)swi

Gi(c′)swi Gi(c

′)ssiGi(c

′)owi,si(σi)

Gi(u)wi Gi(u)si

Dar fi(si) = s si egalitatile (5.11, 5.16) implica Gi(c)

ssi = G(c)ss, Gi(c

′)ssi = G(c′)ss si Gi(u)si = G(u)s.

Analog f∗i (wi) = w si egalitatile (5.12, 5.16) implica Gi(c)

swi

= G(c)sw, Gi(c′)swi

= G(c′)sw si Gi(u)wi =G(u)w.

Din fi(si) = s, f∗i (w

i) = w si 5.13 deducem ca

Gi(c)owi,si(σ

i) = G(c)ow,s(σ) si Gi(c′)owi,si(σ

i) = G(c′)ow,s(σ)

prin urmare urmatoarea diagrama este comutativa:

Page 144: Programare Logica

144 CHAPTER 5. MODULARIZARE

-

?

-?

G(c)sw G(c)ss

G(c′)ssG(c′)sw

G(c)ow,s(σ)

G(c′)ow,s(σ)

G(u)w G(u)s

ceea ce arata ca G(u) : G(c) −→ G(c′) este morfism pentru σ ∈ Σw,s.

In concluzie G(u) : G(c) −→ G(c′) este morfism de Σ-algebre.

G este functor

Fie s ∈ S. Deoarece (fi)i∈|I| este epimorfa, 5.1.10, exista i ∈ |I| si si ∈ Si astfel incat fi(si) = s. Din

G(1c)s = G(1c)fi(si) = (fi;G(1c))si5.16= (Gi(1c))si

Gifunctor= (1Gi(c)s)si

5.10= 1(fiG(c)s)si

= 1G(c)sfi(si)

=

1G(c)ss= (1G(c))s deducem

G(1c) = 1G(c).

Fie u : c −→ c′, v : c′ −→ c′′. Fie s ∈ S. Observam ca exista i ∈ |I| si exista si ∈ Si astfel incat fi(si) = s.Din

G(u)s;G(v)s = G(u)fi(si);G(v)fi(si)5.16= Gi(u)si ;Gi(v)si = (Gi(u);Gi(v))si = Gi(u; v)si

5.16= (fi;G(u; v))si =

= G(u; v)fi(si) = G(u; v)s.

deducem G(u);G(v) = G(u; v). Deci G este functor.

Mai avem de probat ca Gi = G;Alg(fi, gi) pentru orice obiect i ∈ |I|. Intrucat egalitatea a fost deja

probata pentru obiecte (5.15) o vom arata numai pentru morfisme. Pentru u : c −→ c′ observam caegalitatea (5.16) implica Alg(fi, g

i)(G(u)) = fiG(u) = Gi(u).

2. Unicitatea

Vom arata ca G construit mai sus este unic.Fie H : C −→ AlgΣ un functor astfel ıncat pentru orice i ∈ |I|

H;Alg(fi, gi) = Gi.

Aratam ca G = H pe obiecte si pe morfisme. Pentru c ∈ |C| notam H(c) = (H(c)s,H(c)o).

a) pe obiecte:pentru i ∈ |I| si c ∈ |C|, observam ca

Gi(c) = Alg(fi, gi)(H(c)) = (fi;H(c)s, {giwi,si ;H(c)of∗i (wi),fi(si)

})

prin urmare Gi(c)s = fiH(c)s pentru orice i ∈ |I|, deci ın conformitate cu unicitatea din (5.10) deducem

G(c)s = H(c)s, adica algebrele G(c) si H(c) au aceleasi suporturi.

Pentru i ∈ |I|, c ∈ |C|, wi ∈ S∗i si si ∈ Si din egalitatea de mai sus rezulta ca

Gi(c)owi,si = giwi,siH(c)of∗i (wi),fi(si)

.

Page 145: Programare Logica

5.4. COLIMITE IN INSTITUTII 145

Fie w ∈ S∗ si s ∈ S. Pentru orice (i, wi, si) ∈ |Cw,s| deducem

Gi(c)owi,si = giwi,siH(c)ow,s

deci, din unicitatea din (5.13) rezulta ca

G(c)ow,s = H(c)ow,s

adica algebrele G(c) si H(c) au aceleasi operatii.Deci pentru orice obiect c din C

G(c) = H(c).

b) pe morfisme:Fie u ∈ C(c, c′). Deoarece pentru orice i ∈ |I|

Gi(u) = Alg(fi, gi)(H(u)) = fi;H(u),

din unicitatea din (5.16), deducem G(u) = H(u).Deci functorii G si H coincid si pe morfisme. In concluzie G = H.

5.4 COLIMITE IN INSTITUTII

Fie I o institutie, Pres(I) categoria prezentarilor lui I. Functorul uituc

V : Pres(I) −→ Sign

este definit prin V (Σ, E) = Σ pentru orice prezentare (Σ, E) si V (φ) = φ pentru orice morfism de prezentariφ.

Propozitie 5.4.1 Fie {(Σi, Ei)}i∈I o familie de prezentari si φi : Σi −→ Σ o familie de morfisme de

signaturi. Familia de morfisme de prezentari

φi : (Σi, Ei) −→ (Σ,⋃

i∈I

Sen(φi)(Ei))

are urmatoarea proprietate:

pentru orice prezentare (Σ′, E) si pentru orice morfism de signaturi ψ : Σ −→ Σ′ pentru care

φiψ : (Σi, Ei) −→ (Σ′, E)

sunt morfisme de prezentari, ψ : (Σ,⋃

i∈I Sen(φi)(Ei)) −→ (Σ′, E) este morfism de prezentari.

Demonstratie: Deoareceφiψ : (Σi, Ei) −→ (Σ′, E)

sunt morfisme de prezentari, Sen(φiψ)(Ei) ⊆ E• pentru orice i ∈ I. Deoarece

Sen(ψ)(⋃

i∈I

Sen(φi)(Ei)) =⋃

i∈I

Sen(ψ)(Sen(φi)(Ei)) =⋃

i∈I

Sen(φiψ)(Ei) ⊆ E•,

deducem ca ψ : (Σ,⋃

i∈I Sen(φi)(Ei)) −→ (Σ′, E) este morfism de prezentari. �

Page 146: Programare Logica

146 CHAPTER 5. MODULARIZARE

Propozitie 5.4.2 Functorul uituc V : Pres(I) −→ Sign creaza slab colimitele.

Demonstratie: Fie F : I −→ Pres(I) un functor. Pentru orice obiect i din I notam F (i) = (Σi, Ei).

Fie V (F (i))φi−→ Σ o colimita a functorului F ;V : I −→ Sign. Probam ca

φi : (Σi, Ei) −→ (Σ,⋃

i∈I

Sen(φi)(Ei))

este o colimita a functorului F . Evident φi sunt morfisme de prezentari.

Deoarece V (F (i))φi−→ Σ este o colimita a functorului F ;V : I −→ Sign deducem ca

F (i)φi−→ (Σ,

i∈I

Sen(φi)(Ei))

este un cocon pentru functorul F .Fie F (i)

ρi−→ (Σ′, E) un cocon pentru functorul F . Deoarece V (F (i))

ρi−→ Σ′ este un cocon pentru

functorul F ;V si V (F (i))φi−→ Σ o colimita a functorului F ;V : I −→ Sign exista un unic morfism de

signaturi ψ : Σ −→ Σ′ cu proprietate φi;ψ = ρi pentru orice obiect i din I. Deoarece φi;ψ = ρi suntmorfisme de prezentari, din propozitia precedenta rezulta ca ψ este morfism de prezentari. �

Corolar 5.4.3 Intr-o institutie ın care categoria signaturilor are colimite, categoria prezentarilor are col-

imite si functorul V comuta cu ele.

Fie Th(I) categoria teoriilor institutiei I. Functorul uituc

U : Th(I) −→ Sign

este prin definitie restrictia lui V la categoria teoriilor lui I.

Propozitie 5.4.4 Fie {(Σi, Ei)}i∈I o familie de teorii si φi : Σi −→ Σ o familie de morfisme de signaturi.

Familia de morfisme de teorii

φi : (Σi, Ei) −→ (Σ, [⋃

i∈I

Sen(φi)(Ei)]•)

are urmatoarea proprietate:

pentru orice teorie (Σ′, E) si pentru orice morfism de signaturi ψ : Σ −→ Σ′ pentru care

φiψ : (Σi, Ei) −→ (Σ′, E)

sunt morfisme de teorii, ψ : (Σ, [⋃

i∈I Sen(φi)(Ei)]•) −→ (Σ′, E) este morfism de teorii.

Demonstratie: Deoareceφiψ : (Σi, Ei) −→ (Σ′, E)

sunt morfisme de teori, Sen(φiψ)(Ei) ⊆ E pentru orice i ∈ I. Prin urmare

[⋃

i∈I

Sen(φiψ)(Ei)]• ⊆ E

Page 147: Programare Logica

5.4. COLIMITE IN INSTITUTII 147

deoarece E este ınchisa. Conform lemei ınchiderii

Sen(ψ)([⋃

i∈I

Sen(φi)(Ei)]•) ⊆ [Sen(ψ)(

i∈I

Sen(φi)(Ei))]• = [

i∈I

Sen(ψ)(Sen(φi)(Ei))]•.

Prin urmare

Sen(ψ)([⋃

i∈I

Sen(φi)(Ei)]•) ⊆ [

i∈I

Sen(φiψ)(Ei)]• ⊆ E.

Deducem ca ψ : (Σ, [⋃

i∈I Sen(φi)(Ei)]•) −→ (Σ′, E) este morfism de teorii. �

Propozitie 5.4.5 Functorul uituc U : Th(I) −→ Sign creaza slab colimitele.

Demonstratie: Fie F : I −→ Th(I) un functor. Pentru orice obiect i din I notam F (i) = (Σi, Ei).

Fie U(F (i))φi−→ Σ o colimita a functorului F ;U : I −→ Sign. Probam ca

φi : (Σi, Ei) −→ (Σ, [⋃

i∈I

Sen(φi)(Ei)]•)

este o colimita a functorului F . Evident φi sunt morfisme de teori.

Deoarece V (F (i))φi−→ Σ este o colimita a functorului F ;V : I −→ Sign deducem ca

F (i)φi−→ (Σ, [

i∈I

Sen(φi)(Ei)]•)

este un cocon pentru functorul F .

Fie F (i)ρi−→ (Σ′, E) un cocon pentru functorul F . Deoarece U(F (i))

ρi−→ Σ′ este un cocon pentru

functorul F ;U si U(F (i))φi−→ Σ o colimita a functorului F ;U : I −→ Sign exista un unic morfism de

signaturiri ψ : Σ −→ Σ′ cu proprietate φi;ψ = ρi pentru orice obiect i din I. Deoarece φi;ψ = ρi suntmorfisme de teorii, din propozitia precedenta rezulta ca ψ este morfism de teorii. �

Corolar 5.4.6 Intr-o institutie ın care categoria signaturilor are colimite, categoria teoriilor are colimite

si functorul U comuta cu ele.

Din teoremele de mai sus rezulta ca ıntr-o institutie ın care categoria signaturilor are colimite, atatcategoria prezentarilor ei cat si categoria teoriilor ei au colimite. Mai mult propozitiile de mai sus dau sio constructie a acestora.

5.4.1 Functorul •

Observatia 5.4.7 Daca ψ : (Σ, E) −→ (Σ1, E1) este morfism de prezentari,

atunci ψ : (Σ, E•) −→ (Σ1, E•1) este morfism de teorii.

Demonstratie: Din lema ınchiderii deducem Sen(ψ)(E•) ⊆ Sen(ψ)(E)•. Deoarece ψ este morfism deprezentari Sen(ψ)(E) ⊆ E•

1 prin urmare Sen(ψ)(E)• ⊆ E•1 deci Sen(ψ)(E•) ⊆ E•

1 , adicaψ : (Σ, E•) −→ (Σ1, E

•1) este morfism de teorii.

Page 148: Programare Logica

148 CHAPTER 5. MODULARIZARE

Pres(I) -•

Th(I)@

@@

@@

@@R

V

��

��

��

U

Sign

Functorul • : Pres(I) −→ Th(I) este definit prin

1. (Σ, E)• = (Σ, E•) pentru orice prezentare (Σ, E).

2. ψ• = ψ pentru orice morfism de prezentari ψ.

Observam ca • ;U = V.

Observatia 5.4.8 Daca φi : Σi −→ Σ este o familie de morfisme de signaturi si Ei ⊆ Sen(Σi) pentru

orice indice i ∈ I, atunci

[⋃

i∈I

Sen(φi)(Ei)]• = [

i∈I

Sen(φi)(E•i )]

Demonstratie: Demonstratia prin dubla incluziune incepe prin a observa ca incluziunea

[⋃

i∈I

Sen(φi)(Ei)]• ⊆ [

i∈I

Sen(φi)(E•i )]

rezulta usor plecand de la Ei ⊆ E•i si observand ca toate constructiile folosite sunt crescatoare.

Reciproc, utilizand lema incluziunii

Sen(φi)(E•i ) ⊆ [Sen(φi)(Ei)]

deducem succesiv

Sen(φi)(E•i ) ⊆ [

i∈I

Sen(φi)(Ei)]•,

i∈I

Sen(φi)(E•i ) ⊆ [

i∈I

Sen(φi)(Ei)]• si

[⋃

i∈I

Sen(φi)(E•i )]

• ⊆ [⋃

i∈I

Sen(φi)(Ei)]•. �

Propozitie 5.4.9 Intr-o institutie ın care categoria signaturilor are colimite functorul • conserva colim-

itele.

Demonstratie: Fie F : I −→ Pres(I) un functor. Pentru orice obiect i din I notam F (i) = (Σi, Ei).

Pentru a demonstra ca functorul • conserva colimitele functorului F vom utiliza observatia 5.1.14 si

vom arata ca functorul • conserva o anumita colimita a functorului F . Mai precis vom arata ca functorul

• duce colimita functorului F construita ın conformitate cu propozitia 5.4.2 ın colimita functorului F ; •

construita conform propozitiei 5.4.5.

Page 149: Programare Logica

5.5. CATEGORII INCLUSIVE 149

Fie V (F (i))φi−→ Σ o colimita a functorului F ;V : I −→ Sign. Conform constructiei din propozitia

5.4.2

φi : (Σi, Ei) −→ (Σ,⋃

i∈I

Sen(φi)(Ei)) (5.18)

este o colimita a functorului F si deoarece (F ; •)(i) = (Σi, E•i ) pentru orice obiect i din I, conform

constructiei din propozitia 5.4.5

φi : (Σi, Ei) −→ (Σ, [⋃

i∈I

Sen(φi)(E•i )]

•) (5.19)

este o colimita a functorului F ; •.

Egalitatea demonstrata mai sus

[⋃

i∈I

Sen(φi)(Ei)]• = [

i∈I

Sen(φi)(E•i )]

arata ca aplicand functorul • colimitei 5.18 a functorului F se obtine colimita 5.19 a functorului F ; •. �

Practic ın calculator nu putem lucra decat cu prezentari finite care reprezinta teorii. Se stie ca ınprocesul de crearea de programe mari din ımbinarea unor programe mai mici(modularizare) colimitelejoaca un rol deosebit. Pentru a fi convinsi ca lucrurile sunt corecte este necesar sa aratam urmatoarele:colimita prezentarilor reprezinta chiar teoria colimita a teoriilor reprezentate de prezentarile care au intratın calcul. Ultima propozitie ne asigura de acest fapt.

5.5 CATEGORII INCLUSIVE

Conceptul de incluziune abstracta a fost introdus de Diaconescu, Goguen si Stefaneas [6], unde definitiacategoriei inclusive cere mai multe conditii. Definitie de mai jos, sub numele de categorie slab inclusiva,a fost introdusa de Cazanescu si Rosu [3]. Definitia utilizata aici coincide cu cea din cartea lui RazvanDiaconescu [4].

Definitia 5.5.1 O categorie I este numita categorie de incluziuni daca pentru orice pereche de obiecte

A si B

1) I(A,B) are cel mult un element si

2) I(A,B) 6= ∅ si I(B,A) 6= ∅ implica A = B. antisimetrie

Morfismele din I vor fi numite incluziuni. �

Se observa ca o categorie de incluziuni nu este altceva decat o clasa partial ordonata organizata ca ocategorie.

Pentru incluziuni i ∈ I(A,B) mai utilizam si notatia i : A → B.

Page 150: Programare Logica

150 CHAPTER 5. MODULARIZARE

Definitia 5.5.2 O subcategorie de incluziuni a categoriei C este o categorie de incluziuni care este o

subcategorie a lui C avand aceleasi obiecte ca si C.

Definitia 5.5.3 Spunem ca (I, E) este un sistem de incluziuni pentru categoria C daca

1. I este o subcategorie de incluziuni a lui C,

2. E este subcategorie a lui C care are aceleasi obiecte ca si C si

3. Orice morfism f din C poate fi factorizat unic f = ef ; if unde ef ∈ E si if ∈ I.

O categorie ımpreuna cu un sistem de incluziuni se numeste categorie inclusiva. �

Fie f : A −→ B un morfism dintr-o categorie inclusiva. Imaginea lui f notata cu f(A) este prin definitiecodomeniul morfismului ef : A −→ f(A) acelasi cu domeniul morfismului if : f(A) → B.

Continuam cu mai multe exemple.

Set

Consideram categoria multimilor Set cu sistemul de inclusiuni (Incluziuni,Surjectii). Prin incluziunede multimi se intelege unica functie de la o submultime la o supramultime a sa care duce orice element ınel ınsusi. Subcategoria incluziunilor este o latice unde supremum e reuniunea si infimum este intersectia.

Este binecunoscut ca orice functie f : A −→ B se poate scrie ca o compunere f = ef ; if undeif : f(A) → B este incluziune si surjectia ef : A −→ f(A) este definita prin ef (a) = f(a) pentruorice a ∈ A.

Fie f = e; i este o alta descompunere a lui f ıntr-o surjectie e : A −→ C si o incluziune i : C → B.Evident C ⊆ B. Observam ca pentru orice a ∈ A, f(a) = i(e(a)) = e(a) ∈ C, prin urmare f(A) ⊆ C.Probam incluziunea contrara. Fie c ∈ C. Deoarece e este surjectiva exista a ∈ A astfel ımcat c = e(a) =i(e(a)) = f(a), deci c ∈ f(A). Deoarece f(A) = C deducem usor ca e = ef si i = if .

Sig

Definitia 5.5.4 Fie doua signaturi algebrice multisortate (S,Σ), (S′,Σ′) ∈ |Sig|. Prin definitie

(S,Σ) ⊆ (S′,Σ′) daca si numai daca S ⊆ S′ si Σw,s ⊆ Σ′w,s pentru orice w ∈ S∗, s ∈ S.

Cu relatia astfel definita signaturile algebrice formeaza o clasa partial ordonata.

Incluziunile lui Sig sunt definite prin morfismele care au toate componentele incluziuni de multimi.Notam cu I categoria incluziunilor de signaturi. Ea este o subcategorie de incluziuni a lui Sig.

Evident ca pentru orice pereche de signaturi (S,Σ), (S′,Σ′) si pentru orice pereche de incluziuni(f1, g1), (f2, g2) din I((S,Σ), (S′,Σ′)) deoarece functiile f1, f2 : S → S′, sunt incluziuni rezulta ca f1 = f2.De asemenea, pentru orice w ∈ S∗ si s ∈ S functiile g1w,s, g2w,s : Σw,s → Σ′

f∗(w),f(s), unde f = f1, sunt

incluziuni. Din faptul ca g1w,s si g2w,s sunt incluziuni rezulta g1w,s = g2w,s . Deci (f1, g1) = (f2, g2).

Mai observam ca (S,Σ) ⊆ (S′,Σ′) si (S′,Σ′) ⊆ (S,Σ) implica (S,Σ) = (S′,Σ′). Prin urmare, I estesubcategorie de incluziuni a lui Sig.

Page 151: Programare Logica

5.5. CATEGORII INCLUSIVE 151

Definitia 5.5.5 Un morfism de signaturi (f, g) : (S′,Σ′) −→ (S,Σ) se numeste surjectie abstracta de

signaturi daca f : S′ −→ S este o functie surjectiva si pentru orice w ∈ S∗, s ∈ S si σ ∈ Σw,s exista

w′ ∈ S′∗, s′ ∈ S′ si σ′ ∈ Σ′w′,s′ cu proprietatile f∗(w′) = w, f(s′) = s si gw′,s′(σ

′) = σ.

Notam cu E categoria surjectiilor abstracte de signaturi.

Observatia 5.5.6 E este subcategorie a lui Sig care are aceleasi obiecte ca si Sig.

Demonstratie: Fie (f ′, g′) : (S′′,Σ′′) −→ (S′,Σ′) si (f, g) : (S′,Σ′) −→ (S,Σ) doua surjectii abstracte designaturi. Vom arata ca si compunerea lor este o surjectie abstracta de signaturi.

Deoarece f ′ si f sunt surjectii rezulta ca f ′; f este surjectie.Fie w ∈ S∗, s ∈ S si σ ∈ Σw,s. Deoarece (f, g) : (S′,Σ′) −→ (S,Σ) este surjectie abstracta de signaturi

exista w′ ∈ S′∗, s′ ∈ S′ si σ′ ∈ Σ′w′,s′ cu proprietatile f∗(w′) = w, f(s′) = s si gw′,s′(σ

′) = σ. Deoarece(f ′, g′) : (S′′,Σ′′) −→ (S′,Σ′) este surjectie abstracta de signaturi exista w′′ ∈ S′′∗, s′′ ∈ S′′ si σ′′ ∈ Σ′′

w′′,s′′

cu proprietatile f ′∗(w′′) = w′, f ′(s′′) = s′ si g′w′′,s′′(σ′′) = σ′. Rezulta ca

(f ′; f)∗(w′′) = f∗(f ′∗(w′′)) = f∗(w′) = w, (f ′; f)(s′′) = f(f ′(s′′)) = f(s′) = s si(g′; g)w′′,s′′(σ

′′) = (g′w′′,s′′ ; gf ′∗(w′′),f ′(s′′))(σ′′) = gw′,s′(g

′w′′,s′′(σ

′′)) = gw′,s′(σ′) = σ.

Deci (f ′, g′); (f, g) este surjectie abstracta de signaturi.Mai observam ca orice morfism identitate de signaturi este o surjectie abstracta de signaturi.

Propozitie 5.5.7 In categoria signaturilor algebrice Sig < I, E > este sistem inclusiv.

Demonstratie: Demonstram ca orice morfism de signaturi (f, g) poate fi scris unic ca o compunere ıntreo surjectie abstracta de signaturi (ef , eg) din E si o incluziune (if , ig) din I. Cautam o descompunere detipul:

(S,Σ)(f,g)

//

(ef ,eg)''PPPPPPPPPPPP

(S′,Σ′)

(f(S), {Σ0w,s}w∈f(S)∗,s∈f(S)})

(if ,ig)

66nnnnnnnnnnnn

Demonstram existenta descompunerii.In categoria Set, pentru orice functie f exista o unica descompunere cu ef surjectie si if incluziune astfelıncat f = ef ; if de forma :

Sf //

ef !!CCC

CCCC

C S′

f(S)

if

==zzzzzzzz

Stim ca ef (x) = f(x) pentru orice x ∈ S.Pentru orice w′ ∈ f(S)∗ si s′ ∈ f(S) definim

Σ0w′,s′ =

{gw,s(Σw,s)|w ∈ (f∗)−1(w′) si s ∈ f−1(s′)} ⊆ Σ′w′,s′ .

Pentru orice w ∈ S∗, s ∈ S definimegw,s : Σw,s −→ Σ0

ef (w),ef (s)

astfel egw,s(σ) = gw,s(σ) ∈ Σ0f∗(w),f(s), pentru fiecare σ ∈ Σw,s.

Page 152: Programare Logica

152 CHAPTER 5. MODULARIZARE

Observam ca (ef , eg) ∈ E , (if , ig) ∈ I si (f, g) = (ef , eg); (if , ig).

Aratam unicitatea acestei descompuneri.Presupunem ca exista (f ′, g′) ∈ E si o incluziune (i′f , i

′g) de signaturi ın I astfel ıncat diagrama urmatoare

sa fie comutativa:

(S,Σ)(f,g)

//

(f ′,g′) %%JJJJJJJJJ

(S′,Σ′)

(S′′,Σ′′)

(i′f ,i′

g)

99ssssssssss

Dar, ın categoria multimilor Set, ef si f ′ sunt ambele surjectii. Cum o astfel de descompunere f =f ′; i′f = ef ; if ese unica ın Set ınseamna ca f ′ = ef , i

′f = if si S′′ = f(S).

Pentru orice w ∈ S∗, s ∈ S si σ ∈ Σw,s observam ca

g′w,s(σ) = (i′g)f ′∗(w),f ′(s)(g′w,s(σ)) = (g′w,s; (i

′g)f ′∗(w),f ′(s))(σ) = gw,s(σ) = (eg)w,s(σ).

Deoarece (f ′, g′) este surjectie abstracta pentru orice w′ ∈ f∗(S) si s′ ∈ f(S)

Σ′′w′,s′ =

{g′w,s(Σw,s)| s ∈ f−1(s′) , w ∈ (f∗)−1(w′)} =

{gw,s(Σw,s)| s ∈ f−1(s′) , w ∈ (f∗)−1(w′)} = Σ0

w′,s′ .

Deci g′ = eg si Σ′′ = Σ0.

Deci Sig cu sistemul < I, E > este categorie inclusiva. �

Teoriile unei institutii

Fie o institutie I. Fie U : Th(I) −→ Sign functorul uituc definit prin U(Σ, E) = Σ si U(ϕ) = ϕ.

Reamintim ca o prezentare este o pereche (S,Σ) unde Σ ∈ |Sign| si E ⊆ Sen(Σ) si o teorie este oprezentare (S,Σ) cu E• = E.

Teorema 5.5.8 Intr-o institutie I, daca Sign este o categorie inclusiva, atunci Th(I) este o categorie

inclusiva.

Demonstratie: Fie (I, E) un sistem de incluziuni ın categoria signaturilor Sign. Vom defini (IT , ET ),un sistem de incluziuni ın categoria teoriilor dupa cum urmeaza.

Fie ψ : (Σ, E) −→ (Σ′, E′) un morfism de teorii.1) ψ ∈ IT daca si numai daca ψ ∈ I2) ψ ∈ ET daca si numai daca ψ ∈ E si E′ = Sen(ψ)(E)•.

Probam ca IT este o categorie de incluziuni.1) Deoarece

IT ((Σ, E), (Σ′, E′)) ⊆ I(Σ,Σ′)

si I(Σ,Σ′) are cel mult un element deducem ca IT ((Σ, E), (Σ′, E′)) are cel mult un element.2) Fie ψ ∈ I((Σ, E), (Σ′, E′)) si ϕ ∈ I((Σ, E), (Σ′, E′)). Deducem I(Σ,Σ′) 6= ∅ si I(Σ,Σ′)) 6= ∅, deciΣ = Σ′. Din ψ ∈ I(Σ,Σ) si ϕ ∈ I(Σ,Σ) deducem ψ = ϕ = 1Σ. Deoarece 1Σ : (Σ, E) −→ (Σ, E′) si1Σ : (Σ, E′) −→ (Σ, E) sunt morfisme de teorii deducem E = E′. Deci (Σ, E) = (Σ′, E′).

Page 153: Programare Logica

5.5. CATEGORII INCLUSIVE 153

Deoarece pentru orice teorie (Σ, E), 1Σ : (Σ, E) −→ (Σ, E) este morfism de teorii din IT rezulta ca ITare aceleasi obiecte ca si Th(I) deci IT este o subcategorie de incluziuni a lui Th(I).

Fie ψ ∈ ET ((Σ, E), (Σ1, E1)) si ϕ ∈ ET ((Σ1, E1), (Σ2, E2)). Probam ca ψ;ϕ ∈ ET ((Σ, E), (Σ2, E2)). Dinipoteza E1 = Sen(ϕ)(E)• si E2 = Sen(ϕ)(E1)

•. Folosind observatia 5.4.8 deducem

Sen(ϕ)(Sen(ψ)(E)•)• = (Sen(ϕ)(Sen(ψ)(E)))•

Prin urmareSen(ϕ)(E1)

• = ((Sen(ψ);Sen(ϕ))(E))•

asadar E2 = (Sen(ψ;ϕ)(E))• deciψ;ϕ ∈ ET ((Σ, E), (Σ2, E2)).

Deoarece pentru orice teorie (Σ, E), 1Σ : (Σ, E) −→ (Σ, E) este morfism de teorii din ET rezulta ca ETare aceleasi obiecte ca si Th(I).

Probam existenta descompunerii. Fie ψ : (Σ, E) −→ (Σ′, E′) un morfism de teorii. Descompunem ψ ıncategoria inclusiva a signaturilor

Σψ //

eψ !!CCC

CCCC

C Σ′

ψ(Σ)

<<zzzzzzzz

Formam diagrama de mai jos. Observam ca

eψ : (Σ, E) −→ (ψ(Σ), (Sen(eψ)(E))•)

este morfism de teorii din ET . Deoarece

Sen(iψ)((Sen(eψ)(E))•) ⊆ (Sen(iψ)[Sen(eψ)(E)])• = (Sen(ψ)(E))• ⊆ E′• = E′

rezulta caiψ : (ψ(Σ), (Sen(eψ)(E))•) −→ (Σ′, E′)

este morfism de teorii din IT .

(Σ, E)ψ //

eψ&&MMMMMMMMMM

(Σ′, E′)

(ψ(Σ), (Sen(eψ)(E))•)

88ppppppppppp

Probam unicitatea descompunerii. Fie ψ = e; i o alta descompunere unde e este din ET si i este dinIT .

(Σ, E)ψ //

e%%KK

KKKKKK

KK(Σ′, E′)

(Σ1, (Sen(e)(E))•)

i

99rrrrrrrrrr

Deoarece descompunerea ψ = e; i are loc si ın categoria inclusiva a signaturilor deducem Σ1 = ψ(Σ),e = eψ si i = iψ deci descompunerea este unica.

In concluzie Th(I) este o categorie inclusiva. �

Corolar 5.5.9 Teoriile institutiei logicii ecuationale formeaza o categorie inclusiva.

Page 154: Programare Logica

154 CHAPTER 5. MODULARIZARE

5.5.1 Categorii inclusive cu sume

Definitia 5.5.10 Spunem ca o categorie inclusiva C are sume daca subcategoria incluziunilor ei I are

supremuri finite.

Reamintim ca ıntro categorie de incluziuni supremurile coincid cu sumele directe. Continuam cu maimulte exemple de categorii inclusive cu suma.

Set

Am vazut ca ın categoria multimilor sumele directe sunt reuniunile disjuncte.In categoria incluziunilor de multimi sumele directe sunt reuniunile. De fapt avand de a face cu o clasa

partial ordonata, sumele directe coincid cu supremurile care ın cazul multimilor coincid cu reuniunile.

Sig

Propozitie 5.5.11 Categoria inclusiva a signaturilor algebrice are sume.

Demonstratie:Vom demonstra chiar mai mult, existenta supremurilor arbitrare.Consideram K o multime arbitrara de indecsi. Pentru k ∈ K fie (Sk,Σ

k) o signatura algebrica.Signatura (S,Σ) este definita prin S =

{Sk|k ∈ K} si pentru orice w ∈ S∗ si s ∈ S prin

Σw,s =⋃

{Σkw,s|w ∈ S

∗k , s ∈ Sk}.

Evident (Sk,Σk) ⊆ (S,Σ) pentru orice k ∈ K.

Presupunem (Sk,Σk) ⊆ (S′,Σ′) pentru orice k ∈ K. Deoarece Sk ⊆ S′ pentru orice k ∈ K deducem

S ⊆ S′.Fie w ∈ S∗, s ∈ S si σ ∈ Σw,s. Prin urmare exista k ∈ K, w ∈ S∗

k si s ∈ Sk cu proprietatea σ ∈ Σkw,s.

Deoarece (Sk,Σk) ⊆ (S′,Σ′) deducem σ ∈ Σ′

w,s. Am aratat astfel Σ ⊆ Σ′.

In concluzie, (S′,Σ′) este supremul familiei (Sk,Σk). �

Teoriile unei institutii

Teorema 5.5.12 Daca Sign este o categorie inclusiva cu sume, atunci Th(I) este o categorie inclusiva

cu sume.

Demonstratie: Pastram notatiile din propozitia precedenta.Fie (Σk, Ek) o familie finita de teorii. Fie Σ supremul(suma directa) familiei {Σk}k si ik : Σk → Σ

incluziuni. Vom proba ca

(Σ, (⋃

k

Sen(ik)(Ek))•)

este supremum ın categoria incluziunilor de teorii a familiei (Σk, Ek). Evident ik sunt morfisme de teorii,Fie (Σ1, E1) o teorie si jk ∈ IT ((Σk, Ek), (Σ1, E1)). Deoarece Σ este supremul familiei de signaturi

{Σk}k, exista o unica incluziune de signaturi j : Σ → Σ1 cu proprietatea ik; j = jk pentru orice k.

Page 155: Programare Logica

5.5. CATEGORII INCLUSIVE 155

Deoarece familia

ik : (Σk, Ek) −→ (Σ, (⋃

k

Sen(ik)(Ek))•)

are proprietatea din propozitia 5.4.4 si ik; j sunt morfisme de teorii rezulta ca

j : (Σ, (⋃

k

Sen(ik)(Ek))•) −→ (Σ1, E1)

este morfism de teorii. �

Deoarece categoria signaturilor algebrice Sig este inclusiva cu sume rezulta corolarul urmator.

Corolar 5.5.13 Categoria teoriilor din institutia logicii ecuationale este inclusiva cu sume.

Din punct de vedere practic, deoarece teoriile sunt implementate prin prezentari ale lor, este utila urmatoareapropozitie.

Propozitie 5.5.14 Fie (Σk, Ek) o familie finita de prezentari si ik : Σk −→ Σ supremul ın categoria

incluziunilor de signaturi. Supremul familiei de teorii (Σk, E•k) este prezentat de

(Σ,⋃

k

Sen(ik)(Ek)).

Demonstratie: Este suficient sa invocam observatia 5.4.8

(⋃

k

Sen(ik)(Ek))• = (

k

Sen(ik)(E•k))

•.

5.5.2 Sume fibrate care conserva incluziunile

Sumele fibrate sunt un caz particular de colimite. Fie I o categorie mica care are trei obiecte ımpreuna cuidentitatile lor si alte doua morfisme cu acelasi sursa. Un functor definit pe I cu valori ıntro categorie Ceste dat de doua morfisme cu aceeasi sursa din categoria C.

A

i??�����

f ��???

??

B

C

Suma fibrata este colimita unui astfel de functor.

Un cocon pentru un astfel de functor este format din doua morfisme

j : B −→ D si g : C −→ D

cu proprietatea

i; j = f ; g.

Urmand direct definitia coconului ar fi trebuit trei morfisme j, g de mai sus si h : A −→ D cu proprietatileh = i; j si h = f ; g. Se observa usor echivalenta celor doua variante.

Page 156: Programare Logica

156 CHAPTER 5. MODULARIZARE

Definitia 5.5.15 Se numeste suma fibrata a cuplului de morfisme

A

i??�����

f ��???

??

B

C

un cuplu de morfisme

j : B −→ D si g : C −→ D

cu proprietatile:

1) i; j = f ; g si

2) pentru orice cuplu de morfisme j′ : B −→ D′ si g′ : C −→ D′ cu proprietatea i; j′ = f ; g′ exista un

unic morfism u : D −→ D′ care satisface

j;u = j′ si g;u = g′. �

Definitia 5.5.16 Intr-o categorie inclusiva, spunem ca sumele fibrate conserva incluziunile daca:

pentru orice incluziune i : A → B si orice morfism f : A −→ C pentru care perechea i, f are o

suma fibrata, exista o suma fibrata a perechii i, f formata dintr-un morfism g : B −→ D si o incluziune

j : C −→ D.

A

i??�����

f ��???

??

Bg

��???

??

C/

� j

??�����

D

Continuam cu exemple de categorii inclusive ın care sumele fibrate conserva incluziunile.

Set

Propozitie 5.5.17 In categoria multimilor sumele fibrate conserva incluziunile.

Demonstratie: Fie f : A −→ C o functie si A ⊆ B. Notam cu i : A → B incluziunea lui A ın B.

Page 157: Programare Logica

5.5. CATEGORII INCLUSIVE 157

A

i??������

f ��???

???

Bu

,,XXXXXXXXXXXXXXXXXXXXXXXXXXX

g

��???

??

C/

� j

??����� v

33ggggggggggggggggggggggggggg

C∐

(B −A) w//_______________ D

Consideram reuniunea disjuncta C∐

(B − A) si definim g : B −→ C∐

(B − A) ca o extindere a lui f

astfel g(b) =

{

b b ∈ B −A

f(b) altfel.

Observam ca g(i(a)) = g(a) = f(a) = j(f(a)), adica i; g = f ; j.

Consideram u : B −→ D si v : C −→ D astfel ıncat i;u = f ; v. Definim w : C∐

(B −A) −→ D astfel

w(x) =

{

v(x) x ∈ C

u(x) x ∈ B −A

Prin urmare pentru orice b ∈ B

w(g(b)) =

{

w(b) b ∈ B −A

w(f(b)) b ∈ A=

{

u(b) b ∈ B −A

v(f(b)) b ∈ A= u(b)

deci g;w = u. Deoarece pentru orice x ∈ C, w(j(x)) = w(x) = v(x), deducem j;w = v.

Unicitatea lui w rezulta din constructie. �

Sig

Propozitie 5.5.18 In categoria signaturilor algebrice sumele fibrate conserva incluziunile.

Demonstratie: Fie i : (S,Σ) −→ (S′,Σ′) o incluziune de signaturi si (f, g) : (S,Σ) −→ (S′′,Σ′′) unmorfism de signaturi.

Plecand de la incluziunea de multimi S → S′ si functia f : S −→ S′′ facem ın categoria multimilor,dupa modelul de mai sus, o sums fibrata care conserva incluziunea.

Definim f ′ astfel f ′(s) =

{

f(s) s ∈ S

s altfel. Observam ca f ′↾S= f ; l.

Variante de definire Σ0:1) Daca w0 ∈ S′′∗ si s0 ∈ S′′ atunci

Σ0w0,s0 = Σ′′

w0,s0 ∪ {(w′, s′, σ′)|f ′∗(w′) = w0, f ′(s′) = s0, σ′ ∈ Σ′

w′,s′ − Σw′,s′}.

2) In caz contrar

Σ0w0,s0 = {(w′, s′, σ′)|f ′∗(w′) = w0, f ′(s′) = s0, σ′ ∈ Σ′

w′,s′ − Σw′,s′}.

Page 158: Programare Logica

158 CHAPTER 5. MODULARIZARE

Vom defini g′ pentru orice w′ ∈ S′∗, s′ ∈ S′ si σ ∈ Σ′w′,s′ prin

g′w′,s′(σ) =

{

gw′,s′(σ) w′ ∈ S∗, s′ ∈ S, σ ∈ Σw′,s′

(w′, s′, σ) altfel

Observam ca g′w′,s′ : Σ′w′,s′ −→ Σ0

f ′∗(w′),f ′(s′). Comutativitatea diagramei i; (f ′, g′) = (f, g); l este evidenta.

(S,Σ)

i??�������

(f,g) ��???

????

(S′,Σ′)(f1,g1)

++XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(f ′,g′)

��???

????

(S′′,Σ′′)/

� l

??������� (f2,g2)

33fffffffffffffffffffffffffffff

(S′′∐

(S′ − S),Σ0)∃!(u,v)

//________ (S1,Σ1)

Consideram morfismele (f1, g1) : (S′,Σ′) −→ (S1,Σ1), (f2, g

2) : (S′′,Σ′′) −→ (S1,Σ1) cu proprietateai; (f1, g

1) = (f, g); (f2, g2), prin urmare f1↾Σ= f ; f2 si pentru orice w ∈ S∗, s ∈ S si σ ∈ Σw,s

g1w,s(σ) = g2

f∗(w),f(s)(gw,s(σ)).

Construim morfismul de signaturi (u, v) : (S′′∐

(S′ − S),Σ0) −→ (S1,Σ1). Din proprietatea sumeifibrate pentru multimi stim ca exista o unica functie u care face diagramele comutative pe multimi, adicaf ′;u = f1 si u↾S′′= f2.

Definim pe vw0,s0 : Σ0w0,s0 −→ Σ1

u∗(w0),u(s0) astfel

1) Daca w0 ∈ S′′∗, s0 ∈ S′′, σ ∈ Σ′′w0,s0 atunci vw0,s0(σ) = g2

w0,s0(σ).

2) Daca σ ∈ Σ′w′,s′ − Σ si f ′∗(w′) = w0, f ′(s′) = s0 atunci vw0,s0(w

′, s′, σ′) = g1w′,s′(σ

′).

Din primul caz este evident ca v↾Σ′′= g2, deci prima diagrama este comutativa.Pentru a proba ca (f ′, g′); (u, v) = (f1, g

1), deoarece f ′;u = f1 aratam ca pentru orice w′ ∈ S′∗ si s ∈ S′

cag′w′,s′; vf ′∗(w′),f ′(s′) = g1

w′,s′.

Fie σ ∈ Σ′w′,s′ . Conform definitiei lui g′w′,s′ consideram doua cazuri

a) In cazul ın care σ ∈ Σ′w′,s′ − Σ avem vf ′∗(w′),f ′(s′)(g

′w′,s′(σ)) = vf ′∗(w),f ′(s′)(w

′, s′, σ) = g1w′,s′(σ).

b) Daca σ ∈ Σw,s, w ∈ S∗, s ∈ S avem vf ′∗(w),f ′(s)(g

′w,s(σ)) = vf∗(w),f(s)(gw,s(σ)) = g2

f(w),f(s)(gw,s(σ)) =

g1w,s(σ).

Unicitatea rezulta usor. �

Teoriile unei institutii

Propozitie 5.5.19 Fie I o institutie ın care Sign este categorie inclusiva si are sume fibrate. Daca

ın categoria Sign sumele fibrate conserva incluziunile, atunci ın categoria T h(I) sumele fibrate conserva

incluziunile.

Demonstratie: In T h(I) presupunem ca incluziunea i : (Σ, E) −→ (Σ1, E1) si morfismulφ : (Σ, E) −→ (Σ2, E2) au o suma fibrata. Deoarece ın Sign incluziunea i : Σ −→ Σ1 si morfismul

Page 159: Programare Logica

5.6. IMPORTURI 159

φ : Σ −→ Σ2 au o suma fibrata si ın categoria signaturilor sumele fibrate conserva incluziunile deducemexistenta unei sume fibrate

Σ

i??������

φ ��???

???

Σ1ρ

��???

??

Σ2

/

� j

??�����

Σ′

ın care j este o incluziune de signaturi.

Deoarece functorul U : T h(I) −→ Sign creaza slab colimitele, exista suma fibrata

(Σ, E)

i??�����

φ ��???

??

(Σ1, E1)ρ

��???

???

(Σ2, E2)/

� j

??������

(Σ′, ( Sen(ρ)(E1) ∪ Sen(j)(E2) )•)

ın care j este o incluziune de teorii. �

Corolar 5.5.20 In categoria teoriilor din institutia logicii ecuationale sumele fibrate conserva incluziunile.

5.6 IMPORTURI

Pentru o prezentare cele mai utilizate semantici sunt semantica initiala si semantica slaba. Conformsemanticii slabe sunt considerate toate modele prezentarii. Conform semanticii initiale este consideratdoar modelul intial. Prin urmare in conformitate cu semantica adoptata o prezentare poate da mai multespecificatii, adica o prezentare si o clasa de modele ale acesteia. Practica programarii cere si alte metodede definire a specificatiilor. Printre acestea metoda importurilor.

Pentru definirea semanticii initiale este necesar conceptul de sageata universala.

Definitia 5.6.1 Fie F : C −→ D un functor, C un obiect din categoria C si D un obect din categoria D.

Un morfism u : D −→ F (C) se numeste sageta universala daca pentru orice morfism f : D −→ F (C ′)

exista un unic morfism f# : C −→ C ′ cu proprietatea u;F (f#) = f.

Vom accepta trei feluri de importuri protecting, extending si using.

Fie o specificatie (Σ, E,M) importata de prezentarea (Σ′, E′). Acceptam automat caM⊆Modp(Σ, E)si ca prezentarea importata este inclusa ın specificatia care importa:

α : (Σ, E) → (Σ′, E′).

Prin urmare Modp(α) : Modp(Σ′, E′) −→ Modp(Σ, E) este un functor uituc, adica uita o parte dintresuporturile si o parte dintre operatiile modelelor.

Vom defini specificatia (Σ′, E′,M′) definind de fapt clasa de modeleM′ ın functie de tipul importuluisi de semantica acceptata pentru prezentarea importatoare.

Page 160: Programare Logica

160 CHAPTER 5. MODULARIZARE

5.6.1 Semantica slaba

Prin definitie ın funtie de tipul importului:a) Protecting

M′ = {M ′ ∈Modp(Σ′, E′) : Modp(α)(M ′) ∈M}

b) Extending

M′ = {M ′ ∈Modp(Σ′, E′) : (∃M ∈M) si un morfism injectiv j : M −→Modp(α)(M ′)}

c) Using

M′ = {M ′ ∈Modp(Σ′, E′) : (∃M ∈M) si un morfism j : M −→Modp(α)(M ′)}

5.6.2 Semantica initiala

a) Protecting

M′ = {M ′ ∈Modp(Σ′, E′) : Modp(α)(M ′) ∈M si 1Modp(α)(M ′) este sageata universala}

b) Extending

M′ = {M ′ ∈Modp(Σ′, E′) : (∃M ∈M) si un morfism injectiv si universal j : M −→Modp(α)(M ′)}

c) Using

M′ = {M ′ ∈Modp(Σ′, E′) : (∃M ∈M) si un morfism universal j : M −→Modp(α)(M ′)}

Daca o prezentare importa mai multe submodule se utilizeaza conjuctia conditiilor de mai sus.

Avand ın vedere cele de mai sus un program apare ca un graf orientat aciclic conex ın care nodurilesunt etichetate cu specificatii si sagetile sunt incluziuni de prezentari. Daca un modul este importat pedoua cai diferite el apare ıntr-un singur nod, fapt pentru care, ın general, nu avem de a face cu un arbore.

5.7 PARAMETRIZAREA PROGRAMELOR

Programarea clasica include utilizarea subprogramelor pentru modularizarea programelor mari. Pro-gramarea prin rescriere foloseste pentru acelasi scop, modularizarea, asa numita metoda a programariiparametrizate.

Asa numitele argumente, formale respective actuale, din programarea clasica sunt ınlocuite de asanumitii parametri, formali respectivi actuali. Parametri formali sunt prin definitie teorii, iar parametriactuali sunt prin definitie morfisme de prezentari.

Vom ilustra la nivel teoretic tehnica parametrizarii programelor.

Fie M [T1, T2, T3] un modul parametrizat formal de trei teorii T1, T2 si T3. Numarul trei este utilizatpentru acest exemplu. In general orice numar finit este permis. Nu uitati ca practic, ın programe, teoriilesunt reprezentate de prezentari ale lor.

Fie T1 + T2 + T3 suma directa ın categoria incluziunilor de teorii. Notam cu i1 : T1 → T1 + T2 + T3,i2 : T2 → T1 + T2 + T3, i3 : T3 → T1 + T2 + T3 si i : T1 + T2 + T3 → M [T1, T2, T3] incluzinile careapar.

Fie M [m1,m2,m3] modulul obtinut prin ınlocuirea parametrilor formali cu parametri actuali m1, m2si m3. Mentionam ca m1 : T1 −→M1, m2 : T2 −→M2 si m3 : T3 −→ M3 sunt morfisme de prezentari.Vom explica ın continuare cine este M [m1,m2,m3].

Page 161: Programare Logica

5.7. PARAMETRIZAREA PROGRAMELOR 161

� �

6i

� �

6

M [T1, T2, T3]

T1 + T2 + T3

M [m1,m2,m3]

M1 +M2 +M3

-

-m1+m2+m3

� �

6ik

� �

6jk

Tk -mkMk

Fie M1 + M2 + M3 suma directa ın categoria incluziunilor. Notam cu j1 : M1 → M1 + M2 + M3,j2 : M2 →M1 +M2 +M3 si j3 : M3 →M1 +M2 +M3 incluziunile care sunt morfisme structurale alesumei directe.

Fie m1 +m2 +m3 : T1 + T2 + T3 −→M1 +M2 +M3 unicul morfism de teorii cu proprietate

ik; (m1 +m2 +m3) = mk; jk

pentru orice k ∈ {1, 2, 3}.La ultimul pas al constructiei utilizand morfismul m1 +m2 +m3 : T1 + T2 + T3 −→M1 +M2 +M3

se face o suma fibrata care conserva incluziunea i : T1 + T2 + T3 → M [T1, T2, T3]. Se obtine astfelincluziunea M1 +M2 +M3 → M [m1,m2,m3]. Aceasta ultima incluziune impreuna cu incluziunile jk :Mk →M1 +M2 +M3 dau structura programului M [m1,m2,m3].

Page 162: Programare Logica

162 CHAPTER 5. MODULARIZARE

Page 163: Programare Logica

Bibliography

[1] F. Baader, T. Nipkow. Term Rewriting and All That. Cambridge University Press, 1998

[2] R. Burstall, J. Goguen. Putting theories together to make specifications. In: R. Reddy editor, Proc.Tifth International Joint Conference on Artificial Intelligence, 1977, Cambridge, pp 1045-1058

[3] V. E. Cazanescu, G. Rosu. Weak inclusion systems. Mathematical Structure in Computer Science,7(2):195-206, 1997

[4] R. Diaconescu. Institution-independent Model Theory Birkhauser 2008

[5] R. Diaconescu, K. Futatsugi. CafeOBJ Report. The Language, Proof Techniques, and Methodologiesfor Object-Oriented Algebraic Specification, volum 6 in AMAST Series in Computing. World Scientific,1998

[6] R. Diaconescu, J. Goguen, P. Stefaneas. Logical support for modularisation. In Gerard Huet si GordonPlotkin, editori, Logical Environments, pag 83-130. Cambridge, 1993.

[7] H. Ehrig, B. Mahr. Fundamentals of Algebraic Specification 1: Equations and Initial Semantics.EATCS Monographs on Theoretical Computer Science, vol 6. Springer-Verlag, 1985

[8] H. Ehrig, B. Mahr. Fundamentals of Algebraic Specification 2: Module Specifications and Constraints.EATCS Monographs on Theoretical Computer Science, vol 21. Springer-Verlag, 1990

[9] J. Goguen, Burstall. Institutions: Abstract model theory for specification and programming. Journalof the ACM, 39(1):95-146, 1992

[10] J. Goguen, J. Thatcher, E. Wagner, J. Wright. Initial algebra semantics and continuous algebras,Journal of the ACM, 24:68-95, 1977

[11] J. Goguen, J. Thatcher, E. Wagner. An initial algebra approach to the specification, correctness, andimplementation of abstract data types, Current trends in Programming Methodology, Vol. IV, DataStructuring(R.T.Yeh, Editor), Prentice-Hall, 1978, 80-149

[12] J. Goguen, T.Winkler, J. Meseguer, K. Futatsugi, J.-P. Jouannaud. Introducing OBJ. In J. Goguen,editor, applications of Algebraic Specification using OBJ. Cambridge, 1993

[13] D.E. Knuth, P. Bendix. Simple word problems in universal algebra. In J.Leech editor, ComputationalProblems in Abstract Algebra, pages 263-97, Pergamon Press, 1970

[14] F. W. Lawvere. Functorial semantics of algebraic theories. Proceedings, National Academy of Sciences,50:869-873, 1993. Summary of Ph.D. Thesis, Columbia University

[15] S. MacLane. Categories for the working mathematician. Graduate Texts in Mathematics 5, 2ndedition, Springer-Verlag, 1998.

163

Page 164: Programare Logica

164 BIBLIOGRAPHY

[16] E. Ohlebusch. Advanced Topics in Term Rewriting. Springer Verlag, 2002

[17] Terese, Term Rewriting Systems, Cambridge Universitary Press, 2003