Definitions/Def_AutomorphicForm_ArchDerivCasimir.lean
Archimedean flows, invariant derivatives and Casimir at real places
Two groups of definitions are made. First, for an archimedean parameter in the sense of LanglandsTunnell.RealArchParam, laplaceEigenvalue assigns a complex number: 1/4-((u_1-u_2)/2)^2 to a principal parameter principal u₁ a₁ u₂ a₂, and (1-k^2)/4 to a discrete parameter discrete u k; the two accompanying lemmas record these values.
Second, let F be a number field and w a real infinite place, with the isomorphism F_w\cong\mathbb{R} given by ringEquivRealOfIsReal. Then archRealGLAt hw is the monoid homomorphism from \mathrm{GL}_2(\mathbb{R}) to AdelicGL2, obtained by transporting entries along \mathbb{R}\cong F_w and applying the inclusion of \mathrm{GL}_2(F_w) that is the identity at all other infinite places and at all finite places; archRealProjAt hw is the homomorphism in the reverse direction given by taking the infinite part, its component at w and transporting back, and it is a left inverse of archRealGLAt hw. The total map archRealLiftAt hw sends an array e:\mathrm{Fin}\,2\to\mathrm{Fin}\,2\to\mathbb{R} to archRealGLAt hw of the corresponding invertible matrix when \det e\ne 0, and to 1 otherwise; \{e:\det e\ne 0\} is open. A function \varphi on AdelicGL2 satisfies IsArchSmoothAt hw when, for every g, the map sending e to \varphi(g\cdot x), where x is archRealLiftAt hw e, is C^\infty on that open set. The three-element type ArchDir indexes the directions H, E, F^-; splitTorusGL2 at t is \mathrm{diag}(e^t,e^{-t}) and lowerUnipotentGL2 at x is \begin{pmatrix}1&0\\x&1\end{pmatrix}, defined with their identity and one-parameter-group laws, and together with the upper unipotent unipotentGL2 they give archFlowMatrix, pushed to archFlowAt hw d t inside AdelicGL2; archDirMatrix gives the corresponding \mathfrak{sl}_2 generators \mathrm{diag}(1,-1), e_{12}, e_{21}, each being the derivative of its flow at t=0 entrywise. Then archDerivAt hw d φ sends g to \tfrac{d}{dt}\varphi(g\cdot a(t))|_{t=0}, where a(t) is archFlowAt hw d t, using Mathlib's deriv (hence 0 where the curve fails to be differentiable), and archCasimirAt hw sends \varphi to
-\bigl(\tfrac14 D_HD_H-\tfrac12 D_H+D_ED_{F^-}\bigr)\varphi .
The remaining lemmas record: vanishing of both operators on constants; stability of IsArchSmoothAt under sums, complex scalar multiples, negation, subtraction, under each archDerivAt and under archCasimirAt, and under left translation and under right translation by an element whose infinite part is trivial; additivity of archDerivAt and archCasimirAt for smooth arguments and homogeneity for arbitrary arguments; differentiability at 0 along each flow; commutation of archDerivAt and archCasimirAt with left translation and with right translation by elements of trivial infinite part; and that an element of AdelicGL2 is determined by its infinite and finite components.
Relation to Mathlib
Mathlib supplies the adele ring, general linear groups, deriv and ContDiffOn used here, but has no notion of smoothness along archimedean directions, invariant differentiation or a Casimir operator for functions on an adelic \mathrm{GL}_2; those are the project's own. The upper unipotent one-parameter subgroup unipotentGL2 is taken from another module of the project, while the split torus and lower unipotent subgroups are introduced here.
Where it is used
These operators supply the archimedean side of the definition of automorphic forms on \mathrm{GL}_2 over a number field: smoothness at a real place, and the Casimir eigenvalue condition, whose prescribed eigenvalue is the laplaceEigenvalue of the archimedean parameter. This is the setting in which the Langlands–Tunnell input to the modularity argument is formulated.
References
- D. Bump, Automorphic Forms and Representations, Cambridge Studies in Advanced Mathematics 55, Cambridge University Press, 1997
- S. Gelbart, Automorphic Forms on Adele Groups, Annals of Mathematics Studies 83, Princeton University Press, 1975
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 446 lines
- 59 declarations
- used in the statements of 159 theorems and imported by 179 proofs
- imports 4 definition modules
Source file: Definitions/Def_AutomorphicForm_ArchDerivCasimir.lean
Imports
Declarations
- def
LanglandsTunnell.RealArchParam.laplaceEigenvalue - theorem
LanglandsTunnell.RealArchParam.laplaceEigenvalue_principal - theorem
LanglandsTunnell.RealArchParam.laplaceEigenvalue_discrete - def
AutomorphicForm.archRealGLAt - def
AutomorphicForm.archRealLiftAt - theorem
AutomorphicForm.archRealLiftAt_of_det_ne_zero - theorem
AutomorphicForm.isOpen_setOf_det_ne_zero - def
AutomorphicForm.IsArchSmoothAt - theorem
AutomorphicForm.isArchSmoothAt_const - inductive
AutomorphicForm.ArchDir - def
AutomorphicForm.lowerUnipotentGL2 - theorem
AutomorphicForm.lowerUnipotentGL2_coe - theorem
AutomorphicForm.lowerUnipotentGL2_zero - theorem
AutomorphicForm.lowerUnipotentGL2_add - def
AutomorphicForm.splitTorusGL2 - theorem
AutomorphicForm.splitTorusGL2_coe - theorem
AutomorphicForm.splitTorusGL2_zero - theorem
AutomorphicForm.splitTorusGL2_add - def
AutomorphicForm.archFlowMatrix - theorem
AutomorphicForm.archFlowMatrix_zero - theorem
AutomorphicForm.archFlowMatrix_add - def
AutomorphicForm.archFlowAt - theorem
AutomorphicForm.archFlowAt_zero - theorem
AutomorphicForm.archFlowAt_add - def
AutomorphicForm.archDerivAt - def
AutomorphicForm.archCasimirAt - theorem
AutomorphicForm.archDerivAt_const - theorem
AutomorphicForm.archCasimirAt_const - def
AutomorphicForm.archDirMatrix - theorem
AutomorphicForm.hasDerivAt_archFlowMatrix_apply - theorem
AutomorphicForm.archRealLiftAt_mul_archRealGLAt - theorem
AutomorphicForm.contDiff_of_symm_mul_const - theorem
AutomorphicForm.hasDerivAt_of_symm_mul_archFlowMatrix - theorem
AutomorphicForm.of_symm_mul_archFlowMatrix_zero - theorem
AutomorphicForm.IsArchSmoothAt.archDerivAt - theorem
AutomorphicForm.archRealLiftAt_of_symm_one - theorem
AutomorphicForm.IsArchSmoothAt.differentiableAt_flow - theorem
AutomorphicForm.archDerivAt_add - theorem
AutomorphicForm.archDerivAt_smul - theorem
AutomorphicForm.archCasimirAt_add - theorem
AutomorphicForm.archCasimirAt_smul - theorem
AutomorphicForm.IsArchSmoothAt.add - theorem
AutomorphicForm.IsArchSmoothAt.smul - theorem
AutomorphicForm.IsArchSmoothAt.neg - theorem
AutomorphicForm.IsArchSmoothAt.sub - theorem
AutomorphicForm.eq_of_glArch_eq_of_glFin_eq - theorem
AutomorphicForm.archRealGLAt_mul_comm_of_glArch_eq_one - theorem
AutomorphicForm.archRealLiftAt_mul_comm_of_glArch_eq_one - theorem
AutomorphicForm.archFlowAt_mul_comm_of_glArch_eq_one - theorem
AutomorphicForm.IsArchSmoothAt.comp_mul_right - theorem
AutomorphicForm.archDerivAt_comp_mul_right - theorem
AutomorphicForm.archCasimirAt_comp_mul_right - theorem
AutomorphicForm.archRealGLAt_glEquivOfRingEquiv - def
AutomorphicForm.archRealProjAt - theorem
AutomorphicForm.archRealProjAt_archRealGLAt - theorem
AutomorphicForm.IsArchSmoothAt.archCasimirAt - theorem
AutomorphicForm.IsArchSmoothAt.comp_mul_left - theorem
AutomorphicForm.archDerivAt_comp_mul_left - theorem
AutomorphicForm.archCasimirAt_comp_mul_left
Source
import Definitions.Def_AutomorphicForm_ArchType import Definitions.Def_AutomorphicForm_ArchWeightCharTransport import Definitions.Def_LanglandsTunnell_ArchParam import Definitions.Def_AutomorphicForm_ConstantTerm set_option autoImplicit false noncomputable section namespace LanglandsTunnell.RealArchParam def laplaceEigenvalue : RealArchParam → ℂ | principal u₁ _ u₂ _ => 1 / 4 - ((u₁ - u₂) / 2) ^ 2 | discrete _ k _ => (1 - (k : ℂ) ^ 2) / 4 theorem laplaceEigenvalue_principal (u₁ : ℂ) (a₁ : ZMod 2) (u₂ : ℂ) (a₂ : ZMod 2) : laplaceEigenvalue (principal u₁ a₁ u₂ a₂) = 1 / 4 - ((u₁ - u₂) / 2) ^ 2 := rfl theorem laplaceEigenvalue_discrete (u : ℂ) (k : ℕ) (hk : 1 ≤ k) : laplaceEigenvalue (discrete u k hk) = (1 - (k : ℂ) ^ 2) / 4 := rfl end LanglandsTunnell.RealArchParam namespace AutomorphicForm open NumberField NumberField.InfinitePlace.Completion Matrix variable (F : Type) [Field F] [NumberField F] section RealPlaceTransport variable {F} def archRealGLAt {w : InfinitePlace F} (hw : w.IsReal) : GL (Fin 2) ℝ →* AdelicGL2 (𝓞 F) F := (adelicArchGLInclAt F w).comp (glEquivOfRingEquiv (ringEquivRealOfIsReal hw).symm).toMonoidHom def archRealLiftAt {w : InfinitePlace F} (hw : w.IsReal) (e : Fin 2 → Fin 2 → ℝ) : AdelicGL2 (𝓞 F) F := if h : (Matrix.of e).det ≠ 0 then archRealGLAt hw (GeneralLinearGroup.mkOfDetNeZero (Matrix.of e) h) else 1 theorem archRealLiftAt_of_det_ne_zero {w : InfinitePlace F} (hw : w.IsReal) {e : Fin 2 → Fin 2 → ℝ} (h : (Matrix.of e).det ≠ 0) : archRealLiftAt hw e = archRealGLAt hw (GeneralLinearGroup.mkOfDetNeZero (Matrix.of e) h) := dif_pos h theorem isOpen_setOf_det_ne_zero : IsOpen {e : Fin 2 → Fin 2 → ℝ | (Matrix.of e).det ≠ 0} := (isClosed_singleton.preimage (continuous_id.matrix_det)).isOpen_compl def IsArchSmoothAt {w : InfinitePlace F} (hw : w.IsReal) (φ : AdelicGL2 (𝓞 F) F → ℂ) : Prop := ∀ g : AdelicGL2 (𝓞 F) F, ContDiffOn ℝ (⊤ : ℕ∞) (fun e : Fin 2 → Fin 2 → ℝ => φ (g * archRealLiftAt hw e)) {e | (Matrix.of e).det ≠ 0} theorem isArchSmoothAt_const {w : InfinitePlace F} (hw : w.IsReal) (c : ℂ) : IsArchSmoothAt hw (fun _ => c) := fun _ => contDiffOn_const end RealPlaceTransport section Flows variable {F} inductive ArchDir where | H : ArchDir | E : ArchDir | Fm : ArchDir def lowerUnipotentGL2 {R : Type*} [CommRing R] (x : R) : GL (Fin 2) R where val := !![1, 0; x, 1] inv := !![1, 0; -x, 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] theorem lowerUnipotentGL2_coe {R : Type*} [CommRing R] (x : R) : (lowerUnipotentGL2 x : Matrix (Fin 2) (Fin 2) R) = !![1, 0; x, 1] := rfl theorem lowerUnipotentGL2_zero {R : Type*} [CommRing R] : lowerUnipotentGL2 (0 : R) = 1 := by ext i j; fin_cases i <;> fin_cases j <;> simp [lowerUnipotentGL2] theorem lowerUnipotentGL2_add {R : Type*} [CommRing R] (x y : R) : lowerUnipotentGL2 (x + y) = lowerUnipotentGL2 x * lowerUnipotentGL2 y := by ext i j; fin_cases i <;> fin_cases j <;> simp [lowerUnipotentGL2, Matrix.mul_apply, Fin.sum_univ_two, add_comm] def splitTorusGL2 (t : ℝ) : GL (Fin 2) ℝ where val := !![Real.exp t, 0; 0, Real.exp (-t)] inv := !![Real.exp (-t), 0; 0, Real.exp t] val_inv := by ext i j; fin_cases i <;> fin_cases j <;> simp [Matrix.mul_apply, Fin.sum_univ_two, ← Real.exp_add] inv_val := by ext i j; fin_cases i <;> fin_cases j <;> simp [Matrix.mul_apply, Fin.sum_univ_two, ← Real.exp_add] theorem splitTorusGL2_coe (t : ℝ) : (splitTorusGL2 t : Matrix (Fin 2) (Fin 2) ℝ) = !![Real.exp t, 0; 0, Real.exp (-t)] := rfl theorem splitTorusGL2_zero : splitTorusGL2 0 = 1 := by ext i j; fin_cases i <;> fin_cases j <;> simp [splitTorusGL2] theorem splitTorusGL2_add (s t : ℝ) : splitTorusGL2 (s + t) = splitTorusGL2 s * splitTorusGL2 t := by ext i j; fin_cases i <;> fin_cases j <;> simp [splitTorusGL2, Matrix.mul_apply, Fin.sum_univ_two, Real.exp_add]; ring def archFlowMatrix : ArchDir → ℝ → GL (Fin 2) ℝ | .H, t => splitTorusGL2 t | .E, t => unipotentGL2 t | .Fm, t => lowerUnipotentGL2 t theorem archFlowMatrix_zero (d : ArchDir) : archFlowMatrix d 0 = 1 := by cases d · exact splitTorusGL2_zero · exact unipotentGL2_zero · exact lowerUnipotentGL2_zero theorem archFlowMatrix_add (d : ArchDir) (s t : ℝ) : archFlowMatrix d (s + t) = archFlowMatrix d s * archFlowMatrix d t := by cases d · exact splitTorusGL2_add s t · exact unipotentGL2_add s t · exact lowerUnipotentGL2_add s t def archFlowAt {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (t : ℝ) : AdelicGL2 (𝓞 F) F := archRealGLAt hw (archFlowMatrix d t) theorem archFlowAt_zero {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) : archFlowAt hw d 0 = 1 := by rw [archFlowAt, archFlowMatrix_zero, map_one] theorem archFlowAt_add {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (s t : ℝ) : archFlowAt hw d (s + t) = archFlowAt hw d s * archFlowAt hw d t := by rw [archFlowAt, archFlowMatrix_add, map_mul]; rfl def archDerivAt {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (φ : AdelicGL2 (𝓞 F) F → ℂ) : AdelicGL2 (𝓞 F) F → ℂ := fun g => deriv (fun t : ℝ => φ (g * archFlowAt hw d t)) 0 def archCasimirAt {w : InfinitePlace F} (hw : w.IsReal) (φ : AdelicGL2 (𝓞 F) F → ℂ) : AdelicGL2 (𝓞 F) F → ℂ := -((1 / 4 : ℂ) • archDerivAt hw .H (archDerivAt hw .H φ) - (1 / 2 : ℂ) • archDerivAt hw .H φ + archDerivAt hw .E (archDerivAt hw .Fm φ)) theorem archDerivAt_const {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (c : ℂ) : archDerivAt hw d (fun _ => c) = fun _ => 0 := by funext g simp [archDerivAt] theorem archCasimirAt_const {w : InfinitePlace F} (hw : w.IsReal) (c : ℂ) : archCasimirAt hw (fun _ => c) = fun _ => 0 := by funext g simp [archCasimirAt, archDerivAt_const] def archDirMatrix : ArchDir → Matrix (Fin 2) (Fin 2) ℝ | .H => !![1, 0; 0, -1] | .E => !![0, 1; 0, 0] | .Fm => !![0, 0; 1, 0] theorem hasDerivAt_archFlowMatrix_apply (d : ArchDir) (i j : Fin 2) : HasDerivAt (fun t : ℝ => (archFlowMatrix d t : Matrix (Fin 2) (Fin 2) ℝ) i j) (archDirMatrix d i j) 0 := by cases d <;> fin_cases i <;> fin_cases j <;> simp only [archFlowMatrix, archDirMatrix, splitTorusGL2_coe, unipotentGL2_coe, lowerUnipotentGL2_coe, Matrix.of_apply, Matrix.cons_val', Matrix.cons_val_zero, Matrix.cons_val_one, Matrix.empty_val', Matrix.cons_val_fin_one, Fin.zero_eta, Fin.mk_one, Fin.isValue] <;> first | exact hasDerivAt_const _ _ | exact hasDerivAt_id _ | simpa using Real.hasDerivAt_exp 0 | exact ((Real.hasDerivAt_exp (-(0 : ℝ))).comp (0 : ℝ) (hasDerivAt_neg (0 : ℝ))).congr_deriv (by simp) theorem archRealLiftAt_mul_archRealGLAt {w : InfinitePlace F} (hw : w.IsReal) {e : Fin 2 → Fin 2 → ℝ} (h : (Matrix.of e).det ≠ 0) (m : GL (Fin 2) ℝ) : archRealLiftAt hw e * archRealGLAt hw m = archRealLiftAt hw (Matrix.of.symm (Matrix.of e * (m : Matrix (Fin 2) (Fin 2) ℝ))) := by have hm : ((m : Matrix (Fin 2) (Fin 2) ℝ)).det ≠ 0 := ((Matrix.isUnit_iff_isUnit_det _).1 m.isUnit).ne_zero have h' : (Matrix.of (Matrix.of.symm (Matrix.of e * (m : Matrix (Fin 2) (Fin 2) ℝ)))).det ≠ 0 := by rw [Equiv.apply_symm_apply, Matrix.det_mul] exact mul_ne_zero h hm rw [archRealLiftAt_of_det_ne_zero hw h, archRealLiftAt_of_det_ne_zero hw h', ← map_mul] congr 1 ext i j simp [GeneralLinearGroup.mkOfDetNeZero] theorem contDiff_of_symm_mul_const (A : Matrix (Fin 2) (Fin 2) ℝ) : ContDiff ℝ (⊤ : ℕ∞) fun e : Fin 2 → Fin 2 → ℝ => (Matrix.of.symm (Matrix.of e * A) : Fin 2 → Fin 2 → ℝ) := by refine contDiff_pi.2 fun i => contDiff_pi.2 fun j => ?_ simp only [Matrix.of_symm_apply, Matrix.mul_apply, Matrix.of_apply] exact ContDiff.sum fun k _ => ((contDiff_apply ℝ ℝ k).comp (contDiff_apply ℝ (Fin 2 → ℝ) i)).mul contDiff_const theorem hasDerivAt_of_symm_mul_archFlowMatrix (e : Fin 2 → Fin 2 → ℝ) (d : ArchDir) : HasDerivAt (fun t : ℝ => (Matrix.of.symm (Matrix.of e * (archFlowMatrix d t : Matrix (Fin 2) (Fin 2) ℝ)) : Fin 2 → Fin 2 → ℝ)) (Matrix.of.symm (Matrix.of e * archDirMatrix d)) 0 := by rw [hasDerivAt_pi] intro i rw [hasDerivAt_pi] intro j simp only [Matrix.of_symm_apply, Matrix.mul_apply, Matrix.of_apply] exact HasDerivAt.fun_sum fun k _ => (hasDerivAt_archFlowMatrix_apply d k j).const_mul (e i k) theorem of_symm_mul_archFlowMatrix_zero (e : Fin 2 → Fin 2 → ℝ) (d : ArchDir) : (Matrix.of.symm (Matrix.of e * (archFlowMatrix d 0 : Matrix (Fin 2) (Fin 2) ℝ)) : Fin 2 → Fin 2 → ℝ) = e := by rw [archFlowMatrix_zero, Units.val_one, mul_one, Equiv.symm_apply_apply] theorem IsArchSmoothAt.archDerivAt {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (d : ArchDir) : IsArchSmoothAt hw (archDerivAt hw d φ) := by intro g have hΦ := hφ g have hopen := isOpen_setOf_det_ne_zero refine contDiffOn_infty.2 fun n => ?_ refine ((hΦ.fderiv_of_isOpen hopen (by exact_mod_cast le_top)).clm_apply ((contDiff_of_symm_mul_const (archDirMatrix d)).contDiffOn.of_le (by exact_mod_cast le_top))).congr ?_ intro e he have hdiff : HasFDerivAt (fun e' => φ (g * archRealLiftAt hw e')) (fderiv ℝ (fun e' => φ (g * archRealLiftAt hw e')) e) (Matrix.of.symm (Matrix.of e * (archFlowMatrix d 0 : Matrix (Fin 2) (Fin 2) ℝ))) := by rw [of_symm_mul_archFlowMatrix_zero] exact ((hΦ.contDiffAt (hopen.mem_nhds he)).differentiableAt (by simp)).hasFDerivAt have hfun : (fun t : ℝ => φ (g * archRealLiftAt hw e * archFlowAt hw d t)) = fun t : ℝ => φ (g * archRealLiftAt hw (Matrix.of.symm (Matrix.of e * (archFlowMatrix d t : Matrix (Fin 2) (Fin 2) ℝ)))) := by funext t rw [archFlowAt, mul_assoc, archRealLiftAt_mul_archRealGLAt hw he] show deriv (fun t : ℝ => φ (g * archRealLiftAt hw e * archFlowAt hw d t)) 0 = _ rw [hfun] simpa only [Function.comp_def] using (hdiff.comp_hasDerivAt (0 : ℝ) (hasDerivAt_of_symm_mul_archFlowMatrix e d)).deriv theorem archRealLiftAt_of_symm_one {w : InfinitePlace F} (hw : w.IsReal) : archRealLiftAt hw (Matrix.of.symm (1 : Matrix (Fin 2) (Fin 2) ℝ)) = 1 := by have hdet : (Matrix.of (Matrix.of.symm (1 : Matrix (Fin 2) (Fin 2) ℝ))).det ≠ 0 := by rw [Equiv.apply_symm_apply, Matrix.det_one] exact one_ne_zero rw [archRealLiftAt_of_det_ne_zero hw hdet, ← map_one (archRealGLAt hw)] congr 1 ext i j simp [GeneralLinearGroup.mkOfDetNeZero] theorem IsArchSmoothAt.differentiableAt_flow {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (d : ArchDir) (g : AdelicGL2 (𝓞 F) F) : DifferentiableAt ℝ (fun t : ℝ => φ (g * archFlowAt hw d t)) 0 := by have hopen := isOpen_setOf_det_ne_zero have hdet : (Matrix.of (Matrix.of.symm (1 : Matrix (Fin 2) (Fin 2) ℝ))).det ≠ 0 := by rw [Equiv.apply_symm_apply, Matrix.det_one] exact one_ne_zero have hdiff : DifferentiableAt ℝ (fun e' => φ (g * archRealLiftAt hw e')) (Matrix.of.symm (Matrix.of (Matrix.of.symm (1 : Matrix (Fin 2) (Fin 2) ℝ)) * (archFlowMatrix d 0 : Matrix (Fin 2) (Fin 2) ℝ))) := by rw [of_symm_mul_archFlowMatrix_zero] exact ((hφ g).contDiffAt (hopen.mem_nhds hdet)).differentiableAt (by simp) have hfun : (fun t : ℝ => φ (g * archFlowAt hw d t)) = fun t : ℝ => φ (g * archRealLiftAt hw (Matrix.of.symm (Matrix.of (Matrix.of.symm (1 : Matrix (Fin 2) (Fin 2) ℝ)) * (archFlowMatrix d t : Matrix (Fin 2) (Fin 2) ℝ)))) := by funext t rw [← archRealLiftAt_mul_archRealGLAt hw hdet, archRealLiftAt_of_symm_one, one_mul, archFlowAt] rw [hfun] simpa only [Function.comp_def] using (hdiff.hasFDerivAt.comp_hasDerivAt (0 : ℝ) (hasDerivAt_of_symm_mul_archFlowMatrix _ d)).differentiableAt theorem archDerivAt_add {w : InfinitePlace F} {hw : w.IsReal} {φ ψ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (hψ : IsArchSmoothAt hw ψ) (d : ArchDir) : archDerivAt hw d (φ + ψ) = archDerivAt hw d φ + archDerivAt hw d ψ := by funext g show deriv (fun t : ℝ => (φ + ψ) (g * archFlowAt hw d t)) 0 = deriv (fun t : ℝ => φ (g * archFlowAt hw d t)) 0 + deriv (fun t : ℝ => ψ (g * archFlowAt hw d t)) 0 simp only [Pi.add_apply] exact deriv_fun_add (hφ.differentiableAt_flow d g) (hψ.differentiableAt_flow d g) theorem archDerivAt_smul {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (c : ℂ) (φ : AdelicGL2 (𝓞 F) F → ℂ) : archDerivAt hw d (c • φ) = c • archDerivAt hw d φ := by funext g show deriv (fun t : ℝ => (c • φ) (g * archFlowAt hw d t)) 0 = c • deriv (fun t : ℝ => φ (g * archFlowAt hw d t)) 0 simp only [Pi.smul_apply, smul_eq_mul] exact deriv_const_mul_field c theorem archCasimirAt_add {w : InfinitePlace F} {hw : w.IsReal} {φ ψ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (hψ : IsArchSmoothAt hw ψ) : archCasimirAt hw (φ + ψ) = archCasimirAt hw φ + archCasimirAt hw ψ := by simp only [archCasimirAt, archDerivAt_add hφ hψ, archDerivAt_add (hφ.archDerivAt .H) (hψ.archDerivAt .H), archDerivAt_add (hφ.archDerivAt .Fm) (hψ.archDerivAt .Fm)] funext g simp only [Pi.neg_apply, Pi.add_apply, Pi.sub_apply, Pi.smul_apply, smul_eq_mul] ring theorem archCasimirAt_smul {w : InfinitePlace F} (hw : w.IsReal) (c : ℂ) (φ : AdelicGL2 (𝓞 F) F → ℂ) : archCasimirAt hw (c • φ) = c • archCasimirAt hw φ := by simp only [archCasimirAt, archDerivAt_smul] funext g simp only [Pi.neg_apply, Pi.add_apply, Pi.sub_apply, Pi.smul_apply, smul_eq_mul] ring theorem IsArchSmoothAt.add {w : InfinitePlace F} {hw : w.IsReal} {φ ψ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (hψ : IsArchSmoothAt hw ψ) : IsArchSmoothAt hw (φ + ψ) := by intro g show ContDiffOn ℝ (⊤ : ℕ∞) (fun e => φ (g * archRealLiftAt hw e) + ψ (g * archRealLiftAt hw e)) _ exact (hφ g).add (hψ g) theorem IsArchSmoothAt.smul {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (c : ℂ) : IsArchSmoothAt hw (c • φ) := by intro g show ContDiffOn ℝ (⊤ : ℕ∞) (fun e => c * φ (g * archRealLiftAt hw e)) _ exact contDiffOn_const.mul (hφ g) theorem IsArchSmoothAt.neg {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) : IsArchSmoothAt hw (-φ) := by rw [← neg_one_smul ℂ φ] exact hφ.smul (-1) theorem IsArchSmoothAt.sub {w : InfinitePlace F} {hw : w.IsReal} {φ ψ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (hψ : IsArchSmoothAt hw ψ) : IsArchSmoothAt hw (φ - ψ) := by rw [sub_eq_add_neg] exact hφ.add hψ.neg theorem eq_of_glArch_eq_of_glFin_eq {x y : AdelicGL2 (𝓞 F) F} (h₁ : AdelicLevel.glArch (𝓞 F) F x = AdelicLevel.glArch (𝓞 F) F y) (h₂ : AdelicLevel.glFin (𝓞 F) F x = AdelicLevel.glFin (𝓞 F) F y) : x = y := by apply Units.ext apply Matrix.ext intro i j have h₁' := congrArg (fun m : GL (Fin 2) (InfiniteAdeleRing F) => (m : Matrix (Fin 2) (Fin 2) (InfiniteAdeleRing F)) i j) h₁ have h₂' := congrArg (fun m : GL (Fin 2) (IsDedekindDomain.FiniteAdeleRing (𝓞 F) F) => (m : Matrix (Fin 2) (Fin 2) (IsDedekindDomain.FiniteAdeleRing (𝓞 F) F)) i j) h₂ exact Prod.ext h₁' h₂' theorem archRealGLAt_mul_comm_of_glArch_eq_one {w : InfinitePlace F} (hw : w.IsReal) (m : GL (Fin 2) ℝ) {k : AdelicGL2 (𝓞 F) F} (hk : AdelicLevel.glArch (𝓞 F) F k = 1) : archRealGLAt hw m * k = k * archRealGLAt hw m := by have hfin : AdelicLevel.glFin (𝓞 F) F (archRealGLAt hw m) = 1 := glFin_adelicArchGLIncl F _ refine eq_of_glArch_eq_of_glFin_eq ?_ ?_ · rw [map_mul, map_mul, hk, mul_one, one_mul] · rw [map_mul, map_mul, hfin, mul_one, one_mul] theorem archRealLiftAt_mul_comm_of_glArch_eq_one {w : InfinitePlace F} (hw : w.IsReal) (e : Fin 2 → Fin 2 → ℝ) {k : AdelicGL2 (𝓞 F) F} (hk : AdelicLevel.glArch (𝓞 F) F k = 1) : archRealLiftAt hw e * k = k * archRealLiftAt hw e := by unfold archRealLiftAt split_ifs · exact archRealGLAt_mul_comm_of_glArch_eq_one hw _ hk · rw [one_mul, mul_one] theorem archFlowAt_mul_comm_of_glArch_eq_one {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (t : ℝ) {k : AdelicGL2 (𝓞 F) F} (hk : AdelicLevel.glArch (𝓞 F) F k = 1) : archFlowAt hw d t * k = k * archFlowAt hw d t := archRealGLAt_mul_comm_of_glArch_eq_one hw _ hk theorem IsArchSmoothAt.comp_mul_right {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) {k : AdelicGL2 (𝓞 F) F} (hk : AdelicLevel.glArch (𝓞 F) F k = 1) : IsArchSmoothAt hw fun g => φ (g * k) := by intro g show ContDiffOn ℝ (⊤ : ℕ∞) (fun e => φ (g * archRealLiftAt hw e * k)) _ have hfun : (fun e : Fin 2 → Fin 2 → ℝ => φ (g * archRealLiftAt hw e * k)) = fun e => φ (g * k * archRealLiftAt hw e) := by funext e rw [mul_assoc, archRealLiftAt_mul_comm_of_glArch_eq_one hw e hk, ← mul_assoc] rw [hfun] exact hφ (g * k) theorem archDerivAt_comp_mul_right {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (φ : AdelicGL2 (𝓞 F) F → ℂ) {k : AdelicGL2 (𝓞 F) F} (hk : AdelicLevel.glArch (𝓞 F) F k = 1) : archDerivAt hw d (fun g => φ (g * k)) = fun g => archDerivAt hw d φ (g * k) := by funext g show deriv (fun t : ℝ => φ (g * archFlowAt hw d t * k)) 0 = deriv (fun t : ℝ => φ (g * k * archFlowAt hw d t)) 0 congr 1 funext t rw [mul_assoc, archFlowAt_mul_comm_of_glArch_eq_one hw d t hk, ← mul_assoc] theorem archCasimirAt_comp_mul_right {w : InfinitePlace F} (hw : w.IsReal) (φ : AdelicGL2 (𝓞 F) F → ℂ) {k : AdelicGL2 (𝓞 F) F} (hk : AdelicLevel.glArch (𝓞 F) F k = 1) : archCasimirAt hw (fun g => φ (g * k)) = fun g => archCasimirAt hw φ (g * k) := by rw [archCasimirAt, archCasimirAt, archDerivAt_comp_mul_right hw .H φ hk, archDerivAt_comp_mul_right hw .H (archDerivAt hw .H φ) hk, archDerivAt_comp_mul_right hw .Fm φ hk, archDerivAt_comp_mul_right hw .E (archDerivAt hw .Fm φ) hk] funext g simp only [Pi.neg_apply, Pi.add_apply, Pi.sub_apply, Pi.smul_apply] theorem archRealGLAt_glEquivOfRingEquiv {w : InfinitePlace F} (hw : w.IsReal) (k : GL (Fin 2) w.Completion) : archRealGLAt hw (glEquivOfRingEquiv (ringEquivRealOfIsReal hw) k) = adelicArchGLInclAt F w k := by show adelicArchGLInclAt F w (glEquivOfRingEquiv (ringEquivRealOfIsReal hw).symm (glEquivOfRingEquiv (ringEquivRealOfIsReal hw) k)) = adelicArchGLInclAt F w k congr 1 ext i j rw [glEquivOfRingEquiv_apply_entry, glEquivOfRingEquiv_apply_entry] exact congrArg _ ((ringEquivRealOfIsReal hw).symm_apply_apply _) def archRealProjAt {w : InfinitePlace F} (hw : w.IsReal) : AdelicGL2 (𝓞 F) F →* GL (Fin 2) ℝ := (glEquivOfRingEquiv (ringEquivRealOfIsReal hw)).toMonoidHom.comp ((AdelicLevel.archComponent F w).comp (AdelicLevel.glArch (𝓞 F) F)) theorem archRealProjAt_archRealGLAt {w : InfinitePlace F} (hw : w.IsReal) (m : GL (Fin 2) ℝ) : archRealProjAt hw (archRealGLAt hw m) = m := by have h1 : AdelicLevel.glArch (𝓞 F) F (archRealGLAt hw m) = archGLIncl F w (glEquivOfRingEquiv (ringEquivRealOfIsReal hw).symm m) := glArch_adelicArchGLIncl F _ have h2 : AdelicLevel.archComponent F w (AdelicLevel.glArch (𝓞 F) F (archRealGLAt hw m)) = glEquivOfRingEquiv (ringEquivRealOfIsReal hw).symm m := by rw [h1, archComponent_archGLIncl_self] show glEquivOfRingEquiv (ringEquivRealOfIsReal hw) (AdelicLevel.archComponent F w (AdelicLevel.glArch (𝓞 F) F (archRealGLAt hw m))) = m rw [h2] ext i j rw [glEquivOfRingEquiv_apply_entry, glEquivOfRingEquiv_apply_entry] exact (ringEquivRealOfIsReal hw).apply_symm_apply _ theorem IsArchSmoothAt.archCasimirAt {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) : IsArchSmoothAt hw (archCasimirAt hw φ) := by unfold AutomorphicForm.archCasimirAt exact (((((hφ.archDerivAt .H).archDerivAt .H).smul _).sub ((hφ.archDerivAt .H).smul _)).add ((hφ.archDerivAt .Fm).archDerivAt .E)).neg theorem IsArchSmoothAt.comp_mul_left {w : InfinitePlace F} {hw : w.IsReal} {φ : AdelicGL2 (𝓞 F) F → ℂ} (hφ : IsArchSmoothAt hw φ) (h : AdelicGL2 (𝓞 F) F) : IsArchSmoothAt hw fun g => φ (h * g) := by intro g show ContDiffOn ℝ (⊤ : ℕ∞) (fun e => φ (h * (g * archRealLiftAt hw e))) _ simp only [← mul_assoc] exact hφ (h * g) theorem archDerivAt_comp_mul_left {w : InfinitePlace F} (hw : w.IsReal) (d : ArchDir) (φ : AdelicGL2 (𝓞 F) F → ℂ) (h : AdelicGL2 (𝓞 F) F) : archDerivAt hw d (fun g => φ (h * g)) = fun g => archDerivAt hw d φ (h * g) := by funext g show deriv (fun t : ℝ => φ (h * (g * archFlowAt hw d t))) 0 = deriv (fun t : ℝ => φ (h * g * archFlowAt hw d t)) 0 simp only [mul_assoc] theorem archCasimirAt_comp_mul_left {w : InfinitePlace F} (hw : w.IsReal) (φ : AdelicGL2 (𝓞 F) F → ℂ) (h : AdelicGL2 (𝓞 F) F) : archCasimirAt hw (fun g => φ (h * g)) = fun g => archCasimirAt hw φ (h * g) := by rw [archCasimirAt, archCasimirAt, archDerivAt_comp_mul_left hw .H φ h, archDerivAt_comp_mul_left hw .H (archDerivAt hw .H φ) h, archDerivAt_comp_mul_left hw .Fm φ h, archDerivAt_comp_mul_left hw .E (archDerivAt hw .Fm φ) h] funext g simp only [Pi.neg_apply, Pi.add_apply, Pi.sub_apply, Pi.smul_apply] end Flows end AutomorphicForm end
Statements phrased using this module (159)
- Casimir dictionary for archimedean occurrence at a real place
AutomorphicForm.archOccursInClassOf_iff_archCasimirAt_of_coversModCentre526 below · depth 17 - Archimedean transfer of cubic base change at a real place
LanglandsTunnell.archOccursInClassOf_formalBaseChange_archCasimirAt_of_archOccursInClassOf_of_finrank_eq_three_of_not_agreesAwayFromFinite_twist2,877 below · depth 17 - Minimal-weight Casimir eigenvector inside one cuspidal constituent
LanglandsTunnell.exists_archCasimir_eigenvector_minimalWeight_mem_isCuspConstituent_whittaker_diagOne_ne_zero_of_continuous_realization408 below · depth 17 - Weight family and Whittaker factorisation with C(1,1)≠ 0
LanglandsTunnell.exists_whittaker_factorization_apply_one_ne_zero_localSpaceAt_of_archCasimir_eigenvector_minimalWeight373 below · depth 17 - Whittaker factorisation at an odd principal archimedean parameter over ℚ
LanglandsTunnell.exists_whittaker_factorization_apply_one_ne_zero_localSpaceAt_of_archCasimir_eigenvector_weightOne_of_ne370 below · depth 17 - J-stability of a cuspidal constituent at a real place
AutomorphicForm.CuspidalConstituent.comp_mul_archRealGLAt_J_mem_of_isCuspConstituent_of_cuspConstituentMeets_of_coversModCentre241 below · depth 18 - Iterated lowering and raising operators shift the archimedean weight by two
AutomorphicForm.CuspidalConstituent.iterate_lower_mem_cut_ofChar_and_iterate_raise_mem_cut_ofChar164 below · depth 18 - Casimir eigenvalue tfrac k2(1-tfrac k2) for lowest-weight vectors
AutomorphicForm.archCasimirAt_eq_smul_of_lower_eq_zero_of_hasArchCharacterAt3 below · depth 18 - Norm twists preserve archimedean occurrence in a cuspidal class
AutomorphicForm.archOccursInClassOf_hasArchCharacterAtZero_archCasimirAt_iff_twist_rpow_absNorm11 below · depth 18 - Lowering annihilates a witness with Casimir eigenvalue k/2(1-k/2)
AutomorphicForm.archOccursInClassOf_lower_eq_zero_of_archCasimirAt_eq_smul_of_coversModCentre24 below · depth 18 - Casimir scalar at a real place: rigidity and regular witnesses
AutomorphicForm.exists_forall_archCasimirAt_eq_and_archOccursInClassOf_isArchSmoothAt_of_coversModCentre354 below · depth 18 - Lowest weight and y⁻¹-holomorphy via the lowering operator
AutomorphicForm.isArchLowestWeightAt_iff_and_isArchHolomorphicAt_iff_lower_eq_zero_of_hasArchCharacterAt4 below · depth 18 - Assembled archimedean Whittaker function is a Casimir eigenfunction
LanglandsTunnell.Converse.continuous_archW_and_isArchSmoothAt_and_archCasimirAt_eq_of_isCasimirEigen0 below · depth 18 - Archimedean type profile of a class from its minimal type
LanglandsTunnell.archOccursInClassOf_archCasimirAt_iff_of_archOccursInClassOf_minimalType_laplaceEigenvalue_of_coversModCentre394 below · depth 18 - Minimal-weight Casimir eigenvector for a continuous cuspidal realization over ℚ
LanglandsTunnell.exists_archCasimir_eigenvector_minimalWeight_of_continuous_realization344 below · depth 18 - Casimir eigenvalue from a Whittaker factorisation on one finite fibre
LanglandsTunnell.exists_archOccursInClassOf_archCasimirAt_laplaceEigenvalue_of_whittakerCoefficient_fibre_eq359 below · depth 18 - Isotypic cusp form replaced inside one cuspidal constituent
LanglandsTunnell.exists_isCuspConstituent_mem_isIsotypicCuspFormAt_of_isIsotypicCuspFormAt_of_rightConv_eq340 below · depth 18 - Whittaker non-vanishing on the torus, with J-rigidity transfer
LanglandsTunnell.exists_mem_isCuspConstituent_isIsotypicCuspFormAt_whittakerCoefficient_diagOne_ne_zero_J_rigid_of_hasArchCharacterAt224 below · depth 18 - Archimedean parameter and Whittaker datum of a cuspidal class over ℚ
LanglandsTunnell.exists_realArchParam_archDatumR_whittakerCoefficient_fibre_eq_isCasimirEigen_of_archOccursInClassOf_rat464 below · depth 18 - Whittaker factorization for reflected-lowering eigencombinations at weight one
LanglandsTunnell.exists_whittaker_factorization_add_smul_reflect_lower_of_archCasimir_eigenvector_weightOne_of_ne363 below · depth 18 - Whittaker factorisation of a minimal-weight Casimir eigenvector over ℚ
LanglandsTunnell.exists_whittaker_factorization_eq_or_eq_smul_raise_of_archCasimir_eigenvector_minimalWeight367 below · depth 18 - Every vector of a cuspidal constituent lies in an archimedean cut
AutomorphicForm.CuspidalConstituent.exists_archTypeFamily_mem_archCutSubmodule_of_mem_isCuspConstituent0 below · depth 19 - Vectors of level-and-type cuts are right convolutions
AutomorphicForm.CuspidalConstituent.exists_eq_rightConv_of_mem_cut162 below · depth 19 - A single Casimir eigenvalue on a cuspidal constituent
AutomorphicForm.CuspidalConstituent.exists_forall_isArchSmoothAt_and_archCasimirAt_eq_smul_of_isCuspConstituent183 below · depth 19 - Factorizable test function reproducing a cuspidal vector
AutomorphicForm.CuspidalConstituent.exists_isFactorizableTestFn_rightConv_eq_self_of_mem_inf_levelInvariantSubmodule_inf_archCutSubmodule165 below · depth 19 - Finite-adelic translates preserve a cuspidal constituent and its archimedean data
AutomorphicForm.CuspidalConstituent.sum_mul_apply_mul_mem_and_arch_transfer_of_mem_isCuspConstituent_of_mem_finiteAdelicGL2Subgroup0 below · depth 19 - Archimedean smoothing of a cuspidal realisation at a real place
AutomorphicForm.SmoothCuspRealizationAt.exists_rightConv_ne_zero_mem_isotypicCuspSubmodule_mem_archCutSubmodule_hasArchCharacterAt_of_isReal77 below · depth 19 - Archimedean Casimir commutes with right translation by GL₂(ℝ)
AutomorphicForm.archCasimirAt_comp_mul_archRealGLAt0 below · depth 19 - Casimir at a real place via raising and lowering operators
AutomorphicForm.archCasimirAt_eq_raising_lowering_of_isArchSmoothAt1 below · depth 19 - Casimir eigenvalue persists under right convolution by a test function
AutomorphicForm.archCasimirAt_rightConv_eq_smul_of_archCasimirAt_eq_smul_of_isArchSmoothAt_of_isFactorizableTestFn8 below · depth 19 - Infinitesimal weight in along the rotation direction E-F
AutomorphicForm.archDerivAt_E_sub_archDerivAt_Fm_eq_smul_of_hasArchCharacterAt0 below · depth 19 - mathfraksl₂ commutation relations for right-flow derivatives at a real place
AutomorphicForm.archDerivAt_commutator_of_isArchSmoothAt0 below · depth 19 - Smoothing and integration by parts for right convolution
AutomorphicForm.archDerivAt_rightConv_eq_rightConv_deriv_of_isFactorizableTestFn3 below · depth 19 - C² regularity along the unipotent archimedean direction over ℚ
AutomorphicForm.contDiff_apply_unipotentGL2_mixedSpace_mul_of_isArchSmoothAt_rat0 below · depth 19 - Reproduction and Whittaker properties of isotypic cusp forms over ℚ
AutomorphicForm.exists_rightConv_eq_self_and_isIsotypicCuspFormAt_add_smul_archDerivAt_and_whittakerCoefficient_bounds_of_mem_archCutSubmodule351 below · depth 19 - Archimedean derivatives and Casimir pass through Whittaker coefficients
AutomorphicForm.hasDerivAt_whittakerCoefficient_archFlow_of_continuous_archDerivAt0 below · depth 19 - Lowering annihilation at a real place: slices versus flow derivatives
AutomorphicForm.isArchLoweringAnnihilatedAt_iff_isArchSmoothAt_and_lower_eq_zero_of_hasArchCharacterAt9 below · depth 19 - Archimedean smoothness from holomorphy of Iwasawa descents
AutomorphicForm.isArchSmoothAt_of_mdifferentiable_cpow_mul_descent_of_hasArchCharacterAt0 below · depth 19 - Reflected lowering operator: weight one, Casimir eigenvalue, T²=1-4λ
AutomorphicForm.isArchSmoothAt_reflectedLowering_and_archCasimirAt_eq_and_reflectedLowering_reflectedLowering_eq_smul0 below · depth 19 - Right convolution preserves the isotypic cusp space
AutomorphicForm.isIsotypicCuspFormAt_rightConv_of_isFactorizableTestFn_of_support_subset_of_coversModCentre79 below · depth 19 - Maass raising and lowering operators at a real place
AutomorphicForm.iterate_raise_iterate_lower_eq_smul_of_archCasimirAt_eq_smul0 below · depth 19 - Holomorphy of y^σ-descents versus the lowering operator
AutomorphicForm.mdifferentiable_cpow_mul_descent_iff_lower_eq_smul_of_isArchSmoothAt0 below · depth 19 - Casimir symmetry and raising–lowering adjointness on a fundamental domain
AutomorphicForm.setIntegral_archCasimirAt_mul_conj_eq_and_lower_adjoint_of_isFundamentalDomain19 below · depth 19 - Archimedean Whittaker coefficient: covariance, ODE, growth, separation
AutomorphicForm.whittakerCoefficient_torus_peel_ode_growth_and_separation_of_isIsotypicCuspFormAt_of_archCasimirAt_eq_smul10 below · depth 19 - Weight, lowering and raising relations in torus coordinates
LanglandsTunnell.archDerivAt_E_sub_Fm_eq_and_splitTorus_lowering_raising_relations_of_hasArchCharacterAt0 below · depth 19 - Whittaker coefficients match a model datum up to sign twist
LanglandsTunnell.archOccursInClassOf_whittakerCoefficient_fibre_eq_archW_or_twist_sign_of_archOccursInClassOf_rat420 below · depth 19 - Existence of a real archimedean parameter for a cuspidal class
LanglandsTunnell.exists_realArchParam_archOccursInClassOf_minimalType_laplaceEigenvalue_of_coversModCentre394 below · depth 19 - Nonvanishing first Whittaker coefficient at a real torus point
LanglandsTunnell.exists_whittakerCoefficient_diagOne_archUnitHom_mul_ne_zero_of_isIsotypicCuspFormAt24 below · depth 19 - Whittaker factorisation for a weight-zero cusp form and its raising
LanglandsTunnell.exists_whittaker_factorization_self_and_smul_raise_of_archCasimir_eigenvector_weightZero364 below · depth 19 - Archimedean derivatives and Casimir commute with Whittaker integration
LanglandsTunnell.isArchSmoothAt_whittakerCoefficient_and_archDerivAt_comm0 below · depth 19 - Raising operator: isotypy, weight k+2, Whittaker coefficients
LanglandsTunnell.isIsotypicCuspFormAt_smul_archRaise_and_whittakerCoefficient_archRaise_archLower340 below · depth 19 - Lowering operator forces Whittaker vanishing on the negative torus
LanglandsTunnell.whittakerCoefficient_diagOne_neg_eq_zero_of_isIsotypicCuspFormAt_of_lowering_eq_zero102 below · depth 19 - Torus structure of the first Whittaker coefficient over ℚ
LanglandsTunnell.whittakerCoefficient_splitTorus_structure_of_isIsotypicCuspFormAt_of_archCasimirAt_eq102 below · depth 19 - Casimir at a real place scales a cuspidal constituent
AutomorphicForm.CuspidalConstituent.exists_forall_isArchSmoothAt_and_archCasimirAt_eq_smul_of_isCuspConstituent_of_exists_isComplex176 below · depth 20 - Casimir acts by a scalar on a totally real cuspidal constituent
AutomorphicForm.CuspidalConstituent.exists_forall_isArchSmoothAt_and_archCasimirAt_eq_smul_of_isCuspConstituent_of_forall_isReal177 below · depth 20 - Factorisable test functions are smooth and differentiable at a real place
AutomorphicForm.IsFactorizableTestFn.isArchSmoothAt_and_archDerivAt_eq_tensor0 below · depth 20 - Holomorphy and positivity of the S-part Rankin–Selberg integral
AutomorphicForm.RankinSelberg.analyticOnNhd_sPartIntegral_and_pos_of_shell_surgery32 below · depth 20 - Non-vanishing first Whittaker coefficient over ℚ
AutomorphicForm.SmoothCuspRealizationAt.exists_whittakerCoefficient_one_ne_zero_of_continuous_foldr_archDerivAt_rat23 below · depth 20 - Vanishing unipotent derivatives force right SL₂(ℝ)-invariance at a real place
AutomorphicForm.apply_mul_archRealGLAt_eq_of_archDerivAt_E_eq_zero_of_archDerivAt_Fm_eq_zero0 below · depth 20 - Weight-k forms satisfy (E-F)φ = ik φ at a real place
AutomorphicForm.archDerivAt_E_sub_archDerivAt_Fm_eq_smul_of_hasArchCharacterAtZero_of_isArchSmoothAt0 below · depth 20 - J-rigidity of weight-one class witnesses over ℚ
AutomorphicForm.archOccursInClassOf_archWeightChar_one_apply_mul_archRealGLAt_J_eq_mul_lower_of_ne_of_coversModCentre_rat370 below · depth 20 - Weight-zero occurrence can be taken J-eigen at a real place
AutomorphicForm.archOccursInClassOf_archWeightChar_zero_apply_mul_archRealGLAt_J_eq_of_coversModCentre10 below · depth 20 - Shell-boundedness of derivatives of a Casimir eigen-witness at a real place
AutomorphicForm.archOccursInClassOf_continuous_foldr_archDerivAt_of_archOccursInClassOf_archCasimirAt_eq_smul_of_coversModCentre95 below · depth 20 - Raising operator kills weight-k forms with extremal Casimir eigenvalue
AutomorphicForm.archOccursInClassOf_raise_eq_zero_of_archCasimirAt_eq_smul_of_coversModCentre24 below · depth 20 - Cuspidal functions trivial under SL₂(ℝ) at a real place vanish
AutomorphicForm.eq_zero_of_isCuspidalFn_of_forall_apply_mul_archRealGLAt_eq10 below · depth 20 - Depth of lower unipotent invariance for translated level-N vectors
AutomorphicForm.exists_depth_forall_apply_mul_lowerUnipotentGL2_eq_of_sum_translate0 below · depth 20 - A single Casimir eigenvalue on every isotypic cut
AutomorphicForm.exists_forall_archCasimirAt_eq_smul_of_mem_isotypicCuspSubmodule_of_mem_archCutSubmodule_of_coversModCentre353 below · depth 20 - Bargmann's bound for Casimir eigenvalues of class witnesses
AutomorphicForm.im_eq_zero_and_le_re_of_archOccursInClassOf_archCasimirAt_eq_smul_of_coversModCentre24 below · depth 20 - Casimir scalar at a real place: reality, positivity, weight formula
AutomorphicForm.im_eq_zero_and_re_pos_and_eq_of_forall_archCasimirAt_eq_of_coversModCentre388 below · depth 20 - Left and right Casimir agree at a real place
AutomorphicForm.leftCasimir_eq_archCasimirAt_of_isArchSmoothAt0 below · depth 20 - Skew-symmetry of real-place flow derivatives on a determinant slab
AutomorphicForm.setIntegral_archDerivAt_mul_conj_add_eq_zero_of_isFundamentalDomain17 below · depth 20 - Whittaker transformation laws and torus ODE over ℚ
AutomorphicForm.whittakerCoefficient_archRealLiftAt_mul_laws_and_torus_ode_of_archCasimirAt_eq_smul_rat10 below · depth 20 - Vanishing of the torus Whittaker function on the wrong sheet
AutomorphicForm.whittakerCoefficient_detOneTorus_eq_zero_of_iterate_lower_eq_zero6 below · depth 20 - Vanishing of the discrete-series Whittaker datum on det<0
LanglandsTunnell.Converse.ArchDatumR.W_eq_zero_of_det_neg_of_discrete_of_archWeightChar_of_isCasimirEigen10 below · depth 20 - Weight-one limit-of-discrete-series datum vanishes on negative determinants
LanglandsTunnell.Converse.ArchDatumR.W_eq_zero_of_det_neg_of_principal_of_ne_of_archWeightChar_one_of_isCasimirEigen10 below · depth 20 - Reflection law for weight-zero real principal Whittaker data
LanglandsTunnell.Converse.ArchDatumR.W_mul_diag_eq_neg_one_pow_mul_of_principal_of_archWeightChar_zero_of_isCasimirEigen10 below · depth 20 - Reflection by diag(-1,1) as a lowering derivative
LanglandsTunnell.Converse.ArchDatumR.exists_W_mul_diag_eq_mul_lower_of_principal_of_ne_of_ne_of_archWeightChar_one_of_isCasimirEigen11 below · depth 20 - Weight-one Whittaker datum: W(xJ)=κ (LW)(x) with κ²(u₁-u₂)²=1
LanglandsTunnell.Converse.ArchDatumR.exists_sq_mul_sq_eq_one_and_W_mul_diag_eq_mul_lower_of_principal_of_ne_of_ne_of_archWeightChar_one_of_isCasimirEigen11 below · depth 20 - Transformation laws and torus ODE for an archimedean datum
LanglandsTunnell.Converse.ArchDatumR.laws_and_torus_ode_of_archWeightChar_of_isCasimirEigen2 below · depth 20 - Torus rays determine a ψ-Whittaker function of weight k
LanglandsTunnell.Converse.ArchR.eq_mul_of_unip_law_of_central_law_of_archWeightChar_of_torus_eq_of_sign_det0 below · depth 20 - Reflection J acts by (-1)^{a₁} on the weight-zero class
LanglandsTunnell.archOccursInClassOf_archWeightChar_zero_archCasimirAt_apply_mul_J_eq_neg_one_pow_of_whittakerCoefficient_fibre_eq_archW_of_isCasimirEigen386 below · depth 20 - Selection of a minimal-weight cuspidal constituent with nonvanishing Whittaker vector
LanglandsTunnell.exists_agreesAwayFromFinite_twist_archCasimir_eigenvector_minimalWeight_mem_isCuspConstituent_whittaker_diagOne_ne_zero_of_whittakerCoefficient_fibre_eq_archW_of_isCasimirEigen484 below · depth 20 - Selecting a weight-one cusp form: odd principal case
LanglandsTunnell.exists_agreesAwayFromFinite_twist_archCasimir_eigenvector_weightOne_whittakerCoefficient_torus_eq_archW_mem_isCuspConstituent_whittaker_diagOne_ne_zero_of_whittakerCoefficient_fibre_eq_archW_of_ne_of_ne535 below · depth 20 - Unitary archimedean datum forces ‖bₚ‖ = Np almost everywhere
LanglandsTunnell.exists_finset_norm_b_eq_absNorm_of_whittakerCoefficient_fibre_eq_archW_of_re_centralExponent_eq_zero10 below · depth 20 - Weight-one Whittaker factorisation over the torus fibre
LanglandsTunnell.exists_whittaker_factorization_apply_one_ne_zero_localSpaceAt_of_archCasimir_eigenvector_weightOne_of_ne_of_torus_profile_eigen370 below · depth 20 - Whittaker's ODE on the split torus at a real place
LanglandsTunnell.whittaker_ode_splitTorus_of_isArchSmoothAt_of_archCasimirAt_eq0 below · depth 20 - Stability of weight-one isotypic vectors under reflected lowering
AutomorphicForm.CuspidalConstituent.add_smul_reflect_lower_mem_and_isIsotypicCuspFormAt_of_mem_isCuspConstituent269 below · depth 21 - Real-place archimedean core hypotheses for pure-weight cut vectors
AutomorphicForm.CuspidalConstituent.coreHypotheses_of_mem_cut_of_forall_hasArchCharacterAt216 below · depth 21 - Core archimedean hypotheses for pure-weight cut vectors, totally real case
AutomorphicForm.CuspidalConstituent.coreHypotheses_of_mem_cut_of_forall_hasArchCharacterAt_of_forall_isReal211 below · depth 21 - Pure rotation character in a non-zero level-and-type cut
AutomorphicForm.CuspidalConstituent.exists_inf_archCutSubmodule_ofChar_ne_bot_of_ne_bot1 below · depth 21 - Finite-dimensionality and R(J)∘ L-stability of the weight-one slice over ℚ
AutomorphicForm.CuspidalConstituent.finiteDimensional_and_forall_mem_weightOne_slice_of_forall_comp_J_mem_rat168 below · depth 21 - Vectors in a level-and-type cut are smooth; the Casimir preserves it
AutomorphicForm.CuspidalConstituent.isArchSmoothAt_and_continuous_archDerivAt_and_archCasimirAt_mem_of_mem_cut173 below · depth 21 - Casimir stability and smoothness of cut vectors at a real place
AutomorphicForm.CuspidalConstituent.isArchSmoothAt_and_continuous_archDerivAt_and_archCasimirAt_mem_of_mem_cut_ofChar170 below · depth 21 - Section law, shell majorant and base value after shell surgery
AutomorphicForm.RankinSelberg.exists_finset_norm_whittakerCoefficient_sq_mul_norm_section_le_shell_indicator_of_shell_surgery10 below · depth 21 - Casimir at a real place: translation and convolution invariance
AutomorphicForm.archCasimirAt_rightTranslate_and_rightConv_of_continuous_archDerivAt11 below · depth 21 - J-rigid weight-one cut vector witnesses archimedean occurrence in the class
AutomorphicForm.archOccursInClassOf_J_rigid_of_mem_isCuspConstituent_of_hasArchCharacterAt_one358 below · depth 21 - Square of the J-reflected lowering operator in weight one
AutomorphicForm.archReflectLower_archReflectLower_eq_smul_of_hasArchCharacterAt_one_of_archCasimirAt_eq_smul1 below · depth 21 - Occurring weight-one type lies in one cuspidal constituent
AutomorphicForm.exists_isCuspConstituent_mem_isotypicCuspSubmodule_archCutSubmodule_hasArchCharacterAt_one_of_archOccursInClassOf333 below · depth 21 - A J-rigid vector in weight-one Casimir eigenspaces
AutomorphicForm.exists_ne_zero_apply_mul_archRealGLAt_J_eq_mul_lower_of_finiteDimensional_of_forall_mem4 below · depth 21 - Coordinatewise torus decay of Whittaker coefficients under a Casimir trichotomy
AutomorphicForm.exists_norm_whittakerCoefficient_diagOne_le_ideleNorm_rpow_of_pure_of_casimir_trichotomy20 below · depth 21 - Whittaker's equation for torus Whittaker coefficients at a real place
AutomorphicForm.whittakerCoefficient_diagOne_satisfies_whittaker_ode_of_archCasimirAt_eq_smul_of_hasArchCharacterAt5 below · depth 21 - Whittaker ODE, growth and Mellin shape on the negative sheet
LanglandsTunnell.Converse.ArchDatumR.negSheet_ode_and_growth_and_mellin_eq_of_archWeightChar_of_isCasimirEigen1 below · depth 21 - Descent to a cuspidal constituent keeping a Whittaker non-vanishing
LanglandsTunnell.exists_isCuspConstituent_mem_isIsotypicCuspFormAt_of_isIsotypicCuspFormAt_of_rightConv_eq_whittakerCoefficient_add_smul_reflect_lower_ne_zero340 below · depth 21 - Whittaker fibre of a weight-one cusp form is a multiple of W_∞
LanglandsTunnell.exists_whittakerCoefficient_fibre_eq_archW_mul_of_apply_mul_archRealGLAt_J_eq_mul_lower_of_mem_isCuspConstituent_weightOne_of_ne_bot424 below · depth 21 - Whittaker factorisation for a minimal-weight Casimir eigenvector
LanglandsTunnell.exists_whittaker_factorization_of_archCasimir_eigenvector_minimalWeight361 below · depth 21 - Weight-one Whittaker factorisation with pinned fibre eigenvalue
LanglandsTunnell.exists_whittaker_factorization_of_archCasimir_eigenvector_weightOne_of_ne_of_fibre_profile_eigen361 below · depth 21 - Moving a real unipotent past diag(a,1); ψ_K at 1/2
NumberField.AdelicLevel.diagOne_mul_archRealGLAt_unipotent_eq_and_stdAddChar_single_half0 below · depth 21 - Unitarity constraints on the Casimir eigenvalue at a real place
AutomorphicForm.CuspidalConstituent.casimir_real_and_pos_or_discrete_or_trivial_of_isCuspConstituent197 below · depth 22 - Casimir trichotomy at a real place for cuspidal constituents
AutomorphicForm.CuspidalConstituent.casimir_real_and_pos_or_discrete_or_trivial_of_isCuspConstituent_of_forall_isReal192 below · depth 22 - Iterated real-place flow derivatives are bounded on determinant shells
AutomorphicForm.CuspidalConstituent.exists_forall_norm_foldr_archDerivAt_le_of_mem_cut174 below · depth 22 - Raising and lowering operators on a cuspidal constituent
AutomorphicForm.CuspidalConstituent.exists_iterate_lower_mem_cut_and_iterate_raise_mem_cut_of_hasArchCharacterAt164 below · depth 22 - Iterated archimedean derivatives of cut vectors: smoothness and continuity
AutomorphicForm.CuspidalConstituent.isArchSmoothAt_and_continuous_foldr_archDerivAt_of_mem_cut166 below · depth 22 - Lowering operator and J-translate stay isotypic in a cuspidal constituent
AutomorphicForm.CuspidalConstituent.lower_mem_isotypicCuspSubmodule_and_comp_J_mem_isotypicCuspSubmodule_of_mem3 below · depth 22 - S-part Rankin–Selberg integral: continuation past 1/2 and non-vanishing
AutomorphicForm.RankinSelberg.analyticOnNhd_sPartIntegral_pair_and_ne_zero_of_ball_surgery35 below · depth 22 - Shell majorant for a surgered Whittaker–section integrand
AutomorphicForm.RankinSelberg.exists_finset_norm_whittakerCoefficient_sq_mul_norm_section_le_shell_indicator_of_shell_surgery_of_section_law7 below · depth 22 - Induced sections on the torus: φₛ(diag(t,1)k)=‖t‖^{s+1/2}φₛ(k)
AutomorphicForm.RankinSelberg.section_diagOne_mul_eq_ideleNorm_cpow_mul_of_isInducedSection_etaFst_etaSnd0 below · depth 22 - Shell surgery preserves the Whittaker coefficient at diag(t₀,1)k₀
AutomorphicForm.RankinSelberg.whittakerCoefficient_diagOne_mul_mul_inv_finEmbed_eq_of_shell_surgery0 below · depth 22 - Export package for translates of a smoothed cuspidal realisation
AutomorphicForm.SmoothCuspRealizationAt.exports_rightConv_sum_translate_of_isCuspConstituent109 below · depth 22 - Deep congruence elements preserve U₁(N)-invariant functions on GL₂(A_K)
AutomorphicForm.apply_mul_eq_of_forall_mem_levelOne_of_valued_sub_one_le0 below · depth 22 - Invariance of a translated level-one function under deep congruence elements
AutomorphicForm.apply_mul_mul_eq_of_forall_mem_levelOne_of_valued_sub_one_le_of_valued_apply_le0 below · depth 22 - Casimir at a real place commutes with right convolution
AutomorphicForm.archCasimirAt_rightConv_of_isFactorizableTestFn_of_continuous_archDerivAt8 below · depth 22 - Casimir at a real place commutes with right translation by GL₂(ℝ)
AutomorphicForm.archCasimirAt_rightTranslate_archRealGLAt0 below · depth 22 - Casimir at a real place commutes with translations at other places
AutomorphicForm.archCasimirAt_rightTranslate_rowIsometryInclAt_of_ne0 below · depth 22 - Linear dependence of two torus Whittaker functions at a real place
AutomorphicForm.exists_ne_zero_forall_linearCombination_whittakerCoefficient_diagOne_eq_zero_of_archCasimirAt_eq_smul12 below · depth 22 - Coordinatewise torus decay of Whittaker coefficients under Casimir trichotomy
AutomorphicForm.exists_norm_whittakerCoefficient_diagOne_le_ideleNorm_rpow_of_pure_of_casimir_trichotomy_of_finite_span20 below · depth 22 - Whittaker's equation from the Casimir eigenrelation on GL₂(ℝ)
AutomorphicForm.gl2Real_whittaker_ode_of_casimir_of_unipotent_covariant_of_weight0 below · depth 22 - Right translation by diag(1,-1) at a real place
AutomorphicForm.hasArchCharacterAt_neg_and_archCasimirAt_comp_mul_diag_one_neg_one0 below · depth 22 - Casimir at a real place of a right convolution
AutomorphicForm.isArchSmoothAt_rightConv_and_exists_archCasimirAt_rightConv_eq_of_isArchBiFinite14 below · depth 22 - Smoothness and Casimir of a right convolution at a real place
AutomorphicForm.isArchSmoothAt_rightConv_and_exists_archCasimirAt_rightConv_eq_of_isArchBiFinite_ofChar9 below · depth 22 - Whittaker's equation on the split torus from the Casimir eigen-equation
LanglandsTunnell.whittaker_ode_splitTorus_of_casimir_of_archWeightChar_of_unipotent0 below · depth 22 - Factorisation of diag(a,1) at a real place
NumberField.AdelicLevel.diagOne_eq_diagOne_mul_archRealLiftAt_mul_centralScalar0 below · depth 22 - Finite-place entry bounds for an adelic alignment element
NumberField.AdelicLevel.valued_apply_mul_diagOne_inv_mul_diagOne_mul_le_of_valued_eq0 below · depth 22 - Bargmann unitarity inequalities for a weight-n cut vector
AutomorphicForm.CuspidalConstituent.casimir_im_eq_zero_and_nonneg_and_lower_ne_zero_of_mem_cut_ofChar_of_forall_isReal187 below · depth 23 - Casimir trichotomy at a real place for cuspidal constituents
AutomorphicForm.CuspidalConstituent.casimir_real_and_pos_or_discrete_or_trivial_of_isCuspConstituent_of_exists_isComplex192 below · depth 23 - Propagation of SL₂(ℝ)-invariance through a cuspidal constituent
AutomorphicForm.CuspidalConstituent.forall_apply_mul_archRealGLAt_eq_of_isCuspConstituent_of_exists0 below · depth 23 - Analyticity of an archimedean torus Rankin–Selberg pairing
AutomorphicForm.RankinSelberg.analyticOnNhd_integral_archTorus_pair11 below · depth 23 - Ball-surgered torus integral evaluated past the centre
AutomorphicForm.RankinSelberg.exists_integral_torus_pair_eq_mul_integral_archTorus_of_ball_surgery22 below · depth 23 - Absolute convergence of the ball-surgered torus S-part integral
AutomorphicForm.RankinSelberg.lintegral_torus_pair_lt_top_of_ball_surgery15 below · depth 23 - Left Casimir preserves test functions, types and level
AutomorphicForm.isFactorizableTestFn_leftCasimir_and_rightConv_mem_of_isArchBiFinite11 below · depth 23 - Casimir of a test function: level and archimedean type
AutomorphicForm.isFactorizableTestFn_leftCasimir_and_rightConv_mem_of_isArchBiFinite_ofChar6 below · depth 23 - Bargmann inequalities at a real place for cut vectors
AutomorphicForm.CuspidalConstituent.casimir_im_eq_zero_and_nonneg_and_lower_ne_zero_of_mem_cut_of_forall_hasArchCharacterAt187 below · depth 24 - Boundedness of second-order archimedean derivatives on determinant slabs
AutomorphicForm.CuspidalConstituent.exists_forall_norm_archDerivAt_le_of_mem_cut_ofChar_of_forall_isReal178 below · depth 24 - Pointwise torus evaluation of a ball-surgered Rankin–Selberg integrand
AutomorphicForm.RankinSelberg.whittakerCoefficient_mul_conj_mul_section_diagOne_mul_eq_of_ball_surgery7 below · depth 24 - Haar measure on GL₂(Kᵥ) in Bruhat big-cell coordinates
AutomorphicForm.exists_haar_localGL2_eq_smul_map_lowerUnipotentGL2_mul_diagUnits2_mul_unipotentGL23 below · depth 24 - Raising and lowering operators on the split torus
LanglandsTunnell.raising_lowering_splitTorus_of_archWeightChar_of_unipotent0 below · depth 24 - Slab bound for flow derivatives of a cuspidal cut vector
AutomorphicForm.CuspidalConstituent.exists_forall_norm_archDerivAt_le_of_mem_cut_of_forall_hasArchCharacterAt178 below · depth 25 - Haar measure on GL₂(Kᵥ) in big Bruhat cell coordinates
AutomorphicForm.exists_haar_localGL2_eq_smul_map_unipotentGL2_mul_diagUnits2_mul_lowerUnipotentGL24 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 - Casimir at a real place acts by a scalar on a cuspidal constituent
AutomorphicForm.CuspidalConstituent.exists_forall_isArchSmoothAt_and_archCasimirAt_eq_smul_of_isCuspConstituent_principal178 below · depth 28 - The locus X₀₀=0 or det X=0 is null in M₂(ℚₚ)
LanglandsTunnell.RankinSelberg.measure_pi_selfDualHaarAt_setOf_apply_eq_zero_or_det_eq_zero1 below · depth 28
… and 9 more statements (search for the module name to find them).