let I, J be Program of ; for s being State of st I is_closed_on Initialize s & I is_halting_on Initialize s holds
IExec (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )),s = (IExec I,s) +* (Start-At (insloc (((card I) + (card J)) + 1)))
let s be State of ; ( I is_closed_on Initialize s & I is_halting_on Initialize s implies IExec (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )),s = (IExec I,s) +* (Start-At (insloc (((card I) + (card J)) + 1))) )
set s1 = s +* (Initialized I);
set s2 = s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )));
assume that
A1:
I is_closed_on Initialize s
and
A2:
I is_halting_on Initialize s
; IExec (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )),s = (IExec I,s) +* (Start-At (insloc (((card I) + (card J)) + 1)))
s +* (Initialized I) = (Initialize s) +* (I +* (Start-At (insloc 0 )))
by Th13;
then A3:
ProgramPart (s +* (Initialized I)) halts_on s +* (Initialized I)
by A2, SCMFSA7B:def 8;
( ProgramPart (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )))) halts_on s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA ))) & LifeSpan (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )))) = (LifeSpan (s +* (Initialized I))) + 2 )
by A1, A2, Lm6;
then A4:
Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )))) = Computation (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )))),((LifeSpan (s +* (Initialized I))) + 2)
by AMI_1:122;
then
DataPart (Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA ))))) = DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I))))
by A1, A2, Lm6;
then A5: DataPart (Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA ))))) =
DataPart (Result (s +* (Initialized I)))
by A3, AMI_1:122
.=
DataPart ((Result (s +* (Initialized I))) +* (Start-At (insloc (((card I) + (card J)) + 1))))
by Th10
;
IC (Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA ))))) =
insloc (((card I) + (card J)) + 1)
by A1, A2, A4, Lm6
.=
IC ((Result (s +* (Initialized I))) +* (Start-At (insloc (((card I) + (card J)) + 1))))
by AMI_1:111
;
then A6:
Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )))),(Result (s +* (Initialized I))) +* (Start-At (insloc (((card I) + (card J)) + 1))) equal_outside NAT
by A5, Th6;
dom (s | NAT ) = NAT
by Th3;
then A7:
(Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA ))))) +* (s | NAT ) = ((Result (s +* (Initialized I))) +* (Start-At (insloc (((card I) + (card J)) + 1)))) +* (s | NAT )
by A6, FUNCT_7:108;
A8:
dom (s | NAT ) misses dom (Start-At (insloc (((card I) + (card J)) + 1)))
by Th12;
thus IExec (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA )),s =
(Result (s +* (Initialized (((I ';' (Goto (insloc ((card J) + 1)))) ';' J) ';' (Stop SCM+FSA ))))) +* (s | NAT )
by SCMFSA6B:def 1
.=
(Result (s +* (Initialized I))) +* ((Start-At (insloc (((card I) + (card J)) + 1))) +* (s | NAT ))
by A7, FUNCT_4:15
.=
(Result (s +* (Initialized I))) +* ((s | NAT ) +* (Start-At (insloc (((card I) + (card J)) + 1))))
by A8, FUNCT_4:36
.=
((Result (s +* (Initialized I))) +* (s | NAT )) +* (Start-At (insloc (((card I) + (card J)) + 1)))
by FUNCT_4:15
.=
(IExec I,s) +* (Start-At (insloc (((card I) + (card J)) + 1)))
by SCMFSA6B:def 1
; verum