import Definitions.Def_LanglandsTunnell_CubicInduction_Carrier import Definitions.Def_AutomorphicForm_TruncationOperator set_option autoImplicit false open IsDedekindDomain NumberField Matrix noncomputable section namespace LanglandsTunnell.CubicInduction section Gauge variable (F : Type) [Field F] [NumberField F] def archPlaceComponent3 (w : InfinitePlace F) : AdelicGL 3 (๐“ž F) F โ†’* GL (Fin 3) w.Completion := (Matrix.GeneralLinearGroup.map (AdelicLevel.archEval F w)).comp (archComponent3 (๐“ž F) F) variable {F} def matrixSize {L : Type*} [NormedField L] (k : GL (Fin 3) L) : โ„ := โˆ‘ i : Fin 3, โˆ‘ j : Fin 3, (โ€–(k : Matrix (Fin 3) (Fin 3) L) i jโ€– + โ€–((kโปยน : GL (Fin 3) L) : Matrix (Fin 3) (Fin 3) L) i jโ€–) theorem matrixSize_nonneg {L : Type*} [NormedField L] (k : GL (Fin 3) L) : 0 โ‰ค matrixSize k := Finset.sum_nonneg fun _ _ => Finset.sum_nonneg fun _ _ => add_nonneg (norm_nonneg _) (norm_nonneg _) def matrixSupSize {L : Type*} [NormedField L] (k : GL (Fin 3) L) : NNReal := Finset.univ.sup fun ij : Fin 3 ร— Fin 3 => max โ€–(k : Matrix (Fin 3) (Fin 3) L) ij.1 ij.2โ€–โ‚Š โ€–((kโปยน : GL (Fin 3) L) : Matrix (Fin 3) (Fin 3) L) ij.1 ij.2โ€–โ‚Š variable (F) def archGauge3 (g : AdelicGL 3 (๐“ž F) F) : โ„ := 1 + โˆ‘ w : InfinitePlace F, matrixSize (archPlaceComponent3 F w g) def finGauge3 (g : AdelicGL 3 (๐“ž F) F) : โ„ := โˆแถ  v : HeightOneSpectrum (๐“ž F), ((matrixSupSize (componentAt3 (๐“ž F) F v g) : NNReal) : โ„) def gauge3 (g : AdelicGL 3 (๐“ž F) F) : โ„ := max 1 (archGauge3 F g * finGauge3 F g) theorem one_le_gauge3 (g : AdelicGL 3 (๐“ž F) F) : 1 โ‰ค gauge3 F g := le_max_left _ _ theorem gauge3_pos (g : AdelicGL 3 (๐“ž F) F) : 0 < gauge3 F g := lt_of_lt_of_le zero_lt_one (one_le_gauge3 F g) theorem one_le_archGauge3 (g : AdelicGL 3 (๐“ž F) F) : 1 โ‰ค archGauge3 F g := by unfold archGauge3 have h : 0 โ‰ค โˆ‘ w : InfinitePlace F, matrixSize (archPlaceComponent3 F w g) := Finset.sum_nonneg fun w _ => matrixSize_nonneg _ linarith end Gauge section Growth variable (F : Type) [Field F] [NumberField F] def IsModerateGrowth3 (ฮฆ : AdelicGL 3 (๐“ž F) F โ†’ โ„‚) : Prop := AutomorphicForm.IsSlowlyIncreasingOn Set.univ (gauge3 F) ฮฆ theorem isModerateGrowth3_zero : IsModerateGrowth3 F (fun _ => (0 : โ„‚)) := AutomorphicForm.isSlowlyIncreasingOn_of_bounded (C := 0) fun _ _ => by simp theorem isModerateGrowth3_of_bounded {ฮฆ : AdelicGL 3 (๐“ž F) F โ†’ โ„‚} {C : โ„} (hC : โˆ€ g, โ€–ฮฆ gโ€– โ‰ค C) : IsModerateGrowth3 F ฮฆ := AutomorphicForm.isSlowlyIncreasingOn_of_bounded fun g _ => hC g end Growth end LanglandsTunnell.CubicInduction