reserve f, g, h for Function;
reserve x, y, z, u, X for set,
  A for non empty set,
  n for Element of NAT,
  f for Function of X, X;
reserve f for c=-monotone Function of bool X, bool X,
  S for Subset of X;
reserve X, Y for non empty set,
  f for Function of X, Y,
  g for Function of Y, X;
reserve L for Lattice,
  f for Function of the carrier of L, the carrier of L,
  x for Element of L,
  O, O1, O2, O3, O4 for Ordinal,
  T for Sequence;

theorem
  iter(f, n).x = (f, n)-.x
proof
  defpred P[Nat] means iter(f, $1).x = (f, $1)-.x;
A1: dom f = the carrier of L by FUNCT_2:def 1;
  then
A2: x in field f by XBOOLE_0:def 3;
A3: now
    let n be Nat;
    assume
A4: P[n];
    rng f c= the carrier of L;
    then
A5: dom iter(f, n) = dom f by A1,FUNCT_7:74;
    iter(f, n+1).x = (f*iter(f, n)).x by FUNCT_7:71
      .= f.(f, n)-.x by A1,A4,A5,FUNCT_1:13
      .= (f, succ Segm n)-.x by Th16
      .= (f, Segm(n+1))-.x by NAT_1:38;
    hence P[n+1];
  end;
  iter(f, 0).x = id(field f).x by FUNCT_7:68
    .= x by A2,FUNCT_1:18
    .= (f, 0)-.x by Th14;
  then
A6: P[ 0 ];
  for n being Nat holds P[n] from NAT_1:sch 2(A6, A3);
  hence thesis;
end;
