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;

theorem
  f coincides_with p & <*p,f,p*> is SFHT of D implies
  <*p,iter(f,n),p*> is SFHT of D
  proof
    assume that
A1: f coincides_with p and
A2: <*p,f,p*> is SFHT of D;
    defpred P[Nat] means <*p,iter(f,$1),p*> is SFHT of D;
    iter(f,0) = id(field f) by FUNCT_7:68;
    then
A3: P[0] by Th14;
A4: for k being Nat st P[k] holds P[k+1]
    proof
      let k be Nat such that
A5:   P[k];
      set i = iter(f,k+1);
A6:   i is BinominativeFunction of D by FUNCT_7:86;
      for d holds d in dom p & p.d = TRUE & d in dom i & i.d in dom p implies
      p.(i.d) = TRUE
      proof
        let d;
        assume that
A7:     d in dom p and
A8:     p.d = TRUE and
A9:     d in dom i and
A10:    i.d in dom p;
        set j = iter(f,k);
A11:    j is BinominativeFunction of D by FUNCT_7:86;
A12:    i = j*f by FUNCT_7:69;
        then
A13:    i.d = j.(f.d) by A9,FUNCT_1:12;
A14:    d in dom f by A9,A12,FUNCT_1:11;
A15:    f.d in dom j by A9,A12,FUNCT_1:11;
A16:    f.d in dom p by A1,A7;
        p.(f.d) = TRUE by A1,A2,A7,A8,A14,Th11;
        hence p.(i.d) = TRUE by A5,A10,A11,A13,A15,A16,Th11;
      end;
      then <*p,i,p*> in SFHTs(D) by A6;
      hence thesis;
    end;
    for k being Nat holds P[k] from NAT_1:sch 2(A3,A4);
    hence thesis;
  end;
