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 Th57:
  x*'(y+z) = x*'y+x*'z
proof
  set nx = numerator x, ny = numerator y, nz = numerator z;
  set dx = denominator x, dy = denominator y, dz = denominator z;
A1: dx <> {} by Th35;
  dz <> {} by Th35;
  then
A2: dx*^dz <> {} by A1,ORDINAL3:31;
  dy <> {} by Th35;
  then
A3: dx*^dy <> {} by A1,ORDINAL3:31;
  x = nx/dx by Th39;
  hence x*'(y+z) = (nx*^(ny*^dz+^dy*^nz))/(dx*^(dy*^dz)) by Th49
    .= (nx*^(ny*^dz)+^nx*^(dy*^nz))/(dx*^(dy*^dz)) by ORDINAL3:46
    .= (nx*^ny*^dz+^nx*^(dy*^nz))/(dx*^(dy*^dz)) by ORDINAL3:50
    .= (nx*^ny*^dz+^dy*^(nx*^nz))/(dx*^(dy*^dz)) by ORDINAL3:50
    .= (nx*^ny*^dz+^dy*^(nx*^nz))/(dy*^(dx*^dz)) by ORDINAL3:50
    .= (dx*^((nx*^ny)*^dz+^(dy*^(nx*^nz))))/(dx*^(dy*^(dx*^dz))) by Th35,Th44
    .= (dx*^((nx*^ny)*^dz)+^dx*^(dy*^(nx*^nz)))/(dx*^(dy*^(dx*^dz))) by
ORDINAL3:46
    .= (dx*^((nx*^ny)*^dz)+^(dx*^dy)*^(nx*^nz))/(dx*^(dy*^(dx*^dz))) by
ORDINAL3:50
    .= ((nx*^ny)*^(dx*^dz)+^(dx*^dy)*^(nx*^nz))/(dx*^(dy*^(dx*^dz))) by
ORDINAL3:50
    .= ((nx*^ny)*^(dx*^dz)+^(dx*^dy)*^(nx*^nz))/((dx*^dy)*^(dx*^dz)) by
ORDINAL3:50
    .= x*'y+x*'z by A2,A3,Th46;
end;
