{ι : Type u_1} →
  {M : Type u_3} →
    {σ : Type u_4} →
      [inst : DecidableEq ι] →
        [inst_1 : AddCommMonoid M] →
          [inst_2 : SetLike σ M] →
            [inst_3 : AddSubmonoidClass σ M] →
              {ℳ : ι → σ} →
                {motive : DirectSum.Decomposition ℳ → Sort u} →
                  (t : DirectSum.Decomposition ℳ) →
                    ((decompose' : M → DirectSum ι fun i => ↥(ℳ i)) →
                        (left_inv : Function.LeftInverse (⇑(DirectSum.coeAddMonoidHom ℳ)) decompose') →
                          (right_inv : Function.RightInverse (⇑(DirectSum.coeAddMonoidHom ℳ)) decompose') →
                            motive { decompose' := decompose', left_inv := left_inv, right_inv := right_inv }) →
                      motive t