@@ -114,6 +114,53 @@ theorem tendsto_natCast_div_add_atTop {𝕜 : Type*} [DivisionRing 𝕜] [Topolo
114
114
intros
115
115
simp_all only [comp_apply, map_inv₀, map_natCast]
116
116
117
+ /-- For any positive `m : ℕ`, `((n % m : ℕ) : ℝ) / (n : ℝ)` tends to `0` as `n` tends to `∞`. -/
118
+ theorem tendsto_mod_div_atTop_nhds_zero_nat {m : ℕ} (hm : 0 < m) :
119
+ Tendsto (fun n : ℕ => ((n % m : ℕ) : ℝ) / (n : ℝ)) atTop (𝓝 0 ) := by
120
+ have h0 : ∀ᶠ n : ℕ in atTop, 0 ≤ (fun n : ℕ => ((n % m : ℕ) : ℝ)) n := by aesop
121
+ exact tendsto_bdd_div_atTop_nhds_zero h0
122
+ (.of_forall (fun n ↦ cast_le.mpr (mod_lt n hm).le)) tendsto_natCast_atTop_atTop
123
+
124
+ theorem Filter.EventuallyEq.div_mul_cancel {α G : Type *} [GroupWithZero G] {f g : α → G}
125
+ {l : Filter α} (hg : Tendsto g l (𝓟 {0 }ᶜ)) : (fun x ↦ f x / g x * g x) =ᶠ[l] fun x ↦ f x := by
126
+ filter_upwards [hg.le_comap <| preimage_mem_comap (m := g) (mem_principal_self {0 }ᶜ)] with x hx
127
+ aesop
128
+
129
+ /-- If `g` tends to `∞`, then eventually for all `x` we have `(f x / g x) * g x = f x`. -/
130
+ theorem Filter.EventuallyEq.div_mul_cancel_atTop {α K : Type *} [LinearOrderedSemifield K]
131
+ {f g : α → K} {l : Filter α} (hg : Tendsto g l atTop) :
132
+ (fun x ↦ f x / g x * g x) =ᶠ[l] fun x ↦ f x :=
133
+ div_mul_cancel <| hg.mono_right <| le_principal_iff.mpr <|
134
+ mem_of_superset (Ioi_mem_atTop 0 ) <| by aesop
135
+
136
+ /-- If when `x` tends to `∞`, `g` tends to `∞` and `f x / g x` tends to a positive
137
+ constant, then `f` tends to `∞`. -/
138
+ theorem Tendsto.num {α K : Type *} [LinearOrderedField K] [TopologicalSpace K] [OrderTopology K]
139
+ {f g : α → K} {l : Filter α} (hg : Tendsto g l atTop) {a : K} (ha : 0 < a)
140
+ (hlim : Tendsto (fun x => f x / g x) l (𝓝 a)) :
141
+ Tendsto f l atTop :=
142
+ Tendsto.congr' (EventuallyEq.div_mul_cancel_atTop hg) (Tendsto.mul_atTop ha hlim hg)
143
+
144
+ /-- If when `x` tends to `∞`, `g` tends to `∞` and `f x / g x` tends to a positive
145
+ constant, then `f` tends to `∞`. -/
146
+ theorem Tendsto.den {α K : Type *} [LinearOrderedField K] [TopologicalSpace K] [OrderTopology K]
147
+ [ContinuousInv K] {f g : α → K} {l : Filter α} (hf : Tendsto f l atTop) {a : K} (ha : 0 < a)
148
+ (hlim : Tendsto (fun x => f x / g x) l (𝓝 a)) :
149
+ Tendsto g l atTop := by
150
+ have hlim' : Tendsto (fun x => g x / f x) l (𝓝 a⁻¹) := by
151
+ simp_rw [← inv_div (f _)]
152
+ exact Filter.Tendsto.inv (f := fun x => f x / g x) hlim
153
+ apply Tendsto.congr' (EventuallyEq.div_mul_cancel_atTop hf)
154
+ (Tendsto.mul_atTop (inv_pos_of_pos ha) hlim' hf)
155
+
156
+ /-- If when `x` tends to `∞`, `f x / g x` tends to a positive constant, then `f` tends to `∞` if
157
+ and only if `g` tends to `∞`. -/
158
+ theorem Tendsto.num_atTop_iff_den_atTop {α K : Type *} [LinearOrderedField K] [TopologicalSpace K]
159
+ [OrderTopology K] [ContinuousInv K] {f g : α → K} {l : Filter α} {a : K} (ha : 0 < a)
160
+ (hlim : Tendsto (fun x => f x / g x) l (𝓝 a)) :
161
+ Tendsto f l atTop ↔ Tendsto g l atTop :=
162
+ ⟨fun hf ↦ Tendsto.den hf ha hlim, fun hg ↦ Tendsto.num hg ha hlim⟩
163
+
117
164
/-! ### Powers -/
118
165
119
166
0 commit comments