Section SingleSimulations.
Context {base_fst : BaseParams}.
Context {base_snd : BaseParams}.
Context {multi : MultiParams base_fst}.
Context {overlay : NameOverlayParams multi}.
Context {fail_msg : FailMsgParams multi}.
Context {single : SingleParams base_snd}.
Context {tot_map : MultiSingleParamsTotalMap multi base_snd}.
Context {me : name} {map_congr : MultiSingleParamsTotalMapCongruency single tot_map me}.
Definition step_ordered_failure_tot_s_net_handlers_eq :=
forall net failed tr src m ms out st' ps out' st'',
step_ordered_failure_star step_ordered_failure_init (failed, net) tr ->
onwPackets net src me = m :: ms ->
~ In me failed ->
net_handlers me src m (onwState net me) = (out, st', ps) ->
input_handler (tot_s_map_msg me src m) (tot_s_map_data (onwState net me)) = (out', st'') ->
map tot_s_map_output out = out' /\ tot_s_map_data st' = st''.

Theorem step_ordered_failure_tot_one_mapped_simulation_1 :
step_ordered_failure_tot_s_net_handlers_eq ->
forall net net' failed failed' tr tr',
step_ordered_failure_star step_ordered_failure_init (failed, net) tr ->
step_ordered_failure (failed, net) (failed', net') tr' ->
net.(onwState) me = net'.(onwState) me \/
exists tr'', @step_s _ single (tot_s_map_data (net.(onwState) me)) (tot_s_map_data (net'.(onwState) me)) tr''.