Proof using.
intros.
induction tr; simpl in *; intuition.
repeat break_match; intuition; subst; simpl in *; intuition; try congruence;
try do_in_app; intuition eauto.
- find_apply_lem_hyp in_remove; auto.
- find_apply_lem_hyp in_dedup_was_in; auto.
find_apply_lem_hyp In_filterMap.
break_exists; break_match; intuition; try congruence.
subst. find_inversion.
find_apply_lem_hyp In_get_output'. break_exists; congruence.
- find_apply_lem_hyp in_remove_all_was_in. auto.
Qed.

Lemma IRO_in_IR_in_log :
forall k log tr,
In (IRO k) (log_to_IR (get_output tr) log) ->
exists e out,
eClient e = fst k /\
eId e = snd k /\
get_output tr k = Some out /\
In e log.