reserve X for non empty set;
reserve Y for ComplexLinearSpace;
reserve f,g,h for Element of Funcs(X,the carrier of Y);
reserve a,b for Complex;
reserve u,v,w for VECTOR of CLSStruct(#Funcs(X,the carrier of Y), (FuncZero(X,
    Y)),FuncAdd(X,Y),FuncExtMult(X,Y)#);

theorem Th10:
  CLSStruct(#Funcs(X,the carrier of Y),(FuncZero(X,Y)),FuncAdd(X,Y
    ), FuncExtMult(X,Y)#) is ComplexLinearSpace
proof
  set IT = CLSStruct(#Funcs(X,the carrier of Y),(FuncZero(X,Y)), FuncAdd(X,Y),
    FuncExtMult(X,Y)#);
A1: (u+v)+w = u+(v+w) by Th4;
A2: u is right_complementable
  proof
    reconsider u9 = u as Element of Funcs(X,the carrier of Y);
    reconsider mj=-1r as Element of COMPLEX by XCMPLX_0:def 2;
    reconsider w = (FuncExtMult(X,Y)).[mj,u9] as VECTOR of IT;
    take w;
    thus thesis by Th6;
  end;
A3: for a be Complex, u,v be VECTOR of IT holds a * (u + v) = a * u + a * v
  proof
    let a be Complex;
    let u,v be VECTOR of IT;
    reconsider a as Element of COMPLEX by XCMPLX_0:def 2;
    a * (u + v) = a * u + a * v
    proof
      reconsider v9 = v, u9 = u as Element of Funcs(X,the carrier of Y);
      reconsider w = (FuncExtMult(X,Y)).[a,u9], w9 = (FuncExtMult(X,Y)).[a,v9]
      as VECTOR of IT;
      a*(u+v) = (FuncExtMult(X,Y)).[a,(FuncAdd(X,Y)).(u9,v9)] by CLVECT_1:def 1
        .=(FuncAdd(X,Y)).(w,w9) by Lm1
        .= w + (a*v) by CLVECT_1:def 1
        .= a*u + a*v by CLVECT_1:def 1;
      hence thesis;
    end;
    hence thesis;
  end;
A4: for a,b be Complex, v be VECTOR of IT holds (a*b)*v = a*(b*v)
  proof
    let a,b be Complex;
    let v be VECTOR of IT;
    reconsider v9=v as Element of Funcs(X,the carrier of Y);
    thus (a*b)*v = (FuncExtMult(X,Y)).[a*b,v9] by CLVECT_1:def 1
      .= (FuncExtMult(X,Y)).[a,(FuncExtMult(X,Y)).[b,v9]] by Th8
      .= (FuncExtMult(X,Y)).[a,b*v] by CLVECT_1:def 1
      .= a*(b*v) by CLVECT_1:def 1;
  end;
A5: for a,b be Complex, v be VECTOR of IT holds (a+b)*v = a*v + b*v
  proof
    let a,b be Complex;
    let v be VECTOR of IT;
    reconsider a,b as Element of COMPLEX by XCMPLX_0:def 2;
    reconsider v9 = v as Element of Funcs(X,the carrier of Y);
    reconsider w = (FuncExtMult(X,Y)).[a,v9],w9 = (FuncExtMult(X,Y)).[b,v9] as
    VECTOR of IT;
    (a+b)*v = (FuncExtMult(X,Y)).[a+b,v9] by CLVECT_1:def 1
      .= (FuncAdd(X,Y)).(w,w9) by Th9
      .= w + (b*v) by CLVECT_1:def 1
      .= (a*v) + (b*v) by CLVECT_1:def 1;
     hence thesis;
  end;
A6: u+0.IT = u
  proof
    reconsider u9=u as Element of Funcs(X,the carrier of Y);
    thus u+0.IT = (FuncAdd(X,Y)).(FuncZero(X,Y),u9) by Th3
      .= u by Th5;
  end;
A7: for v be VECTOR of IT holds 1r*v = v
  proof
    let v be VECTOR of IT;
    reconsider v9=v as Element of Funcs(X,the carrier of Y);
    thus 1r*v = (FuncExtMult(X,Y)).[1r,v9] by CLVECT_1:def 1
      .= v by Th7;
  end;
  u+v = v+u by Th3;
  hence thesis by A1,A6,A2,A3,A5,A4,A7,ALGSTR_0:def 16,CLVECT_1:def 2,def 3
,def 4,def 5,RLVECT_1:def 2,def 3,def 4;
end;
