reserve x,y for set,
  n,m for Nat,
  r,s for Real;

theorem
  for R be non-increasing real-valued FinSequence, n holds
  R /^ n is non-increasing
proof
  let f be non-increasing real-valued FinSequence, n;
  set fn = f /^ n;
  now
    let m;
    assume that
A1: m in dom fn and
A2: m+1 in dom fn;
A3: m<=m+n by NAT_1:11;
    1<=m by A1,FINSEQ_3:25;
    then
A4: 1<=m+n by A3,XXREAL_0:2;
A5: 1<=m+n+1 by NAT_1:11;
A6: m+1<=len fn by A2,FINSEQ_3:25;
    set r = fn.m, s = fn.(m+1);
A7: m+1+n = m+n+1;
A8: m<=len fn by A1,FINSEQ_3:25;
    now
      per cases;
      case
A9:     n<=len f;
        then
A10:    len fn = len f - n by Def1;
        then m+n<=len f by A8,XREAL_1:19;
        then
A11:    m+n in dom f by A4,FINSEQ_3:25;
        m+n+1<=len f by A6,A7,A10,XREAL_1:19;
        then
A12:    m+n+1 in dom f by A5,FINSEQ_3:25;
        r = f.(m+n) & s = f.(m+n+1) by A1,A2,A7,A9,Def1;
        hence r>=s by A11,A12,Def3;
      end;
      case
        len f<n;
        then fn = <*>REAL by Def1;
        hence r>=s;
      end;
    end;
    hence r>=s;
  end;
  hence thesis;
end;
