Theorem: ContDiffOn.comp_same_univ
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: induction' n using ENat.nat_induction with n IH Itop generalizing Eu 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.706460
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
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg : ContDiffOn 𝕜 n g t
hf : ContDiffOn 𝕜 n f s
st : s ⊆ f ⁻¹' t
⊢ ContDiffOn 𝕜 n (g ∘ f) s

tactic: rw [contDiffOn_zero] at hf hg⊢
state_before: case h0
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n g✝ t✝
hf✝ : ContDiffOn 𝕜 n f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg : ContDiffOn 𝕜 0 g t
hf : ContDiffOn 𝕜 0 f s
st : s ⊆ f ⁻¹' t
⊢ ContDiffOn 𝕜 0 (g ∘ f) s

tactic: exact ContinuousOn.comp hg hf st
state_before: case h0
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n g✝ t✝
hf✝ : ContDiffOn 𝕜 n f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg : ContinuousOn g t
hf : ContinuousOn f s
st : s ⊆ f ⁻¹' t
⊢ ContinuousOn (g ∘ f) s

tactic: rw [contDiffOn_succ_iff_hasFDerivWithinAt] at hg ⊢
state_before: case hsuc
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg : ContDiffOn 𝕜 (↑(Nat.succ n)) g t
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
⊢ ContDiffOn 𝕜 (↑(Nat.succ n)) (g ∘ f) s

tactic: intro x hx
state_before: case hsuc
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
⊢ ∀ (x : Eu),
    x ∈ s →
      ∃ u,
        u ∈ 𝓝[insert x s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: rcases (contDiffOn_succ_iff_hasFDerivWithinAt.1 hf) x hx with ⟨u, hu, f', hf', f'_diff⟩
state_before: case hsuc
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: rcases hg (f x) (st hx) with ⟨v, hv, g', hg', g'_diff⟩
state_before: case hsuc.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[insert x s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: rw [insert_eq_of_mem hx] at hu ⊢
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[insert x s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: have xu : x ∈ u := mem_of_mem_nhdsWithin hx hu
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: let w := s ∩ (u ∩ f ⁻¹' v)
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: have wv : w ⊆ f ⁻¹' v := fun y hy => hy.2.2
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: have wu : w ⊆ u := fun y hy => hy.2.1
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: have ws : w ⊆ s := fun y hy => hy.1
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: refine' ⟨w, _, fun y => (g' (f y)).comp (f' y), _, _⟩
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ∃ u, u ∈ 𝓝[s] x ∧ ∃ f', (∀ (x : Eu), x ∈ u → HasFDerivWithinAt (g ∘ f) (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u

tactic: show w ∈ 𝓝[s] x
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ w ∈ 𝓝[s] x

case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_2
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ∀ (x : Eu), x ∈ w → HasFDerivWithinAt (g ∘ f) ((fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) x) w x

case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: show ∀ y ∈ w, HasFDerivWithinAt (g ∘ f) ((g' (f y)).comp (f' y)) w y
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_2
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ∀ (x : Eu), x ∈ w → HasFDerivWithinAt (g ∘ f) ((fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) x) w x

case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: show ContDiffOn 𝕜 n (fun y => (g' (f y)).comp (f' y)) w
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: apply Filter.inter_mem self_mem_nhdsWithin
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ w ∈ 𝓝[s] x

tactic: apply Filter.inter_mem hu
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ u ∩ f ⁻¹' v ∈ 𝓝[s] x

tactic: apply ContinuousWithinAt.preimage_mem_nhdsWithin'
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ f ⁻¹' v ∈ 𝓝[s] x

tactic: rw [← continuousWithinAt_inter' hu]
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1.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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ContinuousWithinAt f s x

tactic: exact (hf' x xu).differentiableWithinAt.continuousWithinAt.mono (inter_subset_right _ _)
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1.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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ContinuousWithinAt f (s ∩ u) x

tactic: apply nhdsWithin_mono _ _ hv
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1.ht
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ v ∈ 𝓝[f '' s] f x

tactic: exact Subset.trans (image_subset_iff.mpr st) (subset_insert (f x) t)
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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ f '' s ⊆ insert (f x) t

tactic: rintro y ⟨-, yu, yv⟩
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_2
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ∀ (y : Eu), y ∈ w → HasFDerivWithinAt (g ∘ f) (ContinuousLinearMap.comp (g' (f y)) (f' y)) w y

tactic: exact (hg' (f y) yv).comp y ((hf' y yu).mono wu) wv
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_2.intro.intro
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
y : Eu
yu : y ∈ u
yv : y ∈ f ⁻¹' v
⊢ HasFDerivWithinAt (g ∘ f) (ContinuousLinearMap.comp (g' (f y)) (f' y)) w y

tactic: have A : ContDiffOn 𝕜 n (fun y => g' (f y)) w :=
  IH g'_diff ((hf.of_le (WithTop.coe_le_coe.2 (Nat.le_succ n))).mono ws) wv
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: have B : ContDiffOn 𝕜 n f' w := f'_diff.mono wu
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
A : ContDiffOn 𝕜 (↑n) (fun y => g' (f y)) w
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: have C : ContDiffOn 𝕜 n (fun y => (g' (f y), f' y)) w := A.prod B
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
A : ContDiffOn 𝕜 (↑n) (fun y => g' (f y)) w
B : ContDiffOn 𝕜 (↑n) f' w
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: have D : ContDiffOn 𝕜 n (fun p : (Fu →L[𝕜] Gu) × (Eu →L[𝕜] Fu) => p.1.comp p.2) univ :=
  isBoundedBilinearMap_comp.contDiff.contDiffOn
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
A : ContDiffOn 𝕜 (↑n) (fun y => g' (f y)) w
B : ContDiffOn 𝕜 (↑n) f' w
C : ContDiffOn 𝕜 (↑n) (fun y => (g' (f y), f' y)) w
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: exact IH D C (subset_univ _)
state_before: case hsuc.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n✝ g✝ t✝
hf✝ : ContDiffOn 𝕜 n✝ f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
n : ℕ
IH :
  ∀ {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg :
  ∀ (x : Fu),
    x ∈ t →
      ∃ u, u ∈ 𝓝[insert x t] x ∧ ∃ f', (∀ (x : Fu), x ∈ u → HasFDerivWithinAt g (f' x) u x) ∧ ContDiffOn 𝕜 (↑n) f' u
hf : ContDiffOn 𝕜 (↑(Nat.succ n)) f s
st : s ⊆ f ⁻¹' t
x : Eu
hx : x ∈ s
u : Set Eu
hu : u ∈ 𝓝[s] x
f' : Eu → Eu →L[𝕜] Fu
hf' : ∀ (x : Eu), x ∈ u → HasFDerivWithinAt f (f' x) u x
f'_diff : ContDiffOn 𝕜 (↑n) f' u
v : Set Fu
hv : v ∈ 𝓝[insert (f x) t] f x
g' : Fu → Fu →L[𝕜] Gu
hg' : ∀ (x : Fu), x ∈ v → HasFDerivWithinAt g (g' x) v x
g'_diff : ContDiffOn 𝕜 (↑n) g' v
xu : x ∈ u
w : Set Eu := s ∩ (u ∩ f ⁻¹' v)
wv : w ⊆ f ⁻¹' v
wu : w ⊆ u
ws : w ⊆ s
A : ContDiffOn 𝕜 (↑n) (fun y => g' (f y)) w
B : ContDiffOn 𝕜 (↑n) f' w
C : ContDiffOn 𝕜 (↑n) (fun y => (g' (f y), f' y)) w
D : ContDiffOn 𝕜 (↑n) (fun p => ContinuousLinearMap.comp p.fst p.snd) univ
⊢ ContDiffOn 𝕜 (↑n) (fun y => ContinuousLinearMap.comp (g' (f y)) (f' y)) w

tactic: rw [contDiffOn_top] at hf hg ⊢
state_before: case htop
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n g✝ t✝
hf✝ : ContDiffOn 𝕜 n f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
Itop :
  ∀ (n : ℕ) {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg : ContDiffOn 𝕜 ⊤ g t
hf : ContDiffOn 𝕜 ⊤ f s
st : s ⊆ f ⁻¹' t
⊢ ContDiffOn 𝕜 ⊤ (g ∘ f) s

tactic: exact fun n => Itop n (hg n) (hf n) st
state_before: case htop
𝕜 : 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.706460
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
Eu✝ : Type u
inst✝¹¹ : NormedAddCommGroup Eu✝
inst✝¹⁰ : NormedSpace 𝕜 Eu✝
Fu✝ : Type u
inst✝⁹ : NormedAddCommGroup Fu✝
inst✝⁸ : NormedSpace 𝕜 Fu✝
Gu✝ : Type u
inst✝⁷ : NormedAddCommGroup Gu✝
inst✝⁶ : NormedSpace 𝕜 Gu✝
s✝ : Set Eu✝
t✝ : Set Fu✝
g✝ : Fu✝ → Gu✝
f✝ : Eu✝ → Fu✝
hg✝ : ContDiffOn 𝕜 n g✝ t✝
hf✝ : ContDiffOn 𝕜 n f✝ s✝
st✝ : s✝ ⊆ f✝ ⁻¹' t✝
Itop :
  ∀ (n : ℕ) {Eu : Type u} [inst : NormedAddCommGroup Eu] [inst_1 : NormedSpace 𝕜 Eu] {Fu : Type u}
    [inst_2 : NormedAddCommGroup Fu] [inst_3 : NormedSpace 𝕜 Fu] {Gu : Type u} [inst_4 : NormedAddCommGroup Gu]
    [inst_5 : NormedSpace 𝕜 Gu] {s : Set Eu} {t : Set Fu} {g : Fu → Gu} {f : Eu → Fu},
    ContDiffOn 𝕜 (↑n) g t → ContDiffOn 𝕜 (↑n) f s → s ⊆ f ⁻¹' t → ContDiffOn 𝕜 (↑n) (g ∘ f) s
Eu : Type u
inst✝⁵ : NormedAddCommGroup Eu
inst✝⁴ : NormedSpace 𝕜 Eu
Fu : Type u
inst✝³ : NormedAddCommGroup Fu
inst✝² : NormedSpace 𝕜 Fu
Gu : Type u
inst✝¹ : NormedAddCommGroup Gu
inst✝ : NormedSpace 𝕜 Gu
s : Set Eu
t : Set Fu
g : Fu → Gu
f : Eu → Fu
hg : ∀ (n : ℕ), ContDiffOn 𝕜 (↑n) g t
hf : ∀ (n : ℕ), ContDiffOn 𝕜 (↑n) f s
st : s ⊆ f ⁻¹' t
⊢ ∀ (n : ℕ), ContDiffOn 𝕜 (↑n) (g ∘ f) s