Theorem: ContinuousLinearMap.homothety_norm
File: Mathlib/Analysis/NormedSpace/OperatorNorm.lean

tactic: obtain ⟨x, hx⟩ : ∃ x : E, x ≠ 0 := exists_ne 0
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2620779
E : Type u_3
Eₗ : Type ?u.2620785
F : Type u_4
Fₗ : Type ?u.2620791
G : Type ?u.2620794
Gₗ : Type ?u.2620797
𝓕 : Type ?u.2620800
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedAddCommGroup G
inst✝⁹ : NormedAddCommGroup Fₗ
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NontriviallyNormedField 𝕜₂
inst✝⁶ : NontriviallyNormedField 𝕜₃
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜₃ G
inst✝² : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x y z : E
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : Nontrivial E
f : E →SL[σ₁₂] F
a : ℝ
hf : ∀ (x : E), ‖↑f x‖ = a * ‖x‖
⊢ ‖f‖ = a

tactic: rw [← norm_pos_iff] at hx
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2620779
E : Type u_3
Eₗ : Type ?u.2620785
F : Type u_4
Fₗ : Type ?u.2620791
G : Type ?u.2620794
Gₗ : Type ?u.2620797
𝓕 : Type ?u.2620800
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedAddCommGroup G
inst✝⁹ : NormedAddCommGroup Fₗ
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NontriviallyNormedField 𝕜₂
inst✝⁶ : NontriviallyNormedField 𝕜₃
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜₃ G
inst✝² : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : Nontrivial E
f : E →SL[σ₁₂] F
a : ℝ
hf : ∀ (x : E), ‖↑f x‖ = a * ‖x‖
x : E
hx : x ≠ 0
⊢ ‖f‖ = a

tactic: have ha : 0 ≤ a := by simpa only [hf, hx, zero_le_mul_right] using norm_nonneg (f x)
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2620779
E : Type u_3
Eₗ : Type ?u.2620785
F : Type u_4
Fₗ : Type ?u.2620791
G : Type ?u.2620794
Gₗ : Type ?u.2620797
𝓕 : Type ?u.2620800
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedAddCommGroup G
inst✝⁹ : NormedAddCommGroup Fₗ
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NontriviallyNormedField 𝕜₂
inst✝⁶ : NontriviallyNormedField 𝕜₃
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜₃ G
inst✝² : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : Nontrivial E
f : E →SL[σ₁₂] F
a : ℝ
hf : ∀ (x : E), ‖↑f x‖ = a * ‖x‖
x : E
hx : 0 < ‖x‖
⊢ ‖f‖ = a

tactic: apply le_antisymm (f.op_norm_le_bound ha fun y => le_of_eq (hf y))
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2620779
E : Type u_3
Eₗ : Type ?u.2620785
F : Type u_4
Fₗ : Type ?u.2620791
G : Type ?u.2620794
Gₗ : Type ?u.2620797
𝓕 : Type ?u.2620800
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedAddCommGroup G
inst✝⁹ : NormedAddCommGroup Fₗ
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NontriviallyNormedField 𝕜₂
inst✝⁶ : NontriviallyNormedField 𝕜₃
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜₃ G
inst✝² : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : Nontrivial E
f : E →SL[σ₁₂] F
a : ℝ
hf : ∀ (x : E), ‖↑f x‖ = a * ‖x‖
x : E
hx : 0 < ‖x‖
ha : 0 ≤ a
⊢ ‖f‖ = a

tactic: simpa only [hf, hx, mul_le_mul_right] using f.le_op_norm x
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2620779
E : Type u_3
Eₗ : Type ?u.2620785
F : Type u_4
Fₗ : Type ?u.2620791
G : Type ?u.2620794
Gₗ : Type ?u.2620797
𝓕 : Type ?u.2620800
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedAddCommGroup G
inst✝⁹ : NormedAddCommGroup Fₗ
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NontriviallyNormedField 𝕜₂
inst✝⁶ : NontriviallyNormedField 𝕜₃
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜₃ G
inst✝² : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : Nontrivial E
f : E →SL[σ₁₂] F
a : ℝ
hf : ∀ (x : E), ‖↑f x‖ = a * ‖x‖
x : E
hx : 0 < ‖x‖
ha : 0 ≤ a
⊢ a ≤ ‖f‖

tactic: simpa only [hf, hx, zero_le_mul_right] using norm_nonneg (f x)
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2620779
E : Type u_3
Eₗ : Type ?u.2620785
F : Type u_4
Fₗ : Type ?u.2620791
G : Type ?u.2620794
Gₗ : Type ?u.2620797
𝓕 : Type ?u.2620800
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedAddCommGroup G
inst✝⁹ : NormedAddCommGroup Fₗ
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NontriviallyNormedField 𝕜₂
inst✝⁶ : NontriviallyNormedField 𝕜₃
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜₂ F
inst✝³ : NormedSpace 𝕜₃ G
inst✝² : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g : E →SL[σ₁₂] F
x✝ y z : E
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : Nontrivial E
f : E →SL[σ₁₂] F
a : ℝ
hf : ∀ (x : E), ‖↑f x‖ = a * ‖x‖
x : E
hx : 0 < ‖x‖
⊢ 0 ≤ a