proposition: Lemma gpaco2_mon_gen (gf' clo clo': rel -> rel) x0 x1 r r' rg rg' (IN: @gpaco2 gf clo r rg x0 x1) (gf_mon: monotone2 gf) (LEgf: gf <3= gf') (LEclo: clo <3= clo') (LEr: r <2= r') (LErg: rg <2= rg') : @gpaco2 gf' clo' r' rg' x0 x1.
proof: Proof. eapply gpaco2_mon; [|apply LEr|apply LErg]. destruct IN. econstructor. eapply rclo2_mon_gen. apply IN. apply LEclo. intros. destruct PR; [| right; apply H]. left. eapply paco2_mon_gen. apply H. - intros. eapply LEgf. eapply gf_mon. apply PR. intros. eapply rclo2_mon_gen. apply PR0. apply LEclo. intros; apply PR1. - intros. apply PR. Qed.
imports: Program.Basics Paco(paco2 pacotac)