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 Th40:
  for seq be ExtREAL_sequence holds seq is convergent iff lim_inf
  seq = lim_sup seq
proof
  let seq be ExtREAL_sequence;
  set a=lim_inf seq;
  thus seq is convergent implies lim_inf seq = lim_sup seq
  proof
    assume
A1: seq is convergent;
    per cases by A1,MESFUNC5:def 11;
    suppose
A2:   seq is convergent_to_finite_number;
      then consider k be Nat such that
A3:   seq^\k is bounded by Th19;
      reconsider rseq0=seq^\k as Real_Sequence by A3,Th11;
A4: k in NAT by ORDINAL1:def 12;
      seq^\k is convergent_to_finite_number by A2,Th20;
      then
A5:   rseq0 is convergent by Th15;
      then
A6:   rseq0 is bounded;
      then lim_sup rseq0 = lim_sup (seq^\k) by Th9;
      then
A7:   lim_sup rseq0 = lim_sup seq by Th28,A4;
      lim_inf rseq0 = lim_inf (seq^\k) by A6,Th10;
      then lim_inf rseq0 = lim_inf seq by Th29,A4;
      hence thesis by A5,A7,RINFSUP1:88;
    end;
    suppose
A8:   seq is convergent_to_-infty;
      now
        let g be Real;
        assume g < 0;
        then consider n be Nat such that
A9:     for m be Nat st n<=m holds seq.m <= g by A8,MESFUNC5:def 10;
        now
          let m be Nat;
A10:       (inferior_realsequence seq).m <= seq.m by Th8;
          assume n<=m;
          then seq.m <= g by A9;
          hence (inferior_realsequence seq).m <= g by A10,XXREAL_0:2;
        end;
        hence ex n be Nat st for m be Nat st n<=m holds (inferior_realsequence
        seq).m <= g;
      end;
      then
A11:  inferior_realsequence seq is convergent_to_-infty by MESFUNC5:def 10;
      then inferior_realsequence seq is convergent by MESFUNC5:def 11;
      then lim inferior_realsequence seq = -infty by A11,MESFUNC5:def 12;
      then
A12:  lim_inf seq =-infty by Th37;
A13:  superior_realsequence seq is convergent_to_-infty
      proof
        set iseq=superior_realsequence seq;
        assume not iseq is convergent_to_-infty;
        then consider g be Real such that
A14:    g < 0 and
A15:    for n be Nat ex m be Nat st n<=m & g < iseq.m by MESFUNC5:def 10;
        consider N be Nat such that
A16:    for m be Nat st N<=m holds seq.m <= g by A8,A14,MESFUNC5:def 10;
        now
          let m be Nat;
          consider Y being non empty Subset of ExtREAL such that
A17:      Y = {seq.k: m <= k} and
A18:      (superior_realsequence seq).m = sup Y by Def7;
          assume
A19:      N <= m;
          now
            let x be ExtReal;
            assume x in Y;
            then consider k be Nat such that
A20:        x=seq.k and
A21:        m <= k by A17;
            N <= k by A19,A21,XXREAL_0:2;
            hence x <= g by A16,A20;
          end;
          then g is UpperBound of Y by XXREAL_2:def 1;
          hence iseq.m <= g by A18,XXREAL_2:def 3;
        end;
        hence contradiction by A15;
      end;
      then superior_realsequence seq is convergent by MESFUNC5:def 11;
      then lim superior_realsequence seq = -infty by A13,MESFUNC5:def 12;
      hence thesis by A12,Th36;
    end;
    suppose
A22:  seq is convergent_to_+infty;
      now
        let g be Real;
        assume 0 < g;
        then consider n be Nat such that
A23:    for m be Nat st n<=m holds g <= seq.m by A22,MESFUNC5:def 9;
        now
          let m be Nat;
A24:      seq.m <= (superior_realsequence seq).m by Th8;
          assume n <= m;
          then g <= seq.m by A23;
          hence g <= (superior_realsequence seq).m by A24,XXREAL_0:2;
        end;
        hence ex n be Nat st for m be Nat st n<=m holds g <= (
        superior_realsequence seq).m;
      end;
      then
A25:  superior_realsequence seq is convergent_to_+infty by MESFUNC5:def 9;
      then superior_realsequence seq is convergent by MESFUNC5:def 11;
      then lim superior_realsequence seq = +infty by A25,MESFUNC5:def 12;
      then
A26:  lim_sup seq =+infty by Th36;
A27:  inferior_realsequence seq is convergent_to_+infty
      proof
        set iseq=inferior_realsequence seq;
        assume not iseq is convergent_to_+infty;
        then consider g be Real such that
A28:    0 < g and
A29:    for n be Nat ex m be Nat st n<=m & iseq.m < g by MESFUNC5:def 9;
        consider N be Nat such that
A30:    for m be Nat st N<=m holds g <= seq.m by A22,A28,MESFUNC5:def 9;
        now
          let m be Nat;
          consider Y being non empty Subset of ExtREAL such that
A31:      Y = {seq.k: m <= k} and
A32:      (inferior_realsequence seq).m = inf Y by Def6;
          assume
A33:      N <= m;
          now
            let x be ExtReal;
            assume x in Y;
            then consider k be Nat such that
A34:        x = seq.k and
A35:        m <= k by A31;
            N <= k by A33,A35,XXREAL_0:2;
            hence g <= x by A30,A34;
          end;
          then g is LowerBound of Y by XXREAL_2:def 2;
          hence g<=iseq.m by A32,XXREAL_2:def 4;
        end;
        hence contradiction by A29;
      end;
      then inferior_realsequence seq is convergent by MESFUNC5:def 11;
      then lim inferior_realsequence seq = +infty by A27,MESFUNC5:def 12;
      hence thesis by A26,Th37;
    end;
  end;
  assume
A36: lim_inf seq = lim_sup seq;
  per cases by XXREAL_0:14;
  suppose
    a in REAL;
    hence thesis by A36,Lm7;
  end;
  suppose
    a = +infty;
    hence thesis by A36,Lm5;
  end;
  suppose
    a = -infty;
    hence thesis by A36,Lm6;
  end;
end;
