reserve D for non empty set;
reserve f1,f2,f3,f4,f5 for BinominativeFunction of D;
reserve p,q,r,t,w,u for PartialPredicate of D;
reserve d,v,v1 for object;
reserve V,A for set;
reserve i,j,b,n,s,z for Element of V;
reserve i1,j1,b1,n1,s1 for object;
reserve d1,Li,Lj,Lb,Ln,Ls for NonatomicND of V,A;
reserve Di,Dj,Db,Dn,Ds for SCBinominativeFunction of V,A;
reserve f for SCBinominativeFunction of V,A;
reserve T for TypeSCNominativeData of V,A;
reserve loc for V-valued Function;
reserve val for Function;
reserve n0 for Nat;
reserve b0 for Complex;

theorem Th9:
  V is non empty & A is_without_nonatomicND_wrt V &
  (for T holds loc/.1 is_a_value_on T) & (for T holds loc/.4 is_a_value_on T)
  implies
  PP_and(Equality(A,loc/.1,loc/.4),power_inv(A,loc,b0,n0))
  ||=
  SC_Psuperpos(valid_power_output(A,z,b0,n0),denaming(V,A,loc/.5),z)
  proof
    set i = loc/.1, j = loc/.2, b = loc/.3, n = loc/.4, s = loc/.5;
    set D = ND(V,A);
    set inv = power_inv(A,loc,b0,n0);
    set Di = denaming(V,A,i);
    set Db = denaming(V,A,b);
    set Dn = denaming(V,A,n);
    set Ds = denaming(V,A,s);
    set Dz = denaming(V,A,z);
    set ass = SC_assignment(Ds,z);
    set out = valid_power_output(A,z,b0,n0);
    set p = SC_Psuperpos(out,Ds,z);
    set E = Equality(A,i,n);
    assume that
A1: V is non empty & A is_without_nonatomicND_wrt V and
A2: for T holds i is_a_value_on T and
A3: for T holds n is_a_value_on T;
    let d be Element of D such that
A4: d in dom PP_and(E,inv) and
A5: (PP_and(E,inv)).d = TRUE;
A6: dom p = {d where d is TypeSCNominativeData of V,A:
      local_overlapping(V,A,d,Ds.d,z) in dom out & d in dom Ds}
      by NOMIN_2:def 11;
A7: dom out = {d where d is TypeSCNominativeData of V,A: d in dom Dz}
    by Def10;
A8: dom Ds = {d where d is NonatomicND of V,A: s in dom d} by NOMIN_1:def 18;
A9: dom Dz = {d where d is NonatomicND of V,A: z in dom d} by NOMIN_1:def 18;
A10: d in dom E by A4,A5,PARTPR_1:23;
A11: d in dom inv by A4,A5,PARTPR_1:23;
A12: dom E = dom Di /\ dom Dn by A2,A3,NOMIN_4:11;
     then
A13: d in dom Di by A10,XBOOLE_0:def 4;
     inv.d = TRUE by A4,A5,PARTPR_1:23;
     then power_inv_pred A,loc,b0,n0,d by A11,Def12;
     then consider d1 being NonatomicND of V,A such that
A14: d = d1 and
A15: {i,j,b,n,s} c= dom d1 and
A16: d1.n = n0 and d1.b = b0 and
A18: ex S being Complex, I being Nat st I = d1.i & S = d1.s & S = b0|^I;
A19: i in {i,j,b,n,s} by ENUMSET1:def 3;
A20: n in {i,j,b,n,s} by ENUMSET1:def 3;
A21: s in {i,j,b,n,s} by ENUMSET1:def 3;
     reconsider dd = d as TypeSCNominativeData of V,A by NOMIN_1:39;
     set L = local_overlapping(V,A,dd,Ds.dd,z);
A22: dd in dom Ds by A15,A8,A14,A21;
     then Ds.d1 in D by A14,PARTFUN1:4;
     then
A23: ex d2 being TypeSCNominativeData of V,A st Ds.d1 = d2;
     then
A24: L in dom Dz by A1,A14,NOMIN_4:6;
     then
A25: L in dom out by A7;
     hence
A26: d in dom p by A6,A22;
     valid_power_output_pred A,z,b0,n0,L
     proof
       consider S being Complex, I being Nat such that
A27:   I = d1.i and
A29:   S = d1.s and
A30:   S = b0|^I by A18;
A31:   ex d being NonatomicND of V,A st L = d & z in dom d by A9,A24;
       then reconsider dlo = L as NonatomicND of V,A;
       take dlo;
       thus L = dlo;
       thus z in dom dlo by A31;
A32:   i is_a_value_on dd by A2;
A33:   n is_a_value_on dd by A3;
A34:   dom <:Di,Dn:> = dom Di /\ dom Dn by FUNCT_3:def 7;
       d in dom <:Di,Dn:> by A10,A12,FUNCT_3:def 7;
       then
A35:   E.d = (Equality(A)).(<:Di,Dn:>.d) by FUNCT_1:13;
A36:   d in dom Dn by A10,A12,XBOOLE_0:def 4;
A37:   <:Di,Dn:>.d = [Di.d,Dn.d] by A10,A12,A34,FUNCT_3:def 7;
A38:   Di.d = denaming(i,d1) by A14,A13,NOMIN_1:def 18
       .= d1.i by A15,A19,NOMIN_1:def 12;
A39:   Dn.d = denaming(n,d1) by A14,A36,NOMIN_1:def 18
       .= d1.n by A15,A20,NOMIN_1:def 12;
A40:   Ds.d = denaming(s,d1) by A22,A14,NOMIN_1:def 18
       .= d1.s by A15,A21,NOMIN_1:def 12;
       (Equality(A)).(Di.d,Dn.d) <> FALSE by A4,A5,A35,A37,PARTPR_1:23;
       then Di.d = Dn.d by A32,A33,NOMIN_4:def 9;
       hence dlo.z = b0|^n0
       by A1,A14,A16,A23,A27,A29,A30,A38,A39,A40,NOMIN_2:10;
     end;
     hence TRUE = out.L by A25,Def10
     .= p.d by A26,NOMIN_2:35;
   end;
