Implicit Types m n x y : nat.Definition zerop n : {n = 0} + {0 < n}.Definition lt_eq_lt_dec n m : {n < m} + {n = m} + {m < n}.Definition gt_eq_gt_dec n m : {m > n} + {n = m} + {n > m}.Definition le_lt_dec n m : {n <= m} + {m < n}.Definition le_le_S_dec n m : {n <= m} + {S m <= n}.Definition le_ge_dec n m : {n <= m} + {n >= m}.Definition le_gt_dec n m : {n <= m} + {n > m}.Definition le_lt_eq_dec n m : n <= m -> {n < m} + {n = m}.

(* Specifications: *)
Theorem le_dec n m : {n <= m} + {~ n <= m}.
Theorem lt_dec n m : {n < m} + {~ n < m}.
Theorem gt_dec n m : {n > m} + {~ n > m}.
Theorem ge_dec n m : {n >= m} + {~ n >= m}.
Theorem dec_le n m : decidable (n <= m).
Theorem dec_lt n m : decidable (n < m).
Theorem dec_gt n m : decidable (n > m).
Theorem dec_ge n m : decidable (n >= m).
Theorem not_eq n m : n <> m -> n < m \/ m < n.
Theorem not_le n m : ~ n <= m -> n > m.
Theorem not_gt n m : ~ n > m -> n <= m.
Theorem not_ge n m : ~ n >= m -> n < m.
Theorem not_lt n m : ~ n < m -> n >= m.