let s be State of SCM+FSA ; :: thesis: for I being parahalting Program of SCM+FSA st Initialized I c= s holds
for k being Element of NAT st k <= LifeSpan s holds
CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) <> halt SCM+FSA

set A = NAT ;
let I be parahalting Program of SCM+FSA ; :: thesis: ( Initialized I c= s implies for k being Element of NAT st k <= LifeSpan s holds
CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) <> halt SCM+FSA )

set s2 = s +* (Directed I);
set m = LifeSpan s;
assume A1: Initialized I c= s ; :: thesis: for k being Element of NAT st k <= LifeSpan s holds
CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) <> halt SCM+FSA

then A2: I +* (Start-At 0 ,SCM+FSA ) c= s by Th8;
A3: ProgramPart s halts_on s by A1, AMI_1:def 26;
A4: now
set s1 = s +* (I ';' I);
let k be Element of NAT ; :: thesis: ( k <= LifeSpan s implies Comput (ProgramPart s),s,k, Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k equal_outside NAT )
defpred S1[ Nat] means ( $1 <= k implies Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),$1, Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),$1 equal_outside NAT );
assume A5: k <= LifeSpan s ; :: thesis: Comput (ProgramPart s),s,k, Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k equal_outside NAT
A6: for n being Element of NAT st S1[n] holds
S1[n + 1]
proof
A7: Directed I c= I ';' I by SCMFSA6A:55;
let n be Element of NAT ; :: thesis: ( S1[n] implies S1[n + 1] )
A8: dom I c= dom (I ';' I) by SCMFSA6A:56;
assume A9: ( n <= k implies Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n, Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n equal_outside NAT ) ; :: thesis: S1[n + 1]
T: ProgramPart (s +* (Directed I)) = ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) by AMI_1:144;
A10: Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),(n + 1) = Following (ProgramPart (s +* (Directed I))),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) by AMI_1:14
.= Exec (CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) by T ;
T: ProgramPart (s +* (I ';' I)) = ProgramPart (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) by AMI_1:144;
A11: Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),(n + 1) = Following (ProgramPart (s +* (I ';' I))),(Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) by AMI_1:14
.= Exec (CurInstr (ProgramPart (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)),(Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)),(Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) by T ;
A12: n <= n + 1 by NAT_1:12;
assume A13: n + 1 <= k ; :: thesis: Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),(n + 1), Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),(n + 1) equal_outside NAT
then A14: IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) = IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) by A9, A12, AMI_1:121, XXREAL_0:2;
n <= k by A13, A12, XXREAL_0:2;
then n <= LifeSpan s by A5, XXREAL_0:2;
then IC (Comput (ProgramPart s),s,n) = IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) by A3, A2, Th36, AMI_1:121;
then A15: IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) in dom I by A2, Def2;
then A16: IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) in dom (Directed I) by A14, FUNCT_4:105;
Y: (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)) /. (IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)) = (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) . (IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)) by AMI_1:150;
A17: CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n) = (s +* (Directed I)) . (IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)) by AMI_1:54, Y
.= (Directed I) . (IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),n)) by A16, FUNCT_4:14 ;
Y: (ProgramPart (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)) /. (IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)) = (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) . (IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)) by AMI_1:150;
CurInstr (ProgramPart (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)),(Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n) = (s +* (I ';' I)) . (IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)) by AMI_1:54, Y
.= (I ';' I) . (IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)) by A8, A15, FUNCT_4:14
.= (Directed I) . (IC (Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),n)) by A7, A14, A16, GRFUNC_1:8 ;
hence Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),(n + 1), Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),(n + 1) equal_outside NAT by A9, A13, A12, A14, A17, A11, A10, SCMFSA6A:32, XXREAL_0:2; :: thesis: verum
end;
( Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),0 = s +* (I ';' I) & Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),0 = s +* (Directed I) ) by AMI_1:13;
then Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),0 , Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),0 equal_outside NAT by FUNCT_7:107, SCMFSA6A:42;
then A18: S1[ 0 ] by FUNCT_7:28;
for n being Element of NAT holds S1[n] from NAT_1:sch 1(A18, A6);
then A19: Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),k, Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k equal_outside NAT ;
Comput (ProgramPart s),s,k, Comput (ProgramPart (s +* (I ';' I))),(s +* (I ';' I)),k equal_outside NAT by A3, A2, A5, Th36;
hence Comput (ProgramPart s),s,k, Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k equal_outside NAT by A19, FUNCT_7:29; :: thesis: verum
end;
hereby :: thesis: verum
let k be Element of NAT ; :: thesis: ( k <= LifeSpan s implies not CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) = halt SCM+FSA )
set lk = IC (Comput (ProgramPart s),s,k);
A20: ( IC (Comput (ProgramPart s),s,k) in dom I & dom I = dom (Directed I) ) by A2, Def2, FUNCT_4:105;
then A21: (Directed I) . (IC (Comput (ProgramPart s),s,k)) in rng (Directed I) by FUNCT_1:def 5;
Y: (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)) /. (IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)) = (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) . (IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)) by AMI_1:150;
assume k <= LifeSpan s ; :: thesis: not CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) = halt SCM+FSA
then IC (Comput (ProgramPart s),s,k) = IC (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) by A4, AMI_1:121;
then A22: CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) = (s +* (Directed I)) . (IC (Comput (ProgramPart s),s,k)) by AMI_1:54, Y
.= (Directed I) . (IC (Comput (ProgramPart s),s,k)) by A20, FUNCT_4:14 ;
assume CurInstr (ProgramPart (Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k)),(Comput (ProgramPart (s +* (Directed I))),(s +* (Directed I)),k) = halt SCM+FSA ; :: thesis: contradiction
hence contradiction by A22, A21, SCMFSA6A:18; :: thesis: verum
end;