import Definitions.Def_TaylorWiles_Primes import Mathlib.Analysis.Asymptotics.Defs import Mathlib.Analysis.SpecialFunctions.Log.Basic import Mathlib.Analysis.SpecialFunctions.Pow.Real import Mathlib.FieldTheory.Fixed set_option autoImplicit false open scoped NNReal open Filter Topology Asymptotics namespace FrobeniusDensity open NumberField Ideal section DegOneCount variable (K : Type*) [Field K] [NumberField K] open scoped Classical in noncomputable def degOneCount (ā„“ : ā„•) : ā„• := if ā„“.Prime then {š”® ∈ (ratPrimeIdeal ā„“).primesOver (š“ž K) | Nat.card ((š“ž K) ā§ø š”®) = ā„“}.ncard else 0 end DegOneCount section AnalyticInput variable (L : Type*) [Field L] [NumberField L] [IsGalois ā„š L] def DegOneAsymptotic : Prop := āˆ€ (H : Subgroup (L ā‰ƒā‚[ā„š] L)) (Sā‚€ : Finset ā„•), (āˆ€ s : ā„, 1 < s → Summable (fun ā„“ : ā„• => (if ā„“ ∈ Sā‚€ then 0 else (degOneCount (FixedPoints.intermediateField H : IntermediateField ā„š L) ā„“ : ā„)) * (ā„“ : ā„) ^ (-s))) ∧ (fun s : ā„ => (āˆ‘' ā„“ : ā„•, (if ā„“ ∈ Sā‚€ then 0 else (degOneCount (FixedPoints.intermediateField H : IntermediateField ā„š L) ā„“ : ā„)) * (ā„“ : ā„) ^ (-s)) + Real.log (s - 1)) =O[š“[>] 1] (fun _ => (1 : ā„)) end AnalyticInput end FrobeniusDensity