Matematická logika. Miroslav Kolařík

Podobné dokumenty
Matematická logika. Miroslav Kolařík

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

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

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

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

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

Výroková logika - opakování

Úvod do informatiky. Miroslav Kolařík

Logika a logické programování

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

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

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

Matematická logika. Miroslav Kolařík

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

Logické programy Deklarativní interpretace

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

Základy logiky a teorie množin

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

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

Modely Herbrandovské interpretace

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

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

popel, glum & nepil 16/28

Rezoluční kalkulus pro výrokovou logiku

Seminární práce z Teorie ICT

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

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

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

Systém přirozené dedukce výrokové logiky

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

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

Logické programování

Logické programování

Tableaux metody. Jiří Vyskočil 2011

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

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

Výroková logika syntaxe a sémantika

Matematická logika. Rostislav Horčík. horcik

4.2 Syntaxe predikátové logiky

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

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

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

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

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

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

Predikátová logika dokončení

LOGIKA VÝROKOVÁ LOGIKA

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

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

Logika Libor Barto. Výroková logika

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

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 α

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Representace znalostí s použitím klasické negace

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

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

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

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

Matematická logika. Miroslav Kolařík

Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

Matematická logika. Rostislav Horčík. horcik

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

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

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

Matematická logika. Rostislav Horčík. horcik

2.2 Sémantika predikátové logiky

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

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

Výroková logika dokazatelnost

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

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

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 - XIII

Základní pojmy matematické logiky

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

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

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

1. Predikátová logika jako prostedek reprezentace znalostí

1 Linearní prostory nad komplexními čísly

Základy matematické logiky

Marie Duží

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

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

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

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

Abstrakt Text je určen jako doplňkový k přednášce Matematická logika a Paradigmata programování 4.

Částečná korektnost. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

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

Klasická predikátová logika

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

Matematická logika. Rostislav Horčík. horcik

Kapitola Výroky

1. Matematická logika

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

Aplikace: Znalostní báze

Hilbertovský axiomatický systém

Predikátová logika [Predicate logic]

SLD-derivace. Petr Štěpánek. S využitím materiálu Krysztofa R. Apta

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

Transkript:

Matematická logika přednáška desátá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004.

Obsah 1 Úvod do modální logiky 2 Logické programování a Prolog 3 Teoretické základy logického programování

Motivace Klasická logika nemá prostředky k formalizaci tvrzení obsahujících modality, například je možné, že..., je nutné, že.... Rozšíření klasické logiky, kde toto je možné se nazývá modální logika. ML našla uplatnění například ve formalizaci znalostních systémů a systémů, které pracují s časem.

Základy syntaxe a sémantiky ML Zaměříme se na výrokovou ML. Oproti jazyku klasické VL obsahuje jazyk ML navíc unární spojky a ( ϕ se čte je nutné, že ϕ a ϕ se čte je možné, že ϕ ). Definice formule se příslušným způsobem rozšíří, tj. přidáme pravidlo je-li ϕ formule, jsou i ϕ a ϕ formule. Poznamenejme, že konkrétní význam ϕ může být je známo, že ϕ, věří se, že ϕ, vždy v budoucnosti bude platit ϕ apod. Sémantika ML je založena na pojmu možný svět. Možný svět je obecná kategorie (v jednom možném světě může v daný okamžik pršet, ve druhém ne, apod.), která má řadu interpretací. Možné světy mohou být časové okamžiky; mohou reprezentovat názory jednotlivých expertů (co možný svět, to expert) apod. Speciální interpretací světů získáme logiku času (temporální logika), což je logika zabývající se tvrzeními, jejichž pravdivostní hodnota závisí na čase. Logika znalostí (epistemická logika) se zabývá spojkami ví se, že..., věří se, že... apod.

Definice Kripkeho struktura pro výrokovou ML je trojice K = W,e,r, kde W /0 je množina možných světů, e je zobrazení přiřazující každému w W a každému výrokovému symbolu p pravdivostní hodnotu e(w, p) (p je/není pravdivé ve w), r W W je relace dosažitelnosti ( w,w r znamená, že z w je možné se dostat do w ). Pro r = W W (každý svět je dosažitelný z každého) se příslušná logika nazývá logika znalostí. Platí-li pro nějaké W W, že r = W W, nazývá se příslušná logika logika domění.

Definujme nyní pravdivostní hodnotu ϕ K,w formule ϕ v K v možném světě w takto: p K,w = e(w,p) (pro výrokový symbol p); ϕ ψ K,w = 1, právě když ϕ K,w = 1 a ψ K,w = 1 (tedy jako v klasické logice) a podobně pro ostatní výrokové spojky; ϕ K,w = 1, právě když ϕ K,v = 1 pro každý v W, pro který w,v r (tj. je nutné, že ϕ znamená, že ϕ je pravdivá v každém možném světě dosažitelném z w); ϕ K,w = 1, právě když ϕ K,v = 1 pro nějaký v W, pro který w,v r (tj. je možné, že ϕ znamená, že ϕ je pravdivá v nějakém možném světě dosažitelném z w). Poznamenejme ještě, že ϕ a ϕ (a ϕ a ϕ) mají stejné pravdivostní hodnoty. Tedy stačí zavést jen jednu spojku a druhou brát jako odvozenou.

Poznámka: Je-li r reflexivní, tranzitivní a platí-li, že pro každé v,w W je v,w r nebo w,v r, pak se odpovídající logika nazývá logika času (temporální logika) a w W se chápou jako časové okamžiky. (Existují i jiné systémy logiky času.) Pak tedy ϕ K,w = 1 znamená, že ϕ je pravdivá ve všech časových okamžicích počínaje w. Pro r 1 pak ϕ K,w = 1 znamená, že ϕ je pravdivá ve všech časových okamžicích až po w. Podobně pro ϕ K,w = 1.

Obsah 1 Úvod do modální logiky 2 Logické programování a Prolog 3 Teoretické základy logického programování

Logické programování je jedním z paradigmat programování. Uved me nyní základní rysy, kterými se logické programování zásadně odlišuje od ostatních programovacích paradigmat: (1) programátor specifikuje, co se má vypočítat, a ne jak se to má vypočítat a kam uložit mezivýsledky (2) Prolog nemá příkazy pro řízení běhu výpočtu ani pro řízení toku dat, nemá příkazy cyklů, větvení, přiřazovací příkaz (3) neexistuje rozdělení proměnných na vstupní a výstupní (4) nerozlišuje se mezi daty a programem. Prolog je logický programovací jazyk. Vznikl ve Francii (Marseille) začátkem 70. let. Byl vytvořen Alainem Colmeranerem ve spolupráci s Philippem Rousselem, na základě procedurálního výkladu Hornovy klauzule od Roberta Kowalskiho. Jméno Prolog vzniklo jako zkratka z PROgrammation à LOGic (francouzsky programování v logice ).

Prolog je interpretační (neprocedurální) jazyk. Patří mezi deklarativní programovací jazyky potlačuje imperativní složku. (Připomeňme, že imperativní paradigma popisuje jak vyřešit problém, deklarativní paradigma popisuje co je problém.) Prolog je využíván především v oboru umělé inteligence a v počítačové lingvistice (obzvláště zpracování přirozeného jazyka, pro nějž byl původně navržen). Prolog je založen na PL (prvního řádu); konkrétně se omezuje na Hornovy klauzule. Základními využívanými přístupy jsou unifikace, rekurze a backtracking.

Program a výpočet v logickém programování Základní koncepci logického programování vyjadřuje následující dvojice rovností : program výpočet = množina axiomů = konstruktivní důkaz uživatelem zadaného cíle, nebo volněji: program je souborem tvrzení, kterými programátor (uživatel, expert) popisuje určitou část okolního světa; výpočet nad daným programem, který je iniciován zadáním dotazu, je hledání důkazu dotazu z daného souboru tvrzení.

Shrňme a doplňme základní rysy logického programování: logický program je konečná množina formulí speciálního tvaru výpočet je zahájen zadáním formule dotazu (tu zadá uživatel) cílem výpočtu je najít důkaz potvrzující, že dotaz logicky vyplývá (je dokazatelný) z logického programu (konstruktivnost) pokud je takto zjištěno, že dotaz z programu vyplývá, výpočet končí a uživateli je oznámeno Yes s hodnotami případných proměnných, které se v dotazu vyskytují pokud není zjištěno, že dotaz z programu vyplývá, výpočet končí a uživateli je oznámeno No může se stát, že výpočet neskončí.

Poznámka: Programátor není zbaven zodpovědnosti za to, jak bude výpočet probíhat. Výpočet (tj. logické dokazování) je řízen prologovským překladačem a programátor musí znát pravidla (alespoň chce-li psát efektivní programy), kterými se výpočet řídí a v souladu s nimi program v Prologu vytvářet. Poznámka: Základem Prologu je databáze klauzulí, které lze dále rozdělit na fakta a pravidla, nad kterými je možno klást dotazy formou tvrzení, u kterých Prolog zhodnocuje jejich pravdivost (dokazatelnost z údajů obsažených v databázi). Nejjednoduššími klauzulemi jsou fakta, která pouze vypovídají o vlastnostech objektu nebo vztazích mezi objekty. Složitějšími klauzulemi jsou pravidla, která umožňují (pomocí implikace) odvozovat nová fakta. Zapisují se ve tvaru hlavička :- tělo, kde hlavička definuje odvozovaný fakt, tělo podmínky, za nichž je pravdivý, obsahuje jeden či více cílů. Pokud se interpretu podaří odvodit, že tělo je pravdivé, ověřil tím pravdivost hlavičky. Ukázka prologovského programu: viz přednáška.

Obsah 1 Úvod do modální logiky 2 Logické programování a Prolog 3 Teoretické základy logického programování

Definice Literál je libovolná atomická formule (tzv. pozitivní literál) nebo negace atomické formule (tzv. negativní literál). Klauzule je libovolná disjunkce literálů. Hornovská klauzule je klauzule, ve které se vyskytuje maximálně jeden pozitivní literál. Symbolem se označuje prázdná klauzule (tj. klauzule obsahující 0 literálů). Poznámka: je v logickém programování symbolem sporu. Poznámka: Klauzule L 1 L n (L i jsou literály) se v logickém programování často zapisují jako {L 1,...,L n }; zde čárky znamenají disjunkci. Pak se značí {}.

Jak brzy uvidíme, pracuje Prolog následovně: Je-li dán logický program P a zadá-li uživatel dotaz G (popř. obecněji G 1,...,G n ), překladač Prologu přidá k P negaci dotazu, tj. přidá G a snaží se z P, G (to je vlastně množina formulí) odvodit (tzv. rezoluční metodou) spor, tj. odvodit. Dá se dokázat, že G sémanticky vyplývá z P (P = G), právě když je z P, G odvoditelná. Oznámí-li prologovský překladač po zadání dotazu G na program P odpověd Yes, znamená to právě, že překladač odvodil z P, G klauzuli.

Hornovská klauzule má jeden z následujících tvarů: (a) (nenulový počet negativních literálů, právě jeden pozitivní literál) A B 1 B n (A,B i jsou atomické formule); tato klauzule je ekvivalentní formuli B 1 B n A (Proč? Uvědomme si, že B A je ekvivalentní A B a že (B 1 B n ) je ekvivalentní B 1 B n.) Tyto klauzule odpovídají prologovským pravidlům. (b) (nulový počet negativních literálů, právě jeden pozitivní literál) A. Tyto klauzule odpovídají prologovským faktům. (c) (nenulový počet negativních literálů, žádný pozitivní literál) C 1 C n (C i jsou atomické formule); tato klauzule, respektive její obecný uzávěr ( C 1 C n ) je ekvivalentní formuli (C 1 C n ) (Proč? Uvědomme si, že ( x)ϕ je ekvivalentní ( x) ϕ.) Tyto klauzule odpovídají prologovským dotazům.

Definitní logický program; substituce Definice Logický program (někdy definitní logický program) je konečná množina hornovských klauzulí s jedním pozitivním literálem (tj. klauzulí odpovídajících pravidlům a faktům). Pro naše potřeby nyní rozšíříme výklad o substitucích. Obecně budeme uvažovat substituce tvaru (x 1 /s 1,...,x n /s n ) (x i jsou proměnné, s i termy), kde proměnné x i jsou navzájem různé (tj. pro i j je x i x j ) a dále x i s i. Speciálně, () označuje tzv. prázdnou substituci; pro ni platí ϕ() = ϕ a t() = t. Pro substituci θ = (x 1 /s 1,...,x n /s n ) bude ϕθ (popřípadě tθ) označovat výsledek substituce použité na formuli ϕ (popřípadě term t); tento výsledek vznikne současným nahrazením proměnných x 1,...,x n termy s 1,...,s n.

ϕ(σθ) bude formule, která vznikne aplikací substituce θ na formuli vzniklou aplikací substituce σ na ϕ. Pro substituce σ = (x 1 /s 1,...,x n /s n ) a θ = (y 1 /t 1,...,y m /t m ) definujeme substituci σ θ jako substituci, která vznikne z (x 1 /s 1 θ,...,x n /s n θ,y 1 /t 1,...,y m /t m ) vymazáním (1) x i /s i θ, pro která x i = s i θ (2) y i /t i, pro která y i {x 1,...,x n }. Lehce se ověří následující tvrzení. Lemma Pro substituce σ,θ,τ platí: (1) σ() = ()σ = σ (2) E(σθ) = (Eσ)θ pro libovolnou formuli (popř. term) E (3) (σθ)τ = σ(θτ).

Definice Substituce θ se nazývá obecnější než substituce σ, jestliže existuje substituce τ, pro kterou σ = θτ. Tedy: θ je obecnější, protože z ní můžeme dostat σ dodatečným upřesněním τ. Definice Substituce θ se nazývá unifikační substituce (také unifikace) množiny {ϕ 1,...,ϕ n } formulí (popř. termů), pokud ϕ 1 θ = ϕ 2 θ = = ϕ n θ. Tedy: unifikace je substituce, po jejíž aplikaci přejdou všechny formule ϕ i ve stejnou formuli.

Definice Unifikace θ množiny {ϕ 1,...,ϕ n } se nazývá nejobecnější unifikací (zkratka mgu z anglického most general unifier ) této množiny, jestliže je obecnější než každá jiná unifikace množiny {ϕ 1,...,ϕ n }. Poznamenejme, že nejobecnější unifikace (mgu) se dá najít algoritmicky, přičemž není určena jednoznačně.

Obecná rezoluční metoda byla navržena v 60. letech 20. století Robinsonem. Základem je tzv. rezoluční odvozovací pravidlo, které ze dvou klauzulí odvodí jinou klauzuli, jejich tzv. rezolventu. Obecný tvar rezolučního pravidla je: z klauzule {L 1,...,L i 1,A,L i+1,...,l n } a klauzule {L 1,...,L i 1, A,L i+1,...,l m} odvod klauzuli (rezolventu výše uvedených klauzulí) {L 1 θ,...,l i 1 θ,l i+1 θ,...,l n θ,l 1 θ,...,l i 1 θ,l i+1 θ,...,l mθ}, je-li θ mgu množiny {A,A }. Přitom L i,l j jsou literály a A,A jsou atomické formule.

Rezoluční pravidlo je svou povahou odvozovací pravidlo z nějakých formulí odvodí jinou formuli. Pravidlo MP lze chápat jako speciální případ rezolučního pravidla: MP říká z A a A B odvod B. Formule A B je ekvivalentní klauzuli A B. Tedy odvození pomocí MP odpovídá odvození {B} z { A, B} a {A}. To lze pomocí rezolučního pravidla s unifikací, za kterou vezmeme identickou (prázdnou) substituci.

Pro danou množinu F klauzulí označme R(F) = {C C je rezolventou nějakých klauzulí z F }. Dále definujme R 0 (F) = F a R n+1 (F) = R n (F) R(R n (F)). Tedy R n (F) je množina klauzulí odvoditelných z F nejvýše n-násobným použitím kroku utvoř všechny možné rezolventy. Nyní (bez důkazu) uvedeme základní výsledek popisující rezoluční metodu: Věta Množina F klauzulí je sporná, právě když existuje n tak, že R n (F).