l3lab/ntp-mathlib huggingface dataset:
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · 

Proof state:
case refine'_1
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
⊢ ‖smulRight c f‖ ≤ ‖c‖ * ‖f‖

Next tactic:
refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    

Proof state:
case refine'_1
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
x : E
⊢ ‖(smulRight c f) x‖ ≤ ‖c‖ * ‖f‖ * ‖x‖

Next tactic:
calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by 

Proof state:
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
x : E
⊢ ‖c‖ * ‖x‖ * ‖f‖ = ‖c‖ * ‖f‖ * ‖x‖

Next tactic:
ring
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · 

Proof state:
case refine'_2
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
⊢ ‖c‖ * ‖f‖ ≤ ‖smulRight c f‖

Next tactic:
by_cases h : f = 0
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · by_cases h : f = 0
    · 

Proof state:
case pos
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
h : f = 0
⊢ ‖c‖ * ‖f‖ ≤ ‖smulRight c f‖

Next tactic:
simp [h]
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · by_cases h : f = 0
    · simp [h]
    · 

Proof state:
case neg
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
h : ¬f = 0
⊢ ‖c‖ * ‖f‖ ≤ ‖smulRight c f‖

Next tactic:
have : 0 < ‖f‖ := norm_pos_iff.2 h
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · by_cases h : f = 0
    · simp [h]
    · have : 0 < ‖f‖ := norm_pos_iff.2 h
      

Proof state:
case neg
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
h : ¬f = 0
this : 0 < ‖f‖
⊢ ‖c‖ * ‖f‖ ≤ ‖smulRight c f‖

Next tactic:
rw [← le_div_iff this]
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · by_cases h : f = 0
    · simp [h]
    · have : 0 < ‖f‖ := norm_pos_iff.2 h
      rw [← le_div_iff this]
      

Proof state:
case neg
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
h : ¬f = 0
this : 0 < ‖f‖
⊢ ‖c‖ ≤ ‖smulRight c f‖ / ‖f‖

Next tactic:
refine' op_norm_le_bound _ (div_nonneg (norm_nonneg _) (norm_nonneg f)) fun x => _
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · by_cases h : f = 0
    · simp [h]
    · have : 0 < ‖f‖ := norm_pos_iff.2 h
      rw [← le_div_iff this]
      refine' op_norm_le_bound _ (div_nonneg (norm_nonneg _) (norm_nonneg f)) fun x => _
      

Proof state:
case neg
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
h : ¬f = 0
this : 0 < ‖f‖
x : E
⊢ ‖c x‖ ≤ ‖smulRight c f‖ / ‖f‖ * ‖x‖

Next tactic:
rw [div_mul_eq_mul_div, le_div_iff this]
/-- The norm of the tensor product of a scalar linear map and of an element of a normed space
is the product of the norms. -/
@[simp]
theorem norm_smulRight_apply (c : E →L[𝕜] 𝕜) (f : Fₗ) : ‖smulRight c f‖ = ‖c‖ * ‖f‖ := by
  refine' le_antisymm _ _
  · refine' op_norm_le_bound _ (mul_nonneg (norm_nonneg _) (norm_nonneg _)) fun x => _
    calc
      ‖c x • f‖ = ‖c x‖ * ‖f‖ := norm_smul _ _
      _ ≤ ‖c‖ * ‖x‖ * ‖f‖ := (mul_le_mul_of_nonneg_right (le_op_norm _ _) (norm_nonneg _))
      _ = ‖c‖ * ‖f‖ * ‖x‖ := by ring
  · by_cases h : f = 0
    · simp [h]
    · have : 0 < ‖f‖ := norm_pos_iff.2 h
      rw [← le_div_iff this]
      refine' op_norm_le_bound _ (div_nonneg (norm_nonneg _) (norm_nonneg f)) fun x => _
      rw [div_mul_eq_mul_div, le_div_iff this]
      

Proof state:
case neg
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c : E →L[𝕜] 𝕜
f : Fₗ
h : ¬f = 0
this : 0 < ‖f‖
x : E
⊢ ‖c x‖ * ‖f‖ ≤ ‖smulRight c f‖ * ‖x‖

Next tactic:
calc
        ‖c x‖ * ‖f‖ = ‖c x • f‖ := (norm_smul _ _).symm
        _ = ‖smulRight c f x‖ := rfl
        _ ≤ ‖smulRight c f‖ * ‖x‖ := le_op_norm _ _
/-- `ContinuousLinearMap.smulRight` as a continuous trilinear map:
`smulRightL (c : E →L[𝕜] 𝕜) (f : F) (x : E) = c x • f`. -/
def smulRightL : (E →L[𝕜] 𝕜) →L[𝕜] Fₗ →L[𝕜] E →L[𝕜] Fₗ :=
  LinearMap.mkContinuous₂
    { toFun := smulRightₗ
      map_add' := fun c₁ c₂ => by
        

Proof state:
𝕜 : 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✝²¹ : 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 : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c₁ c₂ : E →L[𝕜] 𝕜
⊢ smulRightₗ (c₁ + c₂) = smulRightₗ c₁ + smulRightₗ c₂

Next tactic:
ext x
/-- `ContinuousLinearMap.smulRight` as a continuous trilinear map:
`smulRightL (c : E →L[𝕜] 𝕜) (f : F) (x : E) = c x • f`. -/
def smulRightL : (E →L[𝕜] 𝕜) →L[𝕜] Fₗ →L[𝕜] E →L[𝕜] Fₗ :=
  LinearMap.mkContinuous₂
    { toFun := smulRightₗ
      map_add' := fun c₁ c₂ => by
        ext x
        

Proof state:
case h.h
𝕜 : 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✝²¹ : 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 : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
c₁ c₂ : E →L[𝕜] 𝕜
x : Fₗ
x✝ : E
⊢ ((smulRightₗ (c₁ + c₂)) x) x✝ = ((smulRightₗ c₁ + smulRightₗ c₂) x) x✝

Next tactic:
simp only [add_smul, coe_smulRightₗ, add_apply, smulRight_apply, LinearMap.add_apply]
/-- `ContinuousLinearMap.smulRight` as a continuous trilinear map:
`smulRightL (c : E →L[𝕜] 𝕜) (f : F) (x : E) = c x • f`. -/
def smulRightL : (E →L[𝕜] 𝕜) →L[𝕜] Fₗ →L[𝕜] E →L[𝕜] Fₗ :=
  LinearMap.mkContinuous₂
    { toFun := smulRightₗ
      map_add' := fun c₁ c₂ => by
        ext x
        simp only [add_smul, coe_smulRightₗ, add_apply, smulRight_apply, LinearMap.add_apply]
      map_smul' := fun m c => by
        

Proof state:
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
m : 𝕜
c : E →L[𝕜] 𝕜
⊢ AddHom.toFun
      { toFun := smulRightₗ,
        map_add' := (_ : ∀ (c₁ c₂ : E →L[𝕜] 𝕜), smulRightₗ (c₁ + c₂) = smulRightₗ c₁ + smulRightₗ c₂) }
      (m • c) =
    (RingHom.id 𝕜) m •
      AddHom.toFun
        { toFun := smulRightₗ,
          map_add' := (_ : ∀ (c₁ c₂ : E →L[𝕜] 𝕜), smulRightₗ (c₁ + c₂) = smulRightₗ c₁ + smulRightₗ c₂) }
        c

Next tactic:
ext x
/-- `ContinuousLinearMap.smulRight` as a continuous trilinear map:
`smulRightL (c : E →L[𝕜] 𝕜) (f : F) (x : E) = c x • f`. -/
def smulRightL : (E →L[𝕜] 𝕜) →L[𝕜] Fₗ →L[𝕜] E →L[𝕜] Fₗ :=
  LinearMap.mkContinuous₂
    { toFun := smulRightₗ
      map_add' := fun c₁ c₂ => by
        ext x
        simp only [add_smul, coe_smulRightₗ, add_apply, smulRight_apply, LinearMap.add_apply]
      map_smul' := fun m c => by
        ext x
        

Proof state:
case h.h
𝕜 : 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✝²¹ : 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✝ : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
𝕜₂' : Type u_11
inst✝¹⁰ : NontriviallyNormedField 𝕜₂'
F' : Type u_12
inst✝⁹ : NormedAddCommGroup F'
inst✝⁸ : NormedSpace 𝕜₂' F'
σ₂' : 𝕜₂' →+* 𝕜₂
σ₂'' : 𝕜₂ →+* 𝕜₂'
σ₂₃' : 𝕜₂' →+* 𝕜₃
inst✝⁷ : RingHomInvPair σ₂' σ₂''
inst✝⁶ : RingHomInvPair σ₂'' σ₂'
inst✝⁵ : RingHomCompTriple σ₂' σ₂₃ σ₂₃'
inst✝⁴ : RingHomCompTriple σ₂'' σ₂₃' σ₂₃
inst✝³ : RingHomIsometric σ₂₃
inst✝² : RingHomIsometric σ₂'
inst✝¹ : RingHomIsometric σ₂''
inst✝ : RingHomIsometric σ₂₃'
m : 𝕜
c : E →L[𝕜] 𝕜
x : Fₗ
x✝ : E
⊢ ((AddHom.toFun
          { toFun := smulRightₗ,
            map_add' := (_ : ∀ (c₁ c₂ : E →L[𝕜] 𝕜), smulRightₗ (c₁ + c₂) = smulRightₗ c₁ + smulRightₗ c₂) }
          (m • c))
        x)
      x✝ =
    (((RingHom.id 𝕜) m •
          AddHom.toFun
            { toFun := smulRightₗ,
              map_add' := (_ : ∀ (c₁ c₂ : E →L[𝕜] 𝕜), smulRightₗ (c₁ + c₂) = smulRightₗ c₁ + smulRightₗ c₂) }
            c)
        x)
      x✝

Next tactic:
simp only [smul_smul, coe_smulRightₗ, Algebra.id.smul_eq_mul, coe_smul', smulRight_apply,
          LinearMap.smul_apply, RingHom.id_apply, Pi.smul_apply]