Definitions/Def_RatIdele_Normalizer.lean
Normaliser of a rational idele and its unit coordinates
Working with the adele ring \mathbb{A}_\mathbb{Q} of \mathbb{Q}, written as the product of the infinite adeles with the finite adele ring of \mathcal{O}_{\mathbb{Q}}, this module attaches to each idele x \in \mathbb{A}_\mathbb{Q}^\times three sets of coordinates. First, archCoord x is the real number obtained by evaluating the archimedean part of x at the unique infinite place of \mathbb{Q} and transporting it along the ring isomorphism of that completion with \mathbb{R}; it is multiplicative, never zero, equal to q on the principal idele of q \in \mathbb{Q}^\times and equal to 1 on ideles with trivial archimedean part. Its sign is recorded as \pm 1 \in \mathbb{Q} by archSign. Second, for a height-one prime v of \mathcal{O}_{\mathbb{Q}}, ordAt v x is the integer n with |x_v|_v = \exp(-n) in \mathbb{Z}^{m0}, i.e. minus the WithZero logarithm of the valuation of the v-component; it is additive in x and vanishes outside a finite set of v. The homomorphism finPart is the restriction of an idele to its finite part.
The predicate IsNormalizer x r, for r \in \mathbb{Q}, asserts that v(r) = |x_v|_v for every finite place v and that \mathrm{archCoord}(x)\cdot r > 0; such an r is nonzero and, by the fact that a positive rational with trivial valuation at all finite places equals 1, unique. The explicit normaliser is
\rho(x) = \mathrm{archSign}(x)\prod_v p_v^{\,\mathrm{ord}_v(x)},
the finite product running over the primes p_v generating the v, and it is shown to satisfy the predicate. Accordingly \rho is multiplicative, sends the principal idele of q to q, sends the idele concentrated at v with component of valuation \exp(-1) to p_v and with unit component to 1, and reduces to the sign when the finite part is trivial. Third, unitAt v x = x_v \cdot \rho(x)^{-1} in the completion at v has valuation 1; unitIntAt records it as an element of the valuation ring, multiplicative in x and a unit there. Supporting lemmas compute valuations of natural numbers at v in terms of divisibility by p_v and identify the v-component of a principal idele.
Relation to Mathlib
The identification of the height-one spectrum of \mathcal{O}_{\mathbb{Q}} with the positive primes (primesEquiv, natGenerator) is Mathlib's; the lemmas of the first section compute ideals and valuations in those terms. The normaliser ρ, the predicate IsNormalizer, the archimedean coordinate and the unit coordinates unitAt/unitIntAt are the project's own notions.
Where it is used
These coordinates make explicit the decomposition \mathbb{A}_\mathbb{Q}^\times = \mathbb{Q}^\times\cdot(\mathbb{R}_{>0}\times\prod_p \mathbb{Z}_p^\times) by a formula, with no appeal to finiteness of the class number. They serve the adelic description of modular forms for \mathrm{GL}_2 over \mathbb{Q}: the unit coordinates at a finite place are the input to nebentypus characters on idele classes, and the normaliser separates the scalar part of a Hecke generator at a prime from its unit part.
References
- A. Weil, Basic Number Theory, Grundlehren der mathematischen Wissenschaften 144, Springer, 1974
- D. Bump, Automorphic Forms and Representations, Cambridge Studies in Advanced Mathematics 55, Cambridge University Press, 1997
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 392 lines
- 63 declarations
- used in the statements of 305 theorems and imported by 335 proofs
- imports 1 definition modules
Source file: Definitions/Def_RatIdele_Normalizer.lean
Imports
Imported by
Declarations
- theorem
RatIdele.natCast_mem_asIdeal_iff - theorem
RatIdele.natCast_natGenerator_ne_zero - theorem
RatIdele.prime_natCast_natGenerator - theorem
RatIdele.asIdeal_eq_span_natGenerator - theorem
RatIdele.valuation_natGenerator - theorem
RatIdele.valuation_natCast_of_not_dvd - theorem
RatIdele.eq_of_natGenerator_eq - theorem
RatIdele.valuation_natGenerator_of_ne - theorem
RatIdele.natGenerator_primesEquiv_symm - theorem
RatIdele.valued_algebraMap_rat - theorem
RatIdele.algebraMap_adeleRing_snd - theorem
RatIdele.natCast_adicCompletion_ne_zero - def
RatIdele.archCoord - theorem
RatIdele.archCoord_mul - theorem
RatIdele.archCoord_one - theorem
RatIdele.archCoord_ne_zero - theorem
RatIdele.archCoord_principal - theorem
RatIdele.archCoord_finIncl - def
RatIdele.finPart - theorem
RatIdele.finPart_apply - theorem
RatIdele.valued_snd_mul - theorem
RatIdele.valued_snd_ne_zero - theorem
RatIdele.valued_snd_inv_mul - def
RatIdele.ordAt - theorem
RatIdele.valued_snd_eq - theorem
RatIdele.ordAt_mul - theorem
RatIdele.ordAt_one - theorem
RatIdele.ordAt_eq_zero_of_le_one - theorem
RatIdele.finite_setOf_ordAt_ne_zero - def
RatIdele.IsNormalizer - theorem
RatIdele.IsNormalizer.ne_zero - def
RatIdele.archSign - theorem
RatIdele.archCoord_mul_archSign_pos - theorem
RatIdele.valuation_archSign - def
RatIdele.ρ - theorem
RatIdele.mulSupport_subset_toFinset - theorem
RatIdele.finprod_pow_ordAt_pos - theorem
RatIdele.valuation_ρ - theorem
RatIdele.ρ_spec - theorem
RatIdele.exists_isNormalizer - theorem
RatIdele.rat_eq_one_of_valuation_eq_one - theorem
RatIdele.IsNormalizer.unique - theorem
RatIdele.ρ_ne_zero - theorem
RatIdele.ρ_eq_of_isNormalizer - theorem
RatIdele.ρ_mul - theorem
RatIdele.ρ_principal - theorem
RatIdele.ρ_one - theorem
RatIdele.ρ_finIncl_localUnit - theorem
RatIdele.ρ_finIncl_localUnit_of_valued_one - theorem
RatIdele.ρ_eq_archSign_of_snd_eq_one - def
RatIdele.unitAt - theorem
RatIdele.valued_unitAt - theorem
RatIdele.unitAt_mul - theorem
RatIdele.unitAt_one - theorem
RatIdele.unitAt_principal - theorem
RatIdele.unitAt_finIncl_localUnit_self - theorem
RatIdele.unitAt_finIncl_localUnit_of_ne - def
RatIdele.unitIntAt - theorem
RatIdele.coe_unitIntAt - theorem
RatIdele.unitIntAt_mul - theorem
RatIdele.unitIntAt_one - theorem
RatIdele.isUnit_unitIntAt - theorem
RatIdele.natCast_mul_unitIntAt_eq_one
Source
import Definitions.Def_NumberField_AdelicLevel import Mathlib.NumberTheory.Padics.HeightOneSpectrum ↗ set_option autoImplicit false noncomputable section open NumberField IsDedekindDomain IsDedekindDomain.HeightOneSpectrum WithZero open Rat.HeightOneSpectrum NumberField.AdelicLevel namespace RatIdele local notation "𝔸ℚ" => AdeleRing (𝓞 ℚ) ℚ local notation "𝔸ℚf" => FiniteAdeleRing (𝓞 ℚ) ℚ section Primes theorem natCast_mem_asIdeal_iff (v : HeightOneSpectrum (𝓞 ℚ)) (n : ℕ) : ((n : 𝓞 ℚ)) ∈ v.asIdeal ↔ natGenerator v ∣ n := by rw [natGenerator_dvd_iff, show ((n : ℕ) : ℤ) = Rat.IsIntegralClosure.intEquiv (𝓞 ℚ) ((n : 𝓞 ℚ)) from (map_natCast _ n).symm] exact Ideal.apply_mem_of_equiv_iff.symm theorem natCast_natGenerator_ne_zero (v : HeightOneSpectrum (𝓞 ℚ)) : ((natGenerator v : ℕ) : 𝓞 ℚ) ≠ 0 := Nat.cast_ne_zero.mpr (prime_natGenerator v).ne_zero theorem prime_natCast_natGenerator (v : HeightOneSpectrum (𝓞 ℚ)) : Prime ((natGenerator v : ℕ) : 𝓞 ℚ) := by have hcast : ((natGenerator v : ℕ) : 𝓞 ℚ) = Rat.ringOfIntegersEquiv.symm ((natGenerator v : ℕ) : ℤ) := (map_natCast (Rat.ringOfIntegersEquiv.symm : ℤ →+* 𝓞 ℚ) _).symm rw [hcast] exact (MulEquiv.prime_iff Rat.ringOfIntegersEquiv.symm.toMulEquiv).mpr (Nat.prime_iff_prime_int.mp (prime_natGenerator v)) theorem asIdeal_eq_span_natGenerator (v : HeightOneSpectrum (𝓞 ℚ)) : v.asIdeal = Ideal.span {((natGenerator v : ℕ) : 𝓞 ℚ)} := by have hmax : (Ideal.span {((natGenerator v : ℕ) : 𝓞 ℚ)}).IsMaximal := ((Ideal.span_singleton_prime (natCast_natGenerator_ne_zero v)).mpr (prime_natCast_natGenerator v)).isMaximal ((Ideal.span_singleton_eq_bot (α := 𝓞 ℚ)).not.mpr (natCast_natGenerator_ne_zero v)) exact (hmax.eq_of_le v.isPrime.ne_top ((Ideal.span_singleton_le_iff_mem _).mpr ((natCast_mem_asIdeal_iff v _).mpr dvd_rfl))).symm theorem valuation_natGenerator (v : HeightOneSpectrum (𝓞 ℚ)) : v.valuation ℚ ((natGenerator v : ℕ) : ℚ) = exp (-1 : ℤ) := by rw [show ((natGenerator v : ℕ) : ℚ) = algebraMap (𝓞 ℚ) ℚ ((natGenerator v : ℕ) : 𝓞 ℚ) from (map_natCast (algebraMap (𝓞 ℚ) ℚ) _).symm, valuation_of_algebraMap] exact intValuation_singleton v (natCast_natGenerator_ne_zero v) (asIdeal_eq_span_natGenerator v) theorem valuation_natCast_of_not_dvd (v : HeightOneSpectrum (𝓞 ℚ)) {n : ℕ} (h : ¬ natGenerator v ∣ n) : v.valuation ℚ ((n : ℕ) : ℚ) = 1 := by rw [show ((n : ℕ) : ℚ) = algebraMap (𝓞 ℚ) ℚ ((n : ℕ) : 𝓞 ℚ) from (map_natCast (algebraMap (𝓞 ℚ) ℚ) _).symm, valuation_of_algebraMap] exact intValuation_eq_one_iff.mpr fun hmem => h ((natCast_mem_asIdeal_iff v n).mp hmem) theorem eq_of_natGenerator_eq {v w : HeightOneSpectrum (𝓞 ℚ)} (h : natGenerator v = natGenerator w) : v = w := (primesEquiv (R := 𝓞 ℚ)).injective (Subtype.ext h) theorem valuation_natGenerator_of_ne {v w : HeightOneSpectrum (𝓞 ℚ)} (h : v ≠ w) : w.valuation ℚ ((natGenerator v : ℕ) : ℚ) = 1 := valuation_natCast_of_not_dvd w fun hd => h (eq_of_natGenerator_eq ((Nat.prime_dvd_prime_iff_eq (prime_natGenerator w) (prime_natGenerator v)).mp hd)).symm theorem natGenerator_primesEquiv_symm (p : Nat.Primes) : natGenerator ((primesEquiv (R := 𝓞 ℚ)).symm p) = (p : ℕ) := congrArg Subtype.val ((primesEquiv (R := 𝓞 ℚ)).apply_symm_apply p) theorem valued_algebraMap_rat (v : HeightOneSpectrum (𝓞 ℚ)) (q : ℚ) : Valued.v (algebraMap ℚ (v.adicCompletion ℚ) q) = v.valuation ℚ q := by rw [algebraMap_adicCompletion] exact valuedAdicCompletion_eq_valuation' v q theorem algebraMap_adeleRing_snd (q : ℚ) (v : HeightOneSpectrum (𝓞 ℚ)) : (algebraMap ℚ 𝔸ℚ q).2 v = algebraMap ℚ (v.adicCompletion ℚ) q := by rw [AdeleRing.algebraMap_snd_apply, algebraMap_adicCompletion] rfl theorem natCast_adicCompletion_ne_zero (v : HeightOneSpectrum (𝓞 ℚ)) {n : ℕ} (hn : n ≠ 0) : ((n : ℕ) : v.adicCompletion ℚ) ≠ 0 := by rw [← map_natCast (algebraMap ℚ (v.adicCompletion ℚ)) n] exact (map_ne_zero (algebraMap ℚ (v.adicCompletion ℚ))).mpr (Nat.cast_ne_zero.mpr hn) end Primes section Arch def archCoord (x : (𝔸ℚ)ˣ) : ℝ := InfinitePlace.Completion.ringEquivRealOfIsReal Rat.isReal_infinitePlace ((x : 𝔸ℚ).1 Rat.infinitePlace) theorem archCoord_mul (x y : (𝔸ℚ)ˣ) : archCoord (x * y) = archCoord x * archCoord y := by unfold archCoord rw [← map_mul] rfl theorem archCoord_one : archCoord 1 = 1 := by unfold archCoord rw [show ((1 : (𝔸ℚ)ˣ) : 𝔸ℚ).1 Rat.infinitePlace = 1 from rfl, map_one] theorem archCoord_ne_zero (x : (𝔸ℚ)ˣ) : archCoord x ≠ 0 := by intro h have h1 := archCoord_mul x x⁻¹ rw [mul_inv_cancel, archCoord_one, h, zero_mul] at h1 exact one_ne_zero h1 theorem archCoord_principal (q : ℚˣ) : archCoord (Units.map (algebraMap ℚ 𝔸ℚ : ℚ →* 𝔸ℚ) q) = ((q : ℚ) : ℝ) := eq_ratCast ((InfinitePlace.Completion.ringEquivRealOfIsReal Rat.isReal_infinitePlace : Rat.infinitePlace.Completion ≃+* ℝ).toRingHom.comp ((Pi.evalRingHom (fun w : InfinitePlace ℚ => w.Completion) Rat.infinitePlace).comp ((RingHom.fst _ _).comp (algebraMap ℚ 𝔸ℚ)))) (q : ℚ) theorem archCoord_finIncl (y : (𝔸ℚf)ˣ) : archCoord (Units.map (finIncl (𝓞 ℚ) ℚ) y) = 1 := by unfold archCoord rw [Units.coe_map, finIncl_apply_fst, show (1 : InfiniteAdeleRing ℚ) Rat.infinitePlace = 1 from rfl, map_one] end Arch section Order def finPart : (𝔸ℚ)ˣ →* (𝔸ℚf)ˣ := Units.map (RingHom.snd (InfiniteAdeleRing ℚ) 𝔸ℚf).toMonoidHom theorem finPart_apply (x : (𝔸ℚ)ˣ) (v : HeightOneSpectrum (𝓞 ℚ)) : ((finPart x : (𝔸ℚf)ˣ) : 𝔸ℚf) v = (x : 𝔸ℚ).2 v := rfl theorem valued_snd_mul (x y : (𝔸ℚ)ˣ) (v : HeightOneSpectrum (𝓞 ℚ)) : Valued.v ((((x * y : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v) = Valued.v ((x : 𝔸ℚ).2 v) * Valued.v ((y : 𝔸ℚ).2 v) := by rw [← map_mul] rfl theorem valued_snd_ne_zero (x : (𝔸ℚ)ˣ) (v : HeightOneSpectrum (𝓞 ℚ)) : Valued.v ((x : 𝔸ℚ).2 v) ≠ 0 := by rw [ne_eq, map_eq_zero] intro h have h1 : (((x * x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v = 1 := by rw [mul_inv_cancel] rfl rw [show (((x * x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v = (x : 𝔸ℚ).2 v * (((x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v from rfl, h, zero_mul] at h1 exact zero_ne_one h1 theorem valued_snd_inv_mul (x : (𝔸ℚ)ˣ) (v : HeightOneSpectrum (𝓞 ℚ)) : Valued.v ((((x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v) * Valued.v ((x : 𝔸ℚ).2 v) = 1 := by rw [← valued_snd_mul, inv_mul_cancel] show Valued.v ((1 : 𝔸ℚf) v) = 1 rw [show ((1 : 𝔸ℚf)) v = 1 from rfl, map_one] def ordAt (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : ℤ := -log (Valued.v ((x : 𝔸ℚ).2 v)) theorem valued_snd_eq (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : Valued.v ((x : 𝔸ℚ).2 v) = exp (-ordAt v x) := by rw [ordAt, neg_neg, exp_log (valued_snd_ne_zero x v)] theorem ordAt_mul (v : HeightOneSpectrum (𝓞 ℚ)) (x y : (𝔸ℚ)ˣ) : ordAt v (x * y) = ordAt v x + ordAt v y := by unfold ordAt rw [valued_snd_mul, log_mul (valued_snd_ne_zero x v) (valued_snd_ne_zero y v), neg_add] theorem ordAt_one (v : HeightOneSpectrum (𝓞 ℚ)) : ordAt v 1 = 0 := by unfold ordAt rw [show ((1 : (𝔸ℚ)ˣ) : 𝔸ℚ).2 v = 1 from rfl, map_one, log_one, neg_zero] theorem ordAt_eq_zero_of_le_one {v : HeightOneSpectrum (𝓞 ℚ)} {x : (𝔸ℚ)ˣ} (hx : Valued.v ((x : 𝔸ℚ).2 v) ≤ 1) (hxi : Valued.v ((((x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v) ≤ 1) : ordAt v x = 0 := by have hmul := valued_snd_inv_mul x v have h1 : Valued.v ((x : 𝔸ℚ).2 v) = 1 := le_antisymm hx (by calc (1 : ℤᵐ⁰) = Valued.v ((((x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v) * Valued.v ((x : 𝔸ℚ).2 v) := hmul.symm _ ≤ 1 * Valued.v ((x : 𝔸ℚ).2 v) := mul_le_mul_left hxi _ _ = Valued.v ((x : 𝔸ℚ).2 v) := one_mul _) unfold ordAt rw [h1, log_one, neg_zero] theorem finite_setOf_ordAt_ne_zero (x : (𝔸ℚ)ˣ) : {v : HeightOneSpectrum (𝓞 ℚ) | ordAt v x ≠ 0}.Finite := by have hx : ∀ᶠ v in Filter.cofinite, ((x : 𝔸ℚ).2 : 𝔸ℚf) v ∈ v.adicCompletionIntegers ℚ := ((x : 𝔸ℚ).2).2 have hxi : ∀ᶠ v in Filter.cofinite, ((((x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 : 𝔸ℚf) v ∈ v.adicCompletionIntegers ℚ := ((((x⁻¹ : (𝔸ℚ)ˣ)) : 𝔸ℚ).2).2 have hboth := hx.and hxi rw [Filter.eventually_cofinite] at hboth refine hboth.subset ?_ intro v hv simp only [Set.mem_setOf_eq] at hv ⊢ intro hcon exact hv (ordAt_eq_zero_of_le_one ((mem_adicCompletionIntegers (𝓞 ℚ) ℚ v).mp hcon.1) ((mem_adicCompletionIntegers (𝓞 ℚ) ℚ v).mp hcon.2)) end Order section Normalizer def IsNormalizer (x : (𝔸ℚ)ˣ) (r : ℚ) : Prop := (∀ v : HeightOneSpectrum (𝓞 ℚ), Valued.v ((x : 𝔸ℚ).2 v) = v.valuation ℚ r) ∧ 0 < archCoord x * (r : ℝ) theorem IsNormalizer.ne_zero {x : (𝔸ℚ)ˣ} {r : ℚ} (h : IsNormalizer x r) : r ≠ 0 := by rintro rfl have := h.2 rw [Rat.cast_zero, mul_zero] at this exact lt_irrefl _ this def archSign (x : (𝔸ℚ)ˣ) : ℚ := if 0 < archCoord x then 1 else -1 theorem archCoord_mul_archSign_pos (x : (𝔸ℚ)ˣ) : 0 < archCoord x * (archSign x : ℝ) := by unfold archSign split_ifs with h · rw [Rat.cast_one, mul_one] exact h · rw [Rat.cast_neg, Rat.cast_one, mul_neg, mul_one] exact neg_pos.mpr (lt_of_le_of_ne (not_lt.mp h) (archCoord_ne_zero x)) theorem valuation_archSign (w : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : w.valuation ℚ (archSign x) = 1 := by unfold archSign split_ifs · exact map_one _ · rw [Valuation.map_neg, map_one] def ρ (x : (𝔸ℚ)ˣ) : ℚ := archSign x * ∏ᶠ v : HeightOneSpectrum (𝓞 ℚ), ((natGenerator v : ℕ) : ℚ) ^ ordAt v x theorem mulSupport_subset_toFinset (x : (𝔸ℚ)ˣ) : (Function.mulSupport fun v : HeightOneSpectrum (𝓞 ℚ) => ((natGenerator v : ℕ) : ℚ) ^ ordAt v x) ⊆ ((finite_setOf_ordAt_ne_zero x).toFinset : Set (HeightOneSpectrum (𝓞 ℚ))) := by intro v hv rw [Set.Finite.coe_toFinset, Set.mem_setOf_eq] intro h0 rw [Function.mem_mulSupport, h0, zpow_zero] at hv exact hv rfl theorem finprod_pow_ordAt_pos (x : (𝔸ℚ)ˣ) : (0 : ℚ) < ∏ᶠ v : HeightOneSpectrum (𝓞 ℚ), ((natGenerator v : ℕ) : ℚ) ^ ordAt v x := finprod_induction (fun r : ℚ => 0 < r) one_pos (fun _ _ => mul_pos) fun v => zpow_pos (Nat.cast_pos.mpr (prime_natGenerator v).pos) _ theorem valuation_ρ (w : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : w.valuation ℚ (ρ x) = Valued.v ((x : 𝔸ℚ).2 w) := by classical rw [ρ, map_mul, valuation_archSign, one_mul, finprod_eq_prod_of_mulSupport_subset _ (mulSupport_subset_toFinset x), map_prod, valued_snd_eq, Finset.prod_eq_single w] · rw [map_zpow₀, valuation_natGenerator, ← exp_zsmul, smul_eq_mul, mul_neg_one] · intro v _ hvw rw [map_zpow₀, valuation_natGenerator_of_ne hvw, one_zpow] · intro hw have h0 : ordAt w x = 0 := by by_contra h0 exact hw ((Set.Finite.mem_toFinset _).mpr h0) rw [h0, zpow_zero, map_one] theorem ρ_spec (x : (𝔸ℚ)ˣ) : IsNormalizer x (ρ x) := by refine ⟨fun v => (valuation_ρ v x).symm, ?_⟩ rw [ρ, Rat.cast_mul, ← mul_assoc] exact mul_pos (archCoord_mul_archSign_pos x) (by exact_mod_cast finprod_pow_ordAt_pos x) theorem exists_isNormalizer (x : (𝔸ℚ)ˣ) : ∃ r : ℚ, IsNormalizer x r := ⟨ρ x, ρ_spec x⟩ theorem rat_eq_one_of_valuation_eq_one {q : ℚ} (hq : 0 < q) (h : ∀ v : HeightOneSpectrum (𝓞 ℚ), v.valuation ℚ q = 1) : q = 1 := by have hq0 : q ≠ 0 := hq.ne' obtain ⟨z, hz⟩ := mem_integers_of_valuation_le_one ℚ q fun v => (h v).le obtain ⟨z', hz'⟩ := mem_integers_of_valuation_le_one ℚ q⁻¹ fun v => by rw [map_inv₀, h v, inv_one] have hzz' : z * z' = 1 := IsFractionRing.injective (𝓞 ℚ) ℚ (by rw [map_mul, hz, hz', map_one, mul_inv_cancel₀ hq0]) have hu : IsUnit z := isUnit_iff_exists_inv.mpr ⟨z', hzz'⟩ have hzq : (z : ℚ) = q := by rw [RingOfIntegers.coe_eq_algebraMap]; exact hz rcases Rat.RingOfIntegers.isUnit_iff.mp hu with h1 | h1 · rw [← hzq]; exact h1 · exfalso rw [hzq] at h1 rw [h1] at hq exact absurd hq (by norm_num) theorem IsNormalizer.unique {x : (𝔸ℚ)ˣ} {r r' : ℚ} (h : IsNormalizer x r) (h' : IsNormalizer x r') : r = r' := by have hr' := h'.ne_zero have hq : 0 < r / r' := by have h3 : (0 : ℝ) < (archCoord x * r) / (archCoord x * r') := div_pos h.2 h'.2 rw [mul_div_mul_left _ _ (archCoord_ne_zero x)] at h3 exact_mod_cast h3 have hval : ∀ v : HeightOneSpectrum (𝓞 ℚ), v.valuation ℚ (r / r') = 1 := fun v => by rw [map_div₀, ← h.1 v, ← h'.1 v, div_self (valued_snd_ne_zero x v)] have := rat_eq_one_of_valuation_eq_one hq hval rwa [div_eq_one_iff_eq hr'] at this theorem ρ_ne_zero (x : (𝔸ℚ)ˣ) : ρ x ≠ 0 := (ρ_spec x).ne_zero theorem ρ_eq_of_isNormalizer {x : (𝔸ℚ)ˣ} {r : ℚ} (h : IsNormalizer x r) : ρ x = r := (ρ_spec x).unique h theorem ρ_mul (x y : (𝔸ℚ)ˣ) : ρ (x * y) = ρ x * ρ y := by refine ρ_eq_of_isNormalizer ⟨fun v => ?_, ?_⟩ · rw [valued_snd_mul, (ρ_spec x).1 v, (ρ_spec y).1 v, map_mul] · rw [archCoord_mul, Rat.cast_mul, show archCoord x * archCoord y * (((ρ x : ℚ) : ℝ) * ((ρ y : ℚ) : ℝ)) = (archCoord x * ((ρ x : ℚ) : ℝ)) * (archCoord y * ((ρ y : ℚ) : ℝ)) by ring] exact mul_pos (ρ_spec x).2 (ρ_spec y).2 theorem ρ_principal (q : ℚˣ) : ρ (Units.map (algebraMap ℚ 𝔸ℚ : ℚ →* 𝔸ℚ) q) = (q : ℚ) := by refine ρ_eq_of_isNormalizer ⟨fun v => ?_, ?_⟩ · rw [Units.coe_map, MonoidHom.coe_coe, algebraMap_adeleRing_snd, valued_algebraMap_rat] · rw [archCoord_principal] exact mul_self_pos.mpr (by exact_mod_cast q.ne_zero) theorem ρ_one : ρ 1 = 1 := by have := ρ_principal 1 rwa [map_one, Units.val_one] at this theorem ρ_finIncl_localUnit (v : HeightOneSpectrum (𝓞 ℚ)) (t : (v.adicCompletion ℚ)ˣ) (ht : Valued.v (t : v.adicCompletion ℚ) = exp (-1 : ℤ)) : ρ (Units.map (finIncl (𝓞 ℚ) ℚ) (localUnit (𝓞 ℚ) ℚ v t)) = ((natGenerator v : ℕ) : ℚ) := by refine ρ_eq_of_isNormalizer ⟨fun w => ?_, ?_⟩ · rw [Units.coe_map, finIncl_apply_snd] by_cases hw : w = v · subst hw rw [localUnit_apply_self, ht, valuation_natGenerator] · rw [localUnit_apply_of_ne (𝓞 ℚ) ℚ v t hw, map_one, valuation_natGenerator_of_ne (Ne.symm hw)] · rw [archCoord_finIncl, one_mul] exact_mod_cast (prime_natGenerator v).pos theorem ρ_finIncl_localUnit_of_valued_one (v : HeightOneSpectrum (𝓞 ℚ)) (t : (v.adicCompletion ℚ)ˣ) (ht : Valued.v (t : v.adicCompletion ℚ) = 1) : ρ (Units.map (finIncl (𝓞 ℚ) ℚ) (localUnit (𝓞 ℚ) ℚ v t)) = 1 := by refine ρ_eq_of_isNormalizer ⟨fun w => ?_, ?_⟩ · rw [Units.coe_map, finIncl_apply_snd, map_one] by_cases hw : w = v · subst hw rw [localUnit_apply_self, ht] · rw [localUnit_apply_of_ne (𝓞 ℚ) ℚ v t hw, map_one] · rw [archCoord_finIncl, one_mul, Rat.cast_one] exact one_pos theorem ρ_eq_archSign_of_snd_eq_one {x : (𝔸ℚ)ˣ} (hx : ∀ w : HeightOneSpectrum (𝓞 ℚ), (x : 𝔸ℚ).2 w = 1) : ρ x = archSign x := by refine ρ_eq_of_isNormalizer ⟨fun w => ?_, archCoord_mul_archSign_pos x⟩ rw [hx w, map_one, valuation_archSign] end Normalizer section UnitAt def unitAt (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : v.adicCompletion ℚ := (x : 𝔸ℚ).2 v * (algebraMap ℚ (v.adicCompletion ℚ) (ρ x))⁻¹ theorem valued_unitAt (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : Valued.v (unitAt v x) = 1 := by unfold unitAt rw [map_mul, map_inv₀, valued_algebraMap_rat, ← (ρ_spec x).1 v, mul_inv_cancel₀ (valued_snd_ne_zero x v)] theorem unitAt_mul (v : HeightOneSpectrum (𝓞 ℚ)) (x y : (𝔸ℚ)ˣ) : unitAt v (x * y) = unitAt v x * unitAt v y := by unfold unitAt rw [ρ_mul, map_mul, mul_inv, show (((x * y : (𝔸ℚ)ˣ)) : 𝔸ℚ).2 v = (x : 𝔸ℚ).2 v * (y : 𝔸ℚ).2 v from rfl] ring theorem unitAt_one (v : HeightOneSpectrum (𝓞 ℚ)) : unitAt v 1 = 1 := by unfold unitAt rw [ρ_one, map_one, inv_one, mul_one] rfl theorem unitAt_principal (v : HeightOneSpectrum (𝓞 ℚ)) (q : ℚˣ) : unitAt v (Units.map (algebraMap ℚ 𝔸ℚ : ℚ →* 𝔸ℚ) q) = 1 := by unfold unitAt rw [ρ_principal, Units.coe_map, MonoidHom.coe_coe, algebraMap_adeleRing_snd, mul_inv_cancel₀ ((map_ne_zero _).mpr q.ne_zero)] theorem unitAt_finIncl_localUnit_self (v : HeightOneSpectrum (𝓞 ℚ)) (t : (v.adicCompletion ℚ)ˣ) (ht : Valued.v (t : v.adicCompletion ℚ) = 1) : unitAt v (Units.map (finIncl (𝓞 ℚ) ℚ) (localUnit (𝓞 ℚ) ℚ v t)) = t := by unfold unitAt rw [ρ_finIncl_localUnit_of_valued_one v t ht, map_one, inv_one, mul_one, Units.coe_map, finIncl_apply_snd, localUnit_apply_self] theorem unitAt_finIncl_localUnit_of_ne (v : HeightOneSpectrum (𝓞 ℚ)) (t : (v.adicCompletion ℚ)ˣ) (ht : Valued.v (t : v.adicCompletion ℚ) = 1) {w : HeightOneSpectrum (𝓞 ℚ)} (hw : w ≠ v) : unitAt w (Units.map (finIncl (𝓞 ℚ) ℚ) (localUnit (𝓞 ℚ) ℚ v t)) = 1 := by unfold unitAt rw [ρ_finIncl_localUnit_of_valued_one v t ht, map_one, inv_one, mul_one, Units.coe_map, finIncl_apply_snd, localUnit_apply_of_ne (𝓞 ℚ) ℚ v t hw] def unitIntAt (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : v.adicCompletionIntegers ℚ := ⟨unitAt v x, (mem_adicCompletionIntegers (𝓞 ℚ) ℚ v).mpr (valued_unitAt v x).le⟩ theorem coe_unitIntAt (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : (unitIntAt v x : v.adicCompletion ℚ) = unitAt v x := rfl theorem unitIntAt_mul (v : HeightOneSpectrum (𝓞 ℚ)) (x y : (𝔸ℚ)ˣ) : unitIntAt v (x * y) = unitIntAt v x * unitIntAt v y := Subtype.ext (unitAt_mul v x y) theorem unitIntAt_one (v : HeightOneSpectrum (𝓞 ℚ)) : unitIntAt v 1 = 1 := Subtype.ext (unitAt_one v) theorem isUnit_unitIntAt (v : HeightOneSpectrum (𝓞 ℚ)) (x : (𝔸ℚ)ˣ) : IsUnit (unitIntAt v x) := isUnit_iff_exists_inv.mpr ⟨unitIntAt v x⁻¹, by rw [← unitIntAt_mul, mul_inv_cancel, unitIntAt_one]⟩ theorem natCast_mul_unitIntAt_eq_one {v : HeightOneSpectrum (𝓞 ℚ)} {x : (𝔸ℚ)ˣ} {n : ℕ} (h : ((n : ℕ) : v.adicCompletion ℚ) * unitAt v x = 1) : ((n : ℕ) : v.adicCompletionIntegers ℚ) * unitIntAt v x = 1 := Subtype.ext (by rw [MulMemClass.coe_mul, SubringClass.coe_natCast, OneMemClass.coe_one]; exact h) end UnitAt end RatIdele end
Statements phrased using this module (305)
- Positive central scalars act trivially on the adelic lift
CuspForm.IsAdelicLiftOfGamma1.apply_centralScalar_mul_eq_of_forall_snd_eq_one_of_archCoord_pos5 below · depth 18 - Local functional equation at one deeply twisted prime
LanglandsTunnell.CubicInduction.exists_forall_mem_gl3CyclicSubspace_localZeta31_fe_one_of_cubicInductionForm_twist_deepAt593 below · depth 18 - Local constants of twisted cubic induction on the cyclic span
LanglandsTunnell.CubicInduction.exists_forall_mem_gl3CyclicSubspace_localZetaDual31_eq_mul_of_cubicInductionForm_twisted_badPlaces_noFE32_adm598 below · depth 18 - Explicit K₁(p^{3B+Δ})-invariant bump vector for twisted cubic induction
LanglandsTunnell.CubicInduction.exists_mem_gl3CyclicSubspace_twist_whittakerLoc_congruenceK1_invariant_iotaGL_bump_of_conductor_le_ed3111 below · depth 18 - Finiteness of torus coefficients in the twisted local cyclic space
LanglandsTunnell.CubicInduction.forall_mem_gl3CyclicSubspace_torusFinite_of_cubicInductionForm_twisted_noFE32_level19 below · depth 18 - Cubic automorphic induction: existence of a cubic induction form
LanglandsTunnell.CubicInduction.hasCubicInductionForm_arch_torusValues_localPackage_bad1,687 below · depth 18 - Dual-side family identity in the GL₂timesGL₃ entire-pair assembly
LanglandsTunnell.RankinSelberg.EntirePairAssembly.dual_identity_family24 below · depth 18 - Archimedean holomorphy and non-vanishing from a torus Γ-factor identity
LanglandsTunnell.RankinSelberg.differentiableOn_and_rsArchIntegral_ne_zero_of_torusPair_eq_gammaFactor5 below · depth 18 - Local relations at p for the dual translate of W_f
LanglandsTunnell.RankinSelberg.dualTranslate_finWhittaker_local_relations3 below · depth 18 - Archimedean GL₂timesGL₃ torus-pair identity for the cubic induction
LanglandsTunnell.RankinSelberg.exists_archWhittaker_torusPair_eq_gammaFactor_of_archWhittakerDatum324 below · depth 18 - Half-plane integrability of archimedean GL₂timesGL₃ Rankin–Selberg integrands
LanglandsTunnell.RankinSelberg.exists_forall_integrable_archWhittaker_torusPair_rpow_det7 below · depth 18 - Finite GL₃-translate family: constant integral and dual root number
LanglandsTunnell.RankinSelberg.exists_gl3Translates_sum_rsFinIntegral_cells_eq_const_and_dual_eq_rootNumberMonomial_of_finWhittaker_one_ne_zero_of_localSpaceAt_of_member_of_fe32_normPin_twisted_offSQ_archPsi_bump_levelShift_global982 below · depth 18 - Simultaneous splitting of the finite Whittaker factor over T
AutomorphicForm.exists_finWhittaker_eq_sum_prod_mul_of_isIsotypicCuspFormAt_placeEmbed_invariant_of_localSpaceAt14 below · depth 19 - Archimedean value of an idele character through a section of the infinite part
LanglandsTunnell.CubicInduction.apply_of_infPart_eq_of_isArchCompAt0 below · depth 19 - Archimedean root sizes of a GL₂ block image and its dual
LanglandsTunnell.CubicInduction.archRoot_iota_archRealGLAt_and_dual0 below · depth 19 - Local GL₃timesGL₁ constants of a cubic induction at one bad place
LanglandsTunnell.CubicInduction.exists_forall_mem_gl3CyclicSubspace_localZetaDual31_eq_mul_of_isCubicInductionDataOn_deepAt539 below · depth 19 - Span-wide local constants for deep cubic induction data
LanglandsTunnell.CubicInduction.exists_forall_mem_gl3CyclicSubspace_localZetaDual31_eq_mul_of_isCubicInductionDataOn_deep_badPlaces550 below · depth 19 - Existence of a cubic-induction datum: archimedean and bad-place package
LanglandsTunnell.CubicInduction.exists_isCubicInductionDataOn_arch_torusValues_localPackage_bad1,686 below · depth 19 - Archimedean zeta package for an explicit GL₃ Whittaker vector
LanglandsTunnell.CubicInduction.jacquetVector3_archZeta_package32 below · depth 19 - Half-plane integrability of pure-tensor Rankin–Selberg cell integrands
LanglandsTunnell.RankinSelberg.exists_forall_integrable_rsFinCellIntegrand_pureTensorTerm_dual_and_hybrid_of_depth_twisted_torusFinite_central_growth_of_principalLevel_of_gammaHyp136 below · depth 19 - Integrability of the twisted Rankin–Selberg finite-cell integrands
LanglandsTunnell.RankinSelberg.exists_forall_integrable_rsFinCellIntegrand_translate_and_dual_twisted116 below · depth 19 - Half-plane integrability of an archimedean torus profile
LanglandsTunnell.RankinSelberg.exists_forall_lintegral_norm_torusProfile_mul_rpow_lt_top0 below · depth 19 - Normalised K₁(p^ℓ)-invariant vector with mirabolic bump support
LanglandsTunnell.RankinSelberg.exists_mem_gl3CyclicSubspace_congruenceK1_invariant_iotaGL_eq_bump_of_localZeta31_fe_one107 below · depth 19 - Archimedean GL₂× GL₃ torus-pair Gamma identity, minimal type
LanglandsTunnell.RankinSelberg.exists_mem_polyGauss3_jacquetVector3_torusPair_eq_gammaFactor_of_archWhittakerDatum_of_isCasimirEigen_of_minimalType281 below · depth 19 - Rational local γ at a level prime, archimedean nonvanishing edition
LanglandsTunnell.RankinSelberg.exists_rational_gamma_rsLocalIntegral_member_twisted_of_finiteFamily_arch_deep_archPsi489 below · depth 19 - Torus finiteness for the cyclic space of a deep twist
LanglandsTunnell.RankinSelberg.forall_mem_gl3CyclicSubspace_twist_det_torusFinite_of_principalLevel_of_admissible_of_deepTwist12 below · depth 19 - Value form of the local GL₂timesGL₃ functional equation at p
LanglandsTunnell.RankinSelberg.forall_mem_span_rsLocalIntegral_dual_eq_stdRootNumber_mul_of_localZeta31_identified_of_torusFinite_of_centralChar_of_gauge_of_admissible_of_principalNormPin_adm_gamma_bump_levelShift_global514 below · depth 19 - Determinant twists cancel in the local GL₃× GL₂ Rankin–Selberg data
LanglandsTunnell.RankinSelberg.gl3CyclicSubspace_detTwist_and_rsIntegrand_detTwist_eq0 below · depth 19 - Modulus of a real Whittaker function on torus times O(2)
LanglandsTunnell.RankinSelberg.norm_archWhittaker_upperUnit_mul_rowIsometry0 below · depth 19 - Deep-twist product law for priced local root numbers above p
LanglandsTunnell.Converse.finprod_stdRootNumberAt_twist_mul_twist_eq_sq_of_le_floor22 below · depth 20 - Pinned conductor exponent unchanged by a shallow norm twist
LanglandsTunnell.Converse.pinnedExp_comp_idelicNorm_mul_eq_pinnedExp_of_hasConductorExponentAt_le_of_depth_floor3 below · depth 20 - Archimedean zeta integral of `jacquetVector3`, unfolded
LanglandsTunnell.CubicInduction.archZeta30_jacquetVector3_eq_archFactor_mul3 below · depth 20 - Archimedean functional equation for the induced GL₃ zeta integrals
LanglandsTunnell.CubicInduction.archZetaDual31_jacquetVector3_mul_archFactor_eq12 below · depth 20 - Explicit root number in the GL₃ functional equation at v
LanglandsTunnell.CubicInduction.eval_mul_eq_finprod_rootNumber_mul_eval_of_forall_localZeta31_fe_one_of_isCubicInductionDataOn_of_addCharLevel493 below · depth 20 - Local rationality and functional equation at a bad place
LanglandsTunnell.CubicInduction.exists_forall_exists_mul_eval_eq_of_isCubicInductionDataOn_of_forall_mem_bad_of_addCharLevel514 below · depth 20 - Conductor bound for the local central character at unramified v
LanglandsTunnell.CubicInduction.exists_hasConductorExponentAt_localChar_centralChar_le_inducedLevelAt_of_isCubicInductionDataOn278 below · depth 20 - Odd admissible twist with non-vanishing archimedean GL₃ × GL₁ zeta
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_ne_zero_odd_of_isCubicInductionDataOn6 below · depth 20 - Archimedean zeta non-vanishing far right for a suitable translate
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_ne_zero_of_isCubicInductionDataOn1 below · depth 20 - Local newvector of level K₁(ℓᵥ) at twist-ramified primes
LanglandsTunnell.CubicInduction.exists_mem_gl3CyclicSubspace_congruenceK1_torusValues_of_isCubicInductionDataOn615 below · depth 20 - Congruence-invariant vector in the local cyclic space at a ramified bad place
LanglandsTunnell.CubicInduction.exists_mem_gl3CyclicSubspace_principalLevel_le_of_isRamifiedIn_of_isCubicInductionDataOn_of_conductorBound615 below · depth 20 - A twist-independent constant in the deep-place GL₃× GL₁ functional equation
LanglandsTunnell.CubicInduction.exists_ne_zero_forall_eval_mul_eq_mul_rootNumber_mul_eval_of_forall_localZeta31_fe_twist_of_isCubicInductionDataOn_of_deep_of_archPackage_of_inv_eq_psiQ_of_whittakerLoc_one502 below · depth 20 - Converse-theorem input for the cubic induction from an archimedean Whittaker vector
LanglandsTunnell.CubicInduction.exists_whittaker_zeta_fe_of_forall_not_mem_isInducedSphericalAt_of_arch145 below · depth 20 - Product formula (prodᵥλᵥ²) λ_∞²=1 for a cubic induction
LanglandsTunnell.CubicInduction.finprod_sq_mul_lamSqArch_eq_one_of_forall_ne_zero_localZeta31_fe_rootNumber_of_isCubicInductionDataOn_of_archPackage_of_inv_eq_psiQ538 below · depth 20 - Rapid vertical decay of the archimedean zeta integral `archZeta30`
LanglandsTunnell.CubicInduction.forall_pow_mul_norm_archZeta30_jacquetVector3_le3 below · depth 20 - Polynomial decay of a dual archimedean zeta integral on strips
LanglandsTunnell.CubicInduction.forall_pow_mul_norm_archZetaDual31_jacquetVector3_le3 below · depth 20 - K-finiteness of the polynomial-times-Gaussian Jacquet vector on GL₃
LanglandsTunnell.CubicInduction.isKFinite_jacquetVector32 below · depth 20 - Integrability and continuity of the GL₃ Jacquet vector
LanglandsTunnell.CubicInduction.jacquetIntegrand3_integrable_and_jacquetVector3_continuous1 below · depth 20 - Convergence half-planes for archimedean GL₃timesGL₁ zeta integrals
LanglandsTunnell.CubicInduction.jacquetVector3_isArchZetaConvergentAbove4 below · depth 20 - Rapid decay of the GL₃ Jacquet–Whittaker vector
LanglandsTunnell.CubicInduction.jacquetVector3_norm_archComponent3_le6 below · depth 20 - Central character of the explicit GL₃ Jacquet vector
LanglandsTunnell.CubicInduction.jacquetVector3_scalar_mul1 below · depth 20 - Identified local functional equation passes to the cyclic span
LanglandsTunnell.CubicInduction.localZeta31_identified_of_mem_gl3CyclicSubspace1 below · depth 20 - S-part integrability of the GL₃ zeta and dual integrands
LanglandsTunnell.CubicInduction.sPart_integrable_and_dual_of_isCubicInductionDataOn_of_isGaugeMajorised353 below · depth 20 - Central character law for the archimedean Whittaker function
LanglandsTunnell.CubicInduction.whittakerArch_scalar_mul_eq_centralChar_mul_of_isCubicInductionDataOn0 below · depth 20 - Global realisation of local Rankin–Selberg pairs at p
LanglandsTunnell.RankinSelberg.exists_factor_fundamentalDomain_forall_rsGlobalIntegral_realisation_member_twisted_of_finiteFamily_arch_of_archNonvanishing467 below · depth 20 - Cut-off remainder integrands of the dual finite cell are integrable
LanglandsTunnell.RankinSelberg.exists_forall_integrable_cutoff_remainder_mul_finprod_away113 below · depth 20 - Half-plane integrability of primal and dual finite cell integrands
LanglandsTunnell.RankinSelberg.exists_forall_integrable_rsFinCellIntegrand_translate_and_dual104 below · depth 20 - Local GL₃× GL₂ gamma factor from a global realisation
LanglandsTunnell.RankinSelberg.exists_forall_mem_span_rsLocalIntegral_dual_mul_eq_mul_of_rsGlobalIntegral_realisation6 below · depth 20 - Unfolding the archimedean torus pairing of the GL₃ Jacquet vector
LanglandsTunnell.RankinSelberg.exists_forall_torusPair_jacquetVector3_eq_integral_quasiChar_mul_torusIntegral_mul_godementMellin6 below · depth 20 - Unfolded archimedean GL₂× GL₃ torus-pair identity at minimal type
LanglandsTunnell.RankinSelberg.exists_mem_polyGauss3_jacquetVector3_unfoldedTorusPair_eq_gammaFactor_of_archWhittakerDatum_of_isCasimirEigen_of_minimalType280 below · depth 20 - A non-vanishing rational local Rankin–Selberg pair at a level prime
LanglandsTunnell.RankinSelberg.exists_mem_rsLocalIntegral_ne_zero_and_rational_member_twisted_of_finiteFamily_arch_deep58 below · depth 20 - Finiteness, continuity and unit phase of dual Whittaker products
LanglandsTunnell.RankinSelberg.finite_mulSupport_and_continuous_and_exists_phase_finprod_dualWhittakerFn3_away1 below · depth 20 - Pair stability of the GL₃timesGL₂ local functional equation
LanglandsTunnell.RankinSelberg.forall_mem_span_rsLocalIntegral_dual_eq_mul_of_forall_localZeta31_fe_of_deepTwist_of_principalLevel_of_admissible_of_gammaFactor_of_forall_localZeta31_fe_of_bump_levelShift_global489 below · depth 20 - Swapping the S_Q-slots: dual and hybrid pure-tensor integrability
LanglandsTunnell.RankinSelberg.integrable_pureTensorTerm_dual_and_hybrid_of_integrable_cutoff_of_forall_lintegral_lt_top15 below · depth 20 - Non-vanishing of the local GL₃× GL₁ zeta integral
LanglandsTunnell.CubicInduction.exists_isLocalZeta30ConvergentAbove_and_forall_exists_localZeta30_ne_zero_of_admissible_of_ne_zero13 below · depth 21 - Local zeta functional equation at a ramified place
LanglandsTunnell.CubicInduction.exists_localZeta31_fe_one_inducedEulerPoly_rational_of_isCubicInductionDataOn_of_isRamifiedIn527 below · depth 21 - Local functional equation at a bad place unramified in K
LanglandsTunnell.CubicInduction.exists_localZeta31_fe_one_inducedEulerPoly_rational_of_isCubicInductionDataOn_of_not_isRamifiedIn527 below · depth 21 - Integrability of the dual GL₃ zeta integrand of a Jacquet vector
LanglandsTunnell.CubicInduction.integrable_dualWhittakerFn3_jacquetVector3_prod2 below · depth 21 - Joint integrability of the dilated Jacquet integrand in three variables
LanglandsTunnell.CubicInduction.integrable_jacquetIntegrand3_dilate_mul_quasiChar1 below · depth 21 - Jacquet vector at a real diagonal torus element, unfolded
LanglandsTunnell.CubicInduction.jacquetVector3_iota_upperUnit_eq_integral_godementInner3_mulShift0 below · depth 21 - Place separation for local zeta quotients at a bad place
LanglandsTunnell.CubicInduction.mul_eq_mul_localZeta30_localZetaDual31_polynomial_of_isCubicInductionDataOn_of_forall_mem_bad512 below · depth 21 - Integrability of the dual S-part zeta integrand on GL₃
LanglandsTunnell.CubicInduction.sPartDual_integrable_of_isCubicInductionDataOn_of_isGaugeMajorised329 below · depth 21 - S-part factorisation of a GL₃ zeta integral
LanglandsTunnell.CubicInduction.sPart_eq_arch_mul_localZeta_v_mul_badPlacesPart_archDetermined_of_isCubicInductionDataOn4 below · depth 21 - Euler factorisation of the S-part zeta integral at v
LanglandsTunnell.CubicInduction.sPart_eq_arch_mul_localZeta_v_mul_badPlacesPart_archTwisted_of_isCubicInductionDataOn4 below · depth 21 - Convergence of the S-part zeta integral for cubic induction data
LanglandsTunnell.CubicInduction.sPart_integrable_of_isCubicInductionDataOn_of_isGaugeMajorised325 below · depth 21 - Integrability of the translated split dual finite cell integrand
LanglandsTunnell.RankinSelberg.exists_forall_integrable_translate_rsFinCellIntegrand_dual_split_of_dualFactor_phase109 below · depth 21 - Integrability of the unfolded archimedean torus-pair integrand
LanglandsTunnell.RankinSelberg.exists_forall_integrable_unfoldedTorusPairIntegrand_jacquetVector34 below · depth 21 - Purified p-slot splitting of Whittaker coefficients of p-adic translates
LanglandsTunnell.RankinSelberg.exists_frozen_forall_sum_translate_purified_whittakerCoefficient_eq_mul_pSlot_of_finiteFamily_arch351 below · depth 21 - p-slot factorisation of GL₃ Whittaker functions along ι
LanglandsTunnell.RankinSelberg.exists_frozen_forall_sum_translate_whittaker_iota_eq_mul_pSlot_of_finiteFamily_arch42 below · depth 21 - Local Rankin–Selberg integrals evaluating a finite Whittaker family
LanglandsTunnell.RankinSelberg.exists_mem_gl3CyclicSubspace_forall_rsLocalIntegral_eq_mul_apply_of_finite11 below · depth 21 - Level 3B bump vector in a twisted principal-series Whittaker model
LanglandsTunnell.RankinSelberg.exists_mem_gl3CyclicSubspace_twist_coefficientFn_principalSeries3_congruenceK1_invariant_iotaGL_bump_of_pos_of_level157 below · depth 21 - Unfolded archimedean torus pair and its dual Γ-factors
LanglandsTunnell.RankinSelberg.exists_mem_polyGauss3_iotaWeight_archZeta30_ne_zero_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_archWhittakerDatum_of_isCasimirEigen272 below · depth 21 - Non-degenerate test pair for the local GL₃× GL₂ integral
LanglandsTunnell.RankinSelberg.exists_mem_span_forall_rsLocalIntegral_eq_const_ne_zero_of_isGL3PsiWhittakerFn13 below · depth 21 - A principal-series GL₃ Whittaker model with prescribed central character
LanglandsTunnell.RankinSelberg.exists_principalSeries3_whittaker_deepTwist_centralChar_of_higherUnitsAt_unitary_shallow12 below · depth 21 - Non-vanishing far right of a reference Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_pureTranslates_combination_forall_rsGlobalIntegral_ne_zero_member_twisted_of_finiteFamily_arch_of_archNonvanishing463 below · depth 21 - Rationality of local Rankin–Selberg integrals for GL₃ principal series
LanglandsTunnell.RankinSelberg.exists_rational_rsLocalIntegral_and_dual_of_principalSeries363 below · depth 21 - Unisolvence points, reference points and cut-off subgroups at S_Q
LanglandsTunnell.RankinSelberg.exists_unisolvence_refPoint_cutoff_of_linearIndependent_slots1 below · depth 21 - Multiplicativity of the GL₃timesGL₂ local γ-factor in principal series
LanglandsTunnell.RankinSelberg.forall_mem_span_rsLocalIntegral_dual_eq_mul_of_forall_localZeta31_fe_of_principalSeries273 below · depth 21 - Deep twist: GL₃timesGL₂ local integrals are Laurent polynomials
LanglandsTunnell.RankinSelberg.forall_mem_span_rsLocalIntegral_eq_laurent_of_deepTwist_of_principalLevel_of_admissible20 below · depth 21 - Pair stability at (3,2): transfer of the cleared functional equation
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral_clearedFE_of_forall_rsLocalIntegral_clearedFE_of_centralChar_eq_of_deepTwist_pairStability32_of_bump59 below · depth 21 - Multiplicativity of the local GL₃× GL₂ functional equation
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral_clearedFE_prod_of_principalSeries3_of_forall_torusZeta_fe_multiplicativity3_ed3305 below · depth 21 - Measurability and isolation identity for pure-tensor remainders
LanglandsTunnell.RankinSelberg.measurable_remainder_and_dualFactor_translate_mul_prod_eq_of_pureTensor_expansion2 below · depth 21 - Iwasawa bound for W_D(diag(at,1)e⁻¹)
LanglandsTunnell.Converse.ArchDatumR.norm_W_diagOne_mul_inv_le_of_iwasawa0 below · depth 22 - Measurability of the dual S-part zeta integrands
LanglandsTunnell.CubicInduction.aestronglyMeasurable_sPartDual_integrand_of_isCubicInductionDataOn2 below · depth 22 - Local functional equation at v matches induced Euler polynomials
LanglandsTunnell.CubicInduction.exists_eval_mul_eq_mul_eval_of_forall_localZeta31_fe_one_of_isCubicInductionDataOn_of_addCharLevel493 below · depth 22 - Ramified place: local functional-equation datum matches induced Euler polynomials
LanglandsTunnell.CubicInduction.exists_eval_mul_eq_mul_eval_of_forall_localZeta31_fe_one_of_isCubicInductionDataOn_of_isRamifiedIn493 below · depth 22 - Gauge majorant for cyclic translates of principal-series Whittaker coefficients
LanglandsTunnell.CubicInduction.exists_gauge_of_mem_gl3CyclicSubspace_coefficientFn_principalSeries323 below · depth 22 - Two-point global-to-local zeta factorisation at a bad place
LanglandsTunnell.CubicInduction.exists_globalZeta30_eq_mul_localZeta30_and_globalZetaDual31_eq_mul_of_isCubicInductionDataOn508 below · depth 22 - Non-vanishing archimedean zeta of a block-harmonic Jacquet vector
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_jacquetVector3_ne_zero_of_blockHarmonicOne_colHarmonic_gaussian3_of_weightZero38 below · depth 22 - Non-vanishing archimedean zeta for the conjugate block-harmonic section
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_jacquetVector3_ne_zero_of_conjBlockHarmonicOne_colHarmonic_gaussian357 below · depth 22 - Non-vanishing of the weight-zero minor-section archimedean zeta integral
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_jacquetVector3_ne_zero_of_minorSection_gaussian337 below · depth 22 - Admissible idele class character of ℚ with prescribed component at v and parity
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_isUnramifiedCharAt_localChar_eq_isArchCompAt_of_hasConductorExponentAt8 below · depth 22 - Convergence of the dual archimedean GL₃ zeta integral at the trivial twist
LanglandsTunnell.CubicInduction.exists_isArchZeta31ConvergentAbove_dualWhittakerFn3_whittakerArch_of_isCubicInductionDataOn0 below · depth 22 - Level-pᵈ Whittaker vector in a unitary principal series of GL₃
LanglandsTunnell.CubicInduction.exists_isWhittakerFunctional3_coefficientFn_ne_zero_forall_deepTwist_eq_of_forall_higherUnitsAt_of_pos11 below · depth 22 - Unramified twist shifts the local (3,1) functional equation
LanglandsTunnell.CubicInduction.forall_localZeta31_fe_of_twist_modulus_cpow0 below · depth 22 - Continuity and decay of the Godement inner integral
LanglandsTunnell.CubicInduction.godementInner3_mulShift_polyGauss3_continuousOn_and_decay0 below · depth 22 - Weight law for the Jacquet vector of a Gaussian section
LanglandsTunnell.CubicInduction.jacquetVector3_mul_iota_eq_archWeightChar_inv_mul_of_colHarmonic_gaussian30 below · depth 22 - Equivariance of the Jacquet vector under ι of row isometries
LanglandsTunnell.CubicInduction.jacquetVector3_mul_iota_eq_archWeightChar_inv_mul_of_conjBlockHarmonic_colHarmonic_gaussian30 below · depth 22 - Weight-one K-type of the minor-section Jacquet vector
LanglandsTunnell.CubicInduction.jacquetVector3_mul_iota_eq_archWeightOne_inv_mul_of_minorSection_gaussian30 below · depth 22 - Uncountable non-vanishing of the cut finite Rankin–Selberg factor
LanglandsTunnell.RankinSelberg.exists_finTranslate_not_countable_rsFinIntegral_indicator_ne_zero_of_purifier_of_finiteFamily_arch93 below · depth 22 - Integrability of a real Whittaker torus profile against |t|^{s-1/2}t⁻²
LanglandsTunnell.RankinSelberg.exists_forall_integrable_Wr_mul_abs_cpow_mul_inv_sq0 below · depth 22 - Local GL₃× GL₁ functional equation for deeply twisted principal series
LanglandsTunnell.RankinSelberg.exists_forall_localZeta31_fe_one_twist_coefficientFn_principalSeries3_of_exactConductor59 below · depth 22 - Frozen complements: explicit p-slot splitting of GL₃ Whittaker functions
LanglandsTunnell.RankinSelberg.exists_frozen_forall_sum_translate_whittaker_iota_eq_mul_pSlot_of_finiteFamily_arch_explicit42 below · depth 22 - Bump test vector for the local GL₃× GL₂ Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_mem_gl3CyclicSubspace_forall_rsLocalIntegral_eq_mul_setIntegral_translate9 below · depth 22 - Archimedean Rankin–Selberg pair outside weight-one GL₂ parameters
LanglandsTunnell.RankinSelberg.exists_mem_polyGauss3_iotaWeight_archZeta30_ne_zero_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_archWhittakerDatum_of_isCasimirEigen_of_not_weightOne206 below · depth 22 - Factorisation of the purified reference Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_ne_zero_forall_rsGlobalIntegral_reference_eq_mul_rsArchIntegral_mul_rsFinIntegral_indicator_mul_of_finiteFamily_arch410 below · depth 22 - A p-adic purifier with pure-tensor Whittaker coefficient
LanglandsTunnell.RankinSelberg.exists_purifier_whittakerCoefficient_eq_mul_pSlot_of_finiteFamily_arch25 below · depth 22 - Rationality of principal-series Rankin–Selberg local integrals at p
LanglandsTunnell.RankinSelberg.exists_rational_rsLocalIntegral_and_dual_of_jacquetWhittaker3_ed257 below · depth 22 - Non-degenerate local datum realising pair 2's cleared functional equation
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral_clearedFE_datum_of_centralChar_eq_of_deepTwist_pairStability32_of_bump56 below · depth 22 - Weight-one unfolded torus-pair identities with Γ-factors
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_weightOne_of_blockHarmonicOne_colHarmonic_gaussian348 below · depth 22 - Weight-one torus-pair identities for the conjugate-block Gaussian section
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_weightOne_of_conjBlockHarmonicOne_colHarmonic_gaussian373 below · depth 22 - Weight-one minor-section torus-pair identities with archimedean Γ-factors
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_weightOne_of_minorSection_gaussian347 below · depth 22 - Cleared Rankin–Selberg functional equation for one Jacquet–Whittaker vector
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral_clearedFE_prod_of_jacquetWhittaker3_of_forall_torusZeta_fe301 below · depth 22 - Independent tensor splitting of the finite Whittaker factor
AutomorphicForm.exists_finWhittaker_eq_sum_prod_mul_linearIndependent_levelOne_invariant_of_isIsotypicCuspFormAt_of_localSpaceAt15 below · depth 23 - Weight ≥ 1 real Whittaker profiles: both parity sheets non-vanishing
LanglandsTunnell.Converse.ArchDatumR.exists_W_diagOne_add_mul_W_diagOne_neg_ne_zero_of_one_le_weight32 below · depth 23 - Parity of the torus profile at weight zero
LanglandsTunnell.CubicInduction.archDatumR_W_diagOne_neg_eq_of_weightZero11 below · depth 23 - Weight-one torus profile as Gaussian multiplicative convolution
LanglandsTunnell.CubicInduction.exists_archDatumR_W_diagOne_add_eq_mul_mulConvGaussian_of_weightOne29 below · depth 23 - Discrete-series torus profile of a real archimedean Whittaker datum
LanglandsTunnell.CubicInduction.exists_archDatumR_W_diagOne_eq_mul_exp_and_eq_zero_of_discrete16 below · depth 23 - Weight-zero torus profile is a Gaussian multiplicative convolution
LanglandsTunnell.CubicInduction.exists_archDatumR_W_diagOne_eq_mul_mulConvGaussian_of_weightZero16 below · depth 23 - Archimedean zeta of the weight-zero Jacquet vector as Γ_ℝ times a Mellin transform
LanglandsTunnell.CubicInduction.exists_archZeta30_jacquetVector3_eq_mul_GammaR_mul_mellin_of_blockHarmonicOne_colHarmonic_gaussian3_of_weightZero11 below · depth 23 - Archimedean zeta of the block-harmonic Jacquet vector as a Mellin transform
LanglandsTunnell.CubicInduction.exists_archZeta30_jacquetVector3_eq_mul_GammaR_mul_mellin_of_conjBlockHarmonicOne_colHarmonic_gaussian312 below · depth 23 - Archimedean zeta of the minor-section Jacquet vector as Mellin transform
LanglandsTunnell.CubicInduction.exists_archZeta30_jacquetVector3_eq_mul_GammaR_mul_mellin_of_minorSection_gaussian3_of_weightZero10 below · depth 23 - Twisted translated Jacquet–Whittaker function: admissible, unitary central, gauged
LanglandsTunnell.CubicInduction.exists_detTwist_jacquetWhittaker3_translate_whittaker_smooth_central_admissible_gauge23 below · depth 23 - Non-vanishing archimedean zeta integral for the weight-zero quadratic section
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_jacquetVector3_ne_zero_of_detPow_blockQuadratic_colHarmonicTwo_gaussian3_of_weightZero38 below · depth 23 - An admissible twist with non-vanishing archimedean GL₃ zeta integral
LanglandsTunnell.CubicInduction.exists_isAdmissibleTwist_archZeta30_jacquetVector3_ne_zero_of_detPow_colHarmonic_gaussian362 below · depth 23 - Weight zero of the block-quadratic Gaussian Jacquet vector
LanglandsTunnell.CubicInduction.jacquetVector3_mul_iota_eq_archWeightChar_inv_mul_of_detPow_blockQuadratic_gaussian30 below · depth 23 - Explicit dual archimedean torus pair: root number times π(-1)ᶜρ times Γ-factor
LanglandsTunnell.RankinSelberg.exists_dualTorusPair_eq_archRootNumber_mul_explicit_mul_gammaFactor_of_weightOne_of_blockHarmonicOne_colHarmonic_gaussian3_of_profile36 below · depth 23 - Folded dual torus pair on the discrete branch, explicit constant
LanglandsTunnell.RankinSelberg.exists_dualTorusPair_eq_archRootNumber_mul_explicit_mul_gammaFactor_of_weightOne_of_conjBlockHarmonicOne_colHarmonic_gaussian3_of_discrete_profile28 below · depth 23 - Folded dual torus pair: root number, explicit constant, dual Γ-factors
LanglandsTunnell.RankinSelberg.exists_dualTorusPair_eq_archRootNumber_mul_explicit_mul_gammaFactor_of_weightOne_of_conjBlockHarmonicOne_colHarmonic_gaussian3_of_weightOne_profile28 below · depth 23 - Dual minor-section archimedean torus pair equals ε_∞ times Γ-factors
LanglandsTunnell.RankinSelberg.exists_dualTorusPair_eq_archRootNumber_mul_explicit_mul_gammaFactor_of_weightOne_of_minorSection_gaussian3_of_profile37 below · depth 23 - Local integrability of the Rankin–Selberg integrand at p
LanglandsTunnell.RankinSelberg.exists_forall_integrable_iotaGL_mul_of_mem_span_localSpaceAt_of_mem_gl3CyclicSubspace_twist_of_finiteFamily_arch40 below · depth 23 - Non-vanishing of a local GL₃× GL₂ Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_mem_gl3CyclicSubspace_forall_rsLocalIntegral_ne_zero_of_ne_zero13 below · depth 23 - Archimedean GL₃× GL₂ pair identity: discrete-series case
LanglandsTunnell.RankinSelberg.exists_mem_polyGauss3_iotaWeight_archZeta30_ne_zero_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_archWhittakerDatum_of_isCasimirEigen_of_discreteSeries141 below · depth 23 - Euler factorisation of the cut finite Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_ne_zero_forall_rsFinIntegral_indicator_purified_eq_mul_sum_prod_rsLocalIntegral36 below · depth 23 - Test vectors with equal local integrals, one constant
LanglandsTunnell.RankinSelberg.exists_testVectors_rsLocalIntegral_eq_and_eq_const_of_centralChar_eq_of_deepTwist_of_bump55 below · depth 23 - Even principal parameter: primal and dual unfolded torus-pair identities
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_evenPrincipal_of_detPow_blockQuadratic_colHarmonicTwo_gaussian351 below · depth 23 - Even principal torus-pair identities for a weight-zero Gaussian section
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_and_dualTorusPair_eq_gammaFactor_of_evenPrincipal_of_detPow_colHarmonic_gaussian378 below · depth 23 - Explicit unfolded archimedean torus pair, weight one, block-harmonic section
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_eq_explicit_mul_gammaFactor_of_weightOne_of_blockHarmonicOne_colHarmonic_gaussian3_of_profile31 below · depth 23 - Discrete-branch unfolded torus pair equals explicit Gamma-factor product
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_eq_explicit_mul_gammaFactor_of_weightOne_of_conjBlockHarmonicOne_colHarmonic_gaussian3_of_discrete_profile24 below · depth 23 - Weight-one unfolded torus pair as explicit Γ-factor product
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_eq_explicit_mul_gammaFactor_of_weightOne_of_conjBlockHarmonicOne_colHarmonic_gaussian3_of_weightOne_profile25 below · depth 23 - Explicit primal torus pair for the minor-section Jacquet vector
LanglandsTunnell.RankinSelberg.exists_unfoldedTorusPair_eq_explicit_mul_gammaFactor_of_weightOne_of_minorSection_gaussian3_of_profile31 below · depth 23
… and 155 more statements (search for the module name to find them).