Proof using.
intros.
invcs H.
invcs H1.
- monad_unfold.
unfold NetHandler in *.
break_match_hyp.
+ unfold occurred in *.
find_apply_lem_hyp ClientNetHandler_lbcases; intuition; congruence.
+ unfold occurred in *.
find_apply_lem_hyp ServerNetHandler_lbcases; intuition;
break_exists; intuition; congruence.
- monad_unfold.
find_apply_lem_hyp InputHandler_lbcases.
intuition; try congruence.
break_exists. intuition; try congruence.
fold LockServ_MultiParams in *. (* typeclass stuff *)
repeat find_rewrite.
simpl. left. unfold occurred in *.
congruence.
- unfold occurred in *. congruence.
Qed.

(* Specifications: *)
Lemma Lock_in_network_eventually_MsgLock :
forall c s,
lb_step_execution lb_step_async s ->
weak_fairness lb_step_async label_silent s ->
In (mkPacket (Client c) Server Lock) (nwPackets (evt_a (hd s))) ->
eventually (now (occurred (MsgLock c))) s.