Proof using.
unfold message_delivered_label.
intros.
invcs H.
- repeat find_rewrite.
find_eapply_lem_hyp In_split_not_In; eauto. subst.
monad_unfold. simpl in *.
handler_unfold. repeat break_match; repeat find_inversion; auto.
- unfold not in *. find_false.
apply in_app_iff; auto.
- intuition.
Qed.

(* Specifications: *)
Lemma Unlock_in_network_eventually_MsgUnlock :
forall c s,
lb_step_execution lb_step_async s ->
weak_fairness lb_step_async label_silent s ->
In (mkPacket c Server Unlock) (nwPackets (evt_a (hd s))) ->
eventually (now (occurred MsgUnlock)) s.
Lemma Locked_in_network_eventually_MsgLocked :
forall i s,
lb_step_execution lb_step_async s ->
weak_fairness lb_step_async label_silent s ->
In (mkPacket Server (Client i) Locked) (nwPackets (evt_a (hd s))) ->
eventually (now (occurred (MsgLocked i))) s.