You are on page 1of 156

vii

viii

Cuprins

Prefa

Cuprins
8. Rafinri ale rezoluiei:

Capitolul 1

Introducere

Funcii booleene

1. Algebre booleene . . . . . . . . . . . . . . . . . . .

14

Capitolul 3

105

9. Recapitulare i Index . . . . . . . . . . . . . . .

111

10. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . .

120

Logica (calculul) cu predicate de ordinul I

123

1. Sintaxa logicii cu predicate

2. Teoreme de reprezentare i

de ordinul I . . . . . . . . . . . . . . . . . . . . . .

forme normale pentru

Capitolul 2

strategii i restricii . . . . . . . . . . . . . . . .

funciile booleene . . . . . . . . . . . . . . . . . .

22

3. Clase speciale de funcii booleene . . . . .

32

4. Recapitulare i Index . . . . . . . . . . . . . . .

39

5. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . .

41

2. Semantica logicii cu predicate

Logica propoziional
(calculul propoziional)

43

1. Logica, parte a filozofiei . . . . . . . . . . . .

45

2. Sintaxa logicii propoziionale . . . . . . . . .

55

3. Semantica logicii propoziionale . . . . . .

61

4. Forme normale n LP . . . . . . . . . . . . . .

72

5. Decidabilitate n LP . . . . . . . . . . . . . . .

77

6. Formule Horn . . . . . . . . . . . . . . . . . . . .

81

7. Rezoluie n LP . . . . . . . . . . . . . . . . . . .

89

123

Capitolul 4

de ordinul I . . . . . . . . . . . . . . . . . . . . . .

141

3. Forme normale n LP1 . . . . . . . . . . . . .

151

4. Decidabilitate n LP1 (LP1=) . . . . . . . .

170

5. Rezoluie n LP1 . . . . . . . . . . . . . . . . . .

184

6. Recapitulare i Index . . . . . . . . . . . . . . .

187

7. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . .

190

Teorii logice i sisteme deductive

193

1. Sisteme deductive . . . . . . . . . . . . . . . . .

196

2. Teorii logice . . . . . . . . . . . . . . . . . . . . .

207

3. Clasificarea sistemelor deductive . . . . . . 217


4. Recapitulare i Index . . . . . . . . . . . . . . . 232
5. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . .

235

Cuprins
Capitolul 5

ix
Programare logic

238

1. Exemple de programe logice pure . . . .

240

2. Sintaxa programelor logice . . . . . . . . . .

249

Capitolul 1
Funcii booleene

3. Recapitulare i Index . . . . . . . . . . . . . . . 258


4. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . .

260

Scopul acestui capitol l constituie familiarizarea cititorului cu o


clas particular de funcii clasa funciilor booleene. Aceste funcii,
dei au o mulime de definiie (un domeniu) i o mulime de valori (un

Anex

codomeniu) aparent simple, au proprieti locale i globale foarte utile.

Rezolvarea exerciiilor i
exerciii propuse

267

Teoria dezvoltat pentru ele constituie de fapt baza conceptual i

1. Rezolvri Capitolul 1 . . . . . . . . . . . . . .

267

concret a semanticii logicii propoziionale n sens clasic (i nu numai).

2. Rezolvri Capitolul 2 . . . . . . . . . . . . . .

272

3. Rezolvri Capitolul 3 . . . . . . . . . . . . . .

282

4. Rezolvri Capitolul 4 . . . . . . . . . . . . . .

288

adunarea modulo 2) i opus, n disjuncie, respectiv negaie (ca

5. Rezolvri Capitolul 5 . . . . . . . . . . . . . .

292

operaii cu valori de adevr), etc., multe rezultate din logic pot fi

6. Exerciii propuse . . . . . . . . . . . . . . . . . .

302

ulterior deduse printr-o simpl traducere. Anumite noiuni i

Schimbnd semnificaia simbolurilor 0 i 1 din cifr n valoare de


adevr (fals, respectiv adevrat), a operaiilor + i

, etc., din

adunare (de exemplu, adunarea n mulimea numerelor naturale sau

proprieti specifice funciilor booleene nu sunt direct i neaprat


Bibliografie

312

necesare n studiul logicii formale, astfel nct subiectul nu este tratat n


detaliu.
Vom introduce - ct mai succint i la un nivel informal - i alte
noiuni, notaii sau rezultate necesare pentru mbuntirea nelegerii
majoritatea de natur algebric ([DID]) sau de informatic elementar
([SOR]). n primul rnd, chiar din manualele de matematic de liceu
sunt bine cunoscute cel puin dou modaliti de a prezenta o mulime:

Prin enumerarea elementelor sale. N = {0, 1, 2, ...} este


mulimea numerelor naturale.

Fundamentele logice ale Informaticii

10

Cristian Masalagiu

Prin specificarea unei proprieti caracteristice. A = {x R |

Soluia adoptat pentru aceast a treia cale de descriere a unei

| x2 + 9x 8 = 0}, este mulimea rdcinilor reale ale unei

mulimi are avantajul de a avea i o caracteristic de natur

ecuaii polinomiale de gradul al II-lea.

(semi)algoritmic. Acceptm astfel paradigma imperativ propus de

Mai exist o modalitate de specificare, care, fr a fi fost tratat n mod

D. Knuth ([KNU]), Algoritm = Date + Operaii. Mai exact, un

explicit, a fost totui suficient de des utilizat (n ideea constructivist,

algoritm (imperativ) reprezint o secven finit de pai (instruciuni),

[CAZ2], [RIC]). Aceasta poate fi descris pe scurt astfel: A este cea

care descriu operaii precise asupra unor informaii (date) iniiale (de

mai mic mulime care conine elementele ... i care este nchis la

intrare) sau intermediare (de lucru, temporare), n vederea obinerii

operaiile ... . De exemplu, dac notm cu 0 cel mai mic (primul) numr

unor informaii (rezultate) finale (de ieire). Paii se execut (operaiile

natural i, pentru fiecare n, numr natural, cu s(n) succesorul su

se efectueaz n mod concret) n ordinea scrierii lor n secven. Un

imediat, mulimea N poate fi definit (n ideea de mai sus) constructiv

algoritm calculeaz o funcie sau rezolv o problem ([CRO],

sau structural (ea este de fapt o mulimebine-ordonat, [IP]), astfel:

[SOR]). Intuitiv, datele de intrare reprezint elemente din domeniul de


definiie al funciei de calculat (sau informaiile iniiale din realitatea n

Baza. 0 N (zero este numr natural).

care i are originea problema pe care vrem s o rezolvm), iar datele de

Pas constructiv (structural). Dac n N, atunci s(n) N (dac n

ieire sunt elemente din codomeniul funciei (respectiv, soluiile

este numr natural, atunci succesorul su imediat este numr natural).

problemei). Un algoritm se termin pentru toate intrrile admise, prin

Nimic altceva nu mai este numr natural.

urmare exist ntotdeauna un ultim pas, a crui execuie marcheaz


de obicei i obinerea rezultatelor de ieire. Din motive tehnice, vom

Prin urmare, N este o mulime care conine (iniial) elementul numit 0.

lua uneori n considerare i algoritmi care nu se termin pentru toate

Se introduc apoi elemente noi folosind elemente vechi (deja existente

intrrile, pe care-i vom numi semialgoritmi (proceduri). Un

n mulime) i simbolul (operatorial) s. Procesul continu ct timp este

(semi)algoritm poate fi descris sub mai multe forme, printre care se

posibil (n cazul de mai sus, el continu la infinit). Pentru ca N s fie

numr i pseudocodul (limbaj intermediar ntre limbajul natural i un

ntr-adevr cea mai mic mulime construit n felul descris, am

limbaj de programare comercial). Astfel, definiia constructiv a lui N

adugat, n plus fa de Baz i Pasul constructiv, condiia nimic

poate deveni, n limbaj algoritmic (pseudocod, [IVA]):

altceva nu mai este numr natural (n cele ce urmeaz, ultimul text


va fi implicit presupus a fi prezent.

Fundamentele logice ale Informaticii

11

12

Cristian Masalagiu

[LUC]). Revenind la definiiile constructive care ascund i ideea de


Intrare: -.

recursivitate n programare - ele au i alte avantaje. Un prim avantaj

Ieire: N.

este acela c se poate folosi aceeai metod pentru a introduce alte

Metod:

definiii, care sunt legate de mulimea respectiv n totalitatea ei. Putem

Pas 1: N = {0}.

da astfel o definiie constructiv (recursiv) a adunrii numerelor

Pas 2: Ct_timp (este posibil) execut

naturale, pe care o vom folosi de altfel n Capitolul 5, dup cum

Pas 3: Alege n N.

urmeaz.

Pas 4: N = N U {s(n)}.
Sf_Ct_timp.

Baza: x + 0 = x, pentru fiecare x N (a aduna 0 la orice numr natural


nseamn a-l lsa neschimbat).

Desigur c n cele de mai sus 0 putea fi introdus din exterior, adic n

Pas constructiv: x + s(y) = s(x + y), pentru fiecare x, y N (dac tim

Intrare. nafara instruciunii de ciclare cu un numr necunoscut de

s calculm x + y i cunoatem succesorul imediat al numrului natural

pai (Ct_timp (<condiie>) execut <corp> Sf_Ct_timp) i a

y, atunci tim s calculm i suma x + s(y); mai exact, aceasta coincide

celei de asignare (<variabil> = <valoare>), n descrierea algoritmilor

cu succesorul imediat al numrului care reprezint suma x + y).

imperativi vom mai folosi selecia (Dac (<condiie>) atunci <corp>


altfel <corp> Sf_Dac) i instruciunea de ciclare cu un numr

Un al doilea i cel mai important avantaj este posibilitatea folosirii

cunoscut de pai (Pentru <variabil> = <valoare iniial>, <indice>,

n demonstraii a principiului induciei structurale:

<valoare final> execut <corp> Sf_Pentru). Cteodat vom


ntrebuina i varianta Repet <corp> Pn_cnd (<condiie>)

Fie A o mulime definit constructiv, A A mulimea elementelor

Sf_Repet pentru o instruciune de ciclare. Presupunnd c

iniiale (definite prin pasul Baza al definiiei) i P o afirmaie care

semnificaia intuitiv a instruciunilor de mai sus este cunoscut de

trebuie demonstrat pentru toate elementele lui A. Acceptm c P (a)

ctre cititor, vom mai face precizri i completri pe parcursul lucrrii

este adevrat pentru fiecare a A dac i numai dac:

legate de conceptul de algoritm, cum ar fi prezentarea pe scurt a

1. (Baza.) Artm c P(a) este adevrat pentru fiecare a A.

conceptelor de corectitudine, complexitate, tratabilitate. Orice


manual de introducere n programarea imperativ poate fi folositor
celor care nu stpnesc asemenea noiuni (de exemplu, [COR], [AHO],

2. (Pas inductiv.) Fie orice b A, element nou obinut din elementele


deja construite a1, a2, ... , an, cu ajutorul operatorului f (vom conveni s

13

Fundamentele logice ale Informaticii

14

Cristian Masalagiu

scriem acest lucru prin b = f(a1, a2, ... , a n), dei relaia dintre

Noiunile de axiom, teorem, regul de inferen, demonstraie,

elementele vechi i cele noi nu este ntotdeauna de natur funcional)

raionament, sunt utilizate n acest capitol la modul informal/descriptiv,

i presupunem c este adevrat P(ai) pentru fiecare ai {1, 2, ..., n}.

ele urmnd a fi precizate n capitolele urmtoare.

Artm c este adevrat P(b).

1. Algebre booleene
Observaie. Principiul induciei matematice (naturale) aa cum este

Se presupun cunoscute noiunile i notaiile de baz din

el cunoscut din matematica de liceu, este un caz particular al

matematica

de

liceu.

plus,

submulimea

lui

N,

principiului induciei structurale (dup cum se observ imediat).

{1, 2, ... ,n} se va nota i cu [n], iar pentru indicarea unui element al

Folosim cuvntul principiu n loc de teorem (care trebuie s aib i o

unui produs cartezian (numit i tuplu sau n-uplu n cazul n care

demonstraie aferent) deoarece n cele de mai sus doar stipulm c

numrul n de componente este cunoscut) se vor folosi parantezele

formulele (n)P(n) i respectiv P(0) (n)(P(n) implic P(n+1))

ascuite, nu cele rotunde (exceptnd cazul n care este vorba de

sunt tare echivalente (n sensul care va fi precizat n Capitolul 2). n

aplicarea unei funcii unui tuplu).

cele de mai sus, P(0) poate fi nlocuit i cu orice P(k), k numr

Notm cu B mulimea {0, 1} i cu FB(n) = {f | f : Bn B}, Bn

natural fixat, deoarece i submulimea lui N, {k, k + 1, ... } este bine-

reprezentnd produsul cartezian al lui B cu el nsui, luat de n N ori

ordonat; n acest caz, locul lui (n) este luat de (n k)).

(Bn = B B ... B). FB(0) va coincide cu B, prin convenie. Vom

Echivalena amintit, dei adevrat n anumite situaii (structuri)

pune deci:
FB FBn
n 0

FB(0) B

particulare, nu este adevrat n sensul general al logicii formale.


Forme particulare ale principiului induciei structurale sunt i metoda
aseriunilor

invariante

([DIJ]),

folosit

pentru

demonstrarea
n

corectitudinii algoritmilor imperativi, sau metoda induciei asupra

Observaie. card(FBn) = 2 2 . Cardinalul unei mulimi A va mai fi

unei demonstraii ([WIN]), folosit pentru demonstrarea unor teoreme

notat, atunci cnd nu exist confuzii i cu |A|. Mai mult, dac att

de tip corectitudine i completitudine.

domeniul ct i codomeniul unei funcii sunt mulimi finite, funcia


poate fi dat tabelar. O asemenea tabel de definiie va fi numit nc
de pe acum tabel de adevr, dei semnificaia acestui termen poate

15

Fundamentele logice ale Informaticii

16

Cristian Masalagiu

crea anumite confuzii de moment. n cazul unei funcii f FB(n)


(operaie n-ar), tabela de definiie va fi de forma:

c0

c1

1B

x1

x2

...
1

xn

f(x1, x2, ... , x n)

f(0, 0, ... , 0)

...

f(0, 0, ... , 1)

...

...

...

...

Pentru n = 2, din totalul celor 16 funcii de dou variabile posibile

f(1, 1, ... , 1)

(operaii 2-are; binare), cteva dintre cele mai importante sunt: +

...

(suma, sau adunarea boolean sau disjuncia), (produsul boolean

sau conjuncia), (suma modulo 2 sau disjuncia exclusiv) i |


Se mai observ c am folosit o ordine standard pe Bn , de unde

(anticonjuncia sau operaia lui Sheffer):

se poate deriva o ordine standard pentru valorile din codomeniul


funciei. Acest lucru face posibil o reprezentare a funciilor booleene

x+y

xy

xy

x|y

ca numere n baza 2 i (desigur) ca numere n baza 10.

ntrebare. Putei justifica egalitatea card (FBn) = 2

Indicm cteva funcii importante din FB. Dup cum am


precizat deja, n FB(0) avem doar constantele corespunztoare, elemente
ale lui B (prin convenie, acestea sunt funcii de 0 variabile).
Pentru n = 1, cele 4 funcii de o variabil (operaii 1-are sau unare)
sunt c0 (funcia indentic 0), c1 (funcia identic 1), 1 B (identitatea) i
(negaia, opusul), date prin:

ntrebare. Cte funcii sunt n FB(3) ? Putei da vreun exemplu de


asemenea funcie, care s aib i o semnificaie cunoscut ?
ntrebare. Putei descoperi singuri metoda standard

de

construcie a liniilor unui tabel ca cel de mai sus (ordinea standard pe


Bn)?
Observaie. Funciile binare , + i funcia unar , pot fi privite ca
legi de compoziie interne pe mulimea B. Astfel, ntr-un mod cu totul

17

Fundamentele logice ale Informaticii

18

Cristian Masalagiu

similar cu cazurile cunoscute ale grupului, inelului sau corpului, tuplul

Legile (numite impropriu i axiome) de mai sus nu reprezint

B = < B, , +, > formeaz o algebr boolean, sau algebr Boole

identiti, ele trebuind s fie nelese ca nite ecuaii satisfcute pentru

(dup numele matematicianului G. Boole, 1815 1864).

toate valorile variabilelor x, y, z, care sunt nume generice pentru


elemente oarecare din M. Fiecare dintre cei doi membri reprezint de

Definiia 1.1. Se numete algebr boolean un 4-uplu M ,

fapt (expresiile unor) funcii booleene (numrul de argumente fiind dat

M = <M, , , ~ >, format din orice mulime nevid M (suportul

de numrul de nume de variabile distincte care apar n intreaga ecuaie).

algebrei) dou operaii binare , : M M M i o operaie unar


~ : M M, care satisfac condiiile (legile):

Egalitatea nseamn prin urmare egalitatea de funcii. Mai mult, vom


admite fr demonstraie, c ecuaiile reprezint scheme de axiome,
adic legile anterioare precum i cele derivate care vor urma - sunt

1) x y = y x

comutativitate (a lui )

2) (x y) z = x (y z)

asociativitate (a lui )

3) x (y z) = (x y) (x z)

distributivitate (a lui

substituie va fi demonstrat n capitolul urmtor, n contextul logicii

fa de )

formale.

4) (x y) y = y

absorbie

5) (x (~x)) y = y

legea contradiciei

i respectiv

adevrate i dac nlocuim (textual) orice apariie a unei funcii


(subexpresii) prin alt functie (subexpresie). O asemenea Teorem de

n general, considernd afirmaii (notate generic cu A) peste o


mulime M (suport al unei algebre booleene), care depind doar de
variabile cu valori n M i folosesc doar operaiile amintite, afirmaii

1) x y = y x.

comutativitate (a lui )

care sunt reprezentate fie prin axiome (Baza definiiei structurale), fie

2) (x y) z = x (y z)

asociativitate (a lui )

obinute din axiome printr-un anumit raionament utiliznd reguli de

3) x (y z) = (x y) (x z)

distributivitate (a lui

inferen (Pasul constructiv: cu ajutorul regulilor se obin afirmaii

fa de )

noi, numite i teoreme, din afirmaii vechi), putem defini dualele lor,

4) (x y) y = y

absorbie

A, n felul urmtor: A se obine din A prin nlocuirea simultan

5) (x (~x)) y = y

legea tautologiei

(textual) a tuturor apariiilor lui cu i a tuturor apariiilor lui

cu .
Putem extinde conceptul i notaia anterioar la obiecte oarecare
(afirmaii, dar i elemente din M, funcii peste M, texte, etc.). Astfel, n

19

Fundamentele logice ale Informaticii

B, 1 este dualul lui 0 (evident i reciproc, relaia de dualitate fiind o


relaie simetric),

duala sumei este produsul, duala unei funcii

20

Cristian Masalagiu

ntrebare. Putei arta c funcia f(x, y, z) = x y z este


autodual ?

oarecare se obine prin dualizarea ntregii tabele de adevr, etc. ntr-o


algebr boolean oarecare M , se poate arta (demonstraia formal

Teorema 1.1. Tuplul B = < B, , +, > este o algebr boolean i

nefiind esenial pentru scopul acestei lucrri) c exist un (unic)


element n M (notat 0) care satisface n plus ecuaia x ( ~
x ) = 0,

pentru fiecare x B avem x( x ) = 0 i x + ( x ) = 1.

precum i un (unic) element 1 M, care este dualul lui 0, satisfcnd


x (~
x ) = 1 (0 fiind desigur distinct de 1). Mai mult, relaia de dualitate

c sunt adevrate doar axiomele 1) 5) i x( x ) = 0 (n cazul nostru,

este i idempotent (avem (o ) = o, pentru fiecare obiect o), existnd i

obiecte autoduale, adic obiecte care satisfac o = o (de exemplu,


(3)

funciile 1 B, i f FB , dat prin f(x, y, z) = x y z, sunt

Demonstraie. Conform principiului dualitii, este suficient s artm


este nlocuit de iar de ctre +). Vom privi att membrul stng ct i
membrul drept al ecuaiilor ca expresiile unor funcii i vom folosi
tabelele de adevr pentru reprezentarea acestora. Datorit simplitii
calculelor, dintre axiome vom arta doar validitatea lui 4). Avem:

autoduale). Fiecare axiom i) din Definiia 1.1, i [5] are astfel duala
sa, notat acolo prin i). Mai mult, nlocuind ntr-un raionament prin

xy

(x y) + y

care se obine o teorem A, orice axiom cu duala ei, vom gsi un

raionament (dual), prin care se obine (deduce, demonstreaz)

afirmaia A. Este justificat atunci s adoptm principiul dualitii

pentru B (care, la o privire atent, este i el un caz particular al

principiului induciei structurale). De fapt, pentru fiecare text (secven


finit de caractere grafice) se poate afla dualul su, dup schema
sugerat anterior. Admitem deci fr demonstraie formal c:
O afirmaie boolean A este adevrat dac i numai dac

i respectiv:
x

x (x )

duala sa A este adevrat.


Adevrul axiomei 4) rezult din primul tabel prin compararea
penultimei coloane (care este membrul stng al ecuaiei) cu ultima

21

Fundamentele logice ale Informaticii

22

Cristian Masalagiu

coloan (membrul drept), linie cu linie. Se observ imediat c acestea

O latice (i aici sunt mai multe accepiuni matematice ale termenului i

coincid, adic funciile date de expresiile respective sunt egale (dou

cteva definiii echivalente pentru o aceeai accepiune) este un triplet

funcii sunt egale dac au acelai domeniu i codomeniu i valorile lor

M = <M, , >, n care ambele operaii satisfac proprietile de

coincid pe fiecare valoare a argumentului). Similar pentru x( x ) = 0 i

idempoten, comutativitate, asociativitate i absorbie.

cel de-al doilea tabel, cu observaia c nu am mai explicitat coloana

orice latice (deci i n orice algebr boolean), se poate defini o relaie

care reprezint membrul drept (i care este de fapt expresia funciei c0).

de ordine parial (relaie binar, reflexiv, tranzitiv i antisimetric),

prin: x y dac i numai dac x = x y (sau, dual, y = x y). Datorit

n plus, n

acestui fapt, o latice se mai definete i ca fiind o mulime parial


O algebr boolean cunoscut este dat de mulimea prilor

ordonat (poset) n care toate submulimile finite, nevide, admit mcar

(submulimilor) unei mulimi oarecare V, notat 2 , mpreun cu


intersecia,

reuniunea

complementara

fa

de

o cea mai mic margine superioar (l.u.b., ) i o cea mai mare

V,

V = < 2 V, , U, CV>.
Observaie. Conceptul de algebr boolean este prezent n matematic

margine inferioar (g.l. b., ).

prin mai multe definiii, nu toate echivalente n orice context ([BIR]).

2. Teoreme de reprezentare i forme normale pentru

S menionm faptul c o definiie echivalent cu Definiia 1.1 este:

funciile booleene
ntr-o algebr boolean (n particular, n B ) sunt valabile i alte

O algebr boolean este o latice M = <M, , > care satisface

teoreme. Ele pot fi demonstrate fie utiliznd tabelele de adevr, fie

condiiile suplimentare:

construind un raionament, adic pornind de la axiome (i/sau de la alte

Exist (mcar) un prim element, 0 M, astfel nct x 0 = x.

teoreme, demonstrate anterior) i utiliznd anumite reguli de inferen.

Exist (mcar) un ultim element, 1 M, astfel nct x 1 = x.

Sumarizm cteva dintre ele n tabelul urmtor (teoremele sunt notate

Operaia este distributiv fa de operaia .

cu 6) 13) iar dualele lor respectiv cu 6) 13); am neglijat uneori, de

Pentru fiecare x M, exist un element x M (numit i

exemplu n 13) i 13), scrierea lui ).

complementul lui x), astfel nct x x = 1 i x x = 0.

23

Fundamentele logice ale Informaticii

24

Cristian Masalagiu

comutativitii, distributivitii, precum i cu alte teoreme, etc.


Afirmaiile 13) i 13) se mai numesc legile lui deMorgan.

6) x = x

6) x = x

7) x x = 0

7) x + x = 1

8) xx = x

8) x + x = x

Exerciiul 1.1. S se demonstreze adevrul afirmaiilor care urmeaz

9) x0 = 0

9) x + 1 = 1

folosind att tabelele de adevr ct i raionamente, implicnd axiome

10) x1 = x

10) x + 0 = x

(sau alte afirmaii, demonstrate n prealabil) i reguli de inferen

11) x1x2xn = 0 dac i 11) x1 + x2 + + xn = 1 dac

(deducie, demonstraie), cunoscute din matematica de liceu (de

numai dac exist i[n] astfel i numai dac exist i[n]

exemplu, cele legate de faptul c egalitatea este o relaie de

nct xi = 0 (oricare ar fi n 2 astfel nct xi = 1 (oricare ar fi

echivalen, adic este reflexiv, simetric i tranzitiv):

oricare

ar

x1, x2, ..., xn B)

fi n

oricare

ar

fi

b) x(x + y ) = x.

x1, x2, ..., xn B)

12) x1x2xn = 1 dac i 12) x1 + x2 + + xn = 0 dac


numai dac pentru fiecare i[n] i numai dac pentru fiecare
avem xi = 1 (oricare ar fi n 2 i[n] avem xi = 0 (oricare ar fi
i

oricare

ar

fi n

oricare

a) 11) din tabelul anterior.

ar

x1, x2, ..., xn B)

x1, x2, ..., xn B)

13)

13)

x1 x 2 ... x n = x1 + x 2 + ... + x n

x1 + x 2 + ... + x n = x1 x 2 ... x n

fi

c) x + xy = x.
d) x + x y = x + y.
e) x + xy = x + y.
f) x( x + y) = xy.
g) x (x + y) = x y.
Rezolvare. Vom lsa aplicarea metodei care utilizeaz tabelele de
adevr pe seama cititorului. De asemenea, vom presupune deja
demonstrate celelalte afirmaii din Tabelul 1.1.

(oricare ar fi n 2 i oricare ar (oricare ar fi n 2 i oricare ar

a) Procedm prin inducie matematic, afirmaia de demonstrat fiind

fi x1, x2, ..., xn B)

(n N)(n 2 implic P(n)), unde:

fi x1, x2, ..., xn B)

P(n): (x1, x2, ..., xn B)( x1x2xn = 0 dac i numai dac


Tabelul 1.1.

(i [n])(xi = 0)).
Baza. n = 2. Se folosesc 9) i 10) din Tabelul 1.1.

Din tabel se observ c afirmaia 6) este autodual i acesta putea fi


completat cu generalizarea la n 3 elemente a asociativitii,

Fundamentele logice ale Informaticii

25

26

Cristian Masalagiu

Pas inductiv. S presupunem c pentru (orice) k 2 i oricare elemente

Folosind comutativitatea i distributivitatea, rezult c trebuie s artm

x1, x2, ..., xk B avem:

x + y(x + x ) = x + y. Aplicm acum 7) i apoi 10) (Tabelul 1.1),

x1x2xk = 0 atunci i numai atunci cnd exist i[k] astfel nct

pentru a obine ceea ce se cere.

xi = 0.

e) x + xy = x + y. n relaia precedent se nlocuiesc toate apariiile

S presupunem faptul c este adevrat P(k) i s artm c P(k + 1)

lui x cu x i se folosete apoi 6).

este adevrat. Fie orice element din B, notat xk+1 i s notm

f) x( x + y) = xy. Se folosesc - n ordine distributivitatea, afirmaia

y = x1x2xk. Atunci avem de demonstrat c este adevrat afirmaia

7) (Tabelul 1.1), comutativitatea i 10) (Tabelul 1.1).

yxk+1 = 0 dac i numai dac exist i[k + 1] astfel nct xi = 0,

g) x (x + y) = x y. Din nou, se nlocuiesc simultan toate apariiile lui

ceea ce este echivalent cu a arta c:

x cu x n relaia precedent i se aplic 6).

yxk+1 = 0 dac i numai dac exist i[k] astfel nct xi = 0 sau


xk+1 = 0.
Aplicnd acum ipoteza inductiv, rezult c mai trebuie s artm c:
yxk+1 = 0 dac i numai dac y = 0 sau xk+1 = 0.
Ultima afirmaie este ns adevrat din cele deja demonstrate (P(2)
este adevrat).
b) x(x + y) = x. Pornim cu membrul stng i folosind axioma 3)
(distributivitate) gsim x(x + y) = xx + xy. Folosim acum 8) din
Tabelul 1.1, distributivitatea i faptul c egalitatea este o relaie
tranzitiv, pentru a obine x(x + y) = x(1 + y). Din comutativitate i
9) (Tabelul 1.1), se deduce c x(x + y) = x1. Ceea ce trebuia artat

S trecem n revist i cteva rezultate importante din teoria


general a funciilor booleene, pregtind un suport abstract adecvat
pentru capitolele urmtoare. O prim parte dintre enunuri vor fi reluate
pe parcursul lucrrii, ntr-un alt cadru. O a doua parte este prezentat
mai detaliat n alte cursuri (cum ar fi Arhitecturi i sisteme de operare).
n sfrit, a treia parte necesit cunotine suplimentare (din acest
motiv, unele demonstraii vor fi omise).
O clas de proprieti interesante se refer la o metod general
de reprezentare standard a funciilor din FB. ncepnd cu teorema
urmtoare introducem notaiile x1 = x i x0 = x (n sensul c puterea

urmeaz acum imediat, prin aplicarea lui 10) (Tabelul 1.1).

1 ataat unei expresii o las neschimbat, iar puterea 0

c) x + xy = x. Rezult din ultima parte a demonstraiei anterioare.

adaug o bar). S remarcm c indicii superiori precedeni nu se

d) x + x y = x + y. Pornim cu membrul stng al egalitii i l nlocuim


pe x cu x + xy, ceea ce putem face folosind punctul anterior i faptul
c egalitatea este o relaie simetric. Gsim x + x y = x + xy + x y.

supun principiului dualitii (de exemplu, nu este adevrat c (x1 = x)


coincide cu (x0 = x)).

27

Fundamentele logice ale Informaticii

28

Cristian Masalagiu

Teorema 1.2 ([CAZ1], de descompunere, n sum de termeni).

1 , 2 , ... k (ca argumente ale lui f) se nlocuiesc cu aceleai elemente,

Pentru fiecare n N*, f FB(n) i fiecare k [n], avem:

dar barate.

f(x1 , x 2 ,..., x n ) =

1 , 2 ,..., k B

x 11 x 2 2 ... x k k f(1 , 2 ,..., k , x k+1 ,..., x n )

distincte (putem nota mulimea acestora cu X = {x1, x2, ... , xn}, ideea

oricare ar fi x1, x2, ... , xn B.


Demonstraie. Dac xi, i B atunci, direct din notaiile de mai sus,
rezult c:
(*) (x 0) = (x)0 precum i x = 1 dac i numai dac x = .
Folosind 12) (Tabelul 1.1), rezult imediat c, n condiiile teoremei,

x11 x2 2 ... xk k = 1 dac i numai dac xi = i pentru fiecare i [k].


Fie acum elementele a1, a2, ... , an B, oarecare, fixate. Conform (*), n
suma

1 , 2 ,..., k B

a 1 1 a 2 2 ... a k k f( 1 , 2 , ..., k , a k+1 , ..., a n )

unul i numai unul dintre factorii

Definiia 1.2. Fie n N* i x1, x2, ... , xn B variabile (booleene)

a11

a2 2

... ak k

fiind ns c lucrm cu o list, adic cu o colecie ordonat de elemente


distincte). Se numete termen (n-ar, peste X) orice produs (uneori,
operatorul

de

produs
k

t = x i 1 x i 2 ... x i

este

omis,

sau

supradimensionat)

, unde 0 k n, 1, 2, ... , k B i

1 i1 < i2 < ... < ik n.


n definiia precedent, termenul generat pentru k=0 este 1 (prin
convenie). Pentru k = n obinem aa-numiii termeni maximali
(maxtermeni), adic acei termeni n care fiecare dintre variabilele
considerate apare o dat i numai o dat (barat sau nebarat), n

va fi egal cu 1,

ordinea precizat.

adic cel pentru care i = ai, pentru fiecare i [k]. Datorit


comutativitii i legilor 10), 9) i 10) (Tabelul 1.1), rezult c suma

Observaie. ntre mulimea termenilor n-ari t (peste X) i mulimea

este egal exact cu f(a1, a2, ... , an).

n-uplelor peste {0, 1, 2} (aceasta coincide de fapt cu mulimea


{f | f : [n] {0, 1, 2}}) se poate stabili o coresponden biunivoc g,

Este adevrat i teorema dual (de descompunere, n produs de

dat de g(t) = <e1, e2, ... , en>, unde, pentru fiecare i [n], avem ei = 0

factori), ambele rezultate fiind folosite pentru demonstrarea

dac xi apare barat n t, ei = 1 dac xi apare nebarat n t i ei = 2 n rest

existenei formelor normale pentru funciile booleene. n enunul

(xi nu apare n t). Mulimea termenilor n-ari considerai va avea atunci

teoremei duale, nafara nlocuirii lui + cu i a lui cu , numele

3n elemente. Raionnd similar pentru cazul maxtermenilor n-ari (n


acest caz, nu este posibil ca vreo variabil considerat s nu apar),

29

Fundamentele logice ale Informaticii

rezult c exist 2n maxtermeni n-ari distinci (indiferent de numele


celor n variabile diferite fixate prin X).

30

Cristian Masalagiu

Orice FND se poate reprezenta i grafic, ca un arbore ([KNU],


[LUC]). Datorit comutativitii adunrii putem face abstracie de
ordinea (max)termenilor dintr-o sum, mai exact, considernd oricare

Consideraiile de natur combinatorial sunt practic indispensabile n

dou sume care difer doar prin ordinea termenilor, le vom privi ca

vederea obinerii unor rezultate convenabile.

fiind identice. Vor exista astfel C

k
3n

forme normale disjunctive n-are

avnd k termeni, 0 k 3n (prin convenie, pentru k = 0, unica form


ntrebare. Putei rescrie att teorema de descompunere cu termeni
ct i teorema de descompunere cu factori pentru cazul n = 2 i k = 1 ?

care este acceptat i este i perfect, se noteaz tot cu 0). n consecin,


numrul total al n-FND urilor va fi:
n

C30n C31n ... C3kn ... C33n 23 .

Exemplu. Dac lum n = 2 i notm x1 cu x i x2 cu y, atunci cei 3 2 = 9

Analog, numrul total al n-FNDP urilor va fi:

termeni sunt: x, y, x, y, xy, x y, x y, x y, 1. Cei 22 = 4 maxtermeni

C20n C21n ... C2kn ... C22n 2 2 .

sunt: xy, x y, x y , x y.
Teorema 1.3 ([CAZ1]). Orice funcie boolean se poate reprezenta n
ntrebare. Sunt adevrate

afirmaiile fcute n precedenta

Observaie? Justificai rspunsul.


ntrebare. Fie X = {x, y, z, t}. Este x zt un maxtermen
(peste X) ?
Definiia 1.3. Se numete form normal disjunctiv (n-ar, n N*),
sau (n-)FND pe scurt, orice sum (finit) de termeni n-ari distinci. Se

mod unic ca o FNDP.


Demonstraie. Fie fixate n N*, f FB(n) i X = {x1, x2, ... , xn}.
Aplicnd Teorema de descompunere cu termeni pentru f i k = n,
gsim c f se poate scrie sub forma:

f(x1, x2 ,... , xn ) =

1 ,2 ,...,n B

x11 x2 2 ... xn n f(1, 2 ,..., n )

oricare ar fi valorile lui x1, x2, ... , xn din B i prin urmare avem:

numete form normal disjunctiv perfect (n-ar, n N*), sau


(n-)FNDP pe scurt, orice sum de maxtermeni n-ari distinci.

f(x 1 , x 2 , ... , x n ) =

1 , 2 ,..., n B

x 1 1 x 2 2 ... x n n ,

31

Fundamentele logice ale Informaticii

32

Cristian Masalagiu

oricare ar fi x1, x2, ... , xn B, 1, 2, ... , n B, astfel nct

oricare ar fi x1, x2, ... , xn B, 1, 2, ... , n B, astfel nct

f(1, 2, ... ,n) = 1, ceea ce nseamn exact o reprezentare a lui f ca o

f( 1 , 2 , ... , n ) = 0.

n-FNDP. Unicitatea reprezentrii provine din faptul c mulimea


n-FNDPurilor i mulimea FB(n) au acelai cardinal (adic numr de
elemente). Mai spunem c expresia din membrul drept al reprezentrii
este (o) FND(P) pentru f.

3. Clase speciale de funcii booleene


Dei rezultatele teoretice anterioare sunt ncurajatoare (funciile
booleene, date tabelar, pot fi reprezentate i prin expresii standard, cum
ar fi FNDP, FNCP; acestea sunt unice dac se folosesc anumite

Prin dualizare se obin noiunile de (n-)factor peste X (orice

convenii; se pot construi algoritmic, conform Teoremei 1.3 i

sum de n variabile din X, acestea aprnd barate sau nu), maxfactor

Teoremei 1.4, etc.), s-ar putea ca din punct de vedere practic s nu fie

(n-ar, peste X) un (n-)factor n care apar toate variabilele, form

chiar convenabile. Astfel, ne-am putea pune problema gsirii celei mai

normal conjunctiv (n-ar) ((n-)FNC, adic orice produs de factori

scurte forme normale, funcie de o anumit msur fixat. Exist

dictinci), form normal conjunctiv (n-ar) perfect ((n-)FNCP,

numeroase msuri candidat pentru o FND sau FNC, suficient de

adic orice produs de maxfactori distinci). Nu uitm c se aplic

simple (vom nota orice asemenea form prin ): lungimea ca text

asociativitatea generalizat i comutativitatea, peste tot, att pentru

(numr de caractere grafice coninute, poate chiar excluznd

sum ct i pentru produs, astfel nct dou sume (produse) nu vor fi

parantezele); numrul de operatori folosii (poate chiar exceptnd

considerate distincte dac difer doar prin ordinea componentelor.

negaia); numrul de nivele din arborele ataat; numrul de termeni

Aplicnd principiul dualitii, rezult c este adevrat i duala

(factori); numrul de componente elementare ale unui termen

Teoremei 1.3, adic:

(factor); numrul total de apariii ale variabilelor (apariia unei


aceleiai variabile pe poziii diferite se numr distinct), etc.
(n)

Teorema 1.4. Fie orice n N*, orice f FB

i oricare nume

Considernd ultima msur (pe care o vom nota cu n()), putem numi

distincte de variabile x1, x2, ... , xn. Atunci f se poate reprezenta n mod

form normal disjunctiv minimal (FNDM) pentru f FB, orice

unic ca o FNCP peste X = {x1, x2, ... , xn}, sub forma:

FND astfel nct:


n() = min {n() | este FND pentru f}.

f(x 1 , x 2 , ... , x n ) =

1 , 2 ,..., n B

(x 1 1 + x 2 2 + ... + x n n ) ,

Dat o funcie boolean f FB, se poate pune problema determinrii


tuturor FNDM pentru f, sau a uneia standard (ceea ce este posibil

33

Fundamentele logice ale Informaticii

deoarece reamintim - pentru fiecare numr natural n numrul

34

Cristian Masalagiu

Funciile i pn se mai numesc i proiecii. Pentru superpoziie vom

funciilor booleene n-are este 2 2 iar numrul formelor disjunctive n3n

utiliza notaia f = SUP(g, h1, h2, ... , ht), iar M va denota mulimea

are este 2 ). Problema anterioar este rezolvabil cu ajutorul

funciilor care apar ca elemente n M-iruri. Pentru fiecare M dat, M

algoritmului lui W. Quine ([CAZ1]). Algoritmul lui Quine intr sub

va fi practic o mulime definit constructiv, n care E U M constituie

incidena principiului dualitii, astfel nct fcnd modificrile de

mulimea funciilor de baz iar operatorul de superpoziie este singura

rigoare el poate determina i toate formele normale conjunctive

modalitate de a se obine funcii noi din funcii vechi. Prin urmare, M

minimale (FNCM) pentru orice funcie boolean.

este cea mai mic mulime care conine proieciile, elementele lui M i

O problem similar, prin rezolvarea creia s-ar putea reduce n

este nchis la superpoziie. Algebric vorbind, se mai spune c M este

anumite cazuri timpul de procesare a unor texte (expresii, formule,

nchiderea prin superpoziie a mulimii E U M. M se va numi nchis

etc.), este gsirea unui numr minim de operaii booleene

dac coincide cu nchiderea sa.

convenabile, cu ajutorul crora s se reprezinte orice funcie


boolean.

Teorema 1.5 ([CAZ1]). O mulime M FB este nchis dac i numai


dac conine funciile elementare i orice superpoziie de funcii din M

Definiia 1.4. Clasa funciilor booleene elementare este:


n

se afl n M.

E = { i | n N*, 1 p n, i : B B,

Demonstraie. Este imediat din definiii, demonstraia reprezintnd o

i pn (x1, x2, ... , xp, ... , xn) = xp}.

aplicare direct a principiului induciei structurale. Astfel, este suficient

n
p

n
p

Fie n N*, t un numr natural, f, h1, h2, ... , ht FB(n) i g FB(t).


Spunem c f se obine din g, h 1, h 2, ... , ht prin superpoziie dac pentru
fiecare x = <x1, x2, ... , xn> avem:
f(x) = g(h1(x), h2(x), ... , ht(x)).

s artm c, dat M, avem:


Baza. E M i M M .
Pas inductiv. Pentru fiecare n N*, fiecare t N*, fiecare g FB(t),
fiecare h1, h2, ... , ht FB(n), fiecare f

FB(n), astfel nct

Fie M FB. Se numete M-ir orice secven (list) finit f0, f1, ... , fr

f = SUP(g, h1, h2, ... , ht), avem: Dac g, h1, h 2, ... , ht M, atunci

de funcii booleene n care fiecare fi este fie din E U M fie se obine

f M.

prin superpoziie din alte funcii, aflate n aceeai list dar naintea lui
fi.

Exemple imediate de mulimi nchise sunt , E i FB. Se poate


arta i c urmtoarele mulimi (infinite) sunt mulimi nchise (a se

35

Fundamentele logice ale Informaticii

36

Cristian Masalagiu

consulta i exerciiile din finalul capitolului, mpreun desigur cu

identifica). Urmeaz c orice funcie boolean se poate

rezolvrile din Anex):

reprezenta unic ca un polinom (eventual, de mai multe

T0: mulimea funciilor booleene de oricte argumente care

variabile) cu coeficieni n I. Fie astfel o funcie boolean f,

pstreaz pe 0, adic satisfac f(0, 0, ... , 0) = 0.

despre care tim deja c se poate scrie ca o sum (boolean) de

T1: dual, mulimea funciilor care pstreaz pe 1, adic satisfac

termeni. Putem acum folosi egalitile (se pot demonstra uor,

f(1, 1, ... , 1) = 1.

folosind tabelele de adevr): x = x 1 i x + y = x y =

Aut: mulimea funciilor autoduale (f = f). S notm ca o

= (x1) (y 1) 1 = x y x y, precum i proprietile

proprietate de caracterizare interesant pentru aceast clas de

inelelor, pentru a observa c orice FND a lui f devine o sum

funcii i faptul c f (x1, x2, ... , xn) =

f( x1 , x 2 ,..., x n ) . Acest

modulo 2 de termeni (care sunt produse de variabile distincte).

lucru se obine imediat deoarece tabela de definiie pentru f se

Numrul acestor produse este 2n, deci numrul polinoamelor

obine din tabela pentru f, nlocuind simultan, peste tot, pe 0 cu

modulo 2 este 2 2 , acelai ca i numrul funciilor booleene

1 i pe 1 cu 0.

n-are (de unde urmeaz unicitatea reprezentrii). Spunem c o

Mon: mulimea funciilor monotone. Pe B putem defini o relaie

funcie f FB(n) este liniar dac reprezentarea sa (unic) sub

de ordine natural: 0 1 (putem pune chiar 0 < 1). Relaia

form de polinom modulo 2 are aspectul:

precedent poate fi extins pe componente la orice produs

c0 c1 x1 c2 x2 ... cn xn, ci B, i [n].

cartezian. S considerm dou n-uple = <1, 2, ... , n> i


= <1, 2, ... , n>, i, i B, i [n]. Vom spune c dac

Observaie. Se poate arta c toate mulimile anterioare sunt nebanale,

i numai dac i i pentru fiecare i [n] (desigur c vom avea

adic nu coincid nici cu FB, nici cu E, nici cu .

< dac i numai dac i adic i difer prin


mcar o component). O funcie f FB(n) este monoton dac
n

Exemplu ([CAZ1]). Funcia f(x, y, z) = xz + x y z + x y z este

pentru fiecare , B , din rezult f() f().

liniar deoarece avem succesiv:

Lin: mulimea funciilor liniare. Se poate arta mai nti c

f(x, y, z) =

comutativitate, distributivitate

tripletul I = <B, , > este un inel comutativ cu unitatea 1,

= xz + x z (y + y ) =

tim c y+ y = 1

izomorf cu inelul claselor de resturi modulo 2 (cele dou

= xz + x z =

folosind a + b = ab a b

= xz x z xz x z =

tim c xz x z = 0

mulimi

suport

operaiile

corespondente

se

pot

37

Fundamentele logice ale Informaticii

38

Cristian Masalagiu

= x z x z =

folosind a = a 1

de dorit s se gseasc o cale de mijloc, prin care s se pstreze ntr-

= x z (x 1) (z 1) =

distributivitate

adevr ct mai puine funcii ntr-o baz, dar acestea s fie i uor de

= xz xz x z 1 =

folosind a a = 0

neles/manipulat.

= x z 1.
Acceptm fr demonstraie (Teorema 1.7 a fost ns deja
Definiia 1.5. O mulime de funcii booleene este complet dac
nchiderea sa coincide cu FB. O mulime complet se numete baz

demonstrat implicit, prin comentariile anterioaree), urmtoarele


rezultate ([CAZ1], aceast referin nefiind sursa primar):

dac este maximal (adic nici o submulime proprie a sa nu mai este


complet).

Teorema 1.6 (E. L. Post). O mulime de funcii booleene este complet


dac i numai dac nu este inclus n nici una dintre mulimile T0, T1,

Observaie. Se arat relativ simplu c mulimea {c0, c1, f, }, unde f

Aut, Mon, Lin.

este dat prin f(x, y, z) = x y z, este o baz. Mulimea {, +, }


este complet (ceea ce se arat direct, folosind definiiile), dar nu este
baz pentru c att { , } ct i { , +} sunt complete (acest lucru

Teorema 1.7. Orice baz conine cel mult patru funcii i exist baze
compuse din una, dou, trei i patru funcii.

rezult din legile lui deMorgan, care ne spun c disjuncia se exprim


cu ajutorul negaiei i conjunciei i dual, conjuncia se exprim cu
ajutorul negaiei i disjunciei). Poate surprinztor, {+, } nu este
complet, dar { | } (care nu este inclus n nici una dintre mulimile T0,
T1, Aut, Mon, Lin) este complet i desigur baz (ne bazm pe
egalitile x = x | x i xy = (x | y) | (x | y)). Prin urmare, dac ne
reamintim de unul dintre scopurile enunate (exprimarea tuturor
funciilor booleene cu ajutorul unui numr minim de funcii), mulimea

Teorema 1.8. Orice mulime nchis de funcii booleene fie este inclus
cel puin n una dintre mulimile T0, T1, Aut, Mon, Lin, fie coincide cu
FB.
Teorema 1.9. Mulimile T0, T1, Aut, Mon, Lin sunt precomplete (o
mulime M de funcii booleene este precomplet dac pentru orice alt
funcie f M, mulimea M U{f} este complet).

{|} ar fi candidatul ideal. Din pcate, operatorul lui Sheffer (|) nu


este prea comod (din punct de vedere al gndirii umane) astfel nct
exprimrile celorlalte funcii devin complicate i greu de reinut. Este

E. L. Post a determinat chiar toate mulimile nchise de funcii


booleene nc din anul 1941, ct i relaiile de incluziune ntre ele i
anumite baze. nc se fac cercetri n legtur cu extinderea rezultatelor

Fundamentele logice ale Informaticii

39

40

Cristian Masalagiu

de acest tip la mulimi de cardinal mai mare dect doi (cardinalul lui

poate fi duntoare, mrind confuziile care se fac n mod uzual ntre

B). Importana unor asemenea cercetri const n sperana reducerii

sintax i semantic sau ntre limbaj i metalimbaj.

complexitii unor algoritmi clasici i dezvoltrii unor teorii similare,


implementabile i care s fie valabile i pentru logicile neclasice

Indexul (neexhaustiv) este:

multivaluate).
definiia structural (constructiv) a unei mulimi, 8

4. Recapitulare i Index
Teoria funciilor booleene constituie suportul pentru semantica

algoritm (imperativ), 9
funcie calculat de un algoritm, 9

logicii clasice. nelegerea problematicii capitolelor urmtoare va fi

problem rezolvat de un algoritm, 9

astfel uurat, anumite paragrafe (cum ar fi cel privind formele

terminarea algoritmilor, semialgoritm, 10

normale) fiind simple transpuneri ntr-un alt limbaj ale unor concepte i

pseudocod, 10

rezultate deja ntlnite. Principalele teme abordate au fost:

principiul induciei structurale, 11

Reprezentarea funciilor booleene. Funcii booleene particulare

funcii booleene, 13

importante.

tabele de adevr, 13

Proprietile globale ale clasei funciilor booleene. Principiul

algebre booleene, 15

dualitii. Algebre booleene.

afirmaii i obiecte duale, 17

Forme normale pentru funciile booleene. Forme minimale.

principiul dualitii, 18

Mulimi nchise i (pre)complete de funcii booleene. Baze.

termen, maxtermen, 27

Dei ne-am bazat n principal pe cunotinele de matematic de

form normal disjunctiv (perfect), 28-29

liceu, am fost nevoii s abordm tangenial ntr-un mod intuitiv,

factor, maxfactor, 30

pentru coerena materialului subiecte colaterale cum ar fi cele privind

form normal conjunctiv (perfect), 30

algoritmii (imperativi), mulimile definite structural (constructiv), sau

form normal disjunctiv (conjunctiv) minimal, 31

principiul induciei structurale. Folosirea nediscreionar, n acest

funcii booleene elementare, 32

moment, de ctre cititor a unor termeni introdui doar informal (cum

mulime nchis de funcii booleene, 33

sunt, pn acum: axiom, teorem, raionament, demonstraie, etc.)

mulime complet (precomplet) de funcii booleene, 36


baz de funcii, 36

41

Fundamentele logice ale Informaticii

Este poate bine s menionm faptul c am preferat un Index n


ordinea paginilor i nu n ordine alfabetic, tocmai pentru c insistm
asupra necesitii parcurgerii secveniale a materialului.

42

Cristian Masalagiu

considerai va avea 3n elemente i c vor exista 2n maxtermeni


n-ari distinci.
6. S se gseasc FNDP i FNPC pentru funcia definit prin
tabelul:

5. Exerciii

f(x, y, z)

legilor 1), 2), 3), 5), 1) 5) i x + ( x ) = 1, utiliznd tabelele

de adevr.

1. Completai demonstraia Teoremei 1.1, adic artai validitatea

2. Artai c V = < 2V, , U, CV> este o algebr boolean, oricare


ar fi mulimea (nevid) V. n plus, demonstrai c 0 = i
1 = V.
3. Artai adevrul afirmaiilor rmase nedemonstrate din Tabelul
1.1.
4. Justificai egalitatea card(FBn) = 2 2 .
n

5. Fie mulimea termenilor n-ari t, construii peste mulimea


variabilelor booleene distincte (ordonate) X = {x1, x2, ... , xn},
precum i mulimea n-uplelor peste {0, 1, 2}. Artai c exist o
funcie bijectiv g, care identific aceste mulimi, dat prin
g(t) = <e1, e2, ... , en>, unde, pentru fiecare i [n], avem ei = 0
dac xi apare barat n t, ei = 1 dac xi apare (nebarat) n t i

7. Justificai faptul c mulimile T0, T1, Aut, Mon, Lin sunt


infinite. Artai c T0 este mulime nchis.
8. Artai c mulimea M = {, +, } este o mulime complet de
funcii booleene.
9. Artai c funcia boolean + este o funcie monoton.
10. Artai c I = <B, , > este un inel comutativ cu unitatea 1 i

ei = 2 n rest (adic xi nu apare n t). De asemenea, artai c

c el este izomorf cu R = <Z2, , >, inelul claselor de

exist (mcar) o coresponden bijectiv ntre mulimea

resturi modulo 2.

funcii

11. Artai c funcia boolean f(x, y, z) = x y + y z nu este liniar

{f | f : [n] {0, 1, 2}}. Deducei c mulimea termenilor n-ari

(acolo unde nu exist confuzii, operatorul nu va fi scris

n-uplelor

peste

{0,

1,

2}

mulimea

de

explicit).

44

Capitolul 2
Logica propoziional
(Calculul propoziional)

Cristian Masalagiu

coninut (element din structura noiunii alctuit din mulimea


proprietilor obiectelor care formeaz sfera noiunii) sau sfer
(element din structura noiunii alctuit din mulimea obiectelor ale
cror proprieti formeaz coninutul noiunii). O definiie ar avea
astfel rolul de a delimita precis sfera (coninutul) noiunii. Definirea

Manualele de Logic i Algebr ([BIE], [DID]) pot fi privite ca

unei noiuni noi nseamn delimitarea unei noi sfere (sau a unui nou

o introducere (firav) n logica formal. i n alte manuale de

coninut), ceea ce se poate face de exemplu (exist i alte tipuri

matematic (i nu numai), sunt prezente frecvent noiuni ca afirmaie,

generale de definiii) prin precizarea unei sfere vechi (care

axiom, teorem, raionament, demonstraie, etc. Aceste noiuni sunt

caracterizeaz complet o noiune anterior definit, numit gen proxim)

ns descrise sau concepute/receptate/folosite la modul informal: o

i a unei mulimi de proprieti suplimentare (care nu fac parte din

afirmaie este orice propoziie (fraz) care poate cpta o unic valoare

coninutul vechii noiuni, dar care mpreun cu acesta vor alctui

de adevr (a adevrat, f fals); o axiom este o afirmaie care se

noul coninut), numit diferen specific: un paralelogram este un

accept a fi adevrat fr a se cere o demonstraie a ei; o teorem este

patrulater convex care are dou laturi paralele i egale; un romb este

o afirmaie (presupus a fi adevrat) care se obine (din axiome sau

un paralelogram cu toate laturile egale; un ptrat este un romb avnd

teoreme deja acceptate) printr-o demonstraie (formal), numit i

un unghi de 90, . a. m. d. n acest mod, mergnd invers, procesul de

raionament; o demonstraie (formal) este transpunerea ntr-o form

definire a unor noiuni ar deveni infinit dac nu am accepta existena

(mai) exact a unui raionament; un raionament este o succesiune

unor noiuni primare (pentru o mai bun nelegere se poate recurge i

(finit) de aplicri ale unor inferene (reguli de deducie); o regul de

la reprezentri grafice cum ar fi diagramele Venn-Euler [IP]).

deducie (inferen) are forma: premize/concluzii (att premizele ct i

Noiunile primare nu mai sunt definite prin schema gen proxim i

concluziile sunt afirmaii, ideea fiind aceea c regulile sunt astfel

diferen specific ci sunt doar descrise cu ajutorul unor elemente

construite nct dac premizele sunt adevrate atunci i concluziile sunt

considerate a fi suficiente pentru delimitarea exact a sferei curente de

adevrate; se mai spune c inferenele sunt n acest caz valide sau

sfera altor noiuni (asemenea definiii sunt cunoscute i sub numele de

corecte), etc. De altfel, acesta este modul principal prin care se obin

definiii operaionale): o mulime este o colecie de obiecte distincte

(constructiv) n tiinele exacte noiuni noi (utiliznd definiiile) i

dou cte dou; un punct este ceea ce se obine prin apsarea unui vrf

afirmaii (adevrate) noi (utiliznd raionamentele). Din punctul de

de creion pe o foaie de hrtie, etc. Un proces similar are loc i n cazul

vedere al logicii filozofice, o noiune este complet caracterizat de

conceptelor de axiom (n rolul noiunilor primare), teorem (n

Fundamentele logice ale Informaticii

45

46

Cristian Masalagiu

rolul noiunilor noi), regul de inferen (n rolul diferenei

sub numele de paradoxuri logice, sunt deja clasificate, mprite pe

specifice), acceptarea axiomelor ca fiind advrate fr demonstraie

categorii. Nu este simplu s dm o definiie unanim acceptat (de altfel,

avnd desigur scopul de a evita raionamentele infinite. Aa cum n

B. Russell a mprit paradoxurile n apte categorii, avnd definiii

momentul definirii unei noiuni (noi) trebuie s fim ateni ca sfera

practic diferite). Pentru unii, un paradox este o afirmaie care pare s

acesteia s fie nevid i (n general) distinct de sferele unor noiuni

se autocontrazic, sau poate conduce la o situaie care contrazice

deja existente (chiar definite operaional), n cazul raionamentelor este

bunul sim. Mai general, este orice afirmaie surprinztoare,

de dorit ca axiomele s reprezinte cu certitudine afirmaii

alambicat, contrar intuiiei, sau, o argumentaie aparent solid,

adevrate, iar inferenele s fie valide (inferenele trebuie s fie valide

corect, dar care conduce la o contradicie. Pentru alii, este o

pentru a avea raionamente corecte, adic formate numai din afirmaii

propoziie care i afirm propria falsitate, sau, un argument care

adevrate). Din pcate, datorit lipsei unei sintaxe clare pentru

conduce la o concluzie contradictorie dei ncepe cu nite premize

conceptul de afirmaie (lipsei definiiilor formale n general), precum i

acceptabile i se folosete o deducie valid. Oricum, se accept faptul

datorit amalgamrii consideraiilor de natur sintactic i semantic,

c un paradox nu nseamn acelai lucru cu o contradicie. Astfel,

eafodajul anterior este destul de ubred putnd conduce la apariia

afirmaia Aceast cma este albastr i aceast cma nu este

unor paradoxuri de gndire sau la acceptarea unor adevruri hilare.

albastr este o contradicie, dar un paradox va apare atunci cnd o

Prima parte a capitolului este destinat unei scurte treceri n revist a

persoan face o anumit presupunere i apoi, urmnd o argumentaie

unor asemenea anomalii i introducerii primelor elemente de logic

logic, ajunge la contrariul presupunerii iniiale. Nu spun niciodat

(informatic) formal.

adevrul este considerat un paradox (al mincinosului), deoarece dac


presupunem c propoziia este adevrat atunci rezult imediat c ea

1. Logica, parte a filozofiei

este fals si reciproc. Mai sus este vorba despre o clas mai simpl de

Ambiguitile permise de limbajul natural, acceptarea utilizrii unor

paradoxuri (numite i semantice). Practic, ele ar putea fi rezolvate

noiuni primare sau a unor axiome avnd coninut ambiguu n

daca sunt eliminate complet din logica clasic, deoarece pot fi

raionamente complexe, tratarea simultan a unor probleme de natur

considerate ca afirmaii crora nu li poate ataa o unic valoare de

sintactic mpreun cu altele care implic semantica, au creat de-a

adevr (contradiciilor nu li se poate practic ataa nici una!). Un

lungul timpului numeroase confuzii i interpretri greite, bruind

paradox mai complicat este paradoxul lui B. Russell, legat de teoria

comunicarea inter-uman. Un prim tip de asemenea confuzii, cunoscute

mulimilor : Dac R este mulimea tuturor mulimilor care nu se


conin pe ele nsele, atunci R se conine pe sine nsi ca element?.

Fundamentele logice ale Informaticii

47

48

Cristian Masalagiu

Imediat se obine c dac rspunsul este DA, atunci R nu se conine

logice complexe. Aceste raionamente elementare se mpart n

pe ea nsi i dac rspunsul este NU, atunci R se conine.

deductive i inductive, iar cele mai simple inferene sunt cele imediate,

Contradicia provine aici din acceptarea axiomei nelegerii: Dac P

cu propoziii categorice (fiind formate din dou asemenea propoziii: o

este o proprietate (relaie, predicat), atunci M = {x | P(x)} este o

premiz, i o concluzie). Silogismul este tipul fundamental de inferen

mulime (paradoxul precedent se obine lund P(x): x nu este

deductiv mediat alctuit din exact trei propoziii categorice: dou

element al lui x). Matematic vorbind, paradoxul dispare dac se

premize, dintre care una major i alta minor, precum i o concluzie.

renun la axioma nelegerii (mai exact, M de mai sus nu este o

Silogismele se pot de altfel mpri n ipotetice, categorice, disjunctive,

mulime, ci o clas). Un alt paradox, cunoscut nc din antichitate, este

etc. (nu insistm asupra altor detalii). Un exemplu de silogism

paradoxul lui Ahile i broasca estoas , atribuit lui Zenon: Ahile i o

(categoric, corect) este:

broasc estoas se iau la ntrecere ntr-o alergare de vitez, Ahile


aflndu-se iniial ntr-un punct A i broasca n faa sa, la o distan a,

Premiza major: Toate elementele transuranice sunt

ntr-un punct B, dar ncepnd s se deplaseze amndoi n acelai

radioactive.

moment i n aceeai direcie. Afirmaie: Ahile nu va ajunge din urm

Premiza minor: Plutoniul este element transuranic.

broasca (chiar dac broasca ar avea...viteza 0). Putem demonstra

Concluzia: Plutoniul este radioactiv.

afirmaia raionnd astfel: fie C mijlocul distanei dintre A i B; pentru


a ajunge n B, Ahile trebuie s ajung nti n C; fie acum D mijlocul

Pentru a folosi ns doar silogisme corecte (valide), este necesar un

distanei dintre A i C, etc. Cum mulimea numerelor reale este dens,

studiu mai aprofundat al acestora. n caz contrar, putem ajunge, ca i n

mereu mijlocul unui segment de lungime diferit de zero va genera alte

cazul paradoxurilor, s acceptm nite aberaii drept propoziii

dou segmente de lungime nenul, astfel nct Ahile nu va ajunge

adevrate. De exemplu:

niciodat broasca. Acest tip de paradox se numete i aporie,


contradicia provenind, n cazul nostru, din utilizarea unui raionament
corect intr-un mediu necorespunztor (drumurile, n legtur cu
deplasarea unor fiine, nu pot fi considerate drept reprezentri ale axei

Alb este adjectiv


Zpada este alb
Zpada este adjectiv

reale). Dei nu sunt ele nsele absurditi, silogismele reprezint o

Greeala n silogismul anterior const n aceea c nu se ine cont de o

alt surs generoas de confuzii. Inferenele, adic paii elementari

lege a silogismelor, care stipuleaz c ntr-un silogism valid exist trei

(considerai a fi indivizibili) ai unui raionament, reprezint forme

i numai trei termeni lingvistici distinci. Din pcate ns, n limba

Fundamentele logice ale Informaticii

49

romn (dar nu numai) un acelai cuvnt (sau grup de cuvinte) poate


materializa mai mult dect o singur noiune. Astfel, dei n exemplul
nostru s-ar prea c avem exact trei termeni distinci (alb, adjectiv,
zpada), n realitate avem patru: n premiza major cuvntul alb
materializeaz un element al limbajului (o parte de vorbire), iar n
premiza minor el red o nsuire (care este caracteristic i zpezii).
Neconcordanele pot fi eliminate dac legile de genul amintit ar putea fi
prinse n forma sintactic exact a silogismului. Profitm de prilej
pentru a aminti i cteva idei legate de inferenele (raionamentele)
deductive cu propoziii compuse. Dei acestea nu sunt automat
generatoare de ambiguiti/aberaii, folosirea incorect a implicaiei
logice n cadrul lor poate produce neplceri. Mai nti, s observm c
putem considera c am definit structural ntreaga (sau mcar o parte
important a sa) mulime de afirmaii pe care le manipulm n limbaj
natural, n modul sugerat de logica clasic: pornim de la anumite
afirmaii (Baza - propoziii elementare) i apoi (Pas constructiv)
formm propoziii noi (fraze, propoziii compuse), din propoziii vechi
cu ajutorul unor operatori (conectori), cum ar fi sau, i, negaia,
implicaia (dac ... atunci ...), echivalena (dac ... atunci ... i
reciproc). Notnd cu A i B dou propoziii oarecare (elementare sau
compuse), putem forma propoziiile compuse (de acum nainte, va

50

sau antecedent iar B concluzie sau consecvent); G dac A atunci


B i reciproc (sau, A dac i numai dac B, sau A atunci i numai
atunci cnd B; simbolic: A B). Cum A i B pot lua fiecare doar
valorile a - adevrat sau f fals (desigur...nu simultan), la fel se va
ntmpla i cu propoziiile compuse. Astfel, C va fi a atunci i numai
atunci cnd mcar una dintre A i B este a, D va fi a atunci i numai
atunci cnd att A ct i B sunt a, E va fi a atunci i numai atunci cnd
A va fi f, F va fi f atunci i numai atunci cnd A este a i B este f. n
sfrit, G va fi a atunci i numai atunci cnd A i B sunt simultan a sau
simultan f. Ca o consecin, o implicaie va fi adevrat dac ipoteza
este fals, indiferent de valoarea de adevr a concluziei. Acum ne
putem referi n mod explicit i la inferene cu propoziii compuse (se
presupune c silogismele utilizeaz doar propoziii simple), cele
coninnd implicaia fiind des utilizate. Cele mai simple inferene de
acest tip sunt cele care conin dou premize i o concluzie, dintre ele
distingndu-se cele ipotetico-categorice (prima premiz este o
implicaie iar cea de-a doua const fie din antecedentul sau negaia
antecedentului, fie din consecventul sau negaia consecventului
implicaiei respective, conform [BIE]). Schemele valide care se folosesc
n raionamente sunt astfel de forma:

nota egal prin definiie/notaie/convenie): C A sau B (simbolic:

AB
A
B

A B); D A i B (simbolic: A B); E non A (simbolic: A);

sau

F dac A atunci B (simbolic: A B; A se numete uneori ipotez

Cristian Masalagiu

modus ponendo-ponens (pe scurt, modus ponens)

Fundamentele logice ale Informaticii

51

AB
B
A

52

Cristian Masalagiu

forma condensat (x1, x2 R)(f(x1) = f(x2) x1 = x2). Exist


modus tollendo-tollens (pe scurt, modus tollens)

urmtoarele posibiliti:
a) x 1, x2 0. Atunci f (x1) = x1 i f (x2) = x2. Prin urmare f(x1) = f(x2)

Validitatea (reamintim: dac ipotezele sunt adevrate, atunci i

chiar coincide cu x1 = x2 i deci implicaia f(x1) = f(x2) x1 = x2 este

concluzia trebuie s fie adevarat) schemelor modus ponens (modul

adevrat.

afirmativ) i modus tollens (modul negativ) rezult imediat din definiia

b) x 1, x 2 > 0. Atunci f (x1) = x12 + 1 i f (x2) = x22 + 1. Prin urmare,

implicaiei. Oprindu-ne la modus ponens, am putea spune c acesta

f(x1) = f(x2) nseamn x12 + 1 = x22 + 1, ceea ce se ntmpl atunci i

poate fi reformulat n: din A (adevrat) i A B (adevrat)

numai atunci cnd (x1 - x2 )(x1 + x2) = 0. Deoarece variabilele sunt

deducem (c) B (adevrat). Pe scurt, vom nota acest lucru prin

pozitive, ultima egalitate este echivalent cu x1 - x2 = 0, deci cu x1 = x2.

A B. Urmtorul exemplu este edificator pentru greelile care se pot

Am artat de fapt c avem f(x1) = f(x2) dac i numai dac x1 = x2 ceea

face fie din necunoaterea definiiei reale a implicaiei, fie din

ce se poate scrie simbolic (n metalimbaj!) f(x1) = f(x2) x1 = x2. n

confundarea lui A B (formul n limbajul de baz) cu A B

consecin, la fel ca la punctul precedent, implicaia cerut

(formul n metalimbaj, care sugereaz deducerea lui B, pornind de la

f(x1) = f(x2) x1 = x2 este la rndul ei adevrat (este adevrat chiar

A i folosind un raionament).

echivalena f(x1) = f(x2) x1 = x2), deoarece este clar c dac


antecedentul f(x1) = f(x2) este adevrat, atunci i consecventul x1 = x2

Exemplu. S considerm funcia f : R R, dat prin:


x, dac x 0
f (x)= 2
x +1, dac x>0

S se arate c f este injectiv.

este adevrat (de fapt, i reciproc).


c) x1 0, x2 > 0. n acest caz f(x1) = x1 i f(x2) = x22 + 1. Atunci
f(x1) = f(x2) nseamn x1 = x22 + 1 i implicaia pe care trebuie s o
artm devine x1 = x22 + 1 x1 = x2, i aceasta pentru fiecare x1 0 i
x2 > 0. Nu mai putem proceda la fel ca n situaiile anterioare, deoarece

Conform uneia dintre definiiile cunoscute, trebuie s artm c pentru

din x1 = x22 + 1 nu se poate deduce x1 = x2. Totui, implicaia n cauz

fiecare x1, x2 R, avem: dac f (x1) = f (x2) atunci x1 = x2. Anticipnd

din limbajul de baz este adev rat , deoarece antecedentul ei este

notatiile din Capitolul 3 i presupunnd cunoscut (cel puin la nivel

fals. ntr-adevr, oricare ar fi x1 0 i x2 > 0, n egalitatea x1 = x22 + 1,

informal) semnificaia cuanficatorilor, putem scrie acest lucru sub

membrul stng este nepozitiv iar membrul drept este pozitiv, ceea ce
face ca relaia s devin imposibil n contextul dat.

Fundamentele logice ale Informaticii

53

n finalul paragrafului, pentru a introduce i o not optimist,


prezentm una dintre cele mai mari demonstraii cunoscute n

54

Cristian Masalagiu

vom descrie ncepnd cu seciunea/paragraful urmtoare/urmtor.


Enunul unora dintre exerciiile care urmeaz este reluat n 2.10.

literatura tiinific a afirmaiei Oamenii de tiin nu vor ctiga


niciodat la fel de muli bani ca directorii executivi ai unor companii

Exerciiul 2.1. O teorem , n sensul matematicii de liceu, are i ea

de succes. n acest scop vom porni de la postulatele (axiomele)

ipoteze i concluzii. Scriei simbolic forma general a unei teoreme

Cunoaterea nseamn putere i Timpul nseamn bani, pe care le vom

(directe), utiliznd propoziii elementare (variabile propoziionale) i

folosi sub forma prescurtat: cunoatere = putere i respectiv

conectori logici. Scriei apoi teorema reciproc , contrara teoremei

timp = bani. Ca inferene, le vom utiliza pe cele mai simple (imediate,

directe i contrara reciprocei. Exist vreo legtur ntre acestea, n

cu afirmaii categorice), la care adugm altele la fel de simple,

ceea ce privete valoarea lor de adevr? Dai un exemplu de teorem

cunoscute din matematica elementar. Plecm astfel de la axioma

de caracterizare (A dac i numai dac B). Putei specifica altfel

suplimentar:

rezultatul exprimat de teorem, astfel nct s fie separat - puse n

m un c
p utere
tim p

eviden condiia necesar i condiia suficient ?


Exerciiul 2.2. S considerm definiia limitei unui ir dat de

Folosind axiomele iniiale i proprietile relaiei de egalitate, printr-o

numere reale, avnd ca valoare un numr real dat, definiie exprimat

inferen simpl deducem:

cu ajutorul vecintilor care sunt intervale simetrice fa de punctul

m u nc
cu n o atere
b an i
Aplicnd acum o proprietate a proporiilor, gsim:

considerat. S se exprime simbolic (n sensul matematicii de liceu,


folosind i cuantificatorii) aceast definiie i s se nege formula astfel
gsit.

m unc
= bani
c u n o a te re

exerciiilor anterioare propoziia Dac mi-e sete, beau ap . Negai

Cititorul poate trage singur concluzia care se impune pentru situaia n

formula i apoi rescriei rezultatul n limbaj natural. Dac ai fi negat

care cunoatere se apropie de (tinde la) valoarea zero.

direct propoziia iniial, ai fi obinut acelai lucru?

Exerciiul 2.3. Exprimai simbolic, ca o formul n sensul

Ca o concluzie, situaiile neplcute descrise anterior trebuie

n restul capitolului, cteva dintre concepte/rezultate/exemple

evitate sau eliminate. Acest lucru se poate face doar prin translatarea

sunt din [MAS1] (trebuie s precizm c o parte dintre acestea provin,

prilor de limbaj ntr-un mecanism formal bine pus la punct, pe care-l

la origine, din [SCH]).

Fundamentele logice ale Informaticii

55

56

Cristian Masalagiu

Putem privi o formul F ca fiind reprezentat de un arbore binar

2. Sintaxa logicii propoziionale


Vom trece direct la prezentarea sintaxei formale a logicii

(arborele ataat lui F, notat Arb(F)), n modul urmtor (procedm


structural, conform definiiei lui LP):

propoziionale (calculului propoziional). Logica propoziional, aa


cum am sugerat deja, va fi numele unei mulimi de formule

Definiia 2.2.

(propoziionale), notat LPL sau, prescurtat, LP i definit structural n

Baza. F = A A. Atunci arborele ataat lui F (sau, arborele care

cele ce urmeaz.

reprezint F), este:

Definiia 2. 1. Fie o mulime numrabil de variabile propoziionale

Pas constructiv.

(formule elementare, formule atomice pozitive, atomi pozitivi),

(i) Fie F = ( F1) i s presupunem c se cunoate arborele ataat lui F1,

A = {A1, A2, }. Fie, de asemenea, C = {, , } mulimea

Arb(F1). Atunci, arborele ataat lui F va fi (ceva similar se obine

conectorilor/conectivelor logici/logice non (negaia), sau (disjuncia),

pentru (iv), adic pentru cazul F = (F1)):

respectiv i (conjuncia) i P = { ( , ) } mulimea parantezelor

()

(rotunde). Formulele (elementele lui LP) vor fi cuvinte (expresii bine


formate) peste alfabetul L = A U C U P:

Baza (formulele elementare sunt formule). A LP .


Pas constructiv (obinere formule noi din formule vechi).
(i)

Dac F LP atunci ( F) LP.

(ii)

Dac F1, F2 LP atunci ( F1 F2 ) LP.

(iii)

Dac F1, F2 LP atunci ( F1 F2 ) LP.

(iii) Fie F = (F1 F2) i s presupunem c se cunosc att arborele ataat

(iv)

Dac F LP atunci (F) LP.

lui F1 ct i arborele ataat lui F2 , adic Arb(F1) respectiv Arb(F2).

(v)

Nimic altceva nu este formul.

Atunci arborele ataat lui F va fi (pentru F = (F1 F2) se obine ceva

Arb(F1)

similar):

Fundamentele logice ale Informaticii

57

58

Cristian Masalagiu

Definiia 2.3.

()

Baza. F = A A. Atunci subf(F) = {A}.


Pas constructiv.
(i) F = ( F1). Atunci subf(F) = subf(F1) U { ( F1) }.

(ii) F = (F1 F2). Atunci subf(F) = subf(F1) U subf(F2) U { (F1 F2) }.


Arb(F1)

Arb(F1)

(iii) Analog cu (ii) pentru cazul F = (F1 F2) (nlocuind peste tot,
simultan, cu ).
(iv) F = (F1). Atunci subf(F) = subf(F1) U { (F1) }

Dei au un rol pur sintactic, neschimbnd cu nimic semantica


formulelor n care apar, parantezele rotunde au fost din anumite
motive tehnice privite mai sus ca un operator pre&post-fixat. Dac
introducem o ordine stnga-dreapta pe mulimea succesorilor imediai

Observaie. Nu se admit alte posibiliti pentru scrierea unei formule,


dect cele fixate prin Definiia 2.1. Exist de altfel un algoritm care
rezolv problema de decizie: Dat orice cuvnt w L * (adic orice

ai fiecarui nod (implicit, pentru o formul este valabil ordinea de

secven finit de caractere din L ) s se decid dac w LP. Conform

scriere a literelor n cuvntul respectiv, exceptnd paranteza nchis

[JUC] de exemplu, notaia L* (algebric, L * este monoidul liber generat

), care are acelai numr de ordine cu paranteza deschis (

de L ) se explic prin aceea c mulimea cuvintelor (secvenelor finite

corespunztoare), atunci se observ c fiecrei formule i corespunde

de simboluri) aparinnd unui alfabet cel mult numrabil formeaz un

un arbore ataat unic i fiecrui arbore ordonat G (cu nodurile

monoid

etichetate cu elemente din L ) i corespunde o unic formul din LP

literelor/cuvintelor). Elementul neutru, este cuvntul fr nici o liter

(pentru care G este arborele ataat). Definim structural i mulimea

(cuvntul vid) i este notat cu e. Algoritmul menionat se termin

subformulelor oricrei formule date F (notat subf(F)). Admitem

pentru fiecare intrare w L*, cu rspunsul (ieirea) DA dac w LP

implicit faptul c F subf(F) dac i numai dac F este subcuvnt al

i NU dac w LP. O problem de decizie are doar alternativa de

lui F i F LP (cu alte cuvinte, F1 i F2, n cele ce urmeaz, sunt tot

rspuns DA/NU i aici este un caz particular al problemei de

formule).

apartenen pentru un limbaj de tip 2. Revenind, A1 A2, nu este

fa de operaia de concatenare (de juxtapunere a

Fundamentele logice ale Informaticii

59

60

Cristian Masalagiu

formul pentru c nu are parantezele necesare (nu putem vorbi de

se consider nti afirmaiile elementare A, B, C; se consider apoi

subf(A1 A2) pentru c A1 A2 nu este formul). Dar, la fel ca i n

negaia lui A, notat, s spunem, A i conjuncia lui B cu C, notat D;

cazul cunoscut al expresiilor aritmetice care conin variabile, constante

n sfrit, se consider disjuncia lui A cu D).

i operatorii (avnd i sensul de opus), +, i /, putem


Vom face i alte cteva prescurtri sintactice, justificate de altfel

accepta convenia de a prescurta scrierea unor expresii (formule,


cuvinte) prin eliminarea unor paranteze (sau chiar pe toate). Acest lucru

i de anumite considerente semantice care vor fi prezentate ulterior:

se poate face prin atribuirea de prioriti operatorilor, apoi bazndu-ne

(( F) G) se va nota cu (F G).

pe faptul c aritatea lor (numrul de argumente) este cunoscut,

Pentru ((( F) G) (( G) F)) folosim (F G) sau

precum i pe unele proprieti cum ar fi comutativitatea, asociativitatea

((F G) (G F)).

sau distributivitatea. Prioritile standard sunt: 0 pentru , 1 pentru


, 2 pentru . Tot o convenie este i aceea de a folosi i alte nume
pentru formulele atomice, nafara celor admise deja prin faptul c sunt
simboluri desemnate a face parte din A. n general vom utiliza pentru

i1

Fi este o prescurtare pentru F1 F2 ... Fn.

i1

Fi este prescurtarea lui F1 F2 ... Fn .

acestea litere mari de la nceputul alfabetului latin (A, B, C, ..., cu sau

Simbolurile i (numite dup cum tim implicaie, respectiv

fr indici). Invers, putem aduga n orice formul bine format

echivalen) pot fi considerate ca i cum ar fi fost introduse de la bun

cupluri de paranteze corespondente (la fel cum le-am i eliminat),

nceput n mulimea de conectori C (dac am fi procedat astfel de la bun

pentru a mbunti receptarea corect a sintaxei i fr a schimba

nceput, s-ar fi complicat att unele lucruri de natur sintactic cum ar fi

semnificaia formulei n cauz. Acest lucru este permis de altfel prin

definiiile constructive, prioritile, etc., ct i definiia semanticii LP,

(iv), Definiia 2.1.

care urmeaz). Vom numi literal o variabil propoziional sau negaia


sa. A A se va numi i literal pozitiv iar orice element de forma A,

Exerciiul 2.4. Fie formula F = (( A) (B C)). Construii


arborele ataat (verificnd n acest mod i faptul c ntr-adevr
F LP). Eliminai parantezele i stabilii o prioritate a operatorilor
care intervin, astfel nct semnificaia intuitiv a noii secvene de
caractere s nu difere de semnificaia iniial (pentru a construi pe F,

A A va fi un literal negativ (vom nota

= {A1, A2, }). Dac

L este un literal, atunci complementarul su, L , va nota literalul A,


dac L = A A i respectiv literalul A dac L = A. Sperm ca
aceast notaie sintactic s nu fie confundat cu operaia semantic ,

Fundamentele logice ale Informaticii

61

62

Cristian Masalagiu

prezent n definiia algebrelor booleene, rezultatele privind sintaxa

(iv) S((F1 F2) ) = S(F1) + S(F2), pentru fiecare F1, F2 LP.

fiind, n general, separate de cele privind semantica. Se numete clauz

Demonstraie. Fie S : A B. Definim funcia S : LP B, structural,

orice disjuncie (finit) de literali. Se numete clauz Horn o clauz


care are cel mult un literal pozitiv. O clauz pozitiv este o clauz care
conine doar literali pozitivi, iar o clauz negativ va conine doar
literali negativi. O clauz Horn pozitiv va conine exact un literal
pozitiv (dar, posibil, i literali negativi).

prin:
Baza. S(A) = S (A), pentru fiecare A A.
Pas constructiv.
(a) Dac F = ( F1), atunci S(F) =

S '(F1 ) .

(b) Dac F = (F1 F2), atunci S(F) = S(F1) S(F2).

3. Semantica logicii propoziionale

(c) Dac F = (F1 F2), atunci S(F) = S(F1) + S(F2).

Semantica (nelesul) unei formule propoziionale este, conform

Este evident c S este o extensie a lui S, proprietatea (i) fiind

principiilor logicii aristotelice, o valoare de adevr (a sau f), obinut n

satisfcut imediat conform pasului Baza de mai sus. De asemenea,

mod determinist, care este independent de context, etc. Notnd de la

definiiile (a) (c) din Pasul constructiv asigur satisfacerea punctelor

nceput pe a cu 1 i pe f cu 0, astfel nct s putem lucra cu algebra

(ii) (iv) din enun, deoarece orice formul din LP, dac nu este

boolean B = < B, , +, >, noiunea principal este cea de asignare

elementar, are una dintre cele trei forme considerate (cazul F = (F1)

(interpretare, structur).

este mult prea simplu pentru a fi tratat separat). Mai rmne s artm
c S este funcie total (adic, ataeaz fiecrui element din domeniu

Definiia 2.4. Orice funcie S, S : A B se numete asignare.

un element i numai unul din codomeniu) i c ea este unica funcie


care satisface (i) (iv). Acest lucru se face prin inducie structural,

Teorema 2.1 (de extensie). Pentru fiecare asignare S exist o unic

trebuind s artm c pentru fiecare F LP, este adevrat P(F), unde

S : LP B (numit tot structur sau

P(F) este: Oricare ar fi asignarea S, valoarea S(F) exist (ca element

extensie a acesteia,

interpretare), care satisface:

al lui B) i este unic, adic S este funcie, i oricare alt funcie S

(i) S(A) = S(A), pentru fiecare A A.

care satisface (i) (iv), satisface S(F)= S(F).

(ii) S(( F)) = S' (F) , pentru fiecare F LP.

Baza. Fie F = A A i orice asignare S. Cum S este funcie (total)

(iii) S((F1 F2) ) = S(F1) S(F2), pentru fiecare F1, F2 LP.

prin definiie i avem S(A) = S(A), tot prin definiie (S este extensia

Fundamentele logice ale Informaticii

63

64

Cristian Masalagiu

lui S), este imediat faptul c S(A) exist i este unic n sensul precizat

de extensionalitate). Vom mai pune S(F) S((F)) pentru fiecare

(orice alt posibil S trebuie s fie tot o extensie a lui S).

F LP.

Pas inductiv. Vom arta doar cazul F = ( F1), celelalte dou


(F = (F1 F2) i F = (F1 F2) ) fiind similare. Presupunem prin urmare

Exerciiul 2.5. Definii structural prop(F), pentru fiecare F LP.

P(F1) ca fiind adevrat i demonstrm c P(F) este adevrat. Fie orice


asignare S. Faptul c S(F) exist (ca element al lui B) i este unic (n

Fr alte precizri, vom lucra n continuare doar cu structuri

sensul precizat), rezult din nou imediat, din ipoteza inductiv (S(F1)

complete pentru mulimile de formule (o structur este complet pentru

S' (F1 ) )

o mulime de formule dac este complet pentru fiecare element din

exist i este unic), din definiia negaiei n B (tim c S(F) =

i a faptului c orice alt S trebuie s satisfac punctul (ii) din teorem.

acea mulime) care ne intereseaz la momentul dat.


Definiia 2.5. O formul F LP se numete satisfiabil dac exist

De acum nainte nu vom face nici o diferen, nici m car

mcar o structur S (complet) pentru care formula este adevrat

notaional , ntre asignare i structur (intrerpretare). Se observ c

(S(F) = 1). Se mai spune n acest caz c S este model pentru F

dat orice formul F LP i orice structur S, este suficient s

(simbolic, se mai scrie S F). O formul este valid (tautologie) dac

cunoatem valorile lui S n variabilele propoziionale care apar n F

orice structur este model pentru ea. O formul este nesatisfiabil

(pentru fiecare F LP, vom nota cu prop(F) mulimea atomilor

(contradicie) dac este fals n orice structur (S(F) = 0, pentru fiecare

pozitivi care apar n F, sau peste care este construit F). Vom numi

S, sau S F, pentru fiecare S).

asignare (structur ) complet pentru F, orice funcie parial S care


este definit exact (sau, mcar) pe prop(F) A i cu valori n B.

Teorema 2.2. O formul F LP este valid dac i numai dac ( F)

Aceasta, n cazul n care F este cunoscut, poate fi identificat cu o

este contradicie.

funcie total pe A. Putem conchide chiar c n LP valoarea de adev r

Demonstraie. F LP este valid dac i numai dac pentru fiecare

a unei formule se deduce n mod unic din valoarea de adev r a

structur S avem S(F) = 1, adic (conform ii), Teorema 2.1) dac i

subformulelor (se mai spune c logica propoziional are proprietatea

65

Fundamentele logice ale Informaticii

66

Cristian Masalagiu

numai dac S(( F) ) = 1 = 0 (definiia negaiei), ceea ce nseamn c

faptul c S este definit cel puin pentru toate variabilele propoziionale

( F) este o contradicie.

care apar fie n F fie n elementele lui G), dac S satisface G (adic
avem S(G) = 1 pentru fiecare G G) atunci S satisface F (simbolic,

Clasa tuturor formulelor propoziionale LP, este astfel

vom scrie G F).

partiionat n (mulimile indicate mai jos sunt ntr-adevr nevide i


disjuncte):
Tautologii
F

Observaie. Relaiile i s sunt relaii de echivalen (binare) pe LP,


Formule satisfiabile dar nevalide
F

( F)

Contradicii
( F)

n sens matematic (adic sunt reflexive, simetrice i tranzitive) i prin


urmare LP poate fi partiionat n clase de ehivalen corespunztoare,
obinndu-se mulimile ct LP/, respectiv LP/s. Mai mult, privind
, , ca nite operatori (de fapt, ar trebui s-i considerm mpreun

Tabelul 2.1
n tabelul anterior linia punctat poate fi considerat drept o
oglind n care se reflect adevrul.

cu parantezele pe care le introduc, vezi i Exerciiul 2.4), atunci relaia


este compatibil (la stnga i la dreapta) cu acetia ([IP]), astfel
nct considernd 4-uplul LP = <LP/, ,,>, se poate arta c acesta
formeaz o algebr boolean (homomorf cu B = < B, , +, >, dup
cum sugereaz Teorema de extensie).

Definiia 2.6. Dou formule F1, F2 LP se numesc tare echivalente


dac pentru fiecare structur S ele au aceeai valoare de adevr, adic

Teorema 2.3. Fie G LP i G = { G1, G2, , Gn } LP. Urmtoarele

S(F1) = S(F2) (simbolic, vom scrie F1 F2). F1 i F2 se numesc slab

afirmaii sunt echivalente:

echivalente dac F1 satisfiabil implic F2 satisfiabil i reciproc (vom

(i) G este consecin semantic din G.

scrie F1 s F2, ceea ce nseamn c dac exist S1 astfel nct

S1(F1) = 1, atunci exist S2 astfel nct S2 (F2) = 1 i reciproc). O


formul F LP este consecin semantic dintr-o mulime de formule

G LP, dac pentru fiecare structur corect S (aceasta nseamn aici

(ii) (

i1

Gi ) G este tautologie.

(iii) (

i1

Gi ) G este contradicie.

67

Fundamentele logice ale Informaticii

Demonstraie.
(i)

Presupunem

prin

reducere

la

absurd

F = ( Gi) G nu este tautologie, dei G este consecin semantic


i1

din G. Rezult c exist o structur S pentru care F este fals, adic


n

S(

i1

Cristian Masalagiu

(iii)
(ii).

implic

68

Gi) = 1 i S(G) = 0. Prin urmare, pentru fiecare i [n] avem

S(Gi) = 1 i ca urmare S(G) = 0. n concluzie, exist o structur S astfel


nct S(G) = 1 i S(G) = 0. Acest lucru este absurd pentru c G este

implic

(i).

Presupunem

prin

reducere

la

absurd

F=(

i1

Gi) G este contradicie, dar G nu este consecin semantic

din G. Atunci exist o structur S care satisface toate formulele din G


n

dar nu satisface G. Prin urmare, avem S(( Gi)) = 1 i S(G) = 0, adic


i 1

S((

i1

Gi)) = 1 i S(G) = 1. Cum S((

i1

Gi) G) =S((

i 1

Gi))S(G),

rezult c exist S astfel nct S(( Gi) G) = 1, deci F nu este


i1

consecin semantic din G.


(ii) implic (iii). Procedm din nou prin reducere la absurd, adic
n

i1

i 1

presupunem c dei ( Gi) G este tautologie, ( Gi) G nu


n

este contradicie. Aceast nseamn c F1 = ( Gi) G este


i1

contradicie (absurd).
n teorema anterioar am renunat la anumite paranteze,
respectnd prioritile/conveniile fcute. Vom face i pe viitor acest
lucru, fr a-l mai meniona explicit.

tautologie, dar F2 = ( Gi) G este satisfiabil. Prin urmare, exist


i1

o structur S astfel nct S(F2) = 1 (i, desigur, S(F1) = 1). Din S(F2) = 1
n

i1

i1

rezult S(( Gi )) S( G) = 1, adic S(( Gi )) = 1 i

S(G) = 1.

n consecin, S(

i1

Gi )) = 0 i S(G) = 0. Pentru c

S(F1) = S(( i 1 Gi )) + S(G), avem S(F1) = 0, ceea ce este absurd


deoarece F1 este tautologie.

Teorema 2.4. Sunt adevrate urmtoarele echivalene (tari, pentru


oricare F, G, H LP):
(a) F F F

(a) F F F (idempoten)

(b) F G G F

(b) F G = G F (comutativitate)

(c) ( F G ) H

(c) (F G) H F (G H)

F(GH)

(asociativitate)

(d) F ( G H )

(d) F ( G H ) (F G) (F H)

(F G) (F H)

(distributivitate)

(e) F ( F G ) F

(e) F ( F G ) F (absorbie)

Fundamentele logice ale Informaticii

(f) F F

(legea

69

dublei negaii)

70

Cristian Masalagiu

cea iniial. Vom proceda prin inducie structural, avnd de artat


teorema din metalimbaj (H LP) P(H), unde

(g) ( F G )

(g) ( F G ) F G (legile lui

P(H): (F, G, H LP)(((F subf(H)) i

FG

deMorgan)

(H se obine din H nlocuind o apariie fixat a lui F cu G) i

(h) F G F

(h) F G G (legile validitii,

(F G)) H H).

adevrate doar dac F este tautologie)

Baza. H = A A. S artm c P(A) este adevrat. Fie F, G,

(i) F G G (legile contradiciei,

H LP, astfel nct F subf(H), H se obine din H nlocuind

adevrate doar dac F este contradicie)

apariia aleas a lui F cu G, iar F G. Trebuie s artm c H H.

(i) F G F

Demonstraie. Vom arta doar una dintre echivalene i anume (i). Fie

Dar, din F subf(H) i subf(H) = {A}, rezult c F = A ( care coincide

F LP orice contradicie i G LP. Fie orice structur S. Atunci

cu H). Prin urmare, H = G. Avem acum F = H, G = H i F G, de

S(F G) = S(F)S(G) = 0, conform Tabelului 1.1 (punctul 9)) i

unde urmeaz imediat c H H.

faptului c F este contradicie. Aceeai valoare o are i membrul drept

Pas inductiv. Trebuie tratate separat situaiile care urmeaz.

din (i).

(i) H = ( H1). Presupunem c P(H1) este adevrat i demonstrm c


P(H) este adevrat. Fie F subf(H) = subf(H1) U {( H1)}. Dac

Se poate arta, de exemplu, prin inducie matematic, faptul c

F = ( H1 ) ( = H), suntem ntr-o situaie similar cu cea din Baza,

asociativitatea, distributivitatea i legile lui deMorgan se extind pentru

deoarece raionamentul se face din nou asupra ntregii formule H. Fie o

orice numr finit de formule.

apariie fixat a lui F subf(H1) subf(H) i considerm orice G LP

Teorema 2.5 (de substituie). Fie H LP, oarecare. Fie orice


F, G LP astfel nct F este o subformul a lui H i G este tare
echivalent cu F. Fie H formula obinut din H prin nlocuirea (unei
apariii fixate a) lui F cu G. Atunci H H.
Demonstraie. Intuitiv, teorema spune c nlocuind ntr-o formul o
subformul cu o formul echivalent, obinem o formul echivalent cu

astfel nct G F. nlocuind pe F cu G n H, nseamn n acelai timp a


nlocui pe F cu G n H1. Notnd cu H respectiv H1 formulele obinute,
putem aplica ipoteza inductiv (P(H1) este adevrat) i obinem c
H1 H1. Revenind, tim c H = ( H1), H = ( H1) i H1 H1.
Rezult imediat c H H (vezi i Observaia care precede imediat
Teorema 2.3 i V.2.8 din Anex).

Fundamentele logice ale Informaticii

71

72

Cristian Masalagiu

(ii) H = (H1 H2). Presupunem c P(H1) i P(H2) sunt adevrate i

i + lundu-l respectiv , dup cum se poate deduce chiar din

demonstrm c P(H) este adevrat. Fie orice F subf((H1 H2)) =

Teorema 2.4). De asemenea, vom folosi tabelele de adevr pentru a

subf(H1) U subf(H2) U{(H1 H2)}. Dac F = ( H1 H2 ) ( = H) suntem

gsi n mod direct semantica (valoarea de adevr a) unei formule ntr-o

din nou ntr-un caz similar cu cel din Baza. S considerm c

structur dat.

F subf(H1) (apariia deja fixat), cazul F subf(H2) tratndu-se


similar. Fie orice G LP astfel nct G F. A nlocui pe F cu G n H
nseamn, n acelai timp, a nlocui pe F cu G n H1 (H2 rmnnd

Nu apare astfel surprinztoare tematica paragrafului urmtor,


privind existena formelor normale.

neschimbat). Vom nota cu H respectiv H1, formulele obinute dup


aceste nlocuiri. Aplicnd ipoteza inductiv (P(H1) este adevrat),

4. Forme normale n LP

rezult imediat c H1 H1. Revenind, tim c H = (H1 H2),

Spre deosebire de cazul funciilor booleene, vom studia pentru

H = (H1 H2) i H1 H1. Obinem imediat c H H (putem folosi

nceput formele normale conjunctive i formele normale disjunctive

direct faptul deja amintit, c este compatibil cu operaiile, respectiv

simultan.

cu conjuncia).
(iii) H = (H1 H2). Se demonstreaz analog cu cazul precedent.

Definiia 2.7. O formul F LP se afl n form normal


conjunctiv (FNC, pe scurt) dac este o conjuncie de disjuncii de

Pentru a nu exista confuzii ntre limbajul de baz (LP) i


metalimbajul n care exprimm afirmaiile despre elementele lui LP, n
cele de mai sus (precum i n continuare) am notat implicaia cu iar

literali, adic o conjuncie de clauze. Simbolic:


m

ni

ni

i= 1

j 1

j=1

F ( L i,j ) (notm Ci Li,j , i [m] ).

conjuncia prin i. Deocamdat am pstrat notaia clasic pentru

Similar, F LP este n form normal disjunctiv (FND, pe scurt),

cuantificatorul universal (), deoarece el nu apare explicit n LP.

dac este o disjuncie de conjuncii de literali.

Rezultatele obinute ne permit practic s tratm formulele din


LP ntr-un mod similar cu funciile booleene, dac ne intereseaz
probleme de natur semantic. Astfel, vom nota cu 0 orice contradicie
i cu 1 orice tautologie i vom accepta principiul dualitii (rolul lui

n cele de mai sus Li,j A U

A.

Exemplu. F = (A (B C)) este n FNC iar G = ((A B) (A C))


este n FND, dac A, B, C A.

73

Fundamentele logice ale Informaticii

74

Cristian Masalagiu

(ii) F = (G H). Presupunem c afirmaiile

P(G) i P(H) sunt

Teorema 2.6. Pentru fiecare formul F LP exist cel puin dou

adevrate i artm c P(F) este adevrat. Din faptul c P(G) este

formule F1, F2 LP, F1 aflat n FNC i F2 aflat n FND, astfel nct

adevrat rezult c exist G1, aflat n FNC i satisfcnd G G1,

F F1 i F F2 (se mai spune c F1 i F2 sunt o FNC, respectiv o FND,

astfel nct:
m1

pentru F).
Demonstraie. Pentru a demonstra afirmaia necesar, (F)P(F) n

n 1 i

( L i,j ))
G1 = ( i=1
j 1

metalimbaj, unde

Cu totul similar, pentru c P(H) este adevrat, nseamn c exist H1,

P(F): exist F1 LP, aflat n FNC i exist F2 LP, aflat n

aflat n FNC i satisfcnd H H1:

FND, astfel nct F F1 i F F2,

m2

n 2 i

L i,j ))
H1 = ( i=1 (
j 1

procedm prin inducie structural.


Baza. F = A A. Aceast formul este att n FNC ct i n FND, deci

Atunci, G H G1 H1 i este evident c ultima formul este tot o

putem lua F1 = A i F2 = A.

conjuncie de disjuncii, adic este o FNC, notat F1, pentru F. Pentru a

Pas inductiv. Trebuie tratate cazurile corespunztoare definiiei

obine o FND, F2, pentru F, pornim de la o FND, G2, pentru G i o

constructive a lui LP.

FND, H2, pentru H. Atunci F = G H G2 H2, de unde obinem

(i) F = ( G). Presupunem c P(G) este adevrat i demonstrm c

imediat o FND pentru F, notat F2, dac se aplic mai nti

P(F) este adevrat. Din ipoteza inductiv rezult c exist formulele

distributivitatea generalizat a conjunciei fa de disjuncie i apoi, n

G1, aflat n FNC i G2, aflat n FND, astfel nct G G1 i G G2.

interiorul subformulelor, a disjunciei fa de conjuncie.

Atunci, de exemplu, G G1 i, aplicnd legile lui deMorgan, gsim:

(iii) F = (G H). Procedm analog ca n cazul anterior.

ni

ni

i= 1

j 1

i= 1

j 1

( ( L i,j )) ( ( ( L i,j ))) .

n ultima formul putem aplica unde este cazul legea dublei negaii
i apoi putem nlocui elementele de forma Li,j cu L i, j , obinnd astfel o
FND pentru F. Analog, dac pornim cu G2, care este o FND pentru G,
vom obine o FNC pentru F.

Teorema precedent sugereaz existena unui algoritm recursiv


pentru obinerea simultan a unei FNC i a unei FND, pentru orice
formul propoziional. Putem folosi ns i tabelele de adevr i
modalitile de gsire a formelor normale conjunctive/disjunctive
(perfecte) descrise n Capitolul 1.

75

Fundamentele logice ale Informaticii

76

Cristian Masalagiu

Exemplu. Gsii o formul F LP construit peste mulimea de

respectiv negat, iar dac valoarea ei este 1, atunci ea apare

variabile propoziionale {A, B, C} i care s satisfac condiia: n

nenegat; formula final, aflat n FND(P), este disjuncia tuturor

tabelul de adevr standard care o descrie, o schimbare i numai una

acestor conjuncii. Prin urmare, putem pune F = (A B C)

n secvena <S(A), S(B), S(C)> produce schimbarea valorii

(A B C) (A B C) (A B C). Gsii, analog, o

corespunztoare de adevr S(F). Dac ncepem secvena S(F) cu 0,

FNC(P)

atunci F este descris de tabelul:


Conform teoremei anterioare, precum i datorit comutativitii

S(A)

S(B)

S(C)

S(F)

i idempotenei disjunciei, comutativitii i idempotenei conjunciei


(repetarea unui element, fie el literal sau clauz, este nefolositoare din
punctul de vedere al (ne)satisfiabilitii unei formule), este justificat
scrierea ca mulimi a formulelor aflate n FNC. Astfel, dac F este n
FNC (Definiia 2.7), vom mai scrie F = {C1, C2, ... , Cm} (nu uitm
totui c virgula aici provine dintr-o conjuncie), unde, pentru fiecare
i [m], vom pune C i {L i,1 , L i,2 ,..., L i,n i } . Mai mult, dac avem
F LP reprezentat ca mulime (de clauze) sau ca mulime de mulimi
(de literali) i ne intereseaz doar studiul (ne)satisfiabilitii ei, putem
elimina clauzele C care conin att L ct i L , deoarece L L 1,

Se poate construi apoi direct din tabel mcar o formul (sau dou) care

1 C 1 i deci aceste clauze sunt tautologii (notate generic cu 1).

i corespunde semantic, formul ce se afl n FND (i/sau FNC). De

Tautologiile componente nu au nici o semnificaie pentru stabilirea

fapt vom folosi algoritmul de construcie a FNDP (FNCP) pentru o

valorii semantice a unei formule F aflate n FNC (1 C C).

funcie boolean. Conform Capitolului 1, acesta poate fi exprimat


astfel: se fixeaz liniile avnd 1 n ultima coloan (cele marcate cu *
n tabel); pentru fiecare asemenea linie se construiete o conjuncie de
literali (apar toi, cu bar sau fr): dac valoarea unei variabile
(atom pozitiv) este 0 n tabel, atunci variabila se trece n conjucia

Fundamentele logice ale Informaticii

77

78

Cristian Masalagiu

algebrele booleene LP i B stau la baza corectitudinii acestei

5. Decidabilitate n LP

construcii) care are forma:

LP, cadrul formal propus (realitatea este modelat prin


afirmaii, afirmaiile sunt reprezentate ca formule propoziionale),

S(A1) S(A2)

S(An)

S(F)

ofer ca principal metod de a rezolva problemele, testarea adevrului

v1

(satisfiabilitii) unor formule. Din punctul de vedere al unui

v2

informatician, trebuie ca pentru clasa de formule admis s existe un

algoritm care, avnd la intrare orice F LP, se termin cu rspunsul

vm

=m

DA, dac F este satisfiabil (sau valid, sau contradicie) i NU n


rest (tiind desigur c putem decide dac un anumit ir de caractere este

Dac toi vi (i [m]) sunt egali cu 0 atunci F este contradicie, dac toi

formul sau nu).

n aceast situaie se spune c problema

vi sunt 1 atunci F este tautologie, iar n rest F este satisfiabil dar

satisfiabilitii (pe scurt, SAT) pentru LP este rezolvabil

nevalid. Pentru a depista acest lucru, trebuie parcurs, n Pasul 2, n

(decidabil). Mai mult, am vrea s gsim asemenea algoritmi pentru

cazul cel mai defavorabil, ntregul tabel, linie cu linie i prin urmare

care complexitatea timp este rezonabil.

trebuie efectuate 2n comparaii (F este construit peste n formule


atomice). Dei mai sus nu avem o explicaie formal riguroas a

Teorema 2.7 (decidabilitatea SAT). Satisfiabilitatea (validitatea,

faptului c SAT are timp exponenial, se poate arta c problema este

nesatisfiabilitatea) formulelor calculului propoziional este decidabil n

chiar NP-complet (conform [AHO]; a se urmri i comentariile care

timp exponenial.

urmeaz imediat dup demonstraie).

Demonstraie. Practic, demonstraia (exceptnd complexitatea) a fost


deja fcut, chiar n mai multe moduri. Fie F LP avnd prop(F) =
{A1, A2 , , An} = An . Se formeaz, de exemplu n Pasul 1 al unui
posibil algoritm (notat tot SAT) pentru testarea satisfiabilitii
(validitii, nesatisfiabilitii), tabela de adevr corespunztoare lui F
(Teorema de extensie, Teorema de substituie i legtura dintre

Datorit Teoremei de extensie i Teoremei de substituie,


putem construi o tabel de adevr pentru o formul pornind nu de la
variabile, ci chiar de la anumite subformule mai complicate (pentru care
valorile posibile, finale, sunt tot 0 sau 1). Mai mult (se pot consulta
[KNU], [JUC], [LUC] i, n special, [CRO], [AHO], [COR], [BR]),
trebuie cutai algoritmi rapizi (eficieni, tratabili), adic avnd

Fundamentele logice ale Informaticii

79

80

Cristian Masalagiu

complexitate (timp) mic. Astfel, dou dintre msurile (teoretice,

asimptotic (sau ordinul de cretere) a (al) lui tAlg(n), adic ne vor

globale) de complexitate des ntrebuinate sunt complexitatea timp i

interesa doar anumite margini ale sale, cum ar fi marginea sa

complexitatea spaiu. Ideea este aceea c un (orice) pas elementar

superioar.

(instruciune) al unui algoritm se execut ntr-o unitate de timp (pentru

O(f) = {g | g : N N, exist c R, c > 0 i exist k N, astfel nct

spaiu, fiecare dat elementar se memoreaz ntr-un registru sau


locaie de memorie, acesta/aceasta ocupnd o unitate de spaiu),

Formal,

pentru

fiecare

N,

notm

pentru fiecare n k avem g(n) cf(n)} i vom spune c fiecare

criteriul numindu-se al costurilor uniforme. Exist i criteriul costurilor

g O(f), este de ordinul lui f, ceea ce se mai noteaz i cu g = O(f).

logaritmice (pe care ns nu-l vom utiliza aici), n care orice informaie

Astfel, vom spune c SAT are complexitatea (timp, asimptotic) O(2 n),

de lungime i, se prelucreaz (respectiv, se memoreaz) n numrul de

sau, pe scurt, complexitate exponenial, deoarece c exist (mcar) un

uniti de timp (uniti de spaiu) egal cu log(i) + 1 (dac i = 0, se

algoritm Alg care rezolv problema (cel sugerat n demonstraia

convine s lum log(i) = 0; n noteaz partea ntreag inferioar a

algoritmi polinomiali (tAlg(n) = O(p(n)), unde p(n) desemneaz un

numrului n). Intuitiv, timpul luat de execuia unui algoritm Alg este dat

polinom n n, de orice grad), sau de algoritmi liniari (p(n) de mai sus

de numrul de instruciuni (pai/operaii elementare) efectuate (s-l

este un polinom de gradul I), adic de probleme avnd complexitatea

notm cu tAlg), iar spaiul (notat cu sAlg) este dat de numrul de locaii

(timp, dar se poate defini ceva asemntor pentru spaiu) de tipul

(elementare) de memorie (intern, a calculatorului) ocupate n cursul

precedent. Sperana de a gsi algoritmi mai performani pentru

execuiei. Sigur c totul se raporteaz la lungimea fiecarei intrri

rezolvarea SAT, se poate baza pe ideea de a restrnge LP la anumite

(adic, n cazul nostru, la lungimea unei formule F IN LP, aceasta

subclase stricte, particulare de formule ale sale, suficient de largi ns

putnd fi de exemplu nF = card (prop(F))) i ne intereseaz de fapt


sup{tAlg(F) | F IN i nF = n N}, margine superioar pe care o vom
nota cu tAlg(n). Aceast abordare (n care se caut cazul cel mai
nefavorabil, dac este desigur posibil), ne permite s fim siguri c
pentru fiecare intrare de lungime n, timpul de execuie al lui Alg nu va
depi tAlg(n). Cum determinarea acelui supremum este de multe ori
destul de dificil, ne vom mulumi s studiem aa-numita comportare

Teoremei 2.7) i pentru care tAlg(n) = O(2n). Similar, vom vorbi de

pentru a exprima convenabil pri importante ale realitii. n plus, n


condiiile utilizrii calculatorului, gsirea unor algoritmi de natur
sintactic pentru rezolvarea SAT (n locul celor semantici, cum este
i cel bazat pe folosirea tabelelor de adevr) este o prioritate (chiar dac
acetia nu sunt mai buni din punctul de vedere al teoriei generale a
complexitii).

Fundamentele logice ale Informaticii

81

6. Formule Horn

82

Cristian Masalagiu

literal negativ). Vom scrie C A1 A2 A3 Ak 0

Reamintim c o clauz Horn este o disjuncie de literali care


conine cel mult un literal pozitiv.
Definiia 2.8. O formul Horn este o formul aflat n FNC, clauzele

C = A1 A2 Ak (nici un literal pozitiv, mcar un

(folosim din nou definiia implicaiei i faptul c 0 A A).

C = A1 A2 Ak B (exact un literal pozitiv,


mcar un literal negativ). Atunci CA1 A2 A3 AkB,

componente fiind (toate) clauze Horn.

direct din definiia implicaiei.


Uneori, vom numi tot formul Horn i o formul care este (tare)

echivalent cu o formul de forma considerat n Definiia 2.8. Se

reprezentarea clauzelor cu mulimi vom folosi pentru

echivalente cu nici o formul Horn, apariia a mcar doi literali pozitivi

). Prin convenie,

distinci ntr-o clauz fiind decisiv. Formele posibile pentru o formul

chiar

este o clauz de orice tip (inclusiv o

clauz Horn), dar nesatisfiabil.

Horn sunt (variabilele propoziionale care apar sunt elemente ale lui A):
(ii) C = A1 A2 Ak B, k N.

(nici un literal negativ, nici un literal pozitiv). Din

motive tehnice vom folosi i aceast clauz vid (n

poate arta ([MAS1]) c exist formule propoziionale care nu sunt tare

(i) C = A1 A2 Ak, k 1, k N i

Teorema 2.8. Satisfiabilitatea formulelor Horn este decidabil n timp


liniar.
Demonstraie. S considerm algoritmul:

Observaie. nafar de reprezentarea ca mulimi, clauzele Horn pot fi


reprezentate sub i sub aa-numita form implicaional. Vom distinge

Algoritm Horn

cazurile (reamintim c 0 i 1 denot orice contradicie respectiv orice

Intrare: Orice formul Horn, F, reprezentat ca mulime de clauze,

tautologie):

clauzele componente fiind clauze Horn diferite de clauza vid i scrise

C = A A (nici un literal negativ, un literal pozitiv). Acest

sub form implicaional .

lucru se mai poate scrie sub forma C 1 A, ceea ce se

Ieire: DA, n cazul n care formula F este satisfiabil (furnizndu-se

justific prin aceea c 1 A 1 A 0 A A.

i o asignare S care este model pentru F) i NU n caz contrar (F nu


este satisfiabil).

83

Fundamentele logice ale Informaticii

84

Cristian Masalagiu

Metod (de marcare):

Artm mai nti c algoritmul se termin pentru fiecare intrare. S

Pasul 1. i := 0.

precizm c aciunea de marcare o privim n sens grafic normal,

Pasul 2.

marcajul care poate fi ataat unei variabile proziionale alegndu-se

Ct_timp

((exist

clauz

de

forma

fr criterii speciale (s presupunem c el este *, mpreun eventual cu

A1 A2 A3 Ak B, cu A1, A2, A3, ... , Ak marcai i

anumii indici prin care s se identifice n care dintre execuiile

B nemarcat sau de forma A1 A2 A3 Ak 0, cu A1,

corpului buclei s-a fcut marcarea). Iniial, toate variabilele se

A2, A3, ... , Ak marcai) i (i = 0))

presupun a fi nemarcate. Dac F conine clauze de forma 1 B (care

execut

se consider a fi de fapt de forma A1 A2 A3 Ak B, cu A1,

Pasul 3. Alege un asemenea C ca mai sus.

A2, A3, ... , Ak marcai i B nemarcat), se procedeaz conform

Pasul 4. Dac ( C = A1 A2 A3 Ak B )

algoritmului, adic se marcheaz toate apariiile lui B n F i se trece la

atunci
Pasul 5. Marcheaz B peste tot n F.
altfel
Pasul 6. i := 1.
Sf_Dac
Sf_Ct_timp
Pasul 7.

pasul urmtor. Mai departe, la fiecare execuie a corpului buclei (Paii


3. i 4.), fie se marcheaz o variabil propoziional nou (nemarcat
nc), fie se iese din execuia buclei. Pentru c numrul de variabile
peste care este construit formula F este finit, terminarea algoritmului
este evident. Dac nu exist deloc clauze de tipul 1 B, algoritmul se
termin fr nici o execuie a corpului buclei, cu rspunsul DA

Dac ( i = 0 )

(formula este satisfiabil) i cu asignarea S, n care S(A) = 0 pentru

atunci

fiecare A (care apare n F).


Pasul 8. Scrie DA.

Artm n continuare c algoritmul este corect. Aceasta nseamn c

Pasul 9. Scrie S, cu S(A) = 1 dac i numai

ieirea algoritmului satisface ceea ce am dorit, adic rspunsul DA/S

dac A apare n F i este marcat.

corespunde faptului c formula F furnizat la intrare este satisfiabil (i

altfel

S F) iar rspunsul NU corespunde faptului c F este nesatisfiabil.


Pasul 10. Scrie NU.

Sf_Dac.

Vom separa cazurile:


Cazul a). La terminarea execuiei se obine DA i F nu conine
clauze C de tipul 1 B. Dup cum am observat, acest lucru nseamn

85

Fundamentele logice ale Informaticii

86

Cristian Masalagiu

c bucla s-a terminat fr s i se execute vreodat corpul avnd n plus

1 B, B marcat), de unde rezult c semantica lui C n asignarea

i = 0 i S(A) = 0 pentru fiecare A (care apare n F). Atunci exist n F

furnizat de algoritm este de forma 1 0 i prin urmare S(C) = 0, de

(la finalul execuiei) doar clauze de tipul C1=A1 A2 A3 AkB,

unde S(F) = 0. Acest lucru nu nseamn ns c F este nesatisfiabil.

sau C2 = A1 A2 A3 Ak 0 (k 1) , care n-au nici o

Pentru a trage aceast concluzie trebuie s artm c pentru nici o alt

variabil marcat. Avem atunci, pe scurt, S(C1) = S(00 ... 0 0)= 1,

asignare, ea nu poate fi model pentru F. S presupunem (RA) c exist

respectiv S(C2) = 1, de unde gsim S(F) = 1.

o asignare S (diferit de S, furnizat de algoritm) astfel nct

Cazul b). La terminare se obine DA iar F conine i clauze

S(F) = 1. S observm, pentru nceput, c toate variabilele care au fost

C = 1 B. Atunci bucla se termin dup un anumit numr de execuii

marcate n algoritm (deci cele care au primit valoarea de adevr 1 n S),

ale corpului su, valoarea lui i este 0 i F conine n final clauze C

trebuie s primeasc valoarea 1 n oricare S cu S(F) = 1. Altfel spus,

avnd marcate anumite variabile. Dac C = 1 B (adic

asignarea S conine cel mai mic numr posibil de valori 1 (atribuite

C = B), unde B este marcat (S(B) = 1), avem imediat S(C) = 1. Dac

evident variabilelor marcate) astfel nct formula s aib anse s fie

C = A1 A2 A3 Ak B (k 1) este posibil ca, fie toate

satisfiabil. ntr-adevr, pentru fiecare S cu S(F) = 1, trebuie s avem

variabilele din antecedent sunt marcate (dar atunci B este i el marcat i


atunci, din nou, S(C) = 1 pentru c semantica lui C este de tipul 1 1),

S(C) = 1 pentru fiecare clauz C din F. S ne ocupm puin de


momentul n care se marcheaz o variabil B, ordonnd clauzele din F

fie exist mcar una dintre variabilele Ai de mai sus care este

de forma C = A1 A2 A3 Ak B (k 1) dup numrul de

nemarcat, dar atunci vom avea iari S(C) = 1, pentru c semantica sa

variabile din antecedent (chiar n algoritm, selecia unei clauze pentru

este

de

tipul

sau

0.

sfrit,

dac

C = A1 A2 A3 Ak 0 (k 1), unde mcar un Ai este

marcare se poate face dup un asemenea criteriu):

Clauze C de tipul 1 B B (nici o variabil n antecedent, B

nemarcat, semantica lui C este de forma 0 0 i obinem din nou

nemarcat). De la acestea ncepe procesul de marcare. Din faptul

S(C) = 1). Concluzia este c S(C) = 1 pentru fiecare C care apare n F,

c S(C) trebuie s fie egal cu 1, este clar c trebuie pus

adic S(F) = 1.

S(B) = 1 (B se i marcheaz, deci S(B) = 1).

Cazul c). Algoritmul se termin cu i = 1 i rspunsul NU. Acest lucru

Clauze C de forma

A B

A B (o variabil n

nseamn c exist n F o clauz C = A1 A2 A3 Ak 0 cu

antecedent; A este marcat, B nemarcat). A nu putea fi marcat

toi Ai, i [k] marcai (obligatoriu, n F exist i clauze de forma

dect dac a aprut deja ca un consecvent ntr-o clauz de

Fundamentele logice ale Informaticii

87

88

Cristian Masalagiu

tipul anterior, sau n una de acelai tip cu aceasta i care are

antecedentul marcat. Prin urmare, n orice S cu S(C) = 1,

Exemplu. S aplicm algoritmul de marcare urmtoarei formule Horn:

trebuie oricum s avem S(A) = 1, deci S( A) = 0 i atunci

F = ( A D ) ( C A D ) ( A B ) D E.

S(B) = 1 (concecina este c B se marcheaz, deci i S(B) = 1).

Scriem

Continum raionamentul cu C = A1 A2 B (dou variabile


n antecedent; ambele variabile marcate; B este, nc,
nemarcat), ajungnd din nou la concluzia c pentru fiecare S,
pentru a avea S(C) = 1, trebuie s avem S(B) = 1, precum i

S(C) = 0, de unde rezult c S(F) = 0, ceea ce este absurd.


S artm n final c algoritmul Horn are timp de execuie liniar.
Faptul c t(n) O(f(n)), unde f(n) = an + b (a, b N*), rezult
imediat din faptul c la fiecare execuie a corpului buclei se marcheaz
o nou variabil. Desigur c pentru a obine n mod real acest lucru
algoritmul trebuie detaliat, n sensul c, de exemplu, n Paii de tip 3
(de alegere a unei clauze corespunztoare C), selecia variabilei de
marcat trebuie fcut prin parcurgerea de un numr fix de ori
(independent de numrul de execuii) a listei variabilelor peste care este
construit F.

mulime

de

implicaii,

obinnd

nemarcate.

Prima execuie. Alegem clauza 1D (de fapt, nu exist alt


posibilitate). Toate apariiile lui D se marcheaz cu *1:
D *1 A, C A D *1 , A B 0, 1 D *1 , E 0.

A doua execuie. Alegem D A (din nou, nu exist dect o


unic posibilitate) i A se marcheaz peste tot, cu *2 :

algoritm, adic pentru fiecare A care satisface i S(A) = 1 (procesul


antecedent, iar numrul acestora este finit). Prin urmare, avem i

ca

prima execuie a corpului buclei, avem i = 0 i toate variabilele sunt

S(F) = 1, trebuie s avem S(A) = 1 pentru fiecare A marcat de ctre


descris mai sus se continu pentru oricte variabile prezente n

F = {D A, C A D, A B 0, 1 D, E 0}. nainte de

S(B) = 1.
Revenind, am artat ntr-adevr c pentru fiecare S astfel nct

nti

D *1 A *2 , C A *2 D *1 , A *2 B 0, 1 D *1 , E 0.

A treia execuie nu mai are loc, deoarece nu mai exist clauze


de tipul cerut. Cum valoarea lui i nu s-a modificat (a rmas 0),
rspunsul algoritmului este DA.

Prin urmare, F este satisfiabil i o structur S, model pentru F, este


definit prin S(A) = 1, S(B) = 0, S(C) = 0, S(D) = 1, S(E) = 0.
Am gsit prin urmare o subclas convenabil (acest lucru este
cumva subiectiv) de formule propoziionale, si anume clasa formulelor
Horn, pentru care testarea satisfiabilitii se poate face ntr-un timp
rezonabil. Dei rezultatele teoretice generale ne spun c nu pot exista
metode sintactice mai bune dact metoda semantic sugerat de
Algoritmul SAT (dac ne referim la ntrega mulime LP), existena,

89

Fundamentele logice ale Informaticii

90

Cristian Masalagiu

dovedit de acum, a unor algoritmi care s nu fac apel explicit la

poate fi obinut prin rezoluie din dou clauze de forma C1 = {A} i

semantic, pare deja a fi un ctig.

C2 = {A}. n definiia anterioar putem considera c C1 i C2 sunt


diferite ntre ele. Dac ele ar coincide, atunci C1 = C2 =... L L 1,

7. Rezoluie n LP

adic acele clauze sunt tautologii, detectabile sintactic (n acest caz nu

Fr a restrnge generalitatea, putem presupune c lucrm cu


formule din LP aflate n FNC, reprezentate sub form de mulimi

ne mai intereseaz alte metode formale de studiere a satisfiabilitii lor).

(finite) de clauze, iar clauzele ca mulimi (finite) de literali.


Exemplu.
Definiia 2.9 (rezolvent). Fie clauzele C1, C2 , R. Spunem c R este

Fie formula F = {{A, E, B}, { A, B, C}, {A, D}, { A, D, E}}. S

rezolventul lui C1, C2 (sau c C1, C2 se rezolv n R, sau c R se

gsim civa dintre rezolvenii care se pot obine (succesiv) pornind de

obine prin rezoluie ntr-un pas din C1, C2), pe scurt,

cele cele patru clauze care compun F, notate respectiv C1, C2, C3, C4:

R = ResL(C1, C2), dac i numai dac exist un literal L C1 astfel


nct L C2 i R = (C1 \ {L}) U (C2 \ { L }).

C2

C1

A
Vom putea reprezenta acest lucru i grafic, prin arborele de rezoluie:
C1

C2
L

L
R

Vom renuna la scrierea explicit a lui L sau/i L n momentul n care


nu exist cofuzii.
Observaie. Rezolventul a dou clauze este tot o clauz. Mai mult,
rezolventul a dou clauze Horn este tot o clauz Horn. Clauza vid ( )

C1

C2
B

{E, B, B, C}

{A, E, A, C}

C1

C4
A

{E,B,D,E}

C4

C1
E

{A, B, A,D}
Acetia au fost gsii apelnd de fiecare dat la C1. i C2 poate fi sursa
unui ntreg lan de asemenea rezolveni:

91

Fundamentele logice ale Informaticii

92

Cristian Masalagiu

Teorema 2.9 (lema rezoluiei). Fie oricare formul F LP (aflat n


C2

C3

FNC i reprezentat ca mulime de clauze) i R un rezolvent pentru C1,


C2 F. Atunci F este tare echivalent cu F U{R}.

Demonstraie.

{B, C, D}
B

C1
B

. Dac S satisface F U{R} atunci desigur c S satisface F, conform


definiiei (o structur satisface o mulime de formule dac satisface
fiecare element din mulime).

{C, D, A, E}

. S presupunem c S F , adic S C, pentru fiecare C F. Fie

Muli dintre aceti rezolveni primari nu sunt interesani, fiind

C1,C2 F i R un rezolvent al lor, R = (C1 \ {L}) U (C2 \ { L }), unde

tautologii (datorit faptului c acele clauze alese spre rezolvare conin

L C1, L C2 .

mai mult de un literal de tipul L/ L ). Procesul poate ns continua cu

Cazul 1. S(L) = 1. Atunci S L. Dar tim c S C2 . Rezult c

gsirea de noi rezolveni folosindu-i i pe cei obinui din clauzele


iniiale (cum este cazul i mai sus) .a.m.d.

S C2 \ { L }, de unde S(R) = 1.
Cazul 2. S(L) = 0. Analog, artndu-se c S C1 \ {L}.

n acest moment putem s ne punem cel puin dou ntrebri:

Exist cazuri n care procesul anterior (de aflare succesiv de

n teorema anterioar am fi putut considera, n loc de F, o mulime


oarecare de clauze, chiar infinit.

rezolveni noi) nu se termin?

n caz de rspuns negativ i presupunnd c exist o legtur

Definiia 2.10. Fie F o mulime oarecare de clauze din LP i C o

ntre acest proces sintactic (de obinere de rezolveni) i

clauz. Spunem c lista C1, C2 , , Cm este o demonstraie prin

satisfiabilitate, se pot obine algoritmi (sintactici, eventual

rezoluie (n mai muli pai) a lui C pornind cu F dac sunt

performani) de testare a satisfiabilitii unor formule?

satisfcute condiiile:
(i) Pentru fiecare i [m], fie Ci F, fie Ci este obinut prin rezoluie

Rspunsul l vom da n cele ce urmeaz.

ntr-un pas din Cj, Ck, cu j, k < i.


(ii) C = Cm.

Fundamentele logice ale Informaticii

93

94

Cristian Masalagiu

{A, B, C}

{A, B, C}

n condiiile definiiei, se mai spune c C este demonstrabil


C

prin rezoluie (pornind cu F, sau, n ipotezele date de F). Mai mult,


pentru a spune acest lucru, este suficient ca F s fie inserat (prezent)

C
{A, B}

{A, B}

ntr-o demonstraie i nu s fie neaprat ultimul element al acesteia.


Intuitiv, o demonstraie prin rezoluie n mai muli pai nseamn o

succesiune finit de rezoluii ntr-un pas, care poate fi reprezentat i

{A}

grafic, printr-un arbore (a se vedea exemplul care urmeaz), sau chiar

{A}
A

ca un graf oarecare (dac nu folosim noduri diferite pentru apariiile

distincte ale unei aceleiai clauze). n particular, dac C este clauza


vid, atunci demonstraia respectiv se numete i respingere.
Numrul de pai dintr-o demonstraie este dat de numrul de clauze

obinute prin rezoluie ntr-un pas (din clauze anterioare). Acesta poate
fi considerat ca fiind o msur a mrimii (lungimii) demonstraiei. O

Definiia 2.11 (mulimea rezolvenilor unei mulimi de clauze). Fie F

alt msur pentru o demonstraie reprezentat ca text poate fi chiar

o mulime de clauze din LP (nu neaprat finit). Notm succesiv:

lungimea listei (numrul total de clauze, sau chiar numrul total de

Res(F) = F U{R | exist C1, C2 F astfel nct R = Res(C1, C2)}.

clauze distincte). Dac reprezentm o demonstraie ca un arbore, putem

Res(n+1)(F) = Res(Res(n)(F)), n N. Prin Res(0)(F) vom nelege F i

folosi i msuri specifice, cum ar fi adncimea arborelui, numrul de


nivele ([IVA]), etc. Convenim s eliminm din orice demonstraie
rezolvenii care conin att L ct i L, aceste clauze fiind tautologii i
deci neinteresante din punctul de vedere al studiului satisfiabilitii
unei formule aflate n FNC.
Exemplu. Fie F = {{A, B, C}, {A}, {A, B, C}, {A, B}}. O
respingere poate fi descris prin arborele:

atunci vom putea pune i Res(1)(F) = Res(F).

Res*(F) = Res(n) (F).


nN

(n)

Res (F) se va numi mulimea rezolvenilor lui F obinui n cel mult


n pai, iar Res*(F) mulimea (tuturor) rezolvenilor lui F.
Observaie. Direct din definiie rezult c:
F = Res(0)(F) Res(1)(F) ... Res(n)(F) ... Res*(F).

Fundamentele logice ale Informaticii

95

96

Cristian Masalagiu

Putem da atunci i o definiie structural a lui Res*(F). Vom nota astfel

Pas inductiv. Fie C = Res(C1, C2), C1, C2 Resc i resupunem c C1,

cu Resc mulimea definit prin:

C2 Res*(F). S artm c C Res*(F). Acest fapt urmeaz imediat,

Baza. F Resc.

conform Definiiei 2.11.

Pas constructiv: Dac C1, C2 Resc i C = Res(C1, C2), atunci


C Resc.

De acum nainte vom folosi ambele notaii pentru mulimea


rezolvenilor unei mulimi de clauze. i n Teorema 10 se putea

Rmne s artm c cele dou definiii introduc aceeai mulime.

considera c F reprezint o mulime oarecare de clauze.

Teorema 2.10. Pentru fiecare F LP, avem Res*(F) = Resc.

Teorema 2.11. Fie F o mulime de clauze din LP (nu neaprat finit).

Demonstraie. Artm egalitatea prin dubl incluziune.

O clauz C LP se poate demonstra prin rezoluie pornind cu clauzele


lui F dac i numai dac exist k N, asfel nct C Res(k)(F).

. Demonstrm prin inducie matematic adevrul afirmaiei din

Demonstraie. Fie F i C fixate ca n enun.

metalimbaj (n)P(n), unde P(n): Res(n)(F) Resc.


Baza. n = 0. Trebuie artat c F = Res(0)(F) Resc, ceea ce este

. S presupunem c exist o demonstraie prin rezoluie a lui C

imediat din definiia lui Resc.

pornind cu F, C1, C2, ... , Cm = C. Este ndeplinit condiia (i) din

Pas inductiv. Presupunem c Res(n)(F) Resc i artm c

Definiia 2.10 i atunci nseamn c pentru fiecare i [m], avem

Res(n+1)(F) Resc, ceea ce este din nou imediat din definiia lui Resc i

Ci Resc, care coincide cu Res*(F), conform Teoremei 2.10. Prin

Definiia 2.11. n sfrit, avem Res*(F) Resc, direct din Definiia

urmare, conform definiiei lui Res*(F) exist k N, asfel nct

2.11 i observaia care urmeaz acesteia.

C Res(k)(F).

. Procedm prin inducie structural, mai exact artm c afirmaia

. S presupunem c exist k N, asfel nct C Res(k)(F) (pe k l

din metalimbaj (C Resc)(C Res*(F)) este adevrat.

considerm a fi cel mai mic numr natural care satisface condiia).

Baza. C F. Adevrat, deoarece F = Res(0)(F) Res*(F).

Conform Definiiei 2.11, avem Res(j)(F) = Res(Res(j-1)(F)) =


Res(j-1)(F) U {R | exist C1, C2 Res(j-1)(F) astfel nct
R = Res(C1, C2)}, pentru fiecare j [k]. Putem conveni chiar ca n a

Fundamentele logice ale Informaticii

97

98

Cristian Masalagiu

doua mulime din reuniunea de mai sus s nu punem dect rezolvenii

intereseaz doar satisfiabilitatea lor), aproape toate rezultatele sunt

noi, care nu apar n Res(j-1)(F). Atunci C apare efectiv n Res(k)(F) dar

valabile i pentru mulimi infinite (numrabile) de formule (clauze).

nu i n Res(k-1)(F). Dac k = 0, am terminat (C F i lista format doar

Teorema

din C constituie o demonstraie prin rezoluie a lui C). n caz contrar,

satisfiabilitatea, ntre mulimile infinite i cele finite de formule

mai nti construim algoritmic un graf neorientat n felul urmtor: la

oarecare din LP.

urmtoare

stabilete

legtur

important,

privind

Pasul 1 punem ca noduri elementele din Res(k)(F), care nu sunt i n


Res(k-1)(F); la Pasul 2 punem nodurile din Res(k-1)(F) care nu sunt n
(k-2)

Res

(F), precum i muchiile corespunztoare care unesc nodurile

Teorema 2.12 (de compactitate pentru LP). Fie M o mulime infinit


(numrabil) de formule din LP. M este satisfiabil dac i numai dac

puse deja n graf, conform rezoluiilor ntr-un pas din care ele provin,

fiecare submulime finit a sa este satisfiabil.

. a. m. d. n cel mult k + 1 pai, vom plasa n graf i elementele

Demonstraie.

(folosite) ale lui F, precum i toate muchiile corespunztoare


rezoluiilor ntr-un pas cu ajutorul crora se construiete Res(k)(F).
Considerm acum subgraful generat de nodul C i toate nodurile aflate
pe lanuri de la C la frunze ([IVA]). Acesta este un arbore cu rdcina

. Dac exist structura S astfel nct S M, adic S(F) = 1 pentru


fiecare F M, atunci evident c acelai lucru se ntmpl pentru fiecare
submulime (finit) M M.

C, care reprezint o demonstraie a lui C pornind cu o submulime a lui


F, deci i cu F (desigur c demonstraia se obine prin listarea
corespunztoare a nodurilor, ultimul element din list fiind C). Dac

. Pentru fiecare n N, vom nota Mn {F M | subf(F)

subgraful considerat nu este arbore, acest lucru se datoreaz faptului c

A = prop(F) An}, adic mulimea formulelor din M care sunt

mcar o clauz C este utilizat n mai muli pai de rezoluie. Graful

construite peste (cel mult) mulimea de variabile propoziionale

poate fi uor transformat n arbore prin multiplicarea nodurilor de tipul

An = {A1, A2, , An}. Cum mulimea funciilor booleene de n

C i a arcelor aferente.
Dup cum probabil s-a putut observa, n cele de mai sus am

variabile (FB(n)) are cardinalul 22 , n Mn exist cel mult 22 formule cu


tabele de adevr distincte. Mai mult, direct din definiii avem

folosit n majoritatea cazurilor termenul mulimea de clauze F i nu

M1 M2 Mn ... M i M = M n . Revenind, s

formula F (aflat n FNC). Dei pe noi ne intereseaz doar formulele

presupunem c fiecare submulime finit a lui M este satisfiabil i s

(care pot fi privite ca mulimi finite de clauze n cazul n care ne

n 1

Fundamentele logice ale Informaticii

99

100

Cristian Masalagiu

artm c M este satisfiabil. Fie K M orice submulime finit

restricii ale lui Si+1, lucrul fiind evident posibil deoarece Mi Mi+1).

(satisfiabil) a lui M. Atunci exist n, natural, astfel nct K Mn . Fie

Ca urmare, putem defini structura S : A {0,1}, dat prin

Mn = {F1, F2, , Fk n }, kn 2 2 , mulimea elementelor lui Mn care au

S(Ai) = Si(Ai), pentru fiecare i N*. Faptul c S este funcie i model

tabele de adevr distincte. Pentru fiecare formul G din K alegem o

pentru M este imediat.

formul i numai una, Fi, din Mn, astfel nct G Fi. Fie M "n mulimea
tuturor acestor formule, pentru care este satisfcut condiia: K este
satisfiabil dac i numai dac Mn este satisfiabil. Fie atunci Sn un
model pentru M "n . Avem i Sn Mn pentru c pentru fiecare

Teorema 2.13. Fie F LP, aflat n FNC i reprezentat ca mulime


(finit) de clauze. Atunci Res*(F) este finit.
Demonstraie. Artm mai nti c exist un k N astfel nct
Res(k)(F) = Res(k+1)(F). Fie | prop(F)| = n. Numrul total (m, s spunem)

F Mn \ M "n , exist G M "n astfel nct Sn(G) = Sn(F). Din ipoteza

al clauzelor peste (cel mult) n variabile atomice date este finit (de fapt,

noastr (fiecare submulime finit a lui M este satisfiabil) rezult

m = 3n). Orice rezoluie ntr-un pas terge cte un literal. Prin

aadar c exist un ir de structuri care satisfac:

urmare, indiferent cte dintre cele m posibile clauze sunt prezente

S1 M1, S2 M2, , Sn Mn ,
Renumerotnd dac este cazul variabilele iniiale, putem presupune c
fiecare dintre mulimile de mai sus este nevid i c modele sunt
construite succesiv, dup cum este descris n ceea ce urmeaz. S1
exist i este indiferent modul su de obinere. Apoi, pentru fiecare
i {1, 2, ...}, construim Si+1 pornind de la Si (i modificnd eventual i
pe Si-1, , S1), n felul urmtor: Si+1 pleac cu valorile de adevr
pentru A1, A2, ... , Ai stabilite de ctre Si i fixeaz o valoare pentru

iniial n F i orici pai de rezoluie am efectua, cardinalul oricrui


Res(i)(F) nu poate depi m. Datorit acestui fapt i existenei
incluziunii Res(i)(F) Res(i+1)(F) (pentru fiecare i N), afirmaia
noastr se deduce imediat. Mai mult, notnd cu j pe cel mai mic k cu
proprietatea de mai sus, avem Res(j)(F) = Res(j+l)(F), pentru fiecare l
N (lucru care rezult printr-o simpl inducie matematic i folosind
Definiia 2.11). De aici conchidem imediat c Res(j)(F) = Res*(F), de
unde card(Res*(F)) m.

Ai+1, n mod aleator. Dac nu avem Si+1 Mi+1, atunci revenim, alegnd

Reamintind c vom elimina din orice mulime de forma Res*(F),

o structur Si+1 care s satisfac Mi+1 (tim c exist), prin schimbarea,

pe msur ce se obin, toate clauzele care conin o subformul de tipul

eventual, i a structurilor anterioare S1, S2, ... , Si (acestea vor fi simple

A A, enunm cea mai important teorem din acest capitol.

101

Fundamentele logice ale Informaticii

102

Cristian Masalagiu

Teorema 2.14 (teorema rezoluiei pentru calculul propoziional).

formule construite peste n+1 formule atomice. Fie F LP, construit

Fie F o mulime oarecare de clauze din calculul propoziional. Atunci F

peste An+1 = {A1, A2, , An, An+1}. Pornind de la aceast formul vom

este nesatisfiabil dac i numai dac

Res*(F).

An 1

Demonstraie. Conform Teoremei de compactitate, tim c F este


nesatisfiabil dac i numai dac exist o submulime finit a sa care
este nesatisfiabil. Din acest motiv, n cele de mai jos vom presupune

construi alte dou formule, notate F0 n + 1 i respectiv F1

, n modul

urmtor:

F0 n +1 se formeaz din F prin eliminarea sintactic a oricrei

c F este o mulime finit de clauze, sau, alternativ, o formul

apariii a literalului pozitiv An+1 din orice clauz i apoi

propoziional aflat n FNC. Fr a restrnge generalitatea, putem

eliminarea n totalitate a tuturor clauzelor care conin o apariie

presupune deci c F este o formul oarecare din LP (Teorema 2.6).

negativ a literalului An+1.

(corectitudine). S presupunem c

Res*(F) i s artm c F

An 1

F1

se obine prin dualizare, adic din F se scot din toate

clauzele apariiile negative ale lui An+1 i se elimin apoi toate


clauzele care conin apariii pozitive ale aceleiai variabile.

este nesatisfiabil. Conform Definiiei 2.11 i aplicrii repetate (de un


numr finit de ori) a Lemei rezoluiei, avem F Res(1)(F) Res(2)(F)

Afirmaie. Dac F este nesatisfiabil, atunci att F0

Res(n)(F) . Dac

sunt nesatisfiabile. S presupunem c F este nesatisfiabil i nu are

(k)

Res*(F) atunci exist k N, astfel nct

(k)

Res (F), adic Res (F) este nesatisfiabil (

este nesatisfiabil

A n +1

A n +1

clauze care sunt tautologii. Fie F0

An 1

ct i F1

i fie S orice structur corect

(k)

prin convenie). Cum F Res (F), rezult c F este nesatisfiabil.

(definit pentru toate variabilele propoziionale care intervin n


A

(completitudine). S presupunem c F este nesatisfiabil i s


artm c

Res*(F). Fie n = card(prop(F)). Procedm prin inducie

asupra lui n, adic demonstrm astfel adevrul metateoremei (n N)


( | prop(F)| = n i F este nesatisfiabil

formulele considerate). Considernd clauzele C ale lui F0 n + 1 , avem


urmtoarele posibiliti :

pentru aceast clauz nu se modific i astfel nu modific

Res*(F)).

valoarea de adevr a lui F0 n + 1 fa de cea a lui F (dac lum n

Baza. n = 0. Aceasta nseamn c F = { } = Res*(F) i concluzia este

considerare doar aceast clauz).

evident.
Pas inductiv. Presupunem afirmaia adevrat pentru formule
construite peste n variabile propoziionale i o demonstrm pentru

C este o clauz din F, nemodificat. Evident c valoarea lui S

C provine dintr-o clauz din F, care coninea n plus o apariie


a lui An+1. Dac S(An+1) = 0, atunci S(C U {An+1 }) = S(C), din

103

Fundamentele logice ale Informaticii


A n +1

nou valoarea de adevr a lui F0

nemodificndu-se fa de cea

104

Cristian Masalagiu

respingere (D1) B1, B2, Bt =

An 1

, pornind cu clauzele lui F1

a lui F (relativ la C). Dac S(An+1) = 1, avem S(C U {An+1}) = 1.

Adugm acum la fiecare clauz din (D0) pe An+1, peste tot de unde

Cum F este nesatisfiabil, nseamn c exist o alt clauz C,

acesta a fost scos (inclusiv la clauzele rezultate n urma aplicrii

C U {An+1} C F cu S(C) = 0. Este evident c C nu poate

rezoluiei ntr-un pas), obinnd o demonstraie prin rezoluie notat

conine pe An+1 deoarece S(An+1) = 1 i nici pe An+1 (n acest


A

caz C nu ar mai fi aprut n F0 n + 1 ). Prin urmare, C apare i n


A n +1
0

An + 1
0

, de unde urmeaz imediat c S( F

) = 0.

(D0) i, analog, adugm la fiecare element din (D1) pe An+1 acolo


unde este necesar, obinnd o alt demonstraie prin rezoluie, notat
(D1) (odat An+1 respectiv An+1 introduse, ele nu vor mai fi terse).
Sunt posibile urmtoarele situaii:

Mai exist posibilitatea ca nesatisfiabilitatea lui F s fi provenit din

faptul c S(C) = 0 pentru o clauz C F care conine neaprat An+1,


A n +1

restul clauzelor lui F, ca i cele ale lui F0

(D1) rmne Bt = Bt =

A n +1

este absurd, F fiind nesatisfiabil. Rezult c F0


An 1
1

Se procedeaz similar pentru F

este nesatisfiabil.

. (q. e. d.)

i Bt = Bt =

demonstraiile (D0) i (D1), rezultnd evident o respingere

lucru nseamn c n aceast structur avem S(An+1) = 1. S considerm

pus pe 0. Conform celor de mai sus, avem imediat S(F) =1, ceea ce

(sau invers, Cl = Cl =

{An+1}). Atunci concatenm cele dou liste care reprezint

, fiind adevrate n S. Acest

structura S care coincide cu S, exceptnd valoarea lui An+1, care este

Ultima clauz a lui (D0) este Cl = {An+1} i ultima clauz a lui

pornind cu clauzele lui F.

Ultima clauz lui (D0) este Cl = {An+1}i ultima clauz a lui


(D1) este Bt = {An+1}. Atunci concatenm din nou cele dou
liste i apoi mai facem un pas de rezoluie obinnd clauza final
C = Res(Cl, Bt) = . Din nou avem o respingere pornind cu
clauzele lui F.

A n +1

n acest moment tim c formulele F0

An 1

i F1

sunt nesatisfiabile i,

n ambele situaii, conform Teoremei 2.11, rezult c

Res*(F).

mai mult, sunt construite peste cel mult n variabile. Aplicnd ipoteza
inductiv pentru aceste formule rezult c
An 1

Res*( F1

A n +1

Res*( F0

) i

). Conform Teoremelor 2.11 i 2.13, exist o respingere

(D0) C1, C2, , Cl =

A n +1
0

, pornind cu elementele lui F

, precum i o

n urma acestui rezultat, putem concluziona c exist algoritmi


sintactici pentru a testa nesatisfiabilitatea formulelor din logica
propoziional,

ei

rmnnd

(din

pcate,

dar

nesurprinztor)

exponeniali ca timp de execuie. Lucrrile [MAS4] i [MAS5] pot fi


consultate pentru alte detalii legate de complexitatea rezoluiei. S

105

Fundamentele logice ale Informaticii

106

Cristian Masalagiu

remarcm i faptul c testarea satisfiabilitii nu implic nimic special

rezolveni sunt totui exclui, deoarece reprezint tautologii). Teorema

Res*(F)), ca de altfel nici

rezoluiei sugereaz crearea mai nti a acestui graf de rezoluie total i

(n acest caz, condiia de verificat va fi

testarea validitii (F este valid dac i numai dac F este

apoi parcurgerea lui pentru a vedea dac

contradicie; prin urmare, putem aplica Teorema 2.14 lui F). A testa

graf. Teorema 2.11 ne indic faptul c este suficient s gsim o

dac o formul F este satisfiabil dar nevalid impune ns aplicarea

respingere n loc de a creea i apoi parcurge ntregul graf. Rafinrile se

teoremei anterioare att pentru F (F este satisfiabil dac

Res*(F))

este (eticheta unui) nod n

mpart n dou mari categorii: strategii i restricii.

Res*( F)). Singura ans

Strategiile nu restrng, n general, spaiul de cutare (adic

(orict de puin probabil ar prea) de a gsi algoritmi performani

graful total) dar folosesc anumite informaii suplimentare despre

rmne aceea de a cuta subclase ale lui LP suficient de interesante

clauze, astfel nct s creasc ansele pentru selectarea rapid a unei

din punct de vedere practic, pentru care asemenea algoritmi s existe

demonstraii cutate, adic a unui cel mai scurt drum pornind de la

(avem deja un exemplu: clasa formulelor Horn). Avantajul n acest

frunze (elementele lui F), ctre o rdcin (clauza vid). Astfel, cel

moment este c aceste subclase pot fi selecionate inndu-se cont

puin la modul ideal, graful total nu se construiete n ntregime, ci

(numai) de motivaii sintactice.

doar acele poriuni din el (ct mai puine i ct mai mici), care este

ct i pentru F ( F este satisfiabil dac

posibil s conin mcar o respingere. Cel mai cunoscut exemplu

8. Rafinri ale rezoluiei: strategii i restricii


Rafinrile rezoluiei sunt metode prin care se urmrete
obinerea clauzei vide (dac acest lucru este posibil) ntr-un numr ct
mai mic de pai de rezoluie. Pornind cu formula F = {C1, C2, , Cn}
(aflat n FNC i scris ca o mulime de clauze, la rndul lor clauzele
fiind scrise ca mulimi de literali), se poate construi efectiv mulimea
Res*(F), care poate fi reprezentat (fiind finit), dup cum deja tim, ca
un graf neorientat (nodurile sunt rezolvenii succesivi, inclusiv clauzele
iniiale, iar muchiile sunt introduse prin rezoluiile ntr-un pas aplicate).
Practic, acest graf ar trebui s cumuleze toate posibilele demonstraii
prin rezoluie care pornesc cu clauzele lui F (reamintim c anumii

este strategia unitar, n care se recomand ca la fiecare pas al


rezoluiei mcar una dintre clauze s conin un singur literal (dac
ns nu mai poate fi aleas nici o asemenea clauz unitar, se continu
procesul de obinere de noi rezolveni n mod obinuit). Prin urmare,
strategiile nu distrug completitudinea rezoluiei (dac o formul este
nesatisfiabil, atunci se poate demonstra acest lucru prin rezoluie,
gsindu-se o respingere), dar, n cel mai ru caz, este posibil s nu
conduc la nici o economie de timp.
Pe de alt parte, restriciile distrug n multe situaii
completitudinea rezoluiei (exist formule nesatisfiabile pentru care nu
se pot gsi respingeri, n situaia n care paii de rezoluie sunt supui
unor condiii prea restrictive), deoarece spaiul de cutare este practic

Fundamentele logice ale Informaticii

107

108

Cristian Masalagiu

micorat ntr-un mod, s-i spunem, abuziv. Astfel, o anumit restricie

SLD-rezoluia se utilizeaz cu succes pentru clauzele Horn (alte detalii

poate interzice total folosirea (ntr-un pas de rezoluie) a unor clauze

sunt n Capitolul 5). n acest caz, ea va fi att o rezoluie liniar ct i

avnd o anumit form sintactic. Restriciile rmn ns complete

una de intrare (a se vedea mai jos). Astfel, putem considera c F este

pentru anumite subclase de formule propoziionale. Exist mai multe

partiionat n F1 = {C1, C2, ... , Cm}, care sunt clauze Horn pozitive

exemple importante de restricii, cteva dintre ele fiind trecute n

(doar acestea numindu-se aici clauze definite, program, etc.) i

continuare n revist.

F2 = {N1, N2, ... , Ns}, care sunt clauze Horn negative (numite i clauze
scop). Pentru a obine o SLD-rezoluie, clauza de baz este o clauz

Rezoluia pozitiv (P-rezoluia). La fiecare pas al rezoluiei (al unei

scop, iar clauzele suplimentare trebuie s fie clauze pozitive (practic,

demonstraii prin rezoluie), mcar una dintre clauze trebuie s fie o

elemente ale lui F1, pentru c toi rezolvenii obinui pe parcurs sunt

clauz pozitiv.

clauze negative).

Rezoluia negativ (N-rezoluia). La fiecare pas al rezoluiei mcar una


dintre clauze se cere s fie negativ.

Exemplu. S se gseasc o respingere liniar bazat pe C = {A, B} i

Rezoluia liniar bazat pe o clauz iniial . Fie F LP,

pornind cu F = { {A, B}, { A, B}, { A, B}}. n cele de mai jos (sunt

F = {C1, C2, , Cn} o mulime de clauze (numite i clauze de intrare)

reprezentai doi arbori de rezoluie distinci), n stnga avem ceea ce am

i o clauz fixat C F (numit clauz iniial sau clauz de baz). O

cerut, iar n dreapta o respingere oarecare, aceasta din urm fiind mai

rezoluie liniar bazat pe C este o (demonstraie prin) rezoluie n care

scurt.

la fiecare pas se aleg spre a fi rezolvate dou clauze C1 i C2, dintre care
C1 este rezolventul pasului anterior, iar C2 (clauza suplimentar,
definit, exact, precis, de program) este fie o clauz de intrare, fie un
rezolvent obinut anterior n demonstraie. La primul pas, avem C1 = C
i C2 F. n particular, se poate introduce n plus o funcie de selecie
pentru clauzele definite, adic o modalitate precis (bazat pe eventuale
informaii suplimentare, sau pe forma sintactic a clauzelor) de alegere
a clauzelor de tip C2. Obinem astfel aa-numita SLD-rezoluie
(rezoluie Liniar cu funcie de Selecie pentru clauzele Definite).

109

Fundamentele logice ale Informaticii

110

Cristian Masalagiu

cu unu). Astfel, se poate modela o situaie real n care dispunem de o


{A,B}

{A, B} {A,B}
B

{A,B} {A,B}
B

{A,B}
B

anumit baz de cunotine, exprimat printr-o mulime satisfiabil de


formule F = {F1, F2, ... , Fn}, noi dorind s aflm dac o alt afirmaie,
exprimat, s zicem, prin formula G, este consecin semantic din F.
Conform Teoremei 2.3, acest lucru este echivalent cu a arta c

{A}

{A,B}

{A}

{A}
A

{B}

F = {F1, F2, ... , Fn, G} este nesatisfiabil, ceea ce se poate face


utiliznd rezoluia, dup ce toate formulele lui F sunt aduse la FNC
(atunci mulimea suport T va fi constituit din formulele G1, G2, ... , Gk,
adic din reprezentarea formulei G ca mulime de clauze).

{A,B}

Rezoluia de intrare. n orice pas al acestui tip de rezoluie, mcar una


B

dintre clauze trebuie s fie o clauz de intrare (adic din mulimea


iniial F). Se observ imediat c acest tip de rezoluie poate fi

{A}

{A}

considerat i ca o rezoluie liniar, bazat pe (oricare) C F.


Rezoluia unitar . ntr-o demonstraie de acest tip, orice rezolvent

poate fi obinut doar dac (aici este diferena fa de strategia cu


acelai nume) mcar una dintre cele dou clauze este alctuit dintr-un

unic literal. Deoarece lungimea (numrul de literali ai) unui rezolvent


scade cu o unitate la aplicarea oricrui pas de rezoluie, ansele de a

Rezoluia bazat pe o mulime suport. Se pornete cu formula F,

obine repede clauza vid sunt suficient de mari.

precum i cu mulimea suport T F, singura condiie fiind c F \ T

Teorema urmtoare o dm fr demonstraie deoarece este

trebuie s fie satisfiabil (desigur c, n principiu, acest lucru trebuie s

important pentru anumite detalii legate de implementrile programelor

fie cunoscut aprioric i nu dup aplicarea unuia dintre algoritmii deja

logice, detalii care nu sunt tratate nici mcar n Capitolul 5.

descrii, care folosesc tot rezoluia). O demonstraie din F folosind


(bazat pe) T satisface cerina c n fiecare pas de rezoluie mcar una

Teorema 2.16. P-rezoluia, N-rezoluia, rezoluia liniar i rezoluia

dintre clauze trebuie s nu aparin lui F \ T (situaie foarte

bazat pe o mulime suport sunt complete. Rezoluia unitar, rezoluia

convenabil dac numrul de elemente din T este mic, preferabil egal

Fundamentele logice ale Informaticii

111

112

Cristian Masalagiu

de intrare i SLD-rezoluia sunt complete doar pentru clasa formulelor

formuleleor din LP), despre care am artat c este decidabil dar de

Horn.

complexitate (timp) exponenial. Primii algoritmi descrii erau


bazai pe semantic. Din punctul de vedere al tratrii automate (cu

9. Recapitulare i Index

ajutorul unui calculator) a problemei SAT, sunt mai convenabili

n acest capitol am introdus sintaxa i semantica formal a

algoritmii de decizie bazai pe sintax, dei acetia nu sunt mai rapizi,

unui limbaj logic, privit n sensul unei mulimi de formule. Acestea

la nivel global. Am prezentat un asemeanea algoritm (Teoremele 2.11,

reprezint, ntr-un mod precis, cunotinele noastre despre anumite pri

2.13, 2.14), care folosete conceptul de rezoluie (propoziional).

ale realitii. Sunt transpuse ntr-o form exact conceptele i principiile

Dei metoda rezoluiei nu aduce mbuntiri semnificative ale timpului

principale ale logicii aristotelice, printre care bivalena/tertium non

necesar pentru rezolvarea SAT (n sensul teoriei generale a

datur i extensionalitatea. Sintactic, mulimea formulelor logicii

complexitii i pentru ntreaga clas LP), s-au putut pune n eviden

propoziionale notat LP poate fi definit constructiv, pornind de la

strategii i restricii ale rezoluiei, care mresc ansele gsirii rapide a

o mulime numrabil de formule atomice i utiliznd conectorii logici

rspunsului, precum i subclase de formule pentru care problema poate

i, sau, non, eventual i implic. O formul poate fi recunoscut fr

fi rezolvat n timp liniar (cum ar fi clasa formulelor Horn, pentru

dubii (problema apartenenei unui ir finit de caractere la LP este

care putem aplica att algoritmul de marcare, ct i o variant

decidabil) i poate fi reprezentat ca un arbore. Exist i reprezentri

convenabil de implementare a SLD-rezoluiei). Se poate argumenta

standard ale formulelor, prin forme normale. Semantica unei formule

c mulimea LP este prea simpl n privina puterii de a reprezenta

este o valoare de adevr (0 adevrat, 1 fals), valoare care se

lumea real i n consecin nu merit atenie special. Este adevrat c

determin tot ntr-un mod standard. Aceast valoare este unic, odat

LP poate fi inclus n mulimea de formule a calculului cu predicate

ce este cunoscut o structur corect, adic o asignare pentru formulele

de ordinul I (care va constitui obiectul de studiu al urmtorului

atomice componente. Definiia semanticii se bazeaz i pe rezultatele

capitol), dar am considerat ca benefic introducerea i prezentarea ei

cunoscute despre funciile booleene. Am evideniat apoi clasele de

separat, din motive didactice. De altfel, dei destul de restrictiv, LP

formule satisfiabile, valide i nesatisfiabile, introducndu-se i

este suficient de bogat pentru a putea exprima (i deci, studia

studiindu-se alte concepte de natur semantic, cum ar fi cele de

formal) afirmaii intreresante privind lumea real. Urmrind exemplul

echivalen (slab, tare) sau de consecin semantic. Problema cea mai

de mai jos, vom nelege poate mai uor/mai exact coninutul de pn n

important de care ne-am ocupat a fost problema SAT (a satisfiabilitii

prezent al crii.

Fundamentele logice ale Informaticii

113

114

Cristian Masalagiu

Exemplu. Fie urmtoarea afirmaie:

F = (F1 F2) F3, unde F1 = P (E G), F2 = P E i

Dac exist petrol n Patagonia atunci fie experii au dreptate, fie

F3 = G, adic:

guvernul minte. Nu exist petrol n Patagonia sau experii greesc,

F = ((P (E G)) ( P E)) G.

aadar guvernul nu minte.

S determinm formal valoarea de adevr a lui F.

O prim ntrebare ar fi: Formuleaz ea un adev r?

Metoda 1 (ncercm s folosim algoritmul de marcare). Pentru

Logica ne ofer o modalitate de a rpunde la ntrebare ct mai exact.

aceasta, F ar trebui s fie tare echivalent cu o formul Horn:

Ideea este de a exprima afirmaia anterioar, ct mai adecvat, ca o

formul F din LP i apoi de a vedea dac formula respectiv este


satisfiabil, valid sau contradicie, pentru a putea trage concluziile de

(definiia implicaiei)
(( P E G ) ( P E )) G

rigoare. Pentru aceasta, vom izola urmtoarele propoziii, pe care le


vom privi drept variabile (elemente din A):

(de Morgan)
( P E G ) ( P E) G

P - Exist petrol n Patagonia

(dubla negaie,

E - Experii au dreptate

asociativitate)

G - Guvernul minte

(P E G) ( (P E) G)

nainte de a concepe formula, ar trebui ca afirmaia s fie rescris, tot n


limbaj natural, astfel nct s transpar mai clar ceea ce vrea s

(distributivitate)
(P E G) ((P G) (E G))

exprime. n continuare, 1., 2. i 3. sintetizez cunotinele prezente n

(distributivitate,

afirmaie:
1. Dac exist petrol n Patagonia atunci, sau experii au
dreptate, sau guvernul minte (F1) i
2. Nu exist petrol n Patagonia sau experii greesc (F2),
nafar de aceste ipoteze, exist i o concluzie:
3. Aadar guvernul nu minte (F3).
Formula noastr ar putea fi deci:

idempoten)
(P G) (P E G) ( E P G) ( E E G)
( G P) ( G E)
(legea tautologiei,
idempoten,
comutativitate)

115

Fundamentele logice ale Informaticii

116

(P G) (P G E) (P G E) ( G E)

Cristian Masalagiu

PG

EG

(asociativitate,

distributivitate)

idempoten,

comutativitate)

(P G) (E G).

Prin urmare, F poate fi considerat ca fiind formula Horn

(P G) ((P G) (E E)) ( G E)
(legea contradiciei,

{G P, G E} i, printr-o aplicare imediat a Algoritmului Horn,


obinem

este

satisfiabil

(asignarea

S fiind dat de

S(P) = S(E) = S(G) = 0). Este ns F valid? Pentru aceasta putem


cerceta dac F este contradicie. Obinem ns imediat (folosind legile
lui

de

Morgan,

distributivitatea

idempotena)

F ( P E) ( P G) (G E) G, adic, n reprezentarea cu

Se observ din nou c formula este satisfiabil, nevalid, dar acum


avem i valorile lui F pentru toate structurile posibile. Penultima linie
de exemplu, se poate rescrie n limbaj natural ca Afirmaia Dac
exist petrol n Patagonia, experii au dreptate i guvernul nu minte
este adevrat. S reinem ns deosebirea esenial dintre afirmaiile
din limbaj natural i cele din limbajul formal ales (LP). n limbajul

mulimi gsim c F = {P E 0, P G, E G, 1 G}. Aplicarea

natural afirmaia elementar P (adic, de fapt, Exist petrol n

Algoritmului Horn conduce la marcarea doar a lui G i la rspunsul

Patagonia) este considerat ad literam, mpreun cu semantica sa

c F este tot satisfiabil. n concluzie, F este satisfiabil dar

(adic se accept cumva intuitiv i implicit, ca fiind un adevr: n

nevalid, ceea ce poate apare ca un fapt ciudat dac ne-am fi luat dup

Patagonia exist petrol), pe cnd n LP, P este un simplu nume

forma iniial a afirmaiei n limbaj natural. Dac am cunoate toate

sintactic de variabil , care semantic poate avea orice valoare de

structurile care sunt model pentru F, acest lucru ar deveni poate

adev r.

explicabil. Aplicarea metodei urmtoare poate fi o soluie.

Metoda 3 (a rezoluiei). Pornim din nou cu forma mai simpl

Metoda 2 (a tabelelor de adevr). tim deja c F(P G)(E G),

F (P G) (E G) i dorim s vedem dac F este nesatisfiabil,

de aceea nu vom folosi forma iniial, care este mai complicat. Avem:

utiliznd rezoluia. Prin urmare, F = {{P, G}, {E, G}} i practic se

117

Fundamentele logice ale Informaticii

118

Cristian Masalagiu

Res*(F), adic F este satisfiabil.

pn acum, ns doar n metalimbaj. S-ar ajunge atunci la ceva de

Lsm pe seama cititorului s arate, folosind tot aceast metod, c F

forma (presupunnd c relaia iniial este deja exprimat ca fiind o

este nevalid.

mulime de perechi de tipul <x, f(x)>):

gsete imediat c Res*(F) = F,

F = (x)(y)(f(x) = y) (x)(y)(z)(f(x) = y f(x) = z y =z),


Nu am avea acelai succes dac am dori s exprimm

lucru care ar permite pstrarea tuturor principiilor logicii aristotelice,

convenabil n LP o afirmaie ca: O relaie binar f A B este

iar puterea de exprimare direct a limbajului este clar mai mare

funcie atunci i numai atunci cnd pentru fiecare element a A, dac

(F LP, dar poate aparine unei supramulimi alese corespunztor).

exist b1, b2 B cu f(a) = b1 i f(a) = b2, rezult b 1 = b2. Am putea

Atuci va exista ntr-adevr posibilitatea de a lucra cu afirmaii

ncerca ceva de genul (ncepem tot cu delimitarea subformulelor

elementare cu semnificaie clar, de a avea o semantic explicit pentru

atomice):

cuantificatori, de a exprima direct relaii (cum ar fi relaia de egalitate),

D: f A B este o relaie binar.

sau, dac se dorete neaprat, relaia de apartenen a unor obiecte la

E: A este o submulime a lui A format din toi a A pentru

anumite mulimi, etc. Capitolul 3 este destinat studiului unei extensii

care exist mcar dou elemente distincte b1, b 2 B, care

posibile a lui LP i anume LP1, logica (calculul) cu predicate de

satisfac f(a) = b1 i f(a) = b 2, sau, pentru care nu exist nici un

ordinul I.

element b B castfel nct f(a) = b1.

H: A A este vid, A fiind cea de mai sus.

G: relaia f A B este funcie, f fiind cea de mai sus, n alt


notaie.

Atunci formula F LP va fi F = (D E H) G i va exprima


cumva afirmaia iniial. Sunt ns numeroase inconveniente, printre
care: variabilele propoziionale nu prea sunt elementare (indivizibile,
cu valoare clar de adevr); se amestec prea mult sintaxa cu
semantica; nafar de valorile 0 i 1 parc ar mai trebui ceva, etc.
Soluia ar fi s putem exprima direct n limbajul formal
cuantificatorii (pentru orice, exist), aa cum de altfel am i f cut

Indexul termenilor importani:

inferene valide, 42
sfera i coninutul unei noiuni, 43
diferen specific, 43
definiii operaionale, 43
paradoxuri, 45
silogisme, 47
conectori logici (non, i, sau, implic, echivalen), 48
inferene ipotetico-categorice, 49
modus ponens, modus tollens, 50

Fundamentele logice ale Informaticii

119

120

Cristian Masalagiu

formule propoziionale, 53

rezoluia liniar bazat pe o clauz iniial, SLD-rezoluia, 106

variabile propoziionale, 53

rezoluia bazat pe o mulime suport, 108

formule atomice, 54

rezoluia de intrare, 109

arbore ataat unei formule, 55


subformul, 56

10. Exerciii

problem de decizie, 57

1. Rezolvai Exerciiul 2.1.

literali (pozitivi, negativi), 59

2. Rezolvai Exerciiul 2.2.

clauze, clauze pozitive, clauze negative, 59

3. Rezolvai Exerciiul 2.3.

clauze Horn, clauze Horn pozitive, 59

4. Rezolvai Exerciiul 2.4.

asignare, interpretare, structur, 60

5. Completai demonstraia Teoremei 2.1.

structur complet, 62

6. Rezolvai Exerciiul 2.5.

formule satisfiabile (model), valide (tautologii), 63

7. Artai c n LP exist formule satisfiabile (dar nevalide),

formule nesatisfiabile (contradicii), 63


formule tare i slab echivalente, 64

formule valide, contradicii.


8. Artai c sunt adevrate afirmaiile:

consecin semantic, 65

(a) i s sunt relaii de echivalen pe LP.

forme normale (disjunctive, conjunctive), 71

(b) este compatibil la dreapta i la stnga cu , i

clauza vid, 80

compatibil cu .

forma implicaional a clauzelor Horn, 80

(c) LP = < LP/, , , > formeaz o algebr boolean.

rezolvent, arbore de rezoluie, 87


rezoluie ntr-un pas, 87
demonstraie prin rezoluie, 90
respingere, 91
mulimea rezolvenilor unei mulimi de clauze, 93
rafinri, restricii i strategii ale rezoluiei, 104
strategia unitar, 105
rezoluia pozitiv, rezoluia negativ, 106

(d) ntre LP i B = < B, , +, > exist mcar un homomorfism


de algebre booleene.
9. Completai demonstraia Teoremei 2.4.
10. S se aplice Algoritmul Horn formulei:
F = ( B D) E C B ( B D B).
11. S se exprime ca formul n LP i s se studieze satisfiabilitatea
afirmaiei: Vom ctiga alegerile n condiiile n care Popescu

Fundamentele logice ale Informaticii

121

122

Cristian Masalagiu

va fi liderul Partidului. Dac Popescu nu este ales liderul

(c) Dac F G este valid i F este satisfiabil, atunci G este

Partidului, atunci fie Ionescu fie Rdulescu va prsi partidul i

satisfiabil.

vom pierde alegerile.


12. Se d formula:

18. Folosind cele menionate despre necesitatea de a utiliza un


limbaj mai complex pentru reprezentarea realitii prin formule,

F = ((A1 A3) (A2 A4)) ((A1 A2) (A2 A4)).

gsii o formul F care s conin un simbol funcional f de

S se elimine conectorii care apar n F i apoi s se elimine

aritate 1 i care s exprime faptul c f este funcie injectiv i

ct mai multe paranteze (fr a schimba semantica formulei),

surjectiv.

inndu-se cont de prioritile atribuite operatorilor , , ,


precum i de alte proprieti ale acestor operatori.
13. S se gseasc o respingere (dac exist) pornind cu clauzele:
F = {{A, B, C}, {B, C}, { A, C}, {B, C}, { C}}.
14. Artai c formula:
F = ( B C D) ( B D) (C D) B
este tautologie, folosind metoda rezoluiei.
15. Artai c formula G = (A B C) este consecin semantic
din mulimea de formule G = { A B, B C, A C,
A B C} folosind metoda rezoluiei.
16. Mulimea infinit de formule M = {A1 A2, A2 A3,
A3 A4, A4 A5, ... } este satisfiabil?
17. Demonstrai adevrul sau falsitatea urmtoarelor afirmaii
(exist i alte variante, pe care le putei deduce singuri):
(a) Dac F G este valid i F este valid, atunci G este valid.
(b) Dac F G este satisfiabil i F este satisfiabil, atunci G
este satisfiabil.

19. Fie formula F LP, F = ( ((A B) C)), A, B, C A. S se


gseasc arborele care descrie formula i, simultan, o FNC i o
FND pentru F (conform algoritmului recursiv sugerat de
demonstraia Teoremei 2.6).

124

Capitolul 3

Cristian Masalagiu

ncepe cu anumite transformri de natur sintactic. Mai precis,

Logica (calculul) cu predicate de ordinul I


Dup cum am punctat n finalul Capitolului 2, suntem nevoii
s extindem limbajul (logica) folosit() pn n prezent, dei rezultatele
privind complexitatea (timp) a algoritmilor de testare a satisfiabilitii

pentru a construi mulimea de formule a logicii cu predicate de ordinul


I, LP1, vom porni cu urmtoarele mulimi de simboluri:

X = {x1, x2, }: o mulime cel mult numrabil de variabile


funcionale, sau, pe scurt, variabile.

P = {P0, P1, }: o mulime cel mult numrabil de simboluri


predicative (sau predicate, sau relaii), cu ariti. La rndul

formulelor LP sunt deja descurajatoare. Principalul argument este acela


c lumea real nu poate fi modelat satisfctor i simplu prin

su, fiecare Pi este o mulime cel mult numrabil de predicate

formule logice care utilizeaz doar variabile propoziionale i

de aritate i (i N). Elementele lui P0 se mai numesc i

conectori. De aceea principala modificare va fi de natur sintactic,

variabile predicative.

manifestat prin adugarea cuantificatorilor logici (exist i pentru


orice),

mpreun

cu

introducerea

F = {F0, F1, ...}: o mulime cel mult numrabil de simboluri

constantelor,

funcionale (sau funcii) cu ariti, fiecare Fi fiind o mulime

simbolurilor funcionale (de aritate mai mare dect unu) i a

cel mult numrabil de funcii de aritate i (i N). Elementele

simbolurilor predicative. Din acest punct de vedere, limbajul logicii cu

lui F0 se numesc i constante (funcionale).

variabilelor,

predicate de ordinul I va conduce sintactic la o mulime de formule,

notat LP1, care va include strict clasa LP. Semantica pentru LP1 va fi

la care se pot aduga, opional, i alte simboluri cum ar fi ,

mai complex, avnd ns la baz acelai concept de structur


(asignare, interpretare) i fiind consistent cu semantica LP. De
altfel, pentru LP1, dac nu vom folosi concepte prezentate n mod
explicit ca fiind noi, toate notaiile, noiunile, rezultatele, etc., vor fi
identice cu cele introduse pentru LP.

C1 = {, , }: o mulime de conectori logici (conective logice),


, etc.

C2 = {(x) | x X} U {( x) | x X}: o mulime de


cuantificatori (cuantori), universali, respectiv existeniali
((x) se citete pentru fiecare x, sau pentru oricare (orice)
x, iar ( x) exist x, exist mcar un x, etc.). Pentru

1. Sintaxa logicii cu predicate de ordinul I


Prin urmare, pentru

a mri puterea de exprimare, n sensul

informal precizat deja, a logicii folosite pn n prezent (LP), vom

nceput este suficient s considerm doar cuantorii universali.

Fundamentele logice ale Informaticii

125

Ca i n cazul LP, vom porni cu alfabetul total, adic reuniunea


mulimilor precedente, mpreun cu parantezele rotunde i virgula (pe

126

Cristian Masalagiu

pot fi considerate ca fiind operatori pe iruri de caractere, de aritate 1


sau 2).

scurt, P):

i0

i 0

Alf = X U ( Pi ) U ( Fi ) U C1 U C2 U P

i0

i 0

Definiia 3.1 (sintaxa LP1). Fie Alf alfabetul fixat anterior. Atunci
mulimea formulelor calculului cu predicate de ordinul I, LP1 Alf,

Mulimile Pi i Fi vor fi notate tot cu P respectiv F, atunci cnd

este dat constructiv prin:

nu exist confuzii.

Baza. Se definete mulimea formulelor atomice, notat cu At, prin:


(i)

Po At (variabilele predicative sunt formule atomice).

Observaie. Prin o mulime cel mult numrabil nelegem o

(ii) Pentru fiecare n N*, pentru fiecare P Pn, pentru fiecare

mulime numrabil, finit sau vid. Intuitiv, variabilele funcionale

t1, t2, , tn T, avem P(t1, t2, , tn) At.

notate x vor fi nume generice pentru elementele dintr-un anumit

(iii) Nimic altceva nu mai este formul atomic.

domeniu, care va fi fixat ulterior (prin intermediul funciei semantice).


Un simbol predicativ P de aritate i reprezint o relaie i-ar
neprecizat, adic este un nume generic pentru orice funcie cu i

n cele de mai sus, T denot mulimea termilor (funcionali), care este


la rndul ei definit constructiv astfel:
Baza. X T i Fo T (variabilele i constantele sunt termi).

argumente peste acelai domeniu, codomeniul fiind {a, f}, sau B (ntr-o

Pas constructiv. Pentru fiecare n N*, pentru fiecare f Fn,

interpretare vom avea P(<a1, a2, ... ai>) = 1 dac i numai dac

pentru fiecare t1, t2, , t n T, avem f(t1, t2, , t n) T.

elementele a1, a2, ..., ai sunt n relaia numit P). Similar, un simbol
funcional f Fi, este numele generic al oricrei funcii de i argumente,

Concluzionm aceast etap a definiiei prin a spune c At LP1

peste acelai domeniu i codomeniu. Pentru parantezele utilizate n

(formulele atomice sunt formule).

scrierea cuantificatorilor ar trebui de fapt folosit un alt font (ca de altfel

Pas constructiv. Continum definirea lui LP1Alf cu partea formule

i pentru virgul).

vechi din formule noi.


(i)

Mulimea formulelor, LP1Alf (indicele va fi pus n eviden doar


atunci cnd lipsa sa ar putea genera confuzii) va fi definit structural,
analog cu cazul LP (elemente mulimilor C1, C2, P, exceptnd virgula,

Dac F LP1 atunci ( F) LP1.

(ii) Dac F1, F2 LP1 atunci ( F1 F2 ), ( F1 F2 ) LP1 (dac


dorim, putem introduce i (F1 F2), ( F1 F2 ) LP1, etc.).

127

Fundamentele logice ale Informaticii

128

Cristian Masalagiu

(iii) Dac F LP1 atunci (x)(F) LP1 (dac dorim, punem i

( x)(F) LP1), pentru fiecare x X .


Arb(t1)

Ca i n cazul LP, se definesc constructiv subf(F), mulimea

Arb(tn)

subformulelor formulei F, i Arb(F), arborele ataat lui F (cuantorii


sunt operatori de aritate 1). Singura subformul a unei formule atomice

tiind Arb(t) pentru fiecare t T, putem acum construi Arb(F) pentru

este ea nsi i Arb(F) va fi constituit n acest caz dintr-un simplu nod.

fiecare F At, dup cum urmeaz.

Un term poate fi, la rndul su, privit ca un arbore (ca de altfel i orice
formul atomic), astfel nct arborele unei formule poate fi detaliat,

(i)

Dac P P0, atunci Arb(P) este:

dac nlocuim fiecare nod corespunztor unui term cu arborele ataat


acestuia (similar pentru o subformul atomic). n definiia precedent
considerm ca am pus implicit i (desigur c urmeaz Nimic altceva nu
mai este formul);

(ii) Fie n N*, Q Pn, t1, t2, , tn T astfel nct


P = Q(t1, t2, , tn) i s presupunem c sunt cunoscui
Arb(t1), Arb(t2), , Arb(tn). Atunci Arb(P) va fi:

(iv) Dac F LP1 atunci (F) LP1.

Q
Definiia 3.2 (arborele ataat unui term i unei formule atomice).
Conform definiiei anterioare, arborele ataat unui term t T, notat
Arb(t1)

Arb(t), poate fi dat constructiv prin:


Baza. Dac t = c F0, atunci Arb(t) este:

Arb(tn)

n sfrit, fie F o formul oarecare. Ea poate avea una din formele:


(F1), (F1 F2), (Arb((F1 F2)) este similar cu cel pentru ) (x)(F1)

Dac t = x X, atunci Arb(t) este:

(similar, (x)(F1)), sau (F1) (Arb(F1) coincide cu Arb((F1)), lipsind


doar nodul etichetat cu ), unde F1, F2 sunt tot formule (oarecare).

Pas constructiv. Fie n N*, f Fn, t1, t2, , tn T, astfel nct


t = f(t1, t2, , tn). S presupunem c tim arborii ataai termilor
t1, t2, , tn, adic Arb(t1), Arb(t2), , Arb(tn). Atunci Arb(t) va fi:

Arborele ataat lui F va avea n consecin una dintre formele:

129

Fundamentele logice ale Informaticii

130

Cristian Masalagiu

n cazul lui subf(F), poate este bine s subliniem faptul c


()

(x)

()

subf((x)(F1)) = {(x)(F)} U {(F)} U subf(F1), n rest nefiind diferene


eseniale fa de cazul LP.

()

Definiia 3.3 (apariii libere i legate ale variabilelor). Fie F LP1


i x X, astfel nct x apare n F, la o poziie oarecare j (n sens textual,
stnga/dreapta, ca liter ntr-un cuvnt, apariia menionat nefiind

Arb(F1)

Arb(F1)

Arb(F2)

Arb(F1)

parte a numelui unui cuantificator (x) sau (x)). Apariia fixat a lui x
se numete legat dac este ntr-o parte (subformul) G a unei (alte)

subformule a lui F de forma G1 = (x)(G) (sau (x)(G)). n restul


cazurilor, apariia considerat se numete liber.

Observaie. i arborele pentru implic, echivalent, etc. este similar cu


cel pentru i. Dup cum se poate vedea, parantezele folosite la
construcia termilor i a formulelor atomice nu apar explicit, la fel cum
parantezele pentru cuantificatori sunt considerate ca fcnd parte din
numele acestora. Ideea este c dac se cunosc aritile simbolurilor
funcionale i predicative i dac impunem n plus ca toate mulimile de

S mai punctm o dat faptul c folosind reprezentarea


formulelor ca arbori (precum i o definiie corespunztoare a noiunii
de arbore), orice apariie a unei variabile ntr-o formul poate fi definit
formal ntr-un mod simplu (conform exemplelor i exerciiilor). Vom
nota, pentru fiecare F LP1, cu free(F) - mulimea variabilelor care au

simboluri distincte care apar n Alf s fie disjuncte, atunci putem scrie

apariii libere n F, i cu leg(F) mulimea variabilelor care au apariii

Pt1t2...tn n loc de P(t1, t2, ..., tn), adic putem elimina de tot aceste

legate n F. Desigur c pentru fiecare x X, este posibil ca x s nu

paranteze (care oricum trebuiau s aib alt font dect cele din P). i n

apar n F, s aib doar apariii libere, doar apariii legate, sau i apariii

cazul cuantificatorilor, n loc de (x)(F) putem scrie x(F). Astfel,

libere i apariii legate. Putem nota cu var(F) = free(F) U leg(F). O

putem conveni c singurele paranteze care merit a fi luate n

situaie nenatural din punct de vedere semantic, dar posibil sintactic,

considerare atunci cnd apar ntr-o formul sunt cele din P.

este aceea n care o variabil x nu apare de loc n F (n sensul


considerat), dar este prezent ca nume al unui cuantificator. Vom

131

Fundamentele logice ale Informaticii

132

Cristian Masalagiu

conveni s notm mulimea acestor variabile cu restvar(F) i s

De obicei, se utilizeaz doar substituii permise pentru o formul

includem i aceast mulime n var(F).

F LP1 dat. Substituia elementar [x/t] este permis pentru F (sau,


F accept [x/t]) dac t nu conine variabile libere care au apariii

Exerciiul 3.1. Definii constructiv leg(F) i free(F).

legate n F (s de mai sus va fi permis pentru F dac va fi permis

Definiia 3.4 (nchideri). O formul F LP1 se numete nchis dac

pentru fiecare component a sa, [xi/ti], i [n]). Ordinea (fixat deja

nu conine apariii libere de variabile (altfel spus, free(F) = ). Pentru

prin modul de scriere) aplicrii substituiilor elementare dintr-o

formula

formula

substituie s este esenial n majoritatea cazurilor. O substituie s este

(x1)((x2)( ((xk)(F)) ... ) (notat, pentru simplitate i cu (*)(F)

normalizat (pentru F) dac ordinea de aplicare a substituiilor

sau chiar (F)), unde {x1, x2, , xk} = free(F). Analog (nlocuind cu

elementare componente nu conteaz. Mai precis, s este normalizat

) se definete (noteaz) nchiderea existenial a lui F. Se va numi

dac avem (F)s = (F)s, pentru fiecare s care este obinut din s printr-

matricea lui F (notat F*) acea formul obinut din F prin tergerea

o permutare a componentelor acesteia. Substituia vid (ca element

(sintactic, textual) a tuturor cuantificatorilor (x) i (x). O formul

neutru al lui S*), notat [], nu face desigur nici o transformare n

care nu este nchis, se numete deschis (o formul n care var(F) =

formula F creia i este aplicat, adic avem (F)[] = F.

F,

se

numete

nchiderea

sa

universal

se consider a fi nchis).
Exerciiul 3.2. Artai c pentru fiecare F LP1 i fiecare
Definiia 3.5 (substituii). Prin substituie vom nelege o secven

substituie s, permis pentru F, care ndeplinete condiia c ea nu

finit de elemente de tipul [x/t] (numite i substituii elementare),

coine un element de forma [x/t] astfel nct t nu conine x, exist

unde x X, t T.

mcar o substituie s, ehivalent cu s (s este echivalent cu s, pentru


F, dac (F)s = (F)s) i care este normalizat.

O substituie va avea astfel forma s = [x1/t1][x2/t2] [xn/tn]


fiind practic un cuvnt peste alfabetul S = {[x/t] | x X, t T }, adic
un element al lui S* (monoidul liber generat de S). O substituie s (ca
mai sus) se aplic unei formule F, rezultnd o formul G, notat (F)s,
care se obine din F prin nlocuirea fiecrei apariii libere a variabilei
x1 cu termul t1, apoi a fiecrei apariii libere a variabilei x2 cu t2, etc.

Dup cum am mai precizat, dac nu este nevoie de o redefinire


explicit, n continuare vom folosi i alte concepte/notaii sintactice
introduse n Capitolul 2 pentru LP, cum ar fi: literal (o formul
atomic sau negaia acesteia), clauz, clauz Horn, form normal,
etc. Ca o convenie, cu litere latine mici de la sfritul alfabetului (x, y,

Fundamentele logice ale Informaticii

133

134

Cristian Masalagiu

z, ...) vom nota variabilele. Literele latine mici de la nceputul

domeniul sintactic al cuantificatorului respectiv. Domeniul sintactic

alfabetului (a, b, c, ...) vor nota constantele. Literele latine mari de la

pentru o apariie a unui cuantor (s spunem c aceasta este (x))

mijlocul alfabetului (P, Q, R, ...) vor nota simbolurile predicative.

ntr-o formul F, reprezint poriunea continu de text (care este o

Literele latine mici de la mijlocul alfabetului (f, g, h, ...) vor fi rezervate

subformul G alui F), care ncepe cu primul simbol de dup o apariie a

pentru desemnarea simbolurilor funcionale, iar cu F, G, H, vom

cuantorului n cauz, identificat mai jos prin subliniere (parcurgem

nota formulele. Dac nu am adopta astfel de convenii (dorim, totusi, s

formula de la stnga la dreapta) i se termin cu un anumit simbol

avem o anumit libertate de exprimare i s folosim i alte nume nafara

ulterior (s-l identificm tot prin subliniere), conform urmtoarelor

celor admise de alfabetul iniial, aa cum am folosit i n cazul LP), am

situaii:

avea, posibil, cazuri n care, la o prim vedere, nu am putea distinge

F = ... (x)(G) ... . Nu sunt probleme, deoarece parantezele

ntre o variabil i o constant. Sintactic, diferena dintre un nume de

cerute de sintaxa dat de Definiia 3.1. nu au fost eliminate. Ca

variabil (element din X) i un nume de constant (element al lui F0)

observaie, parantezele subliniate de mai sus sunt (se mai

este clar doar n momentul cnd numele respectiv apare ntr-un

numesc i) corespondente (definiia sintactic a unei formule nu

cuantificator.

permite existena unei paranteze deschise fr ca ea s fie


nchis ulterior, neexistnd ambiguiti nici n privina

Definiia 3.6. Un term care nu conine variabile se numete term de

parantezei nchise care corespunde unei anumite paranteze

baz. Analog, vom avea formule de baz, substituii de baz, etc.

deschise).

F = ... (x)G. Situaia evideniaz faptul c domeniul se extinde

Ca i pentru LP, putem renuna la anumite paranteze (nu uitm,

pn la sfritul formulei, dar condiia suplimentar este

sunt implicate doar elementele lui P) ntr-o formul, bazndu-ne pe

aceea c n G nu exist nici o parantez nchis care s nu aib

aceeai idee (prioriti acordate operatorilor, proprieti generale ale

corespondent o parantez deschis situat tot n domeniu (nu

acestora cum ar fi asociativitatea, convenii, etc). n cazul unui cuantor,

uitm c domeniul ncepe oricum cu primul simbol de dup

avem nevoie, nafara prioritii care este maxim (adic 0; standard,

(x)). Nu am mai subliniat simbolurile de nceput i sfrit a

vom admite c are prioritatea 1, - 2, - 3, - 4, - 5, etc.; n

domeniului, deoarece ei sunt primul i respectiv ultimul simbol

cadrul unei secvene continue de operatori de aceeai prioritate,

din G.

parantetizarea se face la dreapta), i de definirea a ceea ce se numete

135

Fundamentele logice ale Informaticii

136

Cristian Masalagiu

F = ... ( ... (x) ... ) ... . Este pus n eviden cazul n care au fost

tipul ... 1 ... 1 ... 2 ... 2 ... , sau imbricate - ... 1 ... 2 ... 2 ... 1 ... , dar nu

eliminate parantezele iniiale de dup cuantificator, dar n

se pot intersecta, ca n situaia ... 1 ... 2 ... 1 ... 2 ... . Dac o apariie

subformula G care urmeaz dup acesta exist o parantez

a unei variabile x se afl n interiorul mai multor domenii imbricate,

nchis care are corespondent nainte de apariia cuantorului al

desigur c ea aparine tuturor. Apariiile diferite ale unui simbol pot

carui domeniu l cutm. Ceea ce am subliniat este prima

avea semnificaii (valori) diferite. Astfel, n ... 1 ... 2 ... 3 ... x(1) ... 3 ...

parantez cu aceast proprietate (practic, simbolul imediat de

x(2) ... 2 ... 1 ... , apariia lui x notat x(1) i cea notat x(2), pot practic fi

dinaintea ei fiind ultimul care aparine domeniului).

considerate ca fiind nume de variabile diferite. n ceea ce privete

Prioritatea cuantificatorilor fiind maxim, se gsesc mai nti domeniile

parantezele adugate, ele pot fi fie restaurri ale parantezelor terse,

sintactice ale fiecrui cuantificator dintr-o formul i apoi se aplic

fie ne folosim de (iv) (Definiia 3.1, Pas inductiv extins).

regulile de prioritate legate de conectori (acestea fiind similare de fapt


cu cele din LP). Intuitiv, dac privim LP1 ca un limbaj de programare
imperativ

(formulele

fiind

programe),

construciile

de

tipul

(1x1)(2x2) ... (nxn), cu 1, 2, ... , n {, }, reprezint linia de


definiie a unei proceduri (n care se specific drept parametri

Exemplu. Fie formula:


F = Q(x) (x)(y)(P(f(x), z) Q(a) (x)R(x, z, g(x)).
Semnificaia simbolurilor care apar:

x, y, z X . Avem x, y X deoarece sunt (i) nume ale unor

variabilele locale). Procedurile n-au ns i un sfrit marcat explicit,

cuantificatori, iar z X conform conveniilor fcute (e liter de

astfel nct domeniul sintactic este corpul procedurii, delimitarea lui

la sfritul alfabetului). Variabila x apare de 4 ori n F (de la

clar fiind desigur absolut necesar pentru a cunoate poriunea de

stnga la dreapta: x are o apariie liber n Q(x); o apariie legat

text n care numele unei variabile pstreaz o aceeai semnificaie.

n P(f(x), z), ea fiind n domeniul sintactic al cuantorului (x); o

Continund paralela, variabilele libere din domeniul sintactic al unui


cuantificator reprezint variabilele globale, iar aplicarea unei
substituii ar fi un apel de procedur (deosebirea fa de un program
imperativ fiind aceea c valorile parametrilor, adic numele
cuantificatorilor din linia de definiie, pot fi elemente oarecare sau
anumite din domeniile considerate, conform sematicii). S mai
precizm i faptul ca domeniile sintactice ale diverilor cuantificatori
pot fi, datorit formei sintactice a formulelor, doar disjuncte, adic de

alt apariie legat, pe prima poziie din R(x, z, g(x)), aici


apariia fiind i n domeniul sintactic al cuantorului (x); o a
treia apariie legat, n acelai domeniu sintactic, este n R(x, z,
g(x)), i anume n g(x)). Variabila y nu apare nici o dat n F,
dei apare cuantorul (y) (ea apare ns n restvar(F)).
Variabila z apare de 2 ori n F, ambele apariii fiind libere
(prima dat n P(f(x), z) i a doua oar n R(x, z, g(x))). n

137

Fundamentele logice ale Informaticii

138

Cristian Masalagiu

consecin, free(F) = {x, z}, leg(F) = {x}, var(F) = {x,z} (sau

Q(x), P(f(x), z), Q(a) i R(x, z, g(x)). n plus, Q(a) este o formul de

chiar {x, y, z} dac acceptm ca restvar(F) s fie introdus n

baz. S reamintim din nou c avem o definiie formal pentru subf(F)

var(F)).

doar n cazul n care n-am eliminat paranteze din F i c subformul a

a F0 conform conveniilor.

lui F este orice subcuvnt al su care aparine lui LP1.

Q P1, P P2, R P3, din scrierea sintactic (nici conveniile

Termii (funcionali) care apar n formul. Ei sunt n ordine: x, f(x),

nu sunt contrazise).

z, a, g(x) (de fapt, termii x i z au cte dou apariii, ei fiind i

f, g F1, din scrierea sintactic (la fel, conveniile spun

variabile).

Mulimea subformulelor nchise ale lui F. Nu avem asemenea

acelai lucru).
Domeniile
cuantorului

sintactice
(x)

ale

cuantorilor.

este

format

Domeniul
din

sintactic

al

(subformula)

(y)(P(f(x), z) Q(a) (x)R(x, z, g(x)). Apoi, cel al lui (y), din


(P(f(x), z) Q(a) (x)R(x, z, g(x)). n sfrit, domeniul lui (x) este
R(x, z, g(x)). innd cont i de prioritile impuse cuantorilor, formula
corect, total parantetizat (conform Definiiei 3.1), este de fapt:
F = (Q(x) (x)((y)(((P(f(x), z) Q(a)) (x)(R(x, z, g(x)))))).
Orice amnunte legate de sintax ar trebui studiate numai pe aceast
form, practic noi neavnd definiii formale pentru cazul unor formule
din care lipsesc anumite paranteze.
Mulimea subformulelor formulei date.
subf(F) = {Q(x), P(f(x), z), Q(a), R(x, z, g(x)), (x)(R(x, z, g(x))),
(R(x, z, g(x))), (P(f(x), z) Q(a)), ((P(f(x), z) Q(a))
(x)(R(x, z, g(x))), (y)(((P(f(x), z) Q(a)) (x)(R(x, z, g(x)))),
(((P(f(x), z) Q(a)) (x)(R(x, z, g(x)))), (x)((y)(((P(f(x), z)
Q(a)) (x)(R(x, z, g(x))))), ((y)(((P(f(x), z) Q(a))
(x)(R(x, z, g(x))))), F}. Dintre acestea, unele sunt formule atomice:

subformule. Totui, prin convenia stabilit, am admis c formulele care


nu conin deloc variabile (adic formulele de baz) sunt formule
nchise. Singura asemenea subformul n cazul nostru este deci Q(a).
Matricea formulei date. Ea este (am eliminat i parantezele
corespondente devenite inutile n urma tergerii cuantificatorilor):
F* = (Q(x) ((P(f(x), z) Q(a)) R(x, z, g(x))).
nchiderea universal a formulei este:
F = (z)((x) (Q(x) (x)((y)(((P(f(x), z) Q(a))
(x)(R(x, z, g(x))))))).
Similar se obine nchiderea existenial.
Fie acum substituia s = [x/c][z/g(b)][y/x]. Dac o aplicm formulei
F (iniiale, nu celei parantetizate complet) gsim succesiv:
(F)s =
(Q(c) (x)(y)(P(f(x),z) Q(a) (x)R(x, z, g(x)))[z/g(b)][y/z] =
= (Q(c) (x)(y)(P(f(x), g(b)) Q(a) (x)R(x, g(b), g(x)))[y/x].
Ultima aplicare nu schimb nimic deoarece y nu apare n F. Conform
definiiei rezult c s nu este permis pentru F (datorit faptului c n

Fundamentele logice ale Informaticii

139

140

Cristian Masalagiu

substituia elementar [y/x], termul t = x conine o variabil care apare

legat n F). Cum ns y este doar numele unui cuantificator, aplicarea


lui s formulei F nu este duntoare n acest caz (o substituie nepermis

(x)

genereaz de obicei grave anomalii semantice). Tot din acest motiv, s


este i normalizat.
Arborele ataat formulei

(y)

Q(x) (x)(y)(P(f(x), z) Q(a) (x)R(x, z, g(x)),


este (din nou, trebuia de fapt s considerm formula corect, total
()

parantetizat; oricum, aceasta implic doar adugarea unor noduri


interne, etichetate cu ()):

(x)

a
x

x
x

Putem acum introduce i studia elementele de semantic


privitoare la calculul cu predicate de ordinul I.

141

Fundamentele logice ale Informaticii

2. Semantica logicii cu predicate de ordinul I

142

Cristian Masalagiu

univers, interpretarea unui simbol predicativ n-ar este o funcie de

nelesul (semantica) unei formule F LP1 va fi, la fel ca n

la USn la {0, 1} (sau, uneori, mulimea elementelor din US n pentru

logica propoziional, o valoare de adevr 0, 1 B, valoare obinut

care valoarea n cauz este 1), iar semantica unui simbol funcional

ntr-un mod extensional. Elementul principal n definirea semanticii va

de aritate n este o funcie de la USn la US. Pentru simplificarea

rmne noiunea de structur. Dei definiia unei structuri i gsirea

exprimrii, vom renuna la indici dac nu exist confuzii i vom nota

unei valori de adevr pentru o formul va depinde practic doar de

pe IS tot cu S. Similar cu cazul logicii propoziionale, orice structur va

simbolurile care intervin n acea formul, vom prefera s utilizm n

putea fi unic extins astfel nct s fie definit pentru toate elementele

continuare s ne folosim de funciile totale n locul celor pariale.

lui LP1.

Definiia 3.7. Se numete structur un cuplu S = <US, IS> n care US

Definiia 3.8. Pentru fiecare structur S = <US, IS>, vom numi extensia

este o mulime nevid numit univers, iar IS este o funcie (numit i

sa imediat funcia

interpretare)

S : X U P U F U T U LP1 US U [ US B] U [ US US] U B,

IS : X U P U F US U [US B] U [US US],

dat

constructiv

continuare.

Pentru

nceput,

vom

pune

S(a) = S(a) (= IS (a)), pentru fiecare a X U P U F, ceea ce nseamn

care satisface condiiile:

Dac x X, atunci IS (x) US .

Dac P P n, atunci IS (P) : US B.

Dac F F n, atunci IS (F) : US

c S s-a definit, n particular, pentru fiecare term elementar. Fie acum

US .

n cele de mai sus, ca i n restul materialului, [A B] desemneaz


mulimea tuturor funciilor totale avnd domeniul A i codomeniul B,
iar [A* B] denot mulimea tuturor funciilor de oricte argumente
(inclusiv 0) peste A, cu valori n B. Prin urmare, interpretarea
(semantica) unei variabile n structura S este un element din

orice t T, adic orice n N*, orice t1, t2, , tn T i orice f Fn,


astfel

nct

f(t1,

t2,

tn).

Atunci

S(t) = S(f)(S(t1), S(t2), ... , S(tn)) (US). Am ncheiat astfel procesul


de definire al lui S pe X U P U F U T i rmne s definim S pe
LP1. Vom face acest lucru n mod constructiv.
Baza. Fie F = A At. n aceast situaie avem fie A = P P 0 fie
A = P(t1, t2, , tn), n N*, t1, t2 , , tn T. n primul caz S este

Fundamentele logice ale Informaticii

143

144

Cristian Masalagiu

deja definit (S(P) = S(P) B), iar n al doilea caz punem desigur

propoziionale, vom folosi titulatura de structur corect pentru o

S (P) = S(P)(S (t1), S (t2), ... , S (tn)) B.

formul (sau o mulime de formule), pentru a denota restricia unei

Pas constructiv. Vom avea de considerat cazurile:

structuri la simbolurile din Alf care apar ntr-o formul (acesta fiind de

(i) F = ( F1 ). Atunci S(F) =

S '(F1 ) .

(ii) F = (F1 F2). Atunci S(F) = S(F1) S(F2).


(iii) F = (F1 F2). Atunci S (F) = S(F1) + S(F2).

fapt o funcie parial pe X U P U F U T U LP1). Pot fi identificate


i anumite (clase de) structuri speciale att la nivel sintactic ct i la
nivel semantic. Sintactic, s nu uitm c mulimea de formule din
calculul cu predicate de ordinul I depinde de alfabetul iniial Alf. Vom

(iv) F = (x)(G). Atunci S(F) = 1 dac i numai dac pentru fiecare

presupune astfel c mulimea de variabile este numrabil, c n

u US avem S[x/u](G) = 1 unde S[x/u] este o interpretare care coincide

mulimea P cel puin P0, P1, P2 sunt nevide, c mulimea F conine

n totalitate cu S exceptnd faptul c S(x) = u.

mcar un simbol funcional (indiferent de aritate), etc. Fr restricii de

(v) F = (x)(G). Atunci S(F) = 1 dac i numai dac exist (mcar) un

acest tip, exist pericolul ca LP1 s fie trivial (de exemplu, mulimea

element u US astfel nct S[x/u](G) = 1.

vid), banal (poate coincide cu LP sau chiar cu o subclas a acesteia)


sau prea particular (putndu-se exprima, de exemplu, doar relaiile

Vom pune, evident, i S(F) = S((F)), pentru fiecare F LP1.


De asemenea, de acum nainte nu vom face nici o diferen ntre IS, S,

S, notnd valoarea de adevr a unei formule F LP1 ntr-o structur

unare dintre diverse obiecte). Semantic, putem admite existena unor


simboluri speciale de predicate sau funcii care s fie interpretate
identic n orice structur. Un exemplu este relaia de egalitate, care
poate fi considerat ca fiind reprezentat la nivel sintactic de un simbol

dat S prin S(F) sau chiar FS (de fapt, tehnic vorbind, am putea face

predicativ de aritate 2 (s presupunem c P2 i = P2). n

acest lucru de-abia dup demonstraia Teoremei 3.1). n mod cu totul

momentul n care considerm o formul F care conine un asemenea

similar vor fi notate interpretrile celorlalte simboluri n structura dat:

simbol i ne intereseaz existena unui model, este normal s-l cutm

xS, cS, fS, PS, tS, etc. Putem vorbi acum de noiuni pe care le cunoatem

doar printre structuri de forma S = <US, IS> n care =

deja, cum ar fi model, formule satisfiabile, valide, nesatisfiabile,

egal cu 1 atunci i numai atunci cnd a coincide cu b n universul dat

consecin semantic, echivalen tare i slab, etc. Aa cum am mai

(=S : US US B). Cu alte cuvinte, n asemenea situaii, clasa

precizat, dat o formul F i o structur S, avem nevoie doar de valorile


lui S pe simbolurile care apar n F, adic, la fel ca n cazul logicii

(a, b) este

structurilor/modelelor admise este restrns n mod forat, ceea ce nu


are ntotdeauna efecte secundare favorabile. Astfel, n situaia descris,

145

Fundamentele logice ale Informaticii

146

Cristian Masalagiu

clasa de formule este notat LP1 {=} (pe scurt, LP1=) i se numete

fH( t1H , t H2 , , t nH ) = f( t1H , t H2 , , t nH ), pentru fiecare n N i fiecare

calculul cu predicate de ordinul I cu egalitate (punctm iar: dac

t = f(t1, t2, ... , tn) T.

F LP1=, atunci, dac F conine simbolul predicativ = P2, pentru a i


se calcula valoarea de adevr S(F) se iau n considerare doar structuri S
n care = este interpretat doar ca fiind egalitatea pe universul
respectiv). Acestea se vor numi structuri/interpretri standard.
Similar se poate considera LP1 {+}, LP1{=,

este

semidecidabil, iar problema satisfiabilitii pentru LP1=

este

satisfiabilitii

LP1

etc. Vom vedea c


SAT1)

problema

pentru

+},

(notat

Se poate spune c D(F) este mulimea termilor de baz construii cu


simboluri din F. ntr-o structur Herbrand, dac f F0 atunci H(f) = f i
n consecin dac t este un term de baz avem i tH = t. Interpretarea
unei variabile este cea uzual (xH D(F) pentru fiecare x X), la fel ca
i interpretarea simbolurilor predicative (ele vor fi funcii oarecare peste

nedecidabil. Un rol important n demonstraii l au structurile

D(F) cu valori n B). A nu se confunda fH( t1H , t H2 , , t nH ), care denot

Herbrand.

aplicarea efectiv a funciei fH : D(F)n

Definiia 3.9 (universuri i structuri Herbrand). Fie F LP1. Se


numete univers Herbrand (ataat lui F), mulimea D(F) definit
prin:

D(F) n-uplului

< t1H , t H2 , , t nH >, cu f( t1H , t H2 , , t nH ) (valoarea aplicrii anterioare),


care este un term fr variabile aparinnd lui D(F), adic, n
ultim instan, un ir de caractere. Dac exist o structur Herbrand
care este model pentru o formul F, atunci spunem i c F admite

Baza. n D(F) se pun toate elementele din F0 care apar n F. Dac F nu

model Herbrand.

conine nici o constant, atunci se pune forat n D(F) un element


oarecare din F0 (numele rezervat standard, de obicei, este a).
*

Pas constructiv. Fie orice n N , orice f Fn care apare n F i termii


oarecare t1, t2, ... , tn D(F). Atunci f(t1, t2, ... , tn) D(F).
O structur Herbrand (pentru F) este o structur (corect pentru F)

H = <UH, IH>, n care UH = D(F), iar IH satisface condiia c


interpreteaz fiecare term prin el nsui. Mai exact, H(f(t1, t2, ... , tn)) =

Exemplu. Fie formula F = (x)(P(x, f(x)) Q(g(b, z)).


(i) S se gseasc o structur S = <US, IS>, corect pentru F, astfel
nct S F. Conform Definiiei 3.8, vom avea S(F) = 1 dac i numai
dac pentru fiecare u US avem S[x/u](P(x, f(x)) Q(g(b, z)) = 1, adic
dac i numai dac pentru fiecare u U S avem S[x/u] ((P(x, f(x))) = 1 i

S[x/u] (Q(g(b, z))) = 1, adic dac i numai dac pentru fiecare u US


avem PS[x/u](xS[x/u], fS[x/u](xS[x/u])) = 1 i QS[x/u] (gS[x/u] (bS[x/u] , zS[x/u])) = 1,

147

Fundamentele logice ale Informaticii

148

Cristian Masalagiu

adic dac i numai dac pentru fiecare u US avem PS(u, fS(u)) = 1 i

(ii) S se gseasc o structur S = <US, IS>, corect pentru F, astfel

QS(gS(bS, zS)) = 1. n acest moment, pentru obinerea structurii cerute,

nct S F. Procedm identic cu cazul precedent, doar n final lum de

se pune mai nti problema alegerii unui univers US corespunztor. Ar

exemplu QS(n) = 1 dac i numai dac n este numr par.

trebui s ne gndim mcar la D(F) (a fost recent construit) i la N, care

(iii) S se gseasc universul Herbrand al lui F. Conform Definiiei

este o mulime cunoscut, avnd numeroase proprieti. Cum ambele

3.9, ncepem (Baza) prin a introduce n D(F) constantele care apar n F.

mulimi au acelai cardinal, vom ncerca nti cu US = N. Apoi, ntr-un

Prin urmare, iniial (conform conveniilor deja adoptate), D(F) = {b}.

prim pas ar trebui s gsim o relaie PS : N N N i o funcie

Rmne s aplicm Pasul constructiv ct timp este posibil, obinnd

fS : N N, astfel nct pentru fiecare u U S s avem PS(u, fS(u)) = 1.

D(F) = {b, f(b), f(f(b)), } U {g(b, b), g(g(b, b), b), ... } U {f(g(b, b)),

O relaie binar pe N, cunoscut, este relaia de ordine parial .

f(f(g(b, b))), } U {g(f(b), b), } U ... . Desigur c D(F) este

Astfel, dac alegem PS , putem lua fS ca fiind funcia succesor


(fS(n) = n + 1, pentru fiecare n N) i atunci avem PS(u, fS(u)) = 1,

numrabil. ntr-adevr, considernd D(F) ca o mulime de cuvinte


peste alfabetul

a = {b, g, f, (, ), ,}, putem defini lungimea, l(w), unui

a* ca fiind egal cu numrul de caractere care l compun

pentru fiecare u US. Structura deja sugerat mai trebuie completat

cuvnt w

de alegerea corespunztoare a relaiei QS : N N, a funciei

(poate chiar exceptnd parantezele). Atunci, pentru fiecare n N,

gS : N N N i a valorilor bS N i zS N, astfel nct s avem i

mulimea cuvintelor de lungime n va fi finit i astfel D(F) va fi o

QS(gS(bS, zS)) = 1. Cum toate acestea sunt elemente precizate, exist


numeroase opiuni convenabile. De exemplu, putem lua bS = 5, zS = 10,
gS(m,

n) = m + n pentru fiecare m, n N

sfrit,

QS(n)

(gS este

adunarea pe N) i, n

= 1 dac i numai dac n este numr impar. Trecerea la o

structur Herbrand similar este uoar, dac inem cont de faptul c


exist o coresponden bijectiv ntre N (sau o submulime finit a sa)
i D(F), oricare ar fi formula F.

reuniune numrabil de mulimi finite, deci numrabil, adic aflat n


coresponden bijectiv cu N. Mai mult, D(F) va fi chiar recursiv
enumerabil ([IP]), adic exist un semialgoritm care, fr a avea
nici o intrare, listeaz toate elementele din D(F) (de exemplu, n
ordinea cresctoare a lungimii acestora). n acest mod, putem
presupune c

a* este total ordonat printr-o relaie pe care o vom nota

cu i definit formal prin: w1 w2 dac i numai dac w1 este


naintea lui w2 n lista furnizat ca ieire de semialgoritmul anterior
(putem chiar s meninem n aceast list o singur apariie, de exemplu
prima ntlnit n parcurgerea ei de la stnga la dreapta, a oricrui

149

Fundamentele logice ale Informaticii

cuvnt). n consecin, mulimea D(F)

a* este i ea total ordonat

150
(i) S(( F1 )) =

Cristian Masalagiu

S '(F1 ) , pentru fiecare F LP1.

prin restricia relaiei . Vom prescurta acest lucru scriind

(ii) S((F1 F2)) = S(F1) S(F2), pentru fiecare F1, F2 LP1.

D(F) = {w1, w2, ... }, tiind i c w1 w2 ... . S mai notm faptul c

(iii) S ((F1 F2)) = S(F1) + S(F2), pentru fiecare F1, F2 LP1.

D(F) este ntotdeauna o mulime nevid, ea putnd fi finit n cazul n

(iv) S((x)(G)) = 1 dac i numai dac pentru fiecare u US avem

care F nu conine simboluri funcionale de aritate diferit de 0 (n


restul cazurilor D(F) are aspectul de mai sus).
(iv) S se gseasc o structur Herbrand H1 = <UH1, IH1> care s
fie model pentru F i o alta H2 = <U H2, IH2> care s nu fie model
pentru F. innd cont de punctele anterioare i de Definiia 3.9

S[x/u](G) = 1 unde S[x/u] este o interpretare care coincide cu S


exceptnd faptul c S(x) = u (pentru fiecare x X i fiecare G LP1).
Mai sus putem aduga i
(v) S((x)(G)) = 1 dac i numai dac exist (mcar) un element

(structurile Herbrand pentru o formul F sunt ntotdeauna corecte

u US astfel nct S[x/u](G) = 1 (pentru fiecare x X i fiecare

pentru F), avem D(F) = {w1, w2, ... } i putem lua PH1 = PH2 = ,

G LP1).

fH1(wi) = fH2 (wi) = wi+1 (i N), bH1 = bH2 = b D(F) (acest lucru este
obligatoriu conform definiiei unei structuri Herbrand), zH1 = zH2 = b
(de exemplu) i gH1(u, v) = gH2(u, v) = uv (aceasta nsemnnd
concatenarea cuvintelor u i v). n sfrit, vom pune QH1(u) = 1 dac i
numai dac l(u) este numr par i respectiv QH2(u) = 1 dac i numai
dac l(u) este numr impar. Rezult imediat c H1 F i H2 F.

Relaia S((F)) = S(F) o putem considera ca fiind adevrat chiar prin


convenie.
Demonstraie. Faptul c S(a) = S(a) pentru fiecare a X U P U F
(S extinde S) este adevrat din definiie. Pentru a arta faptul c S este
funcie i este unic avnd proprietile considerate, procedm prin
inducie structural (analog cu demonstraia corespunztoare de la
logica propoziional). Proprietatea de a fi funcie a lui S se pstreaz
succesiv pentru T i LP1 deoarece S este funcie, unicitatea rezultnd

Teorema 3.1 (de extensie). Pentru fiecare structur S = <US, IS>,

prin reducere la absurd, folosind direct relaiile (i) (v).

extensia sa imediat S dat prin Definiia 3.8 este funcie i este unica
funcie avnd domeniul X U P U F U T U LP1 i codomeniul

Exerciiul 3.3. Fie F o formul din calculul cu predicate de ordinul

US U [US B] U [ US US] U B, care extinde S i satisface

I, cu sau fr egalitate, (*)F nchiderea sa universal i (*)F

condiiile:

Fundamentele logice ale Informaticii

151

152

Cristian Masalagiu

nchiderea sa existenial. Ce se poate spune despre legtura dintre

LP1, la fel cum mulimea numerelor raionale este o aproximare a

aceste formule n privina satisfiabilitii (validitii)?

mulimii numerelor reale. Numele folosite, logic propoziional


respectiv logic cu predicate de ordinul I, sunt legate de lipsa

n seciunile/paragrafele urmtoare din Capitolul 3 vom urma

cuantificatorilor respectiv de folosirea acestora pentru a lega doar

un drum oarecum similar cu calea parcurs n cazul LP, pentru a ajunge

variabilele (nu i, de exemplu, simbolurile funcionale sau cele

n situaia s testm satisfiabilitatea unei formule din LP1 utiliznd

predicative). Cuvntul calcul, utilizat ca un sinonim pentru logic n

rezoluia (adaptat pentru noul context). Avem nevoie de cteva

acest context, exprim faptul c mulimile (de formule) considerate nu

rezultate preliminare.

sunt amorfe, ci pot fi prelucrate ntr-un mod sistematic (vorbim


despre calculul diferenial i integral, de exemplu). O logic (calcul) n

3. Forme normale n LP1

care ar fi permis i cuantificarea simbolurilor predicative (eventual i a

S observm mai nti c LP1 poate fi considerat ca o extensie

celor funcionale), ar putea fi numit logic (calcul) cu predicate de

real a lui LP, att la nivel sintactic ct i la nivel semantic. Orice

ordinul II (LP2), dac inem cont de faptul observat deja c (mcar)

formul de baz din LP1 (formul care nu conine variabile) poate fi

elementele lui P0 sunt formule atomice pentru LP dar variabile n

interpretat ca o formul propoziional (inclusiv elementele lui P0).

LP1 (analog, formulele atomice din LP1 ar putea fi variabile n

Dac formula n cauz nu conine nici apariii de conectori (i, evident,

LP2). Fiecare nou tip de logic (LP1, LP2, ), trebuie s fie n

nici de cuantori), ea va putea fi considerat drept o variabil

acelai timp o extensie i o aproximare a logicii anterioare (pe scurt, o

propoziional. Conchidem c din punct de vedere sintactic avem

generalizare sau o logic de ordin superior). Dup cum am mai

ntr-adevr LP LP1 (ns este iar nevoie de nite presupuneri

subliniat de cteva ori, dei rezultatele privind complexitatea sau

suplimentare privind cardinalitatea unor mulimi ca P0,F0, F1 sau P1).

tratabilitatea

Mai mult, considernd orice structur S ca funcie semantic n sensul

descurajatoare chiar pentru logici de ordin inferior, cutarea unor logici

LP1, ea poate fi considerat ca o extensie a funciei corespunztoare


aplicat pentru formulele care sunt (i) elemente ale lui LP (iar aceast
ultim funcie, dup cum se constat direct din definiii, reprezint
exact o structur n sensul LP). Vom vedea c relaia dintre LP i LP1
este chiar mai profund, LP putnd fi considerat ca o aproximare alui

(algoritmic

a)

unor

probleme

importante

sunt

mai generale (de ordin superior, dar i neclasice) este justificat prin
mrirea puterii de exprimare.
Exemplu. Gsii o formul F LP1 =, care:

Este satisfiabil.

Fundamentele logice ale Informaticii

153

Conine un simbol funcional binar f F2 i un simbol constant

154

Cristian Masalagiu

3. f admite element neutru (notat e):


F3: (e)(x)(f(x, e) = f(e, x) f(x, e) = x)).

e F 0.

Pentru fiecare S F avem: <US, fS> este grup.

Am fi putut formula cele de mai sus astfel: S se gseasc o formul


din calculul cu predicate de ordinul I cu egalitate care s exprime
faptul c o anumit relaie binar (numit f) peste o mulime nevid

4. Fiecare element x este simetrizabil n raport cu f:


F4: (x)(x)(f(x, x) = f(x, x) f(x, x) = e)).
Cerinele sunt astfel imediat satisfcute dac lum
F = F1 F2 F3 F4.

oarecare, determin pe aceasta o structur de grup (al crui element


neutru este notat e). n acest caz, ar fi existat ntrebri inevitabile, cum
ar fi Cum se poate defini formal faptul c o formul exprim o
anumit cerin? (acest lucru nu este posibil, deoarece mcar unul
dintre elementele implicate nu poate avea o definiie formal).
Formularea adoptat mai sus are avantajul c este precis, deoarece toi
termenii implicai au definiii formale (formul din LP1=, formul
satisfiabil, simbol funcional binar, structur, grup, etc.). Pentru
rezolvare va trebui s lum n considerare i diferitele clase de axiome
(diferite) prin care se identific un grup. Deoarece formula cutat
F este din LP1= i elementul neutru este precizat explicit, putem folosi
axiomele standard (vom reveni la acest tip de problem i n

Exerciiul 3.4. Considernd exemplul anterior, putei gsi o


formul F care s satisfac aceleai cerine, exceptnd folosirea
explicit a lui e? Dar dac am interzice i folosirea explicit a
simbolului de egalitate?
Exerciiul 3.5. S se gseasc o formul care s conin un simbol
predicativ binar P i care s exprime faptul c P este o relaie (binar)
antisimetric.
Teorema 3.2 (de substituie). Fie H LP1, oarecare. Fie orice
F, G LP1 astfel nct F este o subformul a lui H i G este tare
echivalent cu F. Fie H formula obinut din H prin nlocuirea (unei

Capitolul 4):

apariii fixate a) lui F cu G. atunci H H.

1. f este lege de compoziie intern, binar, pe orice mulime nevid

Demonstraie. Se procedeaz prin inducie structural, ntr-un mod

considerat:

identic cu cazul LP. Situaia n care sunt utilizai cuantificatorii trebuie

F1: (x)(y)(z)(f(x, y) = z) (x)(y)(u)(v)(f(x, y) = u

tratat suplimentar. Reamintim astfel c afirmaia de demonstrat este

f(x, y) = v u = v).

(H LP1)P(H), unde

2. f este asociativ:

P(H): (F, G, H LP1)(((F subf(H)) i

F2: (x)(y)(z)(f(x, f(y, z)) = f(f(x, y), z)).

(H se obine din H nlocuind o apariie fixat a lui F cu G) i

Fundamentele logice ale Informaticii

155

156
(x)(y)F (y)(x)F

(F G)) H H).
n Pasul inductiv singurul caz netratat anterior, n Teorema 2.5

Cristian Masalagiu

5.

Dac x nu apare liber n F, atunci:

(pentru H = (x)H1 se procedeaz similar) este:

(x)F F

(iv) H = (x)H1. Fie orice F subf(H) = {H} U subf(H1). Dac F = H,

(x)F F.

nu mai avem ce demonstra, la fel ca n cazul Baza. S presupunem c

Demonstraie. ncepem cu prima echivalen din 5. Fie astfel orice

F subf(H1) i fie H1 formula care se obine din H1 nlocuind o

structur (corect) S = <US, IS> astfel nct

apariie a lui F cu un G (nu uitm c F G). tiind, conform ipotezei


inductive, c H1 H1, faptul c H = (x)H1 este tare echivalent cu
H rezult acum direct din definiii.
Echivalenele deja cunoscute (Teorema 2.4) pot fi completate
cu altele, care se refer la cuantori.

S (x)F. Aceasta

nseamn c S((x)F) = 1, adic pentru fiecare u US avem

S[x/u](F) = 1. Dar S[x/u] coincide cu S, exceptnd faptul c S[x/u] (x) = u i


aceasta pentru fiecare apariie (liber) a lui x n F. Prin urmare, pentru
c x nu are apariii libere n F, S[x/u] (F) = S(F) (q. e. d.). A doua
echivalen din 5. rezult similar, iar 4. reprezint o consecin imediat
din definiii. Mai demonstrm doar prima echivalen din 2., restul

Teorema 3.3. Pentru fiecare F, G LP1 i fiecare x, y X, sunt


adevrate urmtoarele echivalene:
1.

2.

lsndu-le pe seama cititorului. Fie din nou orice structur S = <US, IS >
corect pentru formulele care intervin. Avem succesiv:

(x)F (x)( F)

S((x)(F) G) = 1 dac i numai dac

(x)F (x)( F)

pentru fiecare u US, S[x/u] (F) i S (G) = 1 dac i numai dac (folosim

Dac x nu apare liber n G, atunci:

5., pentru G)

(x)(F G) (x)(F) G

pentru fiecare u US, S[x/u] (F) = 1 i S[x/u] (G) = 1 dac i numai dac

(x)(F G) (x)(F) G

pentru fiecare u US, S[x/u] (F G) = 1 dac i numai dac

(x)(F G) (x)(F) G

S((x)(F G)) = 1.

(x)(F G) (x)(F) G
3.

4.

(x)(F) (x)(G) (x)(F G)

Observaie. Ca o consecin a teoremei anterioare rezult c sunt

(x)(F) (x)(G) (x)(F G)

adevrate i echivalenele (x)(x)F (x)F i (x)(x)F (x)F

(x)(y)F (y)(x)F

(chiar i variantele (x)(x)F (x)F, respectiv (x)(x)F (x)F),

Fundamentele logice ale Informaticii

157

158

Cristian Masalagiu

care se pot generaliza pentru oricte apariii ale cuantorilor (F ar putea

indiferent de structura considerat). Deoarece echivalenele anterioare

conine la rndul ei cuantificatori). Se poate arta ns c nu sunt

pot fi interpretate i ca modaliti de transformare a formulelor care

adevrate echivalenele (mai exact, exist x X, exist F, G LP1

pstreaz validitatea (mutnd cuantificatorii n fa), putem

astfel nct, mai jos, formulele din membrul stng nu sunt echivalente

considera c am fcut un prim pas spre obinerea formelor normale

cu cele corespunztoare din membrul drept):

pentru formulele din LP1. Dei nu este imediat util, am preferat s

(x)F (x)G (x)(F G)

ncepem cu rezultatul urmtor datorit importanei sale n justificarea

(x)F (x)G (x)(F G)

unor afirmaii i caracterului didactic al demonstraiei. Intuitiv, teorema

S considerm de exemplu prima relaie. Chiar la nivel intuitiv cei doi

afirm c pentru a gsi semantica unei formule F (cu ajutorul unei

membri nu exprim acelai lucru deoarece faptul c F sau G este

structuri S), formul n care am substituit apariiile libere ale unei

satisfcut pentru o (aceeai) valoare a lui x nu nseamn c fie F, fie G,

variabile x cu un term de baz t, putem afla mai nti semantica lui t n

sunt satisfcute pentru (alte) valori ale lui x, eventual diferite. Astfel,

structura considerat i apoi s gsim semantica lui F n noua

putem lua drept contraexemplu:

structur S[x/SS(t)].

F = P(x).

G = Q(x).

Teorema 3.4 (lema de translaie). Fie F LP1, x X , t T un term

S = <US, IS>, US = N, PS(n) = 1 dac i numai dac n este

de baz i S orice structur corect pentru formulele care apar. Atunci:

numr par, QS(n) = 1 dac i numai dac n este numr impar

S ((F)[x/t]) = S[x/S(t)] (F)

(interpretarea lui x n S nu conteaz, toate apariiile sale fiind n

Demonstraie. Artm prin inducie structural adevrul metaformulei

acest caz legate).

(F)P(F), unde:

Nici echivalena (x)(y)F (y)(x)F nu este adevrat pentru


fiecare formul F.
Putem trage i concluzia c scrierea succesiv a unui aceluiai

P(F): (pentru orice x X )(pentru orice t T , term de baz)


(pentru orice structur S)(S((F)[x/t]) = S[x/S(t)] (F)).
Baza. F At.

cuantor este inutil, la fel fiind i o nou cuantificare a unei apariii deja

(i) F = P P0. Neexistnd variabile, afirmaia este imediat.

cuantificate (interpretarea unei variabile care nu are apariii libere ntr-o

(ii) Fie n N*, t1, t2, , tn T , P Pn astfel nct F = P(t1, t2, , tn ).

formul neavnd efect n stabilirea valorii de adevr a acelei formule,

159

Fundamentele logice ale Informaticii

160

Cristian Masalagiu

Dac x nu apare (liber) n F, afirmaia este din nou evident. n caz

(iii) F = (y)G (cazul F = (y)G poate fi demonstrat similar). Dac

contrar, este suficient s demonstrm rezultatul pentru cazul n care

y = x i x nu apare liber n G, suntem ntr-un caz similar cu cel tratat n

exist o (singur) apariie (liber) a lui x n F. Putem presupune, fr a

Baza. Presupunem c y x i x apare liber n G (deci i n F) mcar

restrnge generalitatea, c x apare la poziia i (de la stnga la dreapta)

odat.

n t1. n acest caz, este clar c t1 are forma f( , x , ) , sau poate chiar

S((y )((G)[x/t])). Atunci:

coincide cu x. Atunci:

S((y)((G)[x/t])) = 1 dac i numai dac pentru fiecare u US avem

S((F)[x/t]) = S((P(t1, t2 , , tn ))[x/t]) =

S[y/u] ((G)[x/t])) = 1 dac i numai dac (aplicm ipoteza inductiv

= S(P((t1)[x/t], t2 , , tn )) =

pentru G i S[y/u])

= S((P(f( , x, )))[x/t], t2, , tn ) =

S[y/u][x/S(t)] (G) = 1 dac i numai dac (tS, u US, i y x)

= S(P(f( , t, )), t2, , tn ) =

S[x/S(t)][y/u] (G) = 1 dac i numai dac

= S(PS(fS( , tS, )), S(t2), , S (tn)) =

S[x/S(t)] ((y)G) = 1 dac i numai dac

= S [x/S(t)] (F), direct din definiii, n contextul teoremei.

S[x/S(t)] (F) = 1.

Ca

urmare,

rezult

S((F)[x/t]) = S(((y)G)[x/t]) =

Pas inductiv.
(i) F = ( G). Atunci S((F)[x/t]) = S(( G)[x/t]) = S(((G)[x/t])) =

Cu urmtorul rezultat se ncepe construcia formelor normale.

S((G)[x/t]).
Aplicnd acum ipoteza inductiv pentru G, obinem n continuare:

Teorema 3.5 (lema de redenumire a variabilelor legate). Fie

S((G)[x/t]) = S[x/S(t)] (G) = S[x/S(t)] ( G) = S [x/S(t)] (F).

F = (x)G , {, }, o formul oarecare din LP1. Fie y o variabil

S mai observm c egalitile anterioare sunt triviale dac x nu are nici

nou (n sensul c ea nu apare n G). Atunci :


F (y)(G[x/y]).

o apariie liber n F.
(ii) F = (G H), {, }. Se demonstreaz analog cu cazul

Demonstraie. Imediat, prin inducie structural.

precedent, folosindu-se ipoteza inductiv pentru G i H, regulile


semantice corespunztoare pentru i , precum i faptul c t nu
conine variabile (este term de baz).

n cele de mai sus era suficient s presupunem c y, variabila nou, nu


apare liber n G.

Fundamentele logice ale Informaticii

161

162

Cristian Masalagiu

Definiia 3.10 (forma normala rectificat). O formul F LP1 se

Demonstraie. Fr a restrnge generalitatea, putem presupune c toate

numete rectificat (sau, se afl n form normal rectificat, pe scurt

formulele care intervin sunt rectificate. Procedm prin inducie

FNR) dac nu conine variabile care apar att libere ct i legate i nu

structural, (meta)afirmaia de demonstrat fiind evident.

are cuantificatori care s lege aceeai variabil, dar pe poziii diferite n

Baza. F At. Aceasta este deja n FNP, avnd numrul de

formul (indiferent dac este vorba de cuantificatori existeniali sau

cuantificatori egal cu zero.

universali).

Pas inductiv.
(i) F = ( F1). Presupunem c F1 este n FNP i artm c F este n

Teorema 3.6. Pentru orice formul din F LP1, exist o formul

FNP. Conform ipotezei inductive pentru F1, exist G1 aflat n FNP

rectificat F LP1, astfel nct F F.

rectificat

Demonstraie. Se aplic de un numr finit de ori Lema de redenumire

G1 = (1 y1) (nyn)G, unde 1, 2, ..., n {, } i G nu mai conine

formulei iniiale F (implicit, se aplic i Teorema 3.3 i Teorema de

cuantificatori. Atunci:

substituie).

F = ( F1) (1 y1) (n yn)G (

Definiia 3.11 (forma normal prenex). O formul F LP1 este n


form normal prenex (FNP, pe scurt) dac F = (1 y1) (n yn)G, unde
n N, i {, } (i [n]), iar y1, , yn sunt toate variabilele
distincte care apar (liber) n G. n plus, G nu mai conine cuantificatori.

astfel

nct

G1

F1.

'
1

y1 ) (

Aceasta

'

are

aspectul

yn )( G), unde

'

dac i = i reciproc, pentru fiecare i[n]. Ultima formul este n


FNP.
(ii) F = (F1 o F2), o {, }. Conform ipotezei inductive, rezult c
exist formulele
G1 = (1x1 ) ( m xm ) G1' , i {, }, i [m] i
G2 = (

'
1

y1 ) (

'

yk ) G '2 ,

'

{, }, i [k], G1 i G2 fiind n

n cele de mai sus, cazul n = 0 se refer la absena cuantificatorilor

FNPR (form normal prenex rectificat) i echivalente respectiv cu F1

([0] = ).

i F2 . Atunci F G1 G2 = (1 y1)( mym) G1'


(

Teorema 3.7. Pentru fiecare formul F LP1, exist o formul


F LP1, care este n FNP i este tare echivalent cu F.

'
1

z1 ) (

'

zk ) G '2 (

'
1

z1 ) (

'

zk )(1y1) (mym)( G1' G '2 ).

n cele de mai sus, am aplicat de un numr finit de ori Lema de


redenumire, Teorema 3.3 i Teorema de substituie.

163

Fundamentele logice ale Informaticii

164

(iii) F = (ox)G, o {, }. Conform ipotezei inductive, exist o

Cristian Masalagiu

Vom arta n continuare c dac exist cuantificatori existeniali

FNPR,

n forma anterioar pentru o formul, acetia pot fi eliminai, fr a se

G = (1 y1) (n yn)G, i {, }, i [n]. Dac x {y1, y2, , yn},

afecta satisfiabilitatea. Testul de satisfiabilitate pentru formulele din

atunci aplicm mai nti Lema de redenumire. S presupunem acum

LP1 poate fi redus astfel la un test de satisfiabilitate pentru formule de

c x {y1, y2, , yn}. Atunci F (x)(1 y1) (n yn)G, formul

forma F = (y1) (yn)F*, unde {y1, y2, , yk} = free(F*), F*

care se afl n forma necesar.

neconinnd cuantificatori.

Observaie. Am artat c pentru fiecare formul din LP1, exist o alt

Definiia 3.12 (forma normal Skolem). O formul F LP1 este n

formul din LP1, care este tare echivalent cu ea i care este n FNP

form

rectificat (pe scurt, FNPR). Conform Teoremei 3.3, putem presupune

F = (x1) (xk)G unde G nu mai conine cuantificatori (este

i c nu exist n aceast formul cuantificatori care s lege variabile

matricea lui F), iar x1, x2, , xk sunt variabile distincte i reprezint

care nu apar n ea i nici cuantificatori (relativ la o aceeai variabil) cu

exact variabilele care apar n G (free(G) = {x1, x2, , xk}). F este n

apariii multiple. Cu alte cuvinte, din punctul de vedere al

form normal Skolem clauzal (FNSC, pe scurt), dac este n FNS

satisfiabilitii, ne putem limita la studiul formulelor din LP1 de forma

i matricea sa este n FNC (forma normal conjuctiv) ntr-un sens

F = (1 y1) (k yk)F, unde free(F) = {y1, y2, , yk}, iar F este chiar

similar cu LP (literalii reprezentnd acum formule atomice din LP1 sau

matricea lui F, nemaiconinnd ali cuantori (1, 2, , k {, }).

negaii ale lor).

formul

tare

echivalent

cu

G,

aflat

normal Skolem (FNS, pe scurt), dac are

aspectul

Prin urmare, folosind i Exerciiul 3.3 (o formul este satisfiabil dac


i numai dac nchiderea sa existenial este satisfiabil), putem spune

Teorema 3.8. Pentru fiecare formul F din LP1, exist o alt formul

c pentru testarea satisfiabilitii unei formule din LP1, putem s ne

F LP1, care este n FNSC i care este slab echivalent cu ea.

limitm

Demonstraie. Vom prezenta un algoritm prin care formula F va fi

la

clasa

de

formule

avnd

aspectul

sintactic

F = (1 y1)(2 y2) (k yk)F*, unde F* este matricea lui F iar

construit efectiv din formula F.

leg(F) = var(F) = free(F*) = {y1, y2, yk}. Prin urmare, aceast


formul este i nchis, neconinnd apariii libere de variabile.

Algoritm Skolem
Intrare: F LP1. Fr a restrnge generalitatea, putem presupune c F
este n FNPR, nchis.

Fundamentele logice ale Informaticii

165

166

Cristian Masalagiu

Ieire: F LP1, aflat n FNS (i nchis), slab echivalent cu F.

Presupunem nti c H este satisfiabil. Exist atunci o structur

Metod:

corect S = <U S, IS>, astfel nct S H. Ca urmare, pentru fiecare

Pasul 1. F : = F.
Pasul 2. Ct_timp (exist cuantificatori existeniali n F)
execut

u1, u2, , uk US avem

S [y /u ][y /u
1

2 ]...[yk /u k ]

((G)[z/f(y1, y2, , yk]) = 1.

2.1. Alege un asemenea cuantificator i elimin-l.

Pentru c variabilele y1, y2, yk sunt distincte i apar liber n

2.2. Transform formula F.

(G)[z/f(y1,

Sf_Ct_timp.

S [y /u ][y /u
1

Comentarii. Orice formul intermediar prelucrat de algoritm are


forma F = (y1) (yn)(z)G, unde G poate s conin i ali
cuantificatori (am pus n eviden primul cuantificator existenial,

y2,

2 ]...[yk /u k ]

yk)]

pentru

c structura S

(adic

) coincide cu S, exceptnd valorile lui y1, y2, yk

care sunt puse pe u1, u2, ... , uk, semantica LP1 ne permite s
nlocuim n formula G= (G)[z/f(y1, y2, , yk ] pe y1, y2, yk respectiv
cu nite constante noi (nu apar nicieri n formulele care intervin),

alegerea fiind acum determinist dac ne gndim c parcurgem formula

distincte, a1, a2, , ak i s extindem structurile S i S prin

simbol cu simbol, de la stnga la dreapta). Atunci, n urma Pailor 2.1

a iS = a iS' = ui , pentru fiecare i [k]. n acest moment, interpretarea

i 2.2, F va cpta forma F = (y1) (yn)((G)[z/f(y1, , yn)]) unde

termului t = f(y1, y2, , yk) n structurile considerate va coincide cu

f este un simbol funcional nou (n sensul c el nu mai apare n

cea a lui f(a1, a2, , ak). Putem astfel chiar nlocui pe t cu

formulele considerate), f Fn. S notm H (y1) (yk)(z)G,

f(a1, a2, , ak), astfel nct el nu va conine variabile. Avem deci

formula de tip F existent nainte de execuia unui pas al algoritmului

S(f(y1, y2, , yk)) = S(f(a1, a2, , ak)) = fS(<S(a1), , S(ak)>) =

precedent i cu H = (y1) (yk)(G)[z/f (y1, y2, yk)] formula

fS (<u1, , uk>). Atunci S((G)[z/t]) = 1 i t nu conine variabile, astfel

rezultat dup execuie.

nct putem aplica Lema de translaie, gsind S[z/S

S
Artm acum c H este slab echivalent cu H.

[z/S(t)](G)

(t)](G)

= 1, adic

= 1. Sintetiznd, putem spune c pentru fiecare

u1, , uk US = US, exist v US (v = tS = fS(<u 1, , uk>)) astfel


nct S [z/v](G) = 1. Prin urmare, S este model (i) pentru H, adic H este
satisfiabil.

167

Fundamentele logice ale Informaticii

168

Cristian Masalagiu

Invers, s presupunem c H este satisfiabil. Fie orice S = <US, IS >,

Teorema 3.9. Pentru fiecare formul F LP1, exist o formul

structur corect pentru H (atenie, S nu este definit pentru simbolul f),

F LP1 astfel nct F s F, F fiind n FNSC nchis

astfel nct S H. Conform definiiei, pentru fiecare u1, , uk US

(F = (y1) (yn)F*, {y1, , yn} = free(F*), F*, matricea lui F,

exist mcar un v US astfel nct

S [y /u ][y /u
1

fiind n form normal conjunctiv).


2 ]...[yk /u k ][z/v]

(G)=1.

Extindem pe S la S, corect i pentru H, punnd (n rest, S coincide

Exemplul urmtor ne va sugera i un algoritm pentru aflarea (unei)

cu S ): f

FNSC (de acum ncolo vom presupune c orice formul aflat n FNSC

S (<u

1,

, uk>) = v. Prin urmare, pentru fiecare

u1, , uk US =

US, avem S[y 1/u1 ][y2/u 2 ]...[yk /u k ][z/f(u1 ,...,u k )] (G)

este i nchis).
= 1.

Lum acum din nou termul t, t = f(y1, , yk ) i folosind aceeai

Exemplu. Fie

argumentaie ca mai sus, putem aplica invers Lema de translaie,

F = (x)(y)(P(x, g(y), z)) ( (x)(Q(x)) (z)(x) R(f(x, z), z))).

obinnd

S [y /u ][y /u
1

2 ]...[yk /u k ]

((G)[z/f(y1 ,..., y k )]) 1 , ceea ce nseamn

c S satisface H, adic H este satisfiabil.


Prin urmare, orice execuie a corpului buclei din Algoritmul Skolem
elimin un cuantor existenial, transformrile fcute neschimbnd
caracterul formulei (de a fi sau nu satisfiabil). Deci fiecare formul
intermediar de tipul F este n FNS i este slab echivalent cu F. n
sfrit, pentru a aduce (F)* la forma clauzal, putem aplica orice
algoritm cunoscut pentru cazul LP (renotnd literalii pozitivi din F
prin nume de variabile propoziionale distincte din A).
Putem sintetiza rezultatele obinute pn n prezent n:

S se gseasc o formul F, aflat n FNSC, slab echivalent cu F.


Forma rectificat. Folosim Lema de redenumire, n principal
(folosirea Teoremei de substituie este implicit, iar echivalenele
exprimate prin Teorema 3.3 trebuie utilizate imediat ce este posibil de
a fi aplicate; ordinea de aplicare a acestora nu este esenial). Gsim
(prin redenumire z, redenumire x n dou poziii diferite i aplicare
Teorema 3.3, punctul 1.):
F (x)(y)((P(x, g(y), z))) ((x)(Q(x)) (z)(x) R(f (x, z), z))
(x)(y)(P(x, g(y), z)) ((u)( Q(u)) (t)(v) R(f(v, t), t)).
Forma normal prenex rectificat. este prioritar fa de (puteam
deci s ne fi dispensat de nite paranteze) i u nu apare liber n
(t)(v) R(f(v, t), t)). De aceea, (u)( Q(u)) (t)(v) R(f(v, t), t)
(u)( Q(u) (t)(v) R(f(v, t), t)). n continuare, t i v nu apar liber
n Q(u) i atunci (u)(Q(u)) (t)(v) R(f(v, t), t)) (u)(t)(v)

Fundamentele logice ale Informaticii

169

170

Cristian Masalagiu

( Q(u) R(f(v, t), t)). Revenind, x i y nu apar (liber) n

(A1 A2) (A1 A3). Prin urmare obinem n final c formula

(u)(t)(v)( Q(u) R(f(v, t), t)) i atunci F (x)(y)(P(x, g(y), z)

noastr F este slab echivalent (relaiile i s sunt tranzitive; de

(u)(t)(v)( Q(u) R(f(v, t), t))). Acum u, t, v nu apar liber n

asemenea, dac G H atunci G s H) cu F, unde:

P(x, g(y), z) i atunci:

F = (x)(t)((P(x, g(h(x)), b) Q(i(x)))


(P(x, g(h(x)), b) R(f(j(x, t), t), t))).

F (x)(y)(u)(t)(v)(P(x, g(y), z) Q(u) R(f(v, t), t)).


Forma normal Skolem. Trebuie s eliminm nti cuantificatorii
existeniali, nu nainte de a porni cu o formul nchis. Singura
variabil cu apariii libere n ultima formul este z i obinem imediat:
F s (z)(x)(y)(u)(t)(v)(P(x, g(y), z) Q(u) R(f(v, t), t)).

Existena formelor normale, precum i a altor rezultate


importante, ne permite un studiu sufient de detaliat al problemei
satisfiabilitii pentru calculul cu predicate de ordinul I, cu sau fr
egalitate.

Aplicm acum formulei din dreapta Algoritmul Skolem, adic


efectum un numr de 4 execuii a corpului buclei, n scopul de a
elimina cei 4 cuantificatori existenali.
I.

F s (x)(y)(u)(t)(v)(P(x, g(y), b) Q(u) R(f(v, t), t)),

4. Decidabilitate n LP1 (LP1=)


Vom ncepe direct cu un rezultat cumva ateptat.

unde b F0.

Teorema 3.10. Fie F o formul din calculul cu predicate de ordinul I

II. F s (x)(u)(t)(v)(P(x, g(h(x)), b) Q(u) R(f(v, t), t)),

fr egalitate, nchis i aflat n FNS. Atunci F este satisfiabil dac i

unde h F1.

numai dac F admite un model Herbrand.

III. F s (x)(t)(v)(P(x, g(h(x)), b) Q(i(x)) R(f(v, t), t)), unde

Demonstraie.

iF1.

Presupunem c F admite model Herbrand. Dac F admite model

IV. F s (x)(t)(P(x, g(h(x)), b) Q(i(x)) R(f(j(x, t), t), t)), unde

Herbrand, ea este satisfiabil prin definiie.

j F2.

Presupunem c F este satisfiabil. Atunci exist o structur

Forma normal Skolem clauzal. Pornim cu:

S = <US, IS> corect pentru formula dat astfel nct S F. Artm c

F* = P(x, g(h(x)), b) Q(i(x)) R(f(j(x, t), t), t).

n acest caz F admite i un model Herbrand, notat HS = <UH, IH > (pe

Notm P(x, g(h(x)), b) cu A1, Q(i(x)) cu A2 i R(f(j(x, t), t), t) cu A3.

scurt, modelul va fi notat H). innd cont de definiia unei structuri

Atunci F* devine F* = A1 A2 A3 = A1 ( A2 A3)

Herbrand (orice term de baz este interpretat prin el nsui), rmne s

Fundamentele logice ale Informaticii

171

172

Cristian Masalagiu

interpretm simbolurile predicative care intervin n formul. Astfel,

artm c avem S(G) = H(G) pentru fiecare G de una din

pentru fiecare n N, pentru fiecare P Pn care apare n F i pentru

formele: G = (G1 G2), G = (G1 G2) i G = (G1) (formula

fiecare t1, t2, ... , tn UH = D(F), vom pune:

fiind nchis, nu mai trebuie considerate cazurile (x)(G1) sau

(*) PH(<t1 , t2 , t n>) = 1 dac i numai dac PS(<tS1 , tS2 , tS n>) = 1.

(x)(G1)). i acest lucru rezult imediat din (*) i definiia

Dac F nu conine constante, alegem o constant arbitrar a F0,

semanticii unei formule din LP1.

creia i dm de asemenea o interpretare arbitar aS US. Pentru a


arta c H F, demonstrm o afirmaie mai tare:

Pas inductiv. S presupunem c afirmaia noastr este adevrat pentru


formule G de tipul considerat i coninnd n 1 cuantificatori. Fie
acum G o formul avnd cel mult n cuantificatori, nchis, aflat n

Fie G orice formul din LP1 aflat n FNP, fr cuantori existeniali,

FNP, neavnd cuantori existeniali i fiind construit peste simboluri

nchis i coninnd simboluri funcionale i predicative care apar doar

funcionale i predicative din F. Fie S o structur corect pentru G,

n F. Atunci, pentru fiecare structur S = <US, IS > corect care este


model pentru G, structura H construit ca mai sus este de asemenea
model pentru G.

astfel nct S G i H structura Herbrand dat prin (*). Artm c

H G. Conform ipotezelor, G = (x)G, unde G conine cel mult

Demonstraia afirmaiei. Procedm prin inducie asupra numrului n

n 1 universali i x apare liber n G (n caz contrar, ajungem pn la

de cuantificatori universali care apar n G.

urm din nou n situaia din Baza). Astfel, dei G are restul

Baza. n = 0. Atunci G nu conine cuantificatori i este nchis. Acest

proprietilor cerute pentru a putea aplica ipoteza inductiv, ea nu este

lucru nseamn c G nu are variabile i vom arta c S (G) = H(G).

formul nchis. Dar, din S (G) = 1 rezult S((x)G) = 1, de unde

Procedm acum prin inducie structural asupra submulimii lui LP1

gsim c pentru fiecare u US avem S [x/u](G)=1. Aceast relaie este

alctuit din formulele de tipul G de mai sus.

adevrat i pentru acei u din US care au proprietatea c sunt imagini

Baza 1. G este formul atomic fr variabile, deci


G = P(t1, t2, ... , tn), n N, P Pn i apare n F, iar t1, t2, ... , tn

UH . Egalitatea S(G) = H(G) urmeaz atunci direct din (*).


Pas inductiv 1. Fie G1, G2 formule fr variabile (i nchise i
fr cuantificatori), avnd simbolurile funcionale i predicative
din F, pentru care S(G1) = H(G1) i S(G2) = H(G2). Trebuie s

prin structura

S ai oricror termi t fr variabile construii peste

simboluri din F, u = tS D(G) D(F). Aplicnd Lema de translaie


obinem: 1 = S [x/u](G) = S[x/t](G) = S((G)[x/t]). n acest moment
dispunem de formula G([x/t]) care este nchis (t este term de baz),
este n FNP, conine cel mult n 1 cuantificatori universali i este

Fundamentele logice ale Informaticii

173

construit peste simboluri din F. Putem n sfrit aplica ipoteza

174

Cristian Masalagiu

Demonstraie. Se aplic direct Teorema 3.10.

inductiv, deoarece relaia anterioar ne spune i c S (G)[x/t].


Atunci H (G)[x/t] i putem din nou aplica (n ultima relaie) Lema

Definiia 3.13 (extensia Herbrand). Pentru fiecare formul F nchis,


aflat n FNS, F = (y1) (yn)F*, {y1, , yn} = free(F*), F* fiind

de translaie pentru a gsi (HS)[x/t](G) = 1 pentru fiecare t din D(G),

matricea lui F, extensia sa Herbrand este mulimea

adic H((x)G) = 1, ceea ce nseamn de fapt c H(G) = 1, adic H

E(F) = {(F*)[y1/t1][y2/t2] [yn/tn] | t1, t2, , tn D(F)}.

este model pentru G. Cu aceasta, afirmaia este demonstrat (q. e. d.).

Dac F este n FNSC (F are forma de mai sus, n plus F* fiind n FNC,

Pentru a ncheia demonstraia teoremei, aplicm direct rezultatul

F* = C1 C2 C

precedent pentru G = F.

literali din LP1), mulimea

k,

C1, C2, ... , Ck reprezentnd clauze, adic


k

E ( F ) E ( C i )

Observaie. Tot ceea ce am afirmat sau demonstrat pn la teorema


anterioar este aplicabil i n cazul calculului cu predicate de ordinul I

i 1

se numete extensia Herbrand generalizat.

cu egalitate. Teorema 3.10 nu este ns adevrat i pentru LP1= ,


dup cum se poate intui chiar urmrind demonstraia, pentru succesul

Extensia Herbrand generalizat a unei formule este obinut practic prin

creia relaia (*) este esenial. Astfel, n cazul n care P este chiar

considerarea tuturor instanelor clauzelor care compun matricea sa

egalitatea, ea trebuie interpretat standard n orice structur. Prin

(formula fiind deja n FNSC i considerat n reprezentarea cu

urmare, considernd b i c dou constante distincte, putem gsi uor

mulimi), instane obinute prin aplicarea tuturor substituiilor posibile

structuri S n care bS = cS, dar b c n orice structur Herbrand.

cu termi de baz din D(F).

Desigur c acest lucru nu nseamn c n-am putea gsi o alt


demonstraie a rezultatului anterior, aplicabil pentru LP1 =. Din pcate,

Teorema 3.12 (Church). Problema validitii pentru logica cu

faptul nu este posibil, conform rezultatelor care urmeaz (nu toate

predicate de ordinul I (fr egalitate) este nedecidabil, dar

demonstrate).

semidecidabil.
Demonstraie. Conform, de exemplu, [MAS1].

Teorema 3.11 (Lwenheim Skolem). Fiecare formul satisfiabil


din LP1 admite model cel mult numrabil.

Fundamentele logice ale Informaticii

175

176

Cristian Masalagiu

Observaie. innd cont de legtura dintre F i F, se deduce imediat

simbol predicativ care apare, ceea ce se reduce la interpretarea unei

c problema SAT1 este nedecidabil, ca de altfel i problema

variabile propoziionale n sensul LP). Atunci are loc:

nesatisfiabilitii (validitii). Pe de alt parte, n cazul LP1 aceste


probleme sunt totui semidecidabile.

Teorema 3.14 (teorema lui Herbrand; teorema de compactitate


pentru LP1). O formul F LP1 este nesatisfiabil dac i numai

Teorema 3.13 (Gdel-Herbrand-Skolem). O formul F LP1 este

dac exist o submulime finit a lui E(F) care s fie nesatisfiabil.

satisfiabil dac i numai dac E(F) este satisfiabil.

Demonstraie. Direct din Teorema 3.13 i Teorema de compactitate

Demonstraie. Fr a restrnge generalitatea, putem presupune c F

pentru LP.

este n FNS nchis. Conform Teoremei 3.10, F este satisfiabil dac i


numai dac admite model Herbrand H. Ca de obicei, putem considera

n acest moment putem spune c procedura urmtoare (intitulat

c F = (y1) (yn)F* i atunci, din H(F) = 1 rezult c pentru fiecare

chiar n ntregime Procedura lui Gilmore) poate fi folosit pentru

*
t1, t2, , tn D(F) avem H [y1/t1 ][y2 /t 2 ]...[yn /t n ] (F ) 1 . Deoarece termii n

testarea nesatisfiabilitii oricrei formule din LP1. Pasul 1 este un


algoritm n sine (a se vedea i exemplul care urmeaz imediat

cauz sunt termi de baz, putem aplica Lema de translaie de n ori,

Teoremei 3.9), formula gsit la sfritul execuiei sale fiind slab

rezultnd c H((F*)[y1/t1][y2/t2]...[yn/tn]) = 1, pentru fiecare

echivalent cu formula iniial i avnd aspectul F = (*)F*, unde

t1, t2, , tn D(F). Prin urmare, am artat c F este satisfiabil dac i

F* = C1 C2 Ck. Extensia Herbrand generalizat E(F)

numai dac H G pentru fiecare G E(F) adic dac i numai dac

rezultat n urma aplicrii Pasului 2 trebuie interpretat ca fiind o

extensia Herbrand a lui F este satisfiabil.

list de clauze din LP. Datorit faptului c E(F) nu este recursiv ci


doar recursiv enumerabil, Pasul 2 reprezint doar un semialgoritm.

n Teorema 3.13 putem lua E(F) n loc de E(F) i, mai mult,

Dup cum se observ, nici n-ar fi nevoie de obinerea acestei liste

aa cum de altfel am mai punctat, elementele lui E(F) pot fi privite

dintr-o dat. Este nevoie doar de a putea selecta cte un nou element

drept clauze n sensul logicii propoziionale, deoarece literalii din

din ea atunci cnd este necesar, conform Pasului 3.3.2, care ar putea

LP1 care le compun nu conin variabile (astfel, interpretarea lor, 0 sau

fi reformulat prin Obine un nou element din E(F). Practic, pornind de

1, n orice structur S, depinde practic doar de interpretarea singurului

la ordinea pe D(F) deja sugerat (bazat pe lungimea termilor), se poate


defini o ordine total i pe E(F) (acest lucru nu ar implica dect o

Fundamentele logice ale Informaticii

177

simpl extensie a unei relaii de ordine definit pe o mulime suport

178

Cristian Masalagiu

Metod:

la un produs cartezian al acelei mulimi cu ea nsi, de oricte ori).

Pasul 1. Se transform F ntr-o formul aflat n FNSC

Pasul 3, i numai el, este de fapt semialgoritmul cunoscut n literatura

(nchis), succesiv, prin rectificare (redenumire), gsirea FNP

de specialitate ca Procedura lui Gilmore (Procedura rezoluiei de

(FNPR), obinerea nchiderii existeniale, obinerea FNS i apoi

baz). Aceasta nu se termin n cazul n care F este satisfiabil i

FNSC, formula rezultat notndu-se, pentru simplitate, tot cu F.

conine mcar un simbol funcional de aritate cel puin 1.

Pasul 2. Se obine E(F) = {G1, G2, ... , Gn, ... }.


Pasul 3.
3.1. M := .

Semialgoritmul lui Gilmore

3.2. i := 0.

(Procedura rezoluiei de baz)


Intrare: Orice formul F LP1.

3.3. Repet
3.3.1. i := i + 1.

Ieire: DA, doar dac F este nesatisfiabil.

3.3.2. Alege Gi E(F).


3.3.3. M := M U {Gi}.
3.3.4. M := Res*(M).
Pn_cnd ( M).
Pasul 4. Tiprete DA.
Trebuie ns s artm c (semi)algoritmul precedent face ceea ce
dorim. S precizm de la bun nceput c vom lua n considerare doar
formule F LP1 pentru care E(F) este infinit. n caz contrar,
rezultatele obinute pn n prezent ne spun c F poate fi privit ca o
formul din LP, nemaifiind necesar o tratare a acesteia n noul
context.
Teorema 3.15. Procedura rezoluiei de baz pentru LP1 este corect.

179

Fundamentele logice ale Informaticii

180

Cristian Masalagiu

Demonstraie. Trebuie de fapt s artm c pentru fiecare F LP1

care la rndul lor se pot scrie ca mulimi de literali din LP1. Putem

avnd E(F) infinit, semialgoritmul anterior se oprete dac i numai

trece astfel direct la Pasul 2 al Semialgoritmului lui Gilmore, adic la

dac F este nesatisfiabil. Acest lucru rezult imediat din faptul c

aflarea mulimii (listei) E(F). O metod general amintit deja se

E(F) este recursiv enumerabil, din Teorema lui Herbrand i din

bazeaz nti pe enumerarea lui D(F), termii de baz fiind ordonai

Teorema rezoluiei pentru LP.

cresctor, n ordinea lungimii lor (s precizm i c b precede pe c, f


precede pe g, etc., i abia apoi folosim indicaia referitoare la lungime).

Putem acum justifica de ce logica propoziional poate fi


considerat ca o aproximare a logicii cu predicate de ordinul I.

Gsim, succesiv, ceva de genul:


D(F) = {b, c, f(b), f(f(b)), ... , f(n)(b), ... , f(c), f(f(c)), ... , f(m)(c), ... ,

Semnificaia este aceea c E(F) (sau E(F)) aproximeaz pe F,

, g(b, b), g(b, c), g(c, b), g(c,c), g(b, f(b)), ... ,

deoarece testul de nesatisfiabilitate pentru F poate fi fcut testnd

, g(b, g(b, b)), ... }

de nesatisfiabilitate submulimile finite ale lui E(F) (E(F)). Pentru

E(C1) = {(C1)[x/t1][y/t2 ] | t1, t2 D(F)} = { P(b) P(f(c)) Q(b),

detalii privind noiunile de numr cardinal i ordinal, funcie (mulime)

P(b) P(f(c)) Q(c), P(c) P(f(c)) Q(b),

recursiv

(recursiv

enumerabil),

alte

amnunte

privind

P(c) P(f(c)) Q(c), P(b) P(f(c)) Q(f(b)), ... } =

calculabilitatea, complexitatea, tratabilitatea, pot fi consultate: [IP],

{{

[CAZ2], [COR], [AHO], [BR], [RIC], etc.

{ P(b), P(f(c)), Q(b)}, ... }

P(b),

P(f(c)),

Q(b)},

P(b),

P(f(c)),

Q(b)},

E(C2) = {{P(b)}, {P(c)}, {P(f(b))}, {P(f(f(b)))}, {P(f(n)(b))}, }


Exemplu. Fie formula

E(C3) = { P(g(b, b)) Q(b), P(g(b, c)) Q(b),

F = (x)(y)((P(x) P(f(c)) Q(y)) P(y) (P(g(b, x)) Q(b))).


S se decid dac formula este nesatisfiabil (satisfiabil, valid),
folosind Procedura rezoluiei de baz (sau, altfel spus, folosind
rezoluia din calculul propoziional). S obesrvm c F este deja n
*

FNSC. Avem i free(F ) = {x, y}, iar F = {C1, C2, C3}, unde:
C1 = P(x) P(f(c)) Q(y)
C2 = P(y)
C3 = P(g(b, x)) Q(b),

P(g(b,

f(b)))

Q(b),

P(g(b,

f(f(b))))

Q(b),

P(g(b, f(n)(b))) Q(b), ... } = {{ P(g(b, b)), Q(b)},


{

P(g(b,

c)),

Q(b)},

P(g(b,

f(b))),

Q(b)},

{ P(g(b, f(f(b)))) Q(b)}, {P(g(b, f(n)(b))), Q(b)}, ... }


E(F) = E(C1) U E(C2) U E(C3).
Aplicarea Pasului 3 ad literam este foarte anevoioas, deoarece ar
implica (ar trebui s amintim i de faptul c ar fi mai simplu s denotm
nti formulele atomice de baz distincte de mai sus prin variabile

181

Fundamentele logice ale Informaticii

182

Cristian Masalagiu

propoziionale distincte) un calcul succesiv nu numai de rezolveni ci


chiar de Res-uri, care, cel puin teoretic, sunt (alte) mulimi infinite
recursiv enumerabile. Este ns suficient (pentru a trage concluzia c

Bazndu-ne pe exemplul anterior, putem enuna explicit


rezultatul:

F este nesatisfiabil) s gsim o demonstraie prin rezoluie a


clauzei vide pornind cu o submulime (finit) de clauze ale lui

Teorema 3.16 (a rezoluiei de baz). Fie F LP1 i E(F) extensia

E(F). Mai nti gsim:

Herbrand generalizat a unei formule F, slab echivalente cu F i aflat

{ P(g(b, c)), Q(b)}

{P(g(b, c))}

P(g(b, c))

P(g(b, c))

n FNSC (nchis). Atunci F este nesatisfiabil dac i numai dac


exist o demonstraie prin rezoluie (n sensul logicii propoziionale) a
lui , pornind cu (o parte finit din) elementele lui E(F) .
Demonstraie. Imediat, din Teorema lui Herbrand, Teorema 3.15 i

{ Q(b)}
Cele dou clauze care intervin provin din C3 (prin substituia [x/c]) i

innd cont de legtura care exist n LP ntre Res*(F) i demonstraiile


prin rezoluie.

respectiv C2 (prin substituia [y/g(b, c)]). Conform definiiei, termii


respectivi sunt elemente din D(F). Acum continum cu:
{ P(f(c), P(f(c)), Q(b)}

{P(f(c)}

Ca urmare, folosind Teorema 3.16, Pasul 3 al Procedurii


rezoluiei de baz poate fi uor modificat. Pentru simplificarea
nelegerii, i prezentm doar execuia pentru cazul ultimului exemplu
considerat:

P(f(c)

P(f(c)
{Q(b)}

Dei la ultimul pas este incorect scrierea de dou ori a elementului


P(f(c), am fcut-o pentru a se identifica mai uor clauza de
provenien, care este C1 (substituia fiind [x/f(c)][y/b]). Pentru a doua
clauz, ea este C2 , cu substituia [y/f(c)]. n final, din {Q(b)} i {Q(b)}
obinem .

183

Fundamentele logice ale Informaticii

184

Cristian Masalagiu

5. Rezoluie n LP1
{ P(g(b,x)), Q(b)}

{ P(x), P(f(a)), Q(y)} {P(y)}


[x/f(a)]
[y/b]

[y/f(a)]

[y/g(b,a)]

[x/a]

Rezoluia specific (numit i pur) pentru LP1, dei diferit


de rezoluia de baz, pstreaz ideea principal a rezoluiei din LP i
anume c la fiecare pas de rezoluie se aleg dou clauze i se obine
o alt clauz (rezolvent), eliminnd anumii literali prin reducere

{ P(f(a)),Q(b)} {P(f(a))} {P(g(b,a))}

{ P(g(b,a)), Q(b)}

cu negaiile lor. Eliminrile devin mai complicate, iar esena lor este
(sub)procedura de unificare. A unifica dou sau mai multe formule

{Q(b)}

{ Q(b)}

atomice din LP1 nseamn a gsi o substituie pentru variabilele care


intervin n acele formule (substituia nefiind elementar sau de baz)
astfel nct n urma aplicrii substituiei formulele atomice respective s
coincid (textual, ca iruri de caractere). Obinerea unui rezolvent nu va

Conchidem c aspectul LP1 este urmtorul (subclasele indicate


fiind nevide i disjuncte):

Formule
valide

infinit
Formule satisfiabile,

prealabil a unor literali, prin care se desemneaz cine este A. Nu


vom intra n prea multe detalii, pentru amnunte suplimentare

Formule satisfiabile,
nevalide, avnd doar model

nsemna numai simpl reducere a unui A cu un A, ci i o unificare

putndu-se consulta [MAS1], [CAZ1], etc.


Formule
nesatisfiabile

nevalide, avnd model finit

Din motive legate de spaiul tipografic, nu vom trata n aceast


carte nici problematica legat de aplicarea rezoluiei pure pentru cazul
formulelor Horn i nici situaia rafinrilor rezoluiei pure (Capitolul 5
va conine totui o scurt introducere).

Prin urmare, oricte eforturi am depune, ntr-un limbaj suficient de


bogat tot vor exista formule satisfiabile, nevalide i avnd doar model

Exemplu. Vom relua formula din ultimul exemplu, despre care am

infinit (numrabil), care nu va putea fi gsit algoritmic, ntr-un timp

artat deja c este nesatisfiabil utiliznd rezoluia de baz. Vom arta

finit. Totui, posibilitatea utilizrii unei rezoluii proprii lui LP1, prin

c ea este nesatisfiabil folosind rezoluia pur din LP1. S precizm i

care s se evite mcar scufundarea n LP dac nu i aducerea

faptul c vom pstra toate notaiile pe care le-am introdus pentru LP

formulelor la diferite forme normale, pare a fi o perspectiv benefic.

Fundamentele logice ale Informaticii

185

186

Cristian Masalagiu

(cum ar fi Res, Res*, etc.) dei semnificaiile exacte sunt de multe ori

Astfel, am gsit o respingere utiliznd rezoluia pur, adic

schimbate. Dup cum deja tim, avem:

demonstraia: C1, C2, C4, C5, C3, C6, .

F = (x)(y)((P(x) P(f(c)) Q(y)) P(y) (P(g(b, x)) Q(b))),


C1 = P(x) P(f(c)) Q(y),

Dei multe dintre rezultatele corespunztoare pentru LP nu sunt

C2 = P(y),

adevrate n cazul LP1 (dac nlocuim rezoluia LP, sau rezoluia de

C3 = P(g(b, x)) Q(b),

baz pentru LP1 cu rezoluia pur), Teorema rezoluiei (pure) are un

F* = {C1, C2, C3} =

enun similar cu Teorema rezoluiei pentru LP i n demonstraia

{{ P(x), P(f(c)), Q(y)}, {P(y)}, { P(g(b, x)), Q(b)}}.

acesteia se folosete n mod esenial Teorema rezoluiei de baz. n

Considerm pe rnd urmtoarele cupluri de clauze:

acest mod, gsirea unei respingeri de tipul anterior este suficient

C1 i C2. Din motive tehnice, nu trebuie s existe variabile


comune n clauzele considerate n momentul n care ncercm s

Nu putem ncheia acest capitol fr a sublinia nc o dat faptul

aplicm un pas al rezoluiei pure. De aceea facem mai nti

c situaia n LP1= este i mai neplcut, cel puin din punct de

substituia de redenumire [y/z] n C2, gsind C2 = {P(z)}. Apoi,

vedere teoretic. Se tie astfel c, dac limbajul iniial este suficient de

prin [x/z], unificm mulimea {P(x), P(z)} (acest din urm

bogat, problema SAT1 pentru LP1 = este chiar nedecidabil total,

literal fiind complementarul celui coninut de C2), gsind


Res(C1, C2) = { P(f(c)), Q(y)} = C4.

C4 i C2. Facem aceei redenumire n C2 i lucrm tot cu C2.


Aplicnd [z/f(c)], vom unifica mulimea { P(f(c)), P(z)},
gsind Res(C4, C2) = {Q(y)} = C5.

C3 i C2. Nu mai avem nevoie de redenumiri, putnd unifica


{ P(g(b, x)), P(y)}, prin [y/g(b, x)]. Gsim Res(C3, C2) =
{ Q(b))}= C6.

pentru a trage concluzia c formula n cauz este nesatisfiabil.

C5 i C6. Nu avem nevoie de redenumiri, unificm


{Q(y), Q(b)} prin [y/b] i obinem n final Res(C5, C6) = .

adic nu este nici mcar semidecidabil (conform Teoremei lui


Church), ca n cazul LP1. Astfel, este suficient ca el s conin
([MAS1]), nafara simbolului care reprezint egalitatea, un simbol
funcional constant (de aritate 0), dou simboluri funcionale de aritate
unu i un simbol predicativ de aritate doi (, i sunt de asemenea
necesari, ca i existena n X a cel puin dou variabile distincte). Pentru
ca SAT1 pentru LP1 = s fie (mcar) semidecidabil, este evident c ar
trebui s putem arta (mcar) c: Orice formul satisfiabil din LP1=
admite model cel mult numrabil. Acest lucru nu poate fi, din pcate,
adevrat, dup cum se poate intui i din enunul teoremelor urmtoare
(demonstraiile pot fi gsite de asemenea n [MAS1]):

Fundamentele logice ale Informaticii

187

188

Cristian Masalagiu

Teorema 3.17. Fie F LP1, satisfiabil, care admite un model finit

vedere formal rezultatele vor fi i mai descurajante. Exist ns cteva

S = <US, IS> i s presupunem c | US | = n N*. Atunci, pentru

argumente solide care fac ca utilizarea logicii s constituie ntr-

fiecare m n, exist un model Sm pentru F, cu cardinalul universului

adevr o modalitate interesant de a interpreta programarea (vom

egal cu m. Mai mult, F are i un model numrabil, care poate fi obinut


i ca o aproximare a modelelor finite anterioare.
Teorema 3.18. Exist o formul nchis, satisfiabil F LP1, astfel
nct pentru fiecare model S = <US, IS> al lui F avem | US | 3.
Teorema 3.19. Exist o formul satisfiabil F LP1=, astfel nct
pentru fiecare model S = <US, IS> al lui F avem | US | 2.

analiza acest lucru i n Capitolul 5). Pe parcursul Capitolului 4, am


artat c din punct de vedere formal att sintaxa ct i semantica
logicii cu predicate de ordinul I constituie o extensie simpl i
natural a LP, c logica propoziional este chiar o aproximare a LP1
(n cel mai pur sens matematic), c noiunile deja folosite i nelese
pentru LP pot fi extinse la LP1 sau LP1= (rezultatele generale fiind i
ele similare). Este vorba tot despre exprimarea realitii prin formule
atomice i literali, despre obinerea de formule compuse din formule
elementare (variabilele, simbolurile funcionale i predicative i
cuantificatorii fac diferena, dar la nivel intuitiv ele reprezint chiar o

Inconvenientul practic al diferenei dintre LP1 i LP1= poate fi

necesitate de limbaj), despre forme normale i despre posibiliti

reparat parial (dup cum am mai precizat, exemplificnd chiar acest

efective de a testa satisfiabilitatea unei formule (de natur sintactic

lucru n Capitolul 5) prin ascunderea simbolului = ntr-un simbol

sau semantic). Problema SAT1 pentru LP1= este nedecidabil, iar

predicativ de aritate superioar.

pentru LP1 este semidecidabil. Utilizarea rezoluiei de baz ne arat o


legtur mai profund ntre LP1 i LP. Posibilitatea folosirii unui tip

6. Recapitulare i Index
Dei teoria este foarte dezamgitoare n privina rezultatelor

specific de

rezoluie - rezoluia pur - pentru LP1, a unor clase

particulare de formule (cum ar fi clasa formulelor Horn), adaptarea

pozitive (chiar dac ne referim doar la calculul propoziional, unde

strategiilor

restriciilor

decidabilitatea SAT este atenuat de netratabilitate), necesitatea

variabilelor, scufundarea realitii n alte tipuri de logici, rmn

exprimrii simple a situaiilor reale a condus la acceptarea introducerii

alternative viabile n programarea logic.

unor limbaje mai complexe (calculul cu predicate de ordinul I fr


egalitate, calculul cu predicate de ordinul I cu egalitate, logicile cu
predicate de ordinul II i mai mare, etc.). Desigur c din punct de

Pentru Index, vom aminti:

rezoluiei

pentru

cazul

prezenei

Fundamentele logice ale Informaticii

189

190

Cristian Masalagiu

calculul cu predicate de ordinul I fr egalitate, 122

formul rectificat, 158

constant funcional, 123

form normal prenex, 159

simbol funcional de aritate i, 123

form normal prenex rectificat, 160

variabil predicativ, 123

form normal Skolem, 161

simbol predicativ de aritate i, 123

form normal Skolem clauzal, 161

variabil (funcional), 123

extensie Herbrand, extensie Herbrand generalizat, 171

cuantificator (cuantor) existenial (universal), 123

rezoluie de baz (procedura lui Gilmore), 174

termi (funcionali), 125

unificare, 181

formule atomice, 125

rezoluie pur, 181

formule (subformule, arbori), 125


apariii libere i legate ale variabilelor, 129

7. Exerciii

free(F), var(F), leg(F), restvar(F), 129

1. Definii constructiv free(F), F LP1.

formule nchise, 130

2. Determinai subf(F) pentru

nchiderea universal (existenial) a unei formule, 130

F = (x)(((P(x, g(a)) Q(z)) R(u, f(v)))).

matricea unei formule, 130

3. Rezolvai Exerciiul 3.1.

substituii, substituii elementare, substituii permise, 130

4. Rezolvai Exerciiul 3.2.

substituii normalizate, substituia vid, substituii echivalente, 131

5. S se aplice substituia: s = [y/h(z)][z/h(x)][x/g(f(y))] formulei

termi (formule, substituii) de baz, 132


domeniul sintactic al (apariiei) unui cuantor, 132
structuri i interpretri, 139
extensie imediat, 140
calculul cu predicate de ordinul I cu egalitate, 142
univers i structuri Herbrand, 143
mulime recursiv enumerabil, 146
logica cu predicate de ordinul II, 150
logici nestandard i de ordin superior, 150

F = (x)(P(x, f(x)) Q(g(a, z)).


6. Rezolvai Exerciiul 3.3.
7. Fie formula F = (x)(y)P(x, y, f(z)). S se decid dac formula
este satisfiabil, valid, sau contradicie.
8. Gsii o formul F LP1 care s conin un simbol predicativ
P P2 i care s exprime faptul c P este o relaie antisimetric.

Fundamentele logice ale Informaticii

191

9. Gsii o formul F LP1= care s conin un simbol predicativ


P P2 i care s exprime faptul c P este o relaie de
echivalen.
10. Fie formula
F = (x)(y)(z)(P(x, y) P(z, y) P(x, z) P(z, x)) i
structurile S = <US, IS > date prin:

US = N, PS = {<m, n> | m, n N, m < n}.

US = N, PS = {< m, m+1> | m N}.

US = 2N, PS = {<A, B> | A, B N, A B}.

S se decid care dintre aceste structuri sunt modele pentru F.


11. Artai c pentru fiecare formul din LP1:

F este valid dac i numai dac nchiderea sa universal


este valid.

F este satisfiabil dac i numai dac nchiderea sa


existenial este satisfiabil.

12. Demonstrai n detaliu Teorema 3.1.


13. Rezolvai Exerciiul 3.4.
14. Rezolvai Exerciiul 3.5.
15. Completai demonstraia Teoremei 3.2.
16. Demonstrai n detaliu Teorema 3.5.
17. Gsii o formul F din LP1, aflat n FNSC i slab echivalent
cu formula:
F=(x)(y)((P(x,g(y), z) (x)Q(x)) (z)(x)R(f(x, z),z)).
18. Artai c n LP1 exist formule satisfiabile dar care nu admit
nici un model finit.

192

Cristian Masalagiu

19. Artai c:
(x)P(x) P(y) (x)(P(x) P(y)).

194

Capitolul 4
Teorii logice i sisteme deductive

Cristian Masalagiu

etc.), din punct de vedere sintactic se pornete cu un alfabet i se


construiesc formule peste acel alfabet. Sunt apoi identificate subclase
importante, cum ar fi clasa formulelor Horn sau clasa formulelor
aflate n FNSC. O asemenea subclas de formule, dar i de obiecte mai

Aceast parte a logicii formale, alctuit din teoriile logice i


sistemele deductive (de demonstraie, infereniale) este una dintre cele
mai rspndite modaliti de exprimare exact a noilor descoperiri
utilizat de ctre comunitatea tiinific. Trecnd de la un studiu naiv al
realitii la un studiu semi-fundamentat, este absolut necesar ca
obiectele, conceptele, relaiile manipulate s admit definiii
precise, ca anumite proprieti s fie demonstrate ntr-un cadru
clar specificat, ca totul s poat fi fcut constructiv. ntr-un limbaj
mai mult sau mai puin apropiat de limbajul natural, orice tiin
folosete afirmaii reprezentate prin formule, un concept de adevr
asociat acestora, un mediu de natur sintactic, organizat, pentru
demonstrarea adevrului unei formule. n logic, sistemele
deductive ofer mediul de demonstrare mecanic iar teoriile logice
posibilitatea definirii adevrului la un nivel global. n plus, ntre
aceste meta-concepte exist o legtur clar subliniat. Ele sunt utilizate,
aa dup cum tocmai am amintit, att n procesul de formalizare a
(coninutului) altor tiine dar i n studiile logice de baz, ceea ce poate
genera din nou dificulti de nelegere provenite din dualitatea limbaj
de baz metalimbaj.
S trecem nti n revist conceptele de sistem deductiv i teorie
logic precum i legtura dintre ele, la un nivel informal. Dup cum
deja cunoatem, indiferent de tipul de logic (LP, LP1, LP1=, LP2,

complexe (pe care le vom numi metaformule), poate fi descris finitar


cu ajutorul unui sistem deductiv. Un sistem deductiv se bazeaz concret
pe o definiie constructiv, care apeleaz la noiunile de axiom i de
regul de inferen. Axiomele sunt formulele plasate iniial (prin Baza
definiiei) n subclasa corespunztoare, iar regulile de inferen (de
deducie, de demonstraie) reprezint modalitile prin care se obin
formule noi (numite i teoreme) din formule vechi (Pasul inductiv). Cu
ajutorul acestora se definete n mod formal, la nivel global, conceptul
de raionament (demonstraie). Un exemplu imediat de sistem deductiv
este cel bazat pe rezoluie. Astfel, n LP pornim cu o mulime de clauze
F (formul aflat n FNC, generatoare de axiome) i putem gsi
Res*(F) utiliznd rezoluia ntr-un pas ca (unic schem de) regul de
inferen (orice element din Res*(F) este demonstrabil prin rezoluie
pornind cu axiomele din F). O teorie logic este o (sub)clas de
formule nchis la consecin semantic. Cu alte cuvinte, o mulime T
de formule este teorie logic dac pentru fiecare submulime S T i
fiecare (alt) formul G care este consecin semantic din S, avem i
G T. Exemple imediate de teorii logice sunt constituite din clasele
formulelor valide (din LP, LP1, LP1 =, etc.). Cu ajutorul acestora se
definete formal, la nivel global, conceptul de adevr (elemente lui
T de mai nainte fiind receptate ca nite formule adevrate). Legtura
dintre teoriile logice i sistemele de demonstraie se exprim prin

Fundamentele logice ale Informaticii

195

196

Cristian Masalagiu

teoreme de corectitudine i completitudine, adic teoreme de tipul: Tot

de inferen pentru prezentarea unor teorii logice poate fi imposibil,

ceea ce este adevrat este demonstrabil (completitudine) i tot ceea

existnd i un numr impresionant de tipuri generale de asemenea

ce este demonstrabil este adevrat (corectitudine). Mai precis, se

sisteme. De asemenea, forma n care sunt exprimate teoremele de

poate porni cu o teorie logic i se poate ncerca axiomatizarea ei

corectitudine i completitudine poate depinde n mod esenial de

(adic gsirea unui sistem deductiv prin care se genereaz, sintactic,

sistemul deductiv sau de teoria aleas (ba uneori chiar i de alfabetul

aceeai clas de formule), cu scopul ca mulimea teoremelor s coincid

peste care este construit mulimea de formule). S reinem faptul

cu mulimea formulelor adevrate (cele care formeaz teoria). Se

important c sistemele deductive pot fi utilizate pentru ele nsele, ca

poate i invers, adic putem pleca cu un sistem deductiv pentru care

mecanisme formale (simple alternative pentru definiiile constructive).

putem afla imediat clasa teoremelor (clasa formulelor generate prin

Cu ajutorul lor se pot astfel defini sintactic mulimi care nu au

raionamente specifice regulilor sale de inferen) i punndu-se apoi

ntotdeauna o caracterizare semantic legat de o noiune precis de

problema ca aceast clas s formeze o teorie logic (sau mcar o

adevr. Paragrafele urmtoare, n care detaliem cteva dintre

parte a unei asemenea teorii), constituit din formule adevrate

aspectele menionate, adopt n mare linia sugerat de [CAZ1],

(valide, satisfiabile, nesatisfiabile, etc.).

concepia general fiind ns original. De altfel, definiiile noiunilor

n realitate lucrurile nu stau chiar aa de simplu cum au fost

de sistem de demonstraie i teorie logic difer uor fa de cele

prezentate mai sus (din cauza lipsei de spaiu tratarea noastr fiind

ntlnite n literatura de specialitate, datorit att bagajului insuficient

departe de a fi exhaustiv). Astfel, subiectul general al teoriilor logice

de cunotine presupus a fi fost acumulat anterior parcurgerii acestui

este foarte vast, vorbindu-se de teorii degenerate, de teorii

material de ctre cititor, ct i datorit nevoii autorului de

inconsistente, de teorii recursive i/sau recursiv enemerabile, etc. Mai

sistematizare i generalizare a coninutului.

mult, orice teorie logic (n sens clasic) trebuie s conin toate


formulele valide (sau doar acele formule valide care au o form
sintactic specificat), pentru c orice formul valid este consecin
semantic din orice alt clas de formule. Dac o teorie logic conine
o contradicie, atunci acea teorie coincide cu ntreaga clas precizat de
formule (LP, LP1, LP1 =, etc.), lucru care rezult direct din definiii.
Nici n cazul sistemelor deductive nu dispunem de un context uor de
manipulat. Utilizarea unui numr finit de (scheme de) axiome i reguli

1. Sisteme deductive
Vom nota cu numele generic FORM clasa de metaformule n
care ne vom plasa. Termenul ales se explic prin faptul c o
metaformul va denota nu numai un element din LP, LP1, LP1=, sau
dintr-o subclas fixat a acestora, ci i o list de asemenea elemente,
sau, ieind din sfera logicii, obiecte cu mult mai complicate dect

197

Fundamentele logice ale Informaticii

198

Cristian Masalagiu

formulele clasice. Mulimea FORM va fi precizat n mod explicit

de reguli) s se interzic aplicarea regulii (schemei) pe considerente

doar atunci cnd va fi necesar, singura cerin permanent fiind ca

semantice globale (forma demonstraiei, apariia n demonstraie a

aceasta s fie definit constructiv.

unei formule nedorite la acel pas, pstrarea completitudinii unei teorii,


etc.). Astfel nct dac c este ataat unei reguli r (atenie, c poate lipsi,

Definiia 4.1 (sistem deductiv). Se numete sistem deductiv (de

mai exact ea poate fi condiia adevrat indiferent de context)

demonstraie,

cuplu

nseamn c n orice demonstraie, r va putea fi aplicat la un moment

SD = <A, R> unde A FORM este o mulime de axiome iar

dat doar dac c este adevrat la momentul respectiv. O regul

R FORM+ C o mulime de reguli de inferen (de deducie, de

r = < < {G1, G2, , Gn}, G>, c>, va fi scris i ca:

inferenial,

axiomatic)

FORM

un

demonstraie).
n cele de mai sus, FORM+ denot mulimea relaiilor de oricte
argumente (cel puin unul) peste FORM, iar C reprezint o mulime de
condiii de aplicabilitate. Fiecare regul de inferen r R, are astfel
aspectul r = < < G1, G2, , Gn, G>, c>, unde n N,
G1, G2, , Gn FORM i c C.. G1, G2, , Gn sunt ipotezele
(premizele) regulii, G reprezint concluzia (consecina) iar c
desemneaz cazurile (modalitile) n care regula poate fi aplicat.
Vom scrie chiar r = < < {G1, G2, , Gn}, G>, c> deoarece ordinea

G1, G 2 , , G n
,c
G
n cazul n care n = 0 i c lipsete, r poate fi identificat ca fiind o
axiom, dup cum rezult din definiia care urmeaz. Cteodat, alturi
de c, sunt explicitate separat i restriciile sintactice locale asupra
(formei) metaformulelor.
Definiia 4.2 (demonstraie). Fie SD = < A, R> un sistem deductiv n
FORM. Se numete demonstraie (pentru Fm, pornind cu F1) n SD o
list de metaformule D = F1, F2, , Fm astfel nct pentru fiecare

ipotezelor nu este esenial. Mulimea C nu a fost specificat formal

i [m], fie Fi A, fie Fi este obinut din Fj1 , Fj2 , ... , Fjk folosind o

(putem spune totui c elementele sale sunt metapredicate) din cauza

regul r = < < { Fj1 , Fj2 , , Fjk }, Fi>, c> R, unde j1, j2, ... , jk < i.

generalitii ei i pentru a nu complica inutil expunerea. Similar cu


situaia rezoluiei, regulile vor fi folosite pentru a construi demonstraii

Prin urmare, fiecare element al listei D este fie o axiom, fie

n pai succesivi, la un pas aplicndu-se o regul. Exist ns

este concluzia unei reguli de inferen ale crei ipoteze sunt elemente

posibilitatea ca nafara restriciilor sintactice locale, date de forma

anterioare din list. Analogia cu cele deja fixate n Capitolul 2 despre

formulelor implicate (ceea ce face ca regulile s fie, de obicei, scheme

demonstraiile prin rezoluie (Definiia 2.10 este un caz particular al

Fundamentele logice ale Informaticii

199

200

Cristian Masalagiu

definiiei precedente) este clar i aceasta poate fi continuat prin

Pas constructiv. Dac r = < < {G1, G2, , Gn}, G>, c> R i

definirea numrului de pai ai unei demonstraii, reprezentarea unei

G1, G2, , Gn Th(SD) atunci G Th(SD).

demonstraii printr-un arbore, etc. O demonstraie se va mai numi i


deducie (sintactic) sau chiar raionament. Dup cum am precizat,
putem defini D de mai sus, constructiv, ca fiind un arbore cu
rdcina Fm, n care frunzele (Baza) sunt axiome i fiecare nod nou

Faptul c exist o demonstraie pentru F n SD va mai fi notat prin


SD F (renunnd i la indice n cazul n care nu exist confuzii). Din

(concluzie) se obine din noduri vechi (ipoteze), n timpul aplicrii

motive tehnice, legate n general de demonstraiile teoremelor de

Pasului inductiv, folosindu-se cte o regul de inferen posibil de a fi

corectitudine i completitudine, este posibil ca n anumite situaii s

aplicat (conform c). Este posibil ca pentru anumite sisteme (a se vedea

lucrm, pe lng axiome, cu o mulime suplimentar de metaformule,

sistemul SD0, 3 din acest capitol), care nu au axiome sau pentru care

notat I, i s vorbim despre demonstraii folosind I (notat I SD F, n

condiiile c o impun, arborele s aib o definiie direct mai simpl,

cazul n care este vorba despre o formul F; se mai spune c F este

sau, alternativ, noiunea de consecin sintactic s fie definit cu

consecin sintactic din I sau teorem n ipotezele I ). Practic, dei

ajutorul arborelui (necoinciznd cu el).


Definiia 4.3 (teoreme). Fie SD = < A, R> un sistem deductiv n
FORM. Mulimea teoremelor lui SD este mulimea metaformulelor
care admit demonstraii n SD, adic:

Th(SD) = {F FORM | exist o demonstraie D pentru F n SD }.

din punctul de vedere al noiunii de adevr, sensul semantic al celor


dou mulimi(A i I) nu coincide ntotdeauna, folosirea mulimii de
ipoteze suplimentare I nu nseamn altceva dect s lucrm exact ca
mai nainte, dar n sistemul SD

= <A, R>, unde

A = A U I.

Teoremele vor apare astfel ca fiind consecine sintactice din mulimea


vid de ipoteze.
Pentru

exemplele

care

urmeaz

sunt

suficient

de

Este imediat faptul c i Th(SD) admite o definiie constructiv

individualizate, dei au substrat comun, le vom numerota n acelai

(similar cu Teorema 2.11, din cazul rezoluiei, se arat c Th(SD)

mod ca pe definiii (de altfel, unele vor fi reluate ulterior).

coincide cu mulimea dat mai jos):


Baza. A Th(SD).

Exemplul 4.1 (metoda rezoluiei). Metoda rezoluiei, att n cazul LP


ct i n cazul LP1, poate fi privit ca reprezentnd un sistem de
demonstraie. Vom trata doar cazul LP i trebuie spus c vom construi

Fundamentele logice ale Informaticii

201

202

Cristian Masalagiu

sisteme de demonstraie dedicate, cte unul pentru fiecare formul F

sintactice fixate i anume faptul c sunt clauze din LP, pot fi aplicate

aflat n FNC i reprezentat ca o mulime finit de clauze (conform

fr restricii pe parcursul demonstraiilor), exceptnd faptul deja

teoremei de compactitate, F poate fi i infinit). Sistemele dedicate pot

amintit c vom pune (renunm la indici i la faptul c ar trebui folosit

fi caracterizate de faptul c nu genereaz, n general, clasa formulelor

notaia SD n loc de SD)

valide (nici mcar o submulime a acesteia), de aceea teoremele de


corectitudine i completitudine au i ele o form nestandard (vom
reveni la acest lucru n 2 din acest capitol, dup tratarea unor aspecte
formale legate de teoriile logice (conform Exemplului 4.2, reluat).
Pentru a justifica aceast afirmaie, trebuie s specificm pe rnd:

tuturor clauzelor din LP cu Cl .


Mulimea de axiome: AF = . Am putea considera drept
axiome chiar mulimea F. Nu facem acest lucru din considerente
conceptuale, nc netransparente. Diferena la nivel sintactic
dintre axiome i ipotezele suplimentare nu exist deocamdat,
iar n ceea ce privete demonstraiile vom lucra (practic) cu
sisteme de tipul SD.

adic vom considera demonstraiile plecnd de la mulimea de axiome

A = A U F (considerm I = F). Este imediat faptul c pentru fiecare


asemenea SD, avem Th(SD) = Res*(F).

Clasa metaformulelor: FORM = LP. Formulele care ne


intereseaz sunt ns doar clauzele din LP. Notm mulimea

Th(SD) = {G Cl | F SD G },

Sistemele anterioare (de rezoluie) au caracteristic i faptul c


pot fi finit specificate, adic att mulimea de axiome (i/sau mulimea
de ipoteze suplimentare) ct i mulimea de reguli de inferen sunt fie
finite (cazul lui F), fie reprezint un numr finit de scheme (cazul
regulilor, lucru evident din specificarea mulimii respective). Clasa
regulilor poate fi ns descris finitar i astfel:
Pentru fiecare C1, C2 Cl, dac C1 C2 i exist mcar un
literal L astfel nct L C1 i L C2, atunci:

Mulimea de reguli de inferen:

RF = {<<{C1, C2}, Res(C1, C2)>, true> | C1, C2 Cl i


C1

C2 i exist mcar un literal L astfel nct

L C1 i L C2}.

r:

C1 , C 2
.
Res(C1 , C 2 )

n acest mod, spunem c pentru descrierea regulilor am folosit o


singur schem.
Exerciiul 4.1. Artai c metoda rezoluiei de baz pentru LP1

n acest moment, sistemul SDF = <AF, RF> este pe deplin precizat (true
denot condiia mereu adevrat, adic regulile, dac respect cerinele

poate fi privit ca sistem de demonstraie.

203

Fundamentele logice ale Informaticii

204

Cristian Masalagiu

Exemplul 4.2 (sistemul SD3). Este un sistem deductiv standard, finit

modus ponens (pe scurt, (MP)) iar a doua este aa-numita

specificat, care genereaz, dup cum vom vedea (Teorema 4.1),

regul a generalizrii (RG).

ntreaga clas (i numai pe aceasta) a formulelor valide din LP1


(sistemul a fost introdus pentru prima dat de ctre A. Church n 1954).

Axiome (ASD3). Condiiile sintactice sunt: F, G, H LP1,


x X, t T, oarecare. Suplimentar, n 4., x trebuie s nu apar
liber n F iar n 5., substituia s = [x/t] trebuie s fie permis
pentru F (reamintim, t nu conine nume de variabile care s
apar legate n F):

F
.
(x F

S artm, de exemplu, c n SD3 se poate genera teorema


T = (A A) (n cele ce urmeaz vom mai renuna pe parcurs la unele
paranteze, dac nelegerea nu este afectat, dei formal acest lucru nu

reprezint demonstraia va fi: E1 = A ((A A) A). Folosim acum

3. ( F G) (( F G) F).

axioma 2., punnd F = A, G = (A A) i H = A. Obinem:

4. (x)(F G) (F (x)G).

E2 = (A ((A A) A)) ((A (A A)) (A A)).

5. (x)F (F)[x/t].
S remarcm faptul c LP1 trebuie considerat ca fiind
construit peste alfabetul care conine drept conectori doar pe
i , iar unicul cuantificator acceptat este . Dac dorim s
utilizm i ceilali conectori (sau cuantori), putem face acest
lucru doar utilizndu-i ca notaii (de exemplu, A B va
reprezenta A B, etc.).
Reguli de inferen (RSD3). Exist doar restricii de natur
(lipsind

2I.

dac lum F = A i G = (A A). Primul element al listei care

2. (F (G H)) ((F G) (F H)).

sintactic

F G, F
.
G

este admis). Astfel, folosim nti instana axiomei (schemei) 1., obinut

1. F (G F).

1I.

condiiile

de

aplicabilitate):

F, G LP1, x X sunt oarecare, dar n 2., x trebuie s nu apar


liber n F. Prima schem de regul este deja amintit, i anume

Aplicm acum (MP) pentru E2 = F G i E1 = F (se observ imediat


c G = (A (A A)) (A A)) i gsim:
E3 = (A (A A)) (A A).
Punem acum F = A i G = A, n axioma 1., rezultnd:
E4 = A (A A).
n sfrit, putem folosi (MP) pentru E3 i E4 (lund F = A (A A)
i G = (A A)), pentru a obine ceea ce doream, adic:
E5 = T = (A A).
Prin urmare, am gsit n SD3 demonstraia D : E1, E2, E3, E4, E5 = T i
putem spune c (A A) Th(SD3) sau c T este consecin sintactic
din mulimea vid de formule suplimentare. n plus, aceasta este

205

Fundamentele logice ale Informaticii

206

Cristian Masalagiu

evident o formul valid. Cum i T este de fapt o schem, rezult i c


( A A) este teorem, etc.

FG

(F G) F

((F G) F) G

Profitm de exemplul n curs pentru a schia linia general de

demonstrare a teoremelor de corectitudine (pentru cazul standard al

sistemelor care genereaz toate formulele valide).

I. Se arat c axiomele sunt formule valide. Conform Capitolului 2,

vom folosi tabelele de adevr pentru prima axiom:


F

GF

F (G F)

Concluzia c teoremele sunt formule valide rezult imediat din

definiia constructiv a lui

demonstraie prin inducie structural, de altfel foarte simpl).

II. Se arat c regulile de inferen sunt corecte (termenul


corespunztor n englez este sound, adic sntos). Acest lucru
nseamn: presupunem c ipotezele G1, G2, ... Gk sunt formule valide i
artm c i concluzia G este formul valid (atenie, nu este nimic
contractoriu n ceea ce spunem, chiar dac nu este adevrat c

Th(SD3) (formal, este vorba de o

Exerciiul 4.2. Artai c axiomele 2. 5. sunt formule valide i c


(RG) este o regul corect.

Despre sistemele deductive se pot spune multe alte lucruri, la


nivel general. Astfel, o proprietate gobal, deseori cerut, este cea de
consisten. Astfel, o mulime de metaformule J este consistent ntr-

formulele folosite n axiome sunt n toate cazurile formule valide).

un sistem deductiv, dac nu exist nici o metaformul F astfel nct s

Pentru aceasta este suficient s artm c G1 G2 ... Gk G este

avem att J F ct i J F (J F noteaz faptul c nu este adevrat c

valid. De exemplu, (MP) este corect, deoarece avem:

J F). Prin extensie, un sistem deductiv este consistent


(necontradictoriu) dac nu exist nici o metaformul F astfel nct s
avem att F ct i F. O alt proprietate important este cea a
minimalitii (independenei). Astfel, n anumite situaii este

Fundamentele logice ale Informaticii

207

208

Cristian Masalagiu

important ca un sistem s conin ct mai puine axiome i reguli de

considerente legate de programarea logic. Astfel, exist numeroase

inferen, dei acest lucru s-ar putea s conduc la existena unor

lumi (pri ale realitii, colecie de cunotine, etc.) care sunt cunoscute

demonstraii mai lungi i mai alambicate. nafara sensului strict de

pur i simplu, dar fiind foarte complexe este greu de spus dac anumite

minimalitate (lucru care depinde i de alfabetul peste care este

cunotine nou asimilate fac parte din aceeai lume, sau chiar dac

construit FORM), dintr-un sistem dat se pot elimina acele axiome care

anumite cunotine vechi nu sunt cumva contradictorii. Dorind s ne

sunt consecine semantice din altele (n cazul considerrii unei noiuni

meninem n cadrul general folosit pn n prezent, introducerea unei

suport de adevr) precum i aa- numitele reguli de inferen derivate.

noiuni de adevr (deocamdat, n sens clasic, adic binar, etc.) n

Astfel, considernd orice prefix al oricrei demonstraii (privit textual)

legtur cu o metaformul este acum obligatorie. S presupunem c

D dintr-un sistem SD, acesta poate fi considerat ca o nou regul de

orice clas de metaformule FORM are ataat i o clas de structuri

inferen (derivat din cele iniiale): concluzia noii reguli este ultima

admisibile de adevr, notat Str, o structur fiind o funcie

formul din demonstraia respectiv, iar ipotezele sunt reprezentate de

S : FORM B. Dac FORM admite o definiie structural, aa cum

restul formulelor care apar. Eliminrile de reguli derivate se aprob

de altfel am i convenit de la bun nceput (prin Baza se plaseaz n

doar dac se menine echivalena din sistemul iniial i cel rezultat

FORM metaformulele atomice; cu ajutorul unor operatori, cum ar fi

(dup efectuarea eliminrilor). Dou sisteme SD i SD1 sunt

conectorii, cuantorii, etc., se introduc metaformule noi folosindu-se

echivalente dac pentru fiecare mulime de metaformule J i fiecare

metaformule vechi, prin Pasul constructiv), atunci admitem i c

metaformul F avem: J SD F dac i numai dac J SD1 F. Nu vom

fiecare S este unica extensie homomorf a unei structuri definite

detalia nici acest subiect. Vom reveni totui asupra ctorva aspecte
suplimentare att n 2. i 3. din acest capitol. Este absolut necesar s
tratm mai nti cteva aspecte formale legate de teoriile logice.

2. Teorii logice
Sistemele deductive sunt folosite n principal (n mod standard)
ca element ajuttor n construirea sau manipularea eficient a unei
teorii logice. Exist mai multe accepiuni ale ultimului termen chiar
printre logicieni. Vom accepta definiia care urmeaz din

iniial pe mulimea metaformulelor atomice. n acest mod, se pot pstra


toate definiiile (conceptele) semantice folosite pn n prezent, fr
modificri de esen (inclusiv conceptul de consecin semantic).
Definiia 4.4 (teorii logice). Se numete teorie (logic) orice subclas

TE a lui FORM nchis la consecin semantic.


n

modul

sugerat

trebuie

neleas

reprezentarea

prin

metaformule a unei baze de cunotine. Din pcate, dup cum deja

Fundamentele logice ale Informaticii

209

210

Cristian Masalagiu

cunoatem, nu exist metode semantice efective (algoritmice)

tuturor consecinelor semantice din A, n raport cu noiunea de adevr

convenabile pentru a testa dac o mulime dat de metaformule este sau

adoptat, i cu SD sistemul compus din A i R). Dup cum am mai

nu nchis la consecin semantic (sau dac o anumit metaformul

amintit, putem lua n considerare i situaia invers, n care avem dat un

este satisfiabil sau valid). Alternativa este de a folosi metode

sistem SD = <A, R> i dorim s vedem dac Th(SD ) este ntr-

sintactice, care au avantajul c pot fi uor automatizate. n cazul de fa,


se pune problema axiomatizrii teoriilor logice, cu ajutorul sistemelor

adevr o teorie logic, sau, mai mult, dac Cs(A ) = Th(SD ).

de demonstraie. Acest lucru nseamn c avnd dat o teorie

Definiia 4.5. Un sistem de demonstraie SD = <A, R> se numete

TE FORM, trebuie s gsim o submulime A = A U I TE, de

corect i complet pentru o teorie TE dac TE = Th(SD ) = Cs(A ) i

axiome i/sau ipoteze suplimentare, precum i o mulime de

A TE. O teorie TE este axiomatizabil dac exist un sistem

reguli de inferen R (adic un sistem de demonstraie

SD = <A, R>) astfel nct TE = Th(SD ). n acest caz, se impune de


obicei ca A s fie mcar o mulime satisfiabil (exist mcar o structur

S astfel nct pentru fiecare F A avem S(F) = 1), sau chiar ca ea s fie
alctuit numai din metaformule valide (dup cum am mai observat,
dac A conine o contradicie, orice metaformul este consecin
semantic din A ). Forma general a lui A se explic tocmai prin aceea
c am presupus c A conine formulele valide iar I pe cele satisfiabile).
Mai general, s presupunem c pornim cu o mulime de metaformule

A FORM, de cunotine primare, unanim acceptate ca fiind


adevrate, adic despre care tim (nu ne intereseaz deocamdat prin
ce metod am aflat acest lucru) c reprezint formule valide/satisfiabile
n contextul descris mai sus. n concluzie, pentru a axiomatiza teoria

deductiv SD = <A, R> corect i complet pentru ea, adic satisfcnd


condiiile anterioare. Dac SD este finit specificabil (axiomatizabil),
atunci teoria corespunztoare se numete finit axiomatizabil.
n cele de mai sus, dac I este mulimea vid atunci TE este
alctuit doar din metaformule valide. n cazul teoriilor reale, I
cuprinde n general cunotinele primare ale lumii respective, iar A
axiomele logice (de genul celor puse n SD3). Din pcate, n
aceast ultim situaie, A conine n marea majoritate a cazurilor i
axiomele egalitii, astfel nct aceste teorii sunt n general nedecidabile
(a se vedea SAT1 pentru LP1=). Alte tipuri de teorii se obin prin
translarea proprietilor sistemului deductiv ataat, dac acesta exist
(de exemplu, putem vorbi de teorii consistente, teorii decidabile sau

noastr, trebuie s mai gsim i o mulime de reguli de inferen R

semidecidabile, etc.). Importante sunt teoriile nedegenerate. O teorie

astfel nct s avem Cs (A) = Th(SD) (am notat cu Cs(A) mulimea

logic se numete degenerat dac coincide cu mulimea vid sau

Fundamentele logice ale Informaticii

211

212

Cristian Masalagiu

coincide cu ntreaga clasa de metaformule n care se lucreaz, FORM


(de exemplu, dac teoria conine o contradicie ea este degenerat;

n cazul n care este vorba de o teorie format doar din formule valide

teoriile inconsistente sunt de asemenea degenerate). Nici axiomatizrile

(atunci va lipsi I), teorema capt forma simplificat:

banale nu sunt interesante (este clar c, la modul general, toate

Pentru fiecare F FORM, avem: SD F dac i numai dac F.

teoriile sunt axiomatizabile, dac lum A = TE i R = ). nainte de a


prezenta cteva exemple, s tragem concluzia necesar asupra formei
generale a unei teoreme de corectitudine i completitudine n noul
context.

n cele de mai sus am folosit notaia SD F pentru faptul c FTh(SD),


unde SD = <A, R>, sau, n momentul n care SD este implicit sau
lisete, F poate nota doar faptul c F este o formul valid. Din punct

TEOREM DE CORECTITUDINE I COMPLETITUDINE. Fie


o clas de metaformule FORM, o clas de structuri admisibile Str

de vedere practic, teoriile finit axiomatizabile sunt cele mai utile.

pentru FORM, un sistem deductiv SD = <A, R> n FORM, unde

Nu vom intra n detalii nici n privina numeroaselor rezultate

A = A U I (A fiind alctuit din formule valide i I din formule

(importante i interesante) care pot fi demonstrate n acest moment. Se

satisfiabile) i o teorie logic TE FORM, astfel nct TE = Cs(A ).

poate consulta [CAZ1] pentru completri, iar noi ne limitm la a

Atunci Th(SD ) = Cs(A ).

prezenta fr demonstraie (de fapt, metateorema este sigur adevrat n


cazul LP1 i sistemului SD0):

Observaie. A demonstra corectitudinea nseamn a arta c

Th(SD ) Cs(A ) iar completitudinea, c Th(SD ) Cs(A). Teorema


se mai poate enuna i sub una din formele echivalente, destul de des

Teorema deduciei (pe scurt, TD). Pentru fiecare A, B FORM i


fiecare I FORM, dac I, A B atunci I A B.

ntlnite:

Teoria TE admite un sistem deductiv corect i complet.

Exemplul 4.2 (reluat). Avem FORM = LP1, Str este clasa fixat a

n condiiile precizate, avem, pentru fiecare metaformul

structurilor (conform Capitolului 3), TE = Val(LP1) (clasa formulelor

F FORM: I SD F dac i numai dac I F.

valide din LP1), SD = SD3, I LP1 o mulime oarecare de formule

Teoria TE este (eventual, finit) axiomatizabil.

nchise, satisfiabile i F LP1 o formul oarecare. Atunci:

Fundamentele logice ale Informaticii

213

214

Cristian Masalagiu

Teorema 4.1 (teorema de completitudine a lui K. Gdel,

rndul ei o mulime finit de literali), i putem asocia mulimea Res*(F)

1930). I SD3 F dac i numai dac I F.

care desigur nu este o teorie logic n acest caz. De altfel, nici F nu este

Demonstraie. Corectitudinea (I SD3 F implic I F), a fost

(ntotdeauna) o mulime satisfiabil (de ipoteze suplimentare). n plus,


nici nu ne intereseaz adevrul ci neadevrul. Metoda rezoluiei

deja demonstrat. Completitudinea (I F implic I SD3 F)

este de altfel o exemplificare perfect a unei situaii despre care am

este mult prea laborioas pentru a o putea reda n lucrarea de

amintit deja: sistemul deductiv (aici, SDF) este folosit ca definiie

fa. De fapt ([CAZ1]), ea se demonstrez indirect, folosind

constructiv, pentru generarea unei mulimi (Res*(F)), care nu este, i

sistemul echivalent SD0, al deduciei naturale (conform

nici nu vrem s fie, o teorie logic. Putem admite c aceast mulime

Exemplului 4.4). Faptul c I este satisfiabil nu este esenial,

are totui o caracterizare semantic (n sensul c o submulime a sa, F,

deoarece dac I este nesatisfiabil atunci (meta)teorema este

este sau nu satisfiabil). Teorema de corectitudine i completitudine

imediat adevrat (dei...neinteresant n acest caz). (q. e. d.)


Prin urmare, teoria Val(LP1) este chiar finit axiomatizabil i
putem testa validitatea unei formule ncercnd s-i gsim o
demonstraie. Val(LP1) nu este decidabil, dar este semidecidabil
(putem enumera toate demonstraiile posibile i alege apoi pe cea
dorit). Teoria este i consistent (necontradictorie). Mai mult,
axiomele lui SD3 sunt independente i R nu conine reguli derivate. Cu
toate aceste caliti, am vzut c nici demonstraiile n SD3 nu sunt
chiar simple, ca s nu vorbim de gsirea unor algoritmi eficieni de
enumerare a acestora.
Exemplul 4.1 (reluat). n aceast situaie nestandard, avem de-a face
cu FORM = LP1 (de fapt, cu FORM = Cl). Apoi, fiecrei mulimi
(eventual finite) de clauze din LP1, notat F (fiecare clauz fiind la

exist dar are o form mai special, apropiat ns de forma clasic (n


sensul c se caracterizeaz neadevrul n mod sintactic).
Exemplul 4.3 (teoria grupurilor). O alt clas general de exemple,
situat undeva ntre cele prezentate anterior (standard, nestandard), este
cel al aa-numitor teorii (matematice) formale ([CAZ1]). i aici se
ncepe cu un sistem deductiv de baz, coninnd, de obicei, ca
axiome, axiomele logice, adic cele ale oricrui sistem corect i
complet pentru Val (LP1), cum ar fi SD3, la care se adaug axiomele
egalitii, mpreun cu nite axiome specifice (acestea din urm
constituind de fapt mulimea suplimentar de ipoteze). Mulimea
teoremelor pentru sistemul amintit (de tip SD ) nu va coincide ns cu

Val(LP1), nici cu o subclas a sa, ci cu o clas de formule valide n


sens restrns (care formeaz o teorie logic n sens restrns).
Termenul n sens restrns se refer la faptul c universurile pentru

Fundamentele logice ale Informaticii

215

216

Cristian Masalagiu

structurile semantice admise pot fi doar anumite mulimi (de exemplu,

incluse printre axiomele logice i c uneori sunt utilizate variante ale

cum ar fi cele care constituie o structur de grup mpreun cu o operaie

acestora (n funcie de scopul pentru care sunt introduse). Nu toate

dat). Structurile admise conin n plus i simboluri cu interpretri

axiomele egalitii amintite sunt folosite n mod direct n TG

standard, cum ar fi egalitatea, totul fiind similar cu ceea ce am fcut n

(asemenea axiome particulare exist i printre axiomele grupului).

cazul trecerii de la LP1 la LP1=. Cadrul standard prezetat anterior se

Axiomele logice: Sunt cele ale sistemului SD3 (1. 5.).

pstreaz, inclusiv enunul teoremei de corectitudine i completitudine

Axiomele egalitii:

(care, de fapt, este imediat adevrat, n general admindu-se prin

6. (x)(x = x).

convenie faptul c teoria n cauz este tocmai mulimea toremelor

7. (x)(y)(x = y y = x).

din sistemul deductiv ales). Sensul noiunilor de formul satisfiabil,

8. (x)(y)(z)(x = y y = z x = z).

valid, etc., este relativ la clasa restrns de structuri considerat.

9. (*)(x1 = y1 x2 = y2 ... xn = yn

Vom exemplifica cu TG, teoria formal grupurilor. Ne


plasm n FORM = LP1{=,

1, ~}, simbolurile specificate n mulimea

din indice reprezentnd egalitatea (simbol predicativ binar), operaia


de grup (simbol funcional binar), elementul neutru (constant
funcional), respectiv operaia de simetrizare (simbol funcional
unar). Deja putem spune care este clasa Str, a structurilor admisibile

S = <US, IS>: US va fi orice mulime D dotat cu o lege de compoziie


intern astfel nct <D, > formeaz grup; n oricare asemenea S , =
va fi interpretat ca egalitatea pe D, ca legea , 1 ca elementul neutru
al legii , iar dac un anumit term t va avea interpretarea d n D atunci
termul ~t va avea ca interpretare simetricul lui d fa de legea .
Sistemul SDTG va fi dat astfel de:
Axiome (A). Mulimea lor este reuniunea celor dou mulimi descrise
mai jos. S punctm faptul c de multe ori axiomele egalitii sunt

f(x1, x2, ... , xn) = f(y1, y2, ... , yn)),


pentru fiecare n N* i fiecare f Fn.
10. (*)(x1 = y1 x2 = y2 ... xn = yn
P(x1, x2, ... , xn) = P(y1, y2, ... , yn)),
pentru fiecare n N* i fiecare P Pn.
Axiomele grupului (sunt de fapt I, ipotezele suplimentare; cteodat
axiomele egalitii sunt plasate tot aici):
11. (x)(y)(~x = ~y).
12. (x)(y)(z)(x = y xz = yz zx = zy).
13. (x)(y)(z)(x(yz) = (xy)z).
14. (x)(1x = x).
15. (x)((~x)x = 1).
Reguli de inferen: (MP) i (RG) de la SD3.

Fundamentele logice ale Informaticii

217

218

Cristian Masalagiu

Vom reveni cu un exemplu de demonstraie n teoria grupurilor dup ce

conector doar (rezultnd aa-numitul calcul implicaional),

vom introduce sistemul SD0, echivalent cu SD3 (Exerciiul 4.5).

va fi boolean incomplet.

Datorit acestui ultim fapt, vom putea folosi i deducia natural n

cazul teoriei grupurilor.

n funcie de relaia avut cu o anumit teorie logic.


Sistemele pot fi corecte sau nu, complete sau nu pentru o teorie
dat. Toate sistemele implicate ntr-o teorem de tip Gdel sunt

n finalul acestui capitol prezentm alte cteva (tipuri de)

corecte i complete, conform definiiei noastre. Dup cum am

sisteme deductive, avnd o larg utilizare att din punct de vedere

mai precizat, completitudinea

teoretic ct i practic.

(demonstrat) i de aceea este de multe ori doar adoptat prin

este mai greu de atins

convenie. Corectitudinea este de obicei impus, dei poate avea

3. Clasificarea sistemelor deductive

i nite forme mai deosebite (vezi sistemele nestandard, cum ar


fi rezoluia).

ncepem cu o trecere n revist a unor posibiliti de clasificare


([CAZ1]) a sistemelor deductive, din care se pot trage concluzii utile cu

n funcie de importana acordat axiomelor sau regulilor de

privire la calitile i defectele unor asemenea sisteme. Clasificrile

inferen. Din acest punct de vedere, se poate acorda o atenie

prezentate (care nu sunt singurele acceptate) se refer n principal la

deosebit regulilor (adic modului de raionament, de obinere

sistemele standard (n sensul descris anterior). Sistemele deductive se

de cunotine noi) n dauna axiomelor (cunotinelor primare).

pot astfel mpri:

Acest tip de sisteme se numesc Gentzen-Jaskowski. Un

n funcie de conectivele logice alese. Exist sisteme boolean

asemenea sistem va fi SD0 (deducia natural), care este

complete sau boolean incomplete. tim c n interpretarea

echivalent cu SD3 i va fi prezentat n acest capitol. n cazul n

conectorilor logici prin structuri acetia devin funcii booleene.

care balana este inversat (exist mult mai multe axiome

Termenul de (in)completitudine se refer la faptul c mulimea

dect reguli de inferen, ca n cazul SD3), sistemele sunt

interpretrilor conectorilor alei n alfabetul de baz peste care

cunoscute sub numele de sisteme Hilbert.

este construit sistemul formeaz (sau nu) o mulime complet de


funcii (n sensul Capitolului 2). Sistemul SD3 este boolean
complet, n timp ce un sistem care, de exemplu, folosete drept

Dup clasa FORM aleas. De exemplu (pentru logica clasic),


putem avea sisteme propoziionale sau sisteme predicative.

Fundamentele logice ale Informaticii

219

220

Cristian Masalagiu

S considerm un sistem de tip Gentzen, foarte cunoscut n literatura de

confuziilor, aceeai marc se va asocia i nodului care constituie

specialitate (introdus pentru prima oar de G. Gentzen i S. Jaskowski

concluzia regulii care, aplicat, a cauzat anularea. Ipotezele anulate

n 1934).

modific ns clasa de demonstraii acceptate ntr-un asemenea sistem:


avem I SD0 G (G este consecin sintactic n SD0 utiliznd mulimea

Exemplu (deducia natural, sistemul SD0). Clasa FORM este LP1.


Alfabetul conine n acest caz doar conectorii , i cuantificatorul .
Dup cum am precizat, ntr-un asemenea sistem regulile de inferen
sunt mai importante dect axiomele, sistemul SD0 neavnd chiar
nici o axiom. Pentru a simplifica nelegerea, vom defini direct o
demonstraie n sensul de deduciei naturale ca fiind un anumit

suplimentar de formule I; sau, exist o demonstraie pentru G n SD0


utiliznd I; sau, exist o deducie natural pentru G n SD0) dac
exist un arbore de deducie natural avnd rdcina G i cu toate
ipotezele neanulate aparinnd lui I. Grafic:
....... .......

....... .......

......

....... .......

ipoteze, anulate
sau neanulate

arbore (vezi mai jos), fr a folosi definiia general. Un arbore de


deducie natural are pe nivelul 0 (n frunze) formule oarecare (ipoteze
ale unor reguli de inferen din sistem, inclusiv elemente din eventuala
mulime suplimentar I), iar nivelele urmtoare se obin constructiv,
A1

conform definiiei generale (rdcina fiind rezultatul final).

A2

......

An

Caracteristic acestui sistem este faptul c acele condiii c de


aplicabilitate ale regulilor, dac exist, sunt de tipul se anuleaz

rdcina
rdc

ipoteza F (aici termenul ipotez nu se refer la ipotezele regulii


respective, ci la toate formulele F prezente n frunzele arborelui
curent). Pentru ca anularea s nu fie efectiv (avnd drept consecin
tergerea unui nod din graf, ceea ce conduce ntotdeauna la anumite
complicaii tehnice), vom adopta soluia de a marca ipotezele anulate
(cu cifre, de exemplu). Dac se dorete, pentru evitarea confuziilor,
mrcile pot fi diferite, n cazul n care regulile aplicate sunt diferite
i/sau dac sunt aplicate la momente diferite. Tot pentru evitarea

n acest mod, vom avea desigur SD0 G doar dac va exista un


arbore de deducie natural cu rdcina G, avnd toate ipotezele
anulate.
Pentru a prezenta concret sistemul, rmne s dm regulile de
inferen din care este alctuit, care vor primi i un nume nafara
numrului de secven. Vom avea cte o (schem de) regul pentru
fiecare A, B LP1, fiecare x X i fiecare t T. n 5., este necesar ca

Fundamentele logice ale Informaticii

221

substituia [x/t] s fie permis pentru A, iar n 6., ca x s nu apar liber

222

Cristian Masalagiu

Teorema 4.2. Sistemul SD0 este corect i complet pentru Val (LP1).

n nici o ipotez neanulat. Schemele 3. i 4. au variante datorit


necesitii de a se prinde comutativitatea conjunciei la nivel sintactic

Teorema 4.3. Sistemele SD0 i SD3 sunt echivalente, adic pentru

(ne vom referi la ele ca 3., respectiv 4.). Deoarece substituia [x/x]

fiecare mulime de formule nchise J LP1 i fiecare formul

este permis pentru orice formul, regula 5. are i forma particular


<<{(x)A}, A>, true> (care va fi notat 5.). S remarcm i faptul c

F LP1, avem: I SD0 F dac i numai dac I SD3 F.

regula 6. nu are nevoie de nici o restricie sintactic n momentul n


n plus, putem spune c SD0 este un sistem predicativ (de tip

care se lucreaz cu formule nchise. Mnemonicele provin de la


urmtoarele cuvinte: E eliminare; I introducere; N negaie;
C conjuncie.
1. (EN)

B, B
, c: se anuleaz ipoteza A.
A

Gentzen, standard), finit specificat i boolean complet. Dac


introducem , , i n alfabetul de baz, putem folosi i
urmtoarele reguli derivate:
7. (ED)

A B, A
A B, B
i
.
B
A

2. (IN)

B, B
, c: se anuleaz ipoteza A.
A

8. (ID)

3. (EC)

AB
AB
i
.
A
B

A
A
i
.
A B
B A

9. (EI)

4. (IC)

A, B
A, B
i
.
AB
B A

A, A B
.
B

10. (II)

5. (E)

(x )A
.
A[x/t]

B
, c: se anuleaz ipoteza A.
A B

11. (EE)

6. (I)

A
.
(x )A

AB
AB
i
.
AB
B A

12. (IE)

A B, B A
.
AB

13. (E)

(x)A, B
,
B

Demonstraia teoremelor urmtoare poate fi gsit n [CAZ1].

c: se anuleaz ipoteza A din subarborele

avnd rdcina acest B.

Fundamentele logice ale Informaticii

14. (I)
15. (DN)

223

224

A[x/t]
.
(x)A

Cristian Masalagiu

A
A
.
i
A
A

A
C

(i)

Analog cu precizrile deja fcute pentru regulile de baz, i schemele

B
3

(iii)

BC

AC

de mai sus sunt valabile pentru fiecare A, B LP1, fiecare x X i


( A C)

fiecare t T. n 13., condiia sintactic este dat de faptul c x nu

( B C)
(iv)

trebuie s aib apariii libere n ipotezele neanulate, diferite de A i


prezente n subarborele avnd rdcina exact acel B pentru care se

(ii)

aplic regula respectiv. De asemenea, n 14., condiia sintactic este ca

substituia [x/t] s fie permis pentru A. Mnemonicul E de pe a doua


poziie (din 11. i 12.) nu mai provine din cuvntul eliminare, ci de la

(v)

echivalen; mnemonicul I, de pe a doua poziie din 9., 10., provine de

AB

la implicaie, iar D de la disjuncie (D de pe prima poziie n 15.

( A B)

provine de la dubl). Reamintim c n regulile avnd variante cea de a


(vi)

doua schem va fi referit prin acelai numr (nume), urmat de un

apostrof. Extinderea alfabetului i folosirea regulilor derivate, pot


simplifica mult unele demonstraii, care sunt poate chiar mai mult
dect la sistemul SD3 suficient de sofisticate pentru un nceptor.
Exemplu. S se arate c avem
( A C), ( B C), ( A B) C, n SD0.
ntr-adevr, putem construi arborele de deducie:

Observaie. n arborele de mai sus, cifrele denot, aa cum am mai


precizat, o marc aplicat ipotezelor care trebuie anulate n momentul
aplicrii unei anumite reguli. Paii de aplicare i-am notat distinct, prin
((i) (vi)), ca de altfel i mrcile. De exemplu, la primul pas de
deducie (notat (i)), se folosesc drept ipoteze formulele oarecare A i
C, pentru a aplica o instan a regulii (IC) (n definiia general cele

Fundamentele logice ale Informaticii

225

226

Cristian Masalagiu

dou formule sunt denotate prin A, respectiv B). Aceast regul nu are

Exerciiul 4.3 ([CAZ1]). Fie A C, B C, A B i C formule

ataat nici o condiie de aplicare. Apoi, la pasul (ii), se continu

oarecare din LP1 i I LP1. S presupunem c I SD0 A C,

construcia demonstraiei (arborelui) prin aplicarea regulii (IN), care are


ca ipoteze formulele A C i ( A C) (n descrierea
general ele sunt notate B, respectiv B) i drept concluzie formula A,
avnd i condiia de aplicare c = se anuleaz ipoteza A. Marca 1 a fost

B C, A B (adic fiecare dintre formulele din membrul drept este


consecin sintactic din I n SD0). Artai c I SD0 C (aceasta se
numete n logic metoda de demonstraie prin disjuncia cazurilor).

aplicat, conform celor stabilite, nodului concluzie al aplicrii regulii


i ... lui A, n loc de A! Acest lucru nu este permis, tehnic vorbind

Exemplu (calculul cu secvene, sistemul SD1). Pornim iniial cu LP1,

(de fapt, pentru a fi foarte exaci, suntem n culp i cu utilizarea strict

construit peste un alfabet care conine toi conectorii i cuantificatorii

a parantezelor; soluia aici este simpl, introducndu-se de la bun

cunoscui (desigur c unii dintre ei pot fi adoptai prin notaie, dar i

nceput i variante cu paranteze pentru toate regulile). Pentru a aplica

vom folosi fr restricie): , , , , , . Se numete secven orice

corect teoria, ne putem folosi de instane ale regulii derivate (DN)

formul care are forma: A1 A2 Am B1 B2 Bn, unde

(deducem A din A, nainte de efectuarea primului pas (i) i astfel

n, m N, A1, A2, , Am, B1, B2, , Bn LP1 (m, n pot fi i egali cu

putem anula n (ii) ceea ce trebuie, adic pe A). Pe parcursul

0, dar nu simultan). Prin urmare, vom lucra practic cu clauze, dar

construciei arborelui se mai ntlnesc asemenea cazuri i devine

notaia pe care o vom adopta ne conduce la ideea c secvenele sunt de

evident necesitatea de a avea la dispoziie o bibliotec de reguli

mai degrab metaformule (alt tip de obiect, oricum mai complex) dect

derivate, pentru a lucra simplu cu un asemenea tip de deducie natural.

formulele cu care am fost familiarizai n capitolele anterioare. Astfel,

Acestea trebuie ns demonstrate n prealabil, lucru care nu este chiar

vom scrie o secven sub forma (desigur c n cele ce urmeaz nu

uor (totui, se pare c este mai uor de conceput un mecanism

are sensul de metaimplicaie):

automat de raionament pentru SD0 dect pentru SD3). O alternativ,

A1, A2, , Am B1, B2, , Bn.

bazat de fapt pe aceeai idee (utilizarea unor reguli derivate), este s

Mai mult, vom considera cei doi membri ai relaiei de mai sus ca fiind

folosim formulele din I sub o form echivalent, de exemplu

mulimi (atunci cnd ordinea elementelor va fi esenial, vom specifica

I = {A C, B C, A B}.

explicit acest lucru). Prin urmare, o secven va fi de forma U V


(U i V pot fi i mulimea vid, dar nu simultan) i vom putea scrie
U = U, A n loc de U = U U {A}, n ideea c, din anumite motive,

227

Fundamentele logice ale Informaticii

228

Cristian Masalagiu

elementul A din U trebuie pus n eviden. Vom extinde notaia la

T, pentru care [x/t] este permis pentru A; rolul lui A n (RT) este

submulimi oarecare, adic vom putea scrie (de exemplu) V, W n loc de

similar, instanele unei scheme referindu-se la celelalte elemente avnd

V U W i V, A, B n loc de V U {A} U {B}. Astfel, punem

statutul de a fi oarecare.

FORM = {U | U este secven n LP1}. Sistemul SD1, dup cum vom


vedea, dei atribuit n principal lui Gentzen (1934) i avnd o singur
schem de axiome (este drept, foarte general), se apropie (n privina
modalitii de utilizare) mai mult de un sistem de tip Hilbert. Sistemele
deductive bazate pe secvene au i o rspndit utilizare n situaii
nestandard (legate numai de definirea constructiv a unor mulimi n
mod axiomatic, fr referire la adevr). Mai concret, SD1 este un
sistem predicativ finit specificat i boolean complet, avnd:
Axiome. Pentru fiecare U, V FORM i pentru fiecare A LP1:
U, A V, A.

1. ( )

U V ,A
.
U , A V

2. ( )

U , A, B V
.
U, A B V

3. ( )

U,A V
.
U V , A

4. ( )

U V , A;U V , B
.
U V,A B

5. ( )

U , (A)[x/t] V
.
U , (x) V

6. ( )

U V, A
.
U V , (x)

7. (RT)

U , A V ;U V , A
.
U V

Reguli de inferen. Schemele de mai jos (care, din nou, sunt


numerotate dar au ataat i un nume mnemonic care nu mai necesit
explicaii - exceptnd poate (RT) care nseamn regula tieturii) sunt
valabile pentru fiecare U, V FORM, fiecare A, B LP1, fiecare
x X i fiecare t T . n regula 5., substituia [x/t] trebuie s fie
permis pentru A, iar n 6., x nu trebuie s apar liber n nici o formul
din U sau V. n momentul n care vor exista mai multe premize ntr-o
regul, vom folosi pentru separarea lor ;. Atenie la faptul c regulile
5. i 7. au o infinitate de premize (de exemplu, U, (A)[x/t] V din
() trebuie neles ca reprezentnd U, (A)[x/t1]

V;

U, (A)[x/t2] V; ... , adic se iau n considerare toate elementele t din

Conform cadrului general fixat, o metaformul (aici, o secven)


U V este teorem n SD1 dac exist un arbore (care reprezint o
demonstraie a lui U V) avnd n rdcin pe U V i axiome n
frunze (n acest sens ns, sistemul doar genereaz constructiv
mulimea teoremelor). Dac vrem s legm SD1 de Val (LP1) i s
enunm o teorem de corectitudine i completitudine, trebuie s
interpretm relaia de consecin sintactic I F (I LP1,
F LP1) prin: exist G1, G2, ... , Gn I astfel nct

Fundamentele logice ale Informaticii

229

G1, G2, ... , Gn F Th(SD1). n particular, SD1 F n seamn c


metaformula F (adic F) este teorem n SD1. Dei se poate
enuna o teorem de corectitudine i completitudine mai general
(oricum sistemul este corect; demonstrarea completitudinii este mai
dificil datorit regulilor cu un numr infinit de premize; pe de alt
parte, se poate arta c putem renuna la (RT), fr a se reduce puterea
deductiv a sistemului, demonstraiile fiind n schimb mai lungi), ne
limitm la a aminti c avem:

230

Cristian Masalagiu

mai puine operaii logice). Desigur c ceea ce am descris mai sus nu


este nc un algoritm, care s poat prelucra ntrega clas de secvene
(nu este nici mcar un semialgoritm), datorit numrului infinit de
premize din 5. i 7. Vom ilustra totui procedeul printr-un exemplu,
imediat dup ce dm i cteva reguli de inferen derivate (presupunem
c U, V FORM, A, B LP1, x X, t T sunt elemente oarecare;
c n 14., x nu apare liber n nici o formul din U sau V; c n 15. nu
mai avem o infinitate de premize ca n 5., valoarea concret a lui t
furniznd doar o instan a regulii n ansamblu; totui, n 15.,

Teorema 4.4. Fie orice F LP1. Atunci:


F dac i numai dac SD1 F.

Sistemul SD1 are avantajul, fa de SD3 i SD0, c putem


deriva imediat un procedeu automat ([CAZ1]) de construire a unei
demonstraii (arbore). S presupunem astfel c avem de demonstrat
secvena U V n SD1. Alegem un nod, care este frunz (iniial,
acesta nu va putea fi dect rdcina, adic nodul care conine U V),
i anume secvena care se afl plasat n el, o formul din secven i
operaia logic principal a formulei (conectorul sau cuantorul care

substituia [x/t] trebuie s fie permis pentru A).


Reguli de inferen derivate pentru SD1:
8. ( )

U , A V; U , B V
.
U , A B V

9. ( )

U V , A, B
.
U V , A B

10. ( )

U V , A; U , B V
.
U , A B V

11. ( )

U,A V,B
.
U V , A B

12. ( )

U , A, B V ;U V , A, B
.
U , A B V

13. ( )

U , A V , B;U , B V , A
.
U V , A B

14. ( )

U, A V
.
U ,x A V

furnizeaz o prim mprire a formulei n subformule). Se aplic


acum una dintre regulile 1. 7., obinndu-se unul sau (maxim) dou
noi noduri, apoi se reia alegerea unei frunze. Procedeul se oprete
atunci cnd frunzele conin doar axiome (acestea se pot numi noduri
terminale; ideea este s alegem spre aplicare acele reguli care
genereaz noi noduri, care sunt fie terminale, fie conin secvene avnd

231

Fundamentele logice ale Informaticii

U V , A[x/t]
.
U (x)A,V

15. ( )

232

Cristian Masalagiu

ncheiem acest paragraf preciznd faptul c sistemul SD2 (pe


care nu l vom trata detaliat), atribuit lui A. Schwichtenberg (1977),
este un sistem asemntor cu SD1, dar se refer la formulele LP1 n

Exemplu. Regula () se poate obine pe baza deduciei

care negaia poate fi plasat doar imediat n faa unei formule

(metaformulele U, B V, B i U, A V, A sunt axiome):

atomice. Pentru acesta, se poate demonstra mai uor posibilitatea

U , A, B V

U, B V , B

U, A V , A

U , A B, B V

U V , A, B

U, A B V, A

eliminrii unei reguli de tipul (RT).

4. Recapitulare i Index
Subiectul capitolului curent este vast i de un deosebit interes,
att pentru filozofi, matematicieni i logicieni, ct i pentru cercettorii

U , A B, B A V

din alte domenii tiinifice, inclusiv informaticienii. Prin conceptul de


teorie logic, noiunea de adevr este tratat la nivel global, ca
reflectare a unei pri coerente a realitii. O baz iniial de cunotine,

U , ( A B) ( B A) V

alctuit din afirmaii presupuse a fi adevrate (ntr-un sens bine


precizat), i prezentat sintactic ca o mulime de (meta)formule, poate
fi ulterior completat cu noi afirmaii (cunotine), despre care nu se

Exerciiul 4. 4 ([CAZ1]). Artai c formula


(A C) (A B) (C D) (B D) LP1
este demonstrabil n SD1.
Exerciiul 4.5 ([CAZ1]). Se consider teoria grupurilor TG i

poate ti aprioric c reflect aceeai realitate. Utiliznd un procedeu


standard (obinerea de consecine semantice), se pot afla chiar toate
afirmaiile adevrate n contextul respectiv. Din punct de vedere
algoritmic, problema aflrii tuturor consecinelor semantice dintr-o

sistemul deductiv asociat, SDTG. Fie u, v T, termi oarecare. S se

mulime dat de formule i chiar problema de decizie mai simpl Este

arate c u = v v = u este teorem n TG, folosind deducia

formula F o consecin semantic din mulimea G ?, sunt de cele mai

natural.

multe ori nedecidabile (sau cel mult semidecidabile). Chiar n cazul


unor probleme de acest tip decidabile, rezultatele privind complexitatea
(algoritmilor care le rezolv) sunt de obicei descurajatoare (algoritmii

Fundamentele logice ale Informaticii

233

234

Cristian Masalagiu

fiind, n cazurile nebanale, exponeniali ca timp de execuie, urmeaz c

domeniu, de a adapta algoritmii existeni i conceptele legate de

problema este n fapt netratabil). Abordrile sintactice ale rezolvrii

programarea logic, urmrindu-se eficientizarea acesteia i apropierea

problemelor au cel puin dou avantaje deloc de neglijat. Astfel, se pot

de idealurile Inteligenei artificiale.

selecta din start subclase de formule interesante, cu o form


convenabil, pentru care rezolvarea problemei este mai simpl. Apoi,

Atenionm asupra faptului c termenii pe care i-am selectat n

algoritmii generali bazai pe sintax (dei nu neaprat mai eficieni),

Indexul care urmeaz este posibil s nu fie chiar cei mai importani, iar

sunt mai flexibili, mai uor de tranformat i adaptat, mai uor de extins

paginile indicate s-ar putea s nu fie chiar primele n care apare

i de a fi aplicai i n alte situaii/contexte. Sistemele deductive

cuvntul respectiv (aceasta datorit generalitii subiectului):

formalizeaz cele de mai sus, apelnd la concepte cum ar fi axiom,


regul de inferen, teorem, consecin sintactic. Legtura dintre

teorie logic, 191

cele dou noiuni generale se stabilete n mod concret prin teoreme de

sistem deductiv (de demonstraie), 191

corectitudine i completitudine. Chiar dac uneori suntem nevoii s

axiom, 191

renunm la demonstrarea completitudinii sau chiar la ataarea unui

regul de inferen (reguli corecte sau sound), 191

concept de adevr formulelor, sistemele de demonstraie pot fi

demonstraie (consecin sintactic; deducie; raionament), 191

importante prin ele nsele. Astfel, nafara exemplelor considerate,

metaformul, 193

standard sau nestandard (SD0, SD1, SD3, etc.), mai poate fi amintit i

sistem deductiv standard, 200

aa-numitul calcul cu tabele ([OHL]), folositor nafara contextului

regul de inferen derivat, 204

teoriilor logice.

axiomatizarea unei teorii logice, 207


teorie logic nedegenerat, consistent, finit axiomatizabil, 207

Teoriile logice i sistemele de demonstraie constituie prin urmare

teorem de corectitudine i completitudine, 208

cadrul formal prin care pot fi studiate ntr-un mod foarte precis pri ale

sistem deductiv corect i complet, 208

realitii prin prisma oricrei tiine (vezi de exemplu teoriile

sistem deductiv necontradictoriu (consistent), 210

matematice formale), conceptele menionate n primele capitole

sistem deductiv independent i minimal, 210

nemaifiind ambigue.

sistem deductiv boolean complet, 214-215

Pentru logicieni subiectul este inepuizabil i

foarte atrgtor, obinndu-se i astzi noi rezultate surprinztoare.

sistem deductiv propoziional sau predicativ, 214-215

Informaticii i revine sarcina de ine pasul cu noile descoperiri n

sistem deductiv de tip Hilbert, 215

Fundamentele logice ale Informaticii

235

236

Cristian Masalagiu

sistem deductiv de tip Gentzen, 215

Ax5. A (B A B)

deducie natural, 215

Ax6. A A B

sisteme deductive echivalente, 218

Ax7. B A B

sistem deductiv finit specificat, 219

Ax8. (A D) ((B D) (A B D))

calculul cu secvene, 223

Ax9. (A B) (A B)
Ax10. (A B) (B A)

5. Exerciii
1. S se demonstreze n sistemul SD3 urmtoarele formule
([CAZ1]):
(i) (A B) ((B C) (A C)).
(ii) (A (B C)) (B (A C)).
(iii) A A.
2. Rezolvai Exerciiul 4.1.
3. Rezolvai Exerciiul 4.2.

Ax11. (A B) ((B A) (A B))


Ax12. (A A) A
Ax13. A (A B)
Reguli de inferen. Acestea sunt (MP) i regula substituiei,
(RS). Schema este valabil pentru fiecare F, G1, G2, ... , Gn
LP. n cele de mai jos, F(A1, A2, ... , An) denot faptul c F este
construit peste (exact) mulimea de variabile propoziionale
{A1, A2, ... , An}, iar F(G1, G2, ... , Gn) denot o formul F n

4. Rezolvai Exerciiul 4.3.

care fiecare apariie a lui A1 se n locuiete cu G1, fiecare

5. Rezolvai Exerciiul 4.4.

apariie a lui A2, cu G2, . a. m. d. , fiecare apariie a lui An, se

6. Rezolvai Exerciiul 4.5.

nlocuiete cu Gn, simultan:

7. Fie sistemul deductiv SIN1 ([CAZ1]), dat prin axiomele i


regulile de mai jos.

(RS)

F(A1 , A 2 ,..., A n )
F(G1 , G 2 ,..., G n )

Axiome. Pentru fiecare A, B, C, D LP, avem:

Acesta este un sistem deductiv propoziional standard, de tip

Ax1. A (B A)

Hilbert, construit peste LP care are toi conectorii standard.

Ax2. (C (A B)) ((C A) (C B))

Sistemul este boolean complet, dar incomplet din punctul de

Ax3. A B A

vedere al Val (LP). Astfel, se poate arta c formule valide

Ax4. A B B

cunoscute, cum ar fi A A (legea negrii negaiei) sau

Fundamentele logice ale Informaticii

237

A A (legea teriului exclus) nu sunt teoreme n SIN1. Ca

Capitolul 5

observaie suplimentar, s spunem c dac pstrm doar

Programare logic

Ax1. Ax.11. (mpreun cu (MP) i (RS)), sistemul mai poart


numele de calculul propoziional pozitiv (datorat lui Hilbert).
Acesta este desigur tot incomplet fa de Val (LP), dar are
avantajul c n el putem demonstra tot ceea ce avem nevoie, n
ipoteza c nu vrem s folosim negaia.
Artai c:
(i) Sistemul este corect fa de Val (LP).
(ii) (A B) ((A B) A), legea reducerii la absurd,
este teorem n SIN1.
8. Dai o axiomatizare a teoriei formale a grupurilor, fr a folosi
simbolurile care desemneaz elementul neutru i operaia de
simetrizare.

S punctm nc o dat faptul c realitatea (sumumul


cunotinelor noastre despre o parte a lumii reale, la un moment dat)
poate fi modelat prin afirmaii, care, la rndul lor, pot fi reprezentate
n logica formal clasic, sintactic, prin formule (metaformule).
Afirmaiile au asociat o semantic, adic o valoare de adevr. Clasei
de formule alese, FORM, i se ataeaz astfel i o clas de structuri, Str,
prin care valoarea de adevr (unic n contextul precizat) a oricrei
formule poate fi efectiv calculat (pentru fiecare F FORM i fiecare

S Str, obinem S(F) B). Problemele principale privind modelarea


n modul descris a prii de realtate alese sunt legate de posibilitatea
de a decide pe de o parte dac formulele corespunztoare nu sunt
cumva contradicii (sau contradictorii ca mulime) i pe de alt parte
dac alte formule (reprezentnd noi cunotine) reflect sau nu
realitatea existent (altfel spus, sunt sau nu consecine semantice din
formulele iniiale). Totul se reduce n final la decidabilitatea i
tratabilitatea unor probleme de tip SAT, SAT1, etc. Dei rezultatele
teoretice, fie privind direct structura FORM i a unor sisteme deductive
pentru FORM (de exemplu, nedecidabilitatea SAT1 sau netratabilitatea
SAT), fie privind legtura dintre asemenea sisteme deductive i

Val(FORM) (lipsa unor teoreme de completitudine n special) sunt mai


degrab negative, exist i cteva concluzii optimiste: (semi)algoritmii

239

Fundamentele logice ale Informaticii

240

Cristian Masalagiu

sintactici pentru rezolvarea SAT, SAT1 sunt mai uor de neles

relaiilor (predicatelor, afirmaiilor). Esena sa este exprimat prin

(pentru calculator, n mod sigur) i de manipulat dect cei bazai pe

paradigma de programare, datorat lui R. Kowalski ([KOW]):

semantic; ei sunt tratabili mcar pentru anumite subclase interesante

Algoritm = Logic + Control. n sensul celor spuse anterior, prin

de formule; chiar n lipsa unor asemenea (semi)algoritmi, se pot

Logic se nelege totalitatea cunotinelor de care dispunem n

imagina anumite proceduri implementabile, de tip interactiv (dialog n

privina unei lumi (parte a realit ii), cunotine exprimate prin

timp real cu utilizatorul), care pot furniza, dac nu rspunsuri

formule (aparinnd, n general, unui fragment al LP1=), iar prin

complete, mcar rspunsuri pariale, sau indicaii utile despre cum (i

Control, strategia (algoritmul) prin care se manipuleaz o clas de

n ce situaii) s-ar putea obine un rspuns convenabil. Prin urmare,

asemenea formule, n vederea obinerii unui anumit r spuns

tot ceea ce r mne de f cut este s se g seasc asemenea algoritmi,

(aceasta implementnd, n general, un anumit tip de rezoluie). n

semialgoritmi, proceduri automate, etc., pentru clase convenabile de

cele ce urmeaz, vom face doar o scurt introducere n aceast

(meta)formule, avnd ataat o noiune corespunztoare de adevr.

tematic, bazndu-ne n principal pe [MAS1], [MAS2] (i, desigur,

Din punctul de vedere al unui utilizator, alternativa propus de

bibliografia indicat n acea lucrare).

Programarea logic este atrgtoare. Astfel, n loc s se utilizeze


(pentru reprezentarea informaiei i prelucrarea acesteia) un

1. Exemple de programe logice pure

limbaj de programare clasic (imperativ, orientat obiect, etc.) poate

innd cont c scopul principal al acestui capitol este doar unul

fi preferat un limbaj creat special pentru reprezentarea de

introductiv pentru un domeniu vast, ne vom baza n principal pe

(meta)formule i n care un (semi)algoritm (sau chiar procedur

exemple (cu caracter didactic) i nu pe enumerarea unor concepte sau

interactiv ) pentru rezolvarea SAT(1) i bazat, de exemplu, pe

rezultate formale. Deoarece este posibil ca exemplele s fie reluate i

rezoluie, este implementat direct n compilatorul (interpreterul)

dezvoltate, vom proceda din nou la numerotarea lor n secven.

asociat. Asemenea limbaje sunt cunoscute i sub numele de limbaje


de

tip

PROLOG.

Limbajul PROLOG

ntr-o

prim

form

implementabil a fost conceput de ctre un grup de cercettori n

Exemplul 5.1 (lumea lui Adam i Eva). Se cunosc urmtoarele fapte


i afirmaii mai complexe din/despre aceast lume:

Inteligena artificial , la nceputul deceniului al optulea al secolului


trecut, la Universitatea din Marsilia, Frana ([ROU]), cptnd ns

Evei i plac merele.

ulterior extensii, transformri i utilizri nebnuite la stadiul iniial.

Evei i plac vinurile.

Este un limbaj declarativ, dedicat reprezent rii i prelucr rii

241

Fundamentele logice ale Informaticii

Lui Adam i place orice persoan creia i plac vinurile.

242

Cristian Masalagiu

Relaii (leg turi) ntre (mulimi de) obiecte. Singura relaie


identificabil este a place. Aceasta va fi reprezentat formal printr-un
simbol predicativ, notat place P2 (nici aici modalitatea de scriere nu

n condiiile de mai sus, am dori s tim dac:

este ntmpltoare).
Exist o persoan pe care s o plac Adam?

Transform ri ntre (mulimi de) obiecte. Acestea s-ar reprezenta prin


simboluri funcionale de aritate mai mare ca 0. n cazul nostru, nu

Desigur c n cazul unui rspuns pozitiv, am dori s tim i care anume

exist nici o asemenea transformare care s poat fi identificat.

ar fi persoana (persoanele) respectiv (respective).

Afirmaii. n acest moment, putem traduce cunotinele existente n

Primul pas n scrierea unui program de tip PROLOG, pur, este s

formule. Avem:

formalizm afirmaiile anterioare (inclusiv interogarea) prin formule


din LP1. Pentru aceasta, s identificm mai nti elementele importante

G1: place(Eva, Mere) traduce faptul Evei i plac merele.

din lumea considerat. Vom distinge astfel:

G2: place(Eva, Vinuri) traduce faptul Evei i plac vinurile.

Obiecte. Eva, mere, vinuri i Adam sunt singurele obiecte care pot fi
identificate ca atare n aceast lume simpl (nu este neaprat nevoie s

A treia fraz iniial exprim ceva puin mai complex despre lumea n

facem

fiine/vieuitoare,

cauz i este natural s ne gndim la o formul compus. Putem

oameni/persoane, etc.; adic, ntr-un limbaj de specialitate, nu este

reformula fraza mai nti prin Dac exist cineva cruia i plac

nevoie de tipizare). Ele vor interpretate drept (simboluri de) constante

vinurile, atunci de aceea (acela) i place lui Adam (oricine ar fi acel

funcionale, adic elemente ale lui F0, pe care le vom nota prin Eva,

cineva) i apoi prin Dac lui x i plac vinurile, atunci lui Adam i

Mere, Vinuri, Adam (faptul c ncepem cu litere mari n scrierea

place de x, pentru fiecare x X, adic obinem:

distincie

ntre,

de

exemplu,

lucruri,

constantelor nu este ntmpltor).


Nume generice pentru obiecte. Avem nevoie de acest lucru deoarece

G3: (x)(place(x, Vinuri) place(Adam, x)).

exist exprimarea Lui Adam i place orice persoan ... . Vom nota
cu X mulimea tuturor acestor nume (care vor fi desigur nume de

Interogarea (ntrebarea). Ea se traduce imediat prin Exist y astfel

variabile) i vom pune, ca i pn acum de altfel, x, y, X.

nct lui Adam i place de y? (alegerea unui nume diferit de x pentru

243

Fundamentele logice ale Informaticii

244

Cristian Masalagiu

variabila corespunztoare nu este ntmpltoare), adic dispunem i de

C2 = {place(Eva, Mere)},

formula din LP1:

C3 = {place(Eva, Vinuri)},
C4 = { place(x, Vinuri), place(Adam, x)}.

G: (y)place(Adam, y).
Al treilea pas const n a gsi o respingere n LP1, pornind cu clauzele
Pentru a efectua i al doilea pas (suntem deja ntr-un cadru formal

lui F*, folosind rezoluia de baz, adic singura metod cunoscut de

cunoscut), s observm c a rspunde la ntrebare nseamn a vedea

noi pn n prezent. Prin urmare, calculm mai nti D(F) i apoi E(F)

dac G este (sau nu) consecin semantic din {G1, G2, G3}, ceea ce,

(sau/i E(F)). Neexistnd constante de aritate mai mare ca 1 n F*,

conform Teoremei 2.3, punctul (iii), este echivalent cu a arta c

gsim imediat:

F = G1 G2 G3 G este contradicie. Desigur c prin transformri

D(F) = {Eva, Mere, Vinuri, Adam}.

succesive, aducem uor (nici mcar nu este nevoie de skolemizare) pe F

E(F) = E(C1) U E(C2) U E(C3) U E(C4) (nu o explicitm mai mult

la FNSC i apoi obinem reprezentarea lui F* ca mulime de mulimi de

deoarece este foarte simpl).

literali:

Gsim o demonstraie (scurt) prin rezoluie n LP a clauzei vide,


pornind cu elementele lui E(F), dac notm mai nti cu C1' clauza

place(Eva,

Mere)

place(Eva,

Vinuri)

(x)( place(x, Vinuri) place(Adam, x)) (y)place(Adam, y)


(y)(x)(place(Adam,

y)

place(Eva,

Mere)

obinut din C1 prin aplicarea substituiei de baz [y/Eva] i cu C '4


clauza obinut din C4 aplicnd [x/Eva] (att C1' ct i C '4 aparin

place(Eva, Vinuri) ( place(x, Vinuri) place(Adam, x))).

desigur lui E(F)). Astfel, avem Res( C1' , C '4 ) = { place(Eva, Vinuri)}

F* = place(Adam, y) place(Eva, Mere) place(Eva, Vinuri)

(pe care o notm cu C). n sfrit, Res(C, C3) = { }.

( place(x, Vinuri) place(Adam, x)),


Prin urmare, am satisfcut parial cerinele enunate deoarece

adic, n scrierea cu mulimi:


F*

{{place(Adam,

y)},

{place(Eva,

{place(Eva, Vinuri)},{ place(x, Vinuri), place(Adam, x)}}.


Pentru a simplifica unele raionamente, vom nota:
C1 = { place(Adam, y)},

Mere)},

am gsit un rspuns corect la interogarea noastr. Din pcate, nu am


aflat i care este (sunt) acel (acele) obiect(e) pe care l (le) place
Adam. Este adevrat c acest (unic, n cazul de fa) obiect (Eva) ar
putea fi cumva dedus din substituiile fcute pentru a avea succes"

Fundamentele logice ale Informaticii

245

246

Cristian Masalagiu

). Practic ns, am avea astfel nevoie de un alt tip de

clauze Horn). nainte de a furniza detalii suplimentare, considerm

rezoluie, care, aplicat unei mulimi date de clauze din LP1 s

util prezentarea unui alt exemplu, pentru a vedea c limbajul sugerat

produc n mod explicit (mcar ca un efect secundar) asemenea

este la fel de puternic ca orice alt limbaj de programare de nivel nalt,

substituii (pe care le vom numi substituii de succes). Deocamdat,

putndu-se efectua n acesta, de exemplu, calcule aritmetice uzuale

putem totui trage o concluzie privind aspectul general al unui

(dei, desigur, nu aceasta este utilitatea principal a PROLOG-ului).

(obinere

program, n accepiunea programrii logice (program PROLOG pur).


Exemplul 5.2 (adunarea n N). S descriem lumea adunrii pe

El conine:

Fapte (afirmaii simple, modelate prin formule atomice de baz

mulimea numerelor naturale i apoi s calculm 3 + 2 folosind un

din LP1), care sunt formule elementare de program.

program logic interogat. Cazul considerat reprezint deja o parte a unei

Alte formule de program (formule compuse din LP1, mai exact

realiti avnd o descriere formal, matematic. Astfel, putem porni de

formule Horn nchise, probabil pozitive).

la definiia lui Peano pentru N, adic de la definiia constructiv deja

O formul de interogare (formul compus din LP1, avnd i

folosit:

ea o form mai special, negaia ei fiind probabil o formul


Horn nchis, negativ).
Generaliznd, concluzionm c formulele program (s spunem

Baza. 0 N.
Pas constructiv. Dac n N atunci s(n) N.

G1, G2, ... , Gn) sunt formule din LP1 aflate n FNSC, clauzele fiind
clauze Horn avnd exact un literal pozitiv (sunt clauze Horn pozitive).

Reamintim c ideea n definiia de mai sus este aceea c obiectul notat

Formula de interogare G (numit i scop), apare tot ca o formul

0 este numr natural i dac un obiect numit n este considerat numr

nchis, ns cuantificat existenial. Dei n exemplul considerat exist

natural atunci i succesorul su, notat s(n) este tot numr natural.

doar un literal (pozitiv), se admite prezena mai multor asemenea

Acum putem da o definiie constructiv a adunrii, ca operaie binar

literali, formula scop fiind de fapt o conjuncie de literali pozitivi,

pe N, bazndu-ne pe reprezentarea a doar dou proprieti ale acesteia

nchis, aflat n FNPR, cuantificat doar existenial. Dup cum am

(suficiente pentru a calcula 3 + 2 n cadrul lumii descrise).

mai sugerat,

programul interogat va fi reprezentat de formula

F = G1 G2 ... Gn G (se poate considera i reprezentarea sa ca

Baza: x + 0 = 0, pentru fiecare numr natural notat x.

mulime de mulimi de literali, F fiind n FNSC i clauzele fiind

Pas constructiv: s(x + y) = x + s(y), oricare ar fi numerele naturale


notate x, y.

Fundamentele logice ale Informaticii

247

248

Cristian Masalagiu

Ultima definiie spune c adunarea lui 0 la orice numr natural nu are

Nume generice pentru obiecte (variabile): x, y, z, u, ... X.

nici un efect (numrul respectiv fiind lsat neschimbat) i c dac

Relaii ntre obiecte: A P3.

adunm la numrul x pe succesorul numrului y, se obine acelai lucru

Transform ri ntre obiecte: s F1.

Afirmaii (formule program):

ca i n cazul n care l-am aduna pe y la x i apoi am lua succesorul


numrului rezultat. Nu vom transforma nc ceea ce cunoatem n

G1 = (x)A(x, 0, x ).

formule, pentru c este evident c ne-am plasa n LP1=, pentru care


SAT1 este nedecidabil. Exist posibilitatea ca printr-un anumit truc de
natur tehnic s ascundem simbolul de egalitate (simbol predicativ
de aritate 2) ntr-un simbol predicativ de aritate mai mare. n cazul
nostru, ne este de ajuns un simbol predicativ de aritate 3, notat A.
Intuitiv, am avea A(a, b, c) = 1 dac i numai dac a + b = c. Cu
ajutorul unui asemenea simbol predicativ, cele dou egaliti din
definiia adunrii se traduc prin A(x, 0, x) respectiv prin dac

(fapt)

G2 = (x)(y)(z)(A(x, y, z) A(x, s(y), s(z))).

Interogarea (scopul). innd cont de definiia adoptat pentru


N, numrul 1 va fi desemnat de termul de baz s(0), 2, de
s(s(0)), etc. Datorit cerinei tehnice ca n formula scop s
apar nume de variabile distincte de cele deja folosite pentru
formulele program, vom pune:
G = (u)A(s(s(s(0))), s(s(0)), u).

A(x, y, z) atunci A(x, s(y), s(z)). Traducerea celei de-a doua egaliti
nu respect n totalitate semnificaia intuitiv iniial (ea spune acum

Al doilea pas. Programul logic interogat va fi dat de formula:

c dac z este suma dintre x i y, atunci succesorul lui z reprezint suma

F = G1 G2 G =

dintre x i succesorul lui y). Din nou, aceast exprimare este suficient

{{A(x,0,x)},{A(x, y, z), A(x, s(y), s(z)},{A(s(s(s(0))), s(s(0)), u)}}.

pentru a ne atinge scopul, care poate fi reformulat n cadrul logic


propus prin ntrebarea: Exist vreun num r natural care s

Al treilea pas. Urmrim obinerea unei respingeri pornind cu F i,

reprezinte suma dintre numerele 2 i 3 (i, eventual, care este/sunt

eventual, deducerea unei valori, care ar fi desigur s(s(s(s(s(0))))),

acesta/acestea)? S parcurgem cei trei pai descrii n exemplul

adic 5, pentru suma dintre 3 i 2, valoare care apare pe undeva n

anterior, necesari pentru a forma un program logic interogat.

cursul procesului de aplicare a rezoluiei de baz (prin intermediul


substituiilor). Lsm aplicarea efectiv a rezoluiei de baz pe seama

Primul pas.

Obiecte: 0.

cititorului (a se vedea i exerciiile din finalul capitolului), nu nainte de


a observa c D(F) este, la fel ca n exemplul anterior, suficient de
simplu, i anume: D(F) = {0, s(0), s(s(0)), } = {s (n)(0) | n N}.

Fundamentele logice ale Informaticii

249

250

Cristian Masalagiu

Putem trage concluzia general c un program logic, spre


deosebire de alte limbaje comerciale de nivel nalt, efectueaz calcule
simbolice, numerele (de exemplu) fiind iruri de caractere i operaiile
cunoscute cu numere avnd corespondent n anumite transformri

Definiia 5.1 (program logic interogat; program PROLOG pur).

Program logic. Acesta conine:


o Fapte, avnd forma:

asupra irurilor de caractere. Din acest motiv timpul real necesar


pentru efectuarea unor asemenea calcule este foarte mare i nu este de

P.

aceea indicat s apelm la programarea logic pentru a efectua calcule


numerice. Este ns adevrat c implementrile comerciale ale unui

unde P este un literal pozitiv din LP1. Un asemenea

limbaj logic (de tip PROLOG, [MAS1]), ofer faciliti nestandard

literal pozitiv poate avea i variabile, presupuse a fi

pentru efectuarea rapid a unor asemenea calcule (exist i maini

implicit cuantificate universal, dei n general el

PROLOG dedicate).

reprezint o formul de baz. Formula reprezentat este

Vom descrie n continuare, tot pe scurt, un alt tip de rezoluie n

deci (*)(1 P) sau (*)P, care poate fi citit Sigur

LP1, echivalent cu rezoluia de baz i cunoscut sub numele de

P. Notm cu G1 = {G1, G2, , Gp} mulimea (finit a)

rezoluie pur (specific). Acesta va furniza, n cazul obinerii unei

faptelor programului notat F.

respingeri, ca efect secundar, i o substituie de succes (din care se

o Clauze definite (suplimentare). Aspectul lor este:

pot/poate extrage simplu numele obiectelor/obiectului care satisfac(e)


interogarea).

P Q1, Q2, , Qn.

2. Sintaxa programelor logice

unde P i Qi, i [n] sunt literali pozitivi din LP1

Un program logic (clasic, standard) este format dintr-o

(simbolul este uneori nlocuit prin :-, ca i n clauza

mulime finit de formule program, alctuit din fapte i o mulime de

scop). Formula reprezentat este

formule suplimentare. Un program logic interogat este un cuplu

(*)(Q1 Q2 Qn P) sau

format dintr-un program logic i o formul scop. Toate formulele


implicate sunt formule Horn, aflate n FNSC i cuantificate universal
(clauza scop, doar n urma negrii ei).

(*)(P Q1 Q2 Qn). Se citete P, n


caz c

Q1 i

G2 = {Gp+1, G

Q2 i
p+2,

...

, G

i Qn.
p+q}

Notm

cu

mulimea (finit a)

251

Fundamentele logice ale Informaticii

Cristian Masalagiu

clauzelor definite ale programului F i cu G = G1 U G2.

FNR), clauzele fiind clauze Horn (eventual, reprezentate ca mulimi).

(uneori, chiar acest G este considerat a fi mulimea

Implementarea folosete o strategie SLD. n fiecare pas se efectueaz o

clauzelor suplimentare sau de program). Mai sus,

rezoluie pur , una dintre clauzele implicate fiind ntotdeauna clauza

p, q N, dar nu pot fi simultan egali cu 0.

scop curent (iniial, ea este formula de interogare G), cealalt


clauz fiind una dintre fapte sau clauzele definite aparinnd

Interogarea. Clauza scop este scris:

programului (pe scurt, o clauz program). innd cont de forma


formulelor care intervin i de definiia rezoluiei pure, exist o schem

o G = ? R1, R2, , Rk.

simpl care completeaz strategia SLD (prin precizarea acelei funcii de

Din nou, R1, R2, , Rk sunt literali pozitivi din LP1,


de aceast dat variabilele care apar fiind presupuse a fi
cuantificate

existenial.

Mai

exact,

clauza

scop

reprezint transcrierea unei formule Horn de tipul


(*)(R1 R2 R k), citit Exist elemente n
domeniul

considerat

astfel

nct

condiiile

R1, R2, , Rk s fie ndeplinite?, ceea ce prin negare


furnizeaz formula
G = (*)( R1 R2 Rk). Vom lua acum
F = <G, G>.

logic

nseamn

selecie). Astfel, se alege un literal (negativ) din clauza scop curent


(de obicei, acesta este primul intlnit, ca scriere) i capul (membrul
stng al) unei formule program, care este un literal pozitiv. Dac este
posibil, ei se unific, obinndu-se o nou clauz scop. Procedeul
continu i, dei nu avem garania terminrii lui, este tot ceea ce putem
spera n acest stadiu de cunoatere.
Relum mai n detaliu cteva concepte amintite pe scurt n
Capitolul 3.
Definiia 5.2 (unificare). Fie L = {L1, L2, ... , Lk} o mulime (finit),

Observaie. Dup cum am putut deduce din exemple, execuia unui


program

252

testarea

nesatisfiabilit ii

formulei

nevid, de literali din LP1. Ea se numete unificabil dac exist o


substituie s astfel nct card((L)s) = 1. n acest caz, s se numete

pq

unificator pentru L . O substituie s se numete cel mai general

i 1

unificator (m.g.u., pe scurt) pentru o mulime unificabil L dac orice

G i G, pe care o vom nota tot cu F. F este n FNSC nchis

(eventual, dup ce se redenumesc anumite variabile, acest lucru

alt unificator s se obine din s, adic pentru fiecare unificator s

provenind din necesiti tehnice, nu din nevoia de a aduce formula la

exist o substituie sub astfel nct s = ssub.

253

Fundamentele logice ale Informaticii

254

Cristian Masalagiu

S presupunem acum c avem dou clauze (distincte) din LP1

Teorema 5.1 (Julia Robinson). Orice mulime finit, nevid,

(care nu sunt neaprat clauze Horn, coninnd i variabile). Ideea

unificabil, de literali din LP1, admite un cel mai general unificator.

rezoluiei pure se bazeaz pe faptul c putem unifica (identifica textual)

Problema testrii faptului c o mulime de literali este unificabil este

ct mai muli literali din cele dou clauze cu ajutorul unei substituii

decidabil. De asemenea, gsirea unui cel mai general unificator pentru

convenabile i apoi i putem elimina pe acetia (rezultnd o nou

o mulime unificabil se poate face algoritmic.

clauz, n final), similar cu cazul rezoluei propoziionale.


Exist o metod relativ simpl (algoritm) pentru unificarea unei
Definiia 5.3 (rezoluia pur /specific ntr-un pas, n LP1). Fie C1,

mulimi date de literali. Fr a intra n amnunte, tot ceea ce trebuie s

C2 i R clauze n LP1, C1 C2. R se numete rezolvent (pur) pentru

nelegem este c trebuie s identificm poriuni de text, avnd (n

C1 i C2, obinut ntr-un pas, dac sunt ndeplinite condiiile:

cazul de fa) un format special. Acest lucru nu se admite a fi fcut

(i) Exist substituiile de redenumire s1 i s 2 astfel nct (C1)s1 i

dect prin intermediul variabilelor, folosind substituiile. n plus,

(C2)s2 nu au variabile comune.

apelurile recursive, de genul n substituia s, variabila

(ii) Exist literalii L1, L2, ... , Lm (C1)s1 i L'1 , L' 2 , ... , L' n (C2)s2

nlocuit cu termul t, care conine x, sunt interzise.

x este

astfel nct mulimea


Teorema 5.2 (a rezoluiei pure pentru LP1). Fie F LP1 o formul

L = { L1 , L 2 , ... , L m , L'1 , L'2 , ... , L'n }


este unificabil. Fie sub un cel mai general unificator pentru L.
(iii) R = (((C1)s 1 \ {L1, L2, ... , Lm}) U ((C2)s 2 \

{ L'1 ,

'

'

L 2 , ... , L n }))sub.

nchis, aflat n FNSC, F = (*)F* (F poate fi, n particular, un


program PROLOG pur). Atunci, F este nesatisfiabil dac i numai
dac

Res*(F*), adic dac i numai dac exist o demonstraie prin

rezoluie pur a clauzei vide (o respingere), pornind cu clauzele lui F.

Deoarece nu exist pericol de confuzii, vom folosi aceleai

notaii pentru rezoluia pur identice cu cele adoptate pentru rezoluia

Teorema 5.3 (completitudinea SLD-rezoluiei). Dac F este o

propoziional (ceea ce se schimb este practic doar definiia

mulime de clauze Horn din LP1, atunci, dac F este nesatisfiabil,

rezolvenilor obinui ntr-un pas). Teoremele urmtoare le prezentm

exist o respingere pornind cu F i care utilizeaz SLD-rezoluia pur.

fra demonstraie (se poate consulta [MAS1]).

Fundamentele logice ale Informaticii

255

256

Cristian Masalagiu

Desigur c SLD-rezoluia este i corect. Din pcate ns,


problema este netratabil relativ la complexitatea timp general. Mai

{place(Adam, x), place(x, Vinuri)}

{ place(Adam, y)}

mult, nevoia de a aborda simplu situaiile reale precum i anumite


cerine legate de implementare conduce deseori la pierderea
completitudinii rezoluiei (necesitatea de a manipula i formule care s
nu fie clauze Horn, cum ar fi cele care rezult prin apariia n clauza
scop a unor literali negai sau a disjunciei n loc de conjuncie;

[x/y]
{ place(y, Vinuri)}

{place(Eva, Vinuri)}

folosirea unor structuri de date apropiate de programarea imperativ,


ca de exemplu liste, stive, arbori; utilizarea unei strategii de construcie

[y/Eva]

a arborelui de rezoluie de tip DFS n loc de BFS, conform [CRO],


[MAS1], [MAS4], [MAS5]). Pentru a evita acest lucru, se pot utiliza
metode interactive, n care programatorul este invitat s ia decizii n
timp real, pentru a avea posibilitatea obinerii unui succes n execuia
unui program PROLOG (dirijnd el nsui execuia spre un posibil
succes).
Exemplul 5.1 (reluat). Vom arta cum putem gsi i o substituie
final de succes (pe post de cel mai general unificator pentru o anumit
mulime de literali), ca efect secundar al aplicrii rezoluiei pure. n
acest mod, obinem nu numai rspunsul de tip DA/NU la interogare,
ci i obiectele (obiectul) care o satisfac(e). Mai jos avem reprezentat
arborele de rezoluie pur (avd doar doi pai necesari a fi aplicai) care
descrie o respingere:

Reamintindu-ne c clauza scop era G = ? (y)place(Adam, y)., s


constatm c execuia programului interogat ofer un rspuns
pozitiv, dedus n urma existenei respingerii anterioare (el fiind DA,
adic este adevrat c G este consecin semantic din clauzele
program considerate, adic n lumea dat exist ntr-adevr ceva care
i place lui Adam). n plus, n graful de mai sus sunt prezente dou
substituii

elementare.

Prima

este

[x/y]

ea

reprezint

m.g.u.-ul care unific mulimea de literali {place(Adam, y),


place(Adam, x)} (dup algoritmul dedus din Teorema lui J.
Robinson; de fapt, se putea la fel de bine obine [y/x]). A doua
substituie ([y/Eva]) unific, similar, mulimea L = {place(y, Vinuri),
place(Eva, Vinuri)}. Ca urmare, pentru a obine

am folosit

substituia total s = [x/y][y/Eva] care ne dezvluie unul dintre


obiectele cutate i anume Eva (dac un asemenea obiect este sau nu

257

Fundamentele logice ale Informaticii

258

Cristian Masalagiu

unic, este o alt problem care poate fi rezolvat de ctre un interpretor

Respingerea anterioar ne spune c rspunsul la ntrebarea exist

PROLOG).

vreun numr natural care s fie suma dintre 2 i 3 ? este pozitiv. S


precizm i c n graful de mai sus notaiile reprezint:

Exemplul 5.2 (reluat). n mod cu totul similar ca mai nainte, fr a

A = { A(s(s (s (0)))), s (s (0)), u)}

construi ntreg arborele de rezoluie pur posibil, obinem respingerea:

a = sub1=[x/ s (s (s (0)))][y/ s (0)][u/ s (z)]


B = { A(s (s (s (0)))), s (0), z)}

(scopul iniial) A

{A(x, s(y), s(z)), A(x, y, z)}


(clauz suplimentar)

b = sub 2 [x/s(s(s(0)))] [y/ 0] [z/s(z)]


(n cauza suplimentar facem mai nti substituia [z/z], din motive
tehnice, netransparente n acest moment fr anumite informaii
suplimentare)

(scop nou, derivat) B

{A(x, s(y), s(z)), A(x, y, z)}


(clauz suplimentar)

C = { A(s (s (s (0)))), 0, z)},


c = sub3 =[x/ s (s (s (0)))][z/ s (s (s (0)))].
Substituia final este sub = sub1sub2sub3. Din inspectarea atent a

acesteia (a se urmri valoarea final a variabilei u, obinut succesiv


prin aplicarea substituiilor elementare care compun sub), rezult c
(scop nou) C

{A(x, 0, x)}

rspunsul dorit este: suma dintre 2 i 3 este 5.

(clauz suplimentar)
c

3. Rezumare i Index
Programarea logic reprezint o alternativ viabil pentru

(clauza
vid,
scop
final)

programarea clasic, n momentul n care realitatea este reprezentat


i studiat ntr-un mod declarativ. Datorit unor rezultate teoretice
negative, numrul de clase de formule care pot fi prelucrate convenabil
este destul de restrns. Mulimea clauzelor Horn din LP1 este ns una
dintre ele. Chiar n cadrul restrns considerat (pentru a nu mai aminti de
programarea n logici de ordin superior sau neclasice), adoptarea

259

Fundamentele logice ale Informaticii

260

Cristian Masalagiu

presupunerii lumii nchise, modul de a trata negaia, utilizarea

clauze program (definite), 246

disjunciei n interog ri, precum i implementarea unui dialog

formul de interogare (scop), 246

interactiv cu utilizatorul (prin care s se dirijeze din exterior execuia

substituie de succes, 246

unui program), nseamn extensii importante pentru programarea logic

formule (clauze) program, 248

([MAS1], [AND]) i justific orientarea unor grupuri semnificative de

unificare, 248

programatori ntr-o asemenea direcie.

cel mai general unificator, 249

Nici rezultatele teoretice, nici inovaiile de implementare, nici

rezoluie pur, 250

ariile de aplicabilitate ale Programrii logice nu sunt de altfel epuizate,

tratarea negaiei, 255

astfel nct acest domeniu, cu toat complexitatea sa, nu este nc unul

ipoteza lumii nchise, 255

fr viitor. Pentru informaii suplimentare, de actualitate, se pot


consulta

pe

INTERNET

site-urile:

http://www.amzi.com/,

http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/
contents.html,
http://www.cs.cmu.edu/Web/Groups/AI/html/faqs/lang/prolog/prg/
top.html, http://www.lpa.co.uk/, sau http://kti.ms.mff.cuni.cz/
~bartak/prolog/.
Indexul care urmeaz este i n acest capitol neexhaustiv (unii termeni
se pot repeta, datorit revenirii la anumite aspecte tratate n capitolele
anterioare):

programare logic, 236


limbaje de tip PROLOG, 236

4. Exerciii
1. Gsii respingerea bazat pe rezoluia de baz cerut n
Exemplul 5.2.
2. Considerm ([COT]) urmtorul program PROLOG notat F i
format din clauzele program (n toate exerciiile care urmeaz
adoptm convenia c variabilele se noteaz prin litere latine
mari, iar constantele, simbolurile funcionale i predicative,
folosind litere mici; de asemenea, simbolul este uneori
nlocuit i de ):
CP1: p(X, Z) q(X, Y), p(Y, Z).
CP2: p(X, X) .
CP3: q(c, b).

algoritm = logic + control, 237

Gsii o SLD-respingere pentru scopul G = ? p(U, b). Se cere

fapte, 237

i rezultatul execuiei programului interogat P = <F, G>.

program logic interogat, 242

Fundamentele logice ale Informaticii

261

3. Aritmetica ([COT]). Conform Exemplului 5.2, mulimea

262

Cristian Masalagiu

parinti(andrei, maria, paul).

numerelor naturale poate fi definit prin urmtorul program

parinti(eliza, maria, paul).,

PROLOG:

unde semnificaia predicatelor implicate este evident. De

numar_natural(0).

exemplu, parinti(E, M, T) este adevrat dac i numai dac M i

numar_natural(s(X)) :- numar_natural(X).,

T sunt prinii lui E, M fiind mama, iar T fiind tatl. Putem

unde predicatul numar_natural(X) afirm c X este un

atunci defini relaia sora_lui, n conformitate cu definiiile de

numr natural. Adunarea poate fi dat i de ctre predicatul

mai sus, prin (sora_lui(X, Y) este adevrat dac i numai dac

plus1(X, Y, Z):

X este sora lui Y):

plus1(0, X, X).

sora_lui(X, Y):- femeie(X), parinti(X, M, T), parinti(Y, M, T).

plus1(s(X), Y, Z) :- plus1(X, s(Y), Z).

Aceasta va fi (singura) clauz suplimentar a programului.

Predicatul plus2 este similar cu cel dat deja de noi n Exemplul

Se cere s se rspund la interogarea:

5.2 (i notat acolo cu A):

? :- sora_lui(eliza, andrei).

plus2(0, X, X).

5. Arbori de c utare i arbori de demonstrare ([COT]). Fiind

plus2(s(X), Y, s(Z)) :- plus2(X, Y, Z).

dat un program PROLOG, un scop iniial i regula standard de

Gsii definiii PROLOG ale predicatelor minus(a, b, c),

selecie a subscopurilor (literalii din clauza scop curent, dac

inmultire(a, b, c) i exp(a, b, c), utiliznd plus1, plus2.

sunt mai muli, sunt selectai n ordinea scrierii lor textuale, n

Intuitiv, predicatele cerute trebuie s fie adevrate dac i numai

vederea unificrii cu capul unei clauze program, care va fi

dac sunt respectiv ndeplinite condiiile a - b = c, a b = c i

aleas ulterior), cutarea tututror alternativelor posibile se poate

c = b a.

reprezenta printr-un arbore, numit arbore de cutare (de

4. Fie baza de cunotine ([COT]) exprimat prin faptele:

evaluare sau arbore OR). n acest arbore, rdcina este scopul

barbat(paul).

iniial. Orice nod neterminal este etichetat cu o conjuncie de

barbat(andrei).

subscopuri, derivat din nodul tat ntr-un singur pas de

femeie(maria).

rezoluie. Descendenii imediai ai unui nod sunt scopuri

femeie(eliza).

alternative derivate din scopul prezent n acel nod. Cutarea se

femeie(emilia).

termin cnd toate nodurile sunt terminale. Orice nod terminal

parinti(emilia, maria, paul).

este etichetat cu n caz de terminare reuit (cu succes) i cu

263

Fundamentele logice ale Informaticii

264

Cristian Masalagiu

n cazul terminrii cu eec (scopul nu poate fi satisfcut).

Dup cum am precizat, am urmat regula standard de selecie a

Orice drum n arbore (o secven de noduri de la rdcin la un

subscopurilor (n graf este subliniat literalul selectat; arcele sunt

nod terminal) reprezint un calcul posibil. Pot exista i drumuri

notate cu numerele clauzelor corespunztoare).

infinite. S considerm urmtoarele clauze generice:

Fie acum, din nou, un program, un scop iniial, dar i regula

a :- b, c.

/*clauza1*/

standard de selectare a clauzelor program (al cror cap s-ar

a :- d.

/*clauza2*/

putea unifica

b :- e.

/*clauza3*/

subscopurile pot forma un aa numit arbore de demonstrare (de

d.

/*clauza4*/

derivare, arbore AND). n acest arbore, orice nod este un

e.

/*clauza5*/

(sub)scop. Rdcina are n calitate de descendeni imediai

cu

subscopul curent

ales deja).

Atunci

i scopul iniial

subscopurile scopului iniial. Fiecare dintre acestea au n calitate

? :- a.

de descendeni imediai subscopurile clauzei selectate. Nodurile

Arborele de cutare corespunztor programului interogat

terminale sunt notate, ca i mai nainte, prin i .

anterior este:

Mulimea de noduri care preced imediat nodurile terminale

a
1
b,c

reprezint subscopurile, conjuncia crora formeaz scopul


complex ce corespunde arborilor de demonstrare:

a
3

e,c

5
c

265

Fundamentele logice ale Informaticii

266

Cristian Masalagiu

Ne-am plasat n contextul aceluiai program i, conform celor

S considerm acum urmtorul program interogat:

spuse, pentru scopul iniial avem doi arbori de demonstrare (cei

bunic(X, Y):-tata(X, Z), tata(Z, Y).

de mai sus) care corespund, respectiv, seleciei clauzei1 i

bunic(X, Y):-tata(X, Z), mama(Z, Y).

respectiv seleciei clauzei2. Arborii sunt reprezentai n figura

mama(maria, paul).

anterioar. Acum putem cumula arborii anteriori n:

mama(I, J):-mama(I, K), frate(K, J).


tata(ion, maria).

frate(paul, petru).,
b,c

scopul fiind ? :- bunic(ion, petru).


Gsii arborele AND-OR corespunztor.
6. Artai c urmtoarea mulime de literali din LP1 este

unificabil i gsii un (cel mai general) unificator:

L = {P(x, y), P(f(b), g(x)), P(f(z), g(f(z)))}.


7. Exprimai urmtoarele afirmaii prin formule din LP1:

Fiecare dragon este fericit dac toi copiii si pot zbura.

Dragonii verzi pot zbura.

Un dragon este verde dac este copilul a cel puin unui


dragon verde.

Mai exact, cele dou tipuri de informaii, furnizate de

Artai c afirmaia Toi dragonii verzi sunt fericii este

arborele/arborii de demonstrare (AND) i arborele de cutare

consecin semantic din afirmaiile anterioare. Putem modela

(OR) pot fi efectiv reprezentate printr-un singur arbore (cel de

problema anterioar ca un program PROLOG interogat? Pentru

mai nainte), numit arbore AND-OR (sau arbore complet de

consistena lumii modelate ar mai fi utile i alte afirmaii?

calcul). Arborele AND-OR descrie practic spaiul total de


calcul care poate fi obinut din mulimea de clauze ale
programului interogat. Acesta este n fapt o reprezentare
unitar a tuturor tipurilor de nedeterminism care apar, n mod
implicit, n momentul execuiei programelor logice ([MAS1]).

268

Cristian Masalagiu

face prin inducie dup n). Cum |B| = 2 i |Bn| = 2 n, trebuie s mai

Anex
Rezolvarea exerciiilor i exerciii propuse

calculm numrul total de funcii de la A1 = Bn la A2 = B, ceea ce este


imediat.
V.1.5. Faptul c g este bijectiv este o consecin imediat a definiiei

Dup cum se va observa, unele rezolvri nu sunt complete, fiind


suficiente cteodat doar unele indicaii sau chiar doar unele comentarii
asupra modului de rezolvare.

unui termen peste mulimea X = {x1, x2, ... , xn}. S artm c un n-uplu
e = <e1, e2, ... , en> n care, pentru fiecare i [n], avem ei{0, 1, 2},
poate fi interpretat ntr-un mod unic ca o funcie fe : [n] {0, 1, 2}.
Astfel, definim fe(i) = ei, pentru fiecare i [n]. Se aplic apoi un

1. Rezolvri Capitolul 1
V.1.1. Chiar fr a utiliza principiul dualitii, demonstraiile nu
prezint dificulti majore.
V.1.2. Toate relaiile corespunztoare se regsesc demonstrate ntr-un
manual de algebr de clasa a IX-a ([DID]). Egalitatea de mulimi se
definete ca o dubl incluziune.
V.1.3. Folosirea tabelelor de adevr nu credem c prezint dificulti.
Presupunnd acum c am demonstrat deja x + x = 1 i x1 = x (se pot
utiliza tabelele de adevr n cel mai ru caz), precum i dualele lor, vom
construi un raionament pentru a deduce doar relaia:
8) x x = x.

V.1.6. Presupunem c X = {x, y, z}, n aceast ordine. Se aplic direct


Teorema 1.3 i respectiv 1.4, gsind, urmtoarea FNDP:
f(x, y, z) = x y z + x y z + x y z + x y z + xyz .
V.1.7. Fiecare dintre mulimile considerate conin pe E, care este o
mulime infinit (acest lucru rezultnd uor din definiiile respective).
Pentru a arta c T0 este o mulime nchis, este suficient s artm
(Teorema 1.5) c T0 conine E i c este nchis la superpoziie.
ntr-adevr, dup cum deja am observat, E T0 pentru c
i np (0, 0, , 0, , 0) 0 indiferent de valorile lui n N* i p [n]. Fie
p

Astfel, gsim imediat:


x = x1 = x(x + x ) =

raionament similar cu cel din exerciiul precedent.

acum n N*, t N, f, h1, h2, ... , ht FB(n), g FB(t), astfel nct


distributivitate

= xx +x x = xx + 0 = xx.
V.1.4. Fie dou mulimi oarecare, finite, nevide, A1 i A2, avnd
|A1 | = n i |A2 | = m, n N*. Direct din definiii, se deduce c
|A1 A2| = mn. Mai mult, se tie c ([DID]) numrul total de funcii de
la A1 la A2 este mn (de altfel demonstraia este foarte simpl dac se

f = SUP(g, h1, h2, ... , ht) i g, h1, h2, ... , ht T0. Rmne s artm c
f T0, adic f(0, 0, ... 0) = 0. Dar, tim c pentru fiecare
x = <x1, x2, ... , xn> avem f(x) = g(h1(x), h2(x), ... , ht(x)), de unde, lund
x = <0, 0, ... , 0>, gsim f(0, 0, ... 0) = g(h1(0, 0, ... ,0), h2(0, 0, ..., 0), ...

269

Fundamentele logice ale Informaticii

270

Cristian Masalagiu

, ht(0, 0, ... , 0)) = g(0, 0, ... , 0) = 0, folosind exact faptul c h1, h2, ..., ht

(iv) Putem trage acum concluzia c i funciile de forma

i g sunt elemente din T0.

g(x1, x2, ... , x m) = x 11 x 2 2 ... x mm (m N*, 1, 2, ... m B) sunt n

V.1.8. Fie ([CAZ1]) M mulimea considerat. Trebuie s artm c

M , deoarece g = SUP(pm, f 11 , f 22 , ... , f mm ).

M = FB, adic s artm c orice funcie boolean este fie o funcie


elementar, fie o funcie din M, fie se obine printr-un numr finit de
superpoziii din funciile elementare i/sau elementele lui M. Desigur c
ne vor fi de folos teoremele de reprezentare ale funciilor booleene.
Pentru a simplifica notaiile, vom desemna prin n, s i p funciile din M

(v) Fie, n sfrit, orice funcie boolean f FB(m), m N*.

Dac f(x1, x2, ... , xm) = 0, pentru fiecare x1, x2, ... , xm B,
atunci f = SUP(p, f10 , f11 ).

n caz contrar, conform Teoremei 1.3, f admite o reprezentare

( , + i respectiv , acestea neavnd o notaie prefixat). Considerm

unic n FNDP, fiind o sum de r N* maxtermeni, adic de

funciile:

funcii g1, g2, ... , gr de tipul dat n cazul (iv), adic

(i)

f p , B, date prin f p (x1, ... , x p, ... , xm) = x p (oricare ar fi

numrul de argumente m N* i p [m]). Avem f p1 = i mp i cum


0
p

m
p

f = SUP(sr, g1, g2, ... gr).


V.1.9. Avem B B = {<0, 0>, <0, 1>, <1, 0>, <1, 1>}, valorile
corespunztoare ale funciei + (pentru perechile de argumente de mai

f (x1, x2, ... , xm) = i (x 1 ,..., x m ) , oricare ar fi elementele

sus) fiind respectiv 0, 1, 1, 1. Pentru c am pus 0 1 (tim deja c

x1, x2, ... , xm B, putem scrie i f p0 = SUP(n, i mp ).

0 1) i extensia acestei relaii la produsul cartezian este pe

(ii) Fie acum funciile p k, date prin pk(x 1, x2, ... , x m) = x1x 2 ... x k,
oricare ar fi m N* i k [m]. Observm acum c p1 = i1m ,
m
1

m
2

p2 = SUP(p, i , i ), . a. m. d., adic pentru fiecare k > 2 gsim


m
k

pk = SUP(p, pk 1, i ).
(iii)

Considerm

incomparabile, celelalte fiind n relaie, dup cum este indicat n figura


de mai jos prin sgeat continu (astfel, <0, 1> <1, 1>, <1, 0>
<1, 1>, etc.). Se observ imediat c valorile funciei pstreaz relaia de
ordine dintre (perechile de) argumente:

continuare

funciile

sr,

date

prin

sr(x1, x2, ... , xm) = x1 + x2 + ... + xr ( pentru fiecare m N* i r [m]),


despre care se arat n modul recursiv similar cazului precedent c sunt
elemente din M , (s1 = i1m , s2 = SUP(s, i1m , i m2 ) i, pentru fiecare r > 2,
sr = SUP(s, sr 1, i mr )).

componente, putem spune c doar elementele <0, 1> i <1, 0> sunt

271

Fundamentele logice ale Informaticii

272

Cristian Masalagiu

conform a = a 1
= (x(y 1) 1)(y(z 1) 1) 1 =

1+1

<1,1>

distributivitate, asociativitate
= (xy x 1)(yz y 1) 1 =
distributivitate, aa = a

1+0

<1,0>

<0,1>

xyz xy xy xyz xy x yz y 1 1 =
1

0+1

comutativitate, a a = 0, a 0 = a
= xy yz x y.
Evident, aceasta nu este o reprezentare liniar.

<0,0>
0+0

V.1.10. Conform [DID], cunoscndu-se i tabelele de definiie ale


operaiilor implicate, nu este nici o dificultate de a se arta ceea ce se
cere (dac B i Z2 se identific, atunci izomorfismul este dat chiar de

2. Rezolvri Capitolul 2
V.2.1. Teorema direct (TD) are forma ipoteze implic concluzii, adic
TD: p q (sau p q dac este vorba chiar de un raionament
sintactic). Atunci avem: TR (teorema reciproc) este q p; TCD

funcia identic).

(contrara directei) este p q , iar TCR (contrara reciprocei) este

V.1.11. S artm c funcia specificat nu este liniar (conform celor

q p. Se poate arta c p q este logic echivalent (n

artate n lucrare i exerciiului precedent, exist o unicitate a

metalimbaj) cu q p (adic teorema direct este echivalent cu

reprezentrii funciei ca polinom):

contrara reciprocei, de unde se deduce metoda reducerii la absurd, ca

x y + y z =

metod general de demonstraie). Se schimb ceva n cele de mai sus


conform a + b = a b

= x yyz =

dac avem mai multe ipoteze sau/i mai multe concluzii (p i q pot fi
formule compuse, ntre ipotezele sau/i concluziile elementare putnd
exista conectori de tipul sau )? O echivalen sintactic p q se

conform a b = (a 1)(b 1) 1
= (x y 1)(y z 1) 1 =

mai exprim sub forma Pentru a avea q adevrat este necesar i


suficient s avem p adevrat. n aceast exprimare, p q este
condiia suficient i q p este condiia necesar. Grafic:

Fundamentele logice ale Informaticii

273

274

Cristian Masalagiu

V.2.3. Notm de exemplu p: Mi-e sete i q: Beau ap. Avem p q


p q i ( p q) p q p q. Prin urmare, propoziia n
limbaj natural: Mi-e sete i nu beau ap exprim acelai lucru cu Nu

Obiecte
care
satisfac p

Obiecte
care
satisfac q

este adevrat c dac mi-e sete beau ap (care este negaia lui Dac
mi-e sete, beau ap).
V.2.4. Fie F = (( A) (B C)). Atunci Arb(F), etichetat (adic,
arborele orientat, ordonat care reprezint F), este:
0

( )
Cu alte cuvinte, pentru a avea q adevrat este suficient ca p s fie

adevrat, iar pentru a avea p adevrat, este necesar mai nti ca


formula q s fie adevrat. Ceea ce este reprezentat mai sus sunt sferele

00

000

noiunilor caracterizate prin condiiile p i q, echivalena logic (fie ea

()

()

001

0010

de natur semantic, fie sintactic) spunnd c cele dou sfere


0000

coincid.
V.2.2. Avem lim a n a R dac i numai dac (scrierea este conform

manualelor din liceu):


( > 0)(n N)(m N)(m > n |am - a| < )
Negaia formulei anterioare (nu este adevrat c irul (an)nN converge
la a R; ceea ce nu nseamn c (an)nN nu ar fi convergent) este:
( > 0)(n N)(m N)( (m > n |am - a| < ))
( > 0)(n N)(m N)(m > n |am - a| )

A
00000

B
00100

C
00101

Dac am fi considerat c notaiile tuturor operatorilor care intervin sunt


prefixate (nu infixate, cum sunt cele pentru i ), parantezele ar fi

n cele de mai sus s-a folosit faptul c p q p q i ( p q)

devenit uor un accesoriu direct al oricrui operator (aa cum de altfel

p q.

mai sugerat). Arborele, n acest caz, ar putea fi uor simplificat:

275

Fundamentele logice ale Informaticii

276

Cristian Masalagiu

V.2.7. Se verific uor c orice A A este o formul satisfiabil, dar


()

nevalid, c F = A A este o formul valid i c F = A A este o


contradicie.

00
()

()

01

V.2.8.
(a) Faptul c relaiile implicate sunt reflexive, simetrice i tranzitive
rezult imediat, deoarece acestea sunt definite cu ajutorul relaiei de

000
A

B
010

C
011

egalitate.
(b) Mai trebuie artat c:

(compatibilitatea lui fa de ), i c

Cu ajutorul unei astfel de structuri de informaie s-ar putea defini


simplu, formal (structural), noiuni cum ar fi: apariia unui simbol ntr-o

Dac F1 F2, atunci F1 F2, pentru fiecare F1, F2 LP

Dac F1 F2, atunci F1 F F2 F , pentru fiecare F, F1, F2

formul F, pe poziia i; subformula lui F care ncepe la poziia i, etc.

LP (analog pentru ; F poate fi adugat i la stnga), ceea ce

V.2.5. Din demonstraia Teoremei 2.1 au mai rmas cazurile

exprim compatibilitatea la dreapta (respectiv la stnga) a lui

F = (F1 F2) i F = (F1 F2). Sugerm cititorului, datorit simplitii

fa de (sau ).

calculelor, s trateze simultan aceste cazuri, folosind acelai simbol att

S artm de exemplu c dac F1, F2 LP sunt formule oarecare, astfel

pentru i , ct i, similar , pentru + i .

nct F1 F2, atunci pentru oricare F LP avem: F F1 F F2. Fie S

V.2.6. Procedm prin inducie structural.

o structur oarecare, corect pentru F, F1, F2. Avem succesiv:

Baza. F = A A. Atunci prop(F) = {A}.

S(F F1) = S(F) + S(F1) = S(F) + S(F2) = S(F F2).

Pas inductiv.

(c) Deoarece LP LP este o echivalen i este compatibil cu

(i) F = ( F1). Evident, prop(F) = prop(F1). Acelai lucru se ntmpl i

, i , rezult c pe mulimea ct LP/ = {[F] | F LP}, unde

atunci cnd F = (F1).

[F] = {F LP | F F}, se pot defini noile operaii , , (preferm s

(ii) F = (F1 F2), { , }. Atunci prop(F) = prop (F1) U prop (F2).


Folosind o definiie formal a unei formule considerate ca un arbore
binar etichetat (V.2.4.), putei defini formal i numrul de apariii ale
unei variabile, mpreun cu poziia la care exist aceste apariii?

nu folosim simboluri mult diferite pentru LP/):


([F1] [F2]) = [(F1 F2)]
([F1] [F2]) = [(F1 F2)]

Fundamentele logice ale Informaticii

277

( [F1]) = [( F1)].

278

Cristian Masalagiu

Atunci, prima parte a afirmaiei ar putea fi exprimat prin E D, iar

Operaiile (considerate la nivel semantic) sunt ntr-adevr funcii

doua prin E (G H) D. ntreaga afirmaie ar putea fi conjuncia

tocmai datorit compatibilitii lor cu echivalena.

afirmaiilor precedente sau, mai degrab, disjuncia exclusiv a lor.

(d) Axiomele unei algebre booleene se arat simplu. 0 reprezint clasa

Dup cum tim, acest operator logic are de fapt acelai tabel de adevr

tuturor tautologiilor, iar 1 este clasa contradiciilor. Nu exist doar un

ca i suma modulo 2 i va fi notat la fel (tot cu ). Deci,

singur homomorfism ntre mulimile considerate, ci o infinitate. Astfel,

F = (E D) ( E (G H) D). Lsm pe seama cititorului

pentru fiecare S : LP B, putem lua h : LP/ B, dat prin

finalizarea exerciiului.

h([F]) = S(F).

V.2.12. Avem succesiv, fr a mai indica explicit toate proprietile

V.2.9. Se pot folosi i tabelele de adevr, nu doar definiia.

utilizate:

V.2.10. Avem succesiv:

F (( A1 A2) (A2 A4)) (( A1 A2) (A2 A4))

(( A1 A2) ( A2 A4)) ((A1 A2) ( A2 A4))


prioritate operatori, distributivitate

( B D) E C B ( B D) ( B B)
conform B B 1 i A 1 1

(A1 A1 A4) (( A1 A2) ( A2 A4))


(A1 A2 A4) (( A1 A2) A2 ( A1 A2) A4)
(A1 A2 A4) (( A1 A2) (A2 A2) ( A1 A4)

( B D) E C B ( B D).

(A2 A4) )

Aplicm acum Algoritmul Horn formulei anterioare, gsind:

A1 A2 A4 A1 A2 A1 A4 A2 A4.

{B*1 D*2 0, E 0, C 0, 1 B*1, B*1 D*2}.

n cele de mai sus, am inut cont de faptul c are prioritatea 0, - 1 i

Formula este prin urmare nesatisfiabil. V sugerm s aplicai i alt

- 2. n cadrul unei aceleai prioriti, gruparea am fcut-o ns la

metod de testare a satisfiabilitii unei formule.

stnga.

V.2.11. Putem considera urmtoarele variabile propoziionale:

V.2.13. Dei nu am mai precizat literalii care se reduc din fiecare

D: Vom ctiga alegerile.

clauz, sperm ca ei s fie uor de identificat:

E: Popescu va fi ales liderul partidului.


G: Ionescu prsete partidul.
H: Rdulescu prsete partidul.

279

Fundamentele logice ale Informaticii


{B, C}

{B, C}

{ A, C}

{ C}

280

Cristian Masalagiu

{{B, C, D}, {B, D}, { C, D}, {B}}. O respingere ar putea fi:


{B, C, D}

{B}

{ A}

{ C, D}

{A, B, C }
{B, D }

{ B}

{ B, C}

{C}

{ D}

{ C}

{B, D}

{B}

{ B}

V.2.14. O formul F este tautologie dac i numai dac F este


contradicie. Ca urmare, avem: F (B C D) (B D)
( C D) B, care, n reprezentarea cu mulimi, nseamn

V.2.15. tim c G G dac i numai dac (Teorema 2.3)


n

i 1

Gi ) G este nesatisfiabil. O respingere poate fi descris mai

pe scurt i prin graful:

281

Fundamentele logice ale Informaticii

( A B) ( B C) (A C) (A B C) ( A B C)

Cristian Masalagiu

S(A2n+1 A2n+2) = 1 pentru fiecare n N (deoarece S(A2n+1) = 1).


Analog, S(A2n+2 A2n+3) =

S (A2 n2 ) + S (A2 n3 ) = 0 1 1 , pentru

fiecare n N, adic S M.

{A, B}
{ C}
{B}

282

{A, C}

V.2.17.

Demonstrm doar punctul (b), afirmaia corespunztoare

nefiind adevrat. Vom cuta astfel s gsim un contraexemplu.


Presupunem astfel c F G este satisfiabil i F este satisfiabil. Este
posibil ca G s nu fie satisfiabil, dup cum se observ din urmtoarea

{A}

tabel de adevr (F = A A, G = B B, B A):


{ B}

De fapt, n cele de mai sus, obinerea lui { C} trebuia fcut altfel,


clauzele alese, {A, B} i { A, B, C} avnd practic dou posibiliti
de rezolvare (ceea ce este incorect datorit conveniilor fcute, printre
care i aceea de a nu lua n considerare tautologiile gsite prin
rezoluie). Astfel, putem lua { A, B} cu {A, C} rezultnd {B, C}.
Ultima se rezolv cu { A, B, C} i rezult { A, C}. n sfrit,
aceasta se rezolv cu {A, C}.
V.2.16. Se observ c definind

1, k 2i 1, i N
S ( Ak )
, avem
*
0,
k

2
i
,
i

A=F

BB=G

FG

V.2.18. Informaiile avute sunt suficiente pentru ca cititorul s rezolve


singur exerciiul.
V.2.19. Din nou, cititorul este invitat s-i ncerce singur puterile,
rezolvarea neprezentnd nici un truc.

3. Rezolvri Capitolul 3
V.3.1. Pentru formule atomice F avem:

S M. ntr-adevr, mulimile M = {A1A2, A3 A4,,A2n+1 A2n+2,...}

(i) Dac F = P P0 atunci free(P) = .

i M = { A2 A3, A4 A5, , A2n+2 A2n+3, } formeaz o

(ii) Dac F = P(t1, t2,..., tn), unde n N*, t1, t2,..., tn T, P Pn, atunci

partiie a lui M. S este model pentru M, pentru c avem

283

Fundamentele logice ale Informaticii

284

Cristian Masalagiu

V.3.4. S presupunem c avem o substituie s = [x1/t1][x2/t2]...[xn/tn],

i 1

n 2, nenormalizat. Ideea este ca, pentru fiecare i [n 1], termii ti+1,

free(P(t1, t2,..., tn)) = free(t i ) .


Prin urmare, este necesar s definim acum structural free(t), oricare ar fi

ti+2, ... , tn s nu mai conin pe xi. Atunci putem transforma pe s n felul

t T.

urmtor: toate apariiile variabilei xn n t1, t2, ... , tn-1 se nlocuiesc cu tn,

Baza. Dac t = c F0, atunci free(t) = , iar dac t = x X, atunci

apoi toate apariiile lui xn-1 n (noii) t1, t2, ... , tn-2 se nlocuiesc cu (noul)

free(t) = {x}.

tn-1, . a. m. d.

Pas inductiv. S presupunem acum c t = f(t1, t2,..., tn), unde n N*,

V.3.5. (F)s = (x)(P(x, f(x)) Q(g(a, h(x)))). S remarcm ns c

t1, t2,..., tn T, f Fn. Atunci free(t) = free(t i ) .


i 1

substituia n cauz, s, nu este permis pentru F.


V.3.6. A se vedea V.3.11.

n sfrit, putem trece la formule:

V.3.7. Formula F este satisfiabil dar nevalid. Considernd orice

Baza. Acest pas a fost descris mai sus (F este formul atomic).

structur S = <US, IS>, corect pentru F, avem FS = 1 dac i numai

Pas constructiv.

dac S[x/u][y/v](P(x, y, f(z))) = 1, adic dac i numai dac pentru fiecare

(i) Dac F = ( F1), atunci free(F) = free(F1). La fel, pentru F = (F1).

u US, exist v US, astfel nct

(ii) Dac F = (F1 F2), atunci free(F) = free(F1) U free(F2).


(iii) Dac F = (F1 F2), atunci free(F) = free(F1) U free(F2).
(iv) Dac F = (x)(F1) sau F = (x)(F1), atunci free(F) = free(F1) \ {x},

S[x/u][y/v]

(x

S[x/u][y/v]

, y

S[x/u][y/v]

, f

S[x/u][y/v]

(z

S[x/u][y/v]

))) = 1.

Acest lucru are loc dac i numai dac pentru fiecare u US, exist

doar dac x free(F1). Altfel, free(F) = free(F1) (desigur c puteam

v US, astfel nct PS (u, v, fS(zS )) = 1. Continuarea (i finalizarea)

lsa aceeai mulime de mai sus).

exerciiului este de acum simpl.

V.3.2. subf(F) = {R(u, f(v)), Q(z), P(x, g(a)), (P(x, g(a)) Q(z)),

V.3.8. F = (x)(y)(P(x, y) P(y, x)). Dar dac P ar fi i reflexiv i

((P(x, g(a)) Q(z)) R(u, f(v))), (((P(x, g(a)) Q(z)) R(u, f(v)))), F}.

formula ar aparine lui LP1 = ?

Putei deduce un algoritm imperativ pentru a calcula sub(F), din cel

V.3.9. F = (x)(y)(z)(P(x, x) (P(x, y) P(y, x))

recursiv sugerat de definiie?

((P(x, y) P(y, z)) P(x, z)).

V.3.3. Definirea constructiv a mulimii leg(F), F LP1, urmeaz

V.3.10. FS = 1 dac i numai dac exist u, v, w US astfel nct

aceiai pai ca la definirea mulimii free(F). Lsm n seama cititorului

avem

analiza diferenelor care intervin.

285

Fundamentele logice ale Informaticii

S [x/u][y/v][z/w]

i P

(x, y) = 1 i P

S [x/u][y/v][z/w]

S [x/u][y/v][z/w]

(z, y) = 1 i P

S [x/u][y/v][z/w]

(x, z) = 1

(z, x) = 0, adic dac i numai dac exist u, v, w US

astfel nct:
PS(u, v) = 1 i PS(w, v) = 1 i PS(u, v) = 1 i PS(w, u) = 0.

286

Cristian Masalagiu

(u)(y)((P(u, g(y), z) (v)Q(v)) (w)(x) R(f(x, w), w))


(u)(y)(v)(w)(x)((P(u, g(y), z) Q(v)) R(f(x, w), w)).
(ii)

Pasul 2. Cum z este unica variabil cu apariii libere, putem

obine uor o FNPR nchis, slab echivalent cu F:


Fs(z)(u)(y)(v)(w)(x)((P(u, g(y), z) Q(v)) R(f(x, w), w)).

Finalizarea rezolvrii exerciiului este lsat pe seama cititorului.

(iii) Pasul 3. Aplicm Algoritmul Skolem ultimei forme a lui F, pentru

V.3.11. Afirmaiile se demonstreaz a fi adevrate prin aplicarea direct

a obine o FNS (nchis). Separnd execuiile corpului buclei, obinem

a definiiilor notiunilor care sunt implicate.

succesiv:

V.3.12. Cu acest exerciiu v putei verifica singuri abilitatea de a

manipula definiiile constructive.


V.3.13. Se cunoate faptul c un grup poate fi definit i n alte moduri,
folosind relaii n care nu apare explicit simbolul elementului neutru, e
(a se vedea, de exemplu, [DID]). Putem construi formula F, pornind
de la aceste relaii. n acest fel, nu vom mai avea apariii ale
elementului neutru (simbolului de constant) e. Absena simbolului de
egalitate poate provoca alte inconveniente. A se vedea i Capitolul 4.
V.3.14. A se vedea V.3.8.

Alege b constant i elimin (z):


Fs(u)(y)(v)(w)(x)((P(u,g(y),b) Q(v)) R(f(x,w),w)).

Alege h, un simbol funcional de aritate 1 i elimin (y):


Fs(u)(v)(w)(x)((P(u,g(h(u)),b) Q(v)) R(f(x, w), w)).

Alege t, un simbol funcional de aritate 1 i elimin (v):


Fs(u)(w)(x) ((P(u, g(h(u)), b) Q(t(u)) R(f(x, w), w)).

Alege s, un simbol funcional de aritate 2 i elimin (x):


Fs(u)(w)((P(u,g(h(u)),b) Q(t(u))) R(f(s(u,w), w), w)).

V.3.15. Rezolvarea nu poate prezenta dificulti dac materia anterioar

(iv) Pasul 4. Formula este deja n FNSC (nchis).

a fost receptat corect.

V.3.18. Fie formula:

V.3.16. Aceeai indicaie ca la exerciiul precedent.

F = (x)(P(x, f(x))) (y)( P(y, y)) (u)(v)(w)((P(u, v)

V.3.17. Procedm algoritmic dup cum urmeaz:

P(v, w)) P(u, w)).

(i) Pasul 1. Obinere FNPR.

F ne spune c P este o relaie binar, tranzitiv i nereflexiv, avnd o

F (u)(y)((P(u, g(y), z) (x)Q(x)) (z)(x) R(f(x, z), z))

proprietate

(u)(y)((P(u, g(y), z) (x)Q(x)) (w)(x) R(f(x, w), w))

F1=(x)(P(x, f(x))). Artm c, dei F este satisfiabil, ea nu admite

(u)(y)((P(u, g(y), z) (v)Q(v)) (w)(x) R(f(x, w), w))

nici un model finit.

suplimentar,

exprimat

prin

subformula

Fundamentele logice ale Informaticii

287

288

Cristian Masalagiu

(i) F este satisfiabil. Fie structura S = <U S, IS>, unde US = N,

Considernd subformula lui F,

PS = {<m, n>| m, n N cu m<n}, fS : U S US, dat prin fS(n) = n + 1.

F3 = (u)(v)(w)((P(u,v) P(v, w)) P(u, w))

Pentru c formula nu conine nici constante i nici variabile libere,

i ea trebuie s fie adevrat n structura dat. Rezult c PS trebuie s

structura este corect i avem imediat c S F.

fie o relaie tranzitiv pe domeniul n cauz i deci trebuie s avem

(ii) F nu poate avea model finit. Folosind metoda reducerii la absurd,


s presupunem c exist S = <US, IS> corect, finit (card(US) < o) i

S F. Deoarece orice univers este presupus a fi nevid, s fixm un


element oarecare u US. Putem acum considera urmtoarea secven,

<ui, uj> PS . Dar ui = uj i atunci <ui, ui> PS. Prin urmare, exist
mcar un element i anume ui n US astfel nct <ui, ui> PS i asta
nseamn c subformula lui F, F2 = (y)( P(y, y)) este fals n structura
dat. Deducem c F este fals n S (contradicie).
V.3.19. Lsm rezolvarea pe seama cititorului.

infinit, de elemente din US, u0, u1, u2, unde:


(1)

u0 u

S
ui 1 f (ui ), pentru orice i N

4. Rezolvri Capitolul 4
V.4.1. Avem succesiv, pentru (i), (ii), (iii) (cifrele din secven sunt

Cum US este finit, nu toate elementele din secven pot fi distincte.

locale rezolvrii punctelor respective):

Prin urmare, trebuie s existe i, j N, i < j astfel nct ui = uj. Din

Pentru (i):

S F, subformula F1 trebuie s fie adevrat i de aici rezult c trebuie

1. AB, A AB, A

evident

s avem:

2. AB, A B

1., (MP)

3. AB, BC, A B, BC

2., de dou ori

4. AB, BC, A C

3., (MP)

<ui-1, ui> PS,

5. AB, BC AC

4., (TD)

<ui, u i+1> PS,

6. AB (BC) (AC)

5., (TD)

7. (AB) ((BC) (AC))

6., (TD).

<u0, u1> PS ,
<u1, u2> PS,

<uj-1, uj> PS,

Pentru (ii):

289

Fundamentele logice ale Informaticii

290

Cristian Masalagiu

1. A(BC), A A(BC), A

evident

1. I AB

evident

2. A(BC), A BC

1., (MP)

2. I, A A, AB

1.

3. A(BC), A, B B, BC

2.

3. I, A B

2., (EI)

4. A(BC), A, B C

3., (MP)

4. I, A, B B, B

3.

5. A(BC), B AC

4., (TD)

5. I, B A

4., (IN)

6. A(BC) B(AC)

5., (TD)

6. I B A

5., (TD), (II).

7. (A(BC)) (B(AC))

6., (TD).

Apoi:

Pentru (iii):

1. I B A

evident

1. ( A A)(( A A) A)

axioma 3. din SD3

2. I, B B, B A

1.

2. A A

am artat deja

3. I B A

2. (EI)

3. ( A A)(( A A) A)

1., (ii), (MP)

4. I, A, B A, A

3.

4. ( A A)A

2., 3., (MP)

5. I, A B

4., (EN)

5. A ( A A)

axioma 1. din SD3

6. I A B

5., (TD), (II).

6. A A

4., 5., (i), (MP).

n sfrit:

V.4.2. Similar cu rezoluia propoziional, vom avea cte un sistem

1. I AB, AC, BC

evident

pentru fiecare F LP1, schimbndu-se doar mulimea de formule

2. I AB, C A, BC

1., Ax3

3. I AB, C A, C B

2., Ax3

truc.

4. I, C AB, C, C A, C B

3.

V.4.4. Avem succesiv:

5. I, C A, AB, C, C B

4., (EI)

suplimentare, care este sugerat de E(F).


V.4.3. Lsm rezolvarea pe seama cititorului, ea neimplicnd nici un

291

Fundamentele logice ale Informaticii

6. I, C B, C, C B

5., (ED)

7. I, C B, B

6., (EI)

8. I C

7., (EN).

292

Cristian Masalagiu

3. (z)(v)(z=v v=z)

2., (E)

4. (z)(v)(z=v v=z)

3., (I)

5. (u)(v)(u=v v=u)

4., (E).

V.4.7. Lsm rezolvarea pe seama cititorului (din nou, nu exist


trucuri, dei rezolvarea este cumva plictisitoare prin lungimea ei).

V.4.5.
A C , B B, D , C

A B D, A, C

C B D, A, C

V.4.8. Conform Exemplului 4.3, trebuie s adugm:


(x)(y)(z)((xy)z = x(yz)) i
(y)(x)(xy = y) (x)(y)(xy = x).

A C , B B D, C

A C B D, A, C

5. Rezolvri Capitolul 5
V.5.1. Putem nota clauzele cu C1 = {A(x, 0, x)}, C2 = { A(x, y, z),
( A C ) ( A B ), D B, D

A C , A B B D, C

A(x, s(y), s(z)}, C3 = { A(s(s(s(0))), s(s(0)), u)}. Gsim uor E(F)


dup ce s-a calculat D(F). O respingere folosind rezoluia de baz este
descris prin:

( A C ) ( A B), D B D

( A C ) ( A B ) B D, C

Substituind x = s(s(s(0))), y = s(0), z = s(s(s(s(0)))),


u = s(s(s(s(s(0))))) n C2 i C3, rezolvm C2 cu C3 pentru a
obine C4 = { A(s(s(s(0))), s(0), s(s(s(s(0)))))}.

( A C ) ( A B), C D B D

Substituind x = s(s(s(0))), y = 0, z = s(s(s(0))) n C2, rezolvm


C4 cu C2 pentru a obine C5 = { A(s(s(s(0))), 0, s(s(s(0))))}.

( A C ) ( A B ) (C D) B D

n sfrit, substituind x = s(s(s(0))), obinem

prin rezolvarea

lui C5 cu C1.
( A C ) ( A B ) (C D ) ( B D )

V.5.2. Substituia final va fi s = [X/U][Z/b][U/c][Y/b][X/b]. Ca o


concluzie, (U)p(U, b) este consecin semantic din CP1CP2 CP3,

V.4.6. Avem succesiv:


1. (x)(y)(x = y y = x)

conform 7. (din enun)

valoarea cerut a lui U fiind c. n arborele de mai jos, nodurile

2. (y)(z)(z = y y = z)

1., (E)

suplimentare (care se rezolv cu clauza scop curent, precedat i de

293

Fundamentele logice ale Informaticii

294

Cristian Masalagiu

simbolul ) sunt chiar clauzele de program, nu doar capul acestora

Am putea lua n considerare i o definiie recursiv direct de genul

(pentru a ne familiariza i cu alte notaii folosite n literatura de

minus1(X, 0, X).

specialitate). Numele unor variabile sunt de asemenea schimbate (aa

minus1(s(X), s(Y), Z):-minus1(X, Y, Z).,

cum am mai amintit, sunt necesare cunotine suplimentare pentru a ne

sau

convinge de ce anumite redenumiri nu pot fi evitate pe parcurs).

minus2(X, X, 0).
minus2(X, Y, s(Z)):-minus2(X, s(Y), Z).
nmulirea poate fi reprezentat de predicatul:

p(X,b)

p(X 1,Z1) q(X1,Y1), p(Y1,Z1)


[X1/X][Z1/b]

inmulire(0, X, 0).
inmulire(s(X), Y, Z):-inmulire(X, Y, W), plus1(W, Y, Z).
La rndul su, ridicarea la putere se definete sub forma unei nmuliri

q(X,Y1), p(Y1,b)

q(a,b)
[X/a][Y1/b]

repetate (s precizm nc o dat c predicatul exp(N,X,Y) este


adevrat dac si numai dac Y = XN):
exp(U, 0, 0).

p(b,b)

p(X3 ,X3)
[X3/b]

exp(0, V, s(0)).
exp(s(N), X, Y):-exp(N, X, Z), inmulire(Z, X, Y).
V.5.4. Execuia programului ncepe cu scopul curent, dat de interogarea
iniial. Aceasta conine un singur literal, sora_lui(eliza, andrei). Exist
o singur clauz program cu al crui cap literalul ales se poate unifica,
i anume clauza suplimentar (ceea ce se afl n dreapta simbolului se

V.5.3. Posibile definiii sunt (semnificaia intuitiv a predicatelor

mai numete i corpul regulii). Substituia de unificare este

folosite a fost deja sugerat; de exemplu, faptele din minus1 i minus2

[X/eliza][Y/andrei], rezultnd noul scop curent (scopul derivat)

ne spun c X 0 = X i respectiv X X = 0):

? :- femeie(eliza), parinti(eliza, M, T), parinti(andrei, M, T), care are

minus1a(X, Y, Z):- plus(Y, Z, X).

trei subscopuri. Primul este femeie(eliza), care se unific cu faptul

minus1b(X, Y, Z):- plus(Z, Y, X).

corespunztor, rezultnd ? :- parinti(eliza, M, T), parinti(andrei, M, T).

minus2a(X, Y, Z):- plus(Y, Z, X).

Subscopul parinti(eliza, M, T) nu se poate unifica dect cu faptul

minus2b(X, Y, Z):- plus(Z, Y, X).

parinti(eliza, maria, paul), unde M este instaniat de valoarea maria,

295

Fundamentele logice ale Informaticii

296

Cristian Masalagiu

iar T, de valoarea paul (un cel mai general unificator fiind evident dat
de

[M/maria][T/paul].

Astfel,

scopul

curent

bunic(ion, petru)

devine

[X/ion][ Y/petru]

[X/ion] [Y/petru]

? :- parinti(andrei, maria, paul). Acesta se unific cu faptul

tata(ion,Z), tata(Z,petru)

tata(ion,Z), mama(Z,petru)

corespunztor din baza de date. Prin urmare, PROLOG-ul a reuit s


obin o respingere, rspunznd DA i gsind valorile cerute (chiar
dac nu explicit).

tata(ion,Z)

V.5.5. Arborele AND-OR este reprezentat n figura de mai jos. Pe arce

tata(Z, petru)

[Z/maria]

[Z/mari]a

nu am mai trecut clauze, ci substituiile corespunztoare:

mama(Z,petru)

tata(ion,Z)

[I/Z][ J/petru]
mama(maria,K), frate(K,petru)

mama(maria,K)

frate(K,petru)

[K/pau l]

V.5.6. L = {P(x,y), P(f(b), g(x)), P(f(z), g(f(z)))}. ncepem cu:


sub0 = [], (L)sub0 = L. Alegem pentru o prim posibil unificare
literalii:
P(x, y) i
P(f(b), g(x)).
Gsim sub 1 = [x/f(b)] i

Fundamentele logice ale Informaticii

297

298

Cristian Masalagiu

(L)sub1 = {P(f(b), y), P(f(b), g(f(b))), P(f(z), g(f(z)))}.

G= (Y)((P(Y) R(Y)) Q(Y))

Acum pot fi alei tot primii doi literali:

este o consecin semantic din {F1, F2, F3}, utiliznd rezoluia. Urmm

P(f(b), y)

paii cunoscui:

P(f(b), g(f(b))).

(i) Gsim mai nti o formul F (aflat n FNS nchis i cu matricea


n FNC), slab echivalent cu F = (F1 F2 F3 G). Obinem

Gsim sub 2 = [y/g(f(b))] i

reprezentarea clauzal sub form de mulimi a lui F ca fiind:

(L)sub1sub2 = {P(f(b), g(f(b))), P(f(z), g(f(z)))}.

F = {{ P(Y), Q(Y), T(f(Y,Y))}, { P(Y), Q(Y), P(f(Y))},

Nu putem alege acum dect singurii literali rmai n mulime:

{ P(Y), Q(Y), S(f(Y))}, { P(Y), R(Y), S(Y)},

P(f(b), g(f(b)))

{ P(X), T(X,Y), P(Y), R(Y), R(X)}, {P(b)}, {R(b)}, { Q(b)}}.

P(f(z), g(f(z))).

n cele de mai sus, primele trei clauze sunt din F1, cea de-a patra este
din F2, cea de-a cincea din F3, iar ultimele sunt din G. Le putem atunci

Punnd sub 3 = [z/b], gsim n final

denota prin C1, ..., C8, n aceast ordine. Mai mult, din procesul de

(L)sub1sub2sub3 = {P(f(b), g(f(b)))}, substituia cerut (final) fiind

Skolemizare, rezult dou (noi) simboluri funcionale, f de aritate 1 i

evident sub = sub 1sub2sub3.

b de aritate 0.

V.5.7. Putem considera urmtoarele relaii (predicate):

(ii) O posibil respingere este:

P(X): X este un dragon.


Q(X): X este fericit.
R(X): X este verde.
S(X): X poate zbura.
T(X,Y): X este copilul lui Y.
Lumea n cauza se poate reprezenta prin formulele:

F1= (Y)((P(Y) (X)((T(X,Y) P(X) S(X))) Q(Y)).

F2= (Y)((P(Y) R(Y)) S(Y)).

F3= (X)((P(X) (Y)(T(X,Y) P(Y) R(Y))) R(X)).

Trebuie demonstrat c formula:

(1)

C1

C2

L = ({ P(y),
P(a)})[y/a]

C 1' { Q(a), T(f(a), a)) }

Fundamentele logice ale Informaticii

(2)

C2

299

300

C6

Cristian Masalagiu

(5)

C8

C '2

L = ({ P(y),
P(a)})[y/a]

C '2 {Q(a), P(f(a))}

(3)

C3

C "2 {P(f(a))}

C6
(6)

L = ({ P(y),

C8

C '3

P(a)})[y/a]

C '3 {Q(a), S(f(a))}


C "3 { S(f(a))}

(4)

C1'

C8

(7)

C1

C5
(redenumire n C1: [y/z])
L = ({T(f(z),z), T(x, y)})
[x/f(z)][y/z]

C1" {T(f(a), a)}

C 9 { P(z), Q(z), P(f(z)), T(f(z), z), R(z), R(f(z))}

301

Fundamentele logice ale Informaticii

(8)

C9

302

Cristian Masalagiu

C1"
(9)

L = ({T(f(z),z),

C4

C "3

T(f(a),a)})
[z/a]

L = ({ S(y), S(f(a))})
[y/f(a)]

{ P(a), Q(a), P(f(a)), R(a), R(f(a))}}

"
2

{ P(f(a)), R(f(a))}}
{ P(a), Q(a), R(a), R(f(a))}

C8
{ P(f(a))}

{ P(a), R(a), R(f(a))}

{ P(a), R(f(a))}

C10

C "2

C7

C6
Putei folosi ca alternativ rezoluia de baz ? Raspundei singuri la
celelalte ntrebri din enun.

C10 = {R(f(a))}

6. Exerciii propuse
Exerciiile propuse n acest ultim modul sunt destinate unei
autoevaluari pentru fiecare cititor i nu sunt i rezolvate n lucrare
(exceptnd unele indicaii care sunt furnizate pe loc), pentru a nu
exista tentaia de copiere a rezolvrilor (fie i parial). Se urmrete
astfel att o trecere final n revist a cantitii/calitii informaiilor
asimilate, precum i testarea capacitii de a lucra la nivel global cu
aceste cunotine. Dac fiecare rezolvare ar fi apreciat cu un punctaj

303

Fundamentele logice ale Informaticii

de la 1 la 10, realizarea a 75 de puncte este o cerin minimal pentru

304

a ti c pregtirea este ct de ct satisfctoare.

NS : T U At U LP1 N, unde NS(e) = numrul de simboluri


din Alf, distincte de paranteze i virgule, peste care este
construit elementul respectiv (e T U At U LP1). De exemplu,

V.F.1. Determinai toate funciile autoduale avnd (minim 1 i) maxim


4 argumente.
V.F.2. Aducei la FNC(D)(P) i FNC(D)M urmtoarele funcii
booleene (am renunat la introducerea explicit a simbolului ,

NS((x)P(f(x, x))) = 6.
Demonstrai apoi prin inducie structural c NS(F) ND(F), pentru
fiecare F LP1. Ce se modific n cele de mai sus dac termii,
formulele atomice i formulele se reprezint ca arbori?

presupunnd n acelai timp c acesta este prioritar fa de +):

V.F.5. Ne plasm n LP. Fie F G o tautologie, astfel nct F i G nu

f(x, y, z) = x + x y + x y

au formule atomice n comun. Artai c fie F este nesatisfiabil, fie G

f(x, y, z) = (x + y) (x + y )( x + z )( x + z)

este tautologie (neexclusiv). Argumentai faptul c presupunerea nu

f(u, x, y, z) = u x + y z

exist variabile comune este esenial.

f(u, x, y, z) = ux + yz.
V.F.3. Se tie c intersecia a dou mulimi nchise de funcii booleene
este nchis. Ce se poate spune despre reuniune?
V.F.4 ([OHL]). Definii structural (nti pentru termi i pentru formule

V.F.6. Exprimai urmtoarele afirmaii din matematic sub forma unor


formule din LP1 sau LP1=. Comentai (ne)satisfiabilitatea acestora n
diverse structuri.

x divide y.

x este numr prim.

x este cel mai mare divizor comun pentru y i z.

x este cel mai mic multiplu comun pentru y i z.

irul numerelor prime este infinit.

Pentru fiecare asemenea element, se poate evident determina

Mulimea X are 2 elemente.

gradul su de imbricare, adic numrul total de simboluri

Mulimea X are n 2, n N elemente.

Mulimea X este parial ordonat.

Mulimea X este bine ordonat.

Mulimea {x, y, z} formeaz un triunghi.

atomice,

apoi

pentru

formule)

urmtoarele

funcii

recursive

(calculabile prin algoritmi):

Cristian Masalagiu

ND : T U At U LP1 N. Pentru fiecare F LP1 (t T,


A At), considerm toate variabilele i constantele care apar.

disticte (funcionale, predicative, cuantificatori) n domeniul


(sintactic al) crora se afl acel element. Valoarea lui ND va fi
dat de gradul maxim gsit. De exemplu, ND(x) = 0,
ND(f(x, y)) = 1, ND((x)(P(f(x) Q(x))) = 4, etc.

Fundamentele logice ale Informaticii

305

306

Cristian Masalagiu

Mulimea {x, y, z} formeaz un triunghi isoscel.

V.F.11 ([OHL]). Problema reaciei n lan a lui Schubert. Lupii,

Dac dou puncte ale unei drepte aparin unui plan, atunci

vulpile, psrile, omizile i melcii sunt animale, i exist mcar cte un

dreapta aparine planului.

asemenea animal. Exist, de asemenea i cereale, cerealele fiind plante.

V.F.7. Ne plasm n LP1. Construii o form normal Skolem, notat

Despre fiecare animal tim c fie i place s mnnce toate plantele, fie

C, pentru formula B = (x)(y)Q(x, y) i artai c formulele B i C nu

i place s mnnce toate animalele mult mai mici ca el nsui, animale

sunt tare echivalente.

crora, n plus, le place s mnnce anumite plante. Omizile i melcii

V.F.8. Ne plasm din nou n LP1. Artai c formula

sunt mult mai mici dect psrile, care sunt mult mai mici dect vulpile,

F = (x)(y)(z)((Q(x, x)) ((Q(x, y) Q(y, z)) Q(x, z))

care la rndul lor sunt mult mai mici dect lupii. Lupilor nu le place s

((Q(x, y) Q(y, x)) (y)(x)Q(y, x))

mnnce vulpi sau cereale, n timp ce psrilor le place s mnnce

este satisfiabil dar nevalid. Mai mult, artai c ea este adevrat n

omizi dar nu i melci. Omizilor i melcilor le place s mnnce anumite

orice univers finit.


V.F.9. Demonstrai, folosind deducia natural, c:
(x)(A) (x)A.

plante. Putem trage concluzia c exist (cel puin) un animal cruia i


place s mnnce un (alt) animal, acestuia din urm plcndu-i s
mnnce cereale?
V.F.12 ([OHL]). S ne imaginm o logic propoziional multivaluat

A (x)A, dac x nu apare (intr) liber n A.

(de fapt, trivalent), notat, s spunem, cu LP3. Mai precis, lum

(x)(A) A, dac x nu apare liber n A.

LP3 = LP, sintaxa nemodificndu-se. Prin urmare, mulimea de

(x)(B A) ((x)(B) A), dac x nu apare liber n A.

formule rmne aceeai, cu observaia c admitem i prezena explicit


a tuturor conectorilor logici mai des ntlnii, adic a lui non, i, sau,

V.F.10. Artai c urmtoarea mulime de literali L din LP1 este

implic i echivalent (acetia vor cpta ns, pentru evitarea unor

unificabil i gsii un cel mai general unificator:

confuzii, indicele inferior 3). Notnd B = B U {u}, o asignare

L = { P(f(z, g(a, y)), h(z)), P(f(f(u, v), w), h(f(a, b)))}.

(structur) va fi orice funcie S : A B, iar conectorii amintii vor fi

Ca o indicaie, lund doar cte doi literali la fiecare pas de unificare,

interpretai semantic ca funcii de ariti corespunztoare peste B,

Algoritmul lui J. Robinson se termin dup patru pai, cu un posibil

funcii definite prin urmtoarele tabele de adevr generalizate:

m.g.u. de forma sub = [z/f(u, v)][w/g(a,y)][u/a][v/b].

307

Fundamentele logice ale Informaticii

308

Cristian Masalagiu

operaiile, pentru fiecare asignare S, adic LP3 este extensional. Dar,

oare, cte/care dintre lucrurile definite/demonstrate pentru LP se


pstreaz n LP3? Verificai astfel dac afirmaia pentru fiecare
structur S, fiecare F,G LP3, avem S(F 3 G) = S (( 3 F) 3 G),

x 3 y

x 3 y

x 3 y x 3 y

n momentul respectiv. Leul i inorogul erau i ei vizitatori destul de

frecveni ai pdurii uitrii. n plus, ei erau fiine destul de ciudate.

Astfel, leul minea ntotdeauna lunea, marea i miercurea, n timp ce n

este adevrat. n caz contrar, gsii un contraexemplu, sau, modificai


corespunztor tabela lui 3.
V.F.13 ([OHL]). Alice n ara minunilor. Cnd Alice a intrat n
pdurea uitrii, ea nu a uitat chiar totul, ci doar anumite lucruri. De
exemplu, i uita destul de des propriul su nume. Totui, n cea mai
mare parte a timpului, ea uita n care anume zi din sptmn se gsete

restul zilelor spunea adevrul. Inorogul minea joia, vinerea i smbta


i spunea adevrul n celelalte zile. Odat, Alice a ntlnit n pdure leul

Se observ imediat c dac restricionm pe 3, 3, 3, 3 i 3 la B

i inorogul, care se odihneau sub un copac. Ei au fcut urmtoarele

(le notm la fel), atunci acestea coincid cu funciile corespunztoare din

afirmaii:

semantica logicii propoziionale clasice ( 3(x) = x , x 3 y = x + y,

Leul: Ieri a fost una dintre acele zile n care eu spun minciuni.

x 3 y = xy, x 3 y = x + y respectiv x 3 y = ( x + y)( y + x)).

Inorogul: i pentru mine ieri a fost una dintre zilele n care eu

Valoarea u (nedefinit, undefined) nu trebuie neleas ca fiind fie

spun minciuni.

adevrat, fie fals, dar nu tim exact care dintre ele, ci mai degrab n

Folosind aceste informaii, Alice, care era o fat deteapt, a putut s

sensul: cineva care are 2.00 metri este cu siguran nalt - 1; cineva

determine n ce zi din sptmn se afla atunci. Putei afla i

care are 1.50 metri este cu siguran mic de statur 0; cineva care

dumneavoastr?

are 1.75 este...u. Se observ uor i alte lucruri, cum ar fi faptul c


exist o unic extensie la LP3 (notat ulterior la fel), care pstreaz

V.F.14 ([OHL]). Fie formulele din LP1 =:


F = (y)(x)P(x, f(x, y))

309

Fundamentele logice ale Informaticii

310

Cristian Masalagiu

G = (x)((x = b) ( y)(g(y, y) = x))


H = (x)(P(x, b) (y)(g(y, y) = x)).
Artai c aceste formule sunt satisfiabile dar nevalide, folosind
structurile Herbrand.
V.F.15 ([OHL]). Similar cu cazul prezentat n V.F.12, s considerm o
logic propoziional 4-valuat, construit cu ajutorul conectorilor 4,
4, 4, definii semantic respectiv prin tabelele:

4
1

Dup cum se poate observa, pentru simplitate, am schimbat uneori

modalitatea de reprezentare a unui tabel n cele de mai sus (spernd c

nu exist dificulti de nelegere). Intuitiv, aceast logic se poate

interpreta dup cum urmeaz: S presupunem c cineva trimite nite

chestionare unui anumit numr de persoane, cerndu-le sa rspund


prin DA sau NU la o ntrebare Q. Rezultatul acestei activiti este
notat cu 1 dac la toate chestionarele s-a rspuns prin DA i cu 0

dac la toate s-a rspuns NU. Dac s-au returnat toate

chestionarele dar exist att rspunsuri DA ct i rspunsuri NU,

sau dac nu s-au returnat toate chestionarele (ci doar o parte,

indiferent de rspunsuri), atunci activitatea va fi apreciat cu b. Dac

nici un chestionar nu este returnat, rezultatul activitii va fi notat cu

n. n situaia descris,

ar putea fi interpretat ca un rezultat al

rspunsurilor la ntrebarea non(Q), iar 4 respectiv 4 ar putea fi


interpretai ca fiind rezultatul rspunsurilor la nite ntrebri de genul
Q = Q1 sau Q2 respectiv Q = Q1 i Q2 (de exemplu, dac rezultatul

Fundamentele logice ale Informaticii

311

pentru Q1 este b i rezultatul pentru Q2 este n, atunci rezultatul pentru

Bibliografie

Q1 4 Q2 este, natural, tot n).


Demonstrai, de exemplu, c att 4 ct i 4 sunt operaii comutative

[AHO]

pe B = B U {b, n}. Ce alte lucruri interesante mai putei deduce


pentru aceast logic?

[AND]
[BIE]

[BIR]
[BOL]

[BR]
[CAZ1]
[CAZ2]
[COR]

[COT]
[CRO]

Aho, A., V., Hopcroft, J., E., Ullman, J., D. The


Design and Analysis of Computer Algorithms,
Addison-Wesley Publishing Company, Reading,
Massachusetts, S. U. A., 1976.
Andrews, J., H. Logic Programming: operational
Semantics and Proof Theory, Cambridge Unversity
Press, Anglia, 1992.
Bieltz, P., Gheorghiu, D. Logica, Manual pentru
clasa a IX-a licee i clasa a XI-a coli normale,
Editura Didactic i Pedagogic, Bucureti, Romnia,
1996.
Birkhoff, G. Latice Theory, A.M.S. Colloquium
Publications, Vol. 25, Providence, Rhode Island,
S. U. A., retiprit n 1984.
Bolc, L., Borowik, P. Many-Valued Logics, 1,
Theoretical Foundations, Springer Verlag, Berlin,
Germania, 1992.
Brger, E. Computability, Complexity, Logic,
North Holland, Amsterdam, Olanda, 1989.
Cazacu, C., Slabu, V. Logic matematic , Editura
Stefan Lupacu, Iai, Romnia, 1999.
Cazacu, C. Teoria calculabilit ii efective, Editura
Universitii Al. I. Cuza, Iai, Romnia, 1996.
Cormen,
T.,
H.,
Leiserson,
C.,
E.,
Rivest, R., R. Introducere n algoritmi, Editura
Computer Libris Agora, Cluj, Romnia, 2000
(copywright dup: Introduction to Algorithms, M. I. T.
Press, Massachusetts, S. U. A., 1990).
Cotelea, V. Programarea n logic , Editura
NESTOR, Chiinu, Republica Moldova, 2000.
Croitoru, C. Tehnici de baz n optimizarea
combinatorie, Editura Universitii Al. I. Cuza, Iai,
Romnia, 1992.

Fundamentele logice ale Informaticii

Dicionarul explicativ al limbii romne, Editura


Univers Enciclopedic, Bucureti, Romnia, 1998.
Manualele de Algebr clasele a X-a, a XI-a, a XII-a,
[DID]
Analiz , clasele IX-XI, Editura Didactic i
Pedagogic, Bucureti, Romnia, 2003.
Dijkstra, E. W. A Discipline of Programming,
[DIJ]
Prentice Hall, Englewood Clifs, S. U. A., 1976.
Girard, J. J. Linear Logic, Theoretical Computer
[GIR]
Science, Vol. 50, No. 1, North-Holland, Amsterdam,
Olanda, 1987.
[HAR] Harel, D. First-Order Dynamic Logic, Springer
Verlag, Berlin, Germania, 1979.
[HEY] Heyting, A. Intuitionism. An Introduction,
North-Holland, Amsterdam, Olanda, 1956.
Ivac, C., Prun, M. Bazele informaticii, Editura
[IVA]
PETRION, Bucureti, Romnia, 1995.
Jucan, T., Andrei, . Limbaje formale i teoria
[JUC]
automatelor, Editura Universitii Al. I. Cuza, Iai,
Romnia, 2002.
[KNU] Knuth, D. E. Tratat de programare a
calculatoarelor. Sortare i c utare, Editura Tehnic,
Bucureti, Romnia, 1976.
[KOW] Kowalski, R. Algorithm = Logic + Control,
Research Report, Department of Computing and
Control, Imperial College, Londra, Anglia, 1976.
Programarea
Lucanu,
D., Jucan, T.
[LUC]
calculatoarelor. Ediia PASCAL, Editura Universitii
Al. I. Cuza, Iai, Romnia, 2002.
[MAN] Manna, Z., Pnueli, A. Verification of Concurrent
Programs: the Temporal Framework, International
Summer School on Theoretical Foundations of
Programming Methodology, Mnchen, Germania,
1981.
[MAS1] Masalagiu, C. Introducere n programarea logic
i limbajele de programare logic , Editura
Universitii Al. I. Cuza, Iai, Romnia, 1996.
[DEX]

313

314

Cristian Masalagiu

[MAS2] Masalagiu, C., Ibnescu, L., Andrei, . Practica


program rii n TURBO PROLOG, Editura
Universitii Al. I. Cuza, Iai, Romnia, 1998.
[MAS3] Masalagiu, C. Logica pentru informaticieni,
Editura Universitii Al. I. Cuza, Iai, Romnia,
2003.
[MAS4] Masalagiu, C., Andrei, . Duality in Resolution,
Analele tiinifice ale Universitii Bucureti, Secia
Matematic-Informatic, Vol. XLIX, p.96-102,
Bucureti, Romnia, 2000.
[MAS5] Masalagiu, C., Andrei, ., Kudlek, M.,
Grigora, G. On the Complexity of Propositional
Calculus Formulae, Analele tiinifice ale
Universitii Al. I. Cuza, Iai, Tom XII, Secia
Informatic (Serie nou), Iai, Romnia, va apare
2004.
[OHL] Ohlbach, H., J. Introductory Logic Course. Draft
Manuscript, Imperial College, Department of
Computing, University of London, Londra, Anglia,
1997.
Richman, F. (Ed.) Constructive Mathematics
[RIC]
(Proceedings, New Mexico, 1980), Lecture Notes in
Mathematics, No.873, Springer Verlag, Berlin,
Germania, 1981.
[ROU] Roussel, P. PROLOG, Manuel de rfrence et
dutilisation, Groupe de I. A., Universit dAix,
Marsilia, Frana, 1975.
Schning, U. Logic for Computer Scientists,
[SCH]
Birkhuser, Berlin, Germania, 1989.
Segerberg, K. A Completeness Theorem in the
[SEG]
Modal Logic of Programs, Preliminary Report,
Notices of the A. M. S., Vol. 24, No. 6, A-552, S.U.A.
Sorin, T. Tehnici de programare, Editura TEORA,
[SOR]
Bucureti, Romnia, 1994.
iplea, F. L. Introducere n teoria mulimilor,
[IP]
Editura Universitii Al. I. Cuza, Iai, Romnia,
1998.

Fundamentele logice ale Informaticii

[WIN]

Winskel, G. The Formal Semantics of


Programming Languages. An Introduction, M. I. T.
Press, Massachusetts, S. U. A., 1990.

315