(***********************************************************)
(* A rely-inductive predicate describing the message story *)
(***********************************************************)
Definition msg_story s req_num to data reqs resp :=
[/\ to \in qnodes,
core_state_to_data to (getLc' s to) data,
local_indicator data (getLc s) &
let: d := getSq s in
[\/ msg_just_sent d reqs resp req_num to,
msg_received d reqs resp req_num to |
msg_responded d reqs resp req_num to data]].

(* This lemma employs hooking -= it's better hold!.. :-s *)
Lemma msg_story_step' req_num data reqs resp to s s' :
this != to ->
msg_story s req_num to data reqs resp ->
network_step W to s s' ->
msg_story s' req_num to data reqs resp.