Section theoreme.
Hypothesis alpha_irr : forall n p : Z, (alpha * IZR p)%R <> IZR n.
Hypothesis prop_alpha : (0 < alpha)%R /\ (alpha < 1)%R.
Hypothesis prop_N : forall N : nat, N >= 2.
intros;
generalize (Rminus_diag_eq (frac_part_n_alpha n) (frac_part_n_alpha m) H);
unfold frac_part_n_alpha in |- *;
elim (Rminus_fp1 (INR n * alpha) (INR m * alpha)).
unfold Rminus in |- *; rewrite <- Ropp_mult_distr_l_reverse;
rewrite (Rmult_comm (INR n) alpha); rewrite (Rmult_comm (- INR m) alpha);
rewrite <- Rmult_plus_distr_l; intro;
elim (fp_nat (alpha * (INR n + - INR m)) H0); intros;
fold (INR n - INR m)%R in H1; rewrite (INR_IZR_INZ n) in H1;
rewrite (INR_IZR_INZ m) in H1;
rewrite (Z_R_minus (Z_of_nat n) (Z_of_nat m)) in H1;
generalize (alpha_irr x (Z_of_nat n - Z_of_nat m));
intro; elimtype False; auto.
unfold Rge in |- *; auto.
Qed.

(**********)
Lemma fp_first_R0 : forall N : nat, (frac_part_n_alpha (first N) > 0)%R.