import Definitions.Def_AutomorphicForm_SmoothAutomorphicFnAt open IsDedekindDomain NumberField MeasureTheory Matrix open AutomorphicForm FLT.SmoothVectors noncomputable section namespace AutomorphicForm variable (F : Type) [Field F] [NumberField F] def fnTwist (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) : AdelicGL2 (π“ž F) F β†’ β„‚ := fun g => chiDet (π“ž F) F Ξ· g * Ο† g @[simp] theorem fnTwist_apply (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) (g : AdelicGL2 (π“ž F) F) : fnTwist F Ξ· Ο† g = chiDet (π“ž F) F Ξ· g * Ο† g := rfl @[simp] theorem fnTwist_zero (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) : fnTwist F Ξ· (fun _ => (0 : β„‚)) = fun _ => (0 : β„‚) := by ext g; simp [fnTwist] theorem fnTwist_one (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) : fnTwist F (1 : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) Ο† = Ο† := by ext g; simp [fnTwist, chiDet] theorem fnTwist_fnTwist (η₁ Ξ·β‚‚ : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (Ο† : AdelicGL2 (π“ž F) F β†’ β„‚) : fnTwist F η₁ (fnTwist F Ξ·β‚‚ Ο†) = fnTwist F (η₁ * Ξ·β‚‚) Ο† := by ext g; simp only [fnTwist, chiDet, MonoidHom.mul_apply, Units.val_mul]; ring theorem det_centralScalar (z : (AdeleRing (π“ž F) F)Λ£) : Matrix.GeneralLinearGroup.det (centralScalar (π“ž F) F z) = z ^ 2 := by rw [show centralScalar (π“ž F) F = Matrix.GeneralLinearGroup.scalar (Fin 2) from rfl, Matrix.GeneralLinearGroup.det_scalar, Fintype.card_fin] theorem chiDet_centralScalar_mul (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (z : (AdeleRing (π“ž F) F)Λ£) (g : AdelicGL2 (π“ž F) F) : chiDet (π“ž F) F Ξ· (centralScalar (π“ž F) F z * g) = ((Ξ· z : β„‚Λ£) : β„‚) ^ 2 * chiDet (π“ž F) F Ξ· g := by simp only [chiDet, map_mul, det_centralScalar F, map_pow, Units.val_mul, Units.val_pow_eq_pow_val] def twistedCentralChar (Z : Subgroup (AdeleRing (π“ž F) F)Λ£) (ΞΎ : Z β†’* β„‚Λ£) (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) : Z β†’* β„‚Λ£ := ΞΎ * (Ξ·.comp Z.subtype) ^ 2 theorem chiDet_globalPoints_mul (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (hΞ·F : IsIdeleClassChar (π“ž F) F Ξ·) (Ξ³ : GL (Fin 2) F) (g : AdelicGL2 (π“ž F) F) : chiDet (π“ž F) F Ξ· (globalPoints (π“ž F) F Ξ³ * g) = chiDet (π“ž F) F Ξ· g := by unfold chiDet congr 1 rw [map_mul, globalPoints, Matrix.GeneralLinearGroup.map_det, map_mul, hΞ·F (Matrix.GeneralLinearGroup.det Ξ³), one_mul] theorem isLsXiFunction_fnTwist {Z : Subgroup (AdeleRing (π“ž F) F)Λ£} {ΞΎ : Z β†’* β„‚Λ£} (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (hΞ·F : IsIdeleClassChar (π“ž F) F Ξ·) {Ο† : AdelicGL2 (π“ž F) F β†’ β„‚} (hΟ† : IsLsXiFunction (π“ž F) F Z ΞΎ Ο†) : IsLsXiFunction (π“ž F) F Z (twistedCentralChar F Z ΞΎ Ξ·) (fnTwist F Ξ· Ο†) := by refine ⟨fun Ξ³ g => ?_, fun z g => ?_⟩ Β· simp only [fnTwist_apply, chiDet_globalPoints_mul F Ξ· hΞ·F, hΟ†.left_invariant Ξ³ g] Β· simp only [fnTwist_apply, chiDet_centralScalar_mul F, hΟ†.central_transform z g, twistedCentralChar, MonoidHom.mul_apply, MonoidHom.comp_apply, Subgroup.coe_subtype, MonoidHom.pow_apply, Units.val_mul, Units.val_pow_eq_pow_val] ring theorem isSmoothVector_rightTranslationFn_mul {G : Type*} [Group G] [TopologicalSpace G] [IsTopologicalGroup G] {M : Type*} [Mul M] {H : Subgroup G} {Ο† ψ : G β†’ M} (hΟ† : IsSmoothVector H (RightTranslationFn.mk (G := G) Ο†)) (hψ : IsSmoothVector H (RightTranslationFn.mk (G := G) ψ)) : IsSmoothVector H (RightTranslationFn.mk (G := G) (fun g => Ο† g * ψ g)) := by rw [isSmoothVector_iff_isOpen_stabilizer] refine Subgroup.isOpen_mono ?_ (isOpen_coe_inf_stabilizer hΟ† hψ) intro k hk rw [Subgroup.mem_inf, MulAction.mem_stabilizer_iff, MulAction.mem_stabilizer_iff, Subgroup.smul_def, Subgroup.smul_def] at hk rw [MulAction.mem_stabilizer_iff, Subgroup.smul_def] refine RightTranslationFn.ext fun g => ?_ have hΟ†k : Ο† (g * ↑k) = Ο† g := by have := congrFun (congrArg RightTranslationFn.toFun hk.1) g simp only [RightTranslationFn.toFun_smul] at this exact this have hψk : ψ (g * ↑k) = ψ g := by have := congrFun (congrArg RightTranslationFn.toFun hk.2) g simp only [RightTranslationFn.toFun_smul] at this exact this simp only [RightTranslationFn.toFun_smul] exact congrArgβ‚‚ (Β· * Β·) hΟ†k hψk theorem isKfSmooth_fnTwist (Ξ· : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) (hΞ·Kf : IsKfSmooth F (chiDet (π“ž F) F Ξ·)) {Ο† : AdelicGL2 (π“ž F) F β†’ β„‚} (hΟ† : IsKfSmooth F Ο†) : IsKfSmooth F (fnTwist F Ξ· Ο†) := isSmoothVector_rightTranslationFn_mul hΞ·Kf hΟ† theorem twistedCentralChar_one (Z : Subgroup (AdeleRing (π“ž F) F)Λ£) (ΞΎ : Z β†’* β„‚Λ£) : twistedCentralChar F Z ΞΎ 1 = ΞΎ := by ext z; simp [twistedCentralChar] theorem isIdeleClassChar_one : IsIdeleClassChar (π“ž F) F (1 : (AdeleRing (π“ž F) F)Λ£ β†’* β„‚Λ£) := fun _ => rfl end AutomorphicForm end