let P be the Instructions of SCMPDS -valued ManySortedSet of NAT ; :: thesis: for s being 0 -started State of SCMPDS
for I being halt-free parahalting Program of SCMPDS
for J being parahalting shiftable Program of SCMPDS holds IExec ((I ';' J),P,s) = IncIC ((IExec (J,P,(IExec (I,P,s)))),(card I))

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),P,s) = IncIC ((IExec (J,P,(IExec (I,P,s)))),(card I))

let I be halt-free parahalting Program of SCMPDS; :: thesis: for J being parahalting shiftable Program of SCMPDS holds IExec ((I ';' J),P,s) = IncIC ((IExec (J,P,(IExec (I,P,s)))),(card I))
let J be parahalting shiftable Program of SCMPDS; :: thesis: IExec ((I ';' J),P,s) = IncIC ((IExec (J,P,(IExec (I,P,s)))),(card I))
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;
set P1 = P +* (stop I);
set m1 = LifeSpan ((P +* (stop I)),(Initialize s));
set s2 = s;
set P2 = P +* (stop (I ';' J));
set s3 = Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))));
set P3 = (P +* (stop I)) +* (stop J);
set m3 = LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))));
A2: stop J c= (P +* (stop I)) +* (stop J) by FUNCT_4:26;
A3: (P +* (stop I)) +* (stop J) halts_on Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by FUNCT_4:26, SCMPDS_4:def 10;
A4: (IExec (I,P,s)) | NAT = s | NAT by PBOOLE:157;
A6: Initialize s = s by COMPOS_1:78;
A9: stop J c= P +* (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= P +* (stop I) by FUNCT_4:26;
P +* (stop I) halts_on Initialize s by FUNCT_4:26, SCMPDS_4:def 10;
then Result ((P +* (stop I)),(Initialize s)) = Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))) by EXTPRO_1:23;
then IExec (I,P,s) = (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) +* (s | NAT) ;
then A12: (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) +* (s | NAT) = Initialize (IExec (I,P,s)) by COMPOS_1:83;
NPP (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) = NPP (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))
.= NPP ((Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) +* (s | NAT)) by COMPOS_1:236
.= NPP ((Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) +* (s | NAT)) ;
then NPP (Initialize (IExec (I,P,s))) = NPP (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) by A12;
then NPP (Result ((P +* (stop J)),(Initialize (IExec (I,P,s))))) = NPP (Result (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))) by A2, A9, Th21;
then (Result ((P +* (stop J)),(Initialize (IExec (I,P,s))))) +* (s | NAT) = (Result (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))) +* (s | NAT) by A10, COMPOS_1:238;
then A13: IExec (J,P,(IExec (I,P,s))) = (Comput (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))))) +* (s | NAT) by A3, A4, EXTPRO_1:23;
A15: stop I c= (P +* (stop (I ';' J))) +* (stop I) by FUNCT_4:26;
A16: Initialize s = s by COMPOS_1:78;
A18: (P +* (stop (I ';' J))) +* (stop (I ';' J)) = P +* ((stop (I ';' J)) +* (stop (I ';' J))) by FUNCT_4:15;
A19: ((P +* (stop (I ';' J))) +* (stop I)) +* (stop (I ';' J)) = (P +* (stop (I ';' J))) +* ((stop I) +* (stop (I ';' J))) by FUNCT_4:15
.= (P +* (stop (I ';' J))) +* (stop (I ';' J)) by Th17 ;
NPP (Initialize s) = NPP (Initialize s) ;
then A20: LifeSpan (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s)) = LifeSpan ((P +* (stop I)),(Initialize s)) by A11, A15, Th21;
set S1 = Initialize s;
set E1 = (P +* (stop (I ';' J))) +* (stop I);
X1: NPP (Comput (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) = NPP (Comput ((((P +* (stop (I ';' J))) +* (stop I)) +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))) by A15, A20, Th24, A16;
X2: NPP (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) = NPP (Comput (((P +* (stop I)) +* (stop (I ';' J))),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by A11, Th24;
(P +* (stop I)) +* (stop (I ';' J)) = P +* ((stop I) +* (stop (I ';' J))) by FUNCT_4:15
.= P +* (stop (I ';' J)) by Th17
.= P +* ((stop (I ';' J)) +* (stop (I ';' J)))
.= (P +* (stop (I ';' J))) +* (stop (I ';' J)) by A18
.= ((P +* (stop (I ';' J))) +* (stop I)) +* (stop (I ';' J)) by A19 ;
then A21: DataPart (Comput (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) = DataPart (Comput (((P +* (stop I)) +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))) by X1, COMPOS_1:138
.= DataPart (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by A16, X2, COMPOS_1:138 ;
A22: DataPart (Comput (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) = DataPart (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by A21
.= DataPart (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) ;
A23: stop (I ';' J) c= P +* (stop (I ';' J)) by FUNCT_4:26;
then A24: DataPart (Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))) = DataPart (Initialize (Comput (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) by A20, Lm4, A16
.= DataPart (Comput (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by COMPOS_1:80 ;
A25: Shift ((stop J),(card I)) c= P +* (stop (I ';' J)) by A23, A20, Lm4;
A26: IC (Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))) = card I by A23, A20, Lm4, A16;
B29: DataPart (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) = DataPart (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by COMPOS_1:80
.= DataPart (Comput (((P +* (stop (I ';' J))) +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) by A22
.= DataPart (Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))) by A24 ;
then A27: IC (Comput ((P +* (stop (I ';' J))),(Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))))) = (IC (Comput (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))))))) + (card I) by A25, A2, SCMPDS_4:84, A26;
A29: DataPart (Comput ((P +* (stop (I ';' J))),(Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop I)),(Initialize s))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))))) = DataPart (Comput (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))))) by A26, A25, A2, SCMPDS_4:84, B29;
A30: P +* (stop I) halts_on Initialize s by FUNCT_4:26, SCMPDS_4:def 10;
A31: Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) = Initialize (Result ((P +* (stop I)),(Initialize s))) by A11, EXTPRO_1:23, SCMPDS_4:def 10;
set SS1 = (Initialize (Result ((P +* (stop I)),(Initialize s)))) +* (stop J);
set SS2 = (Initialize (IExec (I,P,s))) +* (stop J);
A32: Result ((P +* (stop I)),(Initialize s)) = Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))) by A11, EXTPRO_1:23, SCMPDS_4:def 10;
NPP (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) = NPP (Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))
.= NPP ((Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))) +* (s | NAT)) by COMPOS_1:236
.= NPP (Initialize (IExec (I,P,s))) by A12 ;
then NPP (Result (((P +* (stop I)) +* (stop J)),(Initialize (Result ((P +* (stop I)),(Initialize s)))))) = NPP (Result ((P +* (stop J)),(Initialize (IExec (I,P,s))))) by Th21, A2, A9, A32;
then A33: IC (Result (((P +* (stop I)) +* (stop J)),(Initialize (Result ((P +* (stop I)),(Initialize s)))))) = IC (Result ((P +* (stop J)),(Initialize (IExec (I,P,s))))) by COMPOS_1:230;
A34: Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))) = Initialize (Result ((P +* (stop I)),(Initialize s))) by A30, EXTPRO_1:23;
A35: IC (IExec ((I ';' J),P,s)) = IC (Result ((P +* (stop (I ';' J))),(Initialize s))) by Th22
.= IC (Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop (I ';' J))),s)))) by A23, A6, EXTPRO_1:23, SCMPDS_4:def 10
.= IC (Comput ((P +* (stop (I ';' J))),s,((LifeSpan ((P +* (stop I)),(Initialize s))) + (LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))))))) by A31, Th37, A6
.= (IC (Comput (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))))))) + (card I) by A27, EXTPRO_1:5
.= (IC (Result (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))))) + (card I) by A3, EXTPRO_1:23
.= (IC (IExec (J,P,(IExec (I,P,s))))) + (card I) by A33, Th22, A34 ;
IExec ((I ';' J),P,s) = (Comput ((P +* (stop (I ';' J))),s,(LifeSpan ((P +* (stop (I ';' J))),s)))) +* (s | NAT) by A23, A6, EXTPRO_1:23, SCMPDS_4:def 10
.= (Comput ((P +* (stop (I ';' J))),s,((LifeSpan ((P +* (stop I)),(Initialize s))) + (LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))))))) +* (s | NAT) by A31, Th37, A6 ;
then A36: DataPart (IExec ((I ';' J),P,s)) = DataPart (Comput ((P +* (stop (I ';' J))),s,((LifeSpan ((P +* (stop I)),(Initialize s))) + (LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s))))))))))) by A10, AMI_2:29, FUNCT_4:76, SCMPDS_2:100
.= DataPart (Comput (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))),(LifeSpan (((P +* (stop I)) +* (stop J)),(Initialize (Comput ((P +* (stop I)),(Initialize s),(LifeSpan ((P +* (stop I)),(Initialize s)))))))))) by A29, EXTPRO_1:5
.= DataPart (IExec (J,P,(IExec (I,P,s)))) by A10, A13, AMI_2:29, FUNCT_4:76, SCMPDS_2:100 ;
hereby :: thesis: verum
reconsider l = (IC (IExec (J,P,(IExec (I,P,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),P,s)) implies (IExec ((I ';' J),P,s)) . b1 = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,s))))) + (card I)),SCMPDS))) . b1 )
assume A39: x in dom (IExec ((I ';' J),P,s)) ; :: thesis: (IExec ((I ';' J),P,s)) . b1 = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,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),P,s)) . b1 = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,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),P,s)) . x = (IExec (J,P,(IExec (I,P,s)))) . x by A36, A40, SCMPDS_4:23;
hence (IExec ((I ';' J),P,s)) . x = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,s))))) + (card I)),SCMPDS))) . x by A41, FUNCT_4:12; :: thesis: verum
end;
suppose A42: x = IC ; :: thesis: (IExec ((I ';' J),P,s)) . b1 = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,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),P,s)) . x = (Start-At (l,SCMPDS)) . (IC ) by A35, A42, FUNCOP_1:87
.= ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,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),P,s)) . b1 = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,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),P,s)) | NAT = s | NAT by PBOOLE:157
.= (IExec (J,P,(IExec (I,P,s)))) | NAT by A4, PBOOLE:157 ;
then (IExec ((I ';' J),P,s)) . x = (IExec (J,P,(IExec (I,P,s)))) . x by A44, COMPOS_1:127;
hence (IExec ((I ';' J),P,s)) . x = ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,s))))) + (card I)),SCMPDS))) . x by A45, FUNCT_4:12; :: thesis: verum
end;
end;
end;
dom (IExec ((I ';' J),P,s)) = the carrier of SCMPDS by PARTFUN1:def 4
.= dom ((IExec (J,P,(IExec (I,P,s)))) +* (Start-At (((IC (IExec (J,P,(IExec (I,P,s))))) + (card I)),SCMPDS))) by PARTFUN1:def 4 ;
hence IExec ((I ';' J),P,s) = IncIC ((IExec (J,P,(IExec (I,P,s)))),(card I)) by A38, FUNCT_1:9; :: thesis: verum
end;