Theorem: ModelWithCorners.symm_continuousWithinAt_comp_right_iff
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: refine' ⟨fun h => _, fun h => _⟩
state_before: 𝕜 : Type u_4
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_2
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
X : Type u_1
inst✝ : TopologicalSpace X
f : H → X
s : Set H
x : H
⊢ ContinuousWithinAt (f ∘ ↑(ModelWithCorners.symm I)) (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I) (↑I x) ↔
    ContinuousWithinAt f s x

tactic: have := h.comp I.continuousWithinAt (mapsTo_preimage _ _)
state_before: case refine'_1
𝕜 : Type u_4
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_2
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
X : Type u_1
inst✝ : TopologicalSpace X
f : H → X
s : Set H
x : H
h : ContinuousWithinAt (f ∘ ↑(ModelWithCorners.symm I)) (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I) (↑I x)
⊢ ContinuousWithinAt f s x

tactic: simp_rw [preimage_inter, preimage_preimage, I.left_inv, preimage_id', preimage_range,
  inter_univ] at this
state_before: case refine'_1
𝕜 : Type u_4
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_2
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
X : Type u_1
inst✝ : TopologicalSpace X
f : H → X
s : Set H
x : H
h : ContinuousWithinAt (f ∘ ↑(ModelWithCorners.symm I)) (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I) (↑I x)
this :
  ContinuousWithinAt ((f ∘ ↑(ModelWithCorners.symm I)) ∘ ↑I) (↑I ⁻¹' (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I)) x
⊢ ContinuousWithinAt f s x

tactic: rwa [Function.comp.assoc, I.symm_comp_self] at this
state_before: case refine'_1
𝕜 : Type u_4
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_2
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
X : Type u_1
inst✝ : TopologicalSpace X
f : H → X
s : Set H
x : H
h : ContinuousWithinAt (f ∘ ↑(ModelWithCorners.symm I)) (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I) (↑I x)
this : ContinuousWithinAt ((f ∘ ↑(ModelWithCorners.symm I)) ∘ ↑I) s x
⊢ ContinuousWithinAt f s x

tactic: rw [← I.left_inv x] at h
state_before: case refine'_2
𝕜 : Type u_4
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_2
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
X : Type u_1
inst✝ : TopologicalSpace X
f : H → X
s : Set H
x : H
h : ContinuousWithinAt f s x
⊢ ContinuousWithinAt (f ∘ ↑(ModelWithCorners.symm I)) (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I) (↑I x)

tactic: exact h.comp I.continuousWithinAt_symm (inter_subset_left _ _)
state_before: case refine'_2
𝕜 : Type u_4
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_2
inst✝¹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
X : Type u_1
inst✝ : TopologicalSpace X
f : H → X
s : Set H
x : H
h : ContinuousWithinAt f s (↑(ModelWithCorners.symm I) (↑I x))
⊢ ContinuousWithinAt (f ∘ ↑(ModelWithCorners.symm I)) (↑(ModelWithCorners.symm I) ⁻¹' s ∩ range ↑I) (↑I x)