reserve A,B for Ordinal,
        o for object,
        x,y,z for Surreal,
        n for Nat,
        r,r1,r2 for Real;

theorem Th27:
  (No_omega^ x) * (No_omega^ y) == No_omega^ (x+y)
proof
  defpred P[Ordinal] means for x,y be Surreal st born x (+) born y = $1 holds
    (No_omega^ x) * (No_omega^ y) == No_omega^ (x+y);
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];
    let x,y be Surreal such that
A3: born x (+) born y = D;
    set Nx = No_omega^ x,Ny=No_omega^ y,xy=x+y,Nxy = No_omega^ xy;
A4: Nx*Ny =[comp(L_ Nx,Nx,Ny,L_Ny) \/ comp(R_Nx,Nx,Ny,R_Ny),
    comp(L_Nx,Nx,Ny,R_Ny) \/ comp(R_Nx,Nx,Ny,L_Ny)]
    by SURREALR:50;
A5: x + y = [(L_x ++ {y})\/({x} ++ L_y), (R_x ++ {y}) \/({x} ++ R_y)]
    by SURREALR:28;
A6: for a be Surreal st a in L_(Nx*Ny)
    ex b be Surreal st b in L_Nxy & a <= b
    proof
      let a be Surreal such that
A7:   a in L_(Nx*Ny);
      per cases by A7,A4,XBOOLE_0:def 3;
      suppose a in comp(R_Nx,Nx,Ny,R_Ny);
        then consider x1,y1 be Surreal such that
A8:     a = x1*Ny + Nx*y1 - x1*y1 & x1 in R_Nx & y1 in R_Ny
        by SURREALR:def 15;
        consider xL be Surreal, r be positive Real such that
A9:     xL in R_x & x1 = (No_omega^ xL) * uReal.r by A8,Th23;
        consider yL be Surreal, s be positive Real such that
A10:    yL in R_y & y1 = (No_omega^ yL) * uReal.s by A8,Th23;
A11:    0_No < y1 by A10,SURREALI:def 8;
A12:    0_No < x1 by A9,SURREALI:def 8;
        set H=uReal.(1/2);
        1/2+1/2=1;
        then (x1*y1) *H + (x1*y1)*H == (x1*y1) *(H + H) ==
          (x1*y1)* 1_No = x1*y1
        by SURREALN:55,48,SURREALR:51,67;
        then
A13:    (x1*y1) *H + (x1*y1)*H == x1*y1 by SURREALO:4;
        x in {x} << R_x by TARSKI:def 1,SURREALO:11;
        then Nx infinitely< No_omega^ xL by A9,Th25;
        then Nx infinitely< x1 by A9,Th13;
        then Nx infinitely< H*x1 by Th13;
        then Nx < H*x1 by Th9;
        then Nx*y1 <= H *x1*y1 == H*(x1*y1) by SURREALR:70,A11,SURREALR:69;
        then
A14:    Nx*y1 <= H*(x1*y1) by SURREALO:4;
        y in {y} << R_y by TARSKI:def 1,SURREALO:11;
        then Ny infinitely< No_omega^ yL by A10,Th25;
        then Ny infinitely< y1 by Th13,A10;
        then Ny infinitely< H*y1 by Th13;
        then Ny < H*y1 by Th9;
        then Ny*x1 <= H*y1*x1 == H*(x1*y1) by SURREALR:70,A12,SURREALR:69;
        then Ny*x1 <= H*(x1*y1) by SURREALO:4;
        then Nx*y1 + Ny*x1 <= H*(x1*y1) + H*(x1*y1) by SURREALR:43,A14;
        then Nx*y1 + Ny*x1 <= x1*y1 by A13,SURREALO:4;
        then a <= 0_No in L_Nxy by A8,Th22,SURREALR:45;
        hence thesis;
      end;
      suppose a in comp(L_ Nx,Nx,Ny,L_Ny);
        then consider x1,y1 be Surreal such that
A15:    a = x1*Ny + Nx*y1 - x1*y1 & x1 in L_Nx & y1 in L_Ny
        by SURREALR:def 15;
        per cases by A15,Th22;
        suppose
A16:      x1 = 0_No;
          per cases by A15,Th22;
          suppose y1 = 0_No;
            then a in L_Nxy by Th22,A16,A15;
            hence thesis;
          end;
          suppose ex yL be Surreal, s be positive Real st
            yL in L_y & y1 = (No_omega^ yL) * uReal.s;
            then consider yL be Surreal, s be positive Real such that
A17:        yL in L_y & y1 = (No_omega^ yL) * uReal.s;
            yL in L_y\/R_y by A17,XBOOLE_0:def 3;
            then
A18:        born x (+) born yL in born x (+) born y
            by ORDINAL7:94,SURREALO:1;
A19:        a == (Nx*(No_omega^ yL)) * uReal.s ==
            No_omega^ (x+yL) * uReal.s
            by A17,A18,A3,A2,SURREALR:69,SURREALR:54,A15,A16;
            x in {x} by TARSKI:def 1;
            then x+yL in {x} ++ L_y by A17,SURREALR:def 8;
            then x+yL in L_xy by A5,XBOOLE_0:def 3;
            then No_omega^ (x+yL) * uReal.s in L_Nxy by Th22;
            hence thesis by A19,SURREALO:9;
          end;
        end;
        suppose ex xL be Surreal, r be positive Real st
          xL in L_x & x1 = (No_omega^ xL) * uReal.r;
          then consider xL be Surreal, r be positive Real such that
A20:      xL in L_x & x1 = (No_omega^ xL) * uReal.r;
A21:      xL in L_x\/R_x by A20,XBOOLE_0:def 3;
          then born xL in born x by SURREALO:1;
          then
A22:      (No_omega^ xL) * (No_omega^ y) == No_omega^ (xL+y)
          by A3,A2,ORDINAL7:94;
A23:      uReal.r* (No_omega^ xL) * Ny ==
          uReal.r* ((No_omega^ xL) * Ny) == uReal.r * No_omega^ (xL+y)
          by A22,SURREALR:69,SURREALR:54;
          then
A24:      uReal.r* (No_omega^ xL) * Ny == uReal.r * No_omega^ (xL+y)
          by SURREALO:9;
          per cases by A15,Th22;
          suppose
A25:        y1 = 0_No;
            y in {y} by TARSKI:def 1;
            then xL+y in L_x ++ {y} by A20,SURREALR:def 8;
            then xL+y in L_xy by A5,XBOOLE_0:def 3;
            then No_omega^ (xL+y) * uReal.r in L_Nxy by Th22;
            hence thesis by A20,A23,SURREALO:9,A15,A25;
          end;
          suppose ex yL be Surreal, s be positive Real st
            yL in L_y & y1 = (No_omega^ yL) * uReal.s;
            then consider yL be Surreal, s be positive Real such that
A26:        yL in L_y & y1 = (No_omega^ yL) * uReal.s;
            yL in L_y\/R_y by A26,XBOOLE_0:def 3;
            then born xL (+) born yL in  born x (+) born yL
            in born x (+) born y by A21,SURREALO:1,ORDINAL7:94;
            then Nx*y1 == Nx * (No_omega^ yL) * uReal.s
            == No_omega^ (x+yL) * uReal.s
            by A3,A2,A26,SURREALR:69,SURREALR:54;
            then
A27:        Nx*y1 == No_omega^ (x+yL) * uReal.s by SURREALO:9;
A28:        - x1*y1 <= - 0_No = 0_No
            by A20,A26,SURREALI:def 8,SURREALR:10;
            x in {x} by TARSKI:def 1;
            then x+yL in {x} ++ L_y by A26,SURREALR:def 8;
            then
A29:        x+yL in L_xy by A5,XBOOLE_0:def 3;
            y in {y} by TARSKI:def 1;
            then xL+y in L_x ++ {y} by A20,SURREALR:def 8;
            then
A30:        xL+y in L_xy by A5,XBOOLE_0:def 3;
            per cases;
            suppose xL+y <= x+yL;
              then
A31:          No_omega^ (xL+y) <= No_omega^ (x+yL) by Lm5;
              0_No <= uReal.r by SURREALI:def 8;
              then No_omega^ (xL+y)* uReal.r <= No_omega^ (x+yL) *uReal.r
              by A31,SURREALR:75;
              then x1 * Ny <= No_omega^ (x+yL) *uReal.r by A20,A24,SURREALO:4;
              then x1 * Ny +Nx*y1 <=
                 No_omega^ (x+yL) *uReal.r +No_omega^ (x+yL) * uReal.s
                 == No_omega^ (x+yL)*(uReal.r + uReal.s)
              by A27,SURREALR:43,67;
              then x1 * Ny +Nx*y1 <= No_omega^ (x+yL)*(uReal.r + uReal.s)
              by SURREALO:4;
              then
A32:          x1 * Ny +Nx*y1 + - x1*y1 <=
                No_omega^ (x+yL)*(uReal.r + uReal.s) +0_No
                = No_omega^ (x+yL)*(uReal.r + uReal.s)
              by A28,SURREALR:43;
A33:          No_omega^ (x+yL)*(uReal.r + uReal.s)
              == No_omega^ (x+yL)*uReal.(r + s)
              by SURREALR:54,SURREALN:55;
              No_omega^ (x+yL)*uReal.(r + s) in L_Nxy by A29,Th22;
              hence thesis by A33,A32,A15,SURREALO:4;
            end;
            suppose x+yL <= xL+y;
              then
A34:          No_omega^ (x+yL) <= No_omega^ (xL+y) by Lm5;
              0_No <= uReal.s by SURREALI:def 8;
              then No_omega^ (x+yL)* uReal.s <= No_omega^ (xL+y) *uReal.s
              by A34,SURREALR:75;
              then Nx * y1 <= No_omega^ (xL+y) *uReal.s by A27,SURREALO:4;
              then x1 * Ny +Nx*y1 <= No_omega^ (xL+y) *uReal.r +
              No_omega^ (xL+y) * uReal.s
              == No_omega^ (xL+y)*(uReal.r + uReal.s)
              by A20,A24,SURREALR:43,67;
              then x1 * Ny +Nx*y1 <= No_omega^ (xL+y)*(uReal.r + uReal.s)
              by SURREALO:4;
              then
A35:          x1 * Ny +Nx*y1 + - x1*y1
              <= No_omega^ (xL+y)*(uReal.r + uReal.s) +0_No
              = No_omega^ (xL+y)*(uReal.r + uReal.s)
              by A28,SURREALR:43;
A36:          No_omega^ (xL+y)*(uReal.r + uReal.s) ==
              No_omega^ (xL+y)*uReal.(r + s)
              by SURREALR:54,SURREALN:55;
              take Y2=No_omega^ (xL+y)*uReal.(r + s);
              thus thesis by A36,A30,Th22,A35,A15,SURREALO:4;
            end;
          end;
        end;
      end;
    end;
A37:for a be Surreal st a in R_Nxy
    ex b be Surreal st b in R_(Nx*Ny) & b <= a
    proof
      let a be Surreal such that A38:a in R_Nxy;
      consider xR be Surreal, r be positive Real such that
A39:  xR in R_xy & a = (No_omega^ xR) * uReal.r by A38,Th23;
      per cases by A39,A5,XBOOLE_0:def 3;
      suppose xR in R_x ++ {y};
        then consider x1,y1 be Surreal such that
A40:    x1 in R_x & y1 in {y} & xR = x1 + y1 by SURREALR:def 8;
        set R = (No_omega^ x1) * uReal.r;
        set A = R*Ny + Nx*0_No - R*0_No;
A41:    R in R_Nx by A40,Th23;
        0_No in L_Ny by Th22;
        then A in comp(R_Nx,Nx,Ny,L_Ny) by A41,SURREALR:def 15;
        then
A42:    A in R_(Nx*Ny) by XBOOLE_0:def 3,A4;
A43:    a = (No_omega^ (x1+y)) * uReal.r by A39,A40,TARSKI:def 1;
        x1 in L_x\/R_x by A40,XBOOLE_0:def 3;
        then born x1 (+) born y in born x (+) born y
        by ORDINAL7:94,SURREALO:1;
        then a == (No_omega^ y) * (No_omega^ x1) * uReal.r
        == (No_omega^ y) * ((No_omega^ x1) * uReal.r)
        by A3,A2,SURREALR:54,A43,SURREALR:69;
        hence thesis by A42,SURREALO:4;
      end;
      suppose xR in {x} ++ R_y;
        then consider x1,y1 be Surreal such that
A44:    x1 in {x} & y1 in R_y & xR = x1 + y1 by SURREALR:def 8;
        set R = (No_omega^ y1) * uReal.r;
        set A = 0_No*Ny + Nx*R - 0_No*R;
A45:    R in R_Ny by A44,Th23;
        0_No in L_Nx by Th22;
        then A in comp(L_Nx,Nx,Ny,R_Ny) by A45,SURREALR:def 15;
        then
A46:    A in R_(Nx*Ny) by XBOOLE_0:def 3,A4;
A47:    a = (No_omega^ (x+y1)) * uReal.r by A39,A44,TARSKI:def 1;
        y1 in L_y\/R_y by A44,XBOOLE_0:def 3;
        then born x (+) born y1 in born x (+) born y
        by ORDINAL7:94,SURREALO:1;
        then a == (No_omega^ x) * (No_omega^ y1) * uReal.r
        == (No_omega^ x) * ((No_omega^ y1) * uReal.r)
        by A3,A2,SURREALR:54,A47,SURREALR:69;
        hence thesis by A46,SURREALO:4;
      end;
    end;
A48: Nx*Ny = [L_(Nx*Ny),R_(Nx*Ny)] & Nxy = [L_Nxy,R_Nxy];
A49: for a be Surreal st a in L_Nxy
    ex b be Surreal st b in L_(Nx*Ny) & a <= b
    proof
      let a be Surreal such that
A50:  a in L_Nxy;
      per cases;
      suppose
A51:    a=0_No;
        set A = 0_No*Ny + Nx*0_No - 0_No*0_No;
        0_No in L_Nx & 0_No in L_Ny by Th22;
        then A in comp(L_Nx,Nx,Ny,L_Ny) by SURREALR:def 15;
        then A in L_(Nx*Ny) by XBOOLE_0:def 3,A4;
        hence thesis by A51;
      end;
      suppose not a =0_No;
        then consider xR be Surreal, r be positive Real such that
A52:    xR in L_xy & a = (No_omega^ xR) * uReal.r by A50,Th22;
        per cases by A52,A5,XBOOLE_0:def 3;
        suppose xR in L_x ++ {y};
          then consider x1,y1 be Surreal such that
A53:      x1 in L_x & y1 in {y} & xR = x1 + y1 by SURREALR:def 8;
          set R = (No_omega^ x1) * uReal.r;
          set A = R*Ny + Nx*0_No - R*0_No;
A54:      R in L_Nx by A53,Th22;
          0_No in L_Ny by Th22;
          then A in comp(L_Nx,Nx,Ny,L_Ny) by A54,SURREALR:def 15;
          then
A55:      A in L_(Nx*Ny) by XBOOLE_0:def 3,A4;
A56:      a = (No_omega^ (x1+y)) * uReal.r by A53,TARSKI:def 1,A52;
          x1 in L_x\/R_x by A53,XBOOLE_0:def 3;
          then born x1 (+) born y in born x (+) born y
          by ORDINAL7:94,SURREALO:1;
          then a == (No_omega^ y) * (No_omega^ x1) * uReal.r
          == (No_omega^ y) * ((No_omega^ x1) * uReal.r)
          by A3,A2,SURREALR:54,A56,SURREALR:69;
          hence thesis by A55,SURREALO:4;
        end;
        suppose xR in {x} ++ L_y;
          then consider x1,y1 be Surreal such that
A57:      x1 in {x} & y1 in L_y & xR = x1 + y1 by SURREALR:def 8;
A58:      x1=x by A57,TARSKI:def 1;
          set R = (No_omega^ y1) * uReal.r;
          set A = 0_No*Ny + Nx*R - 0_No*R;
A59:      R in L_Ny by A57,Th22;
          0_No in L_Nx by Th22;
          then A in comp(L_Nx,Nx,Ny,L_Ny) by A59,SURREALR:def 15;
          then
A60:      A in L_(Nx*Ny) by XBOOLE_0:def 3,A4;
          y1 in L_y\/R_y by A57,XBOOLE_0:def 3;
          then born x (+) born y1 in born x (+) born y
          by ORDINAL7:94,SURREALO:1;
          then a == (No_omega^ x) * (No_omega^ y1) * uReal.r
          == (No_omega^ x) * ((No_omega^ y1) * uReal.r)
          by A3,A2,SURREALR:54,A52,A57,A58,SURREALR:69;
          hence thesis by A60,SURREALO:4;
        end;
      end;
    end;
A61: for x,y,a be Surreal st born x (+) born y = D &
    a in comp(L_No_omega^ x,No_omega^ x,No_omega^ y,R_No_omega^ y)
    holds ex b be Surreal st b in R_No_omega^ (x+y) & b <= a
    proof
      let x,y,a be Surreal such that
A62:  born x (+) born y = D;
      set Nx = No_omega^ x,Ny=No_omega^ y;
      assume a in comp(L_Nx,Nx,Ny,R_Ny);
      then consider x1,y1 be Surreal such that
A63:  a = x1*Ny + Nx*y1 - x1*y1 & x1 in L_Nx & y1 in R_Ny
      by SURREALR:def 15;
A64:  x + y = [(L_x ++ {y})\/({x} ++ L_y), (R_x ++ {y}) \/({x} ++ R_y)]
      by SURREALR:28;
      consider yL be Surreal, s be positive Real such that
A65:  yL in R_y & y1 = (No_omega^ yL) * uReal.s by A63,Th23;
      yL in L_y\/R_y by A65,XBOOLE_0:def 3;
      then
A66:  born x (+) born yL in born x (+) born y
      by ORDINAL7:94,SURREALO:1;
      per cases;
      suppose
A67:    x1 = 0_No;
        a == (Nx*(No_omega^ yL)) * uReal.s == No_omega^ (x+yL) * uReal.s
        by A65,A63,A67,A66,A62,A2,SURREALR:69,54;
        then
A68:    a == No_omega^ (x+yL) * uReal.s by SURREALO:9;
        x in {x} by TARSKI:def 1;
        then x+yL in {x} ++ R_y by A65,SURREALR:def 8;
        then x+yL in R_(x+y) by A64,XBOOLE_0:def 3;
        hence thesis by A68,Th23;
      end;
      suppose x1<>0_No;
        then consider xL be Surreal, r be positive Real such that
A69:    xL in L_x & x1 = (No_omega^ xL) * uReal.r by A63,Th22;
        Nx*y1 == Nx * (No_omega^ yL) * uReal.s == No_omega^ (x+yL) * uReal.s
        by A65,A66,A62,A2,SURREALR:69,SURREALR:54;
        then
A70:    Nx*y1 == No_omega^ (x+yL) * uReal.s by SURREALO:9;
        x in {x} by TARSKI:def 1;
        then x+yL in {x} ++ R_y by A65,SURREALR:def 8;
        then
A71:    x+yL in R_(x+y) by A64,XBOOLE_0:def 3;
A72:    0_No <= y1 by A65,SURREALI:def 8;
A73:    0_No <= x1 * Ny by A69,SURREALI:def 8;
        set H=uReal.(1/2);
        1/2+1/2=1;
        then (Nx*y1) *H + (Nx*y1)*H == (Nx*y1) *(H + H)
        == (Nx*y1)* 1_No = Nx*y1 by SURREALN:55,48,SURREALR:51,67;
        then (Nx*y1) *H + (Nx*y1)*H==Nx*y1 by SURREALO:4;
        then
A74:    (H*(Nx*y1) + H*(Nx*y1)) +- x1*y1 == Nx*y1 +- x1*y1
        by SURREALR:32;
        x in {x} & L_x << {x} by TARSKI:def 1,SURREALO:11;
        then No_omega^ xL infinitely< Nx by A69,Th25;
        then x1 infinitely< Nx by A69,Th13;
        then x1 infinitely< H*Nx by Th13;
        then x1 <= H*Nx by Th9;
        then x1*y1 <= (H*Nx)*y1 == H*(Nx*y1) by A72,SURREALR:75,SURREALR:69;
        then x1*y1 <= H*(Nx*y1) by SURREALO:4;
        then 0_No <= H*(Nx*y1) - (x1*y1) by SURREALR:46;
        then H*(Nx*y1) = 0_No + H*(Nx*y1) <= (H*(Nx*y1)) +(H*(Nx*y1) - x1*y1)
        = (H*(Nx*y1) + H*(Nx*y1)) +- x1*y1
        by SURREALR:43,SURREALR:37;
        then H*(Nx*y1) <= Nx*y1 +- x1*y1 by A74,SURREALO:4;
        then
A75:    H*(Nx*y1) = H*(Nx*y1) + 0_No
        <= x1 * Ny + (Nx*y1 +- x1*y1) = a
        by A73,A63,SURREALR:43,SURREALR:37;
        H*(Nx*y1) ==H*(No_omega^ (x+yL) * uReal.s) ==
        (H*uReal.s)*No_omega^ (x+yL) by A70,SURREALR:54,69;
        then
A76:    H*(Nx*y1) == (H*uReal.s)*No_omega^ (x+yL) by SURREALO:4;
        (H*uReal.s)*No_omega^ (x+yL) == uReal.(1/2*s) *No_omega^ (x+yL)
        by SURREALR:54,SURREALN:57;
        then H*(Nx*y1) == uReal.(1/2*s) *No_omega^ (x+yL) by A76,SURREALO:4;
        then uReal.(1/2*s) *No_omega^ (x+yL) <= a by A75,SURREALO:4;
        hence thesis by A71,Th23;
      end;
    end;
    for a be Surreal st a in R_(Nx*Ny) ex b be Surreal st b in R_Nxy & b <= a
    proof
      let a be Surreal;
      assume a in R_(Nx*Ny);
      then per cases by A4,XBOOLE_0:def 3;
      suppose a in comp(L_Nx,Nx,Ny,R_Ny);
        hence thesis by A61,A3;
      end;
      suppose a in comp(R_Nx,Nx,Ny,L_Ny);
        then a in comp(L_Ny,Ny,Nx,R_Nx) by SURREALR:53;
        hence thesis by A61,A3;
      end;
    end;
    hence thesis by A6,A37,SURREAL0:44,A48,A49;
  end;
  for D be Ordinal holds P[D] from ORDINAL1:sch 2(A1);
  hence thesis;
end;
