reserve x1,x2,z for set;
reserve A,B for non empty set;
reserve f,g,h for Element of Funcs(A,COMPLEX);
reserve a,b for Complex;
reserve C for strict non empty CLSStruct,
        u,v,w for Element of C;

theorem
  for x,y,z being Element of CAlgebra(A), a,b holds x + y = y + x
  & (x + y) + z = x + (y + z) & x + (0.CAlgebra(A)) = x & x is
  right_complementable & x * y = y * x & (x * y) * z = x * (y * z) & x * (1.
CAlgebra(A)) = x & x * (y + z) = x * y + x * z & a * (x * y) = (a * x) * y & a
* (x + y) = a * x + a * y & (a + b) * x = a * x + b * x & (a * b) * x = a * (b
  * x)
proof
  let x,y,z be Element of CAlgebra(A);
  let a,b;
  set IT = CAlgebra(A);
  reconsider f=x as Element of Funcs(A,COMPLEX);
  thus x+y = y+x by Th5;
  thus (x+y)+z = x+(y+z) by Th6;
  thus x+(0.CAlgebra(A)) = (ComplexFuncAdd(A)).(ComplexFuncZero(A),f) by Th5
    .= x by Th10;
  thus ex t being Element of CAlgebra(A) st x+t=(0.CAlgebra(A))
  proof
    reconsider mj = -1r as Element of COMPLEX by XCMPLX_0:def 2;
    set h = (ComplexFuncExtMult(A)).[mj,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.CAlgebra(A)) = (ComplexFuncMult(A)).(ComplexFuncUnit(A),f) by Th7
    .= x by Th9;
  thus x*(y+z) = x*y + x*z by Th15;
  thus a*(x*y) = (a*x)*y by Th16;
  thus a*(x+y) = (a*x) + (a*y) by Lm2;
  thus (a+b)*x = (a*x) + (b*x) by Th14;
  thus thesis by Th13;
end;
