let P be Instruction-Sequence of SCM+FSA; :: thesis: for s being State of SCM+FSA

for I being InitHalting good really-closed MacroInstruction of SCM+FSA

for b being Int-Location

for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let s be State of SCM+FSA; :: thesis: for I being InitHalting good really-closed MacroInstruction of SCM+FSA

for b being Int-Location

for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let I be InitHalting good really-closed MacroInstruction of SCM+FSA ; :: thesis: for b being Int-Location

for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let b be Int-Location; :: thesis: for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let a be read-write Int-Location; :: thesis: ( s . a > 0 & while>0 (a,I) is InitHalting implies (IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b )

set D = Data-Locations ;

assume that

A1: s . a > 0 and

A2: while>0 (a,I) is InitHalting ; :: thesis: (IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

b in Int-Locations by AMI_2:def 16;

then A3: b in Data-Locations by SCMFSA_2:100, XBOOLE_0:def 3;

then (IExec ((while>0 (a,I)),P,s)) . b = (DataPart (IExec ((while>0 (a,I)),P,s))) . b by FUNCT_1:49

.= (DataPart (IExec ((while>0 (a,I)),P,(IExec (I,P,s))))) . b by A1, A2, SCM_HALT:75 ;

hence (IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b by A3, FUNCT_1:49; :: thesis: verum

for I being InitHalting good really-closed MacroInstruction of SCM+FSA

for b being Int-Location

for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let s be State of SCM+FSA; :: thesis: for I being InitHalting good really-closed MacroInstruction of SCM+FSA

for b being Int-Location

for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let I be InitHalting good really-closed MacroInstruction of SCM+FSA ; :: thesis: for b being Int-Location

for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let b be Int-Location; :: thesis: for a being read-write Int-Location st s . a > 0 & while>0 (a,I) is InitHalting holds

(IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

let a be read-write Int-Location; :: thesis: ( s . a > 0 & while>0 (a,I) is InitHalting implies (IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b )

set D = Data-Locations ;

assume that

A1: s . a > 0 and

A2: while>0 (a,I) is InitHalting ; :: thesis: (IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b

b in Int-Locations by AMI_2:def 16;

then A3: b in Data-Locations by SCMFSA_2:100, XBOOLE_0:def 3;

then (IExec ((while>0 (a,I)),P,s)) . b = (DataPart (IExec ((while>0 (a,I)),P,s))) . b by FUNCT_1:49

.= (DataPart (IExec ((while>0 (a,I)),P,(IExec (I,P,s))))) . b by A1, A2, SCM_HALT:75 ;

hence (IExec ((while>0 (a,I)),P,s)) . b = (IExec ((while>0 (a,I)),P,(IExec (I,P,s)))) . b by A3, FUNCT_1:49; :: thesis: verum