let s be State of SCM+FSA; for p being Instruction-Sequence of SCM+FSA
for a being Int-Location
for k being Nat
for J being really-closed good MacroInstruction of SCM+FSA st ( ProperTimesBody a,J,s,p or J is parahalting ) & k < s . a & ( s . (intloc 0) = 1 or a is read-write ) holds
((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations)
let p be Instruction-Sequence of SCM+FSA; for a being Int-Location
for k being Nat
for J being really-closed good MacroInstruction of SCM+FSA st ( ProperTimesBody a,J,s,p or J is parahalting ) & k < s . a & ( s . (intloc 0) = 1 or a is read-write ) holds
((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations)
let a be Int-Location; for k being Nat
for J being really-closed good MacroInstruction of SCM+FSA st ( ProperTimesBody a,J,s,p or J is parahalting ) & k < s . a & ( s . (intloc 0) = 1 or a is read-write ) holds
((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations)
let k be Nat; for J being really-closed good MacroInstruction of SCM+FSA st ( ProperTimesBody a,J,s,p or J is parahalting ) & k < s . a & ( s . (intloc 0) = 1 or a is read-write ) holds
((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations)
let J be really-closed good MacroInstruction of SCM+FSA ; ( ( ProperTimesBody a,J,s,p or J is parahalting ) & k < s . a & ( s . (intloc 0) = 1 or a is read-write ) implies ((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations) )
set UFLI = FinSeq-Locations ;
set I = J;
assume that
A1:
( ProperTimesBody a,J,s,p or J is parahalting )
and
A2:
k < s . a
and
A3:
( s . (intloc 0) = 1 or a is read-write )
; ((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations)
set ST = StepTimes (a,J,p,s);
A4:
((StepTimes (a,J,p,s)) . k) . (intloc 0) = 1
by A1, A2, Th11, Th12;
set au = 1 -stRWNotIn ({a} \/ (UsedILoc J));
A5:
ProperTimesBody a,J,s,p
by A1, Th11;
then A6:
(((StepTimes (a,J,p,s)) . k) . (1 -stRWNotIn ({a} \/ (UsedILoc J)))) + k = s . a
by A2, A3, Th13;
A7:
k - k < (s . a) - k
by A2, XREAL_1:9;
J is_halting_on (StepTimes (a,J,p,s)) . k,p +* (times* (a,J))
by A2, A5;
then
J is_halting_on Initialized ((StepTimes (a,J,p,s)) . k),p +* (times* (a,J))
by A4, SCMFSA8B:42;
hence
((StepTimes (a,J,p,s)) . (k + 1)) | ((UsedILoc J) \/ FinSeq-Locations) = (IExec (J,(p +* (times* (a,J))),((StepTimes (a,J,p,s)) . k))) | ((UsedILoc J) \/ FinSeq-Locations)
by A4, A6, A7, Th16; verum
set UILI = UsedILoc J;