set a = intloc 0 ;
let s be State of SCM+FSA ; for I being keeping_0 Program of SCM+FSA st I is_halting_on Initialized s holds
( (IExec I,s) . (intloc 0 ) = 1 & ( for k being Element of NAT holds (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1 ) )
set D = Int-Locations \/ FinSeq-Locations ;
set A = NAT ;
let I be keeping_0 Program of SCM+FSA ; ( I is_halting_on Initialized s implies ( (IExec I,s) . (intloc 0 ) = 1 & ( for k being Element of NAT holds (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1 ) ) )
set s0 = Initialized s;
set s1 = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ));
A1:
I +* (Start-At 0 ,SCM+FSA ) c= (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))
by FUNCT_4:26;
A2:
DataPart (Initialized s) = DataPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))
by SCMFSA8A:11;
A3:
now let k be
Element of
NAT ;
(Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1thus (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) =
((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) . (intloc 0 )
by A1, SCMFSA6B:def 4
.=
(Initialized s) . (intloc 0 )
by A2, SCMFSA6A:38
.=
1
by SCMFSA6C:3
;
verum end;
not intloc 0 in NAT
by SCMFSA_2:84;
then
not intloc 0 in (dom s) /\ NAT
by XBOOLE_0:def 4;
then A5:
not intloc 0 in dom (s | NAT )
by RELAT_1:90;
assume
I is_halting_on Initialized s
; ( (IExec I,s) . (intloc 0 ) = 1 & ( for k being Element of NAT holds (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1 ) )
then A6:
ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) halts_on (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))
by SCMFSA7B:def 8;
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))
by SCMFSA8A:13;
hence (IExec I,s) . (intloc 0 ) =
((Result (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))) +* (s | NAT )) . (intloc 0 )
by SCMFSA6B:def 1
.=
(Result (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))) . (intloc 0 )
by A5, FUNCT_4:12
.=
(Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),(LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) . (intloc 0 )
by A6, AMI_1:122
.=
1
by A3
;
for k being Element of NAT holds (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1
let k be Element of NAT ; (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1
thus
(Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1
by A3; verum