Bevezetés a logikai programozásba

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

Predikátumok Dr. György Anna BMF-NIK Szoftvertechnológia Intézet.
Egy szélsőérték feladat és következményei
Készítette: Kosztyán Zsolt Tibor
Kondicionális Eddig: Boole-konnektívumok ( , ,  ) Ezek igazságkonnektívumok (truth-functional connectives) A megfelelő köznyelvi konnektívumok: nem.

Adatbázisrendszerek elméleti alapjai 2. előadás
Erőállóképesség mérése Találjanak teszteket az irodalomban
Matematikai logika.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Műveletek logaritmussal
Matematikai logika A diasorozat az Analízis 1. (Mozaik Kiadó 2005.) c. könyvhöz készült. Készítette: Dr. Ábrahám István.
Euklidészi gyűrűk Definíció.
Egy f  R[x] polinom cS -beli helyettesítési értéke
Algebrai struktúrák 1.
Csoport részcsoport invariáns faktorcsoport részcsoport
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Kétértékűség és kontextusfüggőség Kijelentéseink igazak vagy hamisak (mindig az egyik és csak az egyik) Kijelentés: kijelentő mondat (tartalma), amivel.
Algebra a matematika egy ága
MI 2003/5 - 1 Tudásábrázolás (tudásreprezentáció) (know- ledge representation). Mondat. Reprezentá- ciós nyelv. Tudás fogalma (filozófia, pszichológia,
MI 2003/7 - 1 Az egyesítési algoritmus Minden kapitalista kizsákmányoló. Mr. Smith kapitalista. Mr. Smith kizsákmányoló.
Logika 5. Logikai állítások Miskolci Egyetem Állam- és Jogtudományi Kar Jogelméleti és Jogszociológiai Tanszék március 10.
A digitális számítás elmélete
A TERMÉSZETTUDOMÁNYOK ALAPJAI 1. Matematika
Év eleji információk Előadó: Hosszú Ferenc II. em Konzultáció: Szerda 9:50 – 10:35 II. em
Bevezetés a matematikába I
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. SZÁMELMÉLET 6.1. Oszthatóság
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
A számfogalom bővítése
Halmazelmélet és matematikai logika
szakmérnök hallgatók számára
2. A KVANTUMMECHANIKA AXIÓMÁI 1. Erwin Schrödinger: Quantisierung als Eigenwertproblem (1926) 2.
Exponenciális egyenletek
Érvelés, bizonyítás, következmény, helyesség
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Atomi mondatok FOL-ban Atomi mondat általában: amiben egy vagy több dolgot megnevezünk, és ezekről állítunk valamit. Pl: „Jóska átadta a pikk dámát Pistának”
Nem igaz, hogy a kocka vagy tetraéder. Nem igaz, hogy a kicsi és piros. a nem kocka és nem tetraéder. a nem kicsi vagy nem piros. Általában: "  (A  B)
Függvényjelek (function symbols) (névfunktorok) FOL-ban Névfunktor: olyan kifejezés, amelynek argumentumhelyeire neveket vagy in- változókat lehet írni.
„Házasodj meg, meg fogod bánni; ne házasodj meg, azt is meg fogod bánni; házasodj vagy ne házasodj, mindkettőt meg fogod bánni; vagy megházasodsz, vagy.
A kondicionális törvényei
(nyelv-családhoz képest!!!
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Lagrange-interpoláció
Logikai programozás 2..
Határozatlan integrál
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Kijelentések könyve: mindegyik oldalon egy kijelentés. Egyes igaz kijelentések axiómák. Az axiómákból bizonyítható kijelentések mind igazak, és a cáfolható.
Ekvivalenciák nyitott mondatok között Két nyitott mondatot ekvivalensnek mondunk, hha tetszőleges világban ugyanazok az objektumok teszik őket igazzá.
Az informatika logikai alapjai
MI 2003/6 - 1 Elsőrendű predikátumkalkulus (elsőrendű logika) - alapvető különbség a kijelentéslogikához képest: alaphalmaz. Objektumok, relációk, tulajdonságok,
Henkin-Hintikka-játék szabályai, kvantoros formulákra, még egyszer: Aki ‘  xA(x)’ igazságára fogad, annak kell mutatnia egy objektumot, amire az ‘A(x)’
Valószínűségszámítás II.
Deduktiv adatbázisok. Normál adatbázisok: adat elemi adat SQL OLAP adatbázisok: adat statisztikai adat OLAP-SQL … GROUP BY CUBE(m1,m2,..)
előadások, konzultációk
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Logika.
Analitikus fák kondicionálissal
Fordítás (formalizálás, interpretáció)
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
A házi feladatokhoz: 1.5: Azonosság Jelölések a feladatszám alatt:
Nulladrendű formulák átalakításai
Bevezetés a matematikába I
ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
Előadás másolata:

Bevezetés a logikai programozásba

50/2 Ajánlott irodalom Aho A.V., Ullmann, J.D.: Foundations of Computer Science (C Edition), Computer Sci. Press, New York ISBN Csink, L.: Logikai programozás. Kandó Kálmán Villamosipari Műszaki Főiskola, Budapest, 1991.

50/3 Predikátumok 1. Predikátumok: kijelentésekhez logikai értéket (IGAZ, HAMIS) rendel r(esik az eső) u(Pistike esernyőt visz magával) w(Pistike megázik) Állítások (propozíciók): r  u Ha esik az eső, Pistike esernyőt visz magával. u  w Ha Pistike esernyőt visz magával, Pistike nem ázik meg.  r  w Ha nem esik az eső, Pistike nem ázik meg. (  A tagadást jelenti)

50/4 Predikátumok 2. Predikátumok változóinak bevezetése r(esik az eső) u Pistike (Pistike esernyőt visz magával) w Pistike (Pistike megázik), u Juliska (Juliska esernyőt visz magával), w Juliska (Juliska megázik), r  u Pistike Ha esik az eső, Pistike esernyőt visz magával. r  u Juliska Ha esik az eső, Juliska esernyőt visz magával. u Pistike  w Pistike Ha Pistike esernyőt visz magával, Pistike nem ázik meg.  r  w Juliska Ha nem esik az eső, Juliska nem ázik meg. Ha X egy változó, akkor beszélhetünk u X  u(X) predikátumról, és r  u X u X  w X  r  w X állításokról. Bizonyos X értékekre U X lehet igaz, más X értékekre u X lehet hamis.

50/5 Predikátumok 3. Predikátumok változókkal r(esik az eső) u Pistike (Pistike esernyőt visz magával) w Pistike (Pistike megázik), u Juliska (Juliska esernyőt visz magával), w Juliska (Juliska megázik), r  u(X) Bármely X személyre, ha esik az eső, X esernyőt visz magával. u(X)  NOT w(X)Bárki is vagy, ha viszel ernyőt, nem ázol meg. u Pistike  w Pistike Ha Pistike esernyőt visz magával, Pistike nem ázik meg. NOT r  NOT w(X) Ha nem esik az eső, senki sem ázik meg.

50/6 Predikátumok 4. A predikátumok olyan logikai függvények, melyek argumentumai termek lehetnek. Term: konstans, változó, vagy ún. összetett (compound) term. Compund termre példa: szemely(„Kovács Jani”, „Pipacs tér 2.”, „ ”) szemely az ún. functor, argumentumai konstansok vagy változók. (rekordhoz hasonlóan viselkedik) A term „rekurzív jellegű” definíciója: A term lehet konstans, változó, vagy összetett term, ahol az összetett term argumentumai bármilyen termek lehetnek.

50/7 Atom Atom: egy predikátum (melynek argumentumai termek) Ground atom: ha az argumentumok mind konstansak (ill. nincsenek argumentumai) Konvenciók: változónevet nagy betűvel kezdünk Karakter-stringek (ezek konstansok) kisbetűvel kezdődnek Konstansok lehetnek még számok (integer vagy real) és idézőjelek közötti karakter stringek

50/8 Példák formulákra CS205 cs „cs 205” p(X,x) p(3,4,5) „p(3,4,5)” Változó konstans (string) konstans (integer) konstans (string) (nem ground) atom ground atom konstans

50/9 További fogalmak literal: atom vagy atom negáltja, pl. p(X,a) Ground literal:ha nem tartalmaznak az argumentumok változót, pl. NOT p(a,b) Műveletek AND, OR, NOT, p q p AND q p q p OR q p NOT p

50/10 Logikai műveletek és kifejezések Implikáció:  Ekvivalencia:  p q p  q q  p (p  q)AND(q  p) p q p  q Logikai kifejezés: logikai művelet segítságável jön létre, úgy, hogy (rekurzív definíció) a logikai műveletek argumentumaiba további logikai kifejezést helyettesíthetünk. Clause:OR művelettel összekapcsolt literálok

50/11 egzisztenciális kvantifikátor Kvantifikátorok Mondjuk azt szeretnénk kifejezni, hogy „ha esik, valaki vizes lesz” r  w(„Juli”) OR w(„Pistike”) OR w(„Jenőke”) OR w(„Anna”) Nem az igazi, mert nem tudjuk felsorolni az összes személyt, ha nem ismerjük a teljes halmazt, valamint nincs végtelen OR művelet Helyette: r  (  X)w(X) (van olyan X, hogy…) A változatosság kedvéért: „ha esik, mindenki vizes lesz” r  w(„Juli”) AND w(„Pistike”) AND w(„Jenőke”) AND w(„Anna”) Nem az igazi, ugyanazért, mint fent Helyette: r  (  X)w(X) (minden X-re fennáll, hogy…) Univerzális kvantifikátor

50/12 Kvantifikátorok és logikai kifejezések Kibővítjük a logikai kifejezés fogalmát: Ha E logikai kifejezés, akkor (  X)E és (  X)E is logikai kifejezés. Precedencia (példák): (  X)p(X) OR q(X) u.a. mint ((  X)p(X)) OR q(X) (  X) NOT w(X)OR(  Y)w(Y) u.a. mint ((  X) NOT w(X))OR((  Y)w(Y)) (  X)(  Y)p(X,Y) nem azonos (  Y)(  X)p(X,Y) kvantifikálással. Példa: p  loves, értelmezése, hogy az első argumentum szereti a másodikat, ekkor (  X)(  Y)loves(X,Y)mindenki szeret valakit (  Y)(  X)loves(X,Y)VAN VALAKI, AKIT MINDENKI SZERET

50/13 Vagy mindenki esernyőt visz, Vagy mindenki vizes lesz Néhány példa logikai kifejezésre 1. (  X)u(X) OR (  X)w(X) ua. mint (  X)u(X) OR (  Y)w(Y) zöld kvantifikátor hatóköre piros kvantifikátor hatóköre (  X)(u(X) OR w(X)) Mindenkire teljesül, hogy vagy esernyőt visz, vagy vizes lesz (ki így, ki úgy jár) zöld kvantifikátor hatóköre

50/14 Példa logikai kifejezésre 2. (  X)(u(X) OR (  X)w(X)) ua. mint (  X)(u(X) OR (  Y)w(Y)) Mindenkire igaz, hogy vagy esernyőt visz, vagy létezik valaki (más), aki vizes lesz A piros X a zöld  kvantifikátor számára kötött (bound) változó, a zöld X viszont szabad (free) változó

50/15 Példa logikai kifejezésre 3. u(X) OR (  X)w(X) Vagy X esernyőt visz, vagy létezik valaki (más), aki vizes lesz A zöld X szabad (free), a piros X kötött (bound) változó, melyet a piros  kvantifikátor köt meg.

50/16 Interpretációk p{0, 1} Igazságérték hozzárendelés A p predikátum igazságértékét minden lehetséges változó értékek mellett meghatározzuk Legyen D  halmaz, amely tartalmaz- za a konstansokat, és a változók is ebből veszik fel értékeiket. Egy k-változós p predikátum interpretációja egy f: D k  {0,1} függvény. Ehhez szükséges, hogy a termek, mint a predikátumok argumentumai is értelmezést kapjanak: a konstansok D elemei, a változók D beli értéket vehetnek fel, az összetett termek pedig D-beli értékkészletű, D-beli argumentumokkal rendelkező függvények.

50/17 Példa interpretációra 1a. p(X,Y)  (  Z) (p(X,Z) AND p(Z,Y)) I 1 interpretáció: D , a valós számok halmaza. A változók is valós értékeket vehetnek fel, összetett term most nincs. p(U, V) legyen igaz, ha U < V. I 1 interpretáció szerint formulánk jelentése az, hogy bármely a és b valós szám között - ha a < b -létezik másik valós szám. Ez mindig igaz. Az X és Y szabad változóknak más és más értéket adva újabb interpretációkat nyerünk, melyek mindegyike esetén a fenti formula igaz lesz.

50/18 Példa interpretációra 1b. p(X,Y)  (  Z) (p(X,Z) AND p(Z,Y)) I 2 interpretáció: D , az egész számok halmaza. A változók is egész értékeket vehetnek fel, összetett term most nincs. p(U, V) legyen igaz, ha U < V. I 2 interpretáció szerint formulánk jelentése az, hogy bármely a és b egész szám között - ha a < b - létezik másik egész szám. Ez igaz, ha a  b-1 Az X és Y szabad változóknak más és más értéket adva, (amíg az a  b-1 feltételt betartjuk) újabb interpretációkat nyerünk, melyek mindegyike esetén esetén a fenti formula igaz lesz. Nem igaz a fenti formula ha X=a és Y=a+1 (bármely a egész szám esetén.)

50/19 Példa interpretációra 1c. p(X,Y)  (  Z) (p(X,Z) AND p(Z,Y)) I 3 interpretáció: D  {a,b,c}, ahol a,b,c tetszőleges szimbólumok. p(U, V) legyen igaz, ha UV  {aa, ab, ba, bc, cb, cc}, És legyen hamis, ha UV  {ac, bb, ca}. (a többi lehetőség) I 3 interpretáció szerint formulánk mindig igaz. Az összes lehetséges értelmezés 9 féle lehet, mivel ennyi párkombináció áll elő D elemeiből U és V megválasztására. A következő ábra mutatja, hogy Z milyen választásával tehető a formula igazzá.

50/20 Példa interpretációra 1c. - folytatás XYMiért igaz aaZ= a vagy b abZ= a acp(a,c) FALSE baZ= a bbp(b,b) FALSE bcZ=cZ=c cap(c,a) FALSE cbZ=cZ=c ccZ=b vagy c p(X,Y)  (  Z) (p(X,Z) AND p(Z,Y)) A predikátumok igazságértékének meghatározására volt definíciónk, a fenti „zöld hátterű” formula kiértéKelését úgy végezzük, hogy a műveleteket és a kvantifikátort értékeljük ki

50/21 A „zöld hátterű” formula kiértékelése az I2 interpretáció szerint p(X,Y)  (  Z) (p(X,Z) AND p(Z,Y)) p(X,Y)  (  Z) AND p(X,Z)p(Z,Y) I 2 interpretáció: D , az egész számok halmaza. A változók is egész értékekete vehetnek fel, összetett term most nincs. p(U, V) legyen igaz, ha U < V. Vegye fel X a 3, Y a 7 értéket. Ekkor p(3,7) TRUE. Z-t 4-nek választva a fa másik ága is igaz (a levelekből indulva látjuk). Ha D végtelen halmaz, nem biztos, hogy algoritmussal megállapítható, hogy alkalmas Z létezik-e.

50/22 Tautológia Egy E kifejezés tautológia, ha minden lehetséges interpretáció esetén E igazságértéke 1 (TRUE) lesz. Példa: q(X) OR NOT q(X) tautológia, q-tól és X-től függetlenül mindig igaz (pontosabban q és X bármely interpretációja esetén mindig igaz) A „zöld formula” nem tautológia, mert noha I 1 és I 3 interpretációkra mindig igaz, I 2 esetén nem mindig igaz. Helyettesítési elv. Ha egy tautológiában egy változót következetesen helyettesítünk egy kifejezéssel, tautológia marad.

50/23 Kifejezések ekvivalenciája Egy E és egy F kifejezések ekvivalensek definíció szerint, ha E  F tautológia, azaz bármely interpretáció esetén, E és F ugyanazon igazságértékkel bírnak. Egyenlők egyenlőkkel való helyettesítésének elve Ha E 1 ekvivalens E 2 -vel, akkor tetszőleges F 1 formulában, amelyben E 1 szerepel, írhatunk helyette E 2 -t, és a kapott F 2 formula ekvivalens lesz F 1 -gyel. Példa. (p AND q )  (q AND p ) ha p és q ground atomok. Helyettesítsünk p helyére p(X) -et, q helyére q(Y,Z) -t. Ekkor (p(X) AND q(Y,Z))  (q(Y,Z) AND p(X) ) is tautológia, azaz p(X) AND q(Y,Z) és q(Y,Z) AND p(X) ekvivalensek.

50/24 Másik példa ekvivalenciára p(X) OR NOT p(X)  q(Y) OR NOT q(Y) A  mindkét oldalán tautológia van - mint ezt korábban láttuk - így nyilván a sárga formula is tautológia, hiszen mindkét oldala mindig igaz. Lehet tehát, hogy az ekvivalens formulák más változókat tartalmaznak, és mások a predikátumok is, mégis ekvivalensek.

50/25 Változók átnevezése 1. Egy lokális változót C-ben átnevezhetünk, ha minden előfordulását következetesen helyettesítjük egy másik változónévvel. Vezessük be a Q jelölést, amely állhat vagy a  vagy a  jel helyett. Tekintsük a (QX) E  (QY) E' formulát, ahol E' úgy áll elő, hogy E -ben minden olyan X előfordulást, amely kötött a (QX) kvantifikátorhoz, Y-nal helyettesítünk. Állítás. Ha Y nem fordul elő szabadon E-ben, akkor a piros formula tautológia. Bizonyítás: Tekintsük (QX) E egy I interpretációját. (Mivel a szabad változók és a predikátumok ugyanazok, ez a jobboldali kifejezés interpretációja is.) Ha I, X-nek v értéket adva, igazzá teszi E-t, akkor Y-nak v-értéket adva igazzá teszi E' -t is, és fordítva. Mivel I tetszőleges volt, és a két oldal egyszerre igaz vagy hamis I szerint, az állítást beláttuk.

50/26 Változók átnevezése 2. ((  X)p(X,Y)) OR NOT ((  X)p(X,Y)) A „türkiz formula” tautológia. Megvizsgáljuk a helyettesítést. Helyettesítsük a baloldali X-t Z-vel. E legyen p(X,Y), E‘ ekkor ((  Z)p(Z,Y)) lesz, az „egyenlők helyett egyenlők helyettesítése” miatt a türkiz formula ekvivalens a ((  Z)p(Z,Y)) OR NOT ((  X)p(X,Y)) formulával. Vegyük észre, hogy X-t Y-nal nem helyettesíthetjük, mert Y szabadon fordul elő a kvantifikátor hatókörén belül. Valóban, (  X)p(X,Y)  (  Y)p(Y,Y) nem tautológia. Legyen D az egészek halmaza, p jelentse a < relációt, és legyen pl. Y a 10 konstans. A baloldal igaz pl. ha X helyére a 9 értéket helyettesítjük, a jobboldal viszont nem igaz.

50/27 Szabad változók univerzális kvantifikációja Ha egy kifejezésben szabad változók vannak, csak akkor lehet tautológia, ha összes szabad változóit univerzálisan kvantifikálva tautológiát kapunk. Vagyis minden T tautológiára és X változóra, (  X)T tautológia. (X akár szabad T-ben, akár kötött). Bizonyítás. Legyenek T szabad változói Y 1,…Y k, lehet, hogy X elő sem fordul közöttük. Tegyük fel először, hogy X= Y 1 és legyen I egy tetszőleges interpretáció. Azt kell megmutatni, hogy I igazzá teszi (  X)T -t Ez azt jelenti, hogy ha X-nek egy v konstans felel meg I szerint, és ezt X helyébe T-ben mindenhol behelyettesítjük, akkor a kapott formula igaz. Ez azonban nyilvánvaló, mert T tautológia. Ha X= Y k valamely k-ra, a bizonyítás teljesen hasonló. Ha X nem fordul elő T szabad változói között, akkor X érték- választása T igazságértékét nem befolyásolja, így minden lehetséges értékére T igaz lesz, azaz (  X)T igaz.

50/28 Zárt kifejezések Ha T tautológia, akkor feltehető, hogy nincs benne szabad változó, ugyanis tekintsük helyette (  X)T kifejezést. Ezt hívjuk T univerzális lezárásának. Zárt az a kifejezés, amelyben nincs szabad változó. Példa. Tudjuk, hogy p(X,Y) OR NOT p(X,Y) tautológia. A fentiek szerint (  X) (  Y) (p(X,Y) OR NOT p(X,Y)) is tautológia.

50/29 Tagadás és kvantifikátorok ( NOT ((  X) E) )  ( (  X) (NOT E) ) „Nem igaz, hogy minden X-re teljesül E” ekvivalens azzal, hogy „létezik X, amelyre nem teljesül E” ( NOT ((  X) E) )  ( (  X) (NOT E) ) „Nem létezik olyan X-re, melyre teljesül E” ekvivalens azzal, hogy „bármely X-re, nem teljesül E” Ha véges sok lehetséges érték van, a fenti szabályok a de Morgan azonosságból következnek. Végtelen esetben is igazak azonban.

50/30 AND, OR és kvantifikátorok ( E AND (QX)F)  (QX)(E AND F) ((QX)E AND F)  (QX)(E AND F) ( E OR (QX)F)  (QX)(E OR F) ((QX)E OR F)  (QX)(E OR F) E és F kifejezések Q valamelyik kvantifikátor X nem szabad E-ben A sárga és türkiz szabályok a zöld feltételekkel teljesülnek. Példa transzformációra: (  X) p(X) OR (  X) (NOTp(X)) Átnevezés: (  X) p(X) OR (  Y) (NOTp(Y)) 2. türkiz formula Q=  : (  X) ( p(X) OR (  Y) (NOTp(Y)) ) 1. türkiz formula Q=  : (  X)(  Y) ( p(X) OR (NOTp(Y)) ) Ez a kifejezés tautológia. Legyen ui. I egy tetszőleges interpretáció, v pedig X értéke I szerint. Ha p(v) igaz, akkor Y-tól függetlenül p(X) OR (NOTp(Y)) igaz, ha pedig p(v) hamis, válasszuk Y=v értéket, és (NOTp(Y)) igaz lesz. E és F kifejezések Q valamelyik kvantifikátor X nem szabad F-ben

50/31 Prenex forma Bármely „értelmes” kifejezés ún. prenex formára, azaz (Q 1 X 1 ) (Q 2 X 2 )… (Q k X k ) E alakra hozható, ahol Q 1, Q 2, …,Q k kvantifikátorok, és az E formulában nincs kvantifikátor. Hogyan hozható egy kifejezés prenex formára? Alkalmazzuk a következő lépéseket szükség szerint: 1. Lépés:átnevezéssel elérjük, hogy minden kvantifikátor különböző változóra vonatkozzék 2. Lépés:ez előző két dia sárga és türkiz szabályaival a NOT, AND, és OR felcserélhető a kvantifi- kátorokkal Hasonlat: egy C program „prenex alakja” valami olyasmit jelen- tene, hogy az összes lokális változót különbözőnek nevezzük, és mind kihozzuk őket a program elejére globális változónak. Ezt ál- talában nem akarjuk, de logikában hasznos trükk.

50/32 (  X)(  Y) E  (  Y)(  X)E Tartomány az egész számok, E az = reláció. Baloldal: „van olyan egész, mellyel minden egész egyenlő”: FALSE Jobboldal: „minden egészre van vele egyenlő (önmaga)”: TRUE (  X)(  Y) E  (  Y)(  X) Tartomány az egész számok, E a < reláció. Baloldal: „minden egésznél van nagyobb”:TRUE Jobboldal: „van olyan egész, amelynél minden egész kisebb”: FALSE Azonos kvantifikátorok sorrendje Nyilván (  X)(  Y) E  (  Y)(  X)E (  X)(  Y) E  (  Y)(  X)E De nem igaz: (  X)(  Y) E  (  Y)(  X)E (  X)(  Y) E  (  Y)(  X)E

50/33 Bizonyítás fogalma Legyenek E 1,E 2,…,E k kifejezések („axiómák”) Képezzük kifejezések egy sorozatát, melyek mindegyike vagy axióma, vagy következik a sorozat valamely előző eleméből, ill. elemeiből. Feltesszük, hogy mind az axiómák, mind a bizonyításban szereplő kifejezések zárt formulák (nincs bennük szabad változó). A gyakorlatban időnként nem írjuk ki az univerzális kvantifikálást, de beleértjük a formulába (azaz a „szabad” változók minden értékére igaznak tekintjük a formulát, így a változó tkp. már nem szabad) Példa wife(john,mary). loves(X,john)  loves(X,mary). A másodikat (  X)(( loves(X,john)  loves(X,mary)) formulaként értjük, tehát „bárki aki szereti Johnt, szereti a feleségét is”. (Más kérdés, hogy ez tautológia-e…) Következtetés: F következik E 1,E 2,…,E k kifejezésekből, ha F 1 AND F 2 AND … AND F k  F tautológia.

50/34 Bizonyítási technikák Esetszétválasztás: ((p  q) AND (NOT p  q))  q Kontrapozitív szabály: (p  q)  (NOT q  NOT p) Ellentmondás keresés: (NOT p  0)  p Redukció: (p  1)  p (ha p-t addig helyettesítjük ekvivalens formulákkal, amíg az azonosan igazat nem kapjuk…) Minden tautológiát használhatunk a bizonyításban. Nevezetes tautológia a modus ponens: ha E és E  F tagjai a bizonyításnak, F is csatolható (ok: (E AND (E  F))  F tautológia). Ha E és F szerepelnek a bizonyításban, E AND F is szerepelhet (mivel (E AND F)  (E AND F) tautológia). Ha E és E  F szerepel a bizonyításban, akkor F is szerepelhet (helyettesítési elv: ((E AND (E  F)  F tautológia). A modus ponenst gyakran nevezik rezolúciónak is.

50/35 Tények és szabályok Tény:ground atom Szabály:implikáció, melynek baloldalán AND művelettel összekapcsolt atomok, a jobboldalán pedig egy atom szerepel. A jobboldal a fejrész (head), a baloldal a formula teste (body). Feltételezzük, hogy a fejben előforduló minden változó valahol a testben is előfordul. A test atomjait rész-célállításnak(subgoal) nevezzük. Megpróbáljuk ezeket a subgoal-okat igazolni (bizonyítani), mert ha mindet sikerül, akkor az AND kapcsolat miatt a szabály teste is igaz, és ez implikálja a szabály fejét. Közben változó- helyettesítésekre is szükség lehet. Ha sikerrel járunk, a szabály feje egy ground atom, amit további bizonyításokhoz lehet használni.

50/36 Bizonyíthatóság és igazság 1: modell Megpróbáljuk az igazság fogalmát megközelíteni. Kifejezések egy halmazának modellje ama interpretációk halmaza, melyek az összes kifejezést igazzá teszik. Példa. (  X)(  Y) p(X,Y) modelljét keressük. Legyen I egy interpretáció D alaphalmazzal. P predikátumnak egy reláció felel meg a D  D halmazon, mégpedig pontosan azok az (a,b) rendezett párok vannak relációban, melyekre p(a,b) teljesül, a  D, b  D. (A reláció tekinthető 0-1 értékű függvénynek is, mint a reláció-halmaz karakterisztikus függvénye.) Ha p-nek egy ilyen relációt feleltetünk meg, akkor I modellje a formulának, ha nem ilyen a reláció, akkor I nem modellje a formulának. Ha D az egészek halmaza, p a < reláció, akkor ez modellje a formulának, de ha ugyanezen a D halmazon az X=Y 2 relációt feleltetjük meg p-nek, akkor ez nem lesz modell.

50/37 Legyenek E 1,E 2,…,E n formulák. Azt mondjuk, hogy egy E formula következik az E 1,E 2,…,E n formulákból, ha E 1,E 2,…,E n formulák minden modellje egyúttal modellje E-nek is. (Egy I interpretáció modellje E 1,E 2,…,E n formuláknak, ha mindegyik E i - nek modellje.) E tény jelölése: E 1,E 2,…,E n E Úgy is mondhatnánk, hogy a következtetés akkor jogos, ha minden a baloldalt megmagyarázó (igazzá tevő) értelmezés szerint a jobboldal is igaz. Bizonyíthatóság és igazság 2. Ha egy adott bizonyítási szisztémánk van (ahol pl. a rezolúció a következtetési szabály), akkor E 1,E 2,…,E n E Azt jelenti, hogy E bizonyítható E 1,E 2,…,E n felhasználásával.

50/38 Bizonyíthatóság és igazság 3. Ha E következménye E 1,E 2,…,E n formuláknak, akkor E 1 AND E 2 AND … AND E n  E tautológia. Bizonyítás. Legyen I egy tetszőleges interpretáció. Ha I szerint a baloldal igaz, akkor I modellje mindegyik E i -nek, tehát E-nek is. Ha I szerint a baloldal nem igaz, akkor pedig hivatkozhatunk arra, hogy az implikáció igaz hamis előtag esetén. Az állítás fordítva is igaz! Szeretnénk, ha egy adott bizonyítási rendszer mindent bebizonyítana, ami igaz, és semmit se bizonyítana be, ami hamis. Egy bizonyítási rendszer konzisztens, ha minden, ami bizonyítható (egy-vonalú jel), az következmény is (dupla-vonalú jel). Egy bizonyítási rendszer teljes, ha minden állítás vagy bizonyítható, vagy cáfolható (tagadása bizonyítható).

50/39 Bizonyíthatóság és igazság 4. Gödel tétel (1931). Tetszőleges konzisztens bizonyítási rendszerben található igaz, de nem bizonyítható állítás (más szavakkal a rendszer nem teljes). Egy ilyen E formulára, E 1,E 2,…,E n axiómák mellett, E 1,E 2,…,E n E, azonban E 1,E 2,…,E n E Egy kis filozófia: nincs mechanikus (algoritmikus, számítógépes programmal megoldható) módszer arra, hogy egy (logikai formula alakjában megfogalmazható) kérdésről eldöntsük, hogy igaz-e vagy sem. Ha találtunk bizonyítást, akkor igaz, de lehet az is, hogy igaz az állítás, de nincs véges lépésben elvégezhető bizonyítás. Az ilyen E állítás persze hozzávehető az axiómákhoz. Ekkor lesz azonban egy igaz, de bizonyíthatatlan F állításunk!

50/40 Rezolúciós bizonyítás ellentmondással: avagy hogyan működik a Prolog Axiómák: E 1, E 2, …, E k, célállítás: E Kérdés: E 1, E 2, …, E k  E ahol a baloldalon a vesszők jelentése AND. Az implikáció definíciója és a deMorgan azonosság szerint szerint igazolandó NOT E 1 OR NOT E 2 OR … OR NOT E k OR E. Tegyük fel, hogy ez nem igaz: E 1 AND E 2 AND … AND E k AND NOT E (azaz a célállítás tagadását hozzávesszük az axiómákhoz) és szeretnénk ellentmondáshoz jutni. Balról jobbra haladunk a formulában, és próbáljuk bizonyítani, újabb és újabb subgoal-okat véve, közben helyettesítéseket alkalmazva. Ha ez valahol megszakad, akkor ellentmondást találtunk, és a helyettesítések adják a megoldást. Ha nem szakad meg, és nincs ellentmondás, akkor a célállítást nem igazoltuk.

50/41 /* Turbo Prolog 2.0 Chapter 5, Example Program 12 Copyright (c) 1986, 88 by Borland International, Inc */ trace domains name, sex, occupation, object, vice, substance = symbol age=integer

50/42 predicates person(name, age, sex, occupation) had_affair(name, name) killed_with(name, object) killed(name) killer(name) motive(vice) smeared_in(name, substance) owns(name, object) operates_identically(object, object) owns_probably(name, object) suspect(name)

50/43 /* * * Facts about the murder * * */ clauses person(bert, 55, m, carpenter). person(allan, 25, m, football_player). person(allan, 25, m, butcher). person(john, 25, m, pickpocket). had_affair(barbara, john). had_affair(barbara, bert). had_affair(susan, john). killed_with(susan, club). killed(susan).

50/44 motive(money). motive(jealousy). motive(righteousness). smeared_in(bert, blood). smeared_in(susan, blood). smeared_in(allan, mud). smeared_in(john, chocolate). smeared_in(barbara, chocolate). owns(bert, wooden_leg). owns(john, pistol).

50/45 /* * * Background knowledge * * */ operates_identically(wooden_leg, club). operates_identically(bar, club). operates_identically(pair_of_scissors, knife). operates_identically(football_boot, club). owns_probably(X, football_boot) :- person(X, _, _, football_player). owns_probably(X, pair_of_scissors) :- person(X, _, _, hairdresser). owns_probably(X, Object) :- owns(X, Object).

50/46 /* * * * * * * * * * * * * * * * * * * * * * * * Suspect all those who own a weapon with * * which Susan could have been killed. * * * * * * * * * * * * * * * * * * * * * * * */ suspect(X) :- killed_with(susan, Weapon), operates_identically(Object, Weapon), owns_probably(X, Object).

50/47 /* * * * * * * * * * * * * * * * * * * * * * * * * * * Suspect men who have had an affair with Susan. * * * * * * * * * * * * * * * * * * * * * * * * * * */ suspect(X) :- motive(jealousy), person(X, _, m, _), had_affair(susan, X).

50/48 /* * * * * * * * * * * * * * * * * * * * * * Suspect females who have had an * * affair with someone that Susan also had an affair with. * * * * * * * * * * * * * * * * * * * * * */ suspect(X) :- motive(jealousy), person(X, _, f, _), had_affair(X, Man), had_affair(susan, Man).

50/49 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Suspect pickpockets whose motive could be money. * * * * * * * * * * * * * * * * * * * * * * * * * * * */ suspect(X) :- motive(money), person(X, _, _, pickpocket).

50/50 killer(Killer) :- person(Killer, _, _, _), killed(Killed), Killed <> Killer, /* It is not a suicide */ suspect(Killer), smeared_in(Killer, Goo), smeared_in(Killed, Goo). Van kedvük próbafuttatásra?