theorem Th23:
for
P being
Instruction-Sequence of
SCMPDS for
s being
0 -started State of
SCMPDS for
I being
halt-free shiftable Program of
SCMPDS for
a being
Int_position for
i,
c being
Integer for
X,
Y being
set for
f being
Function of
(product (the_Values_of SCMPDS)),
NAT st
s . (DataLoc ((s . a),i)) > 0 & ( for
t being
0 -started State of
SCMPDS st
f . t = 0 holds
t . (DataLoc ((s . a),i)) <= 0 ) & ( for
x being
Int_position st
x in X holds
s . x >= c + (s . (DataLoc ((s . a),i))) ) & ( for
t being
0 -started State of
SCMPDS for
Q being
Instruction-Sequence of
SCMPDS st ( for
x being
Int_position st
x in X holds
t . x >= c + (t . (DataLoc ((s . a),i))) ) & ( for
x being
Int_position st
x in Y holds
t . x = s . x ) &
t . a = s . a &
t . (DataLoc ((s . a),i)) > 0 holds
(
(IExec (I,Q,t)) . a = t . a &
I is_closed_on t,
Q &
I is_halting_on t,
Q &
f . (Initialize (IExec (I,Q,t))) < f . t & ( for
x being
Int_position st
x in X holds
(IExec (I,Q,t)) . x >= c + ((IExec (I,Q,t)) . (DataLoc ((s . a),i))) ) & ( for
x being
Int_position st
x in Y holds
(IExec (I,Q,t)) . x = t . x ) ) ) holds
IExec (
(while>0 (a,i,I)),
P,
s)
= IExec (
(while>0 (a,i,I)),
P,
(Initialize (IExec (I,P,s))))