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