Kdy závěr opravdu plyne?

Logika

Kterak se z pravdy stala jednička

ŠEST ZASTAVENÍ

Zastavení listuj šipkami nebo přejetím prstem doleva a doprava; časová osa zůstane nahoře.

PROLOG · DNES · HÁDANKA NA ÚVOD

Je to vůbec výrok?

I

OtázkaCo z toho je tvrzení?

Než se vydáme do Athén, jedna věta, jakou můžeš slyšet ve zprávách. Politik prohlásí:

„Platí presumpce neviny. Pro běžného občana je posvátná a nedotknutelná. U politika ale platí presumpce viny.“

Je to jeden výrok? Které části jsou tvrzení, o jejichž pravdě lze rozhodnout, a které jen hodnotí nebo něco přikazují?

Jeden možný rozbor – až si to rozmyslíš

Jsou to tři věty a každá je jiného druhu. „Platí presumpce neviny“ je tvrzení, které lze ověřit v zákonech. „Je posvátná a nedotknutelná“ hodnotí: o pravdě takové věty se nedá rozhodnout, jen s ní souhlasit, nebo nesouhlasit. „U politika platí presumpce viny“ je jako popis práva nepravdivé tvrzení; míní-li ji řečník jako požadavek („má platit“), pak to není výrok vůbec.

Přesně takhle by se ptal Aristotelés: co z řečeného je tvrzení a co z něj opravdu plyne?

II

MyšlenkaLogika začala jako pravidla pro řeč.

Samo slovo logika pochází z řeckého logos – slovo, řeč, rozum, počet. Logika tedy začala jako pravidla pro řeč. To je první stopa k tomu, proč do jejího příběhu později vstoupí lingvisté.

Celá kapitola v jedné větě: logika začala jako pravidla správné řeči, stoici z ní udělali počty s pravdou, Boole z pravdy udělal číslo 1 a ze lži 0 a Shannon z toho postavil obvody. U každého zastavení uvidíš, kde tě ta myšlenka dnes potká v kódu.

„Naopak,“ pokračoval Tydlitýt, „kdyby to tak bylo, mohlo by to být; a kdyby to tak bylo, bylo by to; ale protože to tak není, není to. To je logika.“— Lewis Carroll, Za zrcadlem, 1871

III

VzorecCesta kapitoly.

CESTA KAPITOLY

řeč ⟶ výrok ⟶ {0, 1} ⟶ obvod

Logika začala u řečníků a skončila v procesoru.

ZASTAVENÍ I · 4. STOLETÍ PŘ. N. L. · ATHÉNY

Aristotelés: kdy závěr opravdu plyne?

I

OtázkaPlyne to, nebo to jen dobře zní?

Jak poznat, že závěr opravdu plyne, a ne že jen zní přesvědčivě?

V Athénách 5. a 4. století př. n. l. se o všem rozhodovalo řečí: v lidovém shromáždění, u soudu, kde se člověk hájil sám, a na agoře. Sofisté za peníze učili, jak spor vyhrát, ne jak mít pravdu. Platón jim to vyčítal a jeho žák Aristotelés si položil přesnější otázku: existují pravidla, podle kterých se dá mechanicky poznat, že argument je správný, bez ohledu na to, kdo ho říká a jak hezky?

Tři otázky, ze kterých logika vyrostla

  • Jak poznat, zda závěr skutečně vyplývá z předpokladů?
  • Jak z obecných tvrzení odvodit konkrétní závěr?
  • Jak odlišit správný argument od argumentu, který jen působí přesvědčivě?
II

ČlověkŽák Platónův, učitel Alexandrův.

Aristotelés (384–322 př. n. l.) odpověď sepsal ve spisech, které jeho žáci později nazvali Organon – „nástroj“. Logika pro něj nebyla věda o světě, ale nástroj pro všechny ostatní vědy. Přesně tak ji dnes používá programátor.

4. STOL. PŘ. N. L.Aristotelés: Organon. Šest logických spisů, mezi nimi Kategorie, O vyjadřování a Analytiky první, kde poprvé popsal sylogismus.
4. STOL. PŘ. N. L.Aristotelés: Metafyzika. Ve IV. knize obhajuje zákon sporu jako „nejjistější ze všech principů“ a formuluje zákon vyloučeného třetího.
III

MyšlenkaSprávnost úsudku je otázka tvaru.

Aristotelův objev: správnost úsudku nezávisí na tom, o čem mluvíme, ale na jeho tvaru. Proto začal místo slov psát písmena – je to vůbec první použití proměnných v dějinách logiky, o dvě tisíciletí dřív než v algebře.

Sylogismus: první algoritmus usuzování

klikej na karty

Klikni na první premisu.

Létající kočka: pravda není totéž co správnost

Všechny kočky umějí létat. Mourek je kočka. ⟹ Mourek umí létat. Premisa i závěr jsou nesmysl, a přesto je úsudek logicky správný: tvar je stejný jako u Sokrata. Kdyby premisy platily, závěr by platit musel. Logika nehlídá, zda jsou vstupní slova pravdivá, ale zda funguje vnitřní logická struktura.

Létající kočka

přepínej předpoklady
Všechny kočky umějí létat.
Mourek je kočka.
⟹ Mourek umí létat.

Garbage in, garbage out: správný program se špatnými daty dá špatný výsledek. A naopak, správný výsledek ještě neznamená, že je program správně:

Podvodný sylogismus

hledej protipříklad
Všechny kočky jsou savci.
Mourek je savec.
⟹ Mourek je kočka.

Závěr je pravdivý. Plyne ale z premis?

Zákony, které Aristotelés považoval za nejpevnější

V Metafyzice (kniha IV) Aristotelés tvrdí, že nejjistější ze všech principů je zákon sporu: nic nemůže zároveň být a nebýt v témž smyslu. Hned vedle formuluje zákon vyloučeného třetího: o každé věci je nutné buď něco tvrdit, nebo to popírat, mezi tím nic není. Tyto dva zákony jsou kořenem dvouhodnotové logiky – a tedy i typu boolean, který má přesně dvě hodnoty a nic mezi nimi.

PRO ZVÍDAVÉ: ZKUS TO!

Sestav tabulku pro p ∨ ¬p. Co vyjde ve výsledném sloupci? A jak zní negace věty „Každé prvočíslo větší než 2 je liché“?

Pozor: „Každé… je sudé“ to není. Aristotelés rozlišoval opak (obě věty mohou být nepravdivé zároveň) a spor (pravdivá je právě jedna).

Řešení

Ve výsledném sloupci vyjdou samé jedničky, jde o tautologii. Negace: „Některé prvočíslo větší než 2 je sudé.“

Zajímavost: sám Aristotelés v knize O vyjadřování váhal, zda zákon vyloučeného třetího platí i pro budoucnost. Je výrok „Zítra bude námořní bitva“ už dnes pravdivý, nebo nepravdivý?

Třetí hodnota: Łukasiewicz a NULL – na tuhle pochybnost navázal ve 20. století Jan Łukasiewicz trojhodnotovou logikou, předchůdkyní NULL v SQL

Polský logik Jan Łukasiewicz (1878–1956) vzal kolem roku 1920 Aristotelovu námořní bitvu vážně. K pravdě (1) a nepravdě (0) přidal třetí hodnotu ½: „zatím nerozhodnuto“. Pro takový výrok zákon vyloučeného třetího neplatí: je-li p = ½, není pravdivé ani p ∨ ¬p.

Počítá se jednoduše: negace je 1 − p (z ½ zůstane ½), „a“ bere menší z obou hodnot, „nebo“ větší.

p ∧ qq = 1q = ½q = 0
p = 11½0
p = ½½½0
p = 0000

Databáze SQL používají velmi podobnou logiku (Kleeneho variantu z roku 1938, liší se jen u implikace). NULL znamená „hodnotu neznáme“. Proto NULL = NULL nedá TRUE, ale UNKNOWN, a klauzule WHERE propustí jen řádky s výsledkem TRUE. Klasická past: WHERE vek >= 18 OR vek < 18 nevrátí studenty, kterým věk chybí.

IV

VzorecTvar úsudku a dva nejpevnější zákony.

SYLOGISMUS

Všechna M jsou P.  S je M.  ⟹  S je P.

¬(p ∧ ¬p)  ·  p ∨ ¬p

Správnost úsudku nezávisí na tom, o čem mluvíme, ale na jeho tvaru.

ZASTAVENÍ II · 3. STOLETÍ PŘ. N. L. · ATHÉNY, STOA

Stoici: výrok je to, co je pravdivé, nebo nepravdivé

stoici a Chrysippos

I

OtázkaO které větě se dá říct „platí“?

„Prší.“ – „Prší?“ – „Ať prší!“ Tři věty o témž. O které z nich má smysl se ptát, zda platí?

Odpověď stoiků

Jen o první. Otázka, rozkaz ani přání pravdivostní hodnotu nemají, a proto to nejsou výroky. Výrok tedy nevznikl z gramatiky, ale z pravdy: je to taková část řeči, o které má smysl se ptát „platí to?“.

II

ČlověkChrysippos ze Soloi a vrány na střechách.

Aristotelés pracoval s pojmy (lidé, smrtelní). Stoikové ve 3. století př. n. l., hlavně Chrysippos ze Soloi (asi 279–206 př. n. l.), začali pracovat s celými větami. Zavedli pojem axióma, který odpovídá našemu „výroku“, a definovali ho právě pravdou: výrok je to, co je buď pravdivé, nebo nepravdivé.

Stoici také zkoumali, jak pravdivost složené věty závisí na pravdivosti jejích částí: „a“, „nebo“, „jestliže… pak“. O implikaci se přeli tak urputně, že básník Kallimachos prý napsal, že i vrány na střechách krákají o tom, která implikace je správná. Vyhrála definice Filóna z Megary: věta „jestliže A, pak B“ je nepravdivá jedině tehdy, když A platí a B neplatí. Je to přesně třetí sloupec dnešní tabulky, o 2200 let starší než tabulka sama.

Výrok o Kallimachových vránách známe jen z pozdějších autorů (Sextus Empiricus). Stoické logické spisy se nedochovaly; o Chrysippovi víme hlavně z Diógena Laertia (Životy filozofů, kniha VII).

III

MyšlenkaPočítání s pravdou celých vět.

ABjestliže A, pak B
111
100
011
001
PRO ZVÍDAVÉ: CO TY NA TO?

Je pravdivý výrok (2 > 4) ⇒ (2 dělí 4)? A proč je ve větě „Je-li číslo dělitelné 6, je dělitelné 3“ dělitelnost šesti postačující a dělitelnost třemi nutná podmínka? Najdi číslo, které ukáže, že obráceně to neplatí.

Řešení

Pravdivý: nastal případ 0 ⇒ 1 a ten Filón nezakazuje. Protipříklad: 3 je dělitelné třemi, ale ne šesti.

Chrysippos navíc sepsal pět základních odvozovacích pravidel. Nejslavnější z nich dnes známe jako modus ponens: Jestliže A, pak B. Platí A. ⟹ Platí B.

PRO ZVÍDAVÉ: ZKUS TO!

Stoici věděli, že z „jestliže A, pak B“ plyne „jestliže ne B, pak ne A“ (obměna). Ověř tabulkou, že p ⇒ q a ¬q ⇒ ¬p mají vždy stejnou hodnotu. Pak obměň definici prosté funkce: ∀x1, x2 ∈ D(f): (f(x1) = f(x2) ⇒ x1 = x2).

Řešení

Sloupce jsou totožné. Obměna: ∀x1, x2 ∈ D(f): (x1 ≠ x2 ⇒ f(x1) ≠ f(x2)), tedy různé vstupy dávají různé výstupy.

Paradox lháře: když výrok nemá pravdivostní hodnotu

Už ve 4. století př. n. l. připisovali Eubúlidovi z Mílétu paradox „Toto tvrzení je nepravdivé.“ Je-li pravdivé, je nepravdivé; je-li nepravdivé, je pravdivé. Chrysippos o něm prý napsal několik spisů. Paradox ukazuje hranici definice výroku: ne každá oznamovací věta je výrok.

Lhářův přepínač

přiřaď větě hodnotu

„Toto tvrzení je nepravdivé.“

?

Lhář ve 20. století: Gödel a Turing – v moderní podobě vede paradox až ke Gödelovým větám a k problému zastavení

Kurt Gödel (1931) postavil lháře z čísel. Místo „toto tvrzení je nepravdivé“ sestrojil v aritmetice větu, která říká „toto tvrzení nelze dokázat“. Kdyby šla dokázat, systém by dokazoval nepravdu. Musí tedy být pravdivá, ale nedokazatelná. To je první věta o neúplnosti: každý bezesporný systém, který zvládne aritmetiku, obsahuje pravdivá tvrzení, která v něm nejdou dokázat. Druhá věta dodává, že takový systém nedokáže dokázat ani vlastní bezespornost.

Alan Turing (1936) přenesl stejný trik na programy. Představ si funkci zastavi(program), která o každém programu spolehlivě pozná, zda doběhne. Pak napíšeme lháře:

function lhar() {
    if (zastavi(lhar)) while (true) {}  // mám doběhnout? tak nedoběhnu
    else return;                        // nemám doběhnout? tak doběhnu
  }

Ať zastavi(lhar) odpoví cokoli, lhar udělá opak. Taková funkce proto nemůže existovat. Proto žádný nástroj neumí v obecném případě najít všechny nekonečné smyčky v kódu a lintery varují jen „možná“.

IV

VzorecModus ponens a Filónova implikace.

MODUS PONENS

[(A ⇒ B) ∧ A]  ⇒  B

A ⇒ B je nepravdivé jen pro A = 1, B = 0

Výrok je ta část řeči, o které má smysl se ptát: platí to?

ZASTAVENÍ III · 1854 · CORK, IRSKO

George Boole: logika jako algebra

Leibniz a George Boole

I

OtázkaCalculemus!

Dají se zákony správného uvažování zapsat jako algebra?

Gottfried Wilhelm Leibniz (1646–1716) snil o characteristica universalis, jazyku, ve kterém by se pojmy zapisovaly znaky, a o calculus ratiocinator, počtu pro usuzování. Spory by se pak nevedly hádkou: dva učenci by si sedli a řekli Calculemus! – „počítejme!“. Leibniz také podrobně popsal dvojkovou soustavu (1703) se dvěma číslicemi 0 a 1. Logiku a dvojkovou soustavu ale ještě nespojil. To udělal až o půldruhého století později samouk z Lincolnu.

II

ČlověkSyn obuvníka, který chtěl popsat myšlení jako Newton pohyb.

George Boole (1815–1864) byl syn obuvníka z Lincolnu, matematiku se naučil sám a od 16 let učil, aby uživil rodinu. Bez univerzitního titulu se stal profesorem v irském Corku. Roku 1847 vydal útlou knihu The Mathematical Analysis of Logic a roku 1854 hlavní dílo An Investigation of the Laws of Thought – „Zkoumání zákonů myšlení“. Odtud letopočet 1854 u této kapitoly.

Boole neměl za cíl postavit počítač. Chtěl popsat, jak lidé myslí, stejně přesně, jako Newton popsal pohyb. Zjistil, že úsudky se dají zapisovat a upravovat jako rovnice.

George Boole 1815–1864, Lincoln – Cork

  1. 1815Narodil se v Lincolnu v rodině obuvníka.
  2. 1831V 16 letech začíná učit, aby uživil rodinu.
  3. 1847The Mathematical Analysis of Logic.
  4. 1849Profesor matematiky na Queen's College v Corku.
  5. 1854An Investigation of the Laws of Thought.
  6. 1864Umírá na zápal plic ve 49 letech.
1847George Boole: The Mathematical Analysis of Logic. Útlá první kniha, napsaná za pár týdnů jako vstup do sporu mezi De Morganem a Hamiltonem.
1854George Boole: An Investigation of the Laws of Thought. Hlavní dílo. Ve 2. a 3. kapitole odvozuje x2 = x a z něj dvojici 0 a 1.

Souběžně s Boolem pracoval Augustus De Morgan (1806–1871), po kterém nesou jméno zákony ¬(A ∧ B) ⇔ (¬A ∨ ¬B) a ¬(A ∨ B) ⇔ (¬A ∧ ¬B) – ty, které programátor používá pokaždé, když přepisuje !(a && b) na !a || !b.

PRO ZVÍDAVÉ: ZKUS TO!

Přepiš tak, aby negace nestála před závorkou: ¬((4 > 2) ∧ (4 < 2)). Je pravdivý původní výrok, nebo jeho negace?

Řešení

(4 ≤ 2) ∨ (4 ≥ 2). Negace je pravdivá, původní výrok (4 > 2) ∧ (4 < 2) nepravdivý.

III

MyšlenkaOdkud se vzala 0 a 1.

Boole neuvažoval o výrocích, ale o třídách věcí. Písmeno x pro něj znamenalo třeba „bílé věci“, y „ovce“. Součin xy pak byl průnik: „bílé ovce“. 1 byla celá úvaha, všechno, o čem mluvíme (universe), 0 prázdná třída, nic.

Pak si všiml zvláštnosti. Bílé bílé věci jsou pořád jen bílé věci, takže platí xx = x, tedy

x2 = x.

V obyčejné algebře má tahle rovnice jen dvě řešení: x = 0 a x = 1. Boole z toho udělal závěr, který změnil dějiny: algebra myšlení je obyčejná algebra omezená na čísla 0 a 1. Ve druhé knize pak 1 vyložil jako „vždy“, tedy pravdu, a 0 jako „nikdy“, tedy nepravdu.

Z té samé rovnice Boole odvodil i Aristotelův zákon sporu: x − x2 = 0, neboli x(1 − x) = 0. Slovy: nic nemůže zároveň mít vlastnost x a nemít ji (1 − x). Nejstarší zákon logiky vypadl z algebry jako vedlejší produkt.

Booleovy ovce

násob třídy
1 (vše) x bílé věci y ovce

Klikni na x a vybarví se bílé věci.

PRO ZVÍDAVÉ: CO TY NA TO?

Existuje celé číslo, které se umocněním na druhou nezmění? Zapiš otázku symbolicky a najdi všechna taková čísla.

Řešení

(∃x ∈ ℤ)(x2 = x). Vyhovují právě 0 a 1, tedy Booleova dvojice. Celá výroková logika stojí na číslech, která se nezmění, když je vynásobíš sebou samými.

IV

VzorecRovnice, která má jen dvě řešení.

ZÁKONY MYŠLENÍ

x2 = x  ⟺  x ∈ {0, 1}

x(1 − x) = 0

Pravda je 1, nepravda je 0 – a „a“ je obyčejné násobení.

ZASTAVENÍ IV · 1879–1921

Tabulky pravdy: spočítat, ne se naučit

Frege, Peirce, Wittgenstein, Post

I

OtázkaOdkud se vzaly tabulky?

Když je pravda 1 a nepravda 0, dají se tabulky pro „ne“, „a“, „nebo“ a „jestliže“ spočítat, místo abychom se je učili nazpaměť?

Boole tabulky nekreslil, počítal rovnicemi. Tabulka jako metoda přišla až o několik desetiletí později.

II

ČlověkČtyři lidé a jedna tabulka.

  • Gottlob Frege (1879, Begriffsschrift) přesně popsal, kdy je implikace pravdivá, výčtem všech čtyř případů – zatím slovy.
  • Charles S. Peirce nakreslil kolem roku 1893 v nepublikovaném rukopise matici, která je dnešní pravdivostní tabulkou implikace. Objevila se až v jeho pozůstalosti.
  • Ludwig Wittgenstein (Tractatus, 1921) a nezávisle Emil Post (1921) tabulky zveřejnili a ukázali, že s nimi lze o každé výrokové formuli rozhodnout, zda je tautologií. Wittgenstein vlastně definoval tautologii jako formuli, která má ve výsledném sloupci samé pravdy.
1879Gottlob Frege: Begriffsschrift (Pojmopis). Necelých sto stran, první formální jazyk s kvantifikátory.
1921Ludwig Wittgenstein: Tractatus logico-philosophicus. V odstavcích 4.31 a dál pravdivostní tabulky a definice tautologie.

Frege se přirozeného jazyka bál: považoval ho za nepřesný a víceznačný, a proto si vytvořil jazyk vlastní. Jak to s logikou a jazykem bylo dál, vypráví samostatná stránka Jazyk a logika.

III

MyšlenkaPočítej, jako by to byla čísla.

Jakmile je pravda 1 a nepravda 0, můžeme se na spojky dívat jako na početní operace: dosadíme dvě čísla 0 nebo 1 a vyjde zase 0 nebo 1. Úkol zní: najdi vzorec, který dává 1 přesně v těch řádcích, kde je složený výrok pravdivý. Krok za krokem:

  1. Negace. Hledáme operaci, která z 1 udělá 0 a z 0 udělá 1. Stačí odečíst od jedničky: 1 − 1 = 0 a 1 − 0 = 1. Tedy ¬p = 1 − p.
  2. Konjunkce „p a q“. Má platit, jen když platí obě části. Zkusme součin: 1 · 1 = 1, 1 · 0 = 0, 0 · 1 = 0, 0 · 0 = 0. Jediná nula vynuluje celý součin, stejně jako jediná nepravdivá část shodí celé „a“. Tedy p ∧ q = p · q.
  3. Disjunkce „p nebo q“. Má platit, když platí aspoň jedna část. První nápad je součet p + q. Funguje ve třech řádcích, ale pro p = q = 1 dá 2, a dvojka v našem světě neexistuje. Opravíme to: společnou část jednou odečteme, p + q − pq. (Boole sám psal jen x + y a myslel jím vylučovací „nebo“; nevylučovací verzi prosadil hlavně W. S. Jevons.)
  4. Implikace „jestliže p, pak q“. Podle Filóna je nepravdivá v jediném případě: p = 1 a q = 0. Ten „zakázaný“ případ zapíšeme součinem p(1 − q), který je 1 jen tehdy, když p = 1 a zároveň q = 0. Implikace platí, když zakázaný případ nenastal, takže ho znegujeme: p ⇒ q = 1 − p(1 − q).
  5. Ekvivalence „p právě tehdy, když q“. Má platit, když mají p a q stejnou hodnotu. Rozdíl p − q je 0 při shodě a +1 nebo −1 při neshodě. Umocněním zmizí znaménko: (p − q)2 je 0 při shodě a 1 při neshodě. Zbývá výsledek obrátit: p ⇔ q = 1 − (p − q)2.

Kalkulačka pravdy

přepni p a q
p = q =
    pq1 − pp · qp + q − pq1 − p(1 − q)1 − (p − q)2

    Vyšla přesně známá tabulka pravdivostních hodnot, tentokrát ne naučená, ale spočítaná. Tabulka je tedy algoritmus: projdi všech 2n kombinací a podívej se. Je to první rozhodovací procedura v logice – a hrubá síla (brute force) v čisté podobě.

    PRO ZVÍDAVÉ: ZKUS TO!

    Kolik řádků bude mít tabulka pro tři výroky p, q, r? (Nápověda: každý z nich je řešením x2 = x.) A ověř bez tabulky, jen počítáním, že (p ∧ q) ⇒ p platí vždy. Použij p · p = p.

    Řešení

    23 = 8 řádků. A počítáním:

    1 − pq(1 − p) = 1 − pq + p2q = 1 − pq + pq = 1,

    tedy tautologie.

    IV

    VzorecImplikace jako počet.

    SPOJKY JAKO POČETNÍ OPERACE

    p ⇒ q  =  1 − p(1 − q)

    ¬p = 1 − p  ·  p ∧ q = pq  ·  p ∨ q = p + q − pq

    Tabulka je algoritmus: projdi všech 2n řádků a podívej se.

    ZASTAVENÍ V · 1937 · MIT

    Claude Shannon: od tabulek k obvodům

    I

    OtázkaZ filozofie k inženýrství.

    Booleova algebra byla osmdesát let kuriozitou pro filozofy. Dá se z ní postavit stroj?

    II

    ČlověkDiplomka, která změnila svět.

    Roku 1937 napsal jednadvacetiletý Claude Shannon na MIT diplomovou práci A Symbolic Analysis of Relay and Switching Circuits. Ukázal, že sériově zapojené spínače se chovají jako ∧, paralelně zapojené jako ∨. Zapnuto = 1, vypnuto = 0. Od té chvíle se dá jakýkoli logický úsudek postavit z drátů. Každý procesor je hromada Booleových rovnic.

    MIT, 1937 (ČASOPISECKY 1938)Claude E. Shannon: A Symbolic Analysis of Relay and Switching Circuits. Diplomová práce jednadvacetiletého studenta, často označovaná za nejvlivnější diplomovou práci 20. století.
    III

    MyšlenkaSériově je „a“, paralelně je „nebo“.

    Dva vypínače a žárovka

    klikej na vypínače
    Zapojení 1
    A B
    ABžárovka
    Zapojení 2
    A B
    ABžárovka

    Vyzkoušej všechny čtyři kombinace v obou zapojeních.

    PRO ZVÍDAVÉ: LOGIKA V DATABÁZI
    SELECT jmeno, rocnik FROM Student
      WHERE vek >= 18 AND (rocnik = 1 OR rocnik = 2);

    Zapiš podmínku jako V(x) ∧ (R1(x) ∨ R2(x)). Které studenty dotaz vybere? A co se stane, když závorky vynecháš?

    Řešení

    Plnoleté studenty 1. a 2. ročníku. Bez závorek má AND přednost: (V ∧ R1) ∨ R2, takže přibudou i nezletilí z 2. ročníku. Stejný problém, jaký v řeči řešíme čárkami.

    IV

    VzorecDva vypínače, dvě spojky.

    LOGICKÉ OBVODY

    sériově:  a · b = a ∧ b

    paralelně:  a + b − ab = a ∨ b

    Každý procesor je hromada Booleových rovnic.

    Co jsme viděli

    Od pravidel správné řeči k nule a jedničce v procesoru.

    1. IAristotelés: správnost úsudku závisí na tvaru, ne na obsahu; sylogismus, zákon sporu a vyloučeného třetího.
    2. IIStoici: výrok je to, co je pravdivé, nebo nepravdivé; spojky, Filónova implikace, modus ponens.
    3. IIIBoole: x2 = x, tedy pravda je 1 a nepravda 0.
    4. IVTabulky: spojky jako početní operace a pravdivostní tabulka jako algoritmus.
    5. VShannon: sériové zapojení je ∧, paralelní je ∨; logika z drátů.

    DVA TISÍCE LET UVAŽOVÁNÍ NA DVOU ŘÁDCÍCH

    x2 = x  ⟺  x ∈ {0, 1}

    p ⇒ q  =  1 − p(1 − q)

    Co Aristotelés hledal v řeči, Chrysippos v pravdě a Boole v algebře, dnes píšeme jako !p || q.

    Proč byla logika potřeba

    Shrnutí pro programátora.

    DobaProblémOdpověď logikyKde ji potkáš v kódu
    4. st. př. n. l.Vyhrává lepší řečník, ne pravda.Sylogismus: správnost podle tvaru.Odvozovací pravidla, typové systémy.
    3. st. př. n. l.Kdy je složená věta pravdivá?Výrok, spojky, Filónova implikace.&&, ||, !, podmínky if.
    1854Dá se myšlení počítat?Booleova algebra, 0 a 1.Typ boolean, bitové operace.
    1879–1921Jak to zapsat bez víceznačnosti?Kvantifikátory, pravdivostní tabulky.every(), some(), testování.
    1937Jak to postavit?Logické obvody.Hradla AND/OR/NOT v procesoru.
    SAMOSTATNÁ KAPITOLA ☞ Jazyk a logika Jakou roli sehráli lingvisté: od stoických gramatiků přes Fregeho a Carnapa k Chomského gramatikám a Montagueovi?

    Zdroje a doporučená literatura

    • Stanford Encyclopedia of Philosophy: Aristotle's Logic, Ancient Logic, George Boole, Frege's Logic, The Algebra of Logic Tradition.
    • Aristotelés: Analytika první (sylogismus), Metafyzika IV (zákon sporu, vyloučené třetí), O vyjadřování 9 (námořní bitva).
    • Diogenés Laertios: Životy filozofů, kniha VII (stoická logika, Filón, Chrysippos).
    • G. Boole: An Investigation of the Laws of Thought (1854), kap. II–III – volně v Projektu Gutenberg.
    • I. H. Anellis: The Genesis of the Truth-Table Device, Russell 24 (2004) – o Peirceově tabulce z roku 1893.
    • C. E. Shannon: A Symbolic Analysis of Relay and Switching Circuits, MIT, 1937/1938.
    • P. Nahin: The Logician and the Engineer (2012) – populární kniha o Booleovi a Shannonovi.

    KONEC KAPITOLY O LOGICE

    Zpět na obsah