let s be State of SCM+FSA; :: thesis: for p being Instruction-Sequence of SCM+FSA
for a being Int-Location
for I being really-closed MacroInstruction of SCM+FSA st s . a <= 0 & s . () = 1 holds
(IExec ((times (a,I)),p,s)) | () = s | ()

let p be Instruction-Sequence of SCM+FSA; :: thesis: for a being Int-Location
for I being really-closed MacroInstruction of SCM+FSA st s . a <= 0 & s . () = 1 holds
(IExec ((times (a,I)),p,s)) | () = s | ()

let a be Int-Location; :: thesis: for I being really-closed MacroInstruction of SCM+FSA st s . a <= 0 & s . () = 1 holds
(IExec ((times (a,I)),p,s)) | () = s | ()

let I be really-closed MacroInstruction of SCM+FSA ; :: thesis: ( s . a <= 0 & s . () = 1 implies (IExec ((times (a,I)),p,s)) | () = s | () )
set FSL = FinSeq-Locations ;
assume that
A1: s . a <= 0 and
A2: s . () = 1 ; :: thesis: (IExec ((times (a,I)),p,s)) | () = s | ()
set UILI = UsedILoc I;
set au = 1 -stRWNotIn ({a} \/ ());
set WH = while>0 ((1 -stRWNotIn ({a} \/ ())),(I ";" (SubFrom ((1 -stRWNotIn ({a} \/ ())),()))));
set s1 = Exec (((1 -stRWNotIn ({a} \/ ())) := a),());
A3: ( a = intloc 0 or a is read-write ) by SCMFSA_M:def 2;
A4: Exec (((1 -stRWNotIn ({a} \/ ())) := a),()) = IExec ((Macro ((1 -stRWNotIn ({a} \/ ())) := a)),p,s) by SCMFSA6C:5;
A5: (Exec (((1 -stRWNotIn ({a} \/ ())) := a),())) . (1 -stRWNotIn ({a} \/ ())) = () . a by SCMFSA_2:63
.= s . a by ;
then A6: while>0 ((1 -stRWNotIn ({a} \/ ())),(I ";" (SubFrom ((1 -stRWNotIn ({a} \/ ())),())))) is_halting_on IExec ((Macro ((1 -stRWNotIn ({a} \/ ())) := a)),p,s),p by ;
(Exec (((1 -stRWNotIn ({a} \/ ())) := a),())) . () = () . () by SCMFSA_2:63
.= 1 by SCMFSA_M:9 ;
then A7: DataPart (IExec ((while>0 ((1 -stRWNotIn ({a} \/ ())),(I ";" (SubFrom ((1 -stRWNotIn ({a} \/ ())),()))))),p,(Exec (((1 -stRWNotIn ({a} \/ ())) := a),())))) = DataPart (Exec (((1 -stRWNotIn ({a} \/ ())) := a),())) by ;
A8: now :: thesis: for x being FinSeq-Location st x in FinSeq-Locations holds
(IExec ((times (a,I)),p,s)) . x = s . x
let x be FinSeq-Location ; :: thesis: ( x in FinSeq-Locations implies (IExec ((times (a,I)),p,s)) . x = s . x )
assume x in FinSeq-Locations ; :: thesis: (IExec ((times (a,I)),p,s)) . x = s . x
thus (IExec ((times (a,I)),p,s)) . x = (IExec ((while>0 ((1 -stRWNotIn ({a} \/ ())),(I ";" (SubFrom ((1 -stRWNotIn ({a} \/ ())),()))))),p,(Exec (((1 -stRWNotIn ({a} \/ ())) := a),())))) . x by
.= (Exec (((1 -stRWNotIn ({a} \/ ())) := a),())) . x by
.= () . x by SCMFSA_2:63
.= s . x by SCMFSA_M:37 ; :: thesis: verum
end;
A9: DataPart s = DataPart () by ;
A10: now :: thesis: for x being Int-Location st x in UsedILoc I holds
(IExec ((times (a,I)),p,s)) . x = s . x
let x be Int-Location; :: thesis: ( x in UsedILoc I implies (IExec ((times (a,I)),p,s)) . x = s . x )
A11: not 1 -stRWNotIn ({a} \/ ()) in {a} \/ () by SCMFSA_M:25;
assume x in UsedILoc I ; :: thesis: (IExec ((times (a,I)),p,s)) . x = s . x
then A12: 1 -stRWNotIn ({a} \/ ()) <> x by ;
thus (IExec ((times (a,I)),p,s)) . x = (IExec ((while>0 ((1 -stRWNotIn ({a} \/ ())),(I ";" (SubFrom ((1 -stRWNotIn ({a} \/ ())),()))))),p,(Exec (((1 -stRWNotIn ({a} \/ ())) := a),())))) . x by
.= (Exec (((1 -stRWNotIn ({a} \/ ())) := a),())) . x by
.= () . x by
.= s . x by ; :: thesis: verum
end;
[#] FinSeq-Locations = FinSeq-Locations ;
hence (IExec ((times (a,I)),p,s)) | () = s | () by ; :: thesis: verum