Definitions/Def_NumberField_RayCharacterData.lean
Hecke character data: signs, parity, primitivity, Gauss sums
Throughout, K is a number field, \mathfrak f an ideal of \mathcal O_K, and \chi a monoid homomorphism from the narrow ray class group \mathrm{NarrowRayClassGroup}\,K\,\mathfrak f to \mathbb C; that group is the quotient of the subgroup coprimeToModulus of invertible fractional ideals whose multiplicity vanishes at every height-one prime dividing \mathfrak f by the subgroup generated by the ideals (\alpha) with \alpha\neq 0, \alpha\equiv 1 \pmod{\mathfrak f} and \tau(\alpha)>0 for every ring homomorphism \tau : K\to\mathbb R. For a finite set S of real infinite places, signAt sends x\in K to the product over v\in S of the signs of the real embeddings attached to v, viewed in \mathbb C. chiIdeal extends \chi to all fractional ideals: the value at I is \chi of the class of I when I\neq0 and I, as a unit, lies in coprimeToModulus, and 0 otherwise. IsParity K π£ Ο S asserts that \chi of the principal ideal (\alpha) equals \mathrm{signAt}\,S\,\alpha for every \alpha\neq0 with \alpha-1\in\mathfrak f (no positivity being imposed on \alpha), and chiFin is the sign-corrected value \chi((\alpha))\cdot \mathrm{signAt}\,S\,\alpha. IsPrimitiveMod K π£ Ο is the witness form of primitivity: for every ideal \mathfrak f' with \mathfrak f\subseteq\mathfrak f' and \mathfrak f'\neq\mathfrak f there is a totally positive \alpha\neq0 with \alpha-1\in\mathfrak f' whose value \chi((\alpha)) is neither 0 nor 1. addChar is x\mapsto \exp(2\pi i\,\mathrm{Tr}_{K/\mathbb Q}(x)). Given \mathfrak f\neq 0, which makes \mathcal O_K/\mathfrak f finite, gaussSumAt at y\in K is \mathrm{signAt}\,S\,y times \chi of (y)\,\mathfrak f\,\mathfrak d, \mathfrak d=\mathrm{differentIdeal}\ \mathbb Z\ \mathcal O_K, times \sum_{r\in\mathcal O_K/\mathfrak f}\mathrm{chiFin}(r)\,\mathrm{addChar}(r y), the sum being taken over chosen representatives of the residues. Finally IsGaussDatum K π£ Ο y requires y\neq0, \mathrm{Tr}_{K/\mathbb Q}(\alpha y)\in\mathbb Z for all \alpha\in\mathfrak f, and \chi((y)\,\mathfrak f\,\mathfrak d)\neq0. Two degenerate cases are recorded: the trivial character with S=\varnothing satisfies IsParity, and every character modulo \mathfrak f=\top satisfies IsPrimitiveMod, there being no ideal strictly containing \top.
Relation to Mathlib
The narrow ray class group used here is the project's own construction; the ingredients taken from Mathlib are fractional ideals and their multiplicities, infinite places together with the real embedding attached to a real place, the trace form, and the different ideal differentIdeal. The Gauss sums defined here are sums attached to a Hecke character of a number field, not instances of Mathlib's gaussSum for characters of finite fields.
Where it is used
This module fixes the vocabulary β extension of a narrow ray class character to fractional ideals, its sign pattern at real places, parity, primitivity and the associated Gauss sums β shared by the statements about Hecke characters of number fields in this part of the development.
References
- J. Neukirch, Algebraic Number Theory, Grundlehren der mathematischen Wissenschaften 322, Springer, 1999, Ch. VIβVII
- W. Narkiewicz, Elementary and Analytic Theory of Algebraic Numbers, 3rd ed., Springer Monographs in Mathematics, Springer, 2004
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 86 lines
- 10 declarations
- used in the statements of 5 theorems and imported by 8 proofs
- imports 1 definition modules
Source file: Definitions/Def_NumberField_RayCharacterData.lean
Imports
Imported by
Declarations
- def
M4aP2.signAt - def
M4aP2.chiIdeal - def
M4aP2.IsParity - def
M4aP2.chiFin - def
M4aP2.IsPrimitiveMod - def
M4aP2.addChar - def
M4aP2.gaussSumAt - def
M4aP2.IsGaussDatum - theorem
M4aP2.isParity_one_empty - theorem
M4aP2.isPrimitiveMod_top
Source
import Definitions.Def_NarrowRayClassGroup import Mathlib.RingTheory.DedekindDomain.Different β set_option autoImplicit false noncomputable section namespace M4aP2 open Real NumberField NumberField.InfinitePlace Deep.NTSupply open scoped nonZeroDivisors Classical variable (K : Type) [Field K] [NumberField K] def signAt (S : Finset {w : InfinitePlace K // IsReal w}) (x : K) : β := β v β S, ((SignType.sign (embedding_of_isReal v.2 x) : β€) : β) variable (π£ : Ideal (π K)) (Ο : NarrowRayClassGroup K π£ β* β) def chiIdeal (I : FractionalIdeal (π K)β° K) : β := if h : I β 0 then (if hc : Units.mk0 I h β coprimeToModulus K π£ then Ο (NarrowRayClassGroup.mk K π£ β¨Units.mk0 I h, hcβ©) else 0) else 0 def IsParity (S : Finset {w : InfinitePlace K // IsReal w}) : Prop := β Ξ± : π K, Ξ± β 0 β Ξ± - 1 β π£ β chiIdeal K π£ Ο ((Ideal.span {Ξ±} : Ideal (π K)) : FractionalIdeal (π K)β° K) = signAt K S (Ξ± : K) def chiFin (S : Finset {w : InfinitePlace K // IsReal w}) (Ξ± : π K) : β := chiIdeal K π£ Ο ((Ideal.span {Ξ±} : Ideal (π K)) : FractionalIdeal (π K)β° K) * signAt K S (Ξ± : K) def IsPrimitiveMod : Prop := β π£' : Ideal (π K), π£ β€ π£' β π£' β π£ β β Ξ± : π K, Ξ± β 0 β§ Ξ± - 1 β π£' β§ (β Ο : K β+* β, 0 < Ο (Ξ± : K)) β§ chiIdeal K π£ Ο ((Ideal.span {Ξ±} : Ideal (π K)) : FractionalIdeal (π K)β° K) β 0 β§ chiIdeal K π£ Ο ((Ideal.span {Ξ±} : Ideal (π K)) : FractionalIdeal (π K)β° K) β 1 def addChar (x : K) : β := Complex.exp (2 * Ο * Complex.I * (Algebra.trace β K x : β)) def gaussSumAt (hπ£ : π£ β β₯) (S : Finset {w : InfinitePlace K // IsReal w}) (y : K) : β := haveI := Ideal.finiteQuotientOfFreeOfNeBot π£ hπ£ haveI : Fintype (π K β§Έ π£) := Fintype.ofFinite _ signAt K S y * chiIdeal K π£ Ο (FractionalIdeal.spanSingleton (π K)β° y * (π£ : FractionalIdeal (π K)β° K) * ((differentIdeal β€ (π K) : Ideal (π K)) : FractionalIdeal (π K)β° K)) * β r : π K β§Έ π£, chiFin K π£ Ο S (Quotient.out r) * addChar K ((Quotient.out r : π K) * y) def IsGaussDatum (y : K) : Prop := y β 0 β§ (β Ξ± : π K, Ξ± β π£ β (Algebra.trace β K ((Ξ± : K) * y) : β) β (algebraMap β€ β).range) β§ chiIdeal K π£ Ο (FractionalIdeal.spanSingleton (π K)β° y * (π£ : FractionalIdeal (π K)β° K) * ((differentIdeal β€ (π K) : Ideal (π K)) : FractionalIdeal (π K)β° K)) β 0 theorem isParity_one_empty : IsParity K π£ (1 : NarrowRayClassGroup K π£ β* β) β := by intro Ξ± hΞ± h1 have hne : ((Ideal.span {Ξ±} : Ideal (π K)) : FractionalIdeal (π K)β° K) β 0 := by rw [Ne, FractionalIdeal.coeIdeal_eq_zero, Ideal.span_singleton_eq_bot] exact hΞ± have hcop : Units.mk0 _ hne β coprimeToModulus K π£ := by have h := principalUnit_mem_coprimeToModulus K hΞ± h1 rw [mem_coprimeToModulus_iff] at h β’ intro v hv have := h v hv rwa [principalUnit_val] at this rw [chiIdeal, dif_pos hne, dif_pos hcop, MonoidHom.one_apply, signAt, Finset.prod_empty] theorem isPrimitiveMod_top (Ο' : NarrowRayClassGroup K β€ β* β) : IsPrimitiveMod K β€ Ο' := by intro π£' hle hne exact absurd (top_le_iff.mp hle) hne end M4aP2 end #print axioms M4aP2.signAt #print axioms M4aP2.chiIdeal #print axioms M4aP2.IsParity #print axioms M4aP2.chiFin #print axioms M4aP2.IsPrimitiveMod #print axioms M4aP2.addChar #print axioms M4aP2.gaussSumAt #print axioms M4aP2.IsGaussDatum #print axioms M4aP2.isParity_one_empty #print axioms M4aP2.isPrimitiveMod_top
Statements phrased using this module (5)
- Functional equation of completed narrow ray class L-functions
M4aTorus.completedRayL_fe0 below Β· depth 14 - Hecke's functional equation for narrow class characters
NumberField.exists_completedRayL_functionalEquation_of_modulus_top0 below Β· depth 14 - Existence of a Gauss datum for a narrow ray class character
NumberField.exists_isGaussDatum0 below Β· depth 14 - Logarithm of a narrow ray class L-series as a prime sum
NumberField.exists_continuousOn_exp_eq_rayClassLSeries0 below Β· depth 16 - Entireness of non-trivial narrow ray class L-series (Hecke)
NumberField.exists_differentiable_eq_rayClassLSeries_of_ne_one1 below Β· depth 16