2.5 Rezoluční metoda v predikátové logice

Podobné dokumenty
(zkráceně jen formule), jestliže vznikla podle následujících pravidel:

Predikátová logika [Predicate logic]

1 Pravdivost formulí v interpretaci a daném ohodnocení

2.2 Sémantika predikátové logiky

3.10 Rezoluční metoda ve výrokové logice

4.2 Syntaxe predikátové logiky

Rezoluce v predikátové logice

IA008 Computational logic Version: 6. května Formule je v konjunktivní normální formě (CNF), pokud má tvar α 1... α n,

Matematická logika. Rostislav Horčík. horcik

Rezoluce v predikátové logice

Výroková logika - opakování

Matematická logika. Rostislav Horčík. horcik

Predikátová logika. prvního řádu

Výroková a predikátová logika - X

2.1 Formule predikátové logiky. větám. Použijte k tomu predikátových symbolu uvedených v textu.

Rezoluční kalkulus pro logiku prvního řádu

Skolemizace. x(x + f(x) = 0). Interpretace f unární funkce, která pro daný

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Základní pojmy matematické logiky

Výroková a predikátová logika - IX

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Kapitola Výroky

Výroková a predikátová logika - XII

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Matematická logika. Rostislav Horčík. horcik

Výroková a predikátová logika - V

Logika. 8. Automatické dokazování v predikátové logice (obecná rezoluční metoda)

Výroková a predikátová logika - IX

Výroková a predikátová logika - X

platné nejsou Sokrates je smrtelný. (r) 1/??

Predikátová logika. Teoretická informatika Tomáš Foltýnek

Logické programy Deklarativní interpretace

Výroková a predikátová logika - VI

Výroková a predikátová logika - II

Logika Libor Barto. Výroková logika

Matematická logika. Rostislav Horčík. horcik

Tableaux metody. Jiří Vyskočil 2011

Výroková a predikátová logika - VIII

Okruh č.3: Sémantický výklad predikátové logiky

Rezoluce ve výrokové logice

V této výukové jednotce se student seznámí se základními pojmy z teorie predikátového počtu.

Výroková a predikátová logika - VIII

Sémantika predikátové logiky

Základy logiky Logika a logické systémy. Umělá inteligence a rozpoznávání, LS

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

Logika. 5. Rezoluční princip. RNDr. Luděk Cienciala, Ph. D.

Další (neklasické) logiky. Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20

Výroková logika. Sémantika výrokové logiky

Základy logiky a teorie množin

Matematická logika. Miroslav Kolařík

Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží

Výroková logika syntaxe a sémantika

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Výroková a predikátová logika - II

Logické programování

6. Logika a logické systémy. Základy logiky. Lucie Koloušková, Václav Matoušek / KIV. Umělá inteligence a rozpoznávání, LS

Formální systém výrokové logiky

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Logika XI. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Matematická logika. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík

Výroková a predikátová logika - II

teorie logických spojek chápaných jako pravdivostní funkce

Výroková a predikátová logika - VII

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz

Marie Duží

Logika a logické programování

Úvod do výrokové a predikátové logiky

Výroková a predikátová logika - VII

Predikátová logika. Z minula: 1. jazyk logiky 1. řádu. 2. term a formule. 3. interpretace jazyka (relační struktura) 4. Tarského definice pravdy

Klasická výroková logika - tabulková metoda

Rezoluční kalkulus pro výrokovou logiku

vhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí

Predikátová logika dokončení

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

Predikátová logika Individua a termy Predikáty

Umělá inteligence I. Roman Barták, KTIML.

Základy matematické logiky

Predikátová logika: Axiomatizace, sémantické stromy, identita. (FLÚ AV ČR) Logika: CZ.1.07/2.2.00/ / 13

Základy matematické analýzy

Úvod do logiky (VL): 5. Odvození výrokových spojek z jiných

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Přednáška 2: Formalizace v jazyce logiky.

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Hilbertovský axiomatický systém

Negace bázového atomu Negace atomu s existenčním termem Negace klauzule Negace množiny klauzulí Predikát rovnosti. Klauzulární logika

LOGIKA VÝROKOVÁ LOGIKA

0. ÚVOD - matematické symboly, značení,

Spojování výroků (podmínek) logickými spojkami

Výroková logika. Teoretická informatika Tomáš Foltýnek

I) Příklady (převeďte následující věty do formulí PL1 a ověřte jejich ekvivalenci pomocí de Morganových zákonů):

Cvičení 4. negace konjunkce disjunkce implikace ekvivalence. a) Najděte UDNF, UKNF a stanovte log. důsledky. 1) [p (p q)] [( p q) (q p)]

Matematická logika. Miroslav Kolařík

Výroková a predikátová logika - IV

Matematická logika. Miroslav Kolařík

1. MATEMATICKÁ LOGIKA A MNOŽINY

1. Matematická logika

Transkript:

2.5. Rezoluční metoda v predikátové logice [101104-1520] 19 2.5 Rezoluční metoda v predikátové logice Rezoluční metoda v predikátové logice je obdobná stejnojmenné metodě ve výrokové logice. Ovšem vzhledem k bohatší vnitřní struktuře formulí predikátové logiky je složitější. Používá se v logickém programování a je základem programovacího jazyka Prolog. Nejprve zavedeme literály a klausule v predikátové logice. 2.5.1 Literál. Literál je atomická formule(tzv. pozitivní literál), nebo negace atomické formule (tzv. negativní literál). Komplementární literály jsou dva literály, z nichž jeden je negací druhého. 2.5.2 Klausule Klausule je sentence taková, že všechny kvantifikátory jsou obecné a stojí na začátku sentence(na jejich pořadí nezáleží) a za nimi následují literál nebo disjunkce literálů. Vevýrokovélogicejsmeprokaždouformuli αnašliknítautogickyekvivalentnímnožinuklausulí S α atotak,že αis α bylypravdivévestejných pravdivostních ohodnocení. Takto jednoduchá situace v predikátové logice není. Vpříštípřednášcesiukážeme,jakkdanésentenci ϕnajítmnožinuklausulí S ϕ atotak,že ϕjesplnitelnáprávětehdy,kdyžmnožina S ϕ jesplnitelná. 2.5.3 Převedení sentence na klausální tvar. Pro každou sentenci ϕ existujemnožinaklausulí S ϕ taková,žesentence ϕjesplnitelnáprávětehdy, když S ϕ jesplnitelná. 2.5.4 Postup. Uvedeme postup, kterým pro danou sentenci ϕ zkonstruujeme množinuklausulí S ϕ. 1. Přejmenujeme proměnné formule ϕ tak, aby každý vstup kvantifikátoru vázaljinouproměnnou.(tj.např.formuli x P(x) x Q(x,a)nahradíme formulí x P(x) y Q(y,a).) 2. Spojky, nahradímespojkami, a nazákladěznámýchtautologických rovností α β α β nahradíme α β nahradíme ( α β) (α β) 3. Přesunemespojku conejníže vderivačnímstromuformule,tj.ažpřed atomické formule. Použijeme k tomu vztahy x α nahradíme x α x α nahradíme x α (α β) nahradíme α β (α β) nahradíme α β α nahradíme α 4. Přesunemespojku conejníže vderivačnímstromuformulepomocí vztahů α (β γ) nahradíme (α β) (α γ)

20 [101104-1520] α ( x β) nahradíme x(α β) α ( x β) nahradíme x(α β) Přitom dáváme přednost první rovnosti. Teprve v případě, že první rovnost nelze aplikovat, používáme další dvě rovnosti. Uvědomte si, že druhá rovnost je opravdu tautologická ekvivalence pouze proto, že formule α neobsahuje proměnnou x(viz krok 1). 5. Použijeme tautologickou ekvivalenci x(α β) nahradíme ( x α) ( x β) k distribuci obecného kvantifikátoru. Jestliže nyní formule neobsahuje existenční kvantifikátor, máme formuli ψ, která je konjunkcí klausulí. Tuto formulitedynahradímemnožinou S ϕ jejíchklausulí. V případě, že formule ψ obsahuje existenční kvantifikátor, provedeme skolemisaci, která je vysvětlena v dalších odstavcích a přesně popsána v??. 2.5.5 Skolemizace. Poznamenejme,žetermíny skolemizace, skolemizační konstanta a skolemizačnífunkčnísymbol jsouodvozenyodjménanorského matematika logika Thoralfa Skolema. Skolemizacínahradímeformuli ψformulí ψ takovou,žeformule ψjesplnitelnáprávětehdy,kdyžjesplnitelnáformule ψ (obecněaleneprostejnou interpretaci). Dříve než ukážeme obecný postup, uvedeme dva příklady. 2.5.6 Příklad1. Najděmeklausuli ψ,kterájesplnitelnáprávětehdy,když jesplnitelnásentence ψ= x P(x). Hledanousentencíje ψ = P(a),kde ajenějakýnovýkonstantnísymbol. Neníobtížnénahlédnout,žeformule ψjetautologickýmdůsledkemformule ψ. Konstantní symbol a použitý v minulém příkladě, se nazývá skolemizační konstanta. 2.5.7 Příklad2. Najděmeklausuli ψ,kterájesplnitelnáprávětehdy,když jesplnitelnásentence ψ= x y Q(x,y). Formuli ψ nahradíme formulí ψ = xq(x,f(x)), kde f je nový unární funkční symbol. Nyní již opět platí, že formule ψ je splnitelná právě tehdy, kdyžjesplnitelnáformule ψ. Funkčnímu symbolu f se říká skolemizační funkční symbol. 2.5.8 Obecnýpostup(pokračováníbodů1 5zpostupu??). 6. Obsahuje-li formule existenční kvantifikátor, nahradíme každou uzavřenou podformulitvaru x 1... x n y α(y)formulí x 1... x n α(f(x 1,...,x n )), kde fjelibovolnýnovýfunkčnísymbolarity n.je-li n=0,použijemenový konstantní symbol a. Tomuto procesu se říká skolemizace, funkčnímu symbolu f skolemizační funkční symbol, konstantě a skolemizační konstanta. Pokračujeme podle kroku 5 z??. Uvědomtesi,žeproměnné x 1,...,x n jsouprávěvšechnyproměnnévázané obecným kvantifikátorem, na které narazíme při postupu derivačním stromem od ysměremkekořeni.

2.5. Rezoluční metoda v predikátové logice [101104-1520] 21 2.5.9 Poznámka. Při zápisu klausulí budeme vynechávat kvantifikátory; to můžeme proto, že víme že všechny kvantifikátory jsou obecné a na jejich pořadí nezáleží. 2.5.10 Rezolventy klausulí. Ve výrokové logice jsme rezolventy vytvářeli tak, že jsme si vždy vzali dvě klausule, které obsahovaly dvojici komplementárních literálů, a výsledná rezolventa byla disjunkcí všech ostatních literálů z obou klausulí. Situace v predikátové logice je složitější. Postup, jak vytváříme rezolventy v predikátové logice, si ukážeme na příkladech. 2.5.11 Příklad. Najděmerezolventuklausulí K 1 = P(x) Q(x,y)aK 2 = = Q(x,y) R(y),kde P a RjsouunárnípredikátovésymbolyaQjebinární predikátový symbol, x, y jsou proměnné. Klausule K 1 a K 2 obsahujídvojicikomplementárníchliterálů,totiž Q(x,y) jeliterál K 1 a Q(x,y)jeliterál K 2.Rezolventouklausulí K 1 a K 2 jetedyklausule K= P(x) R(y),přesněji K= x y(p(x) R(y)). 2.5.12 Příklad. Najděmerezolventuklausulí K 1 = P(x) Q(x)aK 2 = = Q(a) R(b),kde P, Qjsouunárnípredikátovésymbolyaa,bjsoukonstanty. Klausule K 1 a K 2 neobsahují dvojici komplementárních literálů, neboť negace literálu Q(a) není literál Q(x) a naopak. Přitom však literál Q(x) odpovídá formuli x Q(x), a tedy zahrnuje i Q(a). Proto při substituci konstanty a za proměnnou x dostáváme klausule K 1= P(a) Q(a) a K 2= Q(a) R(b) ajejichrezolventajeklausule P(a) R(b). 2.5.13 Příklad. Najděme rezolventu klausulí K 1 = P(x,y) Q(x,y,a) a K 2 = Q(g(v),z,z) R(v,z), kde P, Rjsoubinárnípredikátovésymboly, Qjepredikátovýsymbolarity3a ajekonstanta. PokusímesevhodnousubstitucívytvořitzQ(x,y,a)a Q(g(v),z,z)dvojici komplementárních literálů. Toho dosáhneme substitucí: za proměnné y a z dosadíme konstantu a, a za proměnnou x dosadíme term g(v). Tím dostaneme komplementární literály Q(g(v), a, a) Q(g(v), a, a). Provedenímsubstitucenaceléklausule,dostanemeklausule K 1a K 2,jejichž rezolventa bude i rezolventou klausulí K 1, K 2. Tedy K 1 = P(g(v),a) Q(g(v),a,a), K 2 = Q(g(v),a,a) R(v,a) a hledaná rezolventa je K = = P(g(v),a) R(v,a). 2.5.14 Poznámka. Ne vždy rezolventa existuje. Rezolventa klausulí K 1 = P(x) Q(f(x),a) a K 2 = Q(y,y) R(f(y),z), (kde P je unární predikátový symbol, Q a R jsou binární predikátové symboly, f je unární funkční symbol a a je konstanta) neexistuje. Případy, kdy existuje

22 [101104-1520] či neexistuje vhodná substituce, řeší unifikační algoritmus, který uvádíme v následujícícm odstavci. V případě, že substituce existuje, unifikační algoritmus najde nejobecnější substituci. 2.5.15 Unifikační algoritmus. Vstup: Dvapositivníliterály L 1, L 2,kterénemajíspolečnéproměnné. Výstup: Hlášení neexistuje v případě, že hledaná substituce neexistuje, v opačném případě substituce ve tvaru množiny prvků tvaru x/t, kde x je proměnná, za kterou se dosazuje, a t je term, který se za proměnnou x dosazuje. 1. Položme E 1 := L 1, E 2 := L 2, θ:=. 2. Jsou-li E 1, E 2 prázdnéřetězce,stop.množina θurčujehledanousubstituci. V opačném případě položíme E 1 := E 1 θ, E 2 := E 2 θ (tj. na E 1, E 2 provedeme substituci θ). 3. Označíme Xprvnísymbolřetězce E 1, Y prvnísymbolřetězce E 2. 4. Je-li X = Y, odstraníme X a Y z počátku E 1 a E 2. Jsou-li X a Y predikátové nebo funkční symboly, odstraníme i jim příslušné závorky a jdemenakrok2. 5. Je-li X proměnná, neděláme nic. Je-li Y proměnná(a Xnikoli),přehodíme E 1, E 2 a X, Y. Není-li ani X ani Y proměnná, stop. Výstup neexistuje. 6. Je-li Y proměnnánebokonstanta,položíme θ:= θ {X/Y }.Odstraníme Xa Y zezačátkůřetězců E 1 a E 2 (spolusčárkami,je-litřeba)ajdeme nakrok2. 7. Je-li Y funkčnísymbol,označíme ZvýrazskládajícísezY avšechjeho argumentů(včetně závorek a čárek). Jestliže Z obsahuje X, stop, výstup neexistuje. Vopačnémpřípaděpoložíme θ:= θ {X/Z},odstraníme Xa Zzezačátků E 1 a E 2 (odstranímečárky,je-litřeba)ajdemenakrok2. 2.5.16 Rezoluční princip. Je obdobný jako rezoluční princip ve výrokové logice: Je dána množina klausulí S. Označme R(S) = S {K Kjenejobecnějšírezolventaněkterýchklausulíz S} R 0 (S) = S R i+1 (S) = R(R i (S)) pro i N R (S) = {R i (S) i 0}. Množinaklausulí Sjesplnitelnáprávětehdy,když R (S)neobsahujeprázdnouklausuli F.

2.5. Rezoluční metoda v predikátové logice [101104-1520] 23 2.5.17 Poznámka. Rezoluční princip používáme i pro zjištění, zda z množinysentencí Svyplývásentence α(tj.zda S = α)atotakto. Postupujeme podle věty 2.4.6: Nejprve vytvoříme množinu S { α} a pak upravujeme sentence této množiny na klausální tvar. Jestliže jako rezolventu některých klausulí dostaneme prázdnou klausuli, pak množina S { α} je nesplnitelná a S = α platí; jestliže prázdnou klausuli není možné získat, pak S { α}jesplnitelnáas = αneplatí.