Inductive Zlt_bool_prop (x y : Z) : bool -> Prop :=
  | Zlt_bool_true_ : (x < y)%Z -> Zlt_bool_prop x y true
  | Zlt_bool_false_ : (y <= x)%Z -> Zlt_bool_prop x y false.Inductive Zlt_bool_prop (x y : Z) : bool -> Prop :=
  | Zlt_bool_true_ : (x < y)%Z -> Zlt_bool_prop x y true
  | Zlt_bool_false_ : (y <= x)%Z -> Zlt_bool_prop x y false.Inductive Zlt_bool_prop (x y : Z) : bool -> Prop :=
  | Zlt_bool_true_ : (x < y)%Z -> Zlt_bool_prop x y true
  | Zlt_bool_false_ : (y <= x)%Z -> Zlt_bool_prop x y false.

(* Specifications: *)
Theorem Zlt_bool_spec : forall x y, Zlt_bool_prop x y (Zlt_bool x y).
Theorem Zlt_bool_true : forall x y : Z, (x < y)%Z -> Zlt_bool x y = true.
Theorem Zlt_bool_false : forall x y : Z, (y <= x)%Z -> Zlt_bool x y = false.
Theorem negb_Zle_bool : forall x y : Z, negb (Zle_bool x y) = Zlt_bool y x.
Theorem negb_Zlt_bool : forall x y : Z, negb (Zlt_bool x y) = Zle_bool y x.