reserve v for object;
reserve V,A for set;
reserve f for SCBinominativeFunction of V,A;
reserve d for TypeSCNominativeData of V,A;
reserve d1 for NonatomicND of V,A;
reserve a,b,c,z for Element of V;
reserve x,y for object;
reserve p,q,r,s for SCPartialNominativePredicate of V,A;

theorem
  A is complex-containing & a in dom d1 & b in dom d1 &
  d1 in dom subtraction(A,a,b) implies
  for x,y being Complex st x = d1.a & y = d1.b holds
  subtraction(A,a,b).d1 = x - y
  proof
    assume that
A1: A is complex-containing and
A2: a in dom d1 and
A3: b in dom d1 and
A4: d1 in dom subtraction(A,a,b);
    let x,y be Complex such that
A5: x = d1.a & y = d1.b;
    set Di = denaming(V,A,a);
    set Dj = denaming(V,A,b);
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(a,d1) by NOMIN_1:def 18
    .= d1.a by A2,NOMIN_1:def 12;
    d1 in dom Dj by A6,A8,XBOOLE_0:def 4;
    then
A10: Dj.d1 = denaming(b,d1) by NOMIN_1:def 18
    .= d1.b by A3,NOMIN_1:def 12;
A11: x in COMPLEX & y in COMPLEX by XCMPLX_0:def 2;
    thus subtraction(A,a,b).d1 = (subtraction(A)).(Di.d1,Dj.d1)
    by A4,A7,FUNCT_1:12
    .= subtraction(Di.d1,Dj.d1) by A1,A5,A9,A10,A11,Def15
    .= x - y by A5,A9,A10,Def14;
  end;
