reserve D for non empty set;
reserve f1,f2,f3,f4 for BinominativeFunction of D;
reserve p,q,r,t,w for PartialPredicate of D;
reserve d,v,v1 for object;
reserve V,A for set;
reserve z for Element of V;
reserve d1 for NonatomicND of V,A;
reserve f for SCBinominativeFunction of V,A;
reserve T for TypeSCNominativeData of V,A;

theorem Th4:
  for i,j being Element of V holds
  A is complex-containing & i in dom d1 & j in dom d1 &
  d1 in dom addition(A,i,j) implies
  for x,y being Complex st x = d1.i & y = d1.j holds
  addition(A,i,j).d1 = x + y
  proof
    let i,j be Element of V;
    assume that
A1: A is complex-containing and
A2: i in dom d1 and
A3: j in dom d1 and
A4: d1 in dom addition(A,i,j);
    let x,y be Complex such that
A5: x = d1.i & y = d1.j;
    set Di = denaming(V,A,i);
    set Dj = denaming(V,A,j);
A6: d1 in dom <:Di,Dj:> by A4,FUNCT_1:11;
    then
A7: <:Di,Dj:>.d1 = [Di.d1,Dj.d1] by FUNCT_3:def 7;
A8: dom <:Di,Dj:> = dom Di /\ dom Dj by FUNCT_3:def 7;
    then d1 in dom Di by A6,XBOOLE_0:def 4;
    then
A9: Di.d1 = denaming(i,d1) by NOMIN_1:def 18
    .= d1.i by A2,NOMIN_1:def 12;
    d1 in dom Dj by A6,A8,XBOOLE_0:def 4;
    then
A10: Dj.d1 = denaming(j,d1) by NOMIN_1:def 18
    .= d1.j by A3,NOMIN_1:def 12;
A11: x in COMPLEX & y in COMPLEX by XCMPLX_0:def 2;
    thus addition(A,i,j).d1 = (addition(A)).(Di.d1,Dj.d1) by A4,A7,FUNCT_1:12
    .= addition(Di.d1,Dj.d1) by A1,A5,A9,A10,A11,Def5
    .= x + y by A5,A9,A10,Def3;
  end;
