Proof using.
move => net failed tr H_step.
apply step_failure_tot_mapped_simulation_star_1 in H_step.
rewrite /tot_map_name /tot_map_net /= /id /= in H_step.
rewrite /tot_map_packet /= /id /= in H_step.
rewrite /serialize_net.
move: H_step.
rewrite map_id.
set fp := fun p : packet => _.
have H_eq: fp = serialize_packet by rewrite /fp ; apply functional_extensionality; case => /= src dst m.
rewrite H_eq {H_eq fp}.
rewrite /tot_map_trace_occ /=.
set fp := fun e : name * _ => _.
suff H_eq': map fp tr = tr by rewrite H_eq'.
elim: tr => //=.
case => a.
case => /= [i|o] l IH; rewrite IH //.
by rewrite map_id.
Qed.

(* Specifications: *)
Lemma step_ordered_failure_serialize_simulation :
forall net net' failed failed' tr,
@step_ordered_failure _ _ orig_name_overlay_params orig_fail_msg_params (failed, net) (failed', net') tr ->
@step_ordered_failure _ _ serialized_name_overlay_params serialized_fail_msg_params (failed, serialize_onet net) (failed', serialize_onet net') tr.