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

Commit b06d228

Browse files
committed
feat(analysis/normed_space/operator_norm): characterize the operator norm over a densely_normed_field in terms of the supremum (#16963)
This provides a few results pertaining to the operator norm over a `densely_normed_field`. In particular, if `0 ≤ r < ∥f∥` then there exists some `x` with `∥x∥ ≤ 1` such that `r < ∥f x∥`. Consequently, the operator norm is the supremum of the norm of the image of the unit ball under `f`.
1 parent 33fa3e4 commit b06d228

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

src/analysis/normed_space/operator_norm.lean

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,88 @@ lipschitz_with_iff_norm_sub_le.2 $ λ f g, ((f - g).le_op_norm x).trans_eq (mul_
463463

464464
end
465465

466+
section Sup
467+
468+
variables [ring_hom_isometric σ₁₂]
469+
470+
lemma exists_mul_lt_apply_of_lt_op_nnnorm (f : E →SL[σ₁₂] F) {r : ℝ≥0} (hr : r < ∥f∥₊) :
471+
∃ x, r * ∥x∥₊ < ∥f x∥₊ :=
472+
by simpa only [not_forall, not_le, set.mem_set_of] using not_mem_of_lt_cInf
473+
(nnnorm_def f ▸ hr : r < Inf {c : ℝ≥0 | ∀ x, ∥f x∥₊ ≤ c * ∥x∥₊}) (order_bot.bdd_below _)
474+
475+
lemma exists_mul_lt_of_lt_op_norm (f : E →SL[σ₁₂] F) {r : ℝ} (hr₀ : 0 ≤ r) (hr : r < ∥f∥) :
476+
∃ x, r * ∥x∥ < ∥f x∥ :=
477+
by { lift r to ℝ≥0 using hr₀, exact f.exists_mul_lt_apply_of_lt_op_nnnorm hr }
478+
479+
lemma exists_lt_apply_of_lt_op_nnnorm {𝕜 𝕜₂ E F : Type*} [normed_add_comm_group E]
480+
[seminormed_add_comm_group F] [densely_normed_field 𝕜] [nontrivially_normed_field 𝕜₂]
481+
{σ₁₂ : 𝕜 →+* 𝕜₂} [normed_space 𝕜 E] [normed_space 𝕜₂ F] [ring_hom_isometric σ₁₂]
482+
(f : E →SL[σ₁₂] F) {r : ℝ≥0} (hr : r < ∥f∥₊) : ∃ x : E, ∥x∥₊ < 1 ∧ r < ∥f x∥₊ :=
483+
begin
484+
obtain ⟨y, hy⟩ := f.exists_mul_lt_apply_of_lt_op_nnnorm hr,
485+
have hy' : ∥y∥₊ ≠ 0 := nnnorm_ne_zero_iff.2
486+
(λ heq, by simpa only [heq, nnnorm_zero, map_zero, not_lt_zero'] using hy),
487+
have hfy : ∥f y∥₊ ≠ 0 := (zero_le'.trans_lt hy).ne',
488+
rw [←inv_inv (∥f y∥₊), nnreal.lt_inv_iff_mul_lt (inv_ne_zero hfy), mul_assoc, mul_comm (∥y∥₊),
489+
←mul_assoc, ←nnreal.lt_inv_iff_mul_lt hy'] at hy,
490+
obtain ⟨k, hk₁, hk₂⟩ := normed_field.exists_lt_nnnorm_lt 𝕜 hy,
491+
refine ⟨k • y, (nnnorm_smul k y).symm ▸ (nnreal.lt_inv_iff_mul_lt hy').1 hk₂, _⟩,
492+
have : ∥σ₁₂ k∥₊ = ∥k∥₊ := subtype.ext ring_hom_isometric.is_iso,
493+
rwa [map_smulₛₗ f, nnnorm_smul, ←nnreal.div_lt_iff hfy, div_eq_mul_inv, this],
494+
end
495+
496+
lemma exists_lt_apply_of_lt_op_norm {𝕜 𝕜₂ E F : Type*} [normed_add_comm_group E]
497+
[seminormed_add_comm_group F] [densely_normed_field 𝕜] [nontrivially_normed_field 𝕜₂]
498+
{σ₁₂ : 𝕜 →+* 𝕜₂} [normed_space 𝕜 E] [normed_space 𝕜₂ F] [ring_hom_isometric σ₁₂]
499+
(f : E →SL[σ₁₂] F) {r : ℝ} (hr : r < ∥f∥) : ∃ x : E, ∥x∥ < 1 ∧ r < ∥f x∥ :=
500+
begin
501+
by_cases hr₀ : r < 0,
502+
{ exact ⟨0, by simpa using hr₀⟩, },
503+
{ lift r to ℝ≥0 using not_lt.1 hr₀,
504+
exact f.exists_lt_apply_of_lt_op_nnnorm hr, }
505+
end
506+
507+
lemma Sup_unit_ball_eq_nnnorm {𝕜 𝕜₂ E F : Type*} [normed_add_comm_group E]
508+
[seminormed_add_comm_group F] [densely_normed_field 𝕜] [nontrivially_normed_field 𝕜₂]
509+
{σ₁₂ : 𝕜 →+* 𝕜₂} [normed_space 𝕜 E] [normed_space 𝕜₂ F] [ring_hom_isometric σ₁₂]
510+
(f : E →SL[σ₁₂] F) : Sup ((λ x, ∥f x∥₊) '' ball 0 1) = ∥f∥₊ :=
511+
begin
512+
refine cSup_eq_of_forall_le_of_forall_lt_exists_gt ((nonempty_ball.mpr zero_lt_one).image _)
513+
_ (λ ub hub, _),
514+
{ rintro - ⟨x, hx, rfl⟩,
515+
simpa only [mul_one] using f.le_op_norm_of_le (mem_ball_zero_iff.1 hx).le },
516+
{ obtain ⟨x, hx, hxf⟩ := f.exists_lt_apply_of_lt_op_nnnorm hub,
517+
exact ⟨_, ⟨x, mem_ball_zero_iff.2 hx, rfl⟩, hxf⟩ },
518+
end
519+
520+
lemma Sup_unit_ball_eq_norm {𝕜 𝕜₂ E F : Type*} [normed_add_comm_group E]
521+
[seminormed_add_comm_group F] [densely_normed_field 𝕜] [nontrivially_normed_field 𝕜₂]
522+
{σ₁₂ : 𝕜 →+* 𝕜₂} [normed_space 𝕜 E] [normed_space 𝕜₂ F] [ring_hom_isometric σ₁₂]
523+
(f : E →SL[σ₁₂] F) : Sup ((λ x, ∥f x∥) '' ball 0 1) = ∥f∥ :=
524+
by simpa only [nnreal.coe_Sup, set.image_image] using nnreal.coe_eq.2 f.Sup_unit_ball_eq_nnnorm
525+
526+
lemma Sup_closed_unit_ball_eq_nnnorm {𝕜 𝕜₂ E F : Type*} [normed_add_comm_group E]
527+
[seminormed_add_comm_group F] [densely_normed_field 𝕜] [nontrivially_normed_field 𝕜₂]
528+
{σ₁₂ : 𝕜 →+* 𝕜₂} [normed_space 𝕜 E] [normed_space 𝕜₂ F] [ring_hom_isometric σ₁₂]
529+
(f : E →SL[σ₁₂] F) : Sup ((λ x, ∥f x∥₊) '' closed_ball 0 1) = ∥f∥₊ :=
530+
begin
531+
have hbdd : ∀ y ∈ (λ x, ∥f x∥₊) '' closed_ball 0 1, y ≤ ∥f∥₊,
532+
{ rintro - ⟨x, hx, rfl⟩, exact f.unit_le_op_norm x (mem_closed_ball_zero_iff.1 hx) },
533+
refine le_antisymm (cSup_le ((nonempty_closed_ball.mpr zero_le_one).image _) hbdd) _,
534+
rw ←Sup_unit_ball_eq_nnnorm,
535+
exact cSup_le_cSup ⟨∥f∥₊, hbdd⟩ ((nonempty_ball.2 zero_lt_one).image _)
536+
(set.image_subset _ ball_subset_closed_ball),
537+
end
538+
539+
lemma Sup_closed_unit_ball_eq_norm {𝕜 𝕜₂ E F : Type*} [normed_add_comm_group E]
540+
[seminormed_add_comm_group F] [densely_normed_field 𝕜] [nontrivially_normed_field 𝕜₂]
541+
{σ₁₂ : 𝕜 →+* 𝕜₂} [normed_space 𝕜 E] [normed_space 𝕜₂ F] [ring_hom_isometric σ₁₂]
542+
(f : E →SL[σ₁₂] F) : Sup ((λ x, ∥f x∥) '' closed_ball 0 1) = ∥f∥ :=
543+
by simpa only [nnreal.coe_Sup, set.image_image] using nnreal.coe_eq.2
544+
f.Sup_closed_unit_ball_eq_nnnorm
545+
546+
end Sup
547+
466548
section
467549

468550
lemma op_norm_ext [ring_hom_isometric σ₁₃] (f : E →SL[σ₁₂] F) (g : E →SL[σ₁₃] G)

0 commit comments

Comments
 (0)