(l : Type u_1) →
  (m : Type u_2) →
    (n : Type u_3) →
      (p : Type u_4) →
        (R : Type u_5) →
          (S : Type u_6) →
            (M : Type u_9) →
              (N : Type u_10) →
                [inst : CommSemiring R] →
                  [inst_1 : Semiring S] →
                    [inst_2 : AddCommMonoid M] →
                      [inst_3 : AddCommMonoid N] →
                        [inst_4 : Algebra R S] →
                          [inst_5 : Module R M] →
                            [inst_6 : Module S M] →
                              [inst_7 : Module R N] →
                                [inst_8 : IsScalarTower R S M] →
                                  [Fintype l] →
                                    [Fintype m] →
                                      [Fintype n] →
                                        [Fintype p] →
                                          [DecidableEq l] →
                                            [DecidableEq m] →
                                              [DecidableEq n] →
                                                [DecidableEq p] →
                                                  TensorProduct R (Matrix l m M) (Matrix n p N) ≃ₗ[S]
                                                    Matrix (l × n) (m × p) (TensorProduct R M N)