let I be Program of SCM+FSA; ( I is InitHalting implies I is InitClosed )
assume Z:
I is InitHalting
; I is InitClosed
set II = Initialized I;
let s be State of SCM+FSA; SCM_HALT:def 1 for P being the Instructions of SCM+FSA -valued ManySortedSet of NAT st I c= P holds
for n being Element of NAT st Initialize ((intloc 0) .--> 1) c= s holds
IC (Comput (P,s,n)) in dom I
let P be the Instructions of SCM+FSA -valued ManySortedSet of NAT ; ( I c= P implies for n being Element of NAT st Initialize ((intloc 0) .--> 1) c= s holds
IC (Comput (P,s,n)) in dom I )
assume A2:
I c= P
; for n being Element of NAT st Initialize ((intloc 0) .--> 1) c= s holds
IC (Comput (P,s,n)) in dom I
let n be Element of NAT ; ( Initialize ((intloc 0) .--> 1) c= s implies IC (Comput (P,s,n)) in dom I )
assume A3:
Initialize ((intloc 0) .--> 1) c= s
; IC (Comput (P,s,n)) in dom I
defpred S1[ Nat] means not IC (Comput (P,s,c1)) in dom I;
assume
not IC (Comput (P,s,n)) in dom I
; contradiction
then A5:
ex n being Nat st S1[n]
;
consider n being Nat such that
A6:
S1[n]
and
A7:
for m being Nat st S1[m] holds
n <= m
from NAT_1:sch 5(A5);
reconsider n = n as Element of NAT by ORDINAL1:def 13;
A8:
for m being Element of NAT st m < n holds
IC (Comput (P,s,m)) in dom I
by A7;
set s2 = Comput (P,s,n);
set p2 = P;
set s0 = s;
set p0 = P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n)))));
set s1 = Comput (P,s,n);
set p1 = P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n)))));
A11:
NPP s = NPP s
;
not IC (Comput (P,s,n)) in dom I
by A6;
then A14:
I c= P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n)))))
by A2, FUNCT_7:91;
then XX:
NPP (Comput ((P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n)))))),s,n)) = NPP (Comput (P,s,n))
by A11, A8, A2, AMISTD_2:66;
A16:
not P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n))))) halts_on Comput (P,s,n)
by SCMFSA6B:45;
P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n))))) halts_on s
by A14, Z, Def2, A3;
then
P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n))))) halts_on Comput ((P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n)))))),s,n)
by EXTPRO_1:22;
then
P +* ((IC (Comput (P,s,n))),(goto (IC (Comput (P,s,n))))) halts_on Comput (P,s,n)
by XX, AMISTD_2:69;
hence
contradiction
by A16; verum