(* The property of a  number to divide another one 
     (Ndivides n m) shoud be read as m divides n *)
 
Definition Zdivides (n m : Z) := exists q : Z, n = (m * q)%Z.

(* Specifications: *)
Theorem ZdividesZquotient : forall n m : Z, m <> 0%Z -> Zdivides n m -> n = (Zquotient n m * m)%Z.
Theorem ZdividesZquotientInv : forall n m : Z, n = (Zquotient n m * m)%Z -> Zdivides n m.
Theorem ZdividesMult : forall n m p : Z, Zdivides n m -> Zdivides (p * n) (p * m).
Theorem Zeq_mult_simpl : forall a b c : Z, c <> 0%Z -> (a * c)%Z = (b * c)%Z -> a = b.
Theorem ZdividesDiv : forall n m p : Z, p <> 0%Z -> Zdivides (p * n) (p * m) -> Zdivides n m.