Inductive PA_ob : Type :=
  | PA1 : PA_ob
  | PA2 : PA_ob.Inductive PA_ob : Type :=
  | PA1 : PA_ob
  | PA2 : PA_ob.Inductive PA_ob : Type :=
  | PA1 : PA_ob
  | PA2 : PA_ob.Inductive PA_mor : PA_ob -> PA_ob -> Type :=
  | PA_I1 : PA_mor PA1 PA1
  | PA_I2 : PA_mor PA2 PA2
  | PA_f : I -> PA_mor PA1 PA2.Inductive PA_mor : PA_ob -> PA_ob -> Type :=
  | PA_I1 : PA_mor PA1 PA1
  | PA_I2 : PA_mor PA2 PA2
  | PA_f : I -> PA_mor PA1 PA2.Inductive PA_mor : PA_ob -> PA_ob -> Type :=
  | PA_I1 : PA_mor PA1 PA1
  | PA_I2 : PA_mor PA2 PA2
  | PA_f : I -> PA_mor PA1 PA2.Inductive PA_mor : PA_ob -> PA_ob -> Type :=
  | PA_I1 : PA_mor PA1 PA1
  | PA_I2 : PA_mor PA2 PA2
  | PA_f : I -> PA_mor PA1 PA2.

(* Specifications: *)
Lemma PA_11_P : (PA_mor PA1 PA1 -> Prop) -> forall x y : PA_ob, PA_mor x y -> Prop.
Lemma PA_11_ind : forall P : PA_mor PA1 PA1 -> Prop, P PA_I1 -> forall x : PA_mor PA1 PA1, P x.
Lemma PA_22_P : (PA_mor PA2 PA2 -> Prop) -> forall x y : PA_ob, PA_mor x y -> Prop.
Lemma PA_22_ind : forall P : PA_mor PA2 PA2 -> Prop, P PA_I2 -> forall x : PA_mor PA2 PA2, P x.
Lemma PA_12_P : (PA_mor PA1 PA2 -> Prop) -> forall x y : PA_ob, PA_mor x y -> Prop.
Lemma PA_12_ind : forall P : PA_mor PA1 PA2 -> Prop, (forall i : I, P (PA_f i)) -> forall x : PA_mor PA1 PA2, P x.
Lemma PA_21_P : (PA_mor PA2 PA1 -> Prop) -> forall x y : PA_ob, PA_mor x y -> Prop.
Lemma PA_21_ind : forall (P : PA_mor PA2 PA1 -> Prop) (x : PA_mor PA2 PA1), P x.
Lemma PA_21_T : (PA_mor PA2 PA1 -> Type) -> forall x y : PA_ob, PA_mor x y -> Type.
Lemma PA_21_rect : forall (P : PA_mor PA2 PA1 -> Type) (x : PA_mor PA2 PA1), P x.