Výroková logika
Scénář výkladu pro publikum, které o tom nikdy neslyšelo. Jednadvacet kroků, jeden krok = jedna věc, kterou uděláš.
← → nebo mezerník listuje. D přepne do souvislého textu na čtení a tisk. Rozbalovátko nahoře skáče kamkoliv.
Jak číst tuhle přípravu
Takhle vypadá věta, kterou máš říct nahlas. Nemusíš doslova, ale je vyladěná tak, aby sedla napoprvé.
Modrá linka je pokyn pro ruku — co jde v tu chvíli na tabuli.
A tenhle drobný šedý text je jenom pro tebe. Kontext, záložní příklad, odpověď na otázku, která může přijít z pléna. Nahlas to říkat nemusíš.
Dramaturgie
Historie doběhne k Shannonovi. Pak si zavedeš zápis a nakreslíš prázdnou tabulku, která tam zůstane viset do konce. A od té chvíle už jenom bereš jednu spojku po druhé, ukazuješ ji na obvodu nebo na příběhu ze života, a hned ji zapisuješ do tabulky. Tabulka se plní sloupec po sloupci a na konci je hotová, aniž bys ji někdy musel „probírat“.
Co je to výrok
Výrok je jakákoliv oznamovací věta, u které má smysl se ptát, jestli je pravdivá, nebo nepravdivá.
Napiš tu definici na tabuli a nech ji tam viset. Budeš se na ni vracet.
Tohle musí zaznít jako úplně první věcná informace celého výkladu — dřív než historie, dřív než nuly a jedničky. Bez ní visí zbytek ve vzduchu, protože celá výroková logika není nic jiného než počítání s pravdivostí výroků.
Dvě věci, které stojí za zdůraznění
Nemusíme vědět, jestli to pravda je. Stačí, že dává smysl se ptát. „Na Marsu je pod povrchem tekutá voda“ je výrok, i když to nikdo jistě neví — buď to pravda je, nebo není, a to úplně stačí.
Logiku nezajímá obsah. Zajímá ji jediné: platí to, nebo neplatí. Tuhle větu si zapamatuj, budeš ji v tomhle výkladu opakovat ještě třikrát.
Vyzkoušej to na nich
Přečti větu, nech je vykřiknout odpověď. Trvá to dvě minuty a udělá to z přednášky rozhovor.
| Věta | Výrok? | Proč |
|---|---|---|
| V Praze je dnes hezky. | ano | Můžeme ověřit — buď je, nebo není. |
| 2 + 3 = 5 | ano | A je rovnou pravdivý. |
| 2 + 3 = 7 | ano | Pořád výrok! Jenom nepravdivý. |
| Kolik je hodin? | ne | Otázka nemá pravdivostní hodnotu. |
| Kup mléko! | ne | Rozkaz nejde označit za pravdu ani nepravdu. |
| Kéž by už byl víkend. | ne | Přání, není to oznamovací věta. |
| Ahoj! | ne | Pozdrav nic netvrdí. |
Chyták na konec, jen když ti publikum stačí: „Tato věta je nepravdivá.“ Oznamovací věta to je, ale výrok ne — když je pravdivá, tak lže, a když lže, mluví pravdu. Slavný paradox lháře. Nezdržuj se tím déle než minutu.
Co je to formule
Výrok je jedna jediná věta. Jenže o jedné větě samostatně skoro nikdy neuvažujeme — pořád je spojujeme dohromady. „Prší a nemám deštník.“ To už není jeden výrok, to jsou dva slepené k sobě. A takovému slepenci se říká formule.
Pod definici výroku dopiš druhý řádek:
formule = výroky pospojované spojkami
Formule může být jednoduchá („prší a je zima“) i pěkně dlouhá, ale princip je pořád stejný: jednotlivé výroky slepené logickými spojkami, případně ještě se závorkami, aby bylo jasné, co k čemu patří.
A tady je celý zbytek dneška v jedné větě: u formule nás zajímá jediné — jestli je pravdivá jako celek. A to se pozná ze dvou věcí. Z pravdivosti jednotlivých kousků, a z toho, jaká spojka je slepuje. Nic víc na tom není.
Slovo „formule“ nemusíš cpát násilím. Stačí ho jednou pořádně vyslovit tady a pak ho normálně používat — publikum si ho zvykne odposlechem.
Aristoteles třídil svět
Aristoteles v podstatě třídil. Rozděloval věci na rody a druhy a zkoumal, co do čeho patří.
Sókratés je člověk. Sókratés je smrtelný.
Každá z těch vět říká, že něco patří do nějaké skupiny. Lidé patří mezi smrtelné věci, Sókratés patří mezi lidi — a z toho už plyne, že Sókratés patří mezi smrtelné věci. Tomuhle se říká sylogismus a dva tisíce let to byla logika.
Proč to nestačilo
Zkus do toho schématu nacpat úplně obyčejnou větu: „Pokud bude pršet, tak nepřijdu.“ Nejde to. A stojí za to říct přesně proč:
- Aristotelův aparát umí jenom věty tvaru „všichni / někteří X jsou (nejsou) Y“. Vždycky přiřazuje nějaké skupině nějakou vlastnost.
- Jenže „pokud bude pršet, tak nepřijdu“ žádné skupině žádnou vlastnost nepřiřazuje. Není tam žádné X ani Y. Jsou tam dvě samostatná tvrzení — „bude pršet“ a „nepřijdu“ — a mezi nimi podmínka.
- Aristoteles uměl popsat vztahy mezi pojmy uvnitř jedné věty. Ale neměl vůbec žádný nástroj na vztahy mezi celými větami. A přesně tam to „pokud“ žije.
Aristoteles má jenom jeden formulář a tahle věta se do něj nevejde. Uměl říct, co do čeho patří. Neuměl říct, co z čeho plyne, když to spojím slovem „pokud“.
Chrysippos to otočil
Chrysippos ze Soloi (asi 280–206 př. n. l.) a jeho stoická škola udělali přesně opačný krok: přestali koukat dovnitř vět. Celou větu zabalili do jednoho balíčku a začali zkoumat jenom to, čím se balíčky spojují — jestliže, a zároveň, nebo.
Je den. Tedy je světlo.
Všimněte si té změny. Chrysippa vůbec nezajímá, co je to den a co je to světlo. Řeší jenom kostru: když platí A, pak platí B. A platí. Takže platí B. Dosaďte si za A a B naprosto cokoliv a ten argument bude pořád fungovat.
Tomuhle pravidlu se dodnes říká modus ponens. Je to přesně to, co dneska píšeme do kódu jako if (A) { B } — Chrysippos byl v podstatě první programátor v dějinách, jen o dva tisíce let dřív, než k tomu měl počítač.
Tenhle moment si zapamatuj, budeš se na něj odvolávat ještě dvakrát — jednou u zápisu písmeny, podruhé přímo u obvodu s vypínači. Je to nosná myšlenka celého výkladu, ne jen historická perlička.
Ironie na závěr, pokud chceš: z Chrysippových spisů se nedochoval ani jediný. Víme o něm jen z citací u jiných autorů, a jeho logika se pak na skoro dvě tisíciletí zapomněla — protože Aristoteles byl prostě slavnější.
Mezi tím: souboje a jeden sen
Středověké disputace
Na středověkých univerzitách byla logika povinnou součástí trivia — základního vzdělání, které tvořila gramatika, rétorika a logika. Bez toho ses nedostal dál.
Používala se hlavně při veřejných disputacích. Proti sobě stály dvě strany, měly přesně dané role a argumenty se musely striktně řídit logickými pravidly. Kdo udělal formální chybu, prohrál — bez ohledu na to, jestli měl věcně pravdu.
Představte si, že místo fotbalu byl tehdy hlavní veřejnou zábavou souboj dvou chlapů, kteří se snažili jeden druhého nachytat na logické chybě. A dav sledoval, kdo první ujede.
Leibnizův sen o počítání sporů
V 17. století snil polyhistor Gottfried Wilhelm Leibniz o univerzálním logickém jazyku. Představoval si svět, kde se lidé při sporu nemusí hádat — sednou si k papíru, řeknou „Calculemus!“ (Počítejme!) a podle logických pravidel objektivně spočítají, kdo má pravdu.
Leibniz je jediné místo, kde zazní proč to lidi vlastně chtěli. Zároveň je to nejrychleji škrtnutelná část, pokud ti dojde čas — obětuj ji dřív než cokoliv u obvodů.
Boole: s výroky se dá počítat
V roce 1847 vydal George Boole práci, ve které ukázal, že logika není jenom filozofie — že se s výroky dá počítat jako s čísly.
Zavedl systém, kde se pravdivost reprezentuje dvěma hodnotami, 1 a 0, a kde se logické operace chovají podobně jako operace v běžné algebře: násobení funguje jako „a zároveň“, sčítání jako „nebo“.
Do té chvíle byla logika obor, který dělali filozofové slovy. Boole z ní udělal matematiku, kterou jde počítat na papíře. A co jde počítat na papíře, to jednou půjde počítat i strojem.
Tomu systému se dodnes říká Booleova algebra a je to přesně ten most, po kterém se za devadesát let přejde k počítačům.
Kdyby se někdo šťoural — nemusíš to říkat: Boole sám ještě nepracoval s 1 a 0 přesně jako s „pravdou“ a „nepravdou“. U něj 1 znamenala „všechno“ a 0 „nic“ a počítal s třídami věcí. Dnešní čtení „1 = pravda“ dotáhli až Jevons, Peirce a Schröder ve druhé půlce 19. století. Pro laické publikum je ta zkratka v pořádku, jen ji netvrď jako doslovný Boolův výrok.
Boole se toho, k čemu to povede, nedožil. Umřel v roce 1864 na zápal plic — šel v dešti pěšky do práce a pak přednášel v mokrém oblečení.
Shannon: od papíru ke křemíku
V roce 1937 si jednadvacetiletý student MIT všiml, že Booleova algebra přesně odpovídá chování elektrických spínačů.
Claude Shannon to napsal do diplomové práce. Ukázal, že pomocí relé a obvodů jde fyzicky postavit jakýkoliv logický výrok — a obráceně, že každý obvod z vypínačů jde zapsat jako formule a Booleovou algebrou zjednodušit.
Tím položil základ architektury všech digitálních počítačů. Bývá to označováno za nejvlivnější diplomku všech dob a není to nadsázka: procesor v mobilu je přímý potomek téhle úvahy.
A tohle je ten okamžik, kdy se z filozofie stane hardware. Do roku 1937 byla logika něco, co lidi psali na papír. Od roku 1937 je to něco, co jde postavit z drátů.
Tady historie končí. Od dalšího kroku už jenom stavíš nástroje. Přechod udělej rychle a bez pauzy — „a teď si ty dráty postavíme“.
Jak se výrok zapisuje
Výroky označujeme velkými písmeny — A, B, C, …, Z. Píše se písmeno, dvojtečka a v uvozovkách celá věta. A přímo před uvozovky se do kroužku napíše pravdivostní hodnota.
B: 0 „Nebe je zelené.“
Zavedeme si zkratky. Abychom nemuseli pořád dokola psát celé věty, označíme si tu větu jedním písmenem. A do kroužku vedle napíšeme jedničku nebo nulu podle toho, jestli je zrovna pravdivá, nebo ne. Slunce venku svítí, takže A je jednička. Nebe zelené není, takže B je nula.
A tady se vrátíme k Chrysippovi
Tohle je ten moment, kdy se z historické perličky stane nástroj. Řekni to nahlas a pomalu:
Všimněte si, co jsme právě udělali. Celou větu jsme zabalili do jednoho písmene a hodili jsme pryč všechno, co v ní bylo. Nezůstalo z ní slunce ani nebe — zůstala z ní jedna jediná jednička nebo nula. A přesně tohle udělal Chrysippos před dvěma tisíci lety. Obsah nás nezajímá. Zajímá nás jenom, jestli to platí, nebo neplatí.
Ty dvě konkrétní věty — „Slunce svítí“ a „Nebe je zelené“ — si nech a používej je dál. Za chvíli je budeš potřebovat u obvodu, kde jim přiřadíš vypínače. Když je publikum uvidí potřetí, přestanou to být cizí symboly a stanou se z nich staří známí.
Hodí se je vybrat tak, aby jedna byla zjevně pravdivá a druhá zjevně nepravdivá. Nikdo se pak nebude cukat, jakou hodnotu tam napsat.
Tři jména pro jednu věc
Nakresli tenhle překladový slovník do rohu tabule a nech ho tam do konce výkladu.
| Kde | ano | ne |
|---|---|---|
| v lidské řeči | pravda | nepravda |
| v matematické logice | 1 | 0 |
| v elektronice | teče proud | neteče proud |
Když stisknete vypínač na zdi, pošlete do obvodu jedničku a žárovka se rozsvítí. Když ho vypnete, je to nula. Opravdu v tom zatím není nic složitějšího.
Od téhle chvíle mluv co nejčastěji všemi třemi jazyky najednou — „je to pravda, čili jednička, čili teče proud“. Během deseti minut si publikum zvykne a přestane mezi tím překládat.
Nakresli velkou tabulku
Prázdná kostra, která zůstane na tabuli do konce výkladu. Odteď každá spojka, kterou probereš, přidá jeden sloupec.
Nakresli mřížku: vlevo sloupce A a B, vpravo čtyři prázdné sloupce. Nahoře tři popisné řádky — značka, čte se — a pod čarou čtyři řádky s kombinacemi.
| A | B | ? | ? | ? | ? | |
|---|---|---|---|---|---|---|
| značka | ||||||
| čte se | ||||||
| 1 | 1 | |||||
| 1 | 0 | |||||
| 0 | 1 | |||||
| 0 | 0 |
Máme dva výroky, A a B. Každý z nich může být buď pravdivý, nebo nepravdivý. To znamená, že existují přesně čtyři možné stavy světa — nic pátého už si nevymyslíte. Tak si je vypíšeme všechny. A do těch čtyř prázdných sloupců si budeme celou hodinu doplňovat, co s nimi udělá která spojka.
Pořadí řádků piš vždycky takhle — 1 1 / 1 0 / 0 1 / 0 0. Je to standard z každé učebnice a když si na něj zvyknou teď, budou se v cizích tabulkách orientovat automaticky.
Do těch čtyř sloupců postupně přijde konjunkce, disjunkce, implikace a ekvivalence. Ty to samozřejmě víš, publikum ne — nech to zatím jako otazníky, je to lepší háček než seznam.
Kdyby se někdo zeptal: pro tři výroky by řádků bylo osm, pro čtyři šestnáct — vždycky 2 na n-tou. Což je taky přesně důvod, proč se to nakonec musí počítat strojem.
Základní obvod
Než přijde logika, nakresli něco, co zná každý ze základky. Cílem je, aby si sál řekl „aha, tohle znám“ a uvolnil se.
Uzavřená smyčka — vlevo baterka s plusem a mínusem, vpravo žárovka, kolem dokola drát.
Aby žárovka svítila, musí proud protéct od plusu k mínusu, celou tou smyčkou dokola. A jakmile tu cestu kdekoliv přerušíme, žárovka zhasne. To je všechno, co dneska potřebujeme z fyziky.
Dva vypínače za sebou
Do horní větve přidej dva rozpojené vypínače v řadě za sebou. Označ je A a B — stejnými písmeny, jaká jsi před chvílí dal těm dvěma větám.
| A | B | A ∧ B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
Vypínač sepnutý znamená pravdu, jedničku. Rozpojený znamená nepravdu, nulu. A žárovka se rozsvítí jenom tehdy, když je sepnutý vypínač A a zároveň vypínač B.
Teď to spoj s těmi větami
Tohle je ten moment, kvůli kterému jsi zápis dělal dřív než obvod.
Dosaďme si tam ty naše věty. A je „Slunce svítí“ — a to platí, takže jednička, takže vypínač A sepnu. B je „Nebe je zelené“ — a to neplatí, takže nula, vypínač B nechám rozpojený. A teď se ptám: platí věta „Slunce svítí a zároveň nebe je zelené“? Podívejte se na tu žárovku. Nesvítí. Neplatí to.
A všimněte si ještě jedné věci. Tomu obvodu je úplně jedno, jestli je v těch větách slunce, nebo nebe. Jemu jde jenom o to, jestli je vypínač nahoře, nebo dole. Přesně o tomhle mluvil ten Chrysippos.
Projdi všechny čtyři stavy
- A = 0, B = 0 — proud neprojde už přes první. Nesvítí. 0
- A = 1, B = 0 — projde přes A, ale narazí na rozpojené B. Nesvítí. 0
- A = 0, B = 1 — neprojde už přes A, B je mu k ničemu. Nesvítí. 0
- A = 1, B = 1 — projde oběma. Svítí. 1
A hned to pojmenuj a zapiš
Tomuhle se odborně říká konjunkce. Značí se stříškou a čte se „a zároveň“. A je to náš první sloupec.
Vyplň v tabulce první ze čtyř sloupců:
hodnoty shora dolů: 1, 0, 0, 0
Jediný řádek, kde svítí, je ten úplně poslední — 1 1. To je celá konjunkce. Řekni to takhle, je to zapamatovatelnější než čtyři samostatné případy.
Můstek do programování, když se to hodí: až budete psát podmínku „když je heslo správně a zároveň uživatel kliknul na Přihlásit“, v procesoru se fyzicky stane přesně tohle — proud musí projít dvěma vypínači za sebou.
Dva vypínače vedle sebe
Vodič rozvětvi na dvě cestičky nad sebou. Do horní vypínač A, do spodní B. Za nimi obě větve zase spoj do jednoho drátu k žárovce.
| A | B | A ∨ B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
Všimněte si, že proud má teď na výběr ze dvou cest. Takže žárovka se rozsvítí, pokud je sepnutý vypínač A nebo vypínač B. Případně obojí.
- A = 0, B = 0 — obě cesty přerušené. Nesvítí. 0
- A = 1, B = 0 — profrčí horní větví. Svítí. 1
- A = 0, B = 1 — profrčí spodní větví. Svítí. 1
- A = 1, B = 1 — teče oběma. Svítí. 1
A zase to zkus s těmi větami: „Slunce svítí nebo nebe je zelené.“ Vypínač A sepnutý, B rozpojený — a žárovka svítí. Ta věta jako celek platí, i když je jedna její půlka nesmysl.
Pojmenuj a zapiš
Tohle je disjunkce. Značí se obráceným zobáčkem a čte se prostě „nebo“. Druhý sloupec.
Vyplň druhý sloupec:
hodnoty shora dolů: 1, 1, 1, 0
A gratuluju — právě jste pochopili základní logická hradla. Všechno ostatní v počítači, sčítání čísel, ukládání do paměti, generování grafiky, celý operační systém, je jenom kombinování těchhle dvou zapojení ve velkém měřítku.
Zdůrazni ten poslední řádek tabulky. Je to jediná past celého „nebo“: v běžné řeči často znamená „buď — anebo, ale ne obojí“ („dáš si čaj nebo kávu?“). V logice znamená alespoň jedno, klidně obojí. Stačí ukázat na obvod — když sepneš oba vypínače, těžko bys čekal, že žárovka zhasne.
Pomůcka na symboly, když se pletou: ∧ je střecha nebo velké A bez čárky, a „a zároveň“ začíná na A. ∨ je v jako latinské vel, což znamená „nebo“.
Když se zeptají „a kdo ty vypínače mačká?“: nikdo. Mechanický vypínač nahradil tranzistor — vypínač bez páčky, ovládaný elektrickým signálem, takže jeden proud zapíná nebo vypíná druhý. Z tranzistorů se skládají logická hradla a procesor je kus křemíku s miliardami takových hradel. Při hraní hry řeší: „Je stisknutá klávesa W a zároveň má postava životy? Pokud ano, posuň ji.“ Miliardykrát za sekundu.
Implikace ⇒ „jestliže… pak…“
Nejtěžší věc celého výkladu. Ne že by byla složitá — ale v běžné řeči používáme „jestliže“ jinak než matematika. Tady obvod opustíš a přejdeš na příběh.
„Pokud přineseš mléko, bude buchta.“
- A — přinesl jsi mléko (1 = ano)
- B — je buchta (1 = ano)
A teď pozor, protože tady je celý trik. Neptáme se, jestli mléko dorazilo. Neptáme se, jestli je buchta. Ptáme se na jedinou věc: porušil jsem ten slib, nebo neporušil?
Klikni na mléko nebo na buchtu a nech je zmizet a zase se objevit. V tabulce vedle se ti vždycky rozsvítí ten řádek, na kterém právě stojíš.
| A | B | A ⇒ B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 1 |
| 0 | 0 | 1 |
| A mléko | B buchta | Budeš si stěžovat? | A ⇒ B |
|---|---|---|---|
| 1 | 1 | Mléko přinesl, buchta je. Slib splněn, stěžovat není na co. | 1 |
| 1 | 0 | Mléko přinesl a buchta nikde. Tady a jedině tady si stěžuj. | 0 |
| 0 | 1 | Mléko nepřinesl, ale buchtu jsem upekl z kefíru. Budeš si stěžovat, že jsi dostal buchtu zadarmo? | 1 |
| 0 | 0 | Mléko nedorazilo, buchta žádná. Tos ani nemohl čekat. | 1 |
Ten slib mluví jenom o tom, co se stane, když mléko přineseš. Pro případ, že ho nepřineseš, neříká vůbec nic — a co neslíbíte, to nemůžete porušit.
Ptej se „budeš si stěžovat?“, ne „je to pravda?“. Slovo „pravda“ u implikace odkládej tak dlouho, jak to jde — mate. Stížnost chápe každý okamžitě a vyjde to nastejno.
Záložní příklady, kdyby buchta nezabrala: „Jestliže dostaneš jedničku, pak ti koupím zmrzlinu.“ Rodič je lhář jedině tehdy, když jednička přišla a zmrzlina ne — za dvojku nesliboval nic. Nebo: „Jestliže vyhoříte, pojišťovna vám vyplatí peníze.“ Podvedla vás jedině tehdy, když jste vyhořeli a nedostali nic.
Čte se to „pokud A, tak B“
A hlavně to nečtěte jako „z toho vyplývá“. To vás svede. Čtěte to prostě „pokud A, tak B“ — a hlavně si zapamatujte jednu věc: ta první půlka vůbec nemusí být pravda.
Tohle je to místo, kde se všichni zaseknou, tak na něm zůstaň. Tady jsou čtyři věty. Všechny jsou pravdivé — a u všech čtyř ta první polovina neplatí:
- „Pokud dostaneš jedničku, koupím ti zmrzlinu.“ Jedničku nepřinesl. Zmrzlinu jsem mu koupil stejně, protože bylo horko. Slib jsem neporušil. Věta platí.
- „Pokud jsem měl smrduté nohy, tak jsem si včera oholil vousy.“ Nohy jsem smrduté neměl. Vousy oholené mám. Nic jsem tím neporušil. Věta platí.
- „Pokud bude pršet, vezmu si bundu.“ Nepršelo. Bundu jsem si vzal stejně, protože mi byla zima. Nikdo mi nemůže nic vyčíst. Věta platí.
- „Pokud vyhraješ zápas, zvu tě na pivo.“ Prohrál. Na pivo jsem ho pozval, aby mu bylo líp. Slib jsem neporušil. Věta platí.
Ve všech čtyřech případech se to první nestalo. A přesto jsou všechny ty věty pravdivé — protože každá z nich zakazuje jedinou věc, a ta se nestala.
Kde přesně to lidem hapruje: automaticky si tam domyslí slovo jedině. Slyší „buchta bude jedině tehdy, když přineseš mléko“ — a pak jim ten kefír připadá jako podvod. Jenže ten slib nic takového neříkal. Slíbil jsem, co se stane, když mléko přineseš. Pro případ, že ho nepřineseš, jsem si nechal volné ruce. Tohle domyšlené „jedině“ je zdroj asi devadesáti procent všech nedorozumění kolem implikace — pojmenuj ho nahlas a je pokoj.
Kefír tam nedávej jako vtip. Je to ta nejdůležitější část příkladu, protože ukazuje, že druhá půlka se může splnit i úplně jinou cestou, než o jaké byla řeč — a slibu je to jedno.
Nejlepší otázka do pléna, jakou tady máš: „Mléko nepřinesl a buchta stejně byla. Porušil jsem slib?“ Většina sálu první instinktivně řekne, že na tom něco nehraje. Nech je to říct nahlas a pak se vrať k tomu slibu a přečti ho doslova. Ten rozdíl mezi divné a porušený slib je celá implikace.
Kdyby slib nezabral: bezpečnostní relé
Záložní varianta pro publikum, kterému sedí spíš technika než kuchyně. Je to úplně stejná tabulka, jen s dráty.
Tovární linka na pizzu s červeným havarijním tlačítkem.
- A — někdo stiskl havarijní tlačítko (1 = stisknuto)
- B — linka se zastavila (1 = stojí, 0 = jede dál)
Implikace A ⇒ B je pravidlo toho stroje: jestliže stiskneš tlačítko, pak se linka zastaví. Ptáme se: funguje to pravidlo, nebo je systém v poruše?
Klikni na tlačítko nebo vytáhni vidlici ze zásuvky a sleduj, co to udělá s A, s B a s celým pravidlem.
| A | B | A ⇒ B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 1 |
| 0 | 0 | 1 |
| A tlačítko | B linka stojí | Co se stalo | A ⇒ B |
|---|---|---|---|
| 1 | 1 | Zmáčkl jsi to a linka stojí. Systém funguje. | 1 |
| 1 | 0 | Zmáčkl jsi to a pizzy jedou dál. Tlačítko nezabralo, systém selhal. | 0 |
| 0 | 1 | Nikdo nic nemačkal, ale linka stojí — došel proud. Porušilo to pravidlo o tlačítku? Ne. To pravidlo nikdy neslibovalo, že linka musí jet, dokud se tlačítka nikdo nedotkne. | 1 |
| 0 | 0 | Nikdo nic nemačká a linka jede. Naprostý normál. | 1 |
Proč je tam to rozbité relé. Se zdravým strojem se k řádku A = 1, B = 0 nikdy nedostaneš — a to je přitom ten jediný důležitý. Tlačítko musí přestat fungovat, aby ses na něj dostal. U mléka je to jednodušší: tam prostě neupečeš buchtu.
Vytažení vidlice vyrobí řádek A = 0, B = 1 — linka stojí, ale ne kvůli tlačítku. Tlačítko svůj slib neporušilo, takže pravidlo pořád platí. Je to totéž jako buchta z kefíru.
Třetí varianta, kdyby nezabralo ani jedno: „Jestliže vyhoříte, pojišťovna vám vyplatí peníze.“ Podvedla vás jedině tehdy, když jste vyhořeli a nedostali nic.
Implikace je porušená, je nula, jenom v jediném z těch čtyř případů: když nastala příčina, ale nenastal slíbený následek. Pokud příčina vůbec nenastala, tak vás to pravidlo nijak neomezuje a může se stát cokoliv.
Implikace není to samé co příčina a následek. Implikace je test porušení slibu. Porušíte ho jenom tehdy, když se splní jeho první část, ale druhá nenastane.
Tuhle větu napiš na tabuli — je to jediná věc, kterou si z implikace musí odnést. A vyplň třetí sloupec:
hodnoty shora dolů: 1, 0, 1, 1
Když se někdo zeptá na nesmyslné implikace
Tohle sám od sebe neotvírej. Ale někdo se skoro jistě zeptá — a improvizovat se to nedá, takže si to přečti dopředu.
Otázka přijde obvykle takhle: „Jak může být pravda jestliže 2 + 2 = 5, pak jsem papež?“ Nebo jakákoliv věta, kde spolu obě půlky vůbec nesouvisí.
1. Nejdřív oprav ten překlad. Šipka se čte „jestliže… pak“, nikdy ne „z toho vyplývá“. Netvrdí nic o souvislosti, o příčině ani o smyslu. Říká jedinou věc: nenastane, že by platila první část a druhá ne. Je to zákaz jedné jediné kombinace, nic víc.
2. Pak ukaž, proč to jinak nešlo. Tohle je ten argument, který doopravdy zabere, protože stojí na matematice ze základky. „Každé číslo dělitelné šesti je dělitelné třemi“ — na tom se shodnou všichni. Teď to zkus na sedmičce: dělitelná šesti? Ne. Dělitelná třemi? Ne. To je řádek 0 ⇒ 0. Kdyby ten řádek byl nepravda, bylo by celé to pravidlo nepravdivé a shodila by ho sedmička — číslo, o kterém pravidlo vůbec nemluví. Devítka by stejně tak shodila řádek 0 ⇒ 1. Aby pravdivá pravidla zůstala pravdivá, musí případy mimo podmínku vyjít jako 1. Není to libovůle, je to nutnost.
3. A nakonec metafora, která to zavře. „Pravdivá“ tady znamená jenom „nebyla porušena“. Je to jako s prázdným pokojem — je uklizený. Ne proto, že by v něm někdo uklidil, ale protože v něm nic neleží a nemáš na co ukázat. Věta o papeži je pravdivá přesně takhle: nic v ní není špatně, protože v ní není nic.
Záměna, na které se zasekne skoro každý: implikace vyjde 1, když je první část prokazatelně nepravdivá — ne když ji neznáme. „Nevíme“ se nikdy nenahrazuje pravdou. Když neznáš A a B, neznáš ani výsledek. Logika jen předpokládá, že každý výrok nějakou hodnotu má, i kdyby ji nikdo nevěděl.
Zkouška, která to rozsekne, kdyby nic nezabralo: vezmi pravdivou implikaci mezi nesouvisejícími věcmi — „mám hnědé oči ⇒ mám na sobě košili“ — a sundej si košili. V tu ránu je nepravdivá, a nic jiného se přitom nezměnilo. Skutečné vyplývání se přece nedá zrušit převlečením. To je důkaz, že ta šipka žádné vyplývání netvrdila.
Ekvivalence ⇔ „právě tehdy, když“
Klíč k pochopení: ekvivalence neříká „je to pravda“. Ekvivalence říká „obě strany jsou na tom stejně“. Je to test shody.
Semafor pro chodce
„Svítí zelená ⇔ jdeš přes přechod.“ A my testujeme, jestli ten systém funguje.
Klikni na semafor a přepni ho na zelenou nebo červenou. Klikni na chodce a rozejdi ho nebo zastav. Ty dvě věci jsou na sobě nezávislé — a o to přesně jde.
| A | B | A ⇔ B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
| A zelená | B jdeš | Co se děje | A ⇔ B |
|---|---|---|---|
| 1 | 1 | Svítí zelená a ty jdeš. Všechno v pořádku. | 1 |
| 1 | 0 | Svítí zelená, ale ty stojíš. Rozpor. | 0 |
| 0 | 1 | Nesvítí zelená, ale ty jdeš. Rozpor, a dost nebezpečný. | 0 |
| 0 | 0 | Nesvítí zelená a ty nejdeš. Funguje systém? Ano, naprosto správně. Obě strany se shodly na tom, že se nic neděje. | 1 |
A tady je ten zásek, na kterém se zarazí úplně každý: z nuly a nuly vyjde jednička. Jak může být ze dvou nepravd pravda? No protože se neptáme, jestli je zelená. Ptáme se, jestli si obě strany odpovídají. Nesvítí a nejdeš — odpovídá to. Takže pravda.
Shrnutí: ekvivalence je 1, když jsou obě hodnoty stejné, a 0, když se rozcházejí. Nic víc v tom není.
Zkrácené čtení: „buď obojí, nebo ani jedno“
Jestli si z ekvivalence máte odnést jednu jedinou větu, tak tuhle. Buď obojí, nebo ani jedno. Platí obě půlky? Sedí to. Neplatí ani jedna? Sedí to taky. A jakmile platí jenom jedna z nich, je něco špatně.
Tohle čtení má obrovskou výhodu: funguje i tam, kde mezi oběma půlkami není vůbec žádná souvislost. A právě na takové větě je nejlíp vidět, co ta spojka doopravdy dělá — protože se nemáte čeho chytit a nezbude vám než koukat na ta dvě čísla.
Nikdo na světě netuší, co má harmonika společného s okurkou. A přesto na to jde odpovědět ve všech čtyřech případech, aniž byste se nad tím museli byť na vteřinu zamyslet:
| harmonika | okurka | Jak to dopadlo | A ⇔ B |
|---|---|---|---|
| 1 | 1 | Hrát umím a okurku mám. Obojí. | 1 |
| 1 | 0 | Hrát umím, okurka žádná. Jenom jedno. | 0 |
| 0 | 1 | Hrát neumím, ale okurku mám. Zase jenom jedno. | 0 |
| 0 | 0 | Hrát neumím a okurku nemám. Ani jedno. | 1 |
Všimněte si, že jsem se ani jednou nemusel zamyslet nad harmonikou. Koukám se jenom na to, jestli v obou sloupečcích stojí totéž. Ekvivalence je vlastně rovnítko — nula se rovná nule, jednička se rovná jedničce. A že se nula rovná nule, na tom přece není nic divného.
Další takové věty. Všechny jsou pravdivé, protože u všech neplatí ani jedna půlka:
- „Mám na hlavě helmu ⇔ na Islandu právě vybuchla sopka.“ Helmu nemám. Sopka nevybuchla. Ani jedno. → 1
- „Jsem vegetarián ⇔ v Brně je zrovna zemětřesení.“ Vegetarián nejsem. Zemětřesení není. Ani jedno. → 1
- „Mám v kapse živého křečka ⇔ venku sněží.“ Křečka nemám. Nesněží. Ani jedno. → 1
A jedna pro jistotu, aby bylo vidět, že to není mašinka, co na všechno kývne:
- „Umím čínsky ⇔ je zrovna půlnoc.“ Čínsky neumím (0), ale půlnoc zrovna je (1). Jenom jedno. Rozešly se → 0
Kam to v tom výkladu zařadit: až za semafor, nikdy před něj. Semafor je na první kontakt, protože tam se mechanika s intuicí shodnou a lidem to sedne napoprvé. Harmonika s okurkou je až druhý krok — ukazuje, že to pravidlo drží i bez jakékoliv souvislosti. Kdybys začal harmonikou, půlka sálu se ztratí dřív, než se k něčemu dostaneš.
Proč jsou ty věty schválně tak praštěné: aby nikoho ani nenapadlo hledat mezi nimi vazbu. Když vezmeš dvě věty, které spolu trochu souvisí, publikum se začne pídit po souvislosti a zasekne se. U harmoniky a okurky je hned jasné, že souvislost žádná není — a tím pádem je vidět, že spojka funguje i bez ní.
Vyplň poslední sloupec — tabulka je hotová:
hodnoty shora dolů: 1, 0, 0, 1
Náhradní příklad, kdyby semafor nezabral: „Vypínač je nahoře ⇔ světlo svítí.“ Když je vypínač dole a světlo nesvítí, je všechno v pořádku — světlo se chová přesně podle vypínače. Rozbité je to jedině tehdy, když se ti dva rozejdou.
Teď ji přečti po řádcích
Tabulku jste plnili po sloupcích, spojku po spojce. Teď ji jednou projeď napříč — pro každý řádek jeden konkrétní příběh a čtyři hodnoty vedle sebe. Je to kontrola, ne nové učivo, takže tempo nahoru.
Řádek 1 1 — oba pravdivé
A: 1 „Prší.“ B: 1 „Mám deštník.“
Oba vypínače sepnuty, takže ∧ svítí. Alespoň jedna cesta průchozí, takže ∨ svítí. Slib dodržen, takže ⇒ platí. Obě strany se shodly, takže ⇔ platí. Čtyřikrát jednička.
Řádek 1 0 — první pravda, druhý nepravda
A: 1 „Stiskl jsem havarijní tlačítko.“ B: 0 „Stroj se vypnul.“
Druhý vypínač rozpojený, ∧ nesvítí. Horní větví to teče, ∨ svítí. Slib porušen, ⇒ padá. Rozpor, ⇔ padá.
Tenhle řádek zakroužkuj — je to jediné místo v celé tabulce, kde padne implikace.
Řádek 0 1 — první nepravda, druhý pravda
A: 0 „Dostal jsem jedničku.“ B: 1 „Dostal jsem zmrzlinu.“
První vypínač rozpojený, ∧ nesvítí. Spodní větví to teče, ∨ svítí. Jedničku nedostal, ale zmrzlinu ano — slib tím neporušil, ⇒ platí. Rozpor, ⇔ padá.
Řádek 0 0 — oba nepravdivé
A: 0 „Svítí zelená.“ B: 0 „Jdu přes přechod.“
Obvod rozpojený, ∧ nesvítí. Obě cesty přerušené, ∨ nesvítí. Nikdo nic nemačkal, ⇒ platí. Obě strany se shodly na „ne“, ⇔ platí.
Poslední řádek je ten, kde lidem hoří pojistky u ekvivalence a často i u implikace. Zpomal a zopakuj tu klíčovou větu: neptáme se, jestli je zelená, ptáme se, jestli si obě strany odpovídají.
Takhle to vypadá hotové
| A | B | konjunkce | disjunkce | implikace | ekvivalence | |
|---|---|---|---|---|---|---|
| značka | ∧ | ∨ | ⇒ | ⇔ | ||
| čte se | a zároveň | nebo | jestliže… pak | právě tehdy, když | ||
| 1 | 1 | 1 | 1 | 1 | 1 | |
| 1 | 0 | 0 | 1 | 0 | 0 | |
| 0 | 1 | 0 | 1 | 1 | 0 | |
| 0 | 0 | 0 | 0 | 1 | 1 |
Jedna věta na každou spojku
- Konjunkce ∧ — samé nuly, jedna jednička úplně nahoře. Musí platit obojí.
- Disjunkce ∨ — samé jedničky, jedna nula úplně dole. Stačí cokoliv jednoho.
- Implikace ⇒ — jedničky všude kromě druhého řádku. Padá jedině tehdy, když slib nastal a nebyl dodržen.
- Ekvivalence ⇔ — jednička tam, kde jsou A a B stejné. Nula tam, kde se liší.
A to je celá výroková logika. Čtyři sloupečky. Všechno ostatní, celý zbytek toho, co se kdy v logice budete učit, je jenom skládání tohohle do delších řetězců.
Tlačítkem nad tímhle odstavcem si můžeš tabulku odkrývat sloupec po sloupci — hodí se, když si chceš předem projet přesně to pořadí, ve kterém ji budeš na tabuli plnit.
Negace a co dál
Negace ¬ „neplatí, že“
Jediná spojka, která pracuje jenom s jedním výrokem. Zapisuje se ¬A a prostě to překlopí hodnotu.
| A | ¬A |
|---|---|
| 1 | 0 |
| 0 | 1 |
V obvodu je to hradlo, které pustí proud, když na vstupu nic není, a zavře se, když proud přijde. V řeči pozor na past: negace věty „všichni studenti prošli“ není „nikdo neprošel“, ale „alespoň jeden neprošel“. Skvělé cvičení na publikum.
Delší formule
Jakmile mají spojky i negaci, můžeš psát ¬(A ∧ B) nebo (A ∨ B) ⇒ C a učit je vyhodnocovat po sloupcích, zevnitř ven — jako v běžné matice se závorkami.
De Morganovy zákony
Slovně: „není pravda, že prší a zároveň mám deštník“ znamená totéž jako „buď neprší, nebo nemám deštník“. Sestavíš na to tabulku a ukážeš, že oba sloupce vyjdou identicky.
A tohle je poprvé, co jsme něco doopravdy dokázali. Ne že bychom si mysleli, že to tak je — my jsme si vypsali všechny možnosti, které vůbec můžou nastat, a viděli jsme, že to vychází pokaždé. Přesně o tomhle celá ta logika je.
Volitelné dovětky: A ∨ ¬A — „prší nebo neprší“ — vyjde vždycky 1, ať dosadíš cokoliv. To je tautologie. Naopak A ∧ ¬A je vždycky 0, to je kontradikce.