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č. Konkrétně si dokážeme, že nelze algoritmicky rozhodnout, zda se daný algoritmus na svém vstupu zastaví nebo ne. 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, 2012 1/33 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, 2012 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, 2012 3/33 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.c Důsledek 12.3. Neexistuje žádné injektivní(ani bijektivní) zobraz, h : R —> N. Neformálně řečeno, reálných čísel je striktně více než všech přirozených. Petr Hliněný, Fl MU Brno, 2012 4/33 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: 0(0) = 0. 12 54275 7 g(l) = 0. 41 g{2)= 0. 12 g(3) = 0. 3-1 g(4) = 0. 9-1 3 2 5 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 . .. 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.) □ Petr Hliněný, Fl MU Brno, 2012 5/33 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