let A be preIfWhileAlgebra; for I being Element of A
for S being non empty set
for T being Subset of S
for s being Element of S
for f being ExecutionFunction of A,S,T st s in T holds
( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) )
let I be Element of A; for S being non empty set
for T being Subset of S
for s being Element of S
for f being ExecutionFunction of A,S,T st s in T holds
( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) )
let S be non empty set ; for T being Subset of S
for s being Element of S
for f being ExecutionFunction of A,S,T st s in T holds
( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) )
let T be Subset of S; for s being Element of S
for f being ExecutionFunction of A,S,T st s in T holds
( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) )
let s be Element of S; for f being ExecutionFunction of A,S,T st s in T holds
( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) )
let f be ExecutionFunction of A,S,T; ( s in T implies ( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) ) )
assume A1:
s in T
; ( ( f iteration_terminates_for I,s implies f iteration_terminates_for I,f . s,I ) & ( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s ) & iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f) )
thus A2:
( f iteration_terminates_for I,s iff f iteration_terminates_for I,f . s,I )
iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f)proof
thus
(
f iteration_terminates_for I,
s implies
f iteration_terminates_for I,
f . s,
I )
( f iteration_terminates_for I,f . s,I implies f iteration_terminates_for I,s )proof
given r being non
empty FinSequence of
S such that A3:
r . 1
= s
and A4:
r . (len r) nin T
and A5:
for
i being
Nat st 1
<= i &
i < len r holds
(
r . i in T &
r . (i + 1) = f . (r . i),
I )
;
AOFA_000:def 33 f iteration_terminates_for I,f . s,I
consider r1 being
Element of
S,
q being
FinSequence of
S such that
r1 = r . 1
and A6:
r = <*r1*> ^ q
by FINSEQ_3:111;
A7:
len r = 1
+ (len q)
by A6, FINSEQ_5:8;
then reconsider q =
q as non
empty FinSequence of
S by A1, A3, A4, CARD_1:47;
len r >= 1
by A7, NAT_1:11;
then A8:
1
< len r
by A1, A3, A4, XXREAL_0:1;
A9:
len q >= 0 + 1
by NAT_1:13;
take
q
;
AOFA_000:def 33 ( q . 1 = f . s,I & q . (len q) nin T & ( for i being Nat st 1 <= i & i < len q holds
( q . i in T & q . (i + 1) = f . (q . i),I ) ) )
A10:
len <*r1*> = 1
by FINSEQ_1:57;
1
in dom q
by A9, FINSEQ_3:27;
hence q . 1 =
r . (1 + 1)
by A6, A10, FINSEQ_1:def 7
.=
f . s,
I
by A3, A5, A8
;
( q . (len q) nin T & ( for i being Nat st 1 <= i & i < len q holds
( q . i in T & q . (i + 1) = f . (q . i),I ) ) )
len q in dom q
by A9, FINSEQ_3:27;
hence
q . (len q) nin T
by A4, A6, A7, A10, FINSEQ_1:def 7;
for i being Nat st 1 <= i & i < len q holds
( q . i in T & q . (i + 1) = f . (q . i),I )
let i be
Nat;
( 1 <= i & i < len q implies ( q . i in T & q . (i + 1) = f . (q . i),I ) )
assume that A11:
1
<= i
and A12:
i < len q
;
( q . i in T & q . (i + 1) = f . (q . i),I )
A13:
i in NAT
by ORDINAL1:def 13;
then A14:
i in dom q
by A11, A12, MSUALG_8:1;
A15:
1
<= i + 1
by NAT_1:11;
A16:
i + 1
< len r
by A7, A12, XREAL_1:8;
A17:
i + 1
in dom q
by A11, A12, A13, MSUALG_8:1;
A18:
r . (i + 1) = q . i
by A6, A10, A14, FINSEQ_1:def 7;
r . ((i + 1) + 1) = q . (i + 1)
by A6, A10, A17, FINSEQ_1:def 7;
hence
(
q . i in T &
q . (i + 1) = f . (q . i),
I )
by A5, A15, A16, A18;
verum
end;
given q being non
empty FinSequence of
S such that A19:
q . 1
= f . s,
I
and A20:
q . (len q) nin T
and A21:
for
i being
Nat st 1
<= i &
i < len q holds
(
q . i in T &
q . (i + 1) = f . (q . i),
I )
;
AOFA_000:def 33 f iteration_terminates_for I,s
take r =
<*s*> ^ q;
AOFA_000:def 33 ( r . 1 = s & r . (len r) nin T & ( for i being Nat st 1 <= i & i < len r holds
( r . i in T & r . (i + 1) = f . (r . i),I ) ) )
A22:
len <*s*> = 1
by FINSEQ_1:57;
thus A23:
r . 1
= s
by FINSEQ_1:58;
( r . (len r) nin T & ( for i being Nat st 1 <= i & i < len r holds
( r . i in T & r . (i + 1) = f . (r . i),I ) ) )
A24:
len r = 1
+ (len q)
by FINSEQ_5:8;
A25:
0 + 1
<= len q
by NAT_1:13;
then
len q in dom q
by FINSEQ_3:27;
hence
r . (len r) nin T
by A20, A22, A24, FINSEQ_1:def 7;
for i being Nat st 1 <= i & i < len r holds
( r . i in T & r . (i + 1) = f . (r . i),I )
let i be
Nat;
( 1 <= i & i < len r implies ( r . i in T & r . (i + 1) = f . (r . i),I ) )
assume that A26:
1
<= i
and A27:
i < len r
;
( r . i in T & r . (i + 1) = f . (r . i),I )
consider j being
Nat such that A28:
i = 1
+ j
by A26, NAT_1:10;
per cases
( j = 0 or j > 0 )
;
suppose
j > 0
;
( r . i in T & r . (i + 1) = f . (r . i),I )then A30:
j >= 0 + 1
by NAT_1:13;
A31:
j < len q
by A24, A27, A28, XREAL_1:8;
A32:
j in NAT
by ORDINAL1:def 13;
then A33:
j in dom q
by A30, A31, MSUALG_8:1;
A34:
j + 1
in dom q
by A30, A31, A32, MSUALG_8:1;
A35:
r . (j + 1) = q . j
by A22, A33, FINSEQ_1:def 7;
r . ((j + 1) + 1) = q . (j + 1)
by A22, A34, FINSEQ_1:def 7;
hence
(
r . i in T &
r . (i + 1) = f . (r . i),
I )
by A21, A28, A30, A31, A35;
verum end; end;
end;
per cases
( not f iteration_terminates_for I,s or f iteration_terminates_for I,f . s,I )
by A2;
suppose A36:
not
f iteration_terminates_for I,
s
;
iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f)then A37:
iteration-degree I,
s,
f = +infty
by Def34;
iteration-degree I,
(f . s,I),
f = +infty
by A2, A36, Def34;
hence
iteration-degree I,
s,
f = 1. + (iteration-degree I,(f . s,I),f)
by A37, XXREAL_3:def 2;
verum end; suppose A38:
f iteration_terminates_for I,
f . s,
I
;
iteration-degree I,s,f = 1. + (iteration-degree I,(f . s,I),f)then consider q being non
empty FinSequence of
S such that A39:
iteration-degree I,
(f . s,I),
f = (len q) - 1
and A40:
q . 1
= f . s,
I
and A41:
q . (len q) nin T
and A42:
for
i being
Nat st 1
<= i &
i < len q holds
(
q . i in T &
q . (i + 1) = f . (q . i),
I )
by Def34;
set r =
<*s*> ^ q;
A43:
len <*s*> = 1
by FINSEQ_1:57;
A44:
(<*s*> ^ q) . 1
= s
by FINSEQ_1:58;
A45:
len (<*s*> ^ q) = 1
+ (len q)
by FINSEQ_5:8;
1
+ ((len q) - 1) = len q
;
then A46:
(len (<*s*> ^ q)) - 1
= 1. + (iteration-degree I,(f . s,I),f)
by A39, A45, XXREAL_3:def 2;
A47:
0 + 1
<= len q
by NAT_1:13;
then
len q in dom q
by FINSEQ_3:27;
then A48:
(<*s*> ^ q) . (len (<*s*> ^ q)) nin T
by A41, A43, A45, FINSEQ_1:def 7;
now let i be
Nat;
( 1 <= i & i < len (<*s*> ^ q) implies ( (<*s*> ^ q) . b1 in T & (<*s*> ^ q) . (b1 + 1) = f . ((<*s*> ^ q) . b1),I ) )assume that A49:
1
<= i
and A50:
i < len (<*s*> ^ q)
;
( (<*s*> ^ q) . b1 in T & (<*s*> ^ q) . (b1 + 1) = f . ((<*s*> ^ q) . b1),I )consider j being
Nat such that A51:
i = 1
+ j
by A49, NAT_1:10;
per cases
( j = 0 or j > 0 )
;
suppose
j > 0
;
( (<*s*> ^ q) . b1 in T & (<*s*> ^ q) . (b1 + 1) = f . ((<*s*> ^ q) . b1),I )then A53:
j >= 0 + 1
by NAT_1:13;
A54:
j < len q
by A45, A50, A51, XREAL_1:8;
A55:
j in NAT
by ORDINAL1:def 13;
then A56:
j in dom q
by A53, A54, MSUALG_8:1;
A57:
j + 1
in dom q
by A53, A54, A55, MSUALG_8:1;
A58:
(<*s*> ^ q) . (j + 1) = q . j
by A43, A56, FINSEQ_1:def 7;
(<*s*> ^ q) . ((j + 1) + 1) = q . (j + 1)
by A43, A57, FINSEQ_1:def 7;
hence
(
(<*s*> ^ q) . i in T &
(<*s*> ^ q) . (i + 1) = f . ((<*s*> ^ q) . i),
I )
by A42, A51, A53, A54, A58;
verum end; end; end; hence
iteration-degree I,
s,
f = 1. + (iteration-degree I,(f . s,I),f)
by A2, A38, A44, A46, A48, Def34;
verum end; end;