Logika pro každodenní přežití Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Stefan Ratschan (FIT ČVUT) MI-MAS 2 1 / 20
Logika v každodenním životě Já osobně používám logiku, když vařím, ukĺızím, atd. Ale přiznávám, že jsem trochu podivná osoba Pokaždé když čtu noviny bych rád poslal všechny novináře do kurzu logiky (tolik je tam logických chyb) Novináři to potřebují, ale informatici? Stefan Ratschan (FIT ČVUT) MI-MAS 2 2 / 20
Logika pro informatiky Halpern/Harper/Immerman/Kolaitis/Vardi/Vianu: On the Unusual Effectiveness of Logic in Computer Science At present concepts and methods of logic occupy a central place in computer science Článek má i celou kapitolu o roli logiky v návrhu digitálních obvodů. Stefan Ratschan (FIT ČVUT) MI-MAS 2 3 / 20
Logika pro informatiky Každý den potřebujete ověřit správnost určitého programu, design čipu atd. Tam používáte selskou logiku. Problém je v tom, že modul selské logiky v lidském mozku vznikl před několika tisíci lety, a tenkrát měl jiný účel: Stefan Ratschan (FIT ČVUT) MI-MAS 2 4 / 20
Logika pro informatiky Kvůli svému historickému účelu, je tento modul v moderním (a zejména informatickém) životě strašně náchylný k chybám. Hlavní účel studia informatiky není učit se programovací jazyky, sítové protokoly atd. ale trvale vylepšit logický modul v mozku! (nicméně tyto dva cíle se dají hezky kombinovat) Tím že cvičíme formální logiku, si vylepšíme i selskou logiku pro každodenní život. Stefan Ratschan (FIT ČVUT) MI-MAS 2 5 / 20
Cíl dnešní přednášky Upgrade Vašeho mozkového logického modulu Pár logických pravidel, která budou i platit pokud přespáváte 1000 let a a probudíte se v době, kdy už nikdo neví co je Java, HTML atd. Bohužel v této přednášce nemůžeme mnoho diskutovat nejdůležitější aplikaci tohoto modulu v informatice: logika v programování (viz. přednáška formální metody v letním semestru). Ale i analýza a modelování systémů je důležitá aplikace a můžeme cvičit tento modul i tady. Doporučení, formální detaily : J. Velebil: Velmi jemný úvod do matematické logiky : ftp://math.feld.cvut.cz/pub/velebil/y01mlo/logika.pdf Kapitola Predikátová logika Stefan Ratschan (FIT ČVUT) MI-MAS 2 6 / 20
Jak vytvořit logické výrazy (Syntax) Term (např. 2x + 3, first(rest(l)), a(i)): proměnná funkční symboly s určitou aritou Funkční symboly arity 0 nazýváme konstanty. V každodenním životě obvykle dáváme funkčním symbolům význam: + obvykle znamená sčítání rest obvykle znamená zbytek seznamu atd. Navíc dáváme funkčním symbolům často typ, např: + : R R R num elem : List N 0. Stefan Ratschan (FIT ČVUT) MI-MAS 2 7 / 20
Jak vytvořit logické výrazy (Syntax) Formule: (např: x. 2x + 3 > 0 x 2 0, empty(a(i))) kvantifikátory:, logické spojky:,, (místo konjunkce se často píše čárka). predikáty s termy jako argument, zejména predikát = T, F Pozor: x. P(x) Q(x) vs. x. [P(x) Q(x)] vs. [ x. P(x)] Q(x) V každodenním životě obvykle dáváme predikátům význam, např. < obvykle znamená méně než, atd. Navíc dáváme i predikátům často typ, např: < je predikát na R R, is empty list je predikát na seznamech atd. Stefan Ratschan (FIT ČVUT) MI-MAS 2 8 / 20
Jak vytvořit logické výrazy (Syntax) Když píšeme formule musíme dávat pozor, aby všechny funkční symboly a predikáty vždy měly dovolený počet argumentů a si odpovídaly typy těch argumentů. Když píšeme programy, tak to ve většině programovacích jazyků dělá pro nás compiler (kromě JavaScript, LISP, Prolog,...) Jinak musíme dávat pozor (z novinářštiny Klaus je lepší prezident ) Syntaktický strom Stefan Ratschan (FIT ČVUT) MI-MAS 2 9 / 20
Další pojmy Volná/vázaná proměnná. J. Velebil: Výskyt standardní proměnné x ve formuli nazýváme vázaným, pokud při cestě od tohoto listu ke kořeni syntaktického stromu narazíme na vrchol označkovaný bud x nebo x. V opačným případě nazveme tento výskyt volným. Kvantifikátor x nebo x váže všechny výskyty proměnné x, které jsou v syntaktickém stromu pod tím kvantifikátorem. (chyby jsou moje) Substituce: Budeme psát A[x t] pro výsledek nahrazení každého volného výskytu proměnné x termem t ve výrazu A Stefan Ratschan (FIT ČVUT) MI-MAS 2 10 / 20
Význam logických formuĺı (Sémantika) Interpretace dává každému predikátu a každému funkčnímu symbolu určitý význam (pozor na aritu a eventuální typy!). Valuace/ohodnocení/kontext dává každé proměnné určitou hodnotu. Pro interpretaci I, valuaci σ, formuli φ: I, σ = φ. Může se přesně definovat, ale nemáme na to čas = φ: formule φ obecně platí (nezávislé od interpretace/valuace). V praxi většinou stačí znát intuitivní význam Důležité je znát pravidla, jak zacházet s logickými formulemi Zbytek dnešní přednášky: Logická pravidla, která obecně platí (i za 1000 let) se můžou každodenně používat Stefan Ratschan (FIT ČVUT) MI-MAS 2 11 / 20
Ekvivalence je ekvivalentní s : formule mají stejný význam, jedna formula se může libovolně nahradit druhou (A, B, C stojí pro libovolné formule): A je ekvivalentní s B, pokud A a B se liší jen α-konverzí (Velebil 3.1.12) A B je ekvivalentní s B A A B je ekvivalentní s B A A T je ekvivalentní s A A F je ekvivalentní s F A T je ekvivalentní s T A F je ekvivalentní s A A A je ekvivalentní s F A A je ekvivalentní s T Stefan Ratschan (FIT ČVUT) MI-MAS 2 12 / 20
Další ekvivalence A (B C) je ekvivalentní s (A B) (A C) A (B C) je ekvivalentní s (A B) (A C) A je ekvivalentní s A (A B) je ekvivalentní s A B (A B) je ekvivalentní s A B Rozlišení případů (case distinction): A je ekvivalentní s (B A) ( B A) Stefan Ratschan (FIT ČVUT) MI-MAS 2 13 / 20
Další ekvivalence x. y.a je ekvivalentní s y. x.a x. y.a je ekvivalentní s y. x.a x.a je ekvivalentní s x. A x.a je ekvivalentní s x. A x. A B je ekvivalentní s [ x.a] [ x.b] x. A B je ekvivalentní s [ x.a] [ x.b] x. A B je ekvivalentní s [ x.a] B pokud B neobsahuje x x. A B je ekvivalentní s [ x.a] B pokud B neobsahuje x Pravidla ekvivalence: A je ekvivalentní s A Pokud A je ekvivalentní s B, pak B je ekvivalentní s A Pokud A je ekvivalentní s B a B je ekvivalentní s C pak A je ekvivalentní s C Stefan Ratschan (FIT ČVUT) MI-MAS 2 14 / 20
Implikace, ekvivalence A B je zkratka pro A B A B je zkratka pro A B B A Z toho plyne: A B je ekvivalentní s B A A B je ekvivalentní s B A Stefan Ratschan (FIT ČVUT) MI-MAS 2 15 / 20
Důkaz Důkaz: Objektivní doklad, že určitá formule φ platí ( = φ) Příklad: Ekvivalence číslicových obvodů. Můžeme dokázat A B tím, že dokážeme že A je ekvivalentní s B. Ale obecně to nestačí. Obecná (úplná) metoda dokazování: přednáška formální metody Stefan Ratschan (FIT ČVUT) MI-MAS 2 16 / 20
Teorie množin Pár základních pravidel pro každodenní použití: Množiny vytvoříme takto: {x A}, přičemž A je logická formule Definice: Pro množiny S a T, S T =. {x x S x T } S T =. {x x S x T } S \ T =. {x x S x T } Prázdná množina je množina tak, že x. x Ekvivalence: Pro množiny S a T, S T je ekvivalentní s x. x S x T S = T je ekvivalentní s x. x S x T a {x A} je ekvivalentní s A[x a] Stefan Ratschan (FIT ČVUT) MI-MAS 2 17 / 20
Množiny Navíc platí: Pro množinu S, {x x S} = S Často se používá notace: {a} pro {x x = a} {a 1,..., a n } pro {x x = a 1 x = a n } x S. A pro x. x S A x S. A pro x. x S A Stefan Ratschan (FIT ČVUT) MI-MAS 2 18 / 20
Diskuse Predikátová logika + teorie množin stačí pro vybudování celé matematiky! Ale: Naše pravidla nestačí, potřebovali bychom Zermelo-Fraenkel set theory (ZFC) (C: axiom of choice) Bohužel příliš složitá pro tuto přednášku (viz. internet) Stefan Ratschan (FIT ČVUT) MI-MAS 2 19 / 20
Příští přednáška Komunikující konečné automaty: Modelování komunikace souběžných komponentů Stefan Ratschan (FIT ČVUT) MI-MAS 2 20 / 20