Proof using.
intuition.
eapply H.
- eauto with *.
- auto using In_cons_2_3.
Qed.

Lemma IR_equivalent_acknowledge_all_ops_func :
forall ir,
good_trace ir ->
forall l,
(forall k, In (O k) l -> In (IRO k) ir) ->
(forall k, In (IRO k) ir -> In (O k) l) ->
(forall k, In (IRU k) ir -> In (I k) l) ->
(forall k, In (IRU k) ir -> ~ In (O k) l) ->
(forall k k', In (I k') l ->
before (O k) (I k') l ->
before (IRO k) (IRI k') ir) ->
(forall k, In (O k) l -> before (I k) (O k) l) ->
(forall k, In (IRI k) ir -> In (I k) l) ->
NoDup (get_op_input_keys l) ->
NoDup (get_IR_input_keys ir) ->
NoDup (get_op_output_keys l) ->
NoDup (get_IR_output_keys ir) ->
IR_equivalent (acknowledge_all_ops_func l ir) ir.