defpred S2[ object ] means f orbit $1 c= A;
consider Z being set such that
A10:
for a being object holds
( a in Z iff ( a in dom f & S2[a] ) )
from XBOOLE_0:sch 1();
A11:
Z c= dom f
by A10;
defpred S3[ object , object ] means ex n being Nat st
( $2 = (iter (f,n)) . $1 & $2 nin A & ( for i being Nat st i < n holds
(iter (f,i)) . $1 in A ) );
A12:
for a being object st a in (dom f) \ Z holds
ex b being object st S3[a,b]
proof
let a be
object ;
( a in (dom f) \ Z implies ex b being object st S3[a,b] )
assume A13:
a in (dom f) \ Z
;
ex b being object st S3[a,b]
then
a nin Z
by XBOOLE_0:def 5;
then
not
f orbit a c= A
by A10, A13;
then consider y being
object such that A14:
y in f orbit a
and A15:
y nin A
;
A16:
ex
n1 being
Element of
NAT st
(
y = (iter (f,n1)) . a &
a in dom (iter (f,n1)) )
by A14;
defpred S4[
Nat]
means (iter (f,$1)) . a nin A;
A17:
ex
n being
Nat st
S4[
n]
by A15, A16;
consider n being
Nat such that A18:
S4[
n]
and A19:
for
m being
Nat st
S4[
m] holds
n <= m
from NAT_1:sch 5(A17);
take b =
(iter (f,n)) . a;
S3[a,b]
take
n
;
( b = (iter (f,n)) . a & b nin A & ( for i being Nat st i < n holds
(iter (f,i)) . a in A ) )
thus
(
b = (iter (f,n)) . a &
b nin A )
by A18;
for i being Nat st i < n holds
(iter (f,i)) . a in A
let i be
Nat;
( i < n implies (iter (f,i)) . a in A )
thus
(
i < n implies
(iter (f,i)) . a in A )
by A19;
verum
end;
consider h being Function such that
A20:
dom h = (dom f) \ Z
and
A21:
for a being object st a in (dom f) \ Z holds
S3[a,h . a]
from CLASSES1:sch 1(A12);
take g = (Z --> x) +* h; ( dom g = dom f & ( for a being set st a in dom f holds
( ( f orbit a c= A implies g . a = x ) & ( for n being Nat st (iter (f,n)) . a nin A & ( for i being Nat st i < n holds
(iter (f,i)) . a in A ) holds
g . a = (iter (f,n)) . a ) ) ) )
dom (Z --> x) = Z
by FUNCOP_1:13;
hence dom g =
Z \/ ((dom f) \ Z)
by A20, FUNCT_4:def 1
.=
dom f
by A11, XBOOLE_1:45
;
for a being set st a in dom f holds
( ( f orbit a c= A implies g . a = x ) & ( for n being Nat st (iter (f,n)) . a nin A & ( for i being Nat st i < n holds
(iter (f,i)) . a in A ) holds
g . a = (iter (f,n)) . a ) )
let a be set ; ( a in dom f implies ( ( f orbit a c= A implies g . a = x ) & ( for n being Nat st (iter (f,n)) . a nin A & ( for i being Nat st i < n holds
(iter (f,i)) . a in A ) holds
g . a = (iter (f,n)) . a ) ) )
assume A22:
a in dom f
; ( ( f orbit a c= A implies g . a = x ) & ( for n being Nat st (iter (f,n)) . a nin A & ( for i being Nat st i < n holds
(iter (f,i)) . a in A ) holds
g . a = (iter (f,n)) . a ) )
let n be Nat; ( (iter (f,n)) . a nin A & ( for i being Nat st i < n holds
(iter (f,i)) . a in A ) implies g . a = (iter (f,n)) . a )
assume that
A25:
(iter (f,n)) . a nin A
and
A26:
for i being Nat st i < n holds
(iter (f,i)) . a in A
; g . a = (iter (f,n)) . a
A27:
n in NAT
by ORDINAL1:def 12;
a in dom (iter (f,n))
by A9, A22;
then
(iter (f,n)) . a in f orbit a
by A27;
then
not f orbit a c= A
by A25;
then
a nin Z
by A10;
then A28:
a in (dom f) \ Z
by A22, XBOOLE_0:def 5;
then consider n2 being Nat such that
A29:
h . a = (iter (f,n2)) . a
and
A30:
h . a nin A
and
A31:
for i being Nat st i < n2 holds
(iter (f,i)) . a in A
by A21;
A32:
n <= n2
by A26, A29, A30;
n2 <= n
by A25, A31;
then
n = n2
by A32, XXREAL_0:1;
hence
g . a = (iter (f,n)) . a
by A20, A28, A29, FUNCT_4:13; verum