Proof using.
move => net net' out H_step.
apply step_async_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.
set fp := fun p => _.
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 out = out by rewrite H_eq'.
elim: out => //=.
case => a.
case => /= [i|o] l IH; rewrite IH //.
by rewrite map_id.
Qed.

(* Specifications: *)
Lemma step_async_serialize_simulation_star :
forall net tr,
@step_async_star _ orig_multi_params step_async_init net tr ->
@step_async_star _ serialized_multi_params step_async_init (serialize_net net) tr.