Proof using.
move => net net' failed failed' tr H_step.
apply step_failure_tot_mapped_simulation_1 in H_step.
rewrite /tot_map_name /tot_map_net /= /id /= in H_step.
rewrite /tot_map_trace_occ /= /id /= in H_step.
rewrite /tot_map_packet /= /id /= in H_step.
rewrite /serialize_net.
move: H_step.
rewrite 2!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}.
set mp := fun e : name * _ => _.
suff H_eq': map mp 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_failure_serialize_simulation_star :
forall net failed tr,
@step_failure_star _ _ orig_failure_params step_failure_init (failed, net) tr ->
@step_failure_star _ _ serialized_failure_params step_failure_init (failed, serialize_net net) tr.