{R : Type u} →
  [inst : Semiring R] →
    {motive : IsPrincipalIdealRing R → Sort u_1} →
      (t : IsPrincipalIdealRing R) → ((principal : ∀ (S : Ideal R), Submodule.IsPrincipal S) → motive ⋯) → motive t