Úvod do teoretické informatiky (logika) Marie Duží marie.duzi@vsb.cz 1 Úvod do teoretické informatiky (logika)
Učební texty: http://www.cs.vsb.cz/duzi Courses Introduction to Logic, Introduction to Theoretical Informatics Mathematical Logic. Jsou zde: Učební texty (skripta), Presentace přednášek Příklady na cvičení + doplňkové texty Úvod do teoretické informatiky (logika) 2
1. Úvod Co je to logika? Čím se logika zabývá? Noel Coward o logice Matematici ji musejí provozovat, vědci ji pravděpodobně provozují, sociologové ji docela dobře nemohou provozovat, politikové předstírají, že ji provozují, informatici tvrdí, že nakonec ji budou provozovat počítače, filosofové se domnívají, že ji provozují nejlépe, postmodernisté říkají, že ji nemůžeme provozovat, Bůh ji nepotřebuje provozovat a Gödel řekl, že nikdo ji nemůže provozovat úplně. Úvod do teoretické informatiky (logika) 3
1. Úvod Logika je věda o správném usuzování, neboli o umění správné argumentace Co je to úsudek (argument)? Úsudek: na základě pravdivosti předpokladů (premis) P1,...,Pn je možno soudit, že je pravdivý i závěr Z: P1, ..., Pn Z Příklad: Na základě toho, že je středa, soudím, že se koná přednáška „Úvod do teoretické informatiky“: Je středa Je přednáška Úvod do teoretické informatiky (logika) 4
Úvod: správné (platné) úsudky Budeme se zabývat pouze deduktivně platnými úsudky: P1,...,Pn |= Z kdy závěr Z logicky vyplývá z předpokladů (premis) P1,..., Pn. Definice 1: Závěr Z logicky vyplývá z předpokladů P1,...,Pn , značíme P1,...,Pn |= Z, jestliže za žádných okolností nemůže nastat případ takový, že předpoklady (premisy) by byly pravdivé a závěr nepravdivý. Úvod do teoretické informatiky (logika) 5
Úvod: správné (platné) úsudky Příklad: Na základě toho, že je středa, soudím, že se koná přednáška „Úvod do teoretické informatiky“: Dnes je středa neplatný Dnes je přednáška UTI. Je to deduktivně platný úsudek? Není. Třeba je přednášející nemocen a přednáška se nekoná, i když je středa (chybí předpoklad, že každou středu je přednáška) Každou středu je přednáška UTI. Dnes je středa. platný Úvod do teoretické informatiky (logika) 6
Deduktivně nesprávné úsudky: generalizece (indukce), abdukce Nebudeme se zabývat úsudky generalizací (indukce), abduktivními, a jinými –dukcemi umělá inteligence (nemonotónní usuzování) Příklady: Doposud vždy ve čtvrtek byla logika. indukce neplatný Logika bude i tento čtvrtek Všechny labutě v Evropě jsou bílé indukce neplatný Všechny labutě na světě jsou bílé Úvod do teoretické informatiky (logika) 7
Deduktivně nesprávné úsudky: generalizace (indukce), abdukce Příklady: Všichni králíci v klobouku jsou bílí. Tito králíci jsou z klobouku. Tito králíci jsou bílí. Dedukce, platný Tito králíci jsou bílí. (asi) Všichni králíci v klobouku jsou bílí. Generalizace, Indukce, neplatný (asi) Tito králíci jsou z klobouku. Abdukce, neplatný Hledání předpokladů (příčin) jevů, diagnostika „poruch“ Úvod do teoretické informatiky (logika) 8
Příklady deduktivně správných (platných) úsudků Je doma nebo šel na pivo. Je-li doma, pak se učí na zkoušku. Ale na zkoušku se nenaučil. ------------------------------------------------ Tedy Šel na pivo. Někdy se zdá, jako bychom žádnou logiku nepotřebovali. Vždyť: Nenaučil-li se na zkoušku (dle 3. premisy), pak nebyl doma dle 2. premisy, a dle 1. premisy šel na pivo. Všichni běžně logiku používáme a potřebujeme. Bez ní bychom nepřežili: Všechny muchomůrky zelené jsou prudce jedovaté. Houba, kterou jsem našla je muchomůrka zelená. ---------------------------------------------------------------------- Houba, kterou jsem našla je prudce jedovatá. Spolehnu se na logiku a nebudu zkoumat (jak bych to dělala?), zda je ta houba jedovatá. Úvod do teoretické informatiky (logika) 9
Příklady deduktivně správných (platných) úsudků Všechny muchomůrky zelené jsou prudce jedovaté. Tato tužka je muchomůrka zelená. ---------------------------------------------------------------------- Tedy Tato tužka je prudce jedovatá. Úsudek je správný. Závěr je však nepravdivý. Tedy alespoň jedna premisa je nepravdivá (zjevně ta druhá). Okolnosti dle Definice 1 jsou různé interpretace (dle expresivní síly logického systému). Logické spojky (‘a’, ‘nebo’, ‘jestliže, …pak …’) mají pevný význam, interpretujeme elementární výroky nebo jejich části (predikáty a funkční termy). V našem případě, kdyby byly „tato tužka“ a „ muchomůrka zelená“ interpretovány tak, aby byla druhá premisa pravdivá, byla by zaručena pravdivost závěru. Říkáme také, že úsudek má správnou logickou formu. 10
Správné (platné) úsudky Logika je nástroj, který pomáhá objevovat vztah logického vyplývání, řešit úlohy typu „Co vyplývá z daných předpokladů“?, a pod. Je-li tento kurs dobrý, pak je užitečný. Buď je přednášející přísný, nebo je tento kurs neužitečný. Ale přednášející není přísný. -------------------------------------------------------------------------- Tedy Tento kurs není dobrý. Pomáhá naší intuici, která může někdy selhat. Premisy mohou být složitě formulované, „zapletené do sebe a do negací“, vztah vyplývání pak není na první pohled patrný. Podobně jako všichni rodilí mluvčí jazyka používají gramatická pravidla, aniž by znali gramatiku. Ale někdy je dobré se podívat do mluvnice jazyka českého (zejména v soutěži 1 proti 100). Úvod do teoretické informatiky (logika) 11
Úvod do teoretické informatiky (logika) Příklady úsudků Všichni muži mají rádi fotbal a pivo. Někteří milovníci piva nemají rádi fotbal. Xaver má rád pouze milovníky fotbalu a piva. –––––––––––––––––––––––––––––––––––– Některé ženy nemá Xaver rád. Nutně, jsou-li pravdivé všechny předpoklady, pak musí být pravdivý i závěr. Je však tento úsudek platný? Jistě, má-li Xaver rád pouze milovníky fotbalu a piva (3.), pak nemá rád některé milovníky piva (ty co nemají rádi fotbal (2.)), tedy nemá rád (dle 1.) některé „ne-muže“, t.j. ženy. Dle Definice 1 však platný není: úsudek je platný, pokud je nutně, tj. za všech okolností (interpretací) kdy jsou pravdivé předpoklady, pravdivý i závěr. Ale: v našem příkladě ta individua, která nejsou muži by nemusela být interpretována jako ženy. Chybí zde premisa, že „kdo není muž, je žena“, podobně ještě potřebujeme premisu „kdo je milovník něčeho, ten to má rád“. Úvod do teoretické informatiky (logika) 12
Příklady platných úsudků Tedy: musíme uvádět všechny předpoklady nutné pro odvození závěru. Všichni muži mají rádi fotbal a pivo. Někteří milovníci piva nemají rádi fotbal. Xaver má rád pouze milovníky fotbalu a piva. Kdo není muž, je žena Kdo je milovník něčeho, ten to má rád. ––––––––––––––––––––––––––––––––– Některé ženy nemá Xaver rád. Nyní je úsudek správný, má platnou logickou formu. Závěr logicky vyplývá z předpokladů (je v nich „informačně, dedukčně obsažen“). Úvod do teoretické informatiky (logika) 13
Platné úsudky v matematice Úsudek A: Žádné prvočíslo není dělitelné třemi. Číslo 9 je dělitelné třemi. ––––––––––––––––––––––––––– platný Číslo 9 není prvočíslo Úsudek B: Žádné prvočíslo není dělitelné šesti. Číslo osm není prvočíslo. ––––––––––––––––––––––––––– neplatný Číslo osm není dělitelné šesti Ve druhém případě B se sice nemůže stát, že by byly premisy pravdivé a závěr nepravdivý, avšak, závěr v případě B nevyplývá logicky z předpokladů. Kdyby byl výraz „osm“ interpretován jako číslo 12, byly by předpoklady pravdivé, ale závěr nepravdivý. (Závěr s předpoklady „přímo nesouvisí“, není v nich deduktivně obsažen) Úvod do teoretické informatiky (logika) 14
Sémantická věta o dedukci Je-li úsudek P1,...,Pn |= Z platný, pak je analyticky nutně pravdivý také výrok tvaru: |= P1 &...& Pn Z Nutně, jestliže jsou pravdivé všechny premisy P1,...,Pn, pak je pravdivý i závěr Z. Úvod do teoretické informatiky (logika) 15
Vlastnosti deduktivních úsudků Platný (správný) úsudek může mít nepravdivý závěr: Všechna prvočísla jsou lichá 2 není liché číslo Tedy 2 není prvočíslo Pak ale musí být alespoň jeden předpoklad nepravdivý V tom případě říkáme také, že úsudek není „sound“ (přesvědčivý). Avšak je to platný argument, a také je užitečný (důkaz ad absurdum – chceme-li někomu ukázat, že v argumentaci používá nepravdivé předpoklady, ukážeme mu, že z jeho předpokladů vyplývá evidentně nepravdivý závěr). Monotónnost: je-li úsudek platný, pak rozšíření množiny předpokladů o další předpoklad nevede ke změně platnosti úsudku. Úvod do teoretické informatiky (logika) 16
Vlastnosti deduktivních úsudků Ze sporných předpokladů (které nemohou být nikdy všechny najednou pravdivé) vyplývá jakýkoli závěr. Jestliže se budu pilně učit, pak uspěji u zkoušky. U zkoušky jsem neuspěl, ačkoliv jsem se pilně učil. -------------------------------------------------------------------- (třeba že) můj pes hraje na piano Reflexivita: je-li A jeden z předpokladů P1,...,Pn, pak P1,...,Pn |= A. Transitivita: jestliže P1, …, Pn |= Z a Q1, …, Qm, Z |= Z’, pak P1, …, Pn, Q1, …, Qm |= Z’ . Úvod do teoretické informatiky (logika) 17
Úvod do teoretické informatiky (logika) Ještě úsudky P1,...,Pn |= Z právě tehdy, když |= (P1 … Pn) Z POZOR!!! To neznamená, že je či musí být závěr či některá premisa pravdivá. Jde o platné úsudkové schéma, nutný vztah mezi předpoklady a závěrem. Úvod do teoretické informatiky (logika) 18
Úvod do teoretické informatiky (logika) Ještě úsudky Žádné prvočíslo není dělitelné 3 9 je dělitelné 3 ---------------------------------------- 9 není prvočíslo Je platný úsudek, i když první premisa je nepravdivá. Jiná interpretace: Všichni lidé jsou rozumní Kámen není rozumný --------------------------------- Kámen není člověk Úvod do teoretické informatiky (logika) 19
Úvod do teoretické informatiky (logika) Ještě úsudky Nebo, dosazením: Je-li 12 prvočíslo, pak není dělitelné 3 12 je dělitelné 3 12 není prvočíslo Nebo: 12 není prvočíslo nebo není dělitelné 3 Platná úsudková schémata (logické formy, např.): A B, A |= B modus ponens A B, B |= A, modus ponens + transpozice A B, B |= A modus ponens + transpozice A B, B |= A eliminace disjunkce Úvod do teoretické informatiky (logika) 20
1. Přednáška: Část 2 Teorie množin, Relace, zobrazení, spočetnost a nespočetnost množin 21
Co je to množina? Množina je soubor prvků a je svými prvky plně určena; množinu s prvky a, b, c značíme: {a, b, c} Prvkem množiny může být opět množina, množina nemusí mít žádné prvky (značíme ) ! Příklady: , {a, b}, {b, a}, {a, b, a}, {{a, b}}, {a, {b, a}}, {, {}, {{}}} Množiny jsou identické, právě když mají stejné prvky (princip extensionality) Značení: x M – „x je prvkem M“ a {a, b}, a {{a, b}}, {a, b} {{a, b}}, {, {}, {{}}}, {, {}}, ale: x pro žádné (tj. všechna) x. {a, b} = {b, a} = {a, b, a}, ale: {a, b} {{a, b}} {a, {b, a}}
Množinové operace (vytvářejí z množin nové množiny) Sjednocení: A B = {x | x A nebo x B} čteme: „Množina všech x takových, že x je prvkem A nebo x je prvkem B.“ {a, b, c} {a, d} = {a, b, c, d} {sudá čísla} {lichá čísla} = {přirozená čísla} – značíme Nat UiI Ai = {x | x Ai pro nějaké i I} Nechť Ai = {x | x = 2.i pro nějaké i Nat} UiNat Ai = množina všech sudých čísel
Množinové operace (vytvářejí z množin nové množiny) Průnik: A B = {x | x A a x B} čteme: „Množina všech x takových, že x je prvkem A a současně x je prvkem B.“ {a, b, c} {a, d} = {a} {sudá čísla} {lichá čísla} = iI Ai = {x | x Ai pro každé i I} Nechť Ai = {x | x Nat, x i} Pak iNat Ai =
Vztahy mezi množinami Množina A je podmnožinou množiny B, značíme A B, právě když každý prvek A je také prvkem B. Množina A je vlastní podmnožinou množiny B, značíme A B, právě když každý prvek A je také prvkem B a ne naopak. {a} {a} {a, b} {{a, b}} !!! Platí: A B, právě když A B a A B Platí: A B, právě když A B = B, právě když A B = A
Další množinové operace Rozdíl: A \ B = {x | x A a x B} {a, b, c} \ {a, b} = {c} Doplněk (komplement): Nechť A M. Doplněk A vzhledem k M je množina A’ = M \ A Kartézský součin: A B = {a,b | aA, bB}, kde a,b je uspořádaná dvojice (záleží na pořadí) Platí: a,b = c,d právě když a = c, b = d Ale: a,b b,a, ačkoliv {a,b} = {b,a} !!! Zobecnění: A … A množina n-tic, značíme také An
Další množinové operace Potenční množina: 2A = {B | B A}, značíme také P(A) 2{a,b} = {, {a}, {b}, {a,b}} 2{a,b,c} = {, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}} Kolik prvků má množina 2A ? Je-li |A| počet prvků (kardinalita) množiny A, pak 2A má 2|A| prvků (proto takové značení) 2{a,b} {a} = {, {a,a}, {b,a}, {a,a, b,a}}
Grafické znázornění (v universu U): A: S\(PM) = (S\P)(S\M) S(x) (P(x) M(x)) S(x) P(x) M(x) B: P\(SM) = (P\S)(P\M) P(x) (S(x) M(x)) P(x) S(x) M(x) C: (S P) \ M S(x) P(x) M(x) D: S P M S(x) P(x) M(x) E: (S M) \ P S(x) M(x) P(x) F: (P M) \ S P(x) M(x) S(x) G: M\(PS) = (M\P)(M\S) M(x) (P(x) S(x)) M(x) P(x) S(x) H: U \ (S P M) = (U \ S U \ P U \ M) (S(x) P(x) M(x)) S(x) P(x) M(x) S A E C D G B F P M H
Russellův paradox Je pravda, že každý (tj. libovolným způsobem zadaný) soubor prvků lze považovat za množinu? Normální je, že množina a její prvky jsou objekty různých typů. Tedy „normální množina“ není prvkem sebe sama. Nechť tedy N je množina všech normálních množin: N = {M | M M}. Otázka: Je N N ? Ano? Ale pak dle zadání platí, že N je normální, tj. NN. Ne? Ale pak NN, tedy N je normální a patří do N, tj. NN. Obě odpovědi vedou ke sporu, jedná se o „špatné zadání“, které nezadává takový soubor prvků, jenž bychom mohli považovat za množinu.
Relace Relace mezi množinami A, B je podmnožina Kartézského součinu A B. Kartézský součin A B je množina všech uspořádaných dvojic a, b, kde aA, bB (Binární) relace R2 na množině M je podmnožina Kartézského součinu M M: R2 M M n-ární relace Rn na množině M: Rn M ... M n krát Relace, funkce
Relace Pozor: dvojice a,b b,a, ale množina {a,b} = {b,a} a, a a, ale {a,a} = {a} U n-tic záleží na pořadí, prvky se mohou opakovat, na rozdíl od množin Notace: a,b R značíme také prefixně R(a,b), nebo infixně a R b. Např. 1 3. Relace, funkce
Relace - Příklad: Binární relace na N: < (ostře menší) {0,1,0,2,0,3,…,1,2,1,3, 1,4, …, 2,3,2,4,…,3,4,…,5,7,…,115,119, .…} Ternární relace na N: {0,0,0,1,0,1,1,1,0,…, 2,0,2, 2,1,1,2,2,0, …, 3,0,3, 3,1,2, 3,2,1,3,3,0,…,115,110,5, .…} množina trojic přirozených čísel takových, že 3. číslo je rozdíl 1. číslo minus 2. číslo Relace „adresa osoby“: {Jan Novák, Praha 5, Bellušova 1831, Marie Duží, Praha 5, Bellušova 1827,...,} Relace, funkce
Funkce (zobrazení) n-ární funkce F na množině M je speciální zprava jednoznačná (n+1)-ární relace F M ... M: (n+1) x a bc ([F(a,b) F(a,c)] b=c) Parciální F: ke každé n-tici prvků aM...M existuje nanejvýš jeden prvek bM. Značíme F: M ... M M, místo F(a,b) píšeme F(a)=b. Množinu M ... M nazýváme definiční obor (doména) funkce F, množinu M pak obor hodnot (range). Relace, funkce
Funkce (zobrazení) Příklad: Relace na N {1,1,1,2,1,2, 2,2 ,1, …, 4,2,2, …, 9,3,3, …, 27,9,3, .…} je parciální funkce dělení beze zbytku. Také relace minus na N (viz předchozí slide) je na N parciální funkcí: např. dvojice 2,4 nemá v N obraz. Aby byla totální, museli bychom rozšířit její definiční obor na celá čísla. Relace, funkce
Funkce (zobrazení) Jako interpretace funkčních symbolů formulí PL1 používáme pouze totální funkce: Totální funkce F: A B: Ke každému prvku aA existuje právě jeden prvek bB takový, že F(a)=b: a b F(a)=b abc [(F(a)=b F(a)=c) b=c] Zavádíme někdy speciální kvantifikátor ! s významem „existuje právě jedno“ a píšeme: a !b F(a)=b Relace, funkce
Funkce (zobrazení) Příklady: Relace + {0,0,0, 1,0,1, 1,1,2, 0,1,1, …} je na N (totální binární) funkce. Každým dvěma číslům přiřadí právě jedno, jejich součet. Místo 1,1,2 + píšeme 1+1=2 Relace není funkce: x y z [(x y) (x z) (y z)] Relace {0,0, 1,1, 2,4, 3,9, 4,16, …} je na N totální funkce druhá mocnina (x2) Relace, funkce
Surjekce, injekce, bijekce Zobrazení f : A B je surjekce (zobrazení A na B), jestliže k libovolnému b B existuje a A takový, že f(a)=b. b [B(b) a (A(a) f(a)=b)]. Zobrazení f : A B je injekce (prosté zobrazení A do B), jestliže pro všechna aA, bA taková, že a b platí, že f(a) f(b). a b [(A(b) A(a) (a b)) (f(a) f(b))]. Zobrazení f : A B je bijekce (prosté zobrazení A na B), jestliže f je surjekce a injekce. Relace, funkce
Funkce (zobrazení) Příklad: surjekce injekce bijekce {1 2 3 4 5} {2 3 4 } {1 2 3 4 5} { 2 3 4 } {1 2 3 4 5} {1 2 3 4 5} Existuje-li mezi množinami A, B bijekce, pak říkáme, že mají stejnou kardinalitu (počet prvků).
Kardinalita, spočetné množiny Množina A, která má stejnou kardinalitu jako množina N přirozených čísel, se nazývá spočetná. Příklad: množina sudých čísel S je spočetná. Prosté zobrazení f množiny S na N je dáno např. předpisem: f(n) = 2n. Tedy 0 0, 1 2, 2 4, 3 6, 4 8, … Jeden z paradoxů Cantorovy teorie množin: S N (vlastní podmnožina) a přitom počet prvků obou množin je stejný: Card(S) = Card(N)!
Kardinalita, spočetné množiny Množina racionálních čísel R je rovněž spočetná. Důkaz: Provedeme ve dvou krocích. Card(N) Card(R), neboť každé přirozené číslo je racionální: N R. Sestrojíme zobrazení N na R (tedy surjekci N na R), čímž dokážeme, že Card(R) Card(N): 1 2 3 4 5 6 … 1/1 2/1 1/2 3/1 2/2 1/3 … Ale v tabulce se nám racionální čísla opakují, tedy toto zobrazení není prosté. Nicméně, žádné racionální číslo nevynecháme, je to zobrazení na R (surjekce). Proto je Card(N) = Card(R). 1/1 1/2 1/3 1/4 1/5 1/6 … 2/1 2/2 2/3 2/4 2/5 2/6 3/1 3/2 3/3 3/4 3/5 3/6 4/1 4/2 4/3 4/4 4/5 4/6 5/1 5/2 5/3 5/4 5/5 5/6 6/1 6/2 6/3 6/4 6/5 6/6 Relace, funkce 40
Kardinalita, nespočetné množiny Existují však nespočetné množiny: nejmenší z nich je množina reálných čísel R Již v intervalu 0,1 je reálných čísel více než je všech přirozených, ale stejně mnoho jako všech R! Cantorův diagonální důkaz: Kdyby bylo v tomto intervalu čísel R spočetně mnoho, pak by šly uspořádat do posloupnosti první (1.), druhé (2.), třetí (3.),…, a každé z nich je tvaru 0,i1i2i3…, kde i1i2i3… je desetinný rozvoj čísla Racionální čísla mají desetinný rozvoj konečný, iracionální čísla jej mají nekonečný. V posloupnosti desetinných míst i1i2i3… přičteme ke každému n-tému číslu in v jeho rozvoji číslo 1. Dostaneme číslo, které v původní uspořádané posloupnosti nebylo.) – viz další snímek
Cantorův diagonální důkaz nespočetnosti reálných čísel v intervalu 0,1. 1 2 3 4 5 6 7 1 i11 i12 i13 i14 i15 i16 i17 2 i21 i22 i23 i24 i25 i26 i27 3 i31 i32 i33 i34 i35 i36 i37 4 i41 i42 i43 i44 i45 i46 i47 5 i51 i52 i53 i54 i55 i56 i57 …. Nové číslo, které v tabulce není: 0,i11+1 i22+1 i33+1 i44+1 i55+1 …