let s be State of SCM+FSA ; :: thesis: for a being Int-Location
for I being Program of SCM+FSA st s . a <= 0 & s . (intloc 0 ) = 1 holds
(IExec (times a,I),s) | ((UsedIntLoc I) \/ FinSeq-Locations ) = s | ((UsedIntLoc I) \/ FinSeq-Locations )

let a be Int-Location ; :: thesis: for I being Program of SCM+FSA st s . a <= 0 & s . (intloc 0 ) = 1 holds
(IExec (times a,I),s) | ((UsedIntLoc I) \/ FinSeq-Locations ) = s | ((UsedIntLoc I) \/ FinSeq-Locations )

let I be Program of SCM+FSA ; :: thesis: ( s . a <= 0 & s . (intloc 0 ) = 1 implies (IExec (times a,I),s) | ((UsedIntLoc I) \/ FinSeq-Locations ) = s | ((UsedIntLoc I) \/ FinSeq-Locations ) )
set FSL = FinSeq-Locations ;
assume that
A1: s . a <= 0 and
A2: s . (intloc 0 ) = 1 ; :: thesis: (IExec (times a,I),s) | ((UsedIntLoc I) \/ FinSeq-Locations ) = s | ((UsedIntLoc I) \/ FinSeq-Locations )
set UILI = UsedIntLoc I;
set au = 1 -stRWNotIn ({a} \/ (UsedIntLoc I));
set WH = while>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0 )));
set s1 = Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s);
A3: ( a = intloc 0 or not a is read-only ) by SF_MASTR:def 5;
A4: Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s) = IExec (Macro ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a)),s by SCMFSA6C:6;
A5: (Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s)) . (1 -stRWNotIn ({a} \/ (UsedIntLoc I))) = (Initialized s) . a by SCMFSA_2:89
.= s . a by A2, A3, SCMFSA6C:3 ;
then A6: ( while>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0 ))) is_closed_on IExec (Macro ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a)),s & while>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0 ))) is_halting_on IExec (Macro ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a)),s ) by A1, A4, SCMFSA_9:43;
(Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s)) . (intloc 0 ) = (Initialized s) . (intloc 0 ) by SCMFSA_2:89
.= 1 by SCMFSA6C:3 ;
then A7: DataPart (IExec (while>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0 )))),(Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s))) = DataPart (Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s)) by A1, A5, SCMFSA9A:41;
A8: now
let x be FinSeq-Location ; :: thesis: ( x in FinSeq-Locations implies (IExec (times a,I),s) . x = s . x )
assume x in FinSeq-Locations ; :: thesis: (IExec (times a,I),s) . x = s . x
thus (IExec (times a,I),s) . x = (IExec (while>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0 )))),(Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s))) . x by A4, A6, SFMASTR1:16
.= (Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s)) . x by A7, SCMFSA6A:38
.= (Initialized s) . x by SCMFSA_2:89
.= s . x by SCMFSA6C:3 ; :: thesis: verum
end;
A9: DataPart s = DataPart (Initialized s) by A2, SCMFSA8C:27;
A10: now
let x be Int-Location ; :: thesis: ( x in UsedIntLoc I implies (IExec (times a,I),s) . x = s . x )
A11: not 1 -stRWNotIn ({a} \/ (UsedIntLoc I)) in {a} \/ (UsedIntLoc I) by SFMASTR1:21;
assume x in UsedIntLoc I ; :: thesis: (IExec (times a,I),s) . x = s . x
then A12: 1 -stRWNotIn ({a} \/ (UsedIntLoc I)) <> x by A11, XBOOLE_0:def 3;
thus (IExec (times a,I),s) . x = (IExec (while>0 (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(I ';' (SubFrom (1 -stRWNotIn ({a} \/ (UsedIntLoc I))),(intloc 0 )))),(Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s))) . x by A4, A6, SFMASTR1:15
.= (Exec ((1 -stRWNotIn ({a} \/ (UsedIntLoc I))) := a),(Initialized s)) . x by A7, SCMFSA6A:38
.= (Initialized s) . x by A12, SCMFSA_2:89
.= s . x by A9, SCMFSA6A:38 ; :: thesis: verum
end;
[#] FinSeq-Locations = FinSeq-Locations ;
hence (IExec (times a,I),s) | ((UsedIntLoc I) \/ FinSeq-Locations ) = s | ((UsedIntLoc I) \/ FinSeq-Locations ) by A10, A8, Th6; :: thesis: verum