l3lab/ntp-mathlib huggingface dataset:
theorem extChartAt_transDiffeomorph_target (x : M) :
    (extChartAt (I.transDiffeomorph e) x).target = e.symm ⁻¹' (extChartAt I x).target := by
  simp only [e.range_comp, preimage_preimage, mfld_simps]; 

Proof state:
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, E')⟯ E'
x : M
⊢ ⇑e.symm ⁻¹' range ↑I ∩ ↑(ModelWithCorners.symm I) ∘ ⇑e.symm ⁻¹' (chartAt H x).toPartialEquiv.target =
    ⇑e.symm ⁻¹' range ↑I ∩ (fun x => ↑(ModelWithCorners.symm I) (e.symm x)) ⁻¹' (chartAt H x).toPartialEquiv.target

Next tactic:
rfl
instance smoothManifoldWithCorners_transDiffeomorph [SmoothManifoldWithCorners I M] :
    SmoothManifoldWithCorners (I.transDiffeomorph e) M := by
  

Proof state:
𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁶ : NormedAddCommGroup E'
inst✝¹⁵ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹⁴ : NormedAddCommGroup F
inst✝¹³ : NormedSpace 𝕜 F
H : Type u_5
inst✝¹² : TopologicalSpace H
H' : Type u_6
inst✝¹¹ : TopologicalSpace H'
G : Type u_7
inst✝¹⁰ : TopologicalSpace G
G' : Type u_8
inst✝⁹ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
M' : Type u_10
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : ChartedSpace H' M'
N : Type u_11
inst✝⁴ : TopologicalSpace N
inst✝³ : ChartedSpace G N
N' : Type u_12
inst✝² : TopologicalSpace N'
inst✝¹ : ChartedSpace G' N'
n : ℕ∞
e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
inst✝ : SmoothManifoldWithCorners I M
⊢ SmoothManifoldWithCorners (ModelWithCorners.transDiffeomorph I e) M

Next tactic:
refine smoothManifoldWithCorners_of_contDiffOn (I.transDiffeomorph e) M fun e₁ e₂ h₁ h₂ => ?_
instance smoothManifoldWithCorners_transDiffeomorph [SmoothManifoldWithCorners I M] :
    SmoothManifoldWithCorners (I.transDiffeomorph e) M := by
  refine smoothManifoldWithCorners_of_contDiffOn (I.transDiffeomorph e) M fun e₁ e₂ h₁ h₂ => ?_
  

Proof state:
𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁶ : NormedAddCommGroup E'
inst✝¹⁵ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹⁴ : NormedAddCommGroup F
inst✝¹³ : NormedSpace 𝕜 F
H : Type u_5
inst✝¹² : TopologicalSpace H
H' : Type u_6
inst✝¹¹ : TopologicalSpace H'
G : Type u_7
inst✝¹⁰ : TopologicalSpace G
G' : Type u_8
inst✝⁹ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
M' : Type u_10
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : ChartedSpace H' M'
N : Type u_11
inst✝⁴ : TopologicalSpace N
inst✝³ : ChartedSpace G N
N' : Type u_12
inst✝² : TopologicalSpace N'
inst✝¹ : ChartedSpace G' N'
n : ℕ∞
e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
inst✝ : SmoothManifoldWithCorners I M
e₁ e₂ : PartialHomeomorph M H
h₁ : e₁ ∈ atlas H M
h₂ : e₂ ∈ atlas H M
⊢ ContDiffOn 𝕜 ⊤
    (↑(ModelWithCorners.transDiffeomorph I e) ∘
      ↑(PartialHomeomorph.symm e₁ ≫ₕ e₂) ∘ ↑(ModelWithCorners.symm (ModelWithCorners.transDiffeomorph I e)))
    (↑(ModelWithCorners.symm (ModelWithCorners.transDiffeomorph I e)) ⁻¹'
        (PartialHomeomorph.symm e₁ ≫ₕ e₂).toPartialEquiv.source ∩
      range ↑(ModelWithCorners.transDiffeomorph I e))

Next tactic:
refine' e.contDiff.comp_contDiffOn
      (((contDiffGroupoid ⊤ I).compatible h₁ h₂).1.comp e.symm.contDiff.contDiffOn _)
instance smoothManifoldWithCorners_transDiffeomorph [SmoothManifoldWithCorners I M] :
    SmoothManifoldWithCorners (I.transDiffeomorph e) M := by
  refine smoothManifoldWithCorners_of_contDiffOn (I.transDiffeomorph e) M fun e₁ e₂ h₁ h₂ => ?_
  refine' e.contDiff.comp_contDiffOn
      (((contDiffGroupoid ⊤ I).compatible h₁ h₂).1.comp e.symm.contDiff.contDiffOn _)
  

Proof state:
𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁶ : NormedAddCommGroup E'
inst✝¹⁵ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹⁴ : NormedAddCommGroup F
inst✝¹³ : NormedSpace 𝕜 F
H : Type u_5
inst✝¹² : TopologicalSpace H
H' : Type u_6
inst✝¹¹ : TopologicalSpace H'
G : Type u_7
inst✝¹⁰ : TopologicalSpace G
G' : Type u_8
inst✝⁹ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁸ : TopologicalSpace M
inst✝⁷ : ChartedSpace H M
M' : Type u_10
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : ChartedSpace H' M'
N : Type u_11
inst✝⁴ : TopologicalSpace N
inst✝³ : ChartedSpace G N
N' : Type u_12
inst✝² : TopologicalSpace N'
inst✝¹ : ChartedSpace G' N'
n : ℕ∞
e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
inst✝ : SmoothManifoldWithCorners I M
e₁ e₂ : PartialHomeomorph M H
h₁ : e₁ ∈ atlas H M
h₂ : e₂ ∈ atlas H M
⊢ ↑(ModelWithCorners.symm (ModelWithCorners.transDiffeomorph I e)) ⁻¹'
        (PartialHomeomorph.symm e₁ ≫ₕ e₂).toPartialEquiv.source ∩
      range ↑(ModelWithCorners.transDiffeomorph I e) ⊆
    (fun x => ↑(PartialEquiv.symm (PartialEquiv.restr (Equiv.toPartialEquiv e.toEquiv) I.target)) x) ⁻¹'
      (↑(ModelWithCorners.symm I) ⁻¹' (PartialHomeomorph.symm e₁ ≫ₕ e₂).toPartialEquiv.source ∩ range ↑I)

Next tactic:
mfld_set_tac
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    

Proof state:
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
⊢ ContMDiffAt I (ModelWithCorners.transDiffeomorph I e) ⊤ (⇑(Equiv.refl M)) x

Next tactic:
refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    

Proof state:
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
⊢ ContDiffWithinAt 𝕜 ⊤
    (↑(extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)) ∘
      ⇑(Equiv.refl M) ∘ ↑(PartialEquiv.symm (extChartAt I x)))
    ((extChartAt I x).target ∩
      ↑(PartialEquiv.symm (extChartAt I x)) ⁻¹'
        (univ ∩ ⇑(Equiv.refl M) ⁻¹' (extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)).source))
    (↑(extChartAt I x) x)

Next tactic:
refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · 

Proof state:
case refine'_1
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
y : E
hy :
  y ∈
    (extChartAt I x).target ∩
      ↑(PartialEquiv.symm (extChartAt I x)) ⁻¹'
        (univ ∩ ⇑(Equiv.refl M) ⁻¹' (extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)).source)
⊢ (↑(extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)) ∘
        ⇑(Equiv.refl M) ∘ ↑(PartialEquiv.symm (extChartAt I x)))
      y =
    e y

Next tactic:
simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
      -- porting note: `simp only` failed to used next lemma, converted to `rw`
      

Proof state:
case refine'_1
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
y : E
hy :
  y ∈
    (extChartAt I x).target ∩
      ↑(PartialEquiv.symm (extChartAt I x)) ⁻¹'
        (univ ∩ ⇑(Equiv.refl M) ⁻¹' (extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)).source)
⊢ e (↑(extChartAt I x) (↑(PartialEquiv.symm (extChartAt I x)) y)) = e y

Next tactic:
rw [(extChartAt I x).right_inv hy.1]
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
      -- porting note: `simp only` failed to used next lemma, converted to `rw`
      rw [(extChartAt I x).right_inv hy.1]
    

Proof state:
case refine'_2
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
⊢ ↑(extChartAt I x) x ∈
    (extChartAt I x).target ∩
      ↑(PartialEquiv.symm (extChartAt I x)) ⁻¹'
        (univ ∩ ⇑(Equiv.refl M) ⁻¹' (extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)).source)

Next tactic:
exact
      ⟨(extChartAt I x).map_source (mem_extChartAt_source I x), trivial, by simp only [mfld_simps]⟩
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
      -- porting note: `simp only` failed to used next lemma, converted to `rw`
      rw [(extChartAt I x).right_inv hy.1]
    exact
      ⟨(extChartAt I x).map_source (mem_extChartAt_source I x), trivial, by 

Proof state:
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
⊢ ↑(PartialEquiv.symm (extChartAt I x)) (↑(extChartAt I x) x) ∈
    ⇑(Equiv.refl M) ⁻¹' (extChartAt (ModelWithCorners.transDiffeomorph I e) ((Equiv.refl M) x)).source

Next tactic:
simp only [mfld_simps]
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
      -- porting note: `simp only` failed to used next lemma, converted to `rw`
      rw [(extChartAt I x).right_inv hy.1]
    exact
      ⟨(extChartAt I x).map_source (mem_extChartAt_source I x), trivial, by simp only [mfld_simps]⟩
  contMDiff_invFun x := by
    

Proof state:
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
⊢ ContMDiffAt (ModelWithCorners.transDiffeomorph I e) I ⊤ (⇑(Equiv.refl M).symm) x

Next tactic:
refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
      -- porting note: `simp only` failed to used next lemma, converted to `rw`
      rw [(extChartAt I x).right_inv hy.1]
    exact
      ⟨(extChartAt I x).map_source (mem_extChartAt_source I x), trivial, by simp only [mfld_simps]⟩
  contMDiff_invFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    

Proof state:
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
⊢ ContDiffWithinAt 𝕜 ⊤
    (↑(extChartAt I ((Equiv.refl M).symm x)) ∘
      ⇑(Equiv.refl M).symm ∘ ↑(PartialEquiv.symm (extChartAt (ModelWithCorners.transDiffeomorph I e) x)))
    ((extChartAt (ModelWithCorners.transDiffeomorph I e) x).target ∩
      ↑(PartialEquiv.symm (extChartAt (ModelWithCorners.transDiffeomorph I e) x)) ⁻¹'
        (univ ∩ ⇑(Equiv.refl M).symm ⁻¹' (extChartAt I ((Equiv.refl M).symm x)).source))
    (↑(extChartAt (ModelWithCorners.transDiffeomorph I e) x) x)

Next tactic:
refine' e.symm.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
/-- The identity diffeomorphism between a manifold with model `I` and the same manifold
with model `I.trans_diffeomorph e`. -/
def toTransDiffeomorph (e : E ≃ₘ[𝕜] F) : M ≃ₘ⟮I, I.transDiffeomorph e⟯ M where
  toEquiv := Equiv.refl M
  contMDiff_toFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · simp only [Equiv.coe_refl, id, (· ∘ ·), I.coe_extChartAt_transDiffeomorph]
      -- porting note: `simp only` failed to used next lemma, converted to `rw`
      rw [(extChartAt I x).right_inv hy.1]
    exact
      ⟨(extChartAt I x).map_source (mem_extChartAt_source I x), trivial, by simp only [mfld_simps]⟩
  contMDiff_invFun x := by
    refine' contMDiffWithinAt_iff'.2 ⟨continuousWithinAt_id, _⟩
    refine' e.symm.contDiff.contDiffWithinAt.congr' (fun y hy => _) _
    · 

Proof state:
case refine'_1
𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : NormedSpace 𝕜 E'
F : Type u_4
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
H : Type u_5
inst✝¹¹ : TopologicalSpace H
H' : Type u_6
inst✝¹⁰ : TopologicalSpace H'
G : Type u_7
inst✝⁹ : TopologicalSpace G
G' : Type u_8
inst✝⁸ : TopologicalSpace G'
I : ModelWithCorners 𝕜 E H
I' : ModelWithCorners 𝕜 E' H'
J : ModelWithCorners 𝕜 F G
J' : ModelWithCorners 𝕜 F G'
M : Type u_9
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
M' : Type u_10
inst✝⁵ : TopologicalSpace M'
inst✝⁴ : ChartedSpace H' M'
N : Type u_11
inst✝³ : TopologicalSpace N
inst✝² : ChartedSpace G N
N' : Type u_12
inst✝¹ : TopologicalSpace N'
inst✝ : ChartedSpace G' N'
n : ℕ∞
e✝ e : E ≃ₘ⟮𝓘(𝕜, E), 𝓘(𝕜, F)⟯ F
x : M
y : F
hy :
  y ∈
    (extChartAt (ModelWithCorners.transDiffeomorph I e) x).target ∩
      ↑(PartialEquiv.symm (extChartAt (ModelWithCorners.transDiffeomorph I e) x)) ⁻¹'
        (univ ∩ ⇑(Equiv.refl M).symm ⁻¹' (extChartAt I ((Equiv.refl M).symm x)).source)
⊢ (↑(extChartAt I ((Equiv.refl M).symm x)) ∘
        ⇑(Equiv.refl M).symm ∘ ↑(PartialEquiv.symm (extChartAt (ModelWithCorners.transDiffeomorph I e) x)))
      y =
    e.symm y

Next tactic:
simp only [mem_inter_iff, I.extChartAt_transDiffeomorph_target] at hy