Section ClientGenericSendTransitions.
Definition HClient this to := (this \in clients /\ to == server).
Variable the_tag : nat.
Variable prec : client_state -> nid -> seq nat -> Prop.
Hypothesis prec_safe :
forall this to s m,
HClient this to ->
prec s to m ->
msg_from_client (TMsg the_tag m).
Notation coh := LockCoh.
Definition client_step (this to : nid) (d : dstatelet)
(msg : seq nat)
(pf : client_send_safe this to d msg) :=
let C := client_send_safe_coh pf in
let s := getSt_client C (client_send_this_in (proj1 pf)) in
Some (st :-> client_send_step s).

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.