Definition good_move (x y : IR) : Prop :=
    (forall k k', ~ (x = IRO k /\ y = IRI k')) /\
    (forall k, ~ (x = IRI k /\ y = IRO k)) /\
    (forall k, ~ (x = IRI k /\ y = IRU k)).

Lemma IR_equiv_app_head : forall l xs ys, IR_equivalent xs ys -> IR_equivalent (l ++ xs) (l ++ ys).