Proof using.
unfold locks_correct, at_head_of_queue.
firstorder.
rewrite_update.
eauto.
Qed.

(* Specifications: *)
Lemma snoc_at_head_of_queue_preserved :
forall sigma st' x,
queue st' = queue (sigma Server) ++ [x] ->
(forall c, at_head_of_queue sigma c -> at_head_of_queue (update name_eq_dec sigma Server st') c).
Lemma snoc_at_head_of_queue_preserved :
forall sigma st' x,
queue st' = queue (sigma Server) ++ [x] ->
(forall c, at_head_of_queue sigma c -> at_head_of_queue (update name_eq_dec sigma Server st') c).