reserve A,B,C for Ordinal;
reserve a,b,c,d for natural Ordinal;
reserve l,m,n for natural Ordinal;
reserve i,j,k for Element of omega;
reserve x,y,z for Element of RAT+;
reserve i,j,k for natural Ordinal;

theorem Th51:
  (x+y)+z = x+(y+z)
proof
  set nx = numerator x, ny = numerator y, nz = numerator z;
  set dx = denominator x, dy = denominator y, dz = denominator z;
A1: dy <> {} by Th35;
A2: dz <> {} by Th35;
  then
A3: dy*^dz <> {} by A1,ORDINAL3:31;
A4: dx <> {} by Th35;
  then
A5: dx*^dy <> {} by A1,ORDINAL3:31;
  thus x+y+z = (nx*^dy+^dx*^ny)/(dx*^dy)+nz/dz by Th39
    .= ((nx*^dy+^dx*^ny)*^dz+^(dx*^dy)*^nz)/(dx*^dy*^dz) by A2,A5,Th46
    .= (nx*^dy*^dz+^dx*^ny*^dz+^dx*^dy*^nz)/(dx*^dy*^dz) by ORDINAL3:46
    .= (nx*^(dy*^dz)+^dx*^ny*^dz+^dx*^dy*^nz)/(dx*^dy*^dz) by ORDINAL3:50
    .= (nx*^(dy*^dz)+^dx*^(ny*^dz)+^dx*^dy*^nz)/(dx*^dy*^dz) by ORDINAL3:50
    .= (nx*^(dy*^dz)+^dx*^(ny*^dz)+^dx*^(dy*^nz))/(dx*^dy*^dz) by ORDINAL3:50
    .= (nx*^(dy*^dz)+^(dx*^(ny*^dz)+^dx*^(dy*^nz)))/(dx*^dy*^dz) by ORDINAL3:30
    .= (nx*^(dy*^dz)+^dx*^(ny*^dz+^dy*^nz))/(dx*^dy*^dz) by ORDINAL3:46
    .= (nx*^(dy*^dz)+^dx*^(ny*^dz+^dy*^nz))/(dx*^(dy*^dz)) by ORDINAL3:50
    .= (ny*^dz+^dy*^nz)/(dy*^dz)+nx/dx by A4,A3,Th46
    .= x+(y+z) by Th39;
end;
