let f be Function; for n being Nat st rng f c= dom f holds
( dom (iter (f,n)) = dom f & rng (iter (f,n)) c= dom f )
let n be Nat; ( rng f c= dom f implies ( dom (iter (f,n)) = dom f & rng (iter (f,n)) c= dom f ) )
defpred S1[ Nat] means ( dom (iter (f,$1)) = dom f & rng (iter (f,$1)) c= dom f );
assume
rng f c= dom f
; ( dom (iter (f,n)) = dom f & rng (iter (f,n)) c= dom f )
then
iter (f,0) = id (dom f)
by Lm1;
then A1:
S1[ 0 ]
by RELAT_1:45;
A2:
for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume A3:
(
dom (iter (f,k)) = dom f &
rng (iter (f,k)) c= dom f )
;
S1[k + 1]
(
iter (
f,
(k + 1))
= f * (iter (f,k)) &
iter (
f,
(k + 1))
= (iter (f,k)) * f )
by FUNCT_7:69, FUNCT_7:71;
then
(
dom (iter (f,(k + 1))) = dom (iter (f,k)) &
rng (iter (f,(k + 1))) c= rng (iter (f,k)) )
by A3, RELAT_1:26, RELAT_1:27;
hence
S1[
k + 1]
by A3, XBOOLE_1:1;
verum
end;
for k being Nat holds S1[k]
from NAT_1:sch 2(A1, A2);
hence
( dom (iter (f,n)) = dom f & rng (iter (f,n)) c= dom f )
; verum