Theorem: LocalHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left
File: Mathlib/Topology/LocalHomeomorph.lean

tactic: refine' ⟨(e.continuousAt hx).comp_continuousWithinAt, fun fe_cont => _⟩
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.100825
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
s : Set γ
x : γ
hx : f x ∈ e.source
h : f ⁻¹' e.source ∈ 𝓝[s] x
⊢ ContinuousWithinAt f s x ↔ ContinuousWithinAt (↑e ∘ f) s x

tactic: rw [← continuousWithinAt_inter' h] at fe_cont⊢
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.100825
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
s : Set γ
x : γ
hx : f x ∈ e.source
h : f ⁻¹' e.source ∈ 𝓝[s] x
fe_cont : ContinuousWithinAt (↑e ∘ f) s x
⊢ ContinuousWithinAt f s x

tactic: have : ContinuousWithinAt (e.symm ∘ e ∘ f) (s ∩ f ⁻¹' e.source) x :=
  haveI : ContinuousWithinAt e.symm univ (e (f x)) :=
    (e.continuousAt_symm (e.map_source hx)).continuousWithinAt
  ContinuousWithinAt.comp this fe_cont (subset_univ _)
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.100825
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
s : Set γ
x : γ
hx : f x ∈ e.source
h : f ⁻¹' e.source ∈ 𝓝[s] x
fe_cont : ContinuousWithinAt (↑e ∘ f) (s ∩ f ⁻¹' e.source) x
⊢ ContinuousWithinAt f (s ∩ f ⁻¹' e.source) x

tactic: exact this.congr (fun y hy => by simp [e.left_inv hy.2]) (by simp [e.left_inv hx])
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.100825
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
s : Set γ
x : γ
hx : f x ∈ e.source
h : f ⁻¹' e.source ∈ 𝓝[s] x
fe_cont : ContinuousWithinAt (↑e ∘ f) (s ∩ f ⁻¹' e.source) x
this : ContinuousWithinAt (↑(LocalHomeomorph.symm e) ∘ ↑e ∘ f) (s ∩ f ⁻¹' e.source) x
⊢ ContinuousWithinAt f (s ∩ f ⁻¹' e.source) x

tactic: simp [e.left_inv hy.2]
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.100825
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
s : Set γ
x : γ
hx : f x ∈ e.source
h : f ⁻¹' e.source ∈ 𝓝[s] x
fe_cont : ContinuousWithinAt (↑e ∘ f) (s ∩ f ⁻¹' e.source) x
this : ContinuousWithinAt (↑(LocalHomeomorph.symm e) ∘ ↑e ∘ f) (s ∩ f ⁻¹' e.source) x
y : γ
hy : y ∈ s ∩ f ⁻¹' e.source
⊢ f y = (↑(LocalHomeomorph.symm e) ∘ ↑e ∘ f) y

tactic: simp [e.left_inv hx]
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
δ : Type ?u.100825
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : LocalHomeomorph α β
e' : LocalHomeomorph β γ
f : γ → α
s : Set γ
x : γ
hx : f x ∈ e.source
h : f ⁻¹' e.source ∈ 𝓝[s] x
fe_cont : ContinuousWithinAt (↑e ∘ f) (s ∩ f ⁻¹' e.source) x
this : ContinuousWithinAt (↑(LocalHomeomorph.symm e) ∘ ↑e ∘ f) (s ∩ f ⁻¹' e.source) x
⊢ f x = (↑(LocalHomeomorph.symm e) ∘ ↑e ∘ f) x