let s be State of SCM+FSA; for I being parahalting good 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
set D = Int-Locations \/ FinSeq-Locations;
let I be parahalting good 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_halting_on Initialized s
by SCMFSA7B:25;
assume
s . a <= 0
; DataPart (IExec ((Times (a,I)),s)) = DataPart s
then A3:
(Initialized s) . a <= 0
by SCMFSA6C:3;
A4:
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;
A5:
for f being FinSeq-Location holds (Initialized s) . f = s . f
by SCMFSA6C:3;
A6:
for a being read-write Int-Location holds (Initialized s) . a = s . a
by SCMFSA6C:3;
A7:
(Initialized s) . (intloc 0) = 1
by SCMFSA6C:3;
A8:
Stop SCM+FSA is_closed_on Initialized s
by SCMFSA7B:24;
then A9:
Times (a,I) is_halting_on Initialized s
by A3, A2, SCMFSA8B:24;
A10:
Stop SCM+FSA is_halting_on Initialized s
by SCMFSA7B:25;
A11:
Stop SCM+FSA is_closed_on Initialized s
by SCMFSA7B:24;
A12: DataPart (IExec ((Stop SCM+FSA),(Initialized s))) =
DataPart ((Initialized (Initialized s)) +* (Start-At (0,SCM+FSA)))
by Th38
.=
DataPart ((Initialized s) +* (Start-At (0,SCM+FSA)))
by Th15
.=
DataPart (Initialized s)
by SCMFSA8A:10
;
Times (a,I) is_closed_on Initialized s
by A3, A8, A2, SCMFSA8B:24;
then DataPart (IExec ((Times (a,I)),s)) =
DataPart (IExec ((Times (a,I)),(Initialized s)))
by A9, A7, A6, A5, Th45
.=
DataPart (IExec (((Stop SCM+FSA) ';' (Stop SCM+FSA)),(Initialized s)))
by A3, A11, A10, A7, Th73, SCMFSA8A:37
;
hence DataPart (IExec ((Times (a,I)),s)) =
DataPart (IExec ((Stop SCM+FSA),(IExec ((Stop SCM+FSA),(Initialized s)))))
by A4, SCMFSA8A:10
.=
DataPart (IExec ((Stop SCM+FSA),(Initialized s)))
by A8, A2, A7, A12, Th46
.=
DataPart s
by A1, A12, Th27
;
verum