reserve A,B,O for Ordinal,
        o for object,
        x,y,z for Surreal,
        n,m for Nat;

theorem Th13:
  (uInt.n) + (uInt.m) = uInt.(n+m)
proof
  defpred P[Nat] means (uInt.$1) + 1_No = uInt.($1+1);
A1: uInt.0=0_No & uInt.1=1_No by Def1,Th11;
  then
A2: P[0];
A3: for n st P[n] holds P[n+1]
  proof
    let n;
    set s = uInt.(n+1);
    assume
A4: P[n];
A5: {s} ++ L_1_No = {s+0_No} by SURREALR:36;
    R_s = {} by Th7;
    then
A6: R_s ++ {1_No} = {} by SURREALR:27;
    s = [{uInt.n},{}] by Def1;
    then
A7: L_s ++ {1_No} = {s} by A4,SURREALR:36;
    thus s + 1_No
    = [(L_s ++ {1_No})\/({s} ++ L_1_No), (R_s ++ {1_No}) \/({s} ++ R_1_No)]
    by SURREALR:28
    .= [{s}\/{s}, {} \/{}] by A5,SURREALR:27,A6,A7
    .= uInt.((n+1)+1) by Def1;
  end;
A8: for n holds P[n] from NAT_1:sch 2(A2,A3);
  defpred Q[Nat] means (uInt.n) + (uInt.$1) = uInt.(n+$1);
A9:Q[0] by A1;
A10: for m st Q[m] holds Q[m+1]
  proof
    let m such that
A11: Q[m];
    (uInt.n) + (uInt.(m+1)) = (uInt.n) + ((uInt.m) + (uInt.1)) by Th11,A8
    .= (uInt.(n + m)) + 1_No by Th11,A11,SURREALR:37
    .= uInt.((n + m) + 1) by A8;
    hence thesis;
  end;
  for m holds Q[m] from NAT_1:sch 2(A9,A10);
  hence thesis;
end;
