Theorem: ContinuousLinearMap.sSup_closed_unit_ball_eq_nnnorm
File: Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean

Proof steps:
state_before: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
⊢ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1) = ‖f‖₊
state_after: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊
⊢ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1) = ‖f‖₊
tactic: have hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊ := by
    rintro - ⟨x, hx, rfl⟩
    exact f.unit_le_opNorm x (mem_closedBall_zero_iff.1 hx)
state_before: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊
⊢ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1) = ‖f‖₊
state_after: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊
⊢ ‖f‖₊ ≤ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1)
tactic: refine le_antisymm (csSup_le ((nonempty_closedBall.mpr zero_le_one).image _) hbdd) ?_
state_before: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊
⊢ ‖f‖₊ ≤ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1)
state_after: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊
⊢ sSup ((fun x => ‖f x‖₊) '' ball 0 1) ≤ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1)
tactic: rw [← sSup_unit_ball_eq_nnnorm]
state_before: 𝕜✝ : Type u_1
𝕜₂✝ : Type u_2
𝕜₃ : Type u_3
E✝ : Type u_4
Eₗ : Type u_5
F✝ : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝²⁴ : SeminormedAddCommGroup E✝
inst✝²³ : SeminormedAddCommGroup Eₗ
inst✝²² : SeminormedAddCommGroup F✝
inst✝²¹ : SeminormedAddCommGroup Fₗ
inst✝²⁰ : SeminormedAddCommGroup G
inst✝¹⁹ : SeminormedAddCommGroup Gₗ
inst✝¹⁸ : NontriviallyNormedField 𝕜✝
inst✝¹⁷ : NontriviallyNormedField 𝕜₂✝
inst✝¹⁶ : NontriviallyNormedField 𝕜₃
inst✝¹⁵ : NormedSpace 𝕜✝ E✝
inst✝¹⁴ : NormedSpace 𝕜✝ Eₗ
inst✝¹³ : NormedSpace 𝕜₂✝ F✝
inst✝¹² : NormedSpace 𝕜✝ Fₗ
inst✝¹¹ : NormedSpace 𝕜₃ G
inst✝¹⁰ : NormedSpace 𝕜✝ Gₗ
σ₁₂✝ : 𝕜✝ →+* 𝕜₂✝
σ₂₃ : 𝕜₂✝ →+* 𝕜₃
σ₁₃ : 𝕜✝ →+* 𝕜₃
inst✝⁹ : RingHomCompTriple σ₁₂✝ σ₂₃ σ₁₃
inst✝⁸ : FunLike 𝓕 E✝ F✝
inst✝⁷ : RingHomIsometric σ₁₂✝
𝕜 : Type u_11
𝕜₂ : Type u_12
E : Type u_13
F : Type u_14
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : SeminormedAddCommGroup F
inst✝⁴ : DenselyNormedField 𝕜
inst✝³ : NontriviallyNormedField 𝕜₂
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜₂ F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
hbdd : ∀ y ∈ (fun x => ‖f x‖₊) '' closedBall 0 1, y ≤ ‖f‖₊
⊢ sSup ((fun x => ‖f x‖₊) '' ball 0 1) ≤ sSup ((fun x => ‖f x‖₊) '' closedBall 0 1)
state_after: no goals
tactic: exact csSup_le_csSup ⟨‖f‖₊, hbdd⟩ ((nonempty_ball.2 zero_lt_one).image _)
    (Set.image_subset _ ball_subset_closedBall)