Corollary step_async_tot_mapped_simulation_star_1 :
  forall net tr,
    @step_async_star _ multi_fst step_async_init net tr ->
    @step_async_star _ multi_snd step_async_init (tot_map_net net) (map tot_map_trace_occ tr).

(* Specifications: *)
Theorem step_async_tot_mapped_simulation_2 : forall net net' out mnet mout, @step_async _ multi_snd net net' out -> tot_map_net mnet = net -> map tot_map_trace_occ mout = out -> exists mnet', @step_async _ multi_fst mnet mnet' mout /\ tot_map_net mnet' = net'.
Lemma not_in_failed_not_in : forall n failed, ~ In n failed -> ~ In (tot_map_name n) (map tot_map_name failed).
Lemma in_failed_in : forall n failed, In n failed -> In (tot_map_name n) (map tot_map_name failed).
Lemma remove_tot_map_eq : forall h failed, map tot_map_name (remove name_eq_dec h failed) = remove name_eq_dec (tot_map_name h) (map tot_map_name failed).
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).