Repartitions of an algebraic function field #
A repartition (Chevalley's name; Stichtenoth says adele) of an algebraic function field
F / k is a family a : Place k F → F of elements of F itself — no completions are taken —
that is integral at all but finitely many places. They form the repartition space
A_F = {a : Place k F → F | ∀ᶠ P in cofinite, v_P (a P) ≤ 1},
filtered by the subspaces
A_F(D) = {a : Place k F → F | ∀ P, v_P (a P) ≤ exp (D P)}
attached to the divisors D of F / k. This file constructs both, embeds F diagonally,
and proves the basic calculus of the filtration: it is monotone and directed, it exhausts
A_F, and it cuts the diagonal copy of F in exactly the Riemann–Roch space L(D).
It is Stichtenoth, Algebraic Function Fields and Codes, 2nd ed., Definitions 1.5.2 and 1.5.3,
together with the elementary lemmas that Section I.5 uses without numbering them, and the
repartitions ι_P x supported at a single place from his Definition 1.7.1. The
quotients A_F(E)/A_F(D) and A_F ⧸ (A_F(D) + F), the index of specialty, and Weil
differentials are the work that consumes this file.
Main definitions #
TauCeti.repartitionSpace: the repartition spaceA_F(Definition 1.5.2), as ak-subspace ofPlace k F → F.TauCeti.adeleFiltration: the subspaceA_F(D)attached to a divisor (Definition 1.5.3).TauCeti.diagonalRepartitions: the diagonal copy ofFinsidePlace k F → F, the image ofPi.constAlgHom.TauCeti.submoduleOfAdeleFiltrationSupDiagonalRepartitions: the subspace(A_F(D) + F) ∩ A_FofA_F, whose cokernel computes the index of specialty.TauCeti.repartitionMul: multiplication of a repartition by a function, as ak-algebra map to thek-linear endomorphisms ofA_F.TauCeti.singleRepartition: the repartitionι_P xcarrying the entryxat a single placeP, as ak-linear mapF →ₗ[k] A_F.
Main results #
TauCeti.mem_repartitionSpace_iff_finiteandTauCeti.mem_adeleFiltration_iff: the two membership conditions, cofinite integrality and the pointwise bound.TauCeti.adeleFiltration_le_repartitionSpace,TauCeti.adeleFiltration_monoandTauCeti.directed_adeleFiltration: the filtration lands inA_F, and is monotone and directed.TauCeti.adeleFiltration_sup:A_F(D ⊔ E) = A_F(D) + A_F(E), the place-by-place splitting.TauCeti.repartitionSpace_eq_iSupandTauCeti.coe_repartitionSpace_eq_iUnion:A_F = ⋃_D A_F(D), the exhaustion.TauCeti.diagonalRepartitions_le_repartitionSpace: the diagonalF ↪ A_F, which is where the finiteness of the zeros and poles of a function enters.TauCeti.diagonalRepartitions_inf_adeleFiltration:F ∩ A_F(D) = L(D), the lemma that ties the filtration to the Riemann–Roch spaces, and its relative formTauCeti.adeleFiltration_inf_sup_diagonalRepartitions:A_F(E) ∩ (A_F(D) + F) = A_F(D) + L(E)forD ≤ E.TauCeti.smul_mem_adeleFiltration_iffandTauCeti.smul_mem_adeleFiltration_sub_principal: multiplying by a functionztranslates the filtration bydiv z, exactly as it does for Riemann–Roch spaces.TauCeti.smul_mem_repartitionSpaceandTauCeti.smul_mem_diagonalRepartitions: bothA_Fand the diagonal are stable under multiplication by a function.TauCeti.singleRepartition_mem_adeleFiltration_iff: the bound definingA_F(D)is a condition at the single placePon the repartitions supported there.
Implementation notes #
Both membership conditions are stated multiplicatively, as v_P (a P) ≤ exp (D P), and never
in the additive form ord_P (a P) ≥ -D P. The additive form is wrong as written: the junk value
ord_P 0 = 0 would throw the zero entries out of A_F(D) at every place where D P < 0, so the
additive carrier is not even closed under addition. With the multiplicative condition,
v_P 0 = 0 ≤ exp (D P) holds at every place, so A_F(D) contains 0 definitionally. This is
the same convention as TauCeti.riemannRochSpace, entrywise, which is what makes
TauCeti.diagonalRepartitions_inf_adeleFiltration hold on the nose.
A_F is pinned as a Submodule k, because a Weil differential is by definition a k-linear
form on it. Its multiplicative structure is not lost: TauCeti.one_mem_repartitionSpace and
TauCeti.mul_mem_repartitionSpace record that it is a subring, and
TauCeti.smul_mem_repartitionSpace records the F-scalar multiplication that the F-vector
space structure on the Weil differentials is built from.
ι_P x is built from Finsupp.lsingle P, not from Pi.single or LinearMap.single: the latter
two carry a DecidableEq argument, and no instance supplies a decidable equality of places, while
Finsupp.single needs none. TauCeti.singleRepartition_self and
TauCeti.singleRepartition_of_ne determine ι_P x entrywise, so nothing downstream has to
mention Finsupp.
References #
- H. Stichtenoth, Algebraic Function Fields and Codes, 2nd ed., GTM 254, Springer, 2009, Section I.5 and Definition 1.7.1.
The repartition space #
The repartition space A_F of F / k (Stichtenoth, Definition 1.5.2): the families
a : Place k F → F whose entries lie in F itself — no completions — and are integral at all
but finitely many places.
The integrality condition is the multiplicative v_P (a P) ≤ 1, which is junk-free at zero
entries, and the "all but finitely many" is Filter.cofinite; the equivalent finite-exceptional-
set form is TauCeti.mem_repartitionSpace_iff_finite.
Equations
- TauCeti.repartitionSpace k F = { carrier := {a : TauCeti.Place k F → F | ∀ᶠ (P : TauCeti.Place k F) in Filter.cofinite, P.valuation (a P) ≤ 1}, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
A_F is closed under multiplication: it is a subring of Place k F → F, not merely a
k-subspace.
The filtration by divisors #
The subspace A_F(D) of the repartition space attached to a divisor D (Stichtenoth,
Definition 1.5.3): the repartitions whose pole at each place P is bounded by D P.
The condition is the multiplicative v_P (a P) ≤ exp (D P) at every place, entrywise the
condition defining TauCeti.riemannRochSpace. In particular 0 ∈ A_F(D) definitionally, for
every D, which the additive form ord_P (a P) ≥ -D P would get wrong.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Membership in A_F(D), unfolded: the poles of the entries are bounded by D.
The additive form of the bound: at each place with a nonzero entry the order is at least
-D P. The nonvanishing guard is not a hypothesis but part of the statement, because
ord_P 0 = 0 is a junk value: a zero entry satisfies the multiplicative bound at every place,
including those where D P < 0.
The filtration is directed: any two of its members are contained in a third, namely the one attached to the pointwise maximum of the two divisors.
Every repartition is bounded by some divisor: the exceptional set is finite, and the pole
orders max 0 (-ord_P (a P)) of the entries there are the coefficients of a divisor that
works.
The filtration exhausts the repartition space, as the literal union of sets:
A_F = ⋃_D A_F(D). The union is directed by TauCeti.directed_adeleFiltration.
The diagonal copy of F #
The diagonal copy of F inside Place k F → F: the constant families. Together with
TauCeti.diagonalRepartitions_le_repartitionSpace this is the embedding F ↪ A_F of
Stichtenoth, Definition 1.5.2.
Equations
- TauCeti.diagonalRepartitions k F = (Pi.constAlgHom k (TauCeti.Place k F) F).toLinearMap.range
Instances For
The diagonal embedding F ↪ A_F at the level of elements: a function of an algebraic
function field is integral at all but finitely many places, because it has only finitely many
poles (Stichtenoth, Corollary 1.3.4).
The diagonal embedding F ↪ A_F: the constant families are repartitions.
F ∩ A_F(D) = L(D): the diagonal meets the D-th step of the filtration in exactly
the Riemann–Roch space of D. This is the lemma that makes the repartition quotients compute
the index of specialty.
The relative form of F ∩ A_F(D) = L(D) (Stichtenoth, in the proof of Theorem 1.5.4):
for D ≤ E, a repartition bounded by E that differs from a constant by a repartition bounded
by D differs from a constant of L(E), so that
A_F(E) ∩ (A_F(D) + F) = A_F(D) + L(E).
Given A_F(D) ≤ A_F(E) this is the modular law for the lattice of subspaces followed by
TauCeti.diagonalRepartitions_inf_adeleFiltration.
The constant repartition of a function of L(E) is bounded by E, and is a constant, so it
lies in A_F(E) ∩ (A_F(D) + F).
Membership in A_F(D) + F, the subspace whose cokernel in A_F computes the index of
specialty: a repartition lies in it exactly when subtracting a single constant brings it into
A_F(D).
A_F(D) + F is a subspace of the repartition space.
The subspace (A_F(D) + F) ∩ A_F of the repartition space: the repartitions that differ
from a constant by one whose poles are bounded by D. Its cokernel in A_F is the index of
specialty of D, and a Weil differential bounded by D is a k-linear form killing it.
Equations
Instances For
(A_F(D) + F) ∩ A_F is A_F(D) + F cut down to A_F in the sense of
Submodule.submoduleOf, so that combinator's API applies to it.
Membership in (A_F(D) + F) ∩ A_F is membership in A_F(D) + F of the underlying family.
Translating the filtration by a principal divisor #
Multiplying a repartition by a nonzero function z translates the filtration by div z:
the entrywise valuations are all scaled by v_P z = exp (-ord_P z).
Multiplying by z carries A_F(D) into A_F(D - div z), the repartition analogue of
TauCeti.mul_mem_riemannRochSpace_sub_principal.
The repartition space is stable under multiplication by a function: it is an F-subspace
of Place k F → F, which is what the F-vector space structure on the Weil differentials is
built from.
The diagonal copy of F is stable under multiplication by a function: a constant times a
constant is a constant.
Multiplication of repartitions by a function, as a k-algebra map to the k-linear
endomorphisms of the repartition space. It lands in the repartition space because a function of
an algebraic function field has only finitely many poles.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplying a repartition by f multiplies each of its entries by f.
Repartitions supported at a single place #
The repartition ι_P x with the entry x at the place P and 0 at every other place
(Stichtenoth, Definition 1.7.1), as a k-linear map F →ₗ[k] A_F.
It is Finsupp.single P x, read as a family indexed by all the places; a finitely supported
family is integral outside its support, hence a repartition.
Equations
Instances For
ι_P x is bounded by D exactly when the pole of x at P is: at every other place its
entry is 0, which every divisor bounds.
This is not @[simp]: TauCeti.mem_adeleFiltration_iff is, and it rewrites this left-hand side
first, so tagging this one is a simp-normal-form violation that scripts/lint-env.sh rejects.
Multiplying ι_P x by a function multiplies its entry: f · ι_P x = ι_P (f x).