Definition tearing_elem_fst (u : nat -> R) (v : R -> nat) (pen : enumeration R u v) (x : R)
  := exists n : nat, x = fst (proj1_sig (tearing_sequences u v pen n)).(* The limit of the first tearing sequence cannot be reached by u *)
Definition torn_number (u : nat -> R) (v : R -> nat) (pen : enumeration R u v) :
  {m : R | is_lub (tearing_elem_fst u v pen) m}.

(* Specifications: *)
Lemma torn_number_above_first_sequence (u : nat -> R) (v : R -> nat) (en : enumeration R u v) : forall n : nat, Rlt (fst (proj1_sig (tearing_sequences u v en n))) (proj1_sig (torn_number u v en)).
Lemma torn_number_below_second_sequence (u : nat -> R) (v : R -> nat) (en : enumeration R u v) : forall n : nat, Rlt (proj1_sig (torn_number u v en)) (snd (proj1_sig (tearing_sequences u v en n))).
Lemma limit_index_above_all_indices (u : nat -> R) (v : R -> nat) (en : enumeration R u v) : forall n : nat, v (fst (proj1_sig (tearing_sequences u v en (S n)))) < v (proj1_sig (torn_number u v en)).
Lemma first_indices_increasing (u : nat -> R) (v : R -> nat) (H : enumeration R u v) : forall n : nat, n <> 0 -> v (fst (proj1_sig (tearing_sequences u v H n))) < v (fst (proj1_sig (tearing_sequences u v H (S n)))).
Theorem R_uncountable : forall u : nat -> R, ~Bijective u.