(** Only [1] and [-1] divide [1]. *)
(** If [a] divides [b] and [b<>0] then [|a| <= |b|]. *)

(* Specifications: *)
Lemma Zdivide_bounds a b : (a | b) -> b <> 0 -> Z.abs a <= Z.abs b.
(** [Z.divide] can be expressed using [Z.modulo]. *)
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.
(** [Z.divide] is hence decidable *)
Lemma Zdivide_dec a b : {(a | b)} + {~ (a | b)}.
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.