Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 41bef4a

Browse files
committed
feat(analysis/normed/group/basic): norm lemmas for lipschitz and antilipschitz (#19103)
This also corrects some nonsense names produced by to_additive.
1 parent d3b54a9 commit 41bef4a

3 files changed

Lines changed: 28 additions & 6 deletions

File tree

src/analysis/calculus/fderiv/basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ lemma has_fderiv_at_filter.is_O_sub_rev (hf : has_fderiv_at_filter f f' x L) {C}
693693
(λ x', x' - x) =O[L] (λ x', f x' - f x) :=
694694
have (λ x', x' - x) =O[L] (λ x', f' (x' - x)),
695695
from is_O_iff.2 ⟨C, eventually_of_forall $ λ x',
696-
add_monoid_hom_class.bound_of_antilipschitz f' hf' _⟩,
696+
zero_hom_class.bound_of_antilipschitz f' hf' _⟩,
697697
(this.trans (hf.trans_is_O this).right_is_O_add).congr (λ _, rfl) (λ _, sub_add_cancel _ _)
698698

699699
end continuous

src/analysis/normed/group/basic.lean

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,8 @@ by simpa [dist_eq_norm_div] using dist_triangle a 1 b
387387
‖a₁ / a₂‖ ≤ r₁ + r₂ :=
388388
(norm_div_le a₁ a₂).trans $ add_le_add H₁ H₂
389389

390-
@[to_additive] lemma dist_le_norm_mul_norm (a b : E) : dist a b ≤ ‖a‖ + ‖b‖ :=
390+
@[to_additive dist_le_norm_add_norm] lemma dist_le_norm_add_norm' (a b : E) :
391+
dist a b ≤ ‖a‖ + ‖b‖ :=
391392
by { rw dist_eq_norm_div, apply norm_div_le }
392393

393394
@[to_additive abs_norm_sub_norm_le] lemma abs_norm_sub_norm_le' (a b : E) : |‖a‖ - ‖b‖| ≤ ‖a / b‖ :=
@@ -656,9 +657,29 @@ by rw [emetric.mem_ball, edist_eq_coe_nnnorm']
656657
antilipschitz_with K f :=
657658
antilipschitz_with.of_le_mul_dist $ λ x y, by simpa only [dist_eq_norm_div, map_div] using h (x / y)
658659

659-
@[to_additive] lemma monoid_hom_class.bound_of_antilipschitz [monoid_hom_class 𝓕 E F] (f : 𝓕)
660+
@[to_additive lipschitz_with.norm_le_mul]
661+
lemma lipschitz_with.norm_le_mul' {f : E → F}
662+
{K : ℝ≥0} (h : lipschitz_with K f) (hf : f 1 = 1) (x) : ‖f x‖ ≤ K * ‖x‖ :=
663+
by simpa only [dist_one_right, hf] using h.dist_le_mul x 1
664+
665+
@[to_additive lipschitz_with.nnorm_le_mul]
666+
lemma lipschitz_with.nnorm_le_mul' {f : E → F}
667+
{K : ℝ≥0} (h : lipschitz_with K f) (hf : f 1 = 1) (x) : ‖f x‖₊ ≤ K * ‖x‖₊ :=
668+
h.norm_le_mul' hf x
669+
670+
@[to_additive antilipschitz_with.le_mul_norm]
671+
lemma antilipschitz_with.le_mul_norm' {f : E → F}
672+
{K : ℝ≥0} (h : antilipschitz_with K f) (hf : f 1 = 1) (x) : ‖x‖ ≤ K * ‖f x‖ :=
673+
by simpa only [dist_one_right, hf] using h.le_mul_dist x 1
674+
675+
@[to_additive antilipschitz_with.le_mul_nnnorm]
676+
lemma antilipschitz_with.le_mul_nnnorm' {f : E → F}
677+
{K : ℝ≥0} (h : antilipschitz_with K f) (hf : f 1 = 1) (x) : ‖x‖₊ ≤ K * ‖f x‖₊ :=
678+
h.le_mul_norm' hf x
679+
680+
@[to_additive] lemma one_hom_class.bound_of_antilipschitz [one_hom_class 𝓕 E F] (f : 𝓕)
660681
{K : ℝ≥0} (h : antilipschitz_with K f) (x) : ‖x‖ ≤ K * ‖f x‖ :=
661-
by simpa only [dist_one_right, map_one] using h.le_mul_dist x 1
682+
h.le_mul_nnnorm' (map_one f) x
662683

663684
end nnnorm
664685

@@ -1285,7 +1306,8 @@ end
12851306
(hg : lipschitz_with Kg (g / f)) (hK : Kg < Kf⁻¹) : antilipschitz_with (Kf⁻¹ - Kg)⁻¹ g :=
12861307
by simpa only [pi.div_apply, mul_div_cancel'_right] using hf.mul_lipschitz_with hg hK
12871308

1288-
@[to_additive] lemma le_mul_norm_div {f : E → F} (hf : antilipschitz_with K f) (x y : E) :
1309+
@[to_additive le_mul_norm_sub]
1310+
lemma le_mul_norm_div {f : E → F} (hf : antilipschitz_with K f) (x y : E) :
12891311
‖x / y‖ ≤ K * ‖f x / f y‖ :=
12901312
by simp [← dist_eq_norm_div, hf.le_mul_dist x y]
12911313

src/analysis/normed_space/continuous_linear_map.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ add_monoid_hom_class.antilipschitz_of_bound _ h
105105

106106
lemma bound_of_antilipschitz (f : E →SL[σ] F) {K : ℝ≥0} (h : antilipschitz_with K f) (x) :
107107
‖x‖ ≤ K * ‖f x‖ :=
108-
add_monoid_hom_class.bound_of_antilipschitz _ h x
108+
zero_hom_class.bound_of_antilipschitz _ h x
109109

110110
end continuous_linear_map
111111

0 commit comments

Comments
 (0)