reserve a,a1,a2,b,c,d for Ordinal,
  n,m,k for Nat,
  x,y,z,t,X,Y,Z for set;
reserve f,g for Function;
reserve A,B,C for array;

theorem Th26:
  for f being array st len-f = omega &
     for a st a in dom f & succ a in dom f holds f.succ a c< f.a
  holds f is descending
  proof
    let f be array; assume
A1: len-f = omega; assume
A2: for a st a in dom f & succ a in dom f holds f.succ a c< f.a;
    let a,b; assume
A3: a in dom f & b in dom f & a in b;
    consider c,d such that
A4: dom f = c\d by Def1;
    f is non empty by A3; then
A5: base-f = d & limit-f = c by A4,Th23;
    d c= a & a in c by A3,A4,ORDINAL6:5; then
    d in c by ORDINAL1:12; then
    d c= c by ORDINAL1:def 2; then
A6: c = d+^omega by A5,A1,ORDINAL3:def 5;
    consider e1 being Ordinal such that
A7: a = d+^e1 & e1 in omega by A3,A4,A6,Th1;
    consider e2 being Ordinal such that
A8: b = d+^e2 & e2 in omega by A3,A4,A6,Th1;
    reconsider e1,e2 as Nat by A7,A8;
    reconsider se1 = succ e1 as Element of NAT by ORDINAL1:def 12;
A9: succ a = d+^succ e1 by A7,ORDINAL2:28;
    e1 in e2 by A3,A7,A8,ORDINAL3:22; then
    Segm succ e1 c= Segm e2 by ORDINAL1:21; then
    succ e1 <= e2 by NAT_1:39; then
    consider k being Nat such that
A10: e2 = se1+k by NAT_1:10;
    reconsider k as Element of NAT by ORDINAL1:def 12;
    deffunc Y(Ordinal) = (succ a)+^$1;
    defpred P[Nat] means Y($1) in dom f implies f.Y($1) c< f.a;
    Y(0) = succ a by ORDINAL2:27; then
A11: P[ 0 ] by A2,A3;
A12: for k being Nat st P[k] holds P[k+1]
    proof let k be Nat;
      Segm(k+1) = succ Segm k by NAT_1:38; then
A13:   Y(k+1) = succ Y(k) by ORDINAL2:28; then
A14:   Y(k) in Y(k+1) & a in succ a by ORDINAL1:6; then
A15:   Y(k) c= Y(k+1) & a c= succ a by ORDINAL1:def 2;
      succ a c= Y(k) by ORDINAL3:24; then
A16:   a c= Y(k) by A14,ORDINAL1:def 2;
      assume
A17:   P[k] & Y(k+1) in dom f; then
      Y(k) in dom f by A3,A15,A16,Th9; then
      f.Y(k) c< f.a & f.Y(k+1) c< f.Y(k) by A2,A13,A17;
      hence f.Y(k+1) c< f.a by XBOOLE_1:56;
    end;
A18: for k being Nat holds P[k] from NAT_1:sch 2(A11,A12);
    b = d+^(se1+^k) by A8,A10,CARD_2:36
    .= (succ a)+^k by A9,ORDINAL3:30;
    hence f.b c< f.a by A3,A18;
  end;
