Section ALT_DEF.
(* la nature de la file d'attente entre un site et l'owner est particuliere. C'est une alternance de messages dec et inc_dec dans laquelle les messages inc_dec sont isoles. De plus l'information pernmettant de savoir qu'une file est vide ou commence par un message dec est utile car elle est caracteristique d'un site ayant son drapeau rt non positionne *)
Inductive D_queue : queue Message -> Prop :=
| D_empty : D_queue (empty Message)
| D_dec : forall qm : queue Message, D_queue (input Message dec qm).
Inductive alternate : queue Message -> Prop :=
| alt_null : alternate (empty Message)
| alt_single_inc :
forall s0 : Site,
alternate (input Message (inc_dec s0) (empty Message))
| alt_dec_alt :
forall qm : queue Message,
alternate qm -> alternate (input Message dec qm)
| alt_inc_dec :
forall (qm : queue Message) (s0 : Site),
alternate qm ->
alternate (input Message (inc_dec s0) (input Message dec qm)).

Lemma D_first_out :
forall q0 : queue Message, D_queue q0 -> D_queue (first_out Message q0).