12 Nekonečné množiny, Zastavení algoritmu Bystrého čtenáře může snadno napadnout myšlenka, proč se vlastně zabýváme dokazováním správnosti algoritmů a programů, když by to přece (snad?) mohl za nás dělat automaticky počítač samotný. Bohužel to však nejde a je hlavním cílem této lekce ukázat důvody proč. Stručný přehled lekce * Nekonečné množiny, jejich „velikost" a Cantorova diagonála. * „Naivní" množinové paradoxy: Cantorův a Russelův. * Důkaz algoritmické neřešitelnosti problému zastavení programu. Petr Hliněný, Fl MU Brno, 2013 1/12 Fl: IB000: Nekonečno a zastaven 12.1 O nekonečných množinách a kardinalitě Uvažme problém stanovit, kolik má nekonečná množina prvků. Co nám třeba brání zavést pro velikost nekonečné množiny symbol oo? c - Ponejvíce závažný fakt, že není „nekonečno" jako „nekonečno" (Věta 12.2)!c Definice: Množina A]e „nejvýše tak velká" jako množina B, právě když existuje injektivní funkce / : A —> B. c O O Množiny A a B jsou „stejně velké" právě když mezi nimi existuje bijekce. c V případech nekonečných množin pak mluvíme formálně o jejich kardinalitě. Petr Hliněný, Fl MU Brno, 2013 Fl: IB000: Nekonečno a zastaven Ukázky kardinalit množin Uvedená definice kardinality množin „funguje" dobře i pro nekonečné množiny: * Například N a 7L mají stejnou kardinalitu (jsou „stejně velké", tzv. spočetně nekonečné).c * Lze snadno ukázat, že i Q je spočetně nekonečná, tj. existuje bijekce / : N ->• Q, stejně jako bijekce h : N ->• N2.n * Existují ale i nekonečné množiny, které jsou „striktně větší" než libovolná spočetná množina (příkladem je R ve Větě 12.2). * Později dokážeme, že existuje nekonečná posloupnost nekonečných množin, z nichž každá je striktně větší než všechny předchozí. Pro porovnávání velikostí množin někdy s výhodou využijeme následující přirozené, ale nelehké tvrzení (bez důkazu): Věta 12.1. Pro libovolné dvě množiny A, B platí, že pokud existuje injekce A —» B a zároveň i injekce B —» A, pak existuje bijekce mezi A a B. Petr Hliněný, Fl MU Brno, 2013 3/12 Fl: IB000: Nekonečno a zastaven Cantorova diagonála, aneb kolik je reálných čísel Věta 12.2. Neexistuje žádné surjektivní zobrazení g : N —> R. "<.íŕ-"- Důsledek 12.3. Neexistuje žádné injektivní(ani bijektivní) zobraz, h : R —>■ N. Neformálně řečeno, reálnych čísel je striktně více než všech přirozených. Petr Hliněný, Fl MU Brno, 2013 4/12 Fl: IB000: Nekonečno a zastaven Věta. Neexistuje žádné surjektivní zobrazení g : N —> R. Důkaz (Věty 12.2 sporem): Nechť takové g existuje a pro zjednodušení se omezme jen na funkční hodnoty v intervalu (0,1). Podle hodnot zobrazení g si takto můžeme „uspořádat" dekadické zápisy všech reálných čísel v intervalu (0,1) po řádcích do tabulky: Nyní sestrojíme číslo a G (0,1) následovně; jeho i-tá číslice za desetinnou čárkou bude 1, pokud v i-tém řádku tabulky na diagonále není 1, jinak to bude 2. V našem příkladě a = 0.21211 ... c Kde se naše číslo a v tabulce nachází? (Nezapomeňme, g byla surjektivní, takže a někde musí být.) Konstrukce však ukazuje, že a se od každého čísla v tabulce liší na aspoň jednom desetinném místě, to je spor. (Až na drobný technický detail s rozvojem ... 9.) □ 9(0) 9(1) í?(3) 9(4) 0. 42 54275 78325 0. 41 0. 42 0. 3-1 0. 9-1 c Petr Hliněný, Fl MU Brno, 2013 5/12 Fl: IB000: Nekonečno a zastaven 12.2 „Naivní" množinové paradoxy Analogickým způsobem k Větě 12.2 lze dokázat následovné zobecnění. Věta 12.4. Necht M je libovolná množina. Pak existuje injektivní zobrazení / : M —> 2M, ale neexistuje žádné bijektivní zobrazení g : M —> 2M.c Důkaz: Dokážeme nejprve existenci /. Stačí ale položit f (x) = {x} pro každé x G M. Pak / : M ->• 2M je zjevně injektivní.n Neexistenci g dokážeme sporem. Předpokládejme tedy naopak, že existuje bi-jekce g : M —» 2M. Uvažme množinu K C M definovanou takto: K = {x e M \ x g g (x)}. Jelikož g je bijektivní a K G 2M, musí existovat y G M takové, že g (y) = K.n Nyní rozlišíme dvě možnosti: ~~ V £ 9(y)- TJ. y ^ K- Pak a'e ž/ 0