{C : Type u₁} →
  [inst : CategoryTheory.Category.{v₁, u₁} C] →
    {D : Type u₂} →
      [inst_1 : CategoryTheory.Category.{v₂, u₂} D] →
        {P : {x y : CategoryTheory.Join C D} → (x ⟶ y) → Sort u_1} →
          ((x y : C) → (f : x ⟶ y) → P ((CategoryTheory.Join.inclLeft C D).map f)) →
            ((x y : D) → (f : x ⟶ y) → P ((CategoryTheory.Join.inclRight C D).map f)) →
              ((c : C) → (d : D) → P (CategoryTheory.Join.edge c d)) →
                {x y : CategoryTheory.Join C D} → (f : x ⟶ y) → P f