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 Th45:
  (g is nonnegative iff
    for gR st gR in the_RightOptions_of g holds gR is fuzzy or gR is positive)
  & (g is nonpositive iff
    for gL st gL in the_LeftOptions_of g holds gL is fuzzy or gL is negative)
proof
  defpred Good[ConwayGame] means
    ($1 is nonnegative iff for gR st gR in the_RightOptions_of $1
      holds gR is fuzzy or gR is positive)
    & ($1 is nonpositive iff for gL st gL in the_LeftOptions_of $1
      holds gL is fuzzy or gL is negative);

A1:
  for g st (for gO st gO in the_Options_of g holds Good[gO]) holds Good[g]
  proof
    let g;
    assume
A2:   for gO st gO in the_Options_of g holds Good[gO];
    hereby
      assume
A3:     g is nonnegative;
      let gR such that
A4:     gR in the_RightOptions_of g;
      consider gRL such that
A5:     gRL in the_LeftOptions_of gR & gRL is nonnegative
        by A3,A4,Th43;
      now
        gR in the_Options_of g by A4,XBOOLE_0:def 3;
        hence Good[gR] by A2;
        hereby
          take gRL;
          thus gRL in the_LeftOptions_of gR by A5;
          thus gRL is non fuzzy non negative by A5;
        end;
      end;
      then gR is non negative non zero;
      hence gR is fuzzy or gR is positive;
    end;
    hereby
      assume
A6:     for gR st gR in the_RightOptions_of g holds
          gR is fuzzy or gR is positive;
      now
        let gR;
        assume
A7:       gR in the_RightOptions_of g;
        now
          gR in the_Options_of g by A7,XBOOLE_0:def 3;
          hence Good[gR] by A2;
          gR is fuzzy or gR is positive by A6,A7;
          hence gR is non nonpositive;
        end;
        then consider gRL such that
A8:       gRL in the_LeftOptions_of gR & gRL is non fuzzy non negative;
        take gRL;
        thus gRL in the_LeftOptions_of gR & gRL is nonnegative by A8;
      end;
      hence g is nonnegative by Th43;
    end;
    hereby
      assume
A9:     g is nonpositive;
      let gL such that
A10:     gL in the_LeftOptions_of g;
      consider gLR such that
A11:     gLR in the_RightOptions_of gL & gLR is nonpositive
        by A9,A10,Th44;
      now
        gL in the_Options_of g by A10,XBOOLE_0:def 3;
        hence Good[gL] by A2;
        hereby
          take gLR;
          thus gLR in the_RightOptions_of gL by A11;
          thus gLR is non fuzzy non positive by A11;
        end;
      end;
      then gL is non positive non zero;
      hence gL is fuzzy or gL is negative;
    end;
    hereby
      assume
A12:     for gL st gL in the_LeftOptions_of g holds
          gL is fuzzy or gL is negative;
      now
        let gL;
        assume
A13:       gL in the_LeftOptions_of g;
        now
          gL in the_Options_of g by A13,XBOOLE_0:def 3;
          hence Good[gL] by A2;
          gL is fuzzy or gL is negative by A12,A13;
          hence gL is non nonnegative;
        end;
        then consider gLR such that
A14:       gLR in the_RightOptions_of gL & gLR is non fuzzy non positive;
        take gLR;
        thus gLR in the_RightOptions_of gL & gLR is nonpositive by A14;
      end;
      hence g is nonpositive by Th44;
    end;
  end;
  for g holds Good[g] from ConwayGameInd(A1);
  hence thesis;
end;
