Require Export VST.concurrency.paco.src.paconotation VST.concurrency.paco.src.pacotac VST.concurrency.paco.src.pacodef VST.concurrency.paco.src.pacotacuser.
Set Implicit Arguments.
(** ** Predicates of Arity 2 *)
(** 1 Mutual Coinduction *)
Section Arg2_1.
Definition monotone2 T0 T1 (gf: rel2 T0 T1 -> rel2 T0 T1) :=
forall x0 x1 r r' (IN: gf r x0 x1) (LE: r <2= r'), gf r' x0 x1.
Variable T0 : Type.
Variable T1 : forall (x0: @T0), Type.
Variable gf : rel2 T0 T1 -> rel2 T0 T1.
Implicit Arguments gf [].

Theorem paco2_3_1_acc: forall
l r_0 r_1 r_2 (OBG: forall rr (INC: r_1 <2= rr) (CIH: l <_paco_2= rr), l <_paco_2= paco2_3_1 gf_0 gf_1 gf_2 r_0 rr r_2),
l <2= paco2_3_1 gf_0 gf_1 gf_2 r_0 r_1 r_2.