let s be State of SCM+FSA; :: thesis: for I being good InitHalting Program of SCM+FSA
for a being read-write Int-Location st s . (intloc 0) = 1 & s . a <= 0 holds
DataPart (IExec ((Times (a,I)),s)) = DataPart s

let I be good InitHalting Program of SCM+FSA; :: thesis: for a being read-write Int-Location st s . (intloc 0) = 1 & s . a <= 0 holds
DataPart (IExec ((Times (a,I)),s)) = DataPart s

let a be read-write Int-Location ; :: thesis: ( s . (intloc 0) = 1 & s . a <= 0 implies DataPart (IExec ((Times (a,I)),s)) = DataPart s )
assume A1: s . (intloc 0) = 1 ; :: thesis: ( not s . a <= 0 or DataPart (IExec ((Times (a,I)),s)) = DataPart s )
set s0 = Initialized s;
A2: ( Stop SCM+FSA is_closed_on Initialized s & Stop SCM+FSA is_halting_on Initialized s ) by SCMFSA7B:24, SCMFSA7B:25;
A3: ( ( for a being read-write Int-Location holds (Initialized s) . a = s . a ) & ( for f being FinSeq-Location holds (Initialized s) . f = s . f ) ) by SCMFSA6C:3;
A4: (Initialized s) . (intloc 0) = 1 by SCMFSA6C:3;
assume s . a <= 0 ; :: thesis: DataPart (IExec ((Times (a,I)),s)) = DataPart s
then A5: (Initialized s) . a <= 0 by SCMFSA6C:3;
A6: IExec (((Stop SCM+FSA) ';' (Stop SCM+FSA)),(Initialized s)) = (IExec ((Stop SCM+FSA),(IExec ((Stop SCM+FSA),(Initialized s))))) +* (Start-At (((IC (IExec ((Stop SCM+FSA),(IExec ((Stop SCM+FSA),(Initialized s)))))) + (card (Stop SCM+FSA))),SCM+FSA)) by SCMFSA6B:44;
A7: DataPart (IExec ((Stop SCM+FSA),(Initialized s))) = DataPart ((Initialized (Initialized s)) +* (Start-At (0,SCM+FSA))) by SCMFSA8C:38
.= DataPart ((Initialized s) +* (Start-At (0,SCM+FSA))) by SCMFSA8C:15
.= DataPart (Initialized s) by SCMFSA8A:10 ;
A8: ( Stop SCM+FSA is_closed_on Initialized s & Stop SCM+FSA is_halting_on Initialized s ) by SCMFSA7B:24, SCMFSA7B:25;
then ( Times (a,I) is_closed_on Initialized s & Times (a,I) is_halting_on Initialized s ) by A5, SCMFSA8B:24;
then DataPart (IExec ((Times (a,I)),s)) = DataPart (IExec ((Times (a,I)),(Initialized s))) by A4, A3, SCMFSA8C:45
.= DataPart (IExec (((Stop SCM+FSA) ';' (Stop SCM+FSA)),(Initialized s))) by A5, A2, A4, SCMFSA8A:37, SCMFSA8C:73 ;
hence DataPart (IExec ((Times (a,I)),s)) = DataPart (IExec ((Stop SCM+FSA),(IExec ((Stop SCM+FSA),(Initialized s))))) by A6, SCMFSA8A:10
.= DataPart (IExec ((Stop SCM+FSA),(Initialized s))) by A8, A4, A7, SCMFSA8C:46
.= DataPart s by A1, A7, SCMFSA8C:27 ;
:: thesis: verum
set P = if=0 (a,(Goto 2),(I ';' (SubFrom (a,(intloc 0)))));