End ServerGenericReceiveTransitions.
Section ServerReceiveTransitions.
Definition s_matches_tag (ss : server_state) (from : nid) t :=
(t == read_tag) || (t == update_tag).
Definition server_msg_wf d (C : ResourceCoh d) (this from : nid) :=
[pred m : TaggedMessage | s_matches_tag (getSt_server C) from (tag m)].
Definition server_recv_update_trans := rs_recv_trans update_tag server_msg_wf.
Definition server_recv_read_trans := rs_recv_trans read_tag server_msg_wf.
End ServerReceiveTransitions.
Section ClientGenericSendTransitions.
Definition HClient this to := (this \in clients /\ to == server).
Variable the_tag : nat.
Variable prec : nid -> seq nat -> Prop.
Hypothesis prec_safe :
forall this to m,
HClient this to ->
prec to m ->
msg_from_client (TMsg the_tag m).
Notation coh := ResourceCoh.

(* Specifications: *)
Lemma client_send_this_in this to : HClient this to -> this \in nodes.
Definition client_step (this to : nid) (d : dstatelet)
(msg : seq nat)
(pf : client_send_safe this to d msg) :=
Some Heap.empty.
Lemma client_step_coh : s_step_coh_t coh the_tag client_step.
Lemma client_step_def this to d msg :
client_send_safe this to d msg <->
exists b pf, @client_step this to d msg pf = Some b.