now ( ( g is having_a_unity & len F = 0 implies ex b1 being Element of D st b1 = the_unity_wrt g ) & ( ( not g is having_a_unity or not len F = 0 ) implies ex b1 being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & b1 = f . (len F) ) ) )per cases
( len F = 0 or len F <> 0 )
;
suppose A2:
len F <> 0
;
( ( g is having_a_unity & len F = 0 implies ex b1 being Element of D st b1 = the_unity_wrt g ) & ( ( not g is having_a_unity or not len F = 0 ) implies ex b1 being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & b1 = f . (len F) ) ) )defpred S1[
Nat]
means for
F being
D -valued FinSequence st
len F = $1 &
len F <> 0 holds
ex
d being
Element of
D ex
f being
sequence of
D st
(
f . 1
= F . 1 & ( for
n being
Nat st
0 <> n &
n < len F holds
f . (n + 1) = g . (
(f . n),
(F . (n + 1))) ) &
d = f . (len F) );
A3:
for
k being
Nat st
S1[
k] holds
S1[
k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume A4:
S1[
k]
;
S1[k + 1]
let F be
D -valued FinSequence;
( len F = k + 1 & len F <> 0 implies ex d being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) ) )
assume that A5:
len F = k + 1
and
len F <> 0
;
ex d being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) )
reconsider G =
F | (Seg k) as
FinSequence of
D by FINSEQ_1:18;
A6:
len G = k
by A5, FINSEQ_3:53;
now ex d being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) )per cases
( len G = 0 or len G <> 0 )
;
suppose A7:
len G = 0
;
ex d being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) )set f =
NAT --> (F . 1);
A8:
rng (NAT --> (F . 1)) c= D
dom (NAT --> (F . 1)) = NAT
by FUNCOP_1:13;
then reconsider f =
NAT --> (F . 1) as
sequence of
D by A8, RELSET_1:4;
take d =
f . 1;
ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) )take f =
f;
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) )thus
f . 1
= F . 1
by FUNCOP_1:7;
( ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & d = f . (len F) )thus
for
n being
Nat st
0 <> n &
n < len F holds
f . (n + 1) = g . (
(f . n),
(F . (n + 1)))
by A5, A6, A7, NAT_1:14;
d = f . (len F)thus
d = f . (len F)
by A5, A6, A7;
verum end; suppose A11:
len G <> 0
;
ex a being Element of D ex h being sequence of D st
( h . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
h . (n + 1) = g . ((h . n),(F . (n + 1))) ) & a = h . (len F) )reconsider j =
len F as
Element of
NAT ;
1
<= len F
by A5, NAT_1:12;
then
len F in dom F
by FINSEQ_3:25;
then A12:
F . (len F) in rng F
by FUNCT_1:def 3;
rng F c= D
by RELAT_1:def 19;
then reconsider t =
F . (len F) as
Element of
D by A12;
len G >= 1
by A11, NAT_1:14;
then A13:
1
in dom G
by FINSEQ_3:25;
consider d being
Element of
D,
f being
sequence of
D such that A14:
f . 1
= G . 1
and A15:
for
n being
Nat st
0 <> n &
n < len G holds
f . (n + 1) = g . (
(f . n),
(G . (n + 1)))
and A16:
d = f . (len G)
by A4, A5, A11, FINSEQ_3:53;
deffunc H1(
Element of
NAT )
-> Element of
D =
f . $1;
consider h being
sequence of
D such that A17:
h . j = g . (
d,
t)
and A18:
for
n being
Element of
NAT st
n <> j holds
h . n = H1(
n)
from FUNCT_2:sch 6();
take a =
h . j;
ex h being sequence of D st
( h . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
h . (n + 1) = g . ((h . n),(F . (n + 1))) ) & a = h . (len F) )take h =
h;
( h . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
h . (n + 1) = g . ((h . n),(F . (n + 1))) ) & a = h . (len F) )
1
<> j
by A5, A11, FINSEQ_3:53;
hence h . 1 =
G . 1
by A14, A18
.=
F . 1
by A13, FUNCT_1:47
;
( ( for n being Nat st 0 <> n & n < len F holds
h . (n + 1) = g . ((h . n),(F . (n + 1))) ) & a = h . (len F) )thus
for
n being
Nat st
0 <> n &
n < len F holds
h . (n + 1) = g . (
(h . n),
(F . (n + 1)))
a = h . (len F)proof
let n be
Nat;
( 0 <> n & n < len F implies h . (n + 1) = g . ((h . n),(F . (n + 1))) )
assume that A19:
n <> 0
and A20:
n < len F
;
h . (n + 1) = g . ((h . n),(F . (n + 1)))
now h . (n + 1) = g . ((h . n),(F . (n + 1)))per cases
( n + 1 = len F or n + 1 <> len F )
;
suppose A22:
n + 1
<> len F
;
h . (n + 1) = g . ((h . n),(F . (n + 1)))
n + 1
<= len F
by A20, NAT_1:13;
then A23:
n + 1
< len F
by A22, XXREAL_0:1;
then A24:
n < len G
by A5, A6, XREAL_1:6;
( 1
<= n + 1 &
n + 1
<= len G )
by A5, A6, A23, NAT_1:12, NAT_1:13;
then A25:
n + 1
in dom G
by FINSEQ_3:25;
h . (n + 1) =
f . (n + 1)
by A18, A22
.=
g . (
(f . n),
(G . (n + 1)))
by A15, A19, A24
.=
g . (
(f . n),
(F . (n + 1)))
by A25, FUNCT_1:47
.=
g . (
(h . (In (n,NAT))),
(F . (n + 1)))
by A18, A20
;
hence
h . (n + 1) = g . (
(h . n),
(F . (n + 1)))
;
verum end; end; end;
hence
h . (n + 1) = g . (
(h . n),
(F . (n + 1)))
;
verum
end; thus
a = h . (len F)
;
verum end; end; end;
hence
ex
d being
Element of
D ex
f being
sequence of
D st
(
f . 1
= F . 1 & ( for
n being
Nat st
0 <> n &
n < len F holds
f . (n + 1) = g . (
(f . n),
(F . (n + 1))) ) &
d = f . (len F) )
;
verum
end; A26:
S1[
0 ]
;
for
k being
Nat holds
S1[
k]
from NAT_1:sch 2(A26, A3);
hence
( (
g is
having_a_unity &
len F = 0 implies ex
b1 being
Element of
D st
b1 = the_unity_wrt g ) & ( ( not
g is
having_a_unity or not
len F = 0 ) implies ex
b1 being
Element of
D ex
f being
sequence of
D st
(
f . 1
= F . 1 & ( for
n being
Nat st
0 <> n &
n < len F holds
f . (n + 1) = g . (
(f . n),
(F . (n + 1))) ) &
b1 = f . (len F) ) ) )
by A2;
verum end; end; end;
hence
( ( g is having_a_unity & len F = 0 implies ex b1 being Element of D st b1 = the_unity_wrt g ) & ( ( not g is having_a_unity or not len F = 0 ) implies ex b1 being Element of D ex f being sequence of D st
( f . 1 = F . 1 & ( for n being Nat st 0 <> n & n < len F holds
f . (n + 1) = g . ((f . n),(F . (n + 1))) ) & b1 = f . (len F) ) ) )
; verum