Theorem: ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: let Du : Type max uD uE uF uG := ULift.{max uE uF uG, uD} D
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let Eu : Type max uD uE uF uG := ULift.{max uD uF uG, uE} E
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let Fu : Type max uD uE uF uG := ULift.{max uD uE uG, uF} F
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let Gu : Type max uD uE uF uG := ULift.{max uD uE uF, uG} G
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have isoD : Du ≃ₗᵢ[𝕜] D := LinearIsometryEquiv.ulift 𝕜 D
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have isoE : Eu ≃ₗᵢ[𝕜] E := LinearIsometryEquiv.ulift 𝕜 E
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have isoF : Fu ≃ₗᵢ[𝕜] F := LinearIsometryEquiv.ulift 𝕜 F
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have isoG : Gu ≃ₗᵢ[𝕜] G := LinearIsometryEquiv.ulift 𝕜 G
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: set fu : Du → Eu := isoE.symm ∘ f ∘ isoD with hfu
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: set gu : Du → Fu := isoF.symm ∘ g ∘ isoD with hgu
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: set Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G := ((B.comp (isoE : Eu →L[𝕜] E)).flip.comp (isoF : Fu →L[𝕜] F)).flip
  with hBu₀
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let Bu : Eu →L[𝕜] Fu →L[𝕜] Gu
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: exact ContinuousLinearMap.compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu)
  (ContinuousLinearMap.compL 𝕜 Fu G Gu (isoG.symm : G →L[𝕜] Gu)) Bu₀
state_before: case Bu
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
⊢ Eu →L[𝕜] Fu →L[𝕜] Gu

𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu := ?Bu
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

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
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have Bu_eq : (fun y => Bu (fu y) (gu y)) = isoG.symm ∘ (fun y => B (f y) (g y)) ∘ isoD := by
  ext1 y
  rw [hBu]
  iterate 2 rw [ContinuousLinearMap.compL_apply, ContinuousLinearMap.coe_comp',
    Function.comp_apply]
  rw [hBu₀]
  iterate 2 rw [ContinuousLinearMap.flip_apply, ContinuousLinearMap.coe_comp',
    Function.comp_apply]
  rw [hfu, Function.comp_apply, LinearIsometryEquiv.coe_coe'', LinearIsometryEquiv.coe_coe'',
    LinearIsometryEquiv.apply_symm_apply isoE, Function.comp_apply,
    hgu, LinearIsometryEquiv.coe_coe'', Function.comp_apply,
    LinearIsometryEquiv.apply_symm_apply isoF]
  simp only [Function.comp_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have Bu_le : ‖Bu‖ ≤ ‖B‖ := by
  refine' ContinuousLinearMap.op_norm_le_bound _ (norm_nonneg _) fun y => _
  refine' ContinuousLinearMap.op_norm_le_bound _ (by positivity) fun x => _
  simp only [ContinuousLinearMap.compL_apply, ContinuousLinearMap.coe_comp',
    Function.comp_apply, LinearIsometryEquiv.coe_coe'', ContinuousLinearMap.flip_apply,
    LinearIsometryEquiv.norm_map]
  rw [ContinuousLinearMap.coe_comp', Function.comp_apply, ContinuousLinearMap.compL_apply,
    ContinuousLinearMap.coe_comp', Function.comp_apply]
  iterate 2 rw [ContinuousLinearMap.flip_apply, ContinuousLinearMap.coe_comp',
    Function.comp_apply]
  simp only [LinearIsometryEquiv.coe_coe'', LinearIsometryEquiv.norm_map]
  calc
    ‖B (isoE y) (isoF x)‖ ≤ ‖B (isoE y)‖ * ‖isoF x‖ := ContinuousLinearMap.le_op_norm _ _
    _ ≤ ‖B‖ * ‖isoE y‖ * ‖isoF x‖ :=
      (mul_le_mul_of_nonneg_right (ContinuousLinearMap.le_op_norm _ _) (norm_nonneg _))
    _ = ‖B‖ * ‖y‖ * ‖x‖ := by simp only [LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let su := isoD ⁻¹' s
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have hsu : UniqueDiffOn 𝕜 su := isoD.toContinuousLinearEquiv.uniqueDiffOn_preimage_iff.2 hs
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let xu := isoD.symm x
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have hxu : xu ∈ su := by
  simpa only [Set.mem_preimage, LinearIsometryEquiv.apply_symm_apply] using hx
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have xu_x : isoD xu = x := by simp only [LinearIsometryEquiv.apply_symm_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have hfu : ContDiffOn 𝕜 n fu su :=
  isoE.symm.contDiff.comp_contDiffOn
    ((hf.of_le hn).comp_continuousLinearMap (isoD : Du →L[𝕜] D))
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have hgu : ContDiffOn 𝕜 n gu su :=
  isoF.symm.contDiff.comp_contDiffOn
    ((hg.of_le hn).comp_continuousLinearMap (isoD : Du →L[𝕜] D))
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have Nfu : ∀ i, ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖ := by
  intro i
  rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left _ _ hsu hxu]
  rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right _ _ hs, xu_x]
  rwa [← xu_x] at hx
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have Ngu : ∀ i, ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖ := by
  intro i
  rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left _ _ hsu hxu]
  rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right _ _ hs, xu_x]
  rwa [← xu_x] at hx
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have NBu :
  ‖iteratedFDerivWithin 𝕜 n (fun y => Bu (fu y) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => B (f y) (g y)) s x‖ := by
  rw [Bu_eq]
  rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left _ _ hsu hxu]
  rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right _ _ hs, xu_x]
  rwa [← xu_x] at hx
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have : ‖iteratedFDerivWithin 𝕜 n (fun y => Bu (fu y) (gu y)) su xu‖ ≤
    ‖Bu‖ * ∑ i in Finset.range (n + 1), (n.choose i : ℝ) * ‖iteratedFDerivWithin 𝕜 i fu su xu‖ *
      ‖iteratedFDerivWithin 𝕜 (n - i) gu su xu‖ :=
  Bu.norm_iteratedFDerivWithin_le_of_bilinear_aux hfu hgu hsu hxu
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
NBu :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: simp only [Nfu, Ngu, NBu] at this
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
NBu :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖
this :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ ≤
    ‖Bu‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i fu su xu‖ * ‖iteratedFDerivWithin 𝕜 (n - i) gu su xu‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: apply this.trans (mul_le_mul_of_nonneg_right Bu_le ?_)
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
NBu :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖
this :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖↑(↑(compL 𝕜 (ULift E) (ULift F →L[𝕜] G) (ULift F →L[𝕜] ULift G))
              (↑(compL 𝕜 (ULift F) G (ULift G))
                ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
          (flip
            (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
              ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv)))‖ *
      ∑ x_1 in Finset.range (n + 1),
        ↑(Nat.choose n x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i in Finset.range (n + 1),
        ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: exact Finset.sum_nonneg' fun i => by positivity
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
NBu :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖
this :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖↑(↑(compL 𝕜 (ULift E) (ULift F →L[𝕜] G) (ULift F →L[𝕜] ULift G))
              (↑(compL 𝕜 (ULift F) G (ULift G))
                ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
          (flip
            (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
              ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv)))‖ *
      ∑ x_1 in Finset.range (n + 1),
        ↑(Nat.choose n x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g s x‖
⊢ 0 ≤
    ∑ x_1 in Finset.range (n + 1),
      ↑(Nat.choose n x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g s x‖

tactic: ext1 y
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
⊢ (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD

tactic: rw [hBu]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑(↑Bu (fu y)) (gu y) = (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: iterate 2 rw [ContinuousLinearMap.compL_apply, ContinuousLinearMap.coe_comp',
  Function.comp_apply]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑(↑(↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
                  (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
              Bu₀)
          (fu y))
      (gu y) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: rw [hBu₀]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv) (↑(↑Bu₀ (fu y)) (gu y)) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: iterate 2 rw [ContinuousLinearMap.flip_apply, ContinuousLinearMap.coe_comp',
  Function.comp_apply]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)
      (↑(↑(flip
                (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
                  ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv)))
            (fu y))
        (gu y)) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: rw [hfu, Function.comp_apply, LinearIsometryEquiv.coe_coe'', LinearIsometryEquiv.coe_coe'',
  LinearIsometryEquiv.apply_symm_apply isoE, Function.comp_apply,
  hgu, LinearIsometryEquiv.coe_coe'', Function.comp_apply,
  LinearIsometryEquiv.apply_symm_apply isoF]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)
      (↑(↑B (↑↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv) (fu y)))
        (↑↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv) (gu y))) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: simp only [Function.comp_apply]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑(LinearIsometryEquiv.symm isoG) (↑(↑B (f (↑isoD y))) ((g ∘ ↑isoD) y)) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: rw [ContinuousLinearMap.compL_apply, ContinuousLinearMap.coe_comp',
Function.comp_apply]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑(↑(↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)) (↑Bu₀ (fu y)))
      (gu y) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: rw [ContinuousLinearMap.flip_apply, ContinuousLinearMap.coe_comp',
Function.comp_apply]
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
y : Du
⊢ ↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)
      (↑(↑(flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
            (↑↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv) (gu y)))
        (fu y)) =
    (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) y

tactic: refine' ContinuousLinearMap.op_norm_le_bound _ (norm_nonneg _) fun y => _
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
⊢ ‖Bu‖ ≤ ‖B‖

tactic: refine' ContinuousLinearMap.op_norm_le_bound _ (by positivity) fun x => _
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
⊢ ‖↑Bu y‖ ≤ ‖B‖ * ‖y‖

tactic: simp only [ContinuousLinearMap.compL_apply, ContinuousLinearMap.coe_comp',
  Function.comp_apply, LinearIsometryEquiv.coe_coe'', ContinuousLinearMap.flip_apply,
  LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖↑(↑Bu y) x‖ ≤ ‖B‖ * ‖y‖ * ‖x‖

tactic: rw [ContinuousLinearMap.coe_comp', Function.comp_apply, ContinuousLinearMap.compL_apply,
  ContinuousLinearMap.coe_comp', Function.comp_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖↑(↑(comp (↑(compL 𝕜 (ULift F) G (ULift G)) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv))
                (flip
                  (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
                    ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))))
            y)
        x‖ ≤
    ‖B‖ * ‖y‖ * ‖x‖

tactic: iterate 2 rw [ContinuousLinearMap.flip_apply, ContinuousLinearMap.coe_comp',
  Function.comp_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)
        (↑(↑(flip
                  (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
                    ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv)))
              y)
          x)‖ ≤
    ‖B‖ * ‖y‖ * ‖x‖

tactic: simp only [LinearIsometryEquiv.coe_coe'', LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)
        (↑(↑B (↑↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv) y))
          (↑↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv) x))‖ ≤
    ‖B‖ * ‖y‖ * ‖x‖

tactic: calc
  ‖B (isoE y) (isoF x)‖ ≤ ‖B (isoE y)‖ * ‖isoF x‖ := ContinuousLinearMap.le_op_norm _ _
  _ ≤ ‖B‖ * ‖isoE y‖ * ‖isoF x‖ :=
    (mul_le_mul_of_nonneg_right (ContinuousLinearMap.le_op_norm _ _) (norm_nonneg _))
  _ = ‖B‖ * ‖y‖ * ‖x‖ := by simp only [LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖↑(↑B (↑isoE y)) (↑isoF x)‖ ≤ ‖B‖ * ‖y‖ * ‖x‖

tactic: positivity
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
⊢ 0 ≤ ‖B‖ * ‖y‖

tactic: rw [ContinuousLinearMap.flip_apply, ContinuousLinearMap.coe_comp',
Function.comp_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖↑↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)
        (↑(↑(flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
              (↑↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv) x))
          y)‖ ≤
    ‖B‖ * ‖y‖ * ‖x‖

tactic: simp only [LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝¹ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
y : Eu
x : Fu
⊢ ‖B‖ * ‖↑isoE y‖ * ‖↑isoF x‖ = ‖B‖ * ‖y‖ * ‖x‖

tactic: simpa only [Set.mem_preimage, LinearIsometryEquiv.apply_symm_apply] using hx
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
⊢ xu ∈ su

tactic: simp only [LinearIsometryEquiv.apply_symm_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
⊢ ↑isoD xu = x

tactic: intro i
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
⊢ ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖

tactic: rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left _ _ hsu hxu]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖

tactic: rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right _ _ hs, xu_x]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 i (f ∘ ↑isoD) su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖

tactic: rwa [← xu_x] at hx
state_before: case hx
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
i : ℕ
⊢ ↑isoD xu ∈ s

tactic: intro i
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
⊢ ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖

tactic: rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left _ _ hsu hxu]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖

tactic: rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right _ _ hs, xu_x]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 i (g ∘ ↑isoD) su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖

tactic: rwa [← xu_x] at hx
state_before: case hx
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
i : ℕ
⊢ ↑isoD xu ∈ s

tactic: rw [Bu_eq]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖

tactic: rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left _ _ hsu hxu]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n (↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖

tactic: rw [LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right _ _ hs, xu_x]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
⊢ ‖iteratedFDerivWithin 𝕜 n ((fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖

tactic: rwa [← xu_x] at hx
state_before: case hx
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
⊢ ↑isoD xu ∈ s

tactic: positivity
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.3796226
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
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 D
Eu : Type (max uD uE uF uG) := ULift E
Fu : Type (max uD uE uF uG) := ULift F
Gu : Type (max uD uE uF uG) := ULift G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
hfu✝ : fu = ↑(LinearIsometryEquiv.symm isoE) ∘ f ∘ ↑isoD
gu : Du → Fu := ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
hgu✝ : gu = ↑(LinearIsometryEquiv.symm isoF) ∘ g ∘ ↑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  flip
    (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv))) ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
hBu₀ :
  Bu₀ =
    flip
      (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
        ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv))
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
    Bu₀
hBu :
  Bu =
    ↑(↑(compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
          (↑(compL 𝕜 Fu G Gu) ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
      Bu₀
Bu_eq : (fun y => ↑(↑Bu (fu y)) (gu y)) = ↑(LinearIsometryEquiv.symm isoG) ∘ (fun y => ↑(↑B (f y)) (g y)) ∘ ↑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ↑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := ↑(LinearIsometryEquiv.symm isoD) x
hxu : xu ∈ su
xu_x : ↑isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
Nfu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i fu su xu‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖
Ngu : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 i gu su xu‖ = ‖iteratedFDerivWithin 𝕜 i g s x‖
NBu :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑Bu (fu y)) (gu y)) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖
this :
  ‖iteratedFDerivWithin 𝕜 n (fun y => ↑(↑B (f y)) (g y)) s x‖ ≤
    ‖↑(↑(compL 𝕜 (ULift E) (ULift F →L[𝕜] G) (ULift F →L[𝕜] ULift G))
              (↑(compL 𝕜 (ULift F) G (ULift G))
                ↑(ContinuousLinearEquiv.mk (LinearIsometryEquiv.symm isoG).toLinearEquiv)))
          (flip
            (comp (flip (comp B ↑(ContinuousLinearEquiv.mk isoE.toLinearEquiv)))
              ↑(ContinuousLinearEquiv.mk isoF.toLinearEquiv)))‖ *
      ∑ x_1 in Finset.range (n + 1),
        ↑(Nat.choose n x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g s x‖
i : ℕ
⊢ 0 ≤ ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖