let s be 0 -started State of SCMPDS; :: thesis: for I being halt-free parahalting Program of SCMPDS
for J being parahalting shiftable Program of SCMPDS holds IExec ((I ';' J),s) = (IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))

let I be halt-free parahalting Program of SCMPDS; :: thesis: for J being parahalting shiftable Program of SCMPDS holds IExec ((I ';' J),s) = (IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))
let J be parahalting shiftable Program of SCMPDS; :: thesis: IExec ((I ';' J),s) = (IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))
set A = NAT ;
set D = SCM-Data-Loc ;
set ps = s | NAT;
set sI = stop I;
set sIJ = stop (I ';' J);
set s1 = (Initialize s) +* (stop I);
set m1 = LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)));
set s2 = s +* (stop (I ';' J));
set s3 = (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J);
set m3 = LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)));
A1: (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J) = (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) +* (Initialize (stop J)) by COMPOS_1:125;
A2: stop J c= (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J) by FUNCT_4:26;
A3: ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)) halts_on (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J) by FUNCT_4:26, SCMPDS_4:def 10;
A4: (IExec (I,s)) | NAT = s | NAT by PBOOLE:157;
A5: (s +* (stop (I ';' J))) +* (Initialize (stop I)) = (Initialize (s +* (stop (I ';' J)))) +* (stop I) by COMPOS_1:125;
A6: Initialize s = s by COMPOS_1:78;
(Initialize (s +* (stop (I ';' J)))) +* (stop I) = (s +* (stop (I ';' J))) +* (stop I) by COMPOS_1:78;
then A7: s +* (stop (I ';' J)),(s +* (stop (I ';' J))) +* (Initialize (stop I)) equal_outside NAT by A5, FUNCT_7:132;
A8: ((Initialize s) +* (stop I)) +* (stop (I ';' J)) = s +* ((stop I) +* (stop (I ';' J))) by A6, FUNCT_4:15
.= s +* (stop (I ';' J)) by Th17 ;
A9: stop J c= (Initialize (IExec (I,s))) +* (stop J) by FUNCT_4:26;
A10: dom (s | NAT) = (dom s) /\ NAT by RELAT_1:90
.= (({(IC )} \/ SCM-Data-Loc) \/ NAT) /\ NAT by SCMPDS_4:19
.= NAT by XBOOLE_1:21 ;
A11: stop I c= (Initialize s) +* (stop I) by FUNCT_4:26;
ProgramPart ((Initialize s) +* (stop I)) halts_on (Initialize s) +* (stop I) by FUNCT_4:26, SCMPDS_4:def 10;
then IExec (I,s) = (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) +* (s | NAT) by EXTPRO_1:23;
then A12: (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (s | NAT) = Initialize (IExec (I,s)) by COMPOS_1:83;
(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (s | NAT)) +* (stop J) equal_outside dom (s | NAT) by FUNCT_7:31, FUNCT_7:106;
then (Initialize (IExec (I,s))) +* (stop J),(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J) equal_outside NAT by A12, A10, FUNCT_7:28;
then Result ((ProgramPart ((Initialize (IExec (I,s))) +* (stop J))),((Initialize (IExec (I,s))) +* (stop J))), Result ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))) equal_outside NAT by A2, A9, Th21;
then (Result ((ProgramPart ((Initialize (IExec (I,s))) +* (stop J))),((Initialize (IExec (I,s))) +* (stop J)))) +* (s | NAT) = (Result ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)))) +* (s | NAT) by A10, FUNCT_7:108;
then A13: IExec (J,(IExec (I,s))) = (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)))))) +* (s | NAT) by A3, A4, EXTPRO_1:23;
A14: (Initialize s) +* (stop I), Initialize s equal_outside NAT by FUNCT_7:28, FUNCT_7:132;
A15: stop I c= (Initialize (s +* (stop (I ';' J)))) +* (stop I) by FUNCT_4:26;
A16: Initialize (s +* (stop (I ';' J))) = s +* (stop (I ';' J)) by COMPOS_1:78;
A17: ((Initialize (s +* (stop (I ';' J)))) +* (stop I)) +* (stop (I ';' J)) = (s +* (stop (I ';' J))) +* ((stop I) +* (stop (I ';' J))) by A16, FUNCT_4:15;
A18: (Initialize (s +* (stop (I ';' J)))) +* (stop (I ';' J)) = s +* ((stop (I ';' J)) +* (stop (I ';' J))) by A16, FUNCT_4:15;
A19: (s +* (stop (I ';' J))) +* ((stop I) +* (stop (I ';' J))) = (s +* (stop (I ';' J))) +* (stop (I ';' J)) by Th17;
Initialize s,s +* (stop (I ';' J)) equal_outside NAT by A6, FUNCT_7:132;
then (Initialize s) +* (stop I),s +* (stop (I ';' J)) equal_outside NAT by A14, FUNCT_7:29;
then (Initialize s) +* (stop I),(Initialize (s +* (stop (I ';' J)))) +* (stop I) equal_outside NAT by A7, A5, FUNCT_7:29;
then A20: LifeSpan ((ProgramPart ((Initialize (s +* (stop (I ';' J)))) +* (stop I))),((Initialize (s +* (stop (I ';' J)))) +* (stop I))) = LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))) by A11, A15, Th21;
set S1 = (Initialize (s +* (stop (I ';' J)))) +* (stop I);
A21: DataPart (Comput ((ProgramPart ((Initialize (s +* (stop (I ';' J)))) +* (stop I))),((Initialize (s +* (stop (I ';' J)))) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) = DataPart (Comput ((ProgramPart ((s +* (stop (I ';' J))) +* (stop (I ';' J)))),((s +* (stop (I ';' J))) +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) by A19, A17, A15, A20, Th24, COMPOS_1:138
.= DataPart (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) by A11, A8, Th24, A18, A16, COMPOS_1:138 ;
A22: DataPart ((Comput ((ProgramPart ((Initialize (s +* (stop (I ';' J)))) +* (stop I))),((Initialize (s +* (stop (I ';' J)))) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) +* (Initialize (stop J))) = (DataPart (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (DataPart (Initialize (stop J))) by A21, FUNCT_4:75
.= DataPart ((Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) +* (Initialize (stop J))) by FUNCT_4:75 ;
A23: stop (I ';' J) c= s +* (stop (I ';' J)) by FUNCT_4:26;
then A24: DataPart (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) = DataPart ((Initialize (Comput ((ProgramPart ((Initialize (s +* (stop (I ';' J)))) +* (stop I))),((Initialize (s +* (stop (I ';' J)))) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)) by A20, Lm4, A16
.= DataPart ((Comput ((ProgramPart ((Initialize (s +* (stop (I ';' J)))) +* (stop I))),((Initialize (s +* (stop (I ';' J)))) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) +* (Initialize (stop J))) by COMPOS_1:125 ;
A25: Shift ((stop J),(card I)) c= Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) by A23, A20, Lm4, A16;
A26: IC (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) = card I by A23, A20, Lm4, A16;
then A27: IC (Comput ((ProgramPart (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))),(Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)))))) = (IC (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))))))) + (card I) by A24, A25, A22, A1, A2, SCMPDS_4:84;
A28: ProgramPart (s +* (stop (I ';' J))) = ProgramPart (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))) by AMI_1:123;
A29: DataPart (Comput ((ProgramPart (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))),(Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))))),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)))))) = DataPart (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)))))) by A26, A24, A25, A22, A1, A2, SCMPDS_4:84;
A30: ProgramPart ((Initialize s) +* (stop I)) halts_on (Initialize s) +* (stop I) by FUNCT_4:26, SCMPDS_4:def 10;
A31: (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J) = (Initialize (Result ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) +* (stop J) by A11, EXTPRO_1:23, SCMPDS_4:def 10;
set SS1 = (Initialize (Result ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) +* (stop J);
set SS2 = (Initialize (IExec (I,s))) +* (stop J);
A32: Result ((ProgramPart ((Initialize s) +* (stop I))),((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 A11, EXTPRO_1:23, SCMPDS_4:def 10;
(Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J),(Initialize (IExec (I,s))) +* (stop J) equal_outside NAT by A12, A10, FUNCT_7:31, FUNCT_7:106;
then A33: IC (Result ((ProgramPart ((Initialize (Result ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) +* (stop J))),((Initialize (Result ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) +* (stop J)))) = IC (Result ((ProgramPart ((Initialize (IExec (I,s))) +* (stop J))),((Initialize (IExec (I,s))) +* (stop J)))) by Th21, A2, A9, A32, COMPOS_1:24;
A34: (Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J) = (Initialize (Result ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))) +* (stop J) by A30, EXTPRO_1:23;
A35: IC (IExec ((I ';' J),s)) = IC (Result ((ProgramPart ((Initialize s) +* (stop (I ';' J)))),((Initialize s) +* (stop (I ';' J))))) by Th22
.= IC (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))))))) by A23, A6, EXTPRO_1:23, SCMPDS_4:def 10
.= IC (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),((LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) + (LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))))))) by A31, Th37, A6
.= (IC (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))))))) + (card I) by A27, A28, EXTPRO_1:5
.= (IC (Result ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))))) + (card I) by A3, EXTPRO_1:23
.= (IC (IExec (J,(IExec (I,s))))) + (card I) by A33, Th22, A34 ;
IExec ((I ';' J),s) = (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),(LifeSpan ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))))))) +* (s | NAT) by A23, A6, EXTPRO_1:23, SCMPDS_4:def 10
.= (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),((LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) + (LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))))))) +* (s | NAT) by A31, Th37, A6 ;
then A36: DataPart (IExec ((I ';' J),s)) = DataPart (Comput ((ProgramPart (s +* (stop (I ';' J)))),(s +* (stop (I ';' J))),((LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)))) + (LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))))))) by A10, AMI_2:29, FUNCT_4:76, SCMPDS_2:100
.= DataPart (Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)),(LifeSpan ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J))),((Initialize (Comput ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I)),(LifeSpan ((ProgramPart ((Initialize s) +* (stop I))),((Initialize s) +* (stop I))))))) +* (stop J)))))) by A29, A28, EXTPRO_1:5
.= DataPart (IExec (J,(IExec (I,s)))) by A10, A13, AMI_2:29, FUNCT_4:76, SCMPDS_2:100 ;
hereby :: thesis: verum
reconsider l = (IC (IExec (J,(IExec (I,s))))) + (card I) as Element of NAT ;
A37: dom (Start-At (l,SCMPDS)) = {(IC )} by FUNCOP_1:19;
A38: now
let x be set ; :: thesis: ( x in dom (IExec ((I ';' J),s)) implies (IExec ((I ';' J),s)) . b1 = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . b1 )
assume A39: x in dom (IExec ((I ';' J),s)) ; :: thesis: (IExec ((I ';' J),s)) . b1 = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . b1
per cases ( x is Int_position or x = IC or x is Element of NAT ) by A39, SCMPDS_4:20;
suppose A40: x is Int_position ; :: thesis: (IExec ((I ';' J),s)) . b1 = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . b1
then x <> IC by SCMPDS_2:52;
then A41: not x in dom (Start-At (l,SCMPDS)) by A37, TARSKI:def 1;
(IExec ((I ';' J),s)) . x = (IExec (J,(IExec (I,s)))) . x by A36, A40, SCMPDS_4:23;
hence (IExec ((I ';' J),s)) . x = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . x by A41, FUNCT_4:12; :: thesis: verum
end;
suppose A42: x = IC ; :: thesis: (IExec ((I ';' J),s)) . b1 = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . b1
then x in {(IC )} by TARSKI:def 1;
then A43: x in dom (Start-At (l,SCMPDS)) by FUNCOP_1:19;
thus (IExec ((I ';' J),s)) . x = (Start-At (l,SCMPDS)) . (IC ) by A35, A42, FUNCOP_1:87
.= ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . x by A42, A43, FUNCT_4:14 ; :: thesis: verum
end;
suppose A44: x is Element of NAT ; :: thesis: (IExec ((I ';' J),s)) . b1 = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . b1
then x <> IC by COMPOS_1:3;
then A45: not x in dom (Start-At (l,SCMPDS)) by A37, TARSKI:def 1;
(IExec ((I ';' J),s)) | NAT = s | NAT by PBOOLE:157
.= (IExec (J,(IExec (I,s)))) | NAT by A4, PBOOLE:157 ;
then (IExec ((I ';' J),s)) . x = (IExec (J,(IExec (I,s)))) . x by A44, COMPOS_1:127;
hence (IExec ((I ';' J),s)) . x = ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) . x by A45, FUNCT_4:12; :: thesis: verum
end;
end;
end;
dom (IExec ((I ';' J),s)) = the carrier of SCMPDS by PARTFUN1:def 4
.= dom ((IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS))) by PARTFUN1:def 4 ;
hence IExec ((I ';' J),s) = (IExec (J,(IExec (I,s)))) +* (Start-At (((IC (IExec (J,(IExec (I,s))))) + (card I)),SCMPDS)) by A38, FUNCT_1:9; :: thesis: verum
end;