Ein schneller Algorithmus zur Berechnung des

Werbung
Ein schneller Algorithmus zur Berechnung
des quartischen Restsymbols
Diplomarbeit
André Weilert
Betreuer: Prof. Dr. J. Franke
Rheinische Friedrich-Wilhelms-Universität Bonn
Mathematisches Institut
12. Dezember 1999
Inhaltsverzeichnis
1 Einleitung
1.1 Themenvorstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
1
2
2 Grundlagen
5
2.1 Technik des kontrollierten Euklidabstiegs . . . . . . . . . . . . . . . . . . . 5
2.2 Das Reziprozitätsgesetz in Z und ein schneller Algorithmus zur Berechnung
des Jacobi-Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Das
3.1
3.2
3.3
quartische Reziprozitätsgesetz
21
Klassische Formulierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Exkurs: Hilbert-Symbol und Reziprozitätsgesetze . . . . . . . . . . . . . . 25
Alternative Formulierung des quartischen Reziprozitätsgesetzes . . . . . . . 28
4 Algorithmus zur Berechnung des quartischen Restsymbols
35
A Implementierung des Algorithmus
37
A.1 TP-Quellcode der Routine QUARTIC . . . . . . . . . . . . . . . . . . . . . 37
A.2 Laufzeitmessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
B Elementarer Beweis des Theorems 3.15
45
Literaturverzeichnis
57
i
ii
Symboltabelle
Notation
Bedeutung
Z
N
Q
R
C
Integritätsbereich der ganzen Zahlen
Monoid der natürlichen Zahlen: N = {0, 1, 2, . . . }
Körper der rationalen Zahlen
Körper der reellen Zahlen
Körper der komplexen Zahlen
Gruppe der Einheiten eines Rings R
a|b
„a teilt b“ , wobei a, b ∈ R, a 6= 0, Elemente eines faktoriellen
Rings R sind
„a ist zu b assoziiert“ , d. h. a, b ∈ R sind Ringelemente und
unterscheiden sich nur um eine Einheit ε ∈ R× : a = εb
gewöhnlicher Absolutbetrag
auf C : Für z = x + iy ∈ C mit
p
2
2
x, y ∈ R ist |z| = x + y
R×
a∼b
|·|
log
gcd(a, b)
size(x)
µ(n)
y
x
oder (y/x)
h i
y
x oder [y/x]
(x, y)λ
Logarithmus zur Basis 2
ein größter gemeinsamer Teiler im faktoriellen Integritätsbereich
R der Ringelemente a, b ∈ R; es gilt aR + bR = gcd(a, b)R.
Notationsmißbrauch: Wir betrachten im folgenden nur die
nullteilerfreien Hauptidealringe R = Z oder R = Z[i] und
benutzen die Notation „gcd(a, b)“ für einen beliebigen Erzeuger
des Hauptideals aR + bR (bis auf Assoziierte eindeutig)
für x ∈ K, K ein algebraischer Zahlkörper, ist size(x) die Anzahl
der Bits, die benötigt werden, um x binär kodiert in üblicher
Weise abzuspeichern, d. h. es werden die [K : Q] rationalen
Koeffizienten zu einer fest gewählten (kanonischen) Basis von K|Q
abgespeichert
(gute) obere Schranke für die Bitkomplexität der Multiplikation
zweier ganzer Zahlen x, y ∈ Z, die jeweils betragsmäßig durch 2n
beschränkt sind
Jacobi-Symbol, x, y ∈ Z und x ungerade
quartisches Restsymbol, x, y ∈ Z[i], (1 + i) ∤ x
Hilbert-Symbol zum Kreisteilungskörper Q(i)|Q an der Stelle λ
iii
iv
Kapitel 1
Einleitung
1.1
Themenvorstellung
Thema der vorliegenden Arbeit ist die Entwicklung eines neuen Algorithmus zur asymptotisch schnellen Berechnung des quartischen Restsymbols. Der hier vorgestellte Algorithmus benutzt dazu eine Variante zur asymptotisch schnellen Berechnung des größten
gemeinsamen Teilers (g.g.T.) in Z[i], bei der ein Euklidabstieg zum g.g.T. mit der zugehörigen Quotientensequenz der Euklidschritte berechnet wird. Dieser g.g.T.-Algorithmus
wurde detailliert in [Wei99] vorgestellt.
Bei gegebenen Gaußschen Zahlen x, y ∈ Z[i], deren Real- und Imaginärteile im Betrag
durch 2n beschränkt ist, benötigt der erwähnte asymptotisch schnelle g.g.T.-Algorithmus
in Z[i] eine Laufzeit von O(µ(n) log n), wobei µ(n) eine (gute) obere Schranke für die
Laufzeit der Multiplikation zweier ganzer Zahlen vom Betrag kleiner 2n bezeichnet. (Nach
[SS71] ist µ(n) ≤ O(n log n log log n); und dieses theoretische Resultat erlangt auch praktische Bedeutung, wie eine TP-Implementierung dieser Ganzzahlmultiplikation SML zeigt;
siehe [SGV94].) Bei der g.g.T.-Berechnung werden bei jedem Euklidschritt xj−1 = qj xj +
xj+1 die berechneten Quotienten qj gespeichert, um damit dann schnell das quartische
Restsymbol [y/x] zu berechnen. Die Laufzeit des Algorithmus zur Berechnung des quartischen Restsymbols ist, abgesehen von der dazu notwendigen g.g.T.-Berechnung selbst,
linear in der Größe des Speicherbedarfs der Quotientensequenz qj , so daß die Laufzeit zur
Berechnung des quartischen Restsymbols insgesamt durch O(µ(n) log n) beschränkt ist.
1.2
Aufbau der Arbeit
In Kapitel 2 werden wir darstellen, wie man asymptotisch schnell den g.g.T. zweier ganzer
Zahlen bzw. zweier Gaußscher Zahlen mittels der Technik des kontrollierten Euklidabstiegs berechnen kann. Dabei werden wir die Theoreme und zentralen Beweise angeben, die aber in der dargestellten Form auch schon bei Schönhage [Sch87] für die g.g.T.Berechnung in Z und bei Weilert [Wei99] für die g.g.T.-Berechnung in Z[i] zu finden sind.
Ausgehend von einer solchen schnellen g.g.T.-Berechnung in Z zu den Operanden x, y ∈ Z
kann man dann das Jacobi-Symbol (y/x) schnell berechnen, was wir in Abschnitt 2.2 kurz
darstellen werden. Dieses Resultat ist auch schon in [SGV94, 7.2.34] angegeben.
In Kapitel 3 werden wir dann das quartische Reziprozitätsgesetz in seiner klassischen
Formulierung vorstellen. Anschließend führen wir das Hilbert-Symbol ein, um damit eine
1
2
1
Einleitung
alternative Formulierung des quartischen Reziprozitätsgesetzes angeben zu können, die
analog zur schnellen Berechnung des Jacobi-Symbols eine Grundlage für die Berechnung
des quartischen Restsymbols darstellt.
Darauf aufbauend können wir in Kapitel 4 unseren schnellen Algorithmus zur Berechnung des quartischen Restsymbols darstellen. Da die alternative Formulierung des quartischen Reziprozitätsgesetzes unmittelbar mit Euklidschritten in Z[i] zusammenhängt, ist
in dieser Form der Zusammenhang zur schnellen g.g.T.-Berechnung in Z[i] unmittelbar
ersichtlich. In dem vorgestellten schnellen Algorithmus zur Berechnung des quartischen
Restsymbols [y/x] wird zuerst der g.g.T. von x und y in Z[i] berechnet, was einen Großteil der Gesamtlaufzeit zur Berechnung von [y/x] ausmacht. Um insgesamt einen besseren
Einblick in die Funktionsweise dieses Algorithmus zu erhalten, haben wir vorher in Abschnitt 2.1.3 die schnelle g.g.T.-Berechnung in Z[i] ausführlich vorgestellt.
In Anhang A geben wir eine TP-Implementierung unseres Algorithmus zur Berechnung
des quartischen Restsymbols an und diskutieren deren Laufzeitverhalten, welches von
der Laufzeit zur g.g.T.-Berechnung in Z[i] dominiert wird. Die entsprechende Implementierung der benutzten asymptotisch schnellen g.g.T.-Berechnung in Z[i] ist bei Weilert [Wei99, Anhang A] im Detail dargestellt.
Abschließend geben wir in Anhang B noch einen alternativen Beweis für Theorem 3.15 an,
welches eine alternative Formulierung des quartischen Reziprozitätsgesetzes ist. Hierbei
werden keine umfangreichen zahlentheoretischen Kenntnisse wie z. B. das Hilbert-Symbol
vorausgesetzt, statt dessen werden einige elementare Rechnungen durchgeführt.
1.3
Notation
Definition 1.1
Der Ring der Gaußschen Zahlen Z[i] ist die Menge
C induzierten Addition bzw. Multiplikation.
Bemerkung.
Z[i] = Z + iZ mit der von Q(i) bzw.
Z[i] ist der Ring der ganzen algebraischen Zahlen des Zahlkörpers Q(i).
Konvention.
In dieser Arbeit bezeichnen wir zu einer komplexen Zahl z ∈ C mit z0 den Realteil und
mit z1 den Imaginärteil von z.
An den Stellen, wo wir einen Index bei Variablen benutzen, um Elemente einer (endlichen)
Folge zu bezeichnen, ist dieses aus dem Kontext ersichtlich und nicht mit oben genannter
Konvention zu verwechseln!
Definition 1.2
Sei z ∈ Q(i). Dann ist die algebraische Norm der Körpererweiterung Q(i)|Q von z definiert
als
N(z) := NQ(i)|Q (z) = zz̄ = z02 + z12 ,
Bemerkung. Sei z ∈ Z[i]. Dann gilt:
z = z0 + iz1 , z0 , z1 ∈ Q.
(i) N(z) ∈ N.
(ii) N(z) = 0 ⇐⇒ z = 0.
(iii) N(z) = 1 ⇐⇒ z ∈ Z[i]× = {1, i, −1, −i}.
1.3
Notation
3
Bemerkung. Der Ganzzahlring eines algebraischen Zahlkörpers ist ein Dedekindring,
d. h. ein noetherscher, ganz abgeschlossener Integritätsbereich, in dem jedes von 0 verschiedene Primideal maximal ist. Insbesondere ist jedes von 0 verschiedene Ideal eindeutig
als Produkt endlich vieler Primideale darstellbar.
Definition 1.3
Q
Sei K ein Zahlkörper, sei a 6= 0 ein gebrochenes Ideal. Des weiteren sei a = p pvp die
eindeutige Produktdarstellung (Zerlegung in Primideale) mit vp ∈ Z und vp = 0 für fast
alle p.
Die Bewertung von a bzgl. p ist definiert als
(
vp wenn a 6= (0),
vp(a) :=
∞ wenn a = (0).
Bemerkung. Z[i] ist ein Dedekindring. Insbesondere ist Z[i] sogar ein euklidischer
Ring, also auch ein Hauptidealring (Q(i) hat Klassenzahl 1) sowie ZPE-Ring.
4
1
Einleitung
Kapitel 2
Grundlagen
2.1
Technik des kontrollierten Euklidabstiegs
In diesem Abschnitt werden wir jeweils einen Algorithmus zur asymptotisch schnellen
g.g.T.-Berechnung in Z und in Z[i] angeben. Solch schnelle g.g.T.-Berechnung in Z stellt
die Grundlage eines schnellen Algorithmus zur Berechnung des Jacobi-Symbols dar. Des
weiteren läßt sich die verwendete Technik zur schnellen g.g.T.-Berechnung in Z auch für
eine schnelle g.g.T.-Berechnung in Z[i] verallgemeinern, wie wir darstellen werden. Solch
schneller g.g.T.-Algorithmus in Z[i] wird dann als Teil des Algorithmus zur schnellen
Berechnung des quartischen Restsymbols benutzt werden (siehe Kapitel 4).
Da schnelle g.g.T.-Algorithmen nicht Hauptgegenstand dieser Arbeit sind, stellen wir in
diesem Abschnitt 2.1 die wichtigesten Ideen und Resultate (inkl. Beweise) kurz dar,
wobei wir die Darstellung der Abschnitte 2.1.2 und 2.1.3 aus [Wei99, Kapitel 3] direkt
übernommen haben.1
2.1.1
G.g.T.-Berechnung mit Kofaktoren
Sei R ein euklidischer Ring bzgl. | · |, also insbesondere R = Z oder R = Z[i] und
| · | der Absolutbetrag auf C. Seien x0 , x1 ∈ R. Ein Euklidschritt zu xj−1 , xj ∈ R mit
|xj−1 | ≥ |xj | > 0 ist die Berechnung von qj , xj+1 ∈ R (nicht notwendigerweise eindeutig),
so daß
xj−1 = qj ·xj + xj+1
und |xj+1 | < |xj |.
Zu jedem solchen Euklidschritt erhält man eine Matrix Qj ∈ R2×2 als
xj
qj 1
xj−1
Qj =
,
= Qj ·
,
det Qj = −1.
1 0
xj
xj+1
Setzt man nun M0 := I und Mj = Qj ·Mj−1 für j ≥ 1, so erhält man
x0
xj
= Mj ·
.
x1
xj+1
1
(2.1.1)
(2.1.2)
Wir haben lediglich Verweise angepaßt und einige Details aus [Wei99, Kapitel 3] ausgelassen, die über
die g.g.T.-Berechnung in Z und Z[i] hinausweisen.
5
6
2
Grundlagen
Bezeichnet man die Koeffizienten der invertierbaren Matrix Mj mit
uj+1 uj
Mj =
,
vj+1 vj
(2.1.3)
so ist u0 = 0, u1 = 1, uj+1 = qj uj + uj−1 und v0 = 1, v1 = 0, vj+1 = qj vj +vj−1 . Man erhält
die Darstellung xj = (−1)j (vj x0 − uj x1 ) aus (2.1.2), wobei uj , vj als Kofaktoren von xj zu
x0 , x1 genannt werden.
Die Koeffizienten dieser Kofaktormatrix Mj lassen sich im Fall R = Z oder R = Z[i] bzgl.
| · | abschätzen. Dieses ist wichtig für die asymptotisch schnellen g.g.T.-Algorithmen in Z
und Z[i], die wir nun vorstellen werden.
2.1.2
Asymptotisch schnelle g.g.T.-Berechnung in
Z
Die Grundlage der vorgestellten asymptotisch schnellen g.g.T.-Berechnung bildet Schönhages Technik des kontrollierten Euklidabstiegs. Dabei rechnet man mit Operanden
x, y ∈ Z Euklidschritte xj−1 = qj xj + xj+1 , bei denen aber sichergestellt wird, daß der
Rest xj+1 bzgl. | · | jeweils größer als eine fest vorgegebene Schranke s bleibt. Somit
können die durch eine Folge von solch kontrollierten Euklidschritten berechneten Operanden nicht zu klein werden. Dadurch wird eine rekursive Verwendung des kontrollierten
Euklidabstiegs möglich, wobei möglichst viele Schritte des kontrollierten Euklidabstiegs
nur mit Anfangsstücken der Operanden gerechnet werden. Konkret läßt sich diese Idee
wie folgt darstellen:
In Z können wir o. E. x ≥ y > 0 annehmen. Des weiteren seien 2L ≤ x, y < 2L+N . Um nun
einen Euklidabstieg von x, y zu kleineren Operanden zu berechnen, welche aber jedenfalls
größer als 2L sind, deren Differenz jedoch im Betrag kleiner 2L ist, genügt es, einen Abstieg
um N Bits zu berechnen, da x, y durch 2L+N beschränkt sind. Dieses kann man nun aber
derart machen, daß man rekursiv zwei Abstiege um jeweils ungefähr N/2 Bits berechnet,
wobei man bei hinreichend langen Operanden nur Anfangsstücke geeigneter Größe der
Operanden zur Berechnung eines Euklidabstiegs benutzt, um abschließend (nach jedem
solchen Abstieg zu vorgegebenen Größenparametern) diese Euklidschritte wieder auf die
ganzen Operanden mittels sog. Kofaktoren (Matrix M) zu übertragen.
Eine theoretische Grundlage zum kontrollierten Euklidabstieg in Z liefert der folgende
Satz 2.1 (Schönhage, [Wei99, Satz 3.1])
Zu gegebenen Zahlen x, y, s ∈ Z mit x, y ≥ s > 0 existieren Zahlen u, v ∈
unimodularen 2 × 2-Matrix
a b
x
u
M=
, so daß
= M·
,
c d
y
v
Z mit einer
eindeutig bestimmt durch die Bedingungen
det M = 1,
a, b, c, d ≥ 0,
u, v ≥ s und |u − v| < s.
Darüber hinaus erfüllen die Koeffizienten der Matrix M die Ungleichungen
a+b≤
x
,
s
y
c+d≤ .
s
(2.1.4)
2.1
Technik des kontrollierten Euklidabstiegs
7
Jede solche Matrix M ist eindeutig darstellbar als Produkt der erzeugenden Matrizen
1 0
1 1
.
und L :=
H :=
1 1
0 1
Beweis. [Sch87, Theorem 2.1]
Algorithmus 2.1 Kontrollierter Euklidabstieg in Z
algorithm DESCENT(x, y, L)
Zu gegebenen x, y, L ∈ Z≥0 mit x, y ≥ 2L berechnet DESCENT Zahlen u, v und eine
L
invertierbare Matrix M ∈ Z2×2
≥0 wie in Satz 2.1, so daß u, v ≥ 2 > |u − v| sind.
D1: if min(x, y) < 2L+1 then
u := x, v := y, M := I;
else
D2:
Finde das minimale N ∈ N mit x, y < 2L+N ;
if L ≤ N then T := 0, L1 := L;
\\ keine Zerlegung
else T := L − (N − 1), L1 := N,
zerlege x = x0 + x1 ·2T ,
\\ Zerlegung 0 ≤ x0 , y0 < 2T
y = y0 + y1 ·2T ,
und setze x := x1 , y := y1 ;
D3:
H := L1 + ⌊N/2⌋;
if min(x, y) < 2H then
u′ := x, v ′ := y, M := I;
else
D4:
(u′ , v ′ , M) := DESCENT(x, y, H);
\\ |u′ − v ′ | < 2H
D5:
while |u′ − v ′ | ≥ 2L1 and max(u′ , v ′ ) ≥ 2H do \\ maximal 2 Schleifendurchläufe
Berechne einen Euklidschritt zu u′ , v ′
unter Beibehaltung von u′ , v ′ ≥ 2L1
und entsprechender Modifikation von M;
if |u′ − v ′ | < 2L1 then
u := u′ , v := v ′ ;
else
D6:
(u, v, M ′ ) := DESCENT(u′ , v ′ , L1 );
\\ |u − v| < 2L1
D7:
M := M·M ′
D8:
if T > 0 then
u := u·2T + d·x0 − b·y0 ,
v := v·2T − c·x0 +a·y0 ,
a b
d −b
−1
;
\\ M =
wobei M =
−c a
c d
D9: while |u − v| ≥ 2L do
\\ maximal 3 Schleifendurchläufe
Berechne einen Euklidschritt zu u, v
unter Beibehaltung von u, v ≥ 2L
und entsprechender Modifikation von M;
D10: return (u, v, M).
8
2
Grundlagen
Dieser Algorithmus 2.1 zerlegt die Eingabedaten x, y ∈ Z mit 2L ≤ x, y < 2L+N in Anfangsstücke x1 , y1 und Endstücke 0 ≤ x0 , y0 < 2T (für ein geeignetes T , insbesondere erfolgt bei T = 0 keine solche Zerlegung), so daß gilt:
x = x0 + 2T x1 ,
y = y 0 + 2T y 1 .
Dann ist
2L−T ≤ x1 , y1 < 2L+N −T .
Nun ist der Abstieg von diesen Anfangsstücken um ca. N Bits zu kleineren Zahlen
≥ 2L−T zu berechnen. Dazu werden zwei Abstiege um jeweils N/2 Bits berechnet, wobei
die Kofaktoren entsprechend zusammengefügt werden, als ob man einen Abstieg um N
Bits berechnet hätte. Mittels dieser Kofaktoren werden dann auch die Endstücke x0 , y0
in D8 modifiziert, so daß man damit einen Abstieg zu den Eingangsgrößen x, y berechnet
hat.
Abbildung 2.1: Euklidabstieg in
x=
y=
Z : Aufteilung mit Endstücken
· · · · · · · · · x0 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · x1 · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · ·y0 · · · · · · · · · · · · · · · · · · · · · · · · · · · y1 · · · · · · · · · · · · · · · · · ·
T
L1 = N
L
N −1
N
Bemerkung. Die Laufzeit für die Berechnung des g.g.T. mittels kontrollierten Euklidabstiegs ergibt sich als O(µ(n) log n) für Zahlen x, y ∈ Z mit size(x), size(y) ≤ n, da der
Algorithmus DESCENT(x, y, 0) den g.g.T. von x und y berechnet und die Anzahl der
Iterationen in den beiden while-Schleifen D5 und D9 beschränkt ist. (Vorlesung Prof.
Schönhage, Computer-Algebra I, Sommersemester 1996 bzw. Manuskript [Sch87].)
Bemerkung. Die Technik des kontrollierten Euklidabstiegs hat Schönhage [Sch91] auch
übertragen auf die schnelle Reduktion binärer quadratischer Formen. Damit erhält er das
Resultat, daß die Reduktion von binären quadratischen Formen ax2 + bxy + cy 2 mit durch
2n beschränkten Ganzzahlkoeffizienten a, b, c in Zeit O(µ(n) log n) möglich ist.
2.1.3
Verallgemeinerung der Technik des kontrollierten Euklidabstiegs auf Z[i]
Bei der Berechnung eines Euklidabstiegs in Z[i] kann bei jedem Euklidschritt xj−1
√ = qj xj +
xj+1 ein Rest xj+1 berechnet werden, der bzgl. |·| um mindestens den Faktor 1/ 2 kleiner
als |xj | ist. Ein solcher Euklidschritt wird als least-remainder-Euklidschritt bezeichnet.
Berechnet man nun zu x0 , x1 ∈ Z[i] insgesamt k least-remainder-Euklidschritte und ist
xk+1 = 0, so sind die Koeffizienten der Kofaktormatrix aus (2.1.2) beschränkt.
2.1
Technik des kontrollierten Euklidabstiegs
9
Proposition 2.2 ([Wei99, Proposition 2.30])
Für 0 ≤ j ≤ k erhalten wir die folgende Größenbeschränkung der Kofaktoren (Notation
wie in Abschnitt 2.1.1, R = Z[i]):
√
|vj+1 | ≤ (2 + 2)·|x1 /xj |,
√
|uj+1| ≤ (3 + 2)·|x0 /xj |.
Beweis. [CC76, Lemma 14, Lemma 15]
Um nun die Technik des kontrollierten Euklidabstiegs von Z insbesondere auf den euklidischen Ring Z[i] zu verallgemeinern, benötigen wir in Z[i] analoge Bedingungen zu
x, y ≥ 0 sowie zu den Bedingungen in (2.1.4) an u, v aus Satz 2.1.
Während in Z die Positivität einer Zahl durch Multiplikation mit einer Einheit −1, +1 erreicht werden kann, ist ein ähnliches Kriterium in anderen Ringen weit weniger natürlich.
Deshalb verzichteten wir auf eine entsprechende „Normierung“ mit gewissen Eigenschaften (z. B. Festlegung auf einen Quadranten) bei x, y, u, v. Andererseits ergibt sich bei der
Übertragung der Bedingung gZ (u, v) := |u − v| < s nun das Problem, daß man algorithmisch in endlich vielen Schritten die Größenbeschränkung g(u, v) < s erfüllen muß, wobei
g mit der Euklidfunktion zusammenhängt. Da wir bei u, v auf eine Normierung verzichtet
haben, gestaltete sich die Wahl von g in Z[i] schwieriger als in Z. Wir haben im folgenden
Satz 2.3 gZ[i] gewählt als
gZ[i] (u, v) := min(|u − v|, |u + v|).
Insbesondere benutzen wir hierbei keine Eigenschaften der Einheitengruppe des euklidischen Rings Z[i]. Aufgrund dieser Überlegungen erhalten wir einen Satz für den kontrollierten Euklidabstieg in Z[i] in der vorliegenden Form:
Satz 2.3 ([Wei99, Satz 3.2])
Seien x, y ∈ Z[i] und s ∈ N, s ≥ 1, mit |x|, |y| ≥ s. Dann existieren u, v ∈ Z[i] und eine
Matrix M ∈ Z[i]2×2 ,
a b
x
u
M=
, so daß
= M·
,
(2.1.5)
c d
y
v
wobei
det M ∈ {−1, +1} und 2 max(|x|, |y|) > |u|, |v| ≥ s > min(|u + v|, |u − v|)
(2.1.6)
gilt und die Koeffizienten der Matrix M in folgender Weise beschränkt sind:
max(|x|, |y|)
5
.
|a|, |b|, |c|, |d| ≤ 4 + √ ·
s
2
(2.1.7)
Bemerkung. Den Beweis dieses für den schnellen g.g.T.-Algorithmus zentralen Satzes
werden wir konstruktiv führen, da wir später im Algorithmus genau so wie im Beweis
Reduktionsschritte berechnen werden. Ein reiner Existenzbeweis hätte für die Theorie
genügt, hätte aber eine detaillierte Betrachtung der Berechnungsmöglichkeiten für die
Reduktionsschritte an anderer Stelle erforderlich gemacht.
10
2
Grundlagen
Beweis. Sei o. E. |x| ≥ |y| ≥ s > 0. Wir setzen zunächst u := x, v := y und M := I.
Wenn nun
(2.1.8)
min(|u − v|, |u + v|) < s
ist, haben wir eine Darstellung wie in (2.1.5) ermittelt, bei der (2.1.6) erfüllt ist. Anderenfalls ist
(2.1.9)
min(|u − v|, |u + v|) ≥ s,
und wir berechnen einen least-remainder-Euklidschritt zu den Operanden u, v :
1
u = qv + r mit |r| ≤ √ |v| < |v| ≤ |u|.
2
(2.1.10)
Ist dabei |r| ≥ s, so setzen wir
q 1
M := M·
;
1 0
und benennen die Variablen wie folgt um: uneu := v, vneu := r. Dann gilt:
uneu
x
, max(|x|, |y|) > |uneu |, |vneu | ≥ s.
= M·
vneu
y
Sofern nun bei diesen neu berechneten Operanden (nun wieder als u, v bezeichnet) Bedingung (2.1.9) immer noch erfüllt ist, berechnen wir weitere Euklidschritte wie gerade
spezifiziert. Da Z[i] euklidisch ist, ist die Menge {|z| : z ∈ Z[i], |z| < |y|} endlich und
enthält die Null. Also muß nach endlich vielen Schritten in (2.1.10) ein Rest |r| < s auftreten. Falls dann |r − v| ≥ s ist, setze ε := −1. Anderenfalls ist |r − v| < s ≤ |v|. Dann
ist aber
|r + v| = |2v − (v − r)| ≥ 2|v| − |v − r| ≥ |v| ≥ s.
| {z }
≤|v|
Setze in diesem Fall ε := 1. Es schreibt sich (2.1.10) als
u = (q − ε)v + (r + εv),
wobei ε ∈ {−1, +1} so gewählt wurde, daß |r + εv| ≥ s ist (siehe Abbildung 2.2). Dann
setzen wir
q−ε 1
M := M·
1
0
und benennen die Variablen wie folgt um: uneu := v, vneu := r + εv. Es gilt:
1
|uneu | = |valt |, |vneu | = |r + εvalt | ≤ 1 + √ |valt | < 2|valt |;
2
2.1
Technik des kontrollierten Euklidabstiegs
11
und da |ualt|, |valt | ≤ max(|x|, |y|) waren, sind |uneu |, |vneu | < 2 max(|x|, |y|). Des weiteren
ist
x
uneu
.
= M·
y
vneu
Bemerkung: Ein weiterer Euklidschritt zu u = uneu , v = vneu wird dann aber nicht mehr
gerechnet, da
|u − εv| = |r + εvalt − εvalt | = |r| < s
ist, so daß damit Bedingung (2.1.8) erfüllt ist, d. h. wir haben eine geeignete Darstellung
wie in (2.1.5) berechnet, bei der die Bedingungen aus (2.1.6) erfüllt sind.
Bezeichnung: Solch eine Modifikation des Rests r zu r + εv bezeichnen wir als Größenanpassung nach einem Euklidschritt.
Abbildung 2.2: Größenanpassung nach einem Euklidschritt
6
1
r
k
-
)
r−y
r+y
1y
s
Wir berechnen also insgesamt k Euklidschritte, wobei lediglich beim k-ten Euklidschritt
evtl. eine Größenanpassung vorgenommen wurde. Zu jedem berechneten Quotienten qj ,
1 ≤ j ≤ k, bei solch einem Euklidschritt erhalten wir eine Matrix
q̂j 1
Q̂j =
,
1 0
wobei q̂j := qj für 1 ≤ j < k und q̂k = qk − ε mit ε ∈ {−1, 0, +1} wie oben ist. Dabei ist
ε = 0 äquivalent dazu, daß im k-ten Euklidschritt keine Größenanpassung vorgenommen
worden ist.
Nun ist die Matrix M ein Produkt der Matrizen Q̂j , 1 ≤ j ≤ k. Da det Q̂j = −1 ist,
ist folglich det M = (−1)k . Es ist noch die Größenabschätzung für die Koeffizienten der
berechneten Matrix M zu zeigen. Für 1 ≤ j < k ist Q̂j = Qj die Matrix aus (2.1.1).
x
u
= Q1 ·Q2 · . . . ·Qk−1 ·Q̂k ·
.
y
v
12
2
Grundlagen
Das Produkt der Matrizen Q1 · . . . ·Qk−1 ist nach (2.1.3) die Matrix
uk uk−1
,
Mk−1 =
vk vk−1
deren Koeffizienten in Proposition 2.2 abgeschätzt wurden. Nach dem k-ten Euklidschritt
wird zur Berechnung der Matrix M die Matrix Mk−1 noch mit Q̂k multipliziert:
uk uk−1
qk − ε 1
uk+1 − εuk uk
M = Mk−1 ·Q̂k =
·
=
.
vk vk−1
1
0
vk+1 − εvk vk
Man erhält mit Hilfe von Proposition 2.2 eine Abschätzung für die Koeffizienten von M :
|uk+1 − εuk | ≤ |uk+1| + |uk |
√
√
x0 x0 x0 x0 xk < (3 + 2)· + = (3 + 2)· + ·
xk
xk−1 xk
xk xk−1 √
x0 x0 1
5
≤ (3 + 2)· 1 + √ · = 4 + √ · ,
xk
xk
2
2
xk ≤ √1 für k ≥ 2 ist. Die Abschätzung von |vk+1 − εvk | verläuft ganz analog.
da 2
xk−1 Aus |xk | ≥ s folgt nun die behauptete Größenabschätzung (2.1.7).
Proposition 2.4 ([Wei99, Proposition 3.3])
Berechnet man gemäß Satz 2.3 zu x, y ∈ Z[i] und s = 1 den Abstieg zu u, v ∈ Z[i], so gilt
u ∼ v ∼ gcd(x, y).
Beweis. Wegen min(|u − v|, |u + v|) < 1 erhält man u = εv mit ε ∈ {−1, +1}. Die
Behauptung folgt nun mittels Teilbarkeitsüberlegungen direkt aus den Darstellungen
u
x
u
x
−1
,
=
sowie
M ·
= M·
εu
y
εu
y
da M eine in
Z[i]2×2 invertierbare Matrix ist.
Damit haben wir die Idee des kontrollierten Euklidabstiegs auf Z[i] übertragen und den
Zusammenhang zur g.g.T.-Berechnung dargestellt, wenn der dabei vorkommende Größenparameter s = 1 ist. Darauf aufbauend können wir nun den asymptotisch schnellen g.g.T.Algorithmus angeben, dessen Korrektheit wir anschließend beweisen werden. Die diesem
Algorithmus zugrundeliegende Idee ist dieselbe wie bei dem Algorithmus DESCENT in
Z. Sofern die Operanden hinreichend lang sind, werden Anfangsstücke abgetrennt und lediglich mit diesen erst einmal ein kontrollierter Euklidabstieg berechnet. Wenn dabei ein
Abstieg um maximal N Bits berechnet werden soll, wird dieser rekursiv aufgeteilt in zwei
Abstiege um jeweils ungefähr N/2 Bits, die mittels Multiplikation der jeweiligen Kofaktormatrix zusammengefügt und schließlich auf die Operanden in voller Länge übertragen
werden.
2.1
Technik des kontrollierten Euklidabstiegs
13
Algorithmus 2.2 Kontrollierter Euklidabstieg in Z[i]
algorithm CIDESCENT(x, y, L)
Zu gegebenen x, y ∈ Z[i], L ∈ N mit |x|, |y| ≥ 2L berechnet CIDESCENT Zahlen u, v
und eine invertierbare Matrix M ∈ Z[i]2×2 wie in Satz 2.3, so daß
x
u
= M·
und |u|, |v| ≥ 2L > min(|u − v|, |u + v|).
y
v
C1: if min(|x|, |y|) < 2L+1 then
u := x, v := y, M := I;
\\ weiter bei C9
else
C2:
Finde das minimale N ∈ N mit |x|, |y| < 2L+N ;
if L ≤ N + 5 then T := 0, L1 := L;
\\ keine Zerlegung
else L1 := N + 5, T := L + 1 − L1 ,
zerlege x = x′ + x′′ ·2T ,
y = y ′ + y ′′ ·2T ,
1
so daß 2L1 ≤ |x′′ |, |y ′′ | < 2L1 +N −1 , |x′ |, |y ′| ≤ 2T + 2 ,
und setze x := x′′ , y := y ′′ ;
C3:
H := L1 + ⌊N/2⌋;
if min(|x|, |y|) < 2H then
u′ := x, v ′ := y, M := I;
else
C4:
(u′ , v ′ , M) := CIDESCENT(x, y, H);
\\ min(|u′ − v ′ |, |u′ + v ′ |) < 2H
C5:
while min(|u′ − v ′ |, |u′ + v ′ |) ≥ 2L1 and max(|u′|, |v ′|) ≥ 2H do \\ max. zweimal
Berechne einen Euklidschritt zu u′, v ′
unter Beibehaltung von |u′ |, |v ′| ≥ 2L1
und entsprechender Modifikation von M;
if min(|u′ − v ′ |, |u′ + v ′ |) < 2L1 then
u := u′ , v := v ′ ;
else
C6:
(u, v, M ′ ) := CIDESCENT(u′, v ′ , L1 );
\\ min(|u − v|, |u + v|) < 2L1
C7:
M := M·M ′
C8:
if T > 0 then
u := u·2T + det M·(d·x′ − b·y ′),
\\ det M ∈ {−1, +1}
T
′
′
v := v·2 + det
+ a·y ),
M·(−c·x
a b
d −b
−1
wobei M =
;
\\ M = det M ·
−c a
c d
L
C9: while min(|u − v|, |u + v|) ≥ 2 do
\\ maximal 5 Schleifendurchläufe
Berechne einen Euklidschritt zu u, v
unter Beibehaltung von |u|, |v| ≥ 2L
und entsprechender Modifikation von M;
C10: return (u, v, M).
Proposition 2.5 ([Wei99, Proposition 3.5])
Algorithmus 2.2 ist korrekt, d. h. zu gegebenen Gaußschen Zahlen x, y ∈ Z[i] berechnet
der Algorithmus Gaußsche Zahlen u, v ∈ Z[i] und eine Matrix M ∈ Z[i]2×2 gemäß Satz
14
2
Grundlagen
2.3. Darüber hinaus ist die Anzahl der Euklidschritte in den while-Schleifen in C5 bzw.
C9 unabhängig von den Eingabegrößen beschränkt durch 2 bzw. 5.
Beweis.
(i) Sobald bei einem der Euklidschritte in den while-Schleifen C5 (Variablen
u′ , v ′ ) oder C9 (Variablen u, v) eine Größenanpassung vorgenommen worden ist, ist
danach jeweils die Minimumbedingung bei C5 oder C9 nicht mehr erfüllt, so daß die
while-Schleife kein weiteres Mal durchlaufen wird.
(ii) Wir berechnen nur least-remainder-Euklidschritte mit ggf. anschließender Größenanpassung. Wenn in solch einem Euklidschritt eine Größenanpassung erfolgt
ist und wir weitere Euklidschritte rechnen, wird diese Größenkorrektur im nächsten
Euklidschritt wieder rückgängig gemacht, so daß wir die Größenanpassung (bis auf
ggf. die Größenanpassung beim letzten Euklidschritt) nicht berücksichtigen müssen,
um die Matrixkoeffizienten abzuschätzen. Somit sind in C8 bzw. C10 die Matrixkoeffizienten geeignet beschränkt.
(iii) Sei o. E. |x| ≥ |y|. Wenn in C1 zu C9 verzweigt wird, dann ist |y| < 2L+1 . Bei jedem
Euklidschritt wird der Rest um mindestens den Faktor √12 betragsmäßig gegenüber
|y| kleiner, also erhält man nach zwei Schritten einen Rest echt kleiner 2L , so daß
dann eine Größenanpassung vorgenommen wird. Dann ist aber die Abbruchbedingung der while-Schleife C9 erfüllt.
In allen anderen Fällen verzweigt C1 nicht zu C9, also ist in C2 immer N ≥ 2.
(iv) Wir zeigen nun, daß in der while-Schleife C5 die Anzahl der Iterationen durch 2
beschränkt ist. Mit x̃, ỹ seien hierbei im Fall T > 0 die Anfangsstücke x′′ , y ′′ der
Eingabezahlen x, y bezeichnet, dabei sei ggf. nach Umbenennung |x̃| ≥ |ỹ|; im Fall
T = 0 werden x̃ := x, ỹ := y gesetzt. Wir berechnen insgesamt einen Abstieg um N
Bits, von L1 + N zu L1 Bits bei x̃, ỹ. Dazu berechnen wir zuerst einen Abstieg um
⌈N/2⌉ Bits zu H := L1 + ⌊N/2⌋ Bits in C4 und C5.
Wenn |ỹ| < 2H in C3 ist, berechnen wir keinen Abstieg mittels CIDESCENT; wir
1
erhalten nach einem Standard-Euklidschritt einen Rest r mit |r| ≤ 2H− 2 < 2H . Ist
|r| ≥ 2L1 , so wird die while-Schleife nicht erneut durchlaufen, da max(|ỹ|, |r|) < 2H
ist. Ist dagegen |r| < 2L1 , so wird eine Größenanpassung mit y vorgenommen (u′ := y
und v ′ := r + εy mit ε ∈ {−1, +1}, so daß |v ′ | ≥ |y|). Dann ist |u′ − εv ′| < 2L1 , so
daß die while-Schleife nicht erneut durchlaufen wird.
Ist hingegen CIDESCENT in C4 durchlaufen worden, dann existiert ein
ε ∈ {−1, +1}, so daß |u′ + εv ′| < 2H ist. Berechnet man dann einen Euklidschritt,
so erhält man einen Rest kleiner 2H . Entweder ist eine Größenanpassung beim Rest
erforderlich, so daß dann die while-Schleife nicht erneut durchlaufen wird, oder aber
es wird ein weiterer Euklidschritt berechnet. Dieser liefert dann einen Rest kleiner
2H , bei dem ggf. eine Größenanpassung vorgenommen wird. Nach einer Größenanpassung wird die while-Schleife nicht erneut durchlaufen, und falls keine Größenanpassung vorgenommen wird, sind die beiden Zahlen kleiner als 2H , so daß wegen der
Maximumbedingung keine weitere Iteration erfolgt.
Ist min(|u′ − v ′ |, |u′ + v ′ |) < 2L1 ein Abbruchkriterium bei der while-Iteration in C5,
dann ist die Bedingung in der unmittelbar folgenden if-Abfrage erfüllt, so daß kein
zweiter Abstieg CIDESCENT (C6) gerechnet wird. Ist T = 0, dann ist die Bedingung in C8 nicht erfüllt. Weiterhin ist L = L1 , so daß dann in C9 die Bedingung
der while-Schleife nicht erfüllt ist, so daß kein Durchlauf erfolgt.
2.1
Technik des kontrollierten Euklidabstiegs
Abbildung 2.3: Euklidabstieg in
T
15
Z[i] : Aufteilung mit Endstücken
L1 = N + 5
N −1
L
N
(v) Sei nun der Fall T > 0 betrachtet, also sei L > N + 5. Es sind T und L1 so gewählt,
daß T + L1 = L + 1 ist. In den Schritten C3–C7 berechnen wir den Abstieg von den
Anfangsstücken x′′ , y ′′ zu ũ, ṽ, wobei ein ε ∈ {−1, +1} existiert, so daß gilt:
|ũ|, |ṽ| ≥ 2L1 > |ũ + εṽ|.
(2.1.11)
Nach Schritt C8 sind dann u, v berechnet als
u := ũ·2T + det M·(d·x′ − b·y ′),
(2.1.12)
v := ṽ·2T + det M·(−c·x′ + a·y ′).
Wegen |x′′ |, |y ′′ | < 2L1 +N −1 und wegen der Mindestgröße von ũ, ṽ folgt, daß die
Koeffizienten der Reduktionsmatrix M von x′′ , y ′′ zu ũ, ṽ wie in Satz 2.3 betragsmäßig
durch
L1 +N −1
5
2
4+ √ ·
< 2N +2
L1
2
2
nach oben beschränkt sind, da nach der Anmerkung in (ii) eine ggf. vorgenommene Größenanpassung durch Berechnen eines weiteren least-remainder-Euklidschritts
1
rückgängig gemacht wird. Des weiteren ist |x′ |, |y ′| ≤ 2T + 2 , so daß wir mit (2.1.12)
die Abschätzung erhalten:
1
|u|, |v| > 2L1 +T − 2·2N +2 ·2T + 2 = 2L1 +T − 2L1 +T −1.5 = 2L (2 − 2−0.5 ) > 2L ,
da L1 = N + 5 und T + L1 = L + 1 ist. Damit können |u|, |v| also nicht zu klein
werden. Andererseits erhält man aus (2.1.12) mit der Größenbeschränkung (2.1.11):
|u + εv| = |(ũ + εṽ)·2T + det M·(d − εc)x′ + det M·(−b + εa)y ′|
1
< 2L1 +T + 4·2N +2 ·2T + 2
1
≤ 2L+1 + 2N +T +4.5 = 2L+1 (1 + 2− 2 ) < 3.5·2L .
Damit ist die Anzahl der Euklidschritte in C9 durch 5 beschränkt, denn nach einem
Euklidschritt ist ein Operand betragsmäßig kleiner als 3.5·2L , und nach maximal
1
vier weiteren Euklidschritten ist der Rest betragsmäßig kleiner (2− 2 )4 ·3.5·2L < 2L ,
so daß spätestens dann eine Größenanpassung erfolgt. Nach einer solchen Größenanpassung ist anschließend die while-Bedingung nicht mehr erfüllt, so daß keine weitere
Iteration ausgeführt wird.
16
2
Grundlagen
Proposition 2.6 ([Wei99, Proposition 3.6])
Sei mit t(l, n) die maximale Laufzeit von CIDESCENT(x, y, L) für L ≤ l und beliebige
Gaußsche Zahlen |x|, |y| < 2L+N , wobei N ≤ n − 5 ist, bezeichnet. Es gilt
t(l, n) ≤ O(·µZ[i](l + n)· log(n + 1)).
Dabei bezeichnet µZ[i] (l + n) eine glatte obere Zeitbeschränkung für die Multiplikation
zweier Gaußscher Zahlen vom Betrag kleiner 2l+n ; es gilt µZ[i] (s) = O(µ(s)).
Beweis. Mit Ausnahme der rekursiven Aufrufe in C4 und C6 führt der Algorithmus
nur eine beschränkte Anzahl von arithmetischen Operationen mit Gaußschen Zahlen vom
Betrag kleiner 2l+n aus. Der Fall L > N + 5 wird zurückgeführt auf ein Problem mit
Parametern L1 = N + 5, N1 = N − 1, so daß wir die Abschätzung
t(l, n) ≤ t(n, n) + O(·µZ[i] (l + n))
(2.1.13)
erhalten. Die divide-and-conquer-Struktur des Algorithmus ermöglicht die Abschätzung
t(2n, 2n) ≤ 2t(n, n) + O(·µZ[i] (4n)).
(2.1.14)
(Man berechnet insgesamt einen Abstieg um 2n Bits beim Betrag der Operanden, indem
man bis zu zwei Abstiege jeweils um n Bits rekursiv berechnet. Bei diesen rekursiven Aufrufen werden jeweils Endstücke abgeschnitten, so daß jeweils eine Laufzeit von maximal
t(n, n) benötigt wird.) Aus (2.1.13) und (2.1.14) erhält man die Laufzeitabschätzung
t(l, n) ≤ O(·µZ[i](l + n)· log(n + 1)).
Bemerkung. Diese Laufzeit mit l = 0 ist auch eine obere Schranke für die Laufzeit der
g.g.T.-Berechnung von Gaußschen Zahlen x, y mit |x|, |y| < 2n , da CIDESCENT(x, y, 0)
nach Proposition 2.4 den g.g.T. von x, y berechnet.
2.2
2.2.1
Das Reziprozitätsgesetz in Z und ein schneller Algorithmus zur Berechnung des Jacobi-Symbols
Das quadratische Reziprozitätsgesetz
Das quadratische Reziprozitätsgesetz besagt, wann eine ungerade Primzahl p ein Quadrat
modulo einer ungeraden Primzahl q, p 6= q, ist. Seine Entdeckung wird Legendre zugeschrieben; allerdings benutzte er zur Begründung einen seinerzeit (1785) unbewiesenen
Satz über Primzahlen in arithmetischen Progressionen. Dem knapp neunzehnjährigen
Gauß gelang erstmals ein vollständiger Beweis des quadratischen Reziprozitätsgesetzes.
Im Laufe der Zeit fügte er sieben neue Beweise hinzu.
Auch wenn sich das quadratische Reziprozitätsgesetz explizit und elementar formulieren
läßt, so ist es doch der Zahlentheorie zuzuordnen. Mit zahlentheoretischen Mitteln lassen
sich dann auch höhere Reziprozitätsgesetze angeben.
2.2 Das Reziprozitätsgesetz in Z und ein schneller Algorithmus zur
Berechnung des Jacobi-Symbols
17
„Von der Entdeckung des Reziprozitätsgesetzes kann man die moderne Zahlentheorie datieren. Seiner Form nach gehört es noch der Theorie der rationalen Zahlen an, es läßt sich aussprechen als eine Beziehung lediglich zwischen
rationalen Zahlen; jedoch weist es seinem Inhalt nach über den Bereich der rationalen Zahlen hinaus. [. . .] Die Entwicklung der algebraischen Zahlentheorie
hat nun wirklich gezeigt, daß der Inhalt des quadratischen Reziprozitätsgesetzes erst verständlich wird, wenn man zu den allgemeinen algebraischen Zahlen
übergeht, und daß ein dem Wesen des Problems angemessener Beweis sich
am besten mit den höheren Hilfsmitteln führen läßt, während man von den
elementaren Beweisen sagen muß, daß sie vielmehr den Charakter einer nachträglichen Verifikation besitzen.“
E. Hecke [Hec23, S. 59]
Legendre definierte für eine ungerade Primzahl q ∈
Werten in {−1, +1} durch
q−1
p
≡ p 2 mod q
q
N und p ∈ Z ein Symbol (p/q) mit
und formulierte das
Theorem 2.7 (Quadratisches Reziprozitätsgesetz)
Seien p, q ∈ N verschiedene ungerade Primzahlen. Dann gilt
p−1 q−1
p
q
·
= (−1) 2 2
.
q
p
Darüber hinaus gelten das erste und zweite Ergänzungsgesetz:
p−1
p2 −1
−1
2
= (−1) 2 ,
= (−1) 8 .
p
p
Eine Verallgemeinerung des Legendre-Symbols ist das Jacobi-Symbol (siehe dazu z. B.
[Coh96, § 1.4], [Leu96, § 5.2], [Neu92, VI.8.4]):
Definition 2.1
Für a ∈ Z, b ∈ N, b ungerade, ist das Jacobi-Symbol a wie folgt definiert: Zerlege
b
Q
b = j∈J pj in positive Primfaktoren pj (nicht notwendigerweise verschieden, pj 6= 2).
Setze
a
Y a :=
,
b
pj
j∈J
wobei
a
pj
für a 6= 0 das bereits definierte Legendre-Symbol ist.
Man zeigt, daß die Formeln von Theorem 2.7 wahr bleiben, wenn p und q lediglich teilerfremde positive ungerade Zahlen sind, nicht notwendigerweise prim ([Leu96, § 5.3, Satz 3
und 5]).
Eine detaillierte Schilderung der geschichtlichen Entwicklung des quadratischen Reziprozitätsgesetzes ist in [Lem99, Chapter 1: The Genesis of Quadratic Reciprocity] zu finden.
18
2
Grundlagen
Bemerkung. Eine weitere Verallgemeinerung
des Legendre-Symbols (und des JacobiSymbols) ist das Jacobi-Kronecker-Symbol a , welches allgemein für b ∈ Z definiert ist
b
(siehe [Coh96, § 1.4]).
2.2.2
Schönhages schneller Algorithmus zur Berechnung des
Jacobi-Symbols
Schönhage [Sch87] hat einen schnellen Algorithmus zur Berechnung des Jacobi-Symbols
entwickelt, der auf dem Algorithmus zur schnellen g.g.T.-Berechnung in Z (siehe [Sch71]
bzw. [SGV94, pp. 239–244]) basiert. Die Idee jenes Algorithmus zur Berechnung des
Jacobi-Symbols wollen wir kurz vorstellen, da wir anschließend einen ähnlichen Algorithmus zur Berechnung des quartischen Restsymbols entwickeln werden.
y
Seien x, y ∈ N, x ≥ 3 ungerade und 0 < y < x. Die Berechnung des Jacobi-Symbols x
schließt einen Test ein, ob x und y teilerfremd sind. Zuerst wird dazu der g.g.T. von x
und y mit einem asymptotisch schnellen g.g.T.-Algorithmus in Z berechnet, wobei die
Quotienten q1 , . . . , qk der Euklidschritte für eine spätere Berechnung aufbewahrt werden.
Sei nun der g.g.T. gleich 1 (andernfalls ist (y/x) = 0). Dann kann das Jacobi-Symbol
(y/x) aus den qj in linearer Zeit berechnet werden. Die berechneten Euklidschritte (des
kontrollierten Euklidabstiegs bei der g.g.T.-Berechnung) sind dann in der Art von
xj−1 = qj xj + xj+1 , 1 ≤ j ≤ k, wobei x0 := x, x1 := y, xk = xk+1 = 1.
(2.2.1)
rj ≡ xj mod 4
(2.2.2)
Insbesondere endet die g.g.T.-Berechnung nicht, wenn man bei einem Euklidschritt Rest 0
erhält, sondern der letzte Euklidschritt wird derart modifiziert, so daß man Rest xk+1 = 1
erhält, was möglich ist, da xk = 1 ist.
x0 sowie xk und xk+1 sind ungerade, so daß die Nachbarn jedes geraden xj ungerade sein
müssen. Es genügt, all diese Größen modulo 4 zu kennen. Die reduzierten Reste
können einfach aus den Quotienten qj mittels (2.2.1), modulo 4 genommen, berechnet
werden. Also werden lediglich die unteren beiden Bits jedes qj benötigt. Die Regeln zur
Berechnung des Jacobi-Symbols sind nun präzisiert in
Theorem 2.8 (Schönhage, 1987)
Seien x, y ∈ N, x ≥ 3 ungerade, 0 < y < x, gcd(x, y) = 1. Des weiteren sei ein Euklidabstieg wie in (2.2.1) berechnet und Restklassen rj ∈ Z/4Z wie in (2.2.2) entsprechend
definiert. Sei xj−1 ≥ 3 ungerade. Wenn xj ungerade ist, dann gilt
xj
xj+1
=
·s(rj−1, rj ),
(2.2.3)
xj−1
xj
wobei s(1, 1) = s(1, 3) = s(3, 1) = 1, s(3, 3) = −1 ist. Wenn xj gerade ist, dann ist xj+1
ungerade, und es gilt

 xj+2
wenn rj = 0,
xj+1
xj
= (2.2.4)
 xj+2 ·t(r , q ) wenn r = 2,
xj−1
j+1
j
j
xj+1
(
−1 für q ≡ 2 oder q ≡ r mod 4,
wobei t(r, q) =
+1 sonst.
2.2 Das Reziprozitätsgesetz in Z und ein schneller Algorithmus zur
Berechnung des Jacobi-Symbols
Beweis. [Sch87, Theorem 7.1]
19
Bemerkung. Gleichung (2.2.3) entspricht direkt der Formulierung des quadratischen
Reziprozitätsgesetzes für das Jacobi-Symbol, während die
Reduktion (2.2.4) nicht sehr
y
bekannt ist. Für eine Berechnung des Jacobi-Symbols x bei geradem y wird häufig das
Ergänzungsgesetz
2
= −1 ⇐⇒ x ≡ 3 oder x ≡ 5 mod 8
x
verwendet. Bei solchem Vorgehen ist allerdings nicht bekannt, wie das Jacobi-Symbol
unter Benutzung des asymptotisch schnellen g.g.T.-Algorithmus schnell aus der Quotientensequenz berechnet werden könnte, da nach Anwendung des zweiten Ergänzungsgesetzes
k ′ 2
y
=
x
x
x
y
(y = 2k y ′ , 2 ∤ y ′)
ein Operand y ′ auftritt, der so nicht in der Restsequenz vorkommt und somit eine weitere kanonische Verwendung der Quotientensequenz verhindert. Es ist also bislang nicht
bekannt, ob sich das Jacobi-Symbol auch asymptotisch schnell berechnen läßt, wenn man
zur Berechnung insbesondere das zweite Ergänzungsgesetz anwendet.
Darüber hinaus genügt es zur Bestimmung des obigen k nicht, y modulo 4 zu kennen, da
im Fall y ≡ 0 mod 4 das k nicht aus r := y mod 4 bestimmt werden kann.
Da die g.g.T.-Berechnung positiver ganzer Zahlen vom Betrag kleiner 2n in O(µ(n) log n)
Laufzeit möglich ist, wobei die berechneten Quotienten der einzelnen Euklidschritte für
eine spätere Verarbeitung aufbewahrt werden, ist also nach obigen Überlegungen und
nach Theorem 2.8 aus dieser Quotientensequenz mit Arithmetik in Z/4Z-Restklassen das
Jacobi-Symbol zu berechnen, d. h. wir haben das folgende Theorem (vgl. [SGV94, 7.2.34])
bewiesen:
Theorem 2.9
Das Jacobi-Symbol zweier positiver ganzer Zahlen kleiner 2n kann in O(n(log n)2 log log n)
Laufzeit berechnet werden.
Bemerkung. Bei diesem hier skizzierten Algorithmus zur Berechnung des Jacobi-Symbols aus der Quotientensequenz ist es von großer Wichtigkeit, daß die Operationen lediglich in einem Restklassenring von Z (hier Z/4Z) ausgeführt werden. Anderenfalls würde
der Algorithmus im allgemeinen mindestens eine in n quadratische Laufzeit erreichen, da
die aus der Quotientensequenz (in der Regel kleine Quotienten, vgl. Knuth [Knu98, 4.5.2,
High-precision calculation]) berechneten Operanden bis zu n Bits lang werden können,
aber insgesamt auch O(n) Quotienten abgespeichert worden sind.
Bemerkung. Der hier vorgestellte Algorithmus zur Berechnung des Jacobi-Symbols ist
asymptotisch schneller als die beiden in [MS98] vorgestellten Algorithmen, die für betragsmäßig durch 2n beschränkte Operanden beide eine Laufzeit von O(n2/ log n) in der
nicht-parallelisierten Variante erreichen.
20
2
Grundlagen
Kapitel 3
Das quartische Reziprozitätsgesetz
3.1
Klassische Formulierung
C. F. Gauß (1777–1855) hat als erster das quartische (biquadratische) Reziprozitätsgesetz
formuliert und das zweite Ergänzungsgesetz bewiesen. Es ist nicht bekannt, wann Gauß
das quartische Reziprozitätsgesetz entdeckt hat; es wird vermutet, daß dieses einige Zeit
vor seinen Publikationen einiger Resultate in den Jahren 1828 und 1832 geschehen ist.
(„Theoria residuorum biquadraticorum. Commentatio prima.“ , Commentationes Soc. regiae sci. Göttingen. Vol. VI, 1828; „Theoria residuorum biquadraticorum. Commentatio
secunda.“ , Commentationes Soc. regiae sci. Göttingen. Vol. VII, 1832; beide Arbeiten sind in deutscher Übersetzung zu finden in [Gau89].) Gauß schrieb zum quartischen
Reziprozitätsgesetz in einem Brief am 30. Mai 1828 an Dirichlet:
„Die ganze Untersuchung, deren Stoff ich schon seit 23 Jahren vollständig
besitze, die Beweise der Haupttheoreme aber (zu welchen das in der ersten
Commentatio noch nicht zu rechnen ist) seit etwa 14 Jahren, . . . “
C. F. Gauß, Werke II, S. 516
Jacobi bewies seinerseits das quartische Reziprozitätsgesetz 1836/37 in seiner Königsberger Vorlesung. Die ersten publizierten Beweise gehen auf Eisenstein (1844/45) zurück.
Weitere historische Details zur Geschichte des quartischen Reziprozitätsgesetzes sind in
[Lem99, Chapter 6. Quartic Reciprocity, pp. 173–175] zu finden.
Während beim quadratischen Reziprozitätsgesetz in Z (ohne die Ergänzungsgesetze) Bedingung ist, daß die beteiligten Operanden ungerade sind, ist beim quartischen Reziprozitätsgesetz in Z[i] Bedingung, daß die Gaußschen Zahlen primär (siehe Definition 3.1) sein
sollen. Dadurch wird für eine Gaußsche Zahl, die nicht durch 1 + i teilbar ist, d. h., daß
Real- und Imaginärteil unterschiedliche Parität haben, genau eine der vier Assoziierten
ausgezeichnet. Dieses Auszeichnen einer Assoziierten ist bereits bei Gauß’ Formulierung
des quartischen Reziprozitätsgesetzes zu finden:
„Fundamentaltheorem der biquadratischen Reste [. . .]
Bezeichnen a + bi, a′ + b′ i zwei verschiedene, unter den zu ihnen associierten
Zahlen primäre, d. h. nach dem Modul 2 + 2i der Einheit congruente Primzahlen, so ist der biquadratische Character der Zahl a + bi in Bezug auf den
21
22
3
Das quartische Reziprozitätsgesetz
Modul a′ + b′ i identisch mit dem Character der Zahl a′ + b′ i in Bezug auf
den Modul a + bi, wenn entweder jede oder wenigstens eine der beiden Zahlen
a + bi, a′ + b′ i zur ersten Art gehört d. h. nach dem Modul 4 der Einheit
congruent ist; dagegen werden jene Charactere um zwei Einheiten verschieden
sein, wenn keine der beiden Zahlen a + bi, a′ + b′ i zur ersten Art gehört, d. h.
wenn beide nach dem Modul 4 der Zahl 3 + 2i congruent sind.“
[Gau89, Theorie der biquadratischen Reste, II. Abh., Abschnitt 67]
Hierbei bezeichnet Gauß als „Character einer Zahl x in Bezug auf den Modul y “ eine
natürliche Zahl j, so daß [x/y] = ij ist. Im Falle y = π prim bedeutet dieses, daß
x ≡ ij mod π ist (vgl. Proposition 3.5 und Definition 3.2). Dann sind „Charactere um
zwei Einheiten verschieden“ , wenn sie sich durch das Vorzeichen unterscheiden: ij und
ij+2 = −ij .
Dieser von Gauß benutzte Begriff des „Characters“ hängt nicht mit dem heutigen mathematischen Verständnis eines „Charakters“ als Abbildung einer multiplikativen Gruppe
nach C zusammen, so daß wir Gauß’ „Character“ -Begriff nicht weiter benutzen werden.
3.1.1
Primäre Gaußsche Zahlen
Definition 3.1
Eine Gaußsche Zahl x ∈ Z[i] wird primär genannt, wenn x ≡ 1 mod (2 + 2i) ist, d. h.
wenn eine Gaußsche Zahl q ∈ Z[i] existiert, so daß x − q(2 + 2i) = 1 ist.
Bemerkung. Zerlegt man x = x0 + ix1 in Real- und Imaginärteil (x0 , x1 ∈ Z), so gilt
x = x0 + ix1 primär
⇐⇒
x0 ≡ 1, x1 ≡ 0 mod 4
∨ x0 ≡ 3, x1 ≡ 2 mod 4.
Diese Bedingung läßt sich auch noch anders formulieren als
x = x0 + ix1 primär
⇐⇒
x0 ungerade ∧ x0 + x1 ≡ 1 mod 4.
Da wir eine explizite Formulierung des quartischen Reziprozitätsgesetzes nur für primäre
Gaußsche Zahlen vornehmen, wollen wir für jede nicht durch 1 + i teilbare Gaußsche Zahl
x ∈ Z[i] explizit die Einheit ε ∈ Z[i]× berechnen, so daß ε·x primär ist.
Proposition 3.1
Sei x ∈ Z[i] mit x = x0 + ix1 , x0 6≡ x1 mod 2, gegeben. Dann gilt:
2
x·ix0 +x1 −x1 +3 ist primär.
Beweis. Es genügt, x0 , x1 modulo 4 zu betrachten, da i vierte Einheitswurzel ist (i4 = 1).
Setze ex := x0 + x1 − x21 + 3.
x
ex
x·iex
x
ex
x·iex
0 + 1i
3
1 + 0i 1 + 0i 4
1 + 0i
0 + 3i −3 −3 + 0i 1 + 2i 2 −1 − 2i
2 + 1i
5 −1 + 2i 3 + 0i
2 + 3i −1
3 − 2i 3 + 2i
6 −3 + 0i
4
3 + 2i
3.1
Klassische Formulierung
23
Diese Tabelle enthält alle Gaußschen Zahlen mit Real- und Imaginärteil verschiedener
Parität, die aus der Menge {0, 1, 2, 3} sind. Es ist abzulesen, daß in allen acht Fällen x·iex
primär ist.
Korollar 3.2
Sei x ∈ Z[i] mit x0 6≡ x1 mod 2. Dann existiert eindeutig ε ∈ Z[i]× , so daß ε·x primär ist.
3.1.2
Das quartische Restsymbol
Wir werden nun die Theorie des quartischen Restsymbols in der für diese Arbeit notwendigen Tiefe entwickeln, um schließlich das klassische quartische Reziprozitätsgesetz
angeben zu können.
Im folgenden Abschnitt sei π ∈ Z[i] ein Primelement.
Proposition 3.3
Der Restklassenring
Z[i]/πZ[i] ist ein Körper mit N(π) Elementen.
Beweis. [IR90, Proposition 9.8.1]
Korollar 3.4
Sei x ∈ Z[i]. Wenn π ∤ x, dann ist xN (π)−1 ≡ 1 mod π.
Proposition 3.5
Sei x ∈ Z[i], π ∤ x, π 6∼ 1 + i. Dann existiert eindeutig ein j ∈ {0, 1, 2, 3}, so daß
x
N(π)−1
4
≡ ij mod π.
Beweis. [IR90, Proposition 9.8.2]
Diese Proposition motiviert die folgende Definition des quartischen Restsymbols:
Definition 3.2
Sei π ∈ Z[i] prim, N(π) 6= 2. Dann ist das quartische Restsymbol (oder biquadratische
Restsymbol) definiert als
(j
i wenn π ∤ x, j wie in Proposition 3.5,
x
=
π
0 wenn π | x.
h i
·
×
π ist ein Charakter der Gruppe (Z[i]/π Z[i]) nach
für ε ∈ Z[i]× (siehe Proposition 3.6(f)).
Proposition 3.6
Seien x, y ∈ Z[i].
(a) Es gelte: π ∤ x. Dann:
C. Insbesondere ist
h i
x
4
π = 1 ⇐⇒ ∃ z ∈ Z[i] : z ≡ x mod π.
h i
h i
· = ·
π
επ
24
3
h
i h ih i
xy
x y
π = π π .
h i h i
x = x̄ .
(c) π
π̄
(b)
Das quartische Reziprozitätsgesetz
h
i
π0 −1
−1
(d) Wenn π = π0 + iπ1 primär ist, dann ist π = (−1) 2 .
h i h i
x = y .
(e) Wenn x ≡ y mod π ist, dann ist π
π
h i h i
x = x .
(f) Sei λ ∈ Z[i]. Dann: π Z[i] = λZ[i] =⇒ π
λ
Beweis. [IR90, Proposition 9.8.3]
h i
Bislang haben wir das quartische Restsymbol π· nur für Primelemente π ∈ Z[i] definiert.
Das quartische Restsymbol läßt sich wie folgt verallgemeinern:
Definition 3.3
Q
Sei x ∈ Z[i] \ Z[i]× , so daß (1 + i) ∤ x. Sei y ∈ Z[i]. Zerlege x = j∈J πj , wobei J eine endliche Indexmenge und πj ∈ Z[i] für j ∈ J prim ist (Eindeutigkeit der Primfaktorzerlegung
in Z[i]). Wenn gcd(x, y) ∼ 1 ist, dann definiere
Y y
y
=
,
x
π
j
j∈J
y
andernfalls (also gcd(x, y) 6∼ 1):
= 0.
x
h i
y
wohldefiniert. Teil (e) dieser Proposition
x ist nach Proposition 3.6(f)
h i h i
y
z ist.
impliziert, daß aus y ≡ z mod x folgt, daß x = x
Bemerkung.
Theorem 3.7 (Quartisches Reziprozitätsgesetz)
Für primäre Gaußsche Zahlen x = x0 + ix1 und y = y0 + iy1 , die relativ prim zueinander
sind, gilt
−1
x0 −1 y0 −1
x1 y 1
N(x)−1 N(y)−1
x y
= (−1) 4 · 4 = (−1) 2 · 2 = (−1) 4 .
y x
Darüber hinaus gibt es die folgenden Ergänzungsgesetze:
x0 −x1 −x2
1−x0
−x1
i
1+i
2
1 −1
4
=i 2 ,
=i
=i 2 .
,
x
x
x
(3.1.1)
(3.1.2)
Beweis. Für einen Beweis des Hauptgesetzes siehe z. B. [IR90, Theorem 9.9.2]. Ein
vollständiger Beweis dieses Theorems ist auch in [Lem99, § 6] zu finden.
Bemerkung. Aus dem ersten und zweiten Ergänzungsgesetz folgt unter Benutzung von
2 = i3 ·(1 + i)2 das dritte Ergänzungsgesetz.
3.2
Exkurs: Hilbert-Symbol und Reziprozitätsgesetze
25
Proposition 3.8
Seien x, y ∈ Z[i] primäre Gaußsche Zahlen, die relativ prim zueinander sind. Sei x′ ∈
4Z[i], so daß x + x′ und y relativ prim zueinander sind. Des weiteren seien x′′ ∈ 8Z[i]
und x′′′ ∈ (8 + 8i)Z[i]. Dann gilt
−1 −1
x y
y
x + x′
,
=
y x
y
x + x′
i
i
,
=
x
x + x′′
1+i
1+i
.
=
x
x + x′′′
Beweis. Offensichtlich sind x + x′ , x + x′′ , x + x′′′ jeweils primär. Da y primär ist, ist y1
gerade, also ist y1 /2 eine ganze Zahl. Des weiteren ist x′1 /2 gerade, x′′0 /2 ≡ 0 mod 4 sowie
′′′
′′′
x′′′
1 ≡ 0 mod 8, x0 − x1 ≡ 0 mod 16. Nach Theorem 3.7 erhält man
−1
−1
x′1
y
x1
x1 y 1
x1 y 1
+
· 21
x + x′
y
x y
2
2
· 2
4
2
=
= (−1)
,
= (−1)
= (−1)
y x
y
x + x′
1−(x0 +x′′
x′′
1−x0
1−x0
i
i
0)
0
−
2 = i
2
,
=i 2 =i 2
=
x
x + x′′
′′′
′′′
′′′
′′′ 2
x0 −x1 −x2
x0 −x1 −x2
1+i
1 −1
1 −1 + x0 −x1 −2x1 x1 −x1
4
4
4
=i
=i
x
′′′
′′′ 2
(x0 +x′′′
1+i
0 )−(x1 +x1 )−(x1 +x1 ) −1
4
=
=i
.
x + x′′′
3.2
Exkurs: Hilbert-Symbol und Reziprozitätsgesetze
Wir werden in diesem Abschnitt das Hilbert-Symbol vorstellen, um dadurch Zugang zu
den höheren Reziprozitätsgesetzen in allgemeiner Form zu erlangen. Dazu skizzieren wir
kurz, durch welche Zusammenhänge man in gewissen Zahlkörpern zum Hilbert-Symbol
gelangt. Wichtiger ist für unsere weitere Betrachtung, welchen Rechenregeln das HilbertSymbol genügt und wie es für die Primstelle λ = 1 + i im Fall des Zahlkörpers Q(i)
konkret berechnet werden kann.
Für tieferliegende Details verweisen wir auf das Zahlentheorie-Buch von J. Neukirch
[Neu92, insbesondere Kapitel V. § 3 und Kapitel VI. § 8], dem wir hier in der Darstellung folgen.
Sei K ein Zahlkörper, der die Gruppe µn der n-ten Einheitswurzeln enthält. Durch das
Zusammenspiel einerseits der Kummertheorie und andererseits der Klassenkörpertheorie
über solch einem Körper K ergibt sich das Hilbert-Symbol, das zur Verallgemeinerung
des klassischen (quadratischen) Gaußschen Reziprozitätsgesetzes auf n-te Potenzreste Anwendung findet.
√
Sei L = K( n K × ) die maximale abelsche Erweiterung vom Exponenten n. Einerseits
erhält man durch die Klassenkörpertheorie den kanonischen Isomorphismus
n
G(L|K) ∼
= K × /K × ,
26
3
Das quartische Reziprozitätsgesetz
andererseits liefert die Kummertheorie den kanonischen Isomorphismus
n
Hom(G(L|K), µn ) ∼
= K × /K × .
Die bilineare Abbildung
G(L|K) × Hom(G(L|K), µn ) → µn ,
(σ, χ) 7→ χ(σ),
liefert daher eine nicht-ausgeartete Paarung (multiplikativ in beiden Argumenten)
n
n
( · , · )p : K × /K × × K × /K × → µn .
Diese Paarung wird das Hilbert-Symbol genannt. Für a, b ∈ K × besteht folgende Beziehung zum Normrestsymbol:
√
√
√
n
n
n
(3.2.1)
(a, Kp( b)|Kp) b = (a, b)p b,
wobei p eine Stelle (reell, komplex oder p-adisch) des Zahlkörpers K ist. Gleichung (3.2.1)
ist unabhängig von der Wahl der n-ten Wurzel.
Satz 3.9
Das Hilbert-Symbol besitzt die folgenden grundlegenden Eigenschaften:
(i) (aa′ , b)p = (a, b)p(a′ , b)p sowie (a, bb′ )p = (a, b)p(a, b′ )p.
(ii) (a, b)p(b, a)p = 1.
(iii) (a,
Q 1 − a)p = 1 (Steinberg-Identität) und (a, −a)p = 1.
(iv) p(a, b)p = 1 (Produktformel); dabei wird das Produkt über alle Stellen von K
genommen.
Beweis. [Neu92, Satz V.3.2, Theorem VI.8.1]
Definition 3.4
Wenn eine Stelle des Zahlkörpers K durch das Primideal p gegeben ist, welches n nicht
teilt, so ist das verallgemeinerte Legendre-Symbol bzw. n-te Potenzrestsymbol die durch
die verallgemeinerte Eulersche Gleichung
N(p)−1
a
≡ a n mod p,
N(p) = (OK : p),
p
definierte n-te Einheitswurzel.
Definition 3.5
Q
Allgemeiner definieren wir für jedes zu n prime Ideal b = p∤n pvp (b) und jede zu b teilerfremde Zahl a das n-te Potenzrestsymbol durch
vp (b)
a Y a vp (b)
a
=
, wobei
= 1 sein soll, sofern vp(b) = 0 ist.
b
p
p
p∤n
Theorem 3.10 (Allgemeines Reziprozitätsgesetz der n-ten Potenzreste)
Sind a, b ∈ K × zueinander und zu n prime Zahlen, so gilt
Y
b
a −1
=
(a, b)p.
a
b
p|n,∞
3.2
Exkurs: Hilbert-Symbol und Reziprozitätsgesetze
Beweis. [Neu92, Theorem VI.8.3.]
27
Für das Reziprozitätsgesetz entscheidend sind also die Hilbert-Symbole an den unendlichen Stellen und an den Stellen, die n teilen. Nur im Falle des quadratischen Reziprozitätsgesetzes spielen die unendlichen Stellen eine Rolle, da andernfalls die vorausgesetzte
Existenz von Einheitswurzeln erzwingt, daß die unendlichen Stellen komplex sind (komplexe Einbettungen!).
Mit diesen Vorbemerkungen können wir nun konkret Reziprozitätsgesetze in gewissen
Zahlkörpern betrachten. Sei im folgenden einschränkend angenommen, daß n zu einer
Potenz des Primelementes λ ∈ OK assoziiert ist.
Jedes Körperelement läßt sich als a = λvλ (a) a∗ mit zu λ teilerfremden a∗ darstellen. Wenn
man nun nur solche a, b ∈ K betrachtet, so daß das Hilbert-Symbol (a, b)v an den unendlichen Stellen gleich 1 ist (im quadratischen Fall n = 2, K = Q genügt es zu verlangen,
daß a, b > 0 sind), dann verallgemeinert sich das Reziprozitätsgesetz zu
a
b
= (a, b)λ ∗ .
(3.2.2)
a
b
Konkret kann man das Hilbert-Symbol auf diese Weise
setz im
(i) quadratischen Fall mit n = 2, K = Q, √
(ii)
kubischen Fall mit n = 3, K = Q( −3),
(iii)
quartischen Fall mit n = 4, K = Q(i),
benutzen für das Reziprozitätsgeλ=√
2,
λ = −3;
λ = 1 + i.
Operanden positiv;
Der konkrete Zusammenhang zwischen dem Hilbert-Symbol und dem Reziprozitätsgesetz
im quadratischen Fall wird in [Neu92, V.3.6, VI.8.4] dargestellt; der Zusammenhang im
quartischen Fall wird in dieser Arbeit im folgenden Abschnitt 3.3 dargestellt.
In einer Divisionskette x = qy + z, y = q̃z + u mit nicht durch λ teilbarem x gelten also
folgende Regeln:
Falls auch y nicht durch λ teilbar ist, so ist y = y ∗ , und es folgt aus Gleichung (3.2.2)
y
x
z
= (x, y)λ
= (x, y)λ
.
(3.2.3)
x
y
y
Falls hingegen y durch λ teilbar ist, ist z nicht durch λ teilbar, und es gilt
y
u
y
x
z
−1
= (x, y)λ
=
(x/z,
y)
·
.
=
(x,
y)
=
(x,
y)
(z,
y)
·
λ
λ
λ
λ
x
y∗
y∗
z
z
(3.2.4)
Sofern das entsprechende Hilbert-Symbol nur von der Restklasse der Operanden in
Z[i]/λf Z[i] abhängt, so genügt es, die Operanden x, z mod λf , y mod λ2f −1 zu kennen. Ist
dann nämlich y ≡ 0 mod λf , so ist x/z ≡ 1 mod λf und deswegen (x/z, y)λ = (1, y)λ = 1.
Andernfalls ist y = λk y ∗ , wobei 1 ≤ k ≤ f − 1 ist. Dabei sind dann k sowie y ∗ mod λf
aus y mod λ2f −1 bekannt, so daß dann wegen
(x/z, y)λ = (x/z, λ)kλ ·(x/z, y ∗ )λ
28
3
Das quartische Reziprozitätsgesetz
das Hilbert-Symbol (x/z, y)λ berechnet werden kann.
Die Gleichungen (3.2.3) und (3.2.4) werden wir im folgenden benutzen, um eine alternative Formulierung des quartischen Reziprozitätsgesetzes zu erlangen, bei der es allerdings
bereits genügt, die auftretenden Operanden einer Divisionskette (eines Euklidabstiegs)
modulo 8 ∼ λ6 zu kennen (λ = 1 + i im quartischen Fall). Diese explizite Betrachtung
des quartischen Falls wird also zeigen, daß deutlich kleinere Restklassen der Operanden
genügen als bei obiger allgemeinerer Betrachtung, bei der sich für den quartischen Fall
f = 7 ergibt (λ7 ∼ 8 + 8i, vgl. Proposition 3.8 bzw. Proposition 3.12), so daß man y
modulo λ13 ∼ 64 + 64i kennen müßte.
Algorithmisch gesehen ist es für eine konkrete Implementierung vorteilhaft, die Operanden
nur modulo einer möglichst kleinen λ-Potenz kennen zu müssen, da sich dann in den
einzelnen Reduktionsschritten (3.2.3) oder (3.2.4) das Hilbert-Symbol einfacher (d. h.
schneller) berechnen läßt, da der Algorithmus z. B. in Abhängigkeit von der Restklasse der
Operanden in einer Tabelle nachsehen kann, um die Einheit für das entsprechende HilbertSymbol zu ermitteln (je kleiner die Restklasse ist, desto kleiner kann die entsprechende
Tabelle sein).
3.3
Alternative Formulierung des quartischen Reziprozitätsgesetzes
In diesem Abschnitt wollen wir die theoretischen Erkenntnisse, die wir durch die Zusammenhänge zwischen den Reziprozitätsgesetzen und dem Hilbert-Symbol gewonnen haben,
für das quartische Reziprozitätsgesetz benutzen. Dazu sei also λ = 1 + i.
Seien x, y ∈ Z[i]. Es sei x primär und k := vλ (y) ≥ 1, d. h. y ist durch 1 + i teilbar.
Bei der klassischen Formulierung des quartischen Reziprozitätsgesetzes reicht es nicht,
für den Operanden y nur die unteren Bits des Real- und Imaginärteils zu kennen, da es
notwendig ist, k mod 4 zu kennen, um das zweite Ergänzungsgesetz anwenden zu können:
x −x −x2 −1
(1 + i)k y/λk
y/λk
y
k· 0 14 1
=
=i
,
x
x
x
x
sofern x primär ist.
Allerdings würde nach einer Benutzung dieses Ergänzungsgesetzes, ähnlich wie in Z, danach kein kanonischer Zusammenhang mehr zur Quotienten-/Restsequenz eines Euklidabstiegs der g.g.T.-Berechnung bestehen. Bislang ist kein Algorithmus zur Berechnung
des quartischen Restsymbols bekannt, der das zweite Ergänzungsgesetz direkt verwendet
und asymptotisch so schnell ist wie der Algorithmus, den wir in dieser Arbeit vorstellen.
Unser Algorithmus verwendet nicht das zweite Ergänzungsgesetz, sondern Reduktionen
gemäß (3.2.3) und (3.2.4). Wir werden nun zeigen, daß es bei solchen Reduktionsschritten
zur Bestimmung des Hilbert-Symbols (Zusatzfaktor aus Z[i]× ) genügt, Real- und Imaginärteile der Operanden modulo 8 zu kennen.
3.3
Alternative Formulierung des quartischen Reziprozitätsgesetzes
29
Proposition 3.11
Seien x, y ∈ Z[i] teilerfremde primäre Gaußsche Zahlen. Dann gilt
−1
x1 y 1
y x
(x, y)λ =
= (−1) 4 ,
x y
1−x0
i
=i 2 ,
(x, i)λ =
x
x0 −x1 −x2
λ
1 −1
4
(x, λ)λ =
=i
.
x
Beweis. Nachrechnen unter Benutzung von Theorem 3.7.
Proposition 3.12
Seien x, y ∈ Z[i] teilerfremde Gaußsche Zahlen, y 6= 0. Sei x ≡ 1 mod λ7 . Dann ist
(x, y)λ = 1.
Beweis. Aus x ≡ 1 mod λ7 (λ7 ∼ 8 + 8i) folgt, daß gcd(x, λ) ∼ 1 ist. Des weiteren ist x
primär. Zerlege y = λvλ (y) δy ∗ , wobei δ ∈ Z[i]× so gewählt ist, daß y ∗ primär ist. Dann ist
v (y)
(x, y)λ = (x, δ)λ ·(x, λ)λλ
·(x, y ∗)λ ,
(3.3.1)
aber die dabei auftretenden drei Hilbert-Symbole hängen nach den Propositionen 3.8 und
3.11 nur von den Restklassen der Operanden in Z[i]/λ7 Z[i] ab. Wegen x ≡ 1 mod λ7 sind
alle drei Hilbert-Symbole auf der rechten Seite von (3.3.1) gleich 1, also ist (x, y)λ = 1. Lemma 3.13
Seien x, y ∈ Z[i], relativ prim zueinander und zu λ. Dann hängt (x, y)λ nur von der
jeweiligen Restklasse der Operanden x, y in Z[i]/8Z[i] ab.
Beweis. Durch Multiplikation mit Einheiten εx , εy ∈ Z[i]× kann man erreichen, daß εx x
und εy y primär sind. Dabei hängen diese Einheiten nach Proposition 3.1 nur von der
Z[i]/4Z[i]-Restklasse der Operanden x, y ab.
Wir wissen aus Gleichung (3.2.3), daß
−1 3 −3 −1
−1 x
εx
y
εy
εy y εx x
y x
=
=
·
(x, y)λ =
x y
εx x εy y
εx x
εy y
εx x εy y
ist. Proposition 3.8 besagt, daß in obigem Ausdruck die ersten beiden Restsymbole nur
von der Z[i]/8Z[i]-Restklasse, das Produkt der letzten beiden Restsymbole nur von der
Z[i]/4Z[i]-Restklasse abhängen. Insgesamt ergibt sich, daß (x, y)λ nur von der Z[i]/8Z[i]Restklasse der Operanden x, y abhängt.
Lemma 3.14
Seien x, y ∈ Z[i], x teilerfremd zu y (und λ), y = δλk y ∗ mit k := vλ (y) ≥ 1 und δ ∈ Z[i]× ,
so daß y ∗ primär ist. Sei x = qy + z mit q, z ∈ Z[i]. Dann hängt (x/z, y)λ nur von der
Restklasse der Operanden x, y, q in Z[i]/8Z[i] ab.
30
3
Das quartische Reziprozitätsgesetz
Bemerkung. Der nun folgende Beweis erscheint sehr technisch aufgrund der Fallunterscheidungen. Die zentrale Idee des Beweises besteht darin, in jedem der Fälle zu zeigen,
daß es jeweils genügt, die Operanden x, y, q modulo 8 zu kennen, um (x/z, y)λ ∈ Z[i]×
zu berechnen, obwohl die Werte der Hilbertsymbole (x/z, δ)λ , (x/z, λk )λ und (x/z, y ∗ )λ
nicht allein durch diese Restklassen bestimmt sind.
Beweis. Sei o. E. x primär. (Anderenfalls könnte man den gesamten Divisionsschritt
mit der Einheit multiplizieren, so daß x primär wird; diese Einheit hängt nur von der
Z[i]/4Z[i]-Restklasse von x ab.)
Die Schwierigkeit besteht nun darin, daß man nicht immer k, δ und y ∗ hinreichend genau
kennt, wenn man nur die Restklasse von y in Z[i]/8Z[i] kennt, um damit (x/z, y)λ direkt
zu berechnen.
Um zu zeigen, daß (x/z, y)λ nur von den Z[i]/8Z[i]-Restklassen der Operanden x, y, q
abhängt, werden wir zeigen, daß (x/z, y)λ = (x′ /z ′ , y ′)λ ist, wobei
x ≡ x′ , y ≡ y ′, q ≡ q ′ mod λ6 ,
z ′ := x′ − q ′ y ′, x − z + cλ6 ≡ x′ − z ′ mod λ7 ,
c ∈ {0, 1},
(3.3.2)
sind. Insbesondere sind dann auch x′ , z ′ nicht durch λ teilbar, hingegen ist y ′ durch λ
teilbar.
Allgemein gilt für das Hilbert-Symbol
(x/z, y)λ = (x/z, δ)λ ·(x/z, λ)kλ ·(x/z, y ∗ )λ ,
(3.3.3)
wobei aber δ, k, y ∗ nicht notwendigerweise aus der Z[i]/8Z[i]-Restklasse von y zu ermitteln
sind.
(a) Da wir zeigen wollen, daß (x/z, y)λ nur von den Z[i]/8Z[i]-Restklassen der Operanden abhängt, muß insbesondere gezeigt werden, daß (x/z, y)λ für k ≥ 6 konstant
ist, da λ6 ∼ 8 ist, so daß wir durch Kenntnis der Restklasse von y in Z[i]/8Z[i]
entweder k ∈ {1, . . . , 5} explizit feststellen können oder nur k ≥ 6 erhalten.
(b) Setze h := vλ (qy) = k + vλ (q). Dann ist x − z = qy ≡ 0 mod λh .
(c) x − z ≡ 0 mod λj ⇐⇒ x/z ≡ 1 mod λj , da z ein Inverses modulo λj besitzt.
3
3
[h ≥ 3] Sei h ≥ 3. Dann ist x ≡ z mod λ , d. h. auch z ist primär (λ ∼ 2 + 2i).
4
[h ≥ 4] Aus h ≥ 4 folgt, daß x/z ≡ 1 mod λ
(λ4 ∼ 4). Da y ∗ primär ist, ist dann
∗
Im(x/z)y1
(x/z, y ∗ )λ = (−1) 4
= 1, so daß in (3.3.3) nur noch die Faktoren (x/z, δ)λ
k
und (x/z, λ )λ zur Berechnung von (x/z, y)λ zu betrachten sind.
h ≥ 7 : Ist h ≥ 7, so ist x/z ≡ 1 mod λ7 , also ist nach Proposition 3.12 (x/z, y)λ = 1.
h = 6 : Ist h = 6, so ist x/z ≡ 1 mod λ6 , aber x/z 6≡ 1 mod λ7 , also ist x/z ≡ 1 + iλ6 =
9 mod λ7 .
(x/z, y)λ = (x/z, δ)λ ·(x/z, λk )λ ·(x/z, y ∗ )λ = (9, id )λ ·(9, λk )λ
= id·
[k ≥ 6]
[h ≤ 5]
1−9
2
·ik·
9−0−0−1
4
= (−1)k .
Aus h = 6 folgt, daß k ∈ {1, . . . , 6} ist, was aus y mod λ6 abzulesen ist.
Ist k ≥ 6, so ist h ≥ 6 und somit (x/z, y)λ = 1 (vgl. (a)).
Aus vλ (q), vλ (y) ≤ h ≤ 5 folgt, daß vλ (q) = vλ (q ′ ), k = vλ (y) = vλ (y ′) ist, da die
Operanden q, q ′ und y, y ′ jeweils modulo 8 ∼ λ6 kongruent sind.
3.3
Alternative Formulierung des quartischen Reziprozitätsgesetzes
31
Dann ist gemäß Definition (3.3.2)
x − z + cλ6 ≡ x′ − z ′ mod λ7 ,
was äquivalent ist zu x/z + cλ6 ≡ x′ /z ′ mod λ7 . Ebenfalls dazu äquivalent ist
qy + cλ6 ≡ q ′ y ′ mod λ7 .
(3.3.4)
Nun ist q ′ ≡ q + sq λ6 mod λ7 für ein geeignetes sq ∈ {0, 1}, also kann man (3.3.4)
schreiben als
qy + cλ6 ≡ (q + sq λ6 )y ′ ≡ qy ′ mod λ7 ,
(3.3.5)
da sq λ6 y ′ ≡ 0 mod λ7 ist wegen vλ (y ′ ) ≥ 1. Seien nun q = λvλ (q) q ∗ , y = λk δy ∗
und y ′ = λk δ ′ y ′ ∗ zerlegt, wobei q ∗ , y ∗, y ′∗ zu λ teilerfremd sind. Des weiteren seien
δ, δ ′ ∈ Z[i]× so gewählt, daß y ∗ , y ′∗ primär sind. Weiterhin seien d, d′ ∈ Z, so daß
′
δ = id , δ ′ = id sind. Dann ist (3.3.5) äquivalent zu
∗
q ∗ δy ∗ + cλ6−h ≡ q ∗ δ ′ y ′ mod λ7−h .
(3.3.6)
Da q ∗ teilerfremd zu λ ist, besitzt q ∗ ein Inverses modulo λ7−h , so daß wir (3.3.6)
mit 1/q ∗ ≡ 1 + q̃λ mod λ7−h multiplizieren können.
∗
δy ∗ + cλ6−h ≡ δ ′ y ′ mod λ7−h .
(3.3.7)
Andererseits erhält man, sofern man die Z[i]/8Z[i]-Restklasse von y, y ′ kennt, daß
aus y ≡ y ′ mod λ6 folgt, daß
∗
δy ∗ ≡ δ ′ y ′ mod λ6−k .
(3.3.8)
Aus den Kongruenzen (3.3.7) und (3.3.8) erhält man nun zusammen
k ≤h−1
=⇒
(3.3.9)
c = 0,
da aus k ≤ h − 1 wegen 6 − k ≥ 7 − h aus (3.3.8) folgt
∗
δy ∗ ≡ δ ′ y ′ mod λ7−h ;
(3.3.10)
mit (3.3.7) und λ6−h 6≡ 0 mod λ7−h folgt die Implikation (3.3.9).
Dieses bedeutet also, daß im Fall k < h ≤ 5 immer x/z ≡ x′ /z ′ mod λ7 ist.
(d) Für primäres w ∈ Z[i] hängt (w, λ)λ nach Proposition 3.8 nur von der Restklasse
Z[i]/λ7 Z[i] von w ab, also gilt
(
−(x′ /z ′ , λ)kλ wenn k ungerade und c = 1,
k
(x/z, λ)λ =
(3.3.11)
(x′ /z ′ , λ)kλ
sonst.
h=5:
Ist h = 5, so ist x/z ≡ 1 mod (4 + 4i). Man erhält dann
(x/z, y)λ = (x/z, i)dλ ·(x/z, λ)kλ = id·
1−Re(x/z)
2
·(x/z, λ)kλ = (−1)d ·(x/z, λ)kλ .
32
3
Das quartische Reziprozitätsgesetz
Aus (3.3.7) δy ∗ + cλ ≡ δ ′ y ′ ∗ mod 2. Im Fall c = 1, d. h. k = 5, ist genau eine
Einheit δ oder δ ′ imaginär (i oder −i), die andere ist reell (1 oder −1). Somit
unterscheidet sich also die Parität von d und d′ . Man erhält
′
(x/z, y)λ = (−1)d ·(x/z, λ)kλ = −(−1)d ·(−1)k (x′ /z ′ , λ)kλ = (x′ /z ′ , y ′)λ .
Ist c = 0, so erhält man d ≡ d′ mod 2. Mit Gleichung (3.3.11) folgt dann
′
(x/z, y)λ = (−1)d ·(x/z, λ)kλ = (−1)d ·(x′ /z ′ , λ)kλ = (x′ /z ′ , y ′)λ .
h=4:
Ist h = 4, so sind x/z, x′ /z ′ ≡ 1 mod 4. Es ist
(x/z, y)λ = (x/z, δ)λ ·(x/z, λk )λ = id·
[h ≤ 3]
1−Re(x/z)
2
·(x/z, λ)kλ = (−1)d ·(x/z, λ)kλ .
Im Fall k = h = 4 ist δy ∗ + cλ2 ≡ δ ′ y ′∗ ≡ λ3 , also ist d ≡ d′ mod 2, da y ∗ ≡
y ′∗ ≡ 1 mod (2 + 2i). Damit ist (x/z, y)λ = (x′ /z ′ , y ′)λ , weil zudem (x/z, λ)4λ = 1
ist (unabhängig von c).
Ist hingegen k < h = 4, also c = 0 nach (3.3.9), so ist (x/z, y)λ = (x′ /z ′ , y ′)λ ,
da d = d′ wegen δy ∗ ≡ δ ′ y ′∗ mod (2 + 2i) und zudem (x/y, λ)k = (x′ /y ′, λ)k nach
(3.3.11) ist.
Ist h ≤ 3, so ist k ≤ 3. Damit ist δy ∗ = y/λk modulo λ3 bekannt, da man
y mod λ6 kennt. Da y ∗ primär ist, ist y ∗ ≡ 1 mod (2 + 2i), also ist δ ∈ Z[i]×
durch δ ≡ y/λk mod λ3 bestimmt. Damit hängt (x/z, δ)λ nur von den Restklassen
x/z, y mod 8 ab, d. h.
(x/z, δ)λ = (x′ /z ′ , δ ′ )λ .
h=3:
Ist h = 3, so ist x/z ≡ 1 mod (2 + 2i). Aus x/z 6≡ 1 mod 4 folgt, daß x/z ≡
3 + 2i mod 4 ist. Somit ist
(x/z, y ∗ )λ = (−1)
∗
Im(x/z)y1
4
∗
= (−1)y1 /2 .
Ist nun k = h = 3, so ergibt (3.3.7) δy ∗ + cλ3 ≡ δ ′ y ′ ∗ mod λ4 , d. h. y1∗ ≡
y ′∗1 + 2c mod 4. Damit ist (x/z, y ∗ )λ = (−1)c ·(x′ /z ′ , y ′∗ )λ . Aus den Gleichungen
(3.3.7) und (3.3.11) folgt (x/z, y)λ = (x′ /z ′ , y ′)λ .
Ist hingegen k < h = 3, d. h. c = 0, so ist yj ≡ y1′ ∗ mod 4 (in Z), also ist
(x/z, y ∗ )λ = (x′ /z ′ , y ′∗ )λ . Damit folgt aus den Gleichungen (3.3.7) und (3.3.11)
(x/z, y)λ = (x′ /z ′ , y ′)λ .
h = 2 : Ist h = 2, so ist x/z ≡ 1 mod 2 und x/z 6≡ 1 mod (2 + 2i). Dann ist −x/z ≡
1 mod (2 + 2i), d. h. −x/z ist primär. Des weiteren ist k ≤ 2, also ist δy ∗ ≡
δ ′ y ′∗ ≡ mod4. Also sind −x/z, y jeweils modulo 4 bekannt. Aus
(x/z, y ∗ )λ = (−x/z, y ∗ )λ ·(i2 , y ∗ )λ = (−1)
∗
Im(−x/z)y1
4
·(−1)
∗
1−y0
2
folgt somit, daß (x/z, y ∗ )λ = (x′ /z ′ , y ′ ∗ )λ ist. Des weiteren folgt aus (3.3.11), daß
(x/z, λ)kλ = (x′ /z ′ , λ)kλ ist, da entweder k = 2 oder k = 1 (=⇒ c = 0) ist. Mit
Gleichung (3.3.7) folgt dann (x/z, y)λ = (x′ /z ′ , y ′)λ .
3.3
Alternative Formulierung des quartischen Reziprozitätsgesetzes
h=1:
33
Ist h = 1, so ist k = 1. Es ist x/z ≡ qy ≡ 1 mod λ und x/z 6≡ 1 mod 2, insbesondere existiert e ∈ {1, 3}, so daß ie x/z primär ist. Man zerlegt
(x/z, y ∗ )λ = (ie x/z, y ∗ )λ ·(i4−e , y ∗)λ ,
wobei man (ie ·x/z, y ∗ )λ = (ie ·x′ /z ′ , y ′∗ )λ analog zum Fall h = 2 zeigt.
Aus (3.3.7) erhält man δy ∗ +c(4+4i) ≡ δ ′ y ′∗ mod 8, und wegen δ = δ ′ insbesondere
y ∗ + c(4 + 4i) ≡ y ′∗ mod 8. Damit ist
(i4−e , y ∗ )λ = (y ∗ , i4−e )3λ = (y ∗ , i)eλ = ie·
∗
1−y0
2
= ie·
∗
1−y ′ 0 −4c
2
∗
= (−1)c ·(i4−e , y ′ )λ .
Mit Hilfe von (3.3.11) folgt nun (x/z, y)λ = (x′ /z ′ , y ′)λ .
Aufgrund der Gleichungen (3.2.3), (3.2.4) sowie aufgrund der beiden Lemmata 3.13 und
3.14 können wir nun das zentrale Theorem formulieren, das die Grundlage für unseren
schnellen Algorithmus zur Berechnung des quartischen Restsymbols liefert:
Theorem 3.15
Seien xj−1 , xj ∈ Z[i] relativ prim zueinander und vλ (xj−1 ) = 0. Seien xj−1 = qj xj +
xj+1 , xj = qj+1 xj+1 + xj+2 Schritte einer Divisionskette (bzw. eines Euklidabstiegs).
Dann gilt
i
h
 xj+1 · (x , x )
wenn λ ∤ xj ,
j−1
j λ
xj
xj
= hx i
 j+2 · (x /x , x ) wenn λ | x ,
xj−1
j−1
j+1
j λ
j
xj+1
und die auftretenden Hilbert-Symbole (xj−1 , xj )λ bzw. (xj−1 /xj+1 , xj )λ hängen ausschließlich von der Z[i]/8Z[i]-Restklasse der Operanden xj−1 , xj , qj ab.
Definition 3.6
Seien xj−1 , xj ∈ Z[i] relativ prim zueinander und vλ (xj−1 ) = 0. Sei xj−1 = qj xj + xj+1 ein
Euklidschritt. Dann definiere
τ (xj−1 , xj ) := (xj−1 , xj )λ ,
wenn λ ∤ xj ;
σ(xj−1 , xj , qj ) := (xj−1 /xj+1 , xj )λ , wenn λ | xj .
Bemerkung. Die Aussage dieses Theorems 3.15, daß durch die Z[i]/8Z[i]-Restklasse
der Operanden das Hilbertsymbol (bzw. τ oder σ) bestimmt ist, kann nicht weiter
verschärft werden, da σ für Z[i]/∆Z[i]-Restklassen, ∆ := 4 + 4i, nicht wohldefiniert ist.
Dieses wird aus den folgenden Beispielen deutlich, bei denen jeweils die entsprechenden
σ-Restklassenoperanden kongruent modulo ∆ sind, aber die σ-Werte (d. h. die entsprechenden Hilbertsymbole) verschieden sind.
σ(1, 1 + i, i) = i = − σ(1 + ∆, 1 + i, i),
σ(1, 0, i) = 1= − σ(1, ∆, i),
σ(1, 1 + i, 0) = 1= − σ(1, 1 + i, ∆).
34
3
Das quartische Reziprozitätsgesetz
Abschließend geben wir noch ein Lemma an, das besagt, daß bei einem Euklidabstieg
xj−1 = qj xj + xj+1 , 1 ≤ j ≤ r, von x0 , x1 ∈ Z[i] in der Restsequenz x0 , x1 , . . . , xr , xr+1 die
Nachbarn eines durch λ teilbaren xj nicht durch λ teilbar sind. Mit der Voraussetzung,
daß x0 nicht durch λ teilbar ist, erhält man damit induktiv, daß die „Nenner“ der in
Theorem 3.15 auftretenden Restsymbole für 1 ≤ j ≤ r nicht durch λ teilbar sind.
Lemma 3.16
Seien x, y ∈ Z[i], gcd(x, y) ∼ 1. Sei x0 := x, x1 := y, und sei xj−1 = qj xj + xj+1 ein
Euklidschritt für 1 ≤ j ≤ r, wobei xr ∼ xr+1 ∼ 1 ist, d. h. der letzte Euklidschritt bei der
g.g.T.-Berechnung wird wieder (wie auch bei der Berechnung des Jacobi-Symbols, vgl.
Abschnitt 2.2.2) so modifiziert, daß als Rest eine Einheit auftritt. Dann gilt für 1 ≤ j ≤ r
(1 + i) | xj
=⇒
(1 + i) ∤ xj−1 , xj+1 .
Beweis. Sei 1 + i ein Teiler von xj .
Wäre dann 1 + i auch ein Teiler von xj+1 , so folgte aus xj−1 = qj xj + xj+1 , daß 1 + i
ein Teiler von xj−1 ist. Wenn 1 + i ein Teiler von xj−1 wäre, so folgte für j ≥ 2 aus
xj−2 = qj−1 xj−1 + xj , daß 1 + i ein Teiler von xj−2 ist. Induktiv (bzw. unmittelbar für
j = 1) erhält man, daß dann 1 + i sowohl x als auch y teilt — ein Widerspruch zu
gcd(x, y) ∼ 1.
Kapitel 4
Algorithmus zur Berechnung des
quartischen Restsymbols
Wir haben nun alle Vorbereitungen getroffen, um einen Algorithmus zur schnellen Berechnung des quartischen Restsymbols formulieren zu können. Dabei sei mit z ′ ∈ Z[i]/8Z[i]
die zu z ∈ Z[i] gehörende Restklasse bezeichnet:
z ′ = z0′ + iz1′ ≡ z mod 8, z0′ , z1′ ∈ {0, . . . , 7}.
Algorithmus 4.1 Berechnung des quartischen Restsymbols
algorithm QUARTIC(x, y)
Zu Gaußschen Zahlen x, y ∈h Zi[i], 1 + i teile nicht x, berechnet Algorithmus QUARTIC
y
das quartische Restsymbol x .
Q1: x0 := x, x1 := y;
Q2: Berechne (mit einem schnellen g.g.T.-Algorithmus) einen Euklidabstieg zu x0 , x1 mit
Euklidschritten xj−1 = qj xj + xj+1 , 1 ≤ j ≤ r, wobei xr = xr+1 oder xr = −xr+1 das
Abbruchkriterium ist; dabei speichere die qj ab.
Q3: if xr 6∼ 1 then
return 0;
\\ gcd(x, y) 6∼ 1
else
\\ gcd(x, y) ∼ 1
′ xr+1
Q4:
j := r, s :=
= 1;
x′r
Q5:
Q6:
Q7:
Q8:
while j > 0 do
x′j−1 := qj′ x′j + x′j+1 ;
if (1 + i) | x′j−1 then
′
x′j−2 := qj−1
x′j−1 + x′j ;
′
′
s := s·σ(xj−2 , x′j−1 , qj−1
), j := j − 2;
else
s := s·τ (x′j−1 , x′j ), j := j − 1;
return s;
35
x′
\\ Invariante s = j+1
x′j
\\ j ≥ 2, da (1 + i) 6 | x
\\ j ≥ 0
\\ j ≥ 0
36
4
Algorithmus zur Berechnung des quartischen Restsymbols
Proposition 4.1
h i
y
Seien x, y ∈ Z[i], 1 + i sei kein Teiler von x. Dann gilt: QUARTIC(x, y) berechnet x .
h i
y
Beweis. Wenn x, y nicht teilerfremd sind, d. h. wenn xr 6∼ 1, dann ist x = 0.
′ xj+1
Seien nun also x, y teilerfremd. Es ist zu zeigen, daß s =
eine Invariante der
x′j
Schleife ist. Dann folgt nach allen Schleifeniterationen (j = 0) in Q8:
′ ′ xj+1
x
y
= ′1 =
s=
,
′
xj
x0
x
da alle Berechnungen zu s nur von den auftretenden Restklassen Z[i]/8Z[i] abhängen
(siehe Theorem
3.15).
x′j+1
. Wir zeigen nun, daß dann in Abhängigkeit von x′j−1 ein s für ein
Es gelte s =
x′j
kleineres j berechnet wird (Q6 bzw. Q7 im Algorithmus):
Wenn 1 + i ein Teiler von x′j−1 ist, dann ist x′j nach Lemma 3.16 nicht durch 1 + i teilbar.
Es folgt aus Theorem 3.15:
′ ′ xj−1
xj+1
′
·σ = ′
,
σ := σ(x′j−2 , x′j−1 , qj−1
),
s·σ =
′
xj
xj−2
wobei nach Lemma 3.16 x′j−2 nicht durch 1 + i teilbar ist. Wenn 1 + i kein Teiler von x′j−1
ist, dann folgt aus Theorem 3.15:
′ ′ xj+1
xj
s·τ =
·
τ
=
,
τ := τ (x′j−1 , x′j ).
′
′
xj
xj−1
Induktiv erhält man, daß bei jedem Schleifendurchlauf 1 + i kein Teiler von xj ist.
Theorem 4.2
Seien x, y ∈ Z[i] gegeben, 1+i sei kein Teiler von x. Der Betrag der Real- und Imaginärteile
von x und y sei durch 2n beschränkt. Dann ist die Laufzeit zur Berechnung des quartischen
Restsymbols mittels Algorithmus QUARTIC durch O(µ(n) log n) beschränkt.
Insbesondere
benötigendie Schritte Q3 bis Q8 des Algorithmus QUARTIC lediglich die
P
Laufzeit O
j size(qj ) .
Beweis. Benutzt man zur g.g.T.-Berechnung von x, y in Q2 den in 2.1.3vorgestellten
schnellen g.g.T.-Algorithmus CIDESCENT, so erfordert dieser Schritt O(µ(n) log n) Laufzeit.
Das Berechnen von qj′ aus der Kodierung von qj benötigt die Laufzeit, die notwendig ist,
um qj zu lesen, also O(size(qj )) Zeit. Die Berechnung von x′j−1 benötigt dann eine konstante Laufzeit, da die dazu verwendeten Operanden qj′ , x′j , x′j+1 beschränkte (und zudem
kleine) Real- und Imaginärteile haben. Ob x′j−1 durch 1 + i teilbar ist, ist in konstanter
Zeit durch Vergleich jeweils des untersten Bits von Real- und Imaginärteil von x′j−1 zu
ermitteln. Die Abbildungen σ bzw. τ können als endliche Tabellen angesehen werden, so
daß das Ermitteln der entsprechenden Einheit auch nur konstante Zeit erfordert.
Anhang A
Implementierung des Algorithmus
Die dem Algorithmus zugrundeliegende Routine ist eine schnelle g.g.T.-Berechnung in
Z[i] mit Abspeicherung der Quotientensequenz, aus welcher dann recht elementar das
quartische Restsymbol berechnet wird. Da wir in [Wei99] einen asymptotisch schnellen
g.g.T.-Algorithmus für Z[i] entwickelt und in TPAL (“Turing Processing Assembly Language”, für eine Beschreibung der Sprache und des Berechnungsmodells siehe [SGV94])
implementiert haben, implementieren wir den Algorithmus QUARTIC ebenfalls in TP,
um die schnelle g.g.T.-Routine DCIGCDQ benutzen zu können.
A.1
TP-Quellcode der Routine QUARTIC
h i
y
Die Routine QUARTIC berechnet zu x, y ∈ Z[i], 1 + i ∤ x, das quartische Restsymbol x .
Dazu wird zuerst der schnelle g.g.T.-Algorithmus DCIGCDQ aufgerufen, der einen g.g.T.
g ∼ gcd(x, y) von x und y berechnet und die dabei ermittelte Quotientensequenz auf
Band 3 ablegt. Anschließend wird überprüft, ob g ∼ 1 ist. Wenn x und y hingegen
nichttriviale Teiler besitzen, so ist das Restsymbol gleich 0.
Wenn aber x und y teilerfremd sind, dann wird genau so vorgegangen, wie bei Algorithmus
QUARTIC beschrieben: Setze xr+1 := g, xr := g. Aus dem g.g.T. und der Quotientensequenz werden sukzessive Restklassen x′j berechnet, die jeweils die Z[i]/8Z[i]-Restklasse
von xj repräsentieren. In Abhängigkeit davon, ob ggf. ein auftretendes x′j durch 1 + i
teilbar ist oder nicht, wird eine Modifikation gemäß Theorem 3.15 bzw. gemäß Korollar
B.10 vorgenommen. Die dabei auftretenden Abbildungen σ, τ sind durch TP-Tabellen
realisiert, ebenso die Multiplikation bzw. Addition in Z[i]/8Z[i].
Seien f2 , f3 Abbildungen, die durch Tabellen realisiert werden, und die von 2 bzw. 3
Restklassen Z[i]/8Z[i] abhängen. Die Berechnung der Abbildung mittels Tabellenlesen
geschieht über eine Indexberechnung des Tabelleneintrages (natürliche Zahl) wie folgt:
f2 (x′ , y ′) = TABf2 [x′0 + 23 x′1 + 26 y0′ + 29 y1′ ],
f3 (x′ , y ′, q ′ ) = TABf3 [x′0 + 23 x′1 + 26 y0′ + 29 y1′ + 212 q0′ + 215 q1′ ],
wobei x′ , y ′, q ′ ∈ Z[i]/8Z[i] und x′j , yj′ , qj′ ∈ {0, . . . , 7} für j ∈ {0, 1} sind. Die Tabellen
ZIAD8, ZIML8 und TAU hängen jeweils von zwei Restklassen ab und haben je 212 = 4096
Einträge; die Tabelle SIGMA hängt von drei Restklassen ab und besitzt 218 = 262144
Einträge. Bei den Tabellen TAU und SIGMA sind nicht für alle Indizes gültige Einträge
definiert.
37
38
A
Implementierung des Algorithmus
x ∈ Z[i], 1 + i ∤ x, im ci-code auf T1 , p1 auf dem Topwort;
y ∈ Z[i] im ci-code auf T2 , p2 auf dem Topwort; p3 , p4 stacky.
Rückgabe: hg ∼i gcd(x, y) im ci-code auf T1 und T2 , p1 , p2 jeweils auf dem Topwort;
y
K
x = E·i , d. h. E = 0 genau dann, wenn das quartische Restsymbol
gleich 0 ist (x und y sind nicht teilerfremd); andernfalls ist E = 1, und K
gibt den Exponenten an, so daß iK dem Wert des Restsymbols entspricht;
p3 , p4 wie vorher (durch den g.g.T.-Algorithmus berechnete Quotientensequenz auf T3 wird gelöscht).
Laufzeit: ≤ O(µ(n) log n), sofern size(x), size(y) ≤ n.
Eingabe:
DEF .bits1 =3 .bits2 =6 ,
DEF .bitmask1 =7 \
.bitmask2 =63 ,
P.QUARTIC: JP.DCIGCDQ,
#ifdef TIMING
TI0,
TA+2, TCA+1, TCA+1, TCA+1,
TCA+1,
TA+253,
LA =0, P3-,
: LC 3-, JHC /, P3-C, AD =1,
AD .C, J,
: P3+2, P3+A, JA Z.NOQUOT,
LC .A,
: TU+1, JCM,
NOQUOT:
TA+1, TI1,
3 Bits pro Real- bzw. Imaginärteil
bitmaskX = 2bitsX − 1
Berechnung von g := gcd(x, y), g → T1 , T2
4 neue Timer tk+3 , . . . , tk+6
tk+3 aktueller Timer
Anzahl Worte
Quotientensequenz durchgehen
tk+3 := A
tk+4 aktueller Timer
#endif
IML0:
IML1:
LA 1, LB 2, JPNEQ.ALARM,
LK =0, LB =2, JNLS.GNEQU,
P1-, P2-, K P, JA .IML1,
LA 1, LB 2, JPNEQ.ALARM,
LB =1, JNEQ.GNEQU,
P1-, P2-, K P, LA 1, LB 2,
JPNEQ.ALARM,
LB =1, JEQ.POK,
LB =-1, JEQ.POK, J.GNEQU,
LA 1, LB 2, JPNEQ.ALARM,
LB =1, JEQ/,
LB =-1, JEQ/, J.GNEQU,
: P1-, P2-, K P, LA 1, LB 2,
JPNEQ.ALARM, JA .GNEQU,
Imaginärteile unterschiedlicher Länge?
A ≥ 2 : g.g.T. keine Einheit
Realteile unterschiedlicher Länge?
A 6= 1 : g.g.T. keine Einheit
Realteile lesen
Realteile unterschiedlich?
Realteil gleich 1?
Realteil gleich -1?
unterschiedliche Imaginärteile?
Imaginärteil gleich 1?
Imaginärteil gleich -1?
Realteillängen lesen
Realteillänge ungleich 0
A.1
TP-Quellcode der Routine QUARTIC
POK:
QRLOOP:
39
P1+K, P2+K, LK =0,
P0+2, ADR .xjp1 .xj ,
Bandzeiger p1 , p2 zurücksetzen
Platz für x′j+1 , x′j
LCB 1, P1-B, LB 1-,
SB Hbits1,
LMA 1, P1-A, LA 1,
AND =bitmask1, OR .B,
AND =bitmask2,
A T xj, A T xjp1,
P1+M, P1+, P1+C,
P3-,
B : unterstes Wort vom Imaginärteil um
bits1 geshiftet
A : unterstes Wort vom Realteil
nur 3 Bits berücksichtigen
nur 6 Bits insgesamt
auf T0 speichern
Bandzeiger p1 zurücksetzen
zum obersten Quotienten qr gehen
LB 3, JHB .QREND,
Abbruch, sofern Maske auf T3 erreicht
#ifdef TIMING
TA+1, TU+1, TA+255,
Schrittzähler tk+5 erhöhen
#endif
P3-B, LB 3-, SB Hbits1,
LA 3, P3-A, LA 3-,
AND =bitmask1, OR .B,
AND =bitmask2,
Imaginärteil von qj′
Realteil von qj′
LB xj, SB Hbits2, OR .B,
LA =A +ZIML8,
Tabellenindex für Multiplikation
A : qj′ x′j
#ifdef TIMING
TA+2, TU+1, TA+254,
A : qj′
Tabellenzähler tk+6 erhöhen
#endif
LB xjp1, SB Hbits2, OR .B,
LAC =A +ZIAD8,
#ifdef TIMING
TA+2, TU+1, TA+254,
Tabellenindex für Addition
C : x′j−1 = qj′ x′j + x′j+1
Tabellenzähler tk+6 erhöhen
#endif
SA Lbits1, EOR .C, AND =1,
JA Z/,
LA xj, A T xjp1,
SA Hbits2, OR .C,
LA =A +TAU, JPHA .ALARM,
#ifdef TIMING
TA+2, TU+1, TA+254,
Re(x′j−1 ) ≡ Im(x′j−1 ) mod 2?
A = 0 ⇐⇒ (1 + i) | x′j−1
neues x′j+1
A = (x′j−1 , x′j ) Tabellenindex
Tabellenzähler tk+6 erhöhen
40
A
Implementierung des Algorithmus
#endif
AD .K, LK .A,
C T xj, J.QRLOOP,
: C T xjp1,
LB 3, JPHB .ALARM,
P3-B, LB 3-, SB Hbits1,
LA 3, P3-A, LA 3-,
AND =bitmask1, OR .B,
AND =bitmask2, LM .A,
SA Hbits2, OR .C,
LA =A +ZIML8,
#ifdef TIMING
TA+2, TU+1, TA+254,
K modifizieren
neues x′j
x′j−1 sichern
Fehler: x ist durch 1 + i teilbar
′
Imaginärteil von qj−1
′
Realteil von qj−1
′
A, M : qj−1
Tabellenindex für Multiplikation
′
A : qj−1
x′j−1
Tabellenzähler tk+6 erhöhen
#endif
LB xj, SB Hbits2, OR .B,
LA =A +ZIAD8, A T xj,
#ifdef TIMING
TA+2, TU+1, TA+254,
Tabellenindex für Addition
′
A : x′j−2 = qj−1
x′j−1 + x′j
Tabellenzähler tk+6 erhöhen
#endif
LA .M, SA Hbits2,
OR .C, SA Hbits2, OR xj,
LA =A +SIGMA, JPHA .ALARM,
#ifdef TIMING
TA+2, TU+1, TA+254,
′
A = (x′j−2 , x′j−1 , qj−1
)
Tabellenzähler tk+6 erhöhen
#endif
QREND:
AD .K, LK .A, J.QRLOOP,
K modifizieren
LA .K, AND =3, LK .A,
E 1, P0-2,
k := K mod 4
Rückgabe E·ik
#ifdef TIMING
TA+252,
tk aktiver Timer
#endif
RTS,
GNEQU:
P1+K, P2+K, P3-,
: LA 3-, JHA /, DP3-A, J,
: P3+, E 0, LK =HFF,
zum obersten Quotientenwort
Längenwort mit Topbit gesetzt?
E, K setzen
A.2
Laufzeitmessung
41
#ifdef TIMING
TA+252,
tk aktiver Timer
#endif
RTS,
END.
Man hätte statt des Tabellenlesens natürlich auch die Addition und Multiplikation in
jeweils berechnen können, allerdings erschien uns hier eine Implementierung
mit Tabellen deutlich effizienter.
Z[i]/8Z[i]
Ebenso hätte man τ : (Z[i]/8Z[i])2 → Z[i]× und σ : (Z[i]/8Z[i])3 → Z[i]× in jedem
Schritt in konstanter Zeit berechnen können, aber auch hierbei erschien uns die Variante
mit Tabellen wesentlich effizienter.
Die Tabellen zur Addition und Multiplikation in Z[i]/8Z[i] sowie σ und τ wurden mittels
eines C-Programms gemäß der angegebenen Definitionen berechnet.
A.2
Laufzeitmessung
In diesem Abschnitt diskutieren wir abschließend Laufzeitmessungen, die wir für die TPRoutine QUARTIC vorgenommen haben. Für eine genaue Beschreibung des Komplexitätsmaßes, welches TP zur Verfügung stellt, sei auf [SGV94] bzw. auf die kurze Zusammenfassung in [Wei99, Abschnitt 1.5.4] verwiesen. Aufgrund der TP-internen Einheit tu
(“time units”; Mtu steht für “mega time units”) zur Laufzeitmessung, mit der alle TPInstruktionen bewertet werden, ermöglicht das Maschinenmodell TP recht genaue Laufzeitanalysen. Die so ermittlte TP-Laufzeit eines Algorithmus ist quasi proportional zu
der realen Laufzeit auf heutigen Computern.1
Man erkennt in Tabelle A.1 (S. 42), daß sich die Laufzeit des Algorithmus QUARTIC fast
ausschließlich durch die Laufzeit der g.g.T.-Berechnung t1 ergibt. Die Laufzeit t2 zur Berechnung des Restsymbols (ohne Laufzeitbewertung des Tabellenlesens) beträgt für große
Operanden mit n ≥ 8000 Worten bei Real- und Imaginärteil weniger als ein Tausendstel der Laufzeit t1 . Asymptotisch gesehen würde sich nicht einmal etwas an der mit der
O-Notation verbundenen Konstanten ändern, wenn die Berechnung der Zusatzfaktoren
(d. h. Hilbert-Symbole) von größeren Restklassen abhängen würde. Dann könnte allerdings eine Realisierung mit Tabellen problematisch sein, da die Tabellen deutlich größer
würden. Man könnte deswegen zu einer gepackten Speicherung der Einheiten in den Tabellen übergehen oder die Hilbert-Symbole jeweils in konstanter Zeit in Abhängigkeit von
den Operandenrestklassen berechnen.
1
Eine TP-Implementierung unter dem Betriebssystem „Linux“ auf einem Computer mit Intel Pentium
II/400 MHz Prozessor erreicht eine Performance von ungefähr 300 Mtu/sec.
42
A
Implementierung des Algorithmus
Tabelle A.1: Laufzeit-/Iterationsanalyse der Routine QUARTIC bei Zufallsoperanden x, y ∈
Z[i] mit jeweils n Worten bei Real- und Imaginärteil, relativ prim zueinander und x nicht
durch 1 + i teilbar
n
1
2
4
6
8
10
20
50
100
200
500
1000
1500
2000
3000
4000
5000
8000
10000
20000
40000
100000
200000
400000
1000000
g.g.T.-Berechnung
(Berechnung der Quotientensequ.)
Laufzeit
EuklidLänge
schritte Quot.Sequ.
Mtu
0.1
0.2
0.6
1.2
1.9
2.4
5.6
17.4
41.9
100.5
360.5
827.2
1443.3
2040.4
3334.0
4940.5
6501.3
11279.2
15293.5
35486.2
82176.5
258151.4
597068.3
1380543.6
3775554.5
Anzahl
21
40
77
126
176
226
447
1156
2263
4629
11443
22846
34489
45724
69059
91309
114133
183288
228617
456532
913279
2303150
4606640
9215861
22884201
Wortanzahl
77
153
292
482
674
864
1703
4436
8696
17799
44019
87792
132807
175797
265554
351124
438447
704708
878750
1754931
3510377
8861323
17726255
35463173
87993673
Berechnung Restsymbol
aus Quotientensequenz
Laufzeit
Schleifen- Tabelleniterationen
lesen
Mtu
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.1
0.1
0.3
0.7
1.4
2.1
2.7
4.1
5.4
6.8
10.9
13.6
27.2
54.4
138.0
276.0
552.3
1366.2
Anzahl
14
26
51
89
131
163
314
828
1633
3317
8242
16521
24868
32913
49852
65713
82232
132284
164474
328498
657137
1666964
3332834
6669936
16491973
Anzahl
56
106
209
355
507
639
1262
3320
6497
13347
32964
65871
99702
131697
199436
263069
328496
528594
658122
1314366
2628949
6666222
13332240
26675468
65972091
Algorithmus
QUARTIC
Gesamtlaufzeit2
Mtu
0.1
0.2
0.6
1.2
1.9
2.4
5.6
17.5
42.1
100.8
361.5
829.1
1446.2
2044.1
3339.7
4948.0
6510.7
11294.3
15312.4
35523.9
82252.0
258342.8
597451.0
1381309.3
3777448.5
Wir wollen nun noch genauer untersuchen, wie die Laufzeit t2 bzw. die Gesamtlaufzeit
t von der Laufzeit bzw. der Anzahl der Euklidschritte der g.g.T.-Berechnung abhängen.
Dazu führen wir zuerst einige Bezeichnungen ein:
ES :
QS :
SI :
TL :
Anzahl Euklidschritte,
Länge der Quotientensequenz,
Anzahl der Schleifeniterationen bei der Berechnung des
Restsymbols aus der Quotientensequenz,
Anzahl Tabellenlesen.
Nun kann man aus Tabelle A.1 ablesen, daß QS ≈ 3.85·ES ist. Dieses erklärt sich
dadurch, daß die berechneten Quotienten fast immer recht klein sind, aber ungleich 0 sind,
2
Die Gesamtlaufzeit ergibt sich als Summe der Laufzeit der g.g.T.-Berechnung, der Laufzeit zur Berechnung des Restsymbol aus der Quotientensequenz und der angenommen Zeit für das Tabellenlesen,
wobei einmaliges Tabellenlesen mit 8 tu (Erfahrungswert aus Implementierungsdetails des Tabellenlesens)
bewertet wird.
A.2
Laufzeitmessung
43
so daß dann ein im ci-code abgespeicherter Quotient 3 bis 4 Worte benötigt (abhängig
davon, ob sowohl Real- als auch Imaginärteil ungleich 0 sind).
Des weiteren ist t2 ≈ QS·15.57 tu, d. h. im Durchschnitt benötigt die Behandlung eines
Quotienten bei der Berechnung des Restsymbols 15.57 tu (ohne Laufzeit für das Tabellenlesen).
Pro Schleifeniteration erfolgt entweder dreimaliges oder fünfmaliges Tabellenlesen, abhängig davon, ob der eine Operand durch 1 + i teilbar ist oder nicht. Nun ist eine zufällige
Gaußsche Zahl mit Wahrscheinlichkeit 12 durch 1 + i teilbar, so daß im Durchschnitt viermaliges Tabellenlesen pro Iteration notwendig ist, was durch Tabelle A.1 bestätigt wird:
T L ≈ 4·SI.
Offensichtlich ist die Anzahl der Schleifeniterationen kleiner als die Anzahl der Euklidschritte (wobei auch ein Vertauschen der Operanden als Euklidschritt mitgezählt wird),
da in ca. der Hälfte der Schleifeniterationen zwei aufeinanderfolgende Quotienten der
Quotientensequenz zur Berechnung benötigt werden. Man erhält aus Tabelle A.1: ES ≈
1.38·SI.
Insgesamt kann man aus diesen Überlegungen die ungefähre typische Laufzeit t mit
t2 ≈ ES·3.85·15.57 tu,
t ≈ t1 + t2 + T L·8 tu ≈ t1 + ES·3.85·15.57 tu + ES/1.38·4·8 tu
≈ t1 + ES·83.13 tu
angeben.
44
A
Implementierung des Algorithmus
Anhang B
Elementarer Beweis des Theorems 3.15
Während wir im Hauptteil dieser Arbeit zum Beweis des Theorems 3.15 tiefliegende zahlentheoretische Hilfsmittel (Klassenkörpertheorie, Hilbert-Symbol) benutzt haben, wollen
wir nun noch einen elementaren Beweis des Theorems 3.15 darstellen, der allerdings an
einigen Stellen recht handwerklich ist und längere Rechnungen enthält.
Definition B.1
Seien x, y ∈ Z[i], x nicht durch 1 + i teilbar, y durch 1 + i teilbar. Für k ∈ Z definiere
z (k) := ky − x,
w (k) := iky − x.
Lemma B.1
Seien x, y ∈ Z[i], x nicht durch 1 + i teilbar, y durch 1 + i teilbar. Dann ist
(k)
(k)
(k)
(k)
z0 6≡ z1 mod 2 und w0 6≡ w1 mod 2.
(k)
Beweis. Es ist x0 6≡ x1 , y0 ≡ y1 mod 2. Für j ∈ {0, 1} gilt zj
(k)
= kyj − xj .
(k)
z0 = ky0 − x0 ≡ ky1 − x0 6≡ ky1 − x1 = z1 mod 2.
Für w (k) erhält man als Zerlegung in Real- und Imaginärteil
w (k) = iky − x = ik(y0 + iy1 ) − (x0 + ix1 ) = −ky1 − x0 + i(ky0 − x1 ).
Damit gilt
(k)
(k)
w0 = −ky1 − x0 ≡ ky1 − x0 6≡ ky0 − x1 = w1 mod 2.
Nun werden wir eine wichtige Proposition beweisen, die angibt, um welche Einheit sich
y
y
y
von
bzw. von
((1 + i) ∤ x, (1 + i) | y)
x
y+x
iy + x
45
46
B
Elementarer Beweis des Theorems 3.15
unterscheidet. Sei nun x = qy + z. Iteriert man solche Reduktionschritte geeignet (und
multipliziert die dabei auftretenden Zusatzfaktoren, d. h. Einheiten), so erhält man als
Zusatzfaktor die Einheit, um die sich
y
y
y
y
von
und dieses wiederum von
=
x
−q0 y + x
−iq1 y + (−q0 y + x)
z
unterscheidet.
Proposition B.2
Seien x, y ∈ Z[i], wobei x0 6≡ x1 mod 2 und y0 ≡ y1 mod 2 (d. h. 1 + i teilt y) ist. Sei
k ∈ Z. Dann existieren eindeutig εk , δk ∈ Z[i]× , so daß εk (ky − x) bzw. δk (iky − x) primär
sind. Des weiteren gilt
3 εk+1
y
−εk
y
=
·
,
sk
εk (ky − x)
εk (ky − x)
εk+1((k + 1)y − x)
εk+1 ((k + 1)y − x)
3 y
iδk+1
y
−iδk
=
·
,
tk
δk (iky − x)
δk (iky − x)
δk+1 (i(k + 1)y − x)
δk+1 (i(k + 1)y − x)
wobei sk , tk ∈ {−1, +1} definiert sind als
−1
εk (ky − x)
εk+1 ((k + 1)y − x)
,
sk :=
εk (ky − x)
εk+1 ((k + 1)y − x)
−1
δk (iky − x)
δk+1 (i(k + 1)y − x)
.
tk :=
δk (iky − x)
δk+1 (i(k + 1)y − x)
Beweis. Nach Lemma B.1 haben Real- und Imaginärteil von ky − x bzw. iky − x
unterschiedliche Parität, also existieren nach Korollar 3.2 eindeutig εk , δk ∈ Z[i]× , so daß
εk (ky − x) bzw. δk (iky − x) primär sind.
Unter Verwendung von Theorem 3.7 erhält man
y
y + ε−1
(k + 1)y − x
k ·εk (ky − x)
=
=
εk (ky − x)
εk (ky − x)
εk (ky − x)
3 εk+1((k + 1)y − x)
εk+1
·
=
εk (ky − x)
εk (ky − x)
3
εk (ky − x)
εk+1
sk ·
=
εk (ky − x)
εk+1((k + 1)y − x)
3
εk (ky − x) − (ε−1
εk+1
k+1 εk )εk+1 ((k + 1)y − x)
sk ·
=
εk (ky − x)
εk+1 ((k + 1)y − x)
3
−εk y
εk+1
sk ·
=
εk (ky − x)
εk+1((k + 1)y − x)
3 εk+1
y
−εk
=
·
.
sk
εk (ky − x)
εk+1((k + 1)y − x)
εk+1 ((k + 1)y − x)
y
i3
iy
=
·
δk (iky − x)
δk (iky − x)
δk (iky − x)
47
iy + δk−1 ·δk (iky − x)
i3
·
=
δk (iky − x)
δk (iky − x)
3
i(k + 1)y − x
i
·
=
δk (iky − x)
δk (iky − x)
3 iδk+1
δk+1 (i(k + 1)y − x)
=
·
δk (iky − x)
δk (iky − x)
3 δk (iky − x)
iδk+1
tk ·
=
δk (iky − x)
δk+1 (i(k + 1)y − x)
3 −1
δk (iky − x) − (δk+1
δk )δk+1 (i(k + 1)y − x)
iδk+1
tk ·
=
δk (iky − x)
δk+1 (i(k + 1)y − x)
3 iδk+1
−iδk y
=
tk ·
δk (iky − x)
δk+1 (i(k + 1)y − x)
3 y
−iδk
iδk+1
·
.
tk
=
δk (iky − x)
δk+1 (i(k + 1)y − x)
δk+1 (i(k + 1)y − x)
Definition B.2
Sei x ∈ Z[i] primär, y ∈ Z[i] durch 1 + i teilbar. Sei k ∈ Z. Definiere R(k+1) , I (k+1) ∈ Z[i]×
wie folgt1 als
3 εk+1
−εk
(k+1)
(k+1)
R
:= R
(x, y) :=
,
sk
εk (ky − x)
εk+1((k + 1)y − x)
3 −iδk
iδk+1
(k+1)
(k+1)
.
tk
I
:= I
(x, y) :=
δk (iky − x)
δk+1 (i(k + 1)y − x)
Des weiteren definiere Rk , Ik ∈ Z[i]× als
(Q
k
R(κ)
Rk := Rk (x, y) := Qκ=1
0
(κ) −1
κ=k+1 R
(Q
k
I (κ)
Ik := Ik (x, y) := Qκ=1
0
(κ) −1
κ=k+1 I
wenn k ≥ 0,
wenn k < 0,
wenn k ≥ 0,
wenn k < 0.
Bemerkung. Nach Proposition B.2 gilt
y
y
(k+1)
=R
·
,
εk (ky − x)
εk+1 ((k + 1)y − x)
y
y
(k+1)
=I
·
.
δk (iky − x)
δk+1 (i(k + 1)y − x)
Induktiv erhält man aus diesen Gleichungen
y
y
y
y
= Rk ·
,
= Ik ·
.
x
εk (ky − x)
x
δk (iky − x)
1
Zur verkürzenden Schreibweise werden wir die Argumente x, y von R(k+1) , I (k+1) häufig weglassen.
48
B
Elementarer Beweis des Theorems 3.15
Wir werden nun explizite Ausdrücke für εk , δk ∈ Z[i]× sowie Re(εk z (k) ), Re(δk w (k) ) angeben, um damit Aussagen über Rk , Ik ∈ Z[i]× zu beweisen. Ist x = qy + z, so werden
wir Rq0 und Iq1 (zu verschiedenen Parametern) benutzen, um daraus den Zusatzfaktor zu
berechnen, um den sich
y
y
y
und
=
x
x − qy
z
unterscheiden.
Lemma B.3
Seien x, y ∈ Z[i], x primär und y durch 1 + i teilbar. Sei k ∈ Z. Seien εk , δk ∈ Z[i]× , so
daß εk ·z (k) und δk ·w (k) primär sind. Es gilt: εk = εk+2 und δk = δk+2 . Insbesondere ist
ε0 = δ0 = −1.
Beweis. Es gilt z (k+1) = (k + 1)y − x = y + z (k) . Nach Proposition 3.1 erhält man
(k+1)
+z1
(k)
(k)
εk+1 = iz0
= iz0
(k+1)
(k+1) 2
−z1
(k) 2
+z1 −z1
+3
(k)
= iy0 +z0
(k)
(k)
+3+y0 +y1 −y12 −2y1 z1
2
2
2
2
εk+2 = iy0 +y1 −y1 −2(k+1)y1 +2x1 y1 ·εk+1
(k)
+y1 +z1 −(y1 +z1 )2 +3
2
2
= iy0 +y1 −y1 −2ky1 +2x1 y1 ·εk ,
2
2
= iy0 +y1 −y1 −2(k+1)y1 +2x1 y1 ·iy0 +y1 −y1 −2ky1 +2x1 y1 ·εk
2
2
2
= i2(y0 +y1 )−2y1 −4ky1 −2y1 +4x1 y1 ·εk = εk ,
da y0 + y1 ≡ 0 mod 2 ist.
(k)
(k)
Analog zeigt man die Behauptung für δk . Es gilt w (k+1) = w (k) +iy = w0 −y1 +i(w1 +y0 ).
Nach Proposition 3.1 erhält man
(k+1)
δk+1 = iw0
(k)
= iw0
(k+1)
+w1
(k)
(k) 2
+w1 −w1
(k+1) 2
−w1
+3
(k)
= iw0
(k)
(k)
+3+y0 −y1 −y02 −2y0 w1
2
2
2
2
(k)
−y1 +w1 +y0 −(w1 +y0 )2 +3
δk+2 = iy0 −y1 −y0 −2(k+1)y0 +2x1 y0 ·δk+1
2
2
2
= iy0 −y1 −y0 −2ky0 +2x1 y0 ·δk ,
2
= iy0 −y1 −y0 −2(k+1)y0 +2x1 y0 ·iy0 −y1 −y0 −2ky0 +2x1 y0 ·δk
2
2
= i2(y0 −y1 )−4ky0 −4y0 +4x1 y0 ·δk = δk ,
da y0 − y1 ≡ 0 mod 2 ist.
Seien x, y ∈ Z[i], x primär und y durch 1 + i teilbar. Die zu z (k) primäre Gaußsche Zahl
sei mit ẑ (k) := εk z (k) bezeichnet. Konkret erhalten wir mit Hilfe der Rechnung im Beweis
zu Lemma B.3


k gerade,
x − ky
2 −2(k−1)y 2 +2x y
(k)
y
+y
−y
0
1
1
1
1
1
ẑ = εk (ky − x) = i
εk−1 (ky − x)


y0 +y1 −y12
=i
(x − ky)
k ungerade,
49
denn falls k ungerade ist, ist k − 1 gerade und εk−1 = −1, so daß −2(k − 1)y12 ≡ 0 mod 4
(k)
und 2x1 y1 ≡ 0 mod 4 ist. Damit läßt sich ẑ0 := Re ẑ (k) explizit angeben als


k gerade,
x0 − yky+y0
0
1
(k)
ẑ0 = (−1) 2 (x0 − ky0 ) k ungerade, y1 gerade,

y0 +y1

(−1) 2 (x1 − ky1 ) k ungerade, y1 ungerade,
da −y12 kongruent 0, 3 mod 4 (in Abhängigkeit von der Parität von y1 ) und y0 + y1 gerade
ist.
Die zu w (k) primäre Gaußsche Zahl sei mit ŵ (k) := δk w (k) bezeichnet. Die Berechnung
(k)
(k)
von ŵ0 verläuft ganz analog zu der Berechnung von ẑ0 . Konkret erhalten wir mit Hilfe
der Rechnung im Beweis zu Lemma B.3


k gerade,
x − iky
2
2
(k)
w = δk (iky − x) = iy0 −y1 −y0 −2(k−1)y0 +2x1 y0 δk−1 (iky − x)

2

= iy0 −y1 −y0 (x − iky)
k ungerade,
denn falls k ungerade ist, ist k − 1 gerade und δk−1 = −1, so daß −2(k − 1)y02 ≡ 0 mod 4
(k)
und 2x1 y0 ≡ 0 mod 4 ist. Damit läßt sich ŵ0 := Re ŵ (k) explizit angeben als


k gerade,
x0 + yky−y1
0
1
(k)
ŵ0 = (−1) 2 (x0 + ky1 ) k ungerade, y0 gerade,

y0 −y1

(−1) 2 (x1 − ky0 ) k ungerade, y0 ungerade,
da −y02 kongruent 0, 3 mod 4 (in Abhängigkeit von der Parität von y0 ) und y0 − y1 gerade
ist.
Lemma B.4
Sei k ≡ 0 mod 4. Seien x ∈ Z[i] primär und y ∈ Z[i] durch 1 + i teilbar fest gewählt.
Dann ist R(k) ·R(k+1) ·R(k+2) ·R(k+3) ∈ {−1, +1} unabhängig von k.
Beweis. Zum Beweis werden wir die einzelnen Restsymbole geeignet berechnen.
R
(k)
R(k+1)
R(k+2)
R(k+3)
(k−1) −1 ẑ (k)
ẑ
−εk−1
,
= (k−1)
ẑ
ẑ (k−1)
ẑ (k)
ẑ (k)
3 (k+1) (k) −1 ẑ
ẑ
−εk
εk+1
,
=
ẑ (k)
ẑ (k)
ẑ (k+1)
ẑ (k+1)
3 (k+2) (k+1) −1 εk+2
ẑ
ẑ
−εk+1
= (k+1)
,
ẑ
ẑ (k+1) ẑ (k+2)
ẑ (k+2)
3 (k+3) (k+2) −1 ẑ
ẑ
−εk+2
εk+3
.
= (k+2)
ẑ
ẑ (k+2) ẑ (k+3)
ẑ (k+3)
εk
3 Setze j := y1 mod 2, j ∈ {0, 1}. Dann ist für ungerades l ∈ Z ẑ0 = (−1) 2 (xj − lyj ).
Zuerst berechnen wir das Produkt der ersten und letzten Faktoren der vier Gleichungen.
Dabei fassen wir für κ ∈ {0, 1, 2} den letzten Faktor obiger Darstellung von R(k+κ) mit
dem ersten Faktor von R(k+κ+1) zusammen, da εk+κ−1 = εk+κ+1 ist. Dabei erhalten wir
(l)
y0 +y1
50
B
Elementarer Beweis des Theorems 3.15
jeweils −ε4k+κ−1 = −1 im Restsymbol. Den ersten Faktor von R(k) und den letzten Faktor
von R(k+3) behandeln wir getrennt.
3 3 3 3 −εk−1 εk+1
−εk
εk+2
−εk+1
εk+3
−εk+2
ẑ (k−1)
ẑ (k)
ẑ (k)
ẑ (k+1) ẑ (k+1)
ẑ (k+2)
ẑ (k+2)
ẑ (k+3)
−1
−1
−1
−1
1
= (k−1) · (k)
· (k+3)
(k+1)
(k+2)
ẑ
ẑ
ẑ
ẑ
ẑ
εk
(k−1)
=i1−ẑ0
=i−(−1)
=i−(−1)
(k)
(k+1)
+1−ẑ0 +1−ẑ0
y0 +y1
2
y0 +y1
2
(k+2)
+1−ẑ0
(k−1)
= i−ẑ0
(k)
(k+1)
−ẑ0 −ẑ0
(k+2)
−ẑ0
(xj −(k−1)yj +xj −(k+1)yj )−(x0 −ky0 )−(x0 −(k+2)y0 )
(2xj −2kyj )−(2x0 −2ky0 −2y0 )
= (−1)−(−1)
y0 +y1
2
xj −x0 +y0
= 1,
(B.1)
da bei j = 0 c·x0 mit c ∈ {0, −2} im Exponenten zu (−1) auftritt. Damit ist cx0 + y0
gerade. Ist hingegen j = 1, so ist y0 ungerade. Dann ist aber xj gerade, da x primär ist,
sowie −x0 + y0 gerade. Weiterhin berechnet man
(k−1) −1 (k+1) (k) −1 (k+2) (k+1) −1 (k+3) (k+2) −1
ẑ (k)
ẑ
ẑ
ẑ
ẑ
ẑ
ẑ
ẑ
ẑ (k−1)
ẑ (k)
ẑ (k)
ẑ (k+1)
ẑ (k+1) ẑ (k+2)
ẑ (k+2) ẑ (k+3)
=(−1)A ∈ {−1, +1},
(B.2)
da für den Exponenten
(k−1)
(k)
(k)
(k+1)
−1
− 1 ẑ0 − 1 ẑ0 − 1 ẑ0
·
+
·
+
2
2
2
2
(k+2)
(k+2)
(k+3)
(k+1)
− 1 ẑ0
− 1 ẑ0
−1
ẑ0
− 1 ẑ0
·
+
·
2
2
2 !
2
!
(k)
(k+2)
(k+1)
(k+3)
(k−1)
(k+1)
ẑ0 − 1 ẑ0
ẑ0
− 1 ẑ0
−1
−1
− 1 ẑ0
− 1 ẑ0
=
+
·
+
·
+
2
2
2
2
2
2
(k)
ẑ (k+2) − 1 y0 +y1
y0 +y1
ẑ0 − 1 0
2
2
(xj − 1) +
(xj − 1)
≡
· (−1)
· (−1)
2
2
≡ (x0 − 1 − y0 )(xj − 1) mod 2
A :=
ẑ0
gilt. Also ist A insbesondere unabhängig von k. Aus den Gleichungen (B.1) und (B.2)
folgt nun die Behauptung.
Lemma B.5
Sei k ≡ 0 mod 4. Seien x ∈ Z[i] primär und y ∈ Z[i] durch 1 + i teilbar fest gewählt.
Dann ist I (k) ·I (k+1) ·I (k+2) ·I (k+3) = 1 unabhängig von x, y, k.
51
Beweis. Zum Beweis werden wir die einzelnen Restsymbole geeignet berechnen.
3 (k) (k−1) −1 iδk
ŵ
ŵ
−iδk−1
(k)
I =
,
ŵ (k−1)
ŵ (k−1)
ŵ (k)
ŵ (k)
3 (k+1) (k) −1 ŵ
ŵ
−iδk
iδk+1
(k+1)
,
I
=
ŵ (k)
ŵ (k)
ŵ (k+1)
ŵ (k+1)
3 (k+2) (k+1) −1 iδk+2
ŵ
ŵ
−iδk+1
(k+2)
I
=
,
ŵ (k+1)
ŵ (k+1) ŵ (k+2)
ŵ (k+2)
3 (k+3) (k+2) −1 ŵ
ŵ
−iδk+2
iδk+3
(k+3)
.
I
=
ŵ (k+2)
ŵ (k+2) ŵ (k+3)
ŵ (k+3)
Setze j := y0 mod 2, j ∈ {0, 1}. Für ungerades l ∈ Z in erhält man dann ŵ0 =
y0 −y1
(−1) 2 (xj + (−1)j ·l·y1−j ). Zuerst berechnen wir das Produkt der ersten und letzten
Faktoren der vier Gleichungen. Dabei fassen wir für κ ∈ {0, 1, 2} den letzten Faktor obiger
Darstellung von I (k+κ) mit dem ersten Faktor von I (k+κ+1) zusammen, da δk+κ−1 = δk+κ+1
4
ist. Dabei erhalten wir jeweils −i4 δk+κ−1
= −1 im Restsymbol. Den ersten Faktor von
(k)
(k+3)
I und den letzten Faktor von I
behandeln wir getrennt.
3 3 3 3 iδk
−iδk−1 iδk+1
−iδk
iδk+2
−iδk+1
iδk+3
−iδk+2
ŵ (k−1)
ŵ (k)
ŵ (k)
ŵ (k+1) ŵ (k+1)
ŵ (k+2)
ŵ (k+2)
ŵ (k+3)
−1
−1
−1
i
i
·
·
=
(k−1)
(k)
(k+1)
(k+2)
(k+3)
ŵ
ŵ
ŵ
ŵ
ŵ
(l)
=i
(k−1)
1−ŵ0
2
+
(k+3)
1−ŵ0
2
1
y0 −y1
2
1
y0 −y1
2
=i− 2 (−1)
=i− 2 (−1)
(k+1)
=i−2ŵ0
(k)
(k+1)
+1−ŵ0 +1−ŵ0
(k+2)
+1−ŵ0
(k)
(k+1)
(xj +(−1)j (k−1)y1−j +xj +(−1)j (k+3)y1−j )−ŵ0 −ŵ0
(k)
(k+1)
(2xj +(−1)j (2k+2)y1−j )−ŵ0 −ŵ0
(k)
−2ŵ0 −2y1
(k+1)
= (−1)−ŵ0
(k)
−ŵ0 −y1
(k+2)
−ŵ0
(k+2)
−ŵ0
= (−1)−y1 = (−1)j ,
(κ)
(B.3)
da immer ŵ0 ≡ 1 mod 2 ist. Weiterhin berechnet man
(k) (k−1) −1 (k+1) (k) −1 (k+2) (k+1) −1 (k+3) (k+2) −1
ŵ
ŵ
ŵ
ŵ
ŵ
ŵ
ŵ
ŵ
(k−1)
(k)
(k)
(k+1)
(k+1)
(k+2)
(k+2)
ŵ
ŵ
ŵ
ŵ
ŵ
ŵ
ŵ
ŵ (k+3)
=(−1)B = (−1)j ,
(B.4)
da für den Exponenten B
(k−1)
(k)
(k)
(k+1)
−1
− 1 ŵ0 − 1 ŵ0 − 1 ŵ0
·
+
·
+
2
2
2
2
(k+1)
(k+2)
(k+2)
(k+3)
ŵ0
− 1 ŵ0
− 1 ŵ0
− 1 ŵ0
−1
·
+
·
2
2
2 !
2
(k)
(k+1)
(k−1)
ŵ − 1 ŵ0
−1
− 1 ŵ0
= 0
+
·
+
2
2
2
!
(k+3)
(k+2)
(k+1)
−1
ŵ0
− 1 ŵ0
− 1 ŵ0
·
+
2
2
2
B :=
ŵ0
52
B
Elementarer Beweis des Theorems 3.15
(k+2)
(k)
ŵ
−1
ŵ − 1
·(xj − 1) + 0
·(xj − 1)
≡ 0
2
2
≡ (x0 + y1 − 1)(xj − 1) ≡ j mod 2
gilt (wegen xj − 1 ≡ x0 + y1 − 1 ≡ j mod 2). Insbesondere ist B unabhängig von k. Da
(−1)2j = 1 ist, folgt aus den Gleichungen (B.3) und (B.4) die Behauptung.
Lemma B.6
Sei k ∈ Z gegeben, sei k ′ := k mod 8, k ′ ∈ {0, . . . , 7}. Dann ist
Rk = Rk′ ,
(zu x, y ∈ Z[i], x primär, (1 + i) | y).
Ik = Ik ′
Beweis. Sei κ ∈ Z. Aus Proposition 3.8 folgt, daß
(λ ∈ Z)
R(κ) = R(κ+8λ)
ist, da die auftretenden Restsymbole lediglich vom Real- und Imaginärteil modulo 8 der
Operanden abhängen (2. Ergänzungsgesetz wird dabei nicht benötigt). Aufgrund des
Lemmas B.4 wissen wir, daß für κ′ ∈ 4Z gilt:
7
Y
′
R(κ +j) = 1.
j=0
Zerlege k = 8k ′′ + k ′ mit k ′′ ∈ Z. Damit erhält man für k ≥ 0:
Rk =
k
Y
′′
R(κ) = R
−1 Y
7
kY
(0) −1
′
R
(8j+j ′ )
j=0 j ′ =0
κ=1
= R(0)
−1
k′
Y
R(8k
′′ +j)
=
j=0
|
k′
Y
{z
=1
}
·
k
Y
R(8k
′′ +j)
j=0
R(j) = Rk′
j=1
bzw. für k < 0 (d. h. k ′′ < 0)
Rk =
0
Y
R(κ)
κ=k+1
=
R
(0)
1
Y
!−1
R
κ=8k ′′
(κ)
0
Y
=
R(κ)
κ=8k ′′ +k ′ +1
!−1
·
′′ +k ′
8kY
j=8k ′′
R
!−1
=
1
Y
R(0)
κ=8k ′′ +k ′ +1
′
(j)
= R
(0) −1
R(κ)
k
Y
j=0
R
(j)
=
′
k
Y
R(j) = Rk′ .
j=1
Der Beweis für Ik verläuft ganz analog unter Benutzung von Lemma B.5.
Bemerkung. Sei x ∈
!−1
Z[i] primär, y ∈ Z[i] durch 1 + i teilbar.
Sei x = qy + z, wobei
53
q, z ∈ Z[i] sind.
y
y
= Rq0 ·
x
εq (q0 y − x)
0
(−εq0 )3
−εq0 y
= Rq0
·
εq0 (q0 y − x)
εq0 (q0 y − x)
3
−εq0
−εq0 y
= Rq0
Iq 1 ·
εq0 (q0 y − x)
δq1 (−iq1 εq0 y − εq0 (q0 y − x))
3
−εq0
−εq0 y
= Rq0
Iq 1 ·
εq0 (q0 y − x)
δq1 εq0 (−iq1 y − q0 y + x)
3
−εq0
y
−εq0
·
.
= Rq0
Iq 1
εq0 (q0 y − x)
δq1 εq0 (x − qy)
δq1 εq0 (x − qy)
Dabei ist Rq0 := Rq0 (x, y) und Iq1 := Iq1 (εq0 (q0 y − x), −εq0 y). Setzt man zur verkürzenden
Schreibweise
3
−εq0
−εq0
,
(B.5)
Iq 1
σ̃ := σ̃(x, y, q) := Rq0
εq0 (q0 y − x)
δq1 εq0 z
und ist y = q ′ z + u, q ′ , u ∈ Z[i], so erhält man:
y
y
y − q′z
u
= σ̃·
= σ̃·
= σ̃·
.
x
δq1 εq0 z
δq1 εq0 z
δq1 εq0 z
Lemma B.7
σ̃ : D̃ ⊂ Z[i]3 → Z[i]× induziert kanonisch eine wohldefinierte Abbildung
σ ′ : D ⊂ (Z/8Z[i])3 → Z[i]× ,
wobei D̃, D die Definitionsbereiche von σ̃ bzw. σ ′ sind (mit der Einschränkung, daß der
erste Operand primär und der zweite durch 1 + i teilbar ist).
Beweis. Es ist zu zeigen, daß für x, y, q ∈ Z[i], x primär, y durch 1 + i teilbar,
σ̃(x, y, q) = σ ′ (x mod 8, y mod 8, q mod 8)
ist. Seien x′ , y ′, q ′ ∈ Z[i] mit
x ≡ x′ mod 8,
y ≡ y ′ mod 8,
q ≡ q ′ mod 8,
also ist x′ primär und y ′ durch 1+i teilbar. Dann ist zu zeigen, daß σ̃(x, y, q) = σ̃(x′ , y ′, q ′ )
ist.
Mit der Definition von σ̃ in (B.5) erhält man aus Lemma B.6, daß
Rq0 (x, y) = Rq0′ (x, y),
Iq1 (x̂, ŷ) = Iq1′ (x̂, ŷ)
(B.6)
ist, wobei x̂ := εq0 (q0 y − x), ŷ := −εq0 y sind. Des weiteren berechnen sich Rq0′ (. . . ) und
Iq1′ (. . . ) als Produkt quartischer Restsymbole (siehe Definition B.2), die nach Proposition
54
B
Elementarer Beweis des Theorems 3.15
3.8 jeweils nur von den Z[i]/8Z[i]-Restklassen der Operanden abhängen (2. Ergänzungsgesetz wird dabei nicht benötigt). Damit erhält man mittels Gleichung (B.6)
Rq0 (x, y) = Rq0′ (x′ , y ′),
Iq1 (x̂, ŷ) = Iq1′ (x̂′ , ŷ ′),
wobei x̂′ := εq0′ (q0′ y ′ − x′ ), ŷ ′ := −εq0′ y ′ sind. Da in der Berechnung von σ ′ neben Rq0 (. . . )
und Iq1 (. . . ) nur noch zwei Restsymbole vorkommen (siehe (B.5)), die lediglich von den
Z[i]/8Z[i]-Restklassen der Operanden abhängen, ist σ′ selbst nur von den Z[i]/8Z[i]Restklassen der Operanden abhängig.
Bemerkung. Seien x, y, q ∈ Z[i], x0 , x1 , y0 , y1 , q0 , q1 ∈ {0, . . . , 7}. Des weiteren sei x
primär und y durch 1 + i teilbar. Es gibt 23 = 8 solche x und 25 = 32 solche y. Insgesamt
ist also σ ′ auf einer endlichen Menge der Kardinalität 23+5+6 = 214 = 16384 definiert,
da σ ′ nur für primären ersten Operanden und durch 1 + i teilbaren zweiten Operanden
definiert ist.
Nun haben wir alle Vorbereitungen getroffen, um eine neue Version des quartischen
Reziprozitätsgesetzes formulieren zu können, die mit den berechneten Euklidschritten
xj−1 = qj xj + xj+1 korrespondiert:
Theorem B.8
Seien xj−1 , xj ∈ Z[i] gegeben, xj−1 primär. Dann gilt:
i
h
 xj+1 (−1) Im(xj−14) Im(xj ) wenn x primär,
j
xj
xj
= hx i
 j+2 σ ′ (x , x , q )
xj−1
wenn (1 + i) | xj .
j−1
j j
xj+1
Bemerkung. Die Fälle, daß xj bzw. xj−1 , (1 + i) ∤ xj−1 , nicht primär sind, lassen sich
direkt aus dem Theorem B.8 mit Hilfe des Theorems 3.7 herleiten:
Proposition B.9
Seien xj−1 , xj ∈ Z[i] gegeben, xj−1 nicht durch 1 + i teilbar. Des weiteren sei, sofern 1 + i
nicht xκ teilt, γκ ∈ Z[i]× so gewählt, daß γκ xκ primär ist. Dann gilt:
h
i h
i3 h
i
Im(γj−1 xj−1 ) Im(γj xj )
xj+1
γj
γj−1


4
·
wenn (1 + i) ∤ xj ,
xj
xj
γj−1xj−1
γj xj (−1)
= h
i

xj−1
 xj+2 ·σ ′ (γj−1 xj−1 , xj , γj−1qj )
wenn (1 + i) | xj .
xj+1
Beweis. Sei xj−1 = qj xj + xj+1 .
(i) Es gelte nun (1 + i) ∤ xj .
γj3
xj
γj xj
xj
=
=
·
xj−1
γj−1xj−1
γj−1xj−1
γj−1xj−1
3
Im(γj−1 xj−1 ) Im(γj xj )
γj
γj−1xj−1
4
=
(−1)
·
γj−1xj−1
γj xj
3
Im(γj−1 xj−1 ) Im(γj xj )
γj
xj−1
γj−1
4
(−1)
·
=
γj−1xj−1
γj xj
xj
3
Im(γj−1 xj−1 ) Im(γj xj )
γj
γj−1
xj+1
4
=
(−1)
·
.
γj−1xj−1
γj xj
xj
55
(ii) Nun gelte (1 + i) | xj . Des weiteren ist γj−1xj−1 = (γj−1qj )xj + (γj−1xj+1 ) sowie
xj = qj+1 xj+1 + xj+2 .
xj
xj
xj
′
=
= σ (γj−1xj−1 , xj , γj−1qj )·
xj−1
γj−1 xj−1
γj+1 xj+1
xj+2
.
= σ ′ (γj−1xj−1 , xj , γj−1qj )·
xj+1
Definition B.3
Die Bezeichnungen seien wie in Proposition B.9. Dann können wir aufgrund der Vorüberlegungen nun σ, τ definieren. (Diese Definition von σ, τ stimmt mit der Definition 3.6
überein.)
σ(xj−1 , xj , qj ) := σ ′ (γj−1xj−1 , xj , γj−1qj ),
wenn (1 + i) | xj ;
Im(γj−1 xj−1 ) Im(γj xj )
γj3
γj−1
4
(−1)
, wenn (1 + i) ∤ xj ;
τ (xj−1 , xj ) :=
γj−1xj−1
γj xj
Bemerkung. σ, τ hängen lediglich von den Restklassen der Real- und Imaginärteile von
xj−1 , xj und ggf. qj in Z[i]/8Z[i] ab.
Bezeichne D := {z ∈ Z[i]/8Z[i] : z0 ≡ z1 mod 2} die Elemente, die durch 1 + i teilbar
sind. Dann gilt:
σ : (Z[i]/8Z[i] \ D) × D × Z[i]/8Z[i] → Z[i]× ,
τ : (Z[i]/8Z[i] \ D)2 → Z[i]× .
Korollar B.10
Seien xj−1 , xj ∈ Z[i] wie in Proposition B.9. Dann gilt:
i
h
 xj+1 ·τ (x , x )
wenn (1 + i) ∤ xj ,
j−1
j
xj
xj
= hx i
 j+2 ·σ(x , x , q ) wenn (1 + i) | x .
xj−1
j−1
j j
j
xj+1
Die Aussage dieses Korollars ist dieselbe wie die des Theorems 3.15. Damit haben wir
also auf elementarem Wege die Behauptung des Theorems 3.15 erneut bewiesen.
56
B
Elementarer Beweis des Theorems 3.15
Literaturverzeichnis
[CC76]
B. F. Caviness and G. E. Collins, Algorithms for Gaussian Integer Arithmetic,
Proceedings of the ACM Symposium on Symbolic and Algebraic Computation,
Yorktown Heights (1976), 36–45.
[Coh96] H. Cohen, A Course in Computational Algebraic Number Theory, Graduate
Texts in Mathematics, vol. 138, Springer-Verlag, Berlin, Heidelberg, London
etc., 1996.
[Gau89] C. F. Gauß, Untersuchungen über höhere Arithmetik (Disquisitiones Arithmeticae), Chelsea Publishing Company, Bronx, New York, 1889, Neudruck 1965,
Übersetzung ins Deutsche von H. Maser (ed.).
[Hec23] E. Hecke, Vorlesung über die Theorie der algebraischen Zahlen, Akadem. Verlagsges., Leipzig, 1923.
[IR90]
K. Ireland and M. Rosen, A Classical Introduction to Modern Number Theory,
second ed., Graduate Texts in Mathematics, vol. 84, Springer-Verlag, Berlin,
Heidelberg, London etc., 1990.
[Knu98] D. E. Knuth, Seminumerical Algorithms, third ed., The Art of Computer Programming, vol. 2, Addison-Wesley, Reading, MA, USA, 1998.
[Lem99] F. Lemmermeyer, Reciprocity Laws. Their Evolution from Euler to Artin, unpublished manuscript, http://www.rzuser.uni-heidelberg.de/˜hb3/rec.html, 1999.
[Leu96] A. Leutbecher, Zahlentheorie. Eine Einführung in die Algebra, Springer-Verlag,
Berlin, Heidelberg, New York, 1996.
[MS98]
S. M. Meyer and J. P. Sorenson, Efficient Algorithms for Computing the Jacobi
Symbol, J. Symbolic Comput. 26 (1998), no. 4, 509–523.
[Neu92] J. Neukirch, Algebraische Zahlentheorie, Springer-Verlag, Berlin, Heidelberg,
New York, 1992.
[Sch71]
A. Schönhage, Schnelle Berechnung von Kettenbruchentwicklungen, Acta Informatica 1 (1971), 139–144.
[Sch87]
A. Schönhage, IGCDOC, Computation of integer gcd’s, unpublished manuscript,
1987.
57
58
[Sch91]
LITERATURVERZEICHNIS
A. Schönhage, Fast Reduction and Composition of Binary Quadratic Forms,
Proc. Int’l. Symp. on Symbolic and Algebraic Computation: ISSAC ’91 (S. M.
Watt, ed.), ACM Press, 1991, pp. 128–133.
[SGV94] A. Schönhage, A. F. W. Grotefeld, and E. Vetter, Fast Algorithms – A Multitape
Turing Machine Implementation, BI Wissenschaftsverlag, Mannheim, 1994.
[SS71]
A. Schönhage and V. Strassen, Schnelle Multiplikation großer Zahlen, Computing 7 (1971), 281–292.
[Wei99] A. Weilert, Asymptotisch schnelle g.g.T.-Berechnung im Ring der Gaußschen
Zahlen, Diplomarbeit, Institut für Informatik, Universität Bonn, 1999.
Herunterladen