Et les Shadoks comptaient, comptaient . . . Contexte et notations

File:CountingWithFlipFlopAndGaiRequin.tex compil. le 6 février 2017,7:52
Et les Shadoks comptaient, comptaient . . .
Contexte et notations
•On désigne par Kun corps de nombres et OKson anneau d’entiers. On fixe un premier pqui se factorise
dans OKen :
pOK=pe1
1· · · peg
g
et on note fi= dimFpOK/pide sorte que Pg
i=1 eifi= [K:Q].
•On introduit le facteur p-Eulérien de Kqui est la fraction rationnelle :
Zp(T) =
g
Y
i=1
1
1−Tfi
A noter que les indices de ramification ein’interviennent pas dans la définition de Zp(T).
•Pour un entier m≥1, on note am=νK(m)le nombre d’idéaux de OKde norme m. Cette suite
intervient dans la fonction zeta de Dedekind de K:
ζK(s) = X
I6=0
1
N(I)s=X
m≥1
am
ms
Il est important (c’est une qualité de l’anneau OK) de signaler que la norme sur les idéaux, définie par
N(I) = #OK/I, est multiplicative et que N(pi) = pfi. En conséquence :
N(pα1
1· · · pαg
g) = pα1f1+···+αgfg
•On a a1= 1 et la suite (am)m≥1est multiplicative. Cela permet d’écrire :
X
m≥1
am
ms=Y
pX
r≥0
apr
prs
()
=Y
p
Zp1
ps
L’égalité ()sera justifiée par la proposition ci-après.
•Pour une fraction rationnelle à une indéterminée Z=Z(T), on convient de parler de sa dérivée
logarithmique décalée DLD(Z)qui est la fraction rationnelle :
DLD(Z) = TZ0
Z
Par exemple :
DLD 1
1−Tf=fT f
1−Tf
•Etant donné un entier q, puissance d’un nombre premier, un Fq-point de OKest un morphisme d’an-
neaux (ou de Z-algèbres, c’est la même chose) OK→Fq. Supposons par exemple, OKmonogène i.e.
OK=Z[x] = Z[X]/hFioù F∈Z[X]est un polynôme unitaire irréductible ; alors un Fq-point de OK,
ψ:OK→Fqest défini par son image ξ:= ψ(x)∈Fqqui doit vérifier F(ξ) = 0. I.e. les Fq-points de Z[x]
sont les racines du polynôme Fdans Fq.
De manière plus générale, la Z-algèbre OKpeut-être vue comme une Z-algèbre de présentation finie :
OK=Z[x1, . . . , x`] = Z[X1, . . . , X`]/hF1,· · · , Fsi
Ceci fournit un schéma affine défini sur Z:
{F1=· · · =Fs= 0}
Un Fq-point de OKn’est autre qu’un point de ce schéma affine défini sur Fq.
On note :
Nq(OK) = nombre de Fq-points de OK
1
Un exemple dans ce formalisme. Un Fp-point de OKest un morphisme ψ:OK→Fp, nécessairement
surjectif ; son noyau est un idéal maximal pde OKet l’on a OK/p'Fp. Ceci prouve que pest l’un des
piayant un degré fiégal à 1. Bilan :
Np(OK) = nombre de fiégaux à 1 =ap
Cela vaut le coup de ré-écrire les choses en français, de l’encadrer et même mettre du rouge
Le nombre de points sur Fpdu Z-schéma défini par OKest égal au nombre d’idéaux de OKde norme p
De la même manière, on pourrait, pour tout anneau k, définir un k-point de OKcomme étant un
morphisme d’anneaux OK→k.
Le résultat visé par les Shadoks
Proposition 1.
(1) Le coefficient de Tkdans le développement en série formelle de Zp(T)est le nombre apkd’idéaux de
norme pk:
Zp(T) = 1 + apT1+ap2T2+ap3T3+· · ·
(2) La dérivée logarithmique décalée de Zp(T)est la série génératrice de la suite (Nr)r≥1= (Npr(OK))r≥1
i.e.
TZ0
p(T)
Zp(T)=N1T+N2T2+N3T3+· · ·
(3) Pris dans l’autre sens, la série Pr≥1NrTrest une fraction rationnelle. Très précisemment :
X
r≥1
NrTr=f1Tf1
1−Tf1+· · · +fgTfg
1−Tfg
On introduit :
δ(f, •) = (fsi f| •
0sinon
Alors :
Npr(OK) =
g
X
i=1
δ(fi, r)
En particulier :
Np(OK) = nombre de fiégaux à 1
La preuve du premier point
On a toujours N(I)∈I; en effet, le groupe abélien OK/I est de cardinal N(I)donc annulé par N(I).
En particulier N(I)·1=0dans ce quotient, donc N(I)∈I.
Soit Iun idéal de norme pk. On a pk∈Iet donc les facteurs premiers de Isont parmi les pi. En
conséquence, Is’écrit de manière unique :
I=pα1
1· · · pαg
g
Puisque N(I) = pα1f1+···+αgfg, on a :
()α1f1+· · · +αgfg=k
Le nombre apkd’idéaux de OKde norme pkest donc le nombre de α= (α1,· · · , αg)∈Ngvérifiant ().
Mais ce nombre est le coefficient de Tkdans le développement en série formelle de :
Zp(T) = 1
1−Tf1· · · 1
1−Tfg
Pour le voir, il suffit de développer Zp(T)sous la forme :
(1 + Tf1+T2f1+T3f1+· · · )· · · (1 + Tfg+T2fg+T3fg+· · · )
et d’examiner le coefficient de Tkdans ce produit.
2
Plus sur la dérivée logarithmique décalée
Elle transforme un produit en une somme. En conséquence :
TZ0
p(T)
Zp(T)=f1Tf1
1−Tf1+· · · +fgTfg
1−Tfg
La preuve des deux autres points
•On rappelle le fait suivant sur les corps finis. Soient deux corps finis ket k0; à quelle condition existe-t-il
un morphisme de kdans k0et si oui combien ? La réponse est : il en existe un si et seulement si #k0est
une puissance de #k. Et dans ce cas, le nombre de morphismes de k→k0est #Aut(k)i.e. fsi k'Fpf.
Justification : la première partie est classique. A noter dans ce cas qu’il existe un seul sous-corps de k0
isomorphe à kà savoir {x∈k0|xq=x}si q= #k. On obtient tous les morphismes de kdans k0en
composant un morphisme fixé par tous les automorphismes de k.
Et on sait que Aut(Fpf)est un groupe cyclique d’ordre fengendré par le Frobenius x7→ xp.
•D’autre part, quel est le coefficient de Trdans le développement en série formelle de :
fT f
1−Tf
La réponse est :
(fsi f|r
0sinon c.a.d δ(f, r) = coeff de Trdans le développement de fT f
1−Tf
Soit ψ:OK→Fqun Fq-point de OKoù qest une puissance de p,q=pr. Son noyau est un idéal maximal
pde OKet on a une injection :
OK/p→Fq
En conséquence, OK/pest un corps de caractéristique pet donc pest l’un des pi.
Réciproquement, on obtient tous les Fq-points de OKen considérant tous les morphismes
(♥i)Fpfi' OK/pi→Fq=Fpr
avec ivariable.
Combien de morphismes tels que (♥i)? Si rn’est pas multiple de fi, aucun, sinon fi. C.a.d. avec nos
notations δ(fi, r).
Bilan : le nombre de Fpr-points de OKest à la fois :
g
X
i=1
δ(fi, r)et le coefficient en Trde f1Tf1
1−Tf1+· · · +fgTfg
1−Tfg
3
Illustrations
Le polynôme de Dedekind
> F := X^3 + X^2 - 2*X + 8 ;
> assert Discriminant(F) eq -2^2 * 503 ;
> K<x> := NumberField(F) ;
> y := 4/x ;
> OK := MaximalOrder(K) ;
> assert Discriminant(OK) eq -503 ;
> assert OK eq Order([x, y]) ;
Quelques lois de factorisation
> DecompositionType(OK, 2) ;
[ <1, 1>, <1, 1>, <1, 1> ]
> DecompositionType(OK, 503) ;
[ <1, 1>, <1, 2> ]
> [<p, LegendreSymbol(-503,p), DecompositionType(OK,p)> : p in PrimesInInterval(3,10^2)] ;
[
<3, 1, [ <3, 1> ]>,
<5, -1, [ <1, 1>, <2, 1> ]>,
<7, 1, [ <3, 1> ]>,
<11, 1, [ <3, 1> ]>,
<13, 1, [ <3, 1> ]>,
<17, -1, [ <1, 1>, <2, 1> ]>,
<19, -1, [ <1, 1>, <2, 1> ]>,
<23, 1, [ <3, 1> ]>,
<29, -1, [ <1, 1>, <2, 1> ]>,
<31, -1, [ <1, 1>, <2, 1> ]>,
<37, -1, [ <1, 1>, <2, 1> ]>,
<41, -1, [ <1, 1>, <2, 1> ]>,
<43, 1, [ <3, 1> ]>,
<47, 1, [ <3, 1> ]>,
<53, -1, [ <1, 1>, <2, 1> ]>,
<59, 1, [ <1, 1>, <1, 1>, <1, 1> ]>,
<61, 1, [ <3, 1> ]>,
<67, 1, [ <3, 1> ]>,
<71, -1, [ <1, 1>, <2, 1> ]>,
<73, 1, [ <1, 1>, <1, 1>, <1, 1> ]>,
<79, 1, [ <1, 1>, <1, 1>, <1, 1> ]>,
<83, 1, [ <3, 1> ]>,
<89, -1, [ <1, 1>, <2, 1> ]>,
<97, 1, [ <1, 1>, <1, 1>, <1, 1> ]>
]
>
> // si p non carré mod 503 : g=2 et f1=1, f2=2
> assert &and [DegreeType(OK,p) eq [1,2] : p in PrimesInInterval(3,10^3) | LegendreSymbol(p,503) eq -1] ;
> // Mais si p est en carré mod 503, on peut avoir g=1 (inerte) ou g=3 (totalement décomposé)
> [p : p in PrimesInInterval(3,10^3) | LegendreSymbol(p,503) eq 1 and DegreeType(OK,p) eq [1,1,1]] ;
[ 59, 73, 79, 97, 199, 283, 383, 389, 421, 433, 547, 569, 587, 599, 647, 673, 691, 719, 797, 827,
881, 883, 887, 919, 977 ]
Détermination du schéma
> ZXY<X,Y> := PolynomialRing(Z,2) ;
> equations := OrderPresentationEquations([x,y] : PolRing := ZXY) ;
> IZ := Ideal(equations) ;
> IZ ;
Ideal of Polynomial ring of rank 2 over Integer Ring
Order: Lexicographical
Variables: X, Y
Basis:
[
2*X + Y^2 - Y + 2,
X*Y - 4,
X^2 + X + 2*Y - 2
]
> assert Evaluate(F,X) in IZ ;
> assert IZ ne Ideal([Evaluate(F,X), X*Y - 4]) ;
>
> IQ := ChangeRing(IZ,Q) ;
> assert IsMaximal(IQ) ;
> L<x,y> := Generic(IQ)/IQ ;
> assert MinimalPolynomial(x) eq F and x*y eq 4 ;
>
> A2 := AffineSpace(Generic(IZ)) ;
> A2 ;
Affine Space of dimension 2
Variables: X, Y
> OKscheme := Scheme(A2, IZ) ;
> OKscheme ;
Scheme over Integer Ring defined by
X^2 + X + 2*Y - 2,
X*Y - 4,
2*X + Y^2 - Y + 2,
Y^3 - Y^2 + 2*Y + 8
4
Fonction ζK, facteurs Eulériens et comptage
> NombreDePoints := func < q | #Points(BaseChange(OKscheme, GF(q))) > ;
>
> p := RandomPrime(4) ;
> degrees := DegreeType(OK, p) ;
> assert &and [NombreDePoints(p^r) eq &+[deltaSymbol(fi,r) : fi in degrees] : r in [1..20]] ;
>
> precision := 10^2 ;
> DedekindZetaK := LSeries(K) ;
> SK := FormalSeries(DedekindZetaK, precision) ;
> SK ;
t + 3*t^2 + 6*t^4 + t^5 + 10*t^8 + 3*t^10 + 15*t^16 + t^17 + t^19 + 6*t^20 + 2*t^25 + t^27 + t^29 + t^31 + 21*t^32 +
3*t^34 + t^37 + 3*t^38 + 10*t^40 + t^41 + 6*t^50 + t^53 + 3*t^54 + 3*t^58 + 3*t^59 + 3*t^62 + 28*t^64 + 6*t^68 +
t^71 + 3*t^73 + 3*t^74 + 6*t^76 + 3*t^79 + 15*t^80 + 3*t^82 + t^85 + t^89 + t^95 + 3*t^97 + 12*t^100
> assert &and [NombreDePoints(p) eq Coefficient(SK,p) : p in PrimesInInterval(2,precision)] ;
>
> p := 2 ;
> pZeta := 1/IntegralEulerFactor(DedekindZetaK,p) ;
> assert pZeta eq 1/(1-T)^3 ;
> S := T*Derivative(pZeta) / pZeta ;
> // S = 3*T/(1-T) = 3 * (T + T^2 + T^3 + ....)
> assert S eq 3*T/(1-T) ;
> PSR ! S ;
3*t + 3*t^2 + 3*t^3 + 3*t^4 + 3*t^5 + 3*t^6 + 3*t^7 + 3*t^8 + 3*t^9 + 3*t^10 + 3*t^11 + 3*t^12 + 3*t^13 + 3*t^14 +
3*t^15 + 3*t^16 + 3*t^17 + 3*t^18 + 3*t^19 + 3*t^20 + O(t^21)
> assert &and [NombreDePoints(p^r) eq 3 : r in [1..20]] ;
>
> p := 503 ;
> pZeta := 1/IntegralEulerFactor(DedekindZetaK,p) ;
> assert pZeta eq 1/(1-T)^2 ;
> S := T*Derivative(pZeta) / pZeta ;
>S;
-2*T/(T - 1)
> // S = 2*T/(1-T) = 2 * (T + T^2 + T^3 + ....)
> assert S eq 2*T/(1-T) ;
> PSR ! S ;
2*t + 2*t^2 + 2*t^3 + 2*t^4 + 2*t^5 + 2*t^6 + 2*t^7 + 2*t^8 + 2*t^9 + 2*t^10 + 2*t^11 + 2*t^12 + 2*t^13 + 2*t^14 +
2*t^15 + 2*t^16 + 2*t^17 + 2*t^18 + 2*t^19 + 2*t^20 + O(t^21)
> assert &and [NombreDePoints(p^r) eq 2 : r in [1..20]] ;
>
> for p in PrimesInInterval(3,30) do
for> degrees := DegreeType(OK,p) ;
for> assert &and [NombreDePoints(p^r) eq &+[deltaSymbol(fi,r) : fi in degrees] : r in [1..20]] ;
for> pZeta := 1/IntegralEulerFactor(DedekindZetaK,p) ;
for> assert pZeta eq EulerianFactor(OK, p) ;
for> S := T*Derivative(pZeta) / pZeta ;
for> assert &and [NombreDePoints(p^r) eq Coefficient(PSR!S,r) : r in [1..Ilog(p,precision)]] ;
for> end for ;
Le source OrderPresentationIdeal.magma
clear ;
load "FlipFlopZetaFunctionTools.magma" ;
SetColumns(120) ;
Q := RationalField() ;
ZX<X> := PolynomialRing(Z) ;
// QY = Q[Y] but magma-multivariate (to use AffineAlgebraMapKernel)
PolynomialLift := function(QY, y)
L := Parent(y) ;
assert IsSimple(L) ;
c := Eltseq(y) ;
R := &+[c[i]*Y^(i-1) : i in [1..#c]] where Y is QY.1 ;
assert y eq Evaluate(R,[x]) where x is L.1 ;
return R ;
end function ;
// S = sequence d’éléments entiers d’un corps de nombres
OrderPresentationEquations := function(S : PolRing := PolynomialRing(Z, #S))
L := Universe(S) ;
assert IsSimple(L) ;
assert &and [IsIntegral(y) : y in S] ;
P := MinimalPolynomial(L.1) ;
QY<Y> := PolynomialRing(Q,1) ;
QYquoP, pi := QY / Ideal(Evaluate(P,Y)) ;
S := [pi(PolynomialLift(QY,y)) : y in S] ;
QS := PolynomialRing(Q, #S) ;
Theta := hom < QS -> QYquoP | S > ;
I := AffineAlgebraMapKernel(Theta) ;
equations := Basis(I) ;
equations := ChangeUniverse(equations, PolRing) ;
return equations ;
end function ;
5
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!