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

Commit a0369fd

Browse files
committed
doc(analysis/normed_space): docstrings
1 parent 4cfd242 commit a0369fd

2 files changed

Lines changed: 14 additions & 54 deletions

File tree

src/analysis/normed_space/bounded_linear_maps.lean

Lines changed: 8 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ lemma has_pos_bound : ∃ M > 0, ∀ x, ∥f x∥ ≤ M * ∥x∥ :=
6969
⟨max 1 M, lt_of_lt_of_le zero_lt_one (le_max_left 1 _), λ _, le_trans
7070
(hf _) (mul_le_mul_of_nonneg_right (le_max_right _ _) (norm_nonneg _))⟩
7171

72-
-- some lemmas about things having bounds and things being bounds
7372
lemma ratio_has_pos_bound : ∃ M > 0, ∀ x, ∥f x∥ / ∥x∥ ≤ M :=
7473
let ⟨M, hMp, hMb⟩ := has_pos_bound f in ⟨M, hMp,
7574
λ x, or.elim (lt_or_eq_of_le (norm_nonneg x))
@@ -79,11 +78,12 @@ lemma ratio_has_pos_bound : ∃ M > 0, ∀ x, ∥f x∥ / ∥x∥ ≤ M :=
7978
def of_linear_map_of_bounded {f : E →ₗ[k] F}
8079
(h : ∃ M, ∀ x, ∥f x∥ ≤ M * ∥x∥) : E →L[k] F := ⟨f, h⟩
8180

82-
-- the zero map and the identity maps are bounded
81+
/-- the zero map is bounded. -/
8382
def zero : E →L[k] F := ⟨0, 0, λ x, by rw zero_mul; exact le_of_eq norm_zero⟩
83+
/-- the identity map is bounded. -/
8484
def id : E →L[k] E := ⟨linear_map.id, 1, λ x, le_of_eq (one_mul _).symm⟩
8585

86-
-- boundedness respects a bunch of operations
86+
/-- the composition of two bounded linear maps is bounded. -/
8787
def comp (g : F →L[k] G) (f : E →L[k] F) : E →L[k] G :=
8888
⟨linear_map.comp g.to_linear_map f.to_linear_map,
8989
let ⟨Mg, hMgp, hMgb⟩ := has_pos_bound g in
@@ -139,8 +139,6 @@ instance : vector_space k (E →L[k] F) := {
139139
smul_add := λ _ _ _, ext $ λ _, smul_add _ _ _
140140
}
141141

142-
143-
-- endomorphism algebra
144142
instance : ring (E →L[k] E) := {
145143
mul := (*),
146144
one := 1,
@@ -165,7 +163,7 @@ instance : algebra k (E →L[k] E) := {
165163
commutes' := λ _ _, ext $ λ _, map_smul _ _ _,
166164
}
167165

168-
-- a bounded linear map is continuous.
166+
/-- bounded linear maps are continuous. -/
169167
lemma tendsto (x : E): f →_{x} (f x) :=
170168
tendsto_iff_norm_tendsto_zero.2 $ let ⟨M, hf⟩ := f.bounded in
171169
(squeeze_zero (λ _, norm_nonneg _)
@@ -175,50 +173,12 @@ lemma tendsto (x : E): f →_{x} (f x) :=
175173
protected theorem continuous : continuous f :=
176174
continuous_iff_continuous_at.2 (tendsto f)
177175

178-
/-
179-
theorem of_continuous_linear_map (f : E →ₗ[k] F) (hf : continuous f)
180-
(hk : normed_field.nontrivial k) : E →L[k] F :=
181-
⟨f,
182-
let ⟨ϖ, hϖn, hϖ⟩ := hk in
183-
have hϖp : 0 < ∥ϖ∥, from (norm_pos_iff _).2 hϖn,
184-
have hltϖ : 1 < ∥ϖ∥⁻¹, from one_lt_inv hϖp hϖ,
185-
186-
let ⟨δ, hδp, hδ⟩ :=
187-
exists_delta_of_continuous hf ((norm_pos_iff _).2 hϖn) 0 in
188-
189-
⟨δ⁻¹, λ x, or.elim (lt_or_eq_of_le (norm_nonneg x))
190-
191-
(λ hxp,
192-
have hδx : δ⁻¹ * ∥x∥ > 0, from mul_pos (inv_pos hδp) hxp,
193-
have hη : ∀ c : ℝ, c > 0 → ∃ η : k, c < ∥η∥ ∧ ∥η∥ ≤ c * ∥ϖ∥⁻¹, from
194-
(λ c hcp, let ⟨n, hltn, hnlt⟩ := exists_int_pow_near hcp hltϖ in
195-
⟨ϖ⁻¹^(n + 1),
196-
by rwa [normed_field.norm_fpow, norm_inv],
197-
begin
198-
have tmp : ∥ϖ∥⁻¹ ≠ 0, from _,
199-
rw [normed_field.norm_fpow, norm_inv, fpow_add tmp, fpow_one],
200-
exact mul_le_mul_of_nonneg_right hltn (le_of_lt (inv_pos hϖp)),
201-
end⟩),
202-
let ⟨η, hltη, hηlt⟩ := hη _ (mul_pos (inv_pos hδp) hxp) in
203-
204-
have hηp : 0 < ∥η∥, from lt_trans hδx hltη,
205-
have hηn : η ≠ 0, from (norm_pos_iff _).1 hηp,
206-
have hηx : ∥η⁻¹ • x∥ ≤ δ, from le_of_lt (by
207-
erw [norm_smul, norm_inv, mul_comm, div_lt_iff hηp,
208-
mul_comm, ←div_lt_iff hδp]; rwa [mul_comm] at hltη),
209-
210-
have hfηx : ∥f (η⁻¹ • x)∥ ≤ ∥ϖ∥,
211-
by simp [dist_eq_norm] at hδ; exact le_of_lt (hδ _ hηx),
212-
213-
calc ∥f x∥ = _ : linear_map.norm_mul_map_smul f η x hηn
214-
... ≤ ∥η∥ * ∥ϖ∥ : mul_le_mul_of_nonneg_left hfηx (norm_nonneg _)
215-
... ≤ δ⁻¹ * ∥x∥ : by erw [le_div_iff hϖp] at hηlt; exact hηlt)
216-
(λ heq,
217-
have hf : f.to_fun 0 = 0, from linear_map.map_zero f,
218-
by rw [←heq, (norm_eq_zero _).1 heq.symm, hf, mul_zero, norm_zero])⟩⟩
219-
-/
220176
end bounded_linear_map
221177

178+
179+
-- deriv.lean is dependent on `is_bounded_linear_map`
180+
-- and has not yet been refactored.
181+
222182
structure is_bounded_linear_map (k : Type*)
223183
[normed_field k] {E : Type*} [normed_space k E] {F : Type*} [normed_space k F] (L : E → F)
224184
extends is_linear_map k L : Prop :=

src/analysis/normed_space/operator_norm.lean

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import topology.metric_space.lipschitz
2020
variable {k : Type*}
2121
variables {E : Type*} {F : Type*} {G : Type*}
2222

23-
-- refactor : formulation for bundled bounded_linear_map
2423
section op_norm
2524

2625
variable [normed_field k]
@@ -35,7 +34,8 @@ noncomputable def op_norm := real.Inf { c | c ≥ 0 ∧ ∀ x, ∥f x∥ ≤ c
3534

3635
noncomputable instance : has_norm (bounded_linear_map k E F) := ⟨op_norm⟩
3736

38-
-- so that invocations of real.Inf_le make sense:
37+
-- so that invocations of real.Inf_le make sense: the set of
38+
-- bounds is nonempty and bounded below.
3939
lemma bounds_nonempty {f : bounded_linear_map k E F} :
4040
∃ c, c ∈ { c | c ≥ 0 ∧ ∀ x, ∥f x∥ ≤ c * ∥x∥ } :=
4141
let ⟨M, hMp, hMb⟩ := f.has_pos_bound in ⟨M, le_of_lt hMp, hMb⟩
@@ -54,12 +54,12 @@ lemma le_op_norm : ∥f x∥ ≤ ∥f∥ * ∥x∥ :=
5454
((real.le_Inf _ bounds_nonempty bounds_bdd_below).2
5555
(λ c ⟨_, hc⟩, div_le_of_le_mul hlt (by rw mul_comm; exact hc _))))
5656

57-
-- results about bounding the unit ball. (naming conventions?)
5857
lemma ratio_le_op_norm : ∥f x∥ / ∥x∥ ≤ ∥f∥ :=
5958
(or.elim (lt_or_eq_of_le (norm_nonneg _))
6059
(λ hlt, div_le_of_le_mul hlt (by rw mul_comm; exact le_op_norm _))
6160
(λ heq, by rw [←heq, div_zero]; exact op_norm_nonneg _))
6261

62+
/-- the image of the unit ball under a bounded linear map is bounded. -/
6363
lemma unit_le_op_norm : ∥x∥ ≤ 1 → ∥f x∥ ≤ ∥f∥ :=
6464
λ hx, by rw [←(mul_one ∥f∥)];
6565
calc _ ≤ (op_norm f) * ∥x∥ : le_op_norm _
@@ -94,18 +94,18 @@ lemma op_norm_smul : ∥c • f∥ = ∥c∥ * ∥f∥ :=
9494
(by rw [ mul_comm, ←norm_smul ]; exact hc _))⟩))
9595
(λ heq, by rw [←heq, zero_mul]; exact hn))))
9696

97-
-- the bounded linear maps themselves form a normed space w/ the op norm
97+
/-- bounded linear maps themselves form a normed space w/ the op norm -/
9898
noncomputable instance : normed_space k (bounded_linear_map k E F) :=
9999
normed_space.of_core _ _ ⟨op_norm_eq_zero, op_norm_smul, op_norm_triangle⟩
100100

101-
-- operator norm is submultiplicative
101+
/-- operator norm is submultiplicative. -/
102102
lemma op_norm_comp_le : ∥comp h f∥ ≤ ∥h∥ * ∥f∥ :=
103103
(real.Inf_le _
104104
bounds_bdd_below ⟨mul_nonneg (op_norm_nonneg _) (op_norm_nonneg _),
105105
λ x, by rw mul_assoc; calc _ ≤ ∥h∥ * ∥f x∥: le_op_norm _
106106
... ≤ _ : mul_le_mul_of_nonneg_left (le_op_norm _) (op_norm_nonneg _)⟩)
107107

108-
-- bounded linear maps are lipschitz continuous
108+
/-- bounded linear maps are lipschitz continuous. -/
109109
theorem lipschitz : lipschitz_with ∥f∥ f :=
110110
⟨op_norm_nonneg _, λ x y, by rw [ dist_eq_norm, dist_eq_norm, ←map_sub];
111111
exact le_op_norm _⟩

0 commit comments

Comments
 (0)