set D = Int-Locations \/ FinSeq-Locations ;
let s be State of SCM+FSA ; for I being good InitHalting Program of SCM+FSA
for f being FinSeq-Location
for a being read-write Int-Location st not I destroysdestroy a & s . a > 0 holds
(IExec (Times a,I),s) . f = (IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s)) . f
let I be good InitHalting Program of SCM+FSA ; for f being FinSeq-Location
for a being read-write Int-Location st not I destroysdestroy a & s . a > 0 holds
(IExec (Times a,I),s) . f = (IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s)) . f
let f be FinSeq-Location ; for a being read-write Int-Location st not I destroysdestroy a & s . a > 0 holds
(IExec (Times a,I),s) . f = (IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s)) . f
let a be read-write Int-Location ; ( not I destroysdestroy a & s . a > 0 implies (IExec (Times a,I),s) . f = (IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s)) . f )
assume A1:
( not I destroysdestroy a & s . a > 0 )
; (IExec (Times a,I),s) . f = (IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s)) . f
set IT = IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s);
f in FinSeq-Locations
by SCMFSA_2:10;
then A2:
f in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
hence (IExec (Times a,I),s) . f =
(DataPart (IExec (Times a,I),s)) . f
by FUNCT_1:72, SCMFSA_2:127
.=
(DataPart (IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s))) . f
by A1, Th79
.=
(IExec (Times a,I),(IExec (I ';' (SubFrom a,(intloc 0 ))),s)) . f
by A2, FUNCT_1:72, SCMFSA_2:127
;
verum