reserve v,x for object;
reserve D,V,A for set;
reserve n for Nat;
reserve p,q for PartialPredicate of D;
reserve f,g for BinominativeFunction of D;
reserve D for non empty set;
reserve d for Element of D;
reserve f,g for BinominativeFunction of D;
reserve p,q,r,s for PartialPredicate of D;
reserve p,q for SCPartialNominativePredicate of V,A;
reserve f,g for SCBinominativeFunction of V,A;
reserve E for (V,A)-FPrg-yielding FinSequence;
reserve e for Element of product E;
reserve d for TypeSCNominativeData of V,A;

theorem
  <*p, PP_composition(SC_Fsuperpos(PPid(ND(V,A)),g,v),f), q*>
   is SFHT of ND(V,A)
  implies
  <*p,SC_Fsuperpos(f,g,v),q*> is SFHT of ND(V,A)
  proof
    set I = PPid(ND(V,A));
    set F = SC_Fsuperpos(f,g,v);
    set G = SC_Fsuperpos(I,g,v);
    set C = PP_composition(G,f);
    assume <*p,C,q*> is SFHT of ND(V,A);
    then
A1: for d holds d in dom p & p.d = TRUE & d in dom C & C.d in dom q
     implies q.(C.d) = TRUE by Th11;
    for d holds d in dom p & p.d = TRUE & d in dom F & F.d in dom q implies
     q.(F.d) = TRUE
    proof
      let d such that
A2:   d in dom p and
A3:   p.d = TRUE and
A4:   d in dom F and
A5:   F.d in dom q;
      set o = local_overlapping(V,A,d,g.d,v);
A6:   F.d = f.o by A4,NOMIN_2:38;
A7:   o in ND(V,A);
      dom F = {d where d is TypeSCNominativeData of V,A:
       local_overlapping(V,A,d,g.d,v) in dom f & d in dom g} by NOMIN_2:def 15;
      then consider d1 being TypeSCNominativeData of V,A such that
A8:   d = d1 and
A9:   local_overlapping(V,A,d1,g.d1,v) in dom f and
A10:  d1 in dom g by A4;
      dom G = {d where d is TypeSCNominativeData of V,A:
       local_overlapping(V,A,d,g.d,v) in dom I & d in dom g} by NOMIN_2:def 15;
      then
A11:  d in dom G by A7,A8,A10;
A12:  o = I.o by A7,FUNCT_1:18
      .= G.d by A11,NOMIN_2:38;
A13:  C = f*G by PARTPR_2:def 1;
      then C.d = f.(G.d) by A11,FUNCT_1:13;
      hence q.(F.d) = TRUE by A1,A2,A3,A5,A6,A11,A13,A8,A9,A12,FUNCT_1:11;
    end;
    hence thesis by Th27;
  end;
