set D = Data-Locations SCM+FSA;
set JAt = Initialized J;
let s be State of SCM+FSA; :: according to EXTPRO_1:def 10,SCM_HALT:def 2 :: thesis: ( not Initialized (I ';' J) c= s or for b1 being set holds
( not ProgramPart (Initialized (I ';' J)) c= b1 or b1 halts_on s ) )

assume A1: Initialized (I ';' J) c= s ; :: thesis: for b1 being set holds
( not ProgramPart (Initialized (I ';' J)) c= b1 or b1 halts_on s )

then A2: s = s +* (Initialized (I ';' J)) by FUNCT_4:79;
let p be the Instructions of SCM+FSA -valued ManySortedSet of NAT ; :: thesis: ( not ProgramPart (Initialized (I ';' J)) c= p or p halts_on s )
assume A3: ProgramPart (Initialized (I ';' J)) c= p ; :: thesis: p halts_on s
ProgramPart (Initialized (I ';' J)) = I ';' J by SCMFSA6A:33;
then A4: p = p +* (I ';' J) by A3, FUNCT_4:79;
A5: ProgramPart (Initialized (I ';' J)) = I ';' J by SCMFSA6A:33;
A6: Initialized (I ';' J) = (I ';' J) +* (Initialize ((intloc 0) .--> 1)) by FUNCT_4:15;
set s1 = s +* I;
set p1 = p +* I;
set s3 = (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J);
set p3 = (p +* I) +* J;
A7: J c= (p +* I) +* J by FUNCT_4:26;
set m1 = LifeSpan ((p +* I),(s +* I));
set s4 = Comput (p,s,((LifeSpan ((p +* I),(s +* I))) + 1));
A8: I c= p +* I by FUNCT_4:26;
A9: Reloc (J,(card I)) c= I ';' J by FUNCT_4:26;
A10: dom I misses dom (Initialize ((intloc 0) .--> 1)) by Th2;
set m3 = LifeSpan (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)));
A11: dom (DataPart (Initialized J)) = (dom (Initialized J)) /\ (Data-Locations SCM+FSA) by RELAT_1:90;
reconsider m = ((LifeSpan ((p +* I),(s +* I))) + 1) + (LifeSpan (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)))) as Element of NAT ;
A12: dom (Directed I) = dom I by FUNCT_4:105;
dom (I ';' J) misses dom (Initialize ((intloc 0) .--> 1)) by Th2;
then A13: I ';' J c= Initialized (I ';' J) by A6, FUNCT_4:33;
then I ';' J c= s by A1, XBOOLE_1:1;
then Reloc (J,(card I)) c= s by A9, XBOOLE_1:1;
then A14: ( Initialized J c= (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J) & Reloc (J,(card I)) c= Comput (p,s,((LifeSpan ((p +* I),(s +* I))) + 1)) ) by AMI_1:81, FUNCT_4:26;
Initialize ((intloc 0) .--> 1) c= (I ';' J) +* (Initialize ((intloc 0) .--> 1)) by FUNCT_4:26;
then A15: Initialize ((intloc 0) .--> 1) c= s by A1, A6, XBOOLE_1:1;
then s +* (Initialize ((intloc 0) .--> 1)) = s by FUNCT_4:79;
then A16: s +* I = s +* ((Initialize ((intloc 0) .--> 1)) +* I) by FUNCT_4:15
.= s +* (I +* (Initialize ((intloc 0) .--> 1))) by A10, FUNCT_4:36
.= s +* (Initialized I) by FUNCT_4:15 ;
A17: Initialized I c= s +* (Initialized I) by FUNCT_4:26;
I c= p +* I by FUNCT_4:26;
then A18: p +* I halts_on s +* I by Th5, A17, A16;
A19: now
let x be set ; :: thesis: ( x in dom (DataPart (Initialized J)) implies (DataPart (Initialized J)) . b1 = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . b1 )
assume x in dom (DataPart (Initialized J)) ; :: thesis: (DataPart (Initialized J)) . b1 = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . b1
then A20: x in (dom (Initialized J)) /\ (Data-Locations SCM+FSA) by RELAT_1:90;
then A21: x in dom (Initialized J) by XBOOLE_0:def 4;
A22: x in Data-Locations SCM+FSA by A20, XBOOLE_0:def 4;
per cases ( x in dom J or x = intloc 0 or x = IC ) by A21, SCMFSA6A:44;
suppose A23: x in dom J ; :: thesis: (DataPart (Initialized J)) . b1 = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . b1
dom J c= NAT by RELAT_1:def 18;
then reconsider l = x as Element of NAT by A23;
(DataPart (Initialized J)) . l = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . l by A22, SCMFSA6A:37;
hence (DataPart (Initialized J)) . x = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . x ; :: thesis: verum
end;
suppose A24: x = intloc 0 ; :: thesis: (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . b1 = (DataPart (Initialized J)) . b1
then x in Int-Locations by SCMFSA_2:9;
then A25: x in Data-Locations SCM+FSA by XBOOLE_0:def 3, SCMFSA_2:127;
hence (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . x = (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) . x by FUNCT_1:72
.= 1 by A16, A24, Def3, A17, A8
.= (Initialized J) . x by A24, SCMFSA6A:46
.= (DataPart (Initialized J)) . x by A25, FUNCT_1:72 ;
:: thesis: verum
end;
suppose x = IC ; :: thesis: (DataPart (Initialized J)) . b1 = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . b1
hence (DataPart (Initialized J)) . x = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) . x by A20, SCMFSA6A:37, XBOOLE_0:def 4; :: thesis: verum
end;
end;
end;
take m ; :: according to EXTPRO_1:def 7 :: thesis: ( IC (Comput (p,s,m)) in proj1 p & CurInstr (p,(Comput (p,s,m))) = halt SCM+FSA )
IC (Comput (p,s,m)) in NAT ;
hence IC (Comput (p,s,m)) in dom p by PARTFUN1:def 4; :: thesis: CurInstr (p,(Comput (p,s,m))) = halt SCM+FSA
A26: Directed I c= I ';' J by SCMFSA6A:55;
then A27: Directed I c= p by A3, A5, XBOOLE_1:1;
A28: (s +* I) +* (Directed I) = s +* (I +* (Directed I)) by FUNCT_4:15
.= s +* (Directed I) by A12, FUNCT_4:20
.= (s +* (Initialized (I ';' J))) +* (Directed I) by A1, LATTICE2:8
.= s +* ((Initialized (I ';' J)) +* (Directed I)) by FUNCT_4:15
.= s +* (Initialized (I ';' J)) by A26, A13, LATTICE2:8, XBOOLE_1:1
.= s by A1, LATTICE2:8 ;
A29: Initialized J c= (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J) by FUNCT_4:26;
then dom (Initialized J) c= dom ((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)) by GRFUNC_1:8;
then dom (Initialized J) c= the carrier of SCM+FSA by PARTFUN1:def 4;
then dom (DataPart (Initialized J)) c= the carrier of SCM+FSA /\ (Data-Locations SCM+FSA) by A11, XBOOLE_1:26;
then dom (DataPart (Initialized J)) c= (dom (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) /\ (Data-Locations SCM+FSA) by PARTFUN1:def 4;
then dom (DataPart (Initialized J)) c= dom (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) by RELAT_1:90;
then ( DataPart ((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)) = (DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))))) +* (DataPart (Initialized J)) & DataPart (Initialized J) c= DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) ) by A19, FUNCT_4:75, GRFUNC_1:8;
then A30: DataPart (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) = DataPart ((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)) by LATTICE2:8;
Comput ((p +* I),(s +* (Initialized I)),(LifeSpan ((p +* I),(s +* I)))), Comput ((p +* (I ';' J)),(s +* (Initialized (I ';' J))),(LifeSpan ((p +* I),(s +* I)))) equal_outside NAT by A16, A18, Th24;
then Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I)))), Comput (p,s,(LifeSpan ((p +* I),(s +* I)))) equal_outside NAT by A2, A16, A4;
then A31: DataPart (Comput (p,s,(LifeSpan ((p +* I),(s +* I))))) = DataPart ((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)) by COMPOS_1:138, A30;
A32: Initialized I c= s +* (Initialized I) by FUNCT_4:26;
I c= p +* I by FUNCT_4:26;
then p +* I halts_on s +* I by A16, Th5, A32;
then A33: DataPart (Comput (p,s,((LifeSpan ((p +* I),(s +* I))) + 1))) = DataPart ((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)) by A15, A28, Th22, A31, FUNCT_4:26, A27;
A34: ProgramPart (Initialized J) = J by SCMFSA6A:33;
A35: Comput (p,s,(((LifeSpan ((p +* I),(s +* I))) + 1) + (LifeSpan (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)))))) = Comput (p,(Comput (p,s,((LifeSpan ((p +* I),(s +* I))) + 1))),(LifeSpan (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J))))) by EXTPRO_1:5;
A36: Reloc (J,(card I)) c= p by A9, A3, A5, XBOOLE_1:1;
IC (Comput (p,s,((LifeSpan ((p +* I),(s +* I))) + 1))) = card I by A15, A18, A28, Th21, FUNCT_4:26, A27;
then A37: IncAddr ((CurInstr (((p +* I) +* J),(Comput (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)),(LifeSpan (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)))))))),(card I)) = CurInstr (p,(Comput (p,s,(((LifeSpan ((p +* I),(s +* I))) + 1) + (LifeSpan (((p +* I) +* J),((Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J)))))))) by A35, A33, A14, Th12, A7, A36;
(p +* I) +* J halts_on (Comput ((p +* I),(s +* I),(LifeSpan ((p +* I),(s +* I))))) +* (Initialized J) by A29, EXTPRO_1:def 10, A34, A7;
then CurInstr (p,(Comput (p,s,m))) = IncAddr ((halt SCM+FSA),(card I)) by A37, EXTPRO_1:def 14
.= halt SCM+FSA by COMPOS_1:93 ;
hence CurInstr (p,(Comput (p,s,m))) = halt SCM+FSA ; :: thesis: verum