deffunc H1( Sequence) -> set = { left-right(# x,y #) where x, y is Subset of (union (rng $1)) : verum } ;
defpred S1[ Sequence] means for beta being Ordinal st beta in dom $1 holds
$1 . beta = H1($1 | beta);
Lm1:
for f being Sequence st S1[f] holds
for alpha being Ordinal holds S1[f | alpha]
Lm2:
for g being ConwayGame ex f being ConwayGameChain st
( f . 1 = g & f . (len f) = g )
Lm3:
for g1 being ConwayGame
for f being Function holds
( { ((f | (the_proper_Tree_of g1)) . gR) where gR is Element of the_RightOptions_of g1 : the_RightOptions_of g1 <> {} } = { (f . gR) where gR is Element of the_RightOptions_of g1 : the_RightOptions_of g1 <> {} } & { ((f | (the_proper_Tree_of g1)) . gL) where gL is Element of the_LeftOptions_of g1 : the_LeftOptions_of g1 <> {} } = { (f . gL) where gL is Element of the_LeftOptions_of g1 : the_LeftOptions_of g1 <> {} } )
Lm4:
for g being ConwayGame
for f being Function st dom f = the_Tree_of g & ( for g1 being ConwayGame st g1 in dom f holds
f . g1 = left-right(# { (f . gR) where gR is Element of the_RightOptions_of g1 : the_RightOptions_of g1 <> {} } , { (f . gL) where gL is Element of the_LeftOptions_of g1 : the_LeftOptions_of g1 <> {} } #) ) holds
for g1 being ConwayGame st g1 in dom f holds
f . g1 = - g1