let s be State of SCMPDS ; for I being parahalting Program of SCMPDS holds
( not Initialize I c= s or CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = card I )
let I be parahalting Program of SCMPDS ; ( not Initialize I c= s or CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = card I )
set ss = (Initialize s) +* (stop I);
set m = LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I));
I1:
s +* (Initialize (stop I)) = (Initialize s) +* (stop I)
by SCMPDS_4:5;
I2:
((Initialize s) +* (stop I)) +* (Initialize (stop I)) = (Initialize ((Initialize s) +* (stop I))) +* (stop I)
by SCMPDS_4:5;
set s1 = Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)));
set s2 = Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)));
set Ik = IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I))));
A1:
ProgramPart ((Initialize s) +* (stop I)) halts_on (Initialize s) +* (stop I)
by I1, FUNCT_4:26, SCMPDS_4:63;
reconsider n = IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))) as Element of NAT ;
A2:
Initialize (stop I) c= (Initialize s) +* (stop I)
by I1, FUNCT_4:26;
then A3:
IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))) in dom (stop I)
by SCMPDS_4:def 9;
XX:
( (Initialize (stop I)) +* ((Initialize s) +* (stop I)) = (Initialize s) +* (stop I) & (Initialize ((Initialize s) +* (stop I))) +* (stop I) = (Initialize s) +* (stop I) )
by A2, I2, FUNCT_4:79;
xx:
( (Initialize (stop I)) +* ((Initialize s) +* (stop I)) = (Initialize s) +* (stop I) & (Initialize ((Initialize s) +* (stop I))) +* (stop I) = (Initialize s) +* (stop I) )
by A2, I2, 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= Initialize (stop I)
by SCMPDS_4:9;
then A5:
stop I c= (Initialize s) +* (stop I)
by A2, XBOOLE_1:1;
assume A6:
Initialize I c= s
; ( CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = card I )
then A7: IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) =
IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))
by Th29, COMPOS_1:24
.=
IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (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
;
halt SCMPDS = CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))then A9:
n in dom I
by AFINSQ_1:70;
Z:
(ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) /. (IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) = (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) . (IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))
by COMPOS_1:38;
V:
(ProgramPart (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I))))) /. (IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I))))) = (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))) . (IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))))
by COMPOS_1:38;
TX:
ProgramPart ((Initialize s) +* (stop I)) = ProgramPart (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))
by AMI_1:123;
thus halt SCMPDS =
CurInstr (ProgramPart ((Initialize s) +* (stop I))),
(Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))
by A1, AMI_1:def 46
.=
CurInstr (ProgramPart (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I))))),
(Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I))))
by xx, TX
.=
((Initialize s) +* (stop I)) . (IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))))
by V, AMI_1:54
.=
(stop I) . (IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))))
by A3, A5, GRFUNC_1:8
.=
I . (IC (Comput (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan (ProgramPart ((Initialize ((Initialize s) +* (stop I))) +* (stop I))),((Initialize ((Initialize s) +* (stop I))) +* (stop I)))))
by A9, SCMPDS_4:37
.=
s . (IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))
by A8, A7, A9, GRFUNC_1:8
.=
CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))),
(Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))
by Z, AMI_1:54
;
verum end; end; end;
hence
( CurInstr (ProgramPart (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))),(Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = halt SCMPDS or IC (Comput (ProgramPart s),s,(LifeSpan (ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) = card I )
; verum