End Zlt_bool.
Section Zcompare.
Inductive Zcompare_prop (x y : Z) : comparison -> Prop :=
| Zcompare_Lt_ : (x < y)%Z -> Zcompare_prop x y Lt
| Zcompare_Eq_ : x = y -> Zcompare_prop x y Eq
| Zcompare_Gt_ : (y < x)%Z -> Zcompare_prop x y Gt.

(* Specifications: *)
Theorem Zcompare_spec :
forall x y, Zcompare_prop x y (Zcompare x y).
Theorem Zcompare_Lt :
forall x y,
(x < y)%Z -> Zcompare x y = Lt.
Theorem Zcompare_Eq :
forall x y,
(x = y)%Z -> Zcompare x y = Eq.
Theorem Zcompare_Gt :
forall x y,
(y < x)%Z -> Zcompare x y = Gt.
Theorem Zcompare_spec :
forall x y, Zcompare_prop x y (Zcompare x y).
Theorem Zcompare_Lt :
forall x y,
(x < y)%Z -> Zcompare x y = Lt.
Theorem Zcompare_Eq :
forall x y,
(x = y)%Z -> Zcompare x y = Eq.
Theorem Zcompare_Gt :
forall x y,
(y < x)%Z -> Zcompare x y = Gt.