(* The proof is long and very boring, but it is a simple case analysis.  Could it be possible to simplify it? *)

Lemma not_in_queue_collect :
forall (b : Bag_of_message) (s1 s2 s3 s4 : Site) (m1 : Message),
~ In_queue Message m1 (b s1 s2) ->
~ In_queue Message m1 (Collect_message Message b s3 s4 s1 s2).