proposition: Lemma gpaco1_mon_gen (gf' clo clo': rel -> rel) x0 r r' rg rg' (IN: @gpaco1 gf clo r rg x0) (gf_mon: monotone1 gf) (LEgf: gf <2= gf') (LEclo: clo <2= clo') (LEr: r <1= r') (LErg: rg <1= rg') : @gpaco1 gf' clo' r' rg' x0.
proof: Proof. eapply gpaco1_mon; [|apply LEr|apply LErg]. destruct IN. econstructor. eapply rclo1_mon_gen. apply IN. apply LEclo. intros. destruct PR; [| right; apply H]. left. eapply paco1_mon_gen. apply H. - intros. eapply LEgf. eapply gf_mon. apply PR. intros. eapply rclo1_mon_gen. apply PR0. apply LEclo. intros; apply PR1. - intros. apply PR. Qed.
imports: Program.Basics Paco(paco1 pacotac)