(**********)
Definition first (N : nat) :=
  match N_classic N with
  | inright p => match exist_first N p return nat with
                 | existT a b => a
                 end
  | _ => 0
  end.(**********)
Definition last (N : nat) :=
  match N_classic N with
  | inright p => match exist_last N p return nat with
                 | existT a b => a
                 end
  | _ => 0
  end.

Lemma P1 : forall n : nat, (0 <= frac_part_n_alpha n)%R.