Sunteți pe pagina 1din 85

Universitatea Alexandru Ioan Cuza

Facultatea de Informatic
Departamentul de nvmnt la Distan

Cristian Masalagiu

LOGICA PENTRU INFORMATICIENI


Anul I, Semestrul I

2005-2006

Adresa autorului: Universitatea Alexandru Ioan Cuza


Facultatea de Informatic
Str. G-ral Berthelot 16
700483 Iai
Romnia
e-mail:mcristy@infoiasi.ro
web home page: http://www.infoiasi.ro/~masalagiu

DESCRIEREA MANUALULUI
Realitatea este alctuit din obiecte i fenomene aflate n relaii de
interdependen. Relaiile (legturile) se reflect - n procesul gndirii umane prin
afirmaii (judeci). Logica (n sens filozofic) este tiina regulilor generale ale gndirii,
cu accent pe aspectele exacte i de natur structural ale acesteia ([DEX]). Astfel,
Logica studiaz modul de alctuire a raionamentelor corecte, prin care, pornind de la
afirmaii iniiale (presupuse a fi adevrate) se obin (utiliznd reguli de inferen)
afirmaii noi (de asemenea adevrate). La nivel intuitiv, o afirmaie este adevrat dac
reflect n mod adecvat realitatea i fals n caz contrar. Este acceptat faptul c valorile
de adevr ataate unei afirmaii pot avea o natur subiectiv i, n consecin, pot fi i
altceva dect cele standard (adevrat i fals). Ne putem gndi la ceva de genul:
necunoscut, posibil adevrat, adevrat din timp n timp, etc. Cu ajutorul logicii, realitatea
poate fi ns cunoscut mai profund i aprioric. Logica clasic (aristotelic, bivalent)
admite doar afirmaii crora li se poate asocia n mod unic o valoare de adevr standard
(independent de contextul, momentul de timp, etc., n care acestea sunt prezentate) i se
bazeaz n esen pe principiul tertium non datur (teriul exclus: dac o afirmaie nu este
adevrat, atunci ea este cu certitudine fals i reciproc). Logica matematic (formal)
preia problemele logicii filozofice i le cerceteaz folosind mijloace matematice specifice,
punndu-se baz pe rigurozitate i claritate n detrimentul nuanelor sau intuiiei.
Aplicarea acesteia n Informatic necesit o anumit adaptare, att a modului de
prezentare a conceptelor (terminologiei) ct i a metodelor de demonstraie, accentul
cznd pe constructivism.
Obiectivele principale ale cursului sunt reprezentate de Teoriile logice i
sistemele de demonstraie (Modulul 4) pe de o parte i de Introducerea n programarea
logic (Modulul 5), pe de alt parte. Coninutul Modulului 4 este important n special pentru nelegerea i manipularea simpl a aspectelor teoretice i nelegerea
construciei/funcionrii unui calculator. Modulul 5 este doar o introducere n
programarea logic (limbaje de tip PROLOG). Logica este astfel i un limbaj de
programare de nivel nalt. Textual, primele trei module ocup spaiu editorial mai mare,
dei ele sunt doar nite anexe (absolut indispensabile ns) pentru nelegerea i
fundamentarea teoretic a ultimelor dou. Supradimensionarea Modulelor 1-3 este
justificat prin aceea c materia este complet nou pentru absolvenii de liceu. Modulul
1 Funcii booleene, Modulul 2 Logica propoziional (Calculul propoziional) i
Modulul 3 Logica (Calculul) cu predicate de ordinul I, nu sunt subdivizate n acelai
numr de lecii. Precizm faptul c lecia este unitatea de nvare elementar,
eventuala ei subdivizare fiind lsat la latitudinea cititorului. Leciile sunt i numerotate
cresctor n cadrul fiecrui modul. Definiiile, teoremele, exerciiile, tabelele, sunt de
asemenea numerotate cresctor n fiecare modul, folosindu-se i numrul modulului.
Exemplele i observaiile nu sunt (n general) numerotate. Exerciiile din partea de
Verificare (Testare) a fiecrui modul sunt numerotate cresctor, ncepnd cu 1, fr a se
folosi numrul modulului (ele vor fi referite ns sub forma V.2.3, ceea ce nseamn
Exerciiul 3 din Modulul 2). Addenda este dat la sfritul fiecrui modul i nu la
sfritul crii, sub form de Index (mpreun cu partea de Rezumare), iar Bibliografia
este selectiv i opional.

4
Recomandm cititorului s parcurg manualul n ordinea indicat i s nu treac
la nvarea urmtorului paragraf, lecie, modul dect dup ce s-a asigurat c stpnete
pe deplin materia anterioar. Revenirile sunt uneori necesare, dar desigur neindicate
explicit n text.

CUPRINS

Descrierea manualului ---------------------------------------------------- 3


Modulul 1 Funcii booleene -----------------------------------------------7
o
o
o
o
o

Modulul 2 Logica propoziional (Calculul propoziional) --------18


o
o
o
o

o
o
o
o
o

Lecia 1 ------------------------------------------------------------------40
Lecia 2 ------------------------------------------------------------------47
Lecia 3 ------------------------------------------------------------------50
Lecia 4 ------------------------------------------------------------------51
Lecia 5 ------------------------------------------------------------------53
Rezumare i Addenda ------------------------------------------------56
Verificare/Testare -----------------------------------------------------57

Modulul 4 Teorii logice i sisteme de demonstraie ------------- ---58


o
o
o
o
o

Lecia 1 ------------------------------------------------------------------ 19
Lecia 2 ------------------------------------------------------------------ 21
Lecia 3 ------------------------------------------------------------------ 24
Lecia 4 ------------------------------------------------------------------27
1. Forme Normale ------------------------------------------------ 28
2. Satisfiabilitate -------------------------------------------------- 29
3. Satisfiabilitatea formulelor Horn ---------------------------- 30
Lecia 5 ------------------------------------------------------------------33
Lecia 6 ------------------------------------------------------------------36
Lecia 7 ------------------------------------------------------------------37
Rezumare i Addenda ------------------------------------------------37
Verificare/Testare -----------------------------------------------------38

Modulul 3 - Logica (calculul) cu predicate de ordinul I --------------40


o
o
o
o
o
o
o

Lecia 1 ------------------------------------------------------------------ 9
Lecia 2 ------------------------------------------------------------------12
Lecia 3 ------------------------------------------------------------------15
Rezumare i Addenda ------------------------------------------------17
Verificare/Testare -----------------------------------------------------17

Lecia 1 ---------------------------------------------------------------- --59


Lecia 2 ---------------------------------------------------------------- --63
Lecia 3 -------------------------------------------------------------------64
Rezumare i Addenda -------------------------------------------------66
Verificare/Testare ------------------------------------------------------67

Modulul 5 Introducere n programarea logic -------------------- ----69


o
o
o
o

Lecia 1 ---------------------------------------------------------------- ---70


Lecia 2 ---------------------------------------------------------------- ---72
Rezumare i Addenda --------------------------------------------------74
Verificare/Testare -------------------------------------------------------74

Anex (rezolvri)----------------------------------------------------------------75
Tema de control --------------------------------------------------------81
Bibliografie ------------------------------------------------------------------ -----84

MODULUL 1 - Funcii booleene


INTRODUCERE
Modulul n sine are ca scop familiarizarea cititorului cu o clas particular de
funcii clasa funciilor booleene. Aceste funcii, de mai multe argumente, 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 semanticii logicii propoziionale n sens clasic, att conceptual ct i din
punctul de vedere al rezultatelor cele mai importante. Schimbnd semnificaia
simbolurilor 0 i 1 din cifr n valoare de adevr (fals, respectiv adevrat), a operaiilor
+ i , etc., din adunare (atenie, nu este vorba dup cum se va vedea de adunarea
n mulimea numerelor naturale i nici de cea modulo 2) i opus (evitai paralela intuitiv
cu numerele), n disjuncie, respectiv negaie, etc., multe rezultate din logica
propoziional pot fi ulterior deduse printr-o simpl traducere. 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.
Prin specificarea unei proprieti caracteristice. A = {x R | x2 + 9x 8 = 0},
este mulimea rdcinilor reale ale unei ecuaii polinomiale de gradul al II-lea.
Mai exist o modalitate aparinnd algebrei clasice, care, fr a fi fost tratat n mod
explicit, a fost totui suficient de des utilizat. 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 o mulime bine-ordonat, [TIP]), astfel:
Baza: 0 N (zero este numr natural).
Pas constructiv (structural): Dac n N, atunci s(n) 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 prezente n N) i simbolul 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 continuare vom presupune implicit c procedm n acest mod la fiecare
definiie constructiv). Soluia adoptat pentru 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 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 n ordinea scrierii lor n secven, existnd i posibilitatea schimbrii acestei

8
ordini prin instruciuni de salt explicite. 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. Din motive tehnice, vom lua uneori n considerare i algoritmi care nu
se termin pentru toate intrrile, pe care-i vom numi semialgoritmi. Un (semi)algoritm
poate fi descris sub mai multe forme, printre care se numr i pseudocodul. Astfel,
definiia constructiv a lui N poate deveni, n limbaj algoritmic (pseudocod):
Intrare: -.
Ieire: N.
Metod:
Pas 1: N { =0}.
Pas 2: Ct_timp (este posibil) execut
Pas 3: Alege n N.
Pas 4: N =N U {s(n)}.
Sf_Ct_timp.
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>, <cretere>, <valoare final>, execut
<corp> Sf_Pentru). Cteodat vom ntrebuina i varianta Repet <corp> Pn_cnd
(<condiie>) Sf_Repet a primei instruciuni. Vom putea accepta astfel:
Principiul 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:
Baza: Artm c P(a) este adevrat pentru fiecare a A.
Pas inductiv: Fie orice b A, element nou obinut din elementele deja construite a1, a2,
... , an, cu ajutorul operatorului f (vom prescurta acest lucru scriind b = f(a1, a2, ... , an),
dei relaia nu este ntotdeauna de natur funcional) i presupunem c este adevrat
P(ai) pentru fiecare ai {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. Folosim
cuvntul principiu n loc de teorem, deoarece n cele de mai sus stipulm pentru cazul
mulimii numerelor naturale c formulele (n)P(n) i P(0) (n)(P(n) implic
P(n+1)) (tim c 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) sunt tare echivalente (n sensul
precizat n Modulul 2). Acest fapt, dei adevrat n anumite situaii particulare nu este
adevrat n sensul logicii formale, la modul general.

DEZVOLTARE
LECIA 1
Se presupun cunoscute noiunile i notaiile de baz din matematica de liceu.
Dac vom folosi ceva nou, vom preciza acest lucru n mod explicit. De exemplu,
submulimea {1, 2, ... ,n} a lui N se va nota 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, deoarece dorim s evitm
folosirea unor paranteze multiple acolo unde nu este necesar). Cunoaterea literelor
alfabetului grecesc poate fi un avantaj. Notm cu B mulimea {0, 1} i cu FB(n) = {f | f :
Bn B}, Bn reprezentnd produsul cartezian al lui B cu el nsui, luat de n N ori (Bn
= B B ... B). FB(0) va coincide cu B, prin convenie. Punem astfel:
FB = U FB n
n 0

(0)
FB = B
2n

Observaie. card (FBn) = 2 . Cardinalul unei mulimi A va mai fi notat, atunci cnd nu
exist confuzii, cu |A|. Mai mult, dac att domeniul ct i codomeniul unei funcii sunt
mulimi finite, funcia poate fi dat tabelar (numit tabel de adevr, dei semnificaia
acestui termen poate conduce n acest moment la confuzii). n cazul unei funcii f
FB(n) (operaie n-ar), aceasta se definete prin:
x2
...
xn
f(x1, x2, ... , xn)
x1
0
0
0
f(0, 0, ... , 0)
0
0
1
f(0, 0, ... , 1)
...
...
...
...
...
...
1
1
1
1
f(1, 1, ... , 1)
2n

ntrebare. Justificai egalitatea card (FBn) = 2 .


Putem indica acum cteva funcii importante din FB. Desigur c n FB(0) avem doar
constantele corespunztoare, elemente ale lui B (funcii de 0 variabile).
Pentru n = 1, cele 4 funcii (operaii 1-are; unare) sunt c0 (funcia indentic 0), c1
(funcia identic 1), 1B (identitatea) i (negaia, opusul), date prin:
c1
1B
x
c0
0
0
1
0
1
1
0
1
1
0

Pentru n = 2, din totalul celor 16 funcii posibile (operaii 2-are; binare), cteva dintre
cele mai importante sunt: + (suma, adunarea boolean, disjuncia), (produsul boolean,
conjuncia), (suma modulo 2) i | (anticonjuncia, operaia lui Sheffer):

10

x+y

xy

xy

x|y

0
0
1
1

0
1
0
1

0
1
1
1

0
0
0
1

0
1
1
0

1
1
1
0

ntrebare. Cte funcii sunt n FB(3)? Putei da vreun exemplu de asemenea funcie,
care s aib i o semnificaie cunoscut ?
ntrebare. Putei descoperi singuri metoda standard de construcie a liniilor unui
tabel ca cel de mai sus? n caz de rspuns afirmativ, folosii metoda i n rspunsul la
ntrebarea precedent.
Observaie. Pe mulimea B, funciile binare i + i funcia unar pot fi privite ca legi
de compoziie interne. Astfel, ntr-un mod cu totul similar cu cazurile cunoscute ale
grupului, inelului sau corpului datorit unor proprieti specifice ale operaiilor
respective - B = < B, , +, > formeaz o algebr boolean, sau algebr Boole (dup
numele deja menionat al matematicianului G. Boole, 1815 1864).
Definiia 1.1. Se numete algebr boolean un 4-uplu M, M = <M, , , ~ >, format
din orice mulime nevid M (suportul algebrei) dou operaii binare , : M M M
i o operaie unar ~ : M M, care satisfac condiiile (legile):
comutativitate (a lui )
1) x y = y x.
asociativitate (a lui )
2) (x y) z = x (y z).
distributivitate ( fa de )
3) x (y z) = (x y) (x z).
absorbie
4) (x y) y = y.
legea contradiciei
5) (x (~x)) y = y.
i
comutativitate (a lui )
1) x y = y x.
asociativitate (a lui )
2) (x y) z = x (y z).
distributivitate ( fa de )
3) x (y z) = (x y) (x z).
absorbie
4) (x y) y = y.
legea tautologiei
5) (x (~x)) y = y.
Legile (axiomele) de mai sus nu reprezint identiti, ele trebuind nelese ca fiind
nite ecuaii satisfcute pentru toate valorile variabilelor x, y, z, care sunt nume generice
pentru elemente din M. Fiecare dintre cei doi membri reprezint funcii booleene
(numrul de argumente fiind dat de numrul de nume de variabile distincte care apar).
Egalitatea nseamn egalitate de funcii. n general, considernd afirmaii (notate 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 fie axiome (Baza
definiiei structurale), fie obinute din axiome printr-un anumit raionament (Pasul
constructiv: se gsesc afirmaii noi, numite teoreme, din afirmaii vechi), putem defini
dualele lor, A, n felul urmtor:
A se obine din A prin nlocuirea simultan (textual) a tuturor apariiilor lui cu i
a tuturor apariiilor lui cu .

11
Putem extinde conceptul i notaia anterioar la obiecte oarecare (afirmaii, dar i
elemente din M, funcii peste M, etc.). Astfel, n B, 1 este dualul lui 0 (evident i
reciproc, relaia de dualitate fiind o relaie simetric), duala sumei este produsul (se
dualizeaz ntreaga tabel de adevr), etc. ntr-o algebr boolean oarecare M se poate
arta (demonstraia formal nefiind important pentru scopul acestei lucrri) c exist
x ) = 0 i (mcar) un
(mcar) un element (notat 0 M) care satisface ecuaia x ( ~
~
element 1 M, care este dualul lui 0, satisfcnd x ( x ) = 1 (0 fiind desigur distinct de
1). Mai mult, relaia de dualitate este i idempotent (avem (o) = o, pentru fiecare obiect
o), existnd i obiecte autoduale, adic obiecte care satisfac o = o (de exemplu, funciile
1B, i f FB(3), dat prin f(x, y, z) = x y z, sunt autoduale). Fiecare axiom i), i
[5] are duala sa i) i nlocuind ntr-un raionament prin care se obine o teorem A orice
axiom cu duala ei, vom gsi un raionament (dual), prin care se obine (deduce,
demonstreaz) afirmaia A. Este justificat atunci s adoptm principiul dualitii pentru
B (care este i el un caz particular al principiului induciei structurale). De fapt, pentru
fiecare text (secven finit de caractere grafice) se poate afla dualul su, dup schema
sugerat anterior.
O afirmaie boolean A este adevrat dac i numai dac duala sa A este
adevrat.
Teorema 1.1. Artai c B = < B, , +, > este o algebr boolean i c pentru fiecare x
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 prima afirmaie de mai sus (n cazul nostru, este nlocuit de
iar de ctre +). Privind att membrul stng ct i membrul drept al ecuaiilor ca
expresiile unor funcii, vom folosi tabelele de adevr. Datorit simplitii calculelor,
dintre axiome vom arta aici doar validitatea lui 4). Avem:
x
y
xy
(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
0
1

x
1
0

x (x)
0
0

Adevrul axiomei 4) rezult din primul tabel prin compararea penultimei coloane (care
este membrul stng al ecuaiei) cu ultima 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 c0).

12
O alt algebr boolean cunoscut este dat de mulimea prilor (submulimilor)
unei mulimi oarecare V, notat 2V, mpreun cu intersecia, reuniunea i complementara
fa de V, V = < 2V, , U, CV>.

CONSOLIDARE
LECIA 2
ntr-o algebr boolean (n particular, n B) sunt valabile i alte afirmaii. Ele sunt
teoreme n sensul deja precizat ceea ce nseamn c pot fi demonstrate fie utiliznd
tabelele de adevr, fie construind un raionament clasic (de tip matematic) pornind de
exemplu - de la axiome i/sau de la afirmaii demonstrate anterior. Sumarizm cteva
dintre ele n tabelul urmtor (n 6) 10) i 6) 10) se adaug pentru fiecare x B).
6) x = x
6) x = x
7) x x = 0
7) x + x = 1
8) x x = x
8) x + x = x
9) x 0 = 0
9) x + 1 = 1
10) x 1 = x
10) x + 0 = x
11) x1 x2 xn = 0 dac i numai dac 11) x1 + x2 + + xn = 1 dac i numai
exist i[n] astfel nct xi = 0 (oricare ar fi dac exist i[n] astfel nct xi = 1 (oricare
n 2 i oricare ar fi x1, x2, ..., xn B)
ar fi n 2 i oricare ar fi x1, x2, ..., xn B)
12) x1 x2 xn = 1 dac i numai dac 12) x1 + x2 + + xn = 0 dac i numai
pentru fiecare i[n] avem xi = 1 (oricare dac pentru fiecare i[n] avem xi = 0
ar fi n 2 i oricare ar fi x1, x2, ..., xn B) (oricare ar fi n 2 i oricare ar fi x1, x2, ...,
xn B)
13) x1 x 2 ... x n = x1 + x 2 + ... + x n (oricare 13) x1 + x 2 + ... + x n = x1 x 2 ... x n
ar fi n 2 i oricare ar fi x1, x2, ..., xn B)

(oricare ar fi n 2 i oricare ar fi x1, x2, ...,


xn B)

Tabelul 1.1.

n tabel am trecut att anumite afirmaii ct i dualele lor (afirmaia 6) fiind


autodual). Tabelul putea fi completat, de exemplu, cu generalizarea la n > 3 elemente a
asociativitii, comutativitii, distributivitii. Afirmaiile 13) i 13) se numesc legile lui
deMorgan.
n continuare vom trece n revist cteva rezultate importante din teoria funciilor
booleene, acestea anticipnd un anumit suport abstract pentru modulele urmtoare. O
prim parte dintre ele vor fi reluate pe parcursul lucrrii, ntr-un alt cadru. O a doua parte
este prezent i n programa analitic a altor cursuri. Pentru nceput, s menionm c o
clas de proprieti interesante se refer la o metod general de reprezentare a funciilor
din FB. n teorema urmtoare, adoptm notaiile x1 = x i x0 = x (n sensul c puterea
1 las elementul neschimbat, iar puterea 0 i adaug o bar). S notm c indicii

13
superiori precedeni nu se supun principiului dualitii (adic, de exemplu, (x1 = x)
(x0 = x)). Totul este necesar pentru simplificarea scrierii.
Teorema 1.2 (de descompunere, cu termeni). Pentru fiecare n N*, f FB(n) i fiecare k
[n], avem:

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

1
1
1 , 2 ,..., k B

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

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


Demonstraie. Dac elementele xi, i B atunci, direct din definiie, rezult c (x0) =
(x)0 i x = 1 dac i numai dac x = . Folosind 12) (Tabelul 1.1), rezult imediat c,

n condiiile teoremei, x1 1 x 2 2 ... x k k = 1 dac i numai dac xi = i pentru fiecare


i [n]. Fie acum elementele a1, a2, ... , an B, oarecare, fixate. Conform proprietii
anterioare, n

1
1
1 , 2 ,..., k B

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


1

unul i numai unul dintre factorii a1 a2 ... ak va fi egal cu 1, adic cel pentru
care i = ai, pentru fiecare i [k]. Datorit comutativitii i legilor 10), 9) i 10)
(Tabelul 1.1), rezult c suma este egal exact cu f(a1, a2, ... , an).
Este adevrat i teorema dual, ambele rezultate fiind folosite pentru demonstrarea
existenei formelor normale pentru funciile booleene. nafara nlocuirii lui + cu i a lui
cu , numele 1 , 2 , ... k, se nlocuiesc cu aceleai elemente, dar barate.
Definiia 1.2. Fie n N* i x1, x2, ... , xn B variabile (booleene) distincte (putem nota
cu X = {x1, x2, ... , xn}, ideea fiind ns c lucrm cu o list). Se numete termen (n-ar)
orice produs t =

xi1 1 xi2 2 ... xik k , unde 0 k n, 1, 2, ... , k B i 1 i1 < i2 < ...

< ik n.
n definiia precedent, termenul generat pentru k=0 este 1 (prin convenie).
Pentru k = n obinem aa-numiii termeni maximali (maxtermeni), adic acei termeni n
care fiecare dintre variabilele considerate apare o dat i numai o dat (barat sau
nebarat).
Observaie. ntre mulimea termenilor n-ari t (peste x1, x2, ... , xn) i mulimea n-uplelor
peste {0, 1, 2} (aceasta coincide cu mulimea {f | f : [n] {0, 1, 2}}) se poate stabili o
coresponden biunivoc g, dat de g(t) = <e1, e2, ... , en>, unde, pentru fiecare i [n],
avem ei = 0 dac xi apare barat n t, ei = 1 dac xi apare nebarat n t i ei = 2 n rest (xi nu
apare n t). Mulimea termenilor n-ari considerai va avea atunci 3n elemente. Raionnd
similar pentru cazul maxtermenilor n-ari (n acest caz, nu este posibil ca vreo variabil
considerat s nu apar), rezult c exist 2n maxtermeni n-ari distinci (indiferent de
numele celor n variabile diferite fixate).
Dup cum se observ i din exemplul care urmeaz, consideraiile de natur
combinatorial sunt practic indispensabile n vederea obinerii unor rezultate convenabile.
Exemplu. Dac lum n = 2 i notm x1 cu x i x2 cu y, atunci cei 32 = 9 termeni sunt: x,
y, x , y , x y, x y, x y , x y, 1. Cei 22 = 4 maxtermeni sunt: x y, x y, x y , x y.

14
Definiia 1.3. Se numete form normal disjunctiv (n-ar, n N* ) (n-)FND pe scurt
- orice sum (finit) de termeni n-ari distinci. Se numete form normal disjunctiv
perfect (n-ar, n N* ) (n-)FNDP - orice sum de maxtermeni n-ari distinci.
Orice FND se poate reprezenta i grafic, ca un arbore ([KNU], [LUC]). Datorit
comutativitii adunrii putem face abstracie de ordinea (max)termenilor dintr-o sum,
mai exact, lund oricare dou sume care difer doar prin ordinea termenilor le vom
k
considera ca fiind identice. Vor exista astfel C 3 n forme normale disjunctive n-are

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


acceptat i ca fiind perfect - va fi considerat ca fiind 0). n consecin, numrul total al
n-FND urilor va fi:
n

C30n + C31n + ... + C3kn + ... + C33n = 23

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


n

C20n + C21n + ... + C2kn + ... + C22n = 22 .

Teorema 1.3. Orice funcie boolean se poate reprezenta n mod unic ca o FNDP.
Demonstraie. Fie fixate n N*, f FB(n) i X = {x1, x2, ... , xn}. Aplicnd Teorema de
descompunere pentru f i k = n, gsim c f se poate scrie sub forma:

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

1
1
1 , 2 ,..., k B

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

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

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

1
1
1 , 2 ,..., n B

x 2 2 ... x n n ,

oricare ar fi x1, x2, ... , xn B, 1, 2, ... , n B, astfel nct f(1, 2, ... , n) = 1, ceea ce
este o reprezentare a lui f ca o n-FNDP. Unicitatea reprezentrii provine din faptul c
mulimea n-FNDP urilor i mulimea FB(n) au acelai cardinal (numr de elemente n
acest caz). Se mai spune c expresia din membrul drept al reprezentrii este (o) FND(P)
pentru f.
Dualiznd, obinem noiunile de (n-)factor (orice sum de n variabile, aprnd
barat sau nu), maxfactor (n-ar) un (n-)factor n care apar toate variabilele, form
normal conjunctiv (n-ar) ((n-)FNC, orice produs de factori dictinci), form normal
conjunctiv (n-ar) perfect ((n-)FNCP, orice produs de maxfactori distinci). Nu uitm
c se aplic asociativitatea generalizat i comutativitatea, peste tot, att pentru sum ct
i pentru produs, astfel nct doi termeni sau factori nu vor fi distinci dac difer doar
prin ordinea componentelor. Aplicnd principiul dualitii, obinem c este adevrat
duala Teoremei 1.3.
Teorema 1.4. Fie orice n N*, f FB(n) i oricare nume distincte de variabile x1, x2, ... ,
xn. Atunci f se poate reprezenta n mod unic ca o FNCP peste X = {x1, x2, ... , xn}, adic:

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

(x

1
1
1 , 2 ,..., n B

+ x 2 2 + ... + x n n ) ,

oricare ar fi x1, x2, ... , xn B, 1, 2, ... , n B, astfel nct f( 1 , 2 , ... , n ) = 1.

15

LECIA 3
Dei rezultatele teoretice anterioare sunt ncurajatoare (funciile booleene, date
tabelar, pot fi reprezentate i prin expresii standard FNDP, FNCP; acestea sunt unice;
se pot construi algoritmic, conform Teoremei 1.3 i Teoremei 1.4, etc.), s-ar putea ca
din punct de vedere practic s nu fie chiar cele dorite. Astfel, ne-am putea pune problema
gsirii celei mai scurte forme normale, funcie de o anumit msur fixat. Exist
numeroase msuri candidat pentru o FND sau FNC simple, notat : lungimea ca text
(numr de caractere grafice); numrul de operatori folosii (poate chiar exceptnd
negaia); numrul de variabile peste care este construit forma respectiv; numrul de
nivele din arborele ataat; numrul de termeni (factori); numrul de componente ale unui
termen (factor); numrul total de apariii a variabilelor (apariia unei aceleiai
variabile pe poziii diferite se numr distinct), etc. Considernd ultima msur (pe
care o vom nota cu n()), putem numi form normal disjunctiv minimal (FNDM)
pentru f FB, orice FND astfel nct:
n() = min {n() | este FND pentru f}.
Dat o funcie boolean f FB, se poate pune problema determinrii tuturor FNDM
pentru f, sau a uneia standard (ceea ce este posibil deoarece pentru fiecare numr natural
n
n numrul funciilor booleene n-are este 2 2 iar numrul formelor disjunctive n-are este
n
2 3 ). Problema anterioar este rezolvabil cu ajutorul algoritmului lui W. Quine
([CAZ]). Algoritmul lui Quine intr sub incidena principiului dualitii, astfel nct
fcnd modificrile de rigoare el poate determina i toate formele normale conjunctive
minimale (FNCM) pentru orice funcie boolean. O problem similar, prin rezolvarea
creia s-ar putea reduce - n anumite cazuri timpul de procesare a unor texte (expresii,
formule, etc.), este gsirea unui numr minim de operaii booleene convenabile.
Definiia 1.4. Clasa funciilor booleene elementare este:
E = { i pn | n N*, 1 p n, i pn : Bn B, i pn (x1, x2, ... , xp, ... , xn) = xp}.
Fie n N*, t - numr natural, f, h1, h2, ... , ht FB(n) i g FB(t). Spunem c f se obine
din g, h1, h2, ... , ht prin superpoziie dac pentru fiecare x = <x1, x2, ... , xn> avem:
f(x) = g(h1(x), h2(x), ... , ht(x)).
Fie M FB. Se numete M-ir orice secven (list) finit f0, f1, ... , fr de funcii booleene
n care fiecare fi este fie din E U M fie se obine prin superpoziie din funcii
corespunztoare, aflate n aceeai list dar naintea lui fi.
Funciile i pn se mai numesc i proiecii, superpoziia poate fi identificat dac utilizm
notaia f = SUP(g, h1, h2, ... , ht), iar M va denota mulimea funciilor care pot aprea ca
elemente n M-iruri. Pentru fiecare M dat, M va fi practic o mulime definit
constructiv, n care E U M constituie mulimea funciilor de baz iar (operatorul de)
superpoziie este singura modalitate de a se obine funcii noi din funcii vechi. Prin
urmare, M este cea mai mic mulime care conine proieciile i elementele lui M i este
nchis la superpoziie. Algebric vorbind, se mai spune c M este nchiderea prin
superpoziie a mulimii M U E. M se va numi nchis dac coincide cu nchiderea sa.
Teorema 1.5 ([CAZ]). O mulime M FB este nchis dac i numai dac conine
funciile elementare i orice superpoziie de funcii din M se afl n M.

16
Exemple imediate de mulimi nchise sunt E i FB. Se poate arta i c urmtoarele
mulimi (infinite) sunt mulimi nchise:
T0 mulimea funciilor booleene de oricte argumente care pstreaz pe 0, adic
satisfac f(0, 0, ... , 0) = 0.
T1 dual, mulimea funciilor care pstreaz pe 1, adic satisfac (f(1, 1, ... , 1) =
1).
Aut mulimea funciilor autoduale (f = f). S notm ca o proprietate de
caracterizare interesant pentru aceast clas de funcii i faptul c f(x1, x2, ... ,
xn) = f ( x1, x 2, ..., 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 1; avem chiar 0 < 1, dar nu asta este esenial n tratarea relaiei de
ordine), care poate fi extins pe componente la orice produs cartezian: dac
lum dou n-uple = <1, 2, ... , n> i = <1, 2, ... , n>, i, i B, i [n],
vom spune c dac i numai dac i i pentru fiecare i [n] (desigur c
vom avea < dac i numai dac i adic i difer prin mcar o
component). O funcie f FB(n) este monoton dac pentru fiecare , Bn, din
rezult f() f().
Lin mulimea funciilor liniare. Se poate arta c tripletul I = <B, , > este inel
comutativ cu unitatea 1 care este izomorf cu inelul claselor de resturi modulo 2
(cele dou mulimi se pot 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 = x y = (x1) (y 1) 1 = x
y x y, precum i proprietile inelelor, pentru a observa c FND a lui f
devine o sum modulo 2 de termeni care sunt produse de variabile distincte.
Numrul acestor produse este 2n, deci numrul polinoamelor modulo 2 este
n
2 2 (exceptnd comutativitatea), acelai ca i numrul funciilor booleene n-are
(de unde urmeaz unicitatea). Spunem c o funcie f FB(n) este liniar dac
reprezentarea sa unic sub form de polinom modulo 2 are aspectul:
c0 c1 x1 c2 x2 ... cn xn, ci B, i [n].
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).
Este 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 manipulat, mcar n anumite
contexte precizate. Acceptm fr demonstraie (Teorema 1.7 a fost practic demonstrat
anterior), urmtoarele rezultate.
Teorema 1.6 (E. L. Post). O mulime de funcii booleene este complet dac i numai
dac nu este inclus n nici una dintre mulimile T0, T1, Aut, Mon, Lin.
Teorema 1.7. Orice baz conine cel mult patru funcii i exist baze compuse din una,
dou, trei i patru funcii.

17

REZUMARE I ADDENDA
Teoria funciilor booleene constituie suportul pentru semantica logicii clasice.
nelegerea problematicii modulelor 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 ntr-un mod intuitiv, pentru coerena materialului subiecte colaterale cum ar
fi cele privind algoritmii (imperativi), mulimile definite structural (constructiv),
principiul induciei structurale. Apropo de cele punctate, folosirea nediscreionar, n
acest moment, de ctre cititor a unor termeni introdui doar informal (cum sunt pn
acum - axiom, teorem, raionament, demonstraie, etc.) poate fi duntoare, mrind
confuziile care se fac n mod uzual ntre sintax i semantic sau ntre limbaj i
metalimbaj. Sperm ca urmtoarele dou module s aduc clarificrile necesare. S
furnizm i indexul principalelor cuvinte noi utilizate n acest modul: definiia structural
(constructiv) a unei mulimi, algoritm (imperativ), funcie calculat de un algoritm,
problem rezolvat de un algoritm, terminarea algoritmilor semialgoritm, pseudocod,
principiul induciei structurale, funciibooleene, tabele de adevr, algebre booleene,
afirmaii i obiecte duale,principiul dualitii, termen, maxtermen, form normal
disjunctiv(perfect), factor, maxfactor, n form normal conjunctiv (perfect), form
normal disjunctiv (conjunctiv) minimal, funcii booleene elementare, mulime
nchis de funcii booleene, mulime complet de funcii booleene, baz de funcii.

VERIFICARE (TESTARE)
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 = < 2V, , U, CV> este o algebr boolean, oricare ar fi mulimea (nevid)
V. n plus, demonstrai c 0 = i 1 =V.
3. Artai adevrul afirmaiilor rmase nedemonstrate din Tabelul 1.1.
n
4. Justificai egalitatea card(FBn) = 2 2 .
5. Fie mulimea termenilor n-ari t, construii peste mulimea variabilelor booleene
distincte (ordonate) X = {x1, x2, ... , xn}, precum i mulimea n-uplelor peste {0, 1, 2}.
Artai c exist o funcie bijectiv g, care identific aceste mulimi, dat prin g(t) =
<e1, e2, ... , en>, unde, pentru fiecare i [n], avem ei = 0 dac xi apare barat n t, ei = 1
dac xi apare (nebarat) n t i ei = 2 n rest (adic xi nu apare n t). De asemenea, artai c
se poate stabili 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
considerai va avea 3n elemente i c vor exista 2n maxtermeni n-ari distinci.

18

MODULUL 2 Logica propoziional


(Calculul propoziional)
INTRODUCERE
Dup cum am amintit n Descrierea manualului, manualele de Logic i Algebr
([DID]) pot fi privite ca o introducere n logica formal. i n restul manualelor de
matematic (i nu numai), se folosesc frecvent noiunile de afirmaie, axiom, teorem,
raionament, demonstraie, etc. Aceste noiuni sunt ns descrise 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); o demonstraie
(formal) este transpunerea ntr-o form 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 i 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 spune c inferenele trebuie s fie 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 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, ceea ce se poate face
exist i alte tipuri generale de definiii, asupra crora nu insistm - preciznd o sfer
veche (care caracterizeaz complet o noiune anterior definit i numit gen proxim) i o
mulime de proprieti suplimentare (care nu fac parte din coninutul vechii noiuni, dar
care mpreun cu acesta vor alctui noul coninut), numit diferen specific: un
paralelogram este un patrulater convex care are dou laturi paralele i egale; un romb
este un paralelogram cu toate laturile egale; un ptrat este un romb avnd un unghi de
90, . a. m. d. n acest mod, mergnd invers, procesul de definire a unor noiuni ar
deveni infinit dac nu am accepta existena unor noiuni primare (pentru o mai bun
nelegere se poate recurge i la reprezentri grafice cum ar fi diagramele Venn-Euler
[MAN]). Acestea nu mai sunt definite prin schema gen proxim i diferen specific ci
sunt doar descrise cu ajutorul unor elemente considerate a fi suficiente pentru delimitarea
exact a sferei de sfera altor noiuni (sunt aa-numitele definiii operaionale): o mulime
este o colecie de obiecte distincte dou cte dou; un punct este ceea ce se obine prin
apsarea unui vrf de creion pe o foaie de hrtie, etc. Un proces similar are loc i n cazul
conceptelor de axiom (n rolul noiunilor primare), teorem (n rolul noiunilor
noi), regul de inferen (n rolul diferenei specifice), acceptarea axiomelor avnd
scopul de a evita raionamentele infinite. Aa cum n momentul definirii unei noiuni
(noi) trebuie s fim ateni ca sfera acesteia s fie nevid i (n general) distinct de

19
sferele unor noiuni deja existente (acceptate ca atare), n cazul raionamentelor este de
dorit ca axiomele s reprezinte cu certitudine afirmaii adevrate i inferenele s fie
valide.

DEZVOLTARE
LECIA 1
Ambiguitile permise de limbajul natural, acceptarea utilizrii noiunilor primare
nerealiste i a axiomelor de acelai tip n raionamente complexe, tratarea simultan a
problematicii de natur sintactic i semantic, a creat numeroase confuzii i interpretri
greite, mai mult sau mai puin suprtoare. Enumerm n continuare cteva dintre ele.
Paradoxurile logice. Sunt suficient de bine cunoscute. Paradoxurile se rezolv
odat cu introducerea unui cadru formal (de exemplu teoria axiomatic a
mulimilor i folosirea noiunii de clas, sau definind exact ce nseamn un
raionament).
Silogismele. Inferenele ca pai elementari (indivizibili) ai unui raionament
sunt formele logice cele mai complexe. Fr a insista pe mprirea lor n
deductive i inductive, dei cele mai simple inferene sunt cele imediate, cu
propoziii categorice (o premiz, o concluzie), cele mai folosite sunt silogismele
([MAN]. Silogismul este tipul fundamental de inferen deductiv mediat
alctuit din exact trei propoziii categorice: dou premize, dintre care una
major i alta minor, precum i o concluzie. Ca exemplu:
Premiza major: Toate elementele transuranice sunt radioactive
Premiza minor: Plutoniul este element transuranic, de unde putem trage
Concluzia: Plutoniul este radioactiv.
Pentru a folosi ns doar silogisme valide, este necesar un studiu detaliat,
aprofundat, formal, al acestora. n caz contrar, putem ajunge din nou ca i n cazul
paradoxurilor - s acceptm nite aberaii drept propoziii adevrate i aceasta ca urmare
a aplicrii unui silogism presupus valid, n cazul unui raionament cum ar fi:
Alb este adjectiv
Alb este adjectiv
___________________
Zpada este adjectiv

Greeala n silogismul anterior const n aceea c o lege a silogismelor


stipuleaz c ntr-un silogism valid exist trei i numai trei termeni distinci. Din pcate,
un acelai cuvnt (sau grup de cuvinte) poate materializa mai mult dect o singur
noiune. Astfel, dei n exemplul nostru s-ar prea c avem ntr-adevr trei termeni (alb,
adjectiv, zpada), n realitate avem patru: n premiza major cuvntul alb
materializeaz un element al limbajului (o parte de vorbire), iar n premiza minor el
red o nsuire (care, printre alte obiecte, este caracteristic i zpezii). Ambiguitile vor

20
dispare dac legile de genul amintit vor fi prinse n forma sintactic exact (formal) a
silogismului.
Inferenele deductive cu propoziii compuse i folosirea necorespunztoare a
implicaiei logice. Mai nti, s observm c putem considera c am definit
structural ntreaga (sau mcar o parte important a sa) mulime de afirmaii pe
care le manipulm n limbaj natural, dar n modul sugerat de logica clasic:
pornim de la anumite afirmaii (Baza - propoziii elementare) i apoi (Pas
constructiv) formm propoziii noi (fraze, propoziii compuse) din propoziii
vechi cu ajutorul unor operatori (conectori), cum ar fi sau, i, negaia, implicaia
(dac ... atunci ...), echivalena (dac ... atunci ... i reciproc). Dac notm cu
A i B dou propoziii oarecare (elementare, sau deja compuse), exist atunci
propoziiile compuse C = A sau B (simbolic A B); D = A i B (A B); E =
non A (A); F = dac A atunci B (A B; A se numete ipotez sau antecedent
iar B concluzie sau consecvent) i G = dac A atunci B i reciproc (sau, A
dac i numai dac B, sau A atunci i numai atunci cnd B; simbolic A
B). Cum A i B pot fi doar a - adevrat sau f fals (nu simultan, ci exclusiv),
la fel se va ntmpla i cu propoziiile compuse. Astfel, C va fi a atunci i numai
atunci cnd mcar una dintre A i B este a; D va fi a atunci i numai atunci cnd
att A ct i B sunt a; E va fi a atunci i numai atunci cnd A va fi f; F va fi f
atunci i numai atunci cnd A este a i B este f: n sfrit, G va fi a atunci i
numai atunci cnd A i B sunt simultan a sau simultan f. n consecin, o
implicaie va fi adevrat dac ipoteza este fals. Acum ne putem referi n mod
explicit i la inferene cu propoziii compuse, dintre care cele coninnd
implicaia sunt des utilizate. Cele mai simple sunt inferenele care conin dou
premize i o concluzie, dintre ele distingndu-se cele ipotetico-categorice (prima
premiz este o implicaie iar cea de-a doua const fie din antecedentul sau din
negaia antecedentului, fie din consecventul sau negaia consecventului
implicaiei respective [MAN]). Schemele valide care se folosesc n
raionamente sunt:
AB
A
modus ponendo-ponens (pe scurt, modus ponens)
B
AB
B
modus tollendo-tollens (pe scurt, modus tollens)
A
Validitatea schemelor modus ponens (modul afirmativ) i modus tollens (modul negativ)
rezult imediat din definiia implicaiei. Oprindu-ne la modus ponens, am putea spune c
acesta poate fi reformulat n: din A deducem pe B dac am demonstrat A B (pe
scurt, vom scrie A B).
Exerciiul 2.1. O teorem, n sensul matematicii de liceu, are ipoteze i concluzii.
Scriei simbolic forma general a unei teoreme (directe), utiliznd propoziii elementare
(variabile propoziionale) i conectori logici. Scriei apoi teorema reciproc, contrara
teoremei directe i contrara reciprocei. Exist vreo legtur ntre acestea, n ceea ce
privete valoarea lor de adevr? Dai un exemplu de teorem de caracterizare ( ... dac

21

i numai dac ... ). Putei specifica altfel rezultatul exprimat de teorem, astfel nct s
fie separat - puse n eviden condiia necesar i condiia suficient?
Exerciiul 2.2. S considerm definiia limitei unui ir dat de numere reale, avnd ca
valoare un numr real dat, definiie exprimat cu ajutorul vecintilor care sunt
intervale simetrice fa depunctul considerat. S se exprime simbolic (n sensul
matematicii de liceu, folosind i cuantificatorii) aceast definiie i s se nege formula
astfel gsit.
Exerciiul 2.3. Exprimai simbolic, ca o formul n sensul exerciiilor anterioare
propoziia Dac mi-e sete, beau ap. Negai formula i apoi rescriei rezultatul n limbaj
natural. Dac ai fi negat direct propoziia iniial, ai fi obinut acelai lucru?

LECIA 2
Vom trece direct la prezentarea sintaxei formale a logicii propoziionale
(calculului propoziional). Logica propoziional va fi numele unei mulimi de formule
(propoziionale) notat LPA sau, prescurtat, LP i definit structural astfel:
Definiia 2. 1. Fie o mulime numrabil de variabile propoziionale (formule
elementare, formule atomice, atomi pozitivi), A = {A1, A2, }. Fie, de asemenea, C =
{, , } mulimea conectorilor logici non (negaia), sau (disjuncia), respectiv i
(conjuncia) i P = { ( , ) } mulimea parantezelor (rotunde). Formulele vor fi cuvinte
(bine formate) peste alfabetul L = A U C U P.
Baza (formulele elementare sunt formule): A LP .
Pas constructiv (formule noi din formule vechi):
(i)
Dac F este formul atunci ( F) este formul .
(ii)
Dac F1, F2 LP atunci ( F1 F2 ) LP.
(iii) Dac F1, F2 LP atunci ( F1 F2 ) LP.
Nimic altceva nu este formul.
(iv)
Putem privi o formul ca fiind reprezentat de un arbore binar (arborele ataat lui F), n
modul urmtor (procedm structural, conform definiiei lui LP).
Definiia 2.2.
Baza: Fie F = A A. Atunci arborele ataat lui F (arborele care reprezint F),
notat arb(F), este

Pas constructiv:
(i)
Fie F = ( F1) i s presupunem c se cunoate arborele ataat lui F1, Arb(F1).
Atunci, arborele ataat lui F va fi

()

Arb(F1)

22
(ii)

(ii) Fie F = (F1 F2) i s presupunem c se cunosc att arborele ataat lui F1
ct i arborele ataat lui F2 Arb(F1), respectiv Arb(F2). Atunci arborele ataat
lui F va fi
()

Arb(F1)

Arb(F2)

(iii) Se procedeaz similar ca n cazul (ii).


Dei au un rol pur sintactic, neschimbnd cu nimic semantica formulelor n care
apar, parantezele rotunde au fost din anumite motive tehnice privite mai sus ca un
operator pre/post-fixat. Dac introducem o ordine pe mulimea succesorilor imediai ai
fiecarui nod (implicit, pentru o formul este valabil ordinea de scriere a literelor n
cuvntul respectiv, exceptnd ), care are acelai numr de ordine cu (
corespunztoare), atunci se observ c fiecrei formule i corespunde un arbore ataat
unic i fiecrui arbore ordonat G (cu nodurile etichetate cu elemente din L) i
corespunde o unic formul din LP (pentru care G este arborele ataat). Putem defini
ntr-un mod similar mulimea subformulelor unei formule date. Metoda constructiv - ca
i pn acum - ne va permite s facem acest lucru simultan, pentru toate formulele din
LP. Dat F LP, mulimea tuturor subformulelor sale va fi notat subf(F). Desigur c o
alt definiie (echivalent) ar putea fi: F subf(F) dac F este subcuvnt al lui F i F
LP.
Definiia 2.3.
Baza: Fie F = A A. Atunci subf(F) = { A }.
Pas constructiv:
(i) Fie F = ( F1). Atunci subf(F) = subf(F1) U { ( F1) }.
(ii) Fie F = (F1 F2). Atunci subf(F) = subf(F1) U subf(F2) U { (F1 F2) }.
(iii) Analog cu (ii) pentru cazul F = ( F1 F2 ) (se nlocuiete, peste tot, simultan, cu ).

Observaie. Nu se admit alte posibiliti pentru scrierea unei formule, dect cele fixate
prin Definiia 2.1. Exist de altfel un algoritm care rezolv problema: Dat orice cuvnt
w L* (o secven finit de caractere din L) s se decid dac w LP. Conform, de
exemplu, [TIP], notaia L* se explic prin aceea c mulimea cuvintelor peste un alfabet
cel mult numrabil formeaz un monoid fa de operaia de concatenare (adic de
juxtapunere a literelor/cuvintelor), elementul neutru cuvntul fr nici o liter - fiind
notat e. Algoritmul menionat se termin pentru fiecare intrare w L* cu rspunsul
(ieirea) DA dac w LP i NU dac w LP. O problem de tipul anterior se
numete problem de decizie i reprezint un caz particular al unei probleme de

23

apartenen pentru un limbaj de tip 2 ([JUC]). Revenind, A1 A2 de exemplu, nu este


formul pentru c nu are parantezele necesare. Dar, la fel ca i n cazul cunoscut al
expresiilor aritmetice care conin variabile, constante i operatorii (avnd i sensul de
opus), +, i /, putem accepta convenia de a prescurta scrierea unor expresii
(formule) prin eliminarea unor paranteze (sau chiar pe toate). Acest lucru se poate face
prin atribuirea de prioriti operatorilor, bazndu-ne pe faptul c aritatea lor (numrul de
argumente) este cunoscut, precum i pe unele proprieti de comutativitate,
asociativitate, distributivitate. Tot ca o convenie nesurprinztoare este i aceea de a
folosi i alte nume pentru formulele atomice, nafara celor admise prin faptul c sunt
elemente desemnate a face parte din A. n general vom utiliza pentru aceasta litere mari
de la nceputul alfabetului latin (A, B, C, ...). Putem i aduga cupluri de paranteze
corespondente, la fel cum le-am i eliminat, pentru mbuntirea receptrii corecte a
sintaxei formulelor.
Exerciiul 2.4. Fie formula F = (( A) (B C)). Construii arborele ataat
(verificnd n acest mod i faptul c ntr-adevr F LP). Eliminai parantezele i
stabilii o prioritate a operatorilor care intervin, astfel nct semnificaia intuitiv a noii
secvene de caractere s nu difere de semnificaia iniial (pentru a forma pe F, se
consider nti afirmaiile elementare A, B, C; se consider apoi negaia lui A, notat, s
spunem, A i conjuncia lui B cu C, notat D; n sfrit, se consider disjuncia lui A cu
D).
Vom mai face cteva prescurtri sintactice, justificate de considerente semantice:
(( F) G) se va nota cu (F G).
((( F) G) (( G) F)) cu (F G) sau cu ((F G) (G F)).
n

Fi = F1 F2 ... Fn.

Fi = F1 F2 ... Fn .

i=1
n

i=

Simbolurile i se numesc implicaie, respectiv echivalen i vor fi


considerate ca i cum ar fi fost introduse de la bun nceput n mulimea de conectori C
(dac am fi procedat astfel, s-ar fi complicat att unele lucruri de natur sintactic nu
mai departe dect definiiile constructive, ct i definiia semanticii LP). De asemenea,
vom numi literal o variabil propoziional sau negaia sa. A A se va numi literal
pozitiv iar orice element A A va fi un literal negativ (desigur, A = { A1, A2 ,
}). Mai general, dac L este un literal, complementarul su, L , va nota literalul
L, dac L = L i pe L dac L = L. Sperm ca aceast notaie sintactic s nu fie
confundat cu operaia semantic , prezent n definiia algebrelor booleene, deoarece
rezultatele privind sintaxa sunt n general separate de cele privind semantica(a se
vedea Teorema de 2.1). Se numete clauz o disjuncie (finit) de literali. Se numete
clauz Horn o clauz care are cel mult un literal pozitiv. O clauz pozitiv este o clauz
care conine doar literali pozitivi, iar o clauz negativ va conine doar literali negativi.
O clauz Horn pozitiv va conine exact un literal pozitiv (dar, posibil, i literali
negativi).

24

LECIA 3
Semantica (nelesul) unei formule propoziionale este conform principiilor
logicii aristotelice o valoare de adevr (a sau f), obinut n mod determinist, care nu se
schimb cu contextul, etc. Notnd de la nceput pe a cu 1 i pe f cu 0, astfel nct s
putem lucra cu algebra boolean B = < B, , +, >, noiunea principal este cea de
asignare (interpretare, structur).
Definiia 2.4. Orice funcie S, S : A B se numete asignare.
Teorema 2.1 (de extensie). : Pentru fiecare asignare S exist o unic extensie a acesteia,
S : LP B (numit i structur sau interpretare), care satisface:
(i) S(A) = S(A), pentru fiecare A A.
(ii) S(( F)) = S ( F ) , pentru fiecare F LP.
(iii) S((F1 F2) ) = S(F1) S(F2), pentru fiecare F1, F2 LP.
(iv) S((F1 F2) ) = S(F1) + S(F2), pentru fiecare F1, F2 LP.
Demonstraie. Fie S : A B. Definim atunci urmtoarea funcie S : LP B,
structural, conform definiiei lui LP.
Baza: S(A) = S(A), pentru fiecare A A.
Pas constructiv:
Dac F = ( F1), atunci S(F) = S ( F ) .
Dac F = (F1 F2), atunci S(F) = S(F1) S(F2).
Dac F = (F1 F2), atunci S(F) = S(F1) + S(F2).
Este evident c S este o extensie a lui S, proprietatea i) fiind satisfcut prin
Baza de mai sus. De asemenea, definiiile 1. 3. din Pasul constructiv asigur
satisfacerea punctelor (ii) (iv) din teorem, deoarece orice formul din LP dac nu
este elementar - are una dintre cele trei forme considerate. Mai rmne s artm c S
este funcie total (ataeaz fiecrui element din domeniu un element i numai unul din
codomeniu) i c este unica funcie care satisface (i) (iv). Acest lucru se face printr-o
inducie structural simpl, trebuind s artm c pentru fiecare F LP, este adevrat
P(F), unde P(F) este: oricare ar fi asignarea S, valoarea S(F) exist (ca element al lui
B) i este unic (aici unicitatea are un dublu sens - S este funcie, dar oricare alt
funcie S care ar satisface (i) (iv), satisface i S(F)= S(F)).
Baza: F = A A. Fie orice asignare S. Cum S este funcie (total) prin definiie i avem
S(A) = S(A), tot prin definiie (S este extensia lui S), este imediat faptul c S(A) exist
i este unic n sensul precizat (orice alt posibil S trebuie s fie tot extensie a lui S).
Pas inductiv: Vom arta doar cazul F = ( F1), celelalte dou (F = (F1 F2) i F = (F1
F2) ) fiind similare. Presupunem prin urmare P(F1) ca fiind adevrat i demonstrm c
P(F) este adevrat. Fie orice asignare S. Faptul c S(F) exist (ca element al lui B) i este
unic (n sensul precizat), rezult din nou imediat, din ipoteza inductiv (S(F1) exist i
este unic), din definiia negaiei n B (tim c S(F) = S ( F ) ) i a faptului c orice alt
S trebuie s satisfac punctul (ii) din teorem.
De acum nainte nu vom face nici o diferen ntre asignare i structur
(intrerpretare). Se observ c dat orice formul F LP i orice structur S, este

25

suficient s cunoatem valorile lui S n variabilele propoziionale care apar n F (pentru


fiecare F LP, vom nota cu prop(F) mulimea atomilor care apar n F, sau peste care
este construit F). Vom numi asignare (structur) complet pentru F, orice funcie
parial S care este definit mcar pe prop(F) A i cu valori n B. Putem conchide
chiar c n LP valoarea de adevr a unei formule se deduce n mod unic din valoarea
de adevr a subformulelor (se mai spune c logica propoziional are proprietatea de
extensionalitate).
Exerciiul 2.5. Definii structural prop(F), pentru fiecare F LP.
Fr alte precizri, vom lucra doar cu structuri complete pentru mulimile de
formule care ne intereseaz la un moment dat (n demonstraiile formale vom evita ns
uneori folosirea explicit a funciilor pariale, din motive tehnice).
Definiia 2.5. O formul F LP se numete satisfiabil dac exist mcar o structur S
(complet) pentru care formula este adevrat (S(F) = 1). Se mai spune n acest caz c S
este model pentru F (simbolic, se mai scrie S |= F). O formul este valid (tautologie)
dac orice structur este model pentru ea. O formul este nesatisfiabil (contradicie)
dac este fals n orice structur (S(F) = 0, pentru fiecare S, sau S | F, pentru fiecare S).

Teorema 2.2. O formul F LP este valid dac i numai dac ( F) este contradicie.
Demonstraie. F LP este valid dac i numai dac pentru fiecare structur S avem
S(F) = 1, adic ( ii), Teorema 2.1) dac i numai dac S(( F) ) = 1 = 0 (definiia
negaiei) pentru fiecare S. Ultima relaie nseamn exact faptul c ( F) este contradicie.

Clasa tuturor formulelor propoziionale LP, este astfel partiionat (mulimile


indicate mai jos sunt ntr-adevr nevide i disjuncte) n:
|
Tautologii
Formule sat|isfiabile dar nevalide Contradicii
F
( F)
F
|( F)

|
Tabelul 2.1

n tabelul anterior linia punctat poate fi considerat drept o oglind n care se


reflect adevrul.
Definiia 2.6. Dou formule F1, F2 LP se numesc tare echivalente dac pentru fiecare
asignare S ele au aceeai valoare de adevr, adic S(F1) = S(F2) (simbolic, vom scrie F1
F2). F1 i F2 se numesc slab echivalente dac F1 satisfiabil implic F2 satisfiabil i
reciproc (vom scrie F1 s F2, ceea ce nseamn c dac exist S1 astfel nct S1(F1) = 1,
atunci exist S2 astfel nct S2 (F2) = 1 i reciproc). O formul F LP este consecin
semantic dintr-o mulime de formule G LP, dac pentru fiecare structur corect S
(aceasta nseamn aici faptul c S este definit pentru toate variabilele propoziionale care
apar fie n F fie n elementele lui G), dac S satisface G (adic avem S(G) = 1 pentru
fiecare G G) atunci S satisface F (simbolic, vom scrie G |= F).
Teorema 2.3. Fie G LP i G = { G1, G2, , Gn } LP. Urmtoarele afirmaii sunt
echivalente:

26
(i) G este consecin semantic din G.
n

(ii) (

Gi ) G este tautologie.

(iii) (

Gi ) G este contradicie.

i =1
n
i =1

Demonstraie.
(i) implic (ii). Presupunem prin reducere la absurd (RA, pe scurt) c F = ( Gi) G nu
este tautologie, dei G este consecin semantic din G. Rezult c exist o structur S
pentru care F este fals, adic S( Gi) = 1 i S(G) = 0. Prin urmare, pentru fiecare i [n]
avem S(Gi) = 1 i S(G) = 0. n concluzie, exist o structur S astfel nct S(G) = 1 i S(G)
= 0. Acest lucru este absurd pentru c G este consecin semantic din G.
(ii) implic (iii). Procedm din nou prin reducere la absurd, adic presupunem c dei
(Gi) G este tautologie, (Gi) G nu este contradicie. Aceast nseamn c
F1 = ( Gi) G este tautologie, dar F2 = (Gi) G este satisfiabil. Prin urmare, exist
o structur S astfel nct S(F2) = 1 (i desigur S(F1) = 1). Din S(F2) = 1 rezult
S(( Gi )) S( G) = 1, adic S(( Gi )) = 1 i S( G) = 1. n consecin, S( ( Gi )) = 0
i S(G) = 0. Pentru c S(F1) = S( ( Gi )) + S(G), avem S(F1) = 0, ceea ce este absurd, F1
fiind tautologie.
(iii) implic (i). Presupunem, RA, c F = ( Gi) G este contradicie, dar G nu este
consecin semantic din G. Atunci exist o structur S care satisface toate elementele lui
G dar nu satisface G. Prin urmare, avem S(( Gi )) = 1 i S(G) = 0, adic S(( Gi )) = 1
i S( G) = 1. Cum S(( Gi) G) = S(( Gi)) S( G), rezult c exist S astfel nct
S(( Gi) G) = 1, deci F nu este contradicie (absurd).
Se observ din teorema anterioar c am renunat la anumite paranteze, n cazul n
care confuziile nu sunt posibile. Vom face i pe viitor acest lucru, fr a-l mai meniona
explicit. Trebuie totui pentru a fi riguroi s stipulm n mod formal c
eliminarea/adugarea unor cupluri de paranteze corespondente (( i )), nu va influena
semantica formulei n cauz: pentru fiecare S i F, vom pune S(F) = S((F)).
Teorema 2.4. Sunt adevrate urmtoarele echivalene tari (pentru fiecare F, G, H LP:
(a) F F F i (a) F F F (idempoten).
(b) F G G F i (b) F G = G F (comutativitate).
(c) ( F G ) H F ( G H ) i (c) (F G) H F (G H) (asociativitate).
(d) F ( G H ) (F G) (F H) i (d) F ( G H ) (F G) (F H)
(distributivitate).
(e) F ( F G ) F i (e) F ( F G ) F (absorbie).
(f) F F (legea dublei negaii).
(g) ( F G ) F G i (g) ( F G ) F G (legile lui de Morgan).
(h) F G F i (h) F G G (legile validitii, adevrate dac F este tautologie).
(i) F G F i (i) F G G (legile contradiciei, adevrate dac F este o
contradicie).
Demonstraie. Vom arta doar una dintre echivalene i anume (i), deoarece nu exist
complicaii n raionamentele standard care se utilizeaz. Fie F LP orice contradicie i

27
G LP. Fie orice structur S. Atunci S(F G) = S(F) S(G) = 0, conform Tabelului
1.1 (punctul 9)) i faptului c F este contradicie. Aceeai valoare o are i membrul drept
din (i).
Se poate arta de exemplu, prin inducie matematic faptul c asociativitatea,
distributivitatea i legile lui de Morgan se extind pentru orice numr finit de formule.
Teorema 2.5 (de substituie). Fie H LP, oarecare. Fie orice F, G LP astfel nct F
este o subformul a lui H i G este tare echivalent cu F. Fie H formula obinut din H
prin nlocuirea (unei apariii fixate a) lui F cu G. Atunci H H.
Demonstraie. Pe scurt, teorema spune c nlocuind ntr-o formul o subformul cu o
formul echivalent, obinem o formul echivalent cu prima. Vom proceda din nou prin
inducie structural, avnd de artat teorema din metalimbaj (H LP) P(H), unde:
P(H): (F, G, H LP)(((F subf(H)) i (H se obine din H nlocuind o apariie fixat
a lui F cu G) i (F G)) H H).
Baza: H = A A. S artm c P(A) este adevrat. Fie F, G, H LP, astfel nct F
subf(H), H se obine din H nlocuind apariia aleas a lui F cu G, iar F G. Trebuie s
artm c H H. Dar, din F subf(H) i subf(H) = {A}, rezult c F = A ( = H). Prin
urmare, H = G. Avem acum F = H, G = H i F G, de unde urmeaz imediat c H H.
Pas inductiv: Avem de tratat separat situaiile care urmeaz.
H = ( H1). Presupunem c P(H1) este adevrat i demonstrm c P(H) este
(i)
adevrat. Fie F subf(H) = subf(H1) U {( H1)}. Dac F = ( H1 ) ( = H),
suntem ntr-o situaie similar cu cea din Baz, deoarece raionamentul se face
din nou asupra ntregii formule H. Fie deci o apariie fixat a lui F subf(H1)
subf(H) i considerm orice G LP astfel nct G F. nlocuind pe F cu G
n H, nseamn n acelai timp a nlocui pe F cu G n H1. Notnd cu H,
respectiv H1 formulele rezultate, putem aplica ipoteza inductiv (P(H1) este
adevrat) i obinem c H1 H1. Revenind, tim c H = ( H1), H = (
H1) i H1 H1. Rezult imediat c H H .
Nu insistm, deoarece metoda a devenit clar.
Pentru a nu exista confuzii ntre limbajul de baz (LP) i metalimbajul n care exprimm
afirmaii despre elementele lui LP, n cele de mai sus (precum i n continuare) am notat
implicaia cu iar conjuncia prin i. Am pstrat notaia clasic pentru cuantificatorul
universal (), deoarece el nu apare n LP.
Rezultatele obinute n aceast lecie, ne permit practic s tratm formulele ntrun mod similar cu funciile booleene, dac ne intereseaz probleme de natur semantic.
Astfel, vom nota cu 0 orice contradicie i cu 1 orice tautologie, vom accepta principiul
dualitii (rolul lui i + lundu-l respectiv , dup cum se poate deduce chiar din
Teorema 2.4), vom folosi tabelele de adevr pentru a gsi semantica (valoarea de adevr
a) unei formule ntr-o structur dat, etc.

LECIA 4
Vom ncepe cumva altfel fa de modulul anterior, studiind simultan formele
normale conjunctive i formele normale disjunctive, ntr-un prim paragraf.

28
1. FORME NORMALE
Definiia 2.7. O formul F LP se afl n form normal conjunctiv (FNC, pe scurt)
dac este o conjuncie de disjuncii de literali, adic o conjuncie de clauze. Simbolic:

F=

( L
i =1

ni

ni

j =1

i, j

) ( putem nota C i = L i, j , i [1..m] ).


j=1

Similar, F LP este n form normal disjunctiv (FND, pe scurt), dac este o


disjuncie de conjuncii de literali (procedm dual pentru a obine scrierea simbolic).
Desigur, n cele de mai sus Li,,j sunt formule atomice sau negaiile lor.
Teorema 2.6. Pentru fiecare formul F LP exist cel puin dou formule F1, F2 LP,
F1 aflat n FNC i F2 aflat n FND astfel nct F F1 i F F2 (se mai spune c F1 i F2
sunt o FNC, respectiv o FND, pentru F).
Teorema precedent sugereaz un algoritm recursiv pentru obinerea simultan a
unei FNC i a unei FND, pentru orice formul propoziional. Conform cunotinelor
despre algebra boolean B = < B, , +, >, putem folosi alternativ - att tabelele de
adevr ct i modalitile de gsire a formelor normale conjunctive/disjunctive (perfecte)
descrise n Modulul 1.
Exemplu. Gsii o formul F LP construit peste mulimea de variabile propoziionale
{A, B, C} i care s satisfac condiia: n tabelul de adevr standard care o descrie, o
schimbare i numai una n secvena <S(A), S(B), S(C)> produce schimbarea valorii
corespunztoare de adevr S(F). Dac ncepem secvena S(F) cu 0, atunci F este
descris de tabelul
A
B
C
F
S(A) S(B) S(C) S(F)
0
0
0
0
0
0
1
1
*
0
1
0
1
*
0
1
1
0
1
0
0
0
1
0
1
1
*
1
1
0
1
*
1
1
1
0
Se poate construi apoi - direct din tabel - mcar o formul (chiar dou) care i corespunde
semantic, formul ce se afl n FND (i/sau FNC). De fapt vom folosi algoritmul de
construcie a FNDP pentru o funcie boolean, care, s-l reamintim, poate fi exprimat n
cuvinte astfel: se fixeaz liniile cu 1 n ultima coloan (cele marcate cu * n tabel);
pentru fiecare asemenea linie se construiete o conjuncie de literali (apar toi, cu bar
sau fr) - dac valoarea unei variabile n tabel este 0 atunci variabila se trece n
conjucia respectiv negat, iar dac valoarea ei este 1, atunci ea apare simplu; formula
final n FND(P) este disjuncia tuturor acestor conjuncii. Prin urmare, putem avea
F = ( A B C ) ( A B C ) ( A B C ) ( A B C ). Putei gsi,
analog, o FNC(P)?
Conform teoremei anterioare, precum i datorit comutativitii i idempotenei
disjunciei, comutativitii i idempotenei conjunciei (repetarea unui element literal

29
sau clauz este nefolositoare din punctul de vedere al (ne)satisfiabilitii unei formule),
este justificat scrierea cu mulimi a formulelor aflate n FNC. Astfel, dac F este n
FNC (ca n Definiia 2.7), vom mai scrie F = {C1, C2, ... , Cm} (nu uitm totui c virgula
aici provine dintr-o conjuncie), unde, pentru fiecare i [m], vom pune
C i = {L i,1 , L i,2 ,..., L i,n i } . Mai mult, dac avem F LP reprezentat ca mulime (de
clauze) sau ca mulime de mulimi (de literali) i ne intereseaz doar studiul
(ne)satisfiabilitii ei, putem elimina clauzele C care conin att L ct i L , deoarece L
L 1, 1 C 1 i deci aceste clauze sunt tautologii care nu au nici o semnificaie pentru
stabilirea valorii semantice a lui F (1 C C).
2. SATISFIABILITATE. LP - cadrul formal propus (realitatea este modelat prin
afirmaii, afirmaiile sunt reprezentate ca formule), ofer ca principal metod de a
rezolva problemele testarea adevrului (satisfiabilitii) unor formule. Din punctul de
vedere al unui informatician, trebuie ca pentru clasa de formule admis s existe un
algoritm care, avnd la intrare orice F LP, se termin cu rspunsul DA, dac F este
satisfiabil (valid, contradicie) i NU n rest. n aceast situaie se spune c
problema satisfiabilitii (pe scurt SAT) pentru LP este rezolvabil (decidabil).
Mai mult, am vrea s gsim asemenea algoritmi pentru care complexitatea timp este
rezonabil.
Teorema 2.7 (decidabilitatea SAT). Satisfiabilitatea (validitatea, nesatisfiabilitatea)
formulelor calculului propoziional este decidabil n timp exponenial.
Demonstraie. Practic, demonstraia a fost deja fcut (chiar n mai multe moduri). Fie F
LP cu prop(F) = {A1, A2 , , An} = An . Se formeaz, de exemplu n Pasul 1 al
unui posibil algoritm (notat tot SAT) pentru testarea satisfiabilitii (validitii,
nesatisfiabilitii), tabela de adevr corespunztoare lui F (teorema de extensie, teorema
de substituie i legtura dintre algebrele booleene LP i B stau la baza corectitudinii
acestei construcii):

S(A1)
S(A2)
S(An)
S(F)
0
0

0
v1
0
0

1
v2
n

2 =m
1
1

1
vm
Dac toi (i [m]) vi sunt egali cu 0 atunci F este contradicie, dac toi vi sunt 1 atunci F
este tautologie, iar n rest F este satisfiabil dar nevalid. Pentru a depista acest lucru,
trebuie parcurs, n Pasul 2 n cazul cel mai defavorabil ntregul tabel, linie cu linie i
prin urmare trebuie efectuate 2n comparaii, dac F este construit peste n formule
atomice.
Ca o observaie, datorit Teoremei de extensie i Teoremei de substituie,
putem construi o tabel de adevr pentru o formul pornind nu de la variabile, ci chiar de
la anumite subformule mai complicate (pentru care valorile posibile sunt tot 0 sau 1). Mai
departe, fr a intra n detalii (pentru aceasta se pot consulta [KNU], [JUC], [LUC]),
pentru a vorbi de algoritmi buni (care sunt coreci adic fac ceea ce au fost pui s
fac), ei trebuie s fie i rapizi, eficieni, avnd complexitate mic. Dou dintre
msurile (teoretice, globale) de complexitate sunt complexitatea timp i complexitatea
spaiu. Intuitiv, timpul luat de execuia unui algoritm Alg este dat de numrul de

30
instruciuni (pai/operaii elementare) efectuate, iar spaiul de numrul de locaii
(elementare) de memorie a calculatorului ocupate n cursul execuiei. Formal, acestea se
exprim ca funcii de la N la N, notate respectiv tAlg i sAlg. Dac tAlg(a) = b, nseamn c
Alg execut b pai elementari (b poate fi dat i printr-o expresie care conine pe a) pentru
o intrare de lungime a i dac sAlg(a) = b, nseamn c Alg ocup b locaii elementare
pentru o intrare de lungime a. Dup cum am mai precizat, lungimea unei intrri w
(cuvnt peste un anumit alfabet). n cazul nostru, w = F LP L* lungimea va fi card
(prop(F)). Mai mult, expresia lui b poate fi expresia unei funcii aritmetice standard
(funcie de gradul I, polinom oarecare, funcie logaritmic sau exponenial, etc.). n
general, se spune c tAlg(n) este de ordinul lui f(n) (simbolic, tAlg(n) O(f(n))), dac
exist dou constante reale nenegative c1 i c0 astfel nct tAlg(n) = c1 f(n) + c0 (pentru a
rmne n N, se lucreaz de fapt cu partea ntreag inferioar a numerelor considerate).
Sensul este acela c timpul de execuie al lui Alg, pentru orice intrare de lungime n, este
mrginit superior de valoarea funciei f n n, existnd i intrri pentru care egalitatea
este efectiv atins. Concluzia evident, reformulat, a Teoremei 2.7 este c tSAT(n)
O(2n). Se poate chiar arta c nu exist algoritmi mai performani, dar sensul acestui
nu exist este destul de dificil de explicat n acest context, fiind nevoie de cunotine
superioare de teoria complexitii. n sperana de a gsi totui algoritmi mai performani,
mcar ntr-un sens restrns, pentru rezolvarea SAT, ideea este fie de a cuta metode
sintactice pentru testarea satisfiabilitii, fie ceva mai realist - clase particulare de
formule, suficient de largi pentru a exprima totui convenabil pri importante ale
realitii.
3. SATISFIABILITATEA FORMULELOR HORN. Reamintim c o clauz Horn
este o disjuncie de literali care conine cel mult un literal pozitiv.
Definiia 2.8. O formul Horn este o formul aflat n FNC, clauzele componente fiind
toate clauze Horn.
Uneori, vom numi tot formul Horn i o formul despre care tim c este (tare)
echivalent cu o formul de forma considerat n Definiia 2.8. Se poate arta ([MAS])
c exist formule propoziionale care nu sunt tare echivalente cu nici o formul Horn,
apariia a doi literali pozitivi ntr-o clauz fiind un indiciu. Formele posibile pentru o
formul Horn sunt (toate variabilele care apar sunt desigur literali pozitivi):
(i) C = A1 A2 Ak, k 1, k N i
(ii) C = A1 A2 Ak B, k N.
Observaie. Clauzele Horn pot fi reprezentate sub aa-numita form implicaional.
Distingem cazurile:
C = A A (nici un literal negativ, un literal pozitiv). Atunci vom mai scrie C = 1
A, ceea ce se justific prin aceea c 1 A = 1 A 0 A A.
C = A1 A2 Ak (nici un literal pozitiv, mcar un literal negativ).
Vom scrie C = A1 A2 A3 Ak 0 (folosim din nou definiia implicaiei
i faptul c 0 A A).
C = A1 A2 Ak B (exact un literal pozitiv, mcar un literal
negativ). Atunci C = A1 A2 A3 Ak B, direct din definiia
implicaiei.
C = (nici un literal negativ, nici un literal pozitiv). Din motive tehnice vom
folosi i aceast clauz vid (n reprezentarea clauzelor cu mulimi vom folosi

31
pentru chiar ). Prin convenie, este o clauz de orice tip (inclusiv o clauz
Horn), dar nesatisfiabil.
Teorema 2.8. Satisfiabilitatea formulelor Horn este decidabil n timp liniar.
Demonstraie. S considerm urmtorul algoritm.
Algoritm Horn
Intrare: Orice formul Horn, F, reprezentat ca mulime de clauze, clauzele componente
fiind clauze Horn diferite de clauza vid i scrise sub form implicaional .
Ieire: DA, n cazul n care formula F este satisfiabil (furnizndu-se i o asignare S
care este model pentru F) i NU n caz contrar (F nu este satisfiabil).
Metod (de marcare):
Pasul 1. i := 0.
Pasul 2.
Ct_timp ((exist n F o clauz C de forma A1 A2 A3 Ak B, cu
A1, A2, A3, ... , Ak marcai i B nemarcat sau de forma A1 A2 A3 Ak
0, cu A1, A2, A3, ... , Ak marcai) i (i = 0))
execut
Pasul 3. Alege un asemenea C ca mai sus.
Pasul 4. Dac ( C = A1 A2 A3 Ak B )
atunci
Pasul 5. Marcheaz toate apariiile lui B n F.
altfel
Pasul 6. i := 1.
Sf_Dac
Sf_Ct_timp
Pasul 7.
Dac ( i = 0 )
atunci
Pasul 8. DA.
Pasul 9. S, S(A) = 1 dac i numai dac A apare n F i este
marcat.
altfel
Pasul 10. NU.
Sf_Dac.
Algoritmul se termin pentru fiecare intrare. Mai nti, s precizm c aciunea de
marcare o privim n sens grafic normal, marcajul care poate fi ataat unei variabile
proziionale alegndu-se fr criterii speciale (s presupunem c el este *, mpreun
eventual cu anumii indici prin care s se identifice n care execuie a corpului buclei s-a
fcut marcarea). Iniial, toate variabilele se presupun a fi nemarcate. Dac F conine
clauze de forma 1 B (care se consider a fi de forma A1 A2 A3 Ak B, cu
A1, A2, A3, ... , Ak marcai i B nemarcat), se procedeaz conform algoritmului, adic se
marcheaz toate apariiile lui B n F i se trece la pasul urmtor. Mai departe, la fiecare
execuie a corpului buclei, fie se marcheaz o variabil propoziional nou, fie se iese
din execuia buclei. Pentru c numrul de variabile peste care este construit formula F
este finit, terminarea algoritmului este evident. Dac nu exist deloc clauze de tipul 1
B, algoritmul se termin fr nici o execuie a corpului buclei, cu rspunsul DA
(formula este satisfiabil) i cu asignarea S, S(A) = 0 pentru fiecare A (care apare n F).

32
Algoritmul este corect. Aceasta nseamn c ieirea algoritmului satisface ceea ce am
dorit, adic rspunsul DA/S corespunde faptului c formula F furnizat la intrare este
satisfiabil (i S |= F) iar rspunsul NU corespunde faptului c F este nesatisfiabil.
Putem distinge urmtoarele cazuri:
Cazul a). La terminarea execuiei se obine DA, dar F nu conine clauze C de tipul 1
B. Dup cum am observat, acest lucru nseamn c bucla s-a terminat fr s i se
execute vreodat corpul i avem i = 0 i S(A) = 0 pentru fiecare A (care apare n F).
Atunci exist n F (la finalul execuiei) doar clauze de tipul C1 = A1 A2 A3 Ak
B, sau C2 = A1 A2 A3 Ak 0 (k 1) , care n-au nici o variabil marcat.
Avem atunci, pe scurt, S(C1) = S(0 0 ... 0 0) = 1, respectiv S(C2) = 1, de unde
gsim S(F) = 1.
Cazul b). La terminare se obine DA i F conine i clauze C = 1 B. Atunci bucla se
termin dup un anumit numr de execuii ale corpului su, valoarea lui i este 0 i F
conine n final clauze avnd marcate anumite variabile. Nu insistm.
Cazul c). Algoritmul se termin cu i = 1 i rspunsul NU. Acest lucru nseamn c
exist n F o clauz C = A1 A2 A3 Ak 0 cu toi Ai, i [k] marcai
(obligatoriu, n F exist i clauze de forma 1 B, B marcat), de unde rezult c
semantica lui C n asignarea furnizat de algoritm este de forma 1 0 i prin urmare
S(C) = 0, de unde S(F) = 0. Acest lucru nu nseamn ns c F este nesatisfiabil,
pentru a trage aceast concluzie trebuind s artm c pentru nici o alt asignare, ea nu
poate fi model pentru F. S presupunem (RA) c exist o asignare S astfel nct S(F) =
1. S observm, pentru nceput, c toate variabilele care au fost marcate n algoritm (deci
cele care au primit valoarea de adevr 1 n S), trebuie s primeasc valoarea 1 n oricare
S cu S(F) = 1. Altfel spus, asignarea furnizat de algoritm conine cel mai mic numr
posibil de valori 1 (atribuite evident variabilelor marcate) astfel nct formula s aib
anse s fie satisfiabil. ntr-adevr, pentru fiecare S cu S(F) = 1, trebuie s avem S(C)
= 1 pentru fiecare clauz C din F. S ne ocupm puin de momentul n care se marcheaz
o variabil B, ordonnd clauzele din F de forma C = A1 A2 A3 Ak B (k 1)
dup numrul de variabile din antecedent (chiar n algoritm, selecia unei clauze pentru
marcare se poate face dup un asemenea criteriu):
Clauze C de tipul 1 B B (nici o variabil n antecedent, B nemarcat). De la
acestea ncepe procesul de marcare. Din faptul c S(C) trebuie s fie egal cu 1,
este clar c trebuie pus S(B) = 1 (B se i marcheaz, deci S(B) = 1).
Clauze C de forma A B A B (o variabil n antecedent; A este marcat, B
nemarcat). A nu putea fi marcat dect dac a aprut deja ca un consecvent ntro clauz de tipul anterior, sau n una de acelai tip cu aceasta i care are
antecedentul marcat. Prin urmare, n orice S cu S(C) = 1, trebuie oricum s
avem S(A) = 1, deci S( A) = 0 i atunci S(B) = 1 (apoi B se marcheaz, deci
S(B) = 1).
Continum raionamentul cu C = A1 A2 B (dou variabile n antecedent,
ambele variabile marcate; B este, nc, nemarcat), ajungnd din nou la concluzia
c pentru fiecare S, pentru ca S(C) = 1, trebuie ca S(B) = 1 (i S(B) = 1).
Revenind, am artat ntr-adevr c pentru fiecare S astfel nct S(F) = 1, trebuie

33
s avem S(A) = 1 pentru fiecare A marcat de ctre algoritm. Prin urmare, avem
i S(C) = 0, de unde S(F) = 0, ceea ce este absurd.
Algoritmul are timp de execuie liniar. Faptul c t(n) O(f(n)), unde f(n) = a n + b
(a, b N*), rezult imediat din faptul precizat c la fiecare execuie a corpului buclei se
marcheaz o nou variabil. Desigur c algoritmul trebuie puin modificat, n sensul c n
Pasul 3, de alegere a unei clauze corespunztoare C, selecia trebuie fcut prin
parcurgerea de un numr fix de ori (independent de numrul de execuii) a listei
variabilelor peste care este construit F.
Exemplu. S aplicm algoritmul de marcare urmtoarei formule Horn:
F = ( A D ) ( C A D ) ( A B ) D E.
Pentru rezolvare, scriem nti F ca o mulime de implicaii, F = { D A, C A D,
A B 0, 1 D, E 0}. nainte de orice execuie a buclei, i = 0 i toate variabilele
sunt nemarcate.
Prima execuie: alegem clauza 1D (de fapt, nu exist alt soluie). Toate
apariiile lui D se marcheaz cu *1:
D *1 A, C A D *1 , A B 0, 1 D *1 , E 0.
A doua execuie: alegem D A (din nou, nu exist dect o posibilitate) i A se
marcheaz peste tot, cu *2:
D *1 A *2 , C A *2 D *1 , A *2 B 0, 1 D *1 , E 0.
A treia execuie nu mai are loc, deoarece nu mai exist clauze de tipul cerut.
Cum valoarea lui i nu s-a modificat (a rmas 0), rspunsul algoritmului este
DA.
Prin urmare, F este satisfiabil i o structur S, model pentru F, este definit prin S(A) =
1, S(B) = 0, S(C) = 0, S(D) = 1, S(E) = 0.
n concluzie, am gsit o subclas convenabil de formule propoziionale pentru
care testarea satisfiabilitii se poate face ntr-un timp rezonabil. Dei rezultatele
teoretice generale ne spun c nu pot exista metode sintactice mai bune dact metoda
semantic sugerat de Algoritmul SAT (dac ne referim la ntrega mulime LP),
existena dovedit a unor algoritmi care s nu fac apel la concepte semantice pare a fi un
ctig, cel puin din punctul de vedere al prelucrrii automate.

CONSOLIDARE
LECIA 5
Fr a restrnge generalitatea (ne va interesa doar satisfiabilitatea unei formule)
putem presupune c lucrm cu formule din LP aflate n FNC, reprezentate sub form de
mulimi (finite) de clauze, iar clauzele ca mulimi de literali. Dac nu vom preciza altfel,
notaiile vor fi cele din lecia anterioar.
Definiia 2.9 (rezolvent). Fie clauzele C1, C2 , R. Spunem c R este rezolventul lui C1,
C2, c C1, C2 se rezolv n R, sau c R se obine prin rezoluie ntr-un pas din C1, C2
(pe scurt, R = ResL(C1, C2) ), dac i numai dac exist un literal L C1 astfel nct L
C2 i R = (C1 \ {L} U (C2 \ { L }).
Vom reprezenta acest lucru i grafic, prin:

34
Cteodat vom renuna la scrierea explicit a lui L i L n arborele de rezoluie.
Observaie. Rezolventul a dou clauze este tot o clauz. Mai mult, rezolventul a dou
clauze Horn este tot o clauz Horn. Clauza vid ( ) poate fi obinut prin rezoluie din
dou clauze de forma C1 = {A} i C2 = { A}. n definiia anterioar putem considera c
clauzele implicate sunt diferite ntre ele. Dac ele ar coincide, atunci C1 = C2 = C = ...
L L 1, adic C ar fi o tautologie detectabil imediat, sintactic (n acest fel nu ne
mai intereseaz studiul formal al satisfiabilitii ei).
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 C1, C2, C3, C4.
C2

C1

C1

{E, B, B, C}
C1

C2
B

{A, E, A, C}

C1

C4
A

{E,B,D,E}

C4
E

{A, B, A,D}
Muli dintre rezolvenii primari nu sunt interesani, fiind tautologii. Procesul poate ns
continua cu rezolvarea rezolvenilor obinui din clauzele iniiale:
C3

C2
A

{B, C, D}
B

C1
B

{C, D, A, E}
. a. m. d.

Exist cel puin dou ntrebri pe care ni le putem pune n urma exemplului precedent:
Exist formule pentru 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, performani) de testare a satisfiabilitii unor formule?
Teorema 2.9 (lema rezoluiei). Fie oricare formul F LP (aflat n FNC i
reprezentat ca mulime de clauze) i R un rezolvent pentru C1, C2 F. Atunci F este
tare echivalent cu F U{R}.
Demonstraie.

35
. Dac S satisface F U{R} atunci desigur c S satisface F, conform definiiei.
. S presupunem c S |= F , adic S |= C, pentru fiecare C F. Fie C1,C2 F i R
un rezolvent al lor, R = (C1 \ {L}) U (C2 \ { L }), unde L C1, L C2 .
Cazul 1. S(L) = 1. Atunci S | L. Dar tim c S |= C2 . Rezult S |= C2 \ { L }, de unde
S(R) = 1.
Cazul 2. S(L) = 0. Analog, artnd c S |= C1 \ {L}.
Definiia 2.10. Fie F o mulime de clauze din LP i C o clauz. Spunem c lista C1, C2 ,
, Cm este o demonstraie prin rezoluie (n mai muli pai) a lui C pornind cu F
dac sunt satisfcute condiiile:
(i) Pentru fiecare i [m], fie Ci F, fie Ci este obinut prin rezoluie ntr-un pas din Cj,
Ck, cu j, k < i.
(ii) C = Cm.
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 demonstraiei. Convenim s eliminm din orice demonstraie rezolvenii care
conin att L ct i L, aceste clauze fiind tautologii, deci neinteresante.
Exemplu. Fie F = {{A, B, C}, { A}, {A , B , C}, {A , B}}. O respingere poate fi
descris prin arborele:
{A, B, C}
{A, B, C}
C

C
{A, B}

{A, B}

{ A}

{A}
A

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


clauze din LP. Notm succesiv:
Res(F) = F U{R | exist C1, C2 F astfel nct R = Res(C1, C2)}.

36
Res(n+1)(F) = Res(Res(n)(F)), n N. Prin Res(0)(F) vom nelege F i atunci vom
putea pune Res(1)(F) = Res(F).
Res*(F) = U Res(n)(F).
nN
(n)
Res (F) se va numi mulimea rezolvenilor lui F obinui n cel mult n pai, iar
Res*(F) mulimea (tuturor) rezolvenilor lui F.
Observaie. Direct din definiie rezult c:
F = Res(0)(F) Res(1)(F) ... Res(n)(F) ... Res*(F).
Putem da atunci i o definiie structural a lui Res*(F). Vom nota astfel cu Resc mulimea
definit prin:
Baza: F Resc.
Pas constructiv: Dac C1, C2 Resc i C = Res(C1, C2), atunci C Resc.
Rmne s artm c cele dou definiii exprim ntr-adevr acelai lucru. Teoremele
urmtoare le acceptm fra demonstraie.
Teorema 2.10. Res*(F) = Resc.
Teorema 2.11. Fie F o mulime de clauze din LP. O clauz C LP se poate demonstra
prin rezoluie pornind cu clauzele lui F dac i numai dac exist k N, asfel nct C
Res(k)(F).
n cele de mai sus am folosit n majoritatea cazurilor termenul mulimea de
clauze F i nu formula F (aflat n FNC). Dei pe noi ne intereseaz doar formulele (care
pot fi privite ca mulimi finite de clauze n cazul n care ne intereseaz doar
satisfiabilitatea lor), aproape toate rezultatele sunt valabile i pentru mulimi infinite
(numrabile) de formule (clauze). Teorema urmtoare stabilete o legtur important,
privind satisfiabilitatea, ntre mulimile infinite i cele finite. O vom accepta tot fr
demonstraie, la fel ca i Teorema 2.13.
Teorema 2.12 (de compactitate pentru LP). Fie M o mulime infinit (numrabil)
de formule din LP. M este satisfiabil dac i numai dac fiecare submulime finit
a sa este satisfiabil.
Teorema 2.13. Fie F LP, aflat n FNC i reprezentat ca mulime (finit) de clauze.
Atunci Res*(F) este finit.
S reamintim faptul c vom elimina din orice mulime Res*(F) pe msur ce se obine toate clauzele care sunt tautologii deoarece conin o subformul de tipul A A.

LECIA 6
Putem n sfrit enuna teorema principal a acestui modul.
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 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. Testarea satisfiabilitii nu implic
nimic special (n acest caz Res*(F)), nici testarea validitii (F este valid dac i
numai dac F este contradicie, deci aplicm teorema lui F). A testa dac o formul F
este satisfiabil dar nevalid impune ns aplicarea teoremei anterioare att pentru F (F

37
Res*(F)) ct i pentru F ( F este satisfiabil dac
este satisfiabil dac
Res*( F)). Prin urmare, pentru a gsi, eventual, algoritmi mai performani, singura
soluie rmne totui aceea de a cuta subclase interesante ale lui LP. Avantajul acum
este c aceste subclase pot fi definite inndu-se cont de argumente sintactice.

LECIA 7
Rafinrile rezoluiei sunt metode prin care se urmrete obinerea clauzei vide (dac
acest lucru este posibil) ntr-un numr minim de pai de rezoluie. Pornind cu formula F
= {C1, C2, , Cn} (aflat n FNC i scris ca o mulime de clauze), se poate construi
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 odat cu fiecare rezoluie ntr-un pas). Practic, acest graf cumuleaz toate
posibilele demonstraii prin rezoluie care pornesc cu clauzele lui F. Teorema rezoluiei
sugereaz crearea mai nti a acestui graf 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 s creem i s parcurgem ntreg graful. Astfel, 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, a unui drum ctre 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 respingerile. 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, gsinduse o respingere), dar n cel mai ru caz este posibil s nu fac nici o economie de
timp.
Pe de alt parte, restriciile distrug n general completitudinea rezoluiei (exist formule
nesatisfiabile pentru care nu se pot gsi respingeri, dac paii de rezoluie sunt supui
unor condiii prea restrictive), deoarece spaiul de cutare este practic micorat ntr-un
mod, s-i spunem, abuziv. Astfel, o anumit restricie poate interzice total folosirea (ntrun pas de rezoluie) a unor clauze avnd o anumit form sintactic. Restriciile pot
rmne ns complete pentru anumite subclase de formule propoziionale.

REZUMARE I ADDENDA
n acest modul am introdus sintaxa i semantica formal a unui limbaj logic,
privit n sensul unei mulimi de formule. Acestea iau locul afirmaiilor reale. Sunt
transpuse ntr-o form precis conceptele i principiile eseniale ale logicii aristotelice,
printre care bivalena (tertium non datur) i extensionalitatea. Sintactic, mulimea
formulelor logicii propoziionale notat LP poate fi definit constructiv, pornind de la
o mulime numrabil de formule atomice i utiliznd conectorii logici i, sau, non,
eventual i implic. O formul poate fi recunoscut fr dubii i poate fi reprezentat i

38
ca un arbore. Exist i reprezentri standard ale formulelor, prin forme normale.
Semantica unei formule este o valoare de adevr (0 adevrat, 1 fals), care se
determin standard i unic, odat ce este cunoscut o structur corect, adic o asignare
pentru formulele atomice componente. Definiia semanticii se bazeaz i pe rezultatele
cunoscute despre funciile booleene. Se evideniaz apoi clasele de formule satisfiabile,
valide i nesatisfiabile, introducndu-se i studiindu-se alte concepte de natur semantic,
cum ar fi cele de echivalen sau de consecin semantic. Problema cea mai important
de care ne-am ocupat a fost problema SAT (a satisfiabilitii formuleleor din LP), despre
care am artat c este decidabil dar de complexitate (timp) exponenial, folosind
algoritmi bazai pe semantic. Din punctul de vedere al tratrii automate (cu ajutorul unui
calculator) a problemei SAT, sunt mai convenabili algoritmii de decizie bazai pe
sintax, dei n general acetia nu sunt mai rapizi. Am prezentat un asemeanea algoritm
(Teoremele 2.11, 2.13, 2.14), care folosete conceptul de rezoluie (propoziional).
Dei metoda rezoluiei nu aduce mbuntiri semnificative ale timpului necesar pentru
rezolvarea SAT (n sensul teoriei generale a complexitii), s-au putut pune n eviden
strategii i restricii ale rezoluiei, care mresc ansele gsirii rapide a rspunsului,
precum i subclase de formule pentru care problema poate fi rezolvat n timp liniar
(cum ar fi clasa formulelor Horn, pentru care putem aplica att algoritmul de marcare,
ct i o variant convenabil de implementare a SLD-rezoluiei). Se poate argumenta
c mulimea LP este prea simpl n privina puterii de a reprezenta lumea real i n
consecin nu merit atenie special. Este adevrat c LP poate fi inclus n mulimea de
formule a calculului cu predicate de ordinul I (care va constitui obiectul de studiu al
urmtorului modul), dar am considerat ca benefic introducerea i prezentarea ei
separat, din motive didactice. De altfel, dei destul de restrictiv, LP este suficient de
bogat pentru a putea exprima (i deci, studia formal) afirmaii intreresante. Modulul
3 este totui destinat studiului unei extensii posibile a lui LP i anume LP1, calculul cu
predicate de ordinul I.
S furnizm n finalul Modulului 2 i lista cuvintelor noi: sfera i coninutul unei
noiuni, diferen specific, definiii operaionale, inferene valide, paradoxuri, silogisme,
inferene ipotetico-categorice, modus ponens, modus tollens, formule propoziionale,
variabile propoziionale, formule atomice, literali (pozitivi, negativi), conectori logici
(non, i, sau, implic, echivalen), arbore ataat unei formule, subformul, problem de
decizie, asignare, interpretare, structur, structur complet, formule satisfiabile, valide
(tautologii), nesatisfiabile (contradicii), formule tare i slab echivalente, forme normale
(disjunctive, conjunctive), clauze, clauze pozitive, clauze negative, clauza vid, clauze
Horn, clauze Horn pozitive, forma implicaional a clauzelor Horn, rezolvent, rezoluie
ntr-un pas, demonstraie prin rezoluie, respingere, mulimea rezolvenilor unei mulimi
de clauze, rafinri, restricii i strategii ale rezoluiei, strategia unitar, rezoluia
pozitiv, rezoluia negativ, rezoluia liniar bazat pe o clauz iniial, SLD-rezoluia,
rezoluia bazat pe o mulime suport, rezoluia de intrare.

VERIFICARE (TESTARE)
1. Rezolvai Exerciiul 2.1.

39
2.
3.
4.
5.
6.

Rezolvai Exerciiul 2.2.


Rezolvai Exerciiul 2.3.
Rezolvai Exerciiul 2.4.
Completai demonstraia Teoremei 2.1.
Rezolvai Exerciiul 2.5.

40

MODULUL 3
Logica (Calculul) cu predicate de ordinul I
INTRODUCERE
Dup cum am punctat n partea de Rezumare a Modulului 2, suntem nevoii s
extindem limbajul (logica) folosit() pn n prezent, dei rezultatele privind
complexitatea (timp) a algoritmilor de testare a satisfiabilitii formulelor LP sunt deja
descurajatoare. Principalul argument este acela c lumea real nu poate fi modelat
satisfctor i simplu prin formule logice care utilizeaz doar variabile
propoziionale i conectori. De aceea, principala modificare va fi de natur sintactic,
manifestat prin adugarea cuantificatorilor logici (exist i pentru orice), mpreun cu
introducerea variabilelor, constantelor, simbolurilor funcionale (de aritate mai mare
dect unu) i a simbolurilor predicative. Din acest punct de vedere, limbajul logicii cu
predicate de ordinul I va conduce n general, sintactic la o mulime de formule,
notat LP1, care va include strict clasa LP. Semantica pentru LP1 va fi mai complex,
avnd ns la baz acelai concept de structur (asignare, interpretare) i fiind
consistent cu semantica LP. De altfel, pentru LP1, dac nu vom introduce concepte
explicit noi, toate notaiile, noiunile, rezultatele, vor fi extensii imediate pentru
obiectele corespunztoare din LP.

DEZVOLTARE
LECIA 1
Pentru a mri puterea de exprimare n sensul informal precizat deja - a logicii
folosite, vom ncepe cu anumite transformri de natur sintactic. Vom introduce n
alfabetul iniial, pe lng ceea ce deja cunoatem, simboluri cum ar fi: variabile
funcionale, constante, funcii, predicate, cuantificatori. Mai precis, pentru a construi
mulimea de formule a logicii cu predicate de ordinul I, LP1, vom porni cu urmtoarele
mulimi de simboluri:
X = {x1, x2, } o mulime cel mult numrabil de variabile funcionale, sau,
pe scurt, variabile.
P = {P0, P1, } o mulime cel mult numrabil de simboluri predicative (sau
predicate). La rndul su, fiecare Pi este o mulime cel mult numrabil de
predicate de aritate i (i N). Elementele lui P0 se mai numesc i variabile
predicative.
F = {F0, F1, ...} o mulime cel mult numrabil de simboluri funcionale (sau
funcii) cu ariti, fiecare Fi fiind o mulime cel mult numrabil de funcii de
aritate i (i N). Elementele lui F0 se numesc i constante (funcionale).
C1 = {, , } o mulime de conectori logici (conective logice), la care se pot
aduga, opional, i alte simboluri cum ar fi , , etc.

41

C2 = {(x) | x X} U {( x) | x X}- o mulime de cuantificatori (cuantori),

universali, respectiv existeniali ((x) se citete pentru fiecare x, sau pentru


oricare (orice) x, iar ( x) exist x, exist mcar un x, etc.). Pentru
nceput este suficient s considerm doar cuantorii universali.
Ca i n cazul LP, vom porni cu alfabetul total, adic reuniunea mulimilor
precedente, mpreun cu parantezele rotunde:

i=0

i=0

Alf = X U ( Pi ) U ( Fi ) U C1 U C2 U { (, ), }
Mulimile U Pi i U 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 poate fi ulterior fixat (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 (P(<a1, a2, ... ai>) = 1 dac i numai dac elementele a1, a2,
..., ai sunt n relaia numit P). Similar, un simbol funcional f 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.
Mulimea formulelor, LP1Alf (indicele va fi pus n eviden doar cnd ar putea
exista confuzii), va fi definit structural, analog cu cazul LP (elemente mulimilor C1 i
C2 pot fi considerate mpreun cu parantezele aferente ca fiind operatori pe iruri de
caractere, de aritate corespunztoare, adic 1 sau 2).
Definiia 3.1 (sintaxa LP1). Fie Alf alfabetul fixat anterior. Atunci mulimea formulelor
calculului cu predicate de ordinul I, LP1Alf, este dat constructiv prin:
Baza. Se definete mulimea formulelor atomice, notat cu At, prin:
(i) Po At (variabilele predicative sunt formule atomice).
(ii) Pentru fiecare n N, pentru fiecare P Pn, pentru fiecare t1, t2, , tn T, avem
P(t1, t2, , tn) 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 N, pentru fiecare f Fn, pentru
fiecare t1, t2, , t n T, avem f(t1, t2, , t n) T.
Prin urmare, concluzionm aceast etap a definiiei prin:
At LP1 (formulele atomice sunt formule).
Pas constructiv. Continum definirea lui LP1Alf cu partea formule vechi din formule
noi:
(i) Dac F LP1 atunci ( F) LP1.
(ii) Dac F1, F2 LP1 atunci ( F1 F2 ), ( F1 F2 ) LP1 (dac dorim, putem introduce
i (F1 F2), ( F1 F2 ) LP1, etc.).
iii) Dac F LP1 atunci (x)(F) LP1 (dac dorim, punem i ( x)(F) LP1), pentru
fiecare x X ).

42
Similar cu cazul LP, se definesc constructiv subf(F) mulimea subformulelor
formulei F, i arb(F) arborele ataat lui F (cum cuantorii sunt operatori de aritate 1, ei
jucnd acelai rol sintactic ca i negaia). Singura subformul a unei formule atomice este
ea nsi i va constitui un simplu nod n arb(F). Un term poate fi la rndul su - privit
ca un arbore (n consecin, i o formul atomic), astfel nct arborele unei formule
poate fi detaliat, dac nlocuim fiecare nod corespunztor unui term cu arborele ataat
acestuia.
Definiia 3.2 (arborele ataat unui term i unei formule atomice). Conform definiiei
anterioare, arborele ataat unui term t T, Arb(t), poate fi dat constructiv prin:

Baza. Dac t = c F0, atunci Arb(t) este:

c .
x

Dac t = x X, atunci Arb(t) este:

Pas constructiv. Fie n N, f Fn, t1, t2, , tn T, astfel nct t = f(t1, t2, , tn). S
presupunem c tim arborii ataai termilor t1, t2, , tn, adic Arb(t1), Arb(t2), ,
Arb(tn). Atunci Arb(t) va fi:

C
Arb(t1)

Arb(t2)

tiind arb(t) pentru fiecare t T, putem acum construi arb(F) pentru fiecare F At, dup
cum urmeaz.
(i) Dac P P0, atunci arb(P) este:

(ii) Fie n N, Q Pn, t1, t2, , tn T astfel nct P = Q(t1, t2, , tn) i s
presupunem c sunt cunoscui Arb(t1), Arb(t2), , Arb(tn). Atunci Arb(P) va fi:
Q
Arb(t1)

Arb(tn)

(iii) Fie F o formul. Ea poate avea una din formele: (F1), F1 F2, F1 F2, (F1),
(F1), unde F1, F2 sunt formule. Arborele ataat formulei F va putea fi construit ntr-un
mod similar.
Definiia 3.3 (apariii libere i legate ale variabilelor). Fie F LP1 i x X, astfel
nct x apare n F, la o poziie oarecare j (n sens textual, stnga dreapta, ca liter ntrun cuvnt, apariia nefiind parte a unui cuantificator (x) sau (x)). Apariia fixat a lui
x se numete legat dac este ntr-o parte G a unei subformule de forma G1 = (x)G (sau
(x)G) a lui F. n restul cazurilor, apariia considerat se numete liber.

43
S mai punctm o dat faptul c folosind reprezentarea formulelor ca arbori
(precum i o definiie corespunztoare a noiunii de arbore), orice apariie a unei variabile
ntr-o formul poate fi definit formal. Vom nota, pentru fiecare F LP1, cu free(F) mulimea variabilelor care au apariii libere n F, i cu leg(F) mulimea variabilelor care
au apariii legate n F. Desigur c pentru fiecare x X, este posibil ca x s nu apar n F,
s aib doar apariii libere, doar apariii legate, sau i apariii libere i apariii legate.
Exerciiul 3.1. Definii constructiv leg(F).
Definiia 3.4. O formul F LP1 se numete nchis dac nu conine apariii libere de
variabile (altfel spus, free(F) = ). Pentru formula F, se numete nchiderea sa
universal formula (x1)((x2)( ((xk)(F)) ... ) (care se mai noteaz, pentru
simplitate, cu (*)(F) sau (F)), unde {x1, x2, , xk} = free(F). Analog (nlocuind cu
n faa formulei) se definete (noteaz) nchiderea existenial a lui F. Se va numi
matricea lui F acea formul obinut din F prin tergerea (sintactic, textual) a tuturor
cuantificatorilor (x) i (x) (ea se va nota F*).
Definiia 3.5 (substituii). Prin substituie vom nelege o secven finit de elemente de
tipul [x/t] (numite i substituii elementare), x X, t T.
O substituie, s = [x1/t1] [x2/t2] [xn/tn], este practic un cuvnt peste alfabetul S =
{[x/t] | x X, t T}, adic un element al lui S* (monoidul liber generat de S, aa cum
am mai amintit n Modulul 2). O substituie s (ca mai sus) se aplic unei formule F,
rezultnd o formul G, notat (F)s i obinut din F prin nlocuirea fiecrei apariii libere
a variabilei x1 cu termul t1, apoi a fiecrei apariii libere a variabilei x2 cu t2, etc. Se
utilizeaz pentru o formul F LP1 dat doar cu substituii permise. [x/t] este
permis pentru F (sau, F accept [x/t]) dac t nu conine variabile libere care au apariii
legate n F (s de mai sus va fi permis pentru F dac va fi permis pentru fiecare
component elementar a sa [xi/ti]). Ordinea (fixat deja) a aplicrii substituiilor
elementare dintr-o substituie s este esenial n majoritatea cazurilor. O substituie s este
normalizat (pentru F) dac ordinea de aplicare a substituiilor elementare componente
nu conteaz. Mai precis, dac avem (F)s = (F)s, pentru fiecare s care este obinut din s
printr-o permutare a componentelor acesteia. Substituia vid (ca element neutru al lui
S*), notat [ ], nu face desigur nici o transformare n formula F creia i este aplicat ((F)[
] = F).
Exerciiul 3.2. Artai c pentru fiecare F LP1 i fiecare substituie s, permis
pentru F, care ndeplinete condiia c ea nu coine un element de forma [x/t] astfel nct
t nu conine x, exist mcar o substituie s, ehivalent cu s (s este echivalent cu s,
pentru F, dac (F)s = (F)s) i care este normalizat.
Dup cum am mai precizat, dac nu este nevoie de o redefinire explicit, n
continuare vom folosi i alte concepte/notaii sintactice introduse n Modulul 2 pentru
LP, cum ar fi: literal (o formul atomic sau negaia acesteia), clauz, clauz Horn,
form normal, etc. Cu litere latine de la sfritul alfabetului (x, y, z, ...) vom nota
variabilele. Literele latine mici de la nceputul alfabetului (a, b, c, ...) vor nota
constantele. Literele latine mari de la mijlocul alfabetului (P, Q, R, ...) vor nota
simbolurile predicative. Literele latine mici de la mijlocul alfabetului (f, g, h, ...) vor fi
rezervate pentru desemnarea simbolurilor funcionale, iar cu F, G, H, vom nota
formulele. Dac nu am adopta astfel de convenii (dorim, totusi, s avem o anumit
libertate de exprimare i s folosim i alte nume nafara celor admise de alfabetul iniial,

44
aa cum am folosit de exemplu - n LP, B n loc de Ai), am avea cazuri n care nu am
distinge ntre o variabil i o constant. Practic, diferena dintre un nume de variabil
(funcional) i un nume de constant (element al lui F0) este clar doar n momentul cnd
numele respectiv apare ntr-un cuantificator.
Definiia 3.6. Un term care nu conine variabile se numete term de baz. Analog, vom
avea formule de baz i substituii de baz.
Ca i pentru LP, putem renuna la sau aduga paranteze ntr-o formul (singurele
paranteze care nu intr n discuie sunt cele ataate cuantificatorilor), bazndu-ne pe
aceeai idee (prioriti acordate operatorilor, proprieti generale ale acestora cum ar fi
asociativitatea, etc). n cazul unui cuantor, avem nevoie, nafara prioritii care este
maxim (adic 0, i respectiv avnd prioritatea 1, - 2, - 3, - 4, - 5, etc.; n
cadrul unei secvene continue de operatori de aceeai prioritate, parantetizarea se face la
stnga), i de definirea a ceea ce se numete domeniul sintactic al cuantificatorului
respectiv. Domeniul sintactic pentru o apariie a unui cuantor (s spunem c aceasta este
(x)) ntr-o formul F, reprezint poriunea continu de text (care este o subformul G
alui F), care ncepe cu primul simbol de dup o apariie a cuantorului n cauz, identificat
mai jos prin subliniere (parcurgem formula de la stnga la dreapta) i se termin cu un
anumit simbol ulterior (s-l identificm tot prin subliniere), conform urmtoarelor
situaii:
F = ... (x)(G) ... . Nu sunt probleme, deoarece parantezele cerute de sintaxa dat
de Definiia 3.1. nu au fost eliminate. Ca observaie, parantezele subliniate de mai
sus sunt corespondente (definiia sintactic a unei formule nu permite existena
unei paranteze deschise fr ca ea s fie nchis ulterior, neexistnd ambiguiti
nici n privina parantezei nchise care corespunde unei anumite paranteze
deschise).
F = ... (x)G. Situaia evideniaz faptul c domeniul se extinde pn la sfritul
formulei, dar condiia suplimentar este aceea c n G nu exist nici o parantez
nchis care s nu aib corespondent o parantez deschis situat tot n domeniu
(nu uitm c domeniul ncepe oricum cu primul simbol de dup (x)). Nu am mai
subliniat simbolurile de nceput i sfrit a domeniului, deoarece ei sunt primul i
respectiv ultimul simbol din G.
F = ... ( ... (x) ... ) ... . Este pus n eviden cazul n care au fost eliminate
parantezele iniiale, dar n subformula G care urmeaz dup (x), exist o
parantez nchis care are corespondent nainte de apariia cuantorului al carui
domeniu l cutm. Ceea ce am subliniat este prima parantez cu aceast
proprietate (simbolul imediat de dinaintea ei fiind limita din dreapta a
domeniului).
Prioritatea cuantificatorilor fiind maxim, se gsesc mai nti domeniile sintactice ale
fiecrui cuantificator dintr-o formul i apoi se aplic regulile de prioritate legate de
conectori. Intuitiv, dac privim LP1 ca un limbaj de programare imperativ (formulele
fiind programe), construciile de tipul (1x1)(2x2) ... (nxn), cu 1, 2, ... , n {, },
reprezint linia de definiie a unei proceduri (n care ns se specific drept parametri
variabilele locale). Procedurile n-au ns i un sfrit marcat explicit, astfel nct
domeniul sintactic este corpul procedurii, delimitarea lui clar fiind desigur absolut
necesar pentru a cunoate poriunea de text n care numele unei variabile pstreaz o
aceeai semnificaie. Continund paralela, variabilele libere din domeniul sintactic al

45
unui cuantificator reprezint variabilele globale, iar aplicarea unei substituii ar fi un
apel de procedur (deosebirea fa de cazul imperativ fiind aceea c valorile parametrilor
numele unor cuantificatori din linia de definiie pot fi orice sau anumite elemente din
domeniile considerate conform sematicii). Domeniile sintactice ale diverilor
cuantificatori pot fi, datorit formei sintactice a formulelor, disjuncte - ... 1 ... 1 ... 2 ... 2
... , sau imbricate - ... 1 ... 2 ... 2 ... 1 ... , dar nu se pot intersecta - ... 1 ... 2 ... 1 ... 2 ...
. Dac o apariie a unei variabile x se afl n interiorul mai multor domenii imbricate,
desigur c aparine tuturor, dar apariiile diferite su pot avea semnificaii (valori)
diferite. Astfel, n ... 1 ... 2 ... 3 ... x1 ... 3 ... x2 ... 2 ... 1 ... , apariia lui x notat x1 i cea
notat x2, pot practic fi considerate ca fiind nume de variabile diferite. n ceea ce privete
parantezele adugate, ele pot fi fie restaurri ale parantezelor terse, fie putem pune (n
plus, n Definiia 3.1, Pas inductiv): Dac F LP1, atunci (F) LP1 (se adapteaz
corespunztor i definiia arborelui ataat, a lui subf, etc.).
Exemplu. Fie formula: F = Q(x) (x)(y)(P(f(x), z) Q(a) (x)R(x, z, g(x)).
Semnificaia simbolurilor care apar:
x, y, z X. x, y X deoarece sunt nume ale unor cuantificatori, iar z X
conform conveniilor fcute. x apare de 4 ori n F (de la stnga la dreapta: x are o
apariie liber n Q(x); o apariie legat n P(f(x), z), el fiind n domeniul sintactic
al cuantorului (x); o alt apariie legat, pe prima poziie din R(x, z, g(x)), aici
fiind i n domeniul sintactic al cuantorului (x); o a treia apariie legat, n
acelai domeniu sintactic, este n R(x, z, g(x)), adic n g(x)). y nu apare nici o
dat n F, dei apare cuantorul (y). z apare de 2 ori n F, ambele apariii fiind
libere (prima dat n P(f(x), z) i a doua oar n R(x, z, g(x))). n consecin,
free(F) = {x, z} iar leg(F) = {x}.
a F0 conform conveniilor.
Q P1, P P2, R P3 din scrierea sintactic (nici conveniile nu sunt contrazise).
f, g F1 din scrierea sintactic.
Domeniile sintactice ale cuantorilor. Domeniul sintactic al cuantorului (x) este format
din (subformula) (y)(P(f(x), z) Q(a) (x)R(x, z, g(x)). Cel al lui (y), din (P(f(x),
z) Q(a) (x)R(x, z, g(x)). n sfrit, domeniul lui (x) este R(x, z, g(x). innd cont
i de prioritile impuse cuantorilor, formula corect, total parantetizat (conform
Definiiei 3.1), este:
F = (Q(x) (x)((y)(((P(f(x), z) Q(a)) (x)(R(x, z, g(x)))))).
Mulimea subformulelor formulei date.
subf(F) = {Q(x), P(f(x), z), Q(a), R(x, z, g(x), (x)R(x, z, g(x), P(f(x), z) Q(a), P(f(x),
z) Q(a) (x)R(x, z, g(x), (P(f(x), z) Q(a) (x)R(x, z, g(x)), (y)(P(f(x), z) Q(a)
(x)R(x, z, g(x)), (x)(y)(P(f(x), z) Q(a) (x)R(x, z, g(x)), F}.
Mai sus am inut cont de domeniile sintactice, prioritile operatorilor, i faptul c dac G
este formul atunci (G) este formul (nu uitm nici de faptul c subformul a lui F este
orice subcuvnt al su care aparine lui LP1).
Termii (funcionali) care apar n formul. Ei sunt (ordinea este aleatoare): x, f(x), z, a,
g(x).
Mulimea subformulelor nchise ale lui F. Nu avem asemenea subformule, dac ne
referim strict la variabile. Totui, prin convenie, vom admite c formulele care nu

46
conin deloc variabile (adic formulele de baz) sunt formule nchise. Singura
asemenea subformul n cazul nostru este Q(a).
Matricea formulei date. Ea este: F* = Q(x) (P(f(x), z) Q(a)) R(x, z, g(x)).
nchiderea universal a formulei este:
F = (z)(x)(Q(x) (x)(y)(P(f(x), z) Q(a) (x)R(x, z, g(x))).
Similar se obine nchiderea existenial.
Fie substituia s = [x/c] [z/g(b)] [y/x]. Dac o aplicm formulei F gsim succesiv:
(F)s = (Q(c) (x)(y)(P(f(x),z) Q(a) (x)R(x, z, g(x)))[z/g(b)] [y/z] =
= (Q(c) (x)(y)(P(f(x), g(b)) Q(a) (x)R(x, g(b), g(x)))[y/x].
Ultima aplicare nu schimb nimic deoarece y nu apare n F.
Arborele ataat formulei.
Q(x) (x)(y)(P(f(x), z) Q(a) (x)R(x, z, g(x)),
este

(x)

(y)

()

(x)

a
x

x
x

47
Se observ acum cu claritate cele trei tipuri de paranteze rotunde care apar ntro formul: cele care delimiteaz fiecare cuantificator ((x) ar trebui de fapt scris ()x,
acestea fcnd parte indivizibil din numele cuantorului n cauz), cele care delimiteaz
termii sau formulele atomice (f(t1, t2, , tn) sau P(t1, t2, , tn), ele nemaiaprnd explicit
n arbore) i cele care delimiteaz formulele (( F); ele apar explicit, ca operator, n
arbore i sunt singurele care pot fi eliminate sau adugate dup regulile fixate).

LECIA 2
nelesul (semantica) unei formule F LP1 va fi - la fel ca n logica
propoziional - o valoare de adevr 0, 1 B, valoare obinut ntr-un mod extensional.
Elementul principal n definirea semanticii va rmne noiunea de structur. Definiia
unei structuri i gsirea unei valori de adevr pentru o formul va depinde doar de
simbolurile care intervin n acea formul.
Definiia 3.7. Se numete structur un cuplu S = <US, IS> n care US este o mulime
nevid numit univers, iar IS este o funcie (numit interpretare),
IS : X U P U F US U [US* B] U [US* US],
care satisface condiiile:
Dac x X, atunci IS (x) US.
Dac P P n, atunci IS (P) : US n B.
Dac F F n, atunci IS (F) : US n US.
n cele de mai sus, ca i n restul materialului, [A B] desemneaz mulimea tuturor
funciilor totale (de o variabil) avnd domeniul A i codomeniul B, iar [A* B] denot
mulimea tuturor funciilor de oricte argumente (inclusiv 0) peste A, cu valori n B. Prin
urmare, interpretarea (semantica) unei variabile n structura S este un element din
univers, interpretarea unui simbol predicativ n-ar este o funcie de la USn la {0, 1}
(ceea ce poate fi interpretat i ca mulimea elementelor pentru care valoarea n cauz
este 1), iar semantica unui simbol funcional de aritate n este o funcie de la USn la
US. Pentru simplificarea exprimrii, vom renuna la indici dac nu exist confuzii i vom
nota pe IS tot cu S. Similar cu cazul logicii propoziionale, orice structur va putea fi
unic extins astfel nct s fie definit pentru toate elementele lui LP1.
Definiia 3.8. Pentru fiecare structur S = <US, IS>, vom numi extensia sa imediat
funcia S : X U P U F U T U LP1 US U [US* B] U [US* US] U B, dat
constructiv n cele ce urmeaz. Pentru nceput, vom pune S(a) = S(a) (= IS (a)), pentru
fiecare a X U P U F, ceea ce nseamn c S s-a definit, n particular, pentru fiecare
term elementar. Fie acum orice t T, adic orice n N*, orice t1, t2, , tn T i orice f
Fn, astfel nct avem t = f(t1, t2, , t n). Atunci S(t) = S(f)(S(t1), S(t2), ... , S(tn))
(US). Am ncheiat astfel procesul de definire al lui S pe X U P U F U T i rmne s
definim S pe LP1.

48
Baza: Fie F = A At. n aceast situaie avem fie A = P P 0 fie A = P(t1, t2, , tn), n
N*, t1, t2 , , tn T. n primul caz S este deja definit (S(P) = S(P) B), iar n al
doilea caz punem desigur S (P) = S(P)(S (t1), S (t2), ... , S (tn) B).
Pas constructiv:
(i) F = ( F1 ). Atunci S(F) = S (F1 ) .
(ii) F = (F1 F2). Atunci S(F) = S(F1) S(F2).
(iii) F = (F1 F2). Atunci S (F) = S(F1) + S(F2).
(iv) F = (x)(G). Atunci S(F) = 1 dac i numai dac pentru fiecare u US avem
S[x/u](G) = 1 unde S[x/u] este o interpretare care coincide cu S exceptnd faptul c S(x) =
u.
(v) F = (x)(G). Atunci S(F) = 1 dac i numai dac exist (mcar) un element u US
astfel nct S[x/u](G) = 1.
Vom pune, la fel ca n cazul logicii propoziionale, S(F) = S((F)), pentru fiecare
F LP1. De asemenea, de acum nainte nu vom face nici o diferen ntre IS, S, S,
notnd valoarea de adevr a unei formule F LP1 ntr-o structur dat S prin FS (de fapt,
tehnic vorbind, am putea face acest lucru de-abia dup demonstraia Teoremei 3.1). n
mod cu totul similar vor fi notate interpretrile celorlalte simboluri n structura dat: xS,
cS, fS, PS, tS, etc. Putem vorbi astfel de model, formule satisfiabile, valide, nesatisfiabile,
consecin semantic, echivalen tare i slab, pstrndu-se toate notaiile i conceptele
semantice ale logicii propoziionale (excepiile vor fi indicate explicit). De asemenea, se
observ c dat o formul F i o structur S, avem nevoie doar de valorile lui S pe
simbolurile care apar n F, adic la fel ca n cazul logicii propoziionale n loc s
lucrm cu funcii pariale, folosim structuri corecte pentru o formul (sau o mulime de
formule). Pot fi identificate i anumite (clase de) structuri speciale att la nivel sintactic
ct i la nivel semantic. Sintactic, s nu uitm c mulimea de formule din calculul cu
predicate de ordinul I depinde de alfabetul iniial Alf. Vom presupune astfel c mulimea
de variabile este numrabil, c n mulimea P cel puin P0, P1, P2 sunt nevide i c
mulimea F conine mcar un simbol funcional (indiferent de aritate). Exist i pericolul
ca LP1 s poat deveni trivial (de exemplu, mulimea vid), banal (poate coincide cu
LP sau chiar cu o subclas a acesteia) sau prea particular (putndu-se exprima, de
exemplu, doar relaiile unare dintre diverse obiecte). Semantic, putem admite existena
unor simboluri speciale de predicate sau funcii care s fie interpretate identic n
orice structur. Un exemplu este relaia de egalitate, care poate fi considerat ca fiind
reprezentat la nivel sintactic de un simbol predicativ de aritate 2 (s presupunem c P2
i = P2). n momentul n care considerm o formul F care conine un asemenea
simbol i ne intereseaz existena unui model, este normal s-l cutm doar printre
structuri de forma S = <US, IS> n care = S (a, b) este egal cu 1 atunci i numai atunci
cnd a coincide cu b (=S : US US B). Cu alte cuvinte, n asemenea situaii, clasa
structurilor/modelelor admise este restrns n mod forat, ceea ce nu are ntotdeauna
efecte secundare favorabile. Astfel, n situaia descris, clasa de formule este notat
LP1{=} (pe scurt, LP1=) i se numete calculul cu predicate de ordinul I cu egalitate
(reamintim, dac F LP1=, atunci, dac F conine simbolul predicativ = P2, pentru a i

49
se calcula valoarea de adevr S(F) se iau n considerare doar structuri S n care = este
interpretat doar ca fiind egalitatea pe universul respectiv). Acestea se vor numi
structuri/interpretri standard. Similar se poate considera LP1{+} sau chiar LP1{=, +},
etc. Vom arta c problema satisfiabilitii pentru LP1 (SAT1) este semidecidabil, dar
problema satisfiabilitii pentru LP1= este nedecidabil. Un rol important, n special din
punct de vedere teoretic, l au structurile Herbrand.
Definiia 3.9 (universuri i structuri Herbrand). Fie F LP1. Se numete univers
Herbrand (ataat lui F), mulimea D(F) definit prin:
Baza. n D(F) se pun toate elementele din F0 care apar n F. Dac F nu conine nici o
constant, atunci se pune forat n D(F) un element oarecare din F0 (numele rezervat
standard pentru acest lucru este a).
Pas constructiv. Fie orice n N*, orice f Fn care apare n F i oricare termi t1, t2, ... , tn
D(F) i construii doar cu simboluri care apar n F. Atunci f(t1, t2, ... , tn) D(F).
O structur Herbrand (pentru F) este o structur (corect pentru F) H = <UH, IH>, n
care UH = D(F), iar IH satisface condiia c interpreteaz fiecare term prin el nsui. Mai
exact, H(f(t1, t2, ... , tn)) = fH(t1H, t2H, ... , tnH) = f(t1H, t2H, ... , tnH), pentru fiecare n N i
fiecare t = f(t1, t2, ... , tn) T.
Se observ c D(F) este mulimea termilor de baz construii cu simboluri din F.
ntr-o structur Herbrand, dac f F0 atunci H(f) = f i n consecin dac t este un term
de baz atunci tH = t. Interpretarea unei variabile este cea uzual (xH D(F) pentru
fiecare x X), la fel ca i interpretarea simbolurilor predicative (ele vor fi funcii
oarecare peste D(F) cu valori n B). A nu se confunda fH(t1H, t2H, ... , tnH), care denot
aplicarea funciei fH : D(F)n D(F) n-uplului <t1H, t2H, ... , tnH>, cu f(t1H, t2H, ... ,
tnH), care este valoarea aplicrii anterioare, adic un term fr variabile aparinnd
lui D(F), adic n ultim instan un ir de caractere. Dac o structur Herbrand
este model pentru o formul F, atunci spunem c F admite model Herbrand.
Teorema 3.1 (de extensie). Pentru fiecare structur S = <US, IS>, extensia sa imediat S
dat prin Definiia 3.8 este funcie i este unica funcie avnd domeniul X U P U F U T
U LP1 i codomeniul US U [US* B] U [US* US] U B, care extinde S i satisface
condiiile:
(i) S(( F1 )) = S (F1 ) , pentru fiecare F LP1.
(ii) S((F1 F2)) = S(F1) S(F2), pentru fiecare F1, F2 LP1.
(iii) S ((F1 F2)) = S(F1) + S(F2), pentru fiecare F1, F2 LP1.
(iv) S((x)(G)) = 1 dac i numai dac pentru fiecare u US avem S[x/u](G) = 1 unde
S[x/u] este o interpretare care coincide cu S exceptnd faptul c S(x) = u (pentru fiecare
x X i fiecare G LP1).
(v) S((x)(G)) = 1 dac i numai dac exist (mcar) un element u US astfel nct
S[x/u](G) = 1 (pentru fiecare x X i fiecare G LP1).
Exerciiul 3.3. Fie F o formul din calculul cu predicate de ordinul I, cu sau fr
egalitate, (*)F nchiderea sa universal i (*)F nchiderea sa existenial. Ce se poate
spune despre legtura dintre aceste formule n privina satisfiabilitii (validitii)?

50

LECIA 3
S observm c LP1 poate fi considerat ca o extensie real a lui LP, att la
nivel sintactic ct i la nivel semantic. Orice formul de baz din LP1 (formul care nu
conine variabile) poate fi interpretat ca o formul propoziional. Dac formula n cauz
nu conine nici apariii de conectori (i, evident, de cuantori), ea va putea fi considerat
drept o variabil propoziional. Tot variabile propoziionale pot fi considerate i
elementele lui P0. Conchidem c din punct de vedere sintactic LP LP1 dac P0 este
numrabil sau dac mcar F0, F1 i P1 sunt nevide. n ultimul caz, incluziunea devine
strict dac X este nevid. Mai mult, considernd orice structur S ca funcie semantic n
sensul LP1, ea va fi o extensie a funciei corespunztoare aplicat pentru formulele care
sunt (i) elemente ale lui LP (iar aceast ultim funcie, dup cum se constat direct din
definiii, reprezint exact o structur n sensul LP). Vom vedea c relaia dintre LP i
LP1 este chiar mai profund, LP putnd fi considerat ca o aproximare alui LP1, la fel
cum mulimea numerelor raionale este o aproximare a mulimii numerelor reale.
Numele folosite, logic propoziional respectiv logic cu predicate de ordinul I, sunt
legate de lipsa cuantificatorilor, respectiv de folosirea acestora pentru a lega doar
variabilele (nu i, de exemplu, simbolurile funcionale sau cele predicative). Cuvntul
calcul, utilizat ca un sinonim pentru logic n acest context, exprim faptul c mulimile
(de formule) considerate nu sunt amorfe, ci pot fi prelucrate ntr-un mod sistematic
(vorbim despre calculul diferenial i integral, de exemplu). O logic (calcul) n care ar fi
permis i cuantificarea simbolurilor predicative (eventual i a celor funcionale), ar putea
fi numit logic (calcul) cu predicate de ordinul II (LP2), dac inem cont de faptul
observat deja c (mcar) elementele lui P0 sunt formule atomice pentru LP dar variabile
n LP1 (analog, formulele atomice din LP1 ar putea fi variabile n LP2). Fiecare nou
tip de logic (LP1, LP2, ), trebuie s fie n acelai timp o extensie i o aproximare a
logicii anterioare (pe scurt, o generalizare sau o logic de ordin superior). Dup cum
am mai subliniat de cteva ori, dei rezultatele privind complexitatea sau tratabilitatea
(algoritmic a) unor probleme importante sunt descurajatoare chiar pentru logici de ordin
inferior, cutarea unor logici mai generale (de ordin superior, dar i neclasice) este
justificat prin mrirea puterii de exprimare.
Exerciiul 3.4. Considernd exemplul anterior, putei gsi o formul F care s
satisfac aceleai cerine, exceptnd folosirea explicit a lui e? Dar dac am interzice i
folosirea explicit a simbolului de egalitate?
Exerciiul 3.5. S se gseasc o formul care s conin un simbol predicativ binar P
i care s exprime faptul c P este o relaie (binar) antisimetric pe orice mulime
considerat.
Teorema 3.2 (de substituie). Fie H LP1, oarecare. Fie orice F, G LP1 astfel nct F
este o subformul a lui H i G este tare echivalent cu F. Fie H formula obinut din H
prin nlocuirea (unei apariii fixate a) lui F cu G. atunci H H.
Echivalenele deja cunoscute pot fi completate cu altele, care se refer la cuantori.
Teorema 3.3. Pentru fiecare F, G LP1 i fiecare x, y X, sunt adevrate urmtoarele
echivalene:
1.
(x)F (x)( F),
(x)F (x)( F).

51
2.

Dac x nu apare liber n G, atunci:


(x)(F G) (x)(F) G,
(x)(F G) (x)(F) G,
(x)(F G) (x)(F) G,
(x)(F G) (x)(F) G.
3.
(x)(F) (x)(G) (x)(F G),
(x)(F) (x)(G) (x)(F G).
4.
(x)(y)F (y)(x)F,
(x)(y)F (y)(x)F.
5.
Dac x nu apare liber n F, atunci:
(x)F F,
(x)F F.
Observaie. Ca o consecin a teoremei anterioare rezult c sunt adevrate i
echivalenele (x)(x)F (x)F i (x)(x)F (x)F (chiar i variantele (x)(x)F
(x)F, respectiv (x)(x)F (x)F), care se pot generaliza pentru oricte apariii ale
cuantorilor (despre F n-am precizat c n-ar putea conine cuantificatori). Se poate arta
ns c nu sunt adevrate echivalenele:
(x)F (x)G (x)(F G) i
(x)F (x)G (x)(F G).
S considerm de exemplu prima relaie de mai sus. Chiar la nivel intuitiv, cei doi
membri nu exprim acelai lucru deoarece faptul c F sau G este satisfcut pentru o
(aceeai) valoare a lui x nu nseamn c fie F, fie G, sunt satisfcute pentru valori ale lui
x, eventual diferite. Astfel, putem lua drept contraexemplu:
F = P(x).
G = Q(x).
S = <US, IS>, US = N, PS(n) = 1 dac i numai dac n este numr par, QS(n) = 1
dac i numai dac n este numr impar (interpretarea lui x n S nu conteaz, toate
apariiile sale fiind n acest caz legate).
Nici echivalena (x)(y)F (y)(x)F nu este adevrat pentru fiecare formul F.
Putem totui trage concluzia c scrierea succesiv a unui aceluiai cuantor este inutil, la
fel fiind i cuantificarea unei apariii deja cuantificate (interpretarea unei variabile care nu
are apariii libere ntr-o formul neavnd efect n stabilirea valorii de adevr a acelei
formule, indiferent de structura considerat).

CONSOLIDARE
LECIA 4
Dei nu este imediat util, am preferat s ncepem cu rezultatul urmtor datorit
importanei sale n justificarea unor afirmaii i caracterului didactic al demonstraiei.
Intuitiv, teorema afirm c pentru a gsi semantica unei formule F (cu ajutorul unei
structuri S), formul n care am substituit apariiile libere ale unei variabile x cu un term
de baz t, putem afla mai nti semantica lui t n structura considerat i apoi s gsim
semantica lui F n noua structur S[x/S(t)].

52
Teorema 3.4 (lema de translaie). Fie F LP1, x X , t T un term de baz i S orice
structur corect pentru formulele care apar. Atunci:
S((F)[x/t]) = S[x/S(t)] (F).

Teorema 3.5 (lema de redenumire a variabilelor legate). Fie F = (x)G , {, }, o


formul oarecare din LP1. Fie y o variabil nou (n sensul c ea nu apare n G). Atunci :
F (y)(G[x/y]).
Demonstraie. Imediat, prin inducie structural.
n cele de mai sus era suficient s presupunem c y, variabila nou, nu apare liber n G.
Definiia 3.10. O formul F LP1 se numete rectificat dac nu conine variabile care
apar att libere ct i legate i nu are cuantificatori care s lege aceeai variabil, dar pe
poziii diferite (indiferent dac este vorba de cuantificatori existeniali sau universali).
Teorema 3.6. Pentru orice formul din F LP1, exist o formul rectificat F LP1,
astfel nct F F.
Demonstraie. Se aplic de un numr finit de ori Lema de redenumire formulei iniiale
F (implicit, se aplic i Teorema 3.3 i Teorema de substituie).
Definiia 3.11. O formul F LP1 este n form normal prenex (FNP, pe scurt) dac
F = (1y1) (nyn)G, unde n N (cazul n = 0 se refer la absena cuantificatorilor), i
{, } (i [n]), iar y1, , yn sunt toate variabilele distincte care apar (liber) n G (G nu
mai conine cuantificatori).
Teorema 3.7. Pentru fiecare formul F LP1, exist o formul F LP1, care este n
FNP i este tare echivalent cu F.
Observaie. Am artat c pentru fiecare formul din LP1, exist o alt formul din LP1,
care este tare echivalent cu ea i care este n FNP rectificat (pe scurt, FNPR). Mai
mult, conform Teoremei 3.3, putem presupune c nu exist n aceast formul
cuantificatori care s lege variabile care nu apar n ea i nici cuantificatori (relativ la o
aceeai variabil) cu apariii multiple. Cu alte cuvinte, din punctul de vedere al
satisfiabilitii, ne putem limita la studiul formulelor din LP1 de forma F = (1y1)
(kyk)F, unde free(F) = {y1, y2, , yk}, iar F este chiar matricea lui F, nemaiconinnd
ali cuantori (1, 2, , k {, }). Prin urmare, folosind i Exerciiul 3.3 (o formul
este satisfiabil dac i numai dac nchiderea sa existenial este satisfiabil), putem
spune c pentru testarea satisfiabilitii unei formule din LP1, putem s ne limitm la
clasa de formule avnd aspectul sintactic F = (1y1)(2y2) (kyk)F*, unde F* este
matricea lui F iar free(F*) = {y1, y2, yk}. Prin urmare, aceast formul este i nchis,
neconinnd variabile libere.
Vom arta c dac exist cuantificatori existeniali n exprimarea anterioar,
acetia pot fi eliminai. Mai exact, ei vor fi nlocuii cu cuantificatori universali, astfel
nct testul de satisfiabilitate pentru formulele din LP1 poate fi redus la textul de
satisfiabilitate pentru formulele de forma
F = (y1) (yn)F*,
unde {y1, y2, , yk} = free(F*), F* neconinnd cuantificatori (matricea lui F).

53

LECIA 5
O alt form normal pentru elementele lui LP1 este necesar.
Definiia 3.12. O formul F LP1 este n form normal Skolem (FNS, pe scurt), dac
are aspectul F = (x1) (xk)G unde G nu mai conine cuantificatori (matricea lui F),
iar x1, x2, , xk sunt variabile distincte i reprezint exact variabilele care apar n G
(free(G) = {x1, x2, , x k}). F este n form normal Skolem clauzal (FNSC, pe
scurt), dac este n FNS i matricea sa este n FNC (forma normal conjuctiv) ntr-un
sens similar cu LP (literalii reprezentnd formule atomice din LP1 sau negaiile lor).
Teorema 3.8. Pentru fiecare formul F din LP1, exist o alt formul F LP1, care este
n FNSC i care este slab echivalent cu ea.
Demonstraie. Vom prezenta un algoritm prin care formula F va fi dedus efectiv din
formula F.
Algoritm Skolem
Intrare: F LP1. Fr a restrnge generalitatea, putem presupune c F este n FNPR,
nchis.
Ieire: F LP1, aflat n FNS (i nchis), slab echivalent cu F.
Metod:
Pasul 1. F : = F.
Pasul 2. Ct_timp (exist cuantificatori existeniali n F) execut:
2.1. Alege un asemenea cuantificator i elimin-l.
2.2. Transform formula F.
Sf_Ct_timp.
Explicaii. Orice formul intermediar prelucrat de algoritm are forma F = (y1)
(yn)(z)G. Desigur c G poate s conin i ali cuantificatori i am pus n eviden
primul cuantificator existenial (alegerea fiind acum determinist). Atunci, n urma
Pailor 2.1 i 2.2, F va cpta forma F = (y1) (yn)(G)[z/f(y1, , yn)] unde f este
un simbol funcional nou (n sensul c el nu mai apare n formulele considerate), f Fn.
S notm cu H formula (y1) (yk)(z)G, existent nainte de execuia unui pas al
algoritmului precedent i cu H = (y1) (yk)(G)[z/f (y1, y2, yk)] formula rezultat
dup execuie. Trebuie s artm c H este slab echivalent cu H.
Presupunem c H este satisfiabil. Exist atunci o structur corect S = <US, IS>,
astfel nct S |= H. Ca urmare, pentru fiecare u1, u2, , uk US avem

S [y1/u1 ][y2/u 2 ]...[yk /u k ] ((G)[z/f(y1, y2, , yk]) = 1.


Pentru c variabilele y1, y2, yk sunt distincte i apar liber n G[z/f(y1, y2, , yk)] i
pentru c structura S coincide cu S, exceptnd valorile y1, y2, yk, care sunt puse pe u1,
u2, ... , uk, semantica LP1 ne permite s nlocuim n formula G= G[z/f(y1, y2, , yk] pe
y1, y2, yk respectiv cu nite constante noi, distincte, a1, a2, , ak i s extindem
structurile S i S prin aSi = aSi = ui , pentru fiecare i [k]. n acest moment, termul t =
f(y1, y2, , yk) va coincide cu f(a1, a2, , ak) i deci nu va conine variabile. Mai mult,
S(f(y1, y2, , yk)) = S(f(a1, a2, , ak)) = fS(<S(a1), , S(ak)>) = fS(<u1, , uk>).
Atunci S(G[z/t]) = 1 i t nu conine variabile, astfel nct putem aplica Lema de
translaie, gsind S[z/S (t)](G) = 1, adic S [z/S(t)](G) = 1. Sintetiznd, putem spune c

54
pentru fiecare u1, , uk US = US, exist v US (v = tS = fS(<u1, , uk>)) astfel nct
S[z/v](G) = 1, deci S este model i pentru H.
Presupunem c H este satisfiabil. Simplificnd, demonstraia este cumva invers
demonstraiei anterioare.
Putem sintetiza acum rezultatele obinute pn n prezent.
Teorema 3.9. Pentru fiecare formul F LP1, exist o formul F LP1 astfel nct F
s F, F fiind n FNSC nchis (F = (y1) (yn)F*, {y1, , yn} = free(F*), F* fiind n
form normal conjunctiv).
Teorema 3.10. Fie F o formul din calculul cu predicate de ordinul I fr egalitate,
nchis i aflat n FNS. Atunci F este satisfiabil dac i numai dac F admite un model
Herbrand.
Observaie. Tot ceea ce am afirmat sau demonstrat pn la teorema anterioar este
aplicabil i n cazul calculului cu predicate de ordinul I cu egalitate. Teorema 3.10 nu
este ns adevrat i pentru LP1= , dup cum se poate intui chiar urmrind
demonstraia, pentru succesul creia relaia (*) este esenial. Astfel, n cazul n care P
este chiar egalitatea, ea trebuie interpretat standard n orice structur. Prin urmare,
considernd b i c dou constante distincte, putem gsi uor structuri S n care bS = cS,
dar b c n orice structur Herbrand. Desigur c acest lucru nu nseamn c n-am putea
gsi o alt demonstraie a rezultatului anterior, convenabil pentru LP1=. Din pcate,
faptul nu este posibil, conform rezultatelor care urmeaz (nu toate demonstrate explicit).

Teorema 3.11 (Lwenheim Skolem). Fiecare formul satisfiabil din LP1 admite
model cel mult numrabil.
Demonstraie. Se aplic direct Teorema 3.10.
Definiia 3.13. Pentru fiecare formul F nchis, aflat n FNS, F = (y1) (yn)F*, {y1,
, yn} = free(F*), extensia sa Herbrand este mulimea
E(F) = {(F*)[y1/t1] [y2/t2] [yn/tn] | t1, t2, tn D(F)}.
Dac F este n FNSC nchis (F are forma de mai sus, n plus F* fiind n FNC, F* = C1
C2 C k, C1, C2, ... , Ck reprezentnd clauze, adic formule atomice din LP1 sau
negaii ale lor), mulimea

E ( F ) =

E (C i )

i =1

se numete extensia Herbrand generalizat.


Teorema 3.12 (Church). Problema validitii pentru logica cu predicate de ordinul I
(fr egalitate) este nedecidabil.
Demonstraie. Se poate consulta [MAS].
Observaie. innd cont de legtura dintre F i F, se deduce imediat c problema SAT
pentru LP1 este nedecidabil, ca de altfel i problema nesatisfiabilitii. Pe de alt parte,
n cazul LP1 aceste probleme sunt totui semidecidabile.
Teorema 3.13 (Gdel-Herbrand-Skolem). O formul F LP1 este satisfiabil dac i
numai dac E(F) este satisfiabil.
n Teorema 3.13 putem lua E(F) n loc de E(F) i, mai mult, aa cum de altfel
am mai punctat, elementele lui E(F) pot fi privite drept clauze n sensul logicii
propoziionale, deoarece literalii din LP1 care le compun nu conin variabile (astfel,
interpretarea lor 0 sau 1 - n orice structur S depinde practic doar de interpretarea

55
singurului simbol predicativ care apare, ceea ce se reduce la interpretarea unei variabile
propoziionale n sensul LP). Atunci este adevrat:
Teorema 3.14 (teorema lui Herbrand; teorema de compactitate pentru LP1). O
formul F LP1 este nesatisfiabil dac i numai dac exist o submulime finit a lui
E(F) care s fie nesatisfiabil.
Demonstraie. Direct din Teorema 3.13 i Teorema de compactitate pentru LP.
n acest moment putem spune c procedura urmtoare poate fi folosit corect pentru
testarea nesatisfiabilitii oricrei formule din LP1. Pasul 1 este un algoritm n sine (a se
vedea i exemplul care urmeaz imediat Teoremei 3.9), formula gsit la sfritul
execuiei sale fiind slab echivalent cu formula iniial i avnd aspectul F = (*)F*, unde
F* = C1 C2 Ck. Extensia Herbrand generalizat E(F) rezultat n urma
aplicrii Pasului 2 trebuie interpretat ca fiind o list de clauze din LP. Datorit faptului
c E(F) nu este recursiv ci doar recursiv enumerabil, Pasul 2 reprezint doar un
semialgoritm. Dup cum se observ, nici n-ar fi nevoie de obinerea acestei liste dintr-o
dat ci doar de a putea selecta cte un nou element din ea atunci cnd este necesar,
conform Pasului 3.3.2, care ar putea fi reformulat prin Obine un nou element din E(F)
(am ales alt formulare pentru uurarea nelegerii). Pasul 3 este de fapt semialgoritmul
cunoscut ca Procedura lui Gilmore sau Procedura rezoluiei de baz i desigur c nu se
termin n cazul n care F este satisfiabil.
Semialgoritmul lui Gilmore
(Procedura rezoluiei de baz)
Intrare: Orice formul F LP1.
Ieire: DA, n caz c F este nesatisfiabil.
Metod:
Pasul 1. Se transform F ntr-o formul aflat n FNSC nchis, succesiv, prin
rectificare (redenumire), gsirea FNP (FNPR), obinerea nchiderii existeniale,
obinerea FNS i apoi FNSC, formula rezultat notndu-se tot cu F.
Pasul 2. Se obine E(F) = {G1, G2, ... , Gn, ... }.
Pasul 3.
3.1. M := .
3.2. i := 0.
3.3. Repet
3.3.1. i := i + 1.
3.3.2. Alege Gi E(F).
3.3.3. M := M U {Gi}.
3.3.4. M := Res*(M).
Pn_cnd ( M).
Pasul 4. Tiprete DA.
Mai exact, putem enuna:
Teorema 3.15. Procedura rezoluiei de baz pentru LP1 este corect.
Demonstraie. Trebuie s artm c pentru fiecare F LP1 semialgoritmul anterior se
oprete dac i numai dac F este nesatisfiabil. Acest lucru rezult imediat din faptul c
E(F) este recursiv enumerabil, din Teorema lui Herbrand i din Teorema rezoluiei
pentru LP.
Putem acum justifica de ce logica propoziional poate fi considerat ca o aproximare a
logicii cu predicate de ordinul I. Semnificaia este aceea c E(F) (sau E(F)) aproximeaz

56
pe F, deoarece testul de nesatisfiabilitate pentru F poate fi fcut testnd de
nesatisfiabilitate submulimile finite ale lui E(F) (E(F)
Teorema 3.16 (a rezoluiei de baz). Fie F LP1 i E(F) extensia Herbrand
generalizat a unei formule slab echivalente cu F i aflat n FNSC nchis. Atunci F este
nesatisfiabil dac i numai dac exist o demonstraie prin rezoluie (n sensul logicii
propoziionale) a lui , pornind cu (o parte din) elementele lui E(F) .
Demonstraie. Imediat, din Teorema lui Herbrand, Teorema 3.15 i innd cont de
legtura care exist n LP ntre Res*(F) i demonstraiile prin rezoluie.
Teorema 3.17. Fie F LP1, satisfiabil, care admite un model finit S = <US, IS> i s
presupunem c | US | = n N*. Artai c pentru fiecare m n, exist un model Sm
pentru F, cu cardinalul universului egal cu m. Mai mult, F are i un model numrabil,
obinut ca o aproximare a modelelor finite.
Teorema 3.18. Exist o formul nchis, satisfiabil F LP1, astfel nct pentru fiecare
model S = <US, IS> al lui F avem | US | 3.
Teorema 3.19. Exist o formul satisfiabil F LP1=, astfel nct pentru fiecare model S
= <US, IS> al lui F avem | US | 2.
Prin urmare, problema SAT pentru LP1= este strict nedecidabil (n sensul
c nu este nici mcar semidecidabil). Inconvenientul practic poate fi reparat parial
(dup cum am mai precizat i vom exemplifica acest lucru n Modulul 5) prin
ascunderea simbolului = ntr-un simbol predicativ de aritate superioar.

REZUMARE I ADDENDA
Dei teoria este foarte dezamgitoare n privina rezultatelor pozitive (chiar
dac ne referim doar la calculul propoziional, unde decidabilitatea este rsturnat
de netratabilitate), necesitatea exprimrii simple a situaiilor reale a condus la
acceptarea introducerii unor limbaje mai complexe (calculul cu predicate de ordinul I
fr egalitate, calculul cu predicate de ordinul I cu egalitate, logicile cu predicate de
ordinul II i mai mare, etc.). Desigur c din punct de vedere formal rezultatele vor fi i
mai descurajante. Exist ns cteva argumente solide care fac ca utilizarea logicii s
constituie ntr-adevr o modalitate interesant de a interpreta programarea (vom
reanaliza aceasta n Modulul 5). Pe parcursul Modului 4, n acelai spirit, am artat c
din din punct de vedere formal att sintaxa ct i semantica logicii cu predicate de
ordinul I constituie o extensie simpl i natural a LP, c logica propoziional este
chiar o aproximare a LP1 (n cel mai pur sens matematic), c noiunile deja folosite i
nelese pentru LP pot fi extinse la LP1 (rezultatele fiind i ele, n general, pstrate). Pe
un plan superior, discutm tot despre exprimarea realitii prin formule atomice i
literali, despre obinerea de formule compuse din formule elementare (variabilele i
cuantificatorii fac diferena, dar la nivel intuitiv ele reprezint chiar o necesitate de
limbaj), despre forme normale i despre posibiliti efective de a testa satisfiabilitatea
unei formule (de natur sintactic sau semantic). Problema SAT pentru LP1= este
nedecidabil, iar pentru LP1 este semidecidabil. Cu toate acestea, totul poate fi redus
la aceeai problem pentru LP (ascunznd simbolul de egalitate i apelnd la
rezoluia de baz), unicul dezavantaj fiind probabil creterea numrului de situaii n
care se poate obine un rspuns negativ, dei poate nu este cazul. Utilizarea rezoluiei

57
pure pentru LP1, a unor clase particulare de formule (cum ar fi clasa formulelor Horn),
adaptarea strategiilor i restriciilor rezoluiei pentru cazul prezenei variabilelor,
scufundarea realitii n alte tipuri de logici, rmn alternative viabile n
programarea logic. Pentru Addenda: simbol funcional de aritate i, variabil
predicativ, simbol predicativ de aritate i, constant funcional, cuantificator (cuantor)
existenial (universal), termi(funcionali), formule atomice, formule (subformule,arbori),
domeniul sintactic al (apariiei) unui cuantor, apariii libere i legate ale variabilelor,
formule nchise, nchiderea universal (existenial) a unei formule, matricea
uneiformule, termi (formule) de baz, substituii, substituii de baz, substituii
elementare, substituii normalizate, substituia vid, substituiipermise, substituii
echivalente, interpretare, extensie imediat, calculul cu predicate de ordinul I fr
egalitate, calculul cu predicate de ordinul I cu egalitate, structuri iinterpretri standard,
pagina 102univers i structur Herbrand, model Herbrand, mulime recursiv
enumerabil, logica cu predicate de ordinul II, logici nestandard i de ordin superior,
formul rectificat, form normal prenex, form normal prenex rectificat, form
normal Skolem, form normal Skolem clauzal, extensie Herbrand, extensie Herbrand
generalizat, rezoluie de baz, unificare, rezoluie pur.

VERIFICARE (TESTARE)
1. Definii constructiv free(F), F LP1.
2. Determinai subf(F) pentru
F = ((x)((P(x, g(a)) Q(z)) R(u, f(v)).
3. Rezolvai Exerciiul 3.1.
4. Rezolvai Exerciiul 3.2.
5. S se aplice substituia: s = [y/h(z)][z/h(x)][x/g(f(y))] formulei F = (x)(P(x, f(x))
Q(g(a, z)).
6. S se rezolve Exerciiul 3.3.
7. Fie formula F = (x)(y)P(x, y, f(z)). S se decid dac formula este satisfiabil,
valid, sau contradicie.

58

MODULUL 4 - Teorii logice i sisteme deductive


INTRODUCERE
Aceast parte a logicii formale, alctuit din teoriile logice i sistemele deductive
(de demonstraie) este una dintre cele mai rspndite modaliti de exprimare a
rezultatelor utilizat de ctre comunitatea tiinific. Trecnd de la un studiu naiv al
realitii la un studiu semi-fundamentat, este absolut necesar ca obiectele, conceptele,
relaiile manipulate s admit definiii precise, ca anumite proprieti s fie
demonstrate ntr-un cadru exact specificat, ca totul s poat fi fcut constructiv.
ntr-un limbaj mai mult sau mai puin apropiat de limbajul natural, orice tiin folosete
afirmaii reprezentate prin formule, un concept de adevr asociat acestora, un
mediu de natur sintactic, organizat, pentru demonstrarea adevrului unei
formule. n logic, sistemele deductive reprezint mediul de demonstrare iar teoriile
logice adevrul. n plus, aceste meta-concepte sunt tratate la nivel global iar ntre ele
exist o legtur clar subliniat. Ele sunt astfel utilizate att n procesul de formalizare a
(coninutului) altor tiine ct i n studiile logice de baz, ceea ce poate genera din nou
dificulti de nelegere de tip limbaj de baz metalimbaj.
S trecem n revist conceptele de sistem deductiv i teorie logic precum i
legtura dintre ele, la un nivel informal. Indiferent de tipul de logic (LP, LP1, LP1=,
LP2, etc.), din punct de vedere sintactic se pornete cu un alfabet i se construiesc
formule peste acel alfabet. Sunt apoi identificate subclase importante, cum ar fi clasa
formulelor Horn sau clasa formulelor aflate n FNSC. O asemenea subclas de formule
dar i de obiecte mai complexe, pe care le vom numi metaformule - poate fi descris
finitar cu ajutorul unui sistem deductiv (de demonstraie). Un sistem deductiv se bazeaz
concret pe o definiie constructiv, care apeleaz la noiunile de axiom i de regul de
inferen. Axiomele sunt formulele plasate iniial (prin Baza definiiei) n subclasa
corespunztoare iar regulile de inferen (de deducie) reprezint modalitile prin care se
obin formule noi din formule vechi, prin Pasul inductiv. Cu ajutorul acestora se
definete n mod formal, la nivel global, conceptul de raionament (demonstraie). Un
exemplu imediat de sistem deductiv este cel bazat pe rezoluie. Astfel, n LP pornim cu o
mulime de clauze F (formul aflat n FNC, generatoare de axiome) i putem gsi
Res*(F) utiliznd rezoluia ntr-un pas ca (unic schem de) regul de inferen (orice
element din Res*(F) este demonstrabil prin rezoluie pornind cu axiomele din F).
O teorie logic este o (sub)clas de formule nchis la consecin semantic. Cu
alte cuvinte, o mulime T de formule este teorie logic dac pentru fiecare submulime S
T i fiecare (alt) formul G care este consecin semantic din S, atunci G T.
Exemple imediate de teorii logice sunt constituite din clasele formulelor valide (din LP,
LP1, LP1=, etc.). Cu ajutorul acestora se definete formal, la nivel global, conceptul de
adevr (elemente lui T fiind formule adevrate).
Legtura dintre teoriile logice i sistemele de demonstraie se exprim prin
teoremele de corectitudine i completitudine, adic teoreme de tipul: Tot ceea ce este
adevrat este demonstrabil (completitudine) i tot ceea ce este demonstrabil este
adevrat (corectitudine). Mai precis, se poate porni cu o teorie logic i se poate
ncerca axiomatizarea ei (adic gsirea unui sistem deductiv prin care se genereaz,
sintactic, aceeai clas de formule), sau invers, considerm sisteme deductive pentru care

59
clasa formulelor generate reprezint, n general, o teorie logic (sau chiar o parte a
acesteia) format din formule adevrate (valide, satisfiabile, nesatisfiabile, etc.). Ca
exemple imediate, avem teorema rezoluiei pentru LP i teorema rezoluiei de baz
pentru LP1, dei n acest caz nu se genereaz teorii logice.
n ansamblu, lucrurile nu stau chiar aa de simplu cum au fost prezentate mai sus,
din cauza lipsei de spaiu tratarea fiind departe de a fi exhaustiv. Astfel, subiectul
general al teoriilor logice este foarte vast, putndu-se vorbi de teorii degenerate, de teorii
inconsistente, de teorii recursive i recursiv enemerabile, etc. Mai mult, orice teorie
logic trebuie s conin toate formulele valide (avnd eventual o form sintactic
specificat), pentru c orice formul valid este consecin semantic din orice alt clas
de formule. Dac o teorie logic conine o contradicie, atunci acea teorie coincide cu
ntreaga clas precizat de formule (LP, LP1, LP1=, etc.), lucru care rezult direct din
definiii. Nici n cazul sistemelor deductive nu dispunem de un context uor de manipulat.
Utilizarea unui numr finit de (scheme de) axiome i reguli de inferen pentru
prezentarea unor teorii logice poate fi imposibil, existnd i un numr impresionant de
tipuri generale de asemenea sisteme (a se vedea noiunile de metaformul sau regul de
inferen). Aspectul teoremelor de corectitudine i completitudine poate depinde n mod
esenial de sistemul deductiv sau de teoria aleas (ba chiar de alfabetul peste care este
construit mulimea de formule), dei corectitudinea poate fi mai uor de manipulat,
independent de context. S reinem i faptul important c sistemele deductive pot fi
utilizate pentru ele nsele, ca mecanisme formale, de exemplu ca alternativ pentru
definiiile constructive, definind sintactic mulimi care au i o caracterizare semantic
boolean. Leciile urmtoare, n care detaliem cteva dintre aspectele menionate, se
bazeaz n principal pe [CAZ], concepia general fiind ns original (chiar noiunile de
sistem de demonstraie i teorie logic difer uor fa de cele clasice, n special dar nu
numai - datorit bagajului de cunotine acumulat anterior acestui curs i presupus a fi
insuficient). ncepem cu prezentarea sistemelor deductive din motive psihologice,
noiunea de adevr nefiind aici explicit tratat.

DEZVOLTARE
LECIA 1
Vom nota cu numele generic FORM clasa de metaformule n care ne vom plasa.
Termenul ales se explic prin faptul c o metaformul va fi n general un element din LP,
LP1, LP1=, sau dintr-o subclas fixat a acestora, dar ar putea fi i o list de asemenea
elemente, sau, ieind din sfera logicii, obiecte cu mult mai complicate dect formulele
clasice. Mulimea FORM va fi precizat ns n mod explicit doar atunci cnd va fi
necesar.
Definiia 4.1. Se numete sistem deductiv (de demonstraie, axiomatic) n FORM un
cuplu SD = <A, R> unde A FORM este o mulime de axiome iar R FORM+ C o
mulime de reguli de inferen (de deducie, de demonstraie).
n cele de mai sus, FORM+ denot mulimea relaiilor de oricte argumente (cel puin
unul) peste FORM, iar C o mulime de condiii de aplicabilitate. Fiecare regul de
inferen r R, are astfel aspectul r = < < G1, G2, , Gn, G>, c>, unde n N, G1, G2,
, Gn FORM i c C.. G1, G2, , Gn sunt ipotezele (premizele) regulii, G reprezint

60
concluzia (consecina) iar c desemneaz cazurile (modalitile) n care regula poate fi
aplicat. Vom scrie chiar r = < < {G1, G2, , Gn}, G>, c> deoarece ordinea ipotezelor
nu este esenial. Mulimea C nu a fost specificat formal (spunnd, de exemplu, c
elementele sale sunt metapredicate) din cauza generalitii ei i pentru a nu complica
inutil expunerea. Similar cu situaia rezoluiei, regulile vor fi folosite pentru a construi
demonstraii n pai succesivi, la un pas aplicndu-se o regul. Exist ns posibilitatea
ca nafara restriciilor sintactice locale, date de forma formulelor implicate, s se
interzic aplicarea regulii pe considerente semantice globale (forma demonstraiei,
apariia n demonstraie a unei formule nedorite, pstrarea completitudinii unei teorii,
etc.). Astfel nct dac c este ataat unei reguli r (atenie, c poate lipsi, mai exact ea
poate fi condiia mereu adevrat) nseamn c n orice demonstraie, r va putea fi
aplicat la un moment dat doar dac c este adevrat la momentul respectiv. O regul r =
< < {G1, G2, , Gn}, G>, c>, va fi scris i ca:

G1, G 2 , , G n
,c
G

n cazul n care n = 0 i c lipsete, r poate fi identificat cu o axiom, dup cum rezult


din definiia care urmeaz.
Definiia 4.2. Fie SD = <A, R> un sistem deductiv n FORM. Se numete demonstraie
(pentru Fm, pornind cu F1) n SD o list de metaformule D = F1, F2, , Fm astfel nct
pentru fiecare i [m], fie Fi A, fie Fi este obinut din Fj1 , Fj2 , ... , Fjk folosind o regul
r = < < { Fj1 , Fj2 , , Fjk }, Fi>, c> R, unde j1, j2, ... , jk < i.

Prin urmare, fiecare element al listei D este fie o axiom, fie este concluzia unei reguli de
inferen ale crei ipoteze sunt elemente anterioare din list. Analogia cu cele deja fixate
n Modulul 2 despre demonstraiile prin rezoluie (Definiia 2.10 este un caz particular al
definiiei precedente) este clar i aceasta poate fi continuat prin definirea numrului de
pai ai unei demonstraii, reprezentarea unei demonstraii printr-un arbore, etc. O
demonstraie se va mai numi i deducie (sintactic). Analog cu cazul rezoluiei, putem
defini D de mai sus, constructiv, ca fiind un arbore cu rdcina Fm, n care frunzele
(Baza) sunt axiome i fiecare nod nou (concluzie) se obine din noduri vechi (ipoteze), n
timpul execuiei Pasului inductiv, folosindu-se cte o regul de inferen posibil de a fi
aplicat (conform c). Este posibil ca pentru anumite sisteme (a se vedea sistemul SD0,
Lecia 3) care n-au axiome sau pentru care condiiile c o impun arborele s aib o
definiie direct mai simpl, sau, alternativ, noiunea de consecin sintactic s fie
definit cu ajutorul arborelui (necoinciznd cu el), dar nu dorim n acest moment s
ncrcm inutil textul.
Definiia 4.3. Fie SD = <A, R> un sistem deductiv n FORM. Mulimea teoremelor lui
SD este mulimea metaformulelor care admit demonstraii n SD, adic:
Th(SD) = {F FORM | exist o demonstraie D pentru F n SD }.
Este imediat faptul c i Th(SD) admite i o definiie constructiv (similar cu Teorema
2.11, din cazul rezoluiei, se arat c Th(SD) coincide cu mulimea dat mai jos):
Baza: A Th(SD).
Pas constructiv: Dac r = < < {G1, G2, , Gn}, G>, c> R i G1, G2, , Gn
Th(SD) atunci G Th(SD).

61
Faptul c exist o demonstraie pentru F n SD va mai fi notat prin |_ SD F
renunnd i la indice n cazul n care nu exist confuzii. Din motive tehnice, legate n
general de demonstraiile teoremelor de corectitudine i completitudine, este posibil ca n
anumite situaii s lucrm pe lng axiome cu o mulime suplimentar de
metaformule (uneori, acestea nu pot fi oarecare), 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). Practic, dei din punctul de vedere al
noiunii de adevr, sensul semantic al celor dou mulimi(A i I) nu coincide, folosirea
mulimii suplimentare I nu nseamn altceva dect s lucrm obinuit, dar n sistemul
SD = <A, R>, unde A = A U I.
Sistemele anterioare au caracteristic i faptul c pot fi finit specificate, adic att
mulimea de axiome (inclusiv mulimea de metaformule suplimentare) ct i mulimea de
reguli de inferen sunt fie finite (cazul lui F), fie reprezint un numr finit de scheme de
elemente (cazul regulilor, lucru evident i din specificarea mulimii respective). Clasa
regulilor poate fi ns descris finitar i astfel:
Pentru fiecare C1, C2 Cl, dac C1 C2 i exist mcar un literal L astfel nct
L C1 i L C2, atunci:
C1 , C 2
r:
.
Res(C1 , C 2 )
n acest mod, spunem c pentru descrierea regulilor am folosit o singur schem.
Exerciiul 4.1. Artai c metoda rezoluiei pentru LP poate fi privit ca sistem de
demonstraie.
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 (i introdus pentru prima dat de ctre A. Church n 1954).
Axiome (ASD3). Condiiile sintactice sunt: F, G, H LP1, x X, t T, oarecare.
Suplimentar, n 4., x trebuie s nu apar liber n F iar n 5., substituia s = [x/t]
trebuie s fie permis pentru F (adic 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 , unicul cuantificator acceptat fiind .
Dac dorim s utilizm i ceilali conectori (cuantori), putem face acest lucru doar
utilizndu-i ca notaii (de exemplu, avem A B reprezint A B, etc.).
Reguli de inferen (RSD3). Din nou, avem doar restricii de natur sintactic
(lipsind condiiile de aplicabilitate): F, G LP1, x X sunt oarecare, dar n
2. x trebuie s nu apar liber n F. Prima schem de regul se numete
modus ponens (pe scurt, (MP)) iar a doua regula generalizrii (RG).

62
F G, F
.
G
F
2.
.
(x )F
S artm, de exemplu, c n SD3 se poate genera teorema T = (A A) (n cele ce
urmeaz vom mai renuna pe parcurs la unele paranteze, dac nelegerea nu este n
pericol, dei formal acest lucru nu este admis). Astfel, folosim Axioma 1. din exemplu,
pentru F = A i G = (A A), gsind imediat primul element al listei care reprezint
demonstraia, adic:
E1 = A ((A A) A).
Folosim acum Axioma 2., punnd F = A, G = (A A) i H = A. Obinem:
E2 = (A ((A A) A)) ((A (A A)) (A A)).
Aplicm acum (MP) pentru E2 = F G i E1 = F (G = (A (A A)) (A A)),
gsind:
E3 = (A (A A)) (A A).

1.

Punem F = A i G = A, n Axioma 1., rezultnd:


E4 = A (A A).
n sfrit, putem folosi (MP) pentru E3 i E4, mai exact F = A (A A) i G = (A
A), gsind ceea ce doream, adic:
E5 = T = (A A).
Prin urmare, am gsit n SD3 demonstraia D : E1, E2, E3, E4, E5 = T i putem spune c (A
A) Th(SD3) sau c |_ (A A) (adic T este consecin sintactic din mulimea vid
de formule suplimentare). n plus, aceasta este evident o formul valid. Ca urmare, avem
i |_ ( A A).
Exerciiul 4.2. Artai c axiomele 2. 5. sunt formule valide i c (RG) este o
regul corect.
Despre sistemele deductive (standard) se pot spune multe alte lucruri, la nivel
general. Astfel, o proprietate gobal cerut este cea de consisten. Astfel, o mulime
de metaformule I este consistent dac nu exist nici o metaformul F astfel nct s
avem att I |_ F ct i I |/_ F (I |/_ F noteaz faptul c nu este adevrat c I |_ F). Prin
extensie, un sistem deductiv este consistent (necontradictoriu) dac nu exist nici o
formul F astfel nct s avem att |_F ct i |/_F. O alt proprietate important este cea a
minimalitii (independenei). n anumite situaii este 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), dintrun sistem dat se pot elimina acele axiome care sunt consecine semantice din altele (n
cazul considerrii unei noiuni suport de adevr) precum i regulile de inferen
derivate. Astfel, considernd orice prefix al oricrei demonstraii D dintr-un sistem SD,
acesta poate fi privit ca o nou regul de inferen (derivat din cele iniiale). Toate aceste
eliminri trebuie ns fcute fr a se pierde echivalena. Dou sisteme SD i SD1 sunt
echivalente dac pentru fiecare mulime de metaformule I i fiecare metaformul F
avem: I |_ SD F dac i numai dac I |_ SD1 F. Nu avem posibilitatea detalierii acestor

63
subiecte. Vom reveni totui cu cteva aspecte att n lecia urmtoare ct i n Lecia 3,
dar este absolut necesar s tratm mai nti cteva aspecte formale legate de teoriile
logice.

LECIA 2
Sistemele deductive sunt folosite n principal 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 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 (binar) n legtur cu
o metaformul este acum obligatorie. Prin urmare, s presupunem c clasa de
metaformule FORM are ataat i o clas de structuri de adevr admisibile, Str, o
structur fiind o funcie S : FORM B. Dac FORM admite n plus o definiie
structural, de tipul metaformule atomice (Baza), adugnd operatori (conectori,
cuantori, etc.) i obinerea de metaformule noi din metaformule vechi, pe baza
operatorilor (Pas constructiv), atunci admitem i c fiecare S este extensia homomorf a
unei structuri definite iniial pe mulimea metaformulelor atomice. n acest mod, se
pstrez toate definiiile (conceptele) semantice folosite pn n prezent.
Definiia 4.4. Se numete teorie (logic) orice subclas TE a lui FORM nchis la
consecin semantic.
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, atunci teoria
corespunztoare se numete finit axiomatizabil.
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, A = A U I (A 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 - Th(SD ) Cs(A ). Teorema se mai poate enuna i sub una din
formele:
Teoria TE admite un sistem deductiv corect i complet.
n condiiile date, avem, pentru fiecare metaformul F FORM:
I |_ SD F dac i numai dac I |= F.
Teoria TE este axiomatizabil.
n cazul n care este vorba de o teorie format doar din formule valide (atunci va lipsi I),
teorema capt forma simplificat:

64
Pentru fiecare F FORM, avem: |_ SD F dac i numai dac |= F.
n cele de mai sus, A trebuia pus n loc de I, dar pentru c am folosit notaia |_ SD F pentru
faptul c FTh(SD), SD = <A, R>, am utilizat aceeai convenie i n cazul consecinei
semantice (adic n loc de A |= F am scris |= F). Din punct de vedere practic, de dorit
sunt teoriile finit axiomatizabile. n acelai context, putem enuna:
Teorema deduciei (pe scurt, TD). Dac I, A |_ B atunci I |_ A B.

CONSOLIDARE
LECIA 3
Vom ncepe cu o trecere n revist a clasificrii sistemelor deductive, din care se
pot trage concluzii utile cu privire la calitile i defectele unor asemenea sisteme. Exist
desigur mai multe clasificri posibile ([CAZ]), funcie de criteriul ales. Clasificrile
prezentate (care nu sunt singurele acceptate) se refer n principal la sistemele standard,
n sensul acestei lucrri.
n funcie de conectivele logice alese. Exist astfel sisteme boolean complete
sau boolean incomplete. tim c n interpretarea conectorilor logici prin structuri
acetia devin funcii booleene. Termenul de (in)completitudine se refer astfel 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
Modulului 2). Sistemul SD3 este boolean complet, n timp ce un sistem care, de
exemplu, folosete drept conector doar (calculul 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 (asta este de fapt definiia). Dup
cum am mai precizat, completitudinea este mai greu de atins, de aceea n lips
de ceva mai bun - este de multe ori acceptat. Corectitudinea este de obicei
impus, dei poate avea nite forme mai deosebite (la sistemele nestandard,
inclusiv 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 modul. n cazul n care balana este inversat (exist mult mai
multe axiome dect reguli de inferen), sistemele sunt cunoscute sub numele de
sisteme Hilbert.
Dup clasa FORM aleas. De exemplu, pentru logica clasic, putem avea
sisteme propoziionale sau sisteme predicative.
Introducem acum 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, construit pe baza
unui alfabet care conine conectorii , i cuantificatorul . Dup cum am precizat,
importante ntr-un asemenea sistem sunt regulile de inferen i definirea noiunii de
demonstraie (deducie, raionament). Sistemul SD0 nu are de loc axiome, de aceea vom

65
defini direct o demonstraie n sensul de deduciei naturale ca fiind un anumit
arbore, fr a folosi definiia general i apoi s facem observaii asupra ei n contextul
dat. S spunem totui c un arbore de deducie natural are pe nivelul 0 (frunzele)
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 (i rdcina fiind rezultatul demonstraiei). Caracteristic acestui
sistem este faptul c acele condiii 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 (tergerea unui nod dintr-un graf prezint ntotdeauna
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 confuziilor, aceeai marc se va asocia i nodului care constituie
concluzia regulii care, aplicat, a cauzat anularea. Ipotezele anulate modific ns clasa
de demostraii acceptate ntr-un asemenea sistem: avem I |_SD0 G (G este consecin
sintactic n SD0 utiliznd mulimea suplimentar de formule I; exist o demonstraie
pentru G n SD0 utiliznd I; 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.
....... .......

....... .......

A
B

......

....... .......

......

ipoteze,
anulate sau

rdcina
rdc

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 sistemul,
rmne s dm regulile de inferen din care este alctuit, care vor primi i un nume
nafara numrului de secven. Vom avea cte o (schem de) regul pentru fiecare A, B
LP1, fiecare x X i fiecare t T. n 5., este necesar ca 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 (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

66
care se lucreaz cu formule nchise. Mnemonicele provin de la urmtoarele cuvinte: E
eliminare; I introducere; N negaie; C conjuncie.
1. (EN)

B, B
, c = se anuleaz ipoteza A.
A

2. (IN)

B, B
, c = se anuleaz ipoteza A.
A

3. (EC)

AB
AB
i
.
A
B

4. (IC)

A, B
A, B
i
.
AB
B A

5. (E)

(x )A
.
A[x/t]

A
.
(x )A
Demonstraia teoremelor urmtoare poate fi gsit n [CAZ].
Teorema 4.2. Sistemul SD0 este corect i complet pentru Val (LP1).
Teorema 4.3. Sistemele SD0 i SD3 sunt echivalente, adic pentru fiecare mulime de
formule nchise I LP1 i fiecare formul F LP1, avem:
I |_SD0 F dac i numai dac I |_SD3 F.
n plus, putem spune c SD0 este un sistem predicativ (de tip Gentzen, standard), finit
specificat i boolean complet. Dac introducem , , i n alfabetul de baz, putem
folosi i alte reguli derivate, asupra crora nu mai insistm.
Exerciiul 4.3. Fie A C, B C, A B i C formule oarecare din LP1 i I LP1.
S presupunem c I |_SD0 A C, B C, A B (ceea ce nseamn c fiecare dintre
formulele din membrul drept este consecin sintactic din I n SD0. Artai c I |_SD0 C
(aceasta se numete n logic metoda de demonstraie prin disjuncia cazurilor).
Exist numerooase alte exemple de sisteme deductive. Se poate consulta [CAZ].
6. (I)

REZUMARE I ADDENDA
Subiectul modulului curent este vast i de un deosebit interes, att pentru filozofi,
matematicieni i logicieni, ct i pentru cercettorii din alte domenii tiinifice, inclusiv
informaticienii. Prin conceptul de teorie logic, noiunea de adevr este tratat la nivel
global, ca reflectare (prin formule) a unei pri coerente a realitii. O baz iniial de
cunotine, alctuit din afirmaii presupuse a fi adevrate, poate fi ulterior completat cu
noi afirmaii (cunotine), despre care nu se tia la nceput c reflect aceeai realitate,
fiind adevrate n aceeai msur. Utiliznd un procedeu standard (obinerea de

67
consecine semantice), se pot afla chiar toate afirmaiile adevrate, de tipul anterior
menionat. Din punct de vedere algoritmic, problema aflrii tuturor consecinelor
semantice dintr-o mulime dat de formule i chiar problema de decizie mai mai simpl:
Este formula F o consecin semantic din mulimea G?, sunt de cele mai multe ori
nedecidabile (cel mult semidecidabile). Chiar n cazul unor probleme de acest tip
decidabile, rezultatele privind complexitatea algoritmilor care le rezolv sunt
descurajatoare (algoritmii sunt de obicei, n cazurile nebanale, exponeniali ca timp de
execuie, deci problema este n fapt netratabil). Abordrile sintactice ale rezolvrii
problemelor au cel puin dou avantaje deloc de neglijat. Astfel, se pot selecta din start
subclase de formule interesante, cu o form convenabil, pentru care rezolvarea
problemei este mai simpl. Apoi, algoritmii generali bazai pe sintax (dei nu neaprat
mai eficieni), sunt mai flexibili, mai uor de tranformat i adaptat, mai uor de extins i
de a fi aplicai i n alte situaii. Sistemele deductive formalizeaz cele de mai sus,
apelnd la axiome, reguli de inferen i obinerea de consecine sintactice. Legtura
dintre cele dou noiuni se stabilete n mod concret prin teoreme de corectitudine i
completitudine. De multe ori suntem nevoii s renunm la completitudine i atunci
sistemele de demonstraie sunt importante prin ele nsele. De altfel, n anumite situaii
practice, sistemele deductive nu mai constituie suportul unor teorii logice i nici mcar al
ideii clasice despre adevr.
Teoriile logice i sistemele de demonstraie constituie prin urmare cadrul formal prin
care pot fi studiate ntr-un mod foarte precis pri ale realitii prin prisma oricrei tiine
(vezi de exemplu teoriile matematice formale), conceptele menionate n Prezentarea
lucrrii i n Introducere (Modulul 2) nemaifiind ambigue. Pentru logicieni subiectul
este inepuizabil i foarte atrgtor, obinndu-se nc rezultate surprinztoare.
Informaticii i revine sarcina de ine pasul cu noile descoperiri n domeniu, de a adapta
algoritmii existeni i conceptele legate de programarea logic, urmrindu-se
eficientizarea acesteia i apropierea de idealurile Inteligenei artificiale.
Cuvintele importante pe care le-am selectat nu sunt furnizate neaprat n ordinea
apariiei n text (ele reprezentnd oricum o sumarizare a domeniului). Este posibil, de
asemenea, ca unii termeni s fi aprut i n Addenda altor module. Le-am repetat
deoarece aici sunt prezente i definiiile lor formale: teorie logic, sistem deductiv( de
demonstraie), axiom, regul de inferen (reguli corecte sau sound), metaformul,
demonstraie (consecin sintactic; deducie; raionament), axiomatizarea unei teorii
logice, sistem deductiv finit specificat, sistem deductiv standard, sistem deductiv de tip
Hilbert sau Gentzen, deducie natural, calculul cu secvene, sistem deductiv
necontradictoriu (consistent), sistem deductiv independent i minimal, regul de
inferen derivat,
teorem de corectitudine i completitudine, sistem deductiv corect i complet, teorie
logic nedegenerat, consistent, finit axiomatizabil, sistem deductiv boolean complet,
sistem deductiv propoziional sau predicativ.

VERIFICARE (TESTARE)
1. S se demonstreze n sistemul SD3 urmtoarele formule:
(i) (A B) ((B C) (A C)).
(ii) (A (B C)) (B (A C)).

68
(iii) A A.
2. Rezolvai Exerciiul 4.1.
3. Rezolvai Exerciiul 4.2.
4. Rezolvai Exerciiul 4.3.
5. Rezolvai Exerciiul 4.4.
6. Rezolvai Exerciiul 4.5.

69

MODULUL 5 Programare logic


INTRODUCERE
S punctm nc o dat faptul c realitatea (sumumul cunotinelor despre lumea
real), poate fi modelat prin afirmaii, care pot fi reprezentate n logica formal clasic
(i nu numai), sintactic, prin formule (metaformule). Afirmaiile au asociat o semantic
(n particular, o valoare de adevr). Clasei de formule alese, FORM, i se ataeaz astfel
i o clas de structuri, Str, prin care valoarea de adevr (unic ntr-un context precizat) a
oricrei formule poate fi efectiv calculat (pentru fiecare F FORM i fiecare S Str,
obinem S(F) B). Problemele principale legate de modelarea prii de realtate alese,
se refer pe de o parte la a decide dac formulele corespunztoare nu sunt cumva
contradicii (sau contradictorii ntre ele) i pe de alt parte la a decide dac alte
formule (reprezentnd noi cunotine) reflect sau nu realitatea existent (altfel spus,
sunt sau nu consecine semantice din formulele iniiale). Totul se reduce n final la
decidabilitatea i tratabilitatea unor probleme de tip SAT (vezi i modulele anterioare).
Dei anumite rezultate teoretice, fie privind direct structura FORM i a unor sisteme
deductive pentru FORM (de exemplu, nedecidabilitatea SAT1 sau netratabilitatea SAT
pentru LP), fie privind legtura dintre asemenea sisteme deductive i Val(FORM) (lipsa
unor teoreme de completitudine) sunt mai degrab negative, exist i cteva concluzii
optimiste: (semi)algoritmii sintactici pentru rezolvarea SAT sunt mai uor de neles
(pentru calculator, n mod sigur) i de manipulat dect cei bazai pe semantic; ei sunt
tratabili mcar pentru anumite subclase interesante de formule; chiar n lipsa unor
asemenea semialgoritmi, se pot imagina anumite proceduri implementabile, de tip
interactiv (dialog n timp real cu utilizatorul), care pot furniza dac nu rspunsuri
complete mcar rspunsuri pariale, sau indicaii utile despre cum (i n ce situaii) sar putea obine un rspuns convenabil. Prin urmare, tot ceea ce rmne de fcut este
s se gseasc asemenea algoritmi, semialgoritmi, proceduri automate, etc., pentru
clase convenabile de (meta)formule, avnd ataat o noiune corespunztoare de
adevr. Din punctul de vedere al unui utilizator, alternativa propus de Programarea
logic este atrgtoare. Astfel, n loc s se utilizeze (pentru reprezentarea informaiei
i prelucrarea acesteia) un limbaj de programare clasic (imperativ, orientat obiect,
etc.) poate fi preferat un limbaj creat special pentru reprezentarea de (meta)formule
i n care un (semi)algoritm (sau chiar procedur interactiv) pentru rezolvarea
SAT i bazat, de exemplu, pe rezoluie - este implementat direct n compilatorul
(interpreterul) asociat. Asemenea limbaje sunt cunoscute i sub numele de limbaje
de tip PROLOG. Este un limbaj declarativ, dedicat reprezentrii i prelucrrii
relaiilor (predicatelor, afirmaiilor). Esena sa este exprimat prin paradigma de
programare, datorat lui R. Kowalski ([KOW]): Algoritm = Logic + Control. n sensul
celor spuse anterior, prin Logic se nelege totalitatea cunotinelor de care
dispunem n privina unei lumi (parte a realitii), cunotine exprimate prin
formule (aparinnd, n general, unui fragment al LP1=), iar prin Control strategia
(algoritmul) prin care se manipuleaz o clas de asemenea formule, n vederea

70
obinerii unui anumit rspuns (iar aceasta implementeaz, n general, un anumit tip
de rezoluie).

DEZVOLTARE
LECIA 1
innd cont c scopul principal al acestui modul este doar unul introductiv ntr-un
domeniu vast, ne vom baza n principal pe exemple (cu caracter didactic) i nu pe
enumerarea unor concepte sau rezultate formale. Deoarece este posibil ca exemplele s
fie reluate i dezvoltate, vom proceda din nou la numerotarea lor n secven.
Exemplul 5.1 (lumea lui Adam i Eva). Se cunosc urmtoarele fapte i afirmaii mai
complexe din/despre aceast lume:
Evei i plac merele.
Evei i plac vinurile.
De asemenea, se tie c:
Lui Adam i place orice persoan creia i plac vinurile.
Am dori, n plus, s tim dac:
Exist o persoan pe care s o plac Adam?
Desigur c n cazul unui rspuns pozitiv, am dori s tim i care anume ar fi persoana
(persoanele) respectiv (respective). Conform celor spuse anterior, primul pas este s
formalizm afirmaiile anterioare (inclusiv interogarea) prin formule din LP1. S
identificm elementele importante din lumea considerat:
Obiecte. Eva, mere, vinuri i Adam sunt singurele obiecte (nu este nevoie, dup cum se
vede nc de pe acum, s facem distincie ntre, de exemplu, lucruri, fiine/vieuitoare,
oameni/persoane, etc.) care pot fi identificate ca atare n aceast lume simpl. Ele vor
interpretate drept (simboluri de) constante funcionale, adic elemente ale lui F0, pe care
le vom nota prin Eva, Mere, Vinuri, Adam (faptul c ncepem cu litere mari nu este
ntmpltor).
Nume generice pentru obiecte. Avem nevoie de acest lucru deoarece exist exprimarea
Lui Adam i place orice persoan ... . Vom nota uzual cu X mulimea tuturor
acestor nume (variabile) i vom pune x, y, X.
Relaii (legturi) ntre obiecte. Singura relaie identificabil este a place. Aceasta va fi
reprezentat formal printr-un simbol predicativ, notat place P2.
Transformri ntre obiecte. Acestea s-ar reprezenta prin simboluri funcionale de
aritate mai mare ca 0. Nu exist nici o asemenea transformare vizibil.
Afirmaii. n acest moment, putem traduce cunotinele existente n formule.
G1: place(Eva, Mere) traduce faptul Evei i plac merele.
G2: place(Eva, Vinuri) traduce faptul Evei i plac vinurile.
A treia fraz exprim ceva puin mai complex despre lumea n cauz i este natural s ne
gndim la o formul compus. Putem reformula fraza mai nti prin Dac exist cineva
cruia i plac vinurile, atunci de aceea (acela) i place lui Adam (oricine ar fi acel
cineva) i apoi prin Dac lui x i plac vinurile, atunci lui Adam i place de x, pentru
fiecare x, adic obinem:
G3: (x)(place(x, Vinuri) place(Adam, x)).
Interogarea. Ea se traduce imediat prin Exist y astfel nct lui Adam i place de y?
(alegerea unui nume diferit de x pentru variabila corespunztoare nu este ntmpltoare),
adic:

71
G: (y)place(Adam, y).
n al doilea pas (suntem deja ntr-un cadru formal cunoscut), s observm c a rspunde
la ntrebare (sigur c n situaia dat rspunsul este evident) nseamn a vedea dac G este
(sau nu) consecin semantic din {G1, G2, G3}, ceea ce, conform Teoremei 2.3, punctul
(iii), este echivalent cu a arta c F = G1 G2 G3 G este contradicie. Desigur c
prin transformri succesive, aducem uor (nici mcar nu este nevoie de skolemizare) pe F
la FNSC i apoi obinem reprezentarea lui F* ca mulime de mulimi:
F place(Eva, Mere) place(Eva, Vinuri) (x)( place(x, Vinuri) place(Adam,
x)) (y) place(Adam, y) (y) (x)( place(Adam, y) place(Eva, Mere)
place(Eva, Vinuri) ( place(x, Vinuri) place(Adam, x))).
F* = place(Adam, y) place(Eva, Mere) place(Eva, Vinuri) ( place(x,
Vinuri) place(Adam, x)), adic:
F* = {{ place(Adam, y)}, {place(Eva, Mere)}, {place(Eva, Vinuri)},
, { place(x, Vinuri), place(Adam, x)}}, unde notm:
C1 = { place(Adam, y)},
C2 = {place(Eva, Mere)},
C3 = {place(Eva, Vinuri)},
C4 = { place(x, Vinuri), place(Adam, x)}.
Al treilea pas const acum n a gsi o respingere n LP1, pornind cu clauzele lui F*.
Singura metod cunoscut de noi pn n prezent este rezoluia de baz. Prin urmare,
calculm D(F) i E(F) (sau/i E(F)). Neexistnd constante de aritate mai mare ca 1,
gsim imediat:
D(F) = {Eva, Mere, Vinuri, Adam}.
E(F) = E(C1) U E(C2) U E(C3) U E(C4) (nu o explicitm mai mult deoarece este foarte
simpl).
Gsim o demonstraie (scurt) prin rezoluie n LP a clauzei vide, pornind cu elementele
lui E(F), notnd mai nti cu C1 clauza obinut din C1 prin aplicarea substituiei de baz
[y/Eva] i cu C4 clauza obinut din C4 aplicnd [x/Eva] (att C1 ct i C4 aparin lui
E(F)). Astfel, avem Res(C1, C4) = { place(Eva, Vinuri)} (pe care o notm cu G). n
sfrit, Res(G, C3) = { }.
Prin urmare, am gsit un rspuns corect la interogarea noastr, dar din pcate nu
am aflat i care este (sunt) acel (acele) obiect(e) pe care l (le) place Adam. Este adevrat
c acest (unic) obiect (Eva) ar putea fi cumva dedus din substituiile fcute (doar aceast
substituie conduce la succes, adic la deducerea lui ). Am avea astfel nevoie de un alt
tip de rezoluie, care aplicat unei mulimi date de clauze din LP1 s produc n mod
explicit (mcar ca un efect secundar) asemenea obiecte (substituii, pe care le vom
numi substituii de succes). Putem trage ns i o concluzie pozitiv, privind aspectul
general al unui program, n accepiunea programrii logice. El ar conine:
Fapte (afirmaii simple, modelate prin formule atomice de baz din LP1), care
sunt formule elementare de program.
Alte formule de program (formule compuse din LP1, mai exact formule Horn
nchise).
O formul de interogare (formul compus din LP1, avnd probabil i ea o
form mai special).

72
Se mai observ c formulele program (s spunem G1, G2, ... , Gn) sunt chiar formule din
LP1 aflate n FNSC, clauzele fiind clauze Horn avnd mcar un literal pozitiv (sunt
clauze Horn pozitive). Formula de interogare G (numit i scop), apare tot ca o formul
nchis, ns cuantificat existenial. Dei n exemplul considerat exist doar un literal
(pozitiv), se admite prezena mai multor asemenea literali, formula scop fiind de fapt o
conjuncie de literali pozitivi, nchis, aflat n FNPR. Programul interogat va fi
reprezentat de formula F = G1 G2 ... Gn G (se poate considera i reprezentarea
sa ca mulime de mulimi, F fiind n FNSC i clauzele fiind clauze Horn). nainte de a
furniza detalii suplimentare, considerm util tratarea unui alt exemplu pentru a vedea c
limbajul sugerat este la fel de puternic ca orice alt limbaj de programare de nivel nalt,
putndu-se efectua n acesta, de exemplu, calcule aritmetice uzuale (dei, desigur, nu
aceasta este utilitatea sa principal).

CONSOLIDARE
LECIA 2
Un program logic (clasic) este format dintr-o mulime finit de formule program,
alctuit din fapte i o mulime de formule suplimentare. Un program logic interogat
este un cuplu format dintr-un program logic i o formul scop. Toate formulele implicate
sunt formule Horn, aflate n FNSC i cuantificate universal (clauza scop, doar n urma
negrii).
Definiia 5.1 (program logic interogat; program PROLOG pur).
Program logic. Acesta conine:
o Fapte, avnd forma:
P., unde P este un literal pozitiv din LP1. Un asemenea literal pozitiv
poate avea i variabile, presupuse a fi implicit cuantificate universal, dei
n general reprezint o formul de baz. Formula reprezentat este deci
(*)(1 P) sau (*)P. Putem citi Sigur P. Notm cu G1 = {G1, G2,
, Gp} mulimea (finit a) faptelor programului F.
o Clauze definite (suplimentare). Aspectul lor este:
P Q1, Q2, , Qn., unde P i Qi, i [n] sunt literali pozitivi din LP1.
Formula reprezentat este (*)(Q1 Q2 Qn P) sau (*)(P
Q1 Q2 Qn). Se citete P, n caz c Q1 i Q2 i ... Qn.
Notm cu G2 = {Gp+1, G p+2, , G p+q} mulimea (finit a) clauzelor
definite ale programului F i cu G = G1 U G2. (uneori, chiar acest G este
considerat a fi mulimea clauzelor suplimentare). Desigur, p, q N, dar nu
pot fi simultan 0.
Interogarea. Clauza scop are aspectul:
o G = ? R1, R2, , Rk. Din nou R1, R2, , Rk sunt literali pozitivi din
LP1. Dar, de aceast dat variabilele care apar sunt presupuse a fi
cuantificate existenial. Mai exact, clauza scop reprezint transcrierea unei
formule Horn de tipul (*)(R1 R2 R k), citit Exist elemente n
domeniul considerat astfel nct condiiile R1, R2, , Rk s fie
ndeplinite?, ceea ce prin negare furnizeaz formula G = (*)( R1
R2 Rk). Prin urmare, F = <G, G>.

73
Observaie. Dup cum am vzut din exemple, execuia unui program logic nseamn
p+q

testarea nesatisfiabilitii formulei G i G, pe care o vom nota tot cu F. F este n


i =1

FNSC nchis (eventual, dup ce se redenumesc anumite variabile), clauzele fiind clauze
Horn (eventual, reprezentate ca mulimi). Implementarea folosete o strategie SLD. n
fiecare pas se efectueaz o rezoluie pur, una dintre clauzele implicate fiind ntotdeauna
clauza scop curent (iniial, ea este formula de interogare G), cealalt clauz fiind una
dintre fapte sau clauzele definite aparinnd programului (pe scurt, o clauz program).
innd cont de forma formulelor care intervin i de definiia rezoluiei pure, exist o
schem simpl care completeaz strategia SLD. Astfel, se alege un literal (negativ) din
clauza scop curent (de obicei, acesta este primul intlnit, ca scriere) i capul (membrul
stng al) unei formule program, care este un literal pozitiv. Dac este posibil, ei se
unific, obinndu-se o nou clauz scop. Procedeul continu i dei nu avem garania
terminrii lui, este tot ceea ce putem spera. Neputnd intra n amnunte, ne vom limita la
a descrie pe scurt rezoluia pur.
Definiia 5.2 (unificare). Fie L = {L1, L2, ... , Lk} o mulime finit, nevid, de literali din
LP1. Ea se numete unificabil dac exist o substituie s astfel nct card((L)s) = 1. n
acest caz, s se numete unificator pentru L. O substituie s se numete cel mai general
unificator pentru o mulime unificabil L dac orice alt unificator s se obine din s,
adic pentru fiecare unificator s exist o substituie sub astfel nct s = s sub.
S presupunem acum c avem dou clauze distincte din LP1 (nu neaprat clauze
Horn i coninnd eventual i variabile). Ideea rezoluiei pure se bazeaz pe faptul c
putem unifica ct mai muli literali din cele dou clauze i apoi i putem elimina, ntrun mod similar cu rezoluia propoziional.
Definiia 5.3 (rezoluia pur ntr-un pas, n LP1). Fie C1, C2 i R clauze n LP1,
C1 C2. R se numete rezolvent (pur) pentru C1 i C2, obinut ntr-un pas, dac sunt
ndeplinite condiiile:
(i) Exist substituiile de redenumire s1 i s2 astfel nct (C1)s1 i (C2)s2 nu au variabile
comune.
(ii) Exist literalii L1, L2, ... , Lm (C1)s1 i L1, L2, ... , Ln (C2)s2 astfel nct
mulimea:
L = { L1 , L 2 , ... , L m , L1, L2, ... , Ln}
este unificabil. Fie sub un cel mai general unificator pentru L.
(iii) R = (((C1)s1 \ {L1, L2, ... , Lm}) U ((C2)s2 \ {L1, L2, ... , Ln}))sub.
Deoarece nu exist pericol de confuzii, vom folosi aceleai notaii pentru rezoluia pur
ca cele adoptate pentru rezoluia propoziional (ceea ce se schimb este practic doar
definiia rezolvenilor obinui ntr-un pas). Se pot demonstra teoremele urmtoare.
Teorema 5.1 (Julia Robinson). Orice mulime finit, nevid, unificabil, de literali din
LP1, admite un cel mai general unificator. Problema testrii faptului c o mulime de
literali este unificabil, precum i gsirea unui cel mai general unificator, sunt decidabile
([MAS]).

74
Exist o metod relativ simpl pentru unificarea unei mulimi date de literali. Fr
a intra n amnunte, trebuie s identificm poriuni de text, avnd un format special.
Acest lucru nu se poate face dect prin intermediul variabilelor, folosind substituiile. n
plus, apelurile recursive, de genul x este nlocuit cu t, care conine x, sunt interzise.
Teorema 5.2 (a rezoluiei pure pentru LP1). Fie F LP1 o formul nchis, aflat n
FNSC, F = (*)F* (F poate fi n particular un program PROLOG pur). Atunci, F
este nesatisfiabil dac i numai dac Res*(F*), adic dac i numai dac exist o
demonstraie prin rezoluie pur a clauzei vide (o respingere), pornind cu clauzele lui F
([MAS]).
Teorema 5.3 (completitudinea SLD-rezoluiei). Dac F este o mulime de clauze Horn
din LP1, atunci, dac F este nesatisfiabil, exist o respingere pornind cu F i care
utilizeaz doar SLD-rezoluia pur ([MAS]).

REZUMARE I ADDENDA
Programarea logic este o alternativ viabil pentru programarea clasic, n
momentul n care realitatea este reprezentat i studiat ntr-un mod declarativ. Datorit
unor rezultate teoretice negative, clasa de formule care poate fi prelucrat este destul de
restrns. Totui, clasa clauzelor Horn din LP1 este suficient de larg pentru a permite o
reprezentare convenabil a realitii. Chiar n cadrul restrns considerat, adoptarea
presupunerii lumii nchise, tratarea negaiei, utilizarea disjunciei n interogri,
precum i implementarea unui dialog interactiv cu utilizatorul (care s dirijeze luarea
unor decizii importante pentru execuia unui program), nseamn extensii importante
pentru programarea logic i justific orientarea unei ntregi generaii de programatori i
ntr-o asemenea direcie. Nici rezultatele teoretice, nici inovaiile de implementare nu
sunt defel epuizate: programare logic, limbaje de tip PROLOG, algoritm = logic +
control, program logic interogat, tratarea negaiei, ipoteza lumii nchise, fapte, clauze
program (definite), formule program, formul de interogare (scop), unificare, cel
maigeneralunificator, rezoluie pur, substituie de succes.

VERIFICARE (TESTARE)
1. Gsii respingerea bazat pe rezoluia de baz cerut n Exemplul 5.2 (pagina 175).
2. Considerm urmtorul program PROLOG notat F (o alt convenie pe care n-am
subliniat-o, spune c variabilele se noteaz cu litere mari, iar constantele, simbolurile
funcionale i predicative, cu litere mici; de asemenea, simbolul este uneori nlocuit de
sau de :-), format din clauzele program :
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 astfel execuia
programului interogat P = <F, G>.

75

ANEX REZOLVAREA UNOR EXERCIII


MODULUL 1
V.1.1. Chiar fr a utiliza principiul dualitii, demonstraiile nu prezint dificulti
majore.
V.1.2. Toate relaiile corespunztoare se regsesc demonstrate n orice manual de algebr
de clasa a IX-a. Se folosete definiia egalitii de mulimi ca dubl incluziune.
V.1.3. Folosirea tabelelor de adevr nu credem c prezint dificulti. Presupunem c am
demonstrat deja x + x = 1 (a se vedea Teorema 1.1) i x 1 = x, precum i dualele lor.
Vom utiliza un raionament pentru a deduce relaia:
8) x x = x
Gsim succesiv:
x = x 1 = (x + x ) = distributivitate
= x x + x x = x x + 0 = x x.
V.1.4. Fie dou mulimi oarecare, finite, nevide, A1 i A2, avnd |A1| = n i
|A2| = m, n N*. Direct din definiii, se deduce c |A1 A2| = m n. Mai mult, se tie c
numrul total de funcii de la A1 la A2 este mn (demonstraia este foarte simpl dac se
face prin inducie dup n). Cum |B| = 2, avem |Bn| = 2n i trebuie s mai calculm
numrul total de funcii de la A1 = Bn la A2 = B.
V.1.5. Faptul c g este bijectiv este o consecin imediat a definiiei unui termen peste
mulimea X = {x1, x2, ... , xn}. Faptul c un n-uplu e = <e1, e2, ... , en> n care, pentru
fiecare i [n], avem ei{0, 1, 2}, poate fi interpretat ntr-un mod unic ca o funcie
fe : [n] {0, 1, 2} este la fel de simplu. Astfel, definim fe(i) = ei, pentru fiecare i [n].
Se aplic apoi un raionament similar cu cel din exerciiul precedent.
V.1.6. Presupunem c X = {x, y, z}, n aceast ordine. Se aplic direct Teorema 1.3 i
respectiv 1.4, gsind, de exemplu, urmtoarea FNDP :
f(x, y, z) = x y z + x y z + x y z + x y z + x y z .
MODULUL 2
V.2.1. Teorema direct (TD) are forma ipoteze implic concluzii:
TD
pq
Apoi:
TR (teorema reciproc)
qp
pq
TCD (contrara directei)
q p.
TCR (contrara reciprocei)
Se poate arta c p q q p. Se schimb ceva dac avem mai multe
ipoteze sau mai multe concluzii (ntre ipotezele sau concluziile elementare pot
exista conectori de tipul sau )? O echivalen sintactic p q se mai exprim
sub forma Pentru a avea q adevrat este necesar i suficient s avem p
adevrat. p q este condiia suficient i q p este condiia necesar. Grafic:

76

Obiecte
care
satisfac p

Obiecte
care
satisfac q

V.2.2. Avem lim a n = a R dac i numai dac


n

( > 0)(n N)(m N)(m > n |am - a| < ).


Negaia formulei anterioare (nu este adevrat c irul (an)nN converge la a R;
ceea ce nu nseamn c (an)nN, nu ar fi convergent) este:
( > 0)(n N)(m N)( (m > n |am - a| < ))
( > 0)(n N)(m N)(m > n |am - a| ).
n cele de mai sus am anticipat cteva lucruri care vor fi prezentate formal mai trziu, n
Modulele 2 i 3.
V.2.3. Notm:
p - Mi-e sete
q - Beau ap.
Simbolic: p q p q.
Negaia: ( p q) p q p q.
Exprimarea n limbaj natural: Mi-e sete i nu beau ap., care exprim acelai
lucru cu Nu este adevrat c dac mi-e sete beau ap.
V.2.4. Fie F = (( A) (B C)).

77

( )

00

000
()

()

001

0010

00000

00000

00100

00101

Dac am fi considerat c notaiile tuturor operatorilor care intervin sunt prefixate (nu i
infixate, cum sunt cele pentru i ), parantezele ar fi devenit uor un accesoriu direct al
oricrui operator (aa cum de altfel este sugerat de definiia formal a sintaxei). Arborele,
n acest caz, ar putea fi:
()

00

00
()

()

01

000
A

010
011
Mai sus am sugerat i o posibil etichetare (unic) a nodurilor unui arbore (binar), astfel
nct s-ar putea defini formal, de exemplu, noiunea de apariie a unui simbol ntr-o
formul.
V.2.5. Completai demonstraia Teoremei 2.1. Din ultima demonstraie structural au
mai rmas cazurile F = (F1 F2) i F = (F1 F2). Sugerm cititorului, datorit simplitii
calculelor, s trateze simultan aceste cazuri, folosind de exemplu acelai simbol att
pentru i , ct i similar - pentru + i .

78
V.2.6. Procedm prin inducie structural.
Baza: F = A A. Atunci prop(F) = {A}.
Pas inductiv:
(i) F = ( F1). prop(F) = prop(F1).
(ii) F = (F1 F2), { , }. prop(F) = prop (F1) U prop (F2).
Folosind o definiie formal a unei formule considerate ca un arbore binar etichetat
(V.2.4.), putei defini formal i numrul de apariii ale unei variabile, mpreun cu
poziia la care exist aceste apariii.
V.2.7.
F = A A, satisfiabil, dar nevalid.
F = A A, care este o formul valid.
F = A A, care este o contradicie.
MODULUL 3
V.3.1. Pentru formule atomice, avem:
1. P P0: free(P) = .
2. n N*, t1, t2,..., tn T, P Pn,
n

free(P(t1, t2,..., tn)) =

U free(t ) , unde free(ti) = {x1,x2, ...,xk}.


i

i =1

Pentru formule:
Baza: formule atomice.
Pas constructiv:
F = ( F1). free(F) = free(F1).
F = (F1 F2). free(F) = free(F1) U free(F2).
F = (F1 F2). free(F) = free(F1) U free(F2).
F = (x)F1. free(F) = free(F1) \ {x}, dac x free(F1).
F = (x)F1. free(F) = free(F1) \ {x}, dac x free(F1).
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))
R(u, f(v)), ( x) (P(x, g(a)) Q(z)) R(u, f(v))}. Putei deduce un algoritm imperativ din
cel recursiv sugerat de definiie?
V.3.3. Definirea constructiv a mulimii leg(F), F LP1, urmeaz aceleai reguli ca la
definirea mulimii free(F). Lsm n seama cititorului analiza micilor diferene care
intervin.
V.3.4. S presupunem c avem o substituie s = [x1/t1] [x2/t2] ... [xn/tn], n 2,
nenormalizat. Ideea este ca, pentru fiecare i [n 1], termii ti+1, ti+2, ... , tn s nu mai
conin pe xi. Atunci putem transforma pe s n felul urmtor: toate apariiile variabilei xn
n t1, t2, ... , tn-1 se nlocuiesc cu tn, apoi toate apariiile lui xn-1 n (noii) t1, t2, ... , tn-2 se
nlocuiesc cu (noul) tn-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
nu este permis pentru F.
MODULUL 4
V.4.1. Avem succesiv, pentru (i), (ii), (iii) (cifrele din secven sunt locale):
1. AB, A |_ AB, A
evident
_
1., (MP)
2. AB, A | B
2.-de dou ori, i ceva evident
3. AB, BC, A |_ B, BC

79
4. AB, BC, A |_ C
3., (MP)
4., (TD)
5. AB, BC |_ AC
5., (TD)
6. AB |_ (BC) (AC)
_
6, (TD).
7. | (AB) ((BC) (AC))
Pentru (ii):
evident
1. A(BC), A |_ A(BC), A
1., (MP)
2. A(BC), A |_ BC
2.
3. A(BC), A, B |_ B, BC
_
3., (MP)
4. A(BC), A, B | C
4., (TD)
5. A(BC), B |_ AC
_
5., (TD)
6. A(BC) | B(AC)
_
6., (TD).
7. | (A(BC)) (B(AC))
Pentru (iii):
axioma 3 din SD3
1. |_ ( A A)(( A A) A)
_
am artat deja
2. | A A
1., (ii), (MP)
3. |_ ( A A)(( A A) A)
_
2., 3., (MP)
4. | ( A A)A
_
axioma 1 din SD3
5. | A ( A A)
4., 5., (i), (MP).
6. |_ A A
V.4.2. Similar cu rezoluia propoziional, vom avea cte un sistem pentru fiecare F
LP1, schimbndu-se doar mulimea de formule suplimentare, care este sugerat de E(F).
V.4.3. Lsm rezolvarea pe seama cititorului.
V.4.4. Avem succesiv:
1. I |_ AB
evident
_
2. I, A | A, AB
1.
_
3. I, A | B
2., (EI)
_
4. I, A, B | B, B
3.
_
5. I, B | A
4., (IN)
_
5., (TD), (II).
6. I | B A
Apoi:
evident
1. I |_ B A
_
2. I, B | B, B A
1.
3. I, B A
2. (EI)
_
3.
4. I, A, B | A, A
_
5. I, A | B
4., (EN)
_
5., (TD), (II).
6. I | A B
n sfrit:
evident
1. I |_ AB, AC, BC
_
1., Ax3
2. I | AB, C A, BC
_
3. I | AB, C A, C B
2., Ax3
_
4. I, C | AB, C, C A, C B
3.
_
4., (EI)
5. I, C | A, AB, C, C B

80
6. I, C |_ B, C, C B
7. I, C |_ B, B
8. I |_ C

5., (ED)
6., (EI)
7., (EN).

MODULUL 5
V.5.1. Putem nota clauzele cu C1 = {A(x, 0, x)}, C2 = { A(x, y, z), A(x, s(y), s(z)}, C3 =
{ A(s(s(s(0))), s(s(0)), u)}. Gsim E(F) folosind D(F). O respingere folosind rezoluia
de baz poate fi descris prin:
Substituind x = s(s(s(0))), y = s(0), z = s(s(s(s(0)))), u = s(s(s(s(s(0))))) n C2 i C3,
rezolvm C2 cu C3 pentru a obine C4 = { A(s(s(s(0))), s(0), s(s(s(s(0)))))}.
Substituind x = s(s(s(0))), y = 0, z = s(s(s(0))) n C2, rezolvm C4 cu C2 pentru a
obine C5 = { A(s(s(s(0))), 0, s(s(s(0))))}.
n sfrit, substituind x = s(s(s(0))), obinem prin rezolvarea lui C5 cu C1.
V.5.2. Substituia final va fi s = [X/U] [Z/b] [U/c] [Y/b] [X/b]. Ca o concluzie,
(U)p(U, b) este consecin semantic din CP1 CP2 CP3, valoarea cerut a lui U
fiind c.

81

TEMA DE CONTROL
2005-2006
IDD, LOGICA
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 = < 2V, , U, CV> este o algebr boolean, oricare ar fi mulimea (nevid)
V. n plus, demonstrai c 0 = i 1 =V.
3. Artai adevrul afirmaiilor rmase nedemonstrate din Tabelul 1.1.
n

4. Justificai egalitatea card(FBn) = 2 2 .


5. Fie mulimea termenilor n-ari

t, construii peste mulimea variabilelor booleene

distincte (ordonate) X = {x1, x2, ... , xn}, precum i mulimea n-uplelor peste {0, 1, 2}.
Artai c exist o funcie bijectiv g, care identific aceste mulimi, dat prin g(t) =
<e1, e2, ... , en>, unde, pentru fiecare i [n], avem ei = 0 dac xi apare barat n t, ei = 1
dac xi apare (nebarat) n t i ei = 2 n rest (adic xi nu apare n t). De asemenea, artai c
se poate stabili 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
considerai va avea 3n elemente i c vor exista 2n maxtermeni n-ari distinci.
6. Definii structural prop(F), pentru fiecare F LP.
7. Artai c n LP exist formule satisfiabile (dar nevalide), formule valide, contradicii.
8. Artai c sunt adevrate afirmaiile:

(a) i s sunt relaii de echivalen pe LP.


(b) este compatibil la dreapta i la stnga cu , i compatibil cu .
9. S se aplice Algoritmul Horn formulei:

F = ( B D) E C B ( B D B).
10. S se exprime ca formul n LP i s se studieze satisfiabilitatea afirmaiei: Vom

ctiga alegerile n condiiile n care Popescu va fi liderul Partidului. Dac Popescu nu


este ales liderul Partidului, atunci fie Ionescu, fie Rdulescu va prsi partidul i vom
pierde alegerile.
11. Se d formula:

F = ((A1 A3) (A2 A4)) ((A1 A2) (A2 A4)).

82
S se elimine conectorii care apar n F i apoi s se elimine ct mai multe paranteze
(fr a schimba semantica formulei), inn-du-se cont de prioritile atribuite operatorilor
, , , precum i de alte proprieti ale acestor operatori.
12. S se gseasc o respingere (dac exist) pornind cu clauzele:

F = {{A, B, C}, {B, C}, { A, C}, {B, C}, { C}}.


13. Artai c formula:

F = ( B C D) ( B D) (C D) B
este tautologie, folosind metoda rezoluiei.
14. Artai c formula G = (A B C) este consecin semantic din mulimea de

formule G = { A B, B C, A C, A B C} folosind metoda rezoluiei.


15.

Mulimea

infinit

de

formule

{A1

A2,

A2

A3,

A3 A4, A4 A5, ... } este satisfiabil?


16. Demonstrai adevrul sau falsitatea urmtoarelor afirmaii (exist i alte variante, pe

care le putei deduce singuri):


(a) Dac F G este valid i F este valid, atunci G este valid.
(b) Dac F G este satisfiabil i F este satisfiabil, atunci G este satisfiabil.
(c) Dac F G este valid i F este satisfiabil, atunci G este satisfiabil.
17. Fie formula F LP, F = ( ((A B) C)), A, B, C A. S se gseasc arborele

care descrie formula i, simultan, o FNC i o FND pentru F (conform algoritmului


recursiv sugerat de demonstraia Teoremei 2.6).
18. Definii constructiv free(F), F LP1.
19. Determinai subf(F) pentru

F = (x)(((P(x, g(a)) Q(z)) R(u, f(v)))).


20. S se aplice substituia: s = [y/h(z)][z/h(x)][x/g(f(y))] formulei F = (x)(P(x, f(x))

Q(g(a, z)).
21. Fie formula F = (x)(y)P(x, y, f(z)). S se decid dac formula este satisfiabil,

valid, sau contradicie.


22.

Gsii

formul

LP1

care

conin

P P2 i care s exprime faptul c P este o relaie antisimetric.

un

simbol

predicativ

83
23. Gsii o formul F LP1= care s conin un simbol predicativ P P2 i care s

exprime faptul c P este o relaie de echivalen.


24. Fie formula

F = (x)(y)(z)(P(x, y) P(z, y) P(x, z) P(z, x)) i structurile S = <US, IS>


date prin:

US = N, PS = {<m, n> | m, n N, m < n}.

US = N, PS = {< m, m+1> | m N}.

US = 2N, PS = {<A, B> | A, B N, A B}.

S se decid care dintre aceste structuri sunt modele pentru F.


25. Artai c pentru fiecare formul din LP1:

a. F este valid dac i numai dac nchiderea sa universal este valid.


b. F este satisfiabil dac i numai dac nchiderea sa existenial este
satisfiabil.
26. Gsii o formul F din LP1, aflat n FNSC i slab echivalent cu formula:

F=(x)(y)((P(x,g(y), z) (x)Q(x)) (z)(x)R(f(x, z),z)).


27. Artai c n LP1 exist formule satisfiabile dar care nu admit nici un model finit.
28. Artai c:

(x)P(x) P(y) (x)(P(x) P(y)).


29. Dai o axiomatizare a teoriei formale a grupurilor, fr a folosi simbolurile care

desemneaz elementul neutru i operaia de simetrizare.


30. Exprimai urmtoarele afirmaii prin formule din LP1:

Fiecare dragon este fericit dac toi copiii si pot zbura.

Dragonii verzi pot zbura.

Un dragon este verde dac este copilul a cel puin unui dragon verde.

Artai c afirmaia Toi dragonii verzi sunt fericii este consecin semantic din
afirmaiile anterioare. Putem modela problema anterioar ca un program
PROLOG interogat? Pentru consistena lumii modelate ar mai fi utile i alte

afirmaii?

84

BIBLIOGRAFIE
[BIE]
[DID]
[MEC]
[DEX]
[CAZ1]
[MAS1]
[MAS2]
[SCH]
[TIP]
[BIR]
[SOR]
[IVA]
[KNU]
[COR]
[LUC]
[CRO]
[MAS3]
[ROU]
[DIJ]
[JUC]
[KOW]

Bieltz, P., Gheorghiu, D. Logica, Manual pentru clasa a IX-a licee i


clasa a XI-a coli normale, Ed. Didactic i Pedagogic, Bucureti,
Romnia, 1996.
Manualele de Algebr clasele a X-a, a XI-a, a XII-a, Analiz de liceu
clasele IX-XI, Editura Didactic i Pedagogic, Bucureti, 2002.
* Metodologia Ministerului Educaiei i Cercetrii privind nvmntul
Deschis la Distan, Raport intern, Bucureti, Romnia, 2002.
Dicionarul explicativ al limbii romne, Ed. Litera Internaional, 2002.
Cazacu, C., Slabu, V. Logic matematic, Ed. Stefan Lupacu, Iai,
Romnia, 1999.
Masalagiu, C. Introducere n programarea logic i limbajele de
programare logic, Ed. Universitii Al. I. Cuza, Iai, Romnia, 1996.
Masalagiu, C., Ibnescu, L., Andrei, . Practica programrii n
TURBO PROLOG, Ed. Universitii Al. I. Cuza, Iai, Romnia, 1998.
Schning, U. Logic for Computer Scientists, Birkhuser, Berlin,
Germania, 1989.
iplea, F. L. Introducere n teoria mulimilor, Ed. Universitii Al. I.
Cuza, Iai, Romnia, 1998.
Birkhoff, G. Latice Theory, A.M.S. Colloquium Publications, Vol. 25,
1984.
Sorin, T. Tehnici de programare, Ed. TEORA, Bucureti, Romnia,
1994.
Ivac, C., Prun, M. Bazele informaticii, Ed. PETRION, Bucureti,
Romnia, 1995.
Knuth, D. E. Tratat de programare a calculatoarelor. Sortare i
cutare, Ed. Tehnic, Bucureti, Romnia, 1976.
Cormen, T., Leiserson, C., Rivest, R., Stein, C. Introduction to
Algorithms, Ed. McGraw-Hill, S. U. A., 1990.
Lucanu, D., Jucan, T. Programarea calculatoarelor. Ediia PASCAL,
Ed. Universitii Al. I. Cuza, Iai, Romnia, 2002.
Croitoru, C. Tehnici de baz n optimizarea combinatorie, Ed.
Universitii Al. I. Cuza, Iai, Romnia, 1992.
Masalagiu, C., Asiminoaei, I., Maxim, I. - Metodica predrii
informaticii, Ed. MATRIX ROM, Bucureti, Romnia, 2001.
Roussel, P. PROLOG, Manuel de rfrence et dutilisation, Groupe de
I. A., Universit dAix, Marsilia, Frana, 1975.
Dijkstra, E. W. A Discipline of Programming, Ed. Prentice Hall,
Englewood Clifs, S. U. A., 1976.
Jucan, T., Andrei, . - Limbaje formale i teoria automatelor, Ed.
Universitii Al. I. Cuza, Iai, Romnia, 2002.
Kowalski, R. Algorithm = Logic + Control, Research Report,
Department of Computing and Control, Imperial College, Londra, Anglia,
1976.

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