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 Th88:
  seq is bounded & lim_sup seq = lim_inf seq iff seq is convergent
proof
  thus seq is bounded & lim_sup seq = lim_inf seq implies seq is convergent
  proof
    reconsider r= lower_bound superior_realsequence seq as Real;
    assume that
A1: seq is bounded and
A2: lim_sup seq = lim_inf seq;
A3: inferior_realsequence seq is bounded by A1,Th56;
A4: inferior_realsequence seq is non-decreasing by A1,Th50;
A5: superior_realsequence seq is non-increasing by A1,Th51;
A6: superior_realsequence seq is bounded by A1,Th56;
    for s st 0<s ex n st for m st n<=m holds |.seq.m-r.| < s
    proof
      let s such that
A7:   0 < s;
      consider k2 be Nat such that
A8:   (superior_realsequence seq).k2 < r + s by A6,A7,Th8;
      consider k1 be Nat such that
A9:   r - s < (inferior_realsequence seq).k1 by A2,A3,A7,Th7;
      reconsider k = max(k1,k2) as Nat by TARSKI:1;
      k2 <= k by XXREAL_0:25;
      then
A10:  (superior_realsequence seq).k <= (superior_realsequence seq).k2
      by A5,SEQM_3:8;
      k1 <= k by XXREAL_0:25;
      then
A11:  (inferior_realsequence seq).k1 <= (inferior_realsequence seq). k
      by A4,SEQM_3:6;
      ex n st for m st n<=m holds |.seq.m-r.| < s
      proof
        take k;
        let m;
        assume k <= m;
        then consider k3 being Nat such that
A12:    m = k + k3 by NAT_1:10;
        seq.m <= (superior_realsequence seq).k by A1,A12,Th41;
        then seq.m <= (superior_realsequence seq).k2 by A10,XXREAL_0:2;
        then
A13:    seq.m < r + s by A8,XXREAL_0:2;
        (inferior_realsequence seq).k <= seq.m by A1,A12,Th40;
        then (inferior_realsequence seq).k1 <= seq.m by A11,XXREAL_0:2;
        then r - s < seq.m by A9,XXREAL_0:2;
        hence thesis by A13,Th1;
      end;
      hence thesis;
    end;
    hence thesis by SEQ_2:def 6;
  end;
  assume
A14: seq is convergent;
  then consider r such that
A15: for p st 0 < p ex n st for m st n<=m holds |.seq.m-r.| < p by SEQ_2:def 6;
A16: seq is bounded by A14;
A17: for p st 0 < p ex n st r - p <= (inferior_realsequence seq).n & (
  superior_realsequence seq).n <= r + p
  proof
    let p;
    assume 0 < p;
    then consider n such that
A18: for m st n<=m holds |.seq.m-r.| < p by A15;
A19: for m st n<=m holds r - p <= seq.m & seq.m <= r + p
    proof
      let m;
      assume n<=m;
      then |.seq.m-r.| < p by A18;
      hence thesis by Th1;
    end;
    then for m st n<=m holds seq.m <= r + p;
    then
A20: (superior_realsequence seq).n <= r + p by A16,Th45;
    for m st n<=m holds r - p <= seq.m by A19;
    then r - p <= (inferior_realsequence seq).n by A16,Th43;
    hence thesis by A20;
  end;
A21: superior_realsequence seq is bounded & inferior_realsequence seq is
  bounded by A16,Th56;
A22: for p holds 0 < p implies r - p <= upper_bound inferior_realsequence seq &
 lower_bound
  superior_realsequence seq <= r + p
  proof
    let p;
    assume 0 < p;
    then consider n such that
A23: r - p <= (inferior_realsequence seq).n & (superior_realsequence
    seq).n <= r + p by A17;
    (inferior_realsequence seq).n <= upper_bound inferior_realsequence seq &
    lower_bound
    superior_realsequence seq <= (superior_realsequence seq).n by A21,Th7,Th8;
    hence thesis by A23,XXREAL_0:2;
  end;
  reconsider r as Real;
A24: for p holds 0 < p implies lower_bound superior_realsequence seq <= r + p
by A22;
  then
A25: lower_bound superior_realsequence seq <= r by XREAL_1:41;
  for p holds 0 < p implies r <= upper_bound inferior_realsequence seq + p
  proof
    let p;
    assume 0 < p;
    then r - p <= upper_bound inferior_realsequence seq by A22;
    hence thesis by XREAL_1:20;
  end;
  then
A26: r <= upper_bound inferior_realsequence seq by XREAL_1:41;
A27: upper_bound (inferior_realsequence seq) <=
lower_bound (superior_realsequence seq) by A14,Th55;
  lower_bound superior_realsequence seq <= r by A24,XREAL_1:41;
  then upper_bound inferior_realsequence seq <= r by A27,XXREAL_0:2;
  then r = upper_bound inferior_realsequence seq by A26,XXREAL_0:1;
  hence thesis by A14,A27,A25,XXREAL_0:1;
end;
