import Definitions.Def_M4aHerbrand_IdeleClassVocab set_option autoImplicit false open IsDedekindDomain NumberField noncomputable section namespace AutomorphicForm variable (F E : Type) [Field F] [Field E] [NumberField E] [Algebra F E] variable (D : M4aHerbrand.IdeleGaloisDescent (๐“ž E) F E) def sigmaAdelicAct (ฯƒ : E โ‰ƒโ‚[F] E) : Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) โ†’* Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) := Matrix.GeneralLinearGroup.map (D.act ฯƒ : RingAut (AdeleRing (๐“ž E) E)).toRingHom def sigmaSectionActOn (ฯƒ : E โ‰ƒโ‚[F] E) (ฯ† : Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) โ†’ โ„‚) : Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) โ†’ โ„‚ := ฯ† โˆ˜ (sigmaAdelicAct F E D ฯƒ) def sigmaPairingOn [MeasurableSpace (Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E))] (ฮฝK : MeasureTheory.Measure (Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E))) (ฯƒ : E โ‰ƒโ‚[F] E) (ฯ† : Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) โ†’ โ„‚) : โ„‚ := โˆซ k, ฯ† k * starRingEnd โ„‚ (sigmaSectionActOn F E D ฯƒ ฯ† k) โˆ‚ฮฝK theorem sigmaAdelicAct_one : sigmaAdelicAct F E D 1 = MonoidHom.id _ := by ext g i j show ((D.act 1 : RingAut _).toRingHom : AdeleRing (๐“ž E) E โ†’ _) (g.val i j) = g.val i j rw [D.act.map_one] rfl theorem sigmaAdelicAct_mul (ฯƒ ฯ„ : E โ‰ƒโ‚[F] E) : sigmaAdelicAct F E D (ฯƒ * ฯ„) = (sigmaAdelicAct F E D ฯƒ).comp (sigmaAdelicAct F E D ฯ„) := by ext g i j show ((D.act (ฯƒ * ฯ„) : RingAut _).toRingHom : AdeleRing (๐“ž E) E โ†’ _) (g.val i j) = ((D.act ฯƒ : RingAut _).toRingHom : _ โ†’ _) (((D.act ฯ„ : RingAut _).toRingHom : _ โ†’ _) (g.val i j)) rw [D.act.map_mul] rfl theorem continuous_sigmaAdelicAct (ฯƒ : E โ‰ƒโ‚[F] E) : Continuous (sigmaAdelicAct F E D ฯƒ) := by refine Units.continuous_iff.mpr โŸจ?_, ?_โŸฉ ยท exact Continuous.matrix_map (Units.continuous_val) (D.continuous_act ฯƒ) ยท exact Continuous.matrix_map (Units.continuous_coe_inv) (D.continuous_act ฯƒ) theorem sigmaAdelicAct_globalPoints (ฯƒ : E โ‰ƒโ‚[F] E) (g : Matrix.GeneralLinearGroup (Fin 2) E) : sigmaAdelicAct F E D ฯƒ (Matrix.GeneralLinearGroup.map (algebraMap E (AdeleRing (๐“ž E) E)) g) = Matrix.GeneralLinearGroup.map (algebraMap E (AdeleRing (๐“ž E) E)) (Matrix.GeneralLinearGroup.map (ฯƒ : E โ†’+* E) g) := by ext i j exact D.compat ฯƒ (g.val i j) theorem sigmaSectionActOn_one (ฯ† : Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) โ†’ โ„‚) : sigmaSectionActOn F E D 1 ฯ† = ฯ† := by ext g show ฯ† (sigmaAdelicAct F E D 1 g) = ฯ† g rw [sigmaAdelicAct_one] rfl theorem sigmaPairingOn_one [MeasurableSpace (Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E))] (ฮฝK : MeasureTheory.Measure (Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E))) (ฯ† : Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E) โ†’ โ„‚) : sigmaPairingOn F E D ฮฝK 1 ฯ† = โˆซ k, ฯ† k * starRingEnd โ„‚ (ฯ† k) โˆ‚ฮฝK := by unfold sigmaPairingOn rw [sigmaSectionActOn_one] theorem sigmaPairingOn_zero [MeasurableSpace (Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E))] (ฮฝK : MeasureTheory.Measure (Matrix.GeneralLinearGroup (Fin 2) (AdeleRing (๐“ž E) E))) (ฯƒ : E โ‰ƒโ‚[F] E) : sigmaPairingOn F E D ฮฝK ฯƒ 0 = 0 := by unfold sigmaPairingOn simp only [Pi.zero_apply, zero_mul, MeasureTheory.integral_zero] section Inhabitant example : haveI : Subsingleton (โ„š โ‰ƒโ‚[โ„š] โ„š) := โŸจfun a b => AlgEquiv.ext fun x => (a.commutes x).trans (b.commutes x).symmโŸฉ sigmaAdelicAct โ„š โ„š (M4aHerbrand.identityDescent (๐“ž โ„š) โ„š โ„š) 1 = MonoidHom.id _ := sigmaAdelicAct_one โ„š โ„š _ end Inhabitant end AutomorphicForm