Sunteți pe pagina 1din 122

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.
5
CUPRINS
Descrierea manualului -----------------------------------------------
----- 3
Modulul 1 Funcii booleene ------------------------------------------
-----7
o Lecia 1 -----------------------------------------------------------------
- 9
o Lecia 2 -----------------------------------------------------------------
-12
o Lecia 3 -----------------------------------------------------------------
-15
o Rezumare i Addenda ------------------------------------------------17
o Verificare/Testare -----------------------------------------------------
17
Modulul 2 Logica propoziional (Calculul propoziional) --------18
o Lecia 1 -----------------------------------------------------------------
- 19
o Lecia 2 -----------------------------------------------------------------
- 21
o Lecia 3 -----------------------------------------------------------------
- 24
o Lecia 4 -----------------------------------------------------------------
-27
1. Forme Normale ------------------------------------------------ 28
2. Satisfiabilitate -------------------------------------------------- 29
3. Satisfiabilitatea formulelor Horn ---------------------------- 30
o Lecia 5 -----------------------------------------------------------------
-33
o Lecia 6 -----------------------------------------------------------------
-36
o Lecia 7 -----------------------------------------------------------------
-37
o Rezumare i Addenda ------------------------------------------------37
o Verificare/Testare -----------------------------------------------------
38
Modulul 3 - Logica (calculul) cu predicate de ordinul I --------------
40
o Lecia 1 -----------------------------------------------------------------
-40
o Lecia 2 -----------------------------------------------------------------
-47
o Lecia 3 -----------------------------------------------------------------
-50
o Lecia 4 -----------------------------------------------------------------
-51
o Lecia 5 -----------------------------------------------------------------
-53
o Rezumare i Addenda ------------------------------------------------56
o Verificare/Testare -----------------------------------------------------
57
Modulul 4 Teorii logice i sisteme de demonstraie ------------- ---
58
o Lecia 1 ----------------------------------------------------------------
--59
o Lecia 2 ----------------------------------------------------------------
--63
o Lecia 3 -----------------------------------------------------------------
--64
o Rezumare i Addenda -------------------------------------------------66
o Verificare/Testare ------------------------------------------------------
67
Modulul 5 Introducere n programarea logic -------------------- ----
69
o Lecia 1 ----------------------------------------------------------------
---70
o Lecia 2 ----------------------------------------------------------------
---72
o Rezumare i Addenda --------------------------------------------------74
o Verificare/Testare ------------------------------------------------------
-74
6
Anex (rezolvri)-----------------------------------------------------
-----------75
Tema de control ----------------------------------------------
----------81
Bibliografie ----------------------------------------------------------
-------- -----84
7
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.
9
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:


=
=

(0) B
n 0
FB
FB U FBn
Observaie. card (FBn) =
2 2n . 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:
x1 x2 ... xn f(x1, x2, ... , xn)
0 0 0 f(0, 0, ... , 0)
0 0 ... 1 f(0, 0, ... , 1)
... ... ... ... ...
1 1 1 1 f(1, 1, ... , 1)
ntrebare. Justificai egalitatea card (FBn) =
2 2n .
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:
x c0 c1 1B
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 x + y x y x y x | y
0 0 0 0 0 1
0 1 1 0 1 1
1 0 1 0 1 1
1 1 1 1 0 0
ntrebare. Cte funcii sunt n FB(3)? Putei da vreun exemplu de asemenea
funcie,
care s aib i o semnificaie cunoscut ?
ntrebare. Putei descoperi singuri metoda standard de construcie a
liniilor unui
tabel ca cel de mai sus? 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):
1) x y = y x. comutativitate (a lui )
2) (x y) z = x (y z). asociativitate (a lui )
3) x (y z) = (x y) (x z). distributivitate ( fa de )
4) (x y) y = y. absorbie
5) (x (~x)) y = y. legea contradiciei
i
1) x y = y x. comutativitate (a lui )
2) (x y) z = x (y z). asociativitate (a lui )
3) x (y z) = (x y) (x z). distributivitate ( fa de )
4) (x y) y = y. absorbie
5) (x (~x)) y = y. legea tautologiei
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
(mcar) un element (notat 0 M) care satisface ecuaia x (x ~ ) = 0 i
(mcar) un
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 x y (x y) + y y
0 0 0 0 0
0 1 0 1 1
1 0 0 0 0
1 1 1 1 1
i respectiv:
x x x ( x )
0 1 0
1 0 0
Adevrul axiomei 4) rezult din primul tabel prin compararea penultimei
coloane (care
este membrul stng al ecuaiei) cu ultima 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
exist i[n] astfel nct xi = 0 (oricare ar fi
n 2 i oricare ar fi x1, x2, ..., xn B)
11) x1 + x2 + + xn = 1 dac i numai
dac exist i[n] astfel nct xi = 1 (oricare
ar fi n 2 i oricare ar fi x1, x2, ..., xn B)
12) x1 x2 xn = 1 dac i numai dac
pentru fiecare i[n] avem xi = 1 (oricare
ar fi n 2 i oricare ar fi x1, x2, ..., xn B)
12) x1 + x2 + + xn = 0 dac i numai
dac pentru fiecare i[n] avem xi = 0
(oricare ar fi n 2 i oricare ar fi x1, x2, ...,
xn B)
13) n n x x ... x = x + x + ... + x 1 2 1 2 (oricare
ar fi n 2 i oricare ar fi x1, x2, ..., xn B)
13) n n x + x + ... + x = x x ... x 1 2 1 2
(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:


= +
, ,..., B
1 2 k k 1 n
k
2

1 2 n 1
1 2 k
f(x , x ,..., x ) x 1 x 2 ... x k f( , ,..., , x ,..., x )
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, 1 2 k
x1 x2 ... xk = 1 dac i numai dac xi = i pentru fiecare
i [n]. Fie acum elementele a1, a2, ... , an B, oarecare, fixate.
Conform proprietii
anterioare, n


+
, ,..., B
1 2 k k 1 n
k
2

1
1 2
a 1 a 2 ... a k f( , ,..., , a ,..., a )
k
unul i numai unul dintre factorii k
k a1 a 2 ... a
1 2 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 = k
i i ik x x2 ... x
2
1
1 , 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
considera ca fiind identice. Vor exista astfel k
n C 3 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:
0 1 3 3
3 3 3 3 ... ... 2 n n
n n n n
C + C + + Ck + + C =
Analog, numrul total al n-FNDP urilor va fi:
0 1 2 2
2 2 2 2 ... ... 2 n n
n n n n
C + C + + Ck + + C = .
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:


+ =
, ,..., B
1 2 k k 1 n
k
2

1 2 n 1
1 2
f(x , x , ... , x ) x 1 x 2 ... x k f( , ,..., ,
,..., )
k
oricare ar fi valorile lui x1, x2, ... , xn din B i prin urmare avem:


=
, ,..., B
n
2

1 2 n 1
1 2 n
f(x , x , ... , x ) x 1 x 2 ... x 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:


= + + +
, ,..., B
n
2

1 2 n 1
1 2 n
f(x , x , ... , x ) (x 1 x 2 ... x 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 numrul funciilor booleene n-are este 22n iar numrul formelor disjunctive
n-are este
23n ). 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 = { n
p i | n N*, 1 p n, n
p i : Bn B, n
p i (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 n
p i 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) = ( ..., ) 1, 2, n f x x x . 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
22n (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.
4. Justificai egalitatea card(FBn) = 22n .
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:
B
A
A B
modus ponendo-ponens (pe scurt, modus ponens)
A
B
A B



modus tollendo-tollens (pe scurt, modus tollens)
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.
(iv) Nimic altceva nu este formul.
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
A
( )

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
(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
( )
Arb(F1) Arb(F2)

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
i 1
Fi = F1 F2 ... Fn.
=
n
i 1
Fi = F1 F2 ... Fn .
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
F
Formule sat|isfiabile dar nevalide
F |( F)
Contradicii
( F)
|
Tabelul 2.1
n tabelul anterior linia punctat poate fi considerat drept o oglind n
care se
reflect adevrul.
Definiia 2.6. Dou formule 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.
(ii) ( =
n
i 1
Gi ) G este tautologie.
(iii) (=
n
i 1
Gi ) G este contradicie.
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.
(i) H = ( H1). Presupunem c P(H1) este adevrat i demonstrm c P(H)
este
adevrat. Fie F subf(H) = subf(H1) U {( H1)}. Dac 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, j
n
j 1
m
i 1
i
= =
= ( putem nota i, j
n
i j 1C L i
=
= , i [1..m] ).
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 {L ,L ,...,L } i i,1 i,2 i,ni = . 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
2
n = 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:
*1 D A, C A *1 D , A B 0, 1 __________*1 D , E 0.
A doua execuie: alegem D A (din nou, nu exist dect o posibilitate)
i A se
marcheaz peste tot, cu *2:
*1 D *2 A , C *2 A *1 D , *2 A B 0, 1 *1 D , E 0.
A treia execuie nu mai are loc, deoarece nu mai exist clauze de tipul
cerut.
Cum valoarea lui i nu s-a modificat (a rmas 0), rspunsul algoritmului
este
DA.
Prin urmare, F este satisfiabil i o structur S, model pentru F, este
definit prin S(A) =
1, S(B) = 0, S(C) = 0, S(D) = 1, S(E) = 0.
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.
Muli dintre rezolvenii primari nu sunt interesani, fiind tautologii.
Procesul poate ns
continua cu rezolvarea rezolvenilor obinui din clauzele iniiale:
. 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.
C1 C2 C1 C2 C1 C4
A A B B A A
{A, B, A, D}
E E
{E, B, B, C} {A, E, A, C} {E, B, D, E}
C1 C4
C2 C3
A A
{B, C, D} C1
B B
{C, D, A, E}
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}
B B
{A} { 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
Res(n)(F) se va numi mulimea rezolvenilor lui F obinui n cel mult n
pai, iar
Res*(F) mulimea (tuturor) rezolvenilor lui F.
Observaie. Direct din definiie rezult c:
F = Res(0)(F) Res(1)(F) ... Res(n)(F) ... Res*(F).
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
este satisfiabil dac Res*(F)) ct i pentru F ( F 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. Rezolvai Exerciiul 2.2.
3. Rezolvai Exerciiul 2.3.
4. Rezolvai Exerciiul 2.4.
5. Completai demonstraia Teoremei 2.1.
6. Rezolvai Exerciiul 2.5.
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:
Alf = X U (

=
i 0
Pi ) U (

=
i 0
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: .
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:
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:
(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.
Arb(t1)
Q
Arb(tn)
Arb(t1)
C
Arb(t2)
c
P
x
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


Q (x)
x (y)
( )

(x)
P R
z
Q
f
x
x z g
x
a
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) = (F ) S 1 .
(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 )) = (F ) S 1 , 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
[y1/u1 ][y2/u2 ]...[yk/uk ] S ((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
U k
i
E F E C 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:
, c
G
G , G , , G1 2 n
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 j1 F , j2 F , ...
, jk F folosind o regul
r = < < { j1 F , j2 F , , jk F }, 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:
r: .
Res(C , C )
C , C
1 2
1 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
1.
G
F G, F
.
2.
( F
F
x)
.
S artm, de exemplu, c n SD3 se poate genera teorema T = (A A) (n
cele ce
urmeaz vom mai renuna pe parcurs la unele paranteze, dac nelegerea nu
este 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).
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.
....... ....... ....... ....... ...... ....... .......
......
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
B rdcirnadc
A A A
ipoteze,
anulate sau
66
care se lucreaz cu formule nchise. Mnemonicele provin de la urmtoarele
cuvinte: E
eliminare; I introducere; N negaie; C conjuncie.
1. (EN)
A
B, B
, c = se anuleaz ipoteza A.
2. (IN)
A
B, B


, c = se anuleaz ipoteza A.
3. (EC)
A
A B
i
B
A B
.
4. (IC)
A B
A,B

i
B A
A,B

.
5. (E)
A[x/t]
(x)A
.
6. (I)
( x)A
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].
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
testarea nesatisfiabilitii formulei i
p q
i
G
+
=
1
G, pe care o vom nota tot cu F. F este n
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 = { 1 L , 2 L , ... , m L , 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 p q
Apoi:
TR (teorema reciproc) q p
TCD (contrara directei) p q
TCR (contrara reciprocei) q p.
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
V.2.2. Avem lim a a R n n
=

dac i numai dac
( > 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)).
Obiecte
care
satisfac p
Obiecte
care
satisfac q
77
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:
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 .

( )
( ) ( )


B C
A
0
0010
001
00
00101
00000
00100
000
00000

() ()
A
B C
()
01
00
010 011
00
000
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,
free(P(t1, t2,..., tn)) = U
n
i
free ti
1
( )
=
, unde free(ti) = {x1,x2, ...,xk}.
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
2. AB, A |_ B 1., (MP)
3. AB, BC, A |_ B, BC 2.-de dou ori, i ceva evident
79
4. AB, BC, A |_ C 3., (MP)
5. AB, BC |_ AC 4., (TD)
6. AB |_ (BC) (AC) 5., (TD)
7. |_ (AB) ((BC) (AC)) 6, (TD).
Pentru (ii):
1. A(BC), A |_ A(BC), A evident
2. A(BC), A |_ BC 1., (MP)
3. A(BC), A, B |_ B, BC 2.
4. A(BC), A, B |_ C 3., (MP)
5. A(BC), B |_ AC 4., (TD)
6. A(BC) |_ B(AC) 5., (TD)
7. |_ (A(BC)) (B(AC)) 6., (TD).
Pentru (iii):
1. |_ ( A A)(( A A) A) axioma 3 din SD3
2. |_ A A am artat deja
3. |_ ( A A)(( A A) A) 1., (ii), (MP)
4. |_ ( A A)A 2., 3., (MP)
5. |_ A ( A A) axioma 1 din SD3
6. |_ A __________A 4., 5., (i), (MP).
V.4.2. Similar cu rezoluia propoziional, vom avea cte un sistem pentru
fiecare F
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)
6. I |_ B A 5., (TD), (II).
Apoi:
1. I |_ B A evident
2. I, B |_ B, B A 1.
3. I, B A 2. (EI)
4. I, A, B |_ A, A 3.
5. I, A |_ B 4., (EN)
6. I |_A B 5., (TD), (II).
n sfrit:
1. I |_ AB, AC, BC evident
2. I |_ AB, C A, BC 1., Ax3
3. I |_ AB, C A, C B 2., Ax3
4. I, C |_ AB, C, C A, C B 3.
5. I, C |_ A, AB, C, C B 4., (EI)
80
6. I, C |_ B, C, C B 5., (ED)
7. I, C |_ B, B 6., (EI)
8. I |_ C 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.
4. Justificai egalitatea card(FBn) = 22n .
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 M = {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 o formul F LP1 care s conin un simbol predicativ
P P2 i care s exprime faptul c P este o relaie antisimetric.
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?

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