Inductive order : Set :=
  | L : order
  | E : order
  | G : order.Inductive order : Set :=
  | L : order
  | E : order
  | G : order.Inductive order : Set :=
  | L : order
  | E : order
  | G : order.Inductive order : Set :=
  | L : order
  | E : order
  | G : order.Definition comparison (v1 v2 : nat) :=
  match Lt_eq_Gt v1 v2 return order with
  | First _ => L
  | Second _ => E
  | Third _ => G
  end.

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.