(** * Division on nat *)

Definition Divides (n m : nat) : Prop := exists q : nat, m = n * q.

(* Specifications: *)
Lemma div_refl : forall a : nat, Divides a a.
Lemma div_trans : forall p q r : nat, Divides p q -> Divides q r -> Divides p r.
Lemma div_antisym : forall a b : nat, Divides a b -> Divides b a -> a = b.
Lemma div_le1 : forall n d : nat, Divides d (S n) -> d <= S n.
Lemma div_le : forall d n : nat, 0 < n -> Divides d n -> d <= n.