Parameter alpha : R.(*********************************************************)

Axiom prop_alpha : (0 < alpha)%R /\ (alpha < 1)%R.(*********************************************************)
(*           first and last                              *)
(*********************************************************)

(**********)
Definition frac_part_n_alpha (n : nat) : R := frac_part (INR n * alpha).(**********)
Definition ordre_total (n m : nat) :=
  (0 < alpha)%R /\ (alpha < 1)%R ->
  (frac_part_n_alpha n <= frac_part_n_alpha m)%R.

(* Specifications: *)
Lemma N_classic : forall N : nat, {N = 0} + {N = 1} + {N >= 2}.
Lemma tech_total_order : forall n : nat, ordre_total n n.
Lemma exist_first : forall N : nat, N >= 2 -> sigT (fun n : nat => 0 < n /\ n < N /\ (forall m : nat, 0 < m /\ m < N -> ordre_total n m)).
Lemma exist_last : forall N : nat, N >= 2 -> sigT (fun n : nat => 0 < n /\ n < N /\ (forall m : nat, 0 < m /\ m < N -> ordre_total m n)).