reserve n,m,k,k1,k2 for Nat;
reserve r,r1,r2,s,t,p for Real;
reserve seq,seq1,seq2 for Real_Sequence;
reserve x,y for set;

theorem Th7:
  seq is bounded_above implies ( r = upper_bound seq iff (for n holds seq.n
  <= r) & for s st 0<s holds ex k st r-s < seq.k )
proof
  set R = rng seq;
  assume seq is bounded_above;
  then
A1: rng seq is bounded_above by Th5;
A2: rng seq <> {} by RELAT_1:41;
A3: (for n holds seq.n <= r) & (for s st 0<s holds ex k st r-s<seq.k)
  implies r = upper_bound seq
  proof
    assume that
A4: for n holds seq.n <= r and
A5: for s st 0<s holds ex k st r-s<seq.k;
A6: now
      let s;
      assume 0<s;
      then consider k such that
A7:   r-s< seq.k by A5;
A8:   k in NAT by ORDINAL1:def 12;
      consider r2 such that
A9:   r2 in R & r2 = seq.k by FUNCT_2:4,A8;
      take r2;
      thus r2 in R & r-s < r2 by A7,A9;
    end;
    now
      let r1;
      assume r1 in R;
      then ex n being object st n in dom seq & seq.n = r1 by FUNCT_1:def 3;
      hence r1 <= r by A4;
    end;
    hence thesis by A1,A2,A6,SEQ_4:def 1;
  end;
  r = upper_bound seq implies (for n holds seq.n <= r) &
  for s st 0<s holds ex k
  st r-s<seq.k
  proof
    assume
A10: r = upper_bound seq;
A11: now
      let s;
      assume 0<s;
      then consider r2 such that
A12:  r2 in R and
A13:  r-s<r2 by A1,A2,A10,SEQ_4:def 1;
      consider k being Nat such that
A14:  r2 = seq.k by A12,SETLIM_1:4;
       reconsider k as Nat;
      take k;
      thus r-s < seq.k by A13,A14;
    end;
    now
      let n;
A15:   n in NAT by ORDINAL1:def 12;
      seq.n in R by FUNCT_2:4,A15;
      hence seq.n <= r by A1,A10,SEQ_4:def 1;
    end;
    hence thesis by A11;
  end;
  hence thesis by A3;
end;
