Logika Gyakorlati Jegyzet Hajgató Tamás 2014 Lektorálta: Dr. Németh L. Zoltán Első gyakorlat A Russel-paradoxon Mik lehetnek egy halmazban? Lehet benne bármilyen matematikailag jól definiált objektum. Úgymint számok, almák, mankó vagy akár halmazok is! Miért is ne tartalmazhatná egy halmaz önmagát, nem? Legyen hát H ={X X X} azaz azon X halmazok halmaza, melyek nem tartalmazzák önmagukat. Node ekkor igaz-e, hogy H H? Igaz-e, hogy H H? Ha ugye H H, akkor mivel H csak olyan halmazokat tartalmaz, melyek nem tartalmazzák önmagukat, H H következik. Ellentmondás, vagyis nem igaz, hogy H H. Azonban ha H H akkor mivel H az összes olyan halmazt tartalmazza amelyek nem elemei önmaguknak H H kell legyen. Ellentmondás, tehát H H sem lehet igaz. Dilemma. De hát ezek csak halmazok - mindegy, nem? Node mi van mondjuk akkor, ha tegyük fel, egy aszteroida tart a Föld felé nagy sebességgel és egy hasonló gondolatmenettel sikerül igazolni azt is, hogy nem csapódhat be be, meg azt is, hogy nem kerülheti el a bolygót. Szavazzuk meg? Á - nem jó. Ilyenkor le kell menni az alapokig és megnézni mit rontottunk el - feltettünk valamit, ami nem igaz. Ezért szükségünk lesz rá, hogy minél általánosabban megmondjuk, hogy mit jelent az, hogy valami teljesül valamire. Minél általánosabb és minél precízebb annál jobb - meg lehet vele vizsgálni, hogy mit rontottunk el ezen kívül még. Szintaxis Megmondjuk, hogy mi fog teljesülni valamire, azaz, hogy mit nevezünk formulának, amivel ki tudjuk majd fejezni állításainkat. Vezessünk be változókat: x,y,z, függvényszimbólumokat: f,g,h, relációszimbólumokat: P,Q,R, Minden függvény- és relációszimbólumhoz jár egy természetes szám, ez az adott szimbólum rangja. Megmondja, hogy hányváltozós relációként ill leképezésként fogjuk interpretálni az adott szimbólumot. A termek halmaza azon legszűkebb halmaz, amelyre teljesülnek a következőek: minden változó term; 1
ha f egy függvényszimbólum, rang(f)=n és t 1,,t n termek, akkor f(t 1,,t n ) term. A formulák halmaza azon legszűkebb halmaz, hogy teljesülnek a következőek: ha P egy relációszimbólum, rang(p)=k és t 1,,t k termek, akkor P(t 1,,t k ) formula; ha F,G formulák akkor ( F),(F G),(F G),(F G),(F G) formulák; ha x változó, F formula, akkor ( xf), ( xf) formulák;, formulák. A zárójeleket le fogom hagyni ott, ahol értelemszerű, hogy hol kellene kitenni. Példák: Legyenek,P,Q relációszimbólumok, melynek rangjai rendre 2,3,0 +, c függvényszimbólumok a 2, 0 rangokkal x,y,z változók. Ekkor a következők formulák: (x,x) (+(x,c),x) (+(+(x,y),c),c) Q z x x x x(p(x,y,+(c,c)) Q) a következők nem: x(x x) P(x,c,Q) Q(x, y) x +(x, y) P(x,c,c,+(x,y)) Formulákkal fejezünk ki állításokat. Azonban önmagukban még nem állítanak semmit. Ahhoz, hogy jelentést kapjanak interpretálni kell őket egy struktúrában. Szemantika Most megmondjuk, hogy mi az a valami, amiben a formulákat értelmezni lehet. 2
Struktúrának nevezünk egy rendezett hármast A=(A,I,ϕ), ahol A az alaphalmaz; A ; ϕ változókat visz A elemeibe; I függvény ill. relációszimbólumokat visz A feletti leképezésekbe illetve relációkba (tulajdonképpen azok karakterisztikus függvényeibe 1 ). Pontosabban, I(f) egy leképezés A n A, feltéve, hogy f rangja n. Továbbá I(P) egy leképezés A k {0, 1}, feltéve, hogy P rangja k. Azt mondjuk, hogy egy elem k-as az I(P) relációban áll, ha az I(P) melletti képük 1. Speciel, ha f rangja 0, akkor I(f) egy { } A leképezés, ezért egyszerűbb azonosítani I(f)( ) -al. Tehát az I(f) A egyszerűsítést fogjuk alkalmazni. Hasonlóan, ha Q rangja 0, I(Q) {0,1}. Példa: Legyenek,Q relációszimbólumok, melynek rangjai rendre 2,0 +, c függvényszimbólumok a 2, 0 rangokkal x,y,z változók. A=(A,I,ϕ) A={0,1,3} Továbbá legyen I( )(a,b)=1 akkor és csak akkor, ha a=0 és b=3. I(Q)=1, I(c)=1, I(+)(a,b)=1 akkor és csak akkor, ha a=0 és b=1, különben 3. Valamint legyen ϕ(x)=3, ϕ(y)=1 és ϕ(z)=0. Például A egy struktúra. A F definíciója, azaz: Amikor a bal oldalon egy struktúra áll Adott egy F formula és egy A struktúra. Azt írjuk, hogy A F vagy időnként A(F)=1, és azt mondjuk, hogy F teljesül A-ban, ha... na, ez egy hosszú definíció. A lényeg az, hogy minden t termnek lesz egy A(t) értéke A-ban, mely az alaphalmaz egy eleme. Továbbá egy F formula A(F)-el jelölt értéke vagy 1 lesz vagy 0. Ha A(F) = 1, akkor azt mondjuk, hogy F teljesül A-ban. Különben nem teljesül. Az előbbit így jelöljük: A F az utóbbit így: A F. A lényeg az, hogy fogom A interpretációfüggvényét (I-t) és szépen az F -beli reláció és függvényszimbólumok interpretáltjait veszem (az I melletti képüket). Az F -beli változóknak meg a ϕ melletti képeit. Persze, egész idő alatt tekintettel vagyok a logikai jelekre,,,,. A kvantorokat egy ügyes trükkel kezelem le: A( xf) = 1 akkor és csak akkor, ha minden a A-ra A [xa](f) = 1. Itt A [xa] szinte mindenben megegyezik A-val, a különbség annyi, hogy ϕ most x-et a-ba viszi. 1. lásd: diszrét matek 3
A( xf) = 1 akkor és csak akkor, ha létezik a A úgy, hogy A [xa](f) = 1. Itt A [xa] szinte mindenben megegyezik A-val, a különbség annyi, hogy ϕ most x-et a-ba viszi. Valamint definiáljuk úgy, hogy A( )=0 és A( )=1 legyen, minden A esetén. Példa: A( (z,x))=i( )(ϕ(z),ϕ(x))=i( )(0,3)=1, azaz A (z,x). A( (z,c))=i( )(ϕ(z),i(c))=i( )(0,1)=0, azaz A (z,c). A( (z,c))=1, azaz A (z,c). A(( (z,c)) (z,c))=1, azaz A ( (z,c)) (z,c). A( (+(z,x),x))=i( )(I(+)(ϕ(z),ϕ(x)),ϕ(x))=I( )(I(+)(0,1),1)=I( )(1,1)=0. A( x (z, x)) = 1 akkor és csak akkor, ha minden a A-ra A [xa]( (z, x)) = 1. Azonban ha mondjuk a=1, akkor A [xa]( (z,x))=i( )(ϕ(z),1)=0. Tehát A( x (z,x))=0. Továbbá mivel (x x) nem formula, A(x x) nincs definiálva, hogy mi. Hasonló okból kifolyólag, ha azt írom, hogy: A( x +(x, y)) ez is csak értelmetlen krix-krax, nincs megmondva, hogy mit jelentsen. Szóval, most, hogy itt tartunk, gondoljuk meg, hogy egész pontosan mi volt a gond a Russelparadoxonnal? A Russel-paradoxon impliciten azt feltételezi, hogy H ={X X X} egy halmaz. Azaz, hogy létezik egy H halmaz, melyre igaz, hogy minden X halmazra, X akkor és csak akkor eleme H-nak, ha X nem eleme X-nek. Vagyis, hogy azon A=(A,I,ϕ) struktúrában, melyben A az összes halmazt tartalmazza, és I( )(a,b)=1 akkor és csak akkor, ha az a halmaz eleme a b halmaznak a következő formula teljesül: h x( (x,h) (x,x)) De, ahogy az a következő órán ki fog derülni, ez utóbbi formula egy struktúrában sem teljesül, mert olyan, hogy nem teljesülhet 2. Ez azt jelenti, hogy akárhogy is értelmezzük az relációszimbólumot, akármi is legyen A alaphalmaza, ez a formula nem teljesül. Második gyakorlat Kielégíthetetlen VS tautológia VS egyik sem Láttuk, hogy formulákat hogyan építünk fel és hogyan értékeljük ki őket egy struktúrában. Érdemes megjegyezni, hogy kielégíthetőség szempontjából háromféle formulát különböztetünk meg; azaz egy formula lehet: kielégíthetetlen: egy struktúrában sem teljesül; 2. az ilyen formulákat kielégíthetetlen formuláknak nevezzük 4
tautológia: minden struktúrában teljesül; modellfüggő: van olyan struktúra amelyben teljesül, és van olyan struktúra amelyben nem. (Ez utóbbinak valójában nincsen külön neve. Csak én hívom így. ) Példák: Legyenek P, Q relációszimbólumok, melynek rangja rendre 1, 0 f, c függvényszimbólumok az 1, 0 rangokkal x,y,z változók. Tautológiák: Q Q, Q Q, ( xp(f(x))) ( x P(f(x))), Kielégíthetetlen formulák: Q Q, ( xp(f(x))) ( x P(f(x))), Egyik sem: P(f(x)), Q ( xp(f(x))), Q ( yp(f(x))) Quiz: Legyen F egy tautológia. Hogyan tudok ultragyorsan egy kielégíthetetlen formulát kapni belőle? Ha F tautológia, azaz minden struktúrában teljesül, akkor F kielégíthetetlen, azaz egy struktúrában sem teljesül. Persze, hiszen F pont azon struktúrákban nem teljesül, melyekben F teljesül. Tökmindegy, hogy F tautológia-e vagy sem, ha G kielégíthetetlen, akkor F G is kielégíthetetlen. Miért is? F G pont azon struktúrákban teljesül, melyekben F is és G is teljesül; azonban G egy struktúrában sem teljesül. Quiz: Legyen F kielégíthetetlen. Hogyan tudok ultragyorsan egy tautológiát kapni belőle? Ha F kielégíthetetlen, akkor F tautológia. Házi feladat meggondolni, hogy miért. Tökmindegy, hogy F kielégíthetetlen-e vagy sem, ha G tautológia, akkor F G is is tautológia. Miért is? Gondoljuk meg! 5
Feladat: Igazoljuk, hogy ( xp(x)) ( x P(x)) tautológia! Megoldás: Legyen A = (A, I, ϕ) egy tetszőleges struktúra. Ekkor A(( xp(x)) ( x P(x))) = 1 akkor és csak akkor, ha: vagy A( xp(x))=1 vagy A( x P(x))=1. Továbbá: A( xp(x))=1 akkor és csak akkor, ha: minden a A-ra A [xa](p(x))=1, azaz I(P)(a)=1. Valamint: A( x P(x))=1 akkor és csak akkor, ha: létezik a A, melyre: A [xa]( P(x))=1, azaz A [xa](p(x))=0, azaz I(P)(a)=0. Összességében: A(( xp(x)) ( x P(x))) = 1 akkor és csak akkor, ha: minden a A-ra I(P)(a)=1, vagy létezik a A, melyre I(P)(a)=0. Ezek közül az egyik biztosan teljesül, ezért A(( xp(x)) ( x P(x)))=1 Mivel A megválasztása tetszőleges volt, ez a gondolatmenet tetszőleges A esetén érvényes marad. Ezért ( xp(x)) ( x P(x)) tautológia. A megoldásnak vége. Feladat: Igazoljuk, hogy ( xp(x)) ( x P(x)) kielégíthetetlen! Megoldás: Mondjuk csinálhatjuk azt, hogy megmutatjuk, hogy (( x P(x)) ( x P(x))) tautológia. Feladat: Igazoljuk, hogy h x(e(x, h) E(x, x)) kielégíthetetlen! Megoldás: Tegyük fel, hogy kielégíthető. Ekkor létezik A = (A, I, ϕ) struktúra, melyben teljesül. Azaz A( h x(e(x,h) E(x,x)))=1. Azaz, létezik a A úgy, hogy minden b A-ra: A [ha,xb](e(x,h) E(x,x))=1 Ez utóbbi pedig azt jelenti, hogy létezik a A úgy, hogy minden b A-ra: I(E)(b,a)=1 akkor és csak akkor, ha 6
I(E)(b,b)=0 Mivel minden b-re teljesülnek a fent leírtak, abban az esetben is teljesülnek, amikor éppen b = a. De ebből pedig az következik, hogy: létezik a A, melyre I(E)(a,a)=1 akkor és csak akkor, ha I(E)(a,a)=0 Ez viszont ellentmondás, mert 1 0. Mivel ellentmondásra jutottunk, a kezdeti feltevésünk hamis. A kezdeti feltevésünk az volt, hogy a formula kielégíthető. Vagyis a formula kielégíthetetlen. Gondoljuk meg, hogy fenti feladat megoldását arra is lehet használni, hogy megmutassuk, hogy h x( (x,h) (x,x)) kielégíthetetlen. Miért? Ugye, mert csak ki kell cserélgeni a megoldásban az E relációszimbólumat -okra. Feladat: Igazoljuk, hogy x h(e(x, h) E(x, x)) nem kielégíthetetlen! Igazoljuk, hogy nem is tautológia! Megoldás: Vegyük észre, hogy minden A =(A, I, ϕ) struktúrában I(E) egy kétváltozós reláció, (valamint, hogy a formulában nem szerepel szabad változó). Így azon struktúrák, melyekben x h(e(x,h) E(x,x)) értelmezhető, adottak a struktúra alaphalmazával (ez A) és E interpretáltjával (ez I(E)). Egy halmaz és egy kétváltozós reláció... ez egy irányított gráf! (Ahol is I(E)(a,b)=1 létezik az a csúcsból a b csúcsba menő él. ) Adjunk meg egy gráfot, melyben x h (E(x, h) E(x, x)) teljesül! Azaz egy olyat, amelyre igaz, hogy minden x csúcshoz létezik egy olyan h csúcs, melyre igaz, hogy akkor és csak akkor van él x-ből h-ba, ha nincs él x-ból x-be! Bármely n-csúcsú irányított kör megfelel, ahol n 2. Most adjunk meg egy olyan gráfot, amelyben x h(e(x,h) E(x,x)) nem teljesül! Bármely n-csúcsú teljes gráf 3 megfelel, ahol n 1. Ez a két példa igazolja, hogy a x h (E(x, h) E(x, x)) formula se nem kielégíthetetlen, se nem tautológia. A megoldásnak vége. Csak a kvantifikáció sorrendjét cseréltem fel, és máris nem kielégíthetetlen a formula! A kvantifikáció sorrendje tehát SZÁMÍT. Ez a példa jól szemlélteti, hogy logikában egyáltalán nem megengedhető a precizitás hiánya! 4 Harmadik gyakorlat A logikai következmény fogalma: Σ F azaz: Amikor a bal oldalon egy formulahalmaz áll Definíció: Legyen Σ formulák egy halmaza és F egy formula. Σ-nak akkor és csak akkor logikai következménye F (jelben: Σ F ), ha minden A struktúrára: 3. egy teljes gráfban a hurokélek is be vannak húzva... 4. ellentétben egyes állami munkákkal, ahol plusz-minusz ötmilliárdos hibák teljesen elfogadhatóak 7
ha (A G, minden G Σ-ra), akkor A F. Példák: Legyenek P, Q relációszimbólumok, melynek rangja rendre 0, 0. Legyen Σ={P}, F =Q Q. Ekkor Σ F. Miért is? Ugye Σ F, ha igaz, hogy: minden A struktúrára, ha A P akkor A Q Q. A múlt órán láttuk, hogy Q Q tautológia, azaz minden struktúrában teljesül. Tehát egész bizonyosan teljesül azon struktúrákban is, melyekben P teljesül! Legyen Σ={Q Q}, F =P. Ekkor Σ F. Miért is? Ugye Σ F, ha igaz, hogy: minden A struktúrára, ha A Q Q akkor A P. A múlt órán azt is láttuk, hogy Q Q kielégíthetetlen, azaz egy struktúrában sem teljesül. Tehát egész bizonyosan igaz, hogy P teljesül azon struktúrákban, melyekben Q Q teljesül! Legyen Σ={Q}, F =P. Ekkor Σ F. Várjunk csak, Σ F? Tényleg? Ugye Σ F, ha igaz, hogy: minden A struktúrára, ha A Q akkor A P. Azonban ha mondjuk A=(A,I,ϕ), ahol I(Q)=1 és I(P)=0, akkor A Q és A P. Ezért nem igaz, hogy minden A struktúrára, ha A Q akkor A P. Vagyis Σ F. Példák vége. Figyeljük meg, hogy már most ejha-milyen könnyű összekeverni a különböző jelöléseket! Ha azt írjuk, hogy A F, ahol A egy struktúra, az teljesen mást jelent, mintha azt írnánk, hogy Σ F. Valóban, hiszen A F azt jelenti, hogy az A struktúrában teljesül az F formula, míg Σ F azt jelenti, hogy Σ-nak logikai következménye az F formula. Vessük össze a definícióikat! Az egyik esetben bal oldalon egy hármas áll (azaz egy struktúra), míg a másik esetben egy formulahalmaz! Ezt ne keverjük már össze a zh-ban! Továbbá vegyük észre, hogy a fenti definícióban azt írtam, hogy Σ formulák egy halmaza. Mi van akkor, ha Σ=? Ugye, ha F, akkor minden A struktúrára: ha (A G, minden G -ra), akkor A F. Hohó! Nincs olyan G, amely eleme lenne -nek! Tehát A akármilyen is legyen, az igaz, hogy A G, minden G -ra. Vagyis ha F, akkor minden A struktúrára: A F. Másszóval, F tautológia. Szokás lehagyni az üreshalmazt, azaz így is jelöljük azt az állítást, hogy F tautológia. F 8
Feladat: Mutassuk meg, hogy x yh(x,y) x yh(x,f(y)) (1) Megoldás: Tfh. (1) nem teljesül. Ekkor a logikai következmény definíciója miatt létezik olyan A =(A, I, ϕ) struktúra, melyben (1) bal oldala teljesül, de a jobb oldal nem. Azaz A( x yh(x, y)) = 1 (2) és A( x yh(x,f(y)))=0 (3) (2) azt jelenti, hogy minden a A-ra és minden b A-re (4) azt jelenti, hogy A [xa,yb](h(x,y))=1 (4) I(H)(a,b)=1 (5) (3) azt jelenti, hogy minden a A-ra, létezik b A, melyre A [xa,yb ](H(x,f(y)))=0 (6) Itt azért minden a A ill. létezik b A szerepel, mert (3) jobb oldalán nulla szerepel, a kvantorok megfordulnak. (6) azt jelenti, hogy I(H)(a,I(f)(b ))=0 (7) Most kihozzuk az ellentmondást (2)-ből és (3)-ból: mivel (4)-nek teljesülnie kell minden a-ra és b-re, abban az esetben is teljesülnie kell, ha a=a és b=i(f)(b ). Viszont ebből és (5)-ből, valamint (7)-ből az következik, hogy 0 = I(H)(a, I(f)(b )) = 1. Azonban 0 1, ellentmondás. Tehát a feltevésünk, miszerint (1) nem teljesül, hamis. Tehát (1) teljesül. A feladat kész. Feladat: Igazoljuk, hogy tetszőleges F, G formulákra: a) ha F G, akkor F G. b) ha F G, akkor F G. Megoldás: Legyenek F, G tetszőleges formulák. F G : azt jelenti, hogy minden A struktúrára A(F G)=1, azaz A(F)=0 vagy A(F)=A(G)=1. (8) 9
F G : azt jelenti, hogy minden A struktúrára: ha A(F)=1 akkor A(G)=1. (9) a) Tegyük fel, hogy F G és legyen A egy tetszőleges struktúra. Ekkor (8) miatt két eset van: vagy A(F)=0 vagy A(F)=A(G)=1. Ha A(F)=0 akkor (9) teljesül (hiszen (9) premisszája hamis). Valamint, ha A(F)=A(G)=1, (9) akkor is teljesül (hiszen (9) premisszája és a konklúziója is igaz). Tehát (9) igaz. Mivel A megválasztása tetszőleges volt, ezért F G. b) Tegyük fel, hogy F G és legyen A egy tetszőleges struktúra. Ekkor két eset van: A(F)=1 vagy A(F)=0. Ha A(F)=0, akkor (8) igaz (hiszen a diszjunkció első tagja igaz). Ha A(F) = 1, akkor (9) miatt A(G) = 1. Ekkor viszont (8) igaz (hiszen a diszjunkció második tagja igaz). Tehát (8) igaz. Mivel A megválasztása tetszőleges volt, ezért F G. A feladat kész. Negyedik gyakorlat Ítéletkalkulus Eddig elsőrendű formulákat vizsgáltunk, de most már pont itt az ideje, hogy egyszerűsítsünk. Mostantól kezdve nem lesznek kvantoraink, se változóink, se függvényszimbólumaink. Definíció: Azon formulákat, melyekben nem szerepel változó, kvantor ill. függvényszimbólum ítéletkalkulusbeli formuláknak hívjuk. Példa: Legyenek P, Q nulla rangú relációszimbólumok. Ekkor Q Q, P Q, P (P Q) ítéletkalkulusbeli formulák. Ami azt illeti, nem nulla rangú relációszimbólumok nem formulhatnak elő ítéletkalkulusbeli formulákban (ez következik a definícióból) ezért ki sem fogjuk írkálni, hogy minek mi a rangja. Hogy még jobban össze lehessen keverni a dolgokat, ítéletkalkulusbeli relációszimbólumkat ítéletváltozóknak is hívjuk. Sőt, inkább annak. Ahhoz, hogy megadjunk egy struktúrát, melyben egy ítéletkalulusbeli formulát ki lehet értékelni elég, ha megadjuk, hogy a formulában szereplő ítéletváltozóknak mi az értéke a struktúrában (ez 1 vagy 0). 10
Innen jön a csodás ötlet, hogy mivel egy ítéletkalkulusbeli formulában véges sok ítéletváltozó fordulhat elő, soroljuk fel azon struktúrákat, melyekben ki lehet értékelni. Azaz pl. P Q egy ítéletkalkulusbeli formula, ennek igazságtáblázatának megadásával effektíve felsoroljuk a struktúrákat, melyekben kiértékelhetjük: P Q P Q 0 0 1 0 1 1 1 0 0 1 1 1 Megjegyzés: Nagy lehet a kísértés, hogy struktúrák vizsgálata helyett táblázatokat írkáljunk fel minden formula esetén, ne csak ítéletkalkulusbeli formuláknál. Viszont egy ilyen táblázatot nehézségekbe ütközne felírni mondjuk a x E(x, f(y)) formulára. Ugye, ha vannak változóink, függvényszimbólumaink, kvantoraink, ezektől is függhet az, hogy egy formula teljesül-e vagy sem. Tehát az igazságtáblázat fogalma nem értelmezett az elsőrendű xe(x, f(y)) formulára. Mert most hogy írod fel? Felsorolod az összes létező struktúrát? Mi kerül az egyes oszlopokba? Már egyetlen struktúra alaphalmazának is végtelen sok eleme lehet... Ami azt illeti, ez a fenti táblázat azért elég sok infót tartalmaz. Segítségével meg lehet adni P Q-val ekvivalens, speciális alakban levő formulákat (hogy ez mire jó az majd kiderül). a) Például látjuk, hogy azon struktúrákban, melyekben P értéke is és Q értéke is 0, P Q értéke 1. De én tudok egy formulát ami csak akkor teljesül, ha P értéke is és Q értéke is 0; ez pedig: P Q. b) Aztán, ha P értéke 0 és Q értéke 1, akkor P Q értéke 1. De én tudok egy formulát ami csak akkor teljesül, ha P értéke 0, és Q értéke 1; ez pedig: P Q. c) Ha P értéke 1 és Q értéke 0, akkor P Q értéke 0. Egy olyan formula, amely csak akkor nem teljesül, ha P értéke 1 és Q értéke 0: ( P) Q. d) Aztán ha P értéke 1 és Q értéke 1, akkor P Q értéke 1. Egy olyan formula, amely csak akkor teljesül, ha P értéke 1 és Q értéke 1: P Q. Most pedig vegyük a felírt formulákat és az 1-es sorokban levőket diszjukciózzuk össze, a 0-ás sorokban levőket konjukciózzuk össze. Két formulát kapunk: legyenek ezek D és K. Ekkor mind D, mind K P Q-val ekvivalens formula kell legyen; azaz az igazságtáblázatuk meg kell egyezzen. De D miért is ekvivalens P Q-val? Hogy is kaptuk? A felírtak közül összediszjukcióztam az összes olyan formulát, mely csak akkor teljesül, ha P, Q értékei olyanok, hogy P Q teljesül. Lényegében felsoroltam az összes olyan esetet, amikor P Q teljesül és összevagyoltam őket. A kapott formula: D=( P Q) ( P Q) (P Q). A kapott formula csak akkor teljesül, ha valamelyik diszjunkciós tag teljesül. Ergo, ha P és Q értékei olyanok, hogy P Q teljesül. Ezzel az eljárással egy P Q-val ekvivalens formulát kaptam, ez lesz P Q teljes diszjuktív normálformája. No és mi a helyzet K-val? Miért ekvivalens P Q-val? Hogy is kaptuk? 11
A felírtak közül összekonjukcióztuk az összes olyan formulát, ami csak akkor nem teljesül, ha P és Q értékei olyanok, hogy P Q nem teljesül. Lényegében felsoroltam az összes olyan esetet amikor P Q nem teljesül és összeéseltem őket. A kapott formula: K=( P) Q. A kapott formula csak akkor nem teljesül, ha valamelyik konjukciós tag nem teljesül (most speciel 1 darab van, de ettől ez még igaz). Ergo, ha P és Q értékei olyanok, hogy P Q nem teljesül. Tehát egy P Q-val ekvivalens formulát kaptam, ez lesz P Q teljes konjuktív normálformája. 5 Feladat: Ha F kielégíthetetlen, hogy fog kinézni az igazságtáblázata? Hogy fog kinézni, ha F tautológia? Tehát egy kielégíthetetlen formula teljes diszjunktív normálformája hogy néz ki? Egy tautológia teljes konjuktív normálformája micsoda? (Tipp: az üres diszjunkció az ez, az üres konjukció meg ez, az igazságtáblázatok pedig nagyon elegánsan néznek ki) Boole-függvények Definíció: Minden f:{0,1} n {0,1} leképezést n-változós Boole-függvénynek hívunk, ahol n 0. Példa: :{0,1} {0,1}, (0)=1 és (1)=0. :{0,1} 2 {0,1}, (0,0)=0, (0,1)=1, (1,0)=1, (1,1)=1. :{0,1} 2 {0,1}, (0,0)=0, (0,1)=0, (1,0)=0, (1,1)=1. Ami azt illeti, Boole-függvényeket táblázatos formában is meg lehet adni, pl.: :{0,1} 2 {0,1} -et úgy adjuk meg, hogy felsoroljuk {0,1} 2 elemeit, aztán melléírjuk, hogy az adott (x,y) elemet hova viszi a függvény. Így: x y (x,y) 0 0 1 0 1 1 1 0 0 1 1 1 Nahát! Ez a táblázat ugyanaz, mint a P Q igazságtáblázata (fentebb)! Innen jön a remek, csodás ötlet, hogy Boole-függvényekhez formulákat készítsünk ill. fordítva; de úgy, hogy a függvény megadása (a táblázat) egybeessen a formula igazságtáblázatával. Továbbá! Minden Boole-függvényhez megadható egy formula, amelynek igazságtáblázata éppen egybeesik a Boole-függvény táblázatával. Ez a formula mondjuk az adott táblához felírt teljes konjuktív/diszjunktív normálformában levő formula lesz. Teljes diszjunktív normálformában levő formulákban csak a,, logikai szimbólumok szerepelhetnek. 5. teljes konjuktív, meg teljes diszjunktív normálforma... Bolzano bambínója bepisilna pelenkájába, ha ezt látná! Lehet, hogy ez a sok vicik-vacak most fölösleges hülyeségnek tűnik, de később kiderül, hogy van értelme! 12
Vagyis a,, Boole-függvényekkel minden Boole-függvény kifejezhető! Ami azt illeti a és az közül az egyiket biztosan ki tudjuk küszöbölni a De-Morgan azonosságok használatával: (A B) ( A) ( B) (a három vonal középen itt, azaz az ítéletkalkulusbeli formulákra vonatkozóan, azt jelenti, hogy a szélső formuláknak ugyanaz az igazságtáblázata) Tehát, minden Boole-függvény kifejezhető kell legyen a, Boole-függvényekkel! Továbbá, minden Boole-függvény kifejezhető kell legyen a, Boole-függvényekkel! 6 Ebből következik az is, hogy minden áramkört fel lehet építeni a, kapukkal! Definíció: Boole-függvények egy halmaza teljes rendszer, ha minden Boole-függvény kifejezhető a halmazbeli Boole-függvényekkel. Példa: az előbb láttuk, hogy {, } és {, } teljes rendszerek. Feladat: Írjuk fel a kizáró vagy 7 igazságtábláját, és mint kétváltozós Boole-függvényt fejezzük ki a,, Boole-függvényekkel! Megoldás: x y (x,y) 0 0 0 0 1 1 1 0 1 1 1 0 Vagyis (x,y)= ( ( x,y), (x, y)). Megoldás vége. Feladat: Mutassuk meg, hogy a (x, y) = def. ( (x), (y)) Boole-függvény önmagában teljes rendszert alkot! Megoldás: Ki kell fejezni -al mondjuk a, Boole-függvényeket. (Miért nem fordítva?) Ezt így lehet megtenni (x,x)= ( (x), (x))= (x), valamint ( (x,x), (y,y))= ( (x), (y))= (x,y). Megoldás vége. Feladat: Mennyi különböző n-változós Boole-függvény van? Megoldás: Hogyan adunk meg egy n-változós f Boole-függvényt? Mondjuk úgy, hogy felsoroljuk a kiindulási halmaz (ez {0, 1} n ) elemeit és mindhez megadjuk, hogy ezt az elemet f 0- ába vagy 1-be viszi-e! Mivel {0, 1} n -nek 2 n eleme van és minden elemen egy Boole-függvény 2 értéket vehet fel ez összesen 2 2n darab, különböző Boole-függvény. Megoldás vége. 6. YOHOHOHÓ! Máris értelme van teljes diszjunktív meg teljes konjuktív normálformákkal foglalkozni! 7. XOR 13
Feladat: Mennyi különböző n-változós f Boole-függvény van, amelyre f(0, 0,, 0) = 1? Megoldás: Az előző feladat megoldása alapján csak a következőt kell meggondolni: ugye mivel {0,1} n -nek 2 n eleme van és minden elemen egy Boole-függvény 2 értéket vehet fel, de egy értéket fixáltunk, hogy ez 1 lesz ez összesen 2 2n 1 darab, különböző Boole-függvény. Megoldás vége. Feladat: Mennyi különböző n-változós f Boole-függvény van, amelyre f(0, 0,, 0) = 0? Megoldás: Ha megértettük, akkor az előző feladat megoldása jó ide is. Feladat: Igazoljuk, hogy Boole-függvények következő {, } halmaza is teljes rendszer! Megoldás: Azaz ki kell fejezni a, Boole-függvények segítségével a, Boole-függvényeket. Mivel (x 1, x 2 ) = ( ( (x 1 ), (x 2 ))) és {, } teljes rendszer, ezért {, } is teljes rendszer. Megoldás vége. Definíció: Az f n-változós Boole-függvény monoton növekvő, ha igaz minden x 1,, x n, y 1,, y n {0,1}-re, hogy: ha x 1 y 1,,x n y n akkor f(x 1,,x n ) f(y 1,,y n ). Példa: monoton növekvő Boole-függvény, mert ha x 1 y 1 és x 2 y 2 akkor (x 1,x 2 ) (y 1,y 2 ). nem monoton növekvő Boole-függvény, mert 0 1 de (0) (1). Feladat: Igazoljuk, hogy Boole-függvények következő { } halmaza nem teljes rendszer! Megoldás: Nos, monoton növekvő Boole-függvény és monoton növekvő Boole-függvények kompozíciója monoton növekvő Boole-függvény. De például nem monoton növekvő Boole-függvény, így nem lehet kifejezni az Boole-függvény segítségével. Feladat: Mennyi, különböző n-változós monoton növekvő f Boole-függvény van, amelyre f(0, 0,,0)=1? Megoldás: Egy darab. De, hogy miért, az házi feladat. 8 Ötödik gyakorlat Rezolúció az ítéletkalkulusban 10 8. heheheh! 14
Definíció: Ítéletváltozó vagy annak negáltja: literál. Pl.: P, P literálok, de P P nem literál. Definíció: Literálok diszjunkciója: klóz. Pl.: P, P Q klózok, de Q P nem klóz. Speciálisan: az üres klóz jele:. (Ezt az üres halmaz reprezentálja.) Literálok egy halmazát is klóznak hívjuk, ha az diszjunkciót reprezentál. Definíció: Egy formula konjuktív normálformában, vagy röviden KNF-ben van, ha klózok konjukciója. 11 Pl.: P (P Q) KNF-ben van, de P (P Q) nem. Tétel: Minden formulához megadható egy vele ekvivalens, KNF-ben levő formula. Biz.: Egy F formula igazságtáblázata alapján felírt teljes konjuktív normálforma KNF-ben van és ekvivalens a F -el. Rezolúció Input: egy KNF-ben levő F formula Output: F kielégíthetetlen / nem az Az algoritmus végrehajtása során klózok egy véges sorozatát próbáljuk generálni úgy, hogy a sorozat utolsó eleme az üres klóz ( ) legyen és a sorozat minden eleme vagy F egy klóza, vagy a következő szabály alkalmazásával kaptuk a sorozatban megelőző elemekből: 12 C {l},c { l} C C Itt l egy darab(!) ítéletváltozó, C,C pedig klózok. (Rez) Ez a szabály mit is jelent intuitívan? Miért is helyes következtetési szabály? C {l} egy klóz, tehát a benne levő literálok diszjunkcióját reprezentálja. Továbbá, ha egy struktúrában teljesül egy C {l}-beli és egy C { l}-beli literál is, akkor - mivel l és l egyszerre nem teljesülhet - egy C C -beli literálnak is teljesülnie kell. Na lássuk, hogy megy ez: Példa: Igazoljuk rezolúcióval, hogy F =(P Q) ( P) (Q) kielégíthetetlen. Először is megadunk egy vele ekvivalens KNF-ben levő formulát: 10. avagy az a fejezet, amelyben megtudod, hogy a rezolúció nem egy középkori kínzóeszköz neve 11. nem mindegy, hogy azt írom: teljes konjuktív normálforma vagy azt: konjuktív normálforma 12. ezt a szabályt el ne merjed felejteni! 15
F ((P Q) (Q P)) ( P) (Q) ( P Q) ( Q P) ( P) (Q) na, az ekvivalenciában a legjobboldalibb formula már KNF-ben van. Most vegyük a klózainak a halmazát: Σ={{Q, P},{ Q,P},{ P},{Q}} és generáljuk a következő sorozatot: 1.{Q, P} Σ 2.{ Q,P} Σ 3.{Q} Σ 4.{ P} Σ 5.{P}, Rez(2,3) 6., Rez(4, 5). Ahán. De az, hogy kihoztuk az üres klózt az miért jelenti azt, hogy F kielégíthetetlen? Ugye F akkor és csak akkor kielégíthetetlen, ha ( P Q) ( Q P) ( P) (Q) kielégíthetetlen. (Hiszen ekvivalensek, azaz egy struktúrában csak akkor teljesül az egyik, ha a másik!) Továbbá, ha egy struktúrában teljesülnek a rezolúciós szabály premisszái, akkor a konklúzió is teljesül. Vagyis a fenti 1.2.3.4.5.6. levezetéssel azt mutattuk meg, hogy: ha egy struktúrában teljesül ( P Q) ( Q P) ( P) (Q) akkor az üres klóz is teljesül. De az üres klóz az üres diszjunkciót reprezentálja az pedig ez: és egy struktúrában sem teljesül. Tehát nincs olyan struktúra, melyben ( P Q) ( Q P) ( P) (Q) teljesül, ergo, kielégíthetetlen, ergo F kielégíthetetlen. Csábító lehet, hogy a fenti levezetés helyett inkább ezt produkáljuk a zh-ban: 1.{Q, P} Σ 2.{ Q,P} Σ 3., Rez(1, 2). Á! Nem jó! 13 A szabályban l egyetlen egy darab literál, nem kettő! Így nem 3.ban nem Rez-et alkalmaztuk, hanem valami mást. De ez a más nem jó következtetési szabály, mert ebben az esetben ki tudtuk hozni az üres klózt {{Q, P},{P, Q}}-ból. Azaz ha a feladat az lett volna, hogy igazoljuk, hogy P Q kielégíthetetlen ez nekünk sikerült volna! Ez GOND, mert P Q nem kielégíthetetlen! Bizony mondom Néked, elég egy olyan struktúrát venni, melyben P is és Q is teljesül és kész pasz, ebben P Q teljesül! Héj, várjunk csak! Ez a KNF-re hozás hogy is megy? Két lehetőség van rá: igazságtáblázattal, lásd a múlt órai anyagot: ez egy NOOB módszer, mert ha felírtuk egy formula igazságtáblázatát, akkor abból már látszik, hogy kielégíthetetlen! A formula alatti oszlop csupa nulla lesz! Az se megvetendő érv ellene, hogy ha a formulában n db ítéletváltozó fordul elő, akkor 2 n db sora van egy ilyen táblázatnak! Tehát ez exponenciális 14 futási idő! 13. ilyet csinálni nulla, azaz NULLA pontot ér és ANTI-PONTOKAT érne, ha tudnék olyat adni... 16
ekvivalens átalakításokkal: na ez már jó lesz. Pontosabban: 1. a nyilakat kilőjük : (A B) (A B) (B A), (A B) ( A) B 2. a negációkat az ítéletváltozók elé hozzuk, ezeket alkalmazzuk: (A B) ( A) ( B), (A B) ( A) ( B), 3. majd ahol nem diszjunkció van belül / konjukció kívül, ott ezt alkalmazzuk: (A B) C (A C) (B C) Példa: Igazoljuk rezolúcióval, hogy ((P Q) ( P) (Q)) tautológia! Nos, tudjuk, hogy ((P Q) ( P) (Q)) akkor és csak akkor tautológia, ha a negáltja kielégíthetetlen, ezzel pedig ekvivalens az, hogy ((P Q) ( P) (Q)) kielégíthetetlen. De ez pont az előző példában leírt feladat. Héj, várjunk csak! Mi a helyzet akkor, ha egy kielégíthető formulán futtatjuk le a rezolúciót? Hogyan állapítjuk meg, hogy az input nem kielégíthetetlen? Hát, ha az input formulában n darab különböző ítéletváltozó fordul elő akkor legfeljebb 2n darab literál fordulhat elő, igaz? Egy klóz pedig literálok egy halmaza, továbbá egy 2n elemű halmaznak 2 2n darab különböző részhalmaza van, tehát az input formulából legfeljebb ennyi darab különböző klózt lehet előállítani rezolúcióval. Következésképpen rezolúció során kell legyen olyan lépés, amikor akárhogyan is rezolválunk akármit akármivel már nem áll elő olyan klóz, ami eddig nem szerepelt a levezetésben. Ekkor megállhatunk. Ha az üres klózt sikerült kihozni - a formula kielégíthetetlen - egyébként pedig kielégíthető. Feladat: Igazoljuk rezolúcióval, hogy P Q kielégíthető! Megoldás: P Q nem KNF. KNF-re hozás: Most vegyük a KNF klózainak a halmazát: 1.{ Q,P} Σ 2.{Q, P} Σ 3.{ Q, Q}, Rez(1,2) 4.{ P,P}, Rez(1,2) P Q ( P Q) ( Q P) Σ={{Q, P},{ Q,P}} 5.nem lehet újabb klózt előállítani, tehát az input nem kielégíthetetlen! Azaz kielégíthető! A feladat kész. És most következik a nagy kérdés: 14. az exponenciálisok, mint tudod, énekkar a matematika tanszéken. De most ne kalandozzunk el. 17
-> Hogy használhatjuk fel a rezolúciót arra, hogy logikai következtetést hajtson végre programunk? Hát a következő tétel alkalmazásával! Tétel: Legyen Σ formulák egy véges halmaza és F egy formula. Σ F akkor és csak akkor, ha az formula kielégíthetetlen. ( F) ( G Σ G) Példa: Igazoljuk, hogy {(P Q)} (( P) (Q)) Megoldás: Nos, tudjuk, hogy Σ F akkor és csak akkor, ha Σ { F} kielégíthetetlen. Azaz {(P Q)} (( P) (Q)) akkor és csak akkor, ha {(P Q),( P) (Q)} kielégíthetetlen. Ez a formulahalmaz pedig akkor és csak akkor kielégíthetetlen, ha a ((P Q) ( P) (Q)) formula kielégíthetetlen. Ez meg megintcsak a legelső példában szereplő feladat. Hatodik gyakorlat Hilbert rendszer Ebben a gyakorlati anyagban csak olyan formulákat tekintünk, amelyekben kizárólag a, szimbólumok és ítéletváltozók fordulhatnak elő. Tehát semmi P,P Q,P Q. Viszont ez nem jelent lényeges megszorítást, mivel Boole függvényeknek a következő {, } halmaza teljes rendszert alkot. A Hilbert-rendszer axiómák egy halmazából és egy következtetési szabályból áll. AX1. (F (G H)) ((F G) (F H)) AX2. F (G F) AX3. ((F ) ) F F,F G G (MP) Definíció: Legyen Σ formulák egy halmaza és Z egy formula. Azt mondjuk, hogy Σ-ból a Hilbert-rendszer segítségével levezethető Z, és ezt írjuk: Σ H Z ha létezik formulák egy véges hosszú sorozata úgy, hogy a sorozat utolsó tagja Z, és a sorozat minden egyes eleme: vagy egy axiómából kapható úgy, hogy F,G,H helyébe valamilyen formulát behelyettesítünk; vagy Σ eleme; vagy az (MP) szabály alkalmazásával adódik a sorozatban megelőző elemekből. Példa: {P (Q Q),(P Q) P} H (P Q) Q 1. (P (Q Q)) ((P Q) (P Q)), AX1. 2. P (Q Q) Σ, 3. (P Q) (P Q), MP(1,2), 18
4. ((P Q) (P Q)) (((P Q) P) ((P Q) Q)), AX1. 5. ((P Q) P) ((P Q) Q), MP(3,4), 6. (P Q) P Σ, 7. (P Q) Q, MP(5,6). Itt az 1. lépést úgy kaptuk, hogy AX1-ben F helyére P -t helyettesítettünk, G helyére Q-t és H helyére Q-t. A 4. lépést hasonlóan: F/P Q,G/P,H/Q. Fontos megjegyezni, hogy ne zárójelezzünk össze-vissza, tehát pl. az MP(2,3) nem érvényes lépés. Továbbá, hogy egy axiómát többször is felhasználhatunk egy Hilbert-levezetésben, sőt, még úgy is, hogy az egyes esetekben F, G, H helyébe más-más formulákat helyettesítünk. Még ennél is fontosabb (!) megjegyezni, hogy az MP szabály segítségével egy F formulából és egy (F G) formulából csak a G formulát lehet megkapni! NEM VISSZAFELÉ! 15 Tehát, ha előtted van egy G formula és egy (F G) formula, ezekből nem kaphatod meg az F-et! Vagy ez szerinted következik? Tehát, ha F G és G is teljesül egy struktúrában, akkor F is teljesül? Mert szerintem nem feltétlenül! Hogy is néz ki az implikáció igazságtáblázata? Ha az implikáció igaz, és a konklúzió igaz, akkor lehet a premissza hamis? Na ugye, hogy lehet! Van egy érdekes tételünk: Tétel: Legyen Σ formulák egy halmaza és Z egy formula. Σ Z akkor és csak akkor, ha Σ H Z. Példa: Mutassuk meg, hogy: {(P P) (Q Q),((P P) Q) (P P)} ((P P) Q) Q A fenti tétel miatt elég megmutatni, hogy {(P P) (Q Q),((P P) Q) (P P)} H ((P P) Q) Q. Most jön a megfigyelés, hogy ez a példa úgy kapható a fentiből, hogy P megfelelő előfordulásait lecseréljük (P P)-re. A levezetésben alkalmazott lépések lényegében ugyanazok maradnak, ott is csupán P -ket kell (P P)-kre cserélgetni. Vagyis, ha P és Q helyett F, G formulákat írtam volna, és az lett volna a feladat, hogy Mutassuk meg, hogy tetszőleges F,G formulákra: {F (G G),(F G) F} H (F G) G akkor ezt is meg tudtam volna tenni a Hilbert-rendszer segítségével! Vagyis a Hilbert-rendszer arra is jó, hogy tetszőleges formulákról mutassunk meg, hogy {F (G G),(F G) F} H (F G) G No lám, egy teljesen formális bizonyítást lehet rá adni, hogy tetszőleges F, G formulákra igaz, hogy: {F (G G),(F G) F} (F G) G Vessük össze ezt a módszert a rezolúcióval! Ott nem volt szó tetszőleges F, G formulákról, nem igaz? Rezolúció esetén fontos, hogy egy formulában milyen ítéletváltozók fordulnak elő! Míg a Hilbert-rendszer arra is használható, hogy tetszőleges formulákról igazoljunk állításokat! 15. jegyezd meg ifjú padavan, hogy visszafelé = a sötét oldal felé! súlyos hiba! 19
Ugyan az igaz, hogy... csinálhatjuk azt, hogy előbb rezolúcióval megmutatjuk, hogy Σ F (ahol Σ formulahalmaz és F formula), aztán az F -ben ill. Σ-ban előforduló ítéletváltozókat kicserélgetjük valamilyen formulákra 16, hogy ezáltal az így kapott G formuláról és Ω formulahalmazról mutassuk meg, hogy Ω G. De a Σ F rezolúciós levezetése és a Ω G rezolúciós levezetése nagyonis eltér egymástól! Nem lehet megkapni az egyikből a másikat a levezetésben szereplő formulák helyettesítgetésével! Dedukciós Tétel 17 : Legyen Σ formulák egy halmaza, F, G formulák. Σ H F G akkor és csak akkor, ha Σ {F} H G. Feladat: Igazoljuk, hogy tetszőleges F formulára H F F! Megoldás: Először is H F F egy rövidítés, valójában ezt jelenti: H F F. Dedukciós tétellel azonnal megvan: H F F akkor és csak akkor, ha {F} H F, ez pedig rögtön belátható egy levezetéssel, melynek egyetlen eleme F ( {F}). Bónusz óra anyaga 19 : Horn-formulák kielégíthetősége Arról van szó, hogy bizonyos alakú formulák esetén van gyors algoritmus a kielégíthetetlenség eldöntésére. (A rezolúció nem gyors algoritmus. ) Definíció: Egy literál pozitív, ha ítéletváltozó. Egy literál negatív, ha ítéletváltozó negáltja. Például, ha p egy ítéletváltozó, akkor p pozitív literál. Valamint p negatív literál. Definíció: Az F KNF formula Horn 20 -formula, ha minden klózában legfeljebb egy darab pozitív literál fordul elő. Intuíció: p 1 p n p (p 1 p n ) p illetve p 1 p n q 1 q m (p 1 p n ) (q 1 q m ) valamint p 1 p n (p 1 p n ) Tegyük fel, hogy adott egy KNF-ben levő formula. Legyenek klózai C 1,,C n. Pakoljuk ezeket a klózokat egy halmazba: {C 1,, C n }. Ekkor, ha minden C i klózt ekvivalens átalakítással ún. Kowalski 21 -normálformára: (p 1 p n ) (q 1 q m ) hozunk, gondolkodhatunk a következőképpen: Egy implikáció értéke egy struktúrában akkor és csak akkor 0, ha az implikáció premisszájának értéke 1, és a konklúzió értéke 0. Ez alapján megpróbálhatunk keresni egy olyan struktúrát amelyben az összes C i implikáció teljesül. Tehát vegyük sorra a C i implikációkat, és ha épp olyan struktúrát vizsgálunk melyben C i premisszája már teljesül (mert mondjuk üres premissza), akkor vegyünk egy olyan struktúrát, amelyben C i konklúziója is teljesül. Eztán vegyük az összes C i implikációt és nézzük meg, hogy az éppen vizsgált struktúrában teljesülnek-e a premisszáik. Amennyiben mondjuk C j -nek igen, akkor vesszük egy olyan struktúrát amelyben C i és C j konklúziói teljesülnek. Ezt addig ismételjük amíg lehet. Két eset lehetséges: 16. csak arra kell vigyázni, hogy ekkor egy adott ítéletváltozó összes előfordulását ugyanarra a formulára cseréljük 17. feladatmegoldás szempontjából ez egy nagyon hasznos tétel 19. ha volt ilyen óra... 20. Alfred Horn. Nem Gyula. 21. nem a csillagkapuból 20
1. Előbb utóbb egy olyan konklúziónak kellene teljesülnie valamely struktúrában, amely éppen az üres diszjunkció ( ). Azonban ez nem teljesül egyetlen struktúrában sem, így az eredeti formula kielégíthetetlen. 2. Előbb utóbb nem lesz olyan C j implikáció, mely premisszái teljesülnének az adott struktúrában, és az eddigi összes C j, amelyre igaz, hogy premisszái teljesülnek, igaz, hogy a konklúziói is teljesülnek az adott struktúrában. Ekkor találtunk egy olyan struktúrát, amelyben az eredeti formula teljesül, vagyis nem kielégíthetetlen. Gond: ha C i konklúziója q 1 q m alakú (m>1). Miért gond? Mert legalább m darab struktúra van, amelyben teljesül q 1 q m. Vagyis az imént ismertetett gondolatmenetet végig kellene nézni mind az m-en. Ez pedig a keresési teret igencsak megnöveli, ha mondjuk minden C j konklúziója hasonló alakú! Megoldás: megköveteljük, hogy m = 1 legyen. A következő algoritmust kapjuk: Algoritmus Horn-formulák kielégíthetőségének eldöntésére Input: F =C 1 C n Horn-formula. Output: Igen (+ egy struktúra, melyben F teljesül) / Nem while( amíg lehet ) { Ha van olyan i n, hogy C i ((p 1 p k ) q) és az összes p j, (j =1,,k) meg van jelölve, akkor legyen q is megjelölve. } Ha van olyan i n, hogy C i ((p 1 p k ) ) és az összes p j, (j =1,,k) meg van jelölve, akkor az algoritmus nem -el tér vissza, az F formula kielégíthetetlen. Ha még nem tért vissza akkor az algoritmus ennél a pontnál visszatér egy igen -el és az F formula kielégíthető. Vegyünk egy olyan struktúrát, melyben az összes megjelölt ítéletváltozó teljesül és a nem megjelöltek nem teljesülnek. Ebben a struktúrában F teljesül. Ez az algoritmus az input formulában szereplő ítéletválozók számában polinom futási idejű. Feladat: Igazoljuk a Horn-formulákra vonatkozó algoritmussal, hogy a következő formula kielégíthetetlen! ( p 4 p 2 p 3 ) (p 1 p 2 ) (p 3 ) ( p 1 ) (p 4 ) Megoldas: A könnyebség kedvéért hozzuk Kowalski-normálformára a klózokat és pakoljuk be az így kapott formulákat egy halmazba: {(p 3 p 4 ) p 2,p 2 p 1,( p 3 ),(p 1 ),( p 4 )}. 1. megjelöljük p 4 -et és p 3 -mat, ( p 3 ),( p 4 ) miatt; 2. megjelöljük p 2 -t, mert p 3 és p 4 már meg vannak jelölve; 3. megjelöljük p 1 -et, mert p 2 már meg van jelölve; 4. az algoritmus visszatér nem -el, az input formula kielégíthetetlen, (p 1 ) miatt, és mert p 1 meg van jelölve; A feladat kész. Feladat: Igazoljuk a Horn-formulákra vonatkozó algoritmussal, hogy a következő formula ( p 4 p 2 p 3 ) (p 1 p 2 ) (p 3 ) ( p 1 ) (p 4 ) 21
kielégíthető! Megoldas: A könnyebség kedvéért hozzuk Kowalski-normálformára a klózokat és pakoljuk be az így kapott formulákat egy halmazba: {(p 3 p 4 p 2 ),p 2 p 1,( p 3 ),(p 1 ),( p 4 )}. 1. megjelöljük p 4 -et és p 3 -mat, ( p 3 ),( p 4 ) miatt; 2. nincs mit megjelölni, az algoritmus visszatér igen-el, az input formula kielégíthető. Egy sturktúra mely kielégíti az, melyben p 3, p 4 teljesülnek és minden más p j nem teljesül. A feladat kész. Feladat: Igazoljuk a Horn-formulákra vonatkozó algoritmussal, hogy a következő formula kielégíthetetlen. (p 4 p 2 p 3 ) (p 1 p 2 ) (p 3 ) ( p 1 ) (p 4 ) Megoldas: A könnyebség kedvéért hozzuk Kowalski-normálformára a klózokat és pakoljuk be az így kapott formulákat egy halmazba: {p 3 (p 2 p 4 ),p 2 p 1,( p 3 ),(p 1 ),( p 4 )}. Várjunk csak... az input formula nem Horn-formula, mert a (p 4 p 2 p 3 ) klózban nem legfeljebb egy darab pozitív literál fordul elő (hanem kettő)! Tehát itt a Horn-formulákra vonatkozó algoritmust nem alkalmazhatjuk! Feladat: Igazoljuk, hogy a következő formula kielégíthetetlen! (p 4 p 2 p 3 ) (p 1 p 2 ) (p 3 ) ( p 1 ) ( p 4 ) Megoldas: Mivel a feladat nem kötötte ki, hogy hogyan igazoljuk, több dolgot lehet csinálni. A legotrombább módszer, hogy felírjuk a formula igazságtáblázatát és megnézzük, hogy ennek a formulának bizony minden struktúrában nulla az értéke. Azonban ez lehet nem működne, ha mondjuk egy kétszáz ítéletváltozó lenne a formulában, mert ugye 2 200 sora lenne annak a táblázatnak, ami, bezony mondom Néked, nem fér ki egy A4-es oldalra. Lehet azt csinálni, hogy rezolúciót hajtunk végre, hogy kihozzuk az üres klózt, feltéve, hogy tényleg kielégíthetetlen a formula, és az üres klózt ezért ki lehet hozni; és ez igazolja, hogy kielégíthetetlen a formula. Ha esetleg nem tudtuk kihozni az üres klózt, lehet azt csinálni, hogy mutatunk egy struktúrát, melyben a formula teljesül, így igazoljuk, hogy mégsem kielégíthetetlen. De azt is lehet csinálni, hogy a fent ismertetett Horn-formulákra vonatkozó algoritmust adaptáljuk erre az esetre. Figyelem! Ez már nem a Horn-formulákra vonatkozó algoritmus!!! A könnyebség kedvéért hozzuk Kowalski-normálformára a klózokat és pakoljuk be az így kapott formulákat egy halmazba: {(p 3 ) (p 2 p 4 ),(p 2 p 1 ),( p 3 ),(p 1 ),(p 4 )}. 1. Megjelöljük p 3 -mat; ( p 3 ) miatt, 2.A Megjelöljük p 2 -t, mert p 3 már meg van jelölve; (p 3 ) (p 2 p 4 ) vagy 2.B Megjelöljük p 4 -et, mert p 3 már meg van jelölve; (p 3 ) (p 2 p 4 ) Először csináljuk végig az A-ágat: 22
3.A Megjelöljük p 1 -et, mert p 2 már meg van jelölve; (p 2 p 1 ) 4.A Ez az ág visszatér nem -el; (p 1 ) miatt, és mert p 1 meg van jelölve Upsz! Akkor most nézzük meg, hátha a B-ág ad egy olyan struktúrát, amelyben az eredeti formula teljesül: 3.B Ez az ág is visszatér nem -el, mert p 4 meg van jelölve; (p 4 ) Vagyis az input formula kielégíthetetlen. Ha csak egy ág igen -el tér vissza, akkor már találtunk egy olyan struktúrát, melyben az input formula teljesül. Most nem ez volt a helyzet. A feladat kész. Meg kell említeni, hogy így az algoritmus már nem polinom futási idejű! Tehát az csak Horn-formulákon polinom futási idejű! Az utolsó feladatban alkalmazott módszert csak az használja, aki a leírásomból megértette, hogy miért működik és, hogy egyáltalán mi a módszer amit használtam. A zh-ban nem fogom külön kérni, hogy az adaptált Horn-algoritmust használjuk, ez csak egy lehetőség lesz arra az esetre, ha mondjuk ezt a feladatot kapjuk: Feladat: Igazoljuk az igazságtáblázat felírása nélkül, hogy a következő formula kielégíthetetlen! Megoldás: Ezt otthon csináljuk meg. 22 (p 4 p 2 p 3 ) (p 1 p 2 ) (p 3 ) ( p 1 ) ( p 4 ) Hetedik gyakorlat Helyettesítés Eddig ítéletkalkulussal foglalkoztunk, de most már ideje visszatérni az elsőrendű esetre. Azaz mostantól lesznek kvantorok, függvényszimbólumok, változók. Meg kell ismernünk a helyettesítés mikéntjét, erre majd szükség lesz. Definíció: Legyenek t, u termek, x változó. Ekkor t[x/u] jelöli azt a termet, melyet úgy kapjuk, hogy x összes t-beli előfordulását u-ra cseréljük. Példa: g(f(x,x))[x/f(x,y)]=g(f(f(x,y),f(x,y))), g(f(y,y))[x/f(x,y)]=g(f(y,y)) Nézzük meg, mi a helyzet, a formulákkal! Mivel xp(x,y) zp(z,y) ezért világos, hogy ha y-t lecserélem akármilyen t termre, akkor ekvivalens formulákat kell kapjak, nem? Nehogy már attól függjön egy helyettesítés eredménye, hogy hogyan neveztük el a kötött változókat! Azonban, ha pl. t = x akkor láthatjuk, hogy 22. hogy felkészüljünk a zh-ra mentálisan 23
xp(x,t)= xp(x,x) zp(z,x)= zp(z,t) Mivel P egy kettő rangú relációszimbólum, P interpretáltja egy kétváltozós reláció. Kétváltozós reláció egy halmaz felett == gráf! Vagyis a fenti formulákat ki tudom értékelni gráfokban! Vegyünk egy kettő csúcsú gráfot, melyben csak hurokélek vannak. A bal oldali formula teljesül ebben a gráfban, hiszen minden x csúcsból van él x-be. A jobb oldali formula viszont nem, hiszen nem igaz az, hogy minden z csúcsból van él x-be; mondjuk ha z és x különböző csúcsok akkor nincs közöttük él. Tehát xp(x,x) zp(z,x). Ez az eredmény azt jelenti, hogy formulák esetén hiba lenne ész nélkül cserélgetni változókat termekre. A lenti definíció lényege az, hogy ha a behelyettesítendő termben van olyan változó, amely a behelyettesítés során kötötté válik, akkor változóátnevezünk! (és csakis kötött változót nevezhetünk át ekvivalensen!) Például ( xp(x,y))[y/x] ( zp(z,y))[y/x]= z(p(z,y)[y/x])= zp(z,x). A fenti meggondolások vezetnek a következő definícióhoz: Definíció: Legyen F egy formula, t egy term, x egy változó. Ekkor F[x/t] az a formula, melyet úgy kapunk, hogy x minden szabad előfordulását a t-termmel helyettesítjük. A helyettesítés során vigyázunk rá, hogy t-ben ne szerepeljen olyan változó, amely a helyettesítéssel kötötté válik. Tehát: ha F = akkor F[x/t]= ; ha F =F 1 F 2 akkor F[x/t]=F 1 [x/t] F 2 [x/t]; ha F = xg akkor F[x/t]=F; ha F = yg, ahol y x, akkor továbbá F[x/t]= y(g[x/t]), feltéve, hogy y nem fordul elő t-ben; F[x/t]= z((g[y/z])[x/t]), ha y előfordul t-ben, és z új változó, mely nem fordul elő G- ben, se t-ben;...a többi eset hasonló ezekhez... Az utolsó előtti pontban azaz itt: F[x/t] = z ((G[y/z])[x/t]) azért egyenlőség nem pedig ekvivalencia szerepel, mert most definiáljuk, hogy F[x/t] melyik formulát jelölje. Példa: Legyen t=f(y,y). Ekkor: R(f(x,y))[x/t]= R(f(f(y,y),y)) ( x R(f(x, y)))[x/t] = x R(f(x, y)) ( y R(f(x,y)))[x/t] ( z R(f(x,z)))[x/t]= z R(f(f(y,y),z)) Ezekkel a definíciókkal a következő eredményeket lehet bizonyítani: Formulákra vonatkozó helyettesítési lemma: 24
Minden F formulára, A struktúrára, x változóra és t termre teljesül. A xa(t)(f)=a(f[x/t]) Intuitívan: ez a lemma azt mondja ki, hogy az F[x/t] formulát az A struktúrában kiértékelni ugyanaz, mintha az F formulát értékelném ki az A [xa(t)] struktúrában. Itt A(t) a t term értéke az A-ban (nem pedig A [xa(t)]-ban). Itt ugye A(t) az alaphalmaz egy eleme. Vagyis a lemma azt mondja, hogy a helyettesítés fogalma kompatibilis a formula struktúrában való kiértékelésének fogalmával. Termekre vonatkozó helyettesítési lemma: Minden t termre, A struktúrára, x változóra és q termre A [xa(q)](t)=a(t[x/q]) Intuitívan: Ezt próbáljuk meg értelmezni intuitívan a fentiekből kiindulva. Lehetőleg mondjuk ki hangosan, ha megértettünk valamit, hogy átmenjen az idegrendszeren és rögzüljön. Prenex és Skolem normálforma Definíció: Egy F formula kiigazított, ha F -ben nincs olyan változó mely kötötten és szabadon is előfordul; és igaz F -re, hogy különböző kvantor előfordulások különböző változókat kötnek le. Példa: ( x R(x, y)) (P(x)) nem kiigazított, ( x R(x, y)) ( x P(x)) nem kiigazított, de ( xr(x, y)) ( zp(z)) kiigazított. Definíció: Egy F formula prenex normálalakban van, ha F = Q 1 y 1 Q k y k G, ahol G kvantormentes formula és Q 1,,Q k kvantorok. Példa: ( xr(x, y)) ( xp(x)) nem prenex normálalakban van, de x(r(x, y) P(x)) prenex normálalakban van. Hogyan hozunk kiigazított, prenex normálalakra? Azaz, hogyan készítsünk egy formulához egy vele ekvivalens, prenex normálalakban levő, kiigazított formulát? A prenexre hozás három lépése (Prx0-3.) Prx0. Kiigazítjuk: Először is, a kötött változók átnevezésével elérjük, hogy minden kvantorelőfordulás más-más változót kössön le. Pl.: ( xr(x,y)) ( xp(x)) ( xr(x,y)) ( zp(z)) Ugyanígy, a kötött változók átnevezésével elérjük, hogy ne szerepeljen a formulában egy változó kötötten és szabadon is. Pl.: ( xr(x,y)) (P(x)) ( zr(z,y)) (P(x)) 25
Prx1. Előbb ekvivalens átalakításokkal a nyilaktól megszabadulunk: A B (A B) (B A) A B ( A) B Prx2. Majd a negációt bevisszük: (A B) ( A) ( B) (A B) ( A) ( B) (Q 1 x Q k x k F 1 ) (H 1 x 1 H k x k F 2 ) ahol Q i = akkor és csak akkor, ha H i =. Prx3. Majd további ekvivalens átalakításokkal a kvantorokat belülről kifelé hozzuk (Q 1 x Q k x k F 1 ) (H 1 y 1 H z y z F 2 ) Q 1 x Q k x k H 1 y 1 H z y z (F 1 F 2 ) ahol előbb változóátnevezésekkel elérjük, hogy x i y l, minden i,l-re. A változóátnevezés ekvivalens átalakítás ugye, mert QxF Qz(F[x/z]) Feladat: Hozzuk a következő formulát kiigazított prenex normálalakra: ( x yr(x,y)) ( xp(x,y,y)) Megoldás: ( x yr(x,y)) ( xp(x,y,y)) ( x yr(x,y)) ( xp(x,y,y)) ( x y R(x,y)) ( xp(x,y,y)) ( x v R(x,v)) ( zp(z,y,y)) x v z( R(x,v) P(z,y,y)) Az utolsó sorban szereplő formula már kiigazított, prenex. Mivel az átalakítások prenex normálformát eredményeznek és minden lépésben ekvivalens átalakításokat használtunk, a következő tétel bizonyítható: Tétel: Minden formulához létezik egy vele ekvivalens kiigazított, prenex normálalakban levő formula. Definíció: Egy formula Skolem normálalakban van, ha prenex, kiigazított és nem szerepel benne egzisztenciális kvantor, azaz ha x 1 x k F alakú, ahol F kvantormentes. Definíció: Az F formula Skolem ekvivalens G-vel: F s G, ha F akkor és csak akkor kielégíthető, ha G. Megjegyzés: minden F formulára vagy F s vagy F s teljesül. Valamint, ha F G akkor F s G, de a fordított irány nem minden F,G-re igaz. Most gondoljuk végig, hogy eddig mit műveltünk! Adott egy tetszőleges F formulánk és csináltunk belőle egy kiigazított, prenex G-t úgy, hogy F G. Ebből kellene egy Skolem-formulát kapni. A gond az egzisztenciális kvantorokkal lesz. Azokat ugyanis nem feltétlenül tudjuk kilőni ekvivalens ( ) átalakításokkal. 26