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?