Proof using name_map_bijective.
case => //=.
case.
move => h.
case => //.
move => inp.
case => //.
case.
move => h'.
case => //.
move => out.
case => //=.
move => h0.
move => inp' out' H_eq.
inversion H_eq.
find_apply_lem_hyp tot_map_name_injective.
repeat find_rewrite.
by exists h; exists inp; exists out.
Qed.

(* Specifications: *)
Theorem step_async_tot_mapped_simulation_1 :
forall net net' tr,
@step_async _ multi_fst net net' tr ->
@step_async _ multi_snd (tot_map_net net) (tot_map_net net') (map tot_map_trace_occ tr).