Proof using name_map_bijective.
move => h.
elim => //=.
move => n failed IH.
repeat break_if => //.
- by find_rewrite.
- by find_apply_lem_hyp tot_map_name_injective.
- by rewrite /= IH.
Qed.

(* Specifications: *)
Theorem step_failure_tot_mapped_simulation_1 :
forall net net' failed failed' tr,
@step_failure _ _ fail_fst (failed, net) (failed', net') tr ->
@step_failure _ _ fail_snd (map tot_map_name failed, tot_map_net net) (map tot_map_name failed', tot_map_net net') (map tot_map_trace_occ tr).