Definitions/Def_LanglandsTunnell_CubicInduction_PrincipalSeries2.lean
Local principal series for GL(2) over a completion of Q
Fix a finite place v of \mathbb{Q} (a height-one prime of \mathcal{O}_{\mathbb{Q}}) and write F_v for the completion v.\mathrm{adicCompletion}\ \mathbb{Q}; LocalGL2 v is \mathrm{GL}_2(F_v). The module introduces the standard Borel data: diagonal2 v a is the diagonal matrix with unit entries a_0,a_1 (multiplicative in a), upperUnipotent2 v x is \begin{pmatrix}1&x\\0&1\end{pmatrix}, torusChar2 v χ a = \prod_{i} χ_i(a_i) for a pair χ of homomorphisms F_v^{\times}\to\mathbb{C}^{\times}, and halfModulus2 v a is the real positive square root of \lVert a_0\rVert/\lVert a_1\rVert, viewed in \mathbb{C}; it is multiplicative, never zero, always a positive real, and its square at (\varpi_v,1) is the inverse of the absolute norm of v. rightTranslate2 v g is the \mathbb{C}-linear endomorphism f\mapsto(h\mapsto f(hg)) of functions on \mathrm{GL}_2(F_v), multiplicative in g. The carrier principalSeries2 v χ is the \mathbb{C}-subspace of functions f:\mathrm{GL}_2(F_v)\to\mathbb{C} that are locally constant, satisfy f(u(x)g)=f(g) for all x, and f(\mathrm{diag}(a)g)=\mathrm{torusChar2}(a)\,\mathrm{halfModulus2}(a)\,f(g); right translation preserves it and principalSeries2Rep is the resulting monoid homomorphism \mathrm{GL}_2(F_v)\to\mathrm{End}_{\mathbb{C}} of that subspace.
A non-vanishing witness is constructed explicitly. With gl2Entry, gl2Det the matrix entries and determinant (continuous, determinant non-zero), cornerEntry2 g the (1,0) entry, the big-cell region cellCutoff2 v consists of the g with \mathrm{cornerEntry2}(g)\neq0 and v(g_{11}/\mathrm{cornerEntry2}(g))\le 1; it is stable under left multiplication by unipotents and diagonals. On it, cellValue2 v χ g is \mathrm{charExt}(χ_0)(\det g/c(g))\cdot\mathrm{charExt}(χ_1)(c(g))\cdot\sqrt{\lVert\det g/c(g)\rVert/\lVert c(g)\rVert}, where charExt extends a character of F_v^{\times} to F_v, and cellSection2 is the indicator extension of this by zero. It satisfies the two transformation laws, is locally constant when each χ_i is, hence lies in principalSeries2 v χ; its value at the antidiagonal matrix \begin{pmatrix}0&1\\1&0\end{pmatrix} is non-zero, so the principal series is not the zero subspace. Finally unipotentHom2 v is the homomorphism from the multiplicative copy of (F_v,+) sending x to u(x), and unipotentRep2 v χ is the induced representation of that group on the principal series, acting by f\mapsto f(\cdot\,u(x)). Auxiliary lemmas record continuity of entries and determinant, the finite-place norm of a uniformiser, and the fact that near a point where a continuous numerator is non-zero and a continuous denominator vanishes the quotient has valuation >1 wherever defined.
Relation to Mathlib
Mathlib supplies the general linear group, adic completions and the finite-place norm, local constancy and Representation; the principal series subspace, the big-cell section and the accompanying torus and modulus functions are the project's own constructions.
Where it is used
These local principal series for \mathrm{GL}_2 accompany the \mathrm{GL}_3 constructions of the cubic-induction package, which supplies the automorphic input for the Langlands–Tunnell step establishing modularity of the mod 3 representation used in the Fermat argument.
References
- D. Bump, Automorphic Forms and Representations, Cambridge Studies in Advanced Mathematics 55, Cambridge University Press, 1997
- J. Tunnell, Artin's conjecture for representations of octahedral type, Bulletin of the American Mathematical Society (N.S.) 5 (1981), 173–175
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 426 lines
- 65 declarations
- used in the statements of 165 theorems and imported by 164 proofs
- imports 1 definition modules
Source file: Definitions/Def_LanglandsTunnell_CubicInduction_PrincipalSeries2.lean
Imported by
- no other definition module
Declarations
- abbrev
LanglandsTunnell.CubicInduction.LocalGL2 - def
LanglandsTunnell.CubicInduction.rightTranslate2 - theorem
LanglandsTunnell.CubicInduction.rightTranslate2_apply - theorem
LanglandsTunnell.CubicInduction.rightTranslate2_mul - def
LanglandsTunnell.CubicInduction.diagonal2 - theorem
LanglandsTunnell.CubicInduction.diagonal2_coe - theorem
LanglandsTunnell.CubicInduction.diagonal2_mul - def
LanglandsTunnell.CubicInduction.upperUnipotent2 - theorem
LanglandsTunnell.CubicInduction.upperUnipotent2_coe - def
LanglandsTunnell.CubicInduction.halfModulus2 - theorem
LanglandsTunnell.CubicInduction.halfModulus2_mul - theorem
LanglandsTunnell.CubicInduction.halfModulus2_one - theorem
LanglandsTunnell.CubicInduction.halfModulus2_ne_zero - theorem
LanglandsTunnell.CubicInduction.halfModulus2_eq_pos_real - theorem
LanglandsTunnell.CubicInduction.toAdd_unzero_exp - theorem
LanglandsTunnell.CubicInduction.norm_uniformizerUnit - theorem
LanglandsTunnell.CubicInduction.halfModulus2_sq_uniformizerUnit - def
LanglandsTunnell.CubicInduction.torusChar2 - theorem
LanglandsTunnell.CubicInduction.torusChar2_mul - theorem
LanglandsTunnell.CubicInduction.torusChar2_one - def
LanglandsTunnell.CubicInduction.principalSeries2 - theorem
LanglandsTunnell.CubicInduction.mem_principalSeries2_iff - theorem
LanglandsTunnell.CubicInduction.rightTranslate2_mem_principalSeries2 - def
LanglandsTunnell.CubicInduction.principalSeries2Rep - def
LanglandsTunnell.CubicInduction.gl2Entry - def
LanglandsTunnell.CubicInduction.gl2Det - theorem
LanglandsTunnell.CubicInduction.gl2Det_ne_zero - theorem
LanglandsTunnell.CubicInduction.gl2Det_eq - theorem
LanglandsTunnell.CubicInduction.continuous_gl2Entry - theorem
LanglandsTunnell.CubicInduction.continuous_gl2Det - theorem
LanglandsTunnell.CubicInduction.gl2Entry_upperUnipotent2_mul_one - theorem
LanglandsTunnell.CubicInduction.gl2Det_upperUnipotent2_mul - theorem
LanglandsTunnell.CubicInduction.gl2Entry_diagonal2_mul - theorem
LanglandsTunnell.CubicInduction.gl2Det_diagonal2_mul - def
LanglandsTunnell.CubicInduction.cornerEntry2 - theorem
LanglandsTunnell.CubicInduction.continuous_cornerEntry2 - theorem
LanglandsTunnell.CubicInduction.cornerEntry2_upperUnipotent2_mul - theorem
LanglandsTunnell.CubicInduction.cornerEntry2_diagonal2_mul - theorem
LanglandsTunnell.CubicInduction.gl2Entry_one_one_ne_zero_of_cornerEntry2_eq_zero - def
LanglandsTunnell.CubicInduction.cellCutoff2 - theorem
LanglandsTunnell.CubicInduction.upperUnipotent2_mul_mem_cellCutoff2_iff - theorem
LanglandsTunnell.CubicInduction.diagonal2_mul_mem_cellCutoff2_iff - def
LanglandsTunnell.CubicInduction.cellValue2 - def
LanglandsTunnell.CubicInduction.cellSection2 - theorem
LanglandsTunnell.CubicInduction.cellValue2_upperUnipotent2_mul - theorem
LanglandsTunnell.CubicInduction.cellSection2_upperUnipotent2_mul - theorem
LanglandsTunnell.CubicInduction.cellValue2_diagonal2_mul - theorem
LanglandsTunnell.CubicInduction.cellSection2_diagonal2_mul - theorem
LanglandsTunnell.CubicInduction.eventually_one_lt_valued_div2 - theorem
LanglandsTunnell.CubicInduction.isLocallyConstant_cellSection2 - theorem
LanglandsTunnell.CubicInduction.cellSection2_mem_principalSeries2 - def
LanglandsTunnell.CubicInduction.antidiagonal2 - theorem
LanglandsTunnell.CubicInduction.antidiagonal2_coe - theorem
LanglandsTunnell.CubicInduction.cornerEntry2_antidiagonal2 - theorem
LanglandsTunnell.CubicInduction.gl2Entry_antidiagonal2_one_one - theorem
LanglandsTunnell.CubicInduction.gl2Det_antidiagonal2 - theorem
LanglandsTunnell.CubicInduction.antidiagonal2_mem_cellCutoff2 - theorem
LanglandsTunnell.CubicInduction.cellSection2_antidiagonal2_ne_zero - theorem
LanglandsTunnell.CubicInduction.principalSeries2_ne_bot - theorem
LanglandsTunnell.CubicInduction.upperUnipotent2_mul - theorem
LanglandsTunnell.CubicInduction.upperUnipotent2_zero - def
LanglandsTunnell.CubicInduction.unipotentHom2 - theorem
LanglandsTunnell.CubicInduction.unipotentHom2_ofAdd - def
LanglandsTunnell.CubicInduction.unipotentRep2 - theorem
LanglandsTunnell.CubicInduction.unipotentRep2_ofAdd_apply_coe
Source
import Definitions.Def_LanglandsTunnell_CubicInduction_PrincipalSeries3 set_option autoImplicit false open Matrix IsDedekindDomain NumberField NumberField.AdelicLevel LanglandsTunnell.TateLocal noncomputable section namespace LanglandsTunnell.CubicInduction section PrincipalSeries2 variable (v : HeightOneSpectrum (𝓞 ℚ)) abbrev LocalGL2 : Type := GL (Fin 2) (v.adicCompletion ℚ) def rightTranslate2 (g : LocalGL2 v) : Module.End ℂ (LocalGL2 v → ℂ) where toFun f := fun h => f (h * g) map_add' _ _ := rfl map_smul' _ _ := rfl theorem rightTranslate2_apply (g : LocalGL2 v) (f : LocalGL2 v → ℂ) (h : LocalGL2 v) : rightTranslate2 v g f h = f (h * g) := rfl theorem rightTranslate2_mul (g g' : LocalGL2 v) : rightTranslate2 v (g * g') = rightTranslate2 v g * rightTranslate2 v g' := by ext f h simp [rightTranslate2_apply, mul_assoc] def diagonal2 (a : Fin 2 → (v.adicCompletion ℚ)ˣ) : LocalGL2 v where val := diagonal fun i => (a i : v.adicCompletion ℚ) inv := diagonal fun i => ((a i)⁻¹ : (v.adicCompletion ℚ)ˣ) val_inv := by rw [diagonal_mul_diagonal] simp only [Units.mul_inv, diagonal_one] inv_val := by rw [diagonal_mul_diagonal] simp only [Units.inv_mul, diagonal_one] @[simp] theorem diagonal2_coe (a : Fin 2 → (v.adicCompletion ℚ)ˣ) : (diagonal2 v a : Matrix (Fin 2) (Fin 2) (v.adicCompletion ℚ)) = diagonal fun i => (a i : v.adicCompletion ℚ) := rfl theorem diagonal2_mul (a b : Fin 2 → (v.adicCompletion ℚ)ˣ) : diagonal2 v (a * b) = diagonal2 v a * diagonal2 v b := by ext i j rcases eq_or_ne i j with rfl | hij · simp [diagonal2] · simp [diagonal2, Matrix.diagonal_apply_ne _ hij] def upperUnipotent2 (x : v.adicCompletion ℚ) : LocalGL2 v where val := !![1, x; 0, 1] inv := !![1, -x; 0, 1] val_inv := by ext i j fin_cases i <;> fin_cases j <;> simp [Matrix.mul_apply, Fin.sum_univ_two] inv_val := by ext i j fin_cases i <;> fin_cases j <;> simp [Matrix.mul_apply, Fin.sum_univ_two] @[simp] theorem upperUnipotent2_coe (x : v.adicCompletion ℚ) : (upperUnipotent2 v x : Matrix (Fin 2) (Fin 2) (v.adicCompletion ℚ)) = !![1, x; 0, 1] := rfl def halfModulus2 (a : Fin 2 → (v.adicCompletion ℚ)ˣ) : ℂ := ((Real.sqrt (‖(a 0 : v.adicCompletion ℚ)‖ / ‖(a 1 : v.adicCompletion ℚ)‖) : ℝ) : ℂ) theorem halfModulus2_mul (a b : Fin 2 → (v.adicCompletion ℚ)ˣ) : halfModulus2 v (a * b) = halfModulus2 v a * halfModulus2 v b := by simp only [halfModulus2, Pi.mul_apply, Units.val_mul, norm_mul] rw [show ‖(a 0 : v.adicCompletion ℚ)‖ * ‖(b 0 : v.adicCompletion ℚ)‖ / (‖(a 1 : v.adicCompletion ℚ)‖ * ‖(b 1 : v.adicCompletion ℚ)‖) = ‖(a 0 : v.adicCompletion ℚ)‖ / ‖(a 1 : v.adicCompletion ℚ)‖ * (‖(b 0 : v.adicCompletion ℚ)‖ / ‖(b 1 : v.adicCompletion ℚ)‖) by ring, Real.sqrt_mul (by positivity)] push_cast ring @[simp] theorem halfModulus2_one : halfModulus2 v 1 = 1 := by simp [halfModulus2] theorem halfModulus2_ne_zero (a : Fin 2 → (v.adicCompletion ℚ)ˣ) : halfModulus2 v a ≠ 0 := by unfold halfModulus2 exact_mod_cast (Real.sqrt_pos.mpr (div_pos (norm_pos_iff.mpr (a 0).ne_zero) (norm_pos_iff.mpr (a 1).ne_zero))).ne' theorem halfModulus2_eq_pos_real (a : Fin 2 → (v.adicCompletion ℚ)ˣ) : ∃ r : ℝ, 0 < r ∧ halfModulus2 v a = (r : ℂ) := ⟨_, Real.sqrt_pos.mpr (div_pos (norm_pos_iff.mpr (a 0).ne_zero) (norm_pos_iff.mpr (a 1).ne_zero)), rfl⟩ private theorem toAdd_unzero_exp (n : ℤ) (h : (WithZero.exp n : WithZero (Multiplicative ℤ)) ≠ 0) : Multiplicative.toAdd (WithZero.unzero h) = n := rfl private theorem norm_uniformizerUnit : ‖(uniformizerUnit ℚ v : v.adicCompletion ℚ)‖ = (((Ideal.absNorm v.asIdeal : ℕ) : ℝ))⁻¹ := by rw [NumberField.FinitePlace.norm_def, valued_uniformizerUnit, WithZeroMulInt.toNNReal_neg_apply _ WithZero.exp_ne_zero, toAdd_unzero_exp] simp theorem halfModulus2_sq_uniformizerUnit : halfModulus2 v ![uniformizerUnit ℚ v, 1] ^ 2 = ((((Ideal.absNorm v.asIdeal : ℕ) : ℝ)⁻¹ : ℝ) : ℂ) := by have h : halfModulus2 v ![uniformizerUnit ℚ v, 1] = ((Real.sqrt ‖(uniformizerUnit ℚ v : v.adicCompletion ℚ)‖ : ℝ) : ℂ) := by simp [halfModulus2] rw [h, ← Complex.ofReal_pow, Real.sq_sqrt (norm_nonneg _), norm_uniformizerUnit] def torusChar2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (a : Fin 2 → (v.adicCompletion ℚ)ˣ) : ℂ := ∏ i : Fin 2, ((χ i (a i) : ℂˣ) : ℂ) theorem torusChar2_mul (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (a b : Fin 2 → (v.adicCompletion ℚ)ˣ) : torusChar2 v χ (a * b) = torusChar2 v χ a * torusChar2 v χ b := by simp only [torusChar2, Pi.mul_apply, map_mul, Units.val_mul, Finset.prod_mul_distrib] @[simp] theorem torusChar2_one (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) : torusChar2 v χ 1 = 1 := by simp [torusChar2] def principalSeries2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) : Submodule ℂ (LocalGL2 v → ℂ) where carrier := {f | IsLocallyConstant f ∧ (∀ (x : v.adicCompletion ℚ) (g : LocalGL2 v), f (upperUnipotent2 v x * g) = f g) ∧ ∀ (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v), f (diagonal2 v a * g) = torusChar2 v χ a * halfModulus2 v a * f g} zero_mem' := ⟨IsLocallyConstant.const 0, fun _ _ => rfl, fun _ _ => by simp⟩ add_mem' := by intro f₁ f₂ h₁ h₂ obtain ⟨h₁lc, h₁n, h₁t⟩ := h₁ obtain ⟨h₂lc, h₂n, h₂t⟩ := h₂ refine ⟨h₁lc.comp₂ h₂lc (· + ·), fun x g => ?_, fun a g => ?_⟩ · show f₁ _ + f₂ _ = f₁ g + f₂ g rw [h₁n, h₂n] · show f₁ _ + f₂ _ = _ * (f₁ g + f₂ g) rw [h₁t, h₂t] ring smul_mem' := by intro c f hf obtain ⟨hlc, hn, ht⟩ := hf refine ⟨hlc.comp (c * ·), fun x g => ?_, fun a g => ?_⟩ · show c * f _ = c * f g rw [hn] · show c * f _ = _ * (c * f g) rw [ht] ring variable {v} theorem mem_principalSeries2_iff {χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)} {f : LocalGL2 v → ℂ} : f ∈ principalSeries2 v χ ↔ IsLocallyConstant f ∧ (∀ (x : v.adicCompletion ℚ) (g : LocalGL2 v), f (upperUnipotent2 v x * g) = f g) ∧ ∀ (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v), f (diagonal2 v a * g) = torusChar2 v χ a * halfModulus2 v a * f g := Iff.rfl theorem rightTranslate2_mem_principalSeries2 {χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)} {f : LocalGL2 v → ℂ} (hf : f ∈ principalSeries2 v χ) (g : LocalGL2 v) : rightTranslate2 v g f ∈ principalSeries2 v χ := by obtain ⟨hlc, hn, ht⟩ := mem_principalSeries2_iff.mp hf refine mem_principalSeries2_iff.mpr ⟨hlc.comp_continuous (continuous_id.mul continuous_const), fun x h => ?_, fun a h => ?_⟩ · show f (upperUnipotent2 v x * h * g) = f (h * g) rw [mul_assoc, hn] · show f (diagonal2 v a * h * g) = _ * f (h * g) rw [mul_assoc, ht] def principalSeries2Rep (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) : LocalGL2 v →* Module.End ℂ ↥(principalSeries2 v χ) where toFun g := (rightTranslate2 v g).restrict fun f hf => rightTranslate2_mem_principalSeries2 hf g map_one' := by ext f h simp [rightTranslate2_apply] map_mul' g g' := by ext f h simp [rightTranslate2_apply, mul_assoc] section Witness2 variable (v) def gl2Entry (g : LocalGL2 v) (i j : Fin 2) : v.adicCompletion ℚ := (g : Matrix (Fin 2) (Fin 2) (v.adicCompletion ℚ)) i j def gl2Det (g : LocalGL2 v) : v.adicCompletion ℚ := (g : Matrix (Fin 2) (Fin 2) (v.adicCompletion ℚ)).det theorem gl2Det_ne_zero (g : LocalGL2 v) : gl2Det v g ≠ 0 := by have h := (Matrix.GeneralLinearGroup.det g).ne_zero rwa [Matrix.GeneralLinearGroup.val_det_apply] at h theorem gl2Det_eq (g : LocalGL2 v) : gl2Det v g = gl2Entry v g 0 0 * gl2Entry v g 1 1 - gl2Entry v g 0 1 * gl2Entry v g 1 0 := by simp only [gl2Det, gl2Entry, Matrix.det_fin_two] theorem continuous_gl2Entry (i j : Fin 2) : Continuous fun g : LocalGL2 v => gl2Entry v g i j := Units.continuous_val.matrix_elem i j theorem continuous_gl2Det : Continuous (gl2Det v) := Units.continuous_val.matrix_det theorem gl2Entry_upperUnipotent2_mul_one (x : v.adicCompletion ℚ) (g : LocalGL2 v) (j : Fin 2) : gl2Entry v (upperUnipotent2 v x * g) 1 j = gl2Entry v g 1 j := by simp [gl2Entry, Matrix.mul_apply, Fin.sum_univ_two] theorem gl2Det_upperUnipotent2_mul (x : v.adicCompletion ℚ) (g : LocalGL2 v) : gl2Det v (upperUnipotent2 v x * g) = gl2Det v g := by simp only [gl2Det, Units.val_mul, Matrix.det_mul, upperUnipotent2_coe, Matrix.det_fin_two_of] simp theorem gl2Entry_diagonal2_mul (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v) (i j : Fin 2) : gl2Entry v (diagonal2 v a * g) i j = (a i : v.adicCompletion ℚ) * gl2Entry v g i j := by simp [gl2Entry, diagonal2_coe, Matrix.diagonal_mul] theorem gl2Det_diagonal2_mul (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v) : gl2Det v (diagonal2 v a * g) = (a 0 : v.adicCompletion ℚ) * a 1 * gl2Det v g := by simp only [gl2Det, Units.val_mul, Matrix.det_mul, diagonal2_coe, Matrix.det_diagonal, Fin.prod_univ_two] def cornerEntry2 (g : LocalGL2 v) : v.adicCompletion ℚ := gl2Entry v g 1 0 theorem continuous_cornerEntry2 : Continuous (cornerEntry2 v) := continuous_gl2Entry v 1 0 theorem cornerEntry2_upperUnipotent2_mul (x : v.adicCompletion ℚ) (g : LocalGL2 v) : cornerEntry2 v (upperUnipotent2 v x * g) = cornerEntry2 v g := gl2Entry_upperUnipotent2_mul_one v x g 0 theorem cornerEntry2_diagonal2_mul (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v) : cornerEntry2 v (diagonal2 v a * g) = (a 1 : v.adicCompletion ℚ) * cornerEntry2 v g := gl2Entry_diagonal2_mul v a g 1 0 theorem gl2Entry_one_one_ne_zero_of_cornerEntry2_eq_zero {g : LocalGL2 v} (hc : cornerEntry2 v g = 0) : gl2Entry v g 1 1 ≠ 0 := by intro h apply gl2Det_ne_zero v g have hc' : gl2Entry v g 1 0 = 0 := hc rw [gl2Det_eq, h, hc'] ring def cellCutoff2 : Set (LocalGL2 v) := {g | cornerEntry2 v g ≠ 0 ∧ Valued.v (gl2Entry v g 1 1 / cornerEntry2 v g) ≤ 1} theorem upperUnipotent2_mul_mem_cellCutoff2_iff (x : v.adicCompletion ℚ) (g : LocalGL2 v) : upperUnipotent2 v x * g ∈ cellCutoff2 v ↔ g ∈ cellCutoff2 v := by simp only [cellCutoff2, Set.mem_setOf_eq, cornerEntry2_upperUnipotent2_mul, gl2Entry_upperUnipotent2_mul_one] theorem diagonal2_mul_mem_cellCutoff2_iff (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v) : diagonal2 v a * g ∈ cellCutoff2 v ↔ g ∈ cellCutoff2 v := by simp only [cellCutoff2, Set.mem_setOf_eq, cornerEntry2_diagonal2_mul, gl2Entry_diagonal2_mul, mul_div_mul_left _ _ (a 1).ne_zero, mul_ne_zero_iff, ne_eq, (a 1).ne_zero, not_false_eq_true, true_and] def cellValue2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (g : LocalGL2 v) : ℂ := charExt (χ 0) (gl2Det v g / cornerEntry2 v g) * charExt (χ 1) (cornerEntry2 v g) * ((Real.sqrt (‖gl2Det v g / cornerEntry2 v g‖ / ‖cornerEntry2 v g‖) : ℝ) : ℂ) def cellSection2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) : LocalGL2 v → ℂ := (cellCutoff2 v).indicator (cellValue2 v χ) theorem cellValue2_upperUnipotent2_mul (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (x : v.adicCompletion ℚ) (g : LocalGL2 v) : cellValue2 v χ (upperUnipotent2 v x * g) = cellValue2 v χ g := by simp only [cellValue2, cornerEntry2_upperUnipotent2_mul, gl2Det_upperUnipotent2_mul] theorem cellSection2_upperUnipotent2_mul (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (x : v.adicCompletion ℚ) (g : LocalGL2 v) : cellSection2 v χ (upperUnipotent2 v x * g) = cellSection2 v χ g := by by_cases hg : g ∈ cellCutoff2 v · rw [cellSection2, Set.indicator_of_mem (by rwa [upperUnipotent2_mul_mem_cellCutoff2_iff]), Set.indicator_of_mem hg, cellValue2_upperUnipotent2_mul] · rw [cellSection2, Set.indicator_of_notMem (by rwa [upperUnipotent2_mul_mem_cellCutoff2_iff]), Set.indicator_of_notMem hg] theorem cellValue2_diagonal2_mul (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v) : cellValue2 v χ (diagonal2 v a * g) = torusChar2 v χ a * halfModulus2 v a * cellValue2 v χ g := by have h1 : (a 1 : v.adicCompletion ℚ) ≠ 0 := (a 1).ne_zero have hdet : gl2Det v (diagonal2 v a * g) / cornerEntry2 v (diagonal2 v a * g) = (a 0 : v.adicCompletion ℚ) * (gl2Det v g / cornerEntry2 v g) := by rw [gl2Det_diagonal2_mul, cornerEntry2_diagonal2_mul, show (a 0 : v.adicCompletion ℚ) * a 1 * gl2Det v g = (a 1 : v.adicCompletion ℚ) * (a 0 * gl2Det v g) by ring, mul_div_mul_left _ _ h1, mul_div_assoc] have hmod : ‖(a 0 : v.adicCompletion ℚ) * (gl2Det v g / cornerEntry2 v g)‖ / ‖(a 1 : v.adicCompletion ℚ) * cornerEntry2 v g‖ = ‖(a 0 : v.adicCompletion ℚ)‖ / ‖(a 1 : v.adicCompletion ℚ)‖ * (‖gl2Det v g / cornerEntry2 v g‖ / ‖cornerEntry2 v g‖) := by rw [norm_mul, norm_mul] ring rw [cellValue2, cellValue2, hdet, cornerEntry2_diagonal2_mul, hmod, charExt_units_mul, charExt_units_mul, Real.sqrt_mul (div_nonneg (norm_nonneg _) (norm_nonneg _))] simp only [torusChar2, halfModulus2, Fin.prod_univ_two] push_cast ring theorem cellSection2_diagonal2_mul (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (a : Fin 2 → (v.adicCompletion ℚ)ˣ) (g : LocalGL2 v) : cellSection2 v χ (diagonal2 v a * g) = torusChar2 v χ a * halfModulus2 v a * cellSection2 v χ g := by by_cases hg : g ∈ cellCutoff2 v · rw [cellSection2, Set.indicator_of_mem (by rwa [diagonal2_mul_mem_cellCutoff2_iff]), Set.indicator_of_mem hg, cellValue2_diagonal2_mul] · rw [cellSection2, Set.indicator_of_notMem (by rwa [diagonal2_mul_mem_cellCutoff2_iff]), Set.indicator_of_notMem hg, mul_zero] theorem eventually_one_lt_valued_div2 {n d : LocalGL2 v → v.adicCompletion ℚ} {g : LocalGL2 v} (hn : Continuous n) (hd : Continuous d) (hng : n g ≠ 0) (hdg : d g = 0) : ∀ᶠ h in nhds g, d h ≠ 0 → 1 < Valued.v (n h / d h) := by have h1 : ∀ᶠ h in nhds g, Valued.v (n h) = Valued.v (n g) := (hn.tendsto g).eventually (eventually_valued_eq v hng) have h2 : ∀ᶠ h in nhds g, Valued.v (d h) < Valued.v (n g) := by have ht : Filter.Tendsto d (nhds g) (nhds 0) := by simpa [hdg] using hd.tendsto g exact ht.eventually (eventually_valued_lt v hng) filter_upwards [h1, h2] with h hn' hd' hd0 have hvd : Valued.v (d h) ≠ 0 := (Valuation.ne_zero_iff _).mpr hd0 rw [map_div₀, hn', one_lt_div₀ (lt_of_le_of_ne zero_le' hvd.symm)] exact hd' theorem isLocallyConstant_cellSection2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (hχ : ∀ i, IsLocallyConstant (χ i)) : IsLocallyConstant (cellSection2 v χ) := by rw [IsLocallyConstant.iff_eventually_eq] intro g by_cases hc : cornerEntry2 v g = 0 · have hg : g ∉ cellCutoff2 v := fun hg => hg.1 hc have hev := eventually_one_lt_valued_div2 v (continuous_gl2Entry v 1 1) (continuous_cornerEntry2 v) (gl2Entry_one_one_ne_zero_of_cornerEntry2_eq_zero v hc) hc filter_upwards [hev] with h hh have hh' : h ∉ cellCutoff2 v := fun hmem => (not_le.mpr (hh hmem.1)) hmem.2 rw [cellSection2, Set.indicator_of_notMem hh', Set.indicator_of_notMem hg] have hcA : ContinuousAt (cornerEntry2 v) g := (continuous_cornerEntry2 v).continuousAt have hc' : ∀ᶠ h in nhds g, cornerEntry2 v h ≠ 0 := hcA.eventually_ne hc have hr : ∀ᶠ h in nhds g, (Valued.v (gl2Entry v h 1 1 / cornerEntry2 v h) ≤ 1 ↔ Valued.v (gl2Entry v g 1 1 / cornerEntry2 v g) ≤ 1) := (((continuous_gl2Entry v 1 1).continuousAt).div hcA hc).eventually (eventually_mem_iff_of_isClopen v (isClopen_valued_le_one v) (gl2Entry v g 1 1 / cornerEntry2 v g)) have hmem : ∀ᶠ h in nhds g, (h ∈ cellCutoff2 v ↔ g ∈ cellCutoff2 v) := by filter_upwards [hc', hr] with h hh hrh simp only [cellCutoff2, Set.mem_setOf_eq, hh, hc, ne_eq, not_false_eq_true, true_and] exact hrh have hval : ∀ᶠ h in nhds g, cellValue2 v χ h = cellValue2 v χ g := by have hdA : ContinuousAt (fun h => gl2Det v h / cornerEntry2 v h) g := ((continuous_gl2Det v).continuousAt).div hcA hc have hd0 : gl2Det v g / cornerEntry2 v g ≠ 0 := div_ne_zero (gl2Det_ne_zero v g) hc filter_upwards [hdA.eventually (eventually_charExt_eq v (χ 0) (hχ 0) hd0), hcA.eventually (eventually_charExt_eq v (χ 1) (hχ 1) hc), hdA.eventually (eventually_norm_eq v hd0), hcA.eventually (eventually_norm_eq v hc)] with h e0 e1 n0 n1 simp only [cellValue2, e0, e1, n0, n1] filter_upwards [hmem, hval] with h hm hv by_cases hg : g ∈ cellCutoff2 v · rw [cellSection2, Set.indicator_of_mem (hm.mpr hg), Set.indicator_of_mem hg, hv] · rw [cellSection2, Set.indicator_of_notMem (fun hh => hg (hm.mp hh)), Set.indicator_of_notMem hg] theorem cellSection2_mem_principalSeries2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (hχ : ∀ i, IsLocallyConstant (χ i)) : cellSection2 v χ ∈ principalSeries2 v χ := ⟨isLocallyConstant_cellSection2 v χ hχ, cellSection2_upperUnipotent2_mul v χ, cellSection2_diagonal2_mul v χ⟩ def antidiagonal2 : LocalGL2 v := Matrix.GeneralLinearGroup.mkOfDetNeZero !![(0 : v.adicCompletion ℚ), 1; 1, 0] (by simp [Matrix.det_fin_two_of]) theorem antidiagonal2_coe : (antidiagonal2 v : Matrix (Fin 2) (Fin 2) (v.adicCompletion ℚ)) = !![(0 : v.adicCompletion ℚ), 1; 1, 0] := rfl theorem cornerEntry2_antidiagonal2 : cornerEntry2 v (antidiagonal2 v) = 1 := by simp [cornerEntry2, gl2Entry, antidiagonal2_coe] theorem gl2Entry_antidiagonal2_one_one : gl2Entry v (antidiagonal2 v) 1 1 = 0 := by simp [gl2Entry, antidiagonal2_coe] theorem gl2Det_antidiagonal2 : gl2Det v (antidiagonal2 v) = -1 := by simp [gl2Det, antidiagonal2_coe, Matrix.det_fin_two_of] theorem antidiagonal2_mem_cellCutoff2 : antidiagonal2 v ∈ cellCutoff2 v := by refine ⟨?_, ?_⟩ · rw [cornerEntry2_antidiagonal2] exact one_ne_zero · simp [gl2Entry_antidiagonal2_one_one] theorem cellSection2_antidiagonal2_ne_zero (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) : cellSection2 v χ (antidiagonal2 v) ≠ 0 := by have h0 : charExt (χ 0) (-1 : v.adicCompletion ℚ) = (χ 0 (-1) : ℂ) := by simpa using charExt_coe_units (χ 0) (-1) have h1 : charExt (χ 1) (1 : v.adicCompletion ℚ) = (χ 1 1 : ℂ) := by simpa using charExt_coe_units (χ 1) 1 rw [cellSection2, Set.indicator_of_mem (antidiagonal2_mem_cellCutoff2 v)] simp only [cellValue2, gl2Det_antidiagonal2, cornerEntry2_antidiagonal2, div_one, h0, h1, norm_neg, norm_one, Real.sqrt_one, Complex.ofReal_one, mul_one] exact mul_ne_zero (Units.ne_zero _) (Units.ne_zero _) theorem principalSeries2_ne_bot (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (hχ : ∀ i, IsLocallyConstant (χ i)) : principalSeries2 v χ ≠ ⊥ := by intro hbot have hmem := cellSection2_mem_principalSeries2 v χ hχ rw [hbot, Submodule.mem_bot] at hmem exact cellSection2_antidiagonal2_ne_zero v χ (by simp [hmem]) end Witness2 section UnipotentLine variable (v) theorem upperUnipotent2_mul (x y : v.adicCompletion ℚ) : upperUnipotent2 v x * upperUnipotent2 v y = upperUnipotent2 v (x + y) := by ext i j fin_cases i <;> fin_cases j <;> simp [Matrix.mul_apply, Fin.sum_univ_two, add_comm] theorem upperUnipotent2_zero : upperUnipotent2 v 0 = 1 := by ext i j fin_cases i <;> fin_cases j <;> simp def unipotentHom2 : Multiplicative (v.adicCompletion ℚ) →* LocalGL2 v where toFun x := upperUnipotent2 v (Multiplicative.toAdd x) map_one' := upperUnipotent2_zero v map_mul' x y := (upperUnipotent2_mul v (Multiplicative.toAdd x) (Multiplicative.toAdd y)).symm @[simp] theorem unipotentHom2_ofAdd (x : v.adicCompletion ℚ) : unipotentHom2 v (Multiplicative.ofAdd x) = upperUnipotent2 v x := rfl def unipotentRep2 (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) : Representation ℂ (Multiplicative (v.adicCompletion ℚ)) ↥(principalSeries2 v χ) := (principalSeries2Rep (v := v) χ).comp (unipotentHom2 v) theorem unipotentRep2_ofAdd_apply_coe (χ : Fin 2 → ((v.adicCompletion ℚ)ˣ →* ℂˣ)) (x : v.adicCompletion ℚ) (f : ↥(principalSeries2 v χ)) (g : LocalGL2 v) : (unipotentRep2 v χ (Multiplicative.ofAdd x) f : LocalGL2 v → ℂ) g = (f : LocalGL2 v → ℂ) (g * upperUnipotent2 v x) := rfl end UnipotentLine end PrincipalSeries2 end LanglandsTunnell.CubicInduction end
Statements phrased using this module (165)
- Archimedean holomorphy and non-vanishing from a torus Γ-factor identity
LanglandsTunnell.RankinSelberg.differentiableOn_and_rsArchIntegral_ne_zero_of_torusPair_eq_gammaFactor5 below · depth 18 - 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 - 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 - Determinant twists cancel in the local GL₃× GL₂ Rankin–Selberg data
LanglandsTunnell.RankinSelberg.gl3CyclicSubspace_detTwist_and_rsIntegrand_detTwist_eq0 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 - 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 - 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 - 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 - 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 - Essential Whittaker vector at p with non-vanishing value at 1
LanglandsTunnell.CubicInduction.exists_whittaker_localLevelOne_centralChar_admissible_principalSeries2_apply_one_ne_zero_of_norm_eq_one_of_higherUnitsAt50 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 - 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 - 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 - Whittaker function as Jacquet integrals of a flat family
LanglandsTunnell.CubicInduction.exists_flatSection_jacquetIntegral_eq_finsum_cpow_of_embedding_principalSeries214 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 - 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 - Dual section of the GL₂ principal series
LanglandsTunnell.CubicInduction.exists_modulus_det_mul_apply_antidiagonal_mul_transposeInvN_mem_principalSeries21 below · depth 22 - Whittaker model of a unitary principal series of GL₂(ℚₚ)
LanglandsTunnell.CubicInduction.exists_whittaker_localLevelOne_centralChar_admissible_principalSeries2_of_norm_eq_one_of_higherUnitsAt39 below · depth 22 - Conductor bound for the characters of a principal series
LanglandsTunnell.CubicInduction.forall_higherUnitsAt_eq_one_of_mem_principalSeries2_of_forall_mem_localLevelOne_pow1 below · depth 22 - Unramified twist shifts the local (3,1) functional equation
LanglandsTunnell.CubicInduction.forall_localZeta31_fe_of_twist_modulus_cpow0 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 - Convergence of two intermediate GL₃timesGL₂ local integrals
LanglandsTunnell.RankinSelberg.exists_forall_integrable_flatSection_mul_whittaker_iotaGL_diagUnits2_longWeyl3_of_gauge1 below · depth 22 - Convergence of the unfolded GL₃timesGL₂ local integral
LanglandsTunnell.RankinSelberg.exists_forall_integrable_whittaker_iotaGL_mul_principalSeries2_antidiagonal_of_gauge10 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 - 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 - Local GL₃timesGL₂ functional equation for a Jacquet-integral section
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral_jacquetIntegral_dual_eq_mul_of_forall_localZeta31_fe_of_integrable_setIntegral_localLevelOne_of_torusShell49 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 - Absolute Jacquet integral: finiteness and transformation law
LanglandsTunnell.CubicInduction.absoluteJacquetIntegral_lt_top_and_unipotent_and_diagonal2_and_bounded_of_mem_principalSeries23 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 - Existence of a dual middle datum at a finite place
LanglandsTunnell.CubicInduction.exists_dualMiddleDatum_rsLocalIntegral_dual_mul_eq_of_iotaGL_invariant_of_dominant72 below · depth 23 - Uniqueness of ψ-Whittaker functionals on GL₂ principal series
LanglandsTunnell.CubicInduction.exists_eq_smul_of_forall_apply_principalSeries2Rep_upperUnipotent2_eq_mul0 below · depth 23 - Admissibility of the principal series of GL₂(ℚₚ)
LanglandsTunnell.CubicInduction.exists_finset_forall_mem_principalSeries2_invariant_mem_span1 below · depth 23 - Truncated Jacquet integrals of a flat section: Laurent polynomial in q^u
LanglandsTunnell.CubicInduction.exists_finset_forall_setIntegral_flatSection_antidiagonal_unipotentGL2_addChar_eq_sum_cpow3 below · depth 23 - Extension of ψ-Whittaker functionals on the principal series
LanglandsTunnell.CubicInduction.exists_linearMap_forall_apply_principalSeries2Rep_upperUnipotent2_eq_mul_and_apply_eq_of_forall_mem0 below · depth 23 - Stabilised Jacquet functional on the GL₂(ℚₚ) principal series
LanglandsTunnell.CubicInduction.exists_linearMap_stabilised_jacquetIntegral_principalSeries25 below · depth 23 - A K₁(N)-fixed vector in the principal series I(θ₀,θ₁)
LanglandsTunnell.CubicInduction.exists_mem_principalSeries2_ne_zero_forall_localLevelOne_mul_eq_of_higherUnitsAt1 below · depth 23 - Moderate growth of the Jacquet integral along torus shells
LanglandsTunnell.CubicInduction.exists_norm_apply_diagZ_mul_le_of_stabilised_jacquetIntegral_of_norm_eq_one1 below · depth 23 - Primal middle datum for the local GL₃timesGL₂ integral
LanglandsTunnell.CubicInduction.exists_primalMiddleDatum_rsLocalIntegral_mul_eq_of_iotaGL_invariant_of_dominant61 below · depth 23 - Flat sections of the principal series and the Iwasawa height
LanglandsTunnell.CubicInduction.flatSection_mem_principalSeries2_and_iwasawaHeight_mul_eq1 below · depth 23 - Integrability of Jacquet's integrand in the dominant range
LanglandsTunnell.CubicInduction.integrable_apply_antidiagonal_mul_unipotentGL2_mul_addChar_of_mem_principalSeries21 below · depth 23 - Unfolded dual and primal (3,2) local integrals agree
LanglandsTunnell.CubicInduction.integral_transposeInvN_mul_integral_integral_diagUnits2_eq_integral_upperUnipotent2_mul_of_mem_principalSeries23 below · depth 23 - Unitary principal series for GL₂(ℚₚ): every non-zero vector is cyclic
LanglandsTunnell.CubicInduction.mem_span_range_translate_of_mem_principalSeries2_of_ne_zero_of_norm_eq_one31 below · depth 23 - Primal–dual middle datum comparison: a γ-factor identity
LanglandsTunnell.CubicInduction.middleDatum_compare_of_primalMiddleDatum_of_dualMiddleDatum_of_ne_zero10 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 - Unfolding the GL₃timesGL₂ local integral at a principal-series section
LanglandsTunnell.RankinSelberg.exists_pos_forall_rsLocalIntegral_iotaGL_jacquetIntegral_eq_mul_integral_localZeta316 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 - Local GL₃× GL₂ cleared functional equation from torus equations
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral_clearedFE_prod_of_jacquetWhittaker3_of_forall_torusZeta_fe_core287 below · depth 23 - Primal transport of the local GL₃timesGL₁ functional equation
LanglandsTunnell.RankinSelberg.integral_principalSeries2_mul_whittaker_iotaGL_diagUnits2_longWeyl3_eq_mul_of_forall_integral_localZeta31_eq_of_torusShell25 below · depth 23 - Dual transport of the GL₃timesGL₁ functional equation
LanglandsTunnell.RankinSelberg.mul_integral_transposeInvN_mul_whittaker_iotaGL_diagUnits2_longWeyl3_eq_of_forall_integral_localZeta31_dualWhittakerFn3_eq_of_torusShell23 below · depth 23 - Dual section in the principal series and its Jacquet integral
LanglandsTunnell.CubicInduction.dualSection_mem_principalSeries2_and_jacquetIntegral_eq0 below · depth 24 - Unipotent-fixed stable subspace of a unitary principal series vanishes
LanglandsTunnell.CubicInduction.eq_bot_of_stable_of_forall_principalSeries2Rep_upperUnipotent2_eq_of_norm_eq_one0 below · depth 24 - Unipotent-cotrivial stable subspace of a principal series is everything
LanglandsTunnell.CubicInduction.eq_top_of_stable_of_forall_principalSeries2Rep_upperUnipotent2_sub_mem_of_norm_eq_one12 below · depth 24 - Non-vanishing Jacquet integral on the GL₂ principal series
LanglandsTunnell.CubicInduction.exists_mem_principalSeries2_integral_antidiagonal_mul_unipotentGL2_mul_addChar_ne_zero0 below · depth 24 - Spherical vector in an unramified principal series of GL₂
LanglandsTunnell.CubicInduction.exists_spherical_mem_principalSeries2_of_unramified0 below · depth 24 - Jacquet integral of the spherical vector: Casselman–Shalika formula for GL₂
LanglandsTunnell.CubicInduction.jacquetIntegral_spherical_laws_of_unramified_of_norm_lt8 below · depth 24 - No twisted Whittaker functionals forces trivial unipotent action
LanglandsTunnell.CubicInduction.principalSeries2Rep_upperUnipotent2_eq_self_of_forall_whittaker_functional_eq_zero2 below · depth 24 - Unipotent radical acts trivially modulo a translation-stable subspace
LanglandsTunnell.CubicInduction.principalSeries2Rep_upperUnipotent2_sub_mem_of_forall_whittaker_functional_eq_zero2 below · depth 24 - Whittaker dichotomy for a stable subspace of I(θ)
LanglandsTunnell.CubicInduction.whittaker_functional_eq_zero_or_eq_zero_of_forall_mem_eq_zero_of_stable2 below · depth 24 - Cleared local GL₃× GL₂ integrals along a flat twist family
LanglandsTunnell.RankinSelberg.exists_forall_lt_rsLocalIntegral_jacquetWhittaker3_twistFamily_mul_centralTate_eq_cpow_mul_eval144 below · depth 24 - Jacquet–Shalika test vectors with non-vanishing unit-shell pairing
LanglandsTunnell.RankinSelberg.exists_mem_span_schwartzBruhat_fourier_unitShell_pairing_ne_zero_of_deepTwist_of_conductor_le40 below · depth 24 - Dual Rankin–Selberg integral of a smoothed GL₃ bump vector
LanglandsTunnell.RankinSelberg.exists_pos_forall_rsLocalIntegral_dual_longWeyl3_smoothedBump_eq_mul_setIntegral_unitShell12 below · depth 24 - Cleared GL₃× GL₂ functional equation in the positive chamber
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral_clearedFE_prod_of_jacquetWhittaker3_of_forall_torusZeta_fe_core_of_chamber270 below · depth 24 - Integrability of the unfolded Rankin–Selberg integrand in Bruhat coordinates
LanglandsTunnell.RankinSelberg.integrable_principalSeries2_mul_whittaker_iotaGL_diagUnitGL2_mul_lowerUnipotent21_of_integrable_whittaker_iotaGL_mul_principalSeries24 below · depth 24 - Equal smoothed Whittaker integrals along ι(GL₂)w₃ at level K₁(p^f)
LanglandsTunnell.RankinSelberg.integral_integral_iotaGL_mul_longWeyl3_mul_upperUnipotent3_eq_of_congruenceK1_of_centralChar_of_iotaGL_bump1 below · depth 24 - Unipotent smoothing of a K₁(p^f)-invariant function on GL₃
LanglandsTunnell.RankinSelberg.integral_integral_upperUnipotent3_translate_mem_gl3CyclicSubspace_of_congruenceK1_invariant0 below · depth 24 - Haar volumes of valuation balls and local Gauss-type integrals over ℚᵥ
LanglandsTunnell.TateLocal.addHaar_ball_eq_and_setIntegral_psiLocal_inv_mul_rat8 below · depth 24 - Self-duality of ℚₚ: every smooth non-trivial character is a dilate of ψₚ
LanglandsTunnell.TateLocal.exists_forall_eq_psiLocal_mul_of_ne_one_rat10 below · depth 24 - Vanishing of χ∘det-equivariant functionals on a principal series
LanglandsTunnell.CubicInduction.eq_zero_of_forall_apply_principalSeries2Rep_eq_det_mul_of_norm_eq_one6 below · depth 25 - Smoothness of principal series vectors for GL₂(ℚₚ)
LanglandsTunnell.CubicInduction.exists_isOpen_forall_mul_eq_of_mem_principalSeries20 below · depth 25 - Det-equivariant functional on a proper stable subspace
LanglandsTunnell.CubicInduction.exists_ne_zero_forall_apply_principalSeries2Rep_eq_det_mul_of_ne_top_of_forall_sub_mem4 below · depth 25 - Determinant-one elements act trivially modulo a unipotent-trivial subspace
LanglandsTunnell.CubicInduction.principalSeries2Rep_sub_mem_of_det_eq_one_of_forall_upperUnipotent2_sub_mem0 below · depth 25 - Kirillov bump in a twisted Whittaker translate span
LanglandsTunnell.RankinSelberg.exists_mem_span_twist_det_kirillov_eq_indicator_shell_of_localLevelOne8 below · depth 25 - Rationality of the dual GL₂× GL₂ Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral22_dual_mul_one_sub_eq_cpow_mul_eval_of_principalSeries2_of_forall_torusZeta_polynomial40 below · depth 25 - Rationality of the local GL₂timesGL₂ Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral22_mul_one_sub_eq_cpow_mul_eval_of_principalSeries2_of_forall_torusZeta_polynomial39 below · depth 25 - Unfolded GL₃× GL₂ Rankin–Selberg integrals, primal and dual
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral_jacquetWhittaker3_iotaGL_eq_sum_and_dual_eq_mul_sum_of_chamber_ed2111 below · depth 25 - Cleared local GL₃× GL₂ Rankin–Selberg integrals in a chamber
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral_jacquetWhittaker3_mul_centralTate_eq_cpow_mul_eval_and_dual_of_chamber141 below · depth 25 - Whittaker functions agreeing on ι(GL₂) agree on ι(GL₂)N₃Z₃K₁
LanglandsTunnell.RankinSelberg.forall_apply_iotaGL_mul_upperUnipotent3_mul_scalar_mul_eq_of_forall_apply_iotaGL_eq0 below · depth 25 - Godement–Jacquet zeta integrals for GL₂: cleared functional equation
LanglandsTunnell.RankinSelberg.forall_godementZeta2_clearedFE_of_forall_torusZeta_fe167 below · depth 25 - Cleared GL₂× GL₂ local functional equation: principal series case
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral22_schwartz_clearedFE_of_principalSeries2_of_forall_torusZeta_fe_ed2219 below · depth 25 - Schwartz–Bruhat cut-off kernels with prescribed local Fourier transforms
LanglandsTunnell.RankinSelberg.isSchwartzBruhat_and_tateFourier_shellKernels_of_conductor_le15 below · depth 25 - Local dual Rankin–Selberg integrand of a smoothed bump vector
LanglandsTunnell.RankinSelberg.rsIntegrand_dual_longWeyl3_smoothedBump_invariant_support_bound_and_bigCell_eq3 below · depth 25 - Non-vanishing of a unit-shell Whittaker–Fourier pairing
LanglandsTunnell.RankinSelberg.setIntegral_unitShell_pairing_ne_zero_of_kirillov_shell_of_deepTwist_of_conductor_le34 below · depth 25 - Gauge bound for an admissible local Whittaker function on the torus
AutomorphicForm.WhittakerModel.exists_norm_diagUnits2_mul_le_and_eq_zero_of_admissible_of_centralChar4 below · depth 26 - Contragredient involution maps I(μ₀,μ₁) to I(μ₁⁻¹,μ₀⁻¹)
LanglandsTunnell.CubicInduction.conj_transposeInvN_mem_principalSeries20 below · depth 26 - Principal-series vectors vanishing at 1 and on the big cell
LanglandsTunnell.CubicInduction.eq_zero_of_apply_one_eq_zero_of_forall_apply_antidiagonal2_mul_upperUnipotent2_eq_zero0 below · depth 26 - Big-cell vectors in a principal series of GL₂(ℚₚ)
LanglandsTunnell.CubicInduction.exists_principalSeries2_apply_one_eq_zero_apply_antidiagonal2_mul_upperUnipotent2_eq_indicator0 below · depth 26 - Flip by diag(1,-1) in the local Godement integral
LanglandsTunnell.CubicInduction.godementDock_diagFlip_eq4 below · depth 26 - Godement–Whittaker function of a pure tensor at ι(g)
LanglandsTunnell.CubicInduction.godementWhittaker3_iotaGL_eq_of_pureTensor0 below · depth 26 - Integrability of the Godement integrand against a GL₂ Jacquet integral
LanglandsTunnell.CubicInduction.integrable_rowFourier23_jacquet_godementIntegrand_of_principalSeries214 below · depth 26 - Dual Jacquet integral of a principal-series vector
LanglandsTunnell.CubicInduction.integral_psiLocal_mul_transposeInvN_eq_mul_integral_psiLocal_mul_dual0 below · depth 26 - Smoothness and Whittaker laws of a GL₂ Jacquet integral
LanglandsTunnell.CubicInduction.jacquetIntegral_principalSeries2_smooth_law_central_flip1 below · depth 26 - Godement-section realisation of the GL₃ Jacquet–Whittaker function
LanglandsTunnell.CubicInduction.jacquetWhittaker3_diagonal3_mul_eq_mul_godementWhittaker3_of_chamber27 below · depth 26 - Fourier transform of a pure tensor on M_{2× 3}
LanglandsTunnell.CubicInduction.matFourier23_leftBlock_mul_lastCol_mul_const0 below · depth 26 - Big-cell ball vectors span the kernel of evaluation at 1
LanglandsTunnell.CubicInduction.mem_span_of_apply_one_eq_zero_of_forall_apply_antidiagonal2_mul_upperUnipotent2_eq_indicator1 below · depth 26 - Twisted contragredient of a Whittaker vector is again Whittaker
LanglandsTunnell.RankinSelberg.dualPartner_block_of_admissible2 below · depth 26 - Uniform radial profile of a Schwartz–Bruhat function on bottom rows
LanglandsTunnell.RankinSelberg.exists_forall_apply_row_localLevelOne_eq_zero_and_eq_apply_zero_of_isLocallyConstant_of_hasCompactSupport0 below · depth 26 - Convergence of the dual GL₂× GL₂ Rankin–Selberg integrand
LanglandsTunnell.RankinSelberg.exists_forall_integrable_dual_rsIntegrand22_withDensity_of_admissible_of_chamber33 below · depth 26 - Absolute convergence of the unfolded local Godement integrand
LanglandsTunnell.RankinSelberg.exists_forall_integrable_godementUnfold_of_principalSeries2_of_admissible_ed236 below · depth 26 - Integrability of the folded local Rankin–Selberg integrand in the chamber
LanglandsTunnell.RankinSelberg.exists_forall_integrable_jacquetIntegral_mul_whittaker_mul_row_mul_cpow_withDensity_of_principalSeries2_of_chamber28 below · depth 26 - Vanishing of deep dual torus shells over K₀
LanglandsTunnell.RankinSelberg.exists_forall_le_setIntegral_localLevelOne_dualJacquet_mul_partner_mul_eq_zero_of_dualTorusZeta_polynomial12 below · depth 26 - Rationality of the local (2,2) Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.exists_rsLocalIntegral22_mul_one_sub_eq_cpow_mul_eval_of_principalSeries2_of_forall_torusZeta_polynomial_core38 below · depth 26 - Open compact subgroup adapted to φ₁ and χ
LanglandsTunnell.RankinSelberg.exists_subgroup_isOpen_isCompact_forall_apply_mul_eq_and_det_eq_one_and_transposeInv_mem0 below · depth 26 - Half-plane integrability of local Godement–Jacquet integrals on GL₂
LanglandsTunnell.RankinSelberg.forall_exists_integrable_godementZeta2_coefficient36 below · depth 26 - Godement–Jacquet zeta integrals of GL₂ matrix coefficients
LanglandsTunnell.RankinSelberg.forall_exists_laurent_godementZeta2_coefficient_of_forall_torusZeta_fe47 below · depth 26 - Local GL₂× GL₂ functional equation for Laurent numerators
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral22_schwartz_centralCleared_laurentFE_of_principalSeries2_of_forall_torusZeta_fe206 below · depth 26 - Integrability of the local Rankin–Selberg integrand from its unfolding
LanglandsTunnell.RankinSelberg.integrable_rsIntegrand_godementSlot_of_integrable_unfold9 below · depth 26 - Unfolding of a Godement-section Rankin–Selberg local integral
LanglandsTunnell.RankinSelberg.rsLocalIntegral_godementWhittaker_iotaGL_eq_sum_rsLocalIntegral_mul_godementZeta9 below · depth 26 - Twisted contragredient transport of a separated family
LanglandsTunnell.RankinSelberg.setIntegral_translate_transposeTwist_eq_mul_sum_of_forall_setIntegral_translate_eq2 below · depth 26 - Finiteness of |det|^t over norm balls in GL₂(ℚₚ)
AutomorphicForm.lintegral_indicator_norm_le_mul_norm_det_rpow_lt_top22 below · depth 27 - Big-cell GL₃ section as a GL₂ Godement integral
LanglandsTunnell.CubicInduction.cellSectionOf_antidiagonal3_mul_mul_eq_integral_godementDatum4 below · depth 27 - Finite pure-tensor decomposition of the local Godement datum
LanglandsTunnell.CubicInduction.exists_finset_pureTensor_godementDatum4 below · depth 27 - Godement slot vectors: principal series membership and support
LanglandsTunnell.CubicInduction.godementDatum_mem_principalSeries2_and_support2 below · depth 27 - Jacquet unfolding of a Godement section on GL₃
LanglandsTunnell.CubicInduction.integral_godementSection_upperUnipotent3_eq_godementWhittaker3_of_continuous4 below · depth 27 - Jacquet–Whittaker function at diag(1,-1,1)Y as a ψ-integral
LanglandsTunnell.CubicInduction.jacquetWhittaker3_diagonal3_mul_eq_mul_integral_psiLocal_cellSectionOf15 below · depth 27 - Measurability of the unfolded Godement double integrand
LanglandsTunnell.RankinSelberg.aestronglyMeasurable_godementUnfold_integrand3 below · depth 27 - Half-plane integrability of the local GL₂timesGL₂ integrand
LanglandsTunnell.RankinSelberg.exists_forall_integrable_jacquetIntegral_mul_whittaker_mul_row_withDensity_of_admissible_of_chamber25 below · depth 27 - Two-exponent asymptotics of chamber Jacquet integrals on small torus
LanglandsTunnell.RankinSelberg.exists_forall_jacquetIntegral_diagOne_mul_eq_sqrt_modulus_mul_add_of_mem_principalSeries2_of_chamber6 below · depth 27 - Inner bound for the local Rankin–Selberg N₂backslash GL₂ integral
LanglandsTunnell.RankinSelberg.exists_forall_lintegral_enorm_jacquetIntegral_mul_whittaker_mul_translate_mul_row_le_of_admissible_of_chamber23 below · depth 27 - Gauge bound and far-out vanishing for a GL₂ Jacquet integral
LanglandsTunnell.RankinSelberg.exists_forall_norm_jacquetIntegral_principalSeries2_diagUnits2_mul_le_and_eq_zero_of_chamber8 below · depth 27 - Torus-shell series of Jacquet and Whittaker integrals sums to q^{ms}P(q^{-s})
LanglandsTunnell.RankinSelberg.exists_hasSum_torusShells_jacquetIntegral_mul_whittaker_mul_row_eq_cpow_mul_eval_of_forall_torusZeta_polynomial_ed217 below · depth 27 - Iwasawa integration formula for Haar measure on GL₂(ℚₚ)
LanglandsTunnell.RankinSelberg.exists_pos_forall_lintegral_eq_mul_lintegral_prod_lintegral_unipotent_diagUnits220 below · depth 27 - Centre-cleared local GL₂× GL₂ functional equation, principal-series branch
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral22_schwartz_centralCleared_laurentFE_of_principalSeries2_of_forall_torusZeta_fe_of_borelEigenfunctional187 below · depth 27 - Centre-cleared local functional equation for GL₂× GL₂: cuspidal branch
LanglandsTunnell.RankinSelberg.forall_rsLocalIntegral22_schwartz_centralCleared_laurentFE_of_principalSeries2_of_forall_torusZeta_fe_of_cuspidal196 below · depth 27 - Torus-shell expansion of a local Rankin–Selberg integral
LanglandsTunnell.RankinSelberg.hasSum_torusShells_rsLocalIntegral22_jacquetIntegral_schwartz_of_integrable9 below · depth 27 - Propagating a Whittaker gauge from the level-one subgroup to GL₂
AutomorphicForm.WhittakerModel.norm_diagUnits2_mul_le_of_forall_mem_localLevelOne_norm_diagUnits2_mul_le0 below · depth 28 - Principal series embedding when the Jacquet module is non-zero
LanglandsTunnell.CubicInduction.exists_linearMap_principalSeries2_of_jacquet_ne_top1 below · depth 28 - Symplectic Fourier swap for Godement–Whittaker integrals on GL₂(ℚₚ)
LanglandsTunnell.CubicInduction.godementWhittaker2_symplecticFourier_swap_eq_godementWhittaker2_of_weight17 below · depth 28 - Jacquet integral of a Godement section on GL₂(ℚₚ)
LanglandsTunnell.CubicInduction.integral_godementSection_antidiagonal_mul_unipotentGL2_mul_psiLocal_eq_godementWhittaker2_of_chamber3 below · depth 28 - Product integrability of a local Rankin–Selberg kernel in the chamber
LanglandsTunnell.RankinSelberg.exists_forall_integrable_prod_row_mul_row_mul_cpow_mul_whittaker_diagOne_mul_cpow_of_admissible_of_chamber35 below · depth 28 - Product integrability of the local Rankin–Selberg kernel in a chamber
LanglandsTunnell.RankinSelberg.exists_forall_integrable_prod_row_mul_row_mul_cpow_mul_whittaker_diagOne_mul_cpow_of_chamber35 below · depth 28 - Vanishing of deep torus shells against a Whittaker vector
LanglandsTunnell.RankinSelberg.exists_forall_le_setIntegral_localLevelOne_mul_diagZ_mul_eq_zero_of_sqrt_modulus_tail_of_forall_torusZeta_polynomial7 below · depth 28 - Rationality and cleared functional equation for local GL₂ zeta integrals
LanglandsTunnell.RankinSelberg.exists_gamma_forall_rational_godementZeta2_principalSeries2_and_clearedFE66 below · depth 28 - Principal series vectors as Godement sections on primitive vectors
LanglandsTunnell.RankinSelberg.exists_godementDatum_primitive_of_mem_principalSeries23 below · depth 28 - Constant η-twisted local torus zeta integrals for Whittaker models
LanglandsTunnell.RankinSelberg.exists_mem_span_forall_torusZeta_twist_eq_const_and_dual_of_irreducible_admissible6 below · depth 28 - Refolding the dual local Rankin–Selberg integral along N
LanglandsTunnell.RankinSelberg.exists_pos_forall_integral_dual_jacquetIntegral_godementSection_mul_row_eq_mul_integral_rot_row_mul_row_mul_dualTorusZeta4 below · depth 28
… and 15 more statements (search for the module name to find them).