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 Th4:
  V is non empty & A is_without_nonatomicND_wrt V &
  loc/.1, loc/.2, loc/.3, loc/.4, loc/.5 are_mutually_distinct &
  loc,val are_compatible_wrt_5_locs
 implies
  <* valid_power_input(V,A,val,b0,n0),
     power_var_init(A,loc,val),
     power_inv(A,loc,b0,n0) *> is SFHT of ND(V,A)
  proof
    set i = loc/.1, j = loc/.2, b = loc/.3, n = loc/.4, s = loc/.5;
    set i1 = val.1, j1 = val.2, b1 = val.3, n1 = val.4, s1 = val.5;
    set D = ND(V,A);
    set I = valid_power_input(V,A,val,b0,n0);
    set F = power_var_init(A,loc,val);
    set inv = power_inv(A,loc,b0,n0);
    set Di = denaming(V,A,i1);
    set Dj = denaming(V,A,j1);
    set Db = denaming(V,A,b1);
    set Dn = denaming(V,A,n1);
    set Ds = denaming(V,A,s1);
    set asi = SC_assignment(Di,i);
    set asj = SC_assignment(Dj,j);
    set asb = SC_assignment(Db,b);
    set asn = SC_assignment(Dn,n);
    set ass = SC_assignment(Ds,s);
    set T1 = SC_Psuperpos(inv,Ds,s);
    set S1 = SC_Psuperpos(T1,Dn,n);
    set R1 = SC_Psuperpos(S1,Db,b);
    set Q1 = SC_Psuperpos(R1,Dj,j);
    set P1 = SC_Psuperpos(Q1,Di,i);
    assume that
A1: V is non empty and
A2: A is_without_nonatomicND_wrt V and
A3: i,j,b,n,s are_mutually_distinct and
A4: loc,val are_compatible_wrt_5_locs;
A5: <*P1,asi,Q1*> is SFHT of D by NOMIN_3:29;
A6: <*Q1,asj,R1*> is SFHT of D by NOMIN_3:29;
A7: <*R1,asb,S1*> is SFHT of D by NOMIN_3:29;
A8: <*S1,asn,T1*> is SFHT of D by NOMIN_3:29;
A9: <*T1,ass,inv*> is SFHT of D by NOMIN_3:29;
    I ||= P1
    proof
      let d be Element of D;
      assume d in dom I & I.d = TRUE;
      then valid_power_input_pred V,A,val,b0,n0,d by Def8;
      then consider d1 being NonatomicND of V,A such that
A10:  d = d1 and
A11:  {i1,j1,b1,n1,s1} c= dom d1 and
A12:  d1.i1 = 0 and
A13:  d1.j1 = 1 and
A14:  d1.b1 = b0 and
A15:  d1.n1 = n0 and
A16:  d1.s1 = 1;
A17:  i1 in {i1,j1,b1,n1,s1} by ENUMSET1:def 3;
A18:  j1 in {i1,j1,b1,n1,s1} by ENUMSET1:def 3;
A19:  b1 in {i1,j1,b1,n1,s1} by ENUMSET1:def 3;
A20:  n1 in {i1,j1,b1,n1,s1} by ENUMSET1:def 3;
A21:  s1 in {i1,j1,b1,n1,s1} by ENUMSET1:def 3;
A23:  dom Di = {d where d is NonatomicND of V,A: i1 in dom d}
      by NOMIN_1:def 18;
A24:  dom Dj = {d where d is NonatomicND of V,A: j1 in dom d}
      by NOMIN_1:def 18;
A25:  dom Db = {d where d is NonatomicND of V,A: b1 in dom d}
      by NOMIN_1:def 18;
A26:  dom Dn = {d where d is NonatomicND of V,A: n1 in dom d}
      by NOMIN_1:def 18;
A27:  dom Ds = {d where d is NonatomicND of V,A: s1 in dom d}
      by NOMIN_1:def 18;
A28:  dom P1 = {d where d is TypeSCNominativeData of V,A:
      local_overlapping(V,A,d,Di.d,i) in dom Q1 & d in dom Di}
      by NOMIN_2:def 11;
A29:  dom Q1 = {d where d is TypeSCNominativeData of V,A:
      local_overlapping(V,A,d,Dj.d,j) in dom R1 & d in dom Dj}
      by NOMIN_2:def 11;
A30:  dom R1 = {d where d is TypeSCNominativeData of V,A:
      local_overlapping(V,A,d,Db.d,b) in dom S1 & d in dom Db}
      by NOMIN_2:def 11;
A31:  dom S1 = {d where d is TypeSCNominativeData of V,A:
      local_overlapping(V,A,d,Dn.d,n) in dom T1 & d in dom Dn}
      by NOMIN_2:def 11;
A32:  dom T1 = {d where d is TypeSCNominativeData of V,A:
      local_overlapping(V,A,d,Ds.d,s) in dom inv & d in dom Ds}
      by NOMIN_2:def 11;
      reconsider Li = local_overlapping(V,A,d1,Di.d1,i) as NonatomicND of V,A
      by NOMIN_2:9;
      reconsider Lj = local_overlapping(V,A,Li,Dj.Li,j) as NonatomicND of V,A
      by NOMIN_2:9;
      reconsider Lb = local_overlapping(V,A,Lj,Db.Lj,b) as NonatomicND of V,A
      by NOMIN_2:9;
      reconsider Ln = local_overlapping(V,A,Lb,Dn.Lb,n) as NonatomicND of V,A
      by NOMIN_2:9;
      reconsider Ls = local_overlapping(V,A,Ln,Ds.Ln,s) as NonatomicND of V,A
      by NOMIN_2:9;
A33:  d1 in dom Di by A11,A17,A23;
      then
A34:  Di.d1 is TypeSCNominativeData of V,A by PARTFUN1:4,NOMIN_1:39;
      then
A35:  dom Li = {i} \/ dom d1 by A1,A2,NOMIN_4:4;
      dom inv = D by Def12;
      then
A36:  Ls in dom inv;
A37:  j1 in dom Li by A11,A18,A35,XBOOLE_0:def 3;
      then
A38:  Li in dom Dj by A24;
      then
A39:  Dj.Li is TypeSCNominativeData of V,A by PARTFUN1:4,NOMIN_1:39;
      then
A40:  dom Lj = {j} \/ dom Li by A1,A2,NOMIN_4:4;
A41:  b1 in dom Li by A11,A19,A35,XBOOLE_0:def 3;
      then
A42:  b1 in dom Lj by A40,XBOOLE_0:def 3;
      then
A43:  Lj in dom Db by A25;
      then
A44:  Db.Lj is TypeSCNominativeData of V,A by PARTFUN1:4,NOMIN_1:39;
      then
A45:  dom Lb = {b} \/ dom Lj by A1,A2,NOMIN_4:4;
A46:  n1 in dom Li by A11,A20,A35,XBOOLE_0:def 3;
      then
A47:  n1 in dom Lj by A40,XBOOLE_0:def 3;
      then
A48:  n1 in dom Lb by A45,XBOOLE_0:def 3;
      then
A49:  Lb in dom Dn by A26;
      then
A50:  Dn.Lb is TypeSCNominativeData of V,A by PARTFUN1:4,NOMIN_1:39;
      then
A51:  dom Ln = {n} \/ dom Lb by A1,A2,NOMIN_4:4;
A52:  s1 in dom Li by A11,A21,A35,XBOOLE_0:def 3;
      then
A53:  s1 in dom Lj by A40,XBOOLE_0:def 3;
      then
A54:  s1 in dom Lb by A45,XBOOLE_0:def 3;
      then
A55:  s1 in dom Ln by A51,XBOOLE_0:def 3;
      then
A56:  Ln in dom Ds by A27;
      then
A57:  Ln in dom T1 by A32,A36;
      then
A58:  Lb in dom S1 by A31,A49;
      then
A59:  Lj in dom R1 by A30,A43;
      then
A60:  Li in dom Q1 by A29,A38;
      hence
A61:  d in dom P1 by A10,A28,A33;
A62:  power_inv_pred A,loc,b0,n0,Ls
      proof
        take Ls;
        thus Ls = Ls;
A63:    Ds.Ln is TypeSCNominativeData of V,A by A56,PARTFUN1:4,NOMIN_1:39;
        then
A64:    dom Ls = {s} \/ dom Ln by A1,A2,NOMIN_4:4;
        i in {i} by TARSKI:def 1;
        then
A65:    i in dom Li by A35,XBOOLE_0:def 3;
        then
A66:    i in dom Lj by A40,XBOOLE_0:def 3;
        then
A67:    i in dom Lb by A45,XBOOLE_0:def 3;
        then i in dom Ln by A51,XBOOLE_0:def 3;
        then
A68:    i in dom Ls by A64,XBOOLE_0:def 3;
        j in {j} by TARSKI:def 1;
        then
A69:    j in dom Lj by A40,XBOOLE_0:def 3;
        then
A70:    j in dom Lb by A45,XBOOLE_0:def 3;
        then
A71:    j in dom Ln by A51,XBOOLE_0:def 3;
        then
A72:    j in dom Ls by A64,XBOOLE_0:def 3;
        b in {b} by TARSKI:def 1;
        then
A73:    b in dom Lb by A45,XBOOLE_0:def 3;
        then
A74:    b in dom Ln by A51,XBOOLE_0:def 3;
        then
A75:    b in dom Ls by A64, XBOOLE_0:def 3;
        n in {n} by TARSKI:def 1;
        then n in dom Ln by A51,XBOOLE_0:def 3;
        then
A76:    n in dom Ls by A64,XBOOLE_0:def 3;
        s in {s} by TARSKI:def 1;
        then s in dom Ls by A64,XBOOLE_0:def 3;
        hence {i,j,b,n,s} c= dom Ls by A68,A72,A75,A76,ENUMSET1:def 3;
        thus Ls.j = Ln.j by A1,A2,A3,A63,A71,NOMIN_5:3
        .= Lb.j by A1,A2,A3,A50,A70,NOMIN_5:3
        .= Lj.j by A1,A2,A3,A44,A69,NOMIN_5:3
        .= Dj.Li by A1,A39,NOMIN_2:10
        .= denaming(j1,Li) by A38,NOMIN_1:def 18
        .= Li.j1 by A37,NOMIN_1:def 12
        .= 1 by A1,A2,A11,A4,A18,A13,A34,NOMIN_5:3;
        thus Ls.b = Ln.b by A1,A2,A3,A63,A74,NOMIN_5:3
        .= Lb.b by A1,A2,A3,A50,A73,NOMIN_5:3
        .= Db.Lj by A1,A44,NOMIN_2:10
        .= denaming(b1,Lj) by A43,NOMIN_1:def 18
        .= Lj.b1 by A42,NOMIN_1:def 12
        .= Li.b1 by A1,A2,A4,A39,A41,NOMIN_5:3
        .= b0 by A1,A2,A11,A19,A14,A34,A4,NOMIN_5:3;
        thus Ls.n = Ln.n by A1,A2,A3,A11,A18,A19,A20,A21,A33,Th2
        .= Dn.Lb by A1,A50,NOMIN_2:10
        .= denaming(n1,Lb) by A49,NOMIN_1:def 18
        .= Lb.n1 by A48,NOMIN_1:def 12
        .= Lj.n1 by A1,A2,A4,A44,A47,NOMIN_5:3
        .= Li.n1 by A1,A2,A4,A39,A46,NOMIN_5:3
        .= n0 by A1,A2,A11,A20,A15,A4,A34,NOMIN_5:3;
A78:    Ln.s1 = Lb.s1 by A1,A2,A4,A50,A54,NOMIN_5:3
        .= Lj.s1 by A1,A2,A4,A44,A53,NOMIN_5:3
        .= Li.s1 by A1,A2,A39,A4,A52,NOMIN_5:3
        .= 1 by A1,A2,A11,A21,A16,A34,A4,NOMIN_5:3;
        take 1,0;
        thus Ls.i = Ln.i by A1,A2,A11,A3,A18,A19,A20,A21,A33,Th3
        .= Lb.i by A1,A2,A50,A3,A67,NOMIN_5:3
        .= Lj.i by A1,A2,A66,A3,A44,NOMIN_5:3
        .= Li.i by A1,A2,A39,A3,A65,NOMIN_5:3
        .= Di.d1 by A1,A34,NOMIN_2:10
        .= denaming(i1,d1) by A33,NOMIN_1:def 18
        .= 0 by A11,A12,A17,NOMIN_1:def 12;
        thus Ls.s = Ds.Ln by A1,A63,NOMIN_2:10
        .= denaming(s1,Ln) by A56,NOMIN_1:def 18
        .= 1 by A78,A55,NOMIN_1:def 12;
        thus 1 = b0|^0 by NEWTON:4;
      end;
      thus P1.d = Q1.Li by A10,A61,NOMIN_2:35
      .= R1.Lj by A60,NOMIN_2:35
      .= S1.Lb by A59,NOMIN_2:35
      .= T1.Ln by A58,NOMIN_2:35
      .= inv.Ls by A57,NOMIN_2:35
      .= TRUE by A36,A62,Def12;
    end;
    then
A79: <*I,asi,Q1*> is SFHT of D by A5,NOMIN_3:15;
A80: <*PP_inversion(Q1),asj,R1*> is SFHT of D by NOMIN_4:16;
A81: <*PP_inversion(R1),asb,S1*> is SFHT of D by NOMIN_4:16;
A82: <*PP_inversion(S1),asn,T1*> is SFHT of D by NOMIN_4:16;
     <*PP_inversion(T1),ass,inv*> is SFHT of D by NOMIN_4:16;
     hence thesis by A79,A6,A7,A8,A9,A80,A81,A82,Th1;
   end;
