Professional Documents
Culture Documents
Zagrade se koriste na uobičajeni način za grupiranje. Termi i formule su stablaste strukture podataka, a ne
nizovi znakova.
Kvantifikatori ∀x A i ∃x A su većeg prioriteta od logičkih operatora; prema tome izraz ∀x A ∧ B je
ekvivalentan izrazu (∀x A) ∧ B. Postoji još i alternativna sintaksa ∀x . A i ∀x . B koja je manjeg prioriteta
od logičkih operatora pa prema tome izraz ∀x . A ∧ B je ekvivalentan izrazu ∀x . (A ∧ B).
Ugniježdeni izrazi poput ∀x ∀y A mogu se skraćeno zapisati kao ∀xy A.
Primjer: Aritmetički jezik može imati konstantne simbole 0,1,2,... i funkcijske simbole +,-,*,/ te
predikatne simbole =,<,>,.... Neformalno se može prihvatiti "infix-na" notacija za funkcijske i predikatne
simbole. Termi su na primjer 0 i (x+3)-y; a formule: y=0 i x+y < y+z.
Uočite da je znak ">" dvomjesni relacijski simbol koji se koristi u "infix-noj" notaciji.
1/15
Studentov mentor je član istog fakulteta:
∀xy (student(x) ∧ fakultet(y) ∧ član(x, y) → član(mentor(x), y))
U ovom primjeru korištenje funkcije "mentor" pretpostavlja da svaki sutdent ima točno jednog mentora.
U primjeru se znak 2 koristi kao standardna oznaka za kvadriranje. Znak "=" je relacijski simbol.
Jezik prvog reda pretpostavlja nepraznu domenu pa prema tome izraz ∀x P(x) za sobom povlači izraz ∃x
P(x). Ako bi domena mogla biti prazna tada ne bi trebalo vrijediti ni ∃x t. Uočite da je izraz ∀x ∃y y2 = x
točan samo u skupu kompleksnih brojeva, a netočan ako se radi o cijelim ili realnim brojevima. Svojstva
domene se određuju prema skupu izraza koje ta domena mora zadovoljiti.
Postoji mnogo drugih oblika logike. "Many-sorted first order logic" dodjeljuje tipove svakoj varijabli,
funkcijskom i predikatnom simbolu te provjeru tipova. Tipovi se nazivaju "sorts" i označavaju nepraznu
domenu. Logika drugo reda dozvoljava kvantifikaciju nad funkcijama i predikatima. Može se izraziti
matematička indukcija:
korištenjem kvantifikatora nad unarnim predikatom P. U logici drugog reda ove funkcije i predikati
moraju biti prvog reda, tj. ne mogu kao argumente imati funkcije ili predikate. Logike višeg reda
dozvoljavaju neograničenu kvantifikaciju nad funkcijama i predikatima bilo kojeg reda.
Definicija 5. Neka je £ jezik prvog reda. Interpretacija I jezika £ je par (D, I) gdje je D neprazni skup,
domena ili "universe". Operacija I pridjeljuje simbole članovima, konstantama, funkcijama ili skupovima:
• ako je c simbol konstante (iz £)onda je I[c] ∈ D
• ako je f n-dimenzionalni funkcijski simbol onda je I[f] ∈ Dn → D (što znači da je I[f] n-
dimenzionalna ili n-mjesna funkcija na D)
• ako je P n-dimenzionalni relacijski simbol onda je I[P] ⊆ Dn (što znači da je I[P] n-
dimenzionalna relacija na D)
Na mnogo načina se može raspravljati o vrijednostima varijabli u nekoj interpretaciji. Jedan od načina je
dodjeljivanje simbola konstante svakom elementu domene D. Prirodniji način je predstavljanje vrijednosti
varijable u okruženju poznatom kao vrednovanje, "valuation".
2/15
Pišemo V{a/x} kao oznaku za vrednovanje u kojem smo varijabli x dodijelili vrijednost a, a ostalo nismo
mijenjali. U pravilu, mijenjamo vrijednost samo jedne varijable u svakom trenutku. To je semantički
istovjetno supstituciji varijable x.
Definicija 7. Neka je A formula. Tada za interpretaciju I = (D, I) pišemo ╞I,V A što znači "A je istinit u I
uz V." To je definirano slučajevima izvedbe formule A:
╞I,V P(t1,..., tn) ako vrijedi I[P](IV[t1],..., IV[tn]) (tj. ako relacija I[P] sadrži vrijednosti argumenata)
╞I,V t = u ako je IV[t] jednako IV[u] (ako je znak jednakosti "=" predikatni simbol u jeziku tada on
označava jednakost)
╞I,V B ↔ C ako su ╞I,V B i ╞I,V C ili oba istinita ili oba neistinita
╞I,V ∃x B ako postoji m ∈ D tako da je ╞I,V{m/x} B istinito (B je istinito kad x ima vrijednost m)
Pišemo ╞I A a za svaki V vrijedi ╞I,V A. Očigledno je da ako je A zatvoren, tj. ne sadrži slobodne varijable
tada je njegova istinitost nezavisna o valuaciji.. Ako A sadrži slobodne varijable x1,..., xn tada su one
univerzalno kvantificirane:
Za razliku od propozicijske logike, modeli mogu biti beskonačni i može postojati beskonačan broj
modela. Ne postoji način dokazivanja valjanosti provjerom svih modela već se moramo osloniti na
dokaze.
3/15
Primjer 5. Formula P(a) ∧ ¬P(b) je zadovoljiva. Uzmimo interpretaciju D = {0,1} i I definiran kao:
I[a] = 0
I[a] = 1
I[P] = {0}
S druge strane, P(x) ∧ ¬P(y) nije zadovoljivo. Slobodne varijable su univerzalno kvantificirane pa je to
ekvivalentno ∀xy (P(x) ∧ ¬P(y)).
Formula (∃x P(x)) → P(c) "holds" u interpretaciji (D, I) gdje je D = {0, 1}, I[P] = {0} i I[c] = 0. (Drugim
riječima P(x) znači 'x jednako 0' a c označava 0.) Ako modificiramo interpretaciju i stavimo da je I[c] = 1
tada formula više ne vrijedi. Dakle formula je zadovoljiva ali nije valjana (valid).
Formula (∀x P(x)) → (∀x ( P( f(x))) je valjana. Neka je (D,I) interpretacija. Ako vrijedi ∀x P(x) u toj
interpretaciji tada vrijedi P(x) za sve x ∈ D pa je prema tome je I[P] = D. Simbol f označava određenu
funkciju I[f] ∈ D → D. Kako je I[P] = D i I[f](x) ∈ D za sve x ∈ D, vrijedi formula ∀x P( f(x)).
Formula ∀x y x = y je zadovoljiva, ali ne i valjana; istinita je u svim domenama koje se sastoje od točno
jednog elementa. (Prazna domena nije dozvoljena u logici prvog reda).
Primjer 6. Neka je £ jezik prvog reda koji se sastoji od konstante 0 i 2-mjesnog funkcijskog simbola +.
Interpretacija jezika I je bilo koja neprazna domena D zajedno s vrijednostima I[0] i I[+], uz I[0] ∈ D i
I[+]∈ D x D → D. U jeziku £ možemo iskazati sljedeće aksiome:
x+0=x
0+x=x
(x + y) + z = x + (y + z)
• Skup svih stringova gdje nam 0 označava prazan string, a + nam označava spajanje stringova.
• Skup svih podskupova iz A, gdje nam je 0 prazan skup, a + predstavlja uniju.
• Skup svih funkcija iz A → A, gdje nam 0 predstavlja "identity function", a + kompoziciju.
Zadatak 11. Razmotrimo sljedeće izraze: svatko voli nekoga i postoji netko koga svi vole:
Da li (1) podrazumijeva (2)? Da li (2) podrazumijeva (1)? (Uzmite u obzir neformalno značenje i
formalnu semantiku definiranu maloprije.)
Zadatak 12. Napišite formulu koja je istinita točno u onim domenama koje sadrže najmanje m elemenata.
(kažemo da karakterizira te domene). Napišite formulu koja karakterizira domenu sadržavajući najviše m
elemenata.
Zadatak 13. Neka je znak "=" predstavlja 2-dimenzionalni predikatni simbol koji zapisujemo infiksnom
notacijom: na primjer x = y umjesto =(x, y). Uzmite u obzir sljedeće aksiome:
∀x x = x (1)
∀xy (x = y → y = x) (2)
4/15
∀xyz (x = y ∧ y = z → x = z) (3)
Neka je "univers" skup prirodnih brojeva, N = {0, 1, 2,…}. Koji aksiomi vrijede ako je I[=]:
• razna relacija, Ø?
• univerzalna relacija, {(x, y) | x, y ∈ N}?
• relacija {(x, x) | x ∈ N}?
• relacija {(x, y) | x, y ∈ N ∧ x + y je paran}?
• relacija {(x, y) | x, y ∈ N ∧ x + y = 100}?
• relacija {(x, y) | x, y ∈ N ∧ x ≡ y (mod 16)}?
Zadatak 14. Neka su "=" i R 2-dimenzionalni relacijski simboli. Razmotrite sljedeće aksiome:
∀x ¬R(x, x) (1)
∀xy ¬(R(x, y) ∧ R(y, x)) (2)
∀xyz (R(x, y) ∧ R(y, z) → R(x, z)) (3)
∀xy (R(x, y) ∨ (x = y) ∨ R(y, x)) (4)
∀xz (R(x, z) → ∃y (R(x, y) ∧ R(y, z))) (5)
Pronađite dvije interpretacije koje zadovoljavaju aksiome 1-3 a ne zadovoljavaju aksiome 4 i 5. Pronađite
dvije interpretacije koji zadovoljavaju aksiome 1-4 a ne zadovoljavaju aksiom 5. Pronađite dvije
interpretacije koji ne zadovoljavaju aksiome 1-5. Razmatrajte samo interpretacije kod kojih znakom =
označava relaciju jednakosti. (Cilj ove vježbe je ispitati sposobnost uočavanja veze među aksiomima i
tipičnih matematičkih objekata koji ih zadovoljavaju.)
5/15
2. Formalno zaključivanje u logici prvog reda
Ovo poglavlje opisuje sintaksu vezanih i nevezanih varijabli i supstituciju. Sadrži važnije ekvivalencije
kvantifikatora. Opisuje i pravila nad kvantifikatorima slijednom računu.
U izrazu (∃x P(x)) ∧ Q(x), x unutar prve zagrade predstavlja vezanu varijablu, dok unutar druge zagrade
predstavlja nevezanu. Dakle isti simbol predstavlja i vezanu i nevezanu varijablu. To se može izbjeći
preimenovanjem vezanih varijabli. Preimenovanjem osiguravamo i međusobnu razlučivost među svim
vezanim varijablama jednog zapisa formule.
∀u ∃y R(u,y,z) OK
∀x ∃w R(x,w,z) OK
∀u ∃y R(x,y,z) nije konzistentno
∀y ∃y R(y,y,z) sraz s vezanom varijablom y
∀z ∃y R(z,y,z) sraz sa slobodnom, nevezanom varijablom z
2.2. Supstitucija
Neka je A formula, t član (term) i x varijabla, tada možemo zapisati izraz A[t/x] sa značenjem da varijablu
x unutar formule A zamjenjuje član t. Supstitucija vrijedi samo na onim mjestima unutar formule gdje se x
pojavljuje kao nevezana varijabla. Izraz A[t/x] se čita "A s t za x". Suspstitucija unutar terma u zapisuje se
na isti način: u[t/x]; analogno tome unutar klauzule C : C[t/x].
Supstitucija ima smisla samo kad se sve vezane varijable unutar formule A razlikuju od svih varijabli iz t.
To se postiže preimenovanjem vezanih varijabli formule A. Na primjer, ako vrijedi ∀x A, tada vrijedi i
A[t/x] za sve t; formula vrijedi i ako ispustimo ∀x i zamijenimo x bilo kojim termom. S druge pak strane
izraz ∀x ∃y x=y je istinit u svim modelima, a izraz ∃y y+1=y nije. Ne možemo zamijeniti x s y+1, jer će
kvantifikator ∃ vezati samo y te supstitucija nije valjana. Prvo treba preimenovati vezanu varijablu y: ∀x
∃z x=z, sada je moguća supstitucija x izrazom y + 1, zatim pišemo ∃z y + 1 = z. Ova formula je istinita u
svim modelima, bez obzira na značenje simbola + i 1.
6/15
Sljedeće ekvivalencije korisne su za transformiranje i pojednostavljenja kvantificiranih formula. Biti će
korištene u konverziji formula u prenex-normalni oblik, za koji je karakteristično da se svi kvantifikatori
navode na početku pojedinog izraza.
¬( ∀x A ) ≅ ∃x ¬A
¬( ∃x A ) ≅ ∀x ¬A
Izvlačenje kvantifikatora izvan konjunkcije i disjunkcije (uz uvjet da x nije slobodan u B):
(∀x A) ∧ B ≅ ∀x (A ∧ B)
(∀x A) ∨ B ≅ ∀x (A ∨ B)
(∃x A) ∧ B ≅ ∃x (A ∧ B)
(∃x A) ∨ B ≅ ∃x (A ∨ B)
Pravila distribucije:
(∀x A) ∧ (∀x B) ≅ ∀x (A ∧ B)
(∃x A) ∨ (∃x B) ≅ ∃x (A ∨ B)
(∀x A) → B ≅ ∃x (A → B)
(∃x A) → B ≅ ∀x (A → B)
Ekspanzija:
∀x A ≅ (∀x A) ∧ A[t/x]
∃x A ≅ (∃x A) ∨ A[t/x]
Korištenjem pravila asocijacije i komutacije za ∧ i ∨ kvantifikator se može izvući izvan bilo koje
konjunkcije ili disjunkcije.
Distribucijska pravila razlikuju se od pravila izvlačenja, u njima se dva kvantifikatora zamjenjuju jednim.
(Uočite da kvantificirane varijable vjerojatno imaju različite nazive te jednu od njih treba preimenovati).
Ovisno o situaciji korištenje distribucijskih pravila može biti bolje ili gore od izvlačenja. Ne postoje
pravila distribucije za ∀ nad ∨ i ∃ nad ∧.
Dva supstitucijska pravila ne uključuju eksplicitno kvantifikatore ali omogućavaju korištenje izraza x = t
kojim se x zamjenjuje sa t u ograničenom kontekstu:
(x = t ∧ A) ≅ (x = t ∧ A[t/x])
(x = t → A) ≅ (x = t → A[t/x])
∃x (x = a ∧ P(x)) ≅ ∃x (x = a ∧ P(a))
≅ ∃x (x = a) ∧ P(a)
≅ P(a)
Sljedeću formulu teško je dokazati korištenjem slijednog računa a jednostavno korištenjem ekvivalencija:
7/15
∃z (P(z) → P(a) ∧ P(b)) ≅ ∀z P(z) → P(a) ∧ P(b)
≅ ∀z P(z) ∧ P(a) ∧ P(b) → P(a) ∧ P(b)
≅t
Zadatak 15: Verificirajte navedene ekvivalencije korištenjem definicije istine za logiku prvog reda.
Zadatak 16: Objasnite zašto sljedeći izrazi nisu ekvivalencije. Jesu li implikacije?
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A, Γ ⇒ ∆ Γ ⇒ ∆, A[ t/ x]
(∃l) (∃r)
∃x A, Γ ⇒ ∆ Γ ⇒ ∆ ∃x, A
Pravilo (∃l) osigurava da varijabla x ne bude nevezana unutar konkluzije. Dualno je ∀-pravilu; svaki
izraz koji uključuje ∀ može se lako transformirati u izraz sa ∃, a dokaz će imati istu formu. Npr.
Implikacija ∀x P(x) ⇒ ∀y P(f(y)) može se transformirati u ∃y P(f(y)) ⇒ ∃x P(x).
Primjer 11 Zakon distribucije za ∃. Pravilo (∃r) uklanja kvantifikator instancirajući vezanu varijablu x.
Općenito, moguće je vezanu varijablu instancirati unutar svakog člana.
A ⇒ A, B
A ⇒ A ∨ B(∨r)
A ⇒ ∃x ( A ∨ B )( ∃r )
∃x A ⇒ ∃x ( A ∨ B )( ∃l) ∃x B ⇒ ∃x ( A ∨ B )( ∃l)
∃x A ∨ ∃x B ⇒ ∃x ( A ∨ B )( ∨l)
A, B[ y / x ] ⇒ A ∧ B
A, B[ y / x ] ⇒ ∃x (A ∧ B)( ∃r)
A, ∃x B ⇒ ∃x (A ∧ B)( ∃l)
8/15
∃x A, ∃x B ⇒ ∃x (A ∧ B)( ∃l)
∃x A ∧ ∃x B ⇒ ∃x (A ∧ B)( ∧l)
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
9/15
3. Klauzule u predikatnoj logici
U nastavku su opisane dvije metode dokazivanja: postupak Davis-Putnam i rezolucija.
Postupak Davis-Putnam poznat je još od 1960.g. i ne primjenjuje se već desetljećima. Ali, kako je
propozicijska logika bivala sve značajnija, ponovno je otkrivena efikasnost metode Davis-Putnam.
Primjenjivana je u rješavanju nekih otvorenih pitanja iz kombinatorike. Konkurencija joj je OBDD, koji
se primjenjuje uglavnom u sklopovskom dizajnu.
Rezolucija je prikladna metoda dokazivanja za logiku prvog reda. Prvo će biti razmatrana
rezolucija do prazne klauzule (ground resolution), što je primjenjivo u propozicijskoj logici. Iako je od
malog praktičnog značaja, ukazuje na neke važnije koncepte. Metoda rezolucija nije prikladna za ručno
dokazivanje raspisivanjem na papiru, ali ju je zato lako automatizirati i primijeniti na računalu: ne koristi
aksiome i ima samo jedno pravilo izvođenja.
Obje spomenute metode zahtijevaju da početna formula bude negirana, zatim prevedena u CNF
("Conjunctive Normal Form") – konjunktivni normalni oblik (konjunkcija disjunkcije literala).
Disjunkciju literala zovemo klauzula, i piše se kao skup literala. Pretvorba negirane formule u CNF daje
skupom klauzula. Obje metode traže kontradikciju unutar skupa klauzula; ako je skup klauzula
nezadovoljiv, tada nije zadovoljiva niti negirana formula, stoga originalna formula, koja je u pozitivu,
mora biti valjana.
Opovrći skup klauzula znači dokazati da je nekonzistentan. Takav način dokazivanja nazivamo
dokaz pobijanjem ili opovrgavanjem ("refutation").
¬K1 ∨ … ∨ ¬Km ∨ L1 ∨ … ∨ Ln
Logički operator ILI je komutativan, asocijativan i idempotentan pa poredak literala nije bitan. Gornja
klauzula logički je ekvivalentna implikaciji:
( K1 ∧ … ∧ Km ) → ( L1 ∨ … ∨ Ln)
K1 , … , Km → L 1 , … , L n
t∧A≅A
A ∧ (A ∨ B) ≅ A
A ∧ (¬A ∨ B ) ≅ A ∧ B
A ≅ ( A ∧ B ) ∨ ( A ∧ ¬B )
Opis algoritma:
10/15
1. Ukloniti tautologije: {P, ¬P,…}
3. Ukloniti sve klauzule koje sadrže čiste literale. Za literal L kažemo da je čist ako u promatranom
skupu klauzula ne postoji niti jedna klauzula koja sadrži ¬L.
4. Ako se kao rezultat dobije prazna klauzula, došlo je do opovrgavanja. U protivnom, ako nije preostala
niti jedna klauzula, početni skup klauzula je zadovoljiv.
To je postupak odlučivanja. Mora završiti u konačnom broju koraka jer svako grananje po stanjima
uklanja po jedan propozicijski simbol. Zhang i Stickel (1994) predložili su neke efikasne algoritme za
izvođenje postupka "Davis-Putnam".
Tautologije uklanjamo jer su uvijek istinite pa stoga ne mogu sudjelovati u donošenju odluka
kontradikcijom. Za usamljene literale možemo uvijek pretpostaviti da mogu biti istiniti te brisanje
klauzula koje ih sadržavaju možemo smatrati degeneriranim grananjem, gdje imamo samo jedno stanje.
Primjer 13 Metoda "Davis-Putnam" može pokazati da promatrana formula nije teorem. Razmotrimo
formulu P ∨ Q ⇒ Q ∨ R. Nakon negiranja i prevođenja u CNF dobivamo 3 klauzule {P,Q}, {¬Q} i
{¬R}. Metoda "Davis-Putnam" brzo dolazi do rezultata:
11/15
3.3. Uvod u postupak rezolucije
Dekompozicija je u biti sljedeće pravilo zaključivanja:
B∨A ¬B ∨ C
A∨C
Kako bi se uvjerili u ispravnost postupka zaključivanja, uočimo da B mora biti ili lažan ili istinit.
• ako B je B lažan, onda je B ∨ A ekvivalentno sa A, pa dobivamo A ∨ C
• ako je B istinit, onda je ¬B ∨ C ekvivalentno sa C, pa dobivamo A ∨ C
D→B B→C
D→C
B ¬B
f
Postupak rezolucije koristi disjunkcije. Cilj je dokazati kontradikciju, a time opovrći valjanost formule.
Slijedi opis metode za dokazivanje valjanosti formule A:
3. Nad skupom klauzula ponavljati postupak rezolucije, što će rezultirati novim klauzulama – to su
sve konsekvence (posljedice) formule ¬A.
Rezolucija uzima dvije klauzule i kreira jednu novu. Skup klauzula je održavan; dvije klauzule odabiru se
iz skupa prema određenoj strategiji, a nova klauzula se pridodaje u početni skup. Za m = 0 ili n = 0 nova
klauzula biti će manja od roditeljskih; a za m = n = 0 novonastala klauzula bit će prazna. Klauzula je
istinita (u nekoj interpretaciji), ako je jedan od literala istinit, prazna klauzula dakle ukazuje na
kontradikciju i pišemo . Ako se generira prazna klauzula tada je postupak rezolucije završen.
P∧Q→Q∧P
12/15
¬( P ∧ Q → Q ∧ P )
Moguće je kombinirati korak 1 (eliminacija →) i korak 2 (uvlačenje negacije unutar zagrade) koristeći
pravilo: ¬(A → B) ≅ A ∧ ¬B:
(P ∧ Q) ∧ ¬(Q ∧ P)
(P ∧ Q) ∧ (¬Q ∨ ¬ P)
Korak 3 (uvlačenje disjunkcija unutar zagrade) nema se na što primijeniti. Dobili smo klauzule:
{Q} {¬Q}
{}
Rezolvent, novonastala klauzula, je prazna klauzula, obilježava se znakom . Dokazali smo da vrijedi:
P∧Q → Q∧P koristeći se negacijom istog izraza kao pretpostavkom što je rezultiralo kontradikcijom.
{Q} {¬Q}
Sljedeći primjer je (P ↔ Q) ↔ (Q ↔ P). Koraci pretvorbe u klauzule ostavljeni su za vježbu (za početak
treba negirati formulu). Kao rezultat dobivamo sljedeće klauzule
{Q} {¬Q}
Uočite da stablo sadrži {Q} i {¬Q}, a ne {Q, Q} i {¬Q, ¬Q}. Ne smijemo zaboraviti ukloniti
redundantne literale. Rezolucijom {Q, Q} i {¬Q, ¬Q} (uz zadržana ponavljanja) dobili bi {Q, ¬Q}, što
je tautologija. Tautologije su u postupku rezolucije beskorisne, ne vode nikamo.
13/15
Iz ovih primjera bi se moglo zaključiti da postupak dokazivanja uključuje svake klauzule i to točno
jednom. Općenito, klauzulu možemo koristiti po volji mnogo puta. Problemi često sadržavaju čak i
nepotrebne klauzule koje se uopće i ne koriste.
{M, N} {¬M, P}
{N, P} {¬N, P}
{P} { ¬P}
Klauzule nisu ispitivane slučajnim redoslijedom. U nastavku su opisane neke strategije dokazivanja:
14/15
Traženje od cilja unatrag. U svakom koraku rezolucije barem jedna klauzula uključuje negiranu
konkluziju. Ne zaključujemo na slijepo samo na osnovi pretpostavki – jer, iako je skup pretpostavki
konzistentan, za uočavanje kontradikcije potrebna je i negirana konkluzija. Takva strategija zove se
korištenje skupa podrške ("set of support").
Linearna rezolucija. Dokaz ima linearnu (slijednu) strukturu: svaki novonastali član postaje roditeljska
klauzula za sljedeći korak rezolucije. Nadalje, druga roditeljska klauzula je uvijek iz početnog skupa
klauzula. Ta jednostavna struktura je vrlo efikasna jer je dovoljno pamtiti samo novonastale članove.
Sličnu strategiju koristi Prolog.
Zadatak 22. Detaljnije objasnie konverziju gore navedenog primjera u skup klauzula.
Svaka nova klauzula posljedica je već postojećih. Do kontradikcije može doći jedino kada početni skup
klauzula nije konzistentan. Klauzulu smijemo ukloniti iz skupa klauzula ako time ne utječemo na
konzistentnost skupa. Svaku tautologiju valja ukloniti jer je ona istinita u svim interpretacijama.
Rezolucijom iz prve dvije proizlazi {P,R}. Kako je svaka klauzula disjunkcija, svaka interpretacija koja
zadovoljava {P,R} zadovoljava i {P,Q,R}. Prema tome {P,Q,R} ne može prouzročiti nekonzistentnost i
valja je ukloniti.
15/15