Proof using name_map_bijective multi_map_congr.
move => net tr H_step.
remember step_ordered_init as y in *.
move: Heqy.
induction H_step using refl_trans_1n_trace_n1_ind => H_init /=.
rewrite H_init.
rewrite /step_ordered_init /= /pt_map_net /=.
rewrite pt_init_handlers_fun_eq.
exact: RT1nTBase.
rewrite filterMap_app.
concludes.
rewrite H_init in H_step2 H_step1.
apply step_ordered_pt_mapped_simulation_1 in H.
case: H => H.
have H_trans := refl_trans_1n_trace_trans IHH_step1.
apply: H_trans.
rewrite (app_nil_end (filterMap pt_map_trace_ev _)).
apply: (@RT1nTStep _ _ _ _ (pt_map_onet x'')) => //.
exact: RT1nTBase.
move: H => [H_eq H_eq'].
by rewrite H_eq H_eq' -app_nil_end.
Qed.

(* Specifications: *)
Lemma pt_msg_in_map :
forall m l n m',
(forall nm, In nm l -> snd nm = m) ->
In (tot_map_name n, m') (filterMap pt_map_name_msg l) ->
pt_map_msg m = Some m'.