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
  for f being finite array
  st 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 finite array;  assume
A1: for a st a in dom f & succ a in dom f holds f.succ a c< f.a;
    let a,b; assume
A2: a in dom f & b in dom f & a in b;
    consider c,d such that
A3: dom f = c\d by Def1;
    consider n being Nat such that
A4: c = d+^n by A2,A3,Th7;
    consider e1 being Ordinal such that
A5: a = d+^e1 & e1 in Segm n by A2,A3,A4,Th1;
    consider e2 being Ordinal such that
A6: b = d+^e2 & e2 in n by A2,A3,A4,Th1;
    reconsider e1,e2 as Nat by A5,A6;
    reconsider se1 = succ e1 as Element of NAT by ORDINAL1:def 12;
A7: succ a = d+^succ e1 by A5,ORDINAL2:28;
    e1 in e2 by A2,A5,A6,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
A8: 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
A9: P[ 0 ] by A1,A2;
A10: 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
A11:   Y(k+1) = succ Y(k) by ORDINAL2:28; then
A12:   Y(k) in Y(k+1) & a in succ a by ORDINAL1:6; then
A13:   Y(k) c= Y(k+1) & a c= succ a by ORDINAL1:def 2;
      succ a c= Y(k) by ORDINAL3:24; then
A14:   a c= Y(k) by A12,ORDINAL1:def 2;
      assume
A15:   P[k] & Y(k+1) in dom f; then
      Y(k) in dom f by A2,A13,A14,Th9; then
      f.Y(k) c< f.a & f.Y(k+1) c< f.Y(k) by A1,A11,A15;
      hence f.Y(k+1) c< f.a by XBOOLE_1:56;
    end;
A16: for k being Nat holds P[k] from NAT_1:sch 2(A9,A10);
    b = d+^(se1+^k) by A6,A8,CARD_2:36
    .= (succ a)+^k by A7,ORDINAL3:30;
    hence f.b c< f.a by A2,A16;
  end;
