*2 Důkazové techniky, Indukce Náš hlubší úvod do matematických formalismů pro informatiku začneme základním přehledem technik matematických důkazů. Z nich pro nás asi nejduležitější je technika důkazů matematickou indukcí, která je svou podstatou velmi blízká počítačovým programům (jako iterace cyklů). Stručný přehled lekce * Základní důkazové techniky: přímé, nepřímé a sporem. Důkazy „tehdy a jen tehdy". * Důkazy matematickou indukcí, jejich variace a úskalí. * Metody zesílení tvrzení a rozšírení základu v indukci. Petr Hliněný, Fl MU Brno, 2016 1/15 Fl: IB000: Důkazy, Indukce 2.1 Přehled základních důkazových technik • Přímé odvození. To je způsob, o kterém jsme se dosud bavili. • Kontrapozice (také obrácením či nepřímý důkaz). Místo věty „Jestliže platí předpoklady, pak platí závěr." budeme dokazovat ekvivalentní větu „Jestliže neplatí závěr, pak neplatí alespoň jeden z předpokladů." • Důkaz sporem. Místo věty „Jestliže platí předpoklady, pak platí závěr." budeme dokazovat větu „Jestliže platí předpoklady a platí opak závěru, pak platí.. . " - nějaké zjevně nepravdivé tvrzení, nebo případně - závěr (tj. opak jeho opaku) či opak jednoho z předpokladů. • Matematická indukce. Pokročilá technika. .. Petr Hliněný, Fl MU Brno, 2016 2/15 Fl: IB000: Důkazy, Indukce Příklad důkazu kontrapozicí Definice: Prvočíslo je celé číslo p > 1, které nemá jiné dělitele než lap. Příklad 2.1. A/a důkaz kontrapozicí (obrácením). Věta. Jestliže p je prvočíslo větší než 2, pa/cp je liché.c Důkaz obráceného tvrzení Budeme místo uvedeného znění věty dokazovat, že je-li p sudé, pak p není větší než 2 nebo p není prvočíslo. Připomínáme, že podle definice je p sudé, právě když lze psát p = 2 • k, kde k je celé. Jsou jen dvě snadno řešitelné možnosti: • fc < 1. Pak p = 2A; není větší než 2. • k > 1. Pak p = 2 • k není prvočíslo podle definice. Petr Hliněný, Fl MU Brno, 2016 3/15 Fl: IB000: Důkazy, Indukce Příklady důkazu sporem Příklad 2.2. Jiný, kratší přístup k Důkazu 2.1. Věta. Jestliže p je prvočíslo větší než 2, pak p je liché.c Důkaz sporem: Nechť tedy p je prvočíslo větší než 2, které je sudé. Pak p = 2-k pro nějaké k > 1, tedy p není prvočíslo, spor (s předpokladem, že p je prvočíslo] - Pak 2 = r2 / s2, tedy r2 = 2 • s2, proto r2 je dělitelné dvěma. Z toho plyne, že i r je dělitelné dvěma (proč?). - Jelikož r je dělitelné dvěma, je r2 dělitelné dokonce čtyřmi, tedy r2 = 4 • m pro nějaké m. Pak ale také 4 • m = 2 • s2, tedy 2 • m = s2 a proto s2 je dělitelné dvěma. - Z toho plyne, že s je také dělitelné dvěma. Celkem dostáváme, že r i s jsou dělitelné dvěma, jsou tedy soudělná a to je spor. Příklad 2.3. Opět sporem. Věta. Číslo V2 není racionální. Důkaz sporem: Nechť tedy \/2 je racionální, tj. nechť existují nesoudělná celá kladná Nevíte-li, jak nějakou větu dokázat, zkuste důkaz sporem... Petr Hliněný, Fl MU Brno, 2016 4/15 Fl: IB000: Důkazy, Indukce 2.2 Věty typu „tehdy a jen tehdy" • Uvažujme nyní (v matematice poměrně hojné) věty tvaru „Nechť platí předpoklady P. Pak tvrzení A platí tehdy a jen tehdy, platí-li tvrzení B."c • Příklady jiných jazykových formulací téže věty jsou: * Za předpokladů P je tvrzení B nutnou a postačující podmínkou pro platnost tvrzení A.c * Za předpokladů P je tvrzení A nutnou a postačující podmínkou pro platnost tvrzení B. * Nechť platí předpoklady P. Pak tvrzení A platí právě tehdy když platí tvrzení B.c • Plný důkaz vět tohoto tvaru má vždy dvě části(!). Je třeba dokázat: * Jestliže platí předpoklady P a tvrzení A, pak platí tvrzení B. * Jestliže platí předpoklady P a tvrzení B, pak platí tvrzení A. Petr Hliněný, Fl MU Brno, 2016 5/15 Fl: IB000: Důkazy, Indukce Příklad 2.4. Na důkaz typu „tehdy a jen tehdy". Věta. Pro každá dvě celá č. a, b platí, že a < b právě tehdy když 2a < 2b. □ Důkaz: Nezapomínáme, že našim úkolem je dokázat oba směry tvrzení (implikace zleva doprava a zprava doleva). Začneme s prvním: Předpoklad a < b je definičně ekvivalentní tomu, že b = a + k pro nějaké přirozené k > 0. Potom 2b = 2a+k = 2a -2k =£-2a pro nějaké přirozené t = 2k > 2, a tudíž 2b - 2a = [í - 1) • 2a > 1 • 2a > 0. Tím je první část důkazu hotova. V opačném směru postupujeme z předpokladu 2a < 2b. Vydělením obou stran nerovnosti kladným číslem 2a získáme 26/2a = 2b~a > l.u Dále postupujeme sporem. Nechť tedy a > 6, neboli a — b = m > 0. Potom máme 2a~b = 2_^_2 > 1. Avšak celkově 1 = 2° = 2a~b • 2b~a > 1 • 1 = 1 je sporné. Proto zbývá jen požadovaný závěr a < b. n Petr Hliněný, Fl MU Brno, 2016 6/15 Fl: IB000: Důkazy, Indukce 2.3 Matematická indukce • Jde o důkazovou techniku aplikovatelnou na tvrzení tohoto typu: „Pro každé přirozené (celé) n > ko platí T (n). " Zde ko je nějaké pevné přir. číslo a T(n) je tvrzení parametrizované čís. n.c Příkladem je třeba tvrzení: Pro každé n > 0 platí, že n přímek dělí rovinu ^— • Princip matematické indukce říká (coby axiom), že k důkazu věty „Pro každé přirozené (celé) n > ko platí T (n). " stačí ověřit platnost těchto dvou tvrzení: * T(fc0) * Pro každé n > ko; jestliže platí T (n), pak platí také T(n + 1). (tzv. báze neboli základ indukce) (indukční předpoklad) (indukční krok)c Petr Hliněný, Fl MU Brno, 2016 7/15 Fl: IB000: Důkazy, Indukce ■r Příklady důkazů indukcí Příklad 2.6. Velmi jednoduchá a přímočará indukce. Věta. Pro každé přiroz. n > 1 je stejná pravděpodobnost, že při současném hodu n kostkami bude výsledný součet sudý, jako, že bude lichý. Důkaz: Základ indukce je zde zřejmý: Na jedné kostce (poctivé!) jsou tři lichá a tři sudá čísla, takže obě skupiny padají se stejnou pravděpodobností. Indukční krok pro n > 1: Nechť psn pravděpodobnost, že při hodu n kostkami bude výsledný součet sudý, a pln je pravděpodobnost lichého. Podle indukčního předpokladu je s = l = 1 Pn P n 2' □ Hoďme navíc {n + l)-ní kostkou. Podle toho, zda na ní padne liché nebo sudé číslo, je pravděpodobnost celkového sudého součtu rovna ~ l s 6Pn 6Pn = 2 a stejně pro pravděpodobnost celkového lichého součtu. □ Petr Hliněný, Fl MU Brno, 2016 8/15 Fl: IB000: Důkazy, Indukce ■r Příklad 2.7. Ukázka skutečné důkazové „síly" principu matematické indukce. Věta. Pro každé n > O platí, že n přímek dělí rovinu nejvýše na -n(n + í) + l oblastí. Důkaz: Pro bázi indukce stačí, že 0 přímek dělí rovinu na jednu část. (Všimněte si také, že 1 přímka dělí rovinu na dvě části, jen pro lepší pochopení důkazu.) Mějme nyní rovinu rozdělenou n přímkami na nejvýše ^n(n + 1) + 1 částí.n Další, (n + l)-ní přímka je rozdělena průsečíky s předchozími přímkami na nejvýše n + 1 úseků a každý z nich oddělí novou část roviny. nCelkem tedy bude rovina rozdělena našimi přímkami na nejvýše tento počet oblastí: 1 111 -n(n+l) + l + (n+l) = -n(n + 1) + --2(n+l) +1 = -(n + l)(n + 2) +1 □ Petr Hliněný, Fl MU Brno, 2016 9/15 Fl: IB000: Důkazy, Indukce Příklad 2.8. Další indukční důkaz rozepsaný v podrobných krocích. Věta. Pro každé n > O platí Ej=oÍ = ^^^-^ Důkaz indukcí vzhledem k n. • Báze: Zde musíme dokázat „T(0)'\ což je v tomto případě rovnost Y^=oJ — ^y^-- Tato rovnost (zjevně) platí.□ • Indukční krok: Musíme dokázat, že pro každé n > 0 platí „z T{n) vyplývá T{n + 1)", což je konkrétně následující tvrzení: Jestliže J2]=0j = 2&f!lf pak platilo J = (n+1)(f1+1). □ Předpokládejme tedy, že Y^j=oJ = n^n^ a pokusme se dokázat, že pak také V^n+l • (n+l)(n+l+l) (n+l)(n+2) -r - i z^7=o J = v n2 ; = 2 ■ ^° uz P'vne úpravou: <3 n+1 n n(n + 1) , ^ , , _ n(n + 1) + 2(n + 1) _ (n + l)(n + 2) j=0 j=0 Podle principu matematické indukce je celý důkaz hotov. q Petr Hliněný, Fl MU Brno, 2016 10/15 Fl: IB000: Důkazy, Indukce 2.4 Komentáře k matematické indukci Pro správné a úspěšné použití indukce v dokazování je vhodné si zapamatovat několik cenných rad: • Základní trik všech důkazů matematickou indukcí je vhodná reformulace tvrzení T(n + 1) tak, aby se „odvolávalo" na tvrzení T(n). * Dobře se vždy podívejte, v čem se liší tvrzení T{n + 1) od tvrzení T{n). Tento „rozdíl" budete muset v důkaze zdůvodnit. • Pozor, občas je potřeba „zesílit1 tvrzení T(n), aby indukční krok správně „fungoval".c • Často se chybuje v důkazu indukčního kroku, neboť ten bývá většinou výrazně obtížnější než báze, ale o to zrádnější jsou chyby v samotné zdánlivě snadné bázi! * Dejte si dobrý pozor, od které hodnoty n > ko je indukční krok univerzálně platný a jestli báze nezahrnuje více než jednu hodnotu.. . Petr Hliněný, Fl MU Brno, 2016 11/15 Fl: IB000: Důkazy, Indukce Příklad 2.9. Kdy je vhodné (a v zásadě také nutné) indukční krok zesílit... Věta. Pro každé n > 1 platí s(n) = T^ + 213 + 314 + -'' + ^TT) <1" Důkaz:n Báze indukce je zřejmá, neboť ^2 < 1- Co však indukční krok? Předpoklad s(n) < 1 je sám o sobě „příliš slabý" na to, aby bylo možno tvrdit s(n + 1) = s(n) + (n+1)1(n+2) < 1- n Neznamená to ještě, že by tvrzení nebylo platné, jen je potřeba náš indukční předpoklad zesílit. Budeme dokazovat „Pro každé přirozené n > 1 platí s(n) < 1 — < 1 ."□ To platí pro n = 1 a dále už úpravou jen dokončíme zesílený indukční krok: 1 11 s(n + l) s(ri) + ---z-— < 1---h (n + l)(n + 2) ~ n + 1 (n + l)(n + 2) = 1 -(n + 2) + l = i_ 1 (n + l)(n + 2) n + 2 □ Petr Hliněný, Fl MU Brno, 2016 12/15 Fl: IB000: Důkazy, Indukce Rozšíření báze a předpokladu Mimo zesilování tvrzení indukčního kroku jsme někdy okolnostmi nuceni i k rozšiřování samotné báze indukce a s ní indukčního předpokladu na více než jednu hodnotu parametru n. - Můžeme například předpokládat platnost (parametrizovaných) tvrzení T{n) i T(n + 1) zároveň, a pak odvozovat platnost T(n + 2). Toto lze samozř. zobecnit na jakýkoliv počet předpokládaných parametrů.c - Můžeme dokonce předpokládat platnost tvrzení T(j) pro všechna j = fco, ko + 1,..., n najednou a dokazovat T{n + 1). Toto typicky využijeme v případech, kdy indukční krok „rozdělí" problém T(n + 1) na dvě menší části a z nich pak odvodí platnost T(n + 1). □ Fakt: Obě prezentovaná „rozšíření" jsou v konečném důsledku jen speciálními instancemi základní matematické indukce; použité rozšířené možnosti pouze zjednodušují formální zápis důkazu. Petr Hliněný, Fl MU Brno, 2016 13/15 Fl: IB000: Důkazy, Indukce Příklad 2.10. Když je nutno rozšířit bázi a indukční předpoklad... Věta. Necht funkce f pro každé n > 0 splňuje vztah /(n + 2) = 2/(n + l)-/(n). Pokud platí f(0) — la zároveň f(l) = 2, ra/c platí f (n) = n + 1 pro všechna přirozená n > 0. Důkaz: Už samotný pohled na daný vztah f(n + 2) — 2f(n + l) — f(n) naznačuje, že bychom měli rozšířit indukční předpoklad (a krok) zhruba takto: Pro každé n > 0; jestliže platí T(n); neboli f{n) — n + 1, a zároveň platí T(n + 1); f(n + l) =n + 2, pak platí také T(n + 2); f(n + 2) = n + 3. Báze indukce -□ pozor, zde už musíme ověřit dvě hodnoty /(O) = 0 + 1 = 1, /(l) = l + l = 2.o Náš indukční krok tak nyní může využít celého rozšířeného předpokladu, znalosti hodnot f (n) i f(n+ 1), pro ověření /(n + 2) = 2/(n + 1) - f(n) = 2-(n+l + l)-(n+l)=n + 3 = n + 2 + l. □ Petr Hliněný, Fl MU Brno, 2016 14/15 Fl: IB000: Důkazy, Indukce Závěrem malý „problém" Příklad 2.11. Aneb jak snadno lze v matematické indukci udělat chybu. Věta. („nevěta") V každém stádu o n > 1 koních mají všichni koně stejnou barvu. Důkaz indukcí vzhledem k n. Báze: Ve stádu o jednom koni mají všichni koně stejnou barvu.c Indukční krok: Nechť S — {i^i,..., Kn+i} je stádo o n +1 koních. Dokážeme, že všichni koně mají stejnou barvu. Uvažme dvě menší stáda: - S' = {KuK2,...,Kn} - S" = {K2,...,Kn,Kn+1} □ Podle indukčního předpokladu mají všichni koně ve stádu Sf stejnou barvu Bf. Podobně všichni koně ve stádu S" mají podle indukčního předpokladu stejnou barvu B". Dokážeme, že B' — Břř, tedy že všichni koně ve stádu S mají stejnou barvu. To ale plyne z toho, že koně K2,... ,Kn patří jak do stáda Sf, tak i do stáda S". □ □ Ale to už je podvod! Vidíte, kde? Petr Hliněný, Fl MU Brno, 2016 15/15 Fl: IB000: Důkazy, Indukce