let s be 0 -started State of SCMPDS; for I being parahalting Program of SCMPDS holds
( not I c= s or CurInstr ((ProgramPart s),(Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I))))))) = halt SCMPDS or IC (Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))) = card I )
let I be parahalting Program of SCMPDS; ( not I c= s or CurInstr ((ProgramPart s),(Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I))))))) = halt SCMPDS or IC (Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))) = card I )
set ss = s +* (stop I);
set m = LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)));
set s1 = Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))));
set s2 = Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))));
set Ik = IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I))))));
A1:
ProgramPart (s +* (stop I)) halts_on s +* (stop I)
by FUNCT_4:26, SCMPDS_4:def 10;
reconsider n = IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))))) as Element of NAT ;
A2:
stop I c= s +* (stop I)
by FUNCT_4:26;
A3:
IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))))) in dom (stop I)
by FUNCT_4:26, SCMPDS_4:def 9;
Initialize (s +* (stop I)) = s +* (stop I)
by COMPOS_1:79;
then A4:
(Initialize (s +* (stop I))) +* (stop I) = s +* (stop I)
by A2, FUNCT_4:79;
card (stop I) = (card I) + 1
by Lm1, AFINSQ_1:20;
then
n < (card I) + 1
by A3, AFINSQ_1:70;
then A5:
n <= card I
by INT_1:20;
A6:
stop I c= s +* (stop I)
by FUNCT_4:26;
assume A7:
I c= s
; ( CurInstr ((ProgramPart s),(Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I))))))) = halt SCMPDS or IC (Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))) = card I )
then A8:
IC (Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))) = IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I))))))
by A4, Th29, COMPOS_1:24;
now per cases
( n < card I or n = card I )
by A5, XXREAL_0:1;
case
n < card I
;
halt SCMPDS = CurInstr ((ProgramPart s),(Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))))then A9:
n in dom I
by AFINSQ_1:70;
thus halt SCMPDS =
CurInstr (
(ProgramPart (s +* (stop I))),
(Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))))))
by A4, A1, EXTPRO_1:def 14
.=
(s +* (stop I)) . (IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))))))
by COMPOS_1:38
.=
(stop I) . (IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))))))
by A3, A6, GRFUNC_1:8
.=
I . (IC (Comput ((ProgramPart (s +* (stop I))),(s +* (stop I)),(LifeSpan ((ProgramPart ((Initialize (s +* (stop I))) +* (stop I))),((Initialize (s +* (stop I))) +* (stop I)))))))
by A9, AFINSQ_1:def 4
.=
s . (IC (Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))))
by A7, A8, A9, GRFUNC_1:8
.=
CurInstr (
(ProgramPart s),
(Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))))
by COMPOS_1:38
;
verum end; end; end;
hence
( CurInstr ((ProgramPart s),(Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I))))))) = halt SCMPDS or IC (Comput ((ProgramPart s),s,(LifeSpan ((ProgramPart (s +* (stop I))),(s +* (stop I)))))) = card I )
; verum