reserve n,m,k,k1,k2 for Nat;
reserve X for non empty Subset of ExtREAL;
reserve Y for non empty Subset of REAL;
reserve seq for ExtREAL_sequence;
reserve e1,e2 for ExtReal;
reserve rseq for Real_Sequence;

theorem Th18:
  lim_sup seq = lim_inf seq & lim_inf seq in REAL implies ex k st
  seq^\k is bounded
proof
  assume that
A1: lim_sup seq = lim_inf seq and
A2: lim_inf seq in REAL;
  reconsider a=lim_inf seq as Real by A2;
  set K1=a+1;
  ex k1 be Element of NAT st (superior_realsequence seq).k1 <= K1
  proof
    assume
A3: not ex k1 be Element of NAT st (superior_realsequence seq).k1 <= K1;
    now
      let x be ExtReal;
      assume x in rng (superior_realsequence seq);
      then ex n be object st n in dom (superior_realsequence seq) & x = (
      superior_realsequence seq).n by FUNCT_1:def 3;
      hence K1 <= x by A3;
    end;
    then K1 is LowerBound of rng superior_realsequence seq by XXREAL_2:def 2;
    then a+1 <= a by A1,XXREAL_2:def 4;
    hence contradiction by XREAL_1:29;
  end;
  then consider k1 be Element of NAT such that
A4: (superior_realsequence seq).k1 <= K1;
  set K2=a-1;
  ex k2 be Element of NAT st K2 <= (inferior_realsequence seq).k2
  proof
    assume
A5: not (ex k2 be Element of NAT st K2 <= (inferior_realsequence seq) .k2);
    now
      let x be ExtReal;
      assume x in rng (inferior_realsequence seq);
      then ex n be object st n in dom inferior_realsequence seq & x = (
      inferior_realsequence seq).n by FUNCT_1:def 3;
      hence x <= K2 by A5;
    end;
    then K2 is UpperBound of rng inferior_realsequence seq by XXREAL_2:def 1;
    then a <= a-1 by XXREAL_2:def 3;
    then a+0 < a-1+1 by XREAL_1:8;
    hence contradiction;
  end;
  then consider k2 be Element of NAT such that
A6: K2 <= (inferior_realsequence seq).k2;
  take k=max(k1,k2);
  k2<=k by XXREAL_0:25;
  then (inferior_realsequence seq).k2 <= (inferior_realsequence seq).k by Th7;
  then
A7: K2<=(inferior_realsequence seq).k by A6,XXREAL_0:2;
  k1<=k by XXREAL_0:25;
  then (superior_realsequence seq).k <= (superior_realsequence seq).k1 by Th7;
  then
A8: (superior_realsequence seq).k <= K1 by A4,XXREAL_0:2;
A9: for n be Element of NAT st k <=n holds seq.n <= K1 & K2 <= seq.n
  proof
    let n be Element of NAT;
A10: (inferior_realsequence seq).n <= seq.n by Th8;
    assume
A11: k <= n;
    then
    (superior_realsequence seq).n <= (superior_realsequence seq).k by Th7;
    then
A12: (superior_realsequence seq).n <= K1 by A8,XXREAL_0:2;
    (inferior_realsequence seq).k <= (inferior_realsequence seq).n by A11,Th7;
    then
A13: K2<= (inferior_realsequence seq).n by A7,XXREAL_0:2;
    seq.n <= (superior_realsequence seq).n by Th8;
    hence thesis by A12,A13,A10,XXREAL_0:2;
  end;
  now
    let x be ExtReal;
    assume x in rng (seq^\k);
    then consider n be object such that
A14: n in dom (seq^\k) and
A15: x=(seq^\k).n by FUNCT_1:def 3;
    reconsider n as Element of NAT by A14;
A16: k <= n+k by NAT_1:11;
    x=seq.(n+k) by A15,NAT_1:def 3;
    hence x <= K1 by A9,A16;
  end;
  then K1 is UpperBound of rng (seq^\k) by XXREAL_2:def 1;
  hence rng (seq^\k) is bounded_above by XXREAL_2:def 10;
  now
    let x be ExtReal;
    assume x in rng(seq^\k);
    then consider n be object such that
A17: n in dom(seq^\k) and
A18: x = (seq^\k).n by FUNCT_1:def 3;
    reconsider n as Element of NAT by A17;
A19: k <= n+k by NAT_1:11;
    x=seq.(n+k) by A18,NAT_1:def 3;
    hence K2 <= x by A9,A19;
  end;
  then K2 is LowerBound of rng (seq^\k) by XXREAL_2:def 2;
  hence rng (seq^\k) is bounded_below by XXREAL_2:def 9;
end;
