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
  for s being set st g in s & for g1 st g1 in s holds the_Options_of g1 c= s
    holds the_Tree_of g c= s
proof
  let s be set such that
A1: g in s & for g1 st g1 in s holds the_Options_of g1 c= s;
  hereby
    let z be object;
    assume z in the_Tree_of g;
    then consider f being ConwayGameChain such that
A2:   f.1 = z & f.(len f) = g by Def12;

    defpred OK[Nat] means $1+1 <= len f & f.($1+1) in s;
    len f > 0;
    then reconsider m = len f - 1 as Nat by NAT_1:20;
    OK[m] by A2,A1;
    then
A3:   ex k st OK[k];

A4: for k st k <> 0 & OK[k] ex n st n < k & OK[n]
    proof
      let k;
      assume
A5:     k <> 0 & OK[k];
      then reconsider m = k-1 as Nat by NAT_1:20;

      take m;
      thus m < k by XREAL_1:147;
      then m+1 < k+1 by XREAL_1:6;
      hence m+1 <= len f by A5,XXREAL_0:2;

A6:   k+1 > 1 by A5,XREAL_1:29;
      then reconsider k1 = k+1 as Element of dom f by A5,FINSEQ_3:25;
      f.(k1-1) in the_Options_of f.k1 & the_Options_of f.k1 c= s
        by Def11,A1,A5,A6;
      hence f.(m+1) in s;
    end;

    OK[0] from NAT_1:sch 7(A3,A4);
    hence z in s by A2;
  end;
end;
