@[simp]
theorem basis_repr_stdBasis [DecidableEq η] (s : ∀ j, Basis (ιs j) R (Ms j)) (j i) :
    (Pi.basis s).repr (stdBasis R _ j (s j i)) = Finsupp.single ⟨j, i⟩ 1 := by
  ext ⟨j', i'⟩
  by_cases hj : j = j'
  · subst hj
    -- Porting note: needed to add more lemmas
    simp only [Pi.basis, LinearEquiv.trans_apply, Basis.repr_self, stdBasis_same,
      LinearEquiv.piCongrRight, Finsupp.sigmaFinsuppLEquivPiFinsupp_symm_apply,
      Basis.repr_symm_apply, LinearEquiv.coe_mk, ne_eq, Sigma.mk.inj_iff, heq_eq_eq, true_and]
    symm
    -- Porting note: `Sigma.mk.inj` not found in the following, replaced by `Sigma.mk.inj_iff.mp`
    exact
      Finsupp.single_apply_left
        (fun i i' (h : (⟨j, i⟩ : Σj, ιs j) = ⟨j, i'⟩) => eq_of_heq (Sigma.mk.inj_iff.mp h).2) _ _ _
  simp only [Pi.basis, LinearEquiv.trans_apply, Finsupp.sigmaFinsuppLEquivPiFinsupp_symm_apply,
    LinearEquiv.piCongrRight]
  

Proof state:
case neg
R : Type u_1
η : Type u_2
ιs : η → Type u_3
Ms : η → Type u_4
inst✝⁴ : Semiring R
inst✝³ : (i : η) → AddCommMonoid (Ms i)
inst✝² : (i : η) → Module R (Ms i)
inst✝¹ : Fintype η
inst✝ : DecidableEq η
s : (j : η) → Basis (ιs j) R (Ms j)
j : η
i : ιs j
j' : η
i' : ιs j'
hj : ¬j = j'
⊢ ({
          toLinearMap :=
            {
              toAddHom :=
                { toFun := fun f i => (s i).repr (f i),
                  map_add' :=
                    (_ :
                      ∀ (x y : (j : η) → (fun j => Ms j) j),
                        Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv (x + y) =
                          Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv x +
                            Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv y) },
              map_smul' :=
                (_ :
                  ∀ (c : R) (f : (i : η) → (fun j => Ms j) i),
                    AddHom.toFun
                        { toFun := fun f i => (s i).repr (f i),
                          map_add' :=
                            (_ :
                              ∀ (x y : (j : η) → (fun j => Ms j) j),
                                Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv (x + y) =
                                  Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv x +
                                    Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv y) }
                        (c • f) =
                      (RingHom.id R) c •
                        AddHom.toFun
                          { toFun := fun f i => (s i).repr (f i),
                            map_add' :=
                              (_ :
                                ∀ (x y : (j : η) → (fun j => Ms j) j),
                                  Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv (x + y) =
                                    Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv x +
                                      Equiv.toFun (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv y) }
                          f) },
          invFun := fun f i => (LinearEquiv.symm (s i).repr) (f i),
          left_inv :=
            (_ :
              LeftInverse (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv.invFun
                (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv.toFun),
          right_inv :=
            (_ :
              Function.RightInverse (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv.invFun
                (AddEquiv.piCongrRight fun j => toAddEquiv (s j).repr).toEquiv.toFun) }
        ((stdBasis R (fun j => Ms j) j) ((s j) i)) j')
      i' =
    (fun₀ | { fst := j, snd := i } => 1) { fst := j', snd := i' }

Next tactic:
dsimp