From aef897af1ee613bbd4fb2fcc2b28218998436c03 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sat, 12 Apr 2025 16:20:09 +0200
Subject: [PATCH] =?UTF-8?q?Teorie=20=C4=8D=C3=ADsel:=20Korektury?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 07-teorie-cisel/teorie-cisel.tex | 128 +++++++++++++++++--------------
 tex/adsmac.tex                   |   2 +-
 2 files changed, 70 insertions(+), 60 deletions(-)

diff --git a/07-teorie-cisel/teorie-cisel.tex b/07-teorie-cisel/teorie-cisel.tex
index 744bc22..1d8bb17 100644
--- a/07-teorie-cisel/teorie-cisel.tex
+++ b/07-teorie-cisel/teorie-cisel.tex
@@ -22,10 +22,13 @@ Nejprve připomeneme základní značení:
   anglického \em{greatest common divisor.}}
   Případu $x=y=0$ se chceme vyhnout, protože tam je každé číslo společným dělitelem.
 \:$x\perp y$ značí, že $x$ a $y$ jsou \em{nesoudělná,} tedy $\gcd(x,y)=1$.
-\:$x\equiv y\pmod n$ je \em{kongruence modulo~$n>0$,} která znamená, že $x$ a~$y$
+\:$x\equiv_n y$ je \em{kongruence modulo~$n>0$,} která znamená, že $x$ a~$y$
   dávají stejný zbytek modulo~$n$. To je totéž, jako že $n\divs (x-y)$.
-  Někdy to budeme zkracovat na $x\equiv_n y$
-  a~pokud bude z~kontextu jasné, modulo čím počítáme, budeme psát prostě $x\equiv y$.
+  Často se také píše
+	$$
+		x\equiv y \pmod n.
+	$$
+  Pokud bude z~kontextu jasné, modulo čím počítáme, budeme psát prostě $x\equiv y$.
 \endlist
 
 \section{Základní aritmetické algoritmy}
@@ -62,21 +65,21 @@ Pečlivější analýzou, která bude brát v~úvahu, jak se během výpočtu vy
 Často se nám bude hodit \em{rozšířený Euklidův algoritmus,} který získáme následovně.
 
 \lemma{
-Všechny mezivýsledky v~Euklidově algoritmu jsou lineární kombinace vstupu~$x$ a~$y$.
-Koeficienty této lineární kombinace můžeme během výpočtu udržovat bez asymptotického
-zpomalení.
+Všechny mezivýsledky v~Euklidově algoritmu jsou lineární kombinace vstupů~$x$ a~$y$.
+Ke každému mezivýsledku můžeme během výpočtu udržovat i koeficienty příslušné lineární
+kombinace, aniž bychom algoritmus asymptoticky zpomalili.
 }
 
 \proof
 Pro základní variantu algoritmu to snadno dokážeme indukcí podle počtu kroků.
 Označíme $x'$ a $y'$ pracovní proměnné algoritmu. Na začátku je $x'=1\cdot x + 0\cdot y$
 a $y'=0\cdot x + 1\cdot y$. Kdykoliv odečteme od $x'=\alpha x + \beta y$ proměnnou
-$y'=\gamma x + \delta y$, získáme $x-y = (\alpha-\gamma)x + (\beta-\delta)y$.
+$y'=\gamma x + \delta y$, získáme $x'-y' = (\alpha-\gamma)x + (\beta-\delta)y$.
 
 Jeden krok vylepšené varianty je zkratkou za více kroků varianty základní.
 Počítáme-li $x'\bmod y'$ pro $x'=\alpha x + \beta y$ a $y'=\gamma x + \delta y$,
 provádíme vlastně $d=\lfloor x'/y'\rfloor$ odečtení $y'$ od~$x'$. Výsledek tedy bude
-$(\alpha-d\gamma)x + (\beta-d\delta y)$.
+$(\alpha-d\gamma)x + (\beta-d\delta)y$.
 \qed
 
 Finální výsledek $\gcd(x,y)$ je ovšem jedním z~mezivýsledků, takže dostáváme:
@@ -92,7 +95,7 @@ koeficienty.}
 V~tomto oddílu připomeneme základní pojmy z~obecné algebry.
 
 \defn{
-\em{Algebra} je tvořena nosnou množinou spolu s~nějakými operacemi. \hbox{$k$-ární} operací nazýváme
+\em{Algebra} je tvořena nosnou množinou spolu s~nějakými \em{operacemi.} \hbox{$k$-ární} operací nazýváme
 funkci, která $k$-ticím prvků z~nosné množiny přiřazuje opět prvky nosné množiny. Nulární operace
 jsou {\I konstanty.}
 }
@@ -113,7 +116,7 @@ $\cdot$ binární operace nad $G$, \1~konstanta, ${}\inv$ unární operace nad~$
 a platí následující axiomy:
   \tightlist{n.}
   \:$(a\cdot b)\cdot c = a\cdot (b\cdot c)$ {\quad \I (asociativita)}
-  \:$a\cdot \1 = a$ {\quad \I (prvek \/\1 je jednotkový)}
+  \:$a\cdot \1 = \1\cdot a = a$ {\quad \I (prvek \/\1 je jednotkový)}
   \:$a\cdot (a\inv)=(a^{\-1}\cdot a)=\1$ \em{($a\inv$ je prvek inverzní k~$a$)}
   \endlist
 \:V~\em{komutativní grupě} navíc platí $a\cdot b = b\cdot a$ \em{(komutativita)}.
@@ -134,10 +137,10 @@ a platí následující axiomy:
 \:$(\Z,+,0,-)$ (celá čísla spolu s~obvyklým sčítáním, nulou a změnou znaménka) tvoří cyklickou grupu (generátory
 jsou 1 a $-1$).
 \:$(2\Z,+,0,-)$ (sudá celá čísla spolu s~obvyklým sčítáním, nulou a změnou znaménka) tvoří podgrupu předchozí grupy,
-která je také cyklická (rozmyslete si, že každá podgrupa cyklické grupy je cyklická),
+která je také cyklická (rozmyslete si, že každá podgrupa cyklické grupy je cyklická).
 \:$(\Z_n,+_{\bmod n},0,-)$ (čísla 0, 1, \dots, $n-1$ spolu se sčítáním modulo~$n$, nulou a změnou
-znaménka) tvoří cyklickou grupu (generátorem je třeba~1; které jsou další?),
-\:$({\bb Q},\cdot,1,?)$ (racionální čísla s~násobením) nemohou tvořit grupu, jelikož k~nule neexistuje inverzní prvek,
+znaménka) tvoří cyklickou grupu (generátorem je třeba~1; které jsou další?).
+\:$({\bb Q},\cdot,1,?)$ (racionální čísla s~násobením) nemohou tvořit grupu, jelikož k~nule neexistuje inverzní prvek.
 \:$({\bb Q}-\{0\},\cdot,1,1/x)$ (racionální čísla bez nuly s~násobením a převrácenou hodnotou) grupu tvoří,
 není cyklická.
 \:$(\Z_n-\{0\},\cdot_{\bmod n},?)$ (čísla 1\dots$n-1$ s~násobením modulo~$n$) pro některá $n$ grupou je,
@@ -171,7 +174,7 @@ Pokud má konečná grupa $G$ nějakou podgrupu $H$, platí $|H| \divs |G|$.
 	\:$(a+b)\cdot c = a\cdot c + b\cdot c$ \quad\em{(distributivita)}.
 	\endlist
 
-	Algebraikové někdy připouští nekomutativní okruhy (s~nekomutativní operací~$+$),
+	Algebraikové někdy připouští nekomutativní okruhy (s~nekomutativní operací~$\cdot$),
 	naše okruhy budou vždy komutativní.
 
 \:Prvek $a\in R$ má \em{multiplikativní inverzi} $a\inv$, pokud platí $a\cdot a\inv = \1$.
@@ -265,7 +268,7 @@ Sčítání, odčítání, násobení i dělení v~tomto tělese můžeme počí
 \subsection{Malá Fermatova a Eulerova věta}
 
 \theoremn{malá Fermatova}{
-Pro každé prvočíslo~$p$ a číslo $x\perp p$ platí $x^{p-1}\equiv 1\pmod p$.
+Pro každé prvočíslo~$p$ a číslo $x\perp p$ platí $x^{p-1}\equiv_p 1$.
 }
 
 \corr{
@@ -276,13 +279,13 @@ Malou Fermatovu větu nebudeme dokazovat přímo, plyne totiž z~následující
 obecnější věty díky tomu, že pro prvočísla platí $\varphi(p) = p-1$.
 
 \theoremn{Eulerova}{
-Pro každé $n>1$ a $x\perp p$ platí $x^{\varphi(n)}\equiv 1\pmod n$.
+Pro každé $n>1$ a $x\perp p$ platí $x^{\varphi(n)}\equiv_n 1$.
 }
 
 \proof
-Uvažme množinu $H = \{x^0, x^1, x^2, \ldots\}$ (násobíme modulo~$n$).
+Uvažme množinu $H = \{x^0, x^1, x^2, \ldots\}$ (umocňujeme modulo~$n$).
 Jelikož~$x$ je invertibilní prvek a ty jsou uzavřené na násobení,
-je~$H$ podmnožinou~$\Zsn$. Dokážeme, že je dokonce podgrupou.
+je~$H$ podmnožinou~$\Zsn$. Dokážeme, že je dokonce podgrupou~$\Zsn$.
 
 Jelikož $x^i$ mohou nabývat jen konečně mnoha hodnot, musí se nějaká
 hodnota zopakovat. Uvažme první takové opakování, tedy nejmenší~$j$
@@ -337,11 +340,11 @@ Zamysleme se nad jejími vlastnostmi:
 \list{n.}
 
 \:Nejprve si všimneme, že $f$ je prostá.
-Pokud $f(x)=f(y)$, pak $x \bmod N = y \bmod N_1$, tedy $N_1 \divs (x-y)$.
+Pokud $f(x)=f(y)$, pak $x \bmod N_1 = y \bmod N_1$, tedy $N_1 \divs (x-y)$.
 Podobně dostaneme $N_2 \divs (x-y)$. Jelikož $N_1\perp N_2$, plyne z~toho
 také $N \divs (x-y)$. To je ovšem pro $x,y\in\Z_N$ možné jen tehdy, když $x=y$.
 
-\:Každá prostá funkce mezi dvěma stejně velkými množinami ovšem musí být bijekce.
+\:Každá prostá funkce mezi dvěma stejně velkými množinami musí být bijekce.
 To znamená, že naše soustava kongruencí má pro každé $a_1$ a~$a_2$ právě
 jedno řešení $f\inv(a_1,a_2)$.
 
@@ -403,13 +406,13 @@ a položíme $u_1=w_1N_2$. Bude platit $f(u_1) = f(w_1N_2) = w_1f(N_2)
 
 \subsection{Eulerova funkce}
 
-Už jsme zavedli funkci~$\varphi(n)$, která udává, kolik prvků ze~$Z_n$ je nesoudělných s~$n$,
+Už jsme zavedli funkci~$\varphi(n)$, která udává, kolik prvků ze~$\Zn$ je nesoudělných s~$n$,
 tedy invertibilních. Nyní se podívejme, jak tuto funkci počítat.
 
 \lemma{Pro Eulerovu funkci~$\varphi$ platí:
 	\list{n.}
-	\:$\varphi(p) = p-1$
-	\:$\varphi(p^k) = (p-1)p^{k-1}$
+	\:$\varphi(p) = p-1$.
+	\:$\varphi(p^k) = (p-1)p^{k-1}$.
 	\:$\varphi(mn) = \varphi(m)\varphi(n)$, kdykoliv $m\perp n$.
 	\endlist
 }
@@ -422,9 +425,9 @@ tedy invertibilních. Nyní se podívejme, jak tuto funkci počítat.
 Zbývá tedy $(1-(1/p))p^k$ nesoudělných, což je rovno uvedenému výrazu.
 
 \:Využijme bijekci $x \mapsto (a\bmod m, a\bmod n)$ z~CRT. Číslo $x$ je nesoudělné s~$mn$
-právě tehdy, když je nesoudělné s~$m$ a současně s~$n$. To je totéž jako že $a$ je nesoudělné s~$m$
-a~současně $b$ nesoudělné s~$n$. Tomu odpovídá $\varphi(m)\cdot\varphi(n)$ dvojic zbytků,
-a~tím pádem stejný počet čísel~$x$.
+právě tehdy, když je nesoudělné s~$m$ a současně s~$n$. To je totéž jako že ve dvojici
+zbytků $(a,b)$ je $a$ nesoudělné s~$m$ a~současně $b$ nesoudělné s~$n$. Takových dvojic
+je $\varphi(m)\cdot\varphi(n)$ a každá odpovídá právě jednomu nesoudělnému~$x$.
 \qeditem
 \endlist
 
@@ -468,7 +471,7 @@ Jak navrhnout pravděpodobnostní test prvočíselnosti? Testujeme-li číslo~$n
 vygenerovat rovnoměrně náhodné $a\in\{2,\ldots,n-1\}$ a otestovat, zda $a$ je dělitelem~$n$.
 Pokud je, odpovíme, že $n$ je složené. Jinak odpovíme, že $n$ je prvočíslo.
 
-Jak dobrý tento test je? Doběhne vždy v~čase $\O(b^3)$.
+Jak dobrý tento test je? Doběhne vždy v~čase $\O(b^2)$.
 Pokud odpoví \Comp, je to vždy pravda.
 Pokud odpoví \Prime, může se mýlit.
 Pro prvočíslo tedy vždy odpoví \Prime, ale pro složené číslo může odpovědět špatně.
@@ -579,12 +582,13 @@ odpovídá správně a složená čísla prohlašuje za prvočísla s~pravděpod
 }
 
 Důkaz je poměrně náročný, naleznete ho například v~knize Computational Number Theory
-od Victora Shoupa. Zjednodušenou verzi (pro konstantu $1/2$ namísto $1/4$) uvádíme níže.
+od Victora Shoupa. Zjednodušenou verzi (pro konstantu $1/2$ namísto $1/4$) uvádíme
+v~oddílu~\secref{rmproof}.
 
 \rem{
 Za~zmínku ještě stojí, že původní Millerův test byl deterministický a pan Miller o~něm
 dokázal, že pokud platí rozšířená Riemannova hypotéza, má každé složené číslo svědka
-(Fermatova či Riemannova), který je jen logaritmicky velký. Zda je to pravda, to se dosud neví,
+(Fermatova či Riemannova), který je jen logaritmicky velký. Zda hypotéza platí, se dosud neví,
 nicméně pan Rabin později nahlédl, že svědků vždy existuje alespoň $3/4\cdot n$,
 a randomizovaný algoritmus byl na~světě.
 }
@@ -595,8 +599,8 @@ a randomizovaný algoritmus byl na~světě.
 generovat náhodná $b$-bitová čísla (začínající na~1), testovat, zda to jsou
 prvočísla, a~opakovat, dokud nedostaneme prvočíslo.
 
-Jak efektivní tento přístup bude? Je známo, že hustota prvočísel okolo~$N$
-je přibližně $1/\ln N$. Tudíž pravděpodobnost, že náhodné $b$-bitové číslo
+Jak efektivní tento přístup bude? Je známo, že hustota prvočísel okolo~$n$
+je přibližně $1/\ln n$. Tudíž pravděpodobnost, že náhodné $b$-bitové číslo
 bude prvočíslem, je $\Theta(1/b)$. Podle lemmatu o~chození se džbánem pro vodu
 tedy na prvočíslo narazíme po průměrně $\Theta(b)$ pokusech.
 
@@ -665,7 +669,7 @@ Ovšem najdeme-li takové~$j$, dostaneme libovolné $g^k$ jako $g^{ijk} \equiv (
 Grupa $\Zsp$ má $\varphi(p-1)$ generátorů.
 }
 
-Generátory budeme často potřebovat v~případech, kdy $p=2q+1$, kde $q$ je také prvočíslo.
+Generátory budeme často potřebovat v~případech, kdy $p=2q+1$ a $q$ je také prvočíslo.
 Tehdy $\varphi(p-1) = \varphi(2q) = \varphi(2)\varphi(q) = 1\cdot (q-1) = q-1 \approx p/2$.
 Generátory tedy tvoří přibližně polovinu prvků~$\Zsp$, takže po průměrně dvou pokusech
 nějaký najdeme.
@@ -756,7 +760,7 @@ Tohle není náhoda:
 \theorem{
 V~každém tělese $\Zp$ má prvek 0 právě jednu odmocninu, $(p-1)/2$ prvků má dvě odmocniny
 (těmto prvkům se říká \em{kvadratické zbytky, QR}) a zbylých $(p-1)/2$ prvků nemá žádnou
-(tak řečené \em{kvadratické nezbytky, non-QR}).
+(\em{kvadratické nezbytky}\foot{Za tento termín se omlouváme. Smysl moc nedává, ale je tradiční.}).
 Zvolíme-li libovolný generátor~$\Zp$, kvadratické zbytky jsou ty prvky, jejichž
 diskrétní logaritmy jsou sudé.
 }
@@ -784,7 +788,7 @@ Pro libovolný generátor~$g$ platí $g^{(p-1)/2} \equiv -1$.
 }
 
 \proof
-$g^{(p-1)/2}$ je odmocnina z~$g^(p-1) \equiv 1$. Odmocniny z~jedničky existují
+$g^{(p-1)/2}$ je odmocnina z~$g^{(p-1)} \equiv 1$. Odmocniny z~jedničky existují
 dvě: 1 a~$-1$. Ovšem 1 to být nemůže, protože by se mocniny generátoru začaly
 opakovat dřív, než by vygenerovaly celou~$\Zsp$.
 \qed
@@ -794,7 +798,7 @@ na kvadratické zbytky:
 
 \theoremn{Eulerovo kriterium}{
 Pro $x\in\Zsp$ je $x^{(p-1)/2}$ rovno~1, pokud $x$ je kvadratický zbytek,
-a~rovno $-1$, pokud není.
+a~jinak rovno $-1$.
 }
 
 \proof
@@ -811,11 +815,11 @@ $$
 Pro $x\equiv g^{2k+1}$ (není kvadratický zbytek), vyjde
 $$
 \left( g^{2k+1} \right) ^{p-1\over 2}
-\equiv g^{2k(p-1)\over 2} \cdot g^{p-1}
+\equiv g^{2k(p-1)\over 2} \cdot g^{p-1\over 2}
 \equiv 1 \cdot (-1)
 \equiv -1.
 $$
-\qed
+\qedmath
 
 \corr{
 Množina všech kvadratických zbytků tvoří podgrupu~$\Zsp$.
@@ -828,7 +832,7 @@ Testovat, zda číslo je kvadratickým zbytkem, lze v~čase $\O(b^3)$.
 \subsection{Výpočet diskrétních odmocnin}
 
 Prvočísla existují ve dvou \uv{příchutích}: $p = 4\ell+1$ a $p = 4\ell+3$. Je překvapivě,
-jak se v~mnoha situacích tyto dva druhy prvočísel chovají různě.
+jak různě se v~mnoha situacích tyto dva druhy prvočísel chovají.
 
 Pokud $p = 4\ell+3$, je výpočet diskrétní odmocniny snadný. Pro každý kvadratický zbytek~$a$ totiž platí
 $$
@@ -840,7 +844,7 @@ $$
 přičemž poslední rovnost získáme z~Eulerova kriteria.
 To znamená, že $a^{(p+1)/4}$ je odmocninou z~$a$.
 
-Pro $p = 4\ell+1$ je situace mnohem složitější. Není známý žádný deterministický
+Pro $p = 4\ell+1$ není známý žádný deterministický
 algoritmus pro výpočet odmocnin. Existuje Tonelliho-Shanksův randomizovaný algoritmus,
 který pracuje v~průměrně polynomiálním čase. Detaily nebudeme potřebovat.
 
@@ -849,18 +853,22 @@ který pracuje v~průměrně polynomiálním čase. Detaily nebudeme potřebovat
 V~$\Zn$ pro složené~$n$ je situace mnohem složitější. Prozkoumejme nejdřív případ,
 $n=pq$ pro dvě různá prvočísla $p$ a~$q$. Aby $x^2$ bylo kongruentní s~nějakým~$a$
 modulo~$n$, musí s~ním být kongruentní i modulo~$p$ a modulo~$q$. Hledáme tedy dvojici
-$(x_1,x_2)$ takovou, že $x_1^2 \equiv_p a$ a $x_2^2 \equiv_q a$. A~podle Čínské věty
-o~zbytcích odpovídá každá taková dvojice právě jednomu $x\Zn$. Pokud jsou $a\bmod p$
-i $a\bmod q$ kvadratické zbytky, získáváme celkem 4 různá~$x$. Pokud některé z~nich
-není kvadratickým zbytkem, žádné~$x$ neexistuje. Ještě se může stát, že jedno z~nich
-vyjde nulové, pak najdeme dvě různá~$x$.
+$(x_1,x_2)$ takovou, že $x_1^2 \equiv_p a_1$ a $x_2^2 \equiv_q a_2$, kde
+$a_1 = a\bmod p$ a $a_2 = a\bmod q$.
+Podle Čínské věty o~zbytcích odpovídá každá taková dvojice právě jedné odmocnině $x\in\Zn$.
+
+Každé~$a_i$ je buďto~0 (pak existuje právě jedno~$x_i$)
+nebo kvadratický zbytek (dvě~$x_i$),
+případně kvadratický nezbytek (žádné~$x_i$).
+V~závislosti na tom existují 0, 2, nebo~4 dvojice $(x_1,x_2)$,
+a~tedy stejný počet odmocnin~$x$.
 
 Toto lze zobecnit pro libovolné složené~$n$ a převést tak odmocňování modulo~$n$
 na odmocňování modulo prvočíselné faktory~$n$, pokud umíme $n$~faktorizovat.
 Žádný efektivní způsob počítání diskrétních odmocnin bez faktorizace~$n$ není znám.
 (Možnost, že $n$ může mít násobné faktory, s~dovolením nebudeme zkoumat.)
 
-\sectionstar{Rozbor Rabinova-Millerova testu}
+\sectionstar[rmproof]{Rozbor Rabinova-Millerova testu}
 
 O~Rabinově-Millerově testu již víme, že prvočíslo vždy prohlásí za~prvočíslo
 a že složené číslo, které není Carmichaelovo, usvědčí s~pravděpodobností alespoň $1/2$.
@@ -872,7 +880,8 @@ Nyní dokážeme, že je to pravda i pro Carmichaelova čísla. Nejprve si přip
 
 \proof
 Uvažujme libovolné $n=p^e$, kde $p$ je prvočíslo a $e>1$.
-Zvolíme $a = 1 + p^{e-1}$ a podle binomické věty spočteme $a^p$ (vše počítáme v~$Z^*_n$, kam~$a$ jistě patří):
+Zvolíme $a = 1 + p^{e-1}$, což je jistě nesoudělné s~$n$.
+Podle binomické věty spočteme $a^p$ (vše počítáme v~$\Zn$, kde je~$a$ invertibilní):
 $$
 a^p \equiv (1+p^{e-1})^p \equiv {p\choose 0}\cdot 1\cdot 1 + {p\choose 1}\cdot 1\cdot p^{e-1} + {p\choose 2}\cdot 1\cdot p^{2(e-1)} + \ldots + {p\choose p}\cdot 1\cdot p^{p(e-1)} \equiv 1
 $$
@@ -881,7 +890,7 @@ Proto také $a^n \equiv (a^p)^e \equiv 1$. Tedy $a^{n-1} \equiv a^{-1} \not\equi
 takže $n$ není Carmichaelovo.
 \qed
 
-Nyní uvažujme, kdy může Rabinův-Millerův test odpovědět, že číslo je prvočíslem. Stane
+Teď uvažujme, kdy může Rabinův-Millerův test odpovědět, že číslo je prvočíslem. Stane
 se tak buď v~kroku~\itemref{rmallone} (všechna $b_0,\ldots,b_t$ jsou jedničky, což nastane, kdykoliv $b_0\equiv 1$)
 nebo v~kroku~\itemref{rmmone} (nějaké $b_i\equiv -1$ a $b_{i+1}\equiv\ldots\equiv b_t\equiv 1$). Rozebereme
 postupně oba případy.
@@ -909,8 +918,9 @@ ani $a^m\equiv_n\nobreak 1$.
 \qed
 
 Nyní se přesuneme ke~kroku~\itemref{rmmone}. Z~předchozího lemmatu víme, že pro některé volby čísla~$a$ v~algoritmu
-je $b_0\not\equiv 1$. Můžeme proto zvolit~$i$ ($0\le i<t$) takové, že $b_{i+1}\equiv a^{2^{i+1}m} \equiv 1$
-pro všechna možná~$a\in\Z_n$, ale $b_i\equiv a^{2^im} \not\equiv 1$ pro alespoň jedno takové~$a$. Jakmile dokážeme,
+je $b_0\not\equiv 1$, ale pro všechna~$a\in\Zsn$ je $b_t\equiv 1$.
+Můžeme proto zvolit~$i$ ($0\le i<t$) takové, že $b_{i+1}\equiv a^{2^{i+1}m} \equiv 1$
+pro všechna možná~$a\in\Zsn$, ale $b_i\equiv a^{2^im} \not\equiv 1$ pro alespoň jedno takové~$a$. Jakmile dokážeme,
 že $b_i\not\equiv\pm 1$ pro alespoň polovinu z~možných~$a$, máme vyhráno.
 
 \lemma{
@@ -947,15 +957,15 @@ tak prvočíslo za~složené. Bude fungovat následovně:
 \:Pokud pro nějaké~$i$ je $r_i\not\equiv\pm1$, odpovíme \Comp.
 \:Pokud pro všechna~$i$ je $r_i=1$, odpovíme \Comp.
 \:Jinak odpovíme \Prime.
-\endlist
+\endalgo
 
 Nejprve si všimneme, že algoritmus běží v~polynomiálním čase. Největší společné dělitele
 a mocniny modulo~$n$ už polynomiálně umíme počítat, jediný problematický krok je ten první.
 V~něm ale stačí zkoušet všechny možné exponenty (těch je $\O(\log n)=\O(b)$, jelikož základ je alespoň~$2$)
-a pro každý exponent hledat pomocí půlení intervalu odmocninu (opět $\O(b)$ kroků).
+a pro každý exponent binárně vyhledávat odmocninu (opět $\O(b)$ kroků).
 
 Nyní nahlédněme, jak algoritmus probíhá pro prvočísla. První ani třetí krok prvočíslo neodmítnou,
-pátý také ne, jediný problém může nastat v~šestém kroku. Již víme, že $r_i=1$ právě tehdy, má-li $a_i$ druhou odmocninu,
+pátý také ne, jediný problém může nastat v~šestém kroku. Podle Eulerova kriteria je $r_i=1$ právě tehdy, má-li $a_i$ druhou odmocninu,
 a~to nastane s~pravděpodobností $1/2$. Šestý krok tedy odpoví {\csc složené} jen tehdy,
 když jsou všechna $a_i$ odmocnitelná, pravděpodobnost čehož je $1/2^t$.
 
@@ -972,21 +982,21 @@ obsahuje nejvýše $\vert \Z_n^*\vert/2$ prvků.
 \proof
 Podobně jako u~Fermatova testu:
 Všimneme si, že $S_n$ je podgrupa $\Z_n^*$, takže zbývá dokázat, že je to podgrupa netriviální,
-a použít Lagrangeovu větu. Najdeme číslo~$b$, které nebude ležet v~$S_n$.
+a použít Lagrangeovu větu. Najdeme číslo~$c$, které nebude ležet v~$S_n$.
 
 Nechť $n$ má prvočíselný rozklad $p_1^{k_1}\cdot\ldots\cdot p_s^{k_s}$. Již víme, že $s\ge 2$. Označme
 $q=p_1^{k_1}$ a $m=n/q$. Jelikož $q\divs n$ i $m\divs n$, musí být pro každý prvek
 $x\in S_n$ jak $x^{(n-1)/2}\equiv_q \pm1$, tak $x^{(n-1)/2}\equiv_m \pm1$ a znaménka obou zbytků jsou stejná.
 
-Kýžené číslo~$b$ zvolíme tak, aby pro něj platilo
-$b\equiv_q a$ a současně $b\equiv_m 1$ (Čínská věta o~zbytcích nám jeho existenci zaručuje, jelikož $q\perp m$).
+Kýžené číslo~$c$ zvolíme tak, aby pro něj platilo
+$c\equiv_q a$ a současně $c\equiv_m 1$ (Čínská věta o~zbytcích nám jeho existenci zaručuje, jelikož $q\perp m$).
 Snadno ověříme, že platí:
 $$\eqalign{
-b^{(n-1)/2} &\equiv_q a^{(n-1)/2} \equiv_q -1, \cr
-b^{(n-1)/2} &\equiv_m 1. \cr
+c^{(n-1)/2} &\equiv_q a^{(n-1)/2} \equiv_q -1, \cr
+c^{(n-1)/2} &\equiv_m 1. \cr
 }$$
-Takové $b$ ovšem neleží v~$S_n$, protože jak už jsme pozorovali, pro každý prvek z~$S_n$
-jsou zbytky po~dělení $q$ a $m$ stejné a my jsme si~$b$ zvolili tak, aby byly různé.
+Takové $c$ ovšem neleží v~$S_n$, protože jak už jsme pozorovali, pro každý prvek z~$S_n$
+jsou zbytky po~dělení $q$ a $m$ stejné, zatímco jsme si~$c$ zvolili tak, aby zbytky byly různé.
 \qed
 
 Náš algoritmus tudíž selže jedině tehdy, když $a_2,\ldots,a_t$ padnou všechna do~$S_n$,
diff --git a/tex/adsmac.tex b/tex/adsmac.tex
index 0a53e75..786e813 100644
--- a/tex/adsmac.tex
+++ b/tex/adsmac.tex
@@ -156,7 +156,7 @@
 \def\Zp{{\bb Z}_p}
 \def\Zsp{{\bb Z}^*_p}
 \def\Zn{{\bb Z}_n}
-\def\Zsn{{\bb Z}^*_p}
+\def\Zsn{{\bb Z}^*_n}
 \def\divs{\mathbin\backslash}
 \def\inv{^{-1}}
 
-- 
GitLab