import Definitions.Def_AutomorphicForm_TwistedOrbital import Definitions.Def_NumberField_IdeleBox import Definitions.Def_M4aHerbrand_GenuineBeta set_option autoImplicit false open MeasureTheory NumberField IsDedekindDomain open scoped TensorProduct Pointwise namespace AutomorphicForm.TransversalMeasure section Definitions noncomputable def integralUnits (K L : Type) [Field K] [NumberField K] [Field L] [Algebra K L] (v : HeightOneSpectrum (π“ž K)) : Subgroup (L βŠ—[K] v.adicCompletion K)Λ£ := (HeightOneSpectrum.tensorAdicCompletionIntegersTo K L (π“ž L) v).range.toSubmonoid.units noncomputable def includeUnits (K L : Type) [Field K] [NumberField K] [Field L] [Algebra K L] (v : HeightOneSpectrum (π“ž K)) : (v.adicCompletion K)Λ£ β†’* (L βŠ—[K] v.adicCompletion K)Λ£ := Units.map (Algebra.TensorProduct.includeRight : v.adicCompletion K →ₐ[K] L βŠ—[K] v.adicCompletion K).toRingHom.toMonoidHom open scoped TensorProduct.RightActions in noncomputable def normOneUnits (K L : Type) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] (v : HeightOneSpectrum (π“ž K)) : Subgroup (L βŠ—[K] v.adicCompletion K)Λ£ := MonoidHom.ker ((Valued.v : Valuation (v.adicCompletion K) (WithZero (Multiplicative β„€))).toMonoidWithZeroHom.toMonoidHom.comp ((Algebra.norm (v.adicCompletion K) : L βŠ—[K] v.adicCompletion K β†’* v.adicCompletion K).comp (Units.coeHom _))) def saturatedUnits (K L : Type) [Field K] [NumberField K] [Field L] [Algebra K L] (v : HeightOneSpectrum (π“ž K)) : Set (L βŠ—[K] v.adicCompletion K)Λ£ := (integralUnits K L v : Set (L βŠ—[K] v.adicCompletion K)Λ£) * Set.range (includeUnits K L v) def valOneUnits (K : Type) [Field K] [NumberField K] (v : HeightOneSpectrum (π“ž K)) : Set (v.adicCompletion K)Λ£ := {s | Valued.v (s : v.adicCompletion K) = 1} open scoped NumberField.LiesOver in attribute [local instance] M4aHerbrand.ArchSemilocal.extLiesOver in noncomputable def includeArchUnits (K L : Type) [Field K] [Field L] [Algebra K L] (v : InfinitePlace K) : (v.Completion)Λ£ β†’* (βˆ€ w : v.Extension L, w.1.Completion)Λ£ := Units.map (algebraMap v.Completion (βˆ€ w : v.Extension L, w.1.Completion)).toMonoidHom open scoped NumberField.LiesOver in attribute [local instance] M4aHerbrand.ArchSemilocal.extLiesOver in noncomputable def archNormOneUnits (K L : Type) [Field K] [Field L] [NumberField L] [Algebra K L] (v : InfinitePlace K) : Subgroup (βˆ€ w : v.Extension L, w.1.Completion)Λ£ := MonoidHom.ker ((normHom : v.Completion β†’*β‚€ ℝ).toMonoidHom.comp ((Algebra.norm v.Completion : (βˆ€ w : v.Extension L, w.1.Completion) β†’* v.Completion).comp (Units.coeHom _))) noncomputable def archFibre (K L : Type) [Field K] [Field L] [Algebra K L] (v : InfinitePlace K) : (InfiniteAdeleRing L)Λ£ β†’* (βˆ€ w : v.Extension L, w.1.Completion)Λ£ := Units.map (RingHom.pi fun w : v.Extension L => Pi.evalRingHom (fun u : InfinitePlace L => u.Completion) w.1 : InfiniteAdeleRing L β†’+* (βˆ€ w : v.Extension L, w.1.Completion)).toMonoidHom end Definitions section Borel open scoped TensorProduct.RightActions in @[reducible] noncomputable def semiLocalUnitsBorel (K L : Type) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] (v : HeightOneSpectrum (π“ž K)) : MeasurableSpace (L βŠ—[K] v.adicCompletion K)Λ£ := borel _ @[reducible] noncomputable def archUnitsBorel (K L : Type) [Field K] [Field L] [Algebra K L] (v : InfinitePlace K) : MeasurableSpace (βˆ€ w : v.Extension L, w.1.Completion)Λ£ := borel _ end Borel noncomputable def archSemiLocalIdele (K L : Type) [Field K] [Field L] [NumberField L] [Algebra K L] (v : InfinitePlace K) : (AdeleRing (π“ž L) L)Λ£ β†’* (βˆ€ w : v.Extension L, w.1.Completion)Λ£ := (archFibre K L v).comp (Units.map (RingHom.fst (InfiniteAdeleRing L) (FiniteAdeleRing (π“ž L) L)).toMonoidHom) noncomputable def semiLocalIdele (K L : Type) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] (v : HeightOneSpectrum (π“ž K)) : (AdeleRing (π“ž L) L)Λ£ β†’* (L βŠ—[K] v.adicCompletion K)Λ£ := (Units.map (AutomorphicForm.semiLocalEval K L v).toMonoidHom).comp (NumberField.AdeleRing.finitePartUnits (π“ž L) L) noncomputable def idelesBaseChange (K L : Type) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] : (AdeleRing (π“ž K) K)Λ£ β†’* (AdeleRing (π“ž L) L)Λ£ := Units.map (M4aHerbrand.Bridge.genuineΞ² K L).toMonoidHom def saturated (K L : Type) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] (SΟ„ : Finset (HeightOneSpectrum (π“ž K))) : Set (AdeleRing (π“ž L) L)Λ£ := {t | βˆ€ v : HeightOneSpectrum (π“ž K), v βˆ‰ SΟ„ β†’ semiLocalIdele K L v t ∈ saturatedUnits K L v} noncomputable def valOneUnitsSubgroup (K : Type) [Field K] [NumberField K] (v : HeightOneSpectrum (π“ž K)) : Subgroup (v.adicCompletion K)Λ£ := MonoidHom.ker ((Valued.v : Valuation (v.adicCompletion K) (WithZero (Multiplicative β„€))).toMonoidWithZeroHom.toMonoidHom.comp (Units.coeHom (v.adicCompletion K))) def levelSubgroup {B Ξ± ΞΊ : Type*} [Group B] {A : Ξ± β†’ Type*} [βˆ€ a, Group (A a)] {G : ΞΊ β†’ Type*} [βˆ€ k, Group (G k)] (q : βˆ€ a, B β†’* A a) (NA : βˆ€ a, Subgroup (A a)) (p : βˆ€ k, B β†’* G k) (N U : βˆ€ k, Subgroup (G k)) (bad : Finset ΞΊ) : Subgroup B where carrier := {b | (βˆ€ a, q a b ∈ NA a) ∧ (βˆ€ k ∈ bad, p k b ∈ N k) ∧ βˆ€ k βˆ‰ bad, p k b ∈ U k} one_mem' := ⟨fun a => by rw [map_one]; exact one_mem _, fun k _ => by rw [map_one]; exact one_mem _, fun k _ => by rw [map_one]; exact one_mem _⟩ mul_mem' := fun {a b} ha hb => ⟨fun i => by rw [map_mul]; exact mul_mem (ha.1 i) (hb.1 i), fun k hk => by rw [map_mul]; exact mul_mem (ha.2.1 k hk) (hb.2.1 k hk), fun k hk => by rw [map_mul]; exact mul_mem (ha.2.2 k hk) (hb.2.2 k hk)⟩ inv_mem' := fun {a} ha => ⟨fun i => by rw [map_inv]; exact inv_mem (ha.1 i), fun k hk => by rw [map_inv]; exact inv_mem (ha.2.1 k hk), fun k hk => by rw [map_inv]; exact inv_mem (ha.2.2 k hk)⟩ section Boxes attribute [local instance] semiLocalUnitsBorel archUnitsBorel def IsBox (K L : Type) [Field K] [NumberField K] [Field L] [NumberField L] [Algebra K L] (E : Set (AdeleRing (π“ž L) L)Λ£) : Prop := βˆƒ (D : βˆ€ v : InfinitePlace K, Set (βˆ€ w : v.Extension L, w.1.Completion)Λ£) (C : βˆ€ v : HeightOneSpectrum (π“ž K), Set (L βŠ—[K] v.adicCompletion K)Λ£), (βˆ€ v, MeasurableSet (D v)) ∧ (βˆ€ v, MeasurableSet (C v)) ∧ {v | C v β‰  (TransversalMeasure.integralUnits K L v : Set (L βŠ—[K] v.adicCompletion K)Λ£)}.Finite ∧ E = {t | (βˆ€ v, TransversalMeasure.archSemiLocalIdele K L v t ∈ D v) ∧ βˆ€ v, TransversalMeasure.semiLocalIdele K L v t ∈ C v} end Boxes end AutomorphicForm.TransversalMeasure