∀ {C : Type u_1} [inst : CategoryTheory.Category.{u_3, u_1} C] {D : Type u_4}
  [inst_1 : CategoryTheory.Category.{u_2, u_4} D] (G : CategoryTheory.Functor C D) (d : D)
  (motive : Nonempty (CategoryTheory.StructuredArrow d G) → Prop) (x : Nonempty (CategoryTheory.StructuredArrow d G)),
  (∀ (u : CategoryTheory.Discrete PUnit.{1}) (c : C) (g : (CategoryTheory.Functor.fromPUnit d).obj u ⟶ G.obj c),
      motive ⋯) →
    motive x