Instance paco1_inst  T0 (gf : rel1 T0->_) r x0 : paco_class (paco1 gf r x0) :=
{ pacoacc    := paco1_acc gf;
  pacomult   := paco1_mult gf;
  pacofold   := paco1_fold gf;
  pacounfold := paco1_unfold gf }.Definition monotone1_2 T0 (gf: rel1 T0 -> rel1 T0 -> rel1 T0) :=
  forall x0 r_0 r_1 r'_0 r'_1 (IN: gf r_0 r_1 x0) (LE_0: r_0 <1= r'_0)(LE_1: r_1 <1= r'_1), gf r'_0 r'_1 x0.

(* Specifications: *)
Theorem paco1_2_0_acc: forall l r_0 r_1 (OBG: forall rr (INC: r_0 <1= rr) (CIH: l <_paco_1= rr), l <_paco_1= paco1_2_0 gf_0 gf_1 rr r_1), l <1= paco1_2_0 gf_0 gf_1 r_0 r_1.
Theorem paco1_2_1_acc: forall l r_0 r_1 (OBG: forall rr (INC: r_1 <1= rr) (CIH: l <_paco_1= rr), l <_paco_1= paco1_2_1 gf_0 gf_1 r_0 rr), l <1= paco1_2_1 gf_0 gf_1 r_0 r_1.
Theorem paco1_2_0_mon: monotone1_2 (paco1_2_0 gf_0 gf_1).
Theorem paco1_2_1_mon: monotone1_2 (paco1_2_1 gf_0 gf_1).
Theorem paco1_2_0_mult_strong: forall r_0 r_1, paco1_2_0 gf_0 gf_1 (upaco1_2_0 gf_0 gf_1 r_0 r_1) (upaco1_2_1 gf_0 gf_1 r_0 r_1) <1= paco1_2_0 gf_0 gf_1 r_0 r_1.
Theorem paco1_2_1_mult_strong: forall r_0 r_1, paco1_2_1 gf_0 gf_1 (upaco1_2_0 gf_0 gf_1 r_0 r_1) (upaco1_2_1 gf_0 gf_1 r_0 r_1) <1= paco1_2_1 gf_0 gf_1 r_0 r_1.