l3lab/ntp-mathlib huggingface dataset:
set_option maxHeartbeats 400000 in
/-- `ContinuousLinearMap.prodMap` as a continuous linear map. -/
def prodMapL : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₁ × M₃ →L[𝕜] M₂ × M₄ :=
  ContinuousLinearMap.copy
    (have Φ₁ : (M₁ →L[𝕜] M₂) →L[𝕜] M₁ →L[𝕜] M₂ × M₄ :=
      ContinuousLinearMap.compL 𝕜 M₁ M₂ (M₂ × M₄) (ContinuousLinearMap.inl 𝕜 M₂ M₄)
    have Φ₂ : (M₃ →L[𝕜] M₄) →L[𝕜] M₃ →L[𝕜] M₂ × M₄ :=
      ContinuousLinearMap.compL 𝕜 M₃ M₄ (M₂ × M₄) (ContinuousLinearMap.inr 𝕜 M₂ M₄)
    have Φ₁' :=
      (ContinuousLinearMap.compL 𝕜 (M₁ × M₃) M₁ (M₂ × M₄)).flip (ContinuousLinearMap.fst 𝕜 M₁ M₃)
    have Φ₂' :=
      (ContinuousLinearMap.compL 𝕜 (M₁ × M₃) M₃ (M₂ × M₄)).flip (ContinuousLinearMap.snd 𝕜 M₁ M₃)
    have Ψ₁ : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₁ →L[𝕜] M₂ :=
      ContinuousLinearMap.fst 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)
    have Ψ₂ : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₃ →L[𝕜] M₄ :=
      ContinuousLinearMap.snd 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)
    Φ₁' ∘L Φ₁ ∘L Ψ₁ + Φ₂' ∘L Φ₂ ∘L Ψ₂)
    (fun p : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) => p.1.prodMap p.2) (by
      apply funext
      rintro ⟨φ, ψ⟩
      refine' ContinuousLinearMap.ext fun ⟨x₁, x₂⟩ => _
      -- Porting note: mathport suggested:
      -- ```
      -- simp only [add_apply, coe_comp', coe_fst', Function.comp_apply, compL_apply, flip_apply,
      --   coe_snd', inl_apply, inr_apply, Prod.mk_add_mk, add_zero, zero_add, coe_prodMap'
      --   Prod_map, Prod.mk.inj_iff, eq_self_iff_true, and_self_iff]
      -- rfl
      -- ```
      -- Frustratingly, in `mathlib3` we can use:
      -- ```
      -- dsimp   -- ⊢ (⇑φ x.fst, ⇑ψ x.snd) = (⇑φ x.fst + 0, 0 + ⇑ψ x.snd)
      -- simp
      -- ```
      -- Here neither `dsimp` or `simp` seem to make progress.
      repeat first | 

Proof state:
case h.mk
𝕜 : 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✝¹⁰ : RingHomIsometric σ₂₃
inst✝⁹ : RingHomIsometric σ₁₃
inst✝⁸ : RingHomIsometric σ₁₂
M₁ : Type u₁
inst✝⁷ : SeminormedAddCommGroup M₁
inst✝⁶ : NormedSpace 𝕜 M₁
M₂ : Type u₂
inst✝⁵ : SeminormedAddCommGroup M₂
inst✝⁴ : NormedSpace 𝕜 M₂
M₃ : Type u₃
inst✝³ : SeminormedAddCommGroup M₃
inst✝² : NormedSpace 𝕜 M₃
M₄ : Type u₄
inst✝¹ : SeminormedAddCommGroup M₄
inst✝ : NormedSpace 𝕜 M₄
φ : M₁ →L[𝕜] M₂
ψ : M₃ →L[𝕜] M₄
x✝ : M₁ × M₃
x₁ : M₁
x₂ : M₃
⊢ (prodMap (φ, ψ).1 (φ, ψ).2) (x₁, x₂) =
    (inl 𝕜 M₂ M₄) (((fst 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)) (φ, ψ)) ((fst 𝕜 M₁ M₃) (x₁, x₂))) +
      (comp (inr 𝕜 M₂ M₄) ((snd 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)) (φ, ψ))) ((snd 𝕜 M₁ M₃) (x₁, x₂))

Next tactic:
rw [add_apply]
set_option maxHeartbeats 400000 in
/-- `ContinuousLinearMap.prodMap` as a continuous linear map. -/
def prodMapL : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₁ × M₃ →L[𝕜] M₂ × M₄ :=
  ContinuousLinearMap.copy
    (have Φ₁ : (M₁ →L[𝕜] M₂) →L[𝕜] M₁ →L[𝕜] M₂ × M₄ :=
      ContinuousLinearMap.compL 𝕜 M₁ M₂ (M₂ × M₄) (ContinuousLinearMap.inl 𝕜 M₂ M₄)
    have Φ₂ : (M₃ →L[𝕜] M₄) →L[𝕜] M₃ →L[𝕜] M₂ × M₄ :=
      ContinuousLinearMap.compL 𝕜 M₃ M₄ (M₂ × M₄) (ContinuousLinearMap.inr 𝕜 M₂ M₄)
    have Φ₁' :=
      (ContinuousLinearMap.compL 𝕜 (M₁ × M₃) M₁ (M₂ × M₄)).flip (ContinuousLinearMap.fst 𝕜 M₁ M₃)
    have Φ₂' :=
      (ContinuousLinearMap.compL 𝕜 (M₁ × M₃) M₃ (M₂ × M₄)).flip (ContinuousLinearMap.snd 𝕜 M₁ M₃)
    have Ψ₁ : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₁ →L[𝕜] M₂ :=
      ContinuousLinearMap.fst 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)
    have Ψ₂ : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₃ →L[𝕜] M₄ :=
      ContinuousLinearMap.snd 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)
    Φ₁' ∘L Φ₁ ∘L Ψ₁ + Φ₂' ∘L Φ₂ ∘L Ψ₂)
    (fun p : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) => p.1.prodMap p.2) (by
      apply funext
      rintro ⟨φ, ψ⟩
      refine' ContinuousLinearMap.ext fun ⟨x₁, x₂⟩ => _
      -- Porting note: mathport suggested:
      -- ```
      -- simp only [add_apply, coe_comp', coe_fst', Function.comp_apply, compL_apply, flip_apply,
      --   coe_snd', inl_apply, inr_apply, Prod.mk_add_mk, add_zero, zero_add, coe_prodMap'
      --   Prod_map, Prod.mk.inj_iff, eq_self_iff_true, and_self_iff]
      -- rfl
      -- ```
      -- Frustratingly, in `mathlib3` we can use:
      -- ```
      -- dsimp   -- ⊢ (⇑φ x.fst, ⇑ψ x.snd) = (⇑φ x.fst + 0, 0 + ⇑ψ x.snd)
      -- simp
      -- ```
      -- Here neither `dsimp` or `simp` seem to make progress.
      repeat first | 

Proof state:
case h.mk
𝕜 : 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✝¹⁰ : RingHomIsometric σ₂₃
inst✝⁹ : RingHomIsometric σ₁₃
inst✝⁸ : RingHomIsometric σ₁₂
M₁ : Type u₁
inst✝⁷ : SeminormedAddCommGroup M₁
inst✝⁶ : NormedSpace 𝕜 M₁
M₂ : Type u₂
inst✝⁵ : SeminormedAddCommGroup M₂
inst✝⁴ : NormedSpace 𝕜 M₂
M₃ : Type u₃
inst✝³ : SeminormedAddCommGroup M₃
inst✝² : NormedSpace 𝕜 M₃
M₄ : Type u₄
inst✝¹ : SeminormedAddCommGroup M₄
inst✝ : NormedSpace 𝕜 M₄
φ : M₁ →L[𝕜] M₂
ψ : M₃ →L[𝕜] M₄
x✝ : M₁ × M₃
x₁ : M₁
x₂ : M₃
⊢ (prodMap (φ, ψ).1 (φ, ψ).2) (x₁, x₂) =
    (inl 𝕜 M₂ M₄) (((fst 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)) (φ, ψ)) ((fst 𝕜 M₁ M₃) (x₁, x₂))) +
      (inr 𝕜 M₂ M₄) (((snd 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)) (φ, ψ)) ((snd 𝕜 M₁ M₃) (x₁, x₂)))

Next tactic:
rw [add_apply]
set_option maxHeartbeats 400000 in
/-- `ContinuousLinearMap.prodMap` as a continuous linear map. -/
def prodMapL : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₁ × M₃ →L[𝕜] M₂ × M₄ :=
  ContinuousLinearMap.copy
    (have Φ₁ : (M₁ →L[𝕜] M₂) →L[𝕜] M₁ →L[𝕜] M₂ × M₄ :=
      ContinuousLinearMap.compL 𝕜 M₁ M₂ (M₂ × M₄) (ContinuousLinearMap.inl 𝕜 M₂ M₄)
    have Φ₂ : (M₃ →L[𝕜] M₄) →L[𝕜] M₃ →L[𝕜] M₂ × M₄ :=
      ContinuousLinearMap.compL 𝕜 M₃ M₄ (M₂ × M₄) (ContinuousLinearMap.inr 𝕜 M₂ M₄)
    have Φ₁' :=
      (ContinuousLinearMap.compL 𝕜 (M₁ × M₃) M₁ (M₂ × M₄)).flip (ContinuousLinearMap.fst 𝕜 M₁ M₃)
    have Φ₂' :=
      (ContinuousLinearMap.compL 𝕜 (M₁ × M₃) M₃ (M₂ × M₄)).flip (ContinuousLinearMap.snd 𝕜 M₁ M₃)
    have Ψ₁ : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₁ →L[𝕜] M₂ :=
      ContinuousLinearMap.fst 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)
    have Ψ₂ : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) →L[𝕜] M₃ →L[𝕜] M₄ :=
      ContinuousLinearMap.snd 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)
    Φ₁' ∘L Φ₁ ∘L Ψ₁ + Φ₂' ∘L Φ₂ ∘L Ψ₂)
    (fun p : (M₁ →L[𝕜] M₂) × (M₃ →L[𝕜] M₄) => p.1.prodMap p.2) (by
      apply funext
      rintro ⟨φ, ψ⟩
      refine' ContinuousLinearMap.ext fun ⟨x₁, x₂⟩ => _
      -- Porting note: mathport suggested:
      -- ```
      -- simp only [add_apply, coe_comp', coe_fst', Function.comp_apply, compL_apply, flip_apply,
      --   coe_snd', inl_apply, inr_apply, Prod.mk_add_mk, add_zero, zero_add, coe_prodMap'
      --   Prod_map, Prod.mk.inj_iff, eq_self_iff_true, and_self_iff]
      -- rfl
      -- ```
      -- Frustratingly, in `mathlib3` we can use:
      -- ```
      -- dsimp   -- ⊢ (⇑φ x.fst, ⇑ψ x.snd) = (⇑φ x.fst + 0, 0 + ⇑ψ x.snd)
      -- simp
      -- ```
      -- Here neither `dsimp` or `simp` seem to make progress.
      repeat first | rw [add_apply] | 

Proof state:
case h.mk
𝕜 : 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✝¹⁰ : RingHomIsometric σ₂₃
inst✝⁹ : RingHomIsometric σ₁₃
inst✝⁸ : RingHomIsometric σ₁₂
M₁ : Type u₁
inst✝⁷ : SeminormedAddCommGroup M₁
inst✝⁶ : NormedSpace 𝕜 M₁
M₂ : Type u₂
inst✝⁵ : SeminormedAddCommGroup M₂
inst✝⁴ : NormedSpace 𝕜 M₂
M₃ : Type u₃
inst✝³ : SeminormedAddCommGroup M₃
inst✝² : NormedSpace 𝕜 M₃
M₄ : Type u₄
inst✝¹ : SeminormedAddCommGroup M₄
inst✝ : NormedSpace 𝕜 M₄
φ : M₁ →L[𝕜] M₂
ψ : M₃ →L[𝕜] M₄
x✝ : M₁ × M₃
x₁ : M₁
x₂ : M₃
⊢ (prodMap (φ, ψ).1 (φ, ψ).2) (x₁, x₂) =
    (inl 𝕜 M₂ M₄) (((fst 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)) (φ, ψ)) ((fst 𝕜 M₁ M₃) (x₁, x₂))) +
      (inr 𝕜 M₂ M₄) (((snd 𝕜 (M₁ →L[𝕜] M₂) (M₃ →L[𝕜] M₄)) (φ, ψ)) ((snd 𝕜 M₁ M₃) (x₁, x₂)))

Next tactic:
rw [comp_apply]
/-- Multiplication in a non-unital normed algebra as a continuous bilinear map. -/
def mul : 𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜' :=
  (LinearMap.mul 𝕜 𝕜').mkContinuous₂ 1 fun x y => 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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NonUnitalSeminormedRing 𝕜'
inst✝² : NormedSpace 𝕜 𝕜'
inst✝¹ : IsScalarTower 𝕜 𝕜' 𝕜'
inst✝ : SMulCommClass 𝕜 𝕜' 𝕜'
x y : 𝕜'
⊢ ‖((LinearMap.mul 𝕜 𝕜') x) y‖ ≤ 1 * ‖x‖ * ‖y‖

Next tactic:
simpa using norm_mul_le x y
/-- Every (unital) normed algebra such that `‖1‖ = 1` is a `RegularNormedAlgebra`. -/
instance _root_.NormedAlgebra.instRegularNormedAlgebra {𝕜 𝕜' : Type*} [NontriviallyNormedField 𝕜]
    [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [NormOneClass 𝕜'] : RegularNormedAlgebra 𝕜 𝕜' where
  isometry_mul' := AddMonoidHomClass.isometry_of_norm (mul 𝕜 𝕜') <|
    fun x => le_antisymm (op_norm_mul_apply_le _ _ _) <| 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✝²⁶ : 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✝¹⁰ : RingHomIsometric σ₂₃
inst✝⁹ : RingHomIsometric σ₁₃
inst✝⁸ : RingHomIsometric σ₁₂
𝕜'✝ : Type u_11
inst✝⁷ : NonUnitalSeminormedRing 𝕜'✝
inst✝⁶ : NormedSpace 𝕜✝ 𝕜'✝
inst✝⁵ : IsScalarTower 𝕜✝ 𝕜'✝ 𝕜'✝
inst✝⁴ : SMulCommClass 𝕜✝ 𝕜'✝ 𝕜'✝
𝕜 : Type u_12
𝕜' : Type u_13
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : SeminormedRing 𝕜'
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormOneClass 𝕜'
x : 𝕜'
⊢ ‖x‖ ≤ ‖(mul 𝕜 𝕜') x‖

Next tactic:
convert ratio_le_op_norm ((mul 𝕜 𝕜') x) (1 : 𝕜')
/-- Every (unital) normed algebra such that `‖1‖ = 1` is a `RegularNormedAlgebra`. -/
instance _root_.NormedAlgebra.instRegularNormedAlgebra {𝕜 𝕜' : Type*} [NontriviallyNormedField 𝕜]
    [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [NormOneClass 𝕜'] : RegularNormedAlgebra 𝕜 𝕜' where
  isometry_mul' := AddMonoidHomClass.isometry_of_norm (mul 𝕜 𝕜') <|
    fun x => le_antisymm (op_norm_mul_apply_le _ _ _) <| by
      convert ratio_le_op_norm ((mul 𝕜 𝕜') x) (1 : 𝕜')
      

Proof state:
case h.e'_3
𝕜✝ : 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✝¹⁰ : RingHomIsometric σ₂₃
inst✝⁹ : RingHomIsometric σ₁₃
inst✝⁸ : RingHomIsometric σ₁₂
𝕜'✝ : Type u_11
inst✝⁷ : NonUnitalSeminormedRing 𝕜'✝
inst✝⁶ : NormedSpace 𝕜✝ 𝕜'✝
inst✝⁵ : IsScalarTower 𝕜✝ 𝕜'✝ 𝕜'✝
inst✝⁴ : SMulCommClass 𝕜✝ 𝕜'✝ 𝕜'✝
𝕜 : Type u_12
𝕜' : Type u_13
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : SeminormedRing 𝕜'
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormOneClass 𝕜'
x : 𝕜'
⊢ ‖x‖ = ‖((mul 𝕜 𝕜') x) 1‖ / ‖1‖

Next tactic:
simp [norm_one]
/-- Scalar multiplication as a continuous bilinear map. -/
def lsmul : 𝕜' →L[𝕜] E →L[𝕜] E :=
  ((Algebra.lsmul 𝕜 𝕜 E).toLinearMap : 𝕜' →ₗ[𝕜] E →ₗ[𝕜] E).mkContinuous₂ 1 fun c 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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
c : 𝕜'
x : E
⊢ ‖((AlgHom.toLinearMap (Algebra.lsmul 𝕜 𝕜 E)) c) x‖ ≤ 1 * ‖c‖ * ‖x‖

Next tactic:
simpa only [one_mul] using norm_smul_le c x
theorem norm_toSpanSingleton (x : E) : ‖toSpanSingleton 𝕜 x‖ = ‖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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
x : E
⊢ ‖toSpanSingleton 𝕜 x‖ = ‖x‖

Next tactic:
refine' op_norm_eq_of_bounds (norm_nonneg _) (fun x => _) fun N _ h => _
theorem norm_toSpanSingleton (x : E) : ‖toSpanSingleton 𝕜 x‖ = ‖x‖ := by
  refine' op_norm_eq_of_bounds (norm_nonneg _) (fun x => _) fun N _ h => _
  · 

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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
x✝ : E
x : 𝕜
⊢ ‖(toSpanSingleton 𝕜 x✝) x‖ ≤ ‖x✝‖ * ‖x‖

Next tactic:
rw [toSpanSingleton_apply, norm_smul, mul_comm]
theorem norm_toSpanSingleton (x : E) : ‖toSpanSingleton 𝕜 x‖ = ‖x‖ := by
  refine' op_norm_eq_of_bounds (norm_nonneg _) (fun x => _) fun N _ h => _
  · rw [toSpanSingleton_apply, norm_smul, mul_comm]
  · 

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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
x : E
N : ℝ
x✝ : N ≥ 0
h : ∀ (x_1 : 𝕜), ‖(toSpanSingleton 𝕜 x) x_1‖ ≤ N * ‖x_1‖
⊢ ‖x‖ ≤ N

Next tactic:
specialize h 1
theorem norm_toSpanSingleton (x : E) : ‖toSpanSingleton 𝕜 x‖ = ‖x‖ := by
  refine' op_norm_eq_of_bounds (norm_nonneg _) (fun x => _) fun N _ h => _
  · rw [toSpanSingleton_apply, norm_smul, mul_comm]
  · specialize h 1
    

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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
x : E
N : ℝ
x✝ : N ≥ 0
h : ‖(toSpanSingleton 𝕜 x) 1‖ ≤ N * ‖1‖
⊢ ‖x‖ ≤ N

Next tactic:
rw [toSpanSingleton_apply, norm_smul, mul_comm] at h
theorem norm_toSpanSingleton (x : E) : ‖toSpanSingleton 𝕜 x‖ = ‖x‖ := by
  refine' op_norm_eq_of_bounds (norm_nonneg _) (fun x => _) fun N _ h => _
  · rw [toSpanSingleton_apply, norm_smul, mul_comm]
  · specialize h 1
    rw [toSpanSingleton_apply, norm_smul, mul_comm] at h
    

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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
x : E
N : ℝ
x✝ : N ≥ 0
h : ‖x‖ * ‖1‖ ≤ N * ‖1‖
⊢ ‖x‖ ≤ N

Next tactic:
exact (mul_le_mul_right (by simp)).mp h
theorem norm_toSpanSingleton (x : E) : ‖toSpanSingleton 𝕜 x‖ = ‖x‖ := by
  refine' op_norm_eq_of_bounds (norm_nonneg _) (fun x => _) fun N _ h => _
  · rw [toSpanSingleton_apply, norm_smul, mul_comm]
  · specialize h 1
    rw [toSpanSingleton_apply, norm_smul, mul_comm] at h
    exact (mul_le_mul_right (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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
x : E
N : ℝ
x✝ : N ≥ 0
h : ‖x‖ * ‖1‖ ≤ N * ‖1‖
⊢ 0 < ‖1‖

Next tactic:
simp
/-- The norm of `lsmul` is at most 1 in any semi-normed group. -/
theorem op_norm_lsmul_le : ‖(lsmul 𝕜 𝕜' : 𝕜' →L[𝕜] E →L[𝕜] E)‖ ≤ 1 := 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✝²² : 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✝⁶ : RingHomIsometric σ₂₃
inst✝⁵ : RingHomIsometric σ₁₃
inst✝⁴ : RingHomIsometric σ₁₂
𝕜' : Type u_11
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' E
inst✝ : IsScalarTower 𝕜 𝕜' E
⊢ ‖lsmul 𝕜 𝕜'‖ ≤ 1

Next tactic:
refine' ContinuousLinearMap.op_norm_le_bound _ zero_le_one fun x => _