(* Specifications: *)
Lemma div_fact : forall p k : nat, prime p -> 0 < k -> divides p (factorial k) -> exists j : nat, 0 < j /\ j <= k /\ divides p j.
Lemma p_div_bin : forall k p : nat, prime p -> 0 < k -> k < p -> divides p (binomial p k).
Lemma Fermat1 : forall x p : nat, prime p -> congruent p (power (x + 1) p) (power x p + 1).
Lemma Fermat2 : forall x p : nat, prime p -> congruent p (power x p) x.
Theorem Fermat : forall x p : nat, prime p -> ~ divides p x -> congruent p (power x (p - 1)) 1.
Theorem lt_mult_right : forall x y z t : nat, x < z -> y < t -> x * y < z * t.
Theorem le_mult_right : forall x y : nat, 0 < y -> x <= x * y.