reserve A,B,C for Ordinal,
        o for object,
        x,y,z,t,r,l for Surreal,
        X,Y for set;

theorem Th29:
  x + y = y + x
proof
  defpred P[Ordinal] means
  for x,y be Surreal st born x (+) born y c= $1 holds x + y = y + x;
  A1: for D be Ordinal st for C be Ordinal st C in D holds P[C] holds P[D]
  proof
    let D be Ordinal such that A2: for C be Ordinal st C in D holds P[C];
    A3: for x,y be Surreal st born x (+) born y c= D
    for X,Y be surreal-membered set
    st (X c= L_x\/R_x & Y={y}) or (Y c= L_y\/R_y & X={x})
    holds X ++ Y c= Y ++ X
    proof
      let x,y be Surreal such that A4: born x (+) born y c= D;
      let X,Y be surreal-membered set such that
      A5:(X c= L_x\/R_x & Y={y}) or (Y c= L_y\/R_y & X={x});
      let a be object;
      assume a in X++Y;
      then consider x1,y1 be Surreal such that
      A6: x1 in X & y1 in Y & a=x1+y1 by Def8;
      (born x1 in born x & born y1 = born y) or
      (born x1=born x & born y1 in born y) by SURREALO:1,A5,A6,TARSKI:def 1;
      then born x1 (+) born y1 in born x(+) born y by ORDINAL7:94;
      then x1+y1 = y1+x1 by A2,A4;
      hence thesis by A6,Def8;
    end;
    let x,y be Surreal such that A7: born x (+) born y c= D;
    L_x c= L_x\/R_x by XBOOLE_1:7;
    then L_x ++ {y} c= {y}++L_x c= L_x ++ {y} by A7,A3;
    then A8: L_x ++ {y} = {y}++L_x by XBOOLE_0:def 10;
    R_x c= L_x\/R_x by XBOOLE_1:7;
    then R_x ++ {y} c= {y}++R_x c= R_x ++ {y} by A7,A3;
    then A9: R_x ++ {y} = {y}++R_x by XBOOLE_0:def 10;
    L_y c= L_y\/R_y by XBOOLE_1:7;
    then L_y ++ {x} c= {x}++L_y c= L_y ++ {x} by A7,A3;
    then A10: L_y ++ {x} = {x}++L_y by XBOOLE_0:def 10;
    R_y c= L_y\/R_y by XBOOLE_1:7;
    then A11:R_y ++ {x} c= {x}++R_y c= R_y ++ {x} by A7,A3;
    thus x + y = [(L_x ++ {y})\/({x}++L_y), (R_x ++ {y}) \/({x}++R_y)] by Th28
    .= [({y} ++ L_x)\/(L_y++{x}), ({y}++R_x) \/(R_y++{x})]
    by A8,A9,A10,A11,XBOOLE_0:def 10
    .= y+x by Th28;
  end;
  for D be Ordinal holds P[D] from ORDINAL1:sch 2(A1);
  hence thesis;
end;
