Proof using.
intros.
apply in_middle_reduce with (y := I k'); intuition.
find_inversion.
auto using get_IR_output_keys_complete_U.
Qed.

(* Specifications: *)
Lemma IRU_I_preserved :
forall xs ys zs k' ir,
(~ In k' (get_IR_output_keys ir)) ->
(forall k, In (IRU k) (IRI k' :: IRO k' :: ir) ->
In (I k) (xs ++ I k' :: ys ++ O k' :: zs)) ->
forall k, In (IRU k) ir ->
In (I k) (xs ++ ys ++ zs).