Theorem: ContinuousLinearEquiv.iteratedFDerivWithin_comp_left
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: induction' i with i IH generalizing x
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
i : ℕ
⊢ iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
    ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)

tactic: ext1 m
state_before: case zero
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
x : E
hx : x ∈ s
⊢ iteratedFDerivWithin 𝕜 Nat.zero (↑g ∘ f) s x =
    ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 Nat.zero f s x)

tactic: simp only [Nat.zero_eq, iteratedFDerivWithin_zero_apply, comp_apply,
  ContinuousLinearMap.compContinuousMultilinearMap_coe, coe_coe]
state_before: case zero.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
x : E
hx : x ∈ s
m : Fin Nat.zero → E
⊢ ↑(iteratedFDerivWithin 𝕜 Nat.zero (↑g ∘ f) s x) m =
    ↑(ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 Nat.zero f s x)) m

tactic: ext1 m
state_before: case succ
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
⊢ iteratedFDerivWithin 𝕜 (Nat.succ i) (↑g ∘ f) s x =
    ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 (Nat.succ i) f s x)

tactic: rw [iteratedFDerivWithin_succ_apply_left]
state_before: case succ.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
m : Fin (Nat.succ i) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ i) (↑g ∘ f) s x) m =
    ↑(ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 (Nat.succ i) f s x)) m

tactic: have Z : fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (g ∘ f) s) s x =
    fderivWithin 𝕜 (g.compContinuousMultilinearMapL (fun _ : Fin i => E) ∘
      iteratedFDerivWithin 𝕜 i f s) s x :=
  fderivWithin_congr' (@IH) hx
state_before: case succ.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
m : Fin (Nat.succ i) → E
⊢ ↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (↑g ∘ f) s) s x) (m 0)) (tail m) =
    ↑(ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 (Nat.succ i) f s x)) m

tactic: simp_rw [Z]
state_before: case succ.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
m : Fin (Nat.succ i) → E
Z :
  fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (↑g ∘ f) s) s x =
    fderivWithin 𝕜 (↑(compContinuousMultilinearMapL (fun x => E) g) ∘ iteratedFDerivWithin 𝕜 i f s) s x
⊢ ↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (↑g ∘ f) s) s x) (m 0)) (tail m) =
    ↑(ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 (Nat.succ i) f s x)) m

tactic: rw [(g.compContinuousMultilinearMapL fun _ : Fin i => E).comp_fderivWithin (hs x hx)]
state_before: case succ.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
m : Fin (Nat.succ i) → E
Z :
  fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (↑g ∘ f) s) s x =
    fderivWithin 𝕜 (↑(compContinuousMultilinearMapL (fun x => E) g) ∘ iteratedFDerivWithin 𝕜 i f s) s x
⊢ ↑(↑(fderivWithin 𝕜 (↑(compContinuousMultilinearMapL (fun x => E) g) ∘ iteratedFDerivWithin 𝕜 i f s) s x) (m 0))
      (tail m) =
    ↑(ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 (Nat.succ i) f s x)) m

tactic: simp only [ContinuousLinearMap.coe_comp', ContinuousLinearEquiv.coe_coe, comp_apply,
  ContinuousLinearEquiv.compContinuousMultilinearMapL_apply,
  ContinuousLinearMap.compContinuousMultilinearMap_coe, EmbeddingLike.apply_eq_iff_eq]
state_before: case succ.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
m : Fin (Nat.succ i) → E
Z :
  fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (↑g ∘ f) s) s x =
    fderivWithin 𝕜 (↑(compContinuousMultilinearMapL (fun x => E) g) ∘ iteratedFDerivWithin 𝕜 i f s) s x
⊢ ↑(↑(ContinuousLinearMap.comp (↑(compContinuousMultilinearMapL (fun x => E) g))
              (fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i f s) s x))
          (m 0))
      (tail m) =
    ↑(ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 (Nat.succ i) f s x)) m

tactic: rw [iteratedFDerivWithin_succ_apply_left]
state_before: case succ.H
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.215728
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x✝ x₀ : E
c : F
b : E × F → G
m✝ n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃L[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
i : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
        ContinuousLinearMap.compContinuousMultilinearMap (↑g) (iteratedFDerivWithin 𝕜 i f s x)
x : E
hx : x ∈ s
m : Fin (Nat.succ i) → E
Z :
  fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i (↑g ∘ f) s) s x =
    fderivWithin 𝕜 (↑(compContinuousMultilinearMapL (fun x => E) g) ∘ iteratedFDerivWithin 𝕜 i f s) s x
⊢ ↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 i f s) s x) (m 0)) (tail m) =
    ↑(iteratedFDerivWithin 𝕜 (Nat.succ i) f s x) m