Documente Academic
Documente Profesional
Documente Cultură
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)
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
= 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 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
).
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
,
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 ?
= 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
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
=
. 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
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
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
, 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
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):
], 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
-
b c
e
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
= 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
,
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]
ca fiind:
F
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.