let x be set ; for m being Nat
for g, f being Function st rng f c= dom f & x in dom f & g . 0 = x & ( for i being Nat st i < m holds
g . (i + 1) = f . (g . i) ) holds
g . m = (iter (f,m)) . x
let m be Nat; for g, f being Function st rng f c= dom f & x in dom f & g . 0 = x & ( for i being Nat st i < m holds
g . (i + 1) = f . (g . i) ) holds
g . m = (iter (f,m)) . x
let g, f be Function; ( rng f c= dom f & x in dom f & g . 0 = x & ( for i being Nat st i < m holds
g . (i + 1) = f . (g . i) ) implies g . m = (iter (f,m)) . x )
assume B10:
( rng f c= dom f & x in dom f )
; ( not g . 0 = x or ex i being Nat st
( i < m & not g . (i + 1) = f . (g . i) ) or g . m = (iter (f,m)) . x )
then B11:
x in (dom f) \/ (rng f)
by XBOOLE_0:def 3;
defpred S1[ Nat] means ( g . 0 = x & ( for i being Nat st i < $1 holds
g . (i + 1) = f . (g . i) ) implies g . $1 = (iter (f,$1)) . x );
B0:
S1[ 0 ]
B1:
for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be
Nat;
( S1[n] implies S1[n + 1] )
assume C0:
S1[
n]
;
S1[n + 1]
assume C1:
g . 0 = x
;
( ex i being Nat st
( i < n + 1 & not g . (i + 1) = f . (g . i) ) or g . (n + 1) = (iter (f,(n + 1))) . x )
assume C2:
for
i being
Nat st
i < n + 1 holds
g . (i + 1) = f . (g . i)
;
g . (n + 1) = (iter (f,(n + 1))) . x
Z3:
for
i being
Nat st
i < n holds
g . (i + 1) = f . (g . i)
C4:
x in dom (iter (f,n))
by B10, FUNCT_7:74;
n + 0 < n + 1
by XREAL_1:8;
then g . (n + 1) =
f . (g . n)
by C2
.=
(f * (iter (f,n))) . x
by C4, Z3, C0, C1, FUNCT_1:13
.=
(iter (f,(n + 1))) . x
by FUNCT_7:71
;
hence
g . (n + 1) = (iter (f,(n + 1))) . x
;
verum
end;
for n being Nat holds S1[n]
from NAT_1:sch 2(B0, B1);
hence
( not g . 0 = x or ex i being Nat st
( i < m & not g . (i + 1) = f . (g . i) ) or g . m = (iter (f,m)) . x )
; verum