let s be State of SCM+FSA ; for a being Int-Location
for J being good Program of SCM+FSA
for k being Element of NAT st ( ProperTimesBody a,J,s or J is parahalting ) & k < s . a & ( s . (intloc 0 ) = 1 or not a is read-only ) holds
((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations )
let a be Int-Location ; for J being good Program of SCM+FSA
for k being Element of NAT st ( ProperTimesBody a,J,s or J is parahalting ) & k < s . a & ( s . (intloc 0 ) = 1 or not a is read-only ) holds
((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations )
let J be good Program of SCM+FSA ; for k being Element of NAT st ( ProperTimesBody a,J,s or J is parahalting ) & k < s . a & ( s . (intloc 0 ) = 1 or not a is read-only ) holds
((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations )
let k be Element of NAT ; ( ( ProperTimesBody a,J,s or J is parahalting ) & k < s . a & ( s . (intloc 0 ) = 1 or not a is read-only ) implies ((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations ) )
set UFLI = FinSeq-Locations ;
set I = J;
assume that
A1:
( ProperTimesBody a,J,s or J is parahalting )
and
A2:
k < s . a
and
A3:
( s . (intloc 0 ) = 1 or not a is read-only )
; ((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations )
set ST = StepTimes a,J,s;
A4:
((StepTimes a,J,s) . k) . (intloc 0 ) = 1
by A1, A2, Th15, Th16;
set au = 1 -stRWNotIn ({a} \/ (UsedIntLoc J));
A5:
ProperTimesBody a,J,s
by A1, Th15;
then A6:
(((StepTimes a,J,s) . k) . (1 -stRWNotIn ({a} \/ (UsedIntLoc J)))) + k = s . a
by A2, A3, Th17;
A7:
J is_closed_on (StepTimes a,J,s) . k
by A2, A5, Def3;
then A8:
J is_closed_on Initialized ((StepTimes a,J,s) . k)
by A4, Th4;
A9:
k - k < (s . a) - k
by A2, XREAL_1:11;
J is_halting_on (StepTimes a,J,s) . k
by A2, A5, Def3;
then
J is_halting_on Initialized ((StepTimes a,J,s) . k)
by A4, A7, Th5;
hence
((StepTimes a,J,s) . (k + 1)) | ((UsedIntLoc J) \/ FinSeq-Locations ) = (IExec J,((StepTimes a,J,s) . k)) | ((UsedIntLoc J) \/ FinSeq-Locations )
by A4, A8, A6, A9, Th20; verum
set UILI = UsedIntLoc J;