let s be State of SCM+FSA; :: thesis: 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; :: thesis: 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; :: thesis: 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; :: thesis: 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 ; :: thesis: ( ( 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 ) ; :: thesis: ((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; :: thesis: verum

set UILI = UsedILoc J;

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; :: thesis: 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; :: thesis: 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; :: thesis: 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 ; :: thesis: ( ( 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 ) ; :: thesis: ((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; :: thesis: verum

set UILI = UsedILoc J;