Theorem: ContinuousAffineEquiv.toAffineEquiv_injective
File: Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean

Proof steps:
state_before: k : Type u_1
P₁ : Type u_2
P₂ : Type u_3
P₃ : Type u_4
P₄ : Type u_5
V₁ : Type u_6
V₂ : Type u_7
V₃ : Type u_8
V₄ : Type u_9
inst✝²⁰ : Ring k
inst✝¹⁹ : AddCommGroup V₁
inst✝¹⁸ : Module k V₁
inst✝¹⁷ : AddTorsor V₁ P₁
inst✝¹⁶ : AddCommGroup V₂
inst✝¹⁵ : Module k V₂
inst✝¹⁴ : AddTorsor V₂ P₂
inst✝¹³ : AddCommGroup V₃
inst✝¹² : Module k V₃
inst✝¹¹ : AddTorsor V₃ P₃
inst✝¹⁰ : AddCommGroup V₄
inst✝⁹ : Module k V₄
inst✝⁸ : AddTorsor V₄ P₄
inst✝⁷ : TopologicalSpace P₁
inst✝⁶ : AddCommMonoid P₁
inst✝⁵ : Module k P₁
inst✝⁴ : TopologicalSpace P₂
inst✝³ : AddCommMonoid P₂
inst✝² : Module k P₂
inst✝¹ : TopologicalSpace P₃
inst✝ : TopologicalSpace P₄
⊢ Injective toAffineEquiv
state_after: case mk.mk
k : Type u_1
P₁ : Type u_2
P₂ : Type u_3
P₃ : Type u_4
P₄ : Type u_5
V₁ : Type u_6
V₂ : Type u_7
V₃ : Type u_8
V₄ : Type u_9
inst✝²⁰ : Ring k
inst✝¹⁹ : AddCommGroup V₁
inst✝¹⁸ : Module k V₁
inst✝¹⁷ : AddTorsor V₁ P₁
inst✝¹⁶ : AddCommGroup V₂
inst✝¹⁵ : Module k V₂
inst✝¹⁴ : AddTorsor V₂ P₂
inst✝¹³ : AddCommGroup V₃
inst✝¹² : Module k V₃
inst✝¹¹ : AddTorsor V₃ P₃
inst✝¹⁰ : AddCommGroup V₄
inst✝⁹ : Module k V₄
inst✝⁸ : AddTorsor V₄ P₄
inst✝⁷ : TopologicalSpace P₁
inst✝⁶ : AddCommMonoid P₁
inst✝⁵ : Module k P₁
inst✝⁴ : TopologicalSpace P₂
inst✝³ : AddCommMonoid P₂
inst✝² : Module k P₂
inst✝¹ : TopologicalSpace P₃
inst✝ : TopologicalSpace P₄
e : P₁ ≃ᵃ[k] P₂
econt : Continuous e.toFun
einv_cont : Continuous e.invFun
e' : P₁ ≃ᵃ[k] P₂
e'cont : Continuous e'.toFun
e'inv_cont : Continuous e'.invFun
H :
  { toAffineEquiv := e, continuous_toFun := econt, continuous_invFun := einv_cont }.toAffineEquiv =
    { toAffineEquiv := e', continuous_toFun := e'cont, continuous_invFun := e'inv_cont }.toAffineEquiv
⊢ { toAffineEquiv := e, continuous_toFun := econt, continuous_invFun := einv_cont } =
    { toAffineEquiv := e', continuous_toFun := e'cont, continuous_invFun := e'inv_cont }
tactic: rintro ⟨e, econt, einv_cont⟩ ⟨e', e'cont, e'inv_cont⟩ H
state_before: case mk.mk
k : Type u_1
P₁ : Type u_2
P₂ : Type u_3
P₃ : Type u_4
P₄ : Type u_5
V₁ : Type u_6
V₂ : Type u_7
V₃ : Type u_8
V₄ : Type u_9
inst✝²⁰ : Ring k
inst✝¹⁹ : AddCommGroup V₁
inst✝¹⁸ : Module k V₁
inst✝¹⁷ : AddTorsor V₁ P₁
inst✝¹⁶ : AddCommGroup V₂
inst✝¹⁵ : Module k V₂
inst✝¹⁴ : AddTorsor V₂ P₂
inst✝¹³ : AddCommGroup V₃
inst✝¹² : Module k V₃
inst✝¹¹ : AddTorsor V₃ P₃
inst✝¹⁰ : AddCommGroup V₄
inst✝⁹ : Module k V₄
inst✝⁸ : AddTorsor V₄ P₄
inst✝⁷ : TopologicalSpace P₁
inst✝⁶ : AddCommMonoid P₁
inst✝⁵ : Module k P₁
inst✝⁴ : TopologicalSpace P₂
inst✝³ : AddCommMonoid P₂
inst✝² : Module k P₂
inst✝¹ : TopologicalSpace P₃
inst✝ : TopologicalSpace P₄
e : P₁ ≃ᵃ[k] P₂
econt : Continuous e.toFun
einv_cont : Continuous e.invFun
e' : P₁ ≃ᵃ[k] P₂
e'cont : Continuous e'.toFun
e'inv_cont : Continuous e'.invFun
H :
  { toAffineEquiv := e, continuous_toFun := econt, continuous_invFun := einv_cont }.toAffineEquiv =
    { toAffineEquiv := e', continuous_toFun := e'cont, continuous_invFun := e'inv_cont }.toAffineEquiv
⊢ { toAffineEquiv := e, continuous_toFun := econt, continuous_invFun := einv_cont } =
    { toAffineEquiv := e', continuous_toFun := e'cont, continuous_invFun := e'inv_cont }
state_after: no goals
tactic: congr