Rezolucija u predikatskoj logici April 18, 2012 1 Uvod Kao što smo rekli u Sekciji 13 (Rezolucija u iskaznoj logici), metod rezolucije je postupak za dokazivanje da je neka (iskazna ili predikatska) formula (ne)zadovoljiva, a koji se lako može implementirati na računaru. Preciznije, u slučaju predikatske logike, metod rezolucije ima za cilj da dokaže da neki skup formula, koje su u pogodnom obliku, nema model (tj. nezadovoljiva je). Specijalno, ako želimo da ispitamo da li je neka (zatvorena) predikatska formula F valjana, onda ekvivalentno, možemo dokazati da je njena negacija nezadovoljiva. Takod e, metod rezolucije možemo koristiti za dokazivanje da je neka formula B semantička posledica nekog skupa formula A 1, A 2,..., A n, jer je to ekvivalentno sa uslovom da skup formula A 1, A 2,..., A n, B nema model. Glavna ideja metoda rezolucije u slučaju predikatske logike je analogna onoj koju smo izneli u slučaju iskazne logike. Formula F za koju želimo da dokažemo da nema model prvo mora biti u tzv. klauzalnoj formi, koja se zatim razbija na konačan skup klauzula. Svaka klauzula je (implicitno) univerzalno kvantifikovana disjunkcija literala. Pravilo rezolucije se primenjuje na klauzule C 1 i C 2 koje u sebi sadrže suprotne literale, tako što dobijamo novu klauzulu, koja nastaje brisanjem suprotnih literala a zatim spajanjem preostalih literala iz C 1 i C 2. Pravilo rezolucije čuva zadovoljivost, pa ako posle uzastopne primene pravila rezolucije dobijemo praznu klauzulu [], koja je nezadovoljiva, zaključujemo da je i polazni skup klauzula bio nezadovoljiv, što znači da je i formula F nezadovoljiva. Metod rezolucije za predikatski račun je pouzdan, tj. ako se tim metodom dobije prazna klauzula, onda je 1
2 početna formula zaista nezadovoljiva. Takod e, taj metod je i kompletan, što znači da ako je početna formula nezadovoljiva, metod rezolucije će u konačno mnogo koraka izvesti praznu klauzulu. Med utim, metod rezolucije ipak nije algoritam odlučivanja da li je neka predikatska formula zadovoljiva ili nije (jer takav metod (dokazano) ne postoji!): može da se desi da je formula zadovoljiva, a da se metod rezolucije ne zaustavlja (ne dobija se prazna klauzula, a metod rezolucije daje sve nove i nove klauzule). Razlika izmed u rezolucije u iskaznoj i predikatskoj logici je u tome, što klauzule u predikatskoj logici nisu fiksirane, nego se na njih mogu primeniti razne supstitucije. Da bismo dobili suprotne literale u klauzulama, dozvoljeno je primenjivati razne supstitucije slobodnih promenljivih, sve dok ne dobijemo suprotne literale (taj postupak se zove unifikacija). Takod e, u slučaju predikatske logike, predpripreme koje moramo odraditi da bismo metod rezolucije mogli primeniti na neku formulu su malo duže: konstrukcija pogodne, tzv. klauzalne forme podrazumeva da sve kvantifikatore izvučemo ispred formule (tj. dobijemo preneksnu formu formule), da se osobodimo egzistencijalnih kvantifikatora (tj. uradimo skolemizaciju) i da deo formule koji je bez kvantifikatora (tzv. matrica) bude u obliku konjunktivne normalne forme (tj. da je konjunkcija nekih disjunkcija literala). U praksi ponekad imamo sreće, pa je deo priprema već urad en. Recimo, početna formula je već u obliku konjunkcije, u svakom elementu konjunkcije kvantifikatori su izvučeni ispred formule, skolemizacija se uradi za svaki konjunkt pojedinačno, pa do klauzalne forme dolazimo kraćim putem (videti Primere 1-5). Naglasimo takod e da je metod rezolucije prilagod en računarima, koji nema intuiciju, pa samim tim neke tehničke stvari koje su zgodne za računare nisu zgodne za ljude i obrnuto. Na primer, da bismo lakše pratili dokaze, mi ćemo klauzule i dalje pisati u obliku disjunkcije literala (umesto da ih predstavimo kao skupove literala), ispisaćemo eksplicitno univerzalne kvantifikatore ispred klauzula (umesto da ih podrazumevamo), pogodnu supstituciju nećemo uvek tražiti sistematično, ponekad se prosto pogodna supstitucija vidi iz aviona (što se računaru najverovatnije nikada neće desiti), i tako dalje.
3 2 Klauzalna forma i Erbranova teorema Neka je L neki jezik prvog reda, koji sadrži simbole konstanti, relacijske i funkcijske simbole raznih arnosti, i X neki skup promenljivih. Zbog lakšeg snalaženja, po pravilu, za simbole konstanti ćemo korisiti simbole a, b, c,..., za relacijske simbole α, β, γ,..., za funkcijske simbole f, g, h,..., a za promenljive simbole x, y, z, u, v,... Za term kažemo da je bazni ako nema promenljivih. Bazna formula je formula koja nema promenljivih. Literal u predikatskoj logici je atomična formula ili negacija atomične formula. Klauzula je disjunkcija literala. Naravno, bazna klauzula je klauzula koja nema promenljivih. Klauzula C je bazna instanca klauzule C ako se može dobiti iz C supstitucijom nekih baznih termova umesto promenljivih. Definicija 1 Zatvorena formula je u klauzalnoj formi ako je u preneksnoj normalnoj formi tako da prefiks sadrži samo univerzalne kvantifikatore. Podsetimo se da je neka formula u preneksnoj formi ako su svi kvantifikatori ispred matrice (dela formule bez kvantifikatora), a da je fromula u preneksnoj normalnoj formi ukoliko je matrica u konjunktivnoj normalnoj formi. U sekciji 6. smo videli da se za svaku zatvorenu formulu F koja je u preneksnoj normalnoj formi može naći njena skolemova normalna forma koja nema egzistencijalnih kvantifikatora, koja nije ekvivalentna sa početnom formulom (jer je na drugom jeziku), ali koja ima model ako i samo ako formula F ima model. Prema tome, zaključujemo sledeće: Teorema 1 Za svaku zatvorenu formulu F postoji formula F koja je u klauzalnoj formi tako da formula F ima model ako i samo ako formula F ima model. Metod rezolucije kreće od formula koje su u klauzalnoj formi. Prema definiciji, ako je formula u klauzalnoj formi, onda je oblika ( x 1 )( x 2 )... ( x n )(C 1 C 2 C k ), gde su C i neke klauzule. S obzirom da se univerzalni kvantifikator slaže sa konjunkcijom, ta formula je ekvivalentna sa formulom u kojoj bi svaka klauzula bila pod uticajem svih kvantifikatora ( x 1 )( x 2 )... ( x n ). Ponekad
4 se univerzalni kvantifikatori ispred klauzula ne pišu eksplicitno, nego se podrazumevaju. Pored toga, klauzule se pišu kao skupovi odgovarajućih literala, a sama formula se zapisuje kao skup odgovarajućih klauzula. (Mi ćemo, ravnopravno, koristiti i eksplicitan zapis klauzula, kao disjunkcije literala, najčešće ispisujući i univerzalne kvantifikatore.) Glavna ideja koja se krije iza metode rezolucije jeste svod enje pitanja zadovoljivosti skupa klauzula na ispitivanje jednog specifičnog tipa modela tzv. Erbanovih modela (engl. Herbrand models). Naime, za razliku od iskazne logike, u slučaju predikatske logike ne postoji algoritam za odlučivanje da li je data formula zadovoljiva ili nije. Med utim, primenom Erbranove teoreme, umesto da ispitujemo klasu svih mogućih modela datog jezika, dovoljno je utvrditi da li posmatrana formula ima model jednog specifičnog tipa. Erbranova teorema, dokazana tridesetih godina XX veka postala je temelj više sistema za automatsko dokazivanje teorema, pa i metode rezolucije. Definicija 2 Neka je S neki skup klauzula. Erbranov univerzum od S, u oznaci H(S), je skup svih baznih termova formiranih nad jezikom skupa klauzula S. Specijalno, ako ne postoje simboli konstanti u S, Erbranov univerzum konstruišemo nad jednim dodatim simbolom konstante (najčešće označenim sa a). Primer 1 Ako je skup klauzula S = {α(x, f(x, a)) β(a, y), α(f(x, x), z)}, onda je Erbranov univerzum H(S) = {a, f(a, a), f(a, f(a, a)), f(f(a, f(a, a)), f(a, a)),... }. Naravno, Erbranov univerzum je ili konačan (kada nemamo funkcijske simbole) ili prebrojivo beskonačan. Definicija 3 Neka je S skup klauzula, H(S) njegov Erbranov univerzum. Erbranova baza za S, u oznaci B(S), je skup svih bazih atomarnih formula koji se mogu formirati od relacijskih simbola iz S i termova iz H(S). Primer 2 Za skup klauzula S = {α(x, f(x, a)) β(a, y), α(f(x, x), z)} Erbranova baza sadrži recimo sledeće atomarne formule: α(a, a), α(f(a, a), a), β(a, f(a, f(a, a))),...
5 Neka je S neki skup klauzula, koji odred uje neki jezik prvog reda L. Erbranova interpretacija od S je svaki model tipa L, koji za nosač ima Erbranovu bazu H(S), pri čemu se svaki bazni term interpretira kao on sam, dok je interpretacija relacijskih simbola proizvoljna. Prema tome, svako preslikavanje Erbranove baze B(S) u skup {, } odred uje jednu Erbranovu interpretaciju. Erbranovu interpretaciju možemo zadati i kao podskup Erbranove baze, tj. kao skup onih atomarnih formula iz B(S) koje su tačne u toj interpretaciji. Ukoliko je Erbranova interpretacija H model za S (tj. sve klauzule iz S su tačne u toj interpretaciji), kažemo da je H Erbranov model za S. Primetimo da za odred ivanje da li je data Erbranova interpretacija Erbranov model za skup klauzula S, dovoljno je zadati interpretaciju (istinitosnu vrednost) onih atomarnih formula iz B(S) koje učestvuju u S. Primer 3 Jedan Erbranov model za skup klauzula S = {α(x, f(a, a)), β(b, f(x, x)) α(a, a)} je zadat kao model sa nosačem H(S) u kome su tačne na primer sledeće atomarne formule: α(a, f(a, a)), α(b, f(a, a)), α(f(a, a), f(a, a)), α(f(a, b), f(a, a)),..., Prva važna teorema jeste:..., β(b, f(a, a)), β(b, f(b, b)),... Teorema 2 Neka je S skup klauzula. Tada S ima model ako i samo ako ima Erbranov model. Dokaz. Neka je M proizvoljan model za skup klauzula S. Erbranovu interpretaciju H M definišemo na prirodan način: ukoliko je ρ neki relacijski simbol arnosti n koji učestvuje u S, t 1, t 2,... t n B(S) proizvoljni elementi Erbranovog univerzuma, onda ćemo staviti da u Erbranovoj interpretaciji H M važi ρ(t 1, t 2,..., t n ) akko je interpretacija te atomarne formule u modelu M tj. ρ M (t 1 M, t 2 M,..., t n M ), tačna u modelu M. Dokažimo da je H M model od S. Kako je S univerzalno zatvorenje konjunkcije nekih klauzula, koje su disjunkcije nekih literala, dovoljno je dokazati da za svaku valuaciju promenljivih u Erbranovom univerzumu, u
6 svakoj klauzuli postoji bar jedan literal koji je tačan. Kako je M model za S, to znači da za svaku valuaciju promenljivih, sve klauzule C i iz S su tačne. Prema tome, za svaku klauzulu C i postoji bar jedan literal D ij koji je tačan. No, po definiciji, tada će isti taj D ij biti tačan u Erbranovoj interpretaciji H M, pa će u tom modelu biti tačna klauzula C i. Prema tome, H M je model od S. Obrnut smer je trivijalan. Prema tome, ispitivanje zadovoljivosti nekog skupa klauzula S smo sveli na ispitivanje da li S ima Erbranov model. No, ako je Erbranov univerzum beskonačan, ispitivanje da li postoji Erbranov model za S je i dalje zadatak koji zahteva ispitivanje beskonačno mnogo različitih interpretacija baznih atomarnih formula iz Erbranove baze. Teorema kompaktnosti za iskaznu logiku, med utim omogućava da dokažemo sledeću teoremu: Teorema 3 (Erbranova teorema) Skup klauzula S je nezadovoljiv ako i samo ako postoji konačan skup baznih instanci klauzula iz S koji je nezadovoljiv. Dokaz. Jedan smer je trivijalan: ako postoji konačan skup baznih instanci klauzula iz S koji je nezadovoljiv, onda je i skup S nezadovoljiv. Obrnuto, ako je S nezadovoljiv, dokažimo da postoji konačan skup baznih instanci klauzula iz S koji je nezadovoljiv. Svakoj atomarnoj formuli koja je bazna instanca klauzula iz S dodelimo neko iskazno slovo. Neka je Σ tako dobijen skup iskaznih formula. Zbog teoreme o kompaktnosti iskazne logike znamo da Σ ima model akko svaki konačan podskup ima model. Znamo da je S nezadovoljiv, što znači da nema svoj Erbranov model, iz čega sledi da Σ nema model. Prema tome, postoji neki konačan podskup od Σ koji nema model (tj. valuaciju takvu da su sve formule iz Σ tačne), pa odgovarajući skup baznih instanci klauzula isto ne može imati model (u predikatskoj logici). 3 Rezolucija u predikatskoj logici Na osnovu Teoreme Erbrana, pitanja zadovoljivosti nekog skup klauzula smo sveli na pitanje zadovoljivosti skupa svih baznih instanci klauzula iz S (u
7 oznaci S ). Ako je skup S nezadovoljiv, on je nezadovoljiv kao skup iskaznih formula, pa se za ispitivanje nezadovoljivosti može koristiti, recimo, metod rezolucije za iskaznu logiku. Odgovarajuće pravilo se zove bazna rezolucija: Neka su C 1 i C 2 bazne klauzule koje sadrže dva suprotna literala, l C 1 i l C 2. Kažemo da se klauzule sudaraju na komplementarnim literalima l i l. Rezolventa od C 1 i C 2 je klauzula Res(C 1, C 2 ) = (C 1 \ {l}) (C 2 \ { l}). Prema tome, bazna rezolucija je samo specijalno primenjeno pravilo rezolucije iz iskazne logike, pa prema tome, važi sve što znamo o njoj: ako se posle uzastopne primene bazne rezolucije na skup baznih instanci skupa S dobije prazna klauzula, onda je skup S nezadovoljiv (pa je nezadovoljiv i skup klauzula S). I obrnuto, ako je skup S nezadovoljiv, onda se posle konačno mnogo primena bazne rezolucije na taj skup može dobiti prazna klauzula. Naravno, ukoliko je skup S zadovoljiv, može da se desi da se procedura primene pravila bazne rezolucije nastavi beskonačno, ne dajući nikakav odgovor. No, ovako primenjeno pravilo bazne rezolucije na skup baznih instanci klauzula iz skupa S može biti izuzetno neefikasno. Opšti metod rezolucije koji je predložio John Alan Robinson 1965. godine ispravlja ovu neefikasnost, tako što radi direktno sa klauzulama (koje ne moraju biti bazne). Integralni deo tog pravila je tzv. unifikacija, tj. nalaženje supstitucije koja čini da dva terma ili dve formule postanu iste. Podsetimo se da je supstitucija u predikatskoj logici svako preslikavanje koje promenljivama dodeljuje neke termove. Postoje različiti načini za zapisivanje neke supstitucije: važno je da se navedu sve one promenljive i njihove slike, koje se ne preslikavaju identično. Tako, na primer, supstituciju σ koja sve promenljive preslikava identično, sem promenljiva x, y, z, za koje važi možemo zadati zapisom (ili sa strelicama umesto ), ili σ(x) = t 1, σ(y) = t 2, σ(z) = t 2 σ = {x t 1, y t 2, z t 3 }, σ = {t 1 /x, t 2 /y, t 3 /z}.
8 Ako je σ neka supstitucija, a E neki izraz (term, literal ili klauzula ili skup klauzula), onda rezultat Eσ primene supstitucije na E jeste izraz koji nastaje simultanom zamenom svih promenljivih x iz tog izraza svojim slikama σ(x). Kažemo i da je Eσ jedna instanca od E. Ako su σ i θ dve supstitucije, onda se rezultat primene njihove kompozicije σθ na izraz E definiše kao izraz (Eσ)θ (tj. primena kompozicije dve supstitucije jeste njihova uzastopna primena). Za dva izraza e 1 i e 2 kažemo da su unifikabilni ako postoji supstitucija σ takva da je e 1 σ = e 2 σ. U tom slučaju kažemo da je σ njihov unifikator. Naravno, dva izraza ne moraju biti unifikabilni. S druge strane, za neke izraze može postojati i više unifikatora. Primer 4... Za izraz e kažemo da je prost ako je term ili atomarna formula. Definicija 4 Neka je X konačan skup prostih izraza. Supstituciju θ zovemo unifikatorom skupa X ako je Xθ jednočlan skup. Ako skup X ima unifikator, kažemo da je unifikabilan. Unifikator θ je najopštiji unifikator (engl. most general unifier, MGU) skupa X ako za svaki unifikator σ skupa X postoji supstitucija µ takva da je σ = θµ. Postoje razni algoritmi za unifikaciju, neki su efikasni a neki su manje efikasni. Mnogi od njih su zasnovani na korišćenju pogodnih struktura podataka. Na primer, dva takva algoritma za nalaženje najopštijeg unifikatora data su u knjizi [Ben Ari]. Sada smo spremni da formulišemo Opšte pravilo rezolucije za predikatsku logiku. Ovo pravilo podrazumeva da klauzule na koje ga primenjujemo nemaju zajedničke promenljive. S obzirom da su klauzule implicitno univerzalno kvantifikovane, taj tehnički zahtev se može lako ispuniti, jednostavnim preimenovanjem promenljivih, ne menjajući pri tome zadovoljivost klauzula. Ako je l neki literal, sa l c označavamo njegov suprotni literal, a ukoliko je L = {l 1, l 2,..., l n } neki skup literala, onda je L c = {l c 1, l c 2,..., l c n }. Definicija 5 (Opšte pravilo rezolucije) Neka su C 1 i C 2 dve klauzule koje nemaju zajedničke promenljive. Neka su L 1 = {l 11, l 12,..., l 1n } C 1,
9 L 1 = {l 21, l 22,..., l 2m } C 2 skupovi literala tako da je skup L 1 L c 2 unifikabilan, i neka je σ njegov najopštiji unifikator. Kažemo da se C 1 i C 2 sudaraju na skupovima literala L 1 i L 2. Rezolventa klauzula C 1 i C 2 je klauzula Primer 5 Neka je Res(C 1, C 2 ) = (C 1 σ \ L 1 σ) (C 2 σ \ L 2 σ). C 1 = {α(f(x), g(y)) β(x, y)} C 2 = { α(f(f(a)), g(z)) β(f(a), g(z))}. Jedan najopštiji unifikator za skupove literala L 1 = {α(f(x), g(y))} i L 2 c = {α(f(f(a)), g(z))} je σ = {f(a)/x, z/y}. Rezolventa je tada klauzula β(f(a), z) β(f(a), g(z)). Kao u slučaju iskazne logike, metod rezolucije za predikatsku logiku se definiše na sledeći način: Polazimo od konačnog skupa klauzula S. Konstruišemo niz skupova klauzula na sledeći način: S 0 = S, a S n+1 se dobija iz S n dodavanjem rezolvente nekih od klauzula iz S n. Ako u jednom od koraka skup S n sadrži praznu klauzulu, procedura se zaustavlja, i vraća odgovor skup S nije zadovoljiv. Ako se za neki n skupovi S n i S n+1 poklapaju, tj. ne postoje klauzule u skupu S n na koje bi se moglo primeniti pravilo rezolucije, tada se procedura zaustavlja i vraća odgovor skup S je zadovoljiv. Kao što smo ranije napomenuli, može da se desi da se ovako opisana procedura ne zaustavlja (taj slučaj će se desiti svaki put kada skup klauzula S ima samo beskonačne modele - videti Primer...), pa ova procedura nije algoritam za odlučivanje zadovoljivosti konačnih skupova klauzula). Dve najvažnije osobine metoda rezolucije za predikatsku logiku su pouzdanost (saglasnost) i kompletnost (za pobijanje zadovoljivosti).
10 Teorema 4 (Pouzdanost Metoda rezolucije) Ako se metodom rezolucije iz konačnog skupa klauzula S izvede prazna klauzula, skup S nije zadovoljiv Dokaz. Treba dokazati da pravilo rezolucije čuva zadovoljivost: ako su klauzule C 1 i C 2 bile (zajedno) zadovoljive, onda je zadovoljiva i njihova rezolventa. Prema tome, ako se dobije prazna klauzula, koja nije zadovoljiva, onda nije bio zadovoljiv ni početni skup klauzula.... Teorema 5 (Kompletnost Metoda rezolucije) Ako je konačan skup klauzula S nezadovoljiv, onda se metodom rezolucije može dobiti prazna klauzula. Dokaz. Dokaz se oslanja na kompletnost metoda rezolucije za iskaznu logiku, i na tzv. Lifting lemu, koja kaže da se za svaku primenu bazne rezolucije mogu pronaći klauzule, na koje se primenjuje opšte pravilo rezolucije... Preciznije: Neka su C 1 i C 2 dve klauzule sa baznim instancama C 1 i C 2 redom. Ako je C 3 rezolventa klauzula C 1 i C 2, onda postoji rezolventa klauzula C 1 i C 2 takva da je C 3 bazna instanca klauzule C 3. Primetimo da u opisu metoda rezolucije nije rečeno kao birati klauzule na koje ćemo primeniti pravilo rezolucije. Način na koji se biraju klauzule za rezolviranje je veoma bitno za efikasnost metoda rezolucije. Danas postoje razni metodi za optimizaciju rada metoda rezolucije (na primer, linearna rezolucija, prednost jediničnim klauzulama, skup potpore, dodavanje pravila paramodulacije ili grupisanje,...)