@@ -46,28 +46,13 @@ is little o of the logarithmic counting function attached to `single e`.
4646-/
4747lemma one_isLittleO_logCounting_single [DecidableEq E] [ProperSpace E] {e : E} :
4848 (1 : ℝ → ℝ) =o[atTop] logCounting (single e 1 ) := by
49- rw [isLittleO_iff]
50- intro c hc
51- simp only [Pi.one_apply, norm_eq_abs, eventually_atTop, abs_one]
52- use exp (|log ‖e‖| + c⁻¹)
53- intro b hb
54- have h₁b : 1 ≤ b := by
55- calc 1
56- _ ≤ exp (|log ‖e‖| + c⁻¹) := one_le_exp (by positivity)
57- _ ≤ b := hb
58- have h₁c : ‖e‖ ≤ exp (|log ‖e‖| + c⁻¹) := by
59- calc ‖e‖
60- _ ≤ exp (log ‖e‖) := le_exp_log ‖e‖
61- _ ≤ exp (|log ‖e‖| + c⁻¹) :=
62- exp_monotone (le_add_of_le_of_nonneg (le_abs_self _) (inv_pos.2 hc).le)
63- rw [← inv_mul_le_iff₀ hc, mul_one, abs_of_nonneg (logCounting_nonneg
64- (single_pos.2 Int.one_pos).le h₁b)]
65- calc c⁻¹
66- _ ≤ logCounting (single e 1 ) (exp (|log ‖e‖| + c⁻¹)) := by
67- simp [logCounting_single_eq_log_sub_const h₁c, le_sub_iff_add_le', le_abs_self (log ‖e‖)]
68- _ ≤ logCounting (single e 1 ) b := by
69- apply logCounting_mono (single_pos.2 Int.one_pos).le (mem_Ioi.2 (exp_pos _)) _ hb
70- simpa [mem_Ioi] using one_pos.trans_le h₁b
49+ have hΘ : (fun r ↦ log r - log ‖e‖) =Θ[atTop] log :=
50+ (IsEquivalent.sub_isLittleO IsEquivalent.refl isLittleO_const_log_atTop).isTheta
51+ have h₁ : (1 : ℝ → ℝ) =o[atTop] fun r ↦ log r - log ‖e‖ :=
52+ (hΘ.isLittleO_congr_right).2 isLittleO_const_log_atTop
53+ refine h₁.congr' EventuallyEq.rfl ?_
54+ filter_upwards [eventually_ge_atTop ‖e‖] with r hr
55+ simp [logCounting_single_eq_log_sub_const hr]
7156
7257/--
7358A non-negative function with locally finite support is zero if and only if its logarithmic counting
@@ -123,17 +108,8 @@ function for its pole divisor is asymptotically bounded.
123108theorem logCounting_isBigO_one_iff_analyticOnNhd {f : 𝕜 → E} (h : Meromorphic f) :
124109 logCounting f ⊤ =O[atTop] (1 : ℝ → ℝ) ↔ AnalyticOnNhd 𝕜 (toMeromorphicNFOn f univ) univ := by
125110 simp only [logCounting, reduceDIte]
126- rw [← Function.locallyFinsuppWithin.zero_iff_logCounting_bounded (negPart_nonneg _)]
127- constructor
128- · intro h₁f z hz
129- apply (meromorphicNFOn_toMeromorphicNFOn f univ
130- trivial).meromorphicOrderAt_nonneg_iff_analyticAt.1
131- rw [meromorphicOrderAt_toMeromorphicNFOn h.meromorphicOn (by trivial), ← WithTop.untop₀_nonneg,
132- ← h.meromorphicOn.divisor_apply (by trivial), ← negPart_eq_zero,
133- ← locallyFinsuppWithin.negPart_apply]
134- aesop
135- · intro h₁f
136- rwa [negPart_eq_zero, ← h.meromorphicOn.divisor_of_toMeromorphicNFOn,
137- (meromorphicNFOn_toMeromorphicNFOn _ _).divisor_nonneg_iff_analyticOnNhd]
111+ rw [← locallyFinsuppWithin.zero_iff_logCounting_bounded (negPart_nonneg _), negPart_eq_zero,
112+ ← h.meromorphicOn.divisor_of_toMeromorphicNFOn,
113+ (meromorphicNFOn_toMeromorphicNFOn _ _).divisor_nonneg_iff_analyticOnNhd]
138114
139115end ValueDistribution
0 commit comments