attribute [local simp] eq_iff_true_of_subsingleton in
/-- The tensor product over an empty index type `ι` is isomorphic to the base ring. -/
@[simps symm_apply]
def isEmptyEquiv [IsEmpty ι] : (⨂[R] _ : ι, M) ≃ₗ[R] R where
  toFun := lift (constOfIsEmpty R _ 1)
  invFun r := r • tprod R (@isEmptyElim _ _ _)
  left_inv x := by
    refine x.induction_on ?_ ?_
    · intro x y
      simp only [map_smulₛₗ, RingHom.id_apply, lift.tprod, constOfIsEmpty_apply, const_apply,
        smul_eq_mul, mul_one]
      congr
      aesop
    · 

Proof state:
case refine_2
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁸ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁷ : (i : ι) → AddCommMonoid (s i)
inst✝⁶ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
E : Type u_9
inst✝³ : AddCommMonoid E
inst✝² : Module R E
F : Type u_10
inst✝¹ : AddCommMonoid F
φ : MultilinearMap R s E
inst✝ : IsEmpty ι
x : ⨂[R] (x : ι), M
⊢ ∀ {x y : ⨂[R] (i : ι), M},
    (fun r => r • (tprod R) isEmptyElim)
          (AddHom.toFun
            {
                toAddHom :=
                  { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                    map_add' :=
                      (_ :
                        ∀ (x y : ⨂[R] (x : ι), M),
                          (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                            (lift (constOfIsEmpty R (fun i => M) 1)) x + (lift (constOfIsEmpty R (fun i => M) 1)) y) },
                map_smul' :=
                  (_ :
                    ∀ (r : R) (x : ⨂[R] (x : ι), M),
                      AddHom.toFun
                          { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                            map_add' :=
                              (_ :
                                ∀ (x y : ⨂[R] (x : ι), M),
                                  (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                                    (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                      (lift (constOfIsEmpty R (fun i => M) 1)) y) }
                          (r • x) =
                        (RingHom.id R) r •
                          AddHom.toFun
                            { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                              map_add' :=
                                (_ :
                                  ∀ (x y : ⨂[R] (x : ι), M),
                                    (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                                      (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                        (lift (constOfIsEmpty R (fun i => M) 1)) y) }
                            x) }.toAddHom
            x) =
        x →
      (fun r => r • (tprod R) isEmptyElim)
            (AddHom.toFun
              {
                  toAddHom :=
                    { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                      map_add' :=
                        (_ :
                          ∀ (x y : ⨂[R] (x : ι), M),
                            (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                              (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                (lift (constOfIsEmpty R (fun i => M) 1)) y) },
                  map_smul' :=
                    (_ :
                      ∀ (r : R) (x : ⨂[R] (x : ι), M),
                        AddHom.toFun
                            { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                              map_add' :=
                                (_ :
                                  ∀ (x y : ⨂[R] (x : ι), M),
                                    (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                                      (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                        (lift (constOfIsEmpty R (fun i => M) 1)) y) }
                            (r • x) =
                          (RingHom.id R) r •
                            AddHom.toFun
                              { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                                map_add' :=
                                  (_ :
                                    ∀ (x y : ⨂[R] (x : ι), M),
                                      (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                                        (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                          (lift (constOfIsEmpty R (fun i => M) 1)) y) }
                              x) }.toAddHom
              y) =
          y →
        (fun r => r • (tprod R) isEmptyElim)
            (AddHom.toFun
              {
                  toAddHom :=
                    { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                      map_add' :=
                        (_ :
                          ∀ (x y : ⨂[R] (x : ι), M),
                            (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                              (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                (lift (constOfIsEmpty R (fun i => M) 1)) y) },
                  map_smul' :=
                    (_ :
                      ∀ (r : R) (x : ⨂[R] (x : ι), M),
                        AddHom.toFun
                            { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                              map_add' :=
                                (_ :
                                  ∀ (x y : ⨂[R] (x : ι), M),
                                    (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                                      (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                        (lift (constOfIsEmpty R (fun i => M) 1)) y) }
                            (r • x) =
                          (RingHom.id R) r •
                            AddHom.toFun
                              { toFun := ⇑(lift (constOfIsEmpty R (fun i => M) 1)),
                                map_add' :=
                                  (_ :
                                    ∀ (x y : ⨂[R] (x : ι), M),
                                      (lift (constOfIsEmpty R (fun i => M) 1)) (x + y) =
                                        (lift (constOfIsEmpty R (fun i => M) 1)) x +
                                          (lift (constOfIsEmpty R (fun i => M) 1)) y) }
                              x) }.toAddHom
              (x + y)) =
          x + y

Next tactic:
simp only