(***********************************************************)
(* 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]].

Lemma msg_story_step req_num to data reqs resp z s s' :
this != z ->
msg_story s req_num to data reqs resp ->
network_step W z s s' ->
msg_story s' req_num to data reqs resp.