Inductive PULB_ob : Type :=
  | P1 : PULB_ob
  | P2 : PULB_ob
  | P3 : PULB_ob.Inductive PULB_ob : Type :=
  | P1 : PULB_ob
  | P2 : PULB_ob
  | P3 : PULB_ob.Inductive PULB_ob : Type :=
  | P1 : PULB_ob
  | P2 : PULB_ob
  | P3 : PULB_ob.Inductive PULB_ob : Type :=
  | P1 : PULB_ob
  | P2 : PULB_ob
  | P3 : PULB_ob.Inductive PULB_mor : PULB_ob -> PULB_ob -> Type :=
  | IP1 : PULB_mor P1 P1
  | IP2 : PULB_mor P2 P2
  | IP3 : PULB_mor P3 P3
  | F12 : PULB_mor P1 P2
  | F32 : PULB_mor P3 P2.Inductive PULB_mor : PULB_ob -> PULB_ob -> Type :=
  | IP1 : PULB_mor P1 P1
  | IP2 : PULB_mor P2 P2
  | IP3 : PULB_mor P3 P3
  | F12 : PULB_mor P1 P2
  | F32 : PULB_mor P3 P2.Inductive PULB_mor : PULB_ob -> PULB_ob -> Type :=
  | IP1 : PULB_mor P1 P1
  | IP2 : PULB_mor P2 P2
  | IP3 : PULB_mor P3 P3
  | F12 : PULB_mor P1 P2
  | F32 : PULB_mor P3 P2.Inductive PULB_mor : PULB_ob -> PULB_ob -> Type :=
  | IP1 : PULB_mor P1 P1
  | IP2 : PULB_mor P2 P2
  | IP3 : PULB_mor P3 P3
  | F12 : PULB_mor P1 P2
  | F32 : PULB_mor P3 P2.Inductive PULB_mor : PULB_ob -> PULB_ob -> Type :=
  | IP1 : PULB_mor P1 P1
  | IP2 : PULB_mor P2 P2
  | IP3 : PULB_mor P3 P3
  | F12 : PULB_mor P1 P2
  | F32 : PULB_mor P3 P2.Inductive PULB_mor : PULB_ob -> PULB_ob -> Type :=
  | IP1 : PULB_mor P1 P1
  | IP2 : PULB_mor P2 P2
  | IP3 : PULB_mor P3 P3
  | F12 : PULB_mor P1 P2
  | F32 : PULB_mor P3 P2.

Lemma PULB_31_rect : forall (P : PULB_mor P3 P1 -> Type) (x : PULB_mor P3 P1), P x.