Section ClientSendTransition.
Definition cs_safe (this to : nid)
(d : dstatelet) (msg : seq nat) :=
[/\ to \in cs, this \in cls, coh d & prec msg].
Definition cs_step (this to : nid) (d : dstatelet)
(msg : seq nat)
(pf : cs_safe this to d msg) :=
let C := cs_safe_coh pf in
let s := getSt this C in
Some (st :-> ((this, to, msg)::s)).

Lemma cs_safe_def this to d msg :
cs_safe this to d msg <->
exists b pf, @cs_step this to d msg pf = Some b.