@@ -66,18 +66,53 @@ avoided by this definition. Probably you want to use `is_O` instead of this rela
66
66
def is_O_with (c : ℝ) (f : α → E) (g : α → F) (l : filter α) : Prop :=
67
67
∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥
68
68
69
+ /-- Definition of `is_O_with`. We record it in a lemma as we will set `is_O_with` to be irreducible
70
+ at the end of this file. -/
71
+ lemma is_O_with_iff {c : ℝ} {f : α → E} {g : α → F} {l : filter α} :
72
+ is_O_with c f g l ↔ ∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥ := iff.rfl
73
+
74
+ lemma is_O_with.of_bound {c : ℝ} {f : α → E} {g : α → F} {l : filter α}
75
+ (h : ∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥) : is_O_with c f g l := h
76
+
69
77
/-- The Landau notation `is_O f g l` where `f` and `g` are two functions on a type `α` and `l` is
70
78
a filter on `α`, means that eventually for `l`, `∥f∥` is bounded by a constant multiple of `∥g∥`.
71
79
In other words, `∥f∥ / ∥g∥` is eventually bounded, modulo division by zero issues that are avoided
72
80
by this definition. -/
73
81
def is_O (f : α → E) (g : α → F) (l : filter α) : Prop := ∃ c : ℝ, is_O_with c f g l
74
82
83
+ /-- Definition of `is_O` in terms of `is_O_with`. We record it in a lemma as we will set
84
+ `is_O` to be irreducible at the end of this file. -/
85
+ lemma is_O_iff_is_O_with {f : α → E} {g : α → F} {l : filter α} :
86
+ is_O f g l ↔ ∃ c : ℝ, is_O_with c f g l := iff.rfl
87
+
88
+ /-- Definition of `is_O` in terms of filters. We record it in a lemma as we will set
89
+ `is_O` to be irreducible at the end of this file. -/
90
+ lemma is_O_iff {f : α → E} {g : α → F} {l : filter α} :
91
+ is_O f g l ↔ ∃ c : ℝ, ∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥ := iff.rfl
92
+
93
+ lemma is_O.of_bound (c : ℝ) {f : α → E} {g : α → F} {l : filter α}
94
+ (h : ∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥) : is_O f g l := ⟨c, h⟩
95
+
75
96
/-- The Landau notation `is_o f g l` where `f` and `g` are two functions on a type `α` and `l` is
76
97
a filter on `α`, means that eventually for `l`, `∥f∥` is bounded by an arbitrarily small constant
77
98
multiple of `∥g∥`. In other words, `∥f∥ / ∥g∥` tends to `0` along `l`, modulo division by zero
78
99
issues that are avoided by this definition. -/
79
100
def is_o (f : α → E) (g : α → F) (l : filter α) : Prop := ∀ ⦃c : ℝ⦄, 0 < c → is_O_with c f g l
80
101
102
+ /-- Definition of `is_o` in terms of `is_O_with`. We record it in a lemma as we will set
103
+ `is_o` to be irreducible at the end of this file. -/
104
+ lemma is_o_iff_forall_is_O_with {f : α → E} {g : α → F} {l : filter α} :
105
+ is_o f g l ↔ ∀ ⦃c : ℝ⦄, 0 < c → is_O_with c f g l := iff.rfl
106
+
107
+ /-- Definition of `is_o` in terms of filters. We record it in a lemma as we will set
108
+ `is_o` to be irreducible at the end of this file. -/
109
+ lemma is_o_iff {f : α → E} {g : α → F} {l : filter α} :
110
+ is_o f g l ↔ ∀ ⦃c : ℝ⦄, 0 < c → ∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥ := iff.rfl
111
+
112
+ lemma is_o.def {f : α → E} {g : α → F} {l : filter α} (h : is_o f g l) {c : ℝ} (hc : 0 < c) :
113
+ ∀ᶠ x in l, ∥ f x ∥ ≤ c * ∥ g x ∥ :=
114
+ h hc
115
+
81
116
end defs
82
117
83
118
/-! ### Conversions -/
@@ -1058,3 +1093,5 @@ lemma is_o_congr (e : α ≃ₜ β) {b : β} {f : β → E} {g : β → F} :
1058
1093
forall_congr $ λ c, forall_congr $ λ hc, e.is_O_with_congr
1059
1094
1060
1095
end homeomorph
1096
+
1097
+ attribute [irreducible] asymptotics.is_o asymptotics.is_O asymptotics.is_O_with
0 commit comments