Definition server_send_trans :=
SendTrans ss_safe_coh ss_safe_in ss_safe_def ss_step_coh.
End ServerSendTransition.
(**************************)
(*** Client transitions ***)
(**************************)
Section ClientSendTransition.
Definition cs_safe (this to : nid)
(d : dstatelet) (msg : seq nat) :=
[/\ to \in cs, this \in cls, coh d & prec msg].

(* Specifications: *)
Lemma cs_safe_coh this to d m : cs_safe this to d m -> coh d.
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_step_coh : s_step_coh_t coh req cs_step.
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.