let s be State of SCMPDS ; :: thesis: for I being parahalting Program of SCMPDS holds
( not Initialized I c= s or CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = card I )

let I be parahalting Program of SCMPDS ; :: thesis: ( not Initialized I c= s or CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = card I )
set IsI = Initialized (stop I);
set ss = s +* (Initialized (stop I));
set m = LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)));
set s1 = Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))));
set s2 = Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I))));
set Ik = IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))));
A1: ProgramPart (s +* (Initialized (stop I))) halts_on s +* (Initialized (stop I)) by FUNCT_4:26, SCMPDS_4:63;
reconsider n = IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I))))) as Element of NAT ;
A2: Initialized (stop I) c= s +* (Initialized (stop I)) by FUNCT_4:26;
then A3: IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I))))) in dom (stop I) by SCMPDS_4:def 9;
XX: ( (Initialized (stop I)) +* (s +* (Initialized (stop I))) = s +* (Initialized (stop I)) & (s +* (Initialized (stop I))) +* (Initialized (stop I)) = s +* (Initialized (stop I)) ) by A2, FUNCT_4:79;
xx: ( (Initialized (stop I)) +* (s +* (Initialized (stop I))) = s +* (Initialized (stop I)) & (s +* (Initialized (stop I))) +* (Initialized (stop I)) = s +* (Initialized (stop I)) ) by A2, FUNCT_4:79;
card (stop I) = (card I) + 1 by LL, SCMPDS_4:45;
then n < (card I) + 1 by A3, AFINSQ_1:70;
then A4: n <= card I by INT_1:20;
stop I c= Initialized (stop I) by SCMPDS_4:9;
then A5: stop I c= s +* (Initialized (stop I)) by A2, XBOOLE_1:1;
assume A6: Initialized I c= s ; :: thesis: ( CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = card I )
then A7: IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) by Th29, AMI_1:121
.= IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I))))) by XX ;
A8: I c= s by A6, SCMPDS_4:57;
now
per cases ( n < card I or n = card I ) by A4, XXREAL_0:1;
case n < card I ; :: thesis: halt SCMPDS = CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))
then A9: n in dom I by AFINSQ_1:70;
Z: (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))) /. (IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))) = (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) . (IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))) by AMI_1:150;
V: (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))) /. (IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))) = (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I))))) . (IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))) by AMI_1:150;
TX: ProgramPart (s +* (Initialized (stop I))) = ProgramPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) by AMI_1:123;
thus halt SCMPDS = CurInstr (ProgramPart (s +* (Initialized (stop I)))),(Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) by A1, AMI_1:def 46
.= CurInstr (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))),(Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I))))) by xx, TX
.= (s +* (Initialized (stop I))) . (IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))) by V, AMI_1:54
.= (stop I) . (IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))) by A3, A5, GRFUNC_1:8
.= I . (IC (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (ProgramPart ((s +* (Initialized (stop I))) +* (Initialized (stop I)))),((s +* (Initialized (stop I))) +* (Initialized (stop I)))))) by A9, SCMPDS_4:37
.= s . (IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))) by A8, A7, A9, GRFUNC_1:8
.= CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) by Z, AMI_1:54 ; :: thesis: verum
end;
end;
end;
hence ( CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I)))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))))) = card I ) ; :: thesis: verum