let N be with_non-empty_elements set ; :: thesis: for S being non empty stored-program halting IC-Ins-separated steady-programmed definite AMI-Struct of N
for s being State of S holds
( ProgramPart s halts_on s iff ex k being Element of NAT st s halts_at IC (Computation s,k) )

let S be non empty stored-program halting IC-Ins-separated steady-programmed definite AMI-Struct of N; :: thesis: for s being State of S holds
( ProgramPart s halts_on s iff ex k being Element of NAT st s halts_at IC (Computation s,k) )

let s be State of S; :: thesis: ( ProgramPart s halts_on s iff ex k being Element of NAT st s halts_at IC (Computation s,k) )
hereby :: thesis: ( ex k being Element of NAT st s halts_at IC (Computation s,k) implies ProgramPart s halts_on s )
assume ProgramPart s halts_on s ; :: thesis: ex k being Element of NAT st s halts_at IC (Computation s,k)
then consider k being Element of NAT such that
IC (Computation s,k) in dom (ProgramPart s) and
A1: (ProgramPart s) . (IC (Computation s,k)) = halt S by Def20;
take k = k; :: thesis: s halts_at IC (Computation s,k)
(ProgramPart s) . (IC (Computation s,k)) = CurInstr (Computation s,k) by LmX;
then s . (IC (Computation s,k)) = halt S by A1, Th54;
hence s halts_at IC (Computation s,k) by Def42; :: thesis: verum
end;
given k being Element of NAT such that A2: s halts_at IC (Computation s,k) ; :: thesis: ProgramPart s halts_on s
take k ; :: according to AMI_1:def 20 :: thesis: ( IC (Computation s,k) in dom (ProgramPart s) & (ProgramPart s) . (IC (Computation s,k)) = halt S )
IC (Computation s,k) in NAT by Def4;
hence IC (Computation s,k) in dom (ProgramPart s) by LmU; :: thesis: (ProgramPart s) . (IC (Computation s,k)) = halt S
CurInstr (Computation s,k) = s . (IC (Computation s,k)) by Th54
.= halt S by A2, Def42 ;
hence (ProgramPart s) . (IC (Computation s,k)) = halt S by LmX; :: thesis: verum