theorem decomposeAux_single (m : M) (r : R) :
    decomposeAux f (Finsupp.single m r) =
      DirectSum.of (fun i : ι => gradeBy R f i) (f m)
        ⟨Finsupp.single m r, single_mem_gradeBy _ _ _⟩ := by
  refine' (lift_single _ _ _).trans _
  

Proof state:
M : Type u_1
ι : Type u_2
R : Type u_3
inst✝⁴ : DecidableEq M
inst✝³ : AddMonoid M
inst✝² : DecidableEq ι
inst✝¹ : AddMonoid ι
inst✝ : CommSemiring R
f : M →+ ι
m : M
r : R
⊢ r •
      {
          toOneHom :=
            {
              toFun := fun m =>
                (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd m)))
                  { val := fun₀ | Multiplicative.toAdd m => 1,
                    property :=
                      (_ : (fun₀ | Multiplicative.toAdd m => 1) ∈ gradeBy R (⇑f) (f (Multiplicative.toAdd m))) },
              map_one' :=
                (_ :
                  (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd 1)))
                      { val := fun₀ | Multiplicative.toAdd 1 => 1,
                        property :=
                          (_ : (fun₀ | Multiplicative.toAdd 1 => 1) ∈ gradeBy R (⇑f) (f (Multiplicative.toAdd 1))) } =
                    (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) 0) GradedMonoid.GOne.one) },
          map_mul' :=
            (_ :
              ∀ (i j : Multiplicative M),
                OneHom.toFun
                    {
                      toFun := fun m =>
                        (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd m)))
                          { val := fun₀ | Multiplicative.toAdd m => 1,
                            property :=
                              (_ :
                                (fun₀ | Multiplicative.toAdd m => 1) ∈ gradeBy R (⇑f) (f (Multiplicative.toAdd m))) },
                      map_one' :=
                        (_ :
                          (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd 1)))
                              { val := fun₀ | Multiplicative.toAdd 1 => 1,
                                property :=
                                  (_ :
                                    (fun₀ | Multiplicative.toAdd 1 => 1) ∈
                                      gradeBy R (⇑f) (f (Multiplicative.toAdd 1))) } =
                            (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) 0) GradedMonoid.GOne.one) }
                    (i * j) =
                  OneHom.toFun
                      {
                        toFun := fun m =>
                          (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd m)))
                            { val := fun₀ | Multiplicative.toAdd m => 1,
                              property :=
                                (_ :
                                  (fun₀ | Multiplicative.toAdd m => 1) ∈ gradeBy R (⇑f) (f (Multiplicative.toAdd m))) },
                        map_one' :=
                          (_ :
                            (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd 1)))
                                { val := fun₀ | Multiplicative.toAdd 1 => 1,
                                  property :=
                                    (_ :
                                      (fun₀ | Multiplicative.toAdd 1 => 1) ∈
                                        gradeBy R (⇑f) (f (Multiplicative.toAdd 1))) } =
                              (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) 0) GradedMonoid.GOne.one) }
                      i *
                    OneHom.toFun
                      {
                        toFun := fun m =>
                          (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd m)))
                            { val := fun₀ | Multiplicative.toAdd m => 1,
                              property :=
                                (_ :
                                  (fun₀ | Multiplicative.toAdd m => 1) ∈ gradeBy R (⇑f) (f (Multiplicative.toAdd m))) },
                        map_one' :=
                          (_ :
                            (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f (Multiplicative.toAdd 1)))
                                { val := fun₀ | Multiplicative.toAdd 1 => 1,
                                  property :=
                                    (_ :
                                      (fun₀ | Multiplicative.toAdd 1 => 1) ∈
                                        gradeBy R (⇑f) (f (Multiplicative.toAdd 1))) } =
                              (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) 0) GradedMonoid.GOne.one) }
                      j) }
        (Multiplicative.ofAdd m) =
    (DirectSum.of (fun i => ↥(gradeBy R (⇑f) i)) (f m))
      { val := fun₀ | m => r, property := (_ : (fun₀ | m => r) ∈ gradeBy R (⇑f) (f m)) }

Next tactic:
refine' (DirectSum.of_smul R _ _ _).symm.trans _