Sunteți pe pagina 1din 156

vii

Cuprins
Prefa i Introducere 1
Capitolul 1 Funcii booleene 8
1. Algebre booleene . . . . . . . . . . . . . . . . . . . 14
2. Teoreme de reprezentare i
forme normale pentru
funciile booleene . . . . . . . . . . . . . . . . . . 22
3. Clase speciale de funcii booleene . . . . . 32
4. Recapitulare i Index . . . . . . . . . . . . . . . 39
5. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Capitolul 2 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
viii Cuprins
8. Rafinri ale rezoluiei:
strategii i restricii . . . . . . . . . . . . . . . . 105
9. Recapitulare i Index . . . . . . . . . . . . . . . 111
10. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . 120
Capitolul 3 Logica (calculul) cu predicate de ordinul I 123
1. Sintaxa logicii cu predicate
de ordinul I . . . . . . . . . . . . . . . . . . . . . . 123
2. Semantica logicii cu predicate
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
Capitolul 4 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 ix
Capitolul 5 Programare logic 238
1. Exemple de programe logice pure . . . . 240
2. Sintaxa programelor logice . . . . . . . . . . 249
3. Recapitulare i Index . . . . . . . . . . . . . . . 258
4. Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . 260
Anex Rezolvarea exerciiilor i
exerciii propuse 267
1. Rezolvri Capitolul 1 . . . . . . . . . . . . . . 267
2. Rezolvri Capitolul 2 . . . . . . . . . . . . . . 272
3. Rezolvri Capitolul 3 . . . . . . . . . . . . . . 282
4. Rezolvri Capitolul 4 . . . . . . . . . . . . . . 288
5. Rezolvri Capitolul 5 . . . . . . . . . . . . . . 292
6. Exerciii propuse . . . . . . . . . . . . . . . . . . 302
Bibliografie 312
Capitolul 1
Funcii booleene
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
codomeniu) aparent simple, au proprieti locale i globale foarte utile.
Teoria dezvoltat pentru ele constituie de fapt baza conceptual i
concret a semanticii logicii propoziionale n sens clasic (i nu numai).
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
adunarea modulo 2) i opus, n disjuncie, respectiv negaie (ca
operaii cu valori de adevr), etc., multe rezultate din logic pot fi
ulterior deduse printr-o simpl traducere. Anumite noiuni i
proprieti specifice funciilor booleene nu sunt direct i neaprat
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 9
- Prin specificarea unei proprieti caracteristice. A = {x e R |
| x
2
+ 9x 8 = 0}, este mulimea rdcinilor reale ale unei
ecuaii polinomiale de gradul al II-lea.
Mai exist o modalitate de specificare, care, fr a fi fost tratat n mod
explicit, a fost totui suficient de des utilizat (n ideea constructivist,
[CAZ2], [RIC]). Aceasta poate fi descris pe scurt astfel: A este cea
mai mic mulime care conine elementele ... i care este nchis la
operaiile ... . De exemplu, dac notm cu 0 cel mai mic (primul) numr
natural i, pentru fiecare n, numr natural, cu s(n) succesorul su
imediat, mulimea N poate fi definit (n ideea de mai sus) constructiv
sau structural (ea este de fapt o mulimebine-ordonat, [IP]), astfel:
Baza. 0 e N (zero este numr natural).
Pas constructiv (structural). Dac n e N, atunci s(n) e N (dac n
este numr natural, atunci succesorul su imediat este numr natural).
Nimic altceva nu mai este numr natural.
Prin urmare, N este o mulime care conine (iniial) elementul numit 0.
Se introduc apoi elemente noi folosind elemente vechi (deja existente
n mulime) i simbolul (operatorial) s. Procesul continu ct timp este
posibil (n cazul de mai sus, el continu la infinit). Pentru ca N s fie
ntr-adevr cea mai mic mulime construit n felul descris, am
adugat, n plus fa de Baz i Pasul constructiv, condiia nimic
altceva nu mai este numr natural (n cele ce urmeaz, ultimul text
va fi implicit presupus a fi prezent.
10 Cristian Masalagiu
Soluia adoptat pentru aceast a treia cale de descriere a unei
mulimi are avantajul de a avea i o caracteristic de natur
(semi)algoritmic. Acceptm astfel paradigma imperativ propus de
D. Knuth ([KNU]), Algoritm = Date + Operaii. Mai exact, un
algoritm (imperativ) reprezint o secven finit de pai (instruciuni),
care descriu operaii precise asupra unor informaii (date) iniiale (de
intrare) sau intermediare (de lucru, temporare), n vederea obinerii
unor informaii (rezultate) finale (de ieire). Paii se execut (operaiile
se efectueaz n mod concret) n ordinea scrierii lor n secven. Un
algoritm calculeaz o funcie sau rezolv o problem ([CRO],
[SOR]). Intuitiv, datele de intrare reprezint elemente din domeniul de
definiie al funciei de calculat (sau informaiile iniiale din realitatea n
care i are originea problema pe care vrem s o rezolvm), iar datele de
ieire sunt elemente din codomeniul funciei (respectiv, soluiile
problemei). Un algoritm se termin pentru toate intrrile admise, prin
urmare exist ntotdeauna un ultim pas, a crui execuie marcheaz
de obicei i obinerea rezultatelor de ieire. Din motive tehnice, vom
lua uneori n considerare i algoritmi care nu se termin pentru toate
intrrile, pe care-i vom numi semialgoritmi (proceduri). Un
(semi)algoritm poate fi descris sub mai multe forme, printre care se
numr i pseudocodul (limbaj intermediar ntre limbajul natural i un
limbaj de programare comercial). Astfel, definiia constructiv a lui N
poate deveni, n limbaj algoritmic (pseudocod, [IVA]):
Fundamentele logice ale Informaticii 11
Intrare: -.
Ieire: N.
Metod:
Pas 1: N = {0}.
Pas 2: Ct_timp (este posibil) execut
Pas 3: Alege n e N.
Pas 4: N = N U {s(n)}.
Sf_Ct_timp.
Desigur c n cele de mai sus 0 putea fi introdus din exterior, adic n
Intrare. nafara instruciunii de ciclare cu un numr necunoscut de
pai (Ct_timp (<condiie>) execut <corp> Sf_Ct_timp) i a
celei de asignare (<variabil> = <valoare>), n descrierea algoritmilor
imperativi vom mai folosi selecia (Dac (<condiie>) atunci <corp>
altfel <corp> Sf_Dac) i instruciunea de ciclare cu un numr
cunoscut de pai (Pentru <variabil> = <valoare iniial>, <indice>,
<valoare final> execut <corp> Sf_Pentru). Cteodat vom
ntrebuina i varianta Repet <corp> Pn_cnd (<condiie>)
Sf_Repet pentru o instruciune de ciclare. Presupunnd c
semnificaia intuitiv a instruciunilor de mai sus este cunoscut de
ctre cititor, vom mai face precizri i completri pe parcursul lucrrii
legate de conceptul de algoritm, cum ar fi prezentarea pe scurt 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],
12 Cristian Masalagiu
[LUC]). Revenind la definiiile constructive care ascund i ideea de
recursivitate n programare - ele au i alte avantaje. Un prim avantaj
este acela c se poate folosi aceeai metod pentru a introduce alte
definiii, care sunt legate de mulimea respectiv n totalitatea ei. Putem
da astfel o definiie constructiv (recursiv) a adunrii numerelor
naturale, pe care o vom folosi de altfel n Capitolul 5, dup cum
urmeaz.
Baza: x + 0 = x, pentru fiecare x e N (a aduna 0 la orice numr natural
nseamn a-l lsa neschimbat).
Pas constructiv: x + s(y) = s(x + y), pentru fiecare x, y e N (dac tim
s calculm x + y i cunoatem succesorul imediat al numrului natural
y, atunci tim s calculm i suma x + s(y); mai exact, aceasta coincide
cu succesorul imediat al numrului care reprezint suma x + y).
Un al doilea i cel mai important avantaj este posibilitatea folosirii
n demonstraii a principiului induciei structurale:
Fie A o mulime definit constructiv, A A mulimea elementelor
iniiale (definite prin pasul Baza al definiiei) i P o afirmaie care
trebuie demonstrat pentru toate elementele lui A. Acceptm c P(a)
este adevrat pentru fiecare a A dac i numai dac:
1. (Baza.) Artm c P(a) este adevrat pentru fiecare a A.
2. (Pas inductiv.) Fie orice b A, element nou obinut din elementele
deja construite a
1
, a
2
, ... , a
n
, cu ajutorul operatorului f (vom conveni s
Fundamentele logice ale Informaticii 13
scriem acest lucru prin b = f(a
1
, a
2
, ... , a
n
), dei relaia dintre
elementele vechi i cele noi nu este ntotdeauna de natur funcional)
i presupunem c este adevrat P(a
i
) pentru fiecare a
i
{1, 2, ..., n}.
Artm c este adevrat P(b).
Observaie. Principiul induciei matematice (naturale) aa cum este
el cunoscut din matematica de liceu, este un caz particular al
principiului induciei structurale (dup cum se observ imediat).
Folosim cuvntul principiu n loc de teorem (care trebuie s aib i o
demonstraie aferent) deoarece n cele de mai sus doar stipulm c
formulele (n)P(n) i respectiv P(0) . (n)(P(n) implic P(n+1))
sunt tare echivalente (n sensul care va fi precizat n Capitolul 2). n
cele de mai sus, P(0) poate fi nlocuit i cu orice P(k), k numr
natural fixat, deoarece i submulimea lui N, {k, k + 1, ... } este bine-
ordonat; n acest caz, locul lui (n) este luat de (n > k)).
Echivalena amintit, dei adevrat n anumite situaii (structuri)
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
corectitudinii algoritmilor imperativi, sau metoda induciei asupra
unei demonstraii ([WIN]), folosit pentru demonstrarea unor teoreme
de tip corectitudine i completitudine.
14 Cristian Masalagiu
Noiunile de axiom, teorem, regul de inferen, demonstraie,
raionament, sunt utilizate n acest capitol la modul informal/descriptiv,
ele urmnd a fi precizate n capitolele urmtoare.
1. Algebre booleene
Se presupun cunoscute noiunile i notaiile de baz din
matematica de liceu. n plus, submulimea lui N,
{1, 2, ... ,n} se va nota i cu [n], iar pentru indicarea unui element al
unui produs cartezian (numit i tuplu sau n-uplu n cazul n care
numrul n de componente este cunoscut) se vor folosi parantezele
ascuite, nu cele rotunde (exceptnd cazul n care este vorba de
aplicarea unei funcii unui tuplu).
Notm cu B mulimea {0, 1} i cu FB
(n)
= {f | f : B
n
B}, B
n
reprezentnd produsul cartezian al lui B cu el nsui, luat de n e N ori
(B
n
= B B ... B). FB
(0)
va coincide cu B, prin convenie. Vom
pune deci:
n 0
(0)
FB FB
FB
n
>
=

B
Observaie. card(FB
n
) =
2
2
n
. Cardinalul unei mulimi A va mai fi
notat, atunci cnd nu exist confuzii i cu |A|. Mai mult, dac att
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
Fundamentele logice ale Informaticii 15
crea anumite confuzii de moment. n cazul unei funcii f e FB
(n)
(operaie n-ar), tabela de definiie va fi de forma:
x
1
x
2
... x
n
f(x
1
, x
2
, ... , x
n
)
0 0 0 f(0, 0, ... , 0)
0 0 ... 1 f(0, 0, ... , 1)
... ... ... ... ...
1 1 1 1 f(1, 1, ... , 1)

Se mai observ c am folosit o ordine standard pe B


n
, de unde
se poate deriva o ordine standard pentru valorile din codomeniul
funciei. Acest lucru face posibil o reprezentare a funciilor booleene
ca numere n baza 2 i (desigur) ca numere n baza 10.
ntrebare. Putei justifica egalitatea card (FB
n
) =
n
2
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 c
0
(funcia indentic 0), c
1
(funcia identic 1), 1
B
(identitatea) i
(negaia, opusul), date prin:
16 Cristian Masalagiu
x c
0
c
1
1
B

0 0 1 0 1
1 0 1 1 0
- Pentru n = 2, din totalul celor 16 funcii de dou variabile posibile
(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 |
(anticonjuncia sau operaia lui Sheffer):
x y x + y x y x y x | y
0 0 0 0 0 1
0 1 1 0 1 1
1 0 1 0 1 1
1 1 1 1 0 0
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
B
n
)?
Observaie. Funciile binare , + i funcia unar , pot fi privite ca
legi de compoziie interne pe mulimea B. Astfel, ntr-un mod cu totul
Fundamentele logice ale Informaticii 17
similar cu cazurile cunoscute ale grupului, inelului sau corpului, tuplul
B = < B, , +, > formeaz o algebr boolean, sau algebr Boole
(dup numele matematicianului G. Boole, 1815 1864).
Definiia 1.1. Se numete algebr boolean un 4-uplu M,
M = <M, , V, ~ >, format din orice mulime nevid M (suportul
algebrei) dou operaii binare , V : M M M i o operaie unar
~ : M M, care satisfac condiiile (legile):
1) x y = y x comutativitate (a lui )
2) (x y) z = x (y z) asociativitate (a lui )
3) x (y V z) = (x y) V (x z) distributivitate (a lui
fa de V)
4) (x y) V y = y absorbie
5) (x (~x)) V y = y legea contradiciei
i respectiv
1) x V y = y V x. comutativitate (a lui V)
2) (x V y) V z = x V (y V z) asociativitate (a lui V)
3) x V (y z) = (x V y) (x V z) distributivitate (a lui V
fa de )
4) (x V y) y = y absorbie
5) (x V (~x)) y = y legea tautologiei

18 Cristian Masalagiu
Legile (numite impropriu i axiome) de mai sus nu reprezint
identiti, ele trebuind s fie nelese ca nite ecuaii satisfcute pentru
toate valorile variabilelor x, y, z, care sunt nume generice pentru
elemente oarecare din M. Fiecare dintre cei doi membri reprezint de
fapt (expresiile unor) funcii booleene (numrul de argumente fiind dat
de numrul de nume de variabile distincte care apar n intreaga ecuaie).
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
adevrate i dac nlocuim (textual) orice apariie a unei funcii
(subexpresii) prin alt functie (subexpresie). O asemenea Teorem de
substituie va fi demonstrat n capitolul urmtor, n contextul logicii
formale.
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
care sunt reprezentate fie prin axiome (Baza definiiei structurale), fie
obinute din axiome printr-un anumit raionament utiliznd reguli de
inferen (Pasul constructiv: cu ajutorul regulilor se obin afirmaii
noi, numite i teoreme, din afirmaii vechi), putem defini dualele lor,
A

, n felul urmtor: A

se obine din A prin nlocuirea simultan


(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
Fundamentele logice ale Informaticii 19
B, 1 este dualul lui 0 (evident i reciproc, relaia de dualitate fiind o
relaie simetric), duala sumei este produsul, duala unei funcii
oarecare se obine prin dualizarea ntregii tabele de adevr, etc. ntr-o
algebr boolean oarecare M, se poate arta (demonstraia formal
nefiind esenial pentru scopul acestei lucrri) c exist un (unic)
element n M (notat 0) care satisface n plus ecuaia x ( x
~
) = 0,
precum i un (unic) element 1 e M, care este dualul lui 0, satisfcnd
x V ( x
~
) = 1 (0 fiind desigur distinct de 1). Mai mult, relaia de dualitate
este i idempotent (avem (o

= o, pentru fiecare obiect o), existnd i


obiecte autoduale, adic obiecte care satisfac o

= o (de exemplu,
funciile 1
B
, i f e FB
(3)
, dat prin f(x, y, z) = x y z, sunt
autoduale). Fiecare axiom i) din Definiia 1.1, i e [5] are astfel duala
sa, notat acolo prin i). Mai mult, nlocuind ntr-un raionament prin
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
duala sa A

este adevrat.
20 Cristian Masalagiu
ntrebare. Putei arta c funcia f(x, y, z) = x y z este
autodual ?
Teorema 1.1. Tuplul B = < B, , +, > este o algebr boolean i
pentru fiecare x e B avem x( x ) = 0 i x + ( x ) = 1.
Demonstraie. Conform principiului dualitii, este suficient s artm
c sunt adevrate doar axiomele 1) 5) i x( x ) = 0 (n cazul nostru,
este nlocuit de iar V 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:
x y x y (x y) + y y
0 0 0 0 0
0 1 0 1 1
1 0 0 0 0
1 1 1 1 1
i respectiv:
x x x ( x )
0 1 0
1 0 0
Adevrul axiomei 4) rezult din primul tabel prin compararea
penultimei coloane (care este membrul stng al ecuaiei) cu ultima
Fundamentele logice ale Informaticii 21
coloan (membrul drept), linie cu linie. Se observ imediat c acestea
coincid, adic funciile date de expresiile respective sunt egale (dou
funcii sunt egale dac au acelai domeniu i codomeniu i valorile lor
coincid pe fiecare valoare a argumentului). Similar pentru x( x ) = 0 i
cel de-al doilea tabel, cu observaia c nu am mai explicitat coloana
care reprezint membrul drept (i care este de fapt expresia funciei c
0
).

O algebr boolean cunoscut este dat de mulimea prilor


(submulimilor) unei mulimi oarecare V, notat 2
V
, mpreun cu
intersecia, reuniunea i complementara fa de V,
V = < 2
V
, , U, C
V
>.
Observaie. Conceptul de algebr boolean este prezent n matematic
prin mai multe definiii, nu toate echivalente n orice context ([BIR]).
S menionm faptul c o definiie echivalent cu Definiia 1.1 este:
O algebr boolean este o latice M = <M, , V> care satisface
condiiile suplimentare:
- Exist (mcar) un prim element, 0 e M, astfel nct x V 0 = x.
- Exist (mcar) un ultim element, 1 e M, astfel nct x 1 = x.
- Operaia este distributiv fa de operaia V.
- Pentru fiecare x e M, exist un element x e M (numit i
complementul lui x), astfel nct x V x = 1 i x x = 0.
22 Cristian Masalagiu
O latice (i aici sunt mai multe accepiuni matematice ale termenului i
cteva definiii echivalente pentru o aceeai accepiune) este un triplet
M = <M, , V>, n care ambele operaii satisfac proprietile de
idempoten, comutativitate, asociativitate i absorbie. n plus, n
orice latice (deci i n orice algebr boolean), se poate defini o relaie
de ordine parial (relaie binar, reflexiv, tranzitiv i antisimetric),
prin: x s y dac i numai dac x = x y (sau, dual, y = x V y). Datorit
acestui fapt, o latice se mai definete i ca fiind o mulime parial
ordonat (poset) n care toate submulimile finite, nevide, admit mcar
o cea mai mic margine superioar (l.u.b., ) i o cea mai mare
margine inferioar (g.l. b., ).
2. Teoreme de reprezentare i forme normale pentru
funciile booleene
ntr-o algebr boolean (n particular, n B) sunt valabile i alte
teoreme. Ele pot fi demonstrate fie utiliznd tabelele de adevr, fie
construind un raionament, adic pornind de la axiome (i/sau de la alte
teoreme, demonstrate anterior) i utiliznd anumite reguli de inferen.
Sumarizm cteva dintre ele n tabelul urmtor (teoremele sunt notate
cu 6) 13) iar dualele lor respectiv cu 6) 13); am neglijat uneori, de
exemplu n 13) i 13), scrierea lui ).
Fundamentele logice ale Informaticii 23
6) x = x 6) x = x
7) x x = 0 7) x + x = 1
8) xx = x 8) x + x = x
9) x0 = 0 9) x + 1 = 1
10) x1 = x 10) x + 0 = x
11) x
1
x
2
x
n
= 0 dac i
numai dac exist ie[n] astfel
nct x
i
= 0 (oricare ar fi n > 2
i oricare ar fi
x
1
, x
2
, ..., x
n
e B)
11) x
1
+ x
2
+ + x
n
= 1 dac
i numai dac exist ie[n]
astfel nct x
i
= 1 (oricare ar fi
n > 2 i oricare ar fi
x
1
, x
2
, ..., x
n
e B)
12) x
1
x
2
x
n
= 1 dac i
numai dac pentru fiecare ie[n]
avem x
i
= 1 (oricare ar fi n > 2
i oricare ar fi
x
1
, x
2
, ..., x
n
e B)
12) x
1
+ x
2
+ + x
n
= 0 dac
i numai dac pentru fiecare
ie[n] avem x
i
= 0 (oricare ar fi
n > 2 i oricare ar fi
x
1
, x
2
, ..., x
n
e B)
13)
1 2 n 1 2 n
x x ... x = x + x +... + x
(oricare ar fi n > 2 i oricare ar
fi x
1
, x
2
, ..., x
n
e B)
13)
1 2 n 1 2 n
x + x +... + x = x x ... x
(oricare ar fi n > 2 i oricare ar
fi x
1
, x
2
, ..., x
n
e B)
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,
24 Cristian Masalagiu
comutativitii, distributivitii, precum i cu alte teoreme, etc.
Afirmaiile 13) i 13) se mai numesc legile lui deMorgan.
Exerciiul 1.1. S se demonstreze adevrul afirmaiilor care urmeaz
folosind att tabelele de adevr ct i raionamente, implicnd axiome
(sau alte afirmaii, demonstrate n prealabil) i reguli de inferen
(deducie, demonstraie), cunoscute din matematica de liceu (de
exemplu, cele legate de faptul c egalitatea este o relaie de
echivalen, adic este reflexiv, simetric i tranzitiv):
a) 11) din tabelul anterior.
b) x(x + y ) = x.
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.
a) Procedm prin inducie matematic, afirmaia de demonstrat fiind
(n e N)(n > 2 implic P(n)), unde:
P(n): (x
1
, x
2
, ..., x
n
e B)( x
1
x
2
x
n
= 0 dac i numai dac
(-i e[n])(x
i
= 0)).
Baza. n = 2. Se folosesc 9) i 10) din Tabelul 1.1.
Fundamentele logice ale Informaticii 25
Pas inductiv. S presupunem c pentru (orice) k > 2 i oricare elemente
x
1
, x
2
, ..., x
k
e B avem:
x
1
x
2
x
k
= 0 atunci i numai atunci cnd exist ie[k] astfel nct
x
i
= 0.
S presupunem faptul c este adevrat P(k) i s artm c P(k + 1)
este adevrat. Fie orice element din B, notat x
k+1
i s notm
y = x
1
x
2
x
k
. Atunci avem de demonstrat c este adevrat afirmaia
yx
k+1
= 0 dac i numai dac exist ie[k + 1] astfel nct x
i
= 0,
ceea ce este echivalent cu a arta c:
yx
k+1
= 0 dac i numai dac exist ie[k] astfel nct x
i
= 0 sau
x
k+1
= 0.
Aplicnd acum ipoteza inductiv, rezult c mai trebuie s artm c:
yx
k+1
= 0 dac i numai dac y = 0 sau x
k+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
urmeaz acum imediat, prin aplicarea lui 10) (Tabelul 1.1).
c) x + xy = x. Rezult din ultima parte a demonstraiei anterioare.
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.
26 Cristian Masalagiu
Folosind comutativitatea i distributivitatea, rezult c trebuie s artm
x + y(x + x ) = x + y. Aplicm acum 7) i apoi 10) (Tabelul 1.1),
pentru a obine ceea ce se cere.
e) x + xy = x + y. n relaia precedent se nlocuiesc toate apariiile
lui x cu x i se folosete apoi 6).
f) x( x + y) = xy. Se folosesc - n ordine distributivitatea, afirmaia
7) (Tabelul 1.1), comutativitatea i 10) (Tabelul 1.1).
g) x (x + y) = x y. Din nou, se nlocuiesc simultan toate apariiile lui
x cu x n relaia precedent i se aplic 6).
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 x
1
= x i x
0
= x (n sensul c puterea
1 ataat unei expresii o las neschimbat, iar puterea 0 i
adaug o bar). S remarcm c indicii superiori precedeni nu se
supun principiului dualitii (de exemplu, nu este adevrat c (x
1
= x)

coincide cu (x
0
= x)).
Fundamentele logice ale Informaticii 27
Teorema 1.2 ([CAZ1], de descompunere, n sum de termeni).
Pentru fiecare n e N*, f e FB
(n)
i fiecare k e [n], avem:
1 2 k
1 2 k
1 2 n 1 2 k k+1 n 1 2 k
, ,..., B
f(x , x ,..., x ) = x x ... x f( , , ..., , x ,..., x )



e

oricare ar fi x
1
, x
2
, ... , x
n
e B.
Demonstraie. Dac x
i
,
i
e 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,
1 2 k
1 2 k
x x ... x =1


dac i numai dac x
i
=
i
pentru fiecare i e [k].
Fie acum elementele a
1
, a
2
, ... , a
n
e B, oarecare, fixate. Conform (
*
), n
suma
1 2 k
1 2 k
1 2 k k+1 n 1 2 k
, ,..., B
a a ... a f( , , ..., , a , ..., a )



e

unul i numai unul dintre factorii


1 2 k
1 2 k
a a ... a


va fi egal cu 1,
adic cel pentru care
i
= a
i
, pentru fiecare i e [k]. Datorit
comutativitii i legilor 10), 9) i 10) (Tabelul 1.1), rezult c suma
este egal exact cu f(a
1
, a
2
, ... , a
n
).
Este adevrat i teorema dual (de descompunere, n produs de
factori), ambele rezultate fiind folosite pentru demonstrarea
existenei formelor normale pentru funciile booleene. n enunul
teoremei duale, nafara nlocuirii lui + cu i a lui cu , numele
28 Cristian Masalagiu

1
,
2
, ...
k
(ca argumente ale lui f) se nlocuiesc cu aceleai elemente,
dar barate.
Definiia 1.2. Fie n e N* i x
1
, x
2
, ... , x
n
e B variabile (booleene)
distincte (putem nota mulimea acestora cu X = {x
1
, x
2
, ... , x
n
}, ideea
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 este omis, sau supradimensionat)
1 2 k
1 2 k
i i i
t = x x ... x


, unde 0 s k s n,
1
,
2
, ... ,
k
e B i
1 s i
1
< i
2
< ... < i
k
s 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
ordinea precizat.
Observaie. ntre mulimea termenilor n-ari t (peste X) i mulimea
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,
dat de g(t) = <e
1
, e
2
, ... , e
n
>, unde, pentru fiecare i e [n], avem e
i
= 0
dac x
i
apare barat n t, e
i
= 1 dac x
i
apare nebarat n t i e
i
= 2 n rest
(x
i
nu apare n t). Mulimea termenilor n-ari considerai va avea atunci
3
n
elemente. Raionnd similar pentru cazul maxtermenilor n-ari (n
acest caz, nu este posibil ca vreo variabil considerat s nu apar),
Fundamentele logice ale Informaticii 29
rezult c exist 2
n
maxtermeni n-ari distinci (indiferent de numele
celor n variabile diferite fixate prin X).
Consideraiile de natur combinatorial sunt practic indispensabile n
vederea obinerii unor rezultate convenabile.
ntrebare. Putei rescrie att teorema de descompunere cu termeni
ct i teorema de descompunere cu factori pentru cazul n = 2 i k = 1 ?

Exemplu. Dac lum n = 2 i notm x


1
cu x i x
2
cu y, atunci cei 3
2
= 9
termeni sunt: x, y, x, y, xy, x y, x y, x y, 1. Cei 2
2
= 4 maxtermeni
sunt: xy, x y, x , y x y.
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
numete form normal disjunctiv perfect (n-ar, n N*), sau
(n-)FNDP pe scurt, orice sum de maxtermeni n-ari distinci.
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
dou sume care difer doar prin ordinea termenilor, le vom privi ca
fiind identice. Vor exista astfel
k
n
C
3
forme normale disjunctive n-are
avnd k termeni, 0 s k s 3
n
(prin convenie, pentru k = 0, unica form
care este acceptat i este i perfect, se noteaz tot cu 0). n consecin,
numrul total al n-FND urilor va fi:
0 1 3 3
3 3 3 3
... ... 2
n n
n n n n
k
C C C C + + + + + =
.
Analog, numrul total al n-FNDP urilor va fi:
0 1 2 2
2 2 2 2
... ... 2
n n
n n n n
k
C C C C + + + + + =
.
Teorema 1.3 ([CAZ1]). Orice funcie boolean se poate reprezenta n
mod unic ca o FNDP.
Demonstraie. Fie fixate n e N*, f e FB
(n)
i X = {x
1
, x
2
, ... , x
n
}.
Aplicnd Teorema de descompunere cu termeni pentru f i k = n,
gsim c f se poate scrie sub forma:
1 2 n
1 2 n
1 2 n n 1 2 n 1 2
, ,..., B
f(x , x , ... , x ) = x x ... x f( , ,..., )



e

oricare ar fi valorile lui x


1
, x
2
, ... , x
n
din B i prin urmare avem:
1 2 n
1 2 n
1 2 n n 1 2
, ,..., B
f(x , x , ... , x ) = x x ... x

e

,
Fundamentele logice ale Informaticii 31
oricare ar fi x
1
, x
2
, ... , x
n
e B, o
1
, o
2
, ... , o
n
e B, astfel nct
f(o
1
, o
2
, ... ,o
n
) = 1, ceea ce nseamn exact o reprezentare a lui f ca o
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.
Prin dualizare se obin noiunile de (n-)factor peste X (orice
sum de n variabile din X, acestea aprnd barate sau nu), maxfactor
(n-ar, peste X) un (n-)factor n care apar toate variabilele, form
normal conjunctiv (n-ar) ((n-)FNC, adic orice produs de factori
dictinci), form normal conjunctiv (n-ar) perfect ((n-)FNCP,
adic orice produs de maxfactori distinci). Nu uitm c se aplic
asociativitatea generalizat i comutativitatea, peste tot, att pentru
sum ct i pentru produs, astfel nct dou sume (produse) nu vor fi
considerate distincte dac difer doar prin ordinea componentelor.
Aplicnd principiul dualitii, rezult c este adevrat i duala
Teoremei 1.3, adic:
Teorema 1.4. Fie orice n e N*, orice f e FB
(n)
i oricare nume
distincte de variabile x
1
, x
2
, ... , x
n
. Atunci f se poate reprezenta n mod
unic ca o FNCP peste X = {x
1
, x
2
, ... , x
n
}, sub forma:
1 2 n
1 2 n
1 2 n n 1 2
, ,...,
f(x , x , ... , x ) = (x + x + ... + x )

e
[
B
,
32 Cristian Masalagiu
oricare ar fi x
1
, x
2
, ... , x
n
e B, o
1
, o
2
, ... , o
n
e B, astfel nct
f(
1 ,
2 , ... ,
n ) = 0.
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
convenii; se pot construi algoritmic, conform Teoremei 1.3 i
Teoremei 1.4, etc.), s-ar putea ca din punct de vedere practic s nu fie
chiar convenabile. Astfel, ne-am putea pune problema gsirii celei mai
scurte forme normale, funcie de o anumit msur fixat. Exist
numeroase msuri candidat pentru o FND sau FNC, suficient de
simple (vom nota orice asemenea form prin ): lungimea ca text
(numr de caractere grafice coninute, poate chiar excluznd
parantezele); numrul de operatori folosii (poate chiar exceptnd
negaia); numrul de nivele din arborele ataat; numrul de termeni
(factori); numrul de componente elementare ale unui termen
(factor); numrul total de apariii ale variabilelor (apariia unei
aceleiai variabile pe poziii diferite se numr distinct), etc.
Considernd ultima msur (pe care o vom nota cu n()), putem numi
form normal disjunctiv minimal (FNDM) pentru f e FB, orice
FND astfel nct:
n() = min {n() | este FND pentru f}.
Dat o funcie boolean f e FB, se poate pune problema determinrii
tuturor FNDM pentru f, sau a uneia standard (ceea ce este posibil
Fundamentele logice ale Informaticii 33
deoarece reamintim - pentru fiecare numr natural n numrul
funciilor booleene n-are este
n
2
2 iar numrul formelor disjunctive n-
are este
n
3
2 ). Problema anterioar este rezolvabil cu ajutorul
algoritmului lui W. Quine ([CAZ1]). Algoritmul lui Quine intr sub
incidena principiului dualitii, astfel nct fcnd modificrile de
rigoare el poate determina i toate formele normale conjunctive
minimale (FNCM) pentru orice funcie boolean.
O problem similar, prin rezolvarea creia s-ar putea reduce n
anumite cazuri timpul de procesare a unor texte (expresii, formule,
etc.), este gsirea unui numr minim de operaii booleene
convenabile, cu ajutorul crora s se reprezinte orice funcie
boolean.
Definiia 1.4. Clasa funciilor booleene elementare este:
E = {
n
p
i | n e N*, 1 s p s n,
n
p
i : B
n
B,
n
p
i (x
1
, x
2
, ... , x
p
, ... , x
n
) = x
p
}.
Fie n e N*, t un numr natural, f, h
1
, h
2
, ... , h
t
e FB
(n)
i g e FB
(t)
.
Spunem c f se obine din g, h
1
, h
2
, ... , h
t
prin superpoziie dac pentru
fiecare x = <x
1
, x
2
, ... , x
n
> avem:
f(x) = g(h
1
(x), h
2
(x), ... , h
t
(x)).
Fie M _ FB. Se numete M-ir orice secven (list) finit f
0
, f
1
, ... , f
r
de funcii booleene n care fiecare f
i
este fie din E U M fie se obine
prin superpoziie din alte funcii, aflate n aceeai list dar naintea lui
f
i
.
34 Cristian Masalagiu
Funciile
n
p
i se mai numesc i proiecii. Pentru superpoziie vom
utiliza notaia f = SUP(g, h
1
, h
2
, ... , h
t
), iar M va denota mulimea
funciilor care apar ca elemente n M-iruri. Pentru fiecare M dat, M
va fi practic o mulime definit constructiv, n care E U M constituie
mulimea funciilor de baz iar operatorul de superpoziie este singura
modalitate de a se obine funcii noi din funcii vechi. Prin urmare, M
este cea mai mic mulime care conine proieciile, elementele lui M i
este nchis la superpoziie. Algebric vorbind, se mai spune c M este
nchiderea prin superpoziie a mulimii E U M. M se va numi nchis
dac coincide cu nchiderea sa.
Teorema 1.5 ([CAZ1]). O mulime M _ FB este nchis dac i numai
dac conine funciile elementare i orice superpoziie de funcii din M
se afl n M.
Demonstraie. Este imediat din definiii, demonstraia reprezintnd o
aplicare direct a principiului induciei structurale. Astfel, este suficient
s artm c, dat M, avem:
Baza. E _ M i M _ M .
Pas inductiv. Pentru fiecare n e N*, fiecare t e N*, fiecare g e FB
(t)
,
fiecare h
1
, h
2
, ... , h
t
e FB
(n)
, fiecare f e FB
(n)
, astfel nct
f = SUP(g, h
1
, h
2
, ... , h
t
), avem: Dac g, h
1
, h
2
, ... , h
t
M, atunci
f M.
Exemple imediate de mulimi nchise sunt , E i FB. Se poate
arta i c urmtoarele mulimi (infinite) sunt mulimi nchise (a se
Fundamentele logice ale Informaticii 35
consulta i exerciiile din finalul capitolului, mpreun desigur cu
rezolvrile din Anex):
- T
0
: mulimea funciilor booleene de oricte argumente care
pstreaz pe 0, adic satisfac f(0, 0, ... , 0) = 0.
- T
1
: dual, mulimea funciilor care pstreaz pe 1, adic satisfac
f(1, 1, ... , 1) = 1.
- Aut: mulimea funciilor autoduale (f

= f). S notm ca o
proprietate de caracterizare interesant pentru aceast clas de
funcii i faptul c f

(x
1
, x
2
, ... , x
n
) =
1 2
f( x , x ,..., x )
n
. Acest
lucru se obine imediat deoarece tabela de definiie pentru f

se
obine din tabela pentru f, nlocuind simultan, peste tot, pe 0 cu
1 i pe 1 cu 0.
- Mon: mulimea funciilor monotone. Pe B putem defini o relaie
de ordine natural: 0 s 1 (putem pune chiar 0 < 1). Relaia
precedent poate fi extins pe componente la orice produs
cartezian. S considerm dou n-uple = <
1
,
2
, ... ,
n
> i
= <
1
,
2
, ... ,
n
>,
i
,
i
e B, i e [n]. Vom spune c s dac
i numai dac
i
s
i
pentru fiecare i e [n] (desigur c vom avea
< dac i numai dac s i adic i difer prin
mcar o component). O funcie f e FB
(n)
este monoton dac
pentru fiecare , e B
n
, din s rezult f() s f().
- Lin: mulimea funciilor liniare. Se poate arta mai nti c
tripletul I = <B, , > este un inel comutativ cu unitatea 1,
izomorf cu inelul claselor de resturi modulo 2 (cele dou
mulimi suport i operaiile corespondente se pot
36 Cristian Masalagiu
identifica). Urmeaz c orice funcie boolean se poate
reprezenta unic ca un polinom (eventual, de mai multe
variabile) cu coeficieni n I. Fie astfel o funcie boolean f,
despre care tim deja c se poate scrie ca o sum (boolean) de
termeni. Putem acum folosi egalitile (se pot demonstra uor,
folosind tabelele de adevr): x = x 1 i x + y = y x =
= (x1) (y 1) 1 = x y x y, precum i proprietile
inelelor, pentru a observa c orice FND a lui f devine o sum
modulo 2 de termeni (care sunt produse de variabile distincte).
Numrul acestor produse este 2
n
, deci numrul polinoamelor
modulo 2 este
n
2
2 , acelai ca i numrul funciilor booleene
n-are (de unde urmeaz unicitatea reprezentrii). Spunem c o
funcie f e FB
(n)
este liniar dac reprezentarea sa (unic) sub
form de polinom modulo 2 are aspectul:
c
0
c
1
x
1
c
2
x
2
... c
n
x
n
, c
i
e B, i e [n].
Observaie. Se poate arta c toate mulimile anterioare sunt nebanale,
adic nu coincid nici cu FB, nici cu E, nici cu .
Exemplu ([CAZ1]). Funcia f(x, y, z) = xz + x y z + x y z este
liniar deoarece avem succesiv:
f(x, y, z) = comutativitate, distributivitate
= xz + x z (y + y) = tim c y+y = 1
= xz + x z = folosind a + b = ab a b
= xz x z xz x z = tim c xz x z = 0
Fundamentele logice ale Informaticii 37
= x z x z = folosind a = a 1
= x z (x 1) (z 1) = distributivitate
= x z x z x z 1 = folosind a a = 0
= x z 1.
Definiia 1.5. O mulime de funcii booleene este complet dac
nchiderea sa coincide cu FB. O mulime complet se numete baz
dac este maximal (adic nici o submulime proprie a sa nu mai este
complet).
Observaie. Se arat relativ simplu c mulimea {c
0
, c
1
, f, }, unde f
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
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 T
0
,
T
1
, 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
{|} 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
38 Cristian Masalagiu
de dorit s se gseasc o cale de mijloc, prin care s se pstreze ntr-
adevr ct mai puine funcii ntr-o baz, dar acestea s fie i uor de
neles/manipulat.
Acceptm fr demonstraie (Teorema 1.7 a fost ns deja
demonstrat implicit, prin comentariile anterioaree), urmtoarele
rezultate ([CAZ1], aceast referin nefiind sursa primar):
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 T
0
, T
1
,
Aut, Mon, Lin.
Teorema 1.7. Orice baz conine cel mult patru funcii i exist baze
compuse din una, dou, trei i patru funcii.
Teorema 1.8. Orice mulime nchis de funcii booleene fie este inclus
cel puin n una dintre mulimile T
0
, T
1
, Aut, Mon, Lin, fie coincide cu
FB.
Teorema 1.9. Mulimile T
0
, T
1
, Aut, Mon, Lin sunt precomplete (o
mulime M de funcii booleene este precomplet dac pentru orice alt
funcie f e M, mulimea M U{f} este complet).
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
de acest tip la mulimi de cardinal mai mare dect doi (cardinalul lui
B). Importana unor asemenea cercetri const n sperana reducerii
complexitii unor algoritmi clasici i dezvoltrii unor teorii similare,
implementabile i care s fie valabile i pentru logicile neclasice
multivaluate).
4. Recapitulare i Index
Teoria funciilor booleene constituie suportul pentru semantica
logicii clasice. nelegerea problematicii capitolelor urmtoare va fi
astfel uurat, anumite paragrafe (cum ar fi cel privind formele
normale) fiind simple transpuneri ntr-un alt limbaj ale unor concepte i
rezultate deja ntlnite. Principalele teme abordate au fost:
- Reprezentarea funciilor booleene. Funcii booleene particulare
importante.
- Proprietile globale ale clasei funciilor booleene. Principiul
dualitii. Algebre booleene.
- Forme normale pentru funciile booleene. Forme minimale.
- Mulimi nchise i (pre)complete de funcii booleene. Baze.
Dei ne-am bazat n principal pe cunotinele de matematic de
liceu, am fost nevoii s abordm tangenial ntr-un mod intuitiv,
pentru coerena materialului subiecte colaterale cum ar fi cele privind
algoritmii (imperativi), mulimile definite structural (constructiv), sau
principiul induciei structurale. Folosirea nediscreionar, n acest
moment, de ctre cititor a unor termeni introdui doar informal (cum
sunt, pn acum: axiom, teorem, raionament, demonstraie, etc.)
40 Cristian Masalagiu
poate fi duntoare, mrind confuziile care se fac n mod uzual ntre
sintax i semantic sau ntre limbaj i metalimbaj.
Indexul (neexhaustiv) este:
definiia structural (constructiv) a unei mulimi, 8
algoritm (imperativ), 9
funcie calculat de un algoritm, 9
problem rezolvat de un algoritm, 9
terminarea algoritmilor, semialgoritm, 10
pseudocod, 10
principiul induciei structurale, 11
funcii booleene, 13
tabele de adevr, 13
algebre booleene, 15
afirmaii i obiecte duale, 17
principiul dualitii, 18
termen, maxtermen, 27
form normal disjunctiv (perfect), 28-29
factor, maxfactor, 30
form normal conjunctiv (perfect), 30
form normal disjunctiv (conjunctiv) minimal, 31
funcii booleene elementare, 32
mulime nchis de funcii booleene, 33
mulime complet (precomplet) de funcii booleene, 36
baz de funcii, 36
Fundamentele logice ale Informaticii 41
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.
5. Exerciii
1. Completai demonstraia Teoremei 1.1, adic artai validitatea
legilor 1), 2), 3), 5), 1) 5) i x + ( x ) = 1, utiliznd tabelele
de adevr.
2. Artai c V = < 2
V
, , U, C
V
> 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(FB
n
) =
n
2
2 .
5. Fie mulimea termenilor n-ari t, construii peste mulimea
variabilelor booleene distincte (ordonate) X = {x
1
, x
2
, ... , x
n
},
precum i mulimea n-uplelor peste {0, 1, 2}. Artai c exist o
funcie bijectiv g, care identific aceste mulimi, dat prin
g(t) = <e
1
, e
2
, ... , e
n
>, unde, pentru fiecare i e [n], avem e
i
= 0
dac x
i
apare barat n t, e
i
= 1 dac x
i
apare (nebarat) n t i
e
i
= 2 n rest (adic x
i
nu apare n t). De asemenea, artai c
exist (mcar) o coresponden bijectiv ntre mulimea
n-uplelor peste {0, 1, 2} i mulimea de funcii
{f | f : [n] {0, 1, 2}}. Deducei c mulimea termenilor n-ari
42 Cristian Masalagiu
considerai va avea 3
n
elemente i c vor exista 2
n
maxtermeni
n-ari distinci.
6. S se gseasc FNDP i FNPC pentru funcia definit prin
tabelul:
x y z f(x, y, z)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
7. Justificai faptul c mulimile T
0
, T
1
, Aut, Mon, Lin sunt
infinite. Artai c T
0
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
c el este izomorf cu R = <Z
2
, , >, inelul claselor de
resturi modulo 2.
11. Artai c funcia boolean f(x, y, z) = x y + yz nu este liniar
(acolo unde nu exist confuzii, operatorul nu va fi scris
explicit).
Capitolul 2
Logica propoziional
(Calculul propoziional)
Manualele de Logic i Algebr ([BIE], [DID]) pot fi privite ca
o introducere (firav) n logica formal. i n alte manuale de
matematic (i nu numai), sunt prezente frecvent noiuni ca afirmaie,
axiom, teorem, raionament, demonstraie, etc. Aceste noiuni sunt
ns descrise sau concepute/receptate/folosite la modul informal: o
afirmaie este orice propoziie (fraz) care poate cpta o unic valoare
de adevr (a adevrat, f fals); o axiom este o afirmaie care se
accept a fi adevrat fr a se cere o demonstraie a ei; o teorem este
o afirmaie (presupus a fi adevrat) care se obine (din axiome sau
teoreme deja acceptate) printr-o demonstraie (formal), numit i
raionament; o demonstraie (formal) este transpunerea ntr-o form
(mai) exact a unui raionament; un raionament este o succesiune
(finit) de aplicri ale unor inferene (reguli de deducie); o regul de
deducie (inferen) are forma: premize/concluzii (att premizele ct i
concluziile sunt afirmaii, ideea fiind aceea c regulile sunt astfel
construite nct dac premizele sunt adevrate atunci i concluziile sunt
adevrate; se mai spune c inferenele sunt n acest caz valide sau
corecte), etc. De altfel, acesta este modul principal prin care se obin
(constructiv) n tiinele exacte noiuni noi (utiliznd definiiile) i
afirmaii (adevrate) noi (utiliznd raionamentele). Din punctul de
vedere al logicii filozofice, o noiune este complet caracterizat de
44 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
unei noiuni noi nseamn delimitarea unei noi sfere (sau a unui nou
coninut), ceea ce se poate face de exemplu (exist i alte tipuri
generale de definiii) prin precizarea unei sfere vechi (care
caracterizeaz complet o noiune anterior definit, numit gen proxim)
i a unei mulimi de proprieti suplimentare (care nu fac parte din
coninutul vechii noiuni, dar care mpreun cu acesta vor alctui
noul coninut), numit diferen specific: un paralelogram este un
patrulater convex care are dou laturi paralele i egale; un romb este
un paralelogram cu toate laturile egale; un ptrat este un romb avnd
un unghi de 90

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


definire a unor noiuni ar deveni infinit dac nu am accepta existena
unor noiuni primare (pentru o mai bun nelegere se poate recurge i
la reprezentri grafice cum ar fi diagramele Venn-Euler [IP]).
Noiunile primare nu mai sunt definite prin schema gen proxim i
diferen specific ci sunt doar descrise cu ajutorul unor elemente
considerate a fi suficiente pentru delimitarea exact a sferei curente de
sfera altor noiuni (asemenea definiii sunt cunoscute i sub numele de
definiii operaionale): o mulime este o colecie de obiecte distincte
dou cte dou; un punct este ceea ce se obine prin apsarea unui vrf
de creion pe o foaie de hrtie, etc. Un proces similar are loc i n cazul
conceptelor de axiom (n rolul noiunilor primare), teorem (n
Fundamentele logice ale Informaticii 45
rolul noiunilor noi), regul de inferen (n rolul diferenei
specifice), acceptarea axiomelor ca fiind advrate fr demonstraie
avnd desigur scopul de a evita raionamentele infinite. Aa cum n
momentul definirii unei noiuni (noi) trebuie s fim ateni ca sfera
acesteia s fie nevid i (n general) distinct de sferele unor noiuni
deja existente (chiar definite operaional), n cazul raionamentelor este
de dorit ca axiomele s reprezinte cu certitudine afirmaii
adevrate, iar inferenele s fie valide (inferenele trebuie s fie valide
pentru a avea raionamente corecte, adic formate numai din afirmaii
adevrate). Din pcate, datorit lipsei unei sintaxe clare pentru
conceptul de afirmaie (lipsei definiiilor formale n general), precum i
datorit amalgamrii consideraiilor de natur sintactic i semantic,
eafodajul anterior este destul de ubred putnd conduce la apariia
unor paradoxuri de gndire sau la acceptarea unor adevruri hilare.
Prima parte a capitolului este destinat unei scurte treceri n revist a
unor asemenea anomalii i introducerii primelor elemente de logic
(informatic) formal.
1. Logica, parte a filozofiei
Ambiguitile permise de limbajul natural, acceptarea utilizrii unor
noiuni primare sau a unor axiome avnd coninut ambiguu n
raionamente complexe, tratarea simultan a unor probleme de natur
sintactic mpreun cu altele care implic semantica, au creat de-a
lungul timpului numeroase confuzii i interpretri greite, bruind
comunicarea inter-uman. Un prim tip de asemenea confuzii, cunoscute
46 Cristian Masalagiu
sub numele de paradoxuri logice, sunt deja clasificate, mprite pe
categorii. Nu este simplu s dm o definiie unanim acceptat (de altfel,
B. Russell a mprit paradoxurile n apte categorii, avnd definiii
practic diferite). Pentru unii, un paradox este o afirmaie care pare s
se autocontrazic, sau poate conduce la o situaie care contrazice
bunul sim. Mai general, este orice afirmaie surprinztoare,
alambicat, contrar intuiiei, sau, o argumentaie aparent solid,
corect, dar care conduce la o contradicie. Pentru alii, este o
propoziie care i afirm propria falsitate, sau, un argument care
conduce la o concluzie contradictorie dei ncepe cu nite premize
acceptabile i se folosete o deducie valid. Oricum, se accept faptul
c un paradox nu nseamn acelai lucru cu o contradicie. Astfel,
afirmaia Aceast cma este albastr i aceast cma nu este
albastr este o contradicie, dar un paradox va apare atunci cnd o
persoan face o anumit presupunere i apoi, urmnd o argumentaie
logic, ajunge la contrariul presupunerii iniiale. Nu spun niciodat
adevrul este considerat un paradox (al mincinosului), deoarece dac
presupunem c propoziia este adevrat atunci rezult imediat c ea
este fals si reciproc. Mai sus este vorba despre o clas mai simpl de
paradoxuri (numite i semantice). Practic, ele ar putea fi rezolvate
daca sunt eliminate complet din logica clasic, deoarece pot fi
considerate ca afirmaii crora nu li poate ataa o unic valoare de
adevr (contradiciilor nu li se poate practic ataa nici una!). Un
paradox mai complicat este paradoxul lui B. Russell, legat de teoria
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
Imediat se obine c dac rspunsul este DA, atunci R nu se conine
pe ea nsi i dac rspunsul este NU, atunci R se conine.
Contradicia provine aici din acceptarea axiomei nelegerii: Dac P
este o proprietate (relaie, predicat), atunci M = {x | P(x)} este o
mulime (paradoxul precedent se obine lund P(x): x nu este
element al lui x). Matematic vorbind, paradoxul dispare dac se
renun la axioma nelegerii (mai exact, M de mai sus nu este o
mulime, ci o clas). Un alt paradox, cunoscut nc din antichitate, este
paradoxul lui Ahile i broasca estoas , atribuit lui Zenon: Ahile i o
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,
ntr-un punct B, dar ncepnd s se deplaseze amndoi n acelai
moment i n aceeai direcie. Afirmaie: Ahile nu va ajunge din urm
broasca (chiar dac broasca ar avea...viteza 0). Putem demonstra
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
distanei dintre A i C, etc. Cum mulimea numerelor reale este dens,
mereu mijlocul unui segment de lungime diferit de zero va genera alte
dou segmente de lungime nenul, astfel nct Ahile nu va ajunge
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
reale). Dei nu sunt ele nsele absurditi, silogismele reprezint o
alt surs generoas de confuzii. Inferenele, adic paii elementari
(considerai a fi indivizibili) ai unui raionament, reprezint forme
48 Cristian Masalagiu
logice complexe. Aceste raionamente elementare se mpart n
deductive i inductive, iar cele mai simple inferene sunt cele imediate,
cu propoziii categorice (fiind formate din dou asemenea propoziii: o
premiz, i o concluzie). Silogismul este tipul fundamental de inferen
deductiv mediat alctuit din exact trei propoziii categorice: dou
premize, dintre care una major i alta minor, precum i o concluzie.
Silogismele se pot de altfel mpri n ipotetice, categorice, disjunctive,
etc. (nu insistm asupra altor detalii). Un exemplu de silogism
(categoric, corect) este:
Premiza major: Toate elementele transuranice sunt
radioactive.
Premiza minor: Plutoniul este element transuranic.
Concluzia: Plutoniul este radioactiv.
Pentru a folosi ns doar silogisme corecte (valide), este necesar un
studiu mai aprofundat al acestora. n caz contrar, putem ajunge, ca i n
cazul paradoxurilor, s acceptm nite aberaii drept propoziii
adevrate. De exemplu:
Greeala n silogismul anterior const n aceea c nu se ine cont de o
lege a silogismelor, care stipuleaz c ntr-un silogism valid exist trei
i numai trei termeni lingvistici distinci. Din pcate ns, n limba
Alb este adjectiv
Zpada este alb
Zpada este adjectiv
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
nota egal prin definiie/notaie/convenie): C A sau B (simbolic:
A v B); D A i B (simbolic: A . B); E non A (simbolic: (A);
F dac A atunci B (simbolic: A B; A se numete uneori ipotez
50 Cristian Masalagiu
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:
B
A
B A
modus ponendo-ponens (pe scurt, modus ponens)
sau
Fundamentele logice ale Informaticii 51
A
B
B A
(
(

modus tollendo-tollens (pe scurt, modus tollens)
Validitatea (reamintim: dac ipotezele sunt adevrate, atunci i
concluzia trebuie s fie adevarat) schemelor modus ponens (modul
afirmativ) i modus tollens (modul negativ) rezult imediat din definiia
implicaiei. Oprindu-ne la modus ponens, am putea spune c acesta
poate fi reformulat n: din A (adevrat) i A B (adevrat)
deducem (c) B (adevrat). Pe scurt, vom nota acest lucru prin
A B. Urmtorul exemplu este edificator pentru greelile care se pot
face fie din necunoaterea definiiei reale a implicaiei, fie din
confundarea lui A B (formul n limbajul de baz) cu A B
(formul n metalimbaj, care sugereaz deducerea lui B, pornind de la
A i folosind un raionament).
Exemplu. S considerm funcia f : R R, dat prin:
2
x, dac x 0
f (x)=
x +1, dac x>0
s

S se arate c f este injectiv.


Conform uneia dintre definiiile cunoscute, trebuie s artm c pentru
fiecare x
1
, x
2
R, avem: dac f (x
1
) = f (x
2
) atunci x
1
= x
2
. Anticipnd
notatiile din Capitolul 3 i presupunnd cunoscut (cel puin la nivel
informal) semnificaia cuanficatorilor, putem scrie acest lucru sub
52 Cristian Masalagiu
forma condensat (x
1
, x
2
e R)(f(x
1
) = f(x
2
) x
1
= x
2
). Exist
urmtoarele posibiliti:
a) x
1,
x
2
0. Atunci f (x
1
) = x
1
i f (x
2
) = x
2
. Prin urmare f(x
1
) = f(x
2
)
chiar coincide cu x
1
= x
2
i deci implicaia f(x
1
) = f(x
2
) x
1
= x
2
este
adevrat.
b) x
1,
x
2
> 0. Atunci f (x
1
) = x
1
2
+ 1 i f (x
2
) = x
2
2
+ 1. Prin urmare,
f(x
1
) = f(x
2
) nseamn x
1
2
+ 1 = x
2
2
+ 1, ceea ce se ntmpl atunci i
numai atunci cnd (x
1
- x
2
)(x
1
+ x
2
) = 0. Deoarece variabilele sunt
pozitive, ultima egalitate este echivalent cu x
1
- x
2
= 0, deci cu x
1
= x
2
.
Am artat de fapt c avem f(x
1
) = f(x
2
) dac i numai dac x
1
= x
2
ceea
ce se poate scrie simbolic (n metalimbaj!) f(x
1
) = f(x
2
) x
1
= x
2
. n
consecin, la fel ca la punctul precedent, implicaia cerut
f(x
1
) = f(x
2
) x
1
= x
2
este la rndul ei adevrat (este adevrat chiar
echivalena f(x
1
) = f(x
2
) x
1
= x
2
), deoarece este clar c dac
antecedentul f(x
1
) = f(x
2
) este adevrat, atunci i consecventul x
1
= x
2
este adevrat (de fapt, i reciproc).
c) x
1
0, x
2
> 0. n acest caz f(x
1
) = x
1
i f(x
2
) = x
2
2
+ 1. Atunci
f(x
1
) = f(x
2
) nseamn x
1
= x
2
2
+ 1 i implicaia pe care trebuie s o
artm devine x
1
= x
2
2
+ 1 x
1
= x
2
, i aceasta pentru fiecare x
1
s 0 i
x
2
> 0. Nu mai putem proceda la fel ca n situaiile anterioare, deoarece
din x
1
= x
2
2
+ 1 nu se poate deduce x
1
= x
2
. Totui, implicaia n cauz
din limbajul de baz este adev rat, deoarece antecedentul ei este
fals. ntr-adevr, oricare ar fi x
1
s 0 i x
2
> 0, n egalitatea x
1
= x
2
2
+ 1,
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
literatura tiinific a afirmaiei Oamenii de tiin nu vor ctiga
niciodat la fel de muli bani ca directorii executivi ai unor companii
de succes. n acest scop vom porni de la postulatele (axiomele)
Cunoaterea nseamn putere i Timpul nseamn bani, pe care le vom
folosi sub forma prescurtat: cunoatere = putere i respectiv
timp = bani. Ca inferene, le vom utiliza pe cele mai simple (imediate,
cu afirmaii categorice), la care adugm altele la fel de simple,
cunoscute din matematica elementar. Plecm astfel de la axioma
suplimentar:
munc
putere
timp
=
Folosind axiomele iniiale i proprietile relaiei de egalitate, printr-o
inferen simpl deducem:
munc
cunoatere
bani
=
Aplicnd acum o proprietate a proporiilor, gsim:
m unc
= bani
cunoatere
Cititorul poate trage singur concluzia care se impune pentru situaia n
care cunoatere se apropie de (tinde la) valoarea zero.
Ca o concluzie, situaiile neplcute descrise anterior trebuie
evitate sau eliminate. Acest lucru se poate face doar prin translatarea
prilor de limbaj ntr-un mecanism formal bine pus la punct, pe care-l
54 Cristian Masalagiu
vom descrie ncepnd cu seciunea/paragraful urmtoare/urmtor.
Enunul unora dintre exerciiile care urmeaz este reluat n 2.10.
Exerciiul 2.1. O teorem , n sensul matematicii de liceu, are i ea
ipoteze i concluzii. Scriei simbolic forma general a unei teoreme
(directe), utiliznd propoziii elementare (variabile propoziionale) i
conectori logici. Scriei apoi teorema reciproc, contrara teoremei
directe i contrara reciprocei. Exist vreo legtur ntre acestea, n
ceea ce privete valoarea lor de adevr? Dai un exemplu de teorem
de caracterizare (A dac i numai dac B). Putei specifica altfel
rezultatul exprimat de teorem, astfel nct s fie separat - puse n
eviden condiia necesar i condiia suficient ?
Exerciiul 2.2. S considerm definiia limitei unui ir dat de
numere reale, avnd ca valoare un numr real dat, definiie exprimat
cu ajutorul vecintilor care sunt intervale simetrice fa de punctul
considerat. S se exprime simbolic (n sensul matematicii de liceu,
folosind i cuantificatorii) aceast definiie i s se nege formula astfel
gsit.
Exerciiul 2.3. Exprimai simbolic, ca o formul n sensul
exerciiilor anterioare propoziia Dac mi-e sete, beau ap. Negai
formula i apoi rescriei rezultatul n limbaj natural. Dac ai fi negat
direct propoziia iniial, ai fi obinut acelai lucru?
n restul capitolului, cteva dintre concepte/rezultate/exemple
sunt din [MAS1] (trebuie s precizm c o parte dintre acestea provin,
la origine, din [SCH]).
Fundamentele logice ale Informaticii 55
2. Sintaxa logicii propoziionale
Vom trece direct la prezentarea sintaxei formale a logicii
propoziionale (calculului propoziional). Logica propoziional, aa
cum am sugerat deja, va fi numele unei mulimi de formule
(propoziionale), notat LP
L
sau, prescurtat, LP i definit structural n
cele ce urmeaz.
Definiia 2. 1. Fie o mulime numrabil de variabile propoziionale
(formule elementare, formule atomice pozitive, atomi pozitivi),
A = {A
1
, A
2
, }. Fie, de asemenea, C = {(, v, .} mulimea
conectorilor/conectivelor logici/logice non (negaia), sau (disjuncia),
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 e LP atunci (( F) e LP.
(ii) Dac F
1
, F
2
e LP atunci ( F
1
v F
2
) e LP.
(iii) Dac F
1
, F
2
e LP atunci ( F
1
. F
2
) e LP.
(iv) Dac F e LP atunci (F) e LP.
(v) Nimic altceva nu este formul.
56 Cristian Masalagiu
Putem privi o formul F ca fiind reprezentat de un arbore binar
(arborele ataat lui F, notat Arb(F)), n modul urmtor (procedm
structural, conform definiiei lui LP):
Definiia 2.2.
Baza. F = A e A. Atunci arborele ataat lui F (sau, arborele care
reprezint F), este:
Pas constructiv.
(i) Fie F = (( F
1
) i s presupunem c se cunoate arborele ataat lui F
1
,
Arb(F
1
). Atunci, arborele ataat lui F va fi (ceva similar se obine
pentru (iv), adic pentru cazul F = (F
1
)):
(iii) Fie F = (F
1
. F
2
) i s presupunem c se cunosc att arborele ataat
lui F
1
ct i arborele ataat lui F
2
, adic Arb(F
1
) respectiv Arb(F
2
).
Atunci arborele ataat lui F va fi (pentru F = (F
1
v F
2
) se obine ceva
similar):
A
( )
(
Arb(F
1
)
Fundamentele logice ale Informaticii 57

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
ai fiecarui nod (implicit, pentru o formul este valabil ordinea de
scriere a literelor n cuvntul respectiv, exceptnd paranteza nchis
), care are acelai numr de ordine cu paranteza deschis (
corespunztoare), atunci se observ c fiecrei formule i corespunde
un arbore ataat unic i fiecrui arbore ordonat G (cu nodurile
etichetate cu elemente din L) i corespunde o unic formul din LP
(pentru care G este arborele ataat). Definim structural i mulimea
subformulelor oricrei formule date F (notat subf(F)). Admitem
implicit faptul c F subf(F) dac i numai dac F este subcuvnt al
lui F i F LP (cu alte cuvinte, F
1
i F
2
, n cele ce urmeaz, sunt tot
formule).
( )
Arb(F
1
) Arb(F
1
)
.
58 Cristian Masalagiu
Definiia 2.3.
Baza. F = A e A. Atunci subf(F) = {A}.
Pas constructiv.
(i) F = (( F
1
). Atunci subf(F) = subf(F
1
) U { (( F
1
) }.
(ii) F = (F
1
. F
2
). Atunci subf(F) = subf(F
1
) U subf(F
2
) U { (F
1
. F
2
) }.
(iii) Analog cu (ii) pentru cazul F = (F
1
v F
2
) (nlocuind peste tot,
simultan, . cu v).
(iv) F = (F
1
). Atunci subf(F) = subf(F
1
) U { (F
1
) }
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
secven finit de caractere din L) s se decid dac w LP. Conform
[JUC] de exemplu, notaia L
*
(algebric, L
*
este monoidul liber generat
de L) se explic prin aceea c mulimea cuvintelor (secvenelor finite
de simboluri) aparinnd unui alfabet cel mult numrabil formeaz un
monoid fa de operaia de concatenare (de juxtapunere a
literelor/cuvintelor). Elementul neutru, este cuvntul fr nici o liter
(cuvntul vid) i este notat cu e. Algoritmul menionat se termin
pentru fiecare intrare w L
*
, cu rspunsul (ieirea) DA dac w e LP
i NU dac w e LP. O problem de decizie are doar alternativa de
rspuns DA/NU i aici este un caz particular al problemei de
apartenen pentru un limbaj de tip 2. Revenind, A
1
v A
2
, nu este
Fundamentele logice ale Informaticii 59
formul pentru c nu are parantezele necesare (nu putem vorbi de
subf(A
1
v A
2
) pentru c A
1
v A
2
nu este formul). Dar, la fel ca i n
cazul cunoscut al expresiilor aritmetice care conin variabile, constante
i operatorii (avnd i sensul de opus), +, i /, putem
accepta convenia de a prescurta scrierea unor expresii (formule,
cuvinte) prin eliminarea unor paranteze (sau chiar pe toate). Acest lucru
se poate face prin atribuirea de prioriti operatorilor, apoi bazndu-ne
pe faptul c aritatea lor (numrul de argumente) este cunoscut,
precum i pe unele proprieti cum ar fi comutativitatea, asociativitatea
sau distributivitatea. Prioritile standard sunt: 0 pentru (, 1 pentru
., 2 pentru v. 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
acestea litere mari de la nceputul alfabetului latin (A, B, C, ..., cu sau
fr indici). Invers, putem aduga n orice formul bine format
cupluri de paranteze corespondente (la fel cum le-am i eliminat),
pentru a mbunti receptarea corect a sintaxei i fr a schimba
semnificaia formulei n cauz. Acest lucru este permis de altfel prin
(iv), Definiia 2.1.
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,
60 Cristian Masalagiu
se consider nti afirmaiile elementare A, B, C; se consider apoi
negaia lui A, notat, s spunem, A i conjuncia lui B cu C, notat D;
n sfrit, se consider disjuncia lui A cu D).
Vom face i alte cteva prescurtri sintactice, justificate de altfel
i de anumite considerente semantice care vor fi prezentate ulterior:
- (( ( F) v G) se va nota cu (F G).
- Pentru ((( ( F) v G) . (( ( G) v F)) folosim (F G) sau
((F G) . (G F)).
-
1
n
i =
.
F
i
este o prescurtare pentru F
1
. F
2
. ... . F
n
.
-
1
n
i =
v
F
i
este prescurtarea lui F
1
v F
2
v ... v F
n
.
Simbolurile i (numite dup cum tim implicaie, respectiv
echivalen) pot fi considerate ca i cum ar fi fost introduse de la bun
nceput n mulimea de conectori C (dac am fi procedat astfel de la bun
nceput, s-ar fi complicat att unele lucruri de natur sintactic cum ar fi
definiiile constructive, prioritile, etc., ct i definiia semanticii LP,
care urmeaz). Vom numi literal o variabil propoziional sau negaia
sa. A e A se va numi i literal pozitiv iar orice element de forma (A,
A e A va fi un literal negativ (vom nota A = {(A
1
, (A
2
, }). Dac
L este un literal, atunci complementarul su, L , va nota literalul ( A,
dac L = A e 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
prezent n definiia algebrelor booleene, rezultatele privind sintaxa
fiind, n general, separate de cele privind semantica. Se numete clauz
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).
3. Semantica logicii propoziionale
Semantica (nelesul) unei formule propoziionale este, conform
principiilor logicii aristotelice, o valoare de adevr (a sau f), obinut n
mod determinist, care este independent de context, etc. Notnd de la
nceput pe a cu 1 i pe f cu 0, astfel nct s putem lucra cu algebra
boolean B = < B, , +, >, noiunea principal este cea de asignare
(interpretare, structur).
Definiia 2.4. Orice funcie S, S : A B se numete asignare.
Teorema 2.1 (de extensie). Pentru fiecare asignare S exist o unic
extensie a acesteia, S : LP B (numit tot structur sau
interpretare), care satisface:
(i) S(A) = S(A), pentru fiecare A e A.
(ii) S((( F)) = (F) ' S , pentru fiecare F e LP.
(iii) S((F
1
. F
2
) ) = S(F
1
) S(F
2
), pentru fiecare F
1
, F
2
e LP.
62 Cristian Masalagiu
(iv) S((F
1
v F
2
) ) = S(F
1
) + S(F
2
), pentru fiecare F
1
, F
2
e LP.
Demonstraie. Fie S : A B. Definim funcia S : LP B, structural,
prin:
Baza. S(A) = S (A), pentru fiecare A e A.
Pas constructiv.
(a) Dac F = (( F
1
), atunci S(F) =
1
'(F ) S .
(b) Dac F = (F
1
. F
2
), atunci S(F) = S(F
1
) S(F
2
).
(c) Dac F = (F
1
v F
2
), atunci S(F) = S(F
1
) + S(F
2
).
Este evident c S este o extensie a lui S, proprietatea (i) fiind
satisfcut imediat conform pasului Baza de mai sus. De asemenea,
definiiile (a) (c) din Pasul constructiv asigur satisfacerea punctelor
(ii) (iv) din enun, deoarece orice formul din LP, dac nu este
elementar, are una dintre cele trei forme considerate (cazul F = (F
1
)
este mult prea simplu pentru a fi tratat separat). Mai rmne s artm
c S este funcie total (adic, ataeaz fiecrui element din domeniu
un element i numai unul din codomeniu) i c ea este unica funcie
care satisface (i) (iv). Acest lucru se face prin inducie structural,
trebuind s artm c pentru fiecare F LP, este adevrat P(F), unde
P(F) este: Oricare ar fi asignarea S, valoarea S(F) exist (ca element
al lui B) i este unic, adic S este funcie, i oricare alt funcie S
care satisface (i) (iv), satisface S(F)= S(F).
Baza. Fie F = A e A i orice asignare S. Cum S este funcie (total)
prin definiie i avem S(A) = S(A), tot prin definiie (S este extensia
Fundamentele logice ale Informaticii 63
lui S), este imediat faptul c S(A) exist i este unic n sensul precizat
(orice alt posibil S trebuie s fie tot o extensie a lui S).
Pas inductiv. Vom arta doar cazul F = (( F
1
), celelalte dou
(F = (F
1
. F
2
) i F = (F
1
v F
2
) ) fiind similare. Presupunem prin urmare
P(F
1
) 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
sensul precizat), rezult din nou imediat, din ipoteza inductiv (S(F
1
)
exist i este unic), din definiia negaiei n B (tim c S(F) =
1
(F ) ' S )
i a faptului c orice alt S trebuie s satisfac punctul (ii) din teorem.

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


notaional , ntre asignare i structur (intrerpretare). Se observ c
dat orice formul F LP i orice structur S, este suficient s
cunoatem valorile lui S n variabilele propoziionale care apar n F
(pentru fiecare F LP, vom nota cu prop(F) mulimea atomilor
pozitivi care apar n F, sau peste care este construit F). Vom numi
asignare (structur ) complet pentru F, orice funcie parial S care
este definit exact (sau, mcar) pe prop(F) A i cu valori n B.
Aceasta, n cazul n care F este cunoscut, poate fi identificat cu o
funcie total pe A. Putem conchide chiar c n LP valoarea de adev r
a unei formule se deduce n mod unic din valoarea de adev r a
subformulelor (se mai spune c logica propoziional are proprietatea
64 Cristian Masalagiu
de extensionalitate). Vom mai pune S(F) S((F)) pentru fiecare
Fe LP.
Exerciiul 2.5. Definii structural prop(F), pentru fiecare F LP.
Fr alte precizri, vom lucra n continuare doar cu structuri
complete pentru mulimile de formule (o structur este complet pentru
o mulime de formule dac este complet pentru fiecare element din
acea mulime) care ne intereseaz la momentul dat.
Definiia 2.5. O formul F e LP se numete satisfiabil dac exist
mcar o structur S (complet) pentru care formula este adevrat
(S(F) = 1). Se mai spune n acest caz c S este model pentru F
(simbolic, se mai scrie S F). O formul este valid (tautologie) dac
orice structur este model pentru ea. O formul este nesatisfiabil
(contradicie) dac este fals n orice structur (S(F) = 0, pentru fiecare
S, sau S F, pentru fiecare S).
Teorema 2.2. O formul F e LP este valid dac i numai dac (( F)
este contradicie.
Demonstraie. F e LP este valid dac i numai dac pentru fiecare
structur S avem S(F) = 1, adic (conform ii), Teorema 2.1) dac i
Fundamentele logice ale Informaticii 65
numai dac S((( F) ) = 1 = 0 (definiia negaiei), ceea ce nseamn c
(( F) este o contradicie.
Clasa tuturor formulelor propoziionale LP, este astfel
partiionat n (mulimile indicate mai jos sunt ntr-adevr nevide i
disjuncte):
Tautologii
F
Formule satisfiabile dar nevalide
F (( F)
Contradicii
(( F)
Tabelul 2.1
n tabelul anterior linia punctat poate fi considerat drept o
oglind n care se reflect adevrul.
Definiia 2.6. Dou formule F
1
, F
2
e LP se numesc tare echivalente
dac pentru fiecare structur S ele au aceeai valoare de adevr, adic
S(F
1
) = S(F
2
) (simbolic, vom scrie F
1
F
2
). F
1
i F
2
se numesc slab
echivalente dac F
1
satisfiabil implic F
2
satisfiabil i reciproc (vom
scrie F
1

s
F
2
, ceea ce nseamn c dac exist S
1
astfel nct
S
1
(F
1
) = 1, atunci exist S
2
astfel nct S
2
(F
2
) = 1 i reciproc). O
formul F e LP este consecin semantic dintr-o mulime de formule
G _ LP, dac pentru fiecare structur corect S (aceasta nseamn aici
66 Cristian Masalagiu
faptul c S este definit cel puin pentru toate variabilele propoziionale
care apar fie n F fie n elementele lui G), dac S satisface G (adic
avem S(G) = 1 pentru fiecare G e G) atunci S satisface F (simbolic,
vom scrie G F).
Observaie. Relaiile i
s
sunt relaii de echivalen (binare) pe LP,
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
. , v , ( ca nite operatori (de fapt, ar trebui s-i considerm mpreun
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).
Teorema 2.3. Fie G e LP i G = { G
1
, G
2
, , G
n
} _ LP. Urmtoarele
afirmaii sunt echivalente:
(i) G este consecin semantic din G.
(ii) (
1
n
i =
.
G
i
) G este tautologie.
(iii) (
1
n
i =
.
G
i
) . ( G este contradicie.
Fundamentele logice ale Informaticii 67
Demonstraie.
(i) implic (ii). Presupunem prin reducere la absurd c
F = (
1
n
i =
.
G
i
) G nu este tautologie, dei G este consecin semantic
din G. Rezult c exist o structur S pentru care F este fals, adic
S(
1
n
i =
.
G
i
) = 1 i S(G) = 0. Prin urmare, pentru fiecare i e [n] avem
S(G
i
) = 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
consecin semantic din G.
(ii) implic (iii). Procedm din nou prin reducere la absurd, adic
presupunem c dei (
1
n
i =
.
G
i
) G este tautologie, (
1
n
i =
.
G
i
) . ( G nu
este contradicie. Aceast nseamn c F
1
= ( (
1
n
i =
.
G
i
) v G este
tautologie, dar F
2
= (
1
n
i =
.
G
i
) . ( G este satisfiabil. Prin urmare, exist
o structur S astfel nct S(F
2
) = 1 (i, desigur, S(F
1
) = 1). Din S(F
2
) = 1
rezult S((
1
n
i =
.
G
i
)) S(( G) = 1, adic S((
1
n
i =
.
G
i
)) = 1 i S((G) = 1.
n consecin, S(( (
1
n
i =
.
G
i
)) = 0 i S(G) = 0. Pentru c
S(F
1
) = S(((
1
n
i =
.
G
i
)) + S(G), avem S(F
1
) = 0, ceea ce este absurd
deoarece F
1
este tautologie.
68 Cristian Masalagiu
(iii) implic (i). Presupunem prin reducere la absurd c
F = (
1
n
i =
.
G
i
) . ( G este contradicie, dar G nu este consecin semantic
din G. Atunci exist o structur S care satisface toate formulele din G
dar nu satisface G. Prin urmare, avem S((
1
n
i =
.
G
i
)) = 1 i S(G) = 0, adic
S((
1
n
i =
.
G
i
)) = 1 i S((G) = 1. Cum S((
1
n
i =
.
G
i
) . (G) =S((
1
n
i =
.
G
i
))S((G),
rezult c exist S astfel nct S((
1
n
i =
.
G
i
) . ( G) = 1, deci F nu este
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.
Teorema 2.4. Sunt adevrate urmtoarele echivalene (tari, pentru
oricare F, G, H e LP):
(a) F . F F (a) F v F F (idempoten)
(b) F . G G . F (b) F v G = Gv F (comutativitate)
(c) ( F . G ) . H
F . ( G . H )
(c) (F v G) v H F v (G v H)
(asociativitate)
(d) F . ( G v H )
(F . G) v (F . H)
(d) F v ( G . H ) (F v G) . (F v H)
(distributivitate)
(e) F . ( F v G ) F (e) F v ( F . G ) F (absorbie)
Fundamentele logice ale Informaticii 69
(f) ( ( F F (legea dublei negaii)
(g) ( ( F . G )
( F v ( G
(g) ( ( F v G ) ( F . ( G (legile lui
deMorgan)
(h) F v G F (h) F . G G (legile validitii,
adevrate doar dac F este tautologie)
(i) F . G F (i) F v G G (legile contradiciei,
adevrate doar dac F este contradicie)
Demonstraie. Vom arta doar una dintre echivalene i anume (i). Fie
F e LP orice contradicie i G e LP. Fie orice structur S. Atunci
S(F . G) = S(F)S(G) = 0, conform Tabelului 1.1 (punctul 9)) i
faptului c F este contradicie. Aceeai valoare o are i membrul drept
din (i).
Se poate arta, de exemplu, prin inducie matematic, faptul c
asociativitatea, distributivitatea i legile lui deMorgan se extind pentru
orice numr finit de formule.
Teorema 2.5 (de substituie). Fie H e LP, oarecare. Fie orice
F, G e 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
70 Cristian Masalagiu
cea iniial. Vom proceda prin inducie structural, avnd de artat
teorema din metalimbaj (H e LP) P(H), unde
P(H): (F, G, H e LP)(((F e subf(H)) i
(H se obine din H nlocuind o apariie fixat a lui F cu G) i
(F G)) H H).
Baza. H = A e A. S artm c P(A) este adevrat. Fie F, G,
H e LP, astfel nct F e subf(H), H se obine din H nlocuind
apariia aleas a lui F cu G, iar F G. Trebuie s artm c H H.
Dar, din F e subf(H) i subf(H) = {A}, rezult c F = A ( care coincide
cu H). Prin urmare, H = G. Avem acum F = H, G = H i F G, de
unde urmeaz imediat c H H.
Pas inductiv. Trebuie tratate separat situaiile care urmeaz.
(i) H = ( H
1
). Presupunem c P(H
1
) este adevrat i demonstrm c
P(H) este adevrat. Fie F e subf(H) = subf(H
1
) U {(( H
1
)}. Dac
F = (( H
1
) ( = H), suntem ntr-o situaie similar cu cea din Baza,
deoarece raionamentul se face din nou asupra ntregii formule H. Fie o
apariie fixat a lui F e subf(H
1
) _ subf(H) i considerm orice G e LP
astfel nct G F. nlocuind pe F cu G n H, nseamn n acelai timp a
nlocui pe F cu G n H
1
. Notnd cu H respectiv H
1
formulele obinute,
putem aplica ipoteza inductiv (P(H
1
) este adevrat) i obinem c
H
1
H
1
. Revenind, tim c H = (( H
1
), H = (( H
1
) i H
1
H
1
.
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
(ii) H = (H
1
H
2
). Presupunem c P(H
1
) i P(H
2
) sunt adevrate i
demonstrm c P(H) este adevrat. Fie orice F e subf((H
1
. H
2
)) =
subf(H
1
) U subf(H
2
) U{(H
1
. H
2
)}. Dac F = ( H
1
. H
2
) ( = H) suntem
din nou ntr-un caz similar cu cel din Baza. S considerm c
F e subf(H
1
) (apariia deja fixat), cazul F e subf(H
2
) tratndu-se
similar. Fie orice G e LP astfel nct G F. A nlocui pe F cu G n H
nseamn, n acelai timp, a nlocui pe F cu G n H
1
(H
2
rmnnd
neschimbat). Vom nota cu H respectiv H
1
, formulele obinute dup
aceste nlocuiri. Aplicnd ipoteza inductiv (P(H
1
) este adevrat),
rezult imediat c H
1
H
1
. Revenind, tim c H = (H
1
. H
2
),
H = (H
1
. H
2
) i H
1
H
1
. Obinem imediat c H H (putem folosi
direct faptul deja amintit, c este compatibil cu operaiile, respectiv
cu conjuncia).
(iii) H = (H
1
H
2
). Se demonstreaz analog cu cazul precedent.
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
conjuncia prin i. Deocamdat am pstrat notaia clasic pentru
cuantificatorul universal (), deoarece el nu apare explicit n LP.
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
72 Cristian Masalagiu
i + lundu-l respectiv , dup cum se poate deduce chiar din
Teorema 2.4). De asemenea, vom folosi tabelele de adevr pentru a
gsi n mod direct semantica (valoarea de adevr a) unei formule ntr-o
structur dat.
Nu apare astfel surprinztoare tematica paragrafului urmtor,
privind existena formelor normale.
4. Forme normale n LP
Spre deosebire de cazul funciilor booleene, vom studia pentru
nceput formele normale conjunctive i formele normale disjunctive
simultan.
Definiia 2.7. O formul F e LP se afl n form normal
conjunctiv (FNC, pe scurt) dac este o conjuncie de disjuncii de
literali, adic o conjuncie de clauze. Simbolic:
i
n m
i,j
i=1 j 1
F ( L )
=
= . v
(notm
i
n
i i,j
j=1
C L = v
, i e [m] ).
Similar, F e LP este n form normal disjunctiv (FND, pe scurt),
dac este o disjuncie de conjuncii de literali.
n cele de mai sus L
i,j
e A U A.
Exemplu. F = (A . (B v C)) este n FNC iar G = ((A . ( B) v (A . C))
este n FND, dac A, B, C e A.
Fundamentele logice ale Informaticii 73
Teorema 2.6. Pentru fiecare formul F e LP exist cel puin dou
formule F
1
, F
2
e LP, F
1
aflat n FNC i F
2
aflat n FND, astfel nct
F F
1
i F F
2
(se mai spune c F
1
i F
2
sunt o FNC, respectiv o FND,
pentru F).
Demonstraie. Pentru a demonstra afirmaia necesar, (F)P(F) n
metalimbaj, unde
P(F): exist F
1
e LP, aflat n FNC i exist F
2
e LP, aflat n
FND, astfel nct F F
1
i F F
2
,
procedm prin inducie structural.
Baza. F = A e A. Aceast formul este att n FNC ct i n FND, deci
putem lua F
1
= A i F
2
= A.
Pas inductiv. Trebuie tratate cazurile corespunztoare definiiei
constructive a lui LP.
(i) F = ( G). Presupunem c P(G) este adevrat i demonstrm c
P(F) este adevrat. Din ipoteza inductiv rezult c exist formulele
G
1
, aflat n FNC i G
2
, aflat n FND, astfel nct G G
1
i G G
2
.
Atunci, de exemplu, (G (G
1
i, aplicnd legile lui deMorgan, gsim:
i i
n n m m
i,j i,j
i=1 j 1 i=1 j 1
( ( L )) ( ( ( L )))
= =
( . v v . (
.
n ultima formul putem aplica unde este cazul legea dublei negaii
i apoi putem nlocui elementele de forma (L
i,j
cu
j i,
L , obinnd astfel o
FND pentru F. Analog, dac pornim cu G
2
, care este o FND pentru G,
vom obine o FNC pentru F.
74 Cristian Masalagiu
(ii) F = (G H). Presupunem c afirmaiile P(G) i P(H) sunt
adevrate i artm c P(F) este adevrat. Din faptul c P(G) este
adevrat rezult c exist G1, aflat n FNC i satisfcnd G G
1
,
astfel nct:
G
1
=
( )
1 1
n m
i,j
i=1 j 1
( ( L ))
i
=
. v
Cu totul similar, pentru c P(H) este adevrat, nseamn c exist H
1
,
aflat n FNC i satisfcnd H H
1
:
H
1
=
( )
2
2
n
m
i, j
i=1 j 1
( ( L ))
i
=
. v
Atunci, G . H G
1
. H
1
i este evident c ultima formul este tot o
conjuncie de disjuncii, adic este o FNC, notat F
1
, pentru F. Pentru a
obine o FND, F
2
, pentru F, pornim de la o FND, G
2
, pentru G i o
FND, H
2
, pentru H. Atunci F = G . H G
2
. H
2
, de unde obinem
imediat o FND pentru F, notat F
2
, dac se aplic mai nti
distributivitatea generalizat a conjunciei fa de disjuncie i apoi, n
interiorul subformulelor, a disjunciei fa de conjuncie.
(iii) F = (G H). Procedm analog ca n cazul anterior.
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.
Fundamentele logice ale Informaticii 75
Exemplu. Gsii o formul F e LP construit peste mulimea de
variabile propoziionale {A, B, C} i care s satisfac condiia: n
tabelul de adevr standard care o descrie, o schimbare i numai una
n secvena <S(A), S(B), S(C)> produce schimbarea valorii
corespunztoare de adevr S(F). Dac ncepem secvena S(F) cu 0,
atunci F este descris de tabelul:
A B C F
S(A) S(B) S(C) S(F)
0 0 0 0
0 0 1 1 *
0 1 0 1 *
0 1 1 0
1 0 0 0
1 0 1 1 *
1 1 0 1 *
1 1 1 0
Se poate construi apoi direct din tabel mcar o formul (sau dou) care
i corespunde semantic, formul ce se afl n FND (i/sau FNC). De
fapt vom folosi algoritmul de construcie a FNDP (FNCP) pentru o
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
76 Cristian Masalagiu
respectiv negat, iar dac valoarea ei este 1, atunci ea apare
nenegat; formula final, aflat n FND(P), este disjuncia tuturor
acestor conjuncii. Prin urmare, putem pune F = ((A . ( B . C) v
v ((A . B . (C) v (A . (B . C) v (A . B . (C). Gsii, analog, o
FNC(P)
Conform teoremei anterioare, precum i datorit comutativitii
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 = {C
1
, C
2
, ... , C
m
} (nu uitm
totui c virgula aici provine dintr-o conjuncie), unde, pentru fiecare
i e [m], vom pune } L ,..., L , L { C
i
n i, i,2 i,1 i
= . Mai mult, dac avem
F e 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 v L 1,
1 v C 1 i deci aceste clauze sunt tautologii (notate generic cu 1).
Tautologiile componente nu au nici o semnificaie pentru stabilirea
valorii semantice a unei formule F aflate n FNC (1 . C C).
Fundamentele logice ale Informaticii 77
5. Decidabilitate n LP
LP, cadrul formal propus (realitatea este modelat prin
afirmaii, afirmaiile sunt reprezentate ca formule propoziionale),
ofer ca principal metod de a rezolva problemele, testarea adevrului
(satisfiabilitii) unor formule. Din punctul de vedere al unui
informatician, trebuie ca pentru clasa de formule admis s existe un
algoritm care, avnd la intrare orice F e LP, se termin cu rspunsul
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
formul sau nu). n aceast situaie se spune c problema
satisfiabilitii (pe scurt, SAT) pentru LP este rezolvabil
(decidabil). Mai mult, am vrea s gsim asemenea algoritmi pentru
care complexitatea timp este rezonabil.
Teorema 2.7 (decidabilitatea SAT). Satisfiabilitatea (validitatea,
nesatisfiabilitatea) formulelor calculului propoziional este decidabil n
timp exponenial.
Demonstraie. Practic, demonstraia (exceptnd complexitatea) a fost
deja fcut, chiar n mai multe moduri. Fie F e LP avnd prop(F) =
{A
1
, A
2
, , A
n
} = A
n
. 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
78 Cristian Masalagiu
algebrele booleene LP i B stau la baza corectitudinii acestei
construcii) care are forma:
S(A
1
) S(A
2
) S(A
n
) S(F)
0 0 0 v
1
0 0 1 v
2

1 1 1 v
m
2
n
= m
Dac toi v
i
(i e [m]) sunt egali cu 0 atunci F este contradicie, dac toi
v
i
sunt 1 atunci F este tautologie, iar n rest F este satisfiabil dar
nevalid. Pentru a depista acest lucru, trebuie parcurs, n Pasul 2, n
cazul cel mai defavorabil, ntregul tabel, linie cu linie i prin urmare
trebuie efectuate 2
n
comparaii (F este construit peste n formule
atomice). Dei mai sus nu avem o explicaie formal riguroas a
faptului c SAT are timp exponenial, se poate arta c problema este
chiar NP-complet (conform [AHO]; a se urmri i comentariile care
urmeaz imediat dup demonstraie).
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
complexitate (timp) mic. Astfel, dou dintre msurile (teoretice,
globale) de complexitate des ntrebuinate sunt complexitatea timp i
complexitatea spaiu. Ideea este aceea c un (orice) pas elementar
(instruciune) al unui algoritm se execut ntr-o unitate de timp (pentru
spaiu, fiecare dat elementar se memoreaz ntr-un registru sau
locaie de memorie, acesta/aceasta ocupnd o unitate de spaiu),
criteriul numindu-se al costurilor uniforme. Exist i criteriul costurilor
logaritmice (pe care ns nu-l vom utiliza aici), n care orice informaie
de lungime i, se prelucreaz (respectiv, se memoreaz) n numrul de
uniti de timp (uniti de spaiu) egal cu log(i) + 1 (dac i = 0, se
convine s lum log(i) = 0; n noteaz partea ntreag inferioar a
numrului n). Intuitiv, timpul luat de execuia unui algoritm Alg este dat
de numrul de instruciuni (pai/operaii elementare) efectuate (s-l
notm cu t
Alg
), iar spaiul (notat cu s
Alg
) este dat de numrul de locaii
(elementare) de memorie (intern, a calculatorului) ocupate n cursul
execuiei. Sigur c totul se raporteaz la lungimea fiecarei intrri
(adic, n cazul nostru, la lungimea unei formule F e IN _ LP, aceasta
putnd fi de exemplu n
F
= card (prop(F))) i ne intereseaz de fapt
sup{t
Alg
(F) | F e IN i n
F
= n e N}, margine superioar pe care o vom
nota cu t
Alg
(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 t
Alg
(n). Cum determinarea acelui supremum este de multe ori
destul de dificil, ne vom mulumi s studiem aa-numita comportare
80 Cristian Masalagiu
asimptotic (sau ordinul de cretere) a (al) lui t
Alg
(n), adic ne vor
interesa doar anumite margini ale sale, cum ar fi marginea sa
superioar. Formal, pentru fiecare f : N N, notm
O(f) = {g | g : N N, exist c R, c > 0 i exist k N, astfel nct
pentru fiecare n k avem g(n) cf(n)} i vom spune c fiecare
g O(f), este de ordinul lui f, ceea ce se mai noteaz i cu g = O(f).
Astfel, vom spune c SAT are complexitatea (timp, asimptotic) O(2
n
),
sau, pe scurt, complexitate exponenial, deoarece c exist (mcar) un
algoritm Alg care rezolv problema (cel sugerat n demonstraia
Teoremei 2.7) i pentru care t
Alg
(n) = O(2
n
). Similar, vom vorbi de
algoritmi polinomiali (t
Alg
(n) = O(p(n)), unde p(n) desemneaz un
polinom n n, de orice grad), sau de algoritmi liniari (p(n) de mai sus
este un polinom de gradul I), adic de probleme avnd complexitatea
(timp, dar se poate defini ceva asemntor pentru spaiu) de tipul
precedent. Sperana de a gsi algoritmi mai performani pentru
rezolvarea SAT, se poate baza pe ideea de a restrnge LP la anumite
subclase stricte, particulare de formule ale sale, suficient de largi ns
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
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
componente fiind (toate) clauze Horn.
Uneori, vom numi tot formul Horn i o formul care este (tare)
echivalent cu o formul de forma considerat n Definiia 2.8. Se
poate arta ([MAS1]) c exist formule propoziionale care nu sunt tare
echivalente cu nici o formul Horn, apariia a mcar doi literali pozitivi
distinci ntr-o clauz fiind decisiv. Formele posibile pentru o formul
Horn sunt (variabilele propoziionale care apar sunt elemente ale lui A):
(i) C = ( A
1
v ( A
2
v v ( A
k
, k > 1, k e N i
(ii) C = ( A
1
v ( A
2
v v ( A
k
v B, k e N.
Observaie. nafar de reprezentarea ca mulimi, clauzele Horn pot fi
reprezentate sub i sub aa-numita form implicaional. Vom distinge
cazurile (reamintim c 0 i 1 denot orice contradicie respectiv orice
tautologie):
- C = A e A (nici un literal negativ, un literal pozitiv). Acest
lucru se mai poate scrie sub forma C 1 A, ceea ce se
justific prin aceea c 1 A ( 1 v A 0 v A A.
82 Cristian Masalagiu
- C = ( A
1
v ( A
2
v v ( A
k
(nici un literal pozitiv, mcar un
literal negativ). Vom scrie C A
1
. A
2
. A
3
. A
k
0
(folosim din nou definiia implicaiei i faptul c 0 v A A).
- C = ( A
1
v ( A
2
v v ( A
k
v B (exact un literal pozitiv,
mcar un literal negativ). Atunci CA
1
. A
2
. A
3
. A
k
B,
direct din definiia implicaiei.
- C (nici un literal negativ, nici un literal pozitiv). Din
motive tehnice vom folosi i aceast clauz vid (n
reprezentarea clauzelor cu mulimi vom folosi pentru chiar
). Prin convenie, este o clauz de orice tip (inclusiv o
clauz Horn), dar nesatisfiabil.
Teorema 2.8. Satisfiabilitatea formulelor Horn este decidabil n timp
liniar.
Demonstraie. S considerm algoritmul:
Algoritm Horn
Intrare: Orice formul Horn, F, reprezentat ca mulime de clauze,
clauzele componente fiind clauze Horn diferite de clauza vid i scrise
sub form implicaional .
Ieire: DA, n cazul n care formula F este satisfiabil (furnizndu-se
i o asignare S care este model pentru F) i NU n caz contrar (F nu
este satisfiabil).
Fundamentele logice ale Informaticii 83
Metod (de marcare):
Pasul 1. i := 0.
Pasul 2.
Ct_timp ((exist n F o clauz C de forma
A
1
. A
2
. A
3
. A
k
B, cu A
1
, A
2
, A
3
, ... , A
k
marcai i
B nemarcat sau de forma A
1
. A
2
. A
3
. A
k
0, cu A
1
,
A
2
, A
3
, ... , A
k
marcai) i (i = 0))
execut
Pasul 3. Alege un asemenea C ca mai sus.
Pasul 4. Dac ( C = A
1
. A
2
. A
3
. A
k
B )
atunci
Pasul 5. Marcheaz B peste tot n F.
altfel
Pasul 6. i := 1.
Sf_Dac
Sf_Ct_timp
Pasul 7. Dac ( i = 0 )
atunci
Pasul 8. Scrie DA.
Pasul 9. Scrie S, cu S(A) = 1 dac i numai
dac A apare n F i este marcat.
altfel
Pasul 10. Scrie NU.
Sf_Dac.
84 Cristian Masalagiu
Artm mai nti c algoritmul se termin pentru fiecare intrare. S
precizm c aciunea de marcare o privim n sens grafic normal,
marcajul care poate fi ataat unei variabile proziionale alegndu-se
fr criterii speciale (s presupunem c el este *, mpreun eventual cu
anumii indici prin care s se identifice n care dintre execuiile
corpului buclei s-a fcut marcarea). Iniial, toate variabilele se
presupun a fi nemarcate. Dac F conine clauze de forma 1 B (care
se consider a fi de fapt de forma A
1
. A
2
. A
3
. A
k
B, cu A
1
,
A
2
, A
3
, ... , A
k
marcai i B nemarcat), se procedeaz conform
algoritmului, adic se marcheaz toate apariiile lui B n F i se trece la
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
(formula este satisfiabil) i cu asignarea S, n care S(A) = 0 pentru
fiecare A (care apare n F).
Artm n continuare c algoritmul este corect. Aceasta nseamn c
ieirea algoritmului satisface ceea ce am dorit, adic rspunsul DA/S
corespunde faptului c formula F furnizat la intrare este satisfiabil (i
S F) iar rspunsul NU corespunde faptului c F este nesatisfiabil.
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
Fundamentele logice ale Informaticii 85
c bucla s-a terminat fr s i se execute vreodat corpul avnd n plus
i = 0 i S(A) = 0 pentru fiecare A (care apare n F). Atunci exist n F
(la finalul execuiei) doar clauze de tipul C
1
=A
1
. A
2
. A
3
. A
k
B,
sau C
2
= A
1
. A
2
. A
3
. A
k
0 (k > 1) , care n-au nici o
variabil marcat. Avem atunci, pe scurt, S(C
1
) = S(00 ... 0 0)= 1,
respectiv S(C
2
) = 1, de unde gsim S(F) = 1.
Cazul b). La terminare se obine DA iar F conine i clauze
C = 1 B. Atunci bucla se termin dup un anumit numr de execuii
ale corpului su, valoarea lui i este 0 i F conine n final clauze C
avnd marcate anumite variabile. Dac C = 1 B (adic
C = B), unde B este marcat (S(B) = 1), avem imediat S(C) = 1. Dac
C = A
1
. A
2
. A
3
. A
k
B (k > 1) este posibil ca, fie toate
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),
fie exist mcar una dintre variabilele A
i
de mai sus care este
nemarcat, dar atunci vom avea iari S(C) = 1, pentru c semantica sa
este de tipul 0 1 sau 0 0. n sfrit, dac
C = A
1
. A
2
. A
3
. A
k
0 (k > 1), unde mcar un A
i
este
nemarcat, semantica lui C este de forma 0 0 i obinem din nou
S(C) = 1). Concluzia este c S(C) = 1 pentru fiecare C care apare n F,
adic S(F) = 1.
Cazul c). Algoritmul se termin cu i = 1 i rspunsul NU. Acest lucru
nseamn c exist n F o clauz C = A
1
. A
2
. A
3
. A
k
0 cu
toi A
i
, i e [k] marcai (obligatoriu, n F exist i clauze de forma
86 Cristian Masalagiu
1 B, B marcat), de unde rezult c semantica lui C n asignarea
furnizat de algoritm este de forma 1 0 i prin urmare S(C) = 0, de
unde S(F) = 0. Acest lucru nu nseamn ns c F este nesatisfiabil.
Pentru a trage aceast concluzie trebuie s artm c pentru nici o alt
asignare, ea nu poate fi model pentru F. S presupunem (RA) c exist
o asignare S (diferit de S, furnizat de algoritm) astfel nct
S(F) = 1. S observm, pentru nceput, c toate variabilele care au fost
marcate n algoritm (deci cele care au primit valoarea de adevr 1 n S),
trebuie s primeasc valoarea 1 n oricare S cu S(F) = 1. Altfel spus,
asignarea S conine cel mai mic numr posibil de valori 1 (atribuite
evident variabilelor marcate) astfel nct formula s aib anse s fie
satisfiabil. ntr-adevr, pentru fiecare S cu S(F) = 1, trebuie s avem
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
de forma C = A
1
. A
2
. A
3
. A
k
B (k > 1) dup numrul de
variabile din antecedent (chiar n algoritm, selecia unei clauze pentru
marcare se poate face dup un asemenea criteriu):
- Clauze C de tipul 1 B B (nici o variabil n antecedent, B
nemarcat). De la acestea ncepe procesul de marcare. Din faptul
c S(C) trebuie s fie egal cu 1, este clar c trebuie pus
S(B) = 1 (B se i marcheaz, deci S(B) = 1).
- Clauze C de forma A B A B (o variabil n
antecedent; A este marcat, B nemarcat). A nu putea fi marcat
dect dac a aprut deja ca un consecvent ntr-o clauz de
Fundamentele logice ale Informaticii 87
tipul anterior, sau n una de acelai tip cu aceasta i care are
antecedentul marcat. Prin urmare, n orice S cu S(C) = 1,
trebuie oricum s avem S(A) = 1, deci S(( A) = 0 i atunci
S(B) = 1 (concecina este c B se marcheaz, deci i S(B) = 1).
- Continum raionamentul cu C = A
1
A
2
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(B) = 1.
Revenind, am artat ntr-adevr c pentru fiecare S astfel nct
S(F) = 1, trebuie s avem S(A) = 1 pentru fiecare A marcat de ctre
algoritm, adic pentru fiecare A care satisface i S(A) = 1 (procesul
descris mai sus se continu pentru oricte variabile prezente n
antecedent, iar numrul acestora este finit). Prin urmare, avem 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) e O(f(n)), unde f(n) = an + b (a, b e 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.
88 Cristian Masalagiu
Exemplu. S aplicm algoritmul de marcare urmtoarei formule Horn:
F = ( A v ( D ) . ( ( C v ( A v D ) . ( ( A v ( B ) . D . ( E.
Scriem nti F ca o mulime de implicaii, obinnd
F = {D A, C . A D, A . B 0, 1 D, E 0}. nainte de
prima execuie a corpului buclei, avem i = 0 i toate variabilele sunt
nemarcate.
- Prima execuie. Alegem clauza 1D (de fapt, nu exist alt
posibilitate). Toate apariiile lui D se marcheaz cu *
1
:
1 *
D A, C . A
1 *
D , A . B 0, 1
1 *
D , E 0.
- A doua execuie. Alegem D A (din nou, nu exist dect o
unic posibilitate) i A se marcheaz peste tot, cu *
2
:
1 *
D
2 *
A , C .
2 *
A
1 *
D ,
2 *
A . B 0, 1
1 *
D , 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,
Fundamentele logice ale Informaticii 89
dovedit de acum, a unor algoritmi care s nu fac apel explicit la
semantic, pare deja a fi un ctig.
7. Rezoluie n LP
Fr a restrnge generalitatea, putem presupune c lucrm cu
formule din LP aflate n FNC, reprezentate sub form de mulimi
(finite) de clauze, iar clauzele ca mulimi (finite) de literali.
Definiia 2.9 (rezolvent). Fie clauzele C
1
, C
2
, R. Spunem c R este
rezolventul lui C
1
, C
2
(sau c C
1
, C
2
se rezolv n R, sau c R se
obine prin rezoluie ntr-un pas din C
1
, C
2
), pe scurt,
R = Res
L
(C
1
, C
2
), dac i numai dac exist un literal L e C
1
astfel
nct L e C
2
i R = (C
1
\ {L}) U (C
2
\ {L }).
Vom putea reprezenta acest lucru i grafic, prin arborele de rezoluie:
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 ()
C
1
C
2
R
L
L
90 Cristian Masalagiu
poate fi obinut prin rezoluie din dou clauze de forma C
1
= {A} i
C
2
= {(A}. n definiia anterioar putem considera c C
1
i C
2
sunt
diferite ntre ele. Dac ele ar coincide, atunci C
1
= C
2
=... vLvL v1,
adic acele clauze sunt tautologii, detectabile sintactic (n acest caz nu
ne mai intereseaz alte metode formale de studiere a satisfiabilitii lor).

Exemplu.
Fie formula F = {{A, E, ( B}, {( A, B, C}, {A, D}, {( A, ( D, ( E}}. S
gsim civa dintre rezolvenii care se pot obine (succesiv) pornind de
cele cele patru clauze care compun F, notate respectiv C
1
, C
2
, C
3
, C
4
:
Acetia au fost gsii apelnd de fiecare dat la C
1
. i C
2
poate fi sursa
unui ntreg lan de asemenea rezolveni:
C
1
C
2
C
1
C
2
C
1
C
4
A (A (B B A (A
{A, (B, (A,(D}
E (E
{E, (B, B, C} {A, E, (A, C} {E,(B,(D,(E}
C
1
C
4
Fundamentele logice ale Informaticii 91
Muli dintre aceti rezolveni primari nu sunt interesani, fiind
tautologii (datorit faptului c acele clauze alese spre rezolvare conin
mai mult de un literal de tipul L/ L ). Procesul poate ns continua cu
gsirea de noi rezolveni folosindu-i i pe cei obinui din clauzele
iniiale (cum este cazul i mai sus) .a.m.d.
n acest moment putem s ne punem cel puin dou ntrebri:
- Exist cazuri n care procesul anterior (de aflare succesiv de
rezolveni noi) nu se termin?
- n caz de rspuns negativ i presupunnd c exist o legtur
ntre acest proces sintactic (de obinere de rezolveni) i
satisfiabilitate, se pot obine algoritmi (sintactici, eventual
performani) de testare a satisfiabilitii unor formule?
Rspunsul l vom da n cele ce urmeaz.
C
2
C
3
A ( A
{B, C, D} C
1
B ( B
{C, D, A, E}
92 Cristian Masalagiu
Teorema 2.9 (lema rezoluiei). Fie oricare formul F e LP (aflat n
FNC i reprezentat ca mulime de clauze) i R un rezolvent pentru C
1
,
C
2
e F. Atunci F este tare echivalent cu F U{R}.
Demonstraie.
. 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).
. S presupunem c S F , adic S C, pentru fiecare C e F. Fie
C
1
,C
2
e F i R un rezolvent al lor, R = (C
1
\ {L}) U (C
2
\ { L }), unde
L e C
1
, L e C
2
.
Cazul 1. S(L) = 1. Atunci S L. Dar tim c S C
2
. Rezult c
S C
2
\ {L }, de unde S(R) = 1.
Cazul 2. S(L) = 0. Analog, artndu-se c S C
1
\ {L}.
n teorema anterioar am fi putut considera, n loc de F, o mulime
oarecare de clauze, chiar infinit.
Definiia 2.10. Fie F o mulime oarecare de clauze din LP i C o
clauz. Spunem c lista C
1
, C
2
, , C
m
este o demonstraie prin
rezoluie (n mai muli pai) a lui C pornind cu F dac sunt
satisfcute condiiile:
(i) Pentru fiecare i e [m], fie C
i
e F, fie C
i
este obinut prin rezoluie
ntr-un pas din C
j
, C
k
, cu j, k < i.
(ii) C = C
m
.
Fundamentele logice ale Informaticii 93
n condiiile definiiei, se mai spune c C este demonstrabil
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)
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
grafic, printr-un arbore (a se vedea exemplul care urmeaz), sau chiar
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
alt msur pentru o demonstraie reprezentat ca text poate fi chiar
lungimea listei (numrul total de clauze, sau chiar numrul total de
clauze distincte). Dac reprezentm o demonstraie ca un arbore, putem
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:
94 Cristian Masalagiu

Definiia 2.11 (mulimea rezolvenilor unei mulimi de clauze). Fie F


o mulime de clauze din LP (nu neaprat finit). Notm succesiv:
- Res(F) = F U{R | exist C
1
, C
2
e F astfel nct R = Res(C
1
, C
2
)}.
- Res
(n+1)
(F) = Res(Res
(n)
(F)), n e N. Prin Res
(0)
(F) vom nelege F i
atunci vom putea pune i Res
(1)
(F) = Res(F).
- Res
*
(F) =
(n)
Res
neN
(F).
Res
(n)
(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).
{A, B, (C} {A, B, C}
( C C
{A, B} {A, (B}
B (B
{A} {(A}
A (A

Fundamentele logice ale Informaticii 95


Putem da atunci i o definiie structural a lui Res
*
(F). Vom nota astfel
cu Resc mulimea definit prin:
Baza. F _ Resc.
Pas constructiv: Dac C
1
, C
2
e Resc i C = Res(C
1
, C
2
), atunci
C e Resc.
Rmne s artm c cele dou definiii introduc aceeai mulime.
Teorema 2.10. Pentru fiecare F e LP, avem Res
*
(F) = Resc.
Demonstraie. Artm egalitatea prin dubl incluziune.
. Demonstrm prin inducie matematic adevrul afirmaiei din
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
imediat din definiia lui Resc.
Pas inductiv. Presupunem c Res
(n)
(F) _ Resc i artm c
Res
(n+1)
(F) _ Resc, ceea ce este din nou imediat din definiia lui Resc i
Definiia 2.11. n sfrit, avem Res
*
(F) _ Resc, direct din Definiia
2.11 i observaia care urmeaz acesteia.
. Procedm prin inducie structural, mai exact artm c afirmaia
din metalimbaj (C e Resc)(C e Res
*
(F)) este adevrat.
Baza. C e F. Adevrat, deoarece F = Res
(0)
(F) _ Res
*
(F).
96 Cristian Masalagiu
Pas inductiv. Fie C = Res(C
1
, C
2
), C
1
, C
2
e Resc i resupunem c C
1
,
C
2
e Res
*
(F). S artm c C e Res
*
(F). Acest fapt urmeaz imediat,
conform Definiiei 2.11.
De acum nainte vom folosi ambele notaii pentru mulimea
rezolvenilor unei mulimi de clauze. i n Teorema 10 se putea
considera c F reprezint o mulime oarecare de clauze.
Teorema 2.11. Fie F o mulime de clauze din LP (nu neaprat finit).
O clauz C e LP se poate demonstra prin rezoluie pornind cu clauzele
lui F dac i numai dac exist k e N, asfel nct C e Res
(k)
(F).
Demonstraie. Fie F i C fixate ca n enun.
. S presupunem c exist o demonstraie prin rezoluie a lui C
pornind cu F, C
1
, C
2
, ... , C
m
= C. Este ndeplinit condiia (i) din
Definiia 2.10 i atunci nseamn c pentru fiecare i e [m], avem
C
i
e Resc, care coincide cu Res
*
(F), conform Teoremei 2.10. Prin
urmare, conform definiiei lui Res
*
(F) exist k e N, asfel nct
C e Res
(k)
(F).
. S presupunem c exist k e N, asfel nct C e Res
(k)
(F) (pe k l
considerm a fi cel mai mic numr natural care satisface condiia).
Conform Definiiei 2.11, avem Res
(j)
(F) = Res(Res
(j-1)
(F)) =
Res
(j-1)
(F) U {R | exist C
1
, C
2
e Res
(j-1)
(F) astfel nct
R = Res(C
1
, C
2
)}, pentru fiecare j e [k]. Putem conveni chiar ca n a
Fundamentele logice ale Informaticii 97
doua mulime din reuniunea de mai sus s nu punem dect rezolvenii
noi, care nu apar n Res
(j-1)
(F). Atunci C apare efectiv n Res
(k)
(F) dar
nu i n Res
(k-1)
(F). Dac k = 0, am terminat (C e F i lista format doar
din C constituie o demonstraie prin rezoluie a lui C). n caz contrar,
mai nti construim algoritmic un graf neorientat n felul urmtor: la
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
Res
(k-2)
(F), precum i muchiile corespunztoare care unesc nodurile
puse deja n graf, conform rezoluiilor ntr-un pas din care ele provin,
. a. m. d. n cel mult k + 1 pai, vom plasa n graf i elementele
(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
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
subgraful considerat nu este arbore, acest lucru se datoreaz faptului c
mcar o clauz C este utilizat n mai muli pai de rezoluie. Graful
poate fi uor transformat n arbore prin multiplicarea nodurilor de tipul
C i a arcelor aferente.
Dup cum probabil s-a putut observa, n cele de mai sus am
folosit n majoritatea cazurilor termenul mulimea de clauze F i nu
formula F (aflat n FNC). Dei pe noi ne intereseaz doar formulele
(care pot fi privite ca mulimi finite de clauze n cazul n care ne
98 Cristian Masalagiu
intereseaz doar satisfiabilitatea lor), aproape toate rezultatele sunt
valabile i pentru mulimi infinite (numrabile) de formule (clauze).
Teorema urmtoare stabilete o legtur important, privind
satisfiabilitatea, ntre mulimile infinite i cele finite de formule
oarecare din LP.
Teorema 2.12 (de compactitate pentru LP). Fie M o mulime infinit
(numrabil) de formule din LP. M este satisfiabil dac i numai dac
fiecare submulime finit a sa este satisfiabil.
Demonstraie.
. Dac exist structura S astfel nct S M, adic S(F) = 1 pentru
fiecare F e M, atunci evident c acelai lucru se ntmpl pentru fiecare
submulime (finit) M _ M.
. Pentru fiecare n e N, vom nota M
n
{F e M | subf(F)
A = prop(F) _ A
n
}, adic mulimea formulelor din M care sunt
construite peste (cel mult) mulimea de variabile propoziionale
A
n
= {A
1
, A
2
, , A
n
}. Cum mulimea funciilor booleene de n
variabile (FB
(n)
) are cardinalul
2
2
n
, n M
n
exist cel mult
2
2
n
formule cu
tabele de adevr distincte. Mai mult, direct din definiii avem
M
1
_ M
2
_ _ M
n
_ ... _ M i M =
1
n
n
M

=
. Revenind, s
presupunem c fiecare submulime finit a lui M este satisfiabil i s
Fundamentele logice ale Informaticii 99
artm c M este satisfiabil. Fie K _ M orice submulime finit
(satisfiabil) a lui M. Atunci exist n, natural, astfel nct K _ M
n
. Fie
M
n
= {F
1
, F
2
, ,
n
k
F }, k
n
s
n
2
2 , mulimea elementelor lui M
n
care au
tabele de adevr distincte. Pentru fiecare formul G din K alegem o
formul i numai una, F
i
, din M
n
, astfel nct G F
i
. Fie
"
n
M mulimea
tuturor acestor formule, pentru care este satisfcut condiia: K este
satisfiabil dac i numai dac M
n
este satisfiabil. Fie atunci S
n
un
model pentru
"
n
M . Avem i S
n
M
n
pentru c pentru fiecare
F e M
n
\
"
n
M , exist G e
"
n
M astfel nct S
n
(G) = S
n
(F). Din ipoteza
noastr (fiecare submulime finit a lui M este satisfiabil) rezult
aadar c exist un ir de structuri care satisfac:
S
1
M
1
, S
2
M
2
, , S
n
M
n
,
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. S
1
exist i este indiferent modul su de obinere. Apoi, pentru fiecare
i e {1, 2, ...}, construim S
i+1
pornind de la S
i
(i modificnd eventual i
pe S
i-1
, , S
1
), n felul urmtor: S
i+1
pleac cu valorile de adevr
pentru A
1
, A
2
, ... , A
i
stabilite de ctre S
i
i fixeaz o valoare pentru
A
i+1
, n mod aleator. Dac nu avem S
i+1
M
i+1
, atunci revenim, alegnd
o structur S
i+1
care s satisfac M
i+1
(tim c exist), prin schimbarea,
eventual, i a structurilor anterioare S
1
, S
2
, ... , S
i
(acestea vor fi simple
100 Cristian Masalagiu
restricii ale lui S
i+1
, lucrul fiind evident posibil deoarece M
i
_ M
i+1
).
Ca urmare, putem defini structura S : A {0,1}, dat prin
S(A
i
) = S
i
(A
i
), pentru fiecare i e N*. Faptul c S este funcie i model
pentru M este imediat.
Teorema 2.13. Fie F e 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)
al clauzelor peste (cel mult) n variabile atomice date este finit (de fapt,
m = 3
n
). Orice rezoluie ntr-un pas terge cte un literal. Prin
urmare, indiferent cte dintre cele m posibile clauze sunt prezente
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 e 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)) s m.
Reamintind c vom elimina din orice mulime de forma Res
*
(F),
pe msur ce se obin, toate clauzele care conin o subformul de tipul
A v ( A, enunm cea mai important teorem din acest capitol.
Fundamentele logice ale Informaticii 101
Teorema 2.14 (teorema rezoluiei pentru calculul propoziional).
Fie F o mulime oarecare de clauze din calculul propoziional. Atunci F
este nesatisfiabil dac i numai dac e Res
*
(F).
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
c F este o mulime finit de clauze, sau, alternativ, o formul
propoziional aflat n FNC. Fr a restrnge generalitatea, putem
presupune deci c F este o formul oarecare din LP (Teorema 2.6).
(corectitudine). S presupunem c e Res
*
(F) i s artm c F
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)
Res
(n)
(F) . Dac e Res
*
(F) atunci exist k e N, astfel nct
e Res
(k)
(F), adic Res
(k)
(F) este nesatisfiabil ( este nesatisfiabil
prin convenie). Cum F Res
(k)
(F), rezult c F este nesatisfiabil.
(completitudine). S presupunem c F este nesatisfiabil i s
artm c e Res
*
(F). Fie n = card(prop(F)). Procedm prin inducie
asupra lui n, adic demonstrm astfel adevrul metateoremei (n e N)
( | prop(F)| = n i F este nesatisfiabil e Res
*
(F)).
Baza. n = 0. Aceasta nseamn c F = {} = Res
*
(F) i concluzia este
evident.
Pas inductiv. Presupunem afirmaia adevrat pentru formule
construite peste n variabile propoziionale i o demonstrm pentru
102 Cristian Masalagiu
formule construite peste n+1 formule atomice. Fie F e LP, construit
peste A
n+1
= {A
1
, A
2
, , A
n
, A
n+1
}. Pornind de la aceast formul vom
construi alte dou formule, notate
n +1
A
0
F i respectiv
n 1
A
1
F
+
, n modul
urmtor:
-
n +1
A
0
F se formeaz din F prin eliminarea sintactic a oricrei
apariii a literalului pozitiv A
n+1
din orice clauz i apoi
eliminarea n totalitate a tuturor clauzelor care conin o apariie
negativ a literalului A
n+1
.
-
n 1
A
1
F
+
se obine prin dualizare, adic din F se scot din toate
clauzele apariiile negative ale lui A
n+1
i se elimin apoi toate
clauzele care conin apariii pozitive ale aceleiai variabile.
Afirmaie. Dac F este nesatisfiabil, atunci att
n +1
A
0
F ct i
n 1
A
1
F
+
sunt nesatisfiabile. S presupunem c F este nesatisfiabil i nu are
clauze care sunt tautologii. Fie
n +1
A
0
F i fie S orice structur corect
(definit pentru toate variabilele propoziionale care intervin n
formulele considerate). Considernd clauzele C ale lui
n +1
A
0
F , avem
urmtoarele posibiliti :
- C este o clauz din F, nemodificat. Evident c valoarea lui S
pentru aceast clauz nu se modific i astfel nu modific
valoarea de adevr a lui
n +1
A
0
F fa de cea a lui F (dac lum n
considerare doar aceast clauz).
- C provine dintr-o clauz din F, care coninea n plus o apariie
a lui A
n+1
. Dac S(A
n+1
) = 0, atunci S(C U {A
n+1
}) = S(C), din
Fundamentele logice ale Informaticii 103
nou valoarea de adevr a lui
n +1
A
0
F nemodificndu-se fa de cea
a lui F (relativ la C). Dac S(A
n+1
) = 1, avem S(C U {A
n+1
}) = 1.
Cum F este nesatisfiabil, nseamn c exist o alt clauz C,
C U {A
n+1
} C e F cu S(C) = 0. Este evident c C nu poate
conine pe A
n+1
deoarece S(A
n+1
) = 1 i nici pe ( A
n+1
(n acest
caz C nu ar mai fi aprut n
n +1
A
0
F ). Prin urmare, C apare i n
n +1
A
0
F , de unde urmeaz imediat c S(
n +1
A
0
F ) = 0.
Mai exist posibilitatea ca nesatisfiabilitatea lui F s fi provenit din
faptul c S(C) = 0 pentru o clauz C e F care conine neaprat ( A
n+1
,
restul clauzelor lui F, ca i cele ale lui
n +1
A
0
F , fiind adevrate n S. Acest
lucru nseamn c n aceast structur avem S(A
n+1
) = 1. S considerm
structura S care coincide cu S, exceptnd valoarea lui A
n+1
, care este
pus pe 0. Conform celor de mai sus, avem imediat S(F) =1, ceea ce
este absurd, F fiind nesatisfiabil. Rezult c
n +1
A
0
F este nesatisfiabil.
Se procedeaz similar pentru
n 1
A
1
F
+
. (q. e. d.)
n acest moment tim c formulele
n +1
A
0
F i
n 1
A
1
F
+
sunt nesatisfiabile i,
mai mult, sunt construite peste cel mult n variabile. Aplicnd ipoteza
inductiv pentru aceste formule rezult c e Res
*
(
n +1
A
0
F ) i
e Res
*
(
n 1
A
1
F
+
). Conform Teoremelor 2.11 i 2.13, exist o respingere
(D
0
) C
1
, C
2
, , C
l
= , pornind cu elementele lui
n +1
A
0
F , precum i o
104 Cristian Masalagiu
respingere (D
1
) B
1
, B
2
, B
t
= , pornind cu clauzele lui
n 1
A
1
F
+
.
Adugm acum la fiecare clauz din (D
0
) pe A
n+1
, peste tot de unde
acesta a fost scos (inclusiv la clauzele rezultate n urma aplicrii
rezoluiei ntr-un pas), obinnd o demonstraie prin rezoluie notat
(D
0
) i, analog, adugm la fiecare element din (D
1
) pe (A
n+1
acolo
unde este necesar, obinnd o alt demonstraie prin rezoluie, notat
(D
1
) (odat A
n+1
respectiv (A
n+1
introduse, ele nu vor mai fi terse).
Sunt posibile urmtoarele situaii:
- Ultima clauz a lui (D
0
) este C
l
= {A
n+1
} i ultima clauz a lui
(D
1
) rmne B
t
= B
t
= (sau invers, C
l
= C
l
= i B
t
= B
t
=
{(A
n+1
}). Atunci concatenm cele dou liste care reprezint
demonstraiile (D
0
) i (D
1
), rezultnd evident o respingere
pornind cu clauzele lui F.
- Ultima clauz lui (D
0
) este C
l
= {A
n+1
}i ultima clauz a lui
(D
1
) este B
t
= {(A
n+1
}. Atunci concatenm din nou cele dou
liste i apoi mai facem un pas de rezoluie obinnd clauza final
C = Res(C
l
, B
t
) = . Din nou avem o respingere pornind cu
clauzele lui F.
n ambele situaii, conform Teoremei 2.11, rezult c e Res
*
(F).
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
Fundamentele logice ale Informaticii 105
remarcm i faptul c testarea satisfiabilitii nu implic nimic special
(n acest caz, condiia de verificat va fi e Res
*
(F)), ca de altfel nici
testarea validitii (F este valid dac i numai dac ( F este
contradicie; prin urmare, putem aplica Teorema 2.14 lui ( F). A testa
dac o formul F este satisfiabil dar nevalid impune ns aplicarea
teoremei anterioare att pentru F (F este satisfiabil dac e Res
*
(F))
ct i pentru ( F (( F este satisfiabil dac e Res
*
(( F)). Singura ans
(orict de puin probabil ar prea) de a gsi algoritmi performani
rmne aceea de a cuta subclase ale lui LP suficient de interesante
din punct de vedere practic, pentru care asemenea algoritmi s existe
(avem deja un exemplu: clasa formulelor Horn). Avantajul n acest
moment este c aceste subclase pot fi selecionate inndu-se cont
(numai) de motivaii sintactice.
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 = {C
1
, C
2
, , C
n
}
(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
106 Cristian Masalagiu
rezolveni sunt totui exclui, deoarece reprezint tautologii). Teorema
rezoluiei sugereaz crearea mai nti a acestui graf de rezoluie total i
apoi parcurgerea lui pentru a vedea dac este (eticheta unui) nod n
graf. Teorema 2.11 ne indic faptul c este suficient s gsim o
respingere n loc de a creea i apoi parcurge ntregul graf. Rafinrile se
mpart n dou mari categorii: strategii i restricii.
Strategiile nu restrng, n general, spaiul de cutare (adic
graful total) dar folosesc anumite informaii suplimentare despre
clauze, astfel nct s creasc ansele pentru selectarea rapid a unei
demonstraii cutate, adic a unui cel mai scurt drum pornind de la
frunze (elementele lui F), ctre o rdcin (clauza vid). Astfel, cel
puin la modul ideal, graful total nu se construiete n ntregime, ci
doar acele poriuni din el (ct mai puine i ct mai mici), care este
posibil s conin mcar o respingere. Cel mai cunoscut exemplu
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
micorat ntr-un mod, s-i spunem, abuziv. Astfel, o anumit restricie
poate interzice total folosirea (ntr-un pas de rezoluie) a unor clauze
avnd o anumit form sintactic. Restriciile rmn ns complete
pentru anumite subclase de formule propoziionale. Exist mai multe
exemple importante de restricii, cteva dintre ele fiind trecute n
continuare n revist.
Rezoluia pozitiv (P-rezoluia). La fiecare pas al rezoluiei (al unei
demonstraii prin rezoluie), mcar una dintre clauze trebuie s fie o
clauz pozitiv.
Rezoluia negativ (N-rezoluia). La fiecare pas al rezoluiei mcar una
dintre clauze se cere s fie negativ.
Rezoluia liniar bazat pe o clauz iniial . Fie F e LP,
F = {C
1
, C
2
, , C
n
} o mulime de clauze (numite i clauze de intrare)
i o clauz fixat C e F (numit clauz iniial sau clauz de baz). O
rezoluie liniar bazat pe C este o (demonstraie prin) rezoluie n care
la fiecare pas se aleg spre a fi rezolvate dou clauze C
1
i C
2
, dintre care
C
1
este rezolventul pasului anterior, iar C
2
(clauza suplimentar,
definit, exact, precis, de program) este fie o clauz de intrare, fie un
rezolvent obinut anterior n demonstraie. La primul pas, avem C
1
= C
i C
2
e 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 C
2
. Obinem astfel aa-numita SLD-rezoluie
(rezoluie Liniar cu funcie de Selecie pentru clauzele Definite).
108 Cristian Masalagiu
SLD-rezoluia se utilizeaz cu succes pentru clauzele Horn (alte detalii
sunt n Capitolul 5). n acest caz, ea va fi att o rezoluie liniar ct i
una de intrare (a se vedea mai jos). Astfel, putem considera c F este
partiionat n F
1
= {C
1
, C
2
, ... , C
m
}, care sunt clauze Horn pozitive
(doar acestea numindu-se aici clauze definite, program, etc.) i
F
2
= {N
1
, N
2
, ... , N
s
}, care sunt clauze Horn negative (numite i clauze
scop). Pentru a obine o SLD-rezoluie, clauza de baz este o clauz
scop, iar clauzele suplimentare trebuie s fie clauze pozitive (practic,
elemente ale lui F
1
, pentru c toi rezolvenii obinui pe parcurs sunt
clauze negative).
Exemplu. S se gseasc o respingere liniar bazat pe C = {A, B} i
pornind cu F = { {A, B}, {( A, B}, {( A, ( B}}. n cele de mai jos (sunt
reprezentai doi arbori de rezoluie distinci), n stnga avem ceea ce am
cerut, iar n dreapta o respingere oarecare, aceasta din urm fiind mai
scurt.
Fundamentele logice ale Informaticii 109

Rezoluia bazat pe o mulime suport. Se pornete cu formula F,


precum i cu mulimea suport T _ F, singura condiie fiind c F \ T
trebuie s fie satisfiabil (desigur c, n principiu, acest lucru trebuie s
fie cunoscut aprioric i nu dup aplicarea unuia dintre algoritmii deja
descrii, care folosesc tot rezoluia). O demonstraie din F folosind
(bazat pe) T satisface cerina c n fiecare pas de rezoluie mcar una
dintre clauze trebuie s nu aparin lui F \ T (situaie foarte
convenabil dac numrul de elemente din T este mic, preferabil egal
{B} {(A,(B}
B ( B
A (A A (A
{A} {(A,B} {A} {(A}
B ( B B ( B B ( B
{A,B} {A,( B} {A,B} {A,(B} {(A,B} {(A,(B}
{(A} {A}
(A A

110 Cristian Masalagiu


cu unu). Astfel, se poate modela o situaie real n care dispunem de o
anumit baz de cunotine, exprimat printr-o mulime satisfiabil de
formule F = {F
1
, F
2
, ... , F
n
}, 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
F = {F
1
, F
2
, ... , F
n
, ( 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 G
1
, G
2
, ... , G
k
,
adic din reprezentarea formulei ( G ca mulime de clauze).
Rezoluia de intrare. n orice pas al acestui tip de rezoluie, mcar una
dintre clauze trebuie s fie o clauz de intrare (adic din mulimea
iniial F). Se observ imediat c acest tip de rezoluie poate fi
considerat i ca o rezoluie liniar, bazat pe (oricare) C e 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
obine repede clauza vid sunt suficient de mari.
Teorema urmtoare o dm fr demonstraie deoarece este
important pentru anumite detalii legate de implementrile programelor
logice, detalii care nu sunt tratate nici mcar n Capitolul 5.
Teorema 2.16. P-rezoluia, N-rezoluia, rezoluia liniar i rezoluia
bazat pe o mulime suport sunt complete. Rezoluia unitar, rezoluia
Fundamentele logice ale Informaticii 111
de intrare i SLD-rezoluia sunt complete doar pentru clasa formulelor
Horn.
9. Recapitulare i Index
n acest capitol am introdus sintaxa i semantica formal a
unui limbaj logic, privit n sensul unei mulimi de formule. Acestea
reprezint, ntr-un mod precis, cunotinele noastre despre anumite pri
ale realitii. Sunt transpuse ntr-o form exact conceptele i principiile
principale ale logicii aristotelice, printre care bivalena/tertium non
datur i extensionalitatea. Sintactic, mulimea formulelor logicii
propoziionale notat LP poate fi definit constructiv, pornind de la
o mulime numrabil de formule atomice i utiliznd conectorii logici
i, sau, non, eventual i implic. O formul poate fi recunoscut fr
dubii (problema apartenenei unui ir finit de caractere la LP este
decidabil) i poate fi reprezentat ca un arbore. Exist i reprezentri
standard ale formulelor, prin forme normale. Semantica unei formule
este o valoare de adevr (0 adevrat, 1 fals), valoare care se
determin tot ntr-un mod standard. Aceast valoare este unic, odat
ce este cunoscut o structur corect, adic o asignare pentru formulele
atomice componente. Definiia semanticii se bazeaz i pe rezultatele
cunoscute despre funciile booleene. Am evideniat apoi clasele de
formule satisfiabile, valide i nesatisfiabile, introducndu-se i
studiindu-se alte concepte de natur semantic, cum ar fi cele de
echivalen (slab, tare) sau de consecin semantic. Problema cea mai
important de care ne-am ocupat a fost problema SAT (a satisfiabilitii
112 Cristian Masalagiu
formuleleor din LP), despre care am artat c este decidabil dar de
complexitate (timp) exponenial. Primii algoritmi descrii erau
bazai pe semantic. Din punctul de vedere al tratrii automate (cu
ajutorul unui calculator) a problemei SAT, sunt mai convenabili
algoritmii de decizie bazai pe sintax, dei acetia nu sunt mai rapizi,
la nivel global. Am prezentat un asemeanea algoritm (Teoremele 2.11,
2.13, 2.14), care folosete conceptul de rezoluie (propoziional).
Dei metoda rezoluiei nu aduce mbuntiri semnificative ale timpului
necesar pentru rezolvarea SAT (n sensul teoriei generale a
complexitii i pentru ntreaga clas LP), s-au putut pune n eviden
strategii i restricii ale rezoluiei, care mresc ansele gsirii rapide a
rspunsului, precum i subclase de formule pentru care problema poate
fi rezolvat n timp liniar (cum ar fi clasa formulelor Horn, pentru
care putem aplica att algoritmul de marcare, ct i o variant
convenabil de implementare a SLD-rezoluiei). Se poate argumenta
c mulimea LP este prea simpl n privina puterii de a reprezenta
lumea real i n consecin nu merit atenie special. Este adevrat c
LP poate fi inclus n mulimea de formule a calculului cu predicate
de ordinul I (care va constitui obiectul de studiu al urmtorului
capitol), dar am considerat ca benefic introducerea i prezentarea ei
separat, din motive didactice. De altfel, dei destul de restrictiv, LP
este suficient de bogat pentru a putea exprima (i deci, studia
formal) afirmaii intreresante privind lumea real. Urmrind exemplul
de mai jos, vom nelege poate mai uor/mai exact coninutul de pn n
prezent al crii.
Fundamentele logice ale Informaticii 113
Exemplu. Fie urmtoarea afirmaie:
Dac exist petrol n Patagonia atunci fie experii au dreptate, fie
guvernul minte. Nu exist petrol n Patagonia sau experii greesc,
aadar guvernul nu minte.
O prim ntrebare ar fi: Formuleaz ea un adev r?
Logica ne ofer o modalitate de a rpunde la ntrebare ct mai exact.
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
rigoare. Pentru aceasta, vom izola urmtoarele propoziii, pe care le
vom privi drept variabile (elemente din A):
P - Exist petrol n Patagonia
E - Experii au dreptate
G - Guvernul minte
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
exprime. n continuare, 1., 2. i 3. sintetizez cunotinele prezente n
afirmaie:
1. Dac exist petrol n Patagonia atunci, sau experii au
dreptate, sau guvernul minte (F
1
) i
2. Nu exist petrol n Patagonia sau experii greesc (F
2
),
nafar de aceste ipoteze, exist i o concluzie:
3. Aadar guvernul nu minte (F
3
).
Formula noastr ar putea fi deci:
114 Cristian Masalagiu
F = (F1 . F2) F3, unde F
1
= P (E v G), F
2
= ( P v ( E i
F3 = ( G, adic:
F = ((P (E v G)) . ( ( P v ( E)) ( G.
S determinm formal valoarea de adevr a lui F.
Metoda 1 (ncercm s folosim algoritmul de marcare). Pentru
aceasta, F ar trebui s fie tare echivalent cu o formul Horn:
F
(definiia implicaiei)
( (( ( P v E v G ) . ( ( P v ( E )) v ( G
(de Morgan)
(( ( P . ( E . ( G ) v (( ( P . ( ( E) v ( G
(dubla negaie,
asociativitate)
(P . ( E . ( G) v ( (P . E) v ( G)
(distributivitate)
(P . ( E . ( G) v ((P v ( G) . (E v ( G))
(distributivitate,
idempoten)
(P v ( G) . (P v E v ( G) . ( ( E v P v ( G) . (( E v E v ( G) .
. (( G v P) . (( G v E)
(legea tautologiei,
idempoten,
comutativitate)
Fundamentele logice ale Informaticii 115
(P v ( G) . (P v ( G v E) .(P v ( G v ( E) . (( G v E)
(asociativitate,
distributivitate)
(P v ( G) . ((P v ( G) v (E . ( E)) . (( G v E)
(legea contradiciei,
idempoten,
comutativitate)
(P v ( G) . (E v ( G).
Prin urmare, F poate fi considerat ca fiind formula Horn
{G P, G E} i, printr-o aplicare imediat a Algoritmului Horn,
obinem c F 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 i idempotena) c
( F (( P v ( E) . (( P v G) . (G v ( E) . G, adic, n reprezentarea cu
mulimi gsim c ( F = {P . E 0, P G, E G, 1 G}. Aplicarea
Algoritmului Horn conduce la marcarea doar a lui G i la rspunsul
c ( F este tot satisfiabil. n concluzie, F este satisfiabil dar
nevalid, ceea ce poate apare ca un fapt ciudat dac ne-am fi luat dup
forma iniial a afirmaiei n limbaj natural. Dac am cunoate toate
structurile care sunt model pentru F, acest lucru ar deveni poate
explicabil. Aplicarea metodei urmtoare poate fi o soluie.
Metoda 2 (a tabelelor de adevr). tim deja c F(P v (G).(E v (G),
de aceea nu vom folosi forma iniial, care este mai complicat. Avem:
116 Cristian Masalagiu
P E G ( G P v ( G E v ( G F
0 0 0 1 1 1 1
0 0 1 0 0 0 0
0 1 0 1 1 1 1
0 1 1 0 0 1 0
1 0 0 1 1 0 0
1 0 1 0 1 0 0
1 1 0 1 1 1 1
1 1 1 0 1 1 1
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
natural afirmaia elementar P (adic, de fapt, Exist petrol n
Patagonia) este considerat ad literam, mpreun cu semantica sa
(adic se accept cumva intuitiv i implicit, ca fiind un adevr: n
Patagonia exist petrol), pe cnd n LP, P este un simplu nume
sintactic de variabil, care semantic poate avea orice valoare de
adev r.
Metoda 3 (a rezoluiei). Pornim din nou cu forma mai simpl
F (P v ( G) . (E v ( G) i dorim s vedem dac F este nesatisfiabil,
utiliznd rezoluia. Prin urmare, F = {{P, ( G}, {E, ( G}} i practic se
Fundamentele logice ale Informaticii 117
gsete imediat c Res*(F) = F, e Res*(F), adic F este satisfiabil.
Lsm pe seama cititorului s arate, folosind tot aceast metod, c F
este nevalid.
Nu am avea acelai succes dac am dori s exprimm
convenabil n LP o afirmaie ca: O relaie binar f A B este
funcie atunci i numai atunci cnd pentru fiecare element a A, dac
exist b
1
, b
2
B cu f(a) = b
1
i f(a) = b
2
, rezult b
1
= b
2
. Am putea
ncerca ceva de genul (ncepem tot cu delimitarea subformulelor
atomice):
- D: f _ A B este o relaie binar.
- E: A este o submulime a lui A format din toi a e A pentru
care exist mcar dou elemente distincte b
1
, b
2
e B, care
satisfac f(a) = b
1
i f(a) = b
2
, sau, pentru care nu exist nici un
element b e B castfel nct f(a) = b
1
.
- 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 e 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
118 Cristian Masalagiu
pn acum, ns doar n metalimbaj. S-ar ajunge atunci la ceva de
forma (presupunnd c relaia iniial este deja exprimat ca fiind o
mulime de perechi de tipul <x, f(x)>):
F = (x)(-y)(f(x) = y) . (x)(y)(z)(f(x) = y . f(x) = z y =z),
lucru care ar permite pstrarea tuturor principiilor logicii aristotelice,
iar puterea de exprimare direct a limbajului este clar mai mare
(Fe LP, dar poate aparine unei supramulimi alese corespunztor).
Atuci va exista ntr-adevr posibilitatea de a lucra cu afirmaii
elementare cu semnificaie clar, de a avea o semantic explicit pentru
cuantificatori, de a exprima direct relaii (cum ar fi relaia de egalitate),
sau, dac se dorete neaprat, relaia de apartenen a unor obiecte la
anumite mulimi, etc. Capitolul 3 este destinat studiului unei extensii
posibile a lui LP i anume LP1, logica (calculul) cu predicate de
ordinul I.
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
formule propoziionale, 53
variabile propoziionale, 53
formule atomice, 54
arbore ataat unei formule, 55
subformul, 56
problem de decizie, 57
literali (pozitivi, negativi), 59
clauze, clauze pozitive, clauze negative, 59
clauze Horn, clauze Horn pozitive, 59
asignare, interpretare, structur, 60
structur complet, 62
formule satisfiabile (model), valide (tautologii), 63
formule nesatisfiabile (contradicii), 63
formule tare i slab echivalente, 64
consecin semantic, 65
forme normale (disjunctive, conjunctive), 71
clauza vid, 80
forma implicaional a clauzelor Horn, 80
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
120 Cristian Masalagiu
rezoluia liniar bazat pe o clauz iniial, SLD-rezoluia, 106
rezoluia bazat pe o mulime suport, 108
rezoluia de intrare, 109
10. Exerciii
1. Rezolvai Exerciiul 2.1.
2. Rezolvai Exerciiul 2.2.
3. Rezolvai Exerciiul 2.3.
4. Rezolvai Exerciiul 2.4.
5. Completai demonstraia Teoremei 2.1.
6. Rezolvai Exerciiul 2.5.
7. Artai c n LP exist formule satisfiabile (dar nevalide),
formule valide, contradicii.
8. Artai c sunt adevrate afirmaiile:
(a) i
s
sunt relaii de echivalen pe LP.
(b) este compatibil la dreapta i la stnga cu ., v i
compatibil cu (.
(c) LP = < LP/, , , > formeaz o algebr boolean.
(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 v ( D) . ( E . ( C . B . (( B v 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
va fi liderul Partidului. Dac Popescu nu este ales liderul
Partidului, atunci fie Ionescu fie Rdulescu va prsi partidul i
vom pierde alegerile.
12. Se d formula:
F = ((A
1
. A
3
) (A
2
A
4
)) ((A
1
A
2
) . (A
2
A
4
)).
S se elimine conectorii care apar n F i apoi s se elimine
ct mai multe paranteze (fr a schimba semantica formulei),
inndu-se cont de prioritile atribuite operatorilor (, v, .,
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) v (( B .( D) v (C . D) v B
este tautologie, folosind metoda rezoluiei.
15. Artai c formula G = (A . B . C) este consecin semantic
din mulimea de formule G = {( A v B, ( B v C, A v ( C,
A v B v C} folosind metoda rezoluiei.
16. Mulimea infinit de formule M = {A
1
v A
2
, ( A
2
v ( A
3
,
A
3
v A
4
, ( A
4
v ( A
5
, ... } 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.
122 Cristian Masalagiu
(c) Dac F G este valid i F este satisfiabil, atunci G este
satisfiabil.
18. Folosind cele menionate despre necesitatea de a utiliza un
limbaj mai complex pentru reprezentarea realitii prin formule,
gsii o formul F care s conin un simbol funcional f de
aritate 1 i care s exprime faptul c f este funcie injectiv i
surjectiv.
19. Fie formula F e LP, F = (( ((A v B) . C)), A, B, C e 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).
Capitolul 3
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
formulelor LP sunt deja descurajatoare. Principalul argument este acela
c lumea real nu poate fi modelat satisfctor i simplu prin
formule logice care utilizeaz doar variabile propoziionale i
conectori. De aceea principala modificare va fi de natur sintactic,
manifestat prin adugarea cuantificatorilor logici (exist i pentru
orice), mpreun cu introducerea variabilelor, constantelor,
simbolurilor funcionale (de aritate mai mare dect unu) i a
simbolurilor predicative. Din acest punct de vedere, limbajul logicii cu
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
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.
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
124 Cristian Masalagiu
ncepe cu anumite transformri de natur sintactic. Mai precis,
pentru a construi mulimea de formule a logicii cu predicate de ordinul
I, LP1, vom porni cu urmtoarele mulimi de simboluri:
- X = {x
1
, x
2
, }: 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
su, fiecare Pi este o mulime cel mult numrabil de predicate
de aritate i (i e N). Elementele lui P0 se mai numesc i
variabile predicative.
- F = {F0, F1, ...}: o mulime cel mult numrabil de simboluri
funcionale (sau funcii) cu ariti, fiecare Fi fiind o mulime
cel mult numrabil de funcii de aritate i (i e N). Elementele
lui F0 se numesc i constante (funcionale).
- C
1
= {(, v, .}: o mulime de conectori logici (conective logice),
la care se pot aduga, opional, i alte simboluri cum ar fi ,
, etc.
- C
2
= {(x) | x e X} U {(- x) | x e 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
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
scurt, P):
Alf = X U (

=

0 i
Pi ) U (

=

0 i
Fi ) U C
1
U C
2
U P
Mulimile

=

0 i
Pi i

=

0 i
Fi vor fi notate tot cu P respectiv F, atunci cnd
nu exist confuzii.
Observaie. Prin o mulime cel mult numrabil nelegem o
mulime numrabil, finit sau vid. Intuitiv, variabilele funcionale
notate x vor fi nume generice pentru elementele dintr-un anumit
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
argumente peste acelai domeniu, codomeniul fiind {a, f}, sau B (ntr-o
interpretare vom avea P(<a
1
, a
2
, ... a
i
>) = 1 dac i numai dac
elementele a
1
, a
2
, ..., a
i
sunt n relaia numit P). Similar, un simbol
funcional f e Fi, este numele generic al oricrei funcii de i argumente,
peste acelai domeniu i codomeniu. Pentru parantezele utilizate n
scrierea cuantificatorilor ar trebui de fapt folosit un alt font (ca de altfel
i pentru virgul).
Mulimea formulelor, LP1
Alf
(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 C
1
, C
2
, P, exceptnd virgula,
126 Cristian Masalagiu
pot fi considerate ca fiind operatori pe iruri de caractere, de aritate 1
sau 2).
Definiia 3.1 (sintaxa LP1). Fie Alf alfabetul fixat anterior. Atunci
mulimea formulelor calculului cu predicate de ordinul I, LP1
Alf
,
este dat constructiv prin:
Baza. Se definete mulimea formulelor atomice, notat cu At, prin:
(i) P
o
_ At (variabilele predicative sunt formule atomice).
(ii) Pentru fiecare n e N*, pentru fiecare P e Pn, pentru fiecare
t
1
, t
2
, , t
n
e T, avem P(t
1
, t
2
, , t
n
) e At.
(iii) Nimic altceva nu mai este formul atomic.
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).
Pas constructiv. Pentru fiecare n e N*, pentru fiecare f e Fn,
pentru fiecare t
1
, t
2
, , t
n
e T, avem f(t
1
, t
2
, , t
n
) e T.
Concluzionm aceast etap a definiiei prin a spune c At _ LP1
(formulele atomice sunt formule).
Pas constructiv. Continum definirea lui LP1
Alf
cu partea formule
vechi din formule noi.
(i) Dac F e LP1 atunci ( ( F) e LP1.
(ii) Dac F
1
, F
2
e LP1 atunci ( F
1
. F
2
), ( F
1
v F
2
) e LP1 (dac
dorim, putem introduce i (F
1
F
2
), ( F
1
F
2
) e LP1, etc.).
Fundamentele logice ale Informaticii 127
(iii) Dac F e LP1 atunci (x)(F) e LP1 (dac dorim, punem i
(- x)(F) e LP1), pentru fiecare x e X .
Ca i n cazul LP, se definesc constructiv subf(F), mulimea
subformulelor formulei F, i Arb(F), arborele ataat lui F (cuantorii
sunt operatori de aritate 1). Singura subformul a unei formule atomice
este ea nsi i Arb(F) va fi constituit n acest caz dintr-un simplu nod.
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,
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);
(iv) Dac F e LP1 atunci (F) e LP1.
Definiia 3.2 (arborele ataat unui term i unei formule atomice).
Conform definiiei anterioare, arborele ataat unui term t e T, notat
Arb(t), poate fi dat constructiv prin:
Baza. Dac t = c e F0, atunci Arb(t) este:
Dac t = x e X, atunci Arb(t) este:
Pas constructiv. Fie n e N*, f e Fn, t
1
, t
2
, , t
n
e T, astfel nct
t = f(t
1
, t
2
, , t
n
). S presupunem c tim arborii ataai termilor
t
1
, t
2
, , t
n
, adic Arb(t
1
), Arb(t
2
), , Arb(t
n
). Atunci Arb(t) va fi:
c
x
128 Cristian Masalagiu
tiind Arb(t) pentru fiecare t e T, putem acum construi Arb(F) pentru
fiecare F e At, dup cum urmeaz.
(i) Dac P e P0, atunci Arb(P) este:
(ii) Fie n e N*, Q e P
n
, t
1
, t
2
, , t
n
e T astfel nct
P = Q(t
1
, t
2
, , t
n
) i s presupunem c sunt cunoscui
Arb(t
1
), Arb(t
2
), , Arb(t
n
). Atunci Arb(P) va fi:
n sfrit, fie F o formul oarecare. Ea poate avea una din formele:
((F
1
), (F
1
. F
2
), (Arb((F
1
v F
2
)) este similar cu cel pentru .) (x)(F
1
)
(similar, (-x)(F
1
)), sau (F
1
) (Arb(F
1
) coincide cu Arb(((F
1
)), lipsind
doar nodul etichetat cu ( ), unde F
1
, F
2
sunt tot formule (oarecare).
Arborele ataat lui F va avea n consecin una dintre formele:
P
Arb(t
1
) Arb(t
n
)
Q
Arb(t
1
) Arb(t
n
)
f
Fundamentele logice ale Informaticii 129

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
simboluri distincte care apar n Alf s fie disjuncte, atunci putem scrie
Pt
1
t
2
...t
n
n loc de P(t
1
, t
2
, ..., t
n
), adic putem elimina de tot aceste
paranteze (care oricum trebuiau s aib alt font dect cele din P). i n
cazul cuantificatorilor, n loc de (x)(F) putem scrie
x
(F). Astfel,
putem conveni c singurele paranteze care merit a fi luate n
considerare atunci cnd apar ntr-o formul sunt cele din P.
(
Arb(F
1
)
(x)
Arb(F
1
)
.
Arb(F
1
) Arb(F
2
)
( )
( ) ( )
130 Cristian Masalagiu
n cazul lui subf(F), poate este bine s subliniem faptul c
subf((x)(F
1
)) = {(x)(F)} U {(F)} U subf(F
1
), n rest nefiind diferene
eseniale fa de cazul LP.
Definiia 3.3 (apariii libere i legate ale variabilelor). Fie F e LP1
i x e 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
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 G
1
= (x)(G) (sau (-x)(G)). n restul
cazurilor, apariia considerat se numete liber.
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 e LP1, cu free(F) - mulimea variabilelor care au
apariii libere n F, i cu leg(F) mulimea variabilelor care au apariii
legate n F. Desigur c pentru fiecare x e X, este posibil ca x s nu
apar n F, s aib doar apariii libere, doar apariii legate, sau i apariii
libere i apariii legate. Putem nota cu var(F) = free(F) U leg(F). O
situaie nenatural din punct de vedere semantic, dar posibil sintactic,
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
Fundamentele logice ale Informaticii 131
conveni s notm mulimea acestor variabile cu restvar(F) i s
includem i aceast mulime n var(F).
Exerciiul 3.1. Definii constructiv leg(F) i free(F).
Definiia 3.4 (nchideri). O formul F e LP1 se numete nchis dac
nu conine apariii libere de variabile (altfel spus, free(F) = ). Pentru
formula F, se numete nchiderea sa universal formula
(x
1
)((x
2
)( ((x
k
)(F)) ... ) (notat, pentru simplitate i cu (
*
)(F)
sau chiar (F)), unde {x
1
, x
2
, , x
k
} = free(F). Analog (nlocuind cu
-) se definete (noteaz) nchiderea existenial a lui F. Se va numi
matricea lui F (notat F
*
) acea formul obinut din F prin tergerea
(sintactic, textual) a tuturor cuantificatorilor (x) i (-x). O formul
care nu este nchis, se numete deschis (o formul n care var(F) =
se consider a fi nchis).
Definiia 3.5 (substituii). Prin substituie vom nelege o secven
finit de elemente de tipul [x/t] (numite i substituii elementare),
unde x e X, t e T.
O substituie va avea astfel forma s = [x
1
/t
1
][x
2
/t
2
] [x
n
/t
n
]
fiind practic un cuvnt peste alfabetul S = {[x/t] | x e X, t e 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
x
1
cu termul t
1
, apoi a fiecrei apariii libere a variabilei x
2
cu t
2
, etc.
132 Cristian Masalagiu
De obicei, se utilizeaz doar substituii permise pentru o formul
F e LP1 dat. Substituia elementar [x/t] este permis pentru F (sau,
F accept [x/t]) dac t nu conine variabile libere care au apariii
legate n F (s de mai sus va fi permis pentru F dac va fi permis
pentru fiecare component a sa, [x
i
/t
i
], i e [n]). Ordinea (fixat deja
prin modul de scriere) aplicrii substituiilor elementare dintr-o
substituie s este esenial n majoritatea cazurilor. O substituie s este
normalizat (pentru F) dac ordinea de aplicare a substituiilor
elementare componente nu conteaz. Mai precis, s este normalizat
dac avem (F)s = (F)s, pentru fiecare s care este obinut din s printr-
o permutare a componentelor acesteia. Substituia vid (ca element
neutru al lui S*), notat [], nu face desigur nici o transformare n
formula F creia i este aplicat, adic avem (F)[] = F.
Exerciiul 3.2. Artai c pentru fiecare F LP1 i fiecare
substituie s, permis pentru F, care ndeplinete condiia c ea nu
coine un element de forma [x/t] astfel nct t nu conine x, exist
mcar o substituie s, ehivalent cu s (s este echivalent cu s, pentru
F, dac (F)s = (F)s) i care este normalizat.
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
z, ...) vom nota variabilele. Literele latine mici de la nceputul
alfabetului (a, b, c, ...) vor nota constantele. Literele latine mari de la
mijlocul alfabetului (P, Q, R, ...) vor nota simbolurile predicative.
Literele latine mici de la mijlocul alfabetului (f, g, h, ...) vor fi rezervate
pentru desemnarea simbolurilor funcionale, iar cu F, G, H, vom
nota formulele. Dac nu am adopta astfel de convenii (dorim, totusi, s
avem o anumit libertate de exprimare i s folosim i alte nume nafara
celor admise de alfabetul iniial, aa cum am folosit i n cazul LP), am
avea, posibil, cazuri n care, la o prim vedere, nu am putea distinge
ntre o variabil i o constant. Sintactic, diferena dintre un nume de
variabil (element din X) i un nume de constant (element al lui F0)
este clar doar n momentul cnd numele respectiv apare ntr-un
cuantificator.
Definiia 3.6. Un term care nu conine variabile se numete term de
baz. Analog, vom avea formule de baz, substituii de baz, etc.
Ca i pentru LP, putem renuna la anumite paranteze (nu uitm,
sunt implicate doar elementele lui P) ntr-o formul, bazndu-ne pe
aceeai idee (prioriti acordate operatorilor, proprieti generale ale
acestora cum ar fi asociativitatea, convenii, etc). n cazul unui cuantor,
avem nevoie, nafara prioritii care este maxim (adic 0; standard,
vom admite c ( are prioritatea 1, . - 2, v - 3, - 4, - 5, etc.; n
cadrul unei secvene continue de operatori de aceeai prioritate,
parantetizarea se face la dreapta), i de definirea a ceea ce se numete
134 Cristian Masalagiu
domeniul sintactic al cuantificatorului respectiv. Domeniul sintactic
pentru o apariie a unui cuantor (s spunem c aceasta este (x))
ntr-o formul F, reprezint poriunea continu de text (care este o
subformul G alui F), care ncepe cu primul simbol de dup o apariie a
cuantorului n cauz, identificat mai jos prin subliniere (parcurgem
formula de la stnga la dreapta) i se termin cu un anumit simbol
ulterior (s-l identificm tot prin subliniere), conform urmtoarelor
situaii:
- F = ... (x)(G) ... . Nu sunt probleme, deoarece parantezele
cerute de sintaxa dat de Definiia 3.1. nu au fost eliminate. Ca
observaie, parantezele subliniate de mai sus sunt (se mai
numesc i) corespondente (definiia sintactic a unei formule nu
permite existena unei paranteze deschise fr ca ea s fie
nchis ulterior, neexistnd ambiguiti nici n privina
parantezei nchise care corespunde unei anumite paranteze
deschise).
- F = ... (x)G. Situaia evideniaz faptul c domeniul se extinde
pn la sfritul formulei, dar condiia suplimentar este
aceea c n G nu exist nici o parantez nchis care s nu aib
corespondent o parantez deschis situat tot n domeniu (nu
uitm c domeniul ncepe oricum cu primul simbol de dup
(x)). Nu am mai subliniat simbolurile de nceput i sfrit a
domeniului, deoarece ei sunt primul i respectiv ultimul simbol
din G.
Fundamentele logice ale Informaticii 135
- F = ... ( ... (x) ... ) ... . Este pus n eviden cazul n care au fost
eliminate parantezele iniiale de dup cuantificator, dar n
subformula G care urmeaz dup acesta exist o parantez
nchis care are corespondent nainte de apariia cuantorului al
carui domeniu l cutm. Ceea ce am subliniat este prima
parantez cu aceast proprietate (practic, simbolul imediat de
dinaintea ei fiind ultimul care aparine domeniului).
Prioritatea cuantificatorilor fiind maxim, se gsesc mai nti domeniile
sintactice ale fiecrui cuantificator dintr-o formul i apoi se aplic
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
(
1
x
1
)(
2
x
2
) ... (
n
x
n
), cu
1
,
2
, ... ,
n
e {, -}, reprezint linia de
definiie a unei proceduri (n care se specific drept parametri
variabilele locale). Procedurile n-au ns i un sfrit marcat explicit,
astfel nct domeniul sintactic este corpul procedurii, delimitarea lui
clar fiind desigur absolut necesar pentru a cunoate poriunea de
text n care numele unei variabile pstreaz o aceeai semnificaie.
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
136 Cristian Masalagiu
tipul ... 1 ... 1 ... 2 ... 2 ... , sau imbricate - ... 1 ... 2 ... 2 ... 1 ... , dar nu
se pot intersecta, ca n situaia ... 1 ... 2 ... 1 ... 2 ... . Dac o apariie
a unei variabile x se afl n interiorul mai multor domenii imbricate,
desigur c ea aparine tuturor. Apariiile diferite ale unui simbol pot
avea semnificaii (valori) diferite. Astfel, n ... 1 ... 2 ... 3 ... x
(1)
... 3 ...
x
(2)
... 2 ... 1 ... , apariia lui x notat x
(1)
i cea notat x
(2)
, pot practic fi
considerate ca fiind nume de variabile diferite. n ceea ce privete
parantezele adugate, ele pot fi fie restaurri ale parantezelor terse,
fie ne folosim de (iv) (Definiia 3.1, Pas inductiv extins).
Exemplu. Fie formula:
F = Q(x) v (-x)(y)(P(f(x), z) . Q(a) v (x)R(x, z, g(x)).
Semnificaia simbolurilor care apar:
- x, y, z X. Avem x, y e X deoarece sunt (i) nume ale unor
cuantificatori, iar z e X conform conveniilor fcute (e liter de
la sfritul alfabetului). Variabila x apare de 4 ori n F (de la
stnga la dreapta: x are o apariie liber n Q(x); o apariie legat
n P(f(x), z), ea fiind n domeniul sintactic al cuantorului (-x); o
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
Fundamentele logice ale Informaticii 137
consecin, free(F) = {x, z}, leg(F) = {x}, var(F) = {x,z} (sau
chiar {x, y, z} dac acceptm ca restvar(F) s fie introdus n
var(F)).
- a e F0 conform conveniilor.
- Q e P1, P e P2, R e P3, din scrierea sintactic (nici conveniile
nu sunt contrazise).
- f, g e F1, din scrierea sintactic (la fel, conveniile spun
acelai lucru).
Domeniile sintactice ale cuantorilor. Domeniul sintactic al
cuantorului (-x) este format din (subformula)
(y)(P(f(x), z) . Q(a) v (x)R(x, z, g(x)). Apoi, cel al lui (y), din
(P(f(x), z) . Q(a) v (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) v (-x)((y)(((P(f(x), z) . Q(a)) v (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)) v
(x)(R(x, z, g(x))), (y)(((P(f(x), z) . Q(a)) v (x)(R(x, z, g(x)))),
(((P(f(x), z) . Q(a)) v (x)(R(x, z, g(x)))), (-x)((y)(((P(f(x), z) .
Q(a)) v (x)(R(x, z, g(x))))), ((y)(((P(f(x), z) . Q(a)) v
(x)(R(x, z, g(x))))), F}. Dintre acestea, unele sunt formule atomice:
138 Cristian Masalagiu
Q(x), P(f(x), z), Q(a) i R(x, z, g(x)). n plus, Q(a) este o formul de
baz. S reamintim din nou c avem o definiie formal pentru subf(F)
doar n cazul n care n-am eliminat paranteze din F i c subformul a
lui F este orice subcuvnt al su care aparine lui LP1.
Termii (funcionali) care apar n formul. Ei sunt n ordine: x, f(x),
z, a, g(x) (de fapt, termii x i z au cte dou apariii, ei fiind i
variabile).
Mulimea subformulelor nchise ale lui F. Nu avem asemenea
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) v ((P(f(x), z) . Q(a)) v R(x, z, g(x))).
nchiderea universal a formulei este:
F = (z)((x) (Q(x) v (-x)((y)(((P(f(x), z) . Q(a)) v
v (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) v (-x)(y)(P(f(x),z) . Q(a) v (x)R(x, z, g(x)))[z/g(b)][y/z] =
= (Q(c) v (-x)(y)(P(f(x), g(b)) . Q(a) v (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
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
genereaz de obicei grave anomalii semantice). Tot din acest motiv, s
este i normalizat.
Arborele ataat formulei
Q(x) v (-x)(y)(P(f(x), z) . Q(a) v (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 ()):
140 Cristian Masalagiu

Putem acum introduce i studia elementele de semantic


privitoare la calculul cu predicate de ordinul I.
x
v
v
Q
(-x)
x (y)
( )
.
(x)
P R
z
Q
f
z x g
v
x
a
Fundamentele logice ale Informaticii 141
2. Semantica logicii cu predicate de ordinul I
nelesul (semantica) unei formule F e LP1 va fi, la fel ca n
logica propoziional, o valoare de adevr 0, 1 e B, valoare obinut
ntr-un mod extensional. Elementul principal n definirea semanticii va
rmne noiunea de structur. Dei definiia unei structuri i gsirea
unei valori de adevr pentru o formul va depinde practic doar de
simbolurile care intervin n acea formul, vom prefera s utilizm n
continuare s ne folosim de funciile totale n locul celor pariale.
Definiia 3.7. Se numete structur un cuplu S = <U
S
, I
S
> n care U
S
este o mulime nevid numit univers, iar I
S
este o funcie (numit i
interpretare)
I
S
: X U P U F U
S
U [
-
U
S
B] U [
-
U
S
U
S
],
care satisface condiiile:
- Dac x e X, atunci I
S
(x) e U
S
.
- Dac P e Pn, atunci I
S
(P) :
n
U
S
B.
- Dac F e F
n
, atunci I
S
(F) :
n
U
S
U
S
.
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
142 Cristian Masalagiu
univers, interpretarea unui simbol predicativ n-ar este o funcie de
la U
S
n
la {0, 1} (sau, uneori, mulimea elementelor din U
S
n
pentru
care valoarea n cauz este 1), iar semantica unui simbol funcional
de aritate n este o funcie de la U
S
n
la U
S
. Pentru simplificarea
exprimrii, vom renuna la indici dac nu exist confuzii i vom nota
pe I
S
tot cu S. Similar cu cazul logicii propoziionale, orice structur va
putea fi unic extins astfel nct s fie definit pentru toate elementele
lui LP1.
Definiia 3.8. Pentru fiecare structur S = <U
S
, I
S
>, vom numi extensia
sa imediat funcia
S : X U P U F U T U LP1 U
S
U [
-
U
S
B] U [
-
U
S
U
S
] U B,
dat constructiv n continuare. Pentru nceput, vom pune
S(a) = S(a) (= I
S
(a)), pentru fiecare a e X U P U F, ceea ce nseamn
c S s-a definit, n particular, pentru fiecare term elementar. Fie acum
orice t e T, adic orice n e N
*
, orice t
1
, t
2
, , t
n
e T i orice f e Fn,
astfel nct t = f(t
1
, t
2
, , t
n
). Atunci
S(t) = S(f)(S(t
1
), S(t
2
), ... , S(t
n
)) (eU
S
). 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 e At. n aceast situaie avem fie A = P e P 0 fie
A = P(t
1
, t
2
, , t
n
), n e N
*
, t
1
, t
2
, , t
n
e T. n primul caz S este
Fundamentele logice ale Informaticii 143
deja definit (S(P) = S(P) e B), iar n al doilea caz punem desigur
S (P) = S(P)(S (t
1
), S (t
2
), ... , S (t
n
)) e B.
Pas constructiv. Vom avea de considerat cazurile:
(i) F = (( F
1
). Atunci S(F) =
1
'(F ) S .
(ii) F = (F
1
. F
2
). Atunci S(F) = S(F
1
) S(F
2
).
(iii) F = (F
1
v F
2
). Atunci S (F) = S(F
1
) + S(F
2
).
(iv) F = (x)(G). Atunci S(F) = 1 dac i numai dac pentru fiecare
u e U
S
avem S
[x/u]
(G) = 1 unde S
[x/u]
este o interpretare care coincide
n totalitate cu S exceptnd faptul c S(x) = u.
(v) F = (-x)(G). Atunci S(F) = 1 dac i numai dac exist (mcar) un
element u e U
S
astfel nct S
[x/u]
(G) = 1.
Vom pune, evident, i S(F) = S((F)), pentru fiecare F e LP1.
De asemenea, de acum nainte nu vom face nici o diferen ntre I
S
, S,
S, notnd valoarea de adevr a unei formule F e LP1 ntr-o structur
dat S prin S(F) sau chiar F
S
(de fapt, tehnic vorbind, am putea face
acest lucru de-abia dup demonstraia Teoremei 3.1). n mod cu totul
similar vor fi notate interpretrile celorlalte simboluri n structura dat:
x
S
, c
S
, f
S
, P
S
, t
S
, etc. Putem vorbi acum de noiuni pe care le cunoatem
deja, cum ar fi model, formule satisfiabile, valide, nesatisfiabile,
consecin semantic, echivalen tare i slab, etc. Aa cum am mai
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
144 Cristian Masalagiu
propoziionale, vom folosi titulatura de structur corect pentru o
formul (sau o mulime de formule), pentru a denota restricia unei
structuri la simbolurile din Alf care apar ntr-o formul (acesta fiind de
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
presupune astfel c mulimea de variabile este numrabil, c n
mulimea P cel puin P0, P1, P2 sunt nevide, c mulimea F conine
mcar un simbol funcional (indiferent de aritate), etc. Fr restricii de
acest tip, exist pericolul ca LP1 s fie trivial (de exemplu, mulimea
vid), banal (poate coincide cu LP sau chiar cu o subclas a acesteia)
sau prea particular (putndu-se exprima, de exemplu, doar relaiile
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
predicativ de aritate 2 (s presupunem c P2 i = e P2). n
momentul n care considerm o formul F care conine un asemenea
simbol i ne intereseaz existena unui model, este normal s-l cutm
doar printre structuri de forma S = <U
S
, I
S
> n care =
S
(a, b) este
egal cu 1 atunci i numai atunci cnd a coincide cu b n universul dat
(=
S
: U
S
U
S
B). Cu alte cuvinte, n asemenea situaii, clasa
structurilor/modelelor admise este restrns n mod forat, ceea ce nu
are ntotdeauna efecte secundare favorabile. Astfel, n situaia descris,
Fundamentele logice ale Informaticii 145
clasa de formule este notat LP1
{=}
(pe scurt, LP1
=
) i se numete
calculul cu predicate de ordinul I cu egalitate (punctm iar: dac
F e LP1
=
, atunci, dac F conine simbolul predicativ = e 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
{=, +}
, etc. Vom vedea c
problema satisfiabilitii pentru LP1 (notat SAT1) este
semidecidabil, iar problema satisfiabilitii pentru LP1
=
este
nedecidabil. Un rol important n demonstraii l au structurile
Herbrand.
Definiia 3.9 (universuri i structuri Herbrand). Fie F e LP1. Se
numete univers Herbrand (ataat lui F), mulimea D(F) definit
prin:
Baza. n D(F) se pun toate elementele din F0 care apar n F. Dac F nu
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 e N
*
, orice f e Fn care apare n F i termii
oarecare t
1
, t
2
, ... , t
n
e D(F). Atunci f(t
1
, t
2
, ... , t
n
) e D(F).
O structur Herbrand (pentru F) este o structur (corect pentru F)
H = <U
H
, I
H
>, n care U
H
= D(F), iar I
H
satisface condiia c
interpreteaz fiecare term prin el nsui. Mai exact, H(f(t
1
, t
2
, ... , t
n
)) =
146 Cristian Masalagiu
f
H
(
1 2
t , t , , t
H H H
n
) = f(
1 2
t , t , , t
H H H
n
), pentru fiecare n e N i fiecare
t = f(t
1
, t
2
, ... , t
n
) e T.
Se poate spune c D(F) este mulimea termilor de baz construii cu
simboluri din F. ntr-o structur Herbrand, dac f e F0 atunci H(f) = f i
n consecin dac t este un term de baz avem i t
H
= t. Interpretarea
unei variabile este cea uzual (x
H
e D(F) pentru fiecare x e X), la fel ca
i interpretarea simbolurilor predicative (ele vor fi funcii oarecare peste
D(F) cu valori n B). A nu se confunda f
H
(
1 2
t , t , , t
H H H
n
), care denot
aplicarea efectiv a funciei f
H
: D(F)
n
D(F) n-uplului
<
1 2
t , t , , t
H H H
n
>, cu f(
1 2
t , t , , t
H H H
n
) (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
model Herbrand.
Exemplu. Fie formula F = (x)(P(x, f(x)) . Q(g(b, z)).
(i) S se gseasc o structur S = <U
S
, I
S
>, corect pentru F, astfel
nct S F. Conform Definiiei 3.8, vom avea S(F) = 1 dac i numai
dac pentru fiecare u e U
S
avem S
[x/u]
(P(x, f(x)) . Q(g(b, z)) = 1, adic
dac i numai dac pentru fiecare u e 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 e U
S
avem P
S
[x/u]
(x
S
[x/u]
, f
S
[x/u]
(x
S
[x/u]
)) = 1 i Q
S
[x/u]
(g
S
[x/u]
(b
S
[x/u]
, z
S
[x/u]
)) = 1,
Fundamentele logice ale Informaticii 147
adic dac i numai dac pentru fiecare u e U
S
avem P
S
(u, f
S
(u)) = 1 i
Q
S
(g
S
(b
S
, z
S
)) = 1. n acest moment, pentru obinerea structurii cerute,
se pune mai nti problema alegerii unui univers U
S
corespunztor. Ar
trebui s ne gndim mcar la D(F) (a fost recent construit) i la N, care
este o mulime cunoscut, avnd numeroase proprieti. Cum ambele
mulimi au acelai cardinal, vom ncerca nti cu U
S
= N. Apoi, ntr-un
prim pas ar trebui s gsim o relaie P
S
: N N N i o funcie
f
S
: N N, astfel nct pentru fiecare u e U
S
s avem P
S
(u, f
S
(u)) = 1.
O relaie binar pe N, cunoscut, este relaia de ordine parial s.
Astfel, dac alegem P
S
s, putem lua f
S
ca fiind funcia succesor
(f
S
(n) = n + 1, pentru fiecare n e N) i atunci avem P
S
(u, f
S
(u)) = 1,
pentru fiecare u e U
S
. Structura deja sugerat mai trebuie completat
de alegerea corespunztoare a relaiei Q
S
: N N, a funciei
g
S
: N N N i a valorilor b
S
e N i z
S
e N, astfel nct s avem i
Q
S
(g
S
(b
S
, z
S
)) = 1. Cum toate acestea sunt elemente precizate, exist
numeroase opiuni convenabile. De exemplu, putem lua b
S
= 5, z
S
= 10,
g
S
(m, n) = m + n pentru fiecare m, n e N (g
S
este adunarea pe N) i, n
sfrit, Q
S
(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.
148 Cristian Masalagiu
(ii) S se gseasc o structur S = <U
S
, I
S
>, corect pentru F, astfel
nct S F. Procedm identic cu cazul precedent, doar n final lum de
exemplu Q
S
(n) = 1 dac i numai dac n este numr par.
(iii) S se gseasc universul Herbrand al lui F. Conform Definiiei
3.9, ncepem (Baza) prin a introduce n D(F) constantele care apar n F.
Prin urmare, iniial (conform conveniilor deja adoptate), D(F) = {b}.
Rmne s aplicm Pasul constructiv ct timp este posibil, obinnd
D(F) = {b, f(b), f(f(b)), } U {g(b, b), g(g(b, b), b), ... } U {f(g(b, b)),
f(f(g(b, b))), } U {g(f(b), b), } U ... . Desigur c D(F) este
numrabil. ntr-adevr, considernd D(F) ca o mulime de cuvinte
peste alfabetul a = {b, g, f, (, ), ,}, putem defini lungimea, l(w), unui
cuvnt w e a
*
ca fiind egal cu numrul de caractere care l compun
(poate chiar exceptnd parantezele). Atunci, pentru fiecare n e N,
mulimea cuvintelor de lungime n va fi finit i astfel D(F) va fi o
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 Z i definit formal prin: w
1
w
2
dac i numai dac w
1
este
naintea lui w
2
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
Fundamentele logice ale Informaticii 149
cuvnt). n consecin, mulimea D(F) a
*
este i ea total ordonat
prin restricia relaiei . Vom prescurta acest lucru scriind
D(F) = {w
1
, w
2
, ... }, tiind i c w
1
w
2
... . S mai notm faptul c
D(F) este ntotdeauna o mulime nevid, ea putnd fi finit n cazul n
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 = <U
H1
, I
H1
> care s
fie model pentru F i o alta H2 = <U
H2
, I
H2
> care s nu fie model
pentru F. innd cont de punctele anterioare i de Definiia 3.9
(structurile Herbrand pentru o formul F sunt ntotdeauna corecte
pentru F), avem D(F) = {w
1
, w
2
, ... } i putem lua P
H1
= P
H2
= Z,
f
H1
(w
i
) = f
H2
(w
i
) = w
i+1
(i e N), b
H1
= b
H2
= b e D(F) (acest lucru este
obligatoriu conform definiiei unei structuri Herbrand), z
H1
= z
H2
= b
(de exemplu) i g
H1
(u, v) = g
H2
(u, v) = uv (aceasta nsemnnd
concatenarea cuvintelor u i v). n sfrit, vom pune Q
H1
(u) = 1 dac i
numai dac l(u) este numr par i respectiv Q
H2
(u) = 1 dac i numai
dac l(u) este numr impar. Rezult imediat c H1 F i H2 F.
Teorema 3.1 (de extensie). Pentru fiecare structur S = <U
S
, I
S
>,
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
U
S
U [
-
U
S
B] U [
-
U
S
U
S
] U B, care extinde S i satisface
condiiile:
150 Cristian Masalagiu
(i) S((( F
1
)) =
1
'(F ) S , pentru fiecare F e LP1.
(ii) S((F
1
. F
2
)) = S(F
1
) S(F
2
), pentru fiecare F
1
, F
2
e LP1.
(iii) S ((F
1
v F
2
)) = S(F
1
) + S(F
2
), pentru fiecare F
1
, F
2
e LP1.
(iv) S((x)(G)) = 1 dac i numai dac pentru fiecare u e U
S
avem
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 e X i fiecare G e LP1).
Mai sus putem aduga i
(v) S((-x)(G)) = 1 dac i numai dac exist (mcar) un element
u e U
S
astfel nct S
[x/u]
(G) = 1 (pentru fiecare x e X i fiecare
G e LP1).
Relaia S((F)) = S(F) o putem considera ca fiind adevrat chiar prin
convenie.
Demonstraie. Faptul c S(a) = S(a) pentru fiecare a e 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
prin reducere la absurd, folosind direct relaiile (i) (v).
Exerciiul 3.3. Fie F o formul din calculul cu predicate de ordinul
I, cu sau fr egalitate, (
*
)F nchiderea sa universal i (
*
)F
Fundamentele logice ale Informaticii 151
nchiderea sa existenial. Ce se poate spune despre legtura dintre
aceste formule n privina satisfiabilitii (validitii)?
n seciunile/paragrafele urmtoare din Capitolul 3 vom urma
un drum oarecum similar cu calea parcurs n cazul LP, pentru a ajunge
n situaia s testm satisfiabilitatea unei formule din LP1 utiliznd
rezoluia (adaptat pentru noul context). Avem nevoie de cteva
rezultate preliminare.
3. Forme normale n LP1
S observm mai nti c LP1 poate fi considerat ca o extensie
real a lui LP, att la nivel sintactic ct i la nivel semantic. Orice
formul de baz din LP1 (formul care nu conine variabile) poate fi
interpretat ca o formul propoziional (inclusiv elementele lui P0).
Dac formula n cauz nu conine nici apariii de conectori (i, evident,
nici de cuantori), ea va putea fi considerat drept o variabil
propoziional. Conchidem c din punct de vedere sintactic avem
ntr-adevr LP _ LP1 (ns este iar nevoie de nite presupuneri
suplimentare privind cardinalitatea unor mulimi ca P0,F0, F1 sau P1).
Mai mult, considernd orice structur S ca funcie semantic n sensul
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
152 Cristian Masalagiu
LP1, la fel cum mulimea numerelor raionale este o aproximare a
mulimii numerelor reale. Numele folosite, logic propoziional
respectiv logic cu predicate de ordinul I, sunt legate de lipsa
cuantificatorilor respectiv de folosirea acestora pentru a lega doar
variabilele (nu i, de exemplu, simbolurile funcionale sau cele
predicative). Cuvntul calcul, utilizat ca un sinonim pentru logic n
acest context, exprim faptul c mulimile (de formule) considerate nu
sunt amorfe, ci pot fi prelucrate ntr-un mod sistematic (vorbim
despre calculul diferenial i integral, de exemplu). O logic (calcul) n
care ar fi permis i cuantificarea simbolurilor predicative (eventual i a
celor funcionale), ar putea fi numit logic (calcul) cu predicate de
ordinul II (LP2), dac inem cont de faptul observat deja c (mcar)
elementele lui P0 sunt formule atomice pentru LP dar variabile n
LP1 (analog, formulele atomice din LP1 ar putea fi variabile n
LP2). Fiecare nou tip de logic (LP1, LP2, ), trebuie s fie n
acelai timp o extensie i o aproximare a logicii anterioare (pe scurt, o
generalizare sau o logic de ordin superior). Dup cum am mai
subliniat de cteva ori, dei rezultatele privind complexitatea sau
tratabilitatea (algoritmic a) unor probleme importante sunt
descurajatoare chiar pentru logici de ordin inferior, cutarea unor logici
mai generale (de ordin superior, dar i neclasice) este justificat prin
mrirea puterii de exprimare.
Exemplu. Gsii o formul F e LP1
=
, care:
- Este satisfiabil.
Fundamentele logice ale Informaticii 153
- Conine un simbol funcional binar f e F2 i un simbol constant
e e F0.
- Pentru fiecare S F avem: <U
S
, f
S
> 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
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
Capitolul 4):
1. f este lege de compoziie intern, binar, pe orice mulime nevid
considerat:
F
1
: (x)(y)(-z)(f(x, y) = z) . (x)(y)(u)(v)(f(x, y) = u .
f(x, y) = v u = v).
2. f este asociativ:
F
2
: (x)(y)(z)(f(x, f(y, z)) = f(f(x, y), z)).
154 Cristian Masalagiu
3. f admite element neutru (notat e):
F
3
: (-e)(x)(f(x, e) = f(e, x) . f(x, e) = x)).
4. Fiecare element x este simetrizabil n raport cu f:
F
4
: (x)(-x)(f(x, x) = f(x, x) . f(x, x) = e)).
Cerinele sunt astfel imediat satisfcute dac lum
F = F
1
.F
2
. F
3
. F
4
.
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 e LP1, oarecare. Fie orice
F, G e 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
apariii fixate a) lui F cu G. atunci H H.
Demonstraie. Se procedeaz prin inducie structural, ntr-un mod
identic cu cazul LP. Situaia n care sunt utilizai cuantificatorii trebuie
tratat suplimentar. Reamintim astfel c afirmaia de demonstrat este
(H e LP1)P(H), unde
P(H): (F, G, H e LP1)(((F e subf(H)) i
(H se obine din H nlocuind o apariie fixat a lui F cu G) i
Fundamentele logice ale Informaticii 155
(F G)) H H).
n Pasul inductiv singurul caz netratat anterior, n Teorema 2.5
(pentru H = (-x)H
1
se procedeaz similar) este:
(iv) H = (x)H
1
. Fie orice F e subf(H) = {H} U subf(H
1
). Dac F = H,
nu mai avem ce demonstra, la fel ca n cazul Baza. S presupunem c
F e subf(H
1
) i fie H
1
formula care se obine din H
1
nlocuind o
apariie a lui F cu un G (nu uitm c F G). tiind, conform ipotezei
inductive, c H
1
H
1
, faptul c H = (x)H
1
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.
Teorema 3.3. Pentru fiecare F, G e LP1 i fiecare x, y e X, sunt
adevrate urmtoarele echivalene:
1. ( (x)F (-x)(( F)
( (-x)F (x)(( F)
2. Dac x nu apare liber n G, atunci:
(x)(F . G) (x)(F) . G
(x)(F v G) (x)(F) v G
(-x)(F . G) (-x)(F) . G
(-x)(F v G) (-x)(F) v G
3. (x)(F) . (x)(G) (x)(F . G)
(-x)(F) v (-x)(G) (-x)(F v G)
4. (x)(y)F (y)(x)F
156 Cristian Masalagiu
(-x)(-y)F (-y)(-x)F
5. Dac x nu apare liber n F, atunci:
(x)F F
(-x)F F.
Demonstraie. ncepem cu prima echivalen din 5. Fie astfel orice
structur (corect) S = <U
S
, I
S
> astfel nct S (x)F. Aceasta
nseamn c S((x)F) = 1, adic pentru fiecare u e U
S
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
lsndu-le pe seama cititorului. Fie din nou orice structur S = <U
S
, I
S
>
corect pentru formulele care intervin. Avem succesiv:
S((x)(F) . G) = 1 dac i numai dac
pentru fiecare u e U
S
, S
[x/u]
(F) i S(G) = 1 dac i numai dac (folosim
5., pentru G)
pentru fiecare u e U
S
, S
[x/u]
(F) = 1 i S
[x/u]
(G) = 1 dac i numai dac
pentru fiecare u e U
S
, S
[x/u]
(F G) = 1 dac i numai dac
S((x)(F . G)) = 1.
Observaie. Ca o consecin a teoremei anterioare rezult c sunt
adevrate i echivalenele (x)(x)F (x)F i (-x)(-x)F (-x)F
(chiar i variantele (-x)(x)F (x)F, respectiv (x)(-x)F (-x)F),
Fundamentele logice ale Informaticii 157
care se pot generaliza pentru oricte apariii ale cuantorilor (F ar putea
conine la rndul ei cuantificatori). Se poate arta ns c nu sunt
adevrate echivalenele (mai exact, exist x e X, exist F, G e LP1
astfel nct, mai jos, formulele din membrul stng nu sunt echivalente
cu cele corespunztoare din membrul drept):
(x)F v (x)G (x)(F v G)
(-x)F . (-x)G (-x)(F . G)
S considerm de exemplu prima relaie. Chiar la nivel intuitiv cei doi
membri nu exprim acelai lucru deoarece faptul c F sau G este
satisfcut pentru o (aceeai) valoare a lui x nu nseamn c fie F, fie G,
sunt satisfcute pentru (alte) valori ale lui x, eventual diferite. Astfel,
putem lua drept contraexemplu:
- F = P(x).
- G = Q(x).
- S = <U
S
, I
S
>, U
S
= N, P
S
(n) = 1 dac i numai dac n este
numr par, Q
S
(n) = 1 dac i numai dac n este numr impar
(interpretarea lui x n S nu conteaz, toate apariiile sale fiind n
acest caz legate).
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
cuantor este inutil, la fel fiind i o nou cuantificare a unei apariii deja
cuantificate (interpretarea unei variabile care nu are apariii libere ntr-o
formul neavnd efect n stabilirea valorii de adevr a acelei formule,
158 Cristian Masalagiu
indiferent de structura considerat). Deoarece echivalenele anterioare
pot fi interpretate i ca modaliti de transformare a formulelor care
pstreaz validitatea (mutnd cuantificatorii n fa), putem
considera c am fcut un prim pas spre obinerea formelor normale
pentru formulele din LP1. Dei nu este imediat util, am preferat s
ncepem cu rezultatul urmtor datorit importanei sale n justificarea
unor afirmaii i caracterului didactic al demonstraiei. Intuitiv, teorema
afirm c pentru a gsi semantica unei formule F (cu ajutorul unei
structuri S), formul n care am substituit apariiile libere ale unei
variabile x cu un term de baz t, putem afla mai nti semantica lui t n
structura considerat i apoi s gsim semantica lui F n noua
structur S
[x/S(t)]
.
Teorema 3.4 (lema de translaie). Fie F e LP1, x e X , t e T un term
de baz i S orice structur corect pentru formulele care apar. Atunci:
S((F)[x/t]) = S
[x/S(t)]
(F)
Demonstraie. Artm prin inducie structural adevrul metaformulei
(F)P(F), unde:
P(F): (pentru orice x e X )(pentru orice t e T , term de baz)
(pentru orice structur S)(S((F)[x/t]) = S
[x/S(t)]
(F)).
Baza. F e At.
(i) F = P e P0. Neexistnd variabile, afirmaia este imediat.
(ii) Fie n e N*, t
1
, t
2
, , t
n
e T , P e Pn astfel nct F = P(t
1
, t
2
, , t
n
).
Fundamentele logice ale Informaticii 159
Dac x nu apare (liber) n F, afirmaia este din nou evident. n caz
contrar, este suficient s demonstrm rezultatul pentru cazul n care
exist o (singur) apariie (liber) a lui x n F. Putem presupune, fr a
restrnge generalitatea, c x apare la poziia i (de la stnga la dreapta)
n t
1
. n acest caz, este clar c t
1
are forma
i
f( , x, ) , sau poate chiar
coincide cu x. Atunci:
S((F)[x/t]) = S((P(t
1
, t
2
, , t
n
))[x/t]) =
= S(P((t
1
)[x/t], t
2
, , t
n
)) =
= S((P(f( , x, )))[x/t], t
2
, , t
n
) =
= S(P(f( , t, )), t
2
, , t
n
) =
= S(P
S
(f
S
( , t
S
, )), S(t
2
), , S(t
n
)) =
= S
[x/S(t)]
(F), direct din definiii, n contextul teoremei.
Pas inductiv.
(i) F = ( G). Atunci S((F)[x/t]) = S((( G)[x/t]) = S((((G)[x/t])) =
S((G)[x/t]).
Aplicnd acum ipoteza inductiv pentru G, obinem n continuare:
S((G)[x/t]) = S
[x/S(t)]
(G) = S
[x/S(t)]
(( G) = S
[x/S(t)]
(F).
S mai observm c egalitile anterioare sunt triviale dac x nu are nici
o apariie liber n F.
(ii) F = (G H), e {., v}. Se demonstreaz analog cu cazul
precedent, folosindu-se ipoteza inductiv pentru G i H, regulile
semantice corespunztoare pentru v i ., precum i faptul c t nu
conine variabile (este term de baz).
160 Cristian Masalagiu
(iii) F = (y)G (cazul F = (y)G poate fi demonstrat similar). Dac
y = x i x nu apare liber n G, suntem ntr-un caz similar cu cel tratat n
Baza. Presupunem c y x i x apare liber n G (deci i n F) mcar
odat. Ca urmare, rezult S((F)[x/t]) = S(((y)G)[x/t]) =
S((y )((G)[x/t])). Atunci:
S((y)((G)[x/t])) = 1 dac i numai dac pentru fiecare u e U
S
avem
S
[y/u]
((G)[x/t])) = 1 dac i numai dac (aplicm ipoteza inductiv
pentru G i S
[y/u]
)
S
[y/u][x/S(t)]
(G) = 1 dac i numai dac (t
S
, u e U
S
, i y x)
S
[x/S(t)][y/u]
(G) = 1 dac i numai dac
S
[x/S(t)]
((y)G) = 1 dac i numai dac
S
[x/S(t)]
(F) = 1.
Cu urmtorul rezultat se ncepe construcia formelor normale.
Teorema 3.5 (lema de redenumire a variabilelor legate). Fie
F = (x)G , e {, -}, o formul oarecare din LP1. Fie y o variabil
nou (n sensul c ea nu apare n G). Atunci :
F (y)(G[x/y]).
Demonstraie. Imediat, prin inducie structural.
n cele de mai sus era suficient s presupunem c y, variabila nou, nu
apare liber n G.
Fundamentele logice ale Informaticii 161
Definiia 3.10 (forma normala rectificat). O formul F e LP1 se
numete rectificat (sau, se afl n form normal rectificat, pe scurt
FNR) dac nu conine variabile care apar att libere ct i legate i nu
are cuantificatori care s lege aceeai variabil, dar pe poziii diferite n
formul (indiferent dac este vorba de cuantificatori existeniali sau
universali).
Teorema 3.6. Pentru orice formul din F e LP1, exist o formul
rectificat F e LP1, astfel nct F F.
Demonstraie. Se aplic de un numr finit de ori Lema de redenumire
formulei iniiale F (implicit, se aplic i Teorema 3.3 i Teorema de
substituie).
Definiia 3.11 (forma normal prenex). O formul F e LP1 este n
form normal prenex (FNP, pe scurt) dac F = (
1
y
1
) (
n
y
n
)G, unde
n e N,
i
e {-, } (i e [n]), iar y
1
, , y
n
sunt toate variabilele
distincte care apar (liber) n G. n plus, G nu mai conine cuantificatori.

n cele de mai sus, cazul n = 0 se refer la absena cuantificatorilor


([0] = ).
Teorema 3.7. Pentru fiecare formul F e LP1, exist o formul
F e LP1, care este n FNP i este tare echivalent cu F.
162 Cristian Masalagiu
Demonstraie. Fr a restrnge generalitatea, putem presupune c toate
formulele care intervin sunt rectificate. Procedm prin inducie
structural, (meta)afirmaia de demonstrat fiind evident.
Baza. F e At. Aceasta este deja n FNP, avnd numrul de
cuantificatori egal cu zero.
Pas inductiv.
(i) F = ( F
1
). Presupunem c F
1
este n FNP i artm c F este n
FNP. Conform ipotezei inductive pentru F
1
, exist G
1
aflat n FNP
rectificat astfel nct G
1
F
1
. Aceasta are aspectul
G
1
= (
1
y
1
) (
n
y
n
)G, unde
1
,
2
, ...,
n
e{-, } i G nu mai conine
cuantificatori. Atunci:
F = (( F
1
) ((
1
y
1
) (
n
y
n
)G (
'
1
y
1
) (
'
n
y
n
)(( G), unde
'
i
= -
dac
i
= i reciproc, pentru fiecare ie[n]. Ultima formul este n
FNP.
(ii) F = (F
1
o F
2
), o {, }. Conform ipotezei inductive, rezult c
exist formulele
G
1
= (
1
x
1
) (
m
x
m
)
'
1
G ,
i
e {, -}, i e [m] i
G
2
= (
'
1
y
1
) (
'
k
y
k
)
'
2
G ,
'
i
e {, -}, i e [k], G
1
i G
2
fiind n
FNPR (form normal prenex rectificat) i echivalente respectiv cu F
1
i F
2
. Atunci F G
1
G
2
= (
1
y
1
)(
m
y
m
)
'
1
G
(
'
1
z
1
) (
'
k
z
k
)
'
2
G (
'
1
z
1
) (
'
k
z
k
)(
1
y
1
) (
m
y
m
)(
'
1
G
'
2
G ).
n cele de mai sus, am aplicat de un numr finit de ori Lema de
redenumire, Teorema 3.3 i Teorema de substituie.
Fundamentele logice ale Informaticii 163
(iii) F = (ox)G, o {, }. Conform ipotezei inductive, exist o
formul tare echivalent cu G, aflat n FNPR,
G = (
1
y
1
) (
n
y
n
)G,
i
e {, -}, i e [n]. Dac x e{y
1
, y
2
, , y
n
},
atunci aplicm mai nti Lema de redenumire. S presupunem acum
c x e {y
1
, y
2
, , y
n
}. Atunci F (x)(
1
y
1
) (
n
y
n
)G, formul
care se afl n forma necesar.
Observaie. Am artat c pentru fiecare formul din LP1, exist o alt
formul din LP1, care este tare echivalent cu ea i care este n FNP
rectificat (pe scurt, FNPR). Conform Teoremei 3.3, putem presupune
i c nu exist n aceast formul cuantificatori care s lege variabile
care nu apar n ea i nici cuantificatori (relativ la o aceeai variabil) cu
apariii multiple. Cu alte cuvinte, din punctul de vedere al
satisfiabilitii, ne putem limita la studiul formulelor din LP1 de forma
F = (
1
y
1
) (
k
y
k
)F, unde free(F) = {y
1
, y
2
, , y
k
}, iar F este chiar
matricea lui F, nemaiconinnd ali cuantori (
1
,
2
, ,
k
e {, -}).
Prin urmare, folosind i Exerciiul 3.3 (o formul este satisfiabil dac
i numai dac nchiderea sa existenial este satisfiabil), putem spune
c pentru testarea satisfiabilitii unei formule din LP1, putem s ne
limitm la clasa de formule avnd aspectul sintactic
F = (
1
y
1
)(
2
y
2
) (
k
y
k
)F*, unde F* este matricea lui F iar
leg(F) = var(F) = free(F*) = {y
1
, y
2
, y
k
}. Prin urmare, aceast
formul este i nchis, neconinnd apariii libere de variabile.
164 Cristian Masalagiu
Vom arta n continuare c dac exist cuantificatori existeniali
n forma anterioar pentru o formul, acetia pot fi eliminai, fr a se
afecta satisfiabilitatea. Testul de satisfiabilitate pentru formulele din
LP1 poate fi redus astfel la un test de satisfiabilitate pentru formule de
forma F = (y
1
) (y
n
)F*, unde {y
1
, y
2
, , y
k
} = free(F*), F*
neconinnd cuantificatori.
Definiia 3.12 (forma normal Skolem). O formul F e LP1 este n
form normal Skolem (FNS, pe scurt), dac are aspectul
F = (x
1
) (x
k
)G unde G nu mai conine cuantificatori (este
matricea lui F), iar x
1
, x
2
, , x
k
sunt variabile distincte i reprezint
exact variabilele care apar n G (free(G) = {x
1
, x
2
, , x
k
}). F este n
form normal Skolem clauzal (FNSC, pe scurt), dac este n FNS
i matricea sa este n FNC (forma normal conjuctiv) ntr-un sens
similar cu LP (literalii reprezentnd acum formule atomice din LP1 sau
negaii ale lor).
Teorema 3.8. Pentru fiecare formul F din LP1, exist o alt formul
Fe LP1, care este n FNSC i care este slab echivalent cu ea.
Demonstraie. Vom prezenta un algoritm prin care formula F va fi
construit efectiv din formula F.
Algoritm Skolem
Intrare: F e LP1. Fr a restrnge generalitatea, putem presupune c F
este n FNPR, nchis.
Fundamentele logice ale Informaticii 165
Ieire: F e LP1, aflat n FNS (i nchis), slab echivalent cu F.
Metod:
Pasul 1. F : = F.
Pasul 2. Ct_timp (exist cuantificatori existeniali n F)
execut
2.1. Alege un asemenea cuantificator i elimin-l.
2.2. Transform formula F.
Sf_Ct_timp.
Comentarii. Orice formul intermediar prelucrat de algoritm are
forma F = (y
1
) (y
n
)(-z)G, unde G poate s conin i ali
cuantificatori (am pus n eviden primul cuantificator existenial,
alegerea fiind acum determinist dac ne gndim c parcurgem formula
simbol cu simbol, de la stnga la dreapta). Atunci, n urma Pailor 2.1
i 2.2, F va cpta forma F = (y
1
) (y
n
)((G)[z/f(y
1
, , y
n
)]) unde
f este un simbol funcional nou (n sensul c el nu mai apare n
formulele considerate), f e Fn. S notm H (y
1
) (y
k
)(-z)G,
formula de tip F existent nainte de execuia unui pas al algoritmului
precedent i cu H = (y
1
) (y
k
)(G)[z/f (y
1
, y
2
, y
k
)] formula
rezultat dup execuie.
Artm acum c H este slab echivalent cu H.
166 Cristian Masalagiu
Presupunem nti c H este satisfiabil. Exist atunci o structur
corect S = <U
S
, I
S
>, astfel nct S H. Ca urmare, pentru fiecare
u
1
, u
2
, , u
k
e U
S
avem
] /u ]...[y /u ][y /u [y
k k 2 2 1 1
S
((G)[z/f(y
1
, y
2
, , y
k
]) = 1.
Pentru c variabilele y
1
, y
2
, y
k
sunt distincte i apar liber n
(G)[z/f(y
1
, y
2
, , y
k
)] i pentru c structura S (adic
] /u ]...[y /u ][y /u [y
k k 2 2 1 1
S
) coincide cu S, exceptnd valorile lui y
1
, y
2
, y
k
care sunt puse pe u
1
, u
2
, ... , u
k
, semantica LP1 ne permite s
nlocuim n formula G= (G)[z/f(y
1
, y
2
, , y
k
] pe y
1
, y
2
, y
k
respectiv
cu nite constante noi (nu apar nicieri n formulele care intervin),
distincte, a
1
, a
2
, , a
k
i s extindem structurile S i S prin
i
a
S
=
i
a
S'
= u
i
, pentru fiecare i e [k]. n acest moment, interpretarea
termului t = f(y
1
, y
2
, , y
k
) n structurile considerate va coincide cu
cea a lui f(a
1
, a
2
, , a
k
). Putem astfel chiar nlocui pe t cu
f(a
1
, a
2
, , a
k
), astfel nct el nu va conine variabile. Avem deci
S(f(y
1
, y
2
, , y
k
)) = S(f(a
1
, a
2
, , a
k
)) = f
S
(<S(a
1
), , S(a
k
)>) =
f
S
(<u
1
, , u
k
>). Atunci S((G)[z/t]) = 1 i t nu conine variabile, astfel
nct putem aplica Lema de translaie, gsind S
[z/S (t)]
(G) = 1, adic
S
[z/S(t)]
(G) = 1. Sintetiznd, putem spune c pentru fiecare
u
1
, , u
k
e U
S
= U
S
, exist v e U
S
(v = t
S
= f
S
(<u
1
, , u
k
>)) astfel
nct S
[z/v]
(G) = 1. Prin urmare, S este model (i) pentru H, adic H este
satisfiabil.
Fundamentele logice ale Informaticii 167
Invers, s presupunem c H este satisfiabil. Fie orice S = <U
S
, I
S
>,
structur corect pentru H (atenie, S nu este definit pentru simbolul f),
astfel nct S H. Conform definiiei, pentru fiecare u
1
, , u
k
e U
S
exist mcar un v e U
S
astfel nct
][z/v] /u ]...[y /u ][y /u [y
k k 2 2 1 1
S
(G)=1.
Extindem pe S la S, corect i pentru H, punnd (n rest, S coincide
cu S): f
S
(<u
1
, , u
k
>) = v. Prin urmare, pentru fiecare
u
1
, , u
k
e U
S
= U
S
, avem
)] u ,..., ][z/f(u /u ]...[y /u ][y /u [y
k 1 k k 2 2 1 1
S'
(G) = 1.
Lum acum din nou termul t, t = f(y
1
, , y
k
) i folosind aceeai
argumentaie ca mai sus, putem aplica invers Lema de translaie,
obinnd
] /u ]...[y /u ][y /u [y
k k 2 2 1 1
S'
1 )]) y ,..., ((G)[z/f(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:
168 Cristian Masalagiu
Teorema 3.9. Pentru fiecare formul F e LP1, exist o formul
F e LP1 astfel nct F
s
F, F fiind n FNSC nchis
(F = (y
1
) (y
n
)F
*
, {y
1
, , y
n
} = free(F
*
), F*, matricea lui F,
fiind n form normal conjunctiv).
Exemplul urmtor ne va sugera i un algoritm pentru aflarea (unei)
FNSC (de acum ncolo vom presupune c orice formul aflat n FNSC
este i nchis).
Exemplu. Fie
F = (x)(-y)(P(x, g(y), z)) v (( (x)(Q(x)) . (z)(-x)( R(f(x, z), z))).
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))) v ((-x)((Q(x)) . (z)(-x)( R(f (x, z), z))
(x)(-y)(P(x, g(y), z)) v ((-u)(( Q(u)) . (t)(-v)( R(f(v, t), t)).
Forma normal prenex rectificat. . este prioritar fa de v (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
(( Q(u) . ( R(f(v, t), t)). Revenind, x i y nu apar (liber) n
(-u)(t)(-v)(( Q(u) . ( R(f(v, t), t)) i atunci F (x)(-y)(P(x, g(y), z)
v (-u)(t)(-v)(( Q(u) . ( R(f(v, t), t))). Acum u, t, v nu apar liber n
P(x, g(y), z) i atunci:
F (x)(-y)(-u)(t)(-v)(P(x, g(y), z) v ( 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) v ( Q(u) . ( R(f(v, t), t)).
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) v ( Q(u) . ( R(f(v, t), t)),
unde b e F0.
II. F
s
(x)(-u)(t)(-v)(P(x, g(h(x)), b) v ( Q(u) . ( R(f(v, t), t)),
unde h eF1.
III. F
s
(x)(t)(-v)(P(x, g(h(x)), b) v ( Q(i(x)) . ( R(f(v, t), t)), unde
ieF1.
IV. F
s
(x)(t)(P(x, g(h(x)), b) v ( Q(i(x)) . ( R(f(j(x, t), t), t)), unde
j eF2.
Forma normal Skolem clauzal. Pornim cu:
F* = P(x, g(h(x)), b) v ( Q(i(x)) . ( R(f(j(x, t), t), t).
Notm P(x, g(h(x)), b) cu A
1
, Q(i(x)) cu A
2
i R(f(j(x, t), t), t) cu A
3
.
Atunci F* devine F* = A
1
v ( A
2
. ( A
3
= A
1
v (( A
2
. ( A
3
)
170 Cristian Masalagiu
(A
1
v ( A
2
) . (A
1
v ( A
3
). Prin urmare obinem n final c formula
noastr F este slab echivalent (relaiile i
s
sunt tranzitive; de
asemenea, dac G H atunci G
s
H) cu F, unde:
F = (x)(t)((P(x, g(h(x)), b) v ( Q(i(x))) .
(P(x, g(h(x)), b) v ( R(f(j(x, t), 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.
4. Decidabilitate n LP1 (LP1
=
)
Vom ncepe direct cu un rezultat cumva ateptat.
Teorema 3.10. Fie F o formul din calculul cu predicate de ordinul I
fr egalitate, nchis i aflat n FNS. Atunci F este satisfiabil dac i
numai dac F admite un model Herbrand.
Demonstraie.
Presupunem c F admite model Herbrand. Dac F admite model
Herbrand, ea este satisfiabil prin definiie.
Presupunem c F este satisfiabil. Atunci exist o structur
S = <U
S
, I
S
> corect pentru formula dat astfel nct S F. Artm c
n acest caz F admite i un model Herbrand, notat H
S
= <U
H
, I
H
> (pe
scurt, modelul va fi notat H). innd cont de definiia unei structuri
Herbrand (orice term de baz este interpretat prin el nsui), rmne s
Fundamentele logice ale Informaticii 171
interpretm simbolurile predicative care intervin n formul. Astfel,
pentru fiecare n e N, pentru fiecare P e Pn care apare n F i pentru
fiecare t
1
, t
2
, ... , t
n
e U
H
= D(F), vom pune:
(
*
) P
H
(<t
1
, t
2
, t
n
>) = 1 dac i numai dac P
S
(<t
S
1
, t
S
2
, t
S
n
>) = 1.
Dac F nu conine constante, alegem o constant arbitrar a e F0,
creia i dm de asemenea o interpretare arbitar a
S
e U
S
. Pentru a
arta c H F, demonstrm o afirmaie mai tare:
Fie G orice formul din LP1 aflat n FNP, fr cuantori existeniali,
nchis i coninnd simboluri funcionale i predicative care apar doar
n F. Atunci, pentru fiecare structur S = <U
S
, I
S
> corect care este
model pentru G, structura H construit ca mai sus este de asemenea
model pentru G.
Demonstraia afirmaiei. Procedm prin inducie asupra numrului n
de cuantificatori universali care apar n G.
Baza. n = 0. Atunci G nu conine cuantificatori i este nchis. Acest
lucru nseamn c G nu are variabile i vom arta c S(G) = H(G).
Procedm acum prin inducie structural asupra submulimii lui LP1
alctuit din formulele de tipul G de mai sus.
Baza 1. G este formul atomic fr variabile, deci
G = P(t
1
, t
2
, ... , t
n
), n e N, P e Pn i apare n F, iar t
1
, t
2
, ... , t
n
e
U
H
. Egalitatea S(G) = H(G) urmeaz atunci direct din (
*
).
Pas inductiv 1. Fie G
1
, G
2
formule fr variabile (i nchise i
fr cuantificatori), avnd simbolurile funcionale i predicative
din F, pentru care S(G
1
) = H(G
1
) i S(G
2
) = H(G
2
). Trebuie s
172 Cristian Masalagiu
artm c avem S(G) = H(G) pentru fiecare G de una din
formele: G = (G
1
. G
2
), G = (G
1
v G
2
) i G = ((G
1
) (formula
fiind nchis, nu mai trebuie considerate cazurile (x)(G
1
) sau
(-x)(G
1
)). i acest lucru rezult imediat din (
*
) i definiia
semanticii unei formule din LP1.
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
FNP, neavnd cuantori existeniali i fiind construit peste simboluri
funcionale i predicative din F. Fie S o structur corect 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
n 1 universali i x apare liber n G (n caz contrar, ajungem pn la
urm din nou n situaia din Baza). Astfel, dei G are restul
proprietilor cerute pentru a putea aplica ipoteza inductiv, ea nu este
formul nchis. Dar, din S(G) = 1 rezult S((x)G) = 1, de unde
gsim c pentru fiecare u e U
S
avem S
[x/u]
(G)=1. Aceast relaie este
adevrat i pentru acei u din U
S
care au proprietatea c sunt imagini
prin structura S ai oricror termi t fr variabile construii peste
simboluri din F, u = t
S
e 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
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
de translaie pentru a gsi (H
S
)
[x/t]
(G) = 1 pentru fiecare t din D(G),
adic H((x)G) = 1, ceea ce nseamn de fapt c H(G) = 1, adic H
este model pentru G. Cu aceasta, afirmaia este demonstrat (q. e. d.).
Pentru a ncheia demonstraia teoremei, aplicm direct rezultatul
precedent pentru G = F.
Observaie. Tot ceea ce am afirmat sau demonstrat pn la teorema
anterioar este aplicabil i n cazul calculului cu predicate de ordinul I
cu egalitate. Teorema 3.10 nu este ns adevrat i pentru LP1
=
,
dup cum se poate intui chiar urmrind demonstraia, pentru succesul
creia relaia (
*
) este esenial. Astfel, n cazul n care P este chiar
egalitatea, ea trebuie interpretat standard n orice structur. Prin
urmare, considernd b i c dou constante distincte, putem gsi uor
structuri S n care b
S
= c
S
, dar b c n orice structur Herbrand.
Desigur c acest lucru nu nseamn c n-am putea gsi o alt
demonstraie a rezultatului anterior, aplicabil pentru LP1
=
. Din pcate,
faptul nu este posibil, conform rezultatelor care urmeaz (nu toate
demonstrate).
Teorema 3.11 (Lwenheim Skolem). Fiecare formul satisfiabil
din LP1 admite model cel mult numrabil.
174 Cristian Masalagiu
Demonstraie. Se aplic direct Teorema 3.10.
Definiia 3.13 (extensia Herbrand). Pentru fiecare formul F nchis,
aflat n FNS, F = (y
1
) (y
n
)F
*
, {y
1
, , y
n
} = free(F
*
), F* fiind
matricea lui F, extensia sa Herbrand este mulimea
E(F) = {(F
*
)[y
1
/t
1
][y
2
/t
2
] [y
n
/t
n
] | t
1
, t
2
, , t
n
e D(F)}.
Dac F este n FNSC (F are forma de mai sus, n plus F* fiind n FNC,
F* = C
1
. C
2
. . C
k,
C
1
, C
2
, ... , C
k
reprezentnd clauze, adic
literali din LP1), mulimea
k
i
i 1
E ( F) E ( C )
=
' =
se numete extensia Herbrand generalizat.
Extensia Herbrand generalizat a unei formule este obinut practic prin
considerarea tuturor instanelor clauzelor care compun matricea sa
(formula fiind deja n FNSC i considerat n reprezentarea cu
mulimi), instane obinute prin aplicarea tuturor substituiilor posibile
cu termi de baz din D(F).
Teorema 3.12 (Church). Problema validitii pentru logica cu
predicate de ordinul I (fr egalitate) este nedecidabil, dar
semidecidabil.
Demonstraie. Conform, de exemplu, [MAS1].
Fundamentele logice ale Informaticii 175
Observaie. innd cont de legtura dintre F i ( F, se deduce imediat
c problema SAT1 este nedecidabil, ca de altfel i problema
nesatisfiabilitii (validitii). Pe de alt parte, n cazul LP1 aceste
probleme sunt totui semidecidabile.
Teorema 3.13 (Gdel-Herbrand-Skolem). O formul F e LP1 este
satisfiabil dac i numai dac E(F) este satisfiabil.
Demonstraie. Fr a restrnge generalitatea, putem presupune c F
este n FNS nchis. Conform Teoremei 3.10, F este satisfiabil dac i
numai dac admite model Herbrand H. Ca de obicei, putem considera
c F = (y
1
) (y
n
)F
*
i atunci, din H(F) = 1 rezult c pentru fiecare
t
1
, t
2
, , t
n
e D(F) avem 1 ) F ( H
*
] /t ]...[y /t ][y /t [y
n n 2 2 1 1
= . Deoarece termii n
cauz sunt termi de baz, putem aplica Lema de translaie de n ori,
rezultnd c H((F*)[y
1
/t
1
][y
2
/t
2
]...[y
n
/t
n
]) = 1, pentru fiecare
t
1
, t
2
, , t
n
e D(F). Prin urmare, am artat c F este satisfiabil dac i
numai dac H G pentru fiecare G e E(F) adic dac i numai dac
extensia Herbrand a lui F este satisfiabil.
n Teorema 3.13 putem lua E(F) n loc de E(F) i, mai mult,
aa cum de altfel am mai punctat, elementele lui E(F) pot fi privite
drept clauze n sensul logicii propoziionale, deoarece literalii din
LP1 care le compun nu conin variabile (astfel, interpretarea lor, 0 sau
1, n orice structur S, depinde practic doar de interpretarea singurului
176 Cristian Masalagiu
simbol predicativ care apare, ceea ce se reduce la interpretarea unei
variabile propoziionale n sensul LP). Atunci are loc:
Teorema 3.14 (teorema lui Herbrand; teorema de compactitate
pentru LP1). O formul F e LP1 este nesatisfiabil dac i numai
dac exist o submulime finit a lui E(F) care s fie nesatisfiabil.
Demonstraie. Direct din Teorema 3.13 i Teorema de compactitate
pentru LP.
n acest moment putem spune c procedura urmtoare (intitulat
chiar n ntregime Procedura lui Gilmore) poate fi folosit pentru
testarea nesatisfiabilitii oricrei formule din LP1. Pasul 1 este un
algoritm n sine (a se vedea i exemplul care urmeaz imediat
Teoremei 3.9), formula gsit la sfritul execuiei sale fiind slab
echivalent cu formula iniial i avnd aspectul F = (
*
)F
*
, unde
F
*
= C
1
. C
2
. . C
k
. Extensia Herbrand generalizat E(F)
rezultat n urma aplicrii Pasului 2 trebuie interpretat ca fiind o
list de clauze din LP. Datorit faptului c E(F) nu este recursiv ci
doar recursiv enumerabil, Pasul 2 reprezint doar un semialgoritm.
Dup cum se observ, nici n-ar fi nevoie de obinerea acestei liste
dintr-o dat. Este nevoie doar de a putea selecta cte un nou element
din ea atunci cnd este necesar, conform Pasului 3.3.2, care ar putea
fi reformulat prin Obine un nou element din E(F). Practic, pornind de
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
la un produs cartezian al acelei mulimi cu ea nsi, de oricte ori).
Pasul 3, i numai el, este de fapt semialgoritmul cunoscut n literatura
de specialitate ca Procedura lui Gilmore (Procedura rezoluiei de
baz). Aceasta nu se termin n cazul n care F este satisfiabil i
conine mcar un simbol funcional de aritate cel puin 1.
Semialgoritmul lui Gilmore
(Procedura rezoluiei de baz)
Intrare: Orice formul F e LP1.
Ieire: DA, doar dac F este nesatisfiabil.
178 Cristian Masalagiu
Metod:
Pasul 1. Se transform F ntr-o formul aflat n FNSC
(nchis), succesiv, prin rectificare (redenumire), gsirea FNP
(FNPR), obinerea nchiderii existeniale, obinerea FNS i apoi
FNSC, formula rezultat notndu-se, pentru simplitate, tot cu F.
Pasul 2. Se obine E(F) = {G
1
, G
2
, ... , G
n
, ... }.
Pasul 3.
3.1. M := .
3.2. i := 0.
3.3. Repet
3.3.1. i := i + 1.
3.3.2. Alege G
i
e E(F).
3.3.3. M := M U {G
i
}.
3.3.4. M := Res*(M).
Pn_cnd ( e 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 e 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.
Fundamentele logice ale Informaticii 179
Demonstraie. Trebuie de fapt s artm c pentru fiecare F e LP1
avnd E(F) infinit, semialgoritmul anterior se oprete dac i numai
dac F este nesatisfiabil. Acest lucru rezult imediat din faptul c
E(F) este recursiv enumerabil, din Teorema lui Herbrand i din
Teorema rezoluiei pentru LP.
Putem acum justifica de ce logica propoziional poate fi
considerat ca o aproximare a logicii cu predicate de ordinul I.
Semnificaia este aceea c E(F) (sau E(F)) aproximeaz pe F,
deoarece testul de nesatisfiabilitate pentru F poate fi fcut testnd
de nesatisfiabilitate submulimile finite ale lui E(F) (E(F)). Pentru
detalii privind noiunile de numr cardinal i ordinal, funcie (mulime)
recursiv (recursiv enumerabil), alte amnunte privind
calculabilitatea, complexitatea, tratabilitatea, pot fi consultate: [IP],
[CAZ2], [COR], [AHO], [BR], [RIC], etc.
Exemplu. Fie formula
F = (x)(y)(((P(x) v (P(f(c)) v Q(y)) . P(y) . ((P(g(b, x)) v ( 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
*
= {C
1
, C
2
, C
3
}, unde:
C
1
= ( P(x) v ( P(f(c)) v Q(y)
C
2
= P(y)
C
3
= ( P(g(b, x)) v ( Q(b),
180 Cristian Masalagiu
care la rndul lor se pot scrie ca mulimi de literali din LP1. Putem
trece astfel direct la Pasul 2 al Semialgoritmului lui Gilmore, adic la
aflarea mulimii (listei) E(F). O metod general amintit deja se
bazeaz nti pe enumerarea lui D(F), termii de baz fiind ordonai
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).
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), ... ,
, g(b, b), g(b, c), g(c, b), g(c,c), g(b, f(b)), ... ,
, g(b, g(b, b)), ... }
E(C
1
) = {(C
1
)[x/t
1
][y/t
2
] | t
1
, t
2
e D(F)} = {( P(b) v ( P(f(c)) v Q(b),
( P(b) v ( P(f(c)) v Q(c), ( P(c) v ( P(f(c)) v Q(b),
( P(c) v ( P(f(c)) v Q(c), ( P(b) v ( P(f(c)) v Q(f(b)), ... } =
{{( P(b), ( P(f(c)), Q(b)}, {( P(b), ( P(f(c)), Q(b)},
{( P(b), ( P(f(c)), Q(b)}, ... }
E(C
2
) = {{P(b)}, {P(c)}, {P(f(b))}, {P(f(f(b)))}, {P(f
(n)
(b))}, }
E(C
3
) = {( P(g(b, b)) v ( Q(b), ( P(g(b, c)) v ( Q(b),
( P(g(b, f(b))) v ( Q(b), ( P(g(b, f(f(b)))) v ( Q(b),
( P(g(b, f
(n)
(b))) v ( 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)))) v ( Q(b)}, {(P(g(b, f
(n)
(b))), ( Q(b)}, ... }
E(F) = E(C
1
) U E(C
2
) U E(C
3
).
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
Fundamentele logice ale Informaticii 181
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
F este nesatisfiabil) s gsim o demonstraie prin rezoluie a
clauzei vide pornind cu o submulime (finit) de clauze ale lui
E(F). Mai nti gsim:
Cele dou clauze care intervin provin din C
3
(prin substituia [x/c]) i
respectiv C
2
(prin substituia [y/g(b, c)]). Conform definiiei, termii
respectivi sunt elemente din D(F). Acum continum cu:
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 C
1
(substituia fiind [x/f(c)][y/b]). Pentru a doua
clauz, ea este C
2
, cu substituia [y/f(c)]. n final, din {(Q(b)} i {Q(b)}
obinem .
{( P(g(b, c)), ( Q(b)} {P(g(b, c))}
( P(g(b, c)) P(g(b, c))
{( Q(b)}
{( P(f(c), ( P(f(c)), Q(b)} {P(f(c)}
(P(f(c) P(f(c)
{Q(b)}
182 Cristian Masalagiu
Bazndu-ne pe exemplul anterior, putem enuna explicit
rezultatul:
Teorema 3.16 (a rezoluiei de baz). Fie F e LP1 i E(F) extensia
Herbrand generalizat a unei formule F, slab echivalente cu F i aflat
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
innd cont de legtura care exist n LP ntre Res*(F) i demonstraiile
prin rezoluie.
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:
Fundamentele logice ale Informaticii 183
Conchidem c aspectul LP1 este urmtorul (subclasele indicate
fiind nevide i disjuncte):
Formule satisfiabile,
nevalide, avnd doar model
infinit
Formule
valide
Formule satisfiabile,
nevalide, avnd model finit
Formule
nesatisfiabile
Prin urmare, oricte eforturi am depune, ntr-un limbaj suficient de
bogat tot vor exista formule satisfiabile, nevalide i avnd doar model
infinit (numrabil), care nu va putea fi gsit algoritmic, ntr-un timp
finit. Totui, posibilitatea utilizrii unei rezoluii proprii lui LP1, prin
care s se evite mcar scufundarea n LP dac nu i aducerea
formulelor la diferite forme normale, pare a fi o perspectiv benefic.

{( P(x), ( P(f(a)), Q(y)} {P(y)}


{( P(f(a)),Q(b)}
{P(f(a))}
{P(g(b,a))}
{Q(b)} {( Q(b)}
[x/f(a)]
[y/b]
[y/f(a)] [y/g(b,a)] [x/a]
{( P(g(b,x)), ( Q(b)}
{( P(g(b,a)),( Q(b)}
184 Cristian Masalagiu
5. Rezoluie n LP1
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
cu negaiile lor. Eliminrile devin mai complicate, iar esena lor este
(sub)procedura de unificare. A unifica dou sau mai multe formule
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
nsemna numai simpl reducere a unui A cu un (A, ci i o unificare
prealabil a unor literali, prin care se desemneaz cine este A. Nu
vom intra n prea multe detalii, pentru amnunte suplimentare
putndu-se consulta [MAS1], [CAZ1], etc.
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).
Exemplu. Vom relua formula din ultimul exemplu, despre care am
artat deja c este nesatisfiabil utiliznd rezoluia de baz. Vom arta
c ea este nesatisfiabil folosind rezoluia pur din LP1. S precizm i
faptul c vom pstra toate notaiile pe care le-am introdus pentru LP
Fundamentele logice ale Informaticii 185
(cum ar fi Res, Res*, etc.) dei semnificaiile exacte sunt de multe ori
schimbate. Dup cum deja tim, avem:
F = (x)(y)(((P(x) v (P(f(c)) v Q(y)) . P(y) . ((P(g(b, x)) v ( Q(b))),
C
1
= ( P(x) v ( P(f(c)) v Q(y),
C
2
= P(y),
C
3
= ( P(g(b, x)) v ( Q(b),
F
*
= {C
1
, C
2
, C
3
} =
{{( P(x), ( P(f(c)), Q(y)}, {P(y)}, {( P(g(b, x)), ( Q(b)}}.
Considerm pe rnd urmtoarele cupluri de clauze:
- C
1
i C
2
. Din motive tehnice, nu trebuie s existe variabile
comune n clauzele considerate n momentul n care ncercm s
aplicm un pas al rezoluiei pure. De aceea facem mai nti
substituia de redenumire [y/z] n C
2
, gsind C
2
= {P(z)}. Apoi,
prin [x/z], unificm mulimea {(P(x), (P(z)} (acest din urm
literal fiind complementarul celui coninut de C
2
), gsind
Res(C
1
, C
2
) = {( P(f(c)), Q(y)} = C
4
.
- C
4
i C
2
. Facem aceei redenumire n C
2
i lucrm tot cu C
2
.
Aplicnd [z/f(c)], vom unifica mulimea {( P(f(c)), ( P(z)},
gsind Res(C
4
, C
2
) = {Q(y)} = C
5
.
- C
3
i C
2
. Nu mai avem nevoie de redenumiri, putnd unifica
{( P(g(b, x)), P(y)}, prin [y/g(b, x)]. Gsim Res(C
3
, C
2
) =
{( Q(b))}= C
6
.
- C
5
i C
6
. Nu avem nevoie de redenumiri, unificm
{Q(y), ( Q(b)} prin [y/b] i obinem n final Res(C
5
, C
6
) = .
186 Cristian Masalagiu
Astfel, am gsit o respingere utiliznd rezoluia pur, adic
demonstraia: C
1
, C
2
, C
4
, C
5
, C
3
, C
6
, .
Dei multe dintre rezultatele corespunztoare pentru LP nu sunt
adevrate n cazul LP1 (dac nlocuim rezoluia LP, sau rezoluia de
baz pentru LP1 cu rezoluia pur), Teorema rezoluiei (pure) are un
enun similar cu Teorema rezoluiei pentru LP i n demonstraia
acesteia se folosete n mod esenial Teorema rezoluiei de baz. n
acest mod, gsirea unei respingeri de tipul anterior este suficient
pentru a trage concluzia c formula n cauz este nesatisfiabil.
Nu putem ncheia acest capitol fr a sublinia nc o dat faptul
c situaia n LP1
=
este i mai neplcut, cel puin din punct de
vedere teoretic. Se tie astfel c, dac limbajul iniial este suficient de
bogat, problema SAT1 pentru LP1
=
este chiar nedecidabil total,
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
Teorema 3.17. Fie F e LP1, satisfiabil, care admite un model finit
S = <U
S
, I
S
> i s presupunem c | U
S
| = n e N*. Atunci, pentru
fiecare m > n, exist un model S
m
pentru F, cu cardinalul universului
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 e LP1, astfel
nct pentru fiecare model S = <U
S
, I
S
> al lui F avem | U
S
| > 3.
Teorema 3.19. Exist o formul satisfiabil F e LP1
=
, astfel nct
pentru fiecare model S = <U
S
, I
S
> al lui F avem | U
S
| s 2.
Inconvenientul practic al diferenei dintre LP1 i LP1
=
poate fi
reparat parial (dup cum am mai precizat, exemplificnd chiar acest
lucru n Capitolul 5) prin ascunderea simbolului = ntr-un simbol
predicativ de aritate superioar.
6. Recapitulare i Index
Dei teoria este foarte dezamgitoare n privina rezultatelor
pozitive (chiar dac ne referim doar la calculul propoziional, unde
decidabilitatea SAT este atenuat de netratabilitate), necesitatea
exprimrii simple a situaiilor reale a condus la acceptarea introducerii
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
188 Cristian Masalagiu
vedere formal rezultatele vor fi i mai descurajante. Exist ns cteva
argumente solide care fac ca utilizarea logicii s constituie ntr-
adevr o modalitate interesant de a interpreta programarea (vom
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
necesitate de limbaj), despre forme normale i despre posibiliti
efective de a testa satisfiabilitatea unei formule (de natur sintactic
sau semantic). Problema SAT1 pentru LP1
=
este nedecidabil, iar
pentru LP1 este semidecidabil. Utilizarea rezoluiei de baz ne arat o
legtur mai profund ntre LP1 i LP. Posibilitatea folosirii unui tip
specific de rezoluie - rezoluia pur - pentru LP1, a unor clase
particulare de formule (cum ar fi clasa formulelor Horn), adaptarea
strategiilor i restriciilor rezoluiei pentru cazul prezenei
variabilelor, scufundarea realitii n alte tipuri de logici, rmn
alternative viabile n programarea logic.
Pentru Index, vom aminti:
Fundamentele logice ale Informaticii 189
calculul cu predicate de ordinul I fr egalitate, 122
constant funcional, 123
simbol funcional de aritate i, 123
variabil predicativ, 123
simbol predicativ de aritate i, 123
variabil (funcional), 123
cuantificator (cuantor) existenial (universal), 123
termi (funcionali), 125
formule atomice, 125
formule (subformule, arbori), 125
apariii libere i legate ale variabilelor, 129
free(F), var(F), leg(F), restvar(F), 129
formule nchise, 130
nchiderea universal (existenial) a unei formule, 130
matricea unei formule, 130
substituii, substituii elementare, substituii permise, 130
substituii normalizate, substituia vid, substituii echivalente, 131
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
190 Cristian Masalagiu
formul rectificat, 158
form normal prenex, 159
form normal prenex rectificat, 160
form normal Skolem, 161
form normal Skolem clauzal, 161
extensie Herbrand, extensie Herbrand generalizat, 171
rezoluie de baz (procedura lui Gilmore), 174
unificare, 181
rezoluie pur, 181
7. Exerciii
1. Definii constructiv free(F), F e LP1.
2. Determinai subf(F) pentru
F = (x)(((P(x, g(a)) . Q(z)) v R(u, f(v)))).
3. Rezolvai Exerciiul 3.1.
4. Rezolvai Exerciiul 3.2.
5. S se aplice substituia: s = [y/h(z)][z/h(x)][x/g(f(y))] formulei
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 e LP1 care s conin un simbol predicativ
P e P2 i care s exprime faptul c P este o relaie antisimetric.
Fundamentele logice ale Informaticii 191
9. Gsii o formul F e LP1
=
care s conin un simbol predicativ
P e 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 = <U
S
, I
S
> date prin:
- U
S
= N, P
S
= {<m, n> | m, n e N, m < n}.
- U
S
= N, P
S
= {< m, m+1> | m e N}.
- U
S
= 2
N
, P
S
= {<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) v ((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)).
Capitolul 4
Teorii logice i sisteme deductive
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,
194 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
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 e 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
teoreme de corectitudine i completitudine, adic teoreme de tipul: Tot
ceea ce este adevrat este demonstrabil (completitudine) i tot ceea
ce este demonstrabil este adevrat (corectitudine). Mai precis, se
poate porni cu o teorie logic i se poate ncerca axiomatizarea ei
(adic gsirea unui sistem deductiv prin care se genereaz, sintactic,
aceeai clas de formule), cu scopul ca mulimea teoremelor s coincid
cu mulimea formulelor adevrate (cele care formeaz teoria). Se
poate i invers, adic putem pleca cu un sistem deductiv pentru care
putem afla imediat clasa teoremelor (clasa formulelor generate prin
raionamente specifice regulilor sale de inferen) i punndu-se apoi
problema ca aceast clas s formeze o teorie logic (sau mcar o
parte a unei asemenea teorii), constituit din formule adevrate
(valide, satisfiabile, nesatisfiabile, etc.).
n realitate lucrurile nu stau chiar aa de simplu cum au fost
prezentate mai sus (din cauza lipsei de spaiu tratarea noastr fiind
departe de a fi exhaustiv). Astfel, subiectul general al teoriilor logice
este foarte vast, vorbindu-se de teorii degenerate, de teorii
inconsistente, de teorii recursive i/sau recursiv enemerabile, etc. Mai
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
196 Cristian Masalagiu
de inferen pentru prezentarea unor teorii logice poate fi imposibil,
existnd i un numr impresionant de tipuri generale de asemenea
sisteme. De asemenea, forma n care sunt exprimate teoremele de
corectitudine i completitudine poate depinde n mod esenial de
sistemul deductiv sau de teoria aleas (ba uneori chiar i de alfabetul
peste care este construit mulimea de formule). S reinem faptul
important c sistemele deductive pot fi utilizate pentru ele nsele, ca
mecanisme formale (simple alternative pentru definiiile constructive).
Cu ajutorul lor se pot astfel defini sintactic mulimi care nu au
ntotdeauna o caracterizare semantic legat de o noiune precis de
adevr. Paragrafele urmtoare, n care detaliem cteva dintre
aspectele menionate, adopt n mare linia sugerat de [CAZ1],
concepia general fiind ns original. De altfel, definiiile noiunilor
de sistem de demonstraie i teorie logic difer uor fa de cele
ntlnite n literatura de specialitate, datorit att bagajului insuficient
de cunotine presupus a fi fost acumulat anterior parcurgerii acestui
material de ctre cititor, ct i datorit nevoii autorului de
sistematizare i generalizare a coninutului.
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
Fundamentele logice ale Informaticii 197
formulele clasice. Mulimea FORM va fi precizat n mod explicit
doar atunci cnd va fi necesar, singura cerin permanent fiind ca
aceasta s fie definit constructiv.
Definiia 4.1 (sistem deductiv). Se numete sistem deductiv (de
demonstraie, inferenial, axiomatic) n FORM un cuplu
SD = <A, R> unde A _ FORM este o mulime de axiome iar
R _ FORM
+
C o mulime de reguli de inferen (de deducie, de
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 e R, are astfel
aspectul r = < < G
1
, G
2
, , G
n
, G>, c>, unde n e N,
G
1
, G
2
, , G
n
e FORM i c e C.. G
1
, G
2
, , G
n
sunt ipotezele
(premizele) regulii, G reprezint concluzia (consecina) iar c
desemneaz cazurile (modalitile) n care regula poate fi aplicat.
Vom scrie chiar r = < < {G
1
, G
2
, , G
n
}, G>, c> deoarece ordinea
ipotezelor nu este esenial. Mulimea C nu a fost specificat formal
(putem spune totui c elementele sale sunt metapredicate) din cauza
generalitii ei i pentru a nu complica inutil expunerea. Similar cu
situaia rezoluiei, regulile vor fi folosite pentru a construi demonstraii
n pai succesivi, la un pas aplicndu-se o regul. Exist ns
posibilitatea ca nafara restriciilor sintactice locale, date de forma
formulelor implicate (ceea ce face ca regulile s fie, de obicei, scheme
198 Cristian Masalagiu
de reguli) s se interzic aplicarea regulii (schemei) pe considerente
semantice globale (forma demonstraiei, apariia n demonstraie a
unei formule nedorite la acel pas, pstrarea completitudinii unei teorii,
etc.). Astfel nct dac c este ataat unei reguli r (atenie, c poate lipsi,
mai exact ea poate fi condiia adevrat indiferent de context)
nseamn c n orice demonstraie, r va putea fi aplicat la un moment
dat doar dac c este adevrat la momentul respectiv. O regul
r = < < {G
1
, G
2
, , G
n
}, G>, c>, va fi scris i ca:
1 2 n
G , G , , G
,
G
.
c
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 F
m
, pornind cu F
1
) n SD o
list de metaformule D = F
1
, F
2
, , F
m
astfel nct pentru fiecare
i e [m], fie F
i
e A, fie F
i
este obinut din
1
j
F ,
2
j
F , ... ,
k
j
F folosind o
regul r = < < {
1
j
F ,
2
j
F , ,
k
j
F }, F
i
>, c> e R, unde j
1
, j
2
, ... , j
k
< i.
Prin urmare, fiecare element al listei D este fie o axiom, fie
este concluzia unei reguli de inferen ale crei ipoteze sunt elemente
anterioare din list. Analogia cu cele deja fixate n Capitolul 2 despre
demonstraiile prin rezoluie (Definiia 2.10 este un caz particular al
Fundamentele logice ale Informaticii 199
definiiei precedente) este clar i aceasta poate fi continuat prin
definirea numrului de pai ai unei demonstraii, reprezentarea unei
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 F
m
, n care frunzele (Baza) sunt axiome i fiecare nod nou
(concluzie) se obine din noduri vechi (ipoteze), n timpul aplicrii
Pasului inductiv, folosindu-se cte o regul de inferen posibil de a fi
aplicat (conform c). Este posibil ca pentru anumite sisteme (a se vedea
sistemul SD0, 3 din acest capitol), care nu au axiome sau pentru care
condiiile c o impun, arborele s aib o definiie direct mai simpl,
sau, alternativ, noiunea de consecin sintactic s fie definit cu
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 e FORM | exist o demonstraie D pentru F n SD }.
Este imediat faptul c i Th(SD) admite o definiie constructiv
(similar cu Teorema 2.11, din cazul rezoluiei, se arat c Th(SD)
coincide cu mulimea dat mai jos):
Baza. A _ Th(SD).
200 Cristian Masalagiu
Pas constructiv. Dac r = < < {G
1
, G
2
, , G
n
}, G>, c> R i
G
1
, G
2
, , G
n
Th(SD) atunci G Th(SD).
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
motive tehnice, legate n general de demonstraiile teoremelor de
corectitudine i completitudine, este posibil ca n anumite situaii s
lucrm, pe lng axiome, cu o mulime suplimentar de metaformule,
notat I, i s vorbim despre demonstraii folosind I (notat I
SD
F, n
cazul n care este vorba despre o formul F; se mai spune c F este
consecin sintactic din I sau teorem n ipotezele I). Practic, dei
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 c exemplele care urmeaz sunt suficient de
individualizate, dei au substrat comun, le vom numerota n acelai
mod ca pe definiii (de altfel, unele vor fi reluate ulterior).
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
sisteme de demonstraie dedicate, cte unul pentru fiecare formul F
aflat n FNC i reprezentat ca o mulime finit de clauze (conform
teoremei de compactitate, F poate fi i infinit). Sistemele dedicate pot
fi caracterizate de faptul c nu genereaz, n general, clasa formulelor
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:
- Clasa metaformulelor: FORM = LP. Formulele care ne
intereseaz sunt ns doar clauzele din LP. Notm mulimea
tuturor clauzelor din LP cu Cl .
- Mulimea de axiome: A
F
= . 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.
- Mulimea de reguli de inferen:
R
F
= {<<{C
1
, C
2
}, Res(C
1
, C
2
)>, true> | C
1
, C
2
e Cl i
C
1
C
2
i exist mcar un literal L astfel nct
L e C
1
i L e C
2
}.
n acest moment, sistemul SD
F
= <A
F
, R
F
> este pe deplin precizat (true
denot condiia mereu adevrat, adic regulile, dac respect cerinele
202 Cristian Masalagiu
sintactice fixate i anume faptul c sunt clauze din LP, pot fi aplicate
fr restricii pe parcursul demonstraiilor), exceptnd faptul deja
amintit c vom pune (renunm la indici i la faptul c ar trebui folosit
notaia SD n loc de SD)
Th(SD) = {G e Cl | F
SD
G },
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).
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 C
1
, C
2
Cl, dac C
1
C
2
i exist mcar un
literal L astfel nct L C
1
i L C
2
, atunci:
r: .
) C , Res(C
C , C
2 1
2 1
n acest mod, spunem c pentru descrierea regulilor am folosit o
singur schem.
Exerciiul 4.1. Artai c metoda rezoluiei de baz pentru LP1
poate fi privit ca sistem de demonstraie.
Fundamentele logice ale Informaticii 203
Exemplul 4.2 (sistemul SD3). Este un sistem deductiv standard, finit
specificat, care genereaz, dup cum vom vedea (Teorema 4.1),
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 (A
SD3
). Condiiile sintactice sunt: F, G, H e LP1,
x e X, t e 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):
1. F (G F).
2. (F (G H)) ((F G) (F H)).
3. (( F ( G) (( ( F G) F).
4. (x)(F G) (F (x)G).
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 v B va
reprezenta ( A B, etc.).
- Reguli de inferen (R
SD3
). Exist doar restricii de natur
sintactic (lipsind condiiile de aplicabilitate):
F, G e LP1, x e X sunt oarecare, dar n 2., x trebuie s nu apar
liber n F. Prima schem de regul este deja amintit, i anume
204 Cristian Masalagiu
modus ponens (pe scurt, (MP)) iar a doua este aa-numita
regul a generalizrii (RG).
1I.
G
F G, F
.
2I.
F (
F
) x
.
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
este admis). Astfel, folosim nti instana axiomei (schemei) 1., obinut
dac lum F = A i G = (A A). Primul element al listei care
reprezint demonstraia va fi: E
1
= A ((A A) A). Folosim acum
axioma 2., punnd F = A, G = (A A) i H = A. Obinem:
E
2
= (A ((A A) A)) ((A (A A)) (A A)).
Aplicm acum (MP) pentru E
2
= F G i E
1
= F (se observ imediat
c G = (A (A A)) (A A)) i gsim:
E
3
= (A (A A)) (A A).
Punem acum F = A i G = A, n axioma 1., rezultnd:
E
4
= A (A A).
n sfrit, putem folosi (MP) pentru E
3
i E
4
(lund F = A (A A)
i G = (A A)), pentru a obine ceea ce doream, adic:
E
5
= T = (A A).
Prin urmare, am gsit n SD3 demonstraia D : E
1
, E
2
, E
3
, E
4
, E
5
= T i
putem spune c (A A) e Th(SD3) sau c T este consecin sintactic
din mulimea vid de formule suplimentare. n plus, aceasta este
Fundamentele logice ale Informaticii 205
evident o formul valid. Cum i T este de fapt o schem, rezult i c
(( A ( A) este teorem, etc.
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 G G F F (G F)
0 0 1 1
0 1 0 1
1 0 1 1
1 1 1 1
II. Se arat c regulile de inferen sunt corecte (termenul
corespunztor n englez este sound, adic sntos). Acest lucru
nseamn: presupunem c ipotezele G
1
, G
2
, ... G
k
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
formulele folosite n axiome sunt n toate cazurile formule valide).
Pentru aceasta este suficient s artm c G
1
G
2
... G
k
G este
valid. De exemplu, (MP) este corect, deoarece avem:
206 Cristian Masalagiu
F G F G (F G) . F ((F G) . F) G
0 0 1 0 1
0 1 1 0 1
1 0 0 0 1
1 1 1 1 1
Concluzia c teoremele sunt formule valide rezult imediat din
definiia constructiv a lui Th(SD3) (formal, este vorba de o
demonstraie prin inducie structural, de altfel foarte simpl).
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-
un sistem deductiv, dac nu exist nici o metaformul F astfel nct s
avem att J F ct i J F (J F noteaz faptul c nu este adevrat c
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
important ca un sistem s conin ct mai puine axiome i reguli de
inferen, dei acest lucru s-ar putea s conduc la existena unor
demonstraii mai lungi i mai alambicate. nafara sensului strict de
minimalitate (lucru care depinde i de alfabetul peste care este
construit FORM), dintr-un sistem dat se pot elimina acele axiome care
sunt consecine semantice din altele (n cazul considerrii unei noiuni
suport de adevr) precum i aa- numitele reguli de inferen derivate.
Astfel, considernd orice prefix al oricrei demonstraii (privit textual)
D dintr-un sistem SD, acesta poate fi considerat ca o nou regul de
inferen (derivat din cele iniiale): concluzia noii reguli este ultima
formul din demonstraia respectiv, iar ipotezele sunt reprezentate de
restul formulelor care apar. Eliminrile de reguli derivate se aprob
doar dac se menine echivalena din sistemul iniial i cel rezultat
(dup efectuarea eliminrilor). Dou sisteme SD i SD1 sunt
echivalente dac pentru fiecare mulime de metaformule J i fiecare
metaformul F avem: J
SD
F dac i numai dac J
SD1
F. Nu vom
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
208 Cristian Masalagiu
considerente legate de programarea logic. Astfel, exist numeroase
lumi (pri ale realitii, colecie de cunotine, etc.) care sunt cunoscute
pur i simplu, dar fiind foarte complexe este greu de spus dac anumite
cunotine nou asimilate fac parte din aceeai lume, sau chiar dac
anumite cunotine vechi nu sunt cumva contradictorii. Dorind s ne
meninem n cadrul general folosit pn n prezent, introducerea unei
noiuni de adevr (deocamdat, n sens clasic, adic binar, etc.) n
legtur cu o metaformul este acum obligatorie. S presupunem c
orice clas de metaformule FORM are ataat i o clas de structuri
admisibile de adevr, notat Str, o structur fiind o funcie
S : FORM B. Dac FORM admite o definiie structural, aa cum
de altfel am i convenit de la bun nceput (prin Baza se plaseaz n
FORM metaformulele atomice; cu ajutorul unor operatori, cum ar fi
conectorii, cuantorii, etc., se introduc metaformule noi folosindu-se
metaformule vechi, prin Pasul constructiv), atunci admitem i c
fiecare S este unica extensie homomorf a unei structuri definite
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
cunoatem, nu exist metode semantice efective (algoritmice)
convenabile pentru a testa dac o mulime dat de metaformule este sau
nu nchis la consecin semantic (sau dac o anumit metaformul
este satisfiabil sau valid). Alternativa este de a folosi metode
sintactice, care au avantajul c pot fi uor automatizate. n cazul de fa,
se pune problema axiomatizrii teoriilor logice, cu ajutorul sistemelor
de demonstraie. Acest lucru nseamn c avnd dat o teorie
TE _ FORM, trebuie s gsim o submulime A = A U I TE, de
axiome i/sau ipoteze suplimentare, precum i o mulime de
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 e 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
noastr, trebuie s mai gsim i o mulime de reguli de inferen R
astfel nct s avem Cs(A) = Th(SD) (am notat cu Cs(A) mulimea
210 Cristian Masalagiu
tuturor consecinelor semantice din A, n raport cu noiunea de adevr
adoptat, i cu SD sistemul compus din A i R). Dup cum am mai
amintit, putem lua n considerare i situaia invers, n care avem dat un
sistem SD = <A, R> i dorim s vedem dac Th(SD ) este ntr-
adevr o teorie logic, sau, mai mult, dac Cs(A ) = Th(SD ).
Definiia 4.5. Un sistem de demonstraie SD = <A, R> se numete
corect i complet pentru o teorie TE dac TE = Th(SD ) = Cs(A ) i
A _ TE. O teorie TE este axiomatizabil dac exist un sistem
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
semidecidabile, etc.). Importante sunt teoriile nedegenerate. O teorie
logic se numete degenerat dac coincide cu mulimea vid sau
Fundamentele logice ale Informaticii 211
coincide cu ntreaga clasa de metaformule n care se lucreaz, FORM
(de exemplu, dac teoria conine o contradicie ea este degenerat;
teoriile inconsistente sunt de asemenea degenerate). Nici axiomatizrile
banale nu sunt interesante (este clar c, la modul general, toate
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.
TEOREM DE CORECTITUDINE I COMPLETITUDINE. Fie
o clas de metaformule FORM, o clas de structuri admisibile Str
pentru FORM, un sistem deductiv SD = <A, R> n FORM, unde
A = A U I (A fiind alctuit din formule valide i I din formule
satisfiabile) i o teorie logic TE _ FORM, astfel nct TE = Cs(A ).
Atunci Th(SD ) = Cs(A ).
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
ntlnite:
- Teoria TE admite un sistem deductiv corect i complet.
- n condiiile precizate, avem, pentru fiecare metaformul
Fe FORM: I
SD
F dac i numai dac I F.
- Teoria TE este (eventual, finit) axiomatizabil.
212 Cristian Masalagiu
n cazul n care este vorba de o teorie format doar din formule valide
(atunci va lipsi I), teorema capt forma simplificat:
- Pentru fiecare Fe FORM, avem:
SD
F dac i numai dac F.
n cele de mai sus am folosit notaia
SD
F pentru faptul c FeTh(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
de vedere practic, teoriile finit axiomatizabile sunt cele mai utile.
Nu vom intra n detalii nici n privina numeroaselor rezultate
(importante i interesante) care pot fi demonstrate n acest moment. Se
poate consulta [CAZ1] pentru completri, iar noi ne limitm la a
prezenta fr demonstraie (de fapt, metateorema este sigur adevrat n
cazul LP1 i sistemului SD0):
Teorema deduciei (pe scurt, TD). Pentru fiecare A, B eFORM i
fiecare I _ FORM, dac I, A B atunci I A B.
Exemplul 4.2 (reluat). Avem FORM = LP1, Str este clasa fixat a
structurilor (conform Capitolului 3), TE = Val(LP1) (clasa formulelor
valide din LP1), SD = SD3, I _ LP1 o mulime oarecare de formule
nchise, satisfiabile i F e LP1 o formul oarecare. Atunci:
Fundamentele logice ale Informaticii 213
Teorema 4.1 (teorema de completitudine a lui K. Gdel,
1930). I
SD3
F dac i numai dac I F.
Demonstraie. Corectitudinea (I
SD3
F implic I F), a fost
deja demonstrat. Completitudinea (I F implic I
SD3
F)
este mult prea laborioas pentru a o putea reda n lucrarea de
fa. De fapt ([CAZ1]), ea se demonstrez indirect, folosind
sistemul echivalent SD0, al deduciei naturale (conform
Exemplului 4.4). Faptul c I este satisfiabil nu este esenial,
deoarece dac I este nesatisfiabil atunci (meta)teorema este
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
214 Cristian Masalagiu
rndul ei o mulime finit de literali), i putem asocia mulimea Res*(F)
care desigur nu este o teorie logic n acest caz. De altfel, nici F nu este
(ntotdeauna) o mulime satisfiabil (de ipoteze suplimentare). n plus,
nici nu ne intereseaz adevrul ci neadevrul. Metoda rezoluiei
este de altfel o exemplificare perfect a unei situaii despre care am
amintit deja: sistemul deductiv (aici, SD
F
) este folosit ca definiie
constructiv, pentru generarea unei mulimi (Res*(F)), care nu este, i
nici nu vrem s fie, o teorie logic. Putem admite c aceast mulime
are totui o caracterizare semantic (n sensul c o submulime a sa, F,
este sau nu satisfiabil). Teorema de corectitudine i completitudine
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
structurile semantice admise pot fi doar anumite mulimi (de exemplu,
cum ar fi cele care constituie o structur de grup mpreun cu o operaie
dat). Structurile admise conin n plus i simboluri cu interpretri
standard, cum ar fi egalitatea, totul fiind similar cu ceea ce am fcut n
cazul trecerii de la LP1 la LP1
=
. Cadrul standard prezetat anterior se
pstreaz, inclusiv enunul teoremei de corectitudine i completitudine
(care, de fapt, este imediat adevrat, n general admindu-se prin
convenie faptul c teoria n cauz este tocmai mulimea toremelor
din sistemul deductiv ales). Sensul noiunilor de formul satisfiabil,
valid, etc., este relativ la clasa restrns de structuri considerat.
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 = <U
S
, I
S
>: U
S
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 SD
TG
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
216 Cristian Masalagiu
incluse printre axiomele logice i c uneori sunt utilizate variante ale
acestora (n funcie de scopul pentru care sunt introduse). Nu toate
axiomele egalitii amintite sunt folosite n mod direct n TG
(asemenea axiome particulare exist i printre axiomele grupului).
- Axiomele logice: Sunt cele ale sistemului SD3 (1. 5.).
- Axiomele egalitii:
6. (x)(x = x).
7. (x)(y)(x = y y = x).
8. (x)(y)(z)(x = y . y = z x = z).
9. (
*
)(x
1
= y
1
. x
2
= y
2
. ... . x
n
= y
n

f(x
1
, x
2
, ... , x
n
) = f(y
1
, y
2
, ... , y
n
)),
pentru fiecare n e N* i fiecare f eFn.
10. (
*
)(x
1
= y
1
. x
2
= y
2
. ... . x
n
= y
n

P(x
1
, x
2
, ... , x
n
) = P(y
1
, y
2
, ... , y
n
)),
pentru fiecare n e N* i fiecare P ePn.
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
Vom reveni cu un exemplu de demonstraie n teoria grupurilor dup ce
vom introduce sistemul SD0, echivalent cu SD3 (Exerciiul 4.5).
Datorit acestui ultim fapt, vom putea folosi i deducia natural n
cazul teoriei grupurilor.
n finalul acestui capitol prezentm alte cteva (tipuri de)
sisteme deductive, avnd o larg utilizare att din punct de vedere
teoretic ct i practic.
3. Clasificarea sistemelor deductive
ncepem cu o trecere n revist a unor posibiliti de clasificare
([CAZ1]) a sistemelor deductive, din care se pot trage concluzii utile cu
privire la calitile i defectele unor asemenea sisteme. Clasificrile
prezentate (care nu sunt singurele acceptate) se refer n principal la
sistemele standard (n sensul descris anterior). Sistemele deductive se
pot astfel mpri:
- n funcie de conectivele logice alese. Exist sisteme boolean
complete sau boolean incomplete. tim c n interpretarea
conectorilor logici prin structuri acetia devin funcii booleene.
Termenul de (in)completitudine se refer la faptul c mulimea
interpretrilor conectorilor alei n alfabetul de baz peste care
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
218 Cristian Masalagiu
conector doar (rezultnd aa-numitul calcul implicaional),
va fi boolean incomplet.
- 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
corecte i complete, conform definiiei noastre. Dup cum am
mai precizat, completitudinea este mai greu de atins
(demonstrat) i de aceea este de multe ori doar adoptat prin
convenie. Corectitudinea este de obicei impus, dei poate avea
i nite forme mai deosebite (vezi sistemele nestandard, cum ar
fi rezoluia).
- n funcie de importana acordat axiomelor sau regulilor de
inferen. Din acest punct de vedere, se poate acorda o atenie
deosebit regulilor (adic modului de raionament, de obinere
de cunotine noi) n dauna axiomelor (cunotinelor primare).
Acest tip de sisteme se numesc Gentzen-Jaskowski. Un
asemenea sistem va fi SD0 (deducia natural), care este
echivalent cu SD3 i va fi prezentat n acest capitol. n cazul n
care balana este inversat (exist mult mai multe axiome
dect reguli de inferen, ca n cazul SD3), sistemele sunt
cunoscute sub numele de sisteme Hilbert.
- Dup clasa FORM aleas. De exemplu (pentru logica clasic),
putem avea sisteme propoziionale sau sisteme predicative.
Fundamentele logice ale Informaticii 219
S considerm un sistem de tip Gentzen, foarte cunoscut n literatura de
specialitate (introdus pentru prima oar de G. Gentzen i S. Jaskowski
n 1934).
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
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,
conform definiiei generale (rdcina fiind rezultatul final).
Caracteristic acestui sistem este faptul c acele condiii c de
aplicabilitate ale regulilor, dac exist, sunt de tipul se anuleaz
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
220 Cristian Masalagiu
confuziilor, aceeai marc se va asocia i nodului care constituie
concluzia regulii care, aplicat, a cauzat anularea. Ipotezele anulate
modific ns clasa de demonstraii acceptate ntr-un asemenea sistem:
avem I
SD0
G (G este consecin sintactic n SD0 utiliznd mulimea
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:
....... ....... ....... ....... ...... ....... .......
......
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 e LP1, fiecare x e X i fiecare t e T. n 5., este necesar ca
B
rdc rdcina
A
2 A
n A
1
ipoteze, anulate
sau neanulate
Fundamentele logice ale Informaticii 221
substituia [x/t] s fie permis pentru A, iar n 6., ca x s nu apar liber
n nici o ipotez neanulat. Schemele 3. i 4. au variante datorit
necesitii de a se prinde comutativitatea conjunciei la nivel sintactic
(ne vom referi la ele ca 3., respectiv 4.). Deoarece substituia [x/x]
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
regula 6. nu are nevoie de nici o restricie sintactic n momentul n
care se lucreaz cu formule nchise. Mnemonicele provin de la
urmtoarele cuvinte: E eliminare; I introducere; N negaie;
C conjuncie.
1. (EN)
A
B B, (
, c: se anuleaz ipoteza A.
2. (IN)
A
B B,
(
(
, c: se anuleaz ipoteza A.
3. (EC)
A
B A.
i
B
B A.
.
4. (IC)
B A
B , A
.
i
A B
B , A
.
.
5. (E)
A[x/t]
A ) x (
.
6. (I)
A ) x (
A

Demonstraia teoremelor urmtoare poate fi gsit n [CAZ1].


222 Cristian Masalagiu
Teorema 4.2. Sistemul SD0 este corect i complet pentru Val (LP1).
Teorema 4.3. Sistemele SD0 i SD3 sunt echivalente, adic pentru
fiecare mulime de formule nchise J _ LP1 i fiecare formul
F e LP1, avem: I
SD0
F dac i numai dac I
SD3
F.
n plus, putem spune c SD0 este un sistem predicativ (de tip
Gentzen, standard), finit specificat i boolean complet. Dac
introducem v, , i - n alfabetul de baz, putem folosi i
urmtoarele reguli derivate:
7. (ED)
B
A B, A ( v
i
A
B B, A ( v
.
8. (ID)
B A
A
v
i
A B
A
v
.
9. (EI)
B
B A A,
.
10. (II)
B A
B

, c: se anuleaz ipoteza A.
11. (EE)
B A
B A

i
A B
B A

.
12. (IE)
B A
A B B, A


.
13. (E)
B
B , x)A (-
, c: se anuleaz ipoteza A din subarborele
avnd rdcina acest B.
Fundamentele logice ale Informaticii 223
14. (I)
x)A (
A[x/t]
-
.
15. (DN)
A
A
( (
i
A
A ( (
.
Analog cu precizrile deja fcute pentru regulile de baz, i schemele
de mai sus sunt valabile pentru fiecare A, B e LP1, fiecare x e X i
fiecare t e T. n 13., condiia sintactic este dat de faptul c x nu
trebuie s aib apariii libere n ipotezele neanulate, diferite de A i
prezente n subarborele avnd rdcina exact acel B pentru care se
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
echivalen; mnemonicul I, de pe a doua poziie din 9., 10., provine de
la implicaie, iar D de la disjuncie (D de pe prima poziie n 15.
provine de la dubl). Reamintim c n regulile avnd variante cea de a
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:
224 Cristian Masalagiu

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
( ( A
( ( A . ( C
( C
( (( A . ( B)
( A . ( B
( A ( B
( ( B . ( C
( C
( ( B
( (( ( A . ( C) ( (( ( B . ( C)
C
1
2 1
2
3
3
(iv)
(vi)
(v)
(ii)
(iii) (i)
3
Fundamentele logice ale Informaticii 225
dou formule sunt denotate prin A, respectiv B). Aceast regul nu are
ataat nici o condiie de aplicare. Apoi, la pasul (ii), se continu
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
aplicat, conform celor stabilite, nodului concluzie al aplicrii regulii
i ... lui A, n loc de A! Acest lucru nu este permis, tehnic vorbind
(de fapt, pentru a fi foarte exaci, suntem n culp i cu utilizarea strict
a parantezelor; soluia aici este simpl, introducndu-se de la bun
nceput i variante cu paranteze pentru toate regulile). Pentru a aplica
corect teoria, ne putem folosi de instane ale regulii derivate (DN)
(deducem ( ( A din A, nainte de efectuarea primului pas (i) i astfel
putem anula n (ii) ceea ce trebuie, adic pe A). Pe parcursul
construciei arborelui se mai ntlnesc asemenea cazuri i devine
evident necesitatea de a avea la dispoziie o bibliotec de reguli
derivate, pentru a lucra simplu cu un asemenea tip de deducie natural.
Acestea trebuie ns demonstrate n prealabil, lucru care nu este chiar
uor (totui, se pare c este mai uor de conceput un mecanism
automat de raionament pentru SD0 dect pentru SD3). O alternativ,
bazat de fapt pe aceeai idee (utilizarea unor reguli derivate), este s
folosim formulele din I sub o form echivalent, de exemplu
I = {A C, B C, A v B}.
226 Cristian Masalagiu
Exerciiul 4.3 ([CAZ1]). Fie A C, B C, A B i C formule
oarecare din LP1 i I _ LP1. S presupunem c I
SD0
A C,
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).
Exemplu (calculul cu secvene, sistemul SD1). Pornim iniial cu LP1,
construit peste un alfabet care conine toi conectorii i cuantificatorii
cunoscui (desigur c unii dintre ei pot fi adoptai prin notaie, dar i
vom folosi fr restricie): (, ., , , , -. Se numete secven orice
formul care are forma: A
1
. A
2
. . A
m
B
1
v B
2
v v B
n
, unde
n, m e N, A
1
, A
2
, , A
m
, B
1
, B
2
, , B
n
e LP1 (m, n pot fi i egali cu
0, dar nu simultan). Prin urmare, vom lucra practic cu clauze, dar
notaia pe care o vom adopta ne conduce la ideea c secvenele sunt de
mai degrab metaformule (alt tip de obiect, oricum mai complex) dect
formulele cu care am fost familiarizai n capitolele anterioare. Astfel,
vom scrie o secven sub forma (desigur c n cele ce urmeaz nu
are sensul de metaimplicaie):
A
1
, A
2
, , A
m
B
1
, B
2
, , B
n
.
Mai mult, vom considera cei doi membri ai relaiei de mai sus ca fiind
mulimi (atunci cnd ordinea elementelor va fi esenial, vom specifica
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,
Fundamentele logice ale Informaticii 227
elementul A din U trebuie pus n eviden. Vom extinde notaia la
submulimi oarecare, adic vom putea scrie (de exemplu) V, W n loc de
V U W i V, A, B n loc de V U {A} U {B}. Astfel, punem
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 e FORM i pentru fiecare A e LP1:
U, A V, A.
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 e FORM, fiecare A, B e LP1, fiecare
x e X i fiecare t e 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/t
1
] V;
U, (A)[x/t
2
] V; ... , adic se iau n considerare toate elementele t din
228 Cristian Masalagiu
T, pentru care [x/t] este permis pentru A; rolul lui A n (RT) este
similar, instanele unei scheme referindu-se la celelalte elemente avnd
statutul de a fi oarecare.
1. ( )
V U
V U
(

A ,
A ,
.
2. ( )
V U
V U
.

B A ,
B A, ,
.
3. ( )
A ,
A ,
(

V U
V U
.
4. ( )
B A ,
, A; ,
.

V U
B V U V U
.
5. ( )
V x U
V U
A

) ( ,
(A)[x/t] ,
.
6. ()
A

) ( ,
,
x V U
A V U
.
7. (RT)
V U
A V U V U

, ; A ,
.
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 G
1
, G
2
, ... , G
n
I astfel nct
Fundamentele logice ale Informaticii 229
G
1
, G
2
, ... , G
n
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:
Teorema 4.4. Fie orice F e 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
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
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 e FORM, A, B e LP1, x e X, t e 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.,
substituia [x/t] trebuie s fie permis pentru A).
Reguli de inferen derivate pentru SD1:
8. ( )
V U
V U U
v

B A ,
B , V; A ,
.
9. ()
B A ,
B A, ,
v

V U
V U
.
10. ()
V U
V U V U


B A ,
B , A; ,
.
11. ()
B A ,
B , A ,

V U
V U
.
12. ()
V U
V U V U


B A ,
B A, , ; B A, ,
.
13. ()
B A ,
A , B , ; B , A ,


V U
V U V U
.
14. ( )
( )
,
, x
U A V
U A V

-
.
Fundamentele logice ale Informaticii 231
15. ()
V U
V U
x)A, (
A[x/t] ,
-

.
Exemplu. Regula () se poate obine pe baza deduciei
(metaformulele U, B V, B i U, A V, A sunt axiome):

Exerciiul 4. 4 ([CAZ1]). Artai c formula


(A C) (A B) (C D) (B D) e LP1
este demonstrabil n SD1.
Exerciiul 4.5 ([CAZ1]). Se consider teoria grupurilor TG i
sistemul deductiv asociat, SD
TG
. Fie u, v T, termi oarecare. S se
arate c u = v v = u este teorem n TG, folosind deducia
natural.
V A B B A U , ,
V A B B A U . ) ( ) ( ,
V B A U , , B V B U , , A V A U , , B A V U , ,
V B B A U , , A V B A U , ,
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
care negaia poate fi plasat doar imediat n faa unei formule
atomice. Pentru acesta, se poate demonstra mai uor posibilitatea
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
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,
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
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
mulime dat de formule i chiar problema de decizie mai simpl Este
formula F o consecin semantic din mulimea G ?, sunt de cele mai
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
fiind, n cazurile nebanale, exponeniali ca timp de execuie, urmeaz c
problema este n fapt netratabil). Abordrile sintactice ale rezolvrii
problemelor au cel puin dou avantaje deloc de neglijat. Astfel, se pot
selecta din start subclase de formule interesante, cu o form
convenabil, pentru care rezolvarea problemei este mai simpl. Apoi,
algoritmii generali bazai pe sintax (dei nu neaprat mai eficieni),
sunt mai flexibili, mai uor de tranformat i adaptat, mai uor de extins
i de a fi aplicai i n alte situaii/contexte. Sistemele deductive
formalizeaz cele de mai sus, apelnd la concepte cum ar fi axiom,
regul de inferen, teorem, consecin sintactic. Legtura dintre
cele dou noiuni generale se stabilete n mod concret prin teoreme de
corectitudine i completitudine. Chiar dac uneori suntem nevoii s
renunm la demonstrarea completitudinii sau chiar la ataarea unui
concept de adevr formulelor, sistemele de demonstraie pot fi
importante prin ele nsele. Astfel, nafara exemplelor considerate,
standard sau nestandard (SD0, SD1, SD3, etc.), mai poate fi amintit i
aa-numitul calcul cu tabele ([OHL]), folositor nafara contextului
teoriilor logice.
Teoriile logice i sistemele de demonstraie constituie prin urmare
cadrul formal prin care pot fi studiate ntr-un mod foarte precis pri ale
realitii prin prisma oricrei tiine (vezi de exemplu teoriile
matematice formale), conceptele menionate n primele capitole
nemaifiind ambigue. Pentru logicieni subiectul este inepuizabil i
foarte atrgtor, obinndu-se i astzi noi rezultate surprinztoare.
Informaticii i revine sarcina de ine pasul cu noile descoperiri n
234 Cristian Masalagiu
domeniu, de a adapta algoritmii existeni i conceptele legate de
programarea logic, urmrindu-se eficientizarea acesteia i apropierea
de idealurile Inteligenei artificiale.
Atenionm asupra faptului c termenii pe care i-am selectat n
Indexul care urmeaz este posibil s nu fie chiar cei mai importani, iar
paginile indicate s-ar putea s nu fie chiar primele n care apare
cuvntul respectiv (aceasta datorit generalitii subiectului):
teorie logic, 191
sistem deductiv (de demonstraie), 191
axiom, 191
regul de inferen (reguli corecte sau sound), 191
demonstraie (consecin sintactic; deducie; raionament), 191
metaformul, 193
sistem deductiv standard, 200
regul de inferen derivat, 204
axiomatizarea unei teorii logice, 207
teorie logic nedegenerat, consistent, finit axiomatizabil, 207
teorem de corectitudine i completitudine, 208
sistem deductiv corect i complet, 208
sistem deductiv necontradictoriu (consistent), 210
sistem deductiv independent i minimal, 210
sistem deductiv boolean complet, 214-215
sistem deductiv propoziional sau predicativ, 214-215
sistem deductiv de tip Hilbert, 215
Fundamentele logice ale Informaticii 235
sistem deductiv de tip Gentzen, 215
deducie natural, 215
sisteme deductive echivalente, 218
sistem deductiv finit specificat, 219
calculul cu secvene, 223
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.
4. Rezolvai Exerciiul 4.3.
5. Rezolvai Exerciiul 4.4.
6. Rezolvai Exerciiul 4.5.
7. Fie sistemul deductiv SIN1 ([CAZ1]), dat prin axiomele i
regulile de mai jos.
Axiome. Pentru fiecare A, B, C, D e LP, avem:
Ax1. A (B A)
Ax2. (C (A B)) ((C A) (C B))
Ax3. A . B A
Ax4. A . B B
236 Cristian Masalagiu
Ax5. A (B A . B)
Ax6. A A v B
Ax7. B A v B
Ax8. (A D) ((B D) (A v B D))
Ax9. (A B) (A B)
Ax10. (A B) (B A)
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, G
1
, G
2
, ... , G
n
e
LP. n cele de mai jos, F(A
1
, A
2
, ... , A
n
) denot faptul c F este
construit peste (exact) mulimea de variabile propoziionale
{A
1
, A
2
, ... , A
n
}, iar F(G
1
, G
2
, ... , G
n
) denot o formul F n
care fiecare apariie a lui A
1
se n locuiete cu G
1
, fiecare
apariie a lui A
2
, cu G
2
, . a. m. d. , fiecare apariie a lui A
n
, se
nlocuiete cu G
n
, simultan:
(RS)
) G ,..., G , F(G
) A ,..., A , F(A
n 2 1
n 2 1
Acesta este un sistem deductiv propoziional standard, de tip
Hilbert, construit peste LP care are toi conectorii standard.
Sistemul este boolean complet, dar incomplet din punctul de
vedere al Val (LP). Astfel, se poate arta c formule valide
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
observaie suplimentar, s spunem c dac pstrm doar
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.
Capitolul 5
Programare logic
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 e FORM i fiecare
S e Str, obinem S(F) e 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
Fundamentele logice ale Informaticii 239
sintactici pentru rezolvarea SAT, SAT1 sunt mai uor de neles
(pentru calculator, n mod sigur) i de manipulat dect cei bazai pe
semantic; ei sunt tratabili mcar pentru anumite subclase interesante
de formule; chiar n lipsa unor asemenea (semi)algoritmi, se pot
imagina anumite proceduri implementabile, de tip interactiv (dialog n
timp real cu utilizatorul), care pot furniza, dac nu rspunsuri
complete, mcar rspunsuri pariale, sau indicaii utile despre cum (i
n ce situaii) s-ar putea obine un rspuns convenabil. Prin urmare,
tot ceea ce r mne de f cut este s se g seasc asemenea algoritmi,
semialgoritmi, proceduri automate, etc., pentru clase convenabile de
(meta)formule, avnd ataat o noiune corespunztoare de adevr.
Din punctul de vedere al unui utilizator, alternativa propus de
Programarea logic este atrgtoare. Astfel, n loc s se utilizeze
(pentru reprezentarea informaiei i prelucrarea acesteia) un
limbaj de programare clasic (imperativ, orientat obiect, etc.) poate
fi preferat un limbaj creat special pentru reprezentarea de
(meta)formule i n care un (semi)algoritm (sau chiar procedur
interactiv ) pentru rezolvarea SAT(1) i bazat, de exemplu, pe
rezoluie, este implementat direct n compilatorul (interpreterul)
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
Inteligena artificial , la nceputul deceniului al optulea al secolului
trecut, la Universitatea din Marsilia, Frana ([ROU]), cptnd ns
ulterior extensii, transformri i utilizri nebnuite la stadiul iniial.
Este un limbaj declarativ, dedicat reprezent rii i prelucr rii
240 Cristian Masalagiu
relaiilor (predicatelor, afirmaiilor). Esena sa este exprimat prin
paradigma de programare, datorat lui R. Kowalski ([KOW]):
Algoritm = Logic + Control. n sensul celor spuse anterior, prin
Logic se nelege totalitatea cunotinelor de care dispunem n
privina unei lumi (parte a realit ii), cunotine exprimate prin
formule (aparinnd, n general, unui fragment al LP1
=
), iar prin
Control, strategia (algoritmul) prin care se manipuleaz o clas de
asemenea formule, n vederea obinerii unui anumit r spuns
(aceasta implementnd, n general, un anumit tip de rezoluie). n
cele ce urmeaz, vom face doar o scurt introducere n aceast
tematic, bazndu-ne n principal pe [MAS1], [MAS2] (i, desigur,
bibliografia indicat n acea lucrare).
1. Exemple de programe logice pure
innd cont c scopul principal al acestui capitol este doar unul
introductiv pentru un domeniu vast, ne vom baza n principal pe
exemple (cu caracter didactic) i nu pe enumerarea unor concepte sau
rezultate formale. Deoarece este posibil ca exemplele s fie reluate i
dezvoltate, vom proceda din nou la numerotarea lor n secven.
Exemplul 5.1 (lumea lui Adam i Eva). Se cunosc urmtoarele fapte
i afirmaii mai complexe din/despre aceast lume:
Evei i plac merele.
Evei i plac vinurile.
Fundamentele logice ale Informaticii 241
Lui Adam i place orice persoan creia i plac vinurile.
n condiiile de mai sus, am dori s tim dac:
Exist o persoan pe care s o plac Adam?
Desigur c n cazul unui rspuns pozitiv, am dori s tim i care anume
ar fi persoana (persoanele) respectiv (respective).
Primul pas n scrierea unui program de tip PROLOG, pur, este s
formalizm afirmaiile anterioare (inclusiv interogarea) prin formule
din LP1. Pentru aceasta, s identificm mai nti elementele importante
din lumea considerat. Vom distinge astfel:
Obiecte. Eva, mere, vinuri i Adam sunt singurele obiecte care pot fi
identificate ca atare n aceast lume simpl (nu este neaprat nevoie s
facem distincie ntre, de exemplu, lucruri, fiine/vieuitoare,
oameni/persoane, etc.; adic, ntr-un limbaj de specialitate, nu este
nevoie de tipizare). Ele vor interpretate drept (simboluri de) constante
funcionale, adic elemente ale lui F0, pe care le vom nota prin Eva,
Mere, Vinuri, Adam (faptul c ncepem cu litere mari n scrierea
constantelor nu este ntmpltor).
Nume generice pentru obiecte. Avem nevoie de acest lucru deoarece
exist exprimarea Lui Adam i place orice persoan ... . Vom nota
cu X mulimea tuturor acestor nume (care vor fi desigur nume de
variabile) i vom pune, ca i pn acum de altfel, x, y, e X.
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 e P2 (nici aici modalitatea de scriere nu
este ntmpltoare).
Transform ri ntre (mulimi de) obiecte. Acestea s-ar reprezenta prin
simboluri funcionale de aritate mai mare ca 0. n cazul nostru, nu
exist nici o asemenea transformare care s poat fi identificat.
Afirmaii. n acest moment, putem traduce cunotinele existente n
formule. Avem:
G
1
: place(Eva, Mere) traduce faptul Evei i plac merele.
G
2
: place(Eva, Vinuri) traduce faptul Evei i plac vinurile.
A treia fraz iniial exprim ceva puin mai complex despre lumea n
cauz i este natural s ne gndim la o formul compus. Putem
reformula fraza mai nti prin Dac exist cineva cruia i plac
vinurile, atunci de aceea (acela) i place lui Adam(oricine ar fi acel
cineva) i apoi prin Dac lui x i plac vinurile, atunci lui Adam i
place de x, pentru fiecare x e X, adic obinem:
G
3
: (x)(place(x, Vinuri) place(Adam, x)).
Interogarea (ntrebarea). Ea se traduce imediat prin Exist y astfel
nct lui Adam i place de y? (alegerea unui nume diferit de x pentru
Fundamentele logice ale Informaticii 243
variabila corespunztoare nu este ntmpltoare), adic dispunem i de
formula din LP1:
G: (-y)place(Adam, y).
Pentru a efectua i al doilea pas (suntem deja ntr-un cadru formal
cunoscut), s observm c a rspunde la ntrebare nseamn a vedea
dac G este (sau nu) consecin semantic din {G
1
, G
2
, G
3
}, ceea ce,
conform Teoremei 2.3, punctul (iii), este echivalent cu a arta c
F = G
1
. G
2
. G
3
. ( G este contradicie. Desigur c prin transformri
succesive, aducem uor (nici mcar nu este nevoie de skolemizare) pe F
la FNSC i apoi obinem reprezentarea lui F* ca mulime de mulimi de
literali:
F place(Eva, Mere) . place(Eva, Vinuri) .
(x)(( place(x, Vinuri) v place(Adam, x)) . (y)(place(Adam, y)
(y)(x)((place(Adam, y) . place(Eva, Mere) .
place(Eva, Vinuri) . (( place(x, Vinuri) v place(Adam, x))).
F* = ( place(Adam, y) . place(Eva, Mere) . place(Eva, Vinuri) .
(( place(x, Vinuri) v place(Adam, x)),
adic, n scrierea cu mulimi:
F* = {{(place(Adam, y)}, {place(Eva, Mere)},
{place(Eva, Vinuri)},{( place(x, Vinuri), place(Adam, x)}}.
Pentru a simplifica unele raionamente, vom nota:
C
1
= {( place(Adam, y)},
244 Cristian Masalagiu
C
2
= {place(Eva, Mere)},
C
3
= {place(Eva, Vinuri)},
C
4
= {( place(x, Vinuri), place(Adam, x)}.
Al treilea pas const n a gsi o respingere n LP1, pornind cu clauzele
lui F*, folosind rezoluia de baz, adic singura metod cunoscut de
noi pn n prezent. Prin urmare, calculm mai nti D(F) i apoi E(F)
(sau/i E(F)). Neexistnd constante de aritate mai mare ca 1 n F*,
gsim imediat:
D(F) = {Eva, Mere, Vinuri, Adam}.
E(F) = E(C
1
) U E(C
2
) U E(C
3
) U E(C
4
) (nu o explicitm mai mult
deoarece este foarte simpl).
Gsim o demonstraie (scurt) prin rezoluie n LP a clauzei vide,
pornind cu elementele lui E(F), dac notm mai nti cu
'
1
C clauza
obinut din C
1
prin aplicarea substituiei de baz [y/Eva] i cu
'
4
C
clauza obinut din C
4
aplicnd [x/Eva] (att
'
1
C ct i
'
4
C aparin
desigur lui E(F)). Astfel, avem Res(
'
1
C ,
'
4
C ) = {( place(Eva, Vinuri)}
(pe care o notm cu C). n sfrit, Res(C, C
3
) = {}.
Prin urmare, am satisfcut parial cerinele enunate deoarece
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
(obinere ). Practic ns, am avea astfel nevoie de un alt tip de
rezoluie, care, aplicat unei mulimi date de clauze din LP1 s
produc n mod explicit (mcar ca un efect secundar) asemenea
substituii (pe care le vom numi substituii de succes). Deocamdat,
putem totui trage o concluzie privind aspectul general al unui
program, n accepiunea programrii logice (program PROLOG pur).
El conine:
- Fapte (afirmaii simple, modelate prin formule atomice de baz
din LP1), care sunt formule elementare de program.
- Alte formule de program (formule compuse din LP1, mai exact
formule Horn nchise, probabil pozitive).
- O formul de interogare (formul compus din LP1, avnd i
ea o form mai special, negaia ei fiind probabil o formul
Horn nchis, negativ).
Generaliznd, concluzionm c formulele program (s spunem
G
1
, G
2
, ... , G
n
) sunt formule din LP1 aflate n FNSC, clauzele fiind
clauze Horn avnd exact un literal pozitiv (sunt clauze Horn pozitive).
Formula de interogare G (numit i scop), apare tot ca o formul
nchis, ns cuantificat existenial. Dei n exemplul considerat exist
doar un literal (pozitiv), se admite prezena mai multor asemenea
literali, formula scop fiind de fapt o conjuncie de literali pozitivi,
nchis, aflat n FNPR, cuantificat doar existenial. Dup cum am
mai sugerat, programul interogat va fi reprezentat de formula
F = G
1
G
2
... G
n
G (se poate considera i reprezentarea sa ca
mulime de mulimi de literali, F fiind n FNSC i clauzele fiind
246 Cristian Masalagiu
clauze Horn). nainte de a furniza detalii suplimentare, considerm
util prezentarea unui alt exemplu, pentru a vedea c limbajul sugerat
este la fel de puternic ca orice alt limbaj de programare de nivel nalt,
putndu-se efectua n acesta, de exemplu, calcule aritmetice uzuale
(dei, desigur, nu aceasta este utilitatea principal a PROLOG-ului).
Exemplul 5.2 (adunarea n N). S descriem lumea adunrii pe
mulimea numerelor naturale i apoi s calculm 3 + 2 folosind un
program logic interogat. Cazul considerat reprezint deja o parte a unei
realiti avnd o descriere formal, matematic. Astfel, putem porni de
la definiia lui Peano pentru N, adic de la definiia constructiv deja
folosit:
Baza. 0 e N.
Pas constructiv. Dac n e N atunci s(n) e N.
Reamintim c ideea n definiia de mai sus este aceea c obiectul notat
0 este numr natural i dac un obiect numit n este considerat numr
natural atunci i succesorul su, notat s(n) este tot numr natural.
Acum putem da o definiie constructiv a adunrii, ca operaie binar
pe N, bazndu-ne pe reprezentarea a doar dou proprieti ale acesteia
(suficiente pentru a calcula 3 + 2 n cadrul lumii descrise).
Baza: x + 0 = 0, pentru fiecare numr natural notat x.
Pas constructiv: s(x + y) = x + s(y), oricare ar fi numerele naturale
notate x, y.
Fundamentele logice ale Informaticii 247
Ultima definiie spune c adunarea lui 0 la orice numr natural nu are
nici un efect (numrul respectiv fiind lsat neschimbat) i c dac
adunm la numrul x pe succesorul numrului y, se obine acelai lucru
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
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
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
c dac z este suma dintre x i y, atunci succesorul lui z reprezint suma
dintre x i succesorul lui y). Din nou, aceast exprimare este suficient
pentru a ne atinge scopul, care poate fi reformulat n cadrul logic
propus prin ntrebarea: Exist vreun num r natural care s
reprezinte suma dintre numerele 2 i 3 (i, eventual, care este/sunt
acesta/acestea)? S parcurgem cei trei pai descrii n exemplul
anterior, necesari pentru a forma un program logic interogat.
Primul pas.
- Obiecte: 0.
248 Cristian Masalagiu
- Nume generice pentru obiecte (variabile): x, y, z, u, ... e X.
- Relaii ntre obiecte: A e P3.
- Transform ri ntre obiecte: s e F1.
- Afirmaii (formule program):
G
1
= (x)A(x, 0, x ). (fapt)
G
2
= (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).
Al doilea pas. Programul logic interogat va fi dat de formula:
F = G
1
. G
2
. ( G =
{{A(x,0,x)},{(A(x, y, z), A(x, s(y), s(z)},{(A(s(s(s(0))), s(s(0)), u)}}.
Al treilea pas. Urmrim obinerea unei respingeri pornind cu F i,
eventual, deducerea unei valori, care ar fi desigur s(s(s(s(s(0))))),
adic 5, pentru suma dintre 3 i 2, valoare care apare pe undeva n
cursul procesului de aplicare a rezoluiei de baz (prin intermediul
substituiilor). Lsm aplicarea efectiv a rezoluiei de baz pe seama
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 e N}.
Fundamentele logice ale Informaticii 249
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
asupra irurilor de caractere. Din acest motiv timpul real necesar
pentru efectuarea unor asemenea calcule este foarte mare i nu este de
aceea indicat s apelm la programarea logic pentru a efectua calcule
numerice. Este ns adevrat c implementrile comerciale ale unui
limbaj logic (de tip PROLOG, [MAS1]), ofer faciliti nestandard
pentru efectuarea rapid a unor asemenea calcule (exist i maini
PROLOG dedicate).
Vom descrie n continuare, tot pe scurt, un alt tip de rezoluie n
LP1, echivalent cu rezoluia de baz i cunoscut sub numele de
rezoluie pur (specific). Acesta va furniza, n cazul obinerii unei
respingeri, ca efect secundar, i o substituie de succes (din care se
pot/poate extrage simplu numele obiectelor/obiectului care satisfac(e)
interogarea).
2. Sintaxa programelor logice
Un program logic (clasic, standard) este format dintr-o
mulime finit de formule program, alctuit din fapte i o mulime de
formule suplimentare. Un program logic interogat este un cuplu
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).
250 Cristian Masalagiu
Definiia 5.1 (program logic interogat; program PROLOG pur).
- Program logic. Acesta conine:
o Fapte, avnd forma:
P.
unde P este un literal pozitiv din LP1. Un asemenea
literal pozitiv poate avea i variabile, presupuse a fi
implicit cuantificate universal, dei n general el
reprezint o formul de baz. Formula reprezentat este
deci (
*
)(1 P) sau (
*
)P, care poate fi citit Sigur
P. Notm cu G
1
= {G
1
, G
2
, , G
p
} mulimea (finit a)
faptelor programului notat F.
o Clauze definite (suplimentare). Aspectul lor este:
P Q
1
, Q
2
, , Q
n
.
unde P i Q
i
, i e [n] sunt literali pozitivi din LP1
(simbolul este uneori nlocuit prin :-, ca i n clauza
scop). Formula reprezentat este
(
*
)(Q
1
Q
2
Q
n
P) sau
(
*
)(P Q
1
Q
2
Q
n
). Se citete P, n
caz c Q
1
i Q
2
i ... i Q
n
. Notm cu
G
2
= {G
p+1
, G
p+2
, , G
p+q
} mulimea (finit a)
Fundamentele logice ale Informaticii 251
clauzelor definite ale programului F i cu G = G
1
U G
2
.
(uneori, chiar acest G este considerat a fi mulimea
clauzelor suplimentare sau de program). Mai sus,
p, q e N, dar nu pot fi simultan egali cu 0.
- Interogarea. Clauza scop este scris:
o G = ? R
1
, R
2
, , R
k
.
Din nou, R
1
, R
2
, , R
k
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
(-
*
)(R
1
R
2
R
k
), citit Exist elemente n
domeniul considerat astfel nct condiiile
R
1
, R
2
, , R
k
s fie ndeplinite?, ceea ce prin negare
furnizeaz formula
(G = (
*
)( R
1
R
2
R
k
). Vom lua acum
F = <G, G>.
Observaie. Dup cum am putut deduce din exemple, execuia unui
program logic nseamn testarea nesatisfiabilit ii formulei
i
1
G
p q
i
+
=
. . ( G, pe care o vom nota tot cu F. F este n FNSC nchis
(eventual, dup ce se redenumesc anumite variabile, acest lucru
provenind din necesiti tehnice, nu din nevoia de a aduce formula la
252 Cristian Masalagiu
FNR), clauzele fiind clauze Horn (eventual, reprezentate ca mulimi).
Implementarea folosete o strategie SLD. n fiecare pas se efectueaz o
rezoluie pur , una dintre clauzele implicate fiind ntotdeauna clauza
scop curent (iniial, ea este formula de interogare G), cealalt
clauz fiind una dintre fapte sau clauzele definite aparinnd
programului (pe scurt, o clauz program). innd cont de forma
formulelor care intervin i de definiia rezoluiei pure, exist o schem
simpl care completeaz strategia SLD (prin precizarea acelei funcii de
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 = {L
1
, L
2
, ... , L
k
} o mulime (finit),
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
unificator pentru L. O substituie s se numete cel mai general
unificator (m.g.u., pe scurt) pentru o mulime unificabil L dac orice
alt unificator s se obine din s, adic pentru fiecare unificator s
exist o substituie sub astfel nct s = ssub.
Fundamentele logice ale Informaticii 253
S presupunem acum c avem dou clauze (distincte) din LP1
(care nu sunt neaprat clauze Horn, coninnd i variabile). Ideea
rezoluiei pure se bazeaz pe faptul c putem unifica (identifica textual)
ct mai muli literali din cele dou clauze cu ajutorul unei substituii
convenabile i apoi i putem elimina pe acetia (rezultnd o nou
clauz, n final), similar cu cazul rezoluei propoziionale.
Definiia 5.3 (rezoluia pur /specific ntr-un pas, n LP1). Fie C
1
,
C
2
i R clauze n LP1, C
1
C
2
. R se numete rezolvent (pur) pentru
C
1
i C
2
, obinut ntr-un pas, dac sunt ndeplinite condiiile:
(i) Exist substituiile de redenumire s
1
i s
2
astfel nct (C
1
)s
1
i
(C
2
)s
2
nu au variabile comune.
(ii) Exist literalii L
1
, L
2
, ... , L
m
e (C
1
)s
1
i
'
1
L ,
'
2
L , ... ,
'
n
L e (C
2
)s
2
astfel nct mulimea
L = {
1
L ,
2
L , ... ,
m
L ,
'
1
L ,
'
2
L , ... ,
'
n
L }
este unificabil. Fie sub un cel mai general unificator pentru L.
(iii) R = (((C
1
)s
1
\ {L
1
, L
2
, ... , L
m
}) U ((C
2
)s
2
\ {
'
1
L ,
'
2
L , ... ,
'
n
L }))sub.

Deoarece nu exist pericol de confuzii, vom folosi aceleai


notaii pentru rezoluia pur identice cu cele adoptate pentru rezoluia
propoziional (ceea ce se schimb este practic doar definiia
rezolvenilor obinui ntr-un pas). Teoremele urmtoare le prezentm
fra demonstraie (se poate consulta [MAS1]).
254 Cristian Masalagiu
Teorema 5.1 (Julia Robinson). Orice mulime finit, nevid,
unificabil, de literali din LP1, admite un cel mai general unificator.
Problema testrii faptului c o mulime de literali este unificabil este
decidabil. De asemenea, gsirea unui cel mai general unificator pentru
o mulime unificabil se poate face algoritmic.
Exist o metod relativ simpl (algoritm) pentru unificarea unei
mulimi date de literali. Fr a intra n amnunte, tot ceea ce trebuie s
nelegem este c trebuie s identificm poriuni de text, avnd (n
cazul de fa) un format special. Acest lucru nu se admite a fi fcut
dect prin intermediul variabilelor, folosind substituiile. n plus,
apelurile recursive, de genul n substituia s, variabila x este
nlocuit cu termul t, care conine x, sunt interzise.
Teorema 5.2 (a rezoluiei pure pentru LP1). Fie F e LP1 o formul
nchis, aflat n FNSC, F = (
*
)F* (F poate fi, n particular, un
program PROLOG pur). Atunci, F este nesatisfiabil dac i numai
dac e Res*(F*), adic dac i numai dac exist o demonstraie prin
rezoluie pur a clauzei vide (o respingere), pornind cu clauzele lui F.

Teorema 5.3 (completitudinea SLD-rezoluiei). Dac F este o


mulime de clauze Horn din LP1, atunci, dac F este nesatisfiabil,
exist o respingere pornind cu F i care utilizeaz SLD-rezoluia pur.

Fundamentele logice ale Informaticii 255


Desigur c SLD-rezoluia este i corect. Din pcate ns,
problema este netratabil relativ la complexitatea timp general. Mai
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;
folosirea unor structuri de date apropiate de programarea imperativ,
ca de exemplu liste, stive, arbori; utilizarea unei strategii de construcie
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:
256 Cristian Masalagiu
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] i 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
{( place(Adam, y)}
{place(Eva, Vinuri)} {( place(y, Vinuri)}
{place(Adam, x), ( place(x, Vinuri)}
[x/y]
[y/Eva]

Fundamentele logice ale Informaticii 257


unic, este o alt problem care poate fi rezolvat de ctre un interpretor
PROLOG).
Exemplul 5.2 (reluat). n mod cu totul similar ca mai nainte, fr a
construi ntreg arborele de rezoluie pur posibil, obinem respingerea:
(scopul iniial) A
{A(x, s(y), s(z)), ( A(x, y, z)} (scop nou, derivat) B
{A(x, s(y), s(z)), ( A(x, y, z)}
a
b
(scop nou) C {A(x, 0, x)}
(clauza
vid,
scop
final)
(clauz suplimentar)
(clauz suplimentar)
(clauz suplimentar)
c
258 Cristian Masalagiu
Respingerea anterioar ne spune c rspunsul la ntrebarea exist
vreun numr natural care s fie suma dintre 2 i 3 ? este pozitiv. S
precizm i c n graful de mai sus notaiile reprezint:
A = {( A(s(s (s (0)))), s (s (0)), u)}
a = sub
1
=[x/ s (s (s (0)))][y/ s (0)][u/ s (z)]
B = {( A(s (s (s (0)))), s (0), z)}
b =
2
sub [x/ ( ( ( )))] [y/ ] [z/ (z )] ' = s s s 0 0 s
(n cauza suplimentar facem mai nti substituia [z/z

], din motive
tehnice, netransparente n acest moment fr anumite informaii
suplimentare)
C = {( A(s (s (s (0)))), 0, z

)},
c = sub
3
=[x/ s (s (s (0)))][z/ s (s (s (0)))].
Substituia final este sub = sub
1
sub
2
sub
3
. Din inspectarea atent a
acesteia (a se urmri valoarea final a variabilei u, obinut succesiv
prin aplicarea substituiilor elementare care compun sub), rezult c
rspunsul dorit este: suma dintre 2 i 3 este 5.
3. Rezumare i Index
Programarea logic reprezint o alternativ viabil pentru
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
Fundamentele logice ale Informaticii 259
presupunerii lumii nchise, modul de a trata negaia, utilizarea
disjunciei n interog ri, precum i implementarea unui dialog
interactiv cu utilizatorul (prin care s se dirijeze din exterior execuia
unui program), nseamn extensii importante pentru programarea logic
([MAS1], [AND]) i justific orientarea unor grupuri semnificative de
programatori ntr-o asemenea direcie.
Nici rezultatele teoretice, nici inovaiile de implementare, nici
ariile de aplicabilitate ale Programrii logice nu sunt de altfel epuizate,
astfel nct acest domeniu, cu toat complexitatea sa, nu este nc unul
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
algoritm = logic + control, 237
fapte, 237
program logic interogat, 242
260 Cristian Masalagiu
clauze program (definite), 246
formul de interogare (scop), 246
substituie de succes, 246
formule (clauze) program, 248
unificare, 248
cel mai general unificator, 249
rezoluie pur, 250
tratarea negaiei, 255
ipoteza lumii nchise, 255
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).
Gsii o SLD-respingere pentru scopul G = ? p(U, b). Se cere
i rezultatul execuiei programului interogat P = <F, G>.
Fundamentele logice ale Informaticii 261
3. Aritmetica ([COT]). Conform Exemplului 5.2, mulimea
numerelor naturale poate fi definit prin urmtorul program
PROLOG:
numar_natural(0).
numar_natural(s(X)) :- numar_natural(X).,
unde predicatul numar_natural(X) afirm c X este un
numr natural. Adunarea poate fi dat i de ctre predicatul
plus1(X, Y, Z):
plus1(0, X, X).
plus1(s(X), Y, Z) :- plus1(X, s(Y), Z).
Predicatul plus2 este similar cu cel dat deja de noi n Exemplul
5.2 (i notat acolo cu A):
plus2(0, X, X).
plus2(s(X), Y, s(Z)) :- plus2(X, Y, Z).
Gsii definiii PROLOG ale predicatelor minus(a, b, c),
inmultire(a, b, c) i exp(a, b, c), utiliznd plus1, plus2.
Intuitiv, predicatele cerute trebuie s fie adevrate dac i numai
dac sunt respectiv ndeplinite condiiile a - b = c, a b = c i
c = b
a
.
4. Fie baza de cunotine ([COT]) exprimat prin faptele:
barbat(paul).
barbat(andrei).
femeie(maria).
femeie(eliza).
femeie(emilia).
parinti(emilia, maria, paul).
262 Cristian Masalagiu
parinti(andrei, maria, paul).
parinti(eliza, maria, paul).,
unde semnificaia predicatelor implicate este evident. De
exemplu, parinti(E, M, T) este adevrat dac i numai dac M i
T sunt prinii lui E, M fiind mama, iar T fiind tatl. Putem
atunci defini relaia sora_lui, n conformitate cu definiiile de
mai sus, prin (sora_lui(X, Y) este adevrat dac i numai dac
X este sora lui Y):
sora_lui(X, Y):- femeie(X), parinti(X, M, T), parinti(Y, M, T).
Aceasta va fi (singura) clauz suplimentar a programului.
Se cere s se rspund la interogarea:
? :- sora_lui(eliza, andrei).
5. Arbori de c utare i arbori de demonstrare ([COT]). Fiind
dat un program PROLOG, un scop iniial i regula standard de
selecie a subscopurilor (literalii din clauza scop curent, dac
sunt mai muli, sunt selectai n ordinea scrierii lor textuale, n
vederea unificrii cu capul unei clauze program, care va fi
aleas ulterior), cutarea tututror alternativelor posibile se poate
reprezenta printr-un arbore, numit arbore de cutare (de
evaluare sau arbore OR). n acest arbore, rdcina este scopul
iniial. Orice nod neterminal este etichetat cu o conjuncie de
subscopuri, derivat din nodul tat ntr-un singur pas de
rezoluie. Descendenii imediai ai unui nod sunt scopuri
alternative derivate din scopul prezent n acel nod. Cutarea se
termin cnd toate nodurile sunt terminale. Orice nod terminal
este etichetat cu n caz de terminare reuit (cu succes) i cu
Fundamentele logice ale Informaticii 263
n cazul terminrii cu eec (scopul nu poate fi satisfcut).
Orice drum n arbore (o secven de noduri de la rdcin la un
nod terminal) reprezint un calcul posibil. Pot exista i drumuri
infinite. S considerm urmtoarele clauze generice:
a :- b, c. /*clauza1*/
a :- d. /*clauza2*/
b :- e. /*clauza3*/
d. /*clauza4*/
e. /*clauza5*/
i scopul iniial
? :- a.
Arborele de cutare corespunztor programului interogat
anterior este: a
1 2
b,c
d
3 4
e,c

5
c
-

264 Cristian Masalagiu


Dup cum am precizat, am urmat regula standard de selecie a
subscopurilor (n graf este subliniat literalul selectat; arcele sunt
notate cu numerele clauzelor corespunztoare).
Fie acum, din nou, un program, un scop iniial, dar i regula
standard de selectare a clauzelor program (al cror cap s-ar
putea unifica cu subscopul curent ales deja). Atunci
subscopurile pot forma un aa numit arbore de demonstrare (de
derivare, arbore AND). n acest arbore, orice nod este un
(sub)scop. Rdcina are n calitate de descendeni imediai
subscopurile scopului iniial. Fiecare dintre acestea au n calitate
de descendeni imediai subscopurile clauzei selectate. Nodurile
terminale sunt notate, ca i mai nainte, prin i .
Mulimea de noduri care preced imediat nodurile terminale
reprezint subscopurile, conjuncia crora formeaz scopul
complex ce corespunde arborilor de demonstrare:
a a
d

b c
e

Fundamentele logice ale Informaticii 265


Ne-am plasat n contextul aceluiai program i, conform celor
spuse, pentru scopul iniial avem doi arbori de demonstrare (cei
de mai sus) care corespund, respectiv, seleciei clauzei1 i
respectiv seleciei clauzei2. Arborii sunt reprezentai n figura
anterioar. Acum putem cumula arborii anteriori n:
Mai exact, cele dou tipuri de informaii, furnizate de
arborele/arborii de demonstrare (AND) i arborele de cutare
(OR) pot fi efectiv reprezentate printr-un singur arbore (cel de
mai nainte), numit arbore AND-OR (sau arbore complet de
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]).
a
b,c d
b c
e

266 Cristian Masalagiu


S considerm acum urmtorul program interogat:
bunic(X, Y):-tata(X, Z), tata(Z, Y).
bunic(X, Y):-tata(X, Z), mama(Z, Y).
mama(maria, paul).
mama(I, J):-mama(I, K), frate(K, J).
tata(ion, maria).
frate(paul, petru).,
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.
Artai c afirmaia Toi dragonii verzi sunt fericii este
consecin semantic din afirmaiile anterioare. Putem modela
problema anterioar ca un program PROLOG interogat? Pentru
consistena lumii modelate ar mai fi utile i alte afirmaii?
Anex
Rezolvarea exerciiilor i exerciii propuse
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.
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.
Astfel, gsim imediat:
x = x1 = x(x + x ) = distributivitate
= xx +x x = xx + 0 = xx.
V.1.4. Fie dou mulimi oarecare, finite, nevide, A
1
i A
2
, avnd
|A
1
| = n i |A
2
| = m, n e N*. Direct din definiii, se deduce c
|A
1
A
2
| = mn. Mai mult, se tie c ([DID]) numrul total de funcii de
la A
1
la A
2
este m
n
(de altfel demonstraia este foarte simpl dac se
268 Cristian Masalagiu
face prin inducie dup n). Cum |B| = 2 i |B
n
| = 2
n
, trebuie s mai
calculm numrul total de funcii de la A
1
= B
n
la A
2
= B, ceea ce este
imediat.
V.1.5. Faptul c g este bijectiv este o consecin imediat a definiiei
unui termen peste mulimea X = {x
1
, x
2
, ... , x
n
}. S artm c un n-uplu
e = <e
1
, e
2
, ... , e
n
> n care, pentru fiecare i e [n], avem e
i
e{0, 1, 2},
poate fi interpretat ntr-un mod unic ca o funcie f
e
: [n] {0, 1, 2}.
Astfel, definim f
e
(i) = e
i
, pentru fiecare i e [n]. Se aplic apoi un
raionament similar cu cel din exerciiul precedent.
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 yz + 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 T
0
este o mulime nchis, este suficient s artm
(Teorema 1.5) c T
0
conine E i c este nchis la superpoziie.
ntr-adevr, dup cum deja am observat, E _ T
0
pentru c
n
p
p
i (0, 0, , 0, , 0) 0 = indiferent de valorile lui n e N* i p e [n]. Fie
acum n e N*, t e N, f, h
1
, h
2
, ... , h
t
e FB
(n)
, g e FB
(t)
, astfel nct
f = SUP(g, h
1
, h
2
, ... , h
t
) i g, h
1
, h
2
, ... , h
t
e T
0
. Rmne s artm c
f e T
0
, adic f(0, 0, ... 0) = 0. Dar, tim c pentru fiecare
x = <x
1
, x
2
, ... , x
n
> avem f(x) = g(h
1
(x), h
2
(x), ... , h
t
(x)), de unde, lund
x = <0, 0, ... , 0>, gsim f(0, 0, ... 0) = g(h
1
(0, 0, ... ,0), h
2
(0, 0, ..., 0), ...
Fundamentele logice ale Informaticii 269
, h
t
(0, 0, ... , 0)) = g(0, 0, ... , 0) = 0, folosind exact faptul c h
1
, h
2
, ..., h
t
i g sunt elemente din T
0
.
V.1.8. Fie ([CAZ1]) M mulimea considerat. Trebuie s artm c
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
( , + i respectiv , acestea neavnd o notaie prefixat). Considerm
funciile:
(i)

p
f , e B, date prin

p
f (x
1
, ... , x
p
, ... , x
m
) =

p
x (oricare ar fi
numrul de argumente m e N* i p e [m]). Avem
1
p
f =
m
p
i i cum
0
p
f (x
1
, x
2
, ... , x
m
) = ) x ,..., x ( i
m 1
m
p
, oricare ar fi elementele
x
1
, x
2
, ... , x
m
e B, putem scrie i
0
p
f = SUP(n,
m
p
i ).
(ii) Fie acum funciile p
k
, date prin p
k
(x
1
, x
2
, ... , x
m
) = x
1
x
2
... x
k
,
oricare ar fi m e N* i k e [m]. Observm acum c p
1
=
m
1
i ,
p
2
= SUP(p,
m
1
i ,
m
2
i ), . a. m. d., adic pentru fiecare k > 2 gsim
p
k
= SUP(p, p
k 1
,
m
k
i ).
(iii) Considerm n continuare funciile s
r
, date prin
s
r
(x
1
, x
2
, ... , x
m
) = x
1
+ x
2
+ ... + x
r
( pentru fiecare m e N* i r e [m]),
despre care se arat n modul recursiv similar cazului precedent c sunt
elemente din M, (s
1
=
m
1
i , s
2
= SUP(s,
m
1
i ,
m
2
i ) i, pentru fiecare r > 2,
s
r
= SUP(s, s
r 1
,
m
r
i )).
270 Cristian Masalagiu
(iv) Putem trage acum concluzia c i funciile de forma
g(x
1
, x
2
, ... , x
m
) =
1

1
x
2

2
x ...
m

m
x (m e N*,
1
,
2
, ...
m
e B) sunt n
M, deoarece g = SUP(p
m
,
1
1
f
o
,
2
2
f
o
, ... ,
m
m
f
o
).
(v) Fie, n sfrit, orice funcie boolean f FB
(m)
, m N*.
- Dac f(x
1
, x
2
, ... , x
m
) = 0, pentru fiecare x
1
, x
2
, ... , x
m
e B,
atunci f = SUP(p,
0
1
f ,
1
1
f ).
- n caz contrar, conform Teoremei 1.3, f admite o reprezentare
unic n FNDP, fiind o sum de r e N* maxtermeni, adic de
funcii g
1
, g
2
, ... , g
r
de tipul dat n cazul (iv), adic
f = SUP(s
r
, g
1
, g
2
, ... g
r
).
V.1.9. Avem B B = {<0, 0>, <0, 1>, <1, 0>, <1, 1>}, valorile
corespunztoare ale funciei + (pentru perechile de argumente de mai
sus) fiind respectiv 0, 1, 1, 1. Pentru c am pus 0 s 1 (tim deja c
0 1) i extensia acestei relaii la produsul cartezian este pe
componente, putem spune c doar elementele <0, 1> i <1, 0> sunt
incomparabile, celelalte fiind n relaie, dup cum este indicat n figura
de mai jos prin sgeat continu (astfel, <0, 1> s <1, 1>, <1, 0> s
<1, 1>, etc.). Se observ imediat c valorile funciei pstreaz relaia de
ordine dintre (perechile de) argumente:
Fundamentele logice ale Informaticii 271
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 Z
2
se identific, atunci izomorfismul este dat chiar de
funcia identic).
V.1.11. S artm c funcia specificat nu este liniar (conform celor
artate n lucrare i exerciiului precedent, exist o unicitate a
reprezentrii funciei ca polinom):
x y + y z =
conform a + b = a b
= x y y z =
conform a b = (a 1)(b 1) 1
= (x y 1)(y z 1) 1 =
<1,1>
<0,0>
<1,0>
<0,1>
1
0
1
1
1+1
0+0
0+1
1+0
272 Cristian Masalagiu
conform a = a 1
= (x(y 1) 1)(y(z 1) 1) 1 =
distributivitate, asociativitate
= (xy x 1)(yz y 1) 1 =
distributivitate, aa = a
xyz xy xy xyz xy x yz y 1 1 =
comutativitate, a a = 0, a 0 = a
= xy yz x y.
Evident, aceasta nu este o reprezentare liniar.
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
(contrara directei) este ( p ( q , iar TCR (contrara reciprocei) este
( q ( p. Se poate arta c p q este logic echivalent (n
metalimbaj) cu ( q ( p (adic teorema direct este echivalent cu
contrara reciprocei, de unde se deduce metoda reducerii la absurd, ca
metod general de demonstraie). Se schimb ceva n cele de mai sus
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 v)? O echivalen sintactic p q se
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
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
noiunilor caracterizate prin condiiile p i q, echivalena logic (fie ea
de natur semantic, fie sintactic) spunnd c cele dou sfere
coincid.
V.2.2. Avem R a a lim
n
n
e =

dac i numai dac (scrierea este conform
manualelor din liceu):
( > 0)(-n e N)(m e N)(m > n |a
m
- a| < )
Negaia formulei anterioare (nu este adevrat c irul (a
n
)
neN
converge
la a e R; ceea ce nu nseamn c (a
n
)
neN
nu ar fi convergent) este:
(- > 0)(n e N)(-m e N)(( (m > n |a
m
- a| < ))
(- > 0)(n e N)(-m e N)(m > n . |a
m
- a| > )
n cele de mai sus s-a folosit faptul c p q ( p v q i ( (( p v q)
p . ( q.
Obiecte
care
satisfac p
Obiecte
care
satisfac q
274 Cristian Masalagiu
V.2.3. Notm de exemplu p: Mi-e sete i q: Beau ap. Avem p q
( p v 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
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) v (B . C)). Atunci Arb(F), etichetat (adic,
arborele orientat, ordonat care reprezint F), este:
Dac am fi considerat c notaiile tuturor operatorilor care intervin sunt
prefixate (nu infixate, cum sunt cele pentru . i v), parantezele ar fi
devenit uor un accesoriu direct al oricrui operator (aa cum de altfel
mai sugerat). Arborele, n acest caz, ar putea fi uor simplificat:
v
( )
( ) ( )
.
(
C B
v
A
0
0010
001
00
00101
00000
00100
000
0000
Fundamentele logice ale Informaticii 275
Cu ajutorul unei astfel de structuri de informaie s-ar putea defini
simplu, formal (structural), noiuni cum ar fi: apariia unui simbol ntr-o
formul F, pe poziia i; subformula lui F care ncepe la poziia i, etc.
V.2.5. Din demonstraia Teoremei 2.1 au mai rmas cazurile
F = (F
1
v F
2
) i F = (F
1
. F
2
). Sugerm cititorului, datorit simplitii
calculelor, s trateze simultan aceste cazuri, folosind acelai simbol att
pentru . i v, ct i, similar , pentru + i .
V.2.6. Procedm prin inducie structural.
Baza. F = A e A. Atunci prop(F) = {A}.
Pas inductiv.
(i) F = (( F
1
). Evident, prop(F) = prop(F
1
). Acelai lucru se ntmpl i
atunci cnd F = (F
1
).
(ii) F = (F
1
F
2
), e {. , v}. Atunci prop(F) = prop (F
1
) Uprop (F
2
).
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?
v
(
()
.
()
A
C B
v
()
01
0
011 010
00
000
276 Cristian Masalagiu
V.2.7. Se verific uor c orice A e A este o formul satisfiabil, dar
nevalid, c F = A v ( A este o formul valid i c F = A . ( A este o
contradicie.
V.2.8.
(a) Faptul c relaiile implicate sunt reflexive, simetrice i tranzitive
rezult imediat, deoarece acestea sunt definite cu ajutorul relaiei de
egalitate.
(b) Mai trebuie artat c:
- Dac F
1
F
2
, atunci ( F
1
( F
2
, pentru fiecare F
1
, F
2
e LP
(compatibilitatea lui fa de (), i c
- Dac F
1
F
2
, atunci F
1
v F F
2
v F , pentru fiecare F, F
1
, F
2
e
LP (analog pentru .; F poate fi adugat i la stnga), ceea ce
exprim compatibilitatea la dreapta (respectiv la stnga) a lui
fa de v (sau .).
S artm de exemplu c dac F
1
, F
2
e LP sunt formule oarecare, astfel
nct F
1
F
2
, atunci pentru oricare F e LP avem: F v F
1
F v F
2
. Fie S
o structur oarecare, corect pentru F, F
1
, F
2
. Avem succesiv:
S(F v F
1
) = S(F) + S(F
1
) = S(F) + S(F
2
) = S(F v F
2
).
(c) Deoarece _ LP LP este o echivalen i este compatibil cu
., v i (, rezult c pe mulimea ct LP/ = {[F] | F e LP}, unde
[F] = {F

e LP | F

F}, se pot defini noile operaii , , (preferm s


nu folosim simboluri mult diferite pentru LP/):
([F
1
] [F
2
]) = [(F
1
. F
2
)]
([F
1
] [F
2
]) = [(F
1
v F
2
)]
Fundamentele logice ale Informaticii 277
( [F
1
]) = [(( F
1
)].
Operaiile (considerate la nivel semantic) sunt ntr-adevr funcii
tocmai datorit compatibilitii lor cu echivalena.
(d) Axiomele unei algebre booleene se arat simplu. 0 reprezint clasa
tuturor tautologiilor, iar 1 este clasa contradiciilor. Nu exist doar un
singur homomorfism ntre mulimile considerate, ci o infinitate. Astfel,
pentru fiecare S : LP B, putem lua h : LP/ B, dat prin
h([F]) = S(F).
V.2.9. Se pot folosi i tabelele de adevr, nu doar definiia.
V.2.10. Avem succesiv:
F
prioritate operatori, distributivitate
(( B v ( D) .( E .( C . B . (( B v D) . (( B v B)
conform B B 1 i A 1 1
(( B v ( D) . ( E .( C . B . (( B v D).
Aplicm acum Algoritmul Horn formulei anterioare, gsind:
{B
*1
. D
*2
0, E 0, C 0, 1 B
*1
, B
*1
D
*2
}.
Formula este prin urmare nesatisfiabil. V sugerm s aplicai i alt
metod de testare a satisfiabilitii unei formule.
V.2.11. Putem considera urmtoarele variabile propoziionale:
D: Vom ctiga alegerile.
E: Popescu va fi ales liderul partidului.
G: Ionescu prsete partidul.
H: Rdulescu prsete partidul.
278 Cristian Masalagiu
Atunci, prima parte a afirmaiei ar putea fi exprimat prin E D, iar
doua prin ( E (G v H) . ( D. ntreaga afirmaie ar putea fi conjuncia
afirmaiilor precedente sau, mai degrab, disjuncia exclusiv a lor.
Dup cum tim, acest operator logic are de fapt acelai tabel de adevr
ca i suma modulo 2 i va fi notat la fel (tot cu ). Deci,
F = (E D) (( E (G v H) . ( D). Lsm pe seama cititorului
finalizarea exerciiului.
V.2.12. Avem succesiv, fr a mai indica explicit toate proprietile
utilizate:
F ((( A
1
v ( A
2
) v (A
2
A
4
)) ((( A
1
v A
2
) . ((A
2
v A
4
))
((( A
1
v ( A
2
) . (( A
2
v A
4
)) (((A
1
v A
2
) . (( A
2
v A
4
))
(A
1
. A
1
. ( A
4
) v ((( A
1
v A
2
) . (( A
2
v A
4
))
(A
1
. A
2
. ( A
4
) v ((( A
1
v A
2
) . ( A
2
v (( A
1
v A
2
) . A
4
)
(A
1
. A
2
. ( A
4
) v ((( A
1
. ( A
2
) v (A
2
. ( A
2
) v (( A
1
. A
4
) v
(A
2
. A
4
) )
A
1
. A
2
. A
4
v ( A
1
. ( A
2
v ( A
1
. A
4
v A
2
. A
4
.
n cele de mai sus, am inut cont de faptul c ( are prioritatea 0, . - 1 i
v - 2. n cadrul unei aceleai prioriti, gruparea am fcut-o ns la
stnga.
V.2.13. Dei nu am mai precizat literalii care se reduc din fiecare
clauz, sperm ca ei s fie uor de identificat:
Fundamentele logice ale Informaticii 279
V.2.14. O formul F este tautologie dac i numai dac ( F este
contradicie. Ca urmare, avem: ( F (B v C v ( D) . (B v D) .
(( C v ( D) . ( B, care, n reprezentarea cu mulimi, nseamn
{B, C}
{B, ( C} {( A, C} {( C}
{B}
{( A} {A,( B, C }
{( B, C}
{C}
{( C}

280 Cristian Masalagiu


{{B, C, ( D}, {B, D}, {( C, ( D}, {(B}}. O respingere ar putea fi:
V.2.15. tim c G G dac i numai dac (Teorema 2.3)
(
1
n
i =
.
G
i
) .( G este nesatisfiabil. O respingere poate fi descris mai
pe scurt i prin graful:
{B, C, ( D} {( C, ( D}
{( B}
{B, ( D }
{B, D}
{( B}
{( D}
{B}

Fundamentele logice ale Informaticii 281


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, 2 1,
( )
0, 2 ,
k
k i i
A
k i i
= + e
=

= e

N
N
S , avem
S M. ntr-adevr, mulimile M

= {A
1
vA
2
, A
3
vA
4
,,A
2n+1
v A
2n+2
,...}
i M

= {( A
2
v ( A
3
, ( A
4
v ( A
5
, , (A
2n+2
v (A
2n+3
, } formeaz o
partiie a lui M. S este model pentru M

, pentru c avem
(( A v B) . (( B v C) . (A v ( C) . (A v B v C) . (( A v( Bv ( C)
{B}
{A}
{A, C}
{( C}
{ ( B}

{A, B}
282 Cristian Masalagiu
S(A
2n+1
v A
2n+2
) = 1 pentru fiecare n e N (deoarece S(A
2n+1
) = 1).
Analog, S((A
2n+2
v (A
2n+3
) =
2 2
)
n
A
+
( S +
2 3
)
n
A
+
( S = 1 1 0 = + , pentru
fiecare n e N, adic S M

.
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
tabel de adevr (F = A e A, G = B . ( B, B e A):
A = F B B . ( B = G F G
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
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:
(i) Dac F = P e P
0
atunci free(P) = .
(ii) Dac F = P(t
1,
t
2
,..., t
n
), unde n e N
*
, t
1
, t
2
,..., t
n
e T, P e P
n
, atunci
Fundamentele logice ale Informaticii 283
free(P(t
1,
t
2
,..., t
n
)) =
n
i
i 1
free(t )
=
.
Prin urmare, este necesar s definim acum structural free(t), oricare ar fi
t eT.
Baza. Dac t = c e F0, atunci free(t) = , iar dac t = x e X, atunci
free(t) = {x}.
Pas inductiv. S presupunem acum c t = f(t
1,
t
2
,..., t
n
), unde n e N
*
,
t
1
, t
2
,..., t
n
e T, f e Fn. Atunci free(t) =
n
i
i 1
free(t )
=
.
n sfrit, putem trece la formule:
Baza. Acest pas a fost descris mai sus (F este formul atomic).
Pas constructiv.
(i) Dac F = (( F
1
), atunci free(F) = free(F
1
). La fel, pentru F = (F
1
).
(ii) Dac F = (F
1
. F
2
), atunci free(F) = free(F
1
) U free(F
2
).
(iii) Dac F = (F
1
v F
2
), atunci free(F) = free(F
1
) U free(F
2
).
(iv) Dac F = (x)(F
1
) sau F = (-x)(F
1
), atunci free(F) = free(F
1
) \ {x},
doar dac x e free(F
1
). Altfel, free(F) = free(F
1
) (desigur c puteam
lsa aceeai mulime de mai sus).
V.3.2. subf(F) = {R(u, f(v)), Q(z), P(x, g(a)), (P(x, g(a)) . Q(z)),
((P(x, g(a)) . Q(z)) v R(u, f(v))), (((P(x, g(a)) .Q(z)) v R(u, f(v)))), F}.
Putei deduce un algoritm imperativ pentru a calcula sub(F), din cel
recursiv sugerat de definiie?
V.3.3. Definirea constructiv a mulimii leg(F), F e LP1, urmeaz
aceiai pai ca la definirea mulimii free(F). Lsm n seama cititorului
analiza diferenelor care intervin.
284 Cristian Masalagiu
V.3.4. S presupunem c avem o substituie s = [x
1
/t
1
][x
2
/t
2
]...[x
n
/t
n
],
n > 2, nenormalizat. Ideea este ca, pentru fiecare i e [n 1], termii t
i+1
,
t
i+2
, ... , t
n
s nu mai conin pe x
i
. Atunci putem transforma pe s n felul
urmtor: toate apariiile variabilei x
n
n t
1
, t
2
, ... , t
n-1
se nlocuiesc cu t
n
,
apoi toate apariiile lui x
n-1
n (noii) t
1
, t
2
, ... , t
n-2
se nlocuiesc cu (noul)
t
n-1
, . a. m. d.
V.3.5. (F)s = (x)(P(x, f(x)) . Q(g(a, h(x)))). S remarcm ns c
substituia n cauz, s, nu este permis pentru F.
V.3.6. A se vedea V.3.11.
V.3.7. Formula F este satisfiabil dar nevalid. Considernd orice
structur S = <U
S
, I
S
>, corect pentru F, avem F
S
= 1 dac i numai
dac S
[x/u][y/v]
(P(x, y, f(z))) = 1, adic dac i numai dac pentru fiecare
u e U
S
, exist v e U
S
, astfel nct
[x/u][y/v]
P
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
))) = 1.
Acest lucru are loc dac i numai dac pentru fiecare u e U
S
, exist
v e U
S
, astfel nct P
S
(u, v, f
S
(z
S
)) = 1. Continuarea (i finalizarea)
exerciiului este de acum simpl.
V.3.8. F = (x)(y)(P(x, y) ( P(y, x)). Dar dac P ar fi i reflexiv i
formula ar aparine lui LP1
=
?
V.3.9. F = (x)(y)(z)(P(x, x) . (P(x, y) P(y, x)) .
((P(x, y) . P(y, z)) P(x, z)).
V.3.10. F
S
= 1 dac i numai dac exist u, v, w e U
S
astfel nct
avem
Fundamentele logice ale Informaticii 285
[x/u][y/v][z/w]
P
S
(x, y) = 1 i
[x/u][y/v][z/w]
P
S
(z, y) = 1 i
[x/u][y/v][z/w]
P
S
(x, z) = 1
i
[x/u][y/v][z/w]
P
S
(z, x) = 0, adic dac i numai dac exist u, v, w e U
S
astfel nct:
P
S
(u, v) = 1 i P
S
(w, v) = 1 i P
S
(u, v) = 1 i P
S
(w, u) = 0.
Finalizarea rezolvrii exerciiului este lsat pe seama cititorului.
V.3.11. Afirmaiile se demonstreaz a fi adevrate prin aplicarea direct
a definiiilor notiunilor care sunt implicate.
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.
V.3.15. Rezolvarea nu poate prezenta dificulti dac materia anterioar
a fost receptat corect.
V.3.16. Aceeai indicaie ca la exerciiul precedent.
V.3.17. Procedm algoritmic dup cum urmeaz:
(i) Pasul 1. Obinere FNPR.
F (u)(-y)((P(u, g(y), z) v ( (x)Q(x)) .(z)(-x)( R(f(x, z), z))
(u)(-y)((P(u, g(y), z) v ( (x)Q(x)) .(w)(-x)( R(f(x, w), w))
(u)(-y)((P(u, g(y), z) v ( (v)Q(v)) .(w)(-x)( R(f(x, w), w))
286 Cristian Masalagiu
(u)(-y)((P(u, g(y), z) v (-v)(Q(v)) .(w)(-x)( R(f(x, w), w))
(u)(-y)(-v)(w)(-x)((P(u, g(y), z) v ( 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:
F
s
(-z)(u)(-y)(-v)(w)(-x)((P(u, g(y), z) v (Q(v)) . (R(f(x, w), w)).
(iii) Pasul 3. Aplicm Algoritmul Skolem ultimei forme a lui F, pentru
a obine o FNS (nchis). Separnd execuiile corpului buclei, obinem
succesiv:
- Alege b constant i elimin (-z):
F
s
(u)(-y)(-v)(w)(-x)((P(u,g(y),b)v (Q(v)) . (R(f(x,w),w)).
- Alege h, un simbol funcional de aritate 1 i elimin (-y):
F
s
(u)(-v)(w)(-x)((P(u,g(h(u)),b) v(Q(v)) . (R(f(x, w), w)).
- Alege t, un simbol funcional de aritate 1 i elimin (-v):
F
s
(u)(w)(-x) ((P(u, g(h(u)), b) v (Q(t(u)) . (R(f(x, w), w)).
- Alege s, un simbol funcional de aritate 2 i elimin (-x):
F
s
(u)(w)((P(u,g(h(u)),b) v (Q(t(u))) . (R(f(s(u,w), w), w)).
(iv) Pasul 4. Formula este deja n FNSC (nchis).
V.3.18. Fie formula:
F = (x)(P(x, f(x))) . (y)(( P(y, y)) . (u)(v)(w)((P(u, v) .
P(v, w)) P(u, w)).
F ne spune c P este o relaie binar, tranzitiv i nereflexiv, avnd o
proprietate suplimentar, exprimat prin subformula
F
1
=(x)(P(x, f(x))). Artm c, dei F este satisfiabil, ea nu admite
nici un model finit.
Fundamentele logice ale Informaticii 287
(i) F este satisfiabil. Fie structura S = <U
S
, I
S
>, unde U
S
= N,
P
S
= {<m, n>| m, n e N cu m<n}, f
S
: U
S
U
S
, dat prin f
S
(n) = n + 1.
Pentru c formula nu conine nici constante i nici variabile libere,
structura este corect i avem imediat c S F.
(ii) F nu poate avea model finit. Folosind metoda reducerii la absurd,
s presupunem c exist S = <U
S
, I
S
> corect, finit (card(U
S
) <
o
) i
S F. Deoarece orice univers este presupus a fi nevid, s fixm un
element oarecare u e U
S
. Putem acum considera urmtoarea secven,
infinit, de elemente din U
S
, u
0
, u
1
, u
2
, unde:
(1)
0
1
( ),
i i
u u
u f u pentru orice i
+
=

= e

N
S
Cum U
S
este finit, nu toate elementele din secven pot fi distincte.
Prin urmare, trebuie s existe i, j e N, i < j astfel nct u
i
= u
j
. Din
S F, subformula F
1
trebuie s fie adevrat i de aici rezult c trebuie
s avem:
<u
0
, u
1
> e P
S
,
<u
1
, u
2
> e P
S
,

<u
i-1
, u
i
> e P
S
,
<u
i
, u
i+1
> e P
S
,

<u
j-1
, u
j
> e P
S
,

288 Cristian Masalagiu


Considernd subformula lui F,
F
3
= (u)(v)(w)((P(u,v) . P(v, w)) P(u, w))
i ea trebuie s fie adevrat n structura dat. Rezult c P
S
trebuie s
fie o relaie tranzitiv pe domeniul n cauz i deci trebuie s avem
<u
i
, u
j
> e P
S
. Dar u
i
= u
j
i atunci <u
i
, u
i
> e P
S
. Prin urmare, exist
mcar un element i anume u
i
n U
S
astfel nct <u
i
, u
i
> e P
S
i asta
nseamn c subformula lui F, F
2
= (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.
4. Rezolvri Capitolul 4
V.4.1. Avem succesiv, pentru (i), (ii), (iii) (cifrele din secven sunt
locale rezolvrii punctelor respective):
Pentru (i):
1. AB, A AB, A evident
2. AB, A B 1., (MP)
3. AB, BC, A B, BC 2., de dou ori
4. AB, BC, A C 3., (MP)
5. AB, BC AC 4., (TD)
6. AB (BC) (AC) 5., (TD)
7. (AB)((BC) (AC)) 6., (TD).
Pentru (ii):
Fundamentele logice ale Informaticii 289
1. A(BC), A A(BC), A evident
2. A(BC), A BC 1., (MP)
3. A(BC), A, B B, BC 2.
4. A(BC), A, B C 3., (MP)
5. A(BC), B AC 4., (TD)
6. A(BC) B(AC) 5., (TD)
7. (A(BC)) (B(AC)) 6., (TD).
Pentru (iii):
1. (( A ( ( A)((( A ( A) A) axioma 3. din SD3
2. ( A( A am artat deja
3. (( A ( A)((( A ( ( A) A) 1., (ii), (MP)
4. (( A ( ( A)A 2., 3., (MP)
5. ( ( A (( A( ( A) axioma 1. din SD3
6. ( ( A A 4., 5., (i), (MP).
V.4.2. Similar cu rezoluia propoziional, vom avea cte un sistem
pentru fiecare F e LP1, schimbndu-se doar mulimea de formule
suplimentare, care este sugerat de E(F).
V.4.3. Lsm rezolvarea pe seama cititorului, ea neimplicnd nici un
truc.
V.4.4. Avem succesiv:
290 Cristian Masalagiu
1. I AB evident
2. I, A A, AB 1.
3. I, A B 2., (EI)
4. I, A, ( B B, ( B 3.
5. I, ( B ( A 4., (IN)
6. I ( B ( A 5., (TD), (II).
Apoi:
1. I ( B( A evident
2. I, ( B ( B, ( B( A 1.
3. I ( B( A 2. (EI)
4. I, A, ( B A, ( A 3.
5. I, A B 4., (EN)
6. I A B 5., (TD), (II).
n sfrit:
1. I AvB, AC, BC evident
2. I AvB, ( C( A, BC 1., Ax3
3. I AvB, ( C( A, ( C( B 2., Ax3
4. I, ( C AvB, ( C, ( C( A, ( C( B 3.
5. I, ( C ( A, AvB, ( C, ( C( B 4., (EI)
Fundamentele logice ale Informaticii 291
6. I, ( C ( B, ( C, ( C( B 5., (ED)
7. I, ( C B, ( B 6., (EI)
8. I C 7., (EN).
V.4.5.
C D B B C A , , , v C A D B A , , v C A D B C , , v
C D B B C A , , v v C A D B C A , , v v
D B D B A C A , ), ( ) ( . v C D B B A C A , , v v
D B D B A C A v . v ), ( ) ( C D B B A C A , ) ( ) ( v . v
D B D C B A C A v . v ), ( ) (
D B D C B A C A v . . v ) ( ) ( ) (
) ( ) ( ) ( ) ( D B D C B A C A v . . v
V.4.6. Avem succesiv:
1. (x)(y)(x = y y = x) conform 7. (din enun)
2. (y)(z)(z = y y = z) 1., (E)
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.8. Conform Exemplului 4.3, trebuie s adugm:
(x)(y)(z)((xy)z = x(yz)) i
(y)(-x)(xy = y) . (x)(-y)(xy = x).
5. Rezolvri Capitolul 5
V.5.1. Putem nota clauzele cu C
1
= {A(x, 0, x)}, C
2
= {( A(x, y, z),
A(x, s(y), s(z)}, C
3
= {( 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:
- Substituind x = s(s(s(0))), y = s(0), z = s(s(s(s(0)))),
u = s(s(s(s(s(0))))) n C
2
i C
3
, rezolvm C
2
cu C
3
pentru a
obine C
4
= {( A(s(s(s(0))), s(0), s(s(s(s(0)))))}.
- Substituind x = s(s(s(0))), y = 0, z = s(s(s(0))) n C
2
, rezolvm
C
4
cu C
2
pentru a obine C
5
= {( A(s(s(s(0))), 0, s(s(s(0))))}.
- n sfrit, substituind x = s(s(s(0))), obinem prin rezolvarea
lui C
5
cu C
1
.
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 CP1.CP2 .CP3,
valoarea cerut a lui U fiind c. n arborele de mai jos, nodurile
suplimentare (care se rezolv cu clauza scop curent, precedat i de
Fundamentele logice ale Informaticii 293
simbolul ) sunt chiar clauzele de program, nu doar capul acestora
(pentru a ne familiariza i cu alte notaii folosite n literatura de
specialitate). Numele unor variabile sunt de asemenea schimbate (aa
cum am mai amintit, sunt necesare cunotine suplimentare pentru a ne
convinge de ce anumite redenumiri nu pot fi evitate pe parcurs).
V.5.3. Posibile definiii sunt (semnificaia intuitiv a predicatelor
folosite a fost deja sugerat; de exemplu, faptele din minus1 i minus2
ne spun c X 0 = X i respectiv X X = 0):
minus1a(X, Y, Z):- plus(Y, Z, X).
minus1b(X, Y, Z):- plus(Z, Y, X).
minus2a(X, Y, Z):- plus(Y, Z, X).
minus2b(X, Y, Z):- plus(Z, Y, X).
p(X,b)

p(b,b) p(X
3
,X
3
)
[X
3
/b]
q(X,Y
1
), p(Y
1
,b) q(a,b)
[X/a][Y
1
/b]
p(X
1
,Z
1
) q(X
1
,Y
1
), p(Y
1
,Z
1
)
[X
1
/X][Z
1
/b]
294 Cristian Masalagiu
Am putea lua n considerare i o definiie recursiv direct de genul
minus1(X, 0, X).
minus1(s(X), s(Y), Z):-minus1(X, Y, Z).,
sau
minus2(X, X, 0).
minus2(X, Y, s(Z)):-minus2(X, s(Y), Z).
nmulirea poate fi reprezentat de predicatul:
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
repetate (s precizm nc o dat c predicatul exp(N,X,Y) este
adevrat dac si numai dac Y = X
N
):
exp(U, 0, 0).
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
mai numete i corpul regulii). Substituia de unificare este
[X/eliza][Y/andrei], rezultnd noul scop curent (scopul derivat)
? :- femeie(eliza), parinti(eliza, M, T), parinti(andrei, M, T), care are
trei subscopuri. Primul este femeie(eliza), care se unific cu faptul
corespunztor, rezultnd ? :- parinti(eliza, M, T), parinti(andrei, M, T).
Subscopul parinti(eliza, M, T) nu se poate unifica dect cu faptul
parinti(eliza, maria, paul), unde M este instaniat de valoarea maria,
Fundamentele logice ale Informaticii 295
iar T, de valoarea paul (un cel mai general unificator fiind evident dat
de [M/maria][T/paul]. Astfel, scopul curent devine
? :- parinti(andrei, maria, paul). Acesta se unific cu faptul
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).
V.5.5. Arborele AND-OR este reprezentat n figura de mai jos. Pe arce
nu am mai trecut clauze, ci substituiile corespunztoare:
296 Cristian Masalagiu
V.5.6. L = {P(x,y), P(f(b), g(x)), P(f(z), g(f(z)))}. ncepem cu:
sub
0
= [], (L)sub
0
= L. Alegem pentru o prim posibil unificare
literalii:
P(x, y) i
P(f(b), g(x)).
Gsim sub
1
= [x/f(b)] i
bunic(ion, petru)
tata(ion,Z), tata(Z,petru)
tata(ion,Z) tata(Z, petru)
tata(ion,Z)
tata(ion,Z), mama(Z,petru)
mama(Z,petru)
frate(K,petru)
mama(maria,K)
mama(maria,K), frate(K,petru)
[X/ion] [Y/petru]
[Z/maria]
[X/ion][ Y/petru]
[Z/mari]a
[K/paul]
[I/Z][ J/petru]

Fundamentele logice ale Informaticii 297


(L)sub
1
= {P(f(b), y), P(f(b), g(f(b))), P(f(z), g(f(z)))}.
Acum pot fi alei tot primii doi literali:
P(f(b), y)
P(f(b), g(f(b))).
Gsim sub
2
= [y/g(f(b))] i
(L)sub
1
sub
2
= {P(f(b), g(f(b))), P(f(z), g(f(z)))}.
Nu putem alege acum dect singurii literali rmai n mulime:
P(f(b), g(f(b)))
P(f(z), g(f(z))).
Punnd sub
3
= [z/b], gsim n final
(L)sub
1
sub
2
sub
3
= {P(f(b), g(f(b)))}, substituia cerut (final) fiind
evident sub = sub
1
sub
2
sub
3
.
V.5.7. Putem considera urmtoarele relaii (predicate):
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:
- F
1
= (Y)((P(Y) . (X)((T(X,Y) . P(X) S(X))) Q(Y)).
- F
2
= (Y)((P(Y) . R(Y)) S(Y)).
- F
3
= (X)((P(X) . (-Y)(T(X,Y) . P(Y) . R(Y))) R(X)).
Trebuie demonstrat c formula:
298 Cristian Masalagiu
G= (Y)((P(Y) . R(Y)) Q(Y))
este o consecin semantic din {F
1
, F
2
, F
3
}, utiliznd rezoluia. Urmm
paii cunoscui:
(i) Gsim mai nti o formul F

(aflat n FNS nchis i cu matricea


n FNC), slab echivalent cu ( F = ( (F
1
. F
2
. F
3
G). Obinem
reprezentarea clauzal sub form de mulimi a lui F

ca fiind:
F

= {{( P(Y), Q(Y), T(f(Y,Y))}, {( P(Y), Q(Y), P(f(Y))},


{( P(Y), Q(Y), ( S(f(Y))}, {( P(Y), ( R(Y), S(Y)},
{( P(X), ( T(X,Y), ( P(Y), ( R(Y), R(X)}, {P(b)}, {R(b)}, {( Q(b)}}.
n cele de mai sus, primele trei clauze sunt din F
1
, cea de-a patra este
din F
2
, cea de-a cincea din F
3
, iar ultimele sunt din ( G. Le putem atunci
denota prin C
1
, ..., C
8
, n aceast ordine. Mai mult, din procesul de
Skolemizare, rezult dou (noi) simboluri funcionale, f de aritate 1 i
b de aritate 0.
(ii) O posibil respingere este:
(1) C
2
C
1
L = ({( P(y),
( P(a)})[y/a]
} a)) T(f(a), Q(a), { C
'
1
=
Fundamentele logice ale Informaticii 299
(4) C
8
'
1
C
} a) T(f(a), { C
"
1
=
(3)
C
6
C
3
L = ({( P(y),
( P(a)})[y/a]
'
3
C } S(f(a)) Q(a), { ( =
(2) C
6
C
2
L = ({( P(y),
( P(a)})[y/a]
} P(f(a)) Q(a), { C
'
2
=
300 Cristian Masalagiu
(7) C
5
C
1
(redenumire n C
1
: [y/z])
L = ({T(f(z),z), T(x, y)})
[x/f(z)][y/z]
R(f(z))} R(z), z), T(f(z), P(f(z)), Q(z), P(z), { C
9
( ( ( ( =
(6) C
8
'
3
C
} S(f(a)) { C
"
3
( =
(5) C
8
'
2
C
} P(f(a)) { C
"
2
=
Fundamentele logice ale Informaticii 301
(8)
"
1
C
C
9
{( P(a), Q(a), ( P(f(a)), ( R(a), R(f(a))}}
"
2
C
{( P(a), Q(a), ( R(a), R(f(a))}
{( P(a), ( R(a), R(f(a))}
{( P(a), R(f(a))}
C
10
= {R(f(a))}
C
6
C
7
L = ({T(f(z),z),
T(f(a),a)})
[z/a]
C
8
302 Cristian Masalagiu
Putei folosi ca alternativ rezoluia de baz ? Raspundei singuri la
celelalte ntrebri din enun.
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
(9)
"
3
C
C
4
{( P(f(a)), ( R(f(a))}}
{( P(f(a))}
L = ({( S(y), ( S(f(a))})
[y/f(a)]
C
10
"
2
C

Fundamentele logice ale Informaticii 303


de la 1 la 10, realizarea a 75 de puncte este o cerin minimal pentru
a ti c pregtirea este ct de ct satisfctoare.
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 ,
presupunnd n acelai timp c acesta este prioritar fa de +):
f(x, y, z) = x + x y + x y
f(x, y, z) = (x + y) (x + y)( x +z )( x + z)
f(u, x, y, z) = u x + y z
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
atomice, apoi pentru formule) urmtoarele funcii recursive
(calculabile prin algoritmi):
- ND : T U At U LP1 N. Pentru fiecare F e LP1 (t e T,
A e At), considerm toate variabilele i constantele care apar.
Pentru fiecare asemenea element, se poate evident determina
gradul su de imbricare, adic numrul total de simboluri
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.
304 Cristian Masalagiu
- 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 e T U At U LP1). De exemplu,
NS((x)P(f(x, x))) = 6.
Demonstrai apoi prin inducie structural c NS(F) > ND(F), pentru
fiecare F e LP1. Ce se modific n cele de mai sus dac termii,
formulele atomice i formulele se reprezint ca arbori?
V.F.5. Ne plasm n LP. Fie F G o tautologie, astfel nct F i G nu
au formule atomice n comun. Artai c fie F este nesatisfiabil, fie G
este tautologie (neexclusiv). Argumentai faptul c presupunerea nu
exist variabile comune este esenial.
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.
- Mulimea X are 2 elemente.
- Mulimea X are n > 2, n e N elemente.
- Mulimea X este parial ordonat.
- Mulimea X este bine ordonat.
- Mulimea {x, y, z} formeaz un triunghi.
Fundamentele logice ale Informaticii 305
- Mulimea {x, y, z} formeaz un triunghi isoscel.
- Dac dou puncte ale unei drepte aparin unui plan, atunci
dreapta aparine planului.
V.F.7. Ne plasm n LP1. Construii o form normal Skolem, notat
C, pentru formula B = (x)(-y)Q(x, y) i artai c formulele B i C nu
sunt tare echivalente.
V.F.8. Ne plasm din nou n LP1. Artai c formula
F = (x)(y)(z)((Q(x, x)) . ((Q(x, y) . Q(y, z)) Q(x, z)) .
((Q(x, y) v Q(y, x)) (-y)(x)Q(y, x))
este satisfiabil dar nevalid. Mai mult, artai c ea este adevrat n
orice univers finit.
V.F.9. Demonstrai, folosind deducia natural, c:
(x)(A) (-x)A.
A (x)A, dac x nu apare (intr) liber n A.
(-x)(A) A, dac x nu apare liber n A.
(x)(B A) ((-x)(B) A), dac x nu apare liber n A.
V.F.10. Artai c urmtoarea mulime de literali L din LP1 este
unificabil i gsii un cel mai general unificator:
L = {( P(f(z, g(a, y)), h(z)), ( P(f(f(u, v), w), h(f(a, b)))}.
Ca o indicaie, lund doar cte doi literali la fiecare pas de unificare,
Algoritmul lui J. Robinson se termin dup patru pai, cu un posibil
m.g.u. de forma sub = [z/f(u, v)][w/g(a,y)][u/a][v/b].
306 Cristian Masalagiu
V.F.11 ([OHL]). Problema reaciei n lan a lui Schubert. Lupii,
vulpile, psrile, omizile i melcii sunt animale, i exist mcar cte un
asemenea animal. Exist, de asemenea i cereale, cerealele fiind plante.
Despre fiecare animal tim c fie i place s mnnce toate plantele, fie
i place s mnnce toate animalele mult mai mici ca el nsui, animale
crora, n plus, le place s mnnce anumite plante. Omizile i melcii
sunt mult mai mici dect psrile, care sunt mult mai mici dect vulpile,
care la rndul lor sunt mult mai mici dect lupii. Lupilor nu le place s
mnnce vulpi sau cereale, n timp ce psrilor le place s mnnce
omizi dar nu i melci. Omizilor i melcilor le place s mnnce anumite
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
(de fapt, trivalent), notat, s spunem, cu LP3. Mai precis, lum
LP3 = LP, sintaxa nemodificndu-se. Prin urmare, mulimea de
formule rmne aceeai, cu observaia c admitem i prezena explicit
a tuturor conectorilor logici mai des ntlnii, adic a lui non, i, sau,
implic i echivalent (acetia vor cpta ns, pentru evitarea unor
confuzii, indicele inferior 3). Notnd B = B U {u}, o asignare
(structur) va fi orice funcie S : A B, iar conectorii amintii vor fi
interpretai semantic ca funcii de ariti corespunztoare peste B,
funcii definite prin urmtoarele tabele de adevr generalizate:
x
3
0 1
Fundamentele logice ale Informaticii 307
1 0
u u
Se observ imediat c dac restricionm pe (
3
, v
3
, .
3
,
3
i
3
la B
(le notm la fel), atunci acestea coincid cu funciile corespunztoare din
semantica logicii propoziionale clasice ((
3
(x) = x , x v
3
y = x + y,
x .
3
y = xy, x
3
y = x + y respectiv x
3
y = ( x + y)( y + x)).
Valoarea u (nedefinit, undefined) nu trebuie neleas ca fiind fie
adevrat, fie fals, dar nu tim exact care dintre ele, ci mai degrab n
sensul: cineva care are 2.00 metri este cu siguran nalt - 1; cineva
care are 1.50 metri este cu siguran mic de statur 0; cineva care
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
x y x
3
y x
3
y x
3
y x
3
y
0 0 0 0 1 1
0 1 1 0 1 0
1 0 1 0 0 0
1 1 1 1 1 1
u
0
u
0 0 0
u
1 1
u
1 0
0
u u
0 1 0
1
u
1
u u
0
u u u u
1 1
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 e LP3, avem S(F
3
G) = S(((
3
F) v
3
G),
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
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
restul zilelor spunea adevrul. Inorogul minea joia, vinerea i smbta
i spunea adevrul n celelalte zile. Odat, Alice a ntlnit n pdure leul
i inorogul, care se odihneau sub un copac. Ei au fcut urmtoarele
afirmaii:
- Leul: Ieri a fost una dintre acele zile n care eu spun minciuni.
- Inorogul: i pentru mine ieri a fost una dintre zilele n care eu
spun minciuni.
Folosind aceste informaii, Alice, care era o fat deteapt, a putut s
determine n ce zi din sptmn se afla atunci. Putei afla i
dumneavoastr?
V.F.14 ([OHL]). Fie formulele din LP1
=
:
F = (y)(-x)P(x, f(x, y))
Fundamentele logice ale Informaticii 309
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 v
4
,
.
4
, (
4
, definii semantic respectiv prin tabelele:
i
v
4
1
b n
0
1 1 1 1 1
b
1
b b b
n
1
b n
0
0 1
b
0 0
.
4
1
b n
0
1 1
b n
0
b b b n
0
n n n n n
0 0 0
n
0
310 Cristian Masalagiu
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,
4
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 = Q
1
sau Q
2
respectiv Q = Q
1
i Q
2
(de exemplu, dac rezultatul
(
4
1 0
b b
n n
0 1
Fundamentele logice ale Informaticii 311
pentru Q1 este b i rezultatul pentru Q2 este n, atunci rezultatul pentru
Q
1

4
Q
2
este, natural, tot n).
Demonstrai, de exemplu, c att .
4
ct i v
4
sunt operaii comutative
pe B = B U {b, n}. Ce alte lucruri interesante mai putei deduce
pentru aceast logic?
Bibliografie
[AHO] 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.
[AND] Andrews, J., H. Logic Programming: operational
Semantics and Proof Theory, Cambridge Unversity
Press, Anglia, 1992.
[BIE] 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.
[BIR] Birkhoff, G. Latice Theory, A.M.S. Colloquium
Publications, Vol. 25, Providence, Rhode Island,
S. U. A., retiprit n 1984.
[BOL]
Bolc, L., Borowik, P. Many-Valued Logics, 1,
Theoretical Foundations, Springer Verlag, Berlin,
Germania, 1992.
[BR] Brger, E. Computability, Complexity, Logic,
North Holland, Amsterdam, Olanda, 1989.
[CAZ1] Cazacu, C., Slabu, V. Logic matematic , Editura
Stefan Lupacu, Iai, Romnia, 1999.
[CAZ2] Cazacu, C. Teoria calculabilit ii efective, Editura
Universitii Al. I. Cuza, Iai, Romnia, 1996.
[COR] 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).
[COT] Cotelea, V. Programarea n logic , Editura
NESTOR, Chiinu, Republica Moldova, 2000.
[CRO] Croitoru, C. Tehnici de baz n optimizarea
combinatorie, Editura Universitii Al. I. Cuza, Iai,
Romnia, 1992.
Fundamentele logice ale Informaticii 313
[DEX] Dicionarul explicativ al limbii romne, Editura
Univers Enciclopedic, Bucureti, Romnia, 1998.
[DID] Manualele de Algebr clasele a X-a, a XI-a, a XII-a,
Analiz , clasele IX-XI, Editura Didactic i
Pedagogic, Bucureti, Romnia, 2003.
[DIJ] Dijkstra, E. W. A Discipline of Programming,
Prentice Hall, Englewood Clifs, S. U. A., 1976.
[GIR] Girard, J. J. Linear Logic, Theoretical Computer
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.
[IVA] Ivac, C., Prun, M. Bazele informaticii, Editura
PETRION, Bucureti, Romnia, 1995.
[JUC] Jucan, T., Andrei, . Limbaje formale i teoria
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.
[LUC] Lucanu, D., Jucan, T. Programarea
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.
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.
[RIC] Richman, F. (Ed.) Constructive Mathematics
(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.
[SCH] Schning, U. Logic for Computer Scientists,
Birkhuser, Berlin, Germania, 1989.
[SEG] Segerberg, K. A Completeness Theorem in the
Modal Logic of Programs, Preliminary Report,
Notices of the A. M. S., Vol. 24, No. 6, A-552, S.U.A.
[SOR] Sorin, T. Tehnici de programare, Editura TEORA,
Bucureti, Romnia, 1994.
[IP] iplea, F. L. Introducere n teoria mulimilor,
Editura Universitii Al. I. Cuza, Iai, Romnia,
1998.
Fundamentele logice ale Informaticii 315
[WIN] Winskel, G. The Formal Semantics of
Programming Languages. An Introduction, M. I. T.
Press, Massachusetts, S. U. A., 1990.

S-ar putea să vă placă și