let s be State of SCM+FSA; for I being Program of SCM+FSA st I is_closed_on s & I is_halting_on s holds
for m being Element of NAT st m < LifeSpan ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA))))) holds
CurInstr ((ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)))
let I be Program of SCM+FSA; ( I is_closed_on s & I is_halting_on s implies for m being Element of NAT st m < LifeSpan ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA))))) holds
CurInstr ((ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))) )
set s1 = s +* (I +* (Start-At (0,SCM+FSA)));
set s2 = s +* ((loop I) +* (Start-At (0,SCM+FSA)));
assume that
A1:
I is_closed_on s
and
A2:
I is_halting_on s
; for m being Element of NAT st m < LifeSpan ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA))))) holds
CurInstr ((ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)))
let m be Element of NAT ; ( m < LifeSpan ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA))))) implies CurInstr ((ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))) )
A3:
IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)) in dom I
by A1, SCMFSA7B:def 7;
then A4:
IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)) in dom (loop I)
by FUNCT_4:105;
A5:
I c= I +* (Start-At (0,SCM+FSA))
by SCMFSA8A:9;
Y:
(ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) /. (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)) . (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)))
by COMPOS_1:38;
TX1:
ProgramPart (s +* (I +* (Start-At (0,SCM+FSA)))) = ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))
by AMI_1:123;
I +* (Start-At (0,SCM+FSA)) c= s +* (I +* (Start-At (0,SCM+FSA)))
by FUNCT_4:26;
then
I c= s +* (I +* (Start-At (0,SCM+FSA)))
by A5, XBOOLE_1:1;
then
I c= Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)
by AMI_1:81;
then A6:
CurInstr ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = I . (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)))
by A3, Y, TX1, GRFUNC_1:8;
A7:
loop I c= (loop I) +* (Start-At (0,SCM+FSA))
by SCMFSA8A:9;
(loop I) +* (Start-At (0,SCM+FSA)) c= s +* ((loop I) +* (Start-At (0,SCM+FSA)))
by FUNCT_4:26;
then
loop I c= s +* ((loop I) +* (Start-At (0,SCM+FSA)))
by A7, XBOOLE_1:1;
then A8:
loop I c= Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)
by AMI_1:81;
assume A9:
m < LifeSpan ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))))
; CurInstr ((ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)))
Z:
(ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))) /. (IC (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))) = (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)) . (IC (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)))
by COMPOS_1:38;
ProgramPart (s +* (I +* (Start-At (0,SCM+FSA)))) halts_on s +* (I +* (Start-At (0,SCM+FSA)))
by A2, SCMFSA7B:def 8;
then
I . (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) <> halt SCM+FSA
by A9, A6, EXTPRO_1:def 14;
then
I . (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) = (loop I) . (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)))
by FUNCT_4:111;
hence CurInstr ((ProgramPart (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m))) =
(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)) . (IC (Comput ((ProgramPart (s +* (I +* (Start-At (0,SCM+FSA))))),(s +* (I +* (Start-At (0,SCM+FSA)))),m)))
by A8, A4, A6, TX1, GRFUNC_1:8
.=
CurInstr ((ProgramPart (Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m))),(Comput ((ProgramPart (s +* ((loop I) +* (Start-At (0,SCM+FSA))))),(s +* ((loop I) +* (Start-At (0,SCM+FSA)))),m)))
by A1, A2, A9, Th109, Z, COMPOS_1:24
;
verum