@@ -96,33 +96,67 @@ end ENorm
96
96
/-- A type `E` equipped with a continuous map `‖·‖ₑ : E → ℝ≥0∞`
97
97
98
98
NB. We do not demand that the topology is somehow defined by the enorm:
99
- for ℝ≥0∞ (the motivating example behind this definition), this is not true. -/
99
+ for ` ℝ≥0∞` (the motivating example behind this definition), this is not true. -/
100
100
class ContinuousENorm (E : Type *) [TopologicalSpace E] extends ENorm E where
101
101
continuous_enorm : Continuous enorm
102
102
103
- /-- An enormed monoid is an additive monoid endowed with a continuous enorm. -/
104
- class ENormedAddMonoid (E : Type *) [TopologicalSpace E] extends ContinuousENorm E, AddMonoid E where
105
- enorm_eq_zero : ∀ x : E, ‖x‖ₑ = 0 ↔ x = 0
103
+ /-- An e-seminormed monoid is an additive monoid endowed with a continuous enorm.
104
+ Note that we do not ask for the enorm to be positive definite:
105
+ non-trivial elements may have enorm zero. -/
106
+ class ESeminormedAddMonoid (E : Type *) [TopologicalSpace E]
107
+ extends ContinuousENorm E, AddMonoid E where
108
+ enorm_zero : ‖(0 : E)‖ₑ = 0
106
109
protected enorm_add_le : ∀ x y : E, ‖x + y‖ₑ ≤ ‖x‖ₑ + ‖y‖ₑ
107
110
108
- /-- An enormed monoid is a monoid endowed with a continuous enorm. -/
111
+ /-- An enormed monoid is an additive monoid endowed with a continuous enorm,
112
+ which is positive definite: in other words, this is an `ESeminormedAddMonoid` with a positive
113
+ definiteness condition added. -/
114
+ class ENormedAddMonoid (E : Type *) [TopologicalSpace E]
115
+ extends ESeminormedAddMonoid E where
116
+ enorm_eq_zero : ∀ x : E, ‖x‖ₑ = 0 ↔ x = 0
117
+
118
+ /-- An e-seminormed monoid is a monoid endowed with a continuous enorm.
119
+ Note that we only ask for the enorm to be a semi-norm: non-trivial elements may have enorm zero. -/
109
120
@[to_additive]
110
- class ENormedMonoid (E : Type *) [TopologicalSpace E] extends ContinuousENorm E, Monoid E where
111
- enorm_eq_zero : ∀ x : E, ‖x‖ ₑ = 0 ↔ x = 1
121
+ class ESeminormedMonoid (E : Type *) [TopologicalSpace E] extends ContinuousENorm E, Monoid E where
122
+ enorm_zero : ‖( 1 : E)‖ ₑ = 0
112
123
enorm_mul_le : ∀ x y : E, ‖x * y‖ₑ ≤ ‖x‖ₑ + ‖y‖ₑ
113
124
125
+ /-- An enormed monoid is a monoid endowed with a continuous enorm,
126
+ which is positive definite: in other words, this is an `ESeminormedMonoid` with a positive
127
+ definiteness condition added. -/
128
+ @[to_additive]
129
+ class ENormedMonoid (E : Type *) [TopologicalSpace E] extends ESeminormedMonoid E where
130
+ enorm_eq_zero : ∀ x : E, ‖x‖ₑ = 0 ↔ x = 1
131
+
132
+ /-- An e-seminormed commutative monoid is an additive commutative monoid endowed with a continuous
133
+ enorm.
134
+
135
+ We don't have `ESeminormedAddCommMonoid` extend `EMetricSpace`, since the canonical instance `ℝ≥0∞`
136
+ is not an `EMetricSpace`. This is because `ℝ≥0∞` carries the order topology, which is distinct from
137
+ the topology coming from `edist`. -/
138
+ class ESeminormedAddCommMonoid (E : Type *) [TopologicalSpace E]
139
+ extends ESeminormedAddMonoid E, AddCommMonoid E where
140
+
114
141
/-- An enormed commutative monoid is an additive commutative monoid
115
- endowed with a continuous enorm.
142
+ endowed with a continuous enorm which is positive definite .
116
143
117
144
We don't have `ENormedAddCommMonoid` extend `EMetricSpace`, since the canonical instance `ℝ≥0∞`
118
145
is not an `EMetricSpace`. This is because `ℝ≥0∞` carries the order topology, which is distinct from
119
146
the topology coming from `edist`. -/
120
147
class ENormedAddCommMonoid (E : Type *) [TopologicalSpace E]
121
- extends ENormedAddMonoid E, AddCommMonoid E where
148
+ extends ESeminormedAddCommMonoid E, ENormedAddMonoid E where
149
+
150
+ /-- An e-seminormed commutative monoid is a commutative monoid endowed with a continuous enorm. -/
151
+ @[to_additive]
152
+ class ESeminormedCommMonoid (E : Type *) [TopologicalSpace E]
153
+ extends ESeminormedMonoid E, CommMonoid E where
122
154
123
- /-- An enormed commutative monoid is a commutative monoid endowed with a continuous enorm. -/
155
+ /-- An enormed commutative monoid is a commutative monoid endowed with a continuous enorm
156
+ which is positive definite. -/
124
157
@[to_additive]
125
- class ENormedCommMonoid (E : Type *) [TopologicalSpace E] extends ENormedMonoid E, CommMonoid E where
158
+ class ENormedCommMonoid (E : Type *) [TopologicalSpace E]
159
+ extends ESeminormedCommMonoid E, ENormedMonoid E where
126
160
127
161
/-- A seminormed group is an additive group endowed with a norm for which `dist x y = ‖x - y‖`
128
162
defines a pseudometric space structure. -/
@@ -868,11 +902,11 @@ end NNNorm
868
902
section ENorm
869
903
870
904
@[to_additive (attr := simp) enorm_zero]
871
- lemma enorm_one' {E : Type *} [TopologicalSpace E] [ENormedMonoid E] : ‖(1 : E)‖ₑ = 0 := by
872
- rw [ENormedMonoid.enorm_eq_zero ]
905
+ lemma enorm_one' {E : Type *} [TopologicalSpace E] [ESeminormedMonoid E] : ‖(1 : E)‖ₑ = 0 := by
906
+ rw [ESeminormedMonoid.enorm_zero ]
873
907
874
908
@[to_additive exists_enorm_lt]
875
- lemma exists_enorm_lt' (E : Type *) [TopologicalSpace E] [ENormedMonoid E]
909
+ lemma exists_enorm_lt' (E : Type *) [TopologicalSpace E] [ESeminormedMonoid E]
876
910
[hbot : NeBot (𝓝[≠] (1 : E))] {c : ℝ≥0 ∞} (hc : c ≠ 0 ) : ∃ x ≠ (1 : E), ‖x‖ₑ < c :=
877
911
frequently_iff_neBot.mpr hbot |>.and_eventually
878
912
(ContinuousENorm.continuous_enorm.tendsto' 1 0 (by simp) |>.eventually_lt_const hc.bot_lt)
@@ -929,12 +963,18 @@ lemma ContinuousOn.enorm (h : ContinuousOn f s) : ContinuousOn (‖f ·‖ₑ) s
929
963
930
964
end ContinuousENorm
931
965
932
- section ENormedMonoid
966
+ section ESeminormedMonoid
933
967
934
- variable {E : Type *} [TopologicalSpace E] [ENormedMonoid E]
968
+ variable {E : Type *} [TopologicalSpace E] [ESeminormedMonoid E]
935
969
936
970
@[to_additive enorm_add_le]
937
- lemma enorm_mul_le' (a b : E) : ‖a * b‖ₑ ≤ ‖a‖ₑ + ‖b‖ₑ := ENormedMonoid.enorm_mul_le a b
971
+ lemma enorm_mul_le' (a b : E) : ‖a * b‖ₑ ≤ ‖a‖ₑ + ‖b‖ₑ := ESeminormedMonoid.enorm_mul_le a b
972
+
973
+ end ESeminormedMonoid
974
+
975
+ section ENormedMonoid
976
+
977
+ variable {E : Type *} [TopologicalSpace E] [ENormedMonoid E]
938
978
939
979
@[to_additive (attr := simp) enorm_eq_zero]
940
980
lemma enorm_eq_zero' {a : E} : ‖a‖ₑ = 0 ↔ a = 1 := by
@@ -952,6 +992,7 @@ end ENormedMonoid
952
992
953
993
instance : ENormedAddCommMonoid ℝ≥0 ∞ where
954
994
continuous_enorm := continuous_id
995
+ enorm_zero := by simp
955
996
enorm_eq_zero := by simp
956
997
enorm_add_le := by simp
957
998
@@ -1100,7 +1141,7 @@ end NNReal
1100
1141
section SeminormedCommGroup
1101
1142
1102
1143
variable [SeminormedCommGroup E] [SeminormedCommGroup F] {a b : E} {r : ℝ}
1103
- variable {ε : Type *} [TopologicalSpace ε] [ENormedCommMonoid ε]
1144
+ variable {ε : Type *} [TopologicalSpace ε] [ESeminormedCommMonoid ε]
1104
1145
1105
1146
@[to_additive]
1106
1147
theorem dist_inv (x y : E) : dist x⁻¹ y = dist x y⁻¹ := by
@@ -1117,8 +1158,9 @@ theorem norm_multiset_prod_le (m : Multiset E) : ‖m.prod‖ ≤ (m.map fun x =
1117
1158
· simp only [comp_apply, norm_one', ofAdd_zero]
1118
1159
· exact norm_mul_le' x y
1119
1160
1161
+ variable {ε : Type *} [TopologicalSpace ε] [ESeminormedAddCommMonoid ε] in
1120
1162
@[bound]
1121
- theorem enorm_sum_le {ε} [TopologicalSpace ε] [ENormedAddCommMonoid ε] (s : Finset ι) (f : ι → ε) :
1163
+ theorem enorm_sum_le (s : Finset ι) (f : ι → ε) :
1122
1164
‖∑ i ∈ s, f i‖ₑ ≤ ∑ i ∈ s, ‖f i‖ₑ :=
1123
1165
s.le_sum_of_subadditive enorm enorm_zero enorm_add_le f
1124
1166
0 commit comments