{R : Type u} →
  {M : Type v} →
    [inst : CommSemiring R] →
      [inst_1 : AddCommMonoid M] →
        [inst_2 : Module R M] →
          {motive : Module.Flat R M → Sort u_1} →
            ((out :
                  ∀ ⦃P : Type u⦄ [inst_3 : AddCommMonoid P] [inst_4 : Module R P] [Module.Finite R P]
                    (N : Submodule R P), N.FG → Function.Injective ⇑(LinearMap.rTensor M N.subtype)) →
                motive ⋯) →
              (t : Module.Flat R M) → motive t