reserve p,q,r for FinSequence;
reserve u,v,x,y,y1,y2,z for object, A,D,X,Y for set;
reserve i,j,k,l,m,n for Nat;
reserve J for Nat;
reserve n for Nat;
reserve x,y,y1,y2,z,a,b for object, X,Y,Z,V1,V2 for set,
  f,g,h,h9,f1,f2 for Function,
  i for Nat,
  P for Permutation of X,
  D,D1,D2,D3 for non empty set,
  d1 for Element of D1,
  d2 for Element of D2,
  d3 for Element of D3;

theorem
  for X being set st X is included_in_Seg holds
  for m,n being Element of NAT st m in dom Sgm X & n = (Sgm X).m holds m <= n
proof
  let X be set;
  defpred P[Nat] means ($1 in dom Sgm X & (ex n being Element of NAT st n=(
  Sgm X).$1 & $1 <= n)) or (not $1 in dom Sgm X);
  assume
A1: X is included_in_Seg;
  now
    let x be non zero Nat;
    assume
A2: P[x];
    now
      per cases by A2;
      suppose
A3:     x in dom (Sgm X) & ex n being Element of NAT st n = (Sgm X).x & x <= n;
A4:     x+0 < x+1 by XREAL_1:8;
        consider n being Element of NAT such that
A5:     n = Sgm(X).x and
A6:     x <= n by A3;
A7:     1 <= x by A3,Th25;
        now
          set n1 = (Sgm X).(x+1);
          assume
A8:       x+1 in dom Sgm X;
          then (Sgm X).(x+1) in rng Sgm X by FUNCT_1:3;
          then reconsider n1 as Element of NAT;
          take n1;
          thus n1 = (Sgm X).(x+1);
          x+1 <= len Sgm X by A8,Th25;
          then n < n1 by A1,A7,A4,A5,FINSEQ_1:def 14;
          then x < n1 by A6,XXREAL_0:2;
          hence x+1 <= n1 by NAT_1:13;
        end;
        hence P[x+1];
      end;
      suppose
        not x in dom (Sgm X);
        then x < 0+1 or x > len Sgm X by Th25;
        then x+1 > len Sgm X + 0 by NAT_1:13;
        hence P[x+1] by Th25;
      end;
    end;
    hence P[x+1];
  end;
  then
A9: for x being non zero Nat st P[x] holds P[x+1];
  let m, n be Element of NAT;
  assume that
A10: m in dom (Sgm X) and
A11: n = (Sgm X).m;
  reconsider m9=m as non zero Element of NAT by A10,Th25;
  now
    set n = (Sgm X).1;
A12: m <= len (Sgm X) by A10,Th25;
    1 <= m by A10,Th25;
    then 1 <= len (Sgm X) by A12,XXREAL_0:2;
    hence 1 in dom (Sgm X) by Th25;
    then
A13: (Sgm X).1 in rng (Sgm X) by FUNCT_1:3;
    then reconsider n as Element of NAT;
    take n;
    thus n = (Sgm X).1;
A15: ex k being Nat st X c= Seg k by A1,FINSEQ_1:def 13;
    rng (Sgm X) = X by A1,FINSEQ_1:def 14;
    hence 1 <= n by A13,A15,FINSEQ_1:1;
  end;
  then
A14: P[1];
  for x being non zero Nat holds P[x] from NAT_1:sch 10(A14,A9);
  then P[m9];
  hence thesis by A10,A11;
end;
