(* Concrete send-transitions *)
Definition qsend_resp := qsend_trans send_resp_prec_safe.
Section GenericQueryReceiveTransitions.
(* Send-prepare *)
Variable rtag : nat.
Variable rc_wf : forall d, coh d -> nid -> nid -> TaggedMessage -> bool.
Definition receive_step : receive_step_t coh :=
fun this (from : nid) (msg : seq nat) d (pf : coh d) (pt : this \in nodes) =>
let q := getSt this pf in
mkLocal (receive_step_fun q from rtag (head 0 msg)).

(* Specifications: *)
Lemma receive_step_coh : r_step_coh_t rc_wf rtag receive_step.
Definition qrecv_trans := ReceiveTrans receive_step_coh.