proposition: Lemma alt_first_out : forall q0 : queue Message, alternate q0 -> alternate (first_out Message q0).
proof: Proof. intros; elim H; simpl in |- *. apply alt_null. intros qm m; intro. case qm. intros; apply alt_null. simpl in |- *. generalize H0. case m. auto. intros. apply alt_any_alt. auto. auto. intros. apply alt_any_alt. auto. auto. intros. apply alt_any_alt. auto. auto. intro. intro. case qm. auto. intros. apply alt_inc_dec. auto. apply in_q_before_first_out. auto. Qed.
imports: DistributedReferenceCounting.machine4.machine DistributedReferenceCounting.machine4.cardinal DistributedReferenceCounting.machine4.comm