Definitions/Def_Stickelberger_Basic.lean
Stickelberger element acting on a mod- -module
Fix a natural number p, an additive commutative group A carrying a \mathbb{Z}/p-module structure, and regard an action of \Delta=(\mathbb{Z}/p)^\times on A as a monoid homomorphism \rho\colon(\mathbb{Z}/p)^\times\to\operatorname{End}_{\mathbb{Z}/p}(A) rather than as a group-action instance. The indexing set exponentSet p is the finite set of natural numbers c<p with 0<c and 2c<p, i.e. the integers in the lower half interval 0<c<p/2; the accompanying membership lemma records that c lies in it exactly when 0<c and 2c<p, the bound c<p being automatic. The natural number eigenvalueScalar p is the sum \sum_{0<c<p/2}c of the elements of that set. For c:\mathbb{N}, expUnit p c is the unit of \mathbb{Z}/p determined by c when c is coprime to p (via Mathlib's ZMod.unitOfCoprime) and is 1 otherwise, so it is a total function on \mathbb{N} by a case split rather than a partially defined one.
Given \rho, the endomorphism stickelbergerEnd is \eta=\sum_{c\in\mathtt{exponentSet}\,p}\rho\bigl((\mathtt{expUnit}\,p\,c)^{-1}\bigr), the sum taken in the \mathbb{Z}/p-linear endomorphism ring; this is the integral half-interval Stickelberger operator \sum_{0<c<p/2}\sigma_c^{-1} acting through \rho. The predicate StickelbergerAnnihilates asserts that \eta a=0 for every a\in A, stated pointwise rather than as the equation \eta=0 in the endomorphism ring. The predicate IsOmegaEigenvector takes an exponent i:\mathbb{N} and an element a\in A, and asserts that \rho(d)\,a=\bigl(\bar d^{\,i}\bigr)\cdot a for every unit d of \mathbb{Z}/p, where \bar d\in\mathbb{Z}/p is the underlying residue: thus a lies in the \omega^i-eigenspace for the given action, with \omega the inclusion of \Delta into (\mathbb{Z}/p)^\times.
Relation to Mathlib
Mathlib has no Stickelberger element or eigenspace-decomposition API; these notions are the project's own, built from Mathlib's ZMod, its unit ZMod.unitOfCoprime, and Module.End.
Where it is used
These definitions are the carriers for the Stickelberger annihilation and \omega^i-eigenspace statements used in the cyclotomic input to the theory of rational torsion on elliptic curves, which enters the irreducibility and level-lowering side of the argument.
References
- L. C. Washington, Introduction to Cyclotomic Fields, Graduate Texts in Mathematics 83, Springer, 1982, Chapter 6
- S. Lang, Cyclotomic Fields I and II, Graduate Texts in Mathematics 121, Springer, 1990
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 35 lines
- 7 declarations
- used in the statements of 2 theorems and imported by 1 proofs
- imports 0 definition modules
Source file: Definitions/Def_Stickelberger_Basic.lean
Imports
- only Mathlib
Declarations
- def
Stickelberger.exponentSet - lemma
Stickelberger.mem_exponentSet - def
Stickelberger.eigenvalueScalar - def
Stickelberger.expUnit - def
Stickelberger.stickelbergerEnd - def
Stickelberger.StickelbergerAnnihilates - def
Stickelberger.IsOmegaEigenvector
Source
import Mathlib.Data.ZMod.Basic ↗ import Mathlib.Algebra.Module.LinearMap.End ↗ import Mathlib.Algebra.BigOperators.Group.Finset.Basic ↗ set_option autoImplicit false namespace Stickelberger def exponentSet (p : ℕ) : Finset ℕ := (Finset.range p).filter fun c => 0 < c ∧ 2 * c < p @[simp] lemma mem_exponentSet {p c : ℕ} : c ∈ exponentSet p ↔ 0 < c ∧ 2 * c < p := by simp only [exponentSet, Finset.mem_filter, Finset.mem_range] exact ⟨fun h => h.2, fun h => ⟨by omega, h⟩⟩ def eigenvalueScalar (p : ℕ) : ℕ := ∑ c ∈ exponentSet p, c noncomputable def expUnit (p : ℕ) (c : ℕ) : (ZMod p)ˣ := if h : Nat.Coprime c p then ZMod.unitOfCoprime c h else 1 variable {p : ℕ} {A : Type*} [AddCommGroup A] [Module (ZMod p) A] noncomputable def stickelbergerEnd (ρ : (ZMod p)ˣ →* Module.End (ZMod p) A) : Module.End (ZMod p) A := ∑ c ∈ exponentSet p, ρ (expUnit p c)⁻¹ def StickelbergerAnnihilates (ρ : (ZMod p)ˣ →* Module.End (ZMod p) A) : Prop := ∀ a : A, stickelbergerEnd ρ a = 0 def IsOmegaEigenvector (ρ : (ZMod p)ˣ →* Module.End (ZMod p) A) (i : ℕ) (a : A) : Prop := ∀ d : (ZMod p)ˣ, ρ d a = ((d : ZMod p) ^ i) • a end Stickelberger