Theorem: ContinuousLinearMap.norm_extendTo𝕜'_bound
File: Mathlib/Analysis/NormedSpace/Extend.lean

tactic: set lm : F →ₗ[𝕜] 𝕜 := fr.toLinearMap.extendTo𝕜'
state_before: 𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
⊢ ‖(↑fr).extendTo𝕜' x‖ ≤ ‖fr‖ * ‖x‖
state_after: 𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
⊢ ‖lm x‖ ≤ ‖fr‖ * ‖x‖

tactic: by_cases h : lm x = 0
state_before: 𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
⊢ ‖lm x‖ ≤ ‖fr‖ * ‖x‖
state_after: case pos
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : lm x = 0
⊢ ‖lm x‖ ≤ ‖fr‖ * ‖x‖

case neg
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : ¬lm x = 0
⊢ ‖lm x‖ ≤ ‖fr‖ * ‖x‖

tactic: rw [← mul_le_mul_left (norm_pos_iff.2 h), ← sq]
state_before: case neg
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : ¬lm x = 0
⊢ ‖lm x‖ ≤ ‖fr‖ * ‖x‖
state_after: case neg
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : ¬lm x = 0
⊢ ‖lm x‖ ^ 2 ≤ ‖lm x‖ * (‖fr‖ * ‖x‖)

tactic: calc
  ‖lm x‖ ^ 2 = fr (conj (lm x : 𝕜) • x) := fr.toLinearMap.norm_extendTo𝕜'_apply_sq x
  _ ≤ ‖fr (conj (lm x : 𝕜) • x)‖ := le_abs_self _
  _ ≤ ‖fr‖ * ‖conj (lm x : 𝕜) • x‖ := le_opNorm _ _
  _ = ‖(lm x : 𝕜)‖ * (‖fr‖ * ‖x‖) := by rw [norm_smul, norm_conj, mul_left_comm]
state_before: case neg
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : ¬lm x = 0
⊢ ‖lm x‖ ^ 2 ≤ ‖lm x‖ * (‖fr‖ * ‖x‖)
state_after: no goals

tactic: rw [h, norm_zero]
state_before: case pos
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : lm x = 0
⊢ ‖lm x‖ ≤ ‖fr‖ * ‖x‖
state_after: case pos
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : lm x = 0
⊢ 0 ≤ ‖fr‖ * ‖x‖

tactic: apply mul_nonneg <;> exact norm_nonneg _
state_before: case pos
𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : lm x = 0
⊢ 0 ≤ ‖fr‖ * ‖x‖
state_after: no goals

tactic: rw [norm_smul, norm_conj, mul_left_comm]
state_before: 𝕜 : Type u_1
inst✝⁴ : RCLike 𝕜
F : Type u_2
inst✝³ : SeminormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedSpace ℝ F
inst✝ : IsScalarTower ℝ 𝕜 F
fr : F →L[ℝ] ℝ
x : F
lm : F →ₗ[𝕜] 𝕜 := (↑fr).extendTo𝕜'
h : ¬lm x = 0
⊢ ‖fr‖ * ‖(starRingEnd 𝕜) (lm x) • x‖ = ‖lm x‖ * (‖fr‖ * ‖x‖)
state_after: no goals