Definitions/Def_LocalNewvector_CharConductor.lean
Character conductor exponent and higher units of
Fix a prime p. All notions here concern monoid homomorphisms \mu : \mathbb{Q}_p^\times \to \mathbb{C}^\times, with no continuity or finite-order requirement imposed.
IsUnramified p μ says that \mu(u) = 1 for every u \in \mathbb{Q}_p^\times with \|u\| = 1. The filtration is given by higherUnits p n, a set (not a subgroup) of \mathbb{Q}_p^\times: for n = 0 it is \{u : \|u\| = 1\}, and for n \ge 1 it is \{u : \|u\| = 1 \text{ and } \|u - 1\| \le p^{-n}\}; the definition is phrased uniformly as \|u\| = 1 together with the disjunction (n = 0 or \|u-1\| \le p^{-n}). It contains 1 and is antitone in n, so n \mapsto higherUnits p n is a decreasing family.
HasCharConductor p μ c is a two-clause relation, not a function: \mu is trivial on higherUnits p c, and for every m < c there is some u \in higherUnits p m with \mu(u) \ne 1. The minimality clause forces uniqueness of c (hasCharConductor_unique), and at c = 0 the relation is equivalent to IsUnramified p μ; the trivial character has exponent 0 and no positive exponent.
The unramified characters are produced explicitly: unitValuation p is the homomorphism \mathbb{Q}_p^\times \to \mathrm{Multiplicative}\,\mathbb{Z} given by the p-adic valuation of a unit, and for s \in \mathbb{C}^\times, valChar p s is u \mapsto s^{v(u)}. Each valChar p s is unramified, hence has conductor exponent 0; it is nontrivial as soon as s \ne 1 (evaluate at p, where v(p) = 1), giving a nontrivial unramified character, e.g. u \mapsto 2^{v(u)}.
Relation to Mathlib
Mathlib provides the p-adic norm and the valuation of a nonzero p-adic number (Padic.valuation, Padic.norm_eq_zpow_neg_valuation), on which unitValuation and the norm conditions rest; the higher unit sets, the unramifiedness predicate and the conductor-exponent relation are the project's own, with higherUnits carried as a set rather than as a subgroup.
Where it is used
This is the vocabulary in which the conductor exponent of a character of \mathbb{Q}_p^\times is stated, as needed for the local newvector theory: the conductor of a principal series B(\mu_1, \mu_2) is expressed in terms of exponents n_1, n_2 attached to \mu_1, \mu_2 by HasCharConductor.
References
- C. J. Bushnell and G. Henniart, The Local Langlands Conjecture for GL(2), Grundlehren der mathematischen Wissenschaften 335, Springer, 2006
- J.-P. Serre, Local Fields, Graduate Texts in Mathematics 67, Springer, 1979
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 126 lines
- 20 declarations
- used in the statements of 30 theorems and imported by 37 proofs
- imports 1 definition modules
Source file: Definitions/Def_LocalNewvector_CharConductor.lean
Imported by
- no other definition module
Declarations
- def
LocalNewvector.IsUnramified - theorem
LocalNewvector.isUnramified_one - def
LocalNewvector.unitValuation - theorem
LocalNewvector.unitValuation_apply - def
LocalNewvector.valChar - theorem
LocalNewvector.valChar_apply - theorem
LocalNewvector.isUnramified_valChar - theorem
LocalNewvector.valChar_ne_one - theorem
LocalNewvector.exists_isUnramified_ne_one - def
LocalNewvector.higherUnits - theorem
LocalNewvector.mem_higherUnits_iff - theorem
LocalNewvector.mem_higherUnits_zero_iff - theorem
LocalNewvector.one_mem_higherUnits - theorem
LocalNewvector.higherUnits_antitone - def
LocalNewvector.HasCharConductor - theorem
LocalNewvector.hasCharConductor_zero_iff_isUnramified - theorem
LocalNewvector.hasCharConductor_unique - theorem
LocalNewvector.hasCharConductor_one_zero - theorem
LocalNewvector.hasCharConductor_valChar_zero - theorem
LocalNewvector.not_hasCharConductor_one_succ
Source
import Definitions.Def_LocalLanglands_LocalHeckeInstance set_option autoImplicit false noncomputable section namespace LocalNewvector variable (p : ℕ) [Fact p.Prime] def IsUnramified (μ : ℚ_[p]ˣ →* ℂˣ) : Prop := ∀ u : ℚ_[p]ˣ, ‖(u : ℚ_[p])‖ = 1 → μ u = 1 theorem isUnramified_one : IsUnramified p (1 : ℚ_[p]ˣ →* ℂˣ) := fun _ _ => rfl def unitValuation : ℚ_[p]ˣ →* Multiplicative ℤ where toFun u := Multiplicative.ofAdd (u : ℚ_[p]).valuation map_one' := by simp [Padic.valuation_one] map_mul' u v := by simp only [Units.val_mul] rw [Padic.valuation_mul u.ne_zero v.ne_zero, ofAdd_add] @[simp] theorem unitValuation_apply (u : ℚ_[p]ˣ) : Multiplicative.toAdd (unitValuation p u) = (u : ℚ_[p]).valuation := rfl def valChar (s : ℂˣ) : ℚ_[p]ˣ →* ℂˣ := (zpowersHom ℂˣ s).comp (unitValuation p) @[simp] theorem valChar_apply (s : ℂˣ) (u : ℚ_[p]ˣ) : valChar p s u = s ^ (u : ℚ_[p]).valuation := rfl theorem isUnramified_valChar (s : ℂˣ) : IsUnramified p (valChar p s) := by intro u hu rw [valChar_apply] have hv0 : (u : ℚ_[p]).valuation = 0 := by have hp_ne_one : (p : ℝ) ≠ 1 := mod_cast (Fact.out : p.Prime).ne_one have hp_pos : (0 : ℝ) < p := mod_cast (Fact.out : p.Prime).pos have := Padic.norm_eq_zpow_neg_valuation u.ne_zero rw [hu] at this have := (zpow_right_inj₀ hp_pos hp_ne_one).mp (this.symm.trans (zpow_zero (p : ℝ)).symm) omega rw [hv0, zpow_zero] theorem valChar_ne_one {s : ℂˣ} (hs : s ≠ 1) : valChar p s ≠ 1 := by intro h have hpne : (p : ℚ_[p]) ≠ 0 := by exact_mod_cast (Fact.out : p.Prime).ne_zero have hp1 : (p : ℚ_[p]).valuation = 1 := by have := Padic.valuation_p (p := p); exact_mod_cast this have := DFunLike.congr_fun h (Units.mk0 (p : ℚ_[p]) hpne) rw [valChar_apply, Units.val_mk0, hp1, zpow_one, MonoidHom.one_apply] at this exact hs this theorem exists_isUnramified_ne_one : ∃ μ : ℚ_[p]ˣ →* ℂˣ, IsUnramified p μ ∧ μ ≠ 1 := by have h2 : (2 : ℂ) ≠ 0 := two_ne_zero refine ⟨valChar p (Units.mk0 2 h2), isUnramified_valChar p _, valChar_ne_one p ?_⟩ intro h1 have := Units.val_eq_one.mpr h1 simp only [Units.val_mk0] at this exact (by norm_num : (2 : ℂ) ≠ 1) this def higherUnits (n : ℕ) : Set ℚ_[p]ˣ := {u | ‖(u : ℚ_[p])‖ = 1 ∧ (n = 0 ∨ ‖(u : ℚ_[p]) - 1‖ ≤ (p : ℝ) ^ (-(n : ℤ)))} theorem mem_higherUnits_iff {n : ℕ} {u : ℚ_[p]ˣ} : u ∈ higherUnits p n ↔ ‖(u : ℚ_[p])‖ = 1 ∧ (n = 0 ∨ ‖(u : ℚ_[p]) - 1‖ ≤ (p : ℝ) ^ (-(n : ℤ))) := Iff.rfl theorem mem_higherUnits_zero_iff {u : ℚ_[p]ˣ} : u ∈ higherUnits p 0 ↔ ‖(u : ℚ_[p])‖ = 1 := by simp [mem_higherUnits_iff] theorem one_mem_higherUnits (n : ℕ) : (1 : ℚ_[p]ˣ) ∈ higherUnits p n := by refine ⟨by simp, ?_⟩ rcases Nat.eq_zero_or_pos n with h | h · exact Or.inl h · right simp only [Units.val_one, sub_self, norm_zero] positivity theorem higherUnits_antitone : Antitone (higherUnits p) := by intro m n hmn u hu obtain ⟨hnorm, hball⟩ := hu refine ⟨hnorm, ?_⟩ rcases Nat.eq_zero_or_pos m with hm | hm · exact Or.inl hm · right rcases hball with hn0 | hle · omega · have hp1 : (1 : ℝ) ≤ p := Nat.one_le_cast.mpr (Nat.Prime.one_lt (Fact.out (p := p.Prime))).le exact hle.trans (zpow_le_zpow_right₀ hp1 (by omega)) def HasCharConductor (μ : ℚ_[p]ˣ →* ℂˣ) (c : ℕ) : Prop := (∀ u ∈ higherUnits p c, μ u = 1) ∧ ∀ m < c, ∃ u ∈ higherUnits p m, μ u ≠ 1 theorem hasCharConductor_zero_iff_isUnramified {μ : ℚ_[p]ˣ →* ℂˣ} : HasCharConductor p μ 0 ↔ IsUnramified p μ := by constructor · intro h u hu exact h.1 u ((mem_higherUnits_zero_iff p).mpr hu) · intro h exact ⟨fun u hu => h u ((mem_higherUnits_zero_iff p).mp hu), fun m hm => absurd hm (Nat.not_lt_zero m)⟩ theorem hasCharConductor_unique {μ : ℚ_[p]ˣ →* ℂˣ} {c c' : ℕ} (h : HasCharConductor p μ c) (h' : HasCharConductor p μ c') : c = c' := by by_contra hne rcases Nat.lt_or_gt_of_ne hne with hlt | hgt · obtain ⟨u, hu, hne1⟩ := h'.2 c hlt exact hne1 (h.1 u hu) · obtain ⟨u, hu, hne1⟩ := h.2 c' hgt exact hne1 (h'.1 u hu) theorem hasCharConductor_one_zero : HasCharConductor p (1 : ℚ_[p]ˣ →* ℂˣ) 0 := (hasCharConductor_zero_iff_isUnramified p).mpr (isUnramified_one p) theorem hasCharConductor_valChar_zero (s : ℂˣ) : HasCharConductor p (valChar p s) 0 := (hasCharConductor_zero_iff_isUnramified p).mpr (isUnramified_valChar p s) theorem not_hasCharConductor_one_succ (c : ℕ) : ¬ HasCharConductor p (1 : ℚ_[p]ˣ →* ℂˣ) (c + 1) := by rintro ⟨-, hmin⟩ obtain ⟨u, -, hne⟩ := hmin c (Nat.lt_succ_self c) exact hne rfl end LocalNewvector end
Statements phrased using this module (30)
- Inertia at q with q² ‖ M: principal series versus supercuspidal
CuspForm.IsNewform.exists_charpoly_inertia_eq_principalSeries_supercuspidal_of_galoisRepAdic_of_two_laws_of_irreducible_odd_of_ne_two_of_factorization_eq_two10,725 below · depth 11 - Ramified first character in a principal series at q² ∣ M
CuspForm.IsNewform.exists_mem_higherUnits_apply_ne_one_of_linearMap_psCarrier_ne_zero_of_sq_dvd57 below · depth 11 - Unramifiedness of the central character μ₁μ₂
CuspForm.IsAdelicLiftOf.isUnramified_mul_of_linearMap_psCarrier_ne_zero6 below · depth 12 - Inertia at a principal-series prime q with v_q(M)=2
CuspForm.IsNewform.exists_charpoly_inertia_eq_and_pow_eq_one_iff_of_linearMap_psCarrier_ne_zero_of_factorization_eq_two7,035 below · depth 12 - Newvector with Iwahori values 1 and -p⁻¹
LocalNewvector.PSCarrier.existsUnique_mem_inf_fixedSubmodule_padicK1_one_of_stable5 below · depth 12 - Dimension of K₁(p^m)-fixed vectors in principal series
LocalNewvector.PSCarrier.finrank_fixedSubmodule_padicK13 below · depth 12 - Spherical vectors lie in every nonzero stable subspace
LocalNewvector.PSCarrier.fixedSubmodule_padicK1_zero_le_of_stable4 below · depth 12 - Irreducibility of unramified principal series for GL₂(ℚₚ)
LocalNewvector.PSCarrier.isIrreducibleGLRep_of_isUnramified0 below · depth 12 - Twisting a ramified-ratio principal series to K₁(qᵇ)-fixed vectors
CuspForm.IsAdelicLiftOf.exists_mem_span_fnTwist_fixed_padicK1_of_principalSeries_of_not_isUnramified_ratio11 below · depth 13 - Inertia at q≠λ: principal series with unramified ratio
CuspForm.IsNewform.exists_charpoly_inertia_eq_and_pow_eq_one_iff_of_linearMap_psCarrier_ne_zero_of_isUnramified_ratio3,781 below · depth 13 - Inertial charpolys at a ramified principal-series prime, v_q(M)=2
CuspForm.IsNewform.exists_galoisRepAdic_charpoly_inertia_eq_cyclotomicCharacter_of_linearMap_psCarrier_ne_zero_of_not_isUnramified_ratio_of_factorization_eq_two6,229 below · depth 13 - Local type at a prime exactly squared in the level
CuspForm.IsNewform.psCarrier_lam_dvd_sub_one_or_no_psCarrier_lam_dvd_add_one_of_factorization_eq_two_of_residual_isUnipotent_of_irreducible_odd_of_absIrred_odd10,753 below · depth 13 - Oldform dimension count for a principal series
LocalNewvector.PSCarrier.finrank_fixedSubmodule_padicK1_of_add_le1 below · depth 13 - Casselman's conductor formula for the principal series
LocalNewvector.PSCarrier.hasNewvectorConductor_add1 below · depth 13 - Irreducibility of the principal series of GL₂(ℚₚ)
LocalNewvector.PSCarrier.isIrreducibleGLRep_of_hasCharConductor_of_ratio0 below · depth 13 - Both characters ramified at q forces q² ∣ M
CuspForm.IsAdelicLiftOf.sq_dvd_of_linearMap_psCarrier_ne_zero_of_not_isUnramified_of_not_isUnramified1 below · depth 14 - Ramified principal series at q with v_q(M)=2: twist of level exactly q
CuspForm.IsNewform.exists_isPrimitiveForm_adelicLiftGamma1_psCarrier_isUnramified_of_not_isUnramified_ratio_of_factorization_eq_two473 below · depth 14 - Quadratic twist lowering the q-exponent of a newform
CuspForm.IsNewform.exists_quadraticTwistToExponentOne_of_sq_dvd_of_adelicLift_principalSeries_isUnramified_ratio67 below · depth 14 - Nonzero inertia invariants at q when v_q(M)=1
CuspForm.IsPrimitiveForm.exists_ne_zero_forall_inertiaSubgroupIn_apply_eq_self_of_linearMap_psCarrier_isUnramified_of_factorization_eq_one5,713 below · depth 14 - Characters of a nonzero principal series are smooth
LocalNewvector.PSCarrier.exists_forall_mem_higherUnits_apply_eq_one_of_ne_zero0 below · depth 14 - Quadratic twist produces a K₁(q)-fixed vector with trivial central action
CuspForm.IsAdelicLiftOf.exists_mem_span_fnTwist_fixed_padicK1_one_of_principalSeries15 below · depth 15 - Principal-series characters trivial on 1+qℤ_q when v_q(M)=2
CuspForm.IsNewform.apply_eq_one_of_mem_higherUnits_one_of_factorization_eq_two_of_linearMap_psCarrier_ne_zero10 below · depth 15 - Twisting a newform to unramified principal-series character at q
CuspForm.IsNewform.exists_isPrimitiveForm_adelicLiftGamma1_psCarrier_isUnramified_of_not_isUnramified_ratio457 below · depth 15 - Inertia invariants at q for v_q(M)=1, unramified principal series
CuspForm.IsPrimitiveForm.exists_galoisRepAdic_forall_inertiaSubgroupIn_apply_eq_self_of_linearMap_psCarrier_isUnramified_of_factorization_eq_one5,712 below · depth 15 - Principal series with unramified character: v_q(M) versus v_q(cond ε)
CuspForm.IsPrimitiveForm.factorization_eq_conductor_factorization_or_of_linearMap_psCarrier_isUnramified33 below · depth 15 - Ramified principal series has no GL₂(ℤₚ)-fixed vector
LocalNewvector.PSCarrier.fixedSubmodule_padicK1_zero_eq_bot0 below · depth 15 - Twisting away ramification of μ₁ in a principal series
LocalNewvector.AdelicSpan.exists_psCarrier_fnTwist_isUnramified_fixed_padicK1_of_not_isUnramified_ratio7 below · depth 16 - Invariant subspaces of the principal series B(μ₁,μ₁|·|)
LocalNewvector.PSCarrier.exists_forall_stable_iff_of_hasCharConductor_of_ratio_eq_natCast3 below · depth 16 - Casselman's level count for the special subrepresentation at K₁(p^m)
LocalNewvector.PSCarrier.finrank_inf_fixedSubmodule_padicK1_of_stable5 below · depth 16 - Residual irreducibility, oddness and inertial unipotence for a congruent newform
WeierstrassCurve.exists_galoisRepAdic_residual_irreducible_odd_unipotent_of_isSemistableModel_of_qCoeff_congr1,487 below · depth 17