Theorem: ContDiffWithinAt.comp
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: intro m hm
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
⊢ ContDiffWithinAt 𝕜 n (g ∘ f) s x

tactic: rcases hg.contDiffOn hm with ⟨u, u_nhd, _, hu⟩
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: rcases hf.contDiffOn hm with ⟨v, v_nhd, vs, hv⟩
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: have xmem : x ∈ f ⁻¹' u ∩ v :=
  ⟨(mem_of_mem_nhdsWithin (mem_insert (f x) _) u_nhd : _),
    mem_of_mem_nhdsWithin (mem_insert x s) v_nhd⟩
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: have : f ⁻¹' u ∈ 𝓝[insert x s] x := by
  apply hf.continuousWithinAt.insert_self.preimage_mem_nhdsWithin'
  apply nhdsWithin_mono _ _ u_nhd
  rw [image_insert_eq]
  exact insert_subset_insert (image_subset_iff.mpr st)
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: have Z :=
  (hu.comp (hv.mono (inter_subset_right (f ⁻¹' u) v)) (inter_subset_left _ _)).contDiffWithinAt
    xmem m le_rfl
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: have : 𝓝[f ⁻¹' u ∩ v] x = 𝓝[insert x s] x := by
  have A : f ⁻¹' u ∩ v = insert x s ∩ (f ⁻¹' u ∩ v) := by
    apply Subset.antisymm _ (inter_subset_right _ _)
    rintro y ⟨hy1, hy2⟩
    simpa only [mem_inter_iff, mem_preimage, hy2, and_true, true_and, vs hy2] using hy1
  rw [A, ← nhdsWithin_restrict'']
  exact Filter.inter_mem this v_nhd
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: rwa [insert_eq_of_mem xmem, this] at Z
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this✝ : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
this : 𝓝[f ⁻¹' u ∩ v] x = 𝓝[insert x s] x
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u

tactic: apply hf.continuousWithinAt.insert_self.preimage_mem_nhdsWithin'
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
⊢ f ⁻¹' u ∈ 𝓝[insert x s] x

tactic: apply nhdsWithin_mono _ _ u_nhd
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
⊢ u ∈ 𝓝[f '' insert x s] f x

tactic: rw [image_insert_eq]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
⊢ f '' insert x s ⊆ insert (f x) t

tactic: exact insert_subset_insert (image_subset_iff.mpr st)
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
⊢ insert (f x) (f '' s) ⊆ insert (f x) t

tactic: have A : f ⁻¹' u ∩ v = insert x s ∩ (f ⁻¹' u ∩ v) := by
  apply Subset.antisymm _ (inter_subset_right _ _)
  rintro y ⟨hy1, hy2⟩
  simpa only [mem_inter_iff, mem_preimage, hy2, and_true, true_and, vs hy2] using hy1
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
⊢ 𝓝[f ⁻¹' u ∩ v] x = 𝓝[insert x s] x

tactic: rw [A, ← nhdsWithin_restrict'']
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
A : f ⁻¹' u ∩ v = insert x s ∩ (f ⁻¹' u ∩ v)
⊢ 𝓝[f ⁻¹' u ∩ v] x = 𝓝[insert x s] x

tactic: exact Filter.inter_mem this v_nhd
state_before: case h
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
A : f ⁻¹' u ∩ v = insert x s ∩ (f ⁻¹' u ∩ v)
⊢ f ⁻¹' u ∩ v ∈ 𝓝[insert x s] x

tactic: apply Subset.antisymm _ (inter_subset_right _ _)
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
⊢ f ⁻¹' u ∩ v = insert x s ∩ (f ⁻¹' u ∩ v)

tactic: rintro y ⟨hy1, hy2⟩
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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
⊢ f ⁻¹' u ∩ v ⊆ insert x s ∩ (f ⁻¹' u ∩ v)

tactic: simpa only [mem_inter_iff, mem_preimage, hy2, and_true, true_and, vs hy2] using hy1
state_before: case 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.771367
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
s : Set E
t : Set F
g : F → G
f : E → F
x : E
hg : ContDiffWithinAt 𝕜 n g t (f x)
hf : ContDiffWithinAt 𝕜 n f s x
st : s ⊆ f ⁻¹' t
m : ℕ
hm : ↑m ≤ n
u : Set F
u_nhd : u ∈ 𝓝[insert (f x) t] f x
left✝ : u ⊆ insert (f x) t
hu : ContDiffOn 𝕜 (↑m) g u
v : Set E
v_nhd : v ∈ 𝓝[insert x s] x
vs : v ⊆ insert x s
hv : ContDiffOn 𝕜 (↑m) f v
xmem : x ∈ f ⁻¹' u ∩ v
this : f ⁻¹' u ∈ 𝓝[insert x s] x
Z : ∃ u_1, u_1 ∈ 𝓝[insert x (f ⁻¹' u ∩ v)] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (g ∘ f) p u_1
y : E
hy1 : y ∈ f ⁻¹' u
hy2 : y ∈ v
⊢ y ∈ insert x s ∩ (f ⁻¹' u ∩ v)