Documente Academic
Documente Profesional
Documente Cultură
• Introducere
LOGICA PENTRU
INFORMATICĂ
Facultatea de Informatică
Universitatea „Al.I.Cuza” Iaşi
(http://www.info.uaic.ro)
Profesori 1
• Prof. Dr. Cristian Masalagiu (Titular curs)
mcristy@info.uaic.ro
http://profs.info.uaic.ro/~masalagiu
Profesori 2
• Asist. drd. Cosmin Vârlan (seminar)
vcosmin@info.uaic.ro
http://profs.info.uaic.ro/~vcosmin
Profesori 3
• Drd. Vasile Alaiba (seminar)
alaiba@info.uaic.ro
http://profs.info.uaic.ro/~alaiba
Profesori 4
• Marius Barat (seminar)
marius.barat@info.uaic.ro
http://students.info.uaic.ro/~marius.barat
Orar 1
(http://www.info.uaic.ro/~orar):
• Curs:
Luni 10.00 - 12.00 semianul A (C2)
Luni 12.00 – 14.00 semianul B (C2)
Orar 2
(http://www.info.uaic.ro/~orar)
• Seminarii (ştiŃi cu cine, cf. ORAR):
Luni: 10.00 – 12.00 : B6 (C903)
Miercuri: 08.00 – 10.00 : A1 (C112)
08.00 – 10.00 : B4 (C903)
18.00 – 20.00 : B8 (C903)
Joi: 08.00 – 10.00 : A2 (C901)
08.00 – 10.00 : 1X (C903)
10.00 – 12.00 : A3 (C112)
10.00 – 12.00 : B5 (C903)
10.00 – 12.00 : B7 (C909)
Orar 3
(http://www.info.uaic.ro/~orar)
• Seminarii:
Joi: 12.00 – 14.00 : A5 (C903)
14.00 – 16.00 : A6 (C903)
16.00 – 18.00 : 1X (C903)
Vineri: 08.00 – 10.00 : B1 (C901)
10.00 – 12.00 : B2 (C901)
14.00 – 16.00 : A4 (C909)
16.00 – 18.00 : A7 (C909)
18.00 – 20.00 : B3 (C909)
Orar 4
(http://www.info.uaic.ro/~orar)
• Ore de consultaŃii
– C.Masalagiu, V.Alaiba, M.Barat:
Miercuri: 10.00 – 12.00
Cabinet – C305
– C.Varlan:
Miercuri: 18.00 – 20.00
Cabinet – C211
CerinŃe 1
http://www.info.uaic.ro -> Membri
-> Personal Academic (pentru a cunoaşte şi alŃi profesori
şi a naviga către paginile noastre)
http://profs.info.uaic.ro/~masalagiu/
-> SecŃiunea „Logic”
CerinŃe 2
• Nota finală se obŃine în urma acumulării
unui număr de puncte (maxim 100) şi în
urma aplicării unui algoritm de tip Gauss
(conform regulamentului în vigoare)
CerinŃe 3
• 60 din cele 100 de puncte se pot obŃine la
cele două lucrări din săptămânile 8
respectiv 16
• 40 de puncte se pot obŃine în urma
activităŃii la seminar din timpul semestrului
• UrmăriŃi paginile web!
CerinŃe 4
• Sunt necesare un minim de 30 de puncte
pentru a promova
• A se consulta (deja menŃionat) măcar
pagina
http://profs.info.uaic.ro/~masalagiu
(„Logic”)
CerinŃe 5
• Bibliografie „scrisă” minimală:
http://profs.info.uaic.ro/~masalagiu
(În secŃiunea „Logic” - Bibliografie de bază;
linkurile pot fi accesate doar din cadrul FII)
• 1) x ⊥ y = y ⊥ x comutativitate
(a lui ⊥)
• 2) (x ⊥ y) ⊥ z = x ⊥ (y ⊥ z)
asociativitate (a lui ⊥)
• 3) x ⊥ (y ∇ z) = (x ⊥ y) ∇ (x ⊥ z) distributivitate
(a lui ⊥ faŃă de ∇)
• 4) (x ⊥ y) ∇ y = y absorbŃie
• 5) (x ⊥ (~x)) ∇ y = y legea contradicŃiei
Algebre booleene 2
şi respectiv
• 1’) x ∇ y = y ∇ x
comutativitate (a lui ∇)
• 2’) (x ∇ y) ∇ z = x ∇ (y ∇ z)
asociativitate (a lui ∇)
• 3’) x ∇ (y ⊥ z) = (x ∇ y) ⊥ (x ∇ z)
distributivitate (a lui ∇ faŃă de ⊥)
• 4’) (x ∇ y) ⊥ y = y absorbŃie
• 5’) (x ∇ (~x)) ⊥ y = y legea tautologiei
Algebre booleene 3
• Dualitate; principiul dualităŃii
• NotaŃii (reamintit: M – B, 2V; ⊥ - •, ∩; ∇ - +, U;
~ - ¯ , CV)
• Reprezentare (tabele „de adevăr”, standard)
• FuncŃii importante (0, 1, 2 argumente): 0, 1, c0,
c1, 1B, ¯ , +, •, ⊕, | .
• Numărul de funcŃii din FB-uri
• Reprezentarea „numerică” a tabelelor „standard”
• Alte considerente algebrice (latici…)
• Alte „legi” (Tabelul 1.1 – pag.30 – cartea
tipărită)
CURS 3
• Reprezentarea funcŃiilor booleene
• Forme normale
• Clase speciale de funcŃii booleene
• Sintaxa LP
Reprezentarea funcŃiilor
booleene 1
• NotaŃii: x1 = x şi x0 = x
• Indicii (superiori) precedenŃi nu se supun
principiului dualităŃii (de exemplu, nu este
adevărat că (x1 = x) coincide cu (x0 = x ))
• Dacă xi, αi ∈ B atunci, direct din notaŃiile
de mai sus, rezultă că:
• (x0)α = (xα)0 precum şi (xα = 1 dacă şi
numai dacă x = α)
Reprezentarea funcŃiilor
booleene 2
• Teoremă (de descompunere, în sumă de
„termeni”). Pentru fiecare n ∈ N*, f ∈ FB(n) şi
fiecare k ∈ [n], avem:
(demonstraŃie)
• Mai spunem că expresia din
membrul drept al reprezentării este
(o) FND(P) pentru f
Forme normale 3
• Prin dualizare, folosind noŃiunile de (n-)factor peste X şi
maxfactor (n-ar, peste X), putem defini noŃiunea de
formă normală conjunctivă (n-ară) ((n-)FNC, adică orice
produs de factori dictincŃi) şi respectiv formă normală
conjunctivă (n-ară) perfectă ((n-)FNCP, adică orice
produs de maxfactori distincŃi)
• ConvenŃie: două produse nu vor fi considerate distincte
dacă diferă doar prin ordinea componentelor
• EnunŃaŃi duala teoremei anterioare, pentru FNCP
• Care va fi numărul total al (n -)FNC – urilor? Dar cel al
(n-)FNCP–urilor ?
Clase speciale de funcŃii
booleene 1
• Criteriul „numărul total de apariŃii ale variabilelor
în reprezentarea unei funcŃii” (apariŃia unei
aceleiaşi variabile pe poziŃii diferite se numără
distinct) poate genera alte forme normale
• Folosind această „măsură” (pe care o vom nota
cu n(φ)), putem numi formă normală disjunctivă
minimală (FNDM) pentru f ∈ FB orice FND φ’,
astfel încât:
n(φ’) = min {n(φ) | φ este FND pentru f}
• Dată o funcŃie booleană f ∈ FB, se poate pune
problema determinării tuturor FNDM pentru f,
sau a uneia standard (algoritmul lui Quine)
Clase speciale de funcŃii booleene
2
• Similar, putem reduce în anumite cazuri
timpul de procesare a unor texte (expresii,
formule etc.) prin găsirea unui număr
minim de operaŃii booleene
convenabile, cu ajutorul cărora să se
„reprezinte” orice funcŃie booleană
Clase speciale de funcŃii
booleene 3
• DefiniŃie.
-Clasa funcŃiilor booleene elementare este:
E = { ip | n ∈ N*, 1 ≤ p ≤ n, p : Bn → B,
n
n i
inp (x1, x2, ... , xp, ... , xn) = xp}
(proiecŃii)
-Fie n ∈ N*, t un număr natural,
f, h1, h2, ... , ht ∈ FB(n) şi g ∈ FB(t).
Clase speciale de funcŃii
booleene 3
Spunem că f se obŃine din g, h1, h2, ... , ht prin
superpoziŃie dacă pentru fiecare
x = <x1, x2, ... , xn> avem:
f(x) = g(h1(x), h2(x), ... , ht(x))
-Fie M ⊆ FB. Se numeşte M-şir orice secvenŃă
(listă) finită f0, f1, ... , fr de funcŃii booleene în
care fiecare fi este fie din E U M, fie se obŃine
prin superpoziŃie din alte funcŃii, aflate în aceeaşi
listă dar înaintea lui fi
Clase speciale de funcŃii
booleene 4
• Alte notaŃii …
• MulŃimi închise, închideri
• DefiniŃii alternative
• Rezultate importante
• Exemple: T0, T1, Aut, Mon, Lin
• MulŃimi complete, precomplete, baze
• Alte rezultate şi exemple
Final FB
• Index recapitulativ
• ExerciŃii suplimentare
• Alte comentarii (ce a fost, ce va fi în Curs)
LP - Sintaxa 1
• Logica propoziŃională, d.p.d.v. sintactic, este o mulŃime
de „formule” (propoziŃionale), notată LP
• DefiniŃie (constructivă):
-Fie o mulŃime numărabilă de variabile propoziŃionale
(formule elementare, formule atomice pozitive, atomi
pozitivi), A = {A1, A2, … }. Fie, de asemenea,
C = {, ∨, ∧} mulŃimea conectorilor/conectivelor
logici/logice: non (negaŃia), sau (disjuncŃia), respectiv şi
(conjuncŃia) şi P = { ( , ) } mulŃimea parantezelor
(rotunde). Formulele (elementele lui LP) vor fi “cuvinte”
(expresii bine formate) peste alfabetul L = A U C U P
LP - Sintaxa 2
n
• ∨ Fi este prescurtarea lui F1 ∨ F2 ∨ ... ∨ Fn
i= 1
• (demonstraŃie)
LP – Semantica 8
• Teoremă. Sunt adevărate următoarele echivalenŃe (tari,
pentru oricare F, G, H ∈ LP):
(a) F ∧ F ≡ F
(a’) F ∨ F ≡ F (idempotenŃă)
(b) F ∧ G ≡ G ∧ F
(b’) F ∨ G ≡ G∨ F (comutativitate)
(c) ( F ∧ G ) ∧ H ≡ F ∧ ( G ∧ H )
(c’) (F ∨ G) ∨ H ≡ F ∨ (G ∨ H) (asociativitate)
(d) F ∧ ( G ∨ H ) ≡ (F ∧ G) ∨ (F ∧ H)
(d’) F ∨ ( G ∧ H ) ≡ (F ∨ G) ∧ (F ∨ H) (distributivitate)
(e) F ∧ ( F ∨ G ) ≡ F
(e’) F ∨ ( F ∧ G ) ≡ F (absorbŃie)
LP – Semantica 9
(f) F ≡ F (legea dublei negaŃii)
(g) ( F ∧ G ) ≡ F ∨ G
(g’) ( F ∨ G ) ≡ F ∧ G (legile lui deMorgan)
(h) F ∨ G ≡ F
(h’) F ∧ G ≡ G (legile validităŃii, adevărate doar
dacă F este tautologie)
(i) F ∧ G ≡ F
(i’) F ∨ G ≡ G (legile contradicŃiei, adevărate doar
dacă F este contradicŃie)
• Generalizări pentru mai multe formule
LP – Semantica 10
• Teoremă (de substituŃie). Fie H ∈ LP,
oarecare. Fie orice F, G ∈ LP astfel încît F
este o subformulă a lui H şi G este tare
echivalentă cu F. Fie H’ formula obŃinută
din H prin înlocuirea (unei apariŃii fixate a)
lui F cu G. Atunci H ≡ H’ (demonstraŃie)
LP – Forme normale 1
• Spre deosebire de cazul funcŃiilor booleene, studiem
formele normale conjunctive şi formele normale disjunctive
simultan (pentru început)
• DefiniŃie. O formulă F ∈ LP se află în formă normală
conjunctivă (FNC, pe scurt) dacă este o conjuncŃie de
disjuncŃii de literali, adică o conjuncŃie de clauze:
m ni
F = ∧ ( ∨ L i, j )
i=1 j=1
F = ∨ ( ∧ L i, j )
i= 1 j= 1
Algoritm Horn
Intrare: Orice formulă Horn, F, reprezentată ca mulŃime
de clauze, clauzele componente fiind clauze Horn
diferite de clauza vidă şi scrise sub formă implicaŃională
Ieşire: „DA”, în cazul în care formula F este satisfiabilă
(furnizându-se şi o asignare S care este model pentru F)
şi „NU” în caz contrar (F nu este satisfiabilă)
Formule Horn în LP – 5
• Metodă (de marcare):
Pasul 1. i := 0
Pasul 2.
Cât_timp ((există în F o clauză C de forma
A1 ∧ A2 ∧ A3 …… ∧ Ak → B, cu A1, A2, A3, ... , Ak marcaŃi şi B
nemarcat sau de forma
A1 ∧ A2 ∧ A3 …… ∧ Ak → 0, cu A1, A2, A3, ... , Ak marcaŃi)
ş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ă B peste tot în F
altfel
Pasul 6. i := 1
Sf_Dacă
Sf_Cât_timp
Formule Horn în LP - 6
Pasul 7. Dacă ( i = 0 )
atunci
Pasul 8. Scrie „DA”.
Pasul 9. Scrie S, cu S(A) = 1
dacă şi numai dacă A apare în F şi
este marcat.
altfel
Pasul 10. Scrie „NU”
Sf_Dacă
Formule Horn în LP - 7
• Arătăm mai întâi că algoritmul se termină pentru fiecare
intrare. Să precizăm că acŃiunea de marcare o privim iniŃial
în sensul că toate variabilele se presupun a fi nemarcate
-Dacă F conŃine clauze de forma 1 → B (care se consideră
a fi de fapt de forma
A1 ∧ A2 ∧ A3 …… ∧ Ak → B, cu A1, A2, A3, ... , Ak marcaŃi şi
B nemarcat), se procedează conform Algoritmului, adică se
marchează toate apariŃiile lui B în F şi se trece la pasul
următor. Mai departe, la fiecare execuŃie a corpului buclei
(Paşii 3. şi 4.), fie se marchează o variabilă propoziŃională
nouă (nemarcată încă), fie se iese din execuŃia buclei.
Pentru că numărul 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ă fără nici o execuŃie a corpului buclei, cu răspunsul
„DA” (formula este satisfiabilă) şi cu asignarea S,
în care S(A) = 0 pentru fiecare A (care apare în F)
Formule Horn în LP - 8
• Arătăm în continuare că algoritmul este
corect. Aceasta înseamnă că ieşirea
algoritmului satisface ceea ce am dorit,
adică răspunsul „DA”/S corespunde
faptului că formula F furnizată la intrare
este satisfiabilă (şi S atenŃie...F) iar
răspunsul „NU” corespunde faptului că F
este nesatisfiabilă. Vom separa cazurile:
Formule Horn în LP - 9
• Cazul a). La terminarea execuŃiei se
obŃine „DA” şi F nu conŃine clauze C de
tipul 1 → B
• Cazul b). La terminare se obŃine „DA” iar
F conŃine şi clauze C = 1 → B. Atunci
bucla se termină după un anumit număr
de execuŃii ale corpului său, valoarea lui i
este 0 şi F conŃine în final clauze C având
marcate anumite variabile
Formule Horn în LP - 10
• Cazul c) Algoritmul se termină cu i = 1 şi
răspunsul „NU”. Acest lucru înseamnă că există
în F o clauză C = A1 ∧ A2 ∧ A3 …… ∧ Ak → 0 cu
toŃi Ai, i ∈ [k] marcaŃi (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 trebuie să arătăm că
pentru nici o altă asignare, ea nu poate fi model
pentru F
Formule Horn în LP - 11
Să presupunem (RA) că există o asignare S’ (diferită de
S, furnizată de algoritm) astfel încât S’(F) = 1. Să
observăm, pentru început, că toate variabilele care au
fost marcate în algoritm (deci cele care au primit
valoarea de adevăr 1 în S), trebuie să primească
valoarea 1 în oricare S’ cu S’(F) = 1. Altfel spus,
asignarea S conŃine cel mai mic număr posibil de valori 1
(atribuite evident variabilelor marcate) astfel încît formula
să aibă şanse să fie satisfiabilă. Într-adevăr, pentru
fiecare S’ cu S’(F) = 1, trebuie să avem S’(C) = 1 pentru
fiecare clauză C din F
• Să ne ocupăm puŃin de momentul în care se marchează
o variabilă B, ordonând clauzele din F de forma
C = A1 ∧ A2 ∧ A3 … ∧ Ak → B (k ≥ 1) după numărul de
variabile din antecedent (chiar în algoritm, selecŃia unei
clauze „pentru marcare” se poate face după un
asemenea criteriu):
Formule Horn în LP - 12
• 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
decât dacă a apărut deja ca un consecvent într-o clauză de
tipul anterior, sau în una de acelaşi 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 (consecinŃa este că B se
marchează, deci şi S(B) = 1)
• Continuăm raŃionamentul cu C = A1 ∧ A2 → B (două variabile
în antecedent; ambele variabile marcate; B este, încă,
nemarcat) şi ajungem din nou la concluzia că pentru fiecare
S’, pentru a avea S’(C) = 1, trebuie să avem S’(B) = 1,
precum şi S(B) = 1
Formule Horn în LP - 13
• Revenind, am arătat că pentru fiecare S’ astfel încât
S’(F) = 1, trebuie să avem şi S’(A) = 1 pentru fiecare A
marcat de către algoritm, adică pentru fiecare A care
satisface S(A) = 1 (procesul descris mai sus se continuă
pentru oricâte variabile prezente în antecedent, iar numărul
acestora este finit). Prin urmare, avem şi S’(C) = 0, de unde
rezultă că S’(F) = 0, ceea ce este absurd
• Să arătăm în final că algoritmul Horn are timp de execuŃie
liniar. Faptul că t(n) ∈ O(f(n)), unde f(n) = a•n + b (a, b ∈ N*),
rezultă imediat din faptul că la fiecare execuŃie a corpului
buclei se marchează o nouă variabilă. Desigur că, pentru a
obŃine în mod real acest lucru, algoritmul trebuie detaliat, în
sensul că, de exemplu, în Paşii de tip 3 (de alegere a unei
clauze corespunzătoare C), selecŃia variabilei de marcat
trebuie făcută prin parcurgerea de un număr fix de ori
(independent de numărul de execuŃii) a listei variabilelor
peste care este construită F
RezoluŃie în LP - 1
• Fără a restrânge generalitatea, putem presupune că
lucrăm cu formule din LP aflate în FNC, reprezentate sub
formă de mulŃimi (finite) de clauze, iar clauzele ca mulŃimi
(finite) de literali
• DefiniŃie (rezolvent). Fie clauzele C1, C2 , R. Spunem că
R este rezolventul lui C1, C2 (sau că C1, C2 se rezolvă
în R, sau că R se obŃine prin rezoluŃie într-un pas din
C1, C2), pe scurt, R = ResL(C1, C2), dacă şi numai dacă
există un literal L ∈ C1 astfel încât L ∈ C2 şi L
R = (C1 \ {L}) U (C2 \ { L })
• Vom putea reprezenta acest lucru şi grafic, prin arborele
∨
de rezoluŃie:
c1 c 2
L L
R
RezoluŃie în LP - 2
• Rezolventul a două clauze este tot o clauză. Mai mult,
rezolventul a două clauze Horn este tot o clauză Horn.
Clauza vidă (□) poate fi obŃinută prin rezoluŃie din două
clauze de forma C1 = {A} şi C2 = {A}. În definiŃia
anterioară putem considera că C1 şi C2 sunt diferite
între ele. Dacă ele ar coincide, atunci
C1 = C2 = C = … ∨ L∨…∨L ∨ … ≡ 1, adică acele
clauze sunt tautologii, detectabile sintactic (în acest
caz nu ne mai interesează alte metode formale de
studiere a satisfiabilităŃii lor)
RezoluŃie în LP - 3
• Teoremă (lema rezoluŃiei). Fie oricare formulă
F ∈ LP (aflată în FNC şi reprezentată ca
mulŃime de clauze) şi R un rezolvent pentru C1,
C2 ∈ F. Atunci F este tare echivalentă cu
F U {R} (demonstraŃie)
• În teorema anterioară am fi putut considera, în
loc de F, o mulŃime oarecare de clauze, chiar
infinită (vezi Teorema de compactitate)
RezoluŃie în LP - 4
• DefiniŃie. Fie F o mulŃime oarecare de
clauze din LP şi C o clauză. Spunem că
lista C’1, C’2 , … , C’m este o demonstraŃie
prin rezoluŃie (în mai mulŃi paşi) a lui C
pornind cu F dacă sunt satisfăcute
condiŃiile:
(i) Pentru fiecare i ∈ [m], fie C’i ∈ F, fie C’i
este obŃinut prin rezoluŃie într-un pas din
C’j, C’k, cu j, k < i
(ii) C = C’m
RezoluŃie în LP - 5
• În condiŃiile definiŃiei se mai spune că C este
demonstrabilă prin rezoluŃie (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 demonstraŃie şi nu să
fie neapărat ultimul element al acesteia. Intuitiv,
o demonstraŃie prin rezoluŃie în mai mulŃi paşi
înseamnă o succesiune finită de rezoluŃii într-un
pas, care poate fi reprezentată şi grafic, printr-un
arbore, sau chiar ca un graf oarecare (dacă nu
folosim noduri diferite pentru apariŃiile distincte
ale unei aceleiaşi clauze)
RezoluŃie în LP - 6
• În particular, dacă C este clauza vidă, atunci
demonstraŃia respectivă se numeşte şi respingere.
Numărul de paşi dintr-o demonstraŃie este dat de
numărul de clauze obŃinute prin rezoluŃie într-un pas (din
clauze anterioare). Acesta poate fi considerat ca fiind o
măsură a „mărimii” (lungimii) demonstraŃiei. O altă
măsură pentru o demonstraŃie reprezentată ca text poate
fi chiar lungimea listei (numărul total de clauze sau chiar
numărul total de clauze distincte). Dacă reprezentăm o
demonstraŃie ca un arbore, putem folosi şi măsuri
specifice, cum ar fi adâncimea arborelui, numărul de
nivele, etc.
RezoluŃie în LP - 7
• DefiniŃie (mulŃimea rezolvenŃilor unei mulŃimi de
clauze). Fie F o mulŃime de clauze din LP (nu neapărat
finită). Notăm succesiv:
-Res(F) = F U {R | există C1, C2 ∈ F astfel încât
R = Res(C1, C2)}
-Res(n+1)(F) = Res(Res(n)(F)), n ∈ N
-Prin Res(0)(F) vom înŃelege F şi atunci vom putea pune
şi
Res(1)(F) = Res(F)
-Res*(F) = (F).
• Res(n)(F) se va numi mulŃimea rezolvenŃilor lui F
obŃinuŃi în cel mult n paşi, iar Res*(F) mulŃimea
(tuturor) rezolvenŃilor lui F (alternativ – definiŃii
recursive)
RezoluŃie în LP - 8
• Direct din definiŃie rezultă că:
F = Res(0)(F) ⊆ Res(1)(F) ⊆ ... ⊆ Res(n)(F) ⊆ ...
⊆ … ⊆ Res*(F)
• Putem da atunci şi o definiŃie structurală a lui
Res*(F). Vom nota astfel cu Resc mulŃimea
definită prin:
Baza. F ⊆ Resc
Pas constructiv: Dacă C1, C2 ∈ Resc şi
C = Res(C1, C2), atunci C ∈ Resc
RezoluŃie în LP - 9
• Teoremă. Pentru fiecare F ∈ LP, avem
Res*(F) = Resc
(demonstraŃie)
Vom putea astfel folosi ambele notaŃii
(definiŃii) pentru mulŃimea rezolvenŃilor
unei mulŃimi de clauze
RezoluŃie în LP - 10
• Teoremă. Fie F o mulŃime de clauze din
LP (nu neapărat finită). O clauză C ∈ LP
se poate demonstra prin rezoluŃie pornind
cu clauzele lui F dacă şi numai dacă există
k ∈ N, asfel încât C ∈ Res(k)(F)
(demonstraŃie)
RezoluŃie în LP - 11
• În cele de mai sus am folosit în majoritatea
cazurilor termenul mulŃimea de clauze F şi nu
formula F (aflată în FNC). Deşi pe noi ne
interesează doar formulele (care pot fi privite ca
mulŃimi finite de clauze în cazul în care ne
interesează doar satisfiabilitatea lor), aproape
toate rezultatele sunt valabile şi pentru mulŃimi
infinite (numărabile) de formule (clauze)
• Teorema următoare stabileşte o legătură
importantă, privind satisfiabilitatea, între
mulŃimile infinite şi cele finite de formule
oarecare din LP
RezoluŃie în LP - 12
• Teoremă (de compactitate, pentru LP).
Fie M o mulŃime infinită (numărabilă) de
formule din LP. Atunci M este satisfiabilă
dacă şi numai dacă fiecare submulŃime
finită a sa este satisfiabilă (demonstraŃie)
• Teoremă. Fie F ∈ LP, aflată în FNC şi
reprezentată ca mulŃime (finită) de clauze.
Atunci Res*(F) este finită (demonstraŃie)
RezoluŃie în LP - 13
• Teoremă (teorema rezoluŃiei pentru
calculul propoziŃional). Fie F o mulŃime
oarecare de clauze din calculul
propoziŃional. Atunci F este nesatisfiabilă
dacă şi numai dacă ∈ Res*(F)
(demonstraŃie)
• Corectitudine şi completitudine
(demonstraŃie)
CURS 6
• Rafinări ale rezoluŃiei şi „complemente”
• Teorii logice, sisteme de demonstraŃie
Rafinări ale rezoluŃiei - 1
• Rafinările rezoluŃiei sunt metode prin care se
urmăreşte obŃinerea clauzei vide (dacă acest lucru este
posibil) într-un număr cât mai mic de paşi de rezoluŃie.
Pornind cu formula F = {C1, C2, … , Cn} (aflată în FNC şi
scrisă ca o mulŃime de clauze, la rândul lor clauzele fiind
scrise ca mulŃimi de literali), se poate construi efectiv
mulŃimea Res*(F), care poate fi reprezentată (fiind finită),
după cum deja ştim, ca un graf neorientat (nodurile
sunt rezolvenŃii succesivi, inclusiv clauzele iniŃiale, iar
muchiile sunt introduse prin rezoluŃiile într-un pas
aplicate). Practic, acest graf ar trebui să cumuleze toate
posibilele demonstraŃii prin rezoluŃie care pornesc cu
clauzele lui F (reamintim că anumiŃi rezolvenŃi sunt totuşi
excluşi, deoarece reprezintă tautologii)
Rafinări ale rezoluŃiei - 2
• Teorema rezoluŃiei sugerează crearea
mai întâi a acestui graf de rezoluŃie total
şi apoi parcurgerea lui pentru a vedea
dacă este (eticheta unui) nod în graf.
Este suficient, de asemenea, să găsim o
respingere în loc de a crea şi apoi
parcurge întregul graf. Rafinările se împart
în două mari categorii: strategii şi
restricŃii
Rafinări ale rezoluŃiei - 3
• Strategiile nu restrâng, în general, spaŃiul de căutare (adică
graful total) dar folosesc anumite informaŃii suplimentare despre
clauze, astfel încât să crească şansele pentru selectarea rapidă
a unei demonstraŃii căutate, adică a unui „cel mai scurt drum”
pornind de la frunze (elementele lui F), către o rădăcină (clauza
vidă). Astfel, cel puŃin la modul ideal, graful total nu se
construieşte în întregime, ci doar acele porŃiuni din el (cât mai
puŃine şi cât mai mici), care este posibil să „conŃină” măcar o
respingere. Cel mai cunoscut exemplu este strategia unitară,
în care se recomandă ca la fiecare pas al rezoluŃiei măcar una
dintre clauze să conŃină un singur literal (dacă însă nu mai
poate fi aleasă nici o asemenea clauză unitară, se con-tinuă
procesul de obŃinere de noi rezolvenŃi în mod obişnuit). Prin
urmare, strategiile nu distrug completitudinea rezoluŃiei (dacă o
formulă este nesatisfiabilă, atunci se poate demonstra acest
lucru prin rezoluŃie, găsindu-se o respingere), dar, în cel mai
rău caz, este posibil să nu conducă la nici o economie de timp
Rafinări ale rezoluŃiei - 4
• Pe de altă parte, restricŃiile distrug în multe situaŃii
completitudinea rezoluŃiei (există formule nesatisfiabile
pentru care nu se pot găsi respingeri, în situaŃia în care
paşii de rezoluŃie sunt supuşi unor condiŃii prea
restrictive), deoarece spaŃiul de căutare este practic
micşorat într-un mod, să-i spunem, abuziv. Astfel, o
anumită restricŃie poate interzice total folosirea (într-un
pas de rezoluŃie) a unor clauze având o anumită formă
sintactică. RestricŃiile rămân însă complete pentru
anumite subclase de formule propoziŃionale. Există mai
multe exemple importante de restricŃii
• Exemple absolut necesare (rezoluŃia pozitivă, SLD, etc.)
Teorii logice, sisteme de
demonstraŃie, (O)BDD
• Teorie logică: mulŃime de formule închisă
la consecinŃă semantică
• Sistem de demonstraŃie: axiome + reguli
de inferenŃă
• Teoremă de corectitudine şi
completitudine
• Alte modalităŃi de reprezentare ale
funcŃiilor booleene
Teorii logice - 1
• Teorie logică - concept semantic pentru
definirea şi tratarea globală a unei mulŃimi de
„formule”: TE
• O teorie logică este o (sub)clasă de formule
închisă la consecinŃă semantică
• Cu alte cuvinte, o mulŃime TE de formule este
teorie logică dacă pentru fiecare submulŃime
T ⊆ TE şi fiecare (altă) formulă G care este
consecinŃă semantică din T, avem şi G ∈ TE
Teorii logice - 2
• Exemple imediate de teorii logice sunt
clasele formulelor valide (din LP, LP1,
LP1= , etc.) NotaŃie pt. consecinŃă
semantică: I ╞ F
Sisteme deductive - 1
• Sistem deductiv (de deducŃie, de
demonstraŃie, inferenŃial) - concept sintactic
pentru definirea şi tratarea globală a unei
mulŃimi de „formule”: SD
• Se numeşte sistem deductiv în
FORM - mulŃimea (meta)formulelor - un cuplu
SD = <AA, R> unde
- A ⊆ FORM este o mulŃime de axiome iar
- R ⊆ FORM+ × C o mulŃime de reguli de
inferenŃă (de deducŃie, de demonstraŃie)
Sisteme deductive – 2
• În cele de mai sus, FORM+ denotă mulŃimea relaŃiilor de
oricâte argumente (cel puŃin unul) peste FORM, iar C
reprezintă o mulŃime de condiŃii de aplicabilitate. Fiecare
regulă de inferenŃă r ∈ R , are astfel aspectul
r = < < G1, G2, … , Gn, G>, c>, unde n ∈ N,
iar G1, G2, … , Gn ∈ FORM; c ∈ C
• G1, G2, … , Gn sunt ipotezele (premizele) regulii, G
reprezintă concluzia (consecinŃa) iar c desemnează
cazurile (modalităŃile) în care regula poate fi aplicată.
Vom scrie chiar r = < < {G1, G2, … , Gn}, G>, c>
deoarece ordinea ipotezelor nu este esenŃială
Sisteme deductive - 3
• O regulă r = < < {G1, G2, … , Gn}, G>, c> va fi
scrisă şi ca:
G 1, G 2,...., G n
,c
G
• În cazul în care n = 0 şi c lipseşte, r poate fi
identificată ca fiind o axiomă, după cum rezultă din
definiŃia care urmează. Câteodată, alături de c,
sunt explicitate separat şi restricŃiile sintactice
locale asupra (formei) (meta)formulelor
Sisteme deductive - 4
• DefiniŃie (demonstraŃie, deducŃie sintactică,
raŃionament). Fie un sistem deductiv SD = <A A, R> în
FORM. Se numeşte demonstraŃie (pentru Fm, pornind
cu A) în SD o listă de (meta)formule (D D) : F1, F2, … , Fm
astfel încât pentru fiecare i ∈ [m], fie Fi ∈ A, fie Fi este
obŃinut din Fj1, Fj2, … , Fjm folosind o regulă
r = < < {Fj1, Fj2, … , Fjm}, Fi>, c> ∈ R,
unde j1, j2, ... , jm < i
• Prin urmare, fiecare element al listei (D D) este fie o
axiomă, fie este concluzia unei reguli de inferenŃă ale
cărei ipoteze sunt elemente anterioare din listă
Sisteme deductive - 5
• Este un sistem deductiv standard, finit specificat,
care generează, după cum vom vedea din
anumite teoreme ulterioare, întreaga clasă (şi
numai pe aceasta) a formulelor valide din LP1
(sistemul a fost introdus pentru prima dată de
către A. Church în 1954)
• „Variantă” LP:
• Axiome (A ASD3). Pentru fiecare F, G, H ∈ LP,
avem:
1. F → (G → F)
2. (F → (G → H)) → ((F → G) → (F → H))
3. ( F → G) → (( F → G) → F)
Sisteme deductive - 6
• Să remarcăm faptul că LP trebuie considerată
ca fiind construită peste alfabetul care conŃine
drept conectori doar pe şi → (de exemplu,
A ∨ B va reprezenta A → B etc.)
• Reguli de inferenŃă (R RSD3). Există doar restricŃii
de natură sintactică (lipsind condiŃiile de
aplicabilitate). Prima şi ultima schemă de regulă
este deja amintită, şi anume modus ponens (pe
scurt, (MP)):
Sisteme deductive - 7
• Exemplu: să se arate că în SD3 se poate
„genera” teorema (seminar…) T = (A → A)
• Precizăm încă de pe acum că axiomele ar
trebui să fie formule valide (în sensul
noŃiunii de adevăr adoptate) iar regulile de
inferenŃă – corecte. De asemenea,
axiomele suplimentare (aici nu există) –
(măcar) satisfiabile
CURS 7
• Alte modalităŃi de reprezentare ale
funcŃiilor booleene: (O)BDD
(O)BDD - 1
• Ştim ce înseamnă funcŃii booleene şi
reprezentarea lor cu ajutorul tabelelor de adevăr
sau cu expresii (FNCP, de exemplu)
• O altă reprezentare a elementelor din FB se
bazează pe diagramele de decizie binare (BDD)
• Alegerea celei mai „convenabile” reprezentări
depinde de context
• Tot ceea ce putem menŃiona în acest moment
este că în anumite cazuri o BDD poate fi mai
„compactă” decât o tabelă de adevăr pentru o
aceeaşi funcŃie (din cauza anumitor redundanŃe
care pot fi exploatate)
(O)BDD - 2
• DefiniŃie (diagramă de decizie binară). Se numeşte diagramă de
decizie binară (BDD pe scurt) peste X = {x1, x2, … , xn} un graf
orientat, aciclic, etichetat (pe noduri şi pe arce) în care:
-există o unică rădăcină (nod în care nu intră nici un arc)
-frunzele (nodurile din care nu iese nici un arc) sunt etichetate cu 0
sau 1, iar celelalte noduri (inclusiv rădăcina) sunt etichetate cu
elemente din X (se permit etichetări multiple, adică noduri diferite
pot avea aceeaşi etichetă)
-fiecare nod care nu este frunză are exact doi succesori imediaŃi,
arcele care îi leagă fiind etichetate cu 0 respectiv 1
O subBDD (într-o BDD dată) este un subgraf generat de un nod
fixat împreună cu toŃi succesorii săi
(O)BDD - 3
• De obicei, într-un desen care reprezintă o
BDD, frunzele pot fi identificate (şi) prin
pătrate (nu cercuri, ca restul nodurilor),
orientarea arcelor este implicită („de sus în
jos”), arcele etichetate 0 sunt linii punctate
(„stânga”), iar cele etichetate 1 sunt linii
continue („dreapta”)
• În exemplele care urmează grafurile sunt
chiar arbori
(O)BDD - 4
• (I) D0, D1 (peste ∅), Dx (peste X = {x}):
G1,G2 ,....,Gn
,c
G
• În cazul în care n = 0 şi c lipseşte, r poate fi
identificată ca fiind o axiomă, după cum rezultă
din definiŃia care urmează. Câteodată, alături de
c, sunt explicitate separat şi restricŃiile sintactice
locale asupra (formei) (meta)formulelor
Sisteme deductive 6
• DefiniŃie (demonstraŃie, deducŃie sintactică,
raŃionament). Fie un sistem deductiv SD = <A A, R >
în FORM. Se numeşte demonstraŃie (pentru Fm,
pornind cu A) în SD o listă de metaformule (D D) :
F1, F2, … , Fm astfel încât pentru fiecare i ∈ [m], fie
Fi ∈ A, fie Fi este obŃinut din Fj1, Fj2, … , Fjm
folosind o regulă
r = < < {Fj1, Fj2, … , Fjm}, Fi>, c> ∈ R,
unde j1, j2, ... , jm < i
• Prin urmare, fiecare element al listei (D D) este fie o
axiomă, fie este concluzia unei reguli de inferenŃă
ale cărei ipoteze sunt elemente anterioare din listă
Sisteme deductive 7
B
• 10. (II) A →B
, c: se anulează ipoteza A
SD0 7
A ⇔B A ⇔B A → B,B → A
• 11. (EE) si
A →B B→ A
12. (IE) A ⇔B
(∃x)A,B
∃)
• 13. (E∃ B , c: se anulează ipoteza A din subarborele
având rădăcina acest B
∃)
• 14. (I∃ A[x/t]
(∃x)A
A ¬¬A
• 15. (DN) si
¬¬A A
SD0 8
• Analog cu precizările deja făcute pentru regulile de bază, şi
schemele de mai sus sunt valabile pentru fiecare A, B ∈ LP1,
fiecare x ∈ X şi fiecare t ∈ T. În 13., condiŃia sintactică este dată de
faptul că x nu trebuie să aibă apariŃii libere în ipotezele neanulate,
diferite de A şi prezente în subarborele având rădăcina exact acel B
pentru care se aplică regula respectivă. De asemenea, în 14.,
condiŃia sintactică este ca substituŃia [x/t] să fie permisă pentru A.
Mnemonicul E de pe a doua poziŃie (din 11. şi 12.) nu mai provine
din cuvântul „eliminare”, ci de la echivalenŃă; mnemonicul I, de pe a
doua poziŃie din 9., 10., provine de la implicaŃie, iar D, de la
disjuncŃie (D de pe prima poziŃie în 15. provine de la dublă).
Reamintim că în regulile având variante cea de a doua schemă va fi
referită prin acelaşi număr (nume), urmat de un apostrof. Extinderea
alfabetului şi folosirea regulilor derivate pot simplifica mult unele
demonstraŃii, care sunt, poate chiar mai mult decât la sistemul SD3,
suficient de sofisticate pentru un începător
• Să se arate că avem
( A ∧ C), ( B ∧ C), ( A ∧ B) ├ C, în SD0
SD1 1
• Pornim cu LP1, construit peste un alfabet care conŃine
toŃi conectorii şi cuantificatorii cunoscuŃi (desigur că unii
dintre ei pot fi adoptaŃi prin notaŃie, dar îi vom folosi fără
restricŃie): , ∧, →, ↔, ∀, ∃, etc.
• Se numeşte secvenŃă orice formulă care are forma:
A1 ∧ A2 ∧ … ∧ Am → B1 ∨ B2 ∨ …∨ Bn, unde n, m ∈ N,
A1, A2, … , Am, B1, B2, … , Bn ∈ LP1 (m, n pot fi şi egali
cu 0, dar nu simultan)
• Prin urmare, vom lucra practic cu clauze, dar notaŃia pe
care o vom adopta ne conduce la ideea că secvenŃele
sunt mai degrabă metaformule (alt tip de obiect, oricum
mai complex) decât formulele cu care am fost
familiarizaŃi în capitolele anterioare. Astfel, vom scrie o
secvenŃă sub forma:
A1, A2, … , Am ⇒ B1, B2, …… , Bn
SD1 2
• Mai mult, vom considera cei doi membri ai
relaŃiei de mai sus ca fiind mulŃimi (atunci când
ordinea elementelor va fi esenŃială, vom
specifica explicit acest lucru)
• Prin urmare, o secvenŃă va fi de forma U ⇒ V
(U şi V pot fi şi mulŃimea vidă, dar nu
simultan) şi vom putea scrie U’ = U, A în loc de
U’ = U U {A}, în ideea că, din anumite motive,
elementul A din U’ trebuie pus în evidenŃă
• Vom extinde notaŃia la submulŃimi oarecare,
adică vom putea scrie (de exemplu) V, W în loc
de V U W şi V, A, B în loc de V U {A} U {B}
SD1 3
• Astfel, punem FORM = {U | U este secvenŃă în
LP1}
• Sistemul SD1, atribuit în principal lui Gentzen
(1934) şi având o singură schemă de axiome
(este drept, foarte generală), se apropie (în
privinŃa modalităŃii de utilizare) mai mult de un
sistem de tip Hilbert
• Sistemele deductive bazate pe secvenŃe au şi o
răspândită utilizare în situaŃii nestandard (legate
numai de definirea constructivă a unor mulŃimi
„în mod axiomatic”, fără referire la „adevăr”)
• Mai concret, SD1 este un sistem predicativ finit
specificat şi boolean complet, având:
SD1 4
• Axiome. Pentru fiecare U, V ∈ FORM şi pentru fiecare A
∈ LP1:
U, A ⇒ V, A.
• Reguli de inferenŃă. Schemele de mai jos (care, din
nou, sunt numerotate dar au ataşat şi un nume
mnemonic care nu mai necesită explicaŃii - exceptând
poate (RT) care înseamnă regula tăieturii) sunt valabile
pentru fiecare
U, V ∈ FORM, fiecare A, B ∈ LP1, fiecare x ∈ X şi
fiecare t ∈ T
• În regula 5., substituŃia [x/t] trebuie să fie permisă pentru
A, iar în 6., x nu trebuie să apară liber în nici o formulă
din U sau V
SD1 5
• În momentul în care vor exista mai multe
premize într-o regulă, vom folosi pentru
separarea lor „;”
• AtenŃie la faptul că regulile 5. şi 7. au o infinitate
de premize (de exemplu, U, (A)[x/t] ⇒ V din
∀⇒) trebuie înŃeles ca reprezentând
(∀
U, (A)[x/t1] ⇒ V; U, (A)[x/t2] ⇒ V; ... , adică
se iau în considerare toate elementele t din T,
pentru care [x/t] este permisă pentru A; rolul lui
A în (RT) este similar, instanŃele unei scheme
referindu-se la celelalte elemente având statutul
de a fi „oarecare”
SD1 6
U,A,B ⇒ V
1. ( ⇒) U ⇒ V,A ∧ ⇒)
2. (∧
U,¬A ⇒ V U,A ∧ B ⇒ V
U,A ⇒ V
⇒)
3. (⇒ ⇒ ∧)
4. (⇒ U ⇒ V,A;U ⇒
. V,B
U ⇒ V,¬A U ⇒ V,A ∧ B
∀ ⇒)
5. (∀ U,(A)[x/t] ⇒ V ⇒ ∀)
6. (⇒ U ⇒ V,A
U,(∀x)A ⇒ V U ⇒ V,(∀x)A