reserve x1,x2,z for set;
reserve A,B for non empty set;
reserve f,g,h for Element of Funcs(A,REAL);
reserve a,b for Real;

theorem Th25:
  for x,y,z being Element of RRing(A) holds x+y = y+x & (x+y)+z =
x+(y+z) & x+(0.RRing(A)) = x & (ex t being Element of RRing(A) st x+t=(0.RRing(
A))) & x*y = y*x & (x*y)*z = x*(y*z) & x*(1.RRing(A)) = x & (1.RRing(A))*x = x
  & x*(y+z) = x*y + x*z & (y+z)*x = y*x + z*x
proof
  let x,y,z be Element of RRing(A);
  set IT = RRing(A);
  reconsider f=x as Element of Funcs(A,REAL);
  thus x+y = y+x by Th5;
  thus (x+y)+z = x+(y+z) by Th6;
  thus x+(0.RRing(A)) = (RealFuncAdd A).(RealFuncZero(A),f) by Th5
    .= x by Th10;
  thus ex t being Element of RRing(A) st x+t=(0.RRing(A))
  proof
    set h = (RealFuncExtMult A).[-jj,f];
    reconsider t=h as Element of IT;
    take t;
    thus thesis by Th11;
  end;
  thus x*y = y*x by Th7;
  thus (x*y)*z = x*(y*z) by Th8;
  thus x*(1.RRing(A)) = (RealFuncMult(A)).(RealFuncUnit(A),f) by Th7
    .= x by Th9;
  hence (1.RRing(A))*x = x by Th7;
  thus x*(y+z) = x*y + x*z by Th15;
  hence (y+z)*x = x*y + x*z by Th7
    .= y*x + x*z by Th7
    .= y*x + z*x by Th7;
end;
