set a = intloc 0 ;
let s be State of SCM+FSA ; :: thesis: for I being keeping_0 Program of SCM+FSA st I is_halting_on Initialize s holds
( (IExec I,s) . (intloc 0 ) = 1 & ( for k being Element of NAT holds (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize 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 ; :: thesis: ( I is_halting_on Initialize s implies ( (IExec I,s) . (intloc 0 ) = 1 & ( for k being Element of NAT holds (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1 ) ) )
set s0 = Initialize s;
set s1 = (Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ));
A1: I +* (Start-At 0 ,SCM+FSA ) c= (Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )) by FUNCT_4:26;
A2: DataPart (Initialize s) = DataPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))) by SCMFSA8A:11;
A3: now
let k be Element of NAT ; :: thesis: (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1
thus (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))) . (intloc 0 ) by A1, SCMFSA6B:def 4
.= (Initialize s) . (intloc 0 ) by A2, SCMFSA6A:38
.= 1 by SCMFSA6C:3 ; :: thesis: 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 Initialize s ; :: thesis: ( (IExec I,s) . (intloc 0 ) = 1 & ( for k being Element of NAT holds (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1 ) )
then A6: ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))) halts_on (Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )) by SCMFSA7B:def 8;
s +* (Initialized I) = (Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )) by SCMFSA8A:13;
hence (IExec I,s) . (intloc 0 ) = ((Result ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))) +* (s | NAT )) . (intloc 0 ) by SCMFSA6B:def 1
.= (Result ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))) . (intloc 0 ) by A5, FUNCT_4:12
.= (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),(LifeSpan ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))))) . (intloc 0 ) by A6, AMI_1:122
.= 1 by A3 ;
:: thesis: for k being Element of NAT holds (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1
let k be Element of NAT ; :: thesis: (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1
thus (Comput (ProgramPart ((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialize s) +* (I +* (Start-At 0 ,SCM+FSA ))),k) . (intloc 0 ) = 1 by A3; :: thesis: verum