reserve x,y,y1,y2,z,e,s for set;
reserve alpha,beta,gamma for Ordinal;
reserve n,m,k for Nat;
reserve g,g0,g1,g2,gO,gL,gR,gLL,gLR,gRL,gRR for ConwayGame;

theorem Th21:
  for f being ConwayGameChain
    for n,m being Element of dom f st n < m holds
      ConwayRank(f.n) in ConwayRank(f.m)
proof
  let f be ConwayGameChain;
  let n,m be Element of dom f such that
A1: n < m;

  consider l being Nat such that
A2: dom f = Seg l by FINSEQ_1:def 2;

  defpred True[Nat] means
    m-$1 in dom f implies ConwayRank(f.(m-$1)) in ConwayRank(f.m);

  n >= 1 by A2,FINSEQ_1:1;
  then
A3: m > 1 by A1,XXREAL_0:2;

A4:
  True[1]
  proof
    assume m-1 in dom f;
    then reconsider m1 = m-1 as Element of dom f;
    f.m1 in the_Options_of f.m by A3,Def11;
    hence thesis by Th14;
  end;

A5:
  for k being non zero Nat st True[k] holds True[k+1]
  proof
    let k be non zero Nat;
    assume
A6:   True[k];
    assume m-(k+1) in dom f;
    then reconsider mk1 = m-(k+1) as Element of dom f;
    k <= k+1 by XREAL_1:31;
    then 1 <= mk1 & mk1 <= m-k & m-k <= m & m <= l
      by A2,FINSEQ_1:1,XREAL_1:10,43;
    then
A7:   1 <= m-k & m-k <= l by XXREAL_0:2;
    then m >= k+1 & k <= k+1 by XREAL_1:19,31;
    then m-k is Nat by NAT_1:21,XXREAL_0:2;
    then reconsider mk = m-k as Element of dom f by A7,A2,FINSEQ_1:1;

A8:  mk1 = mk-1;
    mk1 > 0;
    then mk1+1 > 1 by XREAL_1:29;
    then f.mk1 in the_Options_of f.mk by Def11,A8;
    then ConwayRank(f.mk1) in ConwayRank(f.mk)
      & ConwayRank(f.mk) in ConwayRank(f.m) by Th14,A6;
    hence thesis by ORDINAL1:10;
  end;

A9:
  for k being non zero Nat holds True[k] from NAT_1:sch 10(A4,A5);
  reconsider k = m-n as non zero Nat by A1,NAT_1:21;
  m-k = n;
  hence thesis by A9;
end;
