Theorem: norm_iteratedFDerivWithin_comp_le_aux
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: induction' n using Nat.case_strong_induction_on with n IH generalizing Gu
state_before: 𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹³ : NormedAddCommGroup D✝
inst✝¹² : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
F : Type uF
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
G : Type uG
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
f : E → Fu
n : ℕ
s : Set E
t : Set Fu
x : E
hg : ContDiffOn 𝕜 (↑n) g t
hf : ContDiffOn 𝕜 (↑n) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC : ∀ (i : ℕ), i ≤ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
⊢ ‖iteratedFDerivWithin 𝕜 n (g ∘ f) s x‖ ≤ ↑n ! * C * D ^ n

tactic: have M : (n : ℕ∞) < n.succ := Nat.cast_lt.2 n.lt_succ_self
state_before: case hi
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
⊢ ‖iteratedFDerivWithin 𝕜 (Nat.succ n) (g ∘ f) s x‖ ≤ ↑(Nat.succ n)! * C * D ^ Nat.succ n

tactic: have Cnonneg : 0 ≤ C := (norm_nonneg _).trans (hC 0 bot_le)
state_before: case hi
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
⊢ ‖iteratedFDerivWithin 𝕜 (Nat.succ n) (g ∘ f) s x‖ ≤ ↑(Nat.succ n)! * C * D ^ Nat.succ n

tactic: have Dnonneg : 0 ≤ D := by
  have : 1 ≤ n + 1 := by simp only [le_add_iff_nonneg_left, zero_le']
  simpa only [pow_one] using (norm_nonneg _).trans (hD 1 le_rfl this)
state_before: case hi
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
⊢ ‖iteratedFDerivWithin 𝕜 (Nat.succ n) (g ∘ f) s x‖ ≤ ↑(Nat.succ n)! * C * D ^ Nat.succ n

tactic: have I : ∀ i ∈ Finset.range (n + 1),
    ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ i ! * C * D ^ i
state_before: case hi
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
⊢ ‖iteratedFDerivWithin 𝕜 (Nat.succ n) (g ∘ f) s x‖ ≤ ↑(Nat.succ n)! * C * D ^ Nat.succ n

tactic: simpa [norm_iteratedFDerivWithin_zero, Nat.factorial_zero, algebraMap.coe_one, one_mul,
  pow_zero, mul_one, comp_apply] using hC 0 le_rfl
state_before: case hz
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑0) g t
hf : ContDiffOn 𝕜 (↑0) f s
hC : ∀ (i : ℕ), i ≤ 0 → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ 0 → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
⊢ ‖iteratedFDerivWithin 𝕜 0 (g ∘ f) s x‖ ≤ ↑0! * C * D ^ 0

tactic: have : 1 ≤ n + 1 := by simp only [le_add_iff_nonneg_left, zero_le']
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
⊢ 0 ≤ D

tactic: simpa only [pow_one] using (norm_nonneg _).trans (hD 1 le_rfl this)
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
this : 1 ≤ n + 1
⊢ 0 ≤ D

tactic: simp only [le_add_iff_nonneg_left, zero_le']
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
⊢ 1 ≤ n + 1

tactic: intro i hi
state_before: case I
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
⊢ ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i

tactic: simp only [Finset.mem_range_succ_iff] at hi
state_before: case I
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i

tactic: apply IH i hi
state_before: case I
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i

tactic: apply hg.fderivWithin ht
state_before: case I.hg
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ContDiffOn 𝕜 (↑i) (fderivWithin 𝕜 g t) t

tactic: simp only [Nat.cast_succ]
state_before: case I.hg
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ↑i + 1 ≤ ↑(Nat.succ n)

tactic: exact add_le_add_right (Nat.cast_le.2 hi) _
state_before: case I.hg
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ↑i + 1 ≤ ↑n + 1

tactic: apply hf.of_le (Nat.cast_le.2 (hi.trans n.le_succ))
state_before: case I.hf
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ContDiffOn 𝕜 (↑i) f s

tactic: intro j hj
state_before: case I.hC
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ∀ (i_1 : ℕ), i_1 ≤ i → ‖iteratedFDerivWithin 𝕜 i_1 (fderivWithin 𝕜 g t) t (f x)‖ ≤ C

tactic: have : ‖iteratedFDerivWithin 𝕜 j (fderivWithin 𝕜 g t) t (f x)‖ =
    ‖iteratedFDerivWithin 𝕜 (j + 1) g t (f x)‖ :=
  by rw [iteratedFDerivWithin_succ_eq_comp_right ht (hst hx), comp_apply,
    LinearIsometryEquiv.norm_map]
state_before: case I.hC
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
j : ℕ
hj : j ≤ i
⊢ ‖iteratedFDerivWithin 𝕜 j (fderivWithin 𝕜 g t) t (f x)‖ ≤ C

tactic: rw [this]
state_before: case I.hC
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
j : ℕ
hj : j ≤ i
this : ‖iteratedFDerivWithin 𝕜 j (fderivWithin 𝕜 g t) t (f x)‖ = ‖iteratedFDerivWithin 𝕜 (j + 1) g t (f x)‖
⊢ ‖iteratedFDerivWithin 𝕜 j (fderivWithin 𝕜 g t) t (f x)‖ ≤ C

tactic: exact hC (j + 1) (add_le_add (hj.trans hi) le_rfl)
state_before: case I.hC
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
j : ℕ
hj : j ≤ i
this : ‖iteratedFDerivWithin 𝕜 j (fderivWithin 𝕜 g t) t (f x)‖ = ‖iteratedFDerivWithin 𝕜 (j + 1) g t (f x)‖
⊢ ‖iteratedFDerivWithin 𝕜 (j + 1) g t (f x)‖ ≤ C

tactic: rw [iteratedFDerivWithin_succ_eq_comp_right ht (hst hx), comp_apply,
LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
j : ℕ
hj : j ≤ i
⊢ ‖iteratedFDerivWithin 𝕜 j (fderivWithin 𝕜 g t) t (f x)‖ = ‖iteratedFDerivWithin 𝕜 (j + 1) g t (f x)‖

tactic: intro j hj h'j
state_before: case I.hD
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
⊢ ∀ (i_1 : ℕ), 1 ≤ i_1 → i_1 ≤ i → ‖iteratedFDerivWithin 𝕜 i_1 f s x‖ ≤ D ^ i_1

tactic: exact hD j hj (h'j.trans (hi.trans n.le_succ))
state_before: case I.hD
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
i : ℕ
hi : i ≤ n
j : ℕ
hj : 1 ≤ j
h'j : j ≤ i
⊢ ‖iteratedFDerivWithin 𝕜 j f s x‖ ≤ D ^ j

tactic: intro i
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
⊢ ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)

tactic: have : ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ =
    ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)

tactic: rw [this]
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
i : ℕ
this : ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ = ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s x‖
⊢ ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)

tactic: apply hD
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
i : ℕ
this : ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ = ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s x‖
⊢ ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s x‖ ≤ D ^ (n - i + 1)

tactic: rw [iteratedFDerivWithin_succ_eq_comp_right hs hx, comp_apply, LinearIsometryEquiv.norm_map]
state_before: case this
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ = ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s x‖

tactic: simp only [le_add_iff_nonneg_left, zero_le']
state_before: case a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
i : ℕ
this : ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ = ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s x‖
⊢ 1 ≤ n - i + 1

tactic: apply Nat.succ_le_succ tsub_le_self
state_before: case a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
i : ℕ
this : ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ = ‖iteratedFDerivWithin 𝕜 (n - i + 1) f s x‖
⊢ n - i + 1 ≤ Nat.succ n

tactic: rw [iteratedFDerivWithin_succ_eq_comp_right hs hx, comp_apply,
  LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ‖iteratedFDerivWithin 𝕜 (n + 1) (g ∘ f) s x‖ = ‖iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 (g ∘ f) s y) s x‖

tactic: have L : (1 : ℕ∞) ≤ n.succ := by simpa only [ENat.coe_one, Nat.one_le_cast] using n.succ_pos
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 (g ∘ f) s y) s x‖ =
    ‖iteratedFDerivWithin 𝕜 n
        (fun y => ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)) s x‖

tactic: congr 1
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
L : 1 ≤ ↑(Nat.succ n)
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 (g ∘ f) s y) s x‖ =
    ‖iteratedFDerivWithin 𝕜 n
        (fun y => ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)) s x‖

tactic: refine' iteratedFDerivWithin_congr (fun y hy => _) hx _
state_before: case e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
L : 1 ≤ ↑(Nat.succ n)
⊢ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 (g ∘ f) s y) s x =
    iteratedFDerivWithin 𝕜 n
      (fun y => ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)) s x

tactic: apply fderivWithin.comp _ _ _ hst (hs y hy)
state_before: case e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
L : 1 ≤ ↑(Nat.succ n)
y : E
hy : y ∈ s
⊢ fderivWithin 𝕜 (g ∘ f) s y =
    ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)

tactic: simpa only [ENat.coe_one, Nat.one_le_cast] using n.succ_pos
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ 1 ≤ ↑(Nat.succ n)

tactic: exact hg.differentiableOn L _ (hst hy)
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
L : 1 ≤ ↑(Nat.succ n)
y : E
hy : y ∈ s
⊢ DifferentiableWithinAt 𝕜 g t (f y)

tactic: exact hf.differentiableOn L _ hy
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
L : 1 ≤ ↑(Nat.succ n)
y : E
hy : y ∈ s
⊢ DifferentiableWithinAt 𝕜 f s y

tactic: have A : ContDiffOn 𝕜 n (fderivWithin 𝕜 g t ∘ f) s := by
  apply ContDiffOn.comp _ (hf.of_le M.le) hst
  apply hg.fderivWithin ht
  simp only [Nat.cast_succ, le_refl]
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ‖iteratedFDerivWithin 𝕜 n
        (fun y => ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)) s x‖ ≤
    ∑ i in Finset.range (n + 1),
      ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ *
        ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖

tactic: have B : ContDiffOn 𝕜 n (fderivWithin 𝕜 f s) s := by
  apply hf.fderivWithin hs
  simp only [Nat.cast_succ, le_refl]
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
A : ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 g t ∘ f) s
⊢ ‖iteratedFDerivWithin 𝕜 n
        (fun y => ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)) s x‖ ≤
    ∑ i in Finset.range (n + 1),
      ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ *
        ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖

tactic: exact (ContinuousLinearMap.compL 𝕜 E Fu Gu).norm_iteratedFDerivWithin_le_of_bilinear_of_le_one
  A B hs hx le_rfl (ContinuousLinearMap.norm_compL_le 𝕜 E Fu Gu)
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
A : ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 g t ∘ f) s
B : ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 f s) s
⊢ ‖iteratedFDerivWithin 𝕜 n
        (fun y => ↑(↑(ContinuousLinearMap.compL 𝕜 E Fu Gu) (fderivWithin 𝕜 g t (f y))) (fderivWithin 𝕜 f s y)) s x‖ ≤
    ∑ i in Finset.range (n + 1),
      ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ *
        ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖

tactic: apply ContDiffOn.comp _ (hf.of_le M.le) hst
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 g t ∘ f) s

tactic: apply hg.fderivWithin ht
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 g t) t

tactic: simp only [Nat.cast_succ, le_refl]
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ↑n + 1 ≤ ↑(Nat.succ n)

tactic: apply hf.fderivWithin hs
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
A : ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 g t ∘ f) s
⊢ ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 f s) s

tactic: simp only [Nat.cast_succ, le_refl]
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
A : ContDiffOn 𝕜 (↑n) (fderivWithin 𝕜 g t ∘ f) s
⊢ ↑n + 1 ≤ ↑(Nat.succ n)

tactic: apply Finset.sum_le_sum fun i hi => ?_
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ∑ i in Finset.range (n + 1),
      ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ *
        ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤
    ∑ i in Finset.range (n + 1), ↑(Nat.choose n i) * (↑i ! * C * D ^ i) * D ^ (n - i + 1)

tactic: simp only [mul_assoc (n.choose i : ℝ)]
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ↑(Nat.choose n i) * ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ *
      ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤
    ↑(Nat.choose n i) * (↑i ! * C * D ^ i) * D ^ (n - i + 1)

tactic: refine' mul_le_mul_of_nonneg_left _ (Nat.cast_nonneg _)
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ↑(Nat.choose n i) *
      (‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ *
        ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖) ≤
    ↑(Nat.choose n i) * (↑i ! * C * D ^ i * D ^ (n - i + 1))

tactic: apply mul_le_mul (I i hi) (J i) (norm_nonneg _)
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ * ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤
    ↑i ! * C * D ^ i * D ^ (n - i + 1)

tactic: positivity
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ 0 ≤ ↑i ! * C * D ^ i

tactic: apply Finset.sum_congr rfl fun i hi => ?_
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ∑ i in Finset.range (n + 1), ↑(Nat.choose n i) * (↑i ! * C * D ^ i) * D ^ (n - i + 1) =
    ∑ i in Finset.range (n + 1), ↑n ! * ((↑i !)⁻¹ * ↑i !) * C * (D ^ i * D ^ (n - i + 1)) * (↑(n - i)!)⁻¹

tactic: simp only [Nat.cast_choose ℝ (Finset.mem_range_succ_iff.1 hi), div_eq_inv_mul, mul_inv]
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ↑(Nat.choose n i) * (↑i ! * C * D ^ i) * D ^ (n - i + 1) =
    ↑n ! * ((↑i !)⁻¹ * ↑i !) * C * (D ^ i * D ^ (n - i + 1)) * (↑(n - i)!)⁻¹

tactic: ring
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ (↑i !)⁻¹ * (↑(n - i)!)⁻¹ * ↑n ! * (↑i ! * C * D ^ i) * D ^ (n - i + 1) =
    ↑n ! * ((↑i !)⁻¹ * ↑i !) * C * (D ^ i * D ^ (n - i + 1)) * (↑(n - i)!)⁻¹

tactic: apply Finset.sum_congr rfl fun i hi => ?_
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ∑ i in Finset.range (n + 1), ↑n ! * ((↑i !)⁻¹ * ↑i !) * C * (D ^ i * D ^ (n - i + 1)) * (↑(n - i)!)⁻¹ =
    ∑ i in Finset.range (n + 1), ↑n ! * 1 * C * D ^ (n + 1) * (↑(n - i)!)⁻¹

tactic: congr 2
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ↑n ! * ((↑i !)⁻¹ * ↑i !) * C * (D ^ i * D ^ (n - i + 1)) * (↑(n - i)!)⁻¹ = ↑n ! * 1 * C * D ^ (n + 1) * (↑(n - i)!)⁻¹

tactic: congr
state_before: case e_a.e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ↑n ! * ((↑i !)⁻¹ * ↑i !) * C = ↑n ! * 1 * C

tactic: apply inv_mul_cancel
state_before: case e_a.e_a.e_a.e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ (↑i !)⁻¹ * ↑i ! = 1

tactic: simpa only [Ne.def, Nat.cast_eq_zero] using i.factorial_ne_zero
state_before: case e_a.e_a.e_a.e_a.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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ ↑i ! ≠ 0

tactic: rw [← pow_add]
state_before: case e_a.e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ D ^ i * D ^ (n - i + 1) = D ^ (n + 1)

tactic: congr 1
state_before: case e_a.e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ D ^ (i + (n - i + 1)) = D ^ (n + 1)

tactic: rw [Nat.add_succ, Nat.succ_inj']
state_before: case e_a.e_a.e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ i + (n - i + 1) = n + 1

tactic: exact Nat.add_sub_of_le (Finset.mem_range_succ_iff.1 hi)
state_before: case e_a.e_a.e_a
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
hi : i ∈ Finset.range (n + 1)
⊢ i + (n - i) = n

tactic: apply Finset.sum_le_sum fun i _hi => ?_
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ∑ i in Finset.range (n + 1), ↑n ! * 1 * C * D ^ (n + 1) * (↑(n - i)!)⁻¹ ≤
    ∑ i in Finset.range (n + 1), ↑n ! * 1 * C * D ^ (n + 1) * 1

tactic: refine' mul_le_mul_of_nonneg_left _ (by positivity)
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
_hi : i ∈ Finset.range (n + 1)
⊢ ↑n ! * 1 * C * D ^ (n + 1) * (↑(n - i)!)⁻¹ ≤ ↑n ! * 1 * C * D ^ (n + 1) * 1

tactic: apply inv_le_one
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
_hi : i ∈ Finset.range (n + 1)
⊢ (↑(n - i)!)⁻¹ ≤ 1

tactic: simpa only [Nat.one_le_cast] using (n - i).factorial_pos
state_before: case ha
𝕜 : 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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
_hi : i ∈ Finset.range (n + 1)
⊢ 1 ≤ ↑(n - i)!

tactic: positivity
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D✝ : Type uD
inst✝¹⁵ : NormedAddCommGroup D✝
inst✝¹⁴ : NormedSpace 𝕜 D✝
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
i : ℕ
_hi : i ∈ Finset.range (n + 1)
⊢ 0 ≤ ↑n ! * 1 * C * D ^ (n + 1)

tactic: simp only [mul_assoc, mul_one, Finset.sum_const, Finset.card_range, nsmul_eq_mul,
  Nat.factorial_succ, Nat.cast_mul]
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.4176790
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
Fu Gu✝ : Type u
inst✝⁵ : NormedAddCommGroup Fu
inst✝⁴ : NormedSpace 𝕜 Fu
inst✝³ : NormedAddCommGroup Gu✝
inst✝² : NormedSpace 𝕜 Gu✝
g✝ : Fu → Gu✝
f : E → Fu
n✝ : ℕ
s : Set E
t : Set Fu
x : E
hg✝ : ContDiffOn 𝕜 (↑n✝) g✝ t
hf✝ : ContDiffOn 𝕜 (↑n✝) f s
ht : UniqueDiffOn 𝕜 t
hs : UniqueDiffOn 𝕜 s
hst : MapsTo f s t
hx : x ∈ s
C D : ℝ
hC✝ : ∀ (i : ℕ), i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i g✝ t (f x)‖ ≤ C
hD✝ : ∀ (i : ℕ), 1 ≤ i → i ≤ n✝ → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
n : ℕ
IH :
  ∀ (m : ℕ),
    m ≤ n →
      ∀ {Gu : Type u} [inst : NormedAddCommGroup Gu] [inst_1 : NormedSpace 𝕜 Gu] {g : Fu → Gu},
        ContDiffOn 𝕜 (↑m) g t →
          ContDiffOn 𝕜 (↑m) f s →
            (∀ (i : ℕ), i ≤ m → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C) →
              (∀ (i : ℕ), 1 ≤ i → i ≤ m → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i) →
                ‖iteratedFDerivWithin 𝕜 m (g ∘ f) s x‖ ≤ ↑m ! * C * D ^ m
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
g : Fu → Gu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
hC : ∀ (i : ℕ), i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i g t (f x)‖ ≤ C
hD : ∀ (i : ℕ), 1 ≤ i → i ≤ Nat.succ n → ‖iteratedFDerivWithin 𝕜 i f s x‖ ≤ D ^ i
M : ↑n < ↑(Nat.succ n)
Cnonneg : 0 ≤ C
Dnonneg : 0 ≤ D
I : ∀ (i : ℕ), i ∈ Finset.range (n + 1) → ‖iteratedFDerivWithin 𝕜 i (fderivWithin 𝕜 g t ∘ f) s x‖ ≤ ↑i ! * C * D ^ i
J : ∀ (i : ℕ), ‖iteratedFDerivWithin 𝕜 (n - i) (fderivWithin 𝕜 f s) s x‖ ≤ D ^ (n - i + 1)
⊢ ∑ i in Finset.range (n + 1), ↑n ! * 1 * C * D ^ (n + 1) * 1 = ↑(n + 1)! * C * D ^ (n + 1)