11-237157

121

Exemples et calculs de points de Heegner
christian wuthrich

27 mars 0711

11-237157

121

La paramétrisation modulaire de X0 (11)Partons du groupeΓ = Γ0 (11) = {( ac db ) ∈ SL2 (Z) | c ≡ 0 (mod 11)} .

11

11-237157

121

La paramétrisation modulaire de X0 (11)Partons du groupeΓ = Γ0 (11) = {( ac db ) ∈ SL2 (Z) | c ≡ 0 (mod 11)} .
On trouve une base de l’espace M2 (Γ0 (11)) des formes
modulaires de poids 2 pour Γ avec q = e2πiτ .
sage : M2 = ModularForms(Gamma0(11)) ; B = M2.basis() ; show(B)[q − 2q2 − q3 + 2q4 + q5 + O(q6 ),
1236
48
84
72
1 + q + q2 + q3 + q4 + q5 + O(q6 )]555551111-237

157

121

En fait, ces deux formes modulaires sont bien connues. La
première est
Yf =q·(1 − qn )2 · (1 − q11n )2n>1

et la seconde est une série d’Eisenstein G. On peut remplacer
la deuxième forme parϑ2 =8· f + G.
5sage : f = B[0].q expansion(7) ; G = 5*B[1].q expansion(7) ;th=(G+8*f)/5 ; show(th)1 + 4q + 4q2 + 8q3 + 20q4 + 16q5 + 32q6 + O(q7 )

11

11-2

37

157

ϑ est une série de thêta pour la forme quadratiqueQ(x, y) = x2 + x y + 3 y2
de discriminant −11.
ϑ(q) =X

qQ(x,y)(x,y)∈Z2

sage : %magma Q := QuadraticForms(-11) ! <1,1,3> ; R<q> :=PowerSeriesRing(Integers()) ; ThetaSeries(Q,11)

1 + 2q + 4q3 + 2q4 + 4q5 + 6q9 + O(q11 )12111

11-237157

121

On cherche des fonctions sur X0 (11). Le quotientu=ϑ2f

est une fonction sur X0 (11) avec un pôle simple en ∞.
sage : u = th/f ; show(u)1+ 6 + 17q + 46q2 + 116q3 + 252q4 + 533q5 + O(q6 )
q11

11-237157

121

Pour avoir une deuxième fonction sur X0 (11) on posev=

q · dudq
f.

sage : v = (u.derivative()*q)/f ; show(v)−1 −2++ 12 + 116q + 597q2 + 2298q3 + 7616q4 + O(q5 )q2
q11

11-237

157

121

Ça serait trop facile si on avait déjà les bonnes fonctions. Il fautprendre
x = 12 (u2 − v − 10 u + 10)
y = 12 (u3 − u · v − 15 u2 + 5 v + 28 u − 12)sage : x=(uˆ2-v-10*u+10)/2 ;show(x) ;y=(uˆ3-u*v-15*uˆ2+5*v+28*u-12)/2 ;show(y) ;2
1+ + 4 + 5q + 8q2 + q3 + 7q4 + O(q5 )2qq1
3
7+ 2 + + 12 + 17q + 26q2 + 19q3 + O(q4 )
3qqq

11

11-2

x=

37

1
2+ + 4 + ···2qq157y=121

137+ 2 + + 12 + · · ·3qqq... on trouve à la fin une expression polynomialey2 + y − (x3 − x2 − 10 x − 20)qui donne une fonction holomorphe en ∞ ∈ X0 (11) dont ledéveloppement en q est nul.
sage : show(yˆ2 + y - (xˆ3-xˆ2-10*x-20))

0 + ···

1111-237157

121

L’expression (x, y) définit une application
ϕ : X0 (11) → P2
dont l’image est contenue dans la courbe décrite par cetteéquation.
C’est un morphisme surjectif sur une courbe elliptique E,appelée 11a1 :sage : e = EllipticCurve([0,-1,1,-10,-20]) ; show(e) ; show(e.label())

y2 + y = x3 − x2 − 10x − 20
’11a1’

11

11-2

37

157

121

Un point de Heegner

On va construire le point de Heegner sur cette courbeE√associé au corps quadratique imaginaire K = Q( −2).
√L’anneau des entiers est OK = Z[ −2].
Le groupe des classes est trivial.
sage : K.
 = NumberField(xˆ2+2) ; show(K) ; K.class group()

Q[s]/(s2 + 2)
Trivial Abelian Group11

11-237157

121

Pour pouvoir
construire un tel point il faut que l’idéal√(11)Z[ −2] se factorise en deux idéaux premiers.
(11) = p · p̄En effet :sage : p1,p2 = K.factor integer(11) ; p1 = p1[0] ;p2 = p2[0] ;show(p1,’*’,p2)(11, s − 3) ∗ (11, s + 3)
Cet idéal√p est bien sûr principal et on trouve un générateura = 3 − −2.
sage : a = p1.gens reduced()[0] ; show(a)−s + 31111-237157

121

On se rappelle que la courbe X0 (11) paramétrise descouples (A, C) où A est une courbe elliptique et C est un
sous-groupe cyclique d’ordre N = 11 dans A.
La correspondance avec la description Γ0 (11) \ H se faitpar1τ ≺  C/Z ⊕ τ Z, h i .
1111

11-237157

121√
L’anneau OK = Z[ −2] est un réseau dans C. On a donc
une courbe elliptique A = C/OK définie sur C.
Un sous-groupe de A d’ordre 11 se représente par unréseau dans C contenant OK avec indice 11.
On peut prendre p−1 = a−1 · OK avec√ā
3 + −21==.
a11
11On aimerait représenter le couple (A, C) = (C/OK , p−1 /OK )sous une forme telle que le sous-groupe soit engendré par
111 .

11

11-237

157

121

Le premier vecteur ω1 √de lanouvelle base est 3 + −2.
On peut compl√éter la baseavec ω2 = 2 + −2 cardet( 32 11 ) = 1.

11

11-237

157

121

11

11-237

157

121

Ce qui nous donne pourτ=ω2ω1la valeur suivante.
sage : omega1 = 3+s ; omega2 = s+2 ;tau = omega2/omega1 ; show(tau)

1
8s+
11
11
√

C’est donc τ = 8+11−2 ∈ H qui représente la classe modulo
Γ0 (11) de la courbe C/OK avec le sous-groupe p−1 /OK .

11

11-2

37

157

121

Le point de Heegner est P = ϕ(τ ) = (x(τ ), y(τ )). On a q = e2πiτ .
sage : tau = (8+sqrt(CC(-2)))/11 ; qh = exp(2*CC(pi)*CC(I)*tau) ; show(qh)−0.06344953568957882710035727463260663775186252−0.4413012140191140990888858108622995702100066 · I

sage : xx = x(qh) ;show(xx)−3.000000000000000000000000000000000000000001+1.414213562373095048801688724209698078569671 · I

sage : yy = y(qh) ;show(yy)−3.999999999999999999999999999999999999999998−4.242640687119285146405066172629094235709017 · I

1111-237157

121

Alors on a trouvé une très bonne approximation de√√
P = (−3 + −2, −4 − 3 −2) .

sage : eK = e.base extend(K) ;P = eK([-3 +s,-4-3*s]) ;show(P)(s − 3 : −3s − 4 : 1)
C’est un point d’ordre infini dans E(K). On peut montrer que
E(K) = Z/5Z ⊕ Z · P .

11

11-2

37

157

121

Voici la hauteur canonique ĥ(P) de P.
sage : %magma R<X> :=PolynomialRing(Rationals()) ; Km<sm> :=NumberField(Xˆ2+2) ;E :=EllipticCurve(CremonaDatabase(),11,1,1) ; EK :=BaseChange(E,Km) ;P :=EK ![sm-3,-3*sm-4] ; print Height(P)0.183019093150093106944844843
Elle est liée à la dérivée de la série L associée à E par lafameuse formule de Gross-Zagier. On trouve que
L0 (E/K, 1) √8 = ĥ(P) .
4 · vol(E)sage : LEK := LSeries(E,Km) ; lek = magma(Coefficient(LTaylor(LEK,1,2),1)) ;lek/e.complex area())/4*sqrt(2)0.183019093149904975969394025813

11

11-2

37

157

121

La conjecture de Birch et Swinnerton-Dyer
Qĥ(P) · #X(E/K) · υ cυ
L0 (E/K, 1) √8=
4 · vol(E)(#Torsion(E(K)))2
est alors équivalente à#X(E/K) = 1 .
Le théorème de Kolyvagin (+ ε) montre ceci et ainsi laconjecture BSD est vérifiée.

11

11-2

37

157

121

La paramétrisation de la courbe 37a1

Considérons la courbe 37a1 donnée par l’équation
sage : e = EllipticCurve(’37a1’) ; show(e)y2 + y = x3 − x .

Elle possède un point évident P = (0, 0) dans E(Q).
On montre que E(Q) = Z · P.
Elle s’appelle aussi X0 (37)+ .

1111-237

sage : show(plot(e,hue=0.05,thickness=3))

157

121

1111-237

157

121

Pour un premier p 6= 37, l’équation y2 + y = x3 − x est une
courbe elliptique Ẽ sur Fp . On pose
ap = p + 1 − #Ẽ(Fp ) .
Par exemple a2 = −2, a3 = −3, a17 = 0,. . .
sage : e.base extend(GF(2)).points()[(0 : 1 : 0), (1 : 0 : 1), (0 : 1 : 1), (0 : 0 : 1), (1 : 1 : 1)]√Le théorème de Hasse-Weil affirme que |ap | < 2 p.

1111-237157

121

On peut étendre la définition à tous les entiers de la manièresuivante.
On pose a1 = 1.
Si n = pk+1 est une puissance d’un premier p, on poserécursivement
apk+1 = ap · apk − p · apk−1

pour tout k > 1.

On impose que anm = an · am si n et m sont premiers entreeux.

1111-2

37157

121

Maintenant on fabrique avec ces nombres une série
caractéristiquefE = q + a2 q2 + a3 q3 + a4 q4 + · · ·∈ Z[[q]] .

sage : fe = sum([ e.an(n)*qˆn for n in range(1,20)]) + O(qˆ20) ; show(fe)q − 2q2 − 3q3 + 2q4 − 2q5 + 6q6 − q7 + 6q9 + 4q10−5q11 − 6q12 − 2q13 + 2q14 + 6q15 − 4q16 − 12q18 + O(q20 )Le théorème de la modularité des courbes elliptiques montre
que fE est une forme modulaire de poids 2 pour Γ0 (37).

1111-237

157

121

On peut décrire la paramétrisation modulaire de la manièresuivante. Voici la forme différentielle invariante par la loi degroupe sur E.
dx
ω=2y + 1
Utilisant la paramétrisation modulaire
ϕ : X0 (37) → E
on obtientϕ∗ (ω) = fE (q) ·dq= 2πi · fE (τ ) dτ .
q11

11-237

157

121

On décompose ϕ.
X0 (37)dqfEqφ

 C/ΛE

E



ωdz

La première application est donnée parZ φ(q)Z qdz =φ(q) =0fE0dq X an n=q
qnn>1

et la deuxième s’obtient à partir de la fonction de Weierstrass℘(z) associée à E.

1111-237

157

121

On peut calculer
les points de Heegner sur 37a1 associés au√
corps Q( −83).
On trouve comme avant la classe modulo Γ0 (37)
√19 + −83
τ=.
74

sage : tau = (sqrt(CC(-83)) + 19 )/ 74 ;qh= exp(2*CC(I)*CC(pi)*tau) ;show(qh)−0.019581236641462602257258671738562186415457+0.4609575556818799731138409825149508672450739 ∗ Isage : z = sum([e.an(n)/n*qhˆn for n in range(1,6000)]) ;show(z)0.1941404443183380091765364019440751062188755+0.5708191481832189629085809326100191885664601 ∗ I

11

11-2

37

157

121

En utilisant la fonction de Weierstrass on trouve le point deHeegner.
sage : ep = pari(e) ;P = ep.ellztopoint(z) ;show(P)[−2.23898362150450623732346254067108755072377−1.6276691178035048542488145084097635473845203 ∗ I,
3.3532099641993244294831013325773884572707056−2.4056416385709576118290242160537485401239303 ∗ I]
√Ce n’est pas un point sur K = Q( −83) car Cl(K) = Z/3Z.

11

11-237157

121

La coordonnée x de P satisfait au polynômesage : f=P[0].algdep(3,100) ; show(f)x3 + 5 x2 + 10 x + 4 .
H = K[x]/(x3 + 5x2 + 10x + 4) est le corps de classes de K.

11

11-2

37157

121

Soit I1 et I2 deux idéaux qui représentent les classes nontriviales de Cl(K).
On peut calculer les points de Heegner en partant de(A, C) = (C/Ij , Ij · p−1 /Ij ) .
La somme des trois points de Heegner, c.-à-d. la trace de P
dans K, est
sage : ...

[1.898 · 10−119 + 2.262 · 10−120 · I,−1.898 · 10−119 − 2.262 · 10−120 · I] .
Il s’agit du générateur P = (0, 0) de E(Q).

11

11-2

37157

121

RésuméIl y a trois situations pour les points de Heegner :Si L(E/Q, 1) 6= 0, alors on peut trouver une extension
quadratique imaginaire K/Q telle qu’il existe un point
Heegner d’ordre infini dans E(K). On en déduit la finitudede E(Q) et de X(E/Q).
Si L(E/Q, 1) = 0 et L0 (E/Q, 1) 6= 0, alors on trouve K/Qtelle que le point de Heegner associé à K donne un pointd’ordre infini dans E(Q). On en déduit que le rang de E(Q)est 1 et que X(E/Q) est fini.
Si L(E/Q, 1) = L0 (E/Q, 1) = 0 alors les traces de points deHeegner sont de torsion.

1111-237

157

121

11

Un nombre congruent
Le point de Heegner sur la courbe (pour D = −31)
y2 = x3 − 1572 x .

sage : e = EllipticCurve([0,0,0,-157ˆ2,0]) ;P =magma(e).HeegnerPoint(nvals=2) ;show(P[1])( −166136231668185267540804, −167661624456834335404812111469782006)
2825630694251145858025
150201095200135518108761470235125

Ceci nous donne les côtés du triangle d’aire 157.
sage : a = (P[1]ˆ2-157ˆ2)/P[2] ;b = 2*157*P[1]/P[2] ;c =(P[1]ˆ2+157ˆ2)/P[2] ;show((a,b,c)), 6803298487826435051217540 , −224403517704336969924557513090674863160948472041( 411340519227716149383203
21666555693714761309610 411340519227716149383203
8912332268928859588025535178967163570016480830 )

11-2

37157

La courbe 121b1
La courbe 121b1 donnée pary2 + y = x3 − x2 − 7x + 10 √ est à multiplication complexe par OF = Z 1+ 2−11 .
L’anneau OF est principal.

12111

11-237157

121

La forme modulaire associée est une série thêta. On a uncaractèreε : OF√ OF /( −11) = F11·( 11) {0, +1, −1} .

Pour tout idéal non nul I = (z), on pose ψ(I) = ε(z) · z etX
θ(q) =
ψ(I) · qN(I)I6=0

sage : th = sum([eps(z)*z*qˆ(z.norm()) for z in zs])/2 ;show(th+O(qˆ20))

q − q3 − 2q4 − 3q5 − 2q9 + 2q12 + 3q15 + 4q16 + O(q20 )√Notez que |a + b · 1+ 2−11 | = a2 + a b + 3 b2 = Q(a, b).

11

11-237157

121

Alors θ = fE est la forme modulaire de poids 2 sur Γ0 (121)associée à 121b1.
On trouve un point de Heegnersage : magma(e).HeegnerPoint(nvals=2)(4 : −6 : 1)

La courbe 121b1 s’appelle aussi Xnon déc. (11).

1111-2

37157

121

Sur 121b1 il existe un sous-groupe C d’ordre 11 défini surQ.
Le quotient E/C est la courbe 121b2.
sage : e2 = EllipticCurve(’121b2’) ;show(e2)y2 + y = x3 − x2 − 887x − 10143

Le couple (121b1, C) est alors un élément de X0 (11) définiaur Q.
On peut calculer son image sur la courbe 11a1 du débututilisant les fonctions x et y.
On trouve le point (5, −6) d’ordre 5 sur 11a1.

11