(** Only [1] and [-1] divide [1]. *)

Notation Zdivide_1 := Z.divide_1_r (only parsing).

(* Specifications: *)
Lemma Zdivide_bounds a b : (a | b) -> b <> 0 -> Z.abs a <= Z.abs b.
Lemma Zmod_divide : forall a b, b<>0 -> a mod b = 0 -> (b | a).
Lemma Zdivide_mod : forall a b, (b | a) -> a mod b = 0.
Lemma Zdivide_dec a b : {(a | b)} + {~ (a | b)}.
Lemma Z_lt_neq {x y: Z} : x < y -> y <> x.
Theorem Zdivide_Zdiv_eq a b : 0 < a -> (a | b) -> b = a * (b / a).
Theorem Zdivide_Zdiv_eq_2 a b c : 0 < a -> (a | b) -> (c * b) / a = c * (b / a).
Theorem Zdivide_le: forall a b : Z, 0 <= a -> 0 < b -> (a | b) -> a <= b.
Theorem Zdivide_Zdiv_lt_pos a b : 1 < a -> 0 < b -> (a | b) -> 0 < b / a < b .
Lemma Zmod_div_mod n m a: 0 < n -> 0 < m -> (n | m) -> a mod n = (a mod m) mod n.
Lemma Zmod_divide_minus a b c: 0 < b -> a mod b = c -> (b | a - c).
Lemma Zdivide_mod_minus a b c: 0 <= c < b -> (b | a - c) -> a mod b = c.