- opakování ormální zavedení Výroková formule: Máme neprázdnou nejvýše spočetnou množinu A výrokových proměnných. 1. Každá proměnná je výroková formule 2. Když α, β jsou formule, potom ( α), (α β), (α β), (α β), (α β), případně i (α β), jsou formule. 3. Nic jiného než to, co vzniklo pomocí konečně mnoha použití bodů 1 a 2, není výroková formule (Konvence: vnější závorky a závorky vyplývající z priorit,,,, lze vynechat) Tak zvaná rekurzivní či induktivní definice
Základní pojmy Ohodnocení DE zobrazení A do {ALSE, TRUE}. Ohodnocení formule se řídí běžnými pravidly pro logické spojky. Výroková formule s n logickými proměnnými má 2 n možných pravdivostních hodnot v závislosti na ohodnocení proměnných ormule je tautologie právě tehdy, když je TRUE pro všechna možná ohodnocení proměnných. ormule je kontradikce právě tehdy, když je ALSE pro všechna ohodnocení. ormule je splnitelná právě tehdy, když existuje alespoň jedno ohodnocení, ve kterém je TRUE
Matematická logika Matematická logika se zabývá otázkou, co lze z formulí odvodit bez ohledu na jejich význam, pouze podle struktury. ormule ϕ je (sémantickým) důsledkem množiny formulí Ψ ={ψ 1, ψ 2,,ψ n }právě tehdy když ϕ má ohodnocení TRUE pro každé ohodnocení proměnných, kde každá z formulí v Ψ je TRUE. Značíme Ψ ϕ. ormule ϕ a ψ jsou tautologicky ekvivalentní právě tehdy když ψ ϕ a ϕ ψ. Značíme ϕ ψ. ormule jsou pravdivé pro stejná ohodnocení.
Úplný systém log. spojek Nulární spojky TRUE (tautologie) a ALSE (kontradikce) Unární spojky Identita a Negace Pro log. funkce dvou proměnných máme celkem 2 4 možných log. funkcí (máme 2 2 řádků v tabulce pravdivostního ohodnocení), potřebujeme tedy vyjádřit 14 funkcí (zbylé dvě jsou opět tautologie a kontradikce). Úplný systém log. spojek je množina log. spojek, pomocí které můžeme zapsat všechny logické funkce. Možný úplný systém log. spojek:,, Booleova algebra není minimální (de Morganova pravidla)
Všechny logické spojky x y 0 1 2 3 4 5 x y x 6 7 8 9 10 11 12 y 13 14 15 T 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 = kontradikce 1 = AND, konjunkce 2 = (inhibice) 4 = (zpětná inhibice) 6 = XOR, vylučující nebo 7 = OR, disjunkce 8 = NOR, Peirceova šipka (arrow) 9 = ekvivalence 10 = negace x 11 = zpětná implikace 12 = negace y 13 = implikace 14 = NAND, Shefferův škrt (stroke) 15 tautologie Jediné dvě logické spojky, které tvoří jednoprvkový úplný systém jsou NOR a NAND. Častěji se užívají NOT, OR a AND (Booleova algebra) Jednu ze spojek OR a AND lze vynechat (de Morganova pravidla)
Normální formy Konjunktivní normální forma (CN) = konjunkce jednoho nebo konečně mnoha formulí, kde každá z nich je literál nebo disjunkce literálů. Příklad: (x y) ( y z ) ( x r z ) Disjunktivní normální forma (DN) = disjunkce jednoho nebo konečně mnoha formulí, kde každá z nich je literál nebo konjunkce literálů. Příklad: (x y) ( y z ) ( x r z ) ormule v konjunkci u CN je nazývána klauzule. Je to tedy disjunkce literálů nebo literál. Zavádíme pojem prázdná klauzule, která neobsahuje žádný literál a není splnitelná. Pro každou log. formuli existuje tautologicky ekvivalentní DN formule a také tautologicky ekvivalentní CN formule. Pro každý Booleovský výraz existuje odpovídající CN i DN formule.
Přirozená dedukce Odvozovací systém umožňující z dané množiny formulí (předpokladů) odvodit závěry. Pro každou logickou spojku máme I-pravidlo pro zavedení a E- pravidlo pro eliminaci : I-pravidlo: (ϕ α) ( α ϕ); E-pravidlo: ( ϕ) ϕ (pravidlo dvojí negace ). : I-pravidlo: {ϕ, ψ} ϕ ψ. E-pravidla: ϕ ψ ϕ; ϕ ψ ψ. : I-pravidla: ϕ ϕ ψ; ϕ ψ ϕ. E-pravidlo: ϕ ψ a ϕ α a ψ α) α ( důkaz rozborem případů ). : I-pravidlo: (ϕ ψ) ϕ ψ; E-pravidlo: (ϕ and ϕ ψ) ψ (pravidlo modus ponens ).
Přirozená dedukce Operaci odvození nové formule z množiny formulí S značíme. Touto operací obdržíme novou množinu formulí, která se skládá buď z předpokladů nebo z formulí odvozených pomocí některých odvozovacích pravidel. Říkáme, že odvozená formule β je log. důsledkem S a log. vyplývá z S. Značíme S * β (tranzitivní uzávěr). Někdy pouze S β Množina formulí S je nekonzistentní (rozporná), právě tehdy když existuje formule α taková, že současně α a α logicky vyplývají z S. Jinak říkáme, že množina S je konzistentní (bezrozporná, zdravá).
Úplnost výrokové logiky ormule ϕ je sémantickým důsledkem množiny formulí S, pokud platí, že při každém pravdivostním ohodnocení při kterém jsou všechny formule v S pravdivé, je pravdivá také formule ϕ. ormule ϕ je logickým důsledkem množiny formulí S, pokud platí lze odvodit pomocí odvozovacích pravidel (existuje její důkaz). Pokud je množina S bezrozporná, je vše, co je logickým důsledkem i sémantickým důsledkem (S ϕ S * ϕ). Pro výrokovou logiku to platí to i naopak. Vše co je sémantickým důsledkem je i logickým důsledkem (lze to dokázat tedy S * ϕ S ϕ). Této vlastnosti se říká úplnost dedukčního systému.
Rezoluční princip Mějme S množinu formulí v nějakém odvozovacím systému a nechť α je formule. Zajímá nás otázka, zda-li α je log. důsledkem S. Rezoluční princip je založen na faktu, že S α právě tehdy když S { α} není splnitelná. Toto je ekvivalentní známému faktu, že α βa α β jsou tautologicky ekvivalentní. Rezoluční princip je základem logického programování.
Rezoluční princip Budeme předpokládat CN, budeme psát {x, y, z, v, w} místo x y z v w. Prázdná klauzule bude značena [],. Rezoluční princip spočívá v eliminaci dvou komplementárních literálů z klauzulí: (x y) ( x z) y z. Obecně budeme říkat, že D je rezolventa klauzulí C1 a C2 podle literálu p právě tehdy když existuje literál p takový, že p C1, p C2 a D = (C1 {p}) (C1 { p}).
Rezoluční princip Rezoluční princip spočívá v opakovaném vytváření rezolvent: R 0 (S) = S, R j+1 (S) = R(R j (S)) pro j = 1, 2,.... * Nechť R ( Sˇ) = R j (S). j= 1 S = R0(S) R1(S)... R k (S).... Protože množina proměnných je konečná, lze vytvořit jen konečně mnoho disjunkcí a existuje takové n, že Rn+1(S) =Rn(S) = R*(S). Množina R*(S) obsahuje prázdnou klauzuli právě tehdy když S nebo nějaké Rk(S) obsahuje dvě klauzule {x} and { x} pro nějakou proměnnou x. Rezoluční princip: Množina klauzulí S je splnitelná právě tehdy když výsledek aplikování rezolvent neobsahuje prázdnou klauzuli []. Rozhodnutí, zda-li formule ϕ je sémantickým důsledkem množiny formulí S potom vede na ekvivalentní úlohu rozhodnout, zda S { ϕ} je nesplnitelná, tj. zda z ní lze rezolučním postupem odvodit prázdnou klauzuli [].
Rezoluční princip Postup: 1. Pro každou formuli v S nalézt tautologicky ekvivalentní CN formuli. Provedeme náhradu všech formulí z předpokladů. Získáme množinu disjunkcí, které mají platit současně. Tautologie vynecháme. Pokud je výsledná množina prázdná, potom se skládá jen z tautologií a je tedy splnitelná. Jinak aplikujeme rezoluce (hledáme komplementární literály). 2. Přidáváme postupně (v libovolném pořadí) resolventy. 3. Pokud během postupu nalezneme prázdnou klauzuli, je množina množina S nesplnitelná. Pokud se proces zastaví a R*(S) prázdnou klausuli neobsahuje, je množina S splnitelná.
Rezoluční princip příklad 1 Množina S = {x y z, z t v, z (x y), y x, w t, v w} Je x sémantickým důsledkem? Tj. je pravda, že S x? Tuto úlohu převedeme na problém splnitelnosti množiny formulí S { x} Postup: 1. Převedeme S na CN: {x y z, z t v, z x y, y x, w t, v w}
Rezoluční princip příklad Odvodili jsme prázdnou formuli, množina tedy není splnitelná a tudíž x je sémantickým důsledkem daných klausulí