let s be State of SCM+FSA ; 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 ; 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 ; ( s . (intloc 0 ) = 1 & s . a <= 0 implies DataPart (IExec (Times a,I),s) = DataPart s )
assume A1:
s . (intloc 0 ) = 1
; ( 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
; 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
;
verum
set P = if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 )));