Proof using name_map_bijective.
move => f from to ms l.
rewrite -pt_map_msg_update2.
by rewrite collate_pt_map_eq.
Qed.
Definition pt_map_trace_ev (e : @name _ multi_fst * (@input base_fst + (@output base_fst))) :
option (@name _ multi_snd * (@input base_snd + (@output base_snd))) :=
match e with
|  (n, inl i) =>
match pt_map_input i with
| Some i' => Some (tot_map_name n, inl i')
| None => None
end
| (n, inr o) =>
match pt_map_output o with
| Some o' => Some (tot_map_name n, inr o')
| None => None
end
end.

(* Specifications: *)
Lemma filterMap_pt_map_trace_ev_outputs_eq :
forall out to,
filterMap pt_map_trace_ev (map2fst to (map inr out)) =
map2fst (tot_map_name to) (map inr (filterMap pt_map_output out)).