1 Pravdivost formulí v interpretaci a daném ohodnocení Než uvedeme konkrétní příklady, zopakujme si definici interpretace, ohodnocení a pravdivosti. Necht L je nějaký jazyk. Interpretaci U, jazyka L tvoří množina prvků U (zvaná univerzum) a funkce, která přiřazuje každému konstantnímu symbolu a z L přiřadí prvek a U, každému n-árnímu predikátovému symbolu P z L přiřadí n-ární relaci P U n a každému n-árnímu funkčnímu symbolu f z L přiřadí funkci f : U n U. Ohodnocení proměnných je funkce, která každé objektové proměnné z L přiřadí prvek univerza U. Příklad 1.1 Příkladem interpretace pro jazyk obsahující konstantní symbol a, binární predikátový symbol P a binární funkční symbol f, je např. R,, kde R je množina reálných čísel, a = 1, P = {(c,d) R 2 c d} a f (c,d) = c + d, tj. P se interpretuje jako binární relace menší nebo rovno a f jako sčítání. Pokud máme danou interpretaci U, jazyka L a ohodnocení, můžeme určit hodnotu každého termu (term je libovolný výraz, který lze vyrobit z objektových proměnných, konstantních symbolů a funkčních symbolů). Hodnota t termu t v dané interpretaci a ohodnocení je definována induktivně, tj. pokud t = a, kde a je konstantní symbol, pak t = a, pokud t = x, kde x je objektová proměnná, pak t = (x) a pokud t = f(t 1,...,t n ), kde f je n-ární funkční symbol, pak t = f ( t 1,..., t n ). Příklad 1.2 Vezměme interpretaci R, definovanou výše a ohodnocení takové, že (x) = 13 a (y) = 5. Pak hodnota termu t = f(f(a,f(x,y)),y) je t = f ( f ( a, f ( (x), (y))), (y)) = (1 + (13 + 5)) + 5 = 24. Nyní již můžeme definovat pojem pravdivosti formule ϕ v dané interpretaci U, a ohodnocení. Pravdivost se podobně jako u termů definuje induktivně, tj. pokud ϕ = P(t 1,...,t n ), kde P je n-ární predikátový symbol a t 1,...,t n termy, pak ϕ je pravdivá v U, a právě tehdy, když ( t 1,..., t n ) P, pokud ϕ = ψ, kde ψ je formule, pak ϕ je pravdivá v U, a právě tehdy, když ψ není pravdivá v U, a. pokud ϕ = ψ χ, kde ψ,χ jsou formule a {,,, }, pak se pravdivost ϕ určí z pravdivostí ψ a χ stejně jako ve výrokové logice. pokud ϕ = xψ, kde ψ je formule a x proměnná, pak ϕ je pravdivá v U, a právě tehdy, když pro všechny d U je ψ pravdivá v U, a [x := d]. Symbol [x := d] značí ohodnocení, které je získáme z tak, že předefinujeme hodnotu pro x na d, tj. [x := d](x) = d. pokud ϕ = xψ, kde ψ je formule a x proměnná, pak ϕ je pravdivá v U, a právě tehdy, když existuje d U takové, že ψ pravdivá v U, a [x := d]. Pokud chceme určit pravdivost formule ϕ v U, a, která obsahuje volné proměnné x 1,...,x n, je zřejmé, že nemusí znát hodnotu pro všechny proměnné, ale jen pro x 1,...,x n. Pokud ϕ neobsahuje žádné volné proměnné (tj. ϕ je sentence), pak její pravdivost na vůbec nezávisí. Příklad 1.3 Mějme interpretaci R, z příkladu 1.1. Pro každou následující formuli ϕ najděte ohodnocení,σ takové, aby ϕ byla pravdivá v R,, a nepravdivá v R,, σ. a) ϕ = P(f(x,y),a) P(a,y). 1
b) ϕ = x(p(f(x,y),a) P(a,y)). c) ϕ = y((p(x,a) P(a,y)) P(x,y)). a) Připomeňme, že P se interpretuje v R, jako, f jako + a a jako 1. Formule ϕ při nějakém ohodnocení tedy říká, že (x)+ (y) 1 a zároveň není pravda, že 1 (y). Negace tvrzení 1 (y) je 1 > (y). Chceme-li tedy nalézt ohodnocení, aby ϕ byla pravdivá, stačí najít reálná čísla (x), (y), která splňují podmínky (x) + (y) 1 a 1 > (y), tedy např. (x) = 1 a (y) = 0. Pak totiž 1 + 0 = (x) + (y) = f(x,y) a = 1, 1 = a > y = 0. Naopak např. pro ohodnocení σ(x) = 2, σ(y) = 0 bude ϕ nepravdivá, protože 2 + 0 = σ(x) + σ(y) = f(x,y) σ > a σ = 1. První argument konjunkce ve ϕ je tedy nepravdivý v R, a σ, proto je nepravdivá také ϕ v R, a σ. b) V tomto případě máme stejnou formuli jako předtím, až na existenční kvantifikátor na začátku formule. Proměnná x ted není volná, takže stačí hledat ohodnocení y. Formule ϕ při nějakém ohodnocení nyní říká, že existuje d R takové, že když ohodnotíme x prvkem d bude platit d + (y) 1 a zároveň 1 > (y). Takové d samozřejmě může a nemusí existovat v závislosti na (y). Např. pro (y) = 1 a d = 2 jsou obě podmínky splněny, takže ϕ je pravdivá v R, a. Naopak pro σ(y) = 2 a libovolné d R neplatí 1 > 2 = σ(y). Takže ϕ není pravdivá v R, a σ. c) Formule ϕ má v tomto případě jen jednu volnou proměnnou a to x. Mějme nějaké ohodnocení. Formule ϕ říká, že pro každé d R pokud (x) 1 a 1 d, pak (x) d. Vidíme, že toto tvrzení platí pro každou hodnotu (x), protože je tranzitivní relace. Z toho plyne, že ϕ je pravdivá v R, pro každé ohodnocení. Ohodnocení při kterém by byla ϕ nepravdivá tudíž neexistuje. 2 Pravdivost sentencí v interpretaci Jak jsme zmínili výše, pravdivost sentencí nezávisí na ohodnocení proměnných, ale jen na interpretaci. Příklad 2.1 Mějme jazyk obsahující jeden binární predikátový symbol Q a k němu interpretaci U,, kde U = {0,1,2,3} a Q = {(0,2),(1,2),(2,2),(2,3)}. Zjistěte pro následující sentence, jestli jsou pravdivé v U,. a) x y Q(y,x). b) x y(q(x,y) Q(y,x)). c) x y(q(x,y) Q(y,y)). a) Sentence říká, že existuje prvek univerza d U takový, že pro všechny prvky univerza e U platí, že (d,e) Q. Jinými slovy existuje d U takové, že všechny dvojice prvků z univerza, které mají jako první složku d, nepatří do Q. Vidíme tedy, že pro d = 3 je toto splněno, protože Q neobsahuje žádnou dvojici s první složkou rovnou 3. Takže sentence je pravdivá U,. 2
b) Sentence z bodu b) říká, že existují prvky univerza d,e U takové, že (d,e) Q a zároveň (e,d) Q. Jinými slovy sentence říká, že existuje dvojice v Q taková, že i její varianta s přehozenými složkami je také v Q. Vidíme, že jediná dvojice, která toto splňuje je (2,2) Q. Takže pro d = e = 2 platí, že (d,e) Q a (e,d) Q, takže je sentence pravdivá v Q,. c) Sentence z bodu c) říká, že existuje prvek univerza d U takový, že pro všechny prvky univerza e U platí, že (d,e) Q právě tehdy, když (e,e) Q. Tzn. že bud (d,e) Q a zároveň (e,e) Q nebo (d,e) Q a zároveň (e,e) Q (napište si DNF výrokové formule α β). Probereme jednotlivé možnosti pro prvek d. d = 0: Vidíme, že (0,2) Q a zároveň (2,2) Q. Takže prvek d = 0 nesplňuje naší podmínku. d = 1: Podobně jako minule máme (1,2) Q a zároveň (2,2) Q, takže ani pro d = 1 to neplatí. d = 2: Stejně tak tady máme (2,2) Q a zároveň (2,2) Q, takže zase nic. d = 3: V tomto případě neexistuje dvojice v Q, která by měla na první složce 3. Nicméně vidíme, že např pro (3,0) Q a zároveň (0,0) Q. Takže v tomto případě není naše podmínka splněna. Shrnuto vše dohromady, sentence z bodu c) není pravdivá v Q,. Příklad 2.2 Mějme jazyk obsahující jeden binární predikátový symbol R, binární funkční symbol f a konstantní symbol a. Necht Q, je interpretace, kde Q je množina racionálních čísel, R je relace rovnosti = na Q, tj. R = {(q,q) q Q}, f je násobení racionálních čísel, tj. f (p,q) = p q, a a = 0. Zjistěte pro následující sentence, jestli jsou pravdivé v U,. a) x y R(f(y,y),x). b) x y( R(x,a) z R(f(x,z),y)). a) Přečteme si, co sentece a) říká. Pro každé racionální číslo p existuje racionální číslo q takové, že q q = p. To ale neplatí, protože např. pro p = 2 neexistuje racionální číslo q takové, že q q = 2. Takže sentence z bodu a) není pravdivá v Q,. b) Přečteme si opět, co sentece b) říká. Pro každá racionální čísla p,q pokud p 0, pak existuje racionální číslo r takové, že p r = q. Toto tvrzení je pravdivé, protože když p 0, můžeme za r vzít podíl q q p Q. Pak je totiž splněno p p = q. Takže sentence z bodu b) je pravdivá v Q,. 3 Tautologie, kontradikce, splnitelné sentence Připomeňme, že sentenci ϕ nazýváme tautologie, pokud je pravdivá v každé interpretaci. Naopak ϕ nazýváme kontradikcí (také nesplnitelnou sentencí), pokud není pravdivá v žádné interpretaci. Sentence, které jsou pravdivé alespoň v jedné interpretaci nazýváme splnitelné. Všimněte si, že speciálně každá tautologie je i splnitelná, ale splnitelná nemusí být tautologie. Příklad 3.1 Zjistěte pro každou následující sentenci, jestli je tautologie, kontradikce nebo splnitelná (ale ne tautologie). a) ( x P(x)) ( x P(x)). b) x(p(x) Q(x)) ( x P(x) x Q(x)). 3
c) x(p(x) Q(x)) ( x P(x) x Q(x)). d) ( x P(x)) ( x P(x)). a) Sentence říká, že pokud existuje prvek univerza, který má vlastnost P, pak už ji musí mít všechny prvky. Taková věc samozřejmě nemusí platit vždy, např. v interpretaci N,, kde P = {2n n N} je množina sudých přirozených čísel, to neplatí, protože existuje sudé přirozené číslo (např. 2), ale není pravda, že všechny přirozená čísla jsou sudá (např. 3). Sentence tedy nemůže být tautologie. Sentence je tedy bud kontradikce nebo splnitelná. Protože implikaci utvoříme jednoduše pravdivou, pokud učiníme její předpoklad nepravdivý, je zřejmé, že existuje interpretace, kde je naše sentence pravdivá. Např. pro N,, kde P =, je x P(x) nepravdivá, a tudíž je naše sentence v této interpretaci pravdivá. Shrnuto sentence z bodu a) je splnitelná, ale ne tautologie. b) Sentence z bodu b) je ekvivalence. Ta je pravdivá pokud jsou bud oba její argumenty pravdivé nebo oba nepravdivé. Necht U, je libovolná interpretace. Podíváme se, jestli může být tato podmínka splněna. Nejprve předpokládejme, že x(p(x) Q(x)) je pravdivá v U,. Musíme ukázat, že i x P(x) x Q(x) je pravdivá v U,. Z pravdivosti x(p(x) Q(x)) plyne, že pro každý prvek d U platí, že d P a zároveň d Q. Jinými slovy P = Q = U. Z toho ale plyne, že x P(x) je pravdivé v U, a zrovna tak x Q(x). Tudíž je v této interpretaci pravdivá i konjunkce těchto sentencí x P(x) x Q(x). Nyní předpokládejme, že x(p(x) Q(x)) je nepravdivá v U,. Tj. existuje prvek d U takový, že d P nebo d Q. Předpokládejme, že např. d P (druhý případ by se dělal analogicky). Tzn. že P U, a tedy x P(x) je nepravdivé v U,. Tudíž je v této interpretaci nepravdivá i konjunkce sentencí x P(x) x Q(x). Ukázali jsme, že oba argumenty ekvivalence jsou bud oba pravdivé nebo oba nepravdivé v libovolné interpretaci. Tzn. že sentence z bodu c) je pravdivá je v každé interpretaci, tj. tautologie. c) Sentence z bodu c) je implikace, která je pravdivá, pokud ukážeme, že z pravdivosti jejího předpokladu plyne pravdivost jejího závěru. Necht U, je libovolná interpretace. Předpokládejme, že x(p(x) Q(x)) je pravdivé v U,. Tzn. že pro každý prvek univerza d U platí, že d P nebo d Q. Jinými slovy P Q = U. Podívejme se, jestli za této podmínky musí platit závěr naší implikace x P(x) x Q(x). Aby byla sentence x P(x) x Q(x) pravdivá muselo by platit P = U nebo Q = U. Takové tvrzení, ale z našeho předpokladu P Q = U neplyne. Např. pro U = N, P = {2n n N} sudá přirozená čísla a Q = N \ P lichá přirozená čísla máme P Q = N, ale není pravda, že by všechna čísla byla sudá nebo lichá, tj. P U a Q U. Sentence z bodu c) tedy není tautologie. Nicméně je splnitelná. Pokud bychom např. vzali U = N, P = N a za Q cokoli, pak je závěr naší implikace x P(x) x Q(x) pravdivý v U,, a tudíž je pravdivá i celá implikace. Shrnuto sentence z bodu c) není tautologie, ale je splnitelná, protože existuje interpretace, kde je pravdivá. d) Sentence z bodu d) je konjunkce, která je pravdivá, pokud jsou pravdivé oba její argumenty x P(x) a x P(x). Oba argumenty jsou zřejmě splnitelné sentence, ale ne tautologie. Celá konjunkce tedy nemůže být tautologie. Podívejme se, jestli je možné najít interpretaci, kde jsou pravdivé oba tyto argumenty. Necht U, je libovolná interpretace. Pokud x P(x) je pravdivé v U,, pak P = U. Naopak pokud x P(x) je pravdivé v U,, pak existuje prvek d U takový, že d P, tj. P U. Vidíme, že podmínky P = U a P U nelze splnit zároveň. Z toho plyne, že v každé interpretaci, kde je x P(x) pravdivé není pravdivé x P(x) a naopak. Neboli neexistuje interpretace, kde by byly pravdivé obě sentence x P(x) a x P(x). Sentence z bodu d) je tedy kontradikce. 4
Tautologie může být i formule, která není sentence. Na přednášce jsme definovali, že formule je tautologie, pokud její univerzální uzávěr je tautologie (už jako sentence, tj. je pravdivý v každé interpretaci). Ekvivalentně je možné říci, že formule je tautologie, pokud je pravdivá v každé interpretaci a každém ohodnocení proměnných. Příklad 3.2 Rozhodněte, jestli je následující formule tautologie. kde formule ψ neobsahuje x volně. x(ϕ ψ) ( xϕ ψ), Chceme rozhodnout, jestli je zadaná formule tautologie, tj. musíme rozhodnout, jestli formule platí v každé interpretaci a každém ohodnocení. Necht U, je libovolná interpretace a ohodnocení proměnných. Naše formule je ekvivalence, která je pravdivá, pokud oba její argumenty jsou bud pravdivé nebo oba nepravdivé. Máme tedy dva případy. 1. Předpokládejme, že x(ϕ ψ) je pravdivá v U, a. Tzn. pro každé d U formule ϕ ψ je pravdivá v U, a [x := d]. Protože ψ neobsahuje x volně, její pravdivost na ohodnocení proměnné x nezávisí. Takže ψ je bud pravdivé v U, a [x := d] pro všechny d U nebo je pro všechny d U nepravdivé. Budeme tedy uvažovat dva případy. První kdy je ψ je pravdivá v U, a [x := d] pro všechny d U a druhý kdy je nepravdivá. V prvním případě je ψ pravdivé také v U, a, protože ohodnocení dostaneme jako [x := (x)]. Tzn. že implikace xϕ ψ je pravdivá v U, a, protože je pravdivý její druhý argument. Pokud nastává druhý případ, tj. pokud je ψ nepravdivá v U, a [x := d] pro všechny d U, musí být nepravdivá také ϕ v U, a [x := d] pro všechny d U, jinak by neplatil náš předpoklad pravdivosti formule x(ϕ ψ). Skutečně pokud by totiž existoval prvek e U takový, že ϕ by byla pravdivá v U, a [x := e], pak by byla nepravdivá implikace ϕ ψ v U, a [x := e], což by znamenalo, že je nepravdivá i x(ϕ ψ) v U, a. Protože je tedy ϕ nepravdivá v U, a [x := d] pro všechny d U, nemůže být pravdivá ani formule xϕ v U, a (viz definice pravdivosti formule xϕ). Takže implikace xϕ ψ je v tomto případě pravdivá v U, a, protože je nepravdivý její první argument. 2. Nyní předpokládejme, že x(ϕ ψ) je nepravdivá v U, a. Tzn. že existuje prvek d U takový, že ϕ je pravdivá v U, a [x := d] a ψ je nepravdivá v U, a [x := d]. Z existence prvku d U takového, že ϕ je pravdivá v U, a [x := d], plyne, že formule xϕ je pravdivá v U, a. Protože ψ neobsahuje x volně, pravdivost formule ψ na ohodnocení proměnné x nezávisí. Takže ψ je nepravdivé také v U, a. Z toho již plyne, že není pravdivá ani implikace xϕ ψ v U, a. Shrnuto, naše formule platí v každé interpretaci a každém ohodnocení, tj. je to tautologie. 4 Splnitelné a nesplnitelné množiny sentencí Připomeňme, že množina sentencí M se nazývá splnitelná, pokud existuje její model, tj. existuje interpretace U, taková, že každá ϕ M je pravdivá v U,. Pokud taková interpretace neexistuje nazýváme množinu M nesplnitelnou. Uvědomte si, že zjišt ovat, jestli je jednoprvková množina sentencí M = {ϕ} splnitelná, znamená vlastně zjistit, zda-li je splnitelná ϕ. Příklad 4.1 Zjistěte pro každou následující množiny sentencí, jestli jsou splnitelné či nesplnitelné. a) M 1 = { x R(x,x), x y(r(x,y) R(y,x)), x y z((r(x,y) R(y,z)) R(x,z))}. b) M 2 = { x( P(x) Q(x)), x(p(x) Q(x))}. 5
c) M 3 = { x(p(x) Q(x)), x(p(x) Q(x)), (P(a) Q(a))}. a) Vidíme, že všechny sentence z M 1 se týkají binárního predikátového symbolu R. Chceme zjistit, jestli je M 1 splnitelná, tj. chceme najít interpretaci U,, kde jsou pravdivé všechny sentence z M 1. Interpretace R symbolu R je nějaká binární relace na U. Musíme tedy zjistit, jestli existuje množina U a binární relace R na U taková, že jsou pravdivé všechny sentence z M 1. Přečteme si, co jednotlivé sentence o R říkají. První říká, že pro každé d U platí (d,d) R. Druhá říká, že pro každé d,e U pokud (d,e) R, pak (e,d) R. Poslední říká, že pro každé d,e,h U pokud (d,e) R a (e,h) R, pak (d,h) R. Jinými slovy R má být reflexivní, symetrická a tranzitivní relace, tj. ekvivalence. Protože ekvivalence existují (např. pro U = N je R = {(n,n) n N} ekvivalence) je množina M 1 splnitelná. b) Chceme najít interpretaci U,, ve které jsou všechny sentence z M 2 pravdivé. Unární predikátové symboly se budou interpretovat jako podmnožiny U, tj. P U a Q U. Přečtěme si, co říkají sentence z M 2. První říká, že pro každé d U platí, že d P nebo d Q. Z toho plyne, že P Q =, protože když d P, pak nutně d Q. Druhá sentence říká, že pro každé d U pokud d P, pak d Q. Jinými slovy všechny prvky z P patří do Q, tj. P Q. Takže musíme zvolit P a Q tak, aby platilo P Q = a zároveň P Q. To udělat lze, např. pokud U je libovolná neprázdná množina, Q = U a P =, pak P Q = U = a P = U = Q. Takže množina M 2 je splnitelná. Všimněte si, že pokud bychom přidali do M 2 sentenci x P(x) vyžadující neprázdnost P, pak se množina M 2 stala nesplnitelnou. c) Opět chceme najít interpretaci U,, ve které jsou všechny sentence z M 3 pravdivé. Unární predikátové symboly se budou interpretovat jako podmnožiny U, tj. P U a Q U. Konstantní symbol a se interpretace jako prvek univerza, tj. a U. Přečtěme si, co říkají první dvě sentence. První říká, že pro všechna d U platí d P nebo d Q. Jinými slovy P Q = U. Druhá sentence říká, že neexistuje d U takové, že d P a zároveň d Q. Jinými slovy P Q =. Takže aby byly splněny první dvě sentence, musí být podmnožiny P a Q disjunktní a jejich sjednocení celé univerzum U. Podívejme se, jestli se za těchto podmínek dá splnit i třetí sentence. Třetí sentence říká, že není pravda, že a P právě tehdy, když a Q. Musíme zvolit a tak, aby byla ekvivalence P(a) Q(a) nepravdivá, tj. bud a P a a Q nebo a P a a Q. První případ není možný, protože P Q =. V druhém případě z a P plyne, že a Q, protože P Q = U. To je ale spor, protože nemůže zároveň platit a Q a a Q. To znamená, že at už zvolíme prvek a jakkoliv, třetí sentence nebude nikdy pravdivá, pokud budou pravdivé první dvě. Takže M 3 je nesplnitelná. Splnitelnost či nesplnitelnost množiny sentencí můžeme také zjistit pomocí rezoluční metody. Nicméně pokud je množina splnitelná rezoluční algoritmus se nemusí zastavit, a pokud se zastaví bývá na papíře pracné ověřit, že žádná další rezolventa již nejde vyrobit. Příklad 4.2 Rozhodněte rezoluční metodou, jestli jsou množiny M 2 a M 3 z příkladu 4.1 splnitelné či nesplnitelné. M 2 : Najdeme nejprve ekvisplnitelnou množinu sentencí S pro M 2. První sentence z M 2 je již klausule, takže s tou nemusíme nic dělat. U druhé stačí nahradit implikaci pomocí negace a disjunkce, takže dostaneme x( P(x) Q(x)). Ekvisplnitelná množina sentencí pro M 2 tedy je S = { P(x) Q(x), P(y) Q(y)}. 6
Pro jistotu jsme přejmenovali proměnné u druhé sentence. Rezoluční algoritmus může v tomto případě vyrobit jen jednu rezolventu, a to P(x). Protože žádná další rezolventa nejde vyrobit a prázdnou klausuli F jsme neobdrželi, je množina M 2 splnitelná. M 3 : Najdeme opět ekvisplnitelnou množinu sentencí S pro M 3. První sentence z M 2 je již klausule, takže s tou nemusíme nic dělat. Druhou je potřeba převést do prenexního normálního tvaru. Distribucí existenčního kvantifikátoru přes negaci dostaneme x (P(x) Q(x)). Použitím De Morganova zákonu obdržíme již klausuli x( P(x) Q(x)). Poslední sentenci je potřeba převést do CNF. Pravdivostní tabulka pro výrokovou formuli (p q) je p q (p q) 0 0 1 0 1 0 1 0 0 1 1 1 Ekvivalentní formule v CNF je tedy (p q) ( p q). Takže třetí sentenci můžeme ekvivalentně přepsat na (P(a) Q(a)) ( P(a) Q(a)). Ekvisplnitelná množina sentencí pro M 3 tedy je S = {P(x) Q(x), P(y) Q(y), P(a) Q(a), P(a) Q(a)}. Pro jistotu jsme přejmenovali proměnné u druhé sentence. Rezoluční metoda nám dává: 1. P(x) Q(x) 2. P(y) Q(y) 3. P(a) Q(a) 4. P(a) Q(a) 5. Q(a) 1,4,{x/a} 6. Q(a) 2,3,{y/a} 7. F 5,6. Protože jsme obdrželi v průběhu rezolučního algoritmu prázdnou klausuli F je množina klausulí S nesplnitelná, a tudíž i množina sentencí M 3 je nesplnitelná. 7