intros v1 v2 c.
elim (Lt_eq_Gt v1 v2); auto with arith.
intros l; absurd (Compare_Nat.comparison v1 v2 = G); auto with arith.
rewrite (comparisonL v1 v2 l); discriminate.
intros e; absurd (Compare_Nat.comparison v1 v2 = G); auto with arith.
rewrite (comparisonE v1 v2 e); discriminate.
Qed.
Hint Resolve inv_comparisonG.

(* Specifications: *)
Lemma inv_comparison :
forall v1 v2 : nat,
match Compare_Nat.comparison v1 v2 return Prop with
| L => v1 < v2
| E => v1 = v2
| G => v1 > v2
end.