Proof with try solve[congruence].
intro H; unfold rev_cmp; repeat constructor; repeat intro.
apply comp_refl with (x := x) in H... rewrite H in H0...
do_comp H x y... do_comp H y z...
assert (Lt = c z x) by (eapply comp_trans; eauto).
rewrite comp_antisym in H2; auto. rewrite <-H2; auto.
do_comp H x y. subst; constructor; auto.
constructor; rewrite comp_antisym in e; auto; rewrite <-e; auto.
constructor. rewrite comp_antisym in e; auto. rewrite <-e; auto.
Qed.

(* Specifications: *)
Lemma rev_cmp_eq : forall {A : Type} (cmp : A -> A -> comparison) (x y : A),
(forall x0 y0 : A, Eq = cmp x0 y0 -> x0 = y0) ->
Eq = rev_cmp cmp x y -> x = y.