Section ParticipantGenericReceiveTransitions.
Notation coh := TPCCoh.
(* Send-prepare *)
Variable rp_tag : ttag.
Variable rp_wf : forall d, coh d -> nid -> nid -> pred payload.
Definition rp_step : receive_step_t coh :=
fun this (from : nid) (m : seq nat) d (pf : coh d) (pt : this \in nodes) =>
if (this \in pts)
then let s := getStP pf pt in
let l := @getStL this d pf pt in
mkLocal (pstep_recv s from rp_tag m l)
else getLocal this d.

Lemma rp_step_coh : r_step_coh_t rp_wf rp_tag rp_step.