Theorem: ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear
File: Mathlib/Analysis/Calculus/ContDiff/Bounds.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
s✝ s₁ t u : Set E
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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: let Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
 ContinuousLinearMap.compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu)
  (ContinuousLinearMap.compL 𝕜 Fu G Gu (isoG.symm : G →L[𝕜] Gu)) Bu₀
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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
  simp [hBu, hBu₀, hfu, 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have Bu_le : ‖Bu‖ ≤ ‖B‖ := by
  refine' ContinuousLinearMap.opNorm_le_bound _ (norm_nonneg B) fun y => _
  refine' ContinuousLinearMap.opNorm_le_bound _ (by positivity) fun x => _
  simp only [hBu, hBu₀, compL_apply, coe_comp', Function.comp_apply,
    ContinuousLinearEquiv.coe_coe, LinearIsometryEquiv.coe_coe, flip_apply,
    LinearIsometryEquiv.norm_map]
  calc
    ‖B (isoE y) (isoF x)‖ ≤ ‖B (isoE y)‖ * ‖isoF x‖ := ContinuousLinearMap.le_opNorm _ _
    _ ≤ ‖B‖ * ‖isoE y‖ * ‖isoF x‖ := by gcongr; apply ContinuousLinearMap.le_opNorm
    _ = ‖B‖ * ‖y‖ * ‖x‖ := by simp only [LinearIsometryEquiv.norm_map]
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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have hxu : xu ∈ su := by
  simpa only [xu, su, 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: have xu_x : isoD xu = x := by simp only [xu, 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
xu_x : isoD xu = x
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
xu_x : isoD xu = x
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖ ≤
    ‖B‖ *
      ∑ i ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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 ∈ 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 ∈ Finset.range (n + 1),
        ↑(n.choose 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖ ≤
    ‖Bu‖ *
      ∑ x_1 ∈ Finset.range (n + 1),
        ↑(n.choose 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖

tactic: exact this.trans (mul_le_mul_of_nonneg_right Bu_le (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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖ ≤
    ‖Bu‖ *
      ∑ x_1 ∈ Finset.range (n + 1),
        ↑(n.choose 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 ∈ Finset.range (n + 1),
        ↑(n.choose i) * ‖iteratedFDerivWithin 𝕜 i f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) g s x‖
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
⊢ (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
state_after: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
y : Du
⊢ (Bu (fu y)) (gu y) = (⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD) y

tactic: simp [hBu, hBu₀, hfu, hgu]
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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
y : Du
⊢ (Bu (fu y)) (gu y) = (⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD) y
state_after: no goals

tactic: refine' ContinuousLinearMap.opNorm_le_bound _ (norm_nonneg B) 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
⊢ ‖Bu‖ ≤ ‖B‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
⊢ ‖Bu y‖ ≤ ‖B‖ * ‖y‖

tactic: refine' ContinuousLinearMap.opNorm_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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
⊢ ‖Bu y‖ ≤ ‖B‖ * ‖y‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖(Bu y) x‖ ≤ ‖B‖ * ‖y‖ * ‖x‖

tactic: simp only [hBu, hBu₀, compL_apply, coe_comp', Function.comp_apply,
  ContinuousLinearEquiv.coe_coe, LinearIsometryEquiv.coe_coe, 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖(Bu y) x‖ ≤ ‖B‖ * ‖y‖ * ‖x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖(B (isoE y)) (isoF x)‖ ≤ ‖B‖ * ‖y‖ * ‖x‖

tactic: calc
  ‖B (isoE y) (isoF x)‖ ≤ ‖B (isoE y)‖ * ‖isoF x‖ := ContinuousLinearMap.le_opNorm _ _
  _ ≤ ‖B‖ * ‖isoE y‖ * ‖isoF x‖ := by gcongr; apply ContinuousLinearMap.le_opNorm
  _ = ‖B‖ * ‖y‖ * ‖x‖ := by simp only [LinearIsometryEquiv.norm_map]
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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖(B (isoE y)) (isoF x)‖ ≤ ‖B‖ * ‖y‖ * ‖x‖
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
⊢ 0 ≤ ‖B‖ * ‖y‖
state_after: no goals

tactic: gcongr
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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖B (isoE y)‖ * ‖isoF x‖ ≤ ‖B‖ * ‖isoE y‖ * ‖isoF x‖
state_after: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖B (isoE y)‖ ≤ ‖B‖ * ‖isoE y‖

tactic: apply ContinuousLinearMap.le_opNorm
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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖B (isoE y)‖ ≤ ‖B‖ * ‖isoE y‖
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x✝ : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x✝ ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
y : Eu
x : Fu
⊢ ‖B‖ * ‖isoE y‖ * ‖isoF x‖ = ‖B‖ * ‖y‖ * ‖x‖
state_after: no goals

tactic: simpa only [xu, su, 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
⊢ xu ∈ su
state_after: no goals

tactic: simp only [xu, 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
⊢ isoD xu = x
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
xu_x : isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
i : ℕ
⊢ isoD xu ∈ s

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm x
hxu : xu ∈ su
xu_x : isoD xu = x
hfu : ContDiffOn 𝕜 (↑n) fu su
hgu : ContDiffOn 𝕜 (↑n) gu su
i : ℕ
⊢ isoD xu ∈ s
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 (⇑isoG.symm ∘ (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_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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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 (⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD) su xu‖ =
    ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) s x‖
state_after: 𝕜 : 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖
state_after: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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: 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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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
state_after: no goals

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
s✝ s₁ t u : Set E
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
s : Set D
x : D
hf : ContDiffOn 𝕜 N f s
hg : ContDiffOn 𝕜 N g s
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
n : ℕ
hn : ↑n ≤ N
Du : Type (max uD uE uF uG) := ULift.{max uE uF uG, uD} D
Eu : Type (max uD uE uF uG) := ULift.{max uD uF uG, uE} E
Fu : Type (max uD uE uF uG) := ULift.{max uD uE uG, uF} F
Gu : Type (max uD uE uF uG) := ULift.{max uD uE uF, uG} G
isoD : Du ≃ₗᵢ[𝕜] D
isoE : Eu ≃ₗᵢ[𝕜] E
isoF : Fu ≃ₗᵢ[𝕜] F
isoG : Gu ≃ₗᵢ[𝕜] G
fu : Du → Eu := ⇑isoE.symm ∘ f ∘ ⇑isoD
hfu✝ : fu = ⇑isoE.symm ∘ f ∘ ⇑isoD
gu : Du → Fu := ⇑isoF.symm ∘ g ∘ ⇑isoD
hgu✝ : gu = ⇑isoF.symm ∘ g ∘ ⇑isoD
Bu₀ : Eu →L[𝕜] Fu →L[𝕜] G :=
  ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
      ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
hBu₀ :
  Bu₀ =
    ((B.comp ↑{ toLinearEquiv := isoE.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip.comp
        ↑{ toLinearEquiv := isoF.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }).flip
Bu : Eu →L[𝕜] Fu →L[𝕜] Gu :=
  ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
      ((compL 𝕜 Fu G Gu) ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
    Bu₀
hBu :
  Bu =
    ((compL 𝕜 Eu (Fu →L[𝕜] G) (Fu →L[𝕜] Gu))
        ((compL 𝕜 Fu G Gu)
          ↑{ toLinearEquiv := isoG.symm.toLinearEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }))
      Bu₀
Bu_eq : (fun y => (Bu (fu y)) (gu y)) = ⇑isoG.symm ∘ (fun y => (B (f y)) (g y)) ∘ ⇑isoD
Bu_le : ‖Bu‖ ≤ ‖B‖
su : Set Du := ⇑isoD ⁻¹' s
hsu : UniqueDiffOn 𝕜 su
xu : Du := isoD.symm 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‖ ≤
    ‖Bu‖ *
      ∑ x_1 ∈ Finset.range (n + 1),
        ↑(n.choose x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g s x‖
⊢ 0 ≤
    ∑ x_1 ∈ Finset.range (n + 1),
      ↑(n.choose x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f s x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g s x‖
state_after: no goals