{R : Type u_1} →
  {M : Type u_2} →
    [inst : CommSemiring R] →
      [inst_1 : AddCommMonoid M] →
        [inst_2 : Module R M] →
          [inst_3 : DecidableEq (Submodule R M)] →
            {N : Submodule R M} →
              {t : Finset (Submodule R M)} →
                {motive : N.IsMinimalPrimaryDecomposition t → Sort u} →
                  ((inf_eq : t.inf id = N) →
                      (primary : ∀ ⦃J : Submodule R M⦄, J ∈ t → J.IsPrimary) →
                        (distinct :
                            (↑t).Pairwise (Function.onFun (fun x1 x2 => x1 ≠ x2) fun J => (J.colon Set.univ).radical)) →
                          (minimal : ∀ ⦃J : Submodule R M⦄, J ∈ t → ¬(t.erase J).inf id ≤ J) → motive ⋯) →
                    (t : N.IsMinimalPrimaryDecomposition t) → motive t