{R : Type u_14} →
  {S : Type u_15} →
    [inst : Semiring R] →
      [inst_1 : Semiring S] →
        {σ : R →+* S} →
          {σ' : S →+* R} →
            [inst_2 : RingHomInvPair σ σ'] →
              [inst_3 : RingHomInvPair σ' σ] →
                {M : Type u_16} →
                  {M₂ : Type u_17} →
                    [inst_4 : AddCommMonoid M] →
                      [inst_5 : AddCommMonoid M₂] →
                        [inst_6 : Module R M] →
                          [inst_7 : Module S M₂] →
                            {motive : (M ≃ₛₗ[σ] M₂) → Sort u} →
                              (t : M ≃ₛₗ[σ] M₂) →
                                ((toLinearMap : M →ₛₗ[σ] M₂) →
                                    (invFun : M₂ → M) →
                                      (left_inv : Function.LeftInverse invFun toLinearMap.toFun) →
                                        (right_inv : Function.RightInverse invFun toLinearMap.toFun) →
                                          motive
                                            { toLinearMap := toLinearMap, invFun := invFun, left_inv := left_inv,
                                              right_inv := right_inv }) →
                                  motive t