theorem gradedMul_assoc (x y z : DirectSum _ 𝒜 ⊗[R] DirectSum _ ℬ) :
    gradedMul R 𝒜 ℬ (gradedMul R 𝒜 ℬ x y) z = gradedMul R 𝒜 ℬ x (gradedMul R 𝒜 ℬ y z) := by
  let mA := gradedMul R 𝒜 ℬ
    -- restate as an equality of morphisms so that we can use `ext`
  suffices LinearMap.llcomp R _ _ _ mA ∘ₗ mA =
      (LinearMap.llcomp R _ _ _ LinearMap.lflip <| LinearMap.llcomp R _ _ _ mA.flip ∘ₗ mA).flip by
    exact FunLike.congr_fun (FunLike.congr_fun (FunLike.congr_fun this x) y) z
  ext ixa xa ixb xb iya ya iyb yb iza za izb zb
  

Proof state:
case a.H.h.H.h.a.H.h.H.h.a.H.h.H.h
R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
x y z : DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ
mA : DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R] DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R] DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ :=
  gradedMul R 𝒜 ℬ
ixa : ι
xa : 𝒜 ixa
ixb : ι
xb : ℬ ixb
iya : ι
ya : 𝒜 iya
iyb : ι
yb : ℬ iyb
iza : ι
za : 𝒜 iza
izb : ι
zb : ℬ izb
⊢ ((AlgebraTensorModule.curry
              (((AlgebraTensorModule.curry
                        (((AlgebraTensorModule.curry
                                  ((LinearMap.llcomp R (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ)
                                        (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ)
                                        (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R] DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ))
                                      mA ∘ₗ
                                    mA) ∘ₗ
                                lof R ι (fun i => 𝒜 i) ixa)
                              xa ∘ₗ
                            lof R ι (fun i => ℬ i) ixb)
                          xb) ∘ₗ
                      lof R ι (fun i => 𝒜 i) iya)
                    ya ∘ₗ
                  lof R ι (fun i => ℬ i) iyb)
                yb) ∘ₗ
            lof R ι (fun i => 𝒜 i) iza)
          za ∘ₗ
        lof R ι (fun i => ℬ i) izb)
      zb =
    ((AlgebraTensorModule.curry
              (((AlgebraTensorModule.curry
                        (((AlgebraTensorModule.curry
                                  (LinearMap.flip
                                    (((LinearMap.llcomp R (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ)
                                          (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R]
                                            DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R] DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ)
                                          (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R]
                                            DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R] DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ))
                                        LinearMap.lflip)
                                      ((LinearMap.llcomp R (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ)
                                            (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ)
                                            (DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ →ₗ[R] DirectSum ι 𝒜 ⊗[R] DirectSum ι ℬ))
                                          (LinearMap.flip mA) ∘ₗ
                                        mA))) ∘ₗ
                                lof R ι (fun i => 𝒜 i) ixa)
                              xa ∘ₗ
                            lof R ι (fun i => ℬ i) ixb)
                          xb) ∘ₗ
                      lof R ι (fun i => 𝒜 i) iya)
                    ya ∘ₗ
                  lof R ι (fun i => ℬ i) iyb)
                yb) ∘ₗ
            lof R ι (fun i => 𝒜 i) iza)
          za ∘ₗ
        lof R ι (fun i => ℬ i) izb)
      zb

Next tactic:
dsimp