Inductive Zle_bool_prop (x y : Z) : bool -> Prop :=
  | Zle_bool_true_ : (x <= y)%Z -> Zle_bool_prop x y true
  | Zle_bool_false_ : (y < x)%Z -> Zle_bool_prop x y false.Inductive Zle_bool_prop (x y : Z) : bool -> Prop :=
  | Zle_bool_true_ : (x <= y)%Z -> Zle_bool_prop x y true
  | Zle_bool_false_ : (y < x)%Z -> Zle_bool_prop x y false.Inductive Zle_bool_prop (x y : Z) : bool -> Prop :=
  | Zle_bool_true_ : (x <= y)%Z -> Zle_bool_prop x y true
  | Zle_bool_false_ : (y < x)%Z -> Zle_bool_prop x y false.

(* Specifications: *)
Theorem Zle_bool_spec : forall x y, Zle_bool_prop x y (Zle_bool x y).
Theorem Zle_bool_true : forall x y : Z, (x <= y)%Z -> Zle_bool x y = true.
Theorem Zle_bool_false : forall x y : Z, (y < x)%Z -> Zle_bool x y = false.
Theorem Zle_bool_spec : forall x y, Zle_bool_prop x y (Zle_bool x y).
Theorem Zle_bool_true : forall x y : Z, (x <= y)%Z -> Zle_bool x y = true.
Theorem Zle_bool_false : forall x y : Z, (y < x)%Z -> Zle_bool x y = false.