Module: Mathlib.Geometry.Manifold.ContMDiff.Atlas

Goal state before:
pp: case refine_1
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑e ∘ ↑φ.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' φ.target ∩ ↑I.symm ⁻¹' ↑φ.symm ⁻¹' e.source ∩ range ↑I)

pp: case refine_2
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑φ ∘ ↑e.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' e.target ∩ ↑I.symm ⁻¹' ↑e.symm ⁻¹' φ.source ∩ range ↑I)

pp: case refine_3
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑φ ∘ ↑e.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' e.target ∩ ↑I.symm ⁻¹' ↑e.symm ⁻¹' φ.source ∩ range ↑I)

pp: case refine_4
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑e ∘ ↑φ.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' φ.target ∩ ↑I.symm ⁻¹' ↑φ.symm ⁻¹' e.source ∩ range ↑I)

Tactic:
· apply he'.comp (hφ'.comp (I.contMDiffOn_symm.mono (by simp)) (by grind)) (by grind)

Goal state after:
case refine_2
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑φ ∘ ↑e.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' e.target ∩ ↑I.symm ⁻¹' ↑e.symm ⁻¹' φ.source ∩ range ↑I)

case refine_3
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑φ ∘ ↑e.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' e.target ∩ ↑I.symm ⁻¹' ↑e.symm ⁻¹' φ.source ∩ range ↑I)

case refine_4
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
H : Type u_3
inst✝³ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
n : ℕ∞ω
inst✝ : IsManifold I n M
φ : OpenPartialHomeomorph M H
hφ : ContMDiffOn I I n (↑φ) φ.source
hφ' : ContMDiffOn I I n (↑φ.symm) φ.target
e : OpenPartialHomeomorph M H
he : e ∈ atlas H M
he' : ContMDiffOn I I n (↑e) e.source
he'' : ContMDiffOn I I n (↑e.symm) e.target
⊢ ContMDiffOn 𝓘(𝕜, E) I n ((↑e ∘ ↑φ.symm) ∘ ↑I.symm)
    (↑I.symm ⁻¹' φ.target ∩ ↑I.symm ⁻¹' ↑φ.symm ⁻¹' e.source ∩ range ↑I)