Definition good_op_move (x y : op) : Prop :=
    (forall k k', ~ (x = O k /\ y = I k')) /\
    (forall k, ~ (x = I k /\ y = O k)).

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