let P be Instruction-Sequence of SCM+FSA; :: thesis: for s being State of SCM+FSA
for I, J being MacroInstruction of SCM+FSA
for a being read-write Int-Location st s . (intloc 0) = 1 & s . a = 0 & Directed I is_pseudo-closed_on s,P holds
DataPart (IExec ((if=0 (a,I,J)),P,s)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,s))

let ss be State of SCM+FSA; :: thesis: for I, J being MacroInstruction of SCM+FSA
for a being read-write Int-Location st ss . (intloc 0) = 1 & ss . a = 0 & Directed I is_pseudo-closed_on ss,P holds
DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss))

set D = Data-Locations ;
let I, J be MacroInstruction of SCM+FSA ; :: thesis: for a being read-write Int-Location st ss . (intloc 0) = 1 & ss . a = 0 & Directed I is_pseudo-closed_on ss,P holds
DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss))

let a be read-write Int-Location; :: thesis: ( ss . (intloc 0) = 1 & ss . a = 0 & Directed I is_pseudo-closed_on ss,P implies DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss)) )
set I0 = Directed I;
set s = Initialized ss;
set I1 = I ";" (Stop SCM+FSA);
set s00 = Initialize (Initialized ss);
set P00 = P +* (Directed I);
set s3 = Initialize (Initialized ss);
set P3 = P +* (if=0 (a,I,J));
A1: if=0 (a,I,J) c= P +* (if=0 (a,I,J)) by FUNCT_4:25;
set s4 = Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1);
set i = a =0_goto ((card J) + 3);
A2: Directed I c= P +* (Directed I) by FUNCT_4:25;
assume A3: ss . (intloc 0) = 1 ; :: thesis: ( not ss . a = 0 or not Directed I is_pseudo-closed_on ss,P or DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss)) )
set s1 = Initialize (Initialized ss);
set P1 = P +* (I ";" (Stop SCM+FSA));
assume ss . a = 0 ; :: thesis: ( not Directed I is_pseudo-closed_on ss,P or DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss)) )
then A4: (Initialized ss) . a = 0 by SCMFSA_M:37;
A5: IC in dom (Start-At (0,SCM+FSA)) by MEMSTR_0:15;
A6: IC (Initialize (Initialized ss)) = IC (Initialize (Initialized ss))
.= IC (Start-At (0,SCM+FSA)) by A5, FUNCT_4:13
.= 0 by FUNCOP_1:72 ;
A7: 0 in dom (if=0 (a,I,J)) by AFINSQ_1:65;
A8: (P +* (if=0 (a,I,J))) . 0 = (if=0 (a,I,J)) . 0 by A7, FUNCT_4:13
.= a =0_goto ((card J) + 3) by Th18 ;
A9: Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),(0 + 1)) = Following ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),0))) by EXTPRO_1:3
.= Following ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)))
.= Exec ((a =0_goto ((card J) + 3)),(Initialize (Initialized ss))) by A6, A8, PBOOLE:143 ;
A10: a <> IC by SCMFSA_2:56;
not a in dom (Start-At (0,SCM+FSA)) by A10, TARSKI:def 1;
then A11: not a in dom (Start-At (0,SCM+FSA)) ;
(Initialize (Initialized ss)) . a = 0 by A11, A4, FUNCT_4:11;
then A12: IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)) = (card J) + 3 by A9, SCMFSA_2:70;
assume Directed I is_pseudo-closed_on ss,P ; :: thesis: DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss))
then A13: Directed I is_pseudo-closed_on Initialized ss,P by A3, Th16;
then A14: LifeSpan ((P +* (I ";" (Stop SCM+FSA))),(Initialize (Initialized ss))) = pseudo-LifeSpan ((Initialized ss),P,(Directed I)) by Th21;
A15: Directed I is_pseudo-closed_on Initialize (Initialized ss),P +* (Directed I) by A13;
A16: for f being FinSeq-Location holds (Initialize (Initialized ss)) . f = (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)) . f by A9, SCMFSA_2:70;
for a being Int-Location holds (Initialize (Initialized ss)) . a = (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)) . a by A9, SCMFSA_2:70;
then A17: DataPart (Initialize (Initialized ss)) = DataPart (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)) by A16, SCMFSA_M:2;
card (if=0 (a,I,J)) = ((card I) + (card J)) + (3 + 1) by SCMFSA8B:11
.= (((card I) + (card J)) + 3) + 1 ;
then ((card I) + (card J)) + 3 < card (if=0 (a,I,J)) by NAT_1:13;
then A18: ((card I) + (card J)) + 3 in dom (if=0 (a,I,J)) by AFINSQ_1:66;
A19: card (((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) = (card ((Macro (a =0_goto ((card J) + 3))) ";" J)) + (card (Goto ((card I) + 1))) by SCMFSA6A:21
.= (card ((Macro (a =0_goto ((card J) + 3))) ";" J)) + 1 by SCMFSA8A:15
.= ((card (Macro (a =0_goto ((card J) + 3)))) + (card J)) + 1 by SCMFSA6A:21
.= ((card J) + 2) + 1 by COMPOS_1:56
.= (card J) + (2 + 1) ;
A20: (Initialized ss) +* (Initialize ((intloc 0) .--> 1)) = Initialize (Initialized (Initialized ss)) by MEMSTR_0:44;
A21: if=0 (a,I,J) c= P +* (if=0 (a,I,J)) by FUNCT_4:25;
if=0 (a,I,J) = (((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" (I ";" (Stop SCM+FSA)) by SCMFSA6A:25;
then Reloc ((I ";" (Stop SCM+FSA)),((card J) + 3)) c= if=0 (a,I,J) by A19, SCMFSA6A:38;
then A22: Reloc ((I ";" (Stop SCM+FSA)),((card J) + 3)) c= P +* (if=0 (a,I,J)) by A21, XBOOLE_1:1;
Reloc ((Directed I),((card J) + 3)) c= Reloc ((I ";" (Stop SCM+FSA)),((card J) + 3)) by COMPOS_1:44, SCMFSA6A:16;
then A23: Reloc ((Directed I),((card J) + 3)) c= P +* (if=0 (a,I,J)) by A22, XBOOLE_1:1;
IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),((pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1))) = IC (Comput ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)),(pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))))) by EXTPRO_1:4
.= (IC (Comput ((P +* (Directed I)),(Initialize (Initialized ss)),(pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I)))))) + ((card J) + 3) by A15, A23, A12, A17, Th14, A2
.= (IC (Comput ((P +* (Directed I)),(Initialize (Initialized ss)),(pseudo-LifeSpan ((Initialized ss),P,(Directed I)))))) + ((card J) + 3) by A13, Th13
.= (card (Directed I)) + ((card J) + 3) by A13, SCMFSA8A:def 4
.= (card I) + ((card J) + 3) by SCMFSA6A:36
.= ((card I) + (card J)) + 3 ;
then A24: CurInstr ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),((pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1)))) = (P +* (if=0 (a,I,J))) . (((card I) + (card J)) + 3) by PBOOLE:143
.= (if=0 (a,I,J)) . (((card I) + (card J)) + 3) by A18, A1, GRFUNC_1:2
.= halt SCM+FSA by Th24 ;
then A25: P +* (if=0 (a,I,J)) halts_on Initialize (Initialized ss) by EXTPRO_1:29;
now :: thesis: for k being Nat st CurInstr ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) = halt SCM+FSA holds
(pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1 <= k
set J1 = (((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I;
let k be Nat; :: thesis: ( CurInstr ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) = halt SCM+FSA implies (pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1 <= k )
assume A26: CurInstr ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) = halt SCM+FSA ; :: thesis: (pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1 <= k
assume not (pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1 <= k ; :: thesis: contradiction
then A27: k <= pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I)) by NAT_1:13;
A28: 0 in dom (if=0 (a,I,J)) by AFINSQ_1:65;
A29: (P +* (if=0 (a,I,J))) /. (IC (Initialize (Initialized ss))) = (P +* (if=0 (a,I,J))) . (IC (Initialize (Initialized ss))) by PBOOLE:143;
CurInstr ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),0))) = (P +* (if=0 (a,I,J))) . 0 by A29, MEMSTR_0:16
.= (if=0 (a,I,J)) . 0 by A28, A1, GRFUNC_1:2
.= a =0_goto ((card J) + 3) by Th18 ;
then consider k1 being Nat such that
A30: k1 + 1 = k by A26, NAT_1:6;
reconsider k1 = k1 as Element of NAT by ORDINAL1:def 12;
reconsider n = IC (Comput ((P +* (Directed I)),(Initialize (Initialized ss)),k1)) as Element of NAT ;
k1 < k by A30, XREAL_1:29;
then A31: k1 < pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I)) by A27, XXREAL_0:2;
then k1 < pseudo-LifeSpan ((Initialized ss),P,(Directed I)) by A13, Th13;
then n in dom (Directed I) by A13, SCMFSA8A:17;
then n < card (Directed I) by AFINSQ_1:66;
then n + ((card J) + 3) < (card (Directed I)) + ((card J) + 3) by XREAL_1:6;
then A32: n + ((card J) + 3) < (card I) + ((card J) + 3) by SCMFSA6A:36;
A33: IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k)) = IC (Comput ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)),k1)) by A30, EXTPRO_1:4
.= (IC (Comput ((P +* (Directed I)),(Initialize (Initialized ss)),k1))) + ((card J) + 3) by A15, A23, A12, A17, A31, Th14, A2 ;
card ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I) = (card (((Macro (a =0_goto ((card J) + 3))) ";" J) ";" (Goto ((card I) + 1)))) + (card I) by SCMFSA6A:21
.= ((card ((Macro (a =0_goto ((card J) + 3))) ";" J)) + (card (Goto ((card I) + 1)))) + (card I) by SCMFSA6A:21
.= ((card ((Macro (a =0_goto ((card J) + 3))) ";" J)) + 1) + (card I) by SCMFSA8A:15
.= (((card (Macro (a =0_goto ((card J) + 3)))) + (card J)) + 1) + (card I) by SCMFSA6A:21
.= ((2 + (card J)) + 1) + (card I) by COMPOS_1:56
.= ((card I) + (card J)) + 3 ;
then IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k)) in dom ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I) by A33, A32, AFINSQ_1:66;
then A34: IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k)) in dom (Directed ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I)) by FUNCT_4:99;
then A35: (Directed ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I)) . (IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) in rng (Directed ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I)) by FUNCT_1:def 3;
card (if=0 (a,I,J)) = ((card I) + (card J)) + (3 + 1) by SCMFSA8B:11
.= (((card I) + (card J)) + 3) + 1 ;
then ((card I) + (card J)) + 3 < card (if=0 (a,I,J)) by XREAL_1:29;
then n + ((card J) + 3) < card (if=0 (a,I,J)) by A32, XXREAL_0:2;
then A36: IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k)) in dom (if=0 (a,I,J)) by A33, AFINSQ_1:66;
A37: CurInstr ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) = (P +* (if=0 (a,I,J))) . (IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) by PBOOLE:143
.= (if=0 (a,I,J)) . (IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) by A36, A1, GRFUNC_1:2 ;
Directed ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I) c= if=0 (a,I,J) by SCMFSA6A:16;
then (if=0 (a,I,J)) . (IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) = (Directed ((((a =0_goto ((card J) + 3)) ";" J) ";" (Goto ((card I) + 1))) ";" I)) . (IC (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),k))) by A34, GRFUNC_1:2;
hence contradiction by A26, A35, A37, COMPOS_1:def 11; :: thesis: verum
end;
then A38: LifeSpan ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss))) = (pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))) + 1 by A24, A25, EXTPRO_1:def 15;
A39: (Initialized ss) +* (Initialize ((intloc 0) .--> 1)) = Initialize (Initialized (Initialized ss)) by MEMSTR_0:44;
A40: (Directed I) ";" (Stop SCM+FSA) = I ";" (Stop SCM+FSA) ;
A41: DataPart (Comput ((P +* (Directed I)),(Initialize (Initialized ss)),(pseudo-LifeSpan ((Initialized ss),P,(Directed I))))) = DataPart (Comput ((P +* (I ";" (Stop SCM+FSA))),(Initialize (Initialized ss)),(pseudo-LifeSpan ((Initialized ss),P,(Directed I))))) by A13, A40, Th21;
I ";" (Stop SCM+FSA) is_halting_on Initialized ss,P by A13, Th21;
then A42: P +* (I ";" (Stop SCM+FSA)) halts_on Initialize (Initialized ss) ;
thus DataPart (IExec ((if=0 (a,I,J)),P,ss)) = DataPart (IExec ((if=0 (a,I,J)),P,(Initialized ss)))
.= DataPart (Result ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)))) by A20
.= DataPart (Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),(LifeSpan ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)))))) by A25, EXTPRO_1:23
.= DataPart (Comput ((P +* (if=0 (a,I,J))),(Comput ((P +* (if=0 (a,I,J))),(Initialize (Initialized ss)),1)),(pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))))) by A38, EXTPRO_1:4
.= DataPart (Comput ((P +* (Directed I)),(Initialize (Initialized ss)),(pseudo-LifeSpan ((Initialize (Initialized ss)),(P +* (Directed I)),(Directed I))))) by A15, A23, A12, A17, Th14, A2
.= DataPart (Comput ((P +* (I ";" (Stop SCM+FSA))),(Initialize (Initialized ss)),(LifeSpan ((P +* (I ";" (Stop SCM+FSA))),(Initialize (Initialized ss)))))) by A13, A14, A41, Th13
.= DataPart (Result ((P +* (I ";" (Stop SCM+FSA))),(Initialize (Initialized ss)))) by A42, EXTPRO_1:23
.= DataPart (IExec ((I ";" (Stop SCM+FSA)),P,(Initialized ss))) by A39
.= DataPart (IExec ((I ";" (Stop SCM+FSA)),P,ss)) ; :: thesis: verum