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

Podobné dokumenty
Rezoluční kalkulus pro výrokovou logiku

Výroková logika - opakování

Predikátová logika [Predicate logic]

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

Matematická logika. Rostislav Horčík. horcik

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

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

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

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

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

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

Matematická logika. Miroslav Kolařík

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

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

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

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

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

4.2 Syntaxe predikátové logiky

Logické programy Deklarativní interpretace

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

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

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

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 α

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

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

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

Logika a logické programování

Matematická logika. Miroslav Kolařík

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

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

Základy logiky a teorie množin

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

Sémantika predikátové logiky

Matematická logika. Rostislav Horčík. horcik

Logika Libor Barto. Výroková logika

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

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

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

Modely Herbrandovské interpretace

2.2 Sémantika predikátové logiky

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

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

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

Rezoluce v predikátové logice

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

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

Matematická logika. Miroslav Kolařík

Rezoluce v predikátové logice

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

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

Základní pojmy matematické logiky

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

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

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

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

Hilbertovský axiomatický systém

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

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

Cvičení ke kursu Klasická logika II

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

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

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

Predikátová logika dokončení

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

Tableaux metody. Jiří Vyskočil 2011

Matematická logika. Rostislav Horčík. horcik

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

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

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

Úvod do predikátové logiky. (FLÚ AV ČR) Logika: CZ.1.07/2.2.00/ / 1

Výroková logika syntaxe a sémantika

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

Logika. 6. Axiomatický systém výrokové logiky

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

Základy matematické logiky

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

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

Úvod do informatiky. Miroslav Kolařík

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

Rezoluce ve výrokové logice

Základy logiky a teorie množin

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

Matematická logika. Rostislav Horčík. horcik

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

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

Základy logiky a teorie množin

Matematická analýza 1

Matematická indukce, sumy a produkty, matematická logika

Marie Duží

Cvičení ke kursu Logika II, část III

Logické programování

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

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Klasická predikátová logika

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

LOGIKA VÝROKOVÁ LOGIKA

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Převyprávění Gödelova důkazu nutné existence Boha

Transkript:

AD4M33AU Automatické uvažování Rezoluční kalkulus pro logiku prvního řádu Petr Pudlák

Logika prvního řádu (Někdy nepřesně nazývaná predikátová logika.) Výhody Vyšší vyjadřovací schopnost jazyka, V podstatě veškerou současnou matematiku lze postihnout uvnitř logiky prvního řádu. Nevýhody Podstatně těžší dokazování/rozhodování tvrzení. Úloha nalezení modelu (ekvivalentně vyvrácení domněnky) není algoritmicky řešitelná.

Univerzum Logika 1. řádu má za cíl umožnit popis struktur s mnoha (i nekonečně mnoho) objekty. Jazyk logiky 1. řádu umožňuje pomocí proměnných, funkčních a predikátových symbolů popisovat vztahy mezi těmito objekty.

Jazyk predikátové logiky (TPTP) proměnná ::= symbol začínající velkým písmenem funční_symbol ::= symbol začínající malým písmenem term ::= proměnná funkční_symbol (arita 0) funkční_symbol '(' term 1 ','... ',' term n ')' (arita n>0) predikátový_symbol ::= symbol začínající malým písmenem atomická_formule ::= predikátový_symbol (arita 0) predikátový_symbol '(' term 1 ','... ',' term n ')' (arita n>0) formule ::= atomická_formule '(' '~' formule ')' '(' formule binární logická spojka formule ')' '![' proměnná ']' formule (univerzální kvantifikátor) '?[' proměnná ']' formule (existenční kvantifikátor)

Volné proměnné Definice: Množina FV(t) volných proměnných termu t je definována následovně: FV(X) = { X } FV(f(t 1,...,t n )) = FV(t 1 )... FV(t n )

Volné proměnné Definice: Množina FV(φ) volných proměnných formule φ je definována následovně: FV(p(t 1,...,t n )) = FV(t 1 )... FV(t FV( φ) = FV(φ) FV(φ ψ) = FV(φ) FV(ψ) a stejně pro všechny další spojky FV(( X)φ(X)) = FV(φ) { X } FV(( X)φ(X)) = FV(φ) { X } n )

Vázané proměnné Proměnné, které se vyskytují ve formuli, a které nejsou volné, obvykle označujeme vázané. Vázané proměnné můžeme ve formuli přejmenovávat za nové proměnné, které ve formuli ještě nejsou (příklad). Stejná proměnná může být ve formuli současně volná i vázaná. V takovém případě obvykle vázanou proměnnou přejmenováváme, abychom předešli nedorozumění.

Uzavřené a otevřené formule Formuli φ nazveme uzavřenou, pokud FV(φ) = {}. Formuli ψ nazveme otevřenou, pokud neobsahuje vázané proměnné (jinak řečeno, neobsahuje kvantifikátory).

Interpretace Interpretace a ohodnocení přiřazují význam symbolům jazyka v rámci nějaké struktury. Interpretace M definuje: Neprázdnou množinu prvků D M. Pro každý funkční symbol f arity n definuje totální funkci f M : D Mn D M. Pro každý predikátový symbol p arity n definuje relaci p M D Mn. Ohodnocení e pro danou interpretaci M je zobrazení přiřazující každé proměnné prvek z D M.

Interpretace a model Pro danou interpretaci M a ohodnocení e můžeme dosadit za proměnné dané formule φ, vyčíslit hodnoty všech termů, dosadit relací a vypočítat pravdivost formule. Značení: M,e φ Jestliže je formule φ pravdivá v dané interpretaci M pro všechna ohodnocení, říkáme, že M je model φ, značíme: M φ

Sémantický důsledek Jestliže ψ platí ve všech interpretacích, ve kterých platí φ, říkáme, že ψ je sémantický důsledek φ. Značení: φ ψ Pro množinu formulí A také píšeme A φ, pokud φ platí ve všech interpretacích, ve kterých jsou splněny všechny formule z A. Pozorování: Relace na formulích je reflexivní a tranzitivní.

Sémantický důsledek příklady p(x) p(f(x)) p(x) p(f(y)) ( X) p(x) p(x) p(x) ( X) p(x) p(x) ( X) p(x) ( U)( V) q(v,u) ( X)( Y)q(X,Y)

Vztah mezi výrokovou logikou a logikou 1. řádu Na výrokovou logiku můžeme nahlížet jako na speciální případ logiky 1. řádu, kde se omezíme pouze na predikáty arity 0. V takovém případě formule neobsahují termy. Nulární predikáty odpovídají výrokovým proměnným.

Substituce Substituce je zobrazení, které každé proměnné přiřazuje nějaký term (v rámci daného jazyka). Značení: θ, σ,... Toto zobrazení lze přirozeně rozšířit na termy a formule: Každou volnou proměnnou v zápisu termu či formule nahradíme termem předepsaným danou substitucí (příklad). Věta: Pro lib. substituci θ a lib. formuli φ platí φ φθ

Problém sémantického zjišťování pravdivosti Ve výrokové logice je sémantické zjišťování pravdivosti sice neefektivní, ale možné. V logice 1. řádu můžeme v některých případech najít konečnou interpretaci, ve které je daná formule splněná. Nemůžeme ale sémanticky dokázat pravdivost formule ve všech interpretacích, protože možných interpretací je nekonečně mnoho a mohou být nekonečné. V logice 1. řádu tedy nezbytně potřebujeme deduktivní kalkuly.

Problém: nekonečně mnoho možných substitucí Máme-li formuli ( X)φ(X), můžeme odvodit φ(c), φ(f(x)), φ(f(c)), φ(f(f(f(f(f(h(x,c))))))), atd. Jak poznat, které substituce pro důkaz potřebujeme a které ne? Rezoluční kalkulus (originálně pro logiku 1. řádu) vymyslel John Alan Robinson (1965), toto řeší. Určuje, jaké nejobecnější substituce je třeba provádět.

Rezoluční kalkulus Podobně jako ve výrokové logice existuje rezoluční kalkulus pro logiku 1. řádu. Rezoluční kalkulus slouží ke zjištění, zda je daná množina formulí sporná, tedy zda v žádné interpretaci nelze splnit všechny dané formule. Rezoluční kalkulus vyžaduje, aby všechny formule byly tzv. klauzule.

Literály a klauzule pro logiku 1. řádu Atomická formule je predikát aplikovaný na termy. Literál je atomická formule nebo její negace. Klauzule je disjunkce libovolného počtu literálů. Klauzule neobsahují kvantifikátory a proměnné jsou implicitně univerzálně kvantifikované. Příklad: f(x) g(c) ~f(h(x,y)) u Prázdná klauzule je klauzule, která neobsahuje žádný literál. Značení či. Klauzule se obvykle uvažují jako množiny literálů.

Unifikátor Unifikátor dvou termů s a t je taková substituce θ, že sθ tθ. Unifikátor θ nazveme nejobecnější (angl. MGU), pokud pro každý unifikátor σ termů s a t existuje substituce η taková, že σ = θ η Stejně definujeme (nejobecnější) unifikátor dvou atomických formulí. (Nejobecnější) unifikátor více termů s 1,...,s n je substituce θ taková, že s 1 θ... s n θ.

Existence nejobecnějšího unifikátoru Věta: Mají-li dva termy (atomické formule) unifikátor, mají nejobecnější unifikátor. Existuje algoritmus, který najde nejobecnější unifikátor a nebo zjistí, že neexistuje. Věta platí i pro více než dva termy (formule).

Odvozovací pravidlo rezoluce v logice 1. řádu Pravidlo rezoluce: Δ L ~K Γ ---------------------- Δθ Γθ kde: Δ a Γ jsou disjunkce libovolného počtu literálů (klauzule). Klauzule (Δ L) a (~K Γ) mají disjunktní množiny proměnných; pokud nemají, proměnné přejmenujeme, aby měly. L a K jsou atomické formule. θ je nejobecnější unifikátor atomických formulí L a K.

Nezbytnost tzv. faktorizace Příklad: Následující množina klauzulí je sporná, ale nelze odvodit spor pouze rezolucí: p(x) p(y) p(x) p(y) Abychom odvodili spor, musíme nejprve (alespoň) jednu klauzuli faktorizovat na p(x) nebo p(x).

Pravidlo faktorizace Pravidlo faktorizace: Δ L K ----------- Δθ Lθ kde: Δ je disjunkce libovolného počtu literálů (klauzule). L a K jsou literály, oba pozitivní nebo oba negativní. θ je nejobecnější unifikátor literálů L a K.

Více resolvent ze dvou klauzulí V logice 1. řádu lze použít rezoluční pravidlo více způsoby na dvě klauzule a dostat různé výsledky. Příklad: Z klauzulí p(c) p(d) a p(x) q(x) odvodíme: p(d) q(c) (přes literály p(c) a p(x)) p(c) q(d) (přes literály p(d) a p(x)) Obě odvozené klauzule jsou důležité, ani jedna z nich není silnější než druhá.

Korektnost rezolučního kalkulu: Pokud A φ pak A φ. Δ L ~K Γ --------------------- Δθ Γθ Buď M interpretace taková, že M (Δ L) a M (~K Γ). Pro libovolnou substituci, a tedy i MGU θ platí M (Δθ Lθ) a M (~Kθ Γθ). Buď e ohodnocení v interpretaci M. Pokud M,e Lθ, pak musí být M,e Γθ a tedy M,e (Δθ Γθ). Pokud M,e ~Lθ, pak musí být M,e Δθ a tedy M,e (Δθ Γθ). Pro faktorizaci je korektnost zřejmá.

Úplnost rezolučního kalkulu logiky 1. řádu Věta: Pokud A pak A. Neboli: rezolučním kalkulem lze vždy odvodit prázdnou klauzuli ze sporné množiny. (Angl. refutationally complete.) Důkaz: Převedením na výrokový případ pomocí Herbrandovy věty a Lifting lemmatu. Pozor! Stejně jako u výrokové rezoluce neplatí obecně, že pokud A φ pak A φ.

Úplnost rezolučního kalkulu logiky 1. řádu Je-li A splnitelná množina klauzulí, pak buďto: Dospějeme při odvozování k množině, která je uzavřená na aplikaci rezoluce (saturovaná množina), a pak víme, že A je splnitelná. Odvozování nikdy neskončí, klauzulí bude stále přibývat, a nedozvíme se nic (příklad).

Použití rezolučního kalkulu 1.Převedeme úlohu na hledání důkazu spornosti množiny formulí. 2.Tzv. Skolemizací odstraníme existenční kvantifikátory. 3.Formule převedeme na klauzule. 4.Aplikujeme rezoluční kalkulus.

Skolemizace odstranění existenčních kvantifikátorů Formule ( X 1 )...( X n )( Y)φ je splnitelná právě když ( X 1 )...( X n )φ{y f(x 1,..., X n )} je splnitelná formule. f je nový symbol přidaný do jazyka, který není použit nikde jinde. Na této myšlence je založena Skolemizace proces odstranění existenčních kvantifikátorů.

Skolemizace odstranění existenčních kvantifikátorů Postup: 1) Převedeme formuli do prenexního tvaru pomocí vhodných pravidel přesuneme všechny kvantifikátory na začátek formule. Je-li formule tvaru ( X 1 )...( X n )( Y)φ, přidáme do jazyka nový funkční symbol f arity n a formuli nahradíme novou formulí ( X 1 )...( X n )φ{ Y f(x 1,..., X n )} 1) Bod (2) opakujeme dokud ve formuli jsou existenční kvantifikátory. Výsledná formule není ekvivalentní s původní! Pouze je ekvisplnitelná.

Pravidla pro práci s kvantifikátory ( X)φ(X) ( X) φ(x) ψ (( X)φ(X)) ( X)(ψ φ(x)) ψ & (( X)φ(X)) ( X)(ψ & φ(x)) ψ (( X)φ(X)) ( X)(ψ φ(x)) (( X)φ) ψ ( X)(φ(X) ψ) Pozor: Pro a (XOR) jednoduchá pravidla nejsou, je třeba převést na kombinaci výše uvedených spojek! Ve všech případech nesmí být X volná proměnná v ψ (příklad).

Převedení formulí na klauzule Po skolemizaci máme formuli v prenexním tvaru, bez existenčních kvantifikátorů. Všechny logické spojky přepíšeme pomocí konjunkce, disjunkce a negace. Pomocí DeMorganových pravidel přesuneme všechny negace až k výrokovým proměnným. Průběžně eliminujeme dvojité negace. Distributivním pravidlem roznásobíme konjunkce a disjunkce tak, aby všechny disjunkce byly uvnitř konjunkcí.