Proof using.
induction 1; intros.
- auto.
- simpl.
repeat break_match; subst; auto;
exfalso; eauto using op_equiv_ack_op_lr, op_equiv_ack_op_rl.
- find_copy_apply_lem_hyp good_op_move_cases. break_exists. intuition; subst.
+ destruct (K_eq_dec x0 x1).
* subst. auto using IR_equiv_AAOF_I.
* auto using IR_equiv_AAOF_II_neq.
+ simpl. eauto using good_move_OO.
+ simpl. repeat break_match; intuition; try congruence.
* eauto using good_move_IO_neq.
* exfalso. eauto using op_equiv_ack_op_lr.
* exfalso. eauto using op_equiv_ack_op_lr.
* exfalso; eauto using Permutation_in, op_equiv_Permutation, acknowledged_op_defn, Permutation_sym.
* eapply IR_equiv_trans; [apply IR_equiv_cons; apply IR_equiv_move; auto|].
eapply IR_equiv_trans; [apply IR_equiv_move; auto|]. apply good_move_IO_neq. congruence.
auto.
* exfalso.
match goal with
| [ H : In (O _) _ -> False |- _ ] => apply H
end.
eapply Permutation_in; [apply Permutation_sym; eapply op_equiv_Permutation; eauto|].
auto using acknowledged_op_defn.
- eauto.
Qed.

Lemma op_equivalent_refl :
forall xs,
op_equivalent xs xs.