Proof using.
unfold at_head_of_queue.
firstorder.
congruence.
Qed.

(* Specifications: *)
Lemma empty_queue_all_clients_false :
forall sigma,
locks_correct sigma ->
queue (sigma Server) = [] ->
(forall c, held (sigma (Client c)) = false).
Lemma locks_correct_unlock_net_handlers_old :
forall p sigma u st' out ms q,
NetHandler (pDst p) (pSrc p) (pBody p) (sigma (pDst p)) = (u, out, st', ms) ->
locks_correct sigma ->
locks_correct_unlock sigma q ->
LockServ_network_network_invariant p q ->
locks_correct_unlock (update name_eq_dec sigma (pDst p) st') q.
Lemma empty_queue_all_clients_false :
forall sigma,
locks_correct sigma ->
queue (sigma Server) = [] ->
(forall c, held (sigma (Client c)) = false).
Lemma locks_correct_unlock_net_handlers_old :
forall p sigma u st' out ms q,
NetHandler (pDst p) (pSrc p) (pBody p) (sigma (pDst p)) = (u, out, st', ms) ->
locks_correct sigma ->
locks_correct_unlock sigma q ->
LockServ_network_network_invariant p q ->
locks_correct_unlock (update name_eq_dec sigma (pDst p) st') q.