proposition: Lemma gpaco0_weaken clo r rg: gpaco0 (gupaco0 clo) r rg <0= gpaco0 clo r rg.
proof: Proof. intros. apply gpaco0_unfold in PR. induction PR. - destruct IN; cycle 1. apply gpaco0_base, H. apply gpaco0_step_gen. eapply gf_mon. apply H. clear H. eapply gpaco0_cofix. intros. apply gpaco0_unfold in PR. induction PR. + destruct IN; cycle 1. apply gpaco0_base, H. apply gpaco0_step. eapply gf_mon. apply H. intros. apply gpaco0_base. apply CIH. eapply gupaco0_mon. apply PR. intros. destruct PR0; apply H0. + apply gpaco0_gupaco. eapply gupaco0_mon. apply IN. apply H. - apply gpaco0_gupaco. eapply gupaco0_mon. apply IN. apply H. Qed.
imports: Program.Basics Paco(paco0 pacotac)