Proof using.
intros.
eapply before_2_3_reduce.
- eauto using In_cons_2_3.
- intro. find_inversion. eauto using NoDup_get_op_output_keys_In_2_3.
- discriminate.
Qed.

Lemma IRI_I_preserved_IU :
forall xs ys k' ir,
(~ In k' (get_IR_input_keys ir)) ->
(forall k, In (IRI k) (IRI k' :: IRU k' :: ir) -> In (I k) (xs ++ I k' :: ys)) ->
forall k, In (IRI k) ir -> In (I k) (xs ++ ys).