You are on page 1of 15

1.

Logika prvog reda


Logika prvog reda ("First-order Logic", FOL) proširuje propozicijsku logiku dopuštajući zaključivanje
(rasuđivanje) o članovima nekog nepraznog prostora (na primjer brojevima). Koriste se kvantifikatori "za
sve" - ∀ i "postoji" - ∃. U logici prvog reda varijable poprimaju vrijednosti pojedinih članova prostora ali
ne mogu biti funkcije ili predikati. Takve varijable se koriste u logikama drugog i viših redova.

1.1. Sintaksa logike prvog reda


Term predstavlja pojedinog člana, a formula predstavlja istinosnu vrijednost. Pretpostavljamo postojanje
beskonačnog izvora varijabli x, y,... koje poprimaju vrijednosti članova. Jezik prvog reda (first-order
language) definira simbole koji se pojavljuju u termima i formulama. Jezik prvog reda £ sadrži, za sve n ≥
0, skup n-dimenzionalnih funkcijskih simbola (f, g, ...) i n-dimenzionalnih predikatnih simbola (P, Q, ...).
Takvi skupovi mogu biti prazni, konačni ili beskonačni.
Simboli konstanti a, b,... su zapravo 0-dimenzionalni funkcijski simboli. Predikatni simboli se također
nazivaju relacijskim simbolima. U prologu se funkcijske simboli nazivaju funktori.

Definicija 3. Termi t, u,... jezika prvog reda definirani su rekurzivno:


• Varijabla je term.
• Simbol konstante je term.
• Ako su t1,..., tn termi i f je n-dimenzionalni funkcijski simbol onda je f(t1,...,tn) term.

Definicija 4. Formule A, B, ... jezika prvog reda su definirane rekurzivno:


• Ako su t1,..., tn termi i P je n-dimenzionalni predikatni simbol onda je P(t1,...,tn) formula (znana i
kao atomska formula).
• Ako su A i B formule onda su ¬A, A ∧ B, A ∨ B, A → B, A ↔ B također formule.
• Ako je x varijabla i A je formula onda su formule i: ∀x A i ∃x A.

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.

1.2. Primjeri izraza u logici prvog reda


Svi studenti su vrijedni:
∀x (student(x) → vrijedan(x))

Prihod bilo kojeg političara je veći od prihoda vozača:


∀xy (političar(x) ∧ vozač(y) → prihod(x) > prihod(y))

Uočite da je znak ">" dvomjesni relacijski simbol koji se koristi u "infix-noj" notaciji.

Svaki student ima mentora:


∀x (student(x) → ∃y mentor(y, x))

Primjer ne isključuje mogućnost da student ima više mentora.

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.

Matematički primjer: Postoji beskonačno mnogo Pitagorinih trojki:

∀n ∃ijk (i > n ∧ i2 + j2 = k2)

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:

∀ P [P(0) ∧ ∀k (P(k) → P(k+1)) → ∀n P (n)]

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.

1.3. Formalna semantika logike prvog reda


Definirajmo strogo značenje formule. Interpretacija jezika preslikava (dodjeljuje) funkcijske simbole
stvarnim funkcijama, a relacijske simbole stvarnim relacijama. Na primjer predikatni simbol "student" se
može preslikati na skup svih studenata trenutačno upisanih na fakultet.

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".

Definicija 6. "Valuacija" V jezika £ na D je funkcija s varijabli iz £ na D. Označava se sa IV [t], za


vrijednost t s obzirom I i V , a definira se kao:

IV [x] = V(x) ako je x varijabla


IV [c] = I [c]
IV [f(t1,..., tn)] = I[f]( IV [t1],..., IV [tn])

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.

1.4. Što je istina?


Definirajmo pojam istinitosti. Definicija će formalizirati intuitivno značenje operatora zato će biti jako
slična tautologiji. Svaki operator (veza) opisana je prirodnim jezikom. "Valuacija" pomaže pri
određivanju značenja kvantifikatora. Istinu je na ovaj način prvi puta definirao Alfred Tarski.

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 ako izraz ╞I,V B nije istinit

╞I,V B ∧ C ako je ╞I,V B i ╞I,V C

╞I,V B ∨ C ako ╞I,V B ili ╞I,V C

╞I,V B → C ako ╞I,V B nije istinit ili ╞I,V C

╞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)

╞I,V ∀x B ako je za sve m ∈ D izraz ╞I,V{m/x} B istinit

Operatori ∧, ∨, →, ↔ su u skladu s propozicijskim tablicama istinitosti.

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:

╞I A ako i samo ako ╞I ∀x1 ... ∀xn A

Definicija 8. Interpretacija I zadovoljava (satisfies) formulu ako je ╞I A istinit.


• Skup formula S je valjan (valid) ako svaka interpretacija skupa S zadovoljava svaku formulu u S.
• Skup formula S je zadovoljiv ili konzistentan, dosljedan (satisfiable ili consistent) ako postoji
interpretacija skupa S koja zadovoljava svaku formulu u S.
• Skup formula S je nezadovoljiv ili nekonzistentan, nedosljedan (unsatisfiable ili inconsistent) ako
nije zadovoljiv.
• Model skupa S je interpretacija koja zadovoljava svaku formulu u S. Također razmatramo modele
koji zadovoljavaju pojedinačnu formulu.

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)

(Podsjetimo se da su slobodne varijable univerzalno kvantificirane po definiciji ╞I, A).


Jedan model ovih aksioma je skup prirodnih brojeva, ako 0 i + damo očigledna značenja. Ti aksiomi
međutim mogu imati puno drugih modela. Neka je u A neki skup, tada možemo odabrati sljedeće modele:

• 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:

∀x ∃y voli (x, y) (1)


∃y ∀y voli(x, y) (2)

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.

2.1. Slobodne i vezane varijable


Vezane varijable često se pojavljuju u matematici: na primjer x u izrazu ∫ f(x) dx. Sličan
koncept javlja se i u λ-računu. U logici prvog reda varijable su vezane kvantifikatorima.

Definicija 9 Varijabla x je (u formuli) vezana ako se pojavljuje u podformuli oblika ∀x A ili ∃x A.

• Pojava oblika ∀x A ili ∃x naziva se "binding occurrence" od x.


• Varijabla je slobodna ili nevezana ako nije vezana.
• Za formulu koja ne sadrži slobodne varijable kažemo da je zatvorena formula.
• Temeljni član je formula ili klauzula koja ne sadrži varijable.

U izrazu ∀x ∃y R(x,y,z), varijable x i y su vezane, a z je nevezana.

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.

Primjer 7 Preimenovanje varijabli ne utječe na značenje izraza, važno je da se ne ponavljaju već


upotrijebljeni simboli. Slijedi nekoliko primjera preimenovanja u izrazu ∀x ∃y R(x,y,z) :

∀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.

2.3. Ekvivalencije s kvantifikatorima

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.

Izvlačenje kvantifikatora izvan negacije:

¬( ∀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)

Implikacija: A → B kao ¬A ∨ B (uz uvjet da x nije slobodan u 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])

Mnoge formule prvog reda mogu se jednostavno dokazati korištenjem ekvivalencija:

∃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?

(∀x A) ∨ (∀x B) ?≅? ∀x (A ∨ B)


(∃x A) ∧ (∃x B) ?≅? ∃x (A ∧ B)

Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2.4. Slijedni račun za univerzalni kvantifikator


Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2.5. Slijedni račun za egzistencijalni kvantifikator


Pravila impliciranja za ∃:

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)

Primjer 12 Implikacija ∃x A ∧ ∃x B ⇒ ∃x ( A ∧ B ) ne vrijedi zato što se vrijednost varijable x koja


zadovoljava A može razlikovati od one koja zadovoljava B. To postane jasno kada ne uspije pokušaj
dokazivanja valjanosti, jer ne možemo primijeniti pravilo (∃l) dva puta s istim imenom varijable, x. Ako
smo prisiljeni preimenovati drugu varijablu u y , očito je da im se vrijednosti mogu razlikovati. Na desnu
stranu implikacije ne da se primijeniti pravilo (∃r) i nije dokaz nije moguće provesti. Ne može se
instancirati x:

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)

Zadatak za vježbu 19. Dokazati valjanost sljedećih implikacija:

P(a) ∨ ∃xP(f(x)) ⇒ ∃y P(y)


∃x ( A ∨ B ) ⇒ (∃x A) ∨ (∃x B)
⇒ ∃z ( P(z) → P(a) ∧ P(b))

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").

3.1. Notacija klauzula


Definicija 10 Klauzula je disjunkcija literala

¬K1 ∨ … ∨ ¬Km ∨ L1 ∨ … ∨ Ln

zapisano kako skup:

{¬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)

Još kraći zapis dobiva se korištenjem notacijom Kowalskog:

K1 , … , Km → L 1 , … , L n

Kada je n = 1 dobivamo klauzule iz Prologa, poznate kao konačne klauzule.

3.2. Metoda "Davis-Putnam"


Metoda "Davis-Putnam" temelji na nekim jasnim identitetima:

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,…}

2. Za svaku jediničnu klauzulu {L}:


• ukloniti sve klauzule koje sadrže L
• ukloniti ¬L iz svih klauzula

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.

5. Izvoditi podjelu po stanjima pojedinog literala L i rekurzivno primjenjivati algoritam na L i ¬L


slučaj. Skup klauzula je zadovoljiv ako i samo ako je jedan od pod-slučajeva 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:

{P,Q} {¬Q} {¬R} početni skup klauzula


{P} {¬R} jedinična klauzula ¬Q
{¬R} jedinična klauzula P
jedinična klauzula ¬R

Skup klauzula je zadovoljiv za P → t, Q → f, R → f . Ova interpretacija osporava P ∨ Q ⇒ Q ∨ R.

Primjer 14 Slijedi primjer grananja. Promotrimo skup klauzula

{¬Q, R} {¬R, P} {¬R, Q} {¬P, Q, R} {P, Q} {¬P, ¬Q}

Nema jediničnih klauzula ni čistih literala pa proizvoljno odabiremo P za grananje stanja:

{¬Q, R} {¬R, Q} {Q, R} {¬Q} ako je P istinit


{¬R} {R} jedinična klauzula ¬Q
jedinična klauzula R
{¬Q, R} {¬R} {¬R, Q} {Q} ako je P lažan
{¬Q} {Q} jedinična klauzula ¬R
jedinična klauzula ¬Q

Zadatak 20. Primijeniti postupak "Davis-Putnam" na skup klauzula:

{P, Q} {¬P, Q} {P, ¬Q} {¬P, ¬Q}

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

Pravilo se može pojasniti i pomoću tranzitivnosti za → (uz supstituciju D = ¬A):

D→B B→C
D→C

Poseban slučaj nastupa kad su A i C prazne klauzule:

B ¬B
f

Tako se detektira kontradikcija.

Postupak rezolucije koristi disjunkcije. Cilj je dokazati kontradikciju, a time opovrći valjanost formule.
Slijedi opis metode za dokazivanje valjanosti formule A:

1. Prevesti ¬A u CNF kao A1 ∧ ... ∧ Am.

2. Zapisati formulu kao skup klauzula: A1 , …, Am .

3. Nad skupom klauzula ponavljati postupak rezolucije, što će rezultirati novim klauzulama – to su
sve konsekvence (posljedice) formule ¬A.

4. Ako se dvije kontradikcija, formula ¬A je opovrgnuta.

Zapisano notacijom skupova pravilo rezolucije glasi:

{B, A1 , …, Am} {¬ B, C1 , …, Cn}


{A1 , …, Am , C1 , …, Cn}

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.

3.4. Primjeri rezolucije do prazne klauzule


Dokažimo da vrijedi:

P∧Q→Q∧P

Prevedimo negaciju gornje formule u CNF:

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:

{P} {Q} {¬Q, ¬P}

Iz klauzula {P} i {¬Q, ¬P} dobivamo:

{P} {¬P, ¬Q}


{¬Q}

Rezolvent, novonastala klauzula je {¬Q}. S klauzulom {Q} ona daje:

{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.

Dokaz se može prikazati stablom:

{P} {¬Q, ¬P}

{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

{P, Q} {¬P, Q} {P, ¬Q} {¬P, ¬Q}

Stablo postupka rezolucije:

{P, Q} {¬P, Q} {P, ¬Q} {¬P, ¬Q}

{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.

Zadatak 21. Korištenjem postupka rezolucije dokažite (A → B ∨ C) → [(A → B) ∨ (A → C )].

3.5. Dokazivanje korištenjem skupa pretpostavki


U ovom primjeru pretpostavljamo:
H→M∨N M→K∧P N→L∧P
i dokazujemo H → P. Klauzule možemo generirati neovisno o pretpostavkama (pozitivnim) i i njihovoj
konkluziji (negiranoj).

Nazovimo pretpostavke redom A1 , …, Ak i konkluziju B, tada pojedini teorem zapisujemo:


( A1 ∧ … ∧ Ak ) → B
Slijedi negiranje i prevođenje u CNF. Korištenjem pravila ¬(A → B) ≅ A ∧ ¬B
A1 ∧ … ∧ Ak ∧ ¬B
Cijela formula je konjunkcija pa se A1 , …, Ak i ¬B mogu odvojeno pretvoriti u oblik klauzula te zatim
promatrati zajedno.

Pretpostavka H → M ∨ N već je u formi klauzule:


{¬H, M, N}
Pretpostavka M → K ∧ P daje dvije klauzule:
{¬M, K} {¬M, P}
Pretpostavka N → L ∧ P također daje dvije klauzule:
{¬N, L} {¬N, P}
Negirana konkluzija ¬(H → P) pretvara se u dvije klauzule:
{H} { ¬P}
Stablo dokaza rezolucijom:
{H} {¬H, M, N}

{M, N} {¬M, P}

{N, P} {¬N, P}

{P} { ¬P}

Klauzule nisu ispitivane slučajnim redoslijedom. U nastavku su opisane neke strategije dokazivanja:

Zanemarivanje nevažnoga. Klauzule {¬M. K} i {¬N, L} ne vode nikuda, pa nisu provjeravane.


Razrješavanje bilo koje od njih rezultiralo bi klauzulom koja sadržava K ili L. Ne postoji način da se
ukloni bilo koji od tih literala jer niti jedna klauzula ne sadrži ¬K ili ¬L. Ovakav postupak ne može
rezultirati praznom klauzulom.

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.

Zadatak 23. Dokazati Pierce-ov zakon, ((P → Q) → P) → P, koristeći se metodom rezolucije.

Zadatak 24. Dokazati (Q → R) ∧ (R → P ∧ Q) ∧ (P → Q ∨ R) → (P ↔ Q) koristeći metodu Davis –


Putnam i metodu rezolucije (koja je poprilično dugotrajan postupak).

3.6. Uklanjanje redundantnih stanja


Za vrijeme rezolucije, broj klauzula dramatično se povećava; stoga je važno ukloniti sve redundantne
klauzule.

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.

Slijedi jednostavan primjer. Razmotrimo sljedeće klauzule:

{S,R} {P, ¬S} {P,Q,R}

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.

Drugim riječima, P ∨ R implicira P ∨ Q ∨ R. Sve što se da zaključiti iz P ∨ Q ∨ R može se zaključiti i iz


P ∨ R. Ovakvu vrst uklanjanja zovemo obuhvaćanje, "subsumption"; klauzula {P,R} obuhvaća, uključuje,
sadrži {P,Q,R}.

Zadatak 25. Dokažite (P ∧ Q → R) ∧ (P ∨ Q ∨ R) → ((P ↔ Q) → R) korištenjem metode rezolucije.


Napišite korake pretvorbe formule u skup klauzula.

Zadatak 26. Korištenjem metode linearne rezolucije dokažite da (P ∧ Q) → (R ∧ S) proizlazi iz P → R i


R ∧ P → S.

15/15

You might also like