reserve x for set;
reserve a, b, c for Real;
reserve m, n, m1, m2 for Nat;
reserve k, l for Integer;
reserve p, q for Rational;
reserve s1, s2 for Real_Sequence;
reserve r, u for Real,
  k for Nat;

theorem
  r>0 & u > 0 implies ex k be Nat st u/(2 |^ k) <= r
proof
  defpred P[Nat] means $1 <= 2 |^ $1;
  assume that
A1: r>0 and
A2: u>0;
  set t = 1/r;
  reconsider t as Real;
  consider n such that
A3: (u * t) < n by SEQ_4:3;
A4: 0 < u * t by A1,A2;
  then
A5: u/(u * t) > u/n by A2,A3,XREAL_1:76;
A6: for k be Nat st P[k] holds P[k + 1]
  proof
    let k be Nat;
    assume k <= 2 |^ k;
    then
A7: (2 |^ k) + 1 >= k + 1 by XREAL_1:7;
    2 |^ k >= 1 by Th11;
    then
A8: 2 |^ k + 2 |^ k >= 2 |^ k + 1 by XREAL_1:7;
    2 |^ (k + 1) = (2 |^ k) * (2 |^ 1) by NEWTON:8
      .= (2 |^ k) * 2
      .= 2 |^ k + 2 |^ k;
    hence thesis by A8,A7,XXREAL_0:2;
  end;
  take n;
A9: r = 1/t .= (u * 1) / (u * t) by A2,XCMPLX_1:91
    .= u/(u * t);
A10: P[0];
  for k be Nat holds P[k] from NAT_1:sch 2(A10,A6);
  then u/n >= u/(2 |^ n) by A2,A3,A4,XREAL_1:118;
  hence thesis by A9,A5,XXREAL_0:2;
end;
