Definition client_send_trans :=
SendTrans cs_safe_coh cs_safe_in cs_safe_def cs_step_coh.
End ClientSendTransition.
Section ClientReceiveTransition.
Definition cr_wf d (C : coh d) this from (msg : seq nat) :=
let s := getSt this C in
let: args := (behead msg) in
[&& (this, from, args) \in s &
size msg > 2].
Definition cr_step : receive_step_t coh :=
fun this (from : nid) (m : seq nat) d (pf : coh d) (pt : this \in nodes) =>
let s := getSt this pf : seq perm in
st :-> remove_elem s (this, from, (behead m) : seq nat).

(* Specifications: *)
Lemma cr_step_coh : r_step_coh_t cr_wf resp cr_step.
Definition client_recv_trans := ReceiveTrans cr_step_coh.