{C : Type u} →
  [inst : CategoryTheory.Category.{v, u} C] →
    {X Y : C} →
      {motive : CategoryTheory.Retract X Y → Sort u_1} →
        ((i : X ⟶ Y) →
            (r : Y ⟶ X) →
              (retract : CategoryTheory.CategoryStruct.comp i r = CategoryTheory.CategoryStruct.id X) →
                motive { i := i, r := r, retract := retract }) →
          (t : CategoryTheory.Retract X Y) → motive t