let s be State of SCMPDS; for I being halt-free shiftable Program of SCMPDS
for a being Int_position
for i, c being Integer
for f, g being FinSequence of INT
for m, n, m1 being Element of NAT st card I > 0 & s . a = c & len f = n & len g = n & f is_FinSequence_on s,m & g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m & 1 = s . (DataLoc (c,i)) & m1 = (m + n) + 1 & m + 1 = s . (intpos m1) & m + n = s . (intpos (m1 + 1)) & ( for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) holds
( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
let I be halt-free shiftable Program of SCMPDS; for a being Int_position
for i, c being Integer
for f, g being FinSequence of INT
for m, n, m1 being Element of NAT st card I > 0 & s . a = c & len f = n & len g = n & f is_FinSequence_on s,m & g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m & 1 = s . (DataLoc (c,i)) & m1 = (m + n) + 1 & m + 1 = s . (intpos m1) & m + n = s . (intpos (m1 + 1)) & ( for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) holds
( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
let a be Int_position ; for i, c being Integer
for f, g being FinSequence of INT
for m, n, m1 being Element of NAT st card I > 0 & s . a = c & len f = n & len g = n & f is_FinSequence_on s,m & g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m & 1 = s . (DataLoc (c,i)) & m1 = (m + n) + 1 & m + 1 = s . (intpos m1) & m + n = s . (intpos (m1 + 1)) & ( for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) holds
( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
let i, c be Integer; for f, g being FinSequence of INT
for m, n, m1 being Element of NAT st card I > 0 & s . a = c & len f = n & len g = n & f is_FinSequence_on s,m & g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m & 1 = s . (DataLoc (c,i)) & m1 = (m + n) + 1 & m + 1 = s . (intpos m1) & m + n = s . (intpos (m1 + 1)) & ( for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) holds
( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
let f, g be FinSequence of INT ; for m, n, m1 being Element of NAT st card I > 0 & s . a = c & len f = n & len g = n & f is_FinSequence_on s,m & g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m & 1 = s . (DataLoc (c,i)) & m1 = (m + n) + 1 & m + 1 = s . (intpos m1) & m + n = s . (intpos (m1 + 1)) & ( for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) holds
( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
let m, n, m1 be Element of NAT ; ( card I > 0 & s . a = c & len f = n & len g = n & f is_FinSequence_on s,m & g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m & 1 = s . (DataLoc (c,i)) & m1 = (m + n) + 1 & m + 1 = s . (intpos m1) & m + n = s . (intpos (m1 + 1)) & ( for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) implies ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n ) )
set b = DataLoc (c,i);
assume that
A1:
card I > 0
and
A2:
s . a = c
and
A3:
len f = n
and
A4:
len g = n
; ( not f is_FinSequence_on s,m or not g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m or not 1 = s . (DataLoc (c,i)) or not m1 = (m + n) + 1 or not m + 1 = s . (intpos m1) or not m + n = s . (intpos (m1 + 1)) or ex t being State of SCMPDS ex f1, f2 being FinSequence of INT ex k1, k2, y1, yn being Element of NAT st
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & not ( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) or ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n ) )
set WH = while>0 (a,i,I);
set sWH = stop (while>0 (a,i,I));
set iWH = Initialize (stop (while>0 (a,i,I)));
assume A5:
f is_FinSequence_on s,m
; ( not g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m or not 1 = s . (DataLoc (c,i)) or not m1 = (m + n) + 1 or not m + 1 = s . (intpos m1) or not m + n = s . (intpos (m1 + 1)) or ex t being State of SCMPDS ex f1, f2 being FinSequence of INT ex k1, k2, y1, yn being Element of NAT st
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & not ( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) or ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n ) )
defpred S1[ Element of NAT ] means for t being State of SCMPDS
for f1 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= $1 & f1 is_FinSequence_on t,m & len f1 = n holds
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c );
assume A6:
g is_FinSequence_on IExec ((while>0 (a,i,I)),s),m
; ( not 1 = s . (DataLoc (c,i)) or not m1 = (m + n) + 1 or not m + 1 = s . (intpos m1) or not m + n = s . (intpos (m1 + 1)) or ex t being State of SCMPDS ex f1, f2 being FinSequence of INT ex k1, k2, y1, yn being Element of NAT st
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & not ( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) or ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n ) )
assume A7:
1 = s . (DataLoc (c,i))
; ( not m1 = (m + n) + 1 or not m + 1 = s . (intpos m1) or not m + n = s . (intpos (m1 + 1)) or ex t being State of SCMPDS ex f1, f2 being FinSequence of INT ex k1, k2, y1, yn being Element of NAT st
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & not ( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) or ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n ) )
assume that
A8:
m1 = (m + n) + 1
and
A9:
m + 1 = s . (intpos m1)
and
A10:
m + n = s . (intpos (m1 + 1))
; ( ex t being State of SCMPDS ex f1, f2 being FinSequence of INT ex k1, k2, y1, yn being Element of NAT st
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & not ( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) ) ) or ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n ) )
A11:
m1 = ((m + n) + (2 * 0)) + 1
by A8;
assume A12:
for t being State of SCMPDS
for f1, f2 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) holds
( I is_closed_on t & I is_halting_on t & (IExec (I,t)) . a = t . a & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(IExec (I,t)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & ( y1 >= yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for j being Element of NAT st 1 <= j & j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) ) & ( y1 < yn implies ( (IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for j being Element of NAT st ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex ym being Element of NAT st
( y1 <= ym & ym <= yn & m + y1 = (IExec (I,t)) . (intpos k2) & (m + ym) - 1 = (IExec (I,t)) . (intpos (k2 + 1)) & (m + ym) + 1 = (IExec (I,t)) . (intpos (k2 + 2)) & m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for j being Element of NAT st y1 <= j & j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for j being Element of NAT st ym < j & j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) ) & ( f1 is_FinSequence_on t,m & f2 is_FinSequence_on IExec (I,t),m & len f1 = n & len f2 = n implies f1,f2 are_fiberwise_equipotent ) )
; ( while>0 (a,i,I) is_halting_on s & f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
A13:
S1[ 0 ]
proof
let t be
State of
SCMPDS;
for f1 being FinSequence of INT
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= 0 & f1 is_FinSequence_on t,m & len f1 = n holds
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )let f1 be
FinSequence of
INT ;
for k1, k2, y1, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= 0 & f1 is_FinSequence_on t,m & len f1 = n holds
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )let k1,
k2,
y1,
yn be
Element of
NAT ;
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= 0 & f1 is_FinSequence_on t,m & len f1 = n implies ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c ) )
assume that A14:
t . a = c
and A15:
(2 * k1) + 1
= t . (DataLoc (c,i))
and A16:
k2 = ((m + n) + (2 * k1)) + 1
and A17:
( ( 1
<= y1 &
yn <= n ) or
y1 >= yn )
and A18:
m + y1 = t . (intpos k2)
and A19:
m + yn = t . (intpos (k2 + 1))
and A20:
yn - y1 <= 0
and A21:
f1 is_FinSequence_on t,
m
and A22:
len f1 = n
;
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
A23:
I is_halting_on t
by A12, A14, A15, A16, A17, A18, A19;
take k =
(LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2;
ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
set tk =
Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
k);
A24:
I is_closed_on t
by A12, A14, A15, A16, A17, A18, A19;
then A25:
DataPart (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) = DataPart (IExec (I,t))
by A14, A15, A23, Th2;
consider f2 being
FinSequence of
INT such that A26:
len f2 = n
and A27:
for
i being
Element of
NAT st 1
<= i &
i <= len f2 holds
f2 . i = (IExec (I,t)) . (intpos (m + i))
by SCPISORT:2;
take
f2
;
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
thus
(Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
k)
by A14, A15, A24, A23, Th2;
( f2 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
now let i be
Element of
NAT ;
( 1 <= i & i <= len f2 implies f2 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos (m + i)) )assume that A28:
1
<= i
and A29:
i <= len f2
;
f2 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos (m + i))thus f2 . i =
(IExec (I,t)) . (intpos (m + i))
by A27, A28, A29
.=
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos (m + i))
by A25, SCMPDS_4:23
;
verum end;
hence
f2 is_FinSequence_on Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
k),
m
by SCPISORT:def 1;
( len f2 = n & f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
thus
len f2 = n
by A26;
( f1,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
f2 is_FinSequence_on IExec (
I,
t),
m
by A27, SCPISORT:def 1;
hence
f1,
f2 are_fiberwise_equipotent
by A12, A14, A15, A16, A17, A18, A19, A21, A22, A26;
( f2 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
thus
f2 is_non_decreasing_on y1,
yn
by A20, SCPISORT:1, XREAL_1:52;
( ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
thus
for
j being
Element of
NAT st
y1 < yn & ( ( 1
<= j &
j < y1 ) or (
yn < j &
j <= n ) ) holds
f2 . j = t . (intpos (m + j))
by A20, XREAL_1:52;
( ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
hereby ( ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
let j be
Element of
NAT ;
( y1 >= yn & 1 <= j & j <= n implies f2 . j = t . (intpos (m + j)) )assume that A30:
y1 >= yn
and A31:
1
<= j
and A32:
j <= n
;
f2 . j = t . (intpos (m + j))thus f2 . j =
(IExec (I,t)) . (intpos (m + j))
by A26, A27, A31, A32
.=
t . (intpos (m + j))
by A12, A14, A15, A16, A18, A19, A30, A31, A32
;
verum
end;
hereby ( (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c )
let j be
Element of
NAT ;
( 1 <= j & j < (2 * k1) + 1 implies (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) )assume that A33:
1
<= j
and A34:
j < (2 * k1) + 1
;
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j))thus (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) =
(IExec (I,t)) . (intpos ((m + n) + j))
by A25, SCMPDS_4:23
.=
t . (intpos ((m + n) + j))
by A12, A14, A15, A16, A17, A18, A19, A33, A34
;
verum
end;
(
y1 >= yn implies (
(IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) - 1 & ( for
j being
Element of
NAT st 1
<= j &
j <= n holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) ) )
by A12, A14, A15, A16, A18, A19;
hence
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2
by A15, A20, A25, SCMPDS_4:23, XREAL_1:52;
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c
(IExec (I,t)) . a = t . a
by A12, A14, A15, A16, A17, A18, A19;
hence
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),k)) . a = c
by A14, A25, SCMPDS_4:23;
verum
end;
A35:
now let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )assume A36:
S1[
k]
;
S1[k + 1]now let t be
State of
SCMPDS;
for f1 being FinSequence of INT
for k1, k2, y1, ym, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= k + 1 & f1 is_FinSequence_on t,m & len f1 = n holds
ex kk being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b14))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b14) & b15 is_FinSequence_on Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b14),m & len b15 = n & f2,b15 are_fiberwise_equipotent & b15 is_non_decreasing_on b11,b13 & ( for j being Element of NAT st b11 < b13 & ( ( 1 <= b16 & b16 < b11 ) or ( b13 < b16 & b16 <= n ) ) holds
b15 . b16 = kk . (intpos (m + b16)) ) & ( for j being Element of NAT st b11 >= b13 & 1 <= b16 & b16 <= n holds
b15 . b16 = kk . (intpos (m + b16)) ) & ( for j being Element of NAT st 1 <= b16 & b16 < (2 * j) + 1 holds
(Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b14)) . (intpos ((m + n) + b16)) = kk . (intpos ((m + n) + b16)) ) & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b14)) . (DataLoc (c,i)) = (kk . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b14)) . a = c )let f1 be
FinSequence of
INT ;
for k1, k2, y1, ym, yn being Element of NAT st t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= k + 1 & f1 is_FinSequence_on t,m & len f1 = n holds
ex kk being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b13))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b13) & b14 is_FinSequence_on Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b13),m & len b14 = n & f2,b14 are_fiberwise_equipotent & b14 is_non_decreasing_on b10,b12 & ( for j being Element of NAT st b10 < b12 & ( ( 1 <= b15 & b15 < b10 ) or ( b12 < b15 & b15 <= n ) ) holds
b14 . b15 = kk . (intpos (m + b15)) ) & ( for j being Element of NAT st b10 >= b12 & 1 <= b15 & b15 <= n holds
b14 . b15 = kk . (intpos (m + b15)) ) & ( for j being Element of NAT st 1 <= b15 & b15 < (2 * j) + 1 holds
(Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b13)) . (intpos ((m + n) + b15)) = kk . (intpos ((m + n) + b15)) ) & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b13)) . (DataLoc (c,i)) = (kk . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b13)) . a = c )let k1,
k2,
y1,
ym,
yn be
Element of
NAT ;
( t . a = c & (2 * k1) + 1 = t . (DataLoc (c,i)) & k2 = ((m + n) + (2 * k1)) + 1 & ( ( 1 <= y1 & yn <= n ) or y1 >= yn ) & m + y1 = t . (intpos k2) & m + yn = t . (intpos (k2 + 1)) & yn - y1 <= k + 1 & f1 is_FinSequence_on t,m & len f1 = n implies ex kk being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8) & b9 is_FinSequence_on Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8),m & len b9 = n & f2,b9 are_fiberwise_equipotent & b9 is_non_decreasing_on b5,b7 & ( for j being Element of NAT st b5 < b7 & ( ( 1 <= b10 & b10 < b5 ) or ( b7 < b10 & b10 <= n ) ) holds
b9 . b10 = kk . (intpos (m + b10)) ) & ( for j being Element of NAT st b5 >= b7 & 1 <= b10 & b10 <= n holds
b9 . b10 = kk . (intpos (m + b10)) ) & ( for j being Element of NAT st 1 <= b10 & b10 < (2 * j) + 1 holds
(Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . (intpos ((m + n) + b10)) = kk . (intpos ((m + n) + b10)) ) & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . (DataLoc (c,i)) = (kk . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . a = c ) )assume that A37:
t . a = c
and A38:
(2 * k1) + 1
= t . (DataLoc (c,i))
and A39:
k2 = ((m + n) + (2 * k1)) + 1
and A40:
( ( 1
<= y1 &
yn <= n ) or
y1 >= yn )
and A41:
m + y1 = t . (intpos k2)
and A42:
m + yn = t . (intpos (k2 + 1))
and A43:
yn - y1 <= k + 1
and A44:
f1 is_FinSequence_on t,
m
and A45:
len f1 = n
;
ex kk being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8) & b9 is_FinSequence_on Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8),m & len b9 = n & f2,b9 are_fiberwise_equipotent & b9 is_non_decreasing_on b5,b7 & ( for j being Element of NAT st b5 < b7 & ( ( 1 <= b10 & b10 < b5 ) or ( b7 < b10 & b10 <= n ) ) holds
b9 . b10 = kk . (intpos (m + b10)) ) & ( for j being Element of NAT st b5 >= b7 & 1 <= b10 & b10 <= n holds
b9 . b10 = kk . (intpos (m + b10)) ) & ( for j being Element of NAT st 1 <= b10 & b10 < (2 * j) + 1 holds
(Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . (intpos ((m + n) + b10)) = kk . (intpos ((m + n) + b10)) ) & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . (DataLoc (c,i)) = (kk . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . a = c )per cases
( yn - y1 <= 0 or yn - y1 > 0 )
;
suppose
yn - y1 <= 0
;
ex kk being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8) & b9 is_FinSequence_on Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8),m & len b9 = n & f2,b9 are_fiberwise_equipotent & b9 is_non_decreasing_on b5,b7 & ( for j being Element of NAT st b5 < b7 & ( ( 1 <= b10 & b10 < b5 ) or ( b7 < b10 & b10 <= n ) ) holds
b9 . b10 = kk . (intpos (m + b10)) ) & ( for j being Element of NAT st b5 >= b7 & 1 <= b10 & b10 <= n holds
b9 . b10 = kk . (intpos (m + b10)) ) & ( for j being Element of NAT st 1 <= b10 & b10 < (2 * j) + 1 holds
(Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . (intpos ((m + n) + b10)) = kk . (intpos ((m + n) + b10)) ) & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . (DataLoc (c,i)) = (kk . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize kk) +* (stop (while>0 (a,i,I))))),((Initialize kk) +* (stop (while>0 (a,i,I)))),b8)) . a = c )hence
ex
kk being
Element of
NAT ex
f2 being
FinSequence of
INT st
(
(Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),kk))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
kk) &
f2 is_FinSequence_on Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
kk),
m &
len f2 = n &
f1,
f2 are_fiberwise_equipotent &
f2 is_non_decreasing_on y1,
yn & ( for
j being
Element of
NAT st
y1 < yn & ( ( 1
<= j &
j < y1 ) or (
yn < j &
j <= n ) ) holds
f2 . j = t . (intpos (m + j)) ) & ( for
j being
Element of
NAT st
y1 >= yn & 1
<= j &
j <= n holds
f2 . j = t . (intpos (m + j)) ) & ( for
j being
Element of
NAT st 1
<= j &
j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),kk)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) &
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),kk)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 &
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),kk)) . a = c )
by A13, A37, A38, A39, A40, A41, A42, A44, A45;
verum end; suppose A46:
yn - y1 > 0
;
ex mm being Element of NAT ex f4 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize mm) +* (stop (while>0 (a,i,I))))),((Initialize mm) +* (stop (while>0 (a,i,I)))),b8))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize mm) +* (stop (while>0 (a,i,I))))),((Initialize mm) +* (stop (while>0 (a,i,I)))),b8) & b9 is_FinSequence_on Comput ((ProgramPart ((Initialize mm) +* (stop (while>0 (a,i,I))))),((Initialize mm) +* (stop (while>0 (a,i,I)))),b8),m & len b9 = n & f4,b9 are_fiberwise_equipotent & b9 is_non_decreasing_on b5,b7 & ( for j being Element of NAT st b5 < b7 & ( ( 1 <= b10 & b10 < b5 ) or ( b7 < b10 & b10 <= n ) ) holds
b9 . b10 = mm . (intpos (m + b10)) ) & ( for j being Element of NAT st b5 >= b7 & 1 <= b10 & b10 <= n holds
b9 . b10 = mm . (intpos (m + b10)) ) & ( for j being Element of NAT st 1 <= b10 & b10 < (2 * j) + 1 holds
(Comput ((ProgramPart ((Initialize mm) +* (stop (while>0 (a,i,I))))),((Initialize mm) +* (stop (while>0 (a,i,I)))),b8)) . (intpos ((m + n) + b10)) = mm . (intpos ((m + n) + b10)) ) & (Comput ((ProgramPart ((Initialize mm) +* (stop (while>0 (a,i,I))))),((Initialize mm) +* (stop (while>0 (a,i,I)))),b8)) . (DataLoc (c,i)) = (mm . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize mm) +* (stop (while>0 (a,i,I))))),((Initialize mm) +* (stop (while>0 (a,i,I)))),b8)) . a = c )set m1 =
(LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2;
set t1 =
Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2));
A47:
I is_halting_on t
by A12, A37, A38, A39, A40, A41, A42;
y1 - 1
>= 0
by A40, A46, XREAL_1:49, XREAL_1:50;
then reconsider y0 =
y1 - 1 as
Element of
NAT by INT_1:16;
set jj =
(2 * k1) + 1;
A48:
(yn - y1) - 1
<= (k + 1) - 1
by A43, XREAL_1:11;
A49:
yn <= y1 + (k + 1)
by A43, XREAL_1:22;
consider f2 being
FinSequence of
INT such that A50:
len f2 = n
and A51:
for
i being
Element of
NAT st 1
<= i &
i <= len f2 holds
f2 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + i))
by SCPISORT:2;
A52:
f2 is_FinSequence_on Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)),
m
by A51, SCPISORT:def 1;
set It =
IExec (
I,
t);
A53:
(
y1 < yn implies (
(IExec (I,t)) . (DataLoc (c,i)) = (2 * k1) + 3 & ( for
j being
Element of
NAT st ( ( 1
<= j &
j < y1 ) or (
yn < j &
j <= n ) ) holds
(IExec (I,t)) . (intpos (m + j)) = t . (intpos (m + j)) ) & ex
ym being
Element of
NAT st
(
y1 <= ym &
ym <= yn &
m + y1 = (IExec (I,t)) . (intpos k2) &
(m + ym) - 1
= (IExec (I,t)) . (intpos (k2 + 1)) &
(m + ym) + 1
= (IExec (I,t)) . (intpos (k2 + 2)) &
m + yn = (IExec (I,t)) . (intpos (k2 + 3)) & ( for
j being
Element of
NAT st
y1 <= j &
j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym)) ) & ( for
j being
Element of
NAT st
ym < j &
j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym)) ) ) ) )
by A12, A37, A38, A39, A40, A41, A42;
then consider ym being
Element of
NAT such that A54:
y1 <= ym
and A55:
ym <= yn
and A56:
m + y1 = (IExec (I,t)) . (intpos k2)
and A57:
(m + ym) - 1
= (IExec (I,t)) . (intpos (k2 + 1))
and A58:
(m + ym) + 1
= (IExec (I,t)) . (intpos (k2 + 2))
and A59:
m + yn = (IExec (I,t)) . (intpos (k2 + 3))
and A60:
for
j being
Element of
NAT st
y1 <= j &
j < ym holds
(IExec (I,t)) . (intpos (m + j)) <= (IExec (I,t)) . (intpos (m + ym))
and A61:
for
j being
Element of
NAT st
ym < j &
j <= yn holds
(IExec (I,t)) . (intpos (m + j)) >= (IExec (I,t)) . (intpos (m + ym))
by A46, XREAL_1:49;
A62:
I is_closed_on t
by A12, A37, A38, A39, A40, A41, A42;
then A63:
DataPart (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) = DataPart (IExec (I,t))
by A37, A38, A47, Th2;
then A64:
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (DataLoc (c,i)) = (2 * k1) + 3
by A46, A53, SCMPDS_4:23, XREAL_1:49;
A65:
ym >= 1
by A40, A46, A54, XREAL_1:49, XXREAL_0:2;
then reconsider yc =
ym - 1 as
Element of
NAT by INT_1:16, XREAL_1:50;
A66:
yc <= yn
by A55, XREAL_1:148, XXREAL_0:2;
then A67:
yc <= n
by A40, A46, XREAL_1:49, XXREAL_0:2;
A68:
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (DataLoc (c,i)) = (2 * (k1 + 1)) + 1
by A46, A53, A63, SCMPDS_4:23, XREAL_1:49;
(IExec (I,t)) . a = t . a
by A12, A37, A38, A39, A40, A41, A42;
then A69:
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . a = c
by A37, A63, SCMPDS_4:23;
set k3 =
((m + n) + (2 * (k1 + 1))) + 1;
set yd =
ym + 1;
A70:
ym + 1
> ym
by XREAL_1:31;
then A71:
ym + 1
>= y1
by A54, XXREAL_0:2;
then A72:
ym + 1
>= 1
by A40, A46, XREAL_1:49, XXREAL_0:2;
A73:
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos ((((m + n) + (2 * (k1 + 1))) + 1) + 1)) = m + yn
by A39, A63, A59, SCMPDS_4:23;
ym + (1 + k) >= y1 + (1 + k)
by A54, XREAL_1:8;
then
yn <= (ym + 1) + k
by A49, XXREAL_0:2;
then A74:
yn - (ym + 1) <= k
by XREAL_1:22;
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (((m + n) + (2 * (k1 + 1))) + 1)) = m + (ym + 1)
by A39, A63, A58, SCMPDS_4:23;
then consider kl being
Element of
NAT ,
f3 being
FinSequence of
INT such that A75:
(Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),
kl)
and A76:
f3 is_FinSequence_on Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),
kl),
m
and A77:
len f3 = n
and A78:
f2,
f3 are_fiberwise_equipotent
and A79:
f3 is_non_decreasing_on ym + 1,
yn
and A80:
for
j being
Element of
NAT st
ym + 1
< yn & ( ( 1
<= j &
j < ym + 1 ) or (
yn < j &
j <= n ) ) holds
f3 . j = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + j))
and A81:
for
j being
Element of
NAT st
ym + 1
>= yn & 1
<= j &
j <= n holds
f3 . j = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + j))
and A82:
for
j being
Element of
NAT st 1
<= j &
j < (2 * (k1 + 1)) + 1 holds
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos ((m + n) + j)) = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos ((m + n) + j))
and A83:
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (DataLoc (c,i)) = ((Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (DataLoc (c,i))) - 2
and A84:
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . a = c
by A36, A40, A46, A69, A68, A72, A73, A74, A50, A52, XREAL_1:49;
TT:
ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))) = ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))
by A75, AMI_1:123;
set t2 =
Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),
kl);
A85:
(2 * k1) + 3
= (2 * (k1 + 1)) + 1
;
then
(2 * k1) + 1
< (2 * (k1 + 1)) + 1
by XREAL_1:8;
then A86:
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos k2) =
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos ((m + n) + ((2 * k1) + 1)))
by A39, A82, NAT_1:11
.=
m + y1
by A39, A63, A56, SCMPDS_4:23
;
A87:
ym <= n
by A40, A46, A55, XREAL_1:49, XXREAL_0:2;
yc <= yn - 1
by A55, XREAL_1:11;
then
yc - y1 <= (yn - 1) - y1
by XREAL_1:11;
then A94:
yc - y1 <= k
by A48, XXREAL_0:2;
A95:
yc < ym + 1
by A70, XREAL_1:148, XXREAL_0:2;
set jj =
(2 * k1) + 2;
(2 * k1) + 2
>= 2
by NAT_1:11;
then A96:
(2 * k1) + 2
>= 1
by XXREAL_0:2;
(2 * k1) + 2
< (2 * (k1 + 1)) + 1
by A85, XREAL_1:8;
then (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (k2 + 1)) =
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos ((m + n) + ((2 * k1) + 2)))
by A39, A82, A96
.=
m + yc
by A39, A63, A57, SCMPDS_4:23
;
then consider km being
Element of
NAT ,
f4 being
FinSequence of
INT such that A97:
(Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),km))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),
km)
and A98:
f4 is_FinSequence_on Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),
km),
m
and A99:
len f4 = n
and A100:
f3,
f4 are_fiberwise_equipotent
and A101:
f4 is_non_decreasing_on y1,
yc
and A102:
for
j being
Element of
NAT st
y1 < yc & ( ( 1
<= j &
j < y1 ) or (
yc < j &
j <= n ) ) holds
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))
and A103:
for
j being
Element of
NAT st
y1 >= yc & 1
<= j &
j <= n holds
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))
and A104:
for
j being
Element of
NAT st 1
<= j &
j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),km)) . (intpos ((m + n) + j)) = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos ((m + n) + j))
and A105:
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),km)) . (DataLoc (c,i)) = ((Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (DataLoc (c,i))) - 2
and A106:
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),km)) . a = c
by A36, A39, A40, A46, A64, A76, A77, A83, A84, A67, A86, A94, XREAL_1:49;
A107:
now let i be
Element of
NAT ;
( yc < i & i <= len f4 implies f4 . i = f3 . i )assume that A108:
yc < i
and A109:
i <= len f4
;
f4 . i = f3 . iA110:
1
+ 0 <= i
by A108, INT_1:20;
now per cases
( y1 < yc or y1 >= yc )
;
suppose
y1 < yc
;
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))hence
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))
by A99, A102, A108, A109;
verum end; suppose
y1 >= yc
;
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))hence
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))
by A99, A103, A109, A110;
verum end; end; end; hence
f4 . i = f3 . i
by A76, A77, A99, A109, A110, SCPISORT:def 1;
verum end; then
f4 . ym = f3 . ym
by A99, A87, XREAL_1:148;
then A111:
f4 . ym = (IExec (I,t)) . (intpos (m + ym))
by A63, A88, SCMPDS_4:23;
A112:
now let i be
Element of
NAT ;
( yn < i & i <= len f3 implies f3 . i = f2 . i )assume that A113:
yn < i
and A114:
i <= len f3
;
f3 . i = f2 . iA115:
1
+ 0 <= i
by A113, INT_1:20;
now per cases
( ym + 1 < yn or ym + 1 >= yn )
;
suppose
ym + 1
< yn
;
f3 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + i))hence
f3 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + i))
by A77, A80, A113, A114;
verum end; suppose
ym + 1
>= yn
;
f3 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + i))hence
f3 . i = (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + i))
by A77, A81, A114, A115;
verum end; end; end; hence
f3 . i = f2 . i
by A50, A51, A77, A114, A115;
verum end; A116:
now let i be
Element of
NAT ;
( ym < i & i <= yn implies f4 . ym <= f4 . i )assume that A117:
ym < i
and A118:
i <= yn
;
f4 . ym <= f4 . iconsider j being
Element of
NAT such that A119:
ym < j
and A120:
j <= yn
and A121:
f3 . i = f2 . j
by A40, A46, A55, A77, A78, A89, A112, A117, A118, RFINSEQ:45, XREAL_1:49;
A122:
yc < i
by A117, XREAL_1:148, XXREAL_0:2;
A123:
1
<= j
by A65, A119, XXREAL_0:2;
A124:
j <= len f2
by A40, A46, A50, A120, XREAL_1:49, XXREAL_0:2;
i <= len f4
by A40, A46, A99, A118, XREAL_1:49, XXREAL_0:2;
then f4 . i =
f2 . j
by A107, A122, A121
.=
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + j))
by A51, A123, A124
.=
(IExec (I,t)) . (intpos (m + j))
by A63, SCMPDS_4:23
;
hence
f4 . ym <= f4 . i
by A61, A111, A119, A120;
verum end; A125:
yn > y1
by A46, XREAL_1:49;
A126:
now let i be
Element of
NAT ;
( 1 <= i & i <= y0 implies f4 . i = f3 . i )assume that A127:
1
<= i
and A128:
i <= y0
;
f4 . i = f3 . i
i - 1
< y1 - 1
by A128, XREAL_1:148, XXREAL_0:2;
then A129:
i < y1
by XREAL_1:11;
y1 <= n
by A40, A125, XXREAL_0:2;
then A130:
i <= n
by A129, XXREAL_0:2;
now per cases
( y1 < yc or y1 >= yc )
;
suppose
y1 < yc
;
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))hence
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))
by A102, A127, A129;
verum end; suppose
y1 >= yc
;
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))hence
f4 . i = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + i))
by A103, A127, A130;
verum end; end; end; hence
f4 . i = f3 . i
by A76, A77, A127, A130, SCPISORT:def 1;
verum end; A131:
y0 <= yc
by A54, XREAL_1:11;
A132:
now let i be
Element of
NAT ;
( y1 <= i & i < ym implies f4 . i <= f4 . ym )assume that A133:
y1 <= i
and A134:
i < ym
;
f4 . i <= f4 . ym
i + 1
<= ym
by A134, INT_1:20;
then A135:
i <= yc
by XREAL_1:21;
y0 < i
by A133, XREAL_1:148, XXREAL_0:2;
then consider j being
Element of
NAT such that A136:
y0 < j
and A137:
j <= yc
and A138:
f4 . i = f3 . j
by A67, A99, A100, A131, A126, A107, A135, RFINSEQ:45;
A139:
1
+ 0 <= j
by A136, INT_1:20;
A140:
j <= n
by A67, A137, XXREAL_0:2;
A141:
j < ym + 1
by A95, A137, XXREAL_0:2;
then A142:
f4 . i = (IExec (I,t)) . (intpos (m + j))
by A63, A138, SCMPDS_4:23;
A143:
j < ym
by A137, XREAL_1:148, XXREAL_0:2;
(y1 - 1) + 1
<= j
by A136, INT_1:20;
hence
f4 . i <= f4 . ym
by A60, A111, A143, A142;
verum end; take mm =
((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2) + (kl + km);
ex f4 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm) & f4 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm),m & len f4 = n & f1,f4 are_fiberwise_equipotent & f4 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )set tm =
Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
mm);
take f4 =
f4;
( (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm) & f4 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm),m & len f4 = n & f1,f4 are_fiberwise_equipotent & f4 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )t:
ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) = ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))
by AMI_1:123;
(Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))
by A37, A38, A62, A47, Th2;
then A144:
Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
mm) =
Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),
(kl + km))
by t, EXTPRO_1:5
.=
Comput (
(ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I))))),
((Initialize (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl))) +* (stop (while>0 (a,i,I)))),
km)
by A75, TT, EXTPRO_1:5
;
hence
(Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
mm)
by A97;
( f4 is_FinSequence_on Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm),m & len f4 = n & f1,f4 are_fiberwise_equipotent & f4 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )thus
f4 is_FinSequence_on Comput (
(ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),
((Initialize t) +* (stop (while>0 (a,i,I)))),
mm),
m
by A98, A144;
( len f4 = n & f1,f4 are_fiberwise_equipotent & f4 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )thus
len f4 = n
by A99;
( f1,f4 are_fiberwise_equipotent & f4 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )now let i be
Element of
NAT ;
( 1 <= i & i <= len f2 implies f2 . i = (IExec (I,t)) . (intpos (m + i)) )assume that A145:
1
<= i
and A146:
i <= len f2
;
f2 . i = (IExec (I,t)) . (intpos (m + i))thus f2 . i =
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos (m + i))
by A51, A145, A146
.=
(IExec (I,t)) . (intpos (m + i))
by A63, SCMPDS_4:23
;
verum end; then
f2 is_FinSequence_on IExec (
I,
t),
m
by SCPISORT:def 1;
then
f1,
f2 are_fiberwise_equipotent
by A12, A37, A38, A39, A40, A41, A42, A44, A45, A50;
then
f1,
f3 are_fiberwise_equipotent
by A78, CLASSES1:84;
hence
f1,
f4 are_fiberwise_equipotent
by A100, CLASSES1:84;
( f4 is_non_decreasing_on y1,yn & ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )A147:
now let j be
Element of
NAT ;
( ym + 1 <= j & j <= yn implies f4 . j = f3 . j )assume that A148:
ym + 1
<= j
and A149:
j <= yn
;
f4 . j = f3 . jA150:
1
<= j
by A72, A148, XXREAL_0:2;
A151:
j <= n
by A40, A46, A149, XREAL_1:49, XXREAL_0:2;
A152:
yc < j
by A95, A148, XXREAL_0:2;
now per cases
( y1 < yc or y1 >= yc )
;
suppose
y1 < yc
;
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))hence
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))
by A102, A151, A152;
verum end; suppose
y1 >= yc
;
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))hence
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))
by A103, A151, A150;
verum end; end; end; hence
f4 . j = f3 . j
by A76, A77, A151, A150, SCPISORT:def 1;
verum end; now let i,
j be
Element of
NAT ;
( ym + 1 <= i & i <= j & j <= yn implies f4 . i <= f4 . j )assume that A153:
ym + 1
<= i
and A154:
i <= j
and A155:
j <= yn
;
f4 . i <= f4 . j
ym + 1
<= j
by A153, A154, XXREAL_0:2;
then A156:
f4 . j = f3 . j
by A147, A155;
i <= yn
by A154, A155, XXREAL_0:2;
then
f4 . i = f3 . i
by A147, A153;
hence
f4 . i <= f4 . j
by A79, A153, A154, A155, A156, GRAPH_2:def 13;
verum end; then
f4 is_non_decreasing_on ym + 1,
yn
by GRAPH_2:def 13;
hence
f4 is_non_decreasing_on y1,
yn
by A101, A132, A116, Th8;
( ( for j being Element of NAT st y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )thus
for
j being
Element of
NAT st
y1 < yn & ( ( 1
<= j &
j < y1 ) or (
yn < j &
j <= n ) ) holds
f4 . j = t . (intpos (m + j))
( ( for j being Element of NAT st y1 >= yn & 1 <= j & j <= n holds
f4 . j = t . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )proof
let j be
Element of
NAT ;
( y1 < yn & ( ( 1 <= j & j < y1 ) or ( yn < j & j <= n ) ) implies f4 . j = t . (intpos (m + j)) )
assume that A157:
y1 < yn
and A158:
( ( 1
<= j &
j < y1 ) or (
yn < j &
j <= n ) )
;
f4 . j = t . (intpos (m + j))
A159:
( 1
<= j &
j <= n )
A162:
( ( 1
<= j &
j < ym + 1 ) or (
yn < j &
j <= n ) )
A164:
( ( 1
<= j &
j < y1 ) or (
yc < j &
j <= n ) )
now per cases
( y1 < yc or y1 >= yc )
;
suppose
y1 < yc
;
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))hence
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))
by A102, A164;
verum end; suppose
y1 >= yc
;
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))hence
f4 . j = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos (m + j))
by A103, A159;
verum end; end; end;
hence f4 . j =
f3 . j
by A76, A77, A159, SCPISORT:def 1
.=
(IExec (I,t)) . (intpos (m + j))
by A63, A163, SCMPDS_4:23
.=
t . (intpos (m + j))
by A12, A37, A38, A39, A40, A41, A42, A157, A158
;
verum
end; thus
for
j being
Element of
NAT st
y1 >= yn & 1
<= j &
j <= n holds
f4 . j = t . (intpos (m + j))
by A46, XREAL_1:49;
( ( for j being Element of NAT st 1 <= j & j < (2 * k1) + 1 holds
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )hereby ( (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c )
let j be
Element of
NAT ;
( 1 <= j & j < (2 * k1) + 1 implies (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j)) )assume that A165:
1
<= j
and A166:
j < (2 * k1) + 1
;
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) = t . (intpos ((m + n) + j))
(2 * k1) + 1
< (2 * (k1 + 1)) + 1
by A85, XREAL_1:8;
then A167:
j < (2 * (k1 + 1)) + 1
by A166, XXREAL_0:2;
thus (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (intpos ((m + n) + j)) =
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2)))) +* (stop (while>0 (a,i,I)))),kl)) . (intpos ((m + n) + j))
by A104, A144, A165, A166
.=
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop I))),((Initialize t) +* (stop I)))) + 2))) . (intpos ((m + n) + j))
by A82, A165, A167
.=
(IExec (I,t)) . (intpos ((m + n) + j))
by A63, SCMPDS_4:23
.=
t . (intpos ((m + n) + j))
by A12, A37, A38, A39, A40, A41, A42, A165, A166
;
verum
end; thus
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . (DataLoc (c,i)) = (t . (DataLoc (c,i))) - 2
by A38, A64, A83, A105, A144;
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = cthus
(Comput ((ProgramPart ((Initialize t) +* (stop (while>0 (a,i,I))))),((Initialize t) +* (stop (while>0 (a,i,I)))),mm)) . a = c
by A106, A144;
verum end; end; end; hence
S1[
k + 1]
;
verum end;
A168:
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A13, A35);
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on 1,n & ( for j being Element of NAT st 1 < n & ( ( 1 <= j & j < 1 ) or ( n < j & j <= n ) ) holds
f2 . j = s . (intpos (m + j)) ) & ( for j being Element of NAT st 1 >= n & 1 <= j & j <= n holds
f2 . j = s . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * 0) + 1 holds
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = s . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (s . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . a = c )
proof
per cases
( n - 1 <= 0 or n - 1 > 0 )
;
suppose
n - 1
<= 0
;
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on 1,n & ( for j being Element of NAT st 1 < n & ( ( 1 <= j & j < 1 ) or ( n < j & j <= n ) ) holds
f2 . j = s . (intpos (m + j)) ) & ( for j being Element of NAT st 1 >= n & 1 <= j & j <= n holds
f2 . j = s . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * 0) + 1 holds
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = s . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (s . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . a = c )hence
ex
k being
Element of
NAT ex
f2 being
FinSequence of
INT st
(
(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),
((Initialize s) +* (stop (while>0 (a,i,I)))),
k) &
f2 is_FinSequence_on Comput (
(ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),
((Initialize s) +* (stop (while>0 (a,i,I)))),
k),
m &
len f2 = n &
f,
f2 are_fiberwise_equipotent &
f2 is_non_decreasing_on 1,
n & ( for
j being
Element of
NAT st 1
< n & ( ( 1
<= j &
j < 1 ) or (
n < j &
j <= n ) ) holds
f2 . j = s . (intpos (m + j)) ) & ( for
j being
Element of
NAT st 1
>= n & 1
<= j &
j <= n holds
f2 . j = s . (intpos (m + j)) ) & ( for
j being
Element of
NAT st 1
<= j &
j < (2 * 0) + 1 holds
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = s . (intpos ((m + n) + j)) ) &
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (s . (DataLoc (c,i))) - 2 &
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . a = c )
by A2, A3, A5, A7, A9, A10, A13, A11;
verum end; suppose
n - 1
> 0
;
ex k being Element of NAT ex f2 being FinSequence of INT st
( (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k) & f2 is_FinSequence_on Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k),m & len f2 = n & f,f2 are_fiberwise_equipotent & f2 is_non_decreasing_on 1,n & ( for j being Element of NAT st 1 < n & ( ( 1 <= j & j < 1 ) or ( n < j & j <= n ) ) holds
f2 . j = s . (intpos (m + j)) ) & ( for j being Element of NAT st 1 >= n & 1 <= j & j <= n holds
f2 . j = s . (intpos (m + j)) ) & ( for j being Element of NAT st 1 <= j & j < (2 * 0) + 1 holds
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = s . (intpos ((m + n) + j)) ) & (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (s . (DataLoc (c,i))) - 2 & (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . a = c )then reconsider nn =
n - 1 as
Element of
NAT by INT_1:16;
S1[
nn]
by A168;
hence
ex
k being
Element of
NAT ex
f2 being
FinSequence of
INT st
(
(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput (
(ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),
((Initialize s) +* (stop (while>0 (a,i,I)))),
k) &
f2 is_FinSequence_on Comput (
(ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),
((Initialize s) +* (stop (while>0 (a,i,I)))),
k),
m &
len f2 = n &
f,
f2 are_fiberwise_equipotent &
f2 is_non_decreasing_on 1,
n & ( for
j being
Element of
NAT st 1
< n & ( ( 1
<= j &
j < 1 ) or (
n < j &
j <= n ) ) holds
f2 . j = s . (intpos (m + j)) ) & ( for
j being
Element of
NAT st 1
>= n & 1
<= j &
j <= n holds
f2 . j = s . (intpos (m + j)) ) & ( for
j being
Element of
NAT st 1
<= j &
j < (2 * 0) + 1 holds
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (intpos ((m + n) + j)) = s . (intpos ((m + n) + j)) ) &
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (s . (DataLoc (c,i))) - 2 &
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . a = c )
by A2, A3, A5, A7, A9, A10, A11;
verum end; end;
end;
then consider k being Element of NAT , f2 being FinSequence of INT such that
A169:
(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)
and
A170:
f2 is_FinSequence_on Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k),m
and
A171:
len f2 = n
and
A172:
f,f2 are_fiberwise_equipotent
and
A173:
f2 is_non_decreasing_on 1,n
and
A174:
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . (DataLoc (c,i)) = (s . (DataLoc (c,i))) - 2
and
A175:
(Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) . a = c
;
set sk = Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k);
set s1 = (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)));
set s2 = Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1);
I1:
(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))) = (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k)) +* (Initialize (stop (while>0 (a,i,I))))
by COMPOS_1:125;
A176:
IC ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))) = 0
by SCMPDS_6:21;
set i1 = (a,i) <=0_goto ((card I) + 2);
set i2 = goto (- ((card I) + 1));
A177:
card (while>0 (a,i,I)) = (card I) + 2
by SCMPDS_8:17;
then A178:
(card I) + 2 in dom (stop (while>0 (a,i,I)))
by SCMPDS_6:25;
A179:
dom g = Seg n
by A4, FINSEQ_1:def 3;
Initialize (stop (while>0 (a,i,I))) c= (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))
by I1, FUNCT_4:26;
then
stop (while>0 (a,i,I)) c= Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)
by AMI_1:81, COMPOS_1:132;
then A180: (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)) . ((card I) + 2) =
(stop (while>0 (a,i,I))) . ((card I) + 2)
by A178, GRFUNC_1:8
.=
halt SCMPDS
by A177, SCMPDS_6:25
;
B181:
while>0 (a,i,I) = ((a,i) <=0_goto ((card I) + 2)) ';' (I ';' (goto (- ((card I) + 1))))
by Lm2;
A182: Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),(0 + 1)) =
Following ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),0)))
by EXTPRO_1:4
.=
Following ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))))
by EXTPRO_1:3
.=
Exec (((a,i) <=0_goto ((card I) + 2)),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))))
by B181, I1, SCMPDS_6:22
;
I4:
s +* (Initialize (stop (while>0 (a,i,I)))) = (Initialize s) +* (stop (while>0 (a,i,I)))
by COMPOS_1:125;
IC (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)) =
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)) . (IC SCMPDS)
.=
ICplusConst (((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),((card I) + 2))
by A7, A169, A174, A175, A182, SCMPDS_2:68
.=
0 + ((card I) + 2)
by A176, SCMPDS_6:23
;
then A183:
CurInstr ((ProgramPart (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1))),(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1))) = halt SCMPDS
by A180, COMPOS_1:38;
ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),(s +* (Initialize (stop (while>0 (a,i,I))))),k))) +* (stop (while>0 (a,i,I)))) = ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))
by A169, I4, AMI_1:123;
then A184:
Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1) = Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),(k + 1))
by A169, I4, EXTPRO_1:5;
then TX:
ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I)))) = ProgramPart (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1))
by AMI_1:123;
then A185:
ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I)))) halts_on (Initialize s) +* (stop (while>0 (a,i,I)))
by A183, A184, EXTPRO_1:30;
hence
while>0 (a,i,I) is_halting_on s
by SCMPDS_6:def 3; ( f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
A186:
Result ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I))))) = Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)
by A183, A184, A185, TX, EXTPRO_1:def 8;
now let i be
Nat;
( i in dom g implies g . i = f2 . i )reconsider a =
i as
Element of
NAT by ORDINAL1:def 13;
set xi =
intpos (m + a);
A187:
dom (ProgramPart s) = NAT
by COMPOS_1:34;
A188:
not
intpos (m + a) in dom (s | NAT)
by A187, SCMPDS_2:53;
assume A189:
i in dom g
;
g . i = f2 . ithen A190:
1
<= i
by A179, FINSEQ_1:3;
A191:
i <= n
by A179, A189, FINSEQ_1:3;
IExec (
(while>0 (a,i,I)),
s)
= (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)) +* (s | NAT)
by A186;
hence g . i =
((Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)) +* (s | NAT)) . (intpos (m + a))
by A4, A6, A190, A191, SCPISORT:def 1
.=
(Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I))))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))),1)) . (intpos (m + a))
by A188, FUNCT_4:12
.=
((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop (while>0 (a,i,I))))),((Initialize s) +* (stop (while>0 (a,i,I)))),k))) +* (stop (while>0 (a,i,I)))) . (intpos (m + a))
by A182, SCMPDS_2:68
.=
f2 . i
by A169, A170, A171, A190, A191, SCPISORT:def 1
;
verum end;
hence
( f,g are_fiberwise_equipotent & g is_non_decreasing_on 1,n )
by A4, A171, A172, A173, FINSEQ_2:10; verum