instance continuousSemilinearEquivClass :
    ContinuousSemilinearEquivClass (M₁ ≃SL[σ₁₂] M₂) σ₁₂ M₁ M₂ where
  coe f := f.toFun
  inv f := f.invFun
  coe_injective' f g h₁ h₂ := by
    cases' f with f' _
    cases' g with g' _
    rcases f' with ⟨⟨⟨_, _⟩, _⟩, _⟩
    rcases g' with ⟨⟨⟨_, _⟩, _⟩, _⟩
    

Proof state:
case mk.mk.mk.mk.mk.mk.mk.mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
invFun✝¹ : M₂ → M₁
toFun✝¹ : M₁ → M₂
map_add'✝¹ : ∀ (x y : M₁), toFun✝¹ (x + y) = toFun✝¹ x + toFun✝¹ y
map_smul'✝¹ :
  ∀ (r : R₁) (x : M₁),
    AddHom.toFun { toFun := toFun✝¹, map_add' := map_add'✝¹ } (r • x) =
      σ₁₂ r • AddHom.toFun { toFun := toFun✝¹, map_add' := map_add'✝¹ } x
left_inv✝¹ :
  Function.LeftInverse invFun✝¹
    { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ }.toAddHom.toFun
right_inv✝¹ :
  Function.RightInverse invFun✝¹
    { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ }.toAddHom.toFun
continuous_toFun✝¹ :
  Continuous
    (↑{ toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
            invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }).toAddHom.toFun
continuous_invFun✝¹ :
  Continuous
    { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
        invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }.invFun
invFun✝ : M₂ → M₁
toFun✝ : M₁ → M₂
map_add'✝ : ∀ (x y : M₁), toFun✝ (x + y) = toFun✝ x + toFun✝ y
map_smul'✝ :
  ∀ (r : R₁) (x : M₁),
    AddHom.toFun { toFun := toFun✝, map_add' := map_add'✝ } (r • x) =
      σ₁₂ r • AddHom.toFun { toFun := toFun✝, map_add' := map_add'✝ } x
left_inv✝ :
  Function.LeftInverse invFun✝
    { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ }.toAddHom.toFun
right_inv✝ :
  Function.RightInverse invFun✝
    { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ }.toAddHom.toFun
continuous_toFun✝ :
  Continuous
    (↑{ toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
            invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }).toAddHom.toFun
continuous_invFun✝ :
  Continuous
    { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
        invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }.invFun
h₁ :
  (fun f => f.toFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
          invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }) =
    (fun f => f.toFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
          invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ })
h₂ :
  (fun f => f.invFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
          invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }) =
    (fun f => f.invFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
          invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ })
⊢ mk
      { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
        invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ } =
    mk
      { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
        invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }

Next tactic:
congr