@@ -1247,6 +1247,39 @@ end exists_mul_eq
1247
1247
1248
1248
/-! ### Miscellanous lemmas -/
1249
1249
1250
+ theorem div_is_bounded_under_of_is_O {α : Type *} {l : filter α}
1251
+ {f g : α → 𝕜} (h : is_O f g l) :
1252
+ is_bounded_under (≤) l (λ x, ∥f x / g x∥) :=
1253
+ begin
1254
+ obtain ⟨c, hc⟩ := is_O_iff.mp h,
1255
+ refine ⟨max c 0 , eventually_map.2 (filter.mem_sets_of_superset hc (λ x hx, _))⟩,
1256
+ simp only [mem_set_of_eq, normed_field.norm_div] at ⊢ hx,
1257
+ by_cases hgx : g x = 0 ,
1258
+ { rw [hgx, norm_zero, div_zero, le_max_iff],
1259
+ exact or.inr le_rfl },
1260
+ { exact le_max_iff.2 (or.inl ((div_le_iff (norm_pos_iff.2 hgx)).2 hx)) }
1261
+ end
1262
+
1263
+ theorem is_O_iff_div_is_bounded_under {α : Type *} {l : filter α}
1264
+ {f g : α → 𝕜} (hgf : ∀ᶠ x in l, g x = 0 → f x = 0 ) :
1265
+ is_O f g l ↔ is_bounded_under (≤) l (λ x, ∥f x / g x∥) :=
1266
+ begin
1267
+ refine ⟨div_is_bounded_under_of_is_O, λ h, _⟩,
1268
+ obtain ⟨c, hc⟩ := h,
1269
+ rw filter.eventually_iff at hgf hc,
1270
+ simp only [mem_set_of_eq, mem_map, normed_field.norm_div] at hc,
1271
+ refine is_O_iff.2 ⟨c, filter.eventually_of_mem (inter_mem_sets hgf hc) (λ x hx, _)⟩,
1272
+ by_cases hgx : g x = 0 ,
1273
+ { simp [hx.1 hgx, hgx] },
1274
+ { refine (div_le_iff (norm_pos_iff.2 hgx)).mp hx.2 },
1275
+ end
1276
+
1277
+ theorem is_O_of_div_tendsto_nhds {α : Type *} {l : filter α}
1278
+ {f g : α → 𝕜} (hgf : ∀ᶠ x in l, g x = 0 → f x = 0 )
1279
+ (c : 𝕜) (H : filter.tendsto (f / g) l (𝓝 c)) :
1280
+ is_O f g l :=
1281
+ (is_O_iff_div_is_bounded_under hgf).2 $ is_bounded_under_of_tendsto H
1282
+
1250
1283
lemma is_o.tendsto_zero_of_tendsto {α E 𝕜 : Type *} [normed_group E] [normed_field 𝕜] {u : α → E}
1251
1284
{v : α → 𝕜} {l : filter α} {y : 𝕜} (huv : is_o u v l) (hv : tendsto v l (𝓝 y)) :
1252
1285
tendsto u l (𝓝 0 ) :=
0 commit comments