awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
⊢ norm (E := ContinuousMultilinearMap.{u_1, 0, uD, uG} 𝕜 (fun (i : Fin n) ↦ D) G)
      (iteratedFDerivWithin 𝕜 n (fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) s
        x) ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        (↑(n.choose i) : ℝ) *
            norm (E := ContinuousMultilinearMap.{u_1, 0, uD, uE} 𝕜 (fun (i : Fin i) ↦ D) E)
              (iteratedFDerivWithin 𝕜 i f s x) *
          norm (E := ContinuousMultilinearMap.{u_1, 0, uD, uF} 𝕜 (fun (i : Fin (n - i)) ↦ D) F)
            (iteratedFDerivWithin 𝕜 (n - i) g s x)
have hBu : Bu =
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
Tactic: have hBu : Bu = ContinuousLinearMap.compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu)
      (ContinuousLinearMap.compL 𝕜 Fu G Gu (isoG.symm : G →L[𝕜] Gu)) Bu₀ := rfl
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
⊢ Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
      ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
have h : ∀ (y : Du),
  Eq (α := Gu) ((((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y) : Gu)
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
        ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D))
        y :
      Gu)
Tactic: ext1 y
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (hypothesis)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
⊢ norm (E := ContinuousMultilinearMap.{u_1, 0, uD, uG} 𝕜 (fun (i : Fin n) ↦ D) G)
      (iteratedFDerivWithin 𝕜 n (fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) s
        x) ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        (↑(n.choose i) : ℝ) *
            norm (E := ContinuousMultilinearMap.{u_1, 0, uD, uE} 𝕜 (fun (i : Fin i) ↦ D) E)
              (iteratedFDerivWithin 𝕜 i f s x) *
          norm (E := ContinuousMultilinearMap.{u_1, 0, uD, uF} 𝕜 (fun (i : Fin (n - i)) ↦ D) F)
            (iteratedFDerivWithin 𝕜 (n - i) g s x)
have Bu_eq : Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
  (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
    ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
Tactic: have Bu_eq : (fun y => Bu (fu y) (gu y)) = isoG.symm ∘ (fun y => B (f y) (g y)) ∘ isoD := by
    ext1 y
    simp [Du, Eu, Fu, Gu, hBu, Bu₀, fu, gu]
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
Bu_eq :
  Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
      ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
⊢ ‖Bu‖ ≤ ‖B‖
have refine : ∀ (y : Eu), norm (E := Fu →L[𝕜] Gu) ((Bu : (a : Eu) → Fu →L[𝕜] Gu) y : Fu →L[𝕜] Gu) ≤ ‖B‖ * ‖y‖
Tactic: refine ContinuousLinearMap.opNorm_le_bound _ (norm_nonneg B) fun y => ?_
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
Bu_eq :
  Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
      ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
y : Eu
⊢ norm (E := Fu →L[𝕜] Gu) ((Bu : (a : Eu) → Fu →L[𝕜] Gu) y : Fu →L[𝕜] Gu) ≤ ‖B‖ * ‖y‖
have refine : ∀ (x : Fu), norm (E := Gu) ((((Bu : (a : Eu) → Fu →L[𝕜] Gu) y : Fu →L[𝕜] Gu) : (a : Fu) → Gu) x : Gu) ≤ ‖B‖ * ‖y‖ * ‖x‖
Tactic: refine ContinuousLinearMap.opNorm_le_bound _ (by positivity) fun x => ?_
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x_1 : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x_1 ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
Bu_eq :
  Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
      ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
y : Eu
x : Fu
⊢ norm (E := Gu) ((((Bu : (a : Eu) → Fu →L[𝕜] Gu) y : Fu →L[𝕜] Gu) : (a : Fu) → Gu) x : Gu) ≤ ‖B‖ * ‖y‖ * ‖x‖
have simp : norm.{uG} (E := G)
    ((((B : (a : E) → F →L[𝕜] G) ((isoE : (a : ULift.{max uD uF uG, uE} E) → E) y) : F →L[𝕜] G) : (a : F) → G)
        ((isoF : (a : ULift.{max uD uE uG, uF} F) → F) x : F) :
      G) ≤
  ‖B‖ * ‖y‖ * ‖x‖
Tactic: simp only [Eu, Fu, Gu, hBu, Bu₀, compL_apply, coe_comp', Function.comp_apply,
      ContinuousLinearEquiv.coe_coe, LinearIsometryEquiv.coe_coe, flip_apply,
      LinearIsometryEquiv.norm_map]
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x_1 : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x_1 ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
Bu_eq :
  Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
      ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
y : Eu
x : Fu
⊢ norm (E := F →L[𝕜] G) ((B : (a : E) → F →L[𝕜] G) ((isoE : (a : Eu) → E) y) : F →L[𝕜] G) *
      norm.{uF} (E := F) ((isoF : (a : Fu) → F) x : F) ≤
    ‖B‖ * norm.{uE} (E := E) ((isoE : (a : Eu) → E) y : E) * norm.{uF} (E := F) ((isoF : (a : Fu) → F) x : F)
have hbc : norm (E := F →L[𝕜] G) ((B : (a : E) → F →L[𝕜] G) ((isoE : (a : Eu) → E) y) : F →L[𝕜] G) ≤
  ‖B‖ * norm.{uE} (E := E) ((isoE : (a : Eu) → E) y : E)
Tactic: gcongr
-- Lean 4 proof step from Mathlib.Analysis.Calculus.ContDiff.Bounds (goal)
Goal:
𝕜 : Type u_1
inst : NontriviallyNormedField 𝕜
D : Type uD
inst_1 : NormedAddCommGroup D
inst_2 : NormedSpace 𝕜 D
E : Type uE
inst_3 : NormedAddCommGroup E
inst_4 : NormedSpace 𝕜 E
F : Type uF
inst_5 : NormedAddCommGroup F
inst_6 : NormedSpace 𝕜 F
G : Type uG
inst_7 : NormedAddCommGroup G
inst_8 : NormedSpace 𝕜 G
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞ω
s : Set D
x_1 : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x_1 ∈ s
n : ℕ
hn : (↑n : ℕ∞ω) ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := (⇑isoE.symm : (a : E) → Eu) ∘ f ∘ (⇑isoD : (a : Du) → D)
gu : Du → Fu := (⇑isoF.symm : (a : F) → Fu) ∘ g ∘ (⇑isoD : (a : Du) → D)
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (σ₂₃ := RingHom.id 𝕜) (B ∘SL (↑(↑isoE : Eu ≃L[𝕜] E) : Eu →L[𝕜] E)).flip (↑(↑isoF : Fu ≃L[𝕜] F) : Fu →L[𝕜] F))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
            (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
          ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
            (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
        (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
      (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
    Bu₀
hBu :
  Bu =
    (((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu) :
              (a : (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu) → (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu)
            ((compL 𝕜 Fu G Gu : (a : G →L[𝕜] Gu) → (Fu →L[𝕜] G) →L[𝕜] Fu →L[𝕜] Gu)
              (↑(↑isoG.symm : G ≃L[𝕜] Gu) : G →L[𝕜] Gu)) :
          (Eu →L[𝕜] Fu →L[𝕜] G) →L[𝕜] Eu →L[𝕜] Fu →L[𝕜] Gu) :
        (a : Eu →L[𝕜] Fu →L[𝕜] G) → Eu →L[𝕜] Fu →L[𝕜] Gu)
      Bu₀
Bu_eq :
  Eq (α := (y : Du) → Gu) (fun (y : Du) ↦ (((Bu : (a : Eu) → Fu →L[𝕜] Gu) (fu y) : Fu →L[𝕜] Gu) : (a : Fu) → Gu) (gu y))
    (Function.comp (β := G) (⇑isoG.symm : (a : G) → Gu)
      ((fun (y : D) ↦ (((B : (a : E) → F →L[𝕜] G) (f y) : F →L[𝕜] G) : (a : F) → G) (g y)) ∘ (⇑isoD : (a : Du) → D)))
y : Eu
x : Fu
⊢ norm.{uG} (E := G)
      ((((B : (a : E) → F →L[𝕜] G) ((isoE : (a : ULift.{max uD uF uG, uE} E) → E) y) : F →L[𝕜] G) : (a : F) → G)
          ((isoF : (a : ULift.{max uD uE uG, uF} F) → F) x : F) :
        G) ≤
    ‖B‖ * ‖y‖ * ‖x‖
have _ : norm (E := F →L[𝕜] G) ((B : (a : E) → F →L[𝕜] G) ((isoE : (a : Eu) → E) y) : F →L[𝕜] G) *
    norm.{uF} (E := F) ((isoF : (a : Fu) → F) x : F) ≤
  ‖B‖ * norm.{uE} (E := E) ((isoE : (a : Eu) → E) y : E) * norm.{uF} (E := F) ((isoF : (a : Fu) → F) x : F)
Tactic: calc
      ‖B (isoE y) (isoF x)‖ ≤ ‖B (isoE y)‖ * ‖isoF x‖ := ContinuousLinearMap.le_opNorm _ _
      _ ≤ ‖B‖ * ‖isoE y‖ * ‖isoF x‖ := by gcongr; apply ContinuousLinearMap.le_opNorm
      _ = ‖B‖ * ‖y‖ * ‖x‖ := by simp only [LinearIsometryEquiv.norm_map]