@@ -417,40 +417,8 @@ lemma normed_group.cauchy_seq_iff [nonempty α] [semilattice_sup α] {u : α →
417
417
cauchy_seq u ↔ ∀ ε > 0 , ∃ N, ∀ m n, N ≤ m → N ≤ n → ∥u m - u n∥ < ε :=
418
418
by simp [metric.cauchy_seq_iff, dist_eq_norm]
419
419
420
- lemma cauchy_seq.add {u v : ℕ → E} (hu : cauchy_seq u) (hv : cauchy_seq v) : cauchy_seq (u + v) :=
421
- begin
422
- rw normed_group.cauchy_seq_iff at *,
423
- intros ε ε_pos,
424
- rcases hu (ε/2 ) (half_pos ε_pos) with ⟨Nu, hNu⟩,
425
- rcases hv (ε/2 ) (half_pos ε_pos) with ⟨Nv, hNv⟩,
426
- use max Nu Nv,
427
- intros m n hm hn,
428
- replace hm := max_le_iff.mp hm,
429
- replace hn := max_le_iff.mp hn,
430
-
431
- calc ∥(u + v) m - (u + v) n∥ = ∥u m + v m - (u n + v n)∥ : rfl
432
- ... = ∥(u m - u n) + (v m - v n)∥ : by abel
433
- ... ≤ ∥u m - u n∥ + ∥v m - v n∥ : norm_add_le _ _
434
- ... < ε : by linarith only [hNu m n hm.1 hn.1 , hNv m n hm.2 hn.2 ]
435
- end
436
-
437
420
open finset
438
421
439
- lemma cauchy_seq_sum_of_eventually_eq {u v : ℕ → E} {N : ℕ} (huv : ∀ n ≥ N, u n = v n)
440
- (hv : cauchy_seq (λ n, ∑ k in range (n+1 ), v k)) : cauchy_seq (λ n, ∑ k in range (n + 1 ), u k) :=
441
- begin
442
- let d : ℕ → E := λ n, ∑ k in range (n + 1 ), (u k - v k),
443
- rw show (λ n, ∑ k in range (n + 1 ), u k) = d + (λ n, ∑ k in range (n + 1 ), v k),
444
- by { ext n, simp [d] },
445
- have : ∀ n ≥ N, d n = d N,
446
- { intros n hn,
447
- dsimp [d],
448
- rw eventually_constant_sum _ hn,
449
- intros m hm,
450
- simp [huv m hm] },
451
- exact (tendsto_at_top_of_eventually_const this ).cauchy_seq.add hv
452
- end
453
-
454
422
/-- A homomorphism `f` of seminormed groups is Lipschitz, if there exists a constant `C` such that
455
423
for all `x`, one has `∥f x∥ ≤ C * ∥x∥`. The analogous condition for a linear map of
456
424
(semi)normed spaces is in `normed_space.operator_norm`. -/
@@ -896,23 +864,32 @@ by simp [metric.mem_closure_iff, dist_eq_norm]
896
864
lemma norm_le_zero_iff' [separated_space E] {g : E} :
897
865
∥g∥ ≤ 0 ↔ g = 0 :=
898
866
begin
899
- have : g = 0 ↔ g ∈ closure ({0 } : set E),
900
- by simpa only [separated_space.out, mem_id_rel, sub_zero] using group_separation_rel g (0 : E),
901
- rw [this , semi_normed_group.mem_closure_iff],
902
- simp [forall_lt_iff_le']
867
+ letI : normed_group E := { to_metric_space := of_t2_pseudo_metric_space ‹_›,
868
+ .. ‹semi_normed_group E› },
869
+ rw [← dist_zero_right], exact dist_le_zero
903
870
end
904
871
905
872
lemma norm_eq_zero_iff' [separated_space E] {g : E} : ∥g∥ = 0 ↔ g = 0 :=
906
- begin
907
- conv_rhs { rw ← norm_le_zero_iff' },
908
- split ; intro h,
909
- { rw h },
910
- { exact le_antisymm h (norm_nonneg g) }
911
- end
873
+ (norm_nonneg g).le_iff_eq.symm.trans norm_le_zero_iff'
912
874
913
875
lemma norm_pos_iff' [separated_space E] {g : E} : 0 < ∥g∥ ↔ g ≠ 0 :=
914
876
by rw [← not_le, norm_le_zero_iff']
915
877
878
+ lemma cauchy_seq_sum_of_eventually_eq {u v : ℕ → E} {N : ℕ} (huv : ∀ n ≥ N, u n = v n)
879
+ (hv : cauchy_seq (λ n, ∑ k in range (n+1 ), v k)) : cauchy_seq (λ n, ∑ k in range (n + 1 ), u k) :=
880
+ begin
881
+ let d : ℕ → E := λ n, ∑ k in range (n + 1 ), (u k - v k),
882
+ rw show (λ n, ∑ k in range (n + 1 ), u k) = d + (λ n, ∑ k in range (n + 1 ), v k),
883
+ by { ext n, simp [d] },
884
+ have : ∀ n ≥ N, d n = d N,
885
+ { intros n hn,
886
+ dsimp [d],
887
+ rw eventually_constant_sum _ hn,
888
+ intros m hm,
889
+ simp [huv m hm] },
890
+ exact (tendsto_at_top_of_eventually_const this ).cauchy_seq.add hv
891
+ end
892
+
916
893
end semi_normed_group
917
894
918
895
section normed_group
@@ -954,32 +931,23 @@ noncomputable def normed_group.of_core (E : Type*) [add_comm_group E] [has_norm
954
931
955
932
variables [normed_group E] [normed_group F]
956
933
957
- @[simp] lemma norm_eq_zero {g : E} : ∥g∥ = 0 ↔ g = 0 :=
958
- dist_zero_right g ▸ dist_eq_zero
934
+ @[simp] lemma norm_eq_zero {g : E} : ∥g∥ = 0 ↔ g = 0 := norm_eq_zero_iff'
959
935
960
- @[simp] lemma norm_pos_iff {g : E} : 0 < ∥ g ∥ ↔ g ≠ 0 :=
961
- dist_zero_right g ▸ dist_pos
936
+ @[simp] lemma norm_pos_iff {g : E} : 0 < ∥ g ∥ ↔ g ≠ 0 := norm_pos_iff'
962
937
963
- @[simp] lemma norm_le_zero_iff {g : E} : ∥g∥ ≤ 0 ↔ g = 0 :=
964
- by { rw [← dist_zero_right], exact dist_le_zero }
938
+ @[simp] lemma norm_le_zero_iff {g : E} : ∥g∥ ≤ 0 ↔ g = 0 := norm_le_zero_iff'
939
+
940
+ lemma norm_sub_eq_zero_iff {u v : E} : ∥u - v∥ = 0 ↔ u = v :=
941
+ by rw [norm_eq_zero, sub_eq_zero]
965
942
966
943
lemma eq_of_norm_sub_le_zero {g h : E} (a : ∥g - h∥ ≤ 0 ) : g = h :=
967
944
by rwa [← sub_eq_zero, ← norm_le_zero_iff]
968
945
969
946
lemma eq_of_norm_sub_eq_zero {u v : E} (h : ∥u - v∥ = 0 ) : u = v :=
970
- begin
971
- apply eq_of_dist_eq_zero,
972
- rwa dist_eq_norm
973
- end
974
-
975
- lemma norm_sub_eq_zero_iff {u v : E} : ∥u - v∥ = 0 ↔ u = v :=
976
- begin
977
- convert dist_eq_zero,
978
- rwa dist_eq_norm
979
- end
947
+ norm_sub_eq_zero_iff.1 h
980
948
981
949
@[simp] lemma nnnorm_eq_zero {a : E} : ∥a∥₊ = 0 ↔ a = 0 :=
982
- by simp only [nnreal.eq_iff.symm, nnreal.coe_zero , coe_nnnorm, norm_eq_zero]
950
+ by rw [← nnreal.coe_eq_zero , coe_nnnorm, norm_eq_zero]
983
951
984
952
/-- An injective group homomorphism from an `add_comm_group` to a `normed_group` induces a
985
953
`normed_group` structure on the domain.
0 commit comments