Definition Zle_bool_total x y :
{ x <=? y = true } + { y <=? x = true }.

(* Specifications: *)
Lemma Zone_pos : 1 <=? 0 = false.
Lemma Zone_min_pos n : (n <=? 0) = false -> (1 <=? n) = true.
(** Properties in term of [iff] *)
Lemma Zle_is_le_bool n m : (n <= m) <-> (n <=? m) = true.
Lemma Zge_is_le_bool n m : (n >= m) <-> (m <=? n) = true.
Lemma Zlt_is_lt_bool n m : (n < m) <-> (n <? m) = true.
Lemma Zgt_is_gt_bool n m : (n > m) <-> (n >? m) = true.
Lemma Zlt_is_le_bool n m : (n < m) <-> (n <=? m - 1) = true.
Lemma Zgt_is_le_bool n m : (n > m) <-> (m <=? n - 1) = true.
(** Properties of the deprecated [Zeq_bool] *)
Lemma Zeq_is_eq_bool x y : x = y <-> Zeq_bool x y = true.
Lemma Zeq_bool_eq x y : Zeq_bool x y = true -> x = y.
Lemma Zeq_bool_neq x y : Zeq_bool x y = false -> x <> y.
Lemma Zeq_bool_if x y : if Zeq_bool x y then x=y else x<>y.