let s2 be State of ; not ProgramPart (s2 +* (IC s2),(goto (IC s2))) halts_on s2 +* (IC s2),(goto (IC s2))
set s1 = s2 +* (IC s2),(goto (IC s2));
defpred S1[ Element of NAT ] means IC (Computation (s2 +* (IC s2),(goto (IC s2))),$1) = IC (s2 +* (IC s2),(goto (IC s2)));
IC SCM+FSA <> IC s2
by AMI_1:48;
then A1:
IC (s2 +* (IC s2),(goto (IC s2))) = IC s2
by FUNCT_7:34;
A2:
IC s2 in dom s2
by AMI_1:115;
A3:
now let n be
Element of
NAT ;
( S1[n] implies S1[n + 1] )assume
S1[
n]
;
S1[n + 1]then A4:
CurInstr (Computation (s2 +* (IC s2),(goto (IC s2))),n) =
(s2 +* (IC s2),(goto (IC s2))) . (IC (s2 +* (IC s2),(goto (IC s2))))
by AMI_1:54
.=
goto (IC s2)
by A2, A1, FUNCT_7:33
;
IC (Computation (s2 +* (IC s2),(goto (IC s2))),(n + 1)) =
IC (Following (Computation (s2 +* (IC s2),(goto (IC s2))),n))
by AMI_1:14
.=
IC (s2 +* (IC s2),(goto (IC s2)))
by A1, A4, SCMFSA_2:95
;
hence
S1[
n + 1]
;
verum end;
let n be Element of NAT ; AMI_1:def 20 ( not IC (Computation (s2 +* (IC s2),(goto (IC s2))),n) in dom (ProgramPart (s2 +* (IC s2),(goto (IC s2)))) or not (ProgramPart (s2 +* (IC s2),(goto (IC s2)))) . (IC (Computation (s2 +* (IC s2),(goto (IC s2))),n)) = halt SCM+FSA )
A5:
S1[ 0 ]
by AMI_1:13;
assume
IC (Computation (s2 +* (IC s2),(goto (IC s2))),n) in dom (ProgramPart (s2 +* (IC s2),(goto (IC s2))))
; not (ProgramPart (s2 +* (IC s2),(goto (IC s2)))) . (IC (Computation (s2 +* (IC s2),(goto (IC s2))),n)) = halt SCM+FSA
for n being Element of NAT holds S1[n]
from NAT_1:sch 1(A5, A3);
then CurInstr (Computation (s2 +* (IC s2),(goto (IC s2))),n) =
(Computation (s2 +* (IC s2),(goto (IC s2))),n) . (IC (s2 +* (IC s2),(goto (IC s2))))
.=
(s2 +* (IC s2),(goto (IC s2))) . (IC (s2 +* (IC s2),(goto (IC s2))))
by AMI_1:54
.=
goto (IC s2)
by A2, A1, FUNCT_7:33
;
then
CurInstr (Computation (s2 +* (IC s2),(goto (IC s2))),n) <> halt SCM+FSA
by SCMFSA_2:47, SCMFSA_2:124;
hence
not (ProgramPart (s2 +* (IC s2),(goto (IC s2)))) . (IC (Computation (s2 +* (IC s2),(goto (IC s2))),n)) = halt SCM+FSA
by SCMFSA_2:47, SCMFSA_2:124, AMI_1:145; verum