reserve a,x,y for object, A,B for set,
  l,m,n for Nat;
reserve X,Y for set, x for object,
  p,q for Function-yielding FinSequence,
  f,g,h for Function;
reserve m,n,k for Nat, R for Relation;

theorem
  n <> 0 & a in X & f = X --> a implies iter(f,n) = f
proof
  assume that
A1: n <> 0 and
A2: a in X and
A3: f = X --> a;
  defpred P[Nat] means iter(f,$1+1) = f;
A4: now
A5: dom f = X by A3;
    let k such that
A6: P[k];
A7: now
      let x be object;
      assume
A8:   x in dom f;
      then
A9:   f.x = a by A3,FUNCOP_1:7;
      thus iter(f,k+1+1).x = (f*f).x by A6,Th70
        .= f.(f.x) by A8,FUNCT_1:13
        .= f.x by A2,A3,A9,FUNCOP_1:7;
    end;
    rng f = {a} by A2,A3,FUNCOP_1:8;
    then rng f c= dom f by A2,A5,ZFMISC_1:31;
    then dom iter(f,k+1+1) = dom f by Th73;
    hence P[k+1] by A7,FUNCT_1:2;
  end;
A10: P[ 0] by Th69;
A11: P[k] from NAT_1:sch 2(A10,A4);
  consider k be Nat such that
A12: n = k+1 by A1,NAT_1:6;
  reconsider k as Nat;
  n = k + 1 by A12;
  hence thesis by A11;
end;
