let s be State of SCMPDS ; :: thesis: for I being parahalting No-StopCode 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)))

set SA0 = Start-At (inspos 0 );
let I be parahalting No-StopCode 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)))
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)))
set A = NAT ;
set D = SCM-Data-Loc ;
set ps = s | NAT ;
set sI = stop I;
set IsI = Initialized (stop I);
set IsJ = Initialized (stop J);
set sIJ = stop (I ';' J);
set IsIJ = Initialized (stop (I ';' J));
set s1 = s +* (Initialized (stop I));
set m1 = LifeSpan (s +* (Initialized (stop I)));
set s2 = s +* (Initialized (stop (I ';' J)));
set s3 = (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J));
set m3 = LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)));
A1: Initialized (stop J) c= (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)) by FUNCT_4:26;
A2: Initialized (stop J) c= (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)) by FUNCT_4:26;
A3: (IExec I,s) | NAT = s | NAT by CARD_3:99;
(s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I)) = (s +* (Initialized (stop (I ';' J)))) +* (stop I) by FUNCT_4:26, SCMPDS_4:34;
then A4: s +* (Initialized (stop (I ';' J))),(s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I)) equal_outside NAT by AMI_1:120;
A5: Initialized (stop J) c= (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)) by FUNCT_4:26;
A6: Initialized (stop J) c= (IExec I,s) +* (Initialized (stop J)) by FUNCT_4:26;
A7: (s +* (Initialized (stop I))) +* (Initialized (stop (I ';' J))) = s +* ((Initialized (stop I)) +* (Initialized (stop (I ';' J)))) by FUNCT_4:15
.= s +* (Initialized (stop (I ';' J))) by Th17 ;
A8: Initialized (stop J) c= (Result (s +* (Initialized (stop I)))) +* (Initialized (stop J)) by FUNCT_4:26;
A9: Initialized (stop J) c= (IExec I,s) +* (Initialized (stop J)) by FUNCT_4:26;
A10: dom (s | NAT ) = (dom s) /\ NAT by RELAT_1:90
.= (({(IC SCMPDS )} \/ SCM-Data-Loc ) \/ NAT ) /\ NAT by SCMPDS_4:19
.= NAT by XBOOLE_1:21 ;
A11: Initialized (stop I) c= s +* (Initialized (stop I)) by FUNCT_4:26;
then A12: IExec I,s = (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (s | NAT ) by AMI_1:122, SCMPDS_4:63;
A13: (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)),((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (s | NAT )) +* (Initialized (stop J)) equal_outside dom (s | NAT ) by FUNCT_7:31, FUNCT_7:106;
then ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (s | NAT )) +* (Initialized (stop J)),(Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)) equal_outside dom (s | NAT ) by FUNCT_7:28;
then Result ((IExec I,s) +* (Initialized (stop J))), Result ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))) equal_outside NAT by A10, A9, A2, A12, Th21;
then (Result ((IExec I,s) +* (Initialized (stop J)))) +* (s | NAT ) = (Result ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))) +* (s | NAT ) by A10, FUNCT_7:108;
then A14: IExec J,(IExec I,s) = (Computation ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) +* (s | NAT ) by A1, A3, AMI_1:122, SCMPDS_4:63;
s +* (Initialized (stop I)) = (s +* (stop I)) +* (Start-At (inspos 0 )) by FUNCT_4:15
.= (s +* (Start-At (inspos 0 ))) +* (stop I) by SCMPDS_4:62 ;
then A15: s +* (Initialized (stop I)),s +* (Start-At (inspos 0 )) equal_outside NAT by AMI_1:120, FUNCT_7:28;
A16: Initialized (stop I) c= (s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I)) by FUNCT_4:26;
s +* (Initialized (stop (I ';' J))) = (s +* (stop (I ';' J))) +* (Start-At (inspos 0 )) by FUNCT_4:15
.= (s +* (Start-At (inspos 0 ))) +* (stop (I ';' J)) by SCMPDS_4:62 ;
then s +* (Start-At (inspos 0 )),s +* (Initialized (stop (I ';' J))) equal_outside NAT by AMI_1:120;
then s +* (Initialized (stop I)),s +* (Initialized (stop (I ';' J))) equal_outside NAT by A15, FUNCT_7:29;
then s +* (Initialized (stop I)),(s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I)) equal_outside NAT by A4, FUNCT_7:29;
then A17: LifeSpan ((s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I))) = LifeSpan (s +* (Initialized (stop I))) by A11, A16, Th21;
then DataPart (Computation ((s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) = DataPart (Computation (((s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I))) +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) by A16, Th24, SCMPDS_4:24
.= DataPart (Computation ((s +* (Initialized (stop (I ';' J)))) +* ((Initialized (stop I)) +* (Initialized (stop (I ';' J))))),(LifeSpan (s +* (Initialized (stop I))))) by FUNCT_4:15
.= DataPart (Computation ((s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) by Th17
.= DataPart (Computation (s +* ((Initialized (stop (I ';' J))) +* (Initialized (stop (I ';' J))))),(LifeSpan (s +* (Initialized (stop I))))) by FUNCT_4:15
.= DataPart (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) by A11, A7, Th24, SCMPDS_4:24 ;
then A18: DataPart ((Computation ((s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))) = (DataPart (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))))) +* (DataPart (Initialized (stop J))) by FUNCT_4:75
.= DataPart ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))) by FUNCT_4:75 ;
A19: Initialized (stop (I ';' J)) c= s +* (Initialized (stop (I ';' J))) by FUNCT_4:26;
then A20: DataPart (Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = DataPart ((Computation ((s +* (Initialized (stop (I ';' J)))) +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))) by A17, Lm3;
A21: Shift (stop J),(card I) c= Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))) by A19, A17, Lm3;
A22: IC (Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = inspos (card I) by A19, A17, Lm3;
then A23: IC (Computation (Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) = (IC (Computation ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))) + (card I) by A20, A21, A5, A18, SCMPDS_4:84;
A24: DataPart (Computation (Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) = DataPart (Computation ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) by A22, A20, A21, A5, A18, SCMPDS_4:84;
A25: (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)) = (Result (s +* (Initialized (stop I)))) +* (Initialized (stop J)) by A11, AMI_1:122, SCMPDS_4:63;
Result (s +* (Initialized (stop I))) = Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) by A11, AMI_1:122, SCMPDS_4:63;
then A26: IC (Result ((Result (s +* (Initialized (stop I)))) +* (Initialized (stop J)))) = IC (Result ((IExec I,s) +* (Initialized (stop J)))) by A10, A13, A8, A6, Th21, AMI_1:121;
A27: IC (IExec (I ';' J),s) = IC (Result (s +* (Initialized (stop (I ';' J))))) by Th22
.= IC (Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop (I ';' J)))))) by A19, AMI_1:122, SCMPDS_4:63
.= IC (Computation (s +* (Initialized (stop (I ';' J)))),((LifeSpan (s +* (Initialized (stop I)))) + (LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))) by A25, Th37
.= (IC (Computation ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))) + (card I) by A23, AMI_1:51
.= (IC (Result ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) + (card I) by A1, AMI_1:122, SCMPDS_4:63
.= (IC (Result ((Result (s +* (Initialized (stop I)))) +* (Initialized (stop J))))) + (card I) by A11, AMI_1:122, SCMPDS_4:63
.= (IC (IExec J,(IExec I,s))) + (card I) by A26, Th22 ;
IExec (I ';' J),s = (Computation (s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop (I ';' J)))))) +* (s | NAT ) by A19, AMI_1:122, SCMPDS_4:63
.= (Computation (s +* (Initialized (stop (I ';' J)))),((LifeSpan (s +* (Initialized (stop I)))) + (LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))) +* (s | NAT ) by A25, Th37 ;
then A28: DataPart (IExec (I ';' J),s) = DataPart (Computation (s +* (Initialized (stop (I ';' J)))),((LifeSpan (s +* (Initialized (stop I)))) + (LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))) by A10, AMI_2:29, FUNCT_4:76, SCMPDS_2:100
.= DataPart (Computation ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) by A24, AMI_1:51
.= DataPart (IExec J,(IExec I,s)) by A10, A14, AMI_2:29, FUNCT_4:76, SCMPDS_2:100 ;
hereby :: thesis: verum
reconsider l = (IC (IExec J,(IExec I,s))) + (card I) as Instruction-Location of SCMPDS ;
A29: dom (Start-At l) = {(IC SCMPDS )} by FUNCOP_1:19;
A30: 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)))) . b1 )
assume A31: 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)))) . b1
per cases ( x is Int_position or x = IC SCMPDS or x is Instruction-Location of SCMPDS ) by A31, SCMPDS_4:20;
suppose A32: 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)))) . b1
then x <> IC SCMPDS by SCMPDS_2:52;
then A33: not x in dom (Start-At l) by A29, TARSKI:def 1;
(IExec (I ';' J),s) . x = (IExec J,(IExec I,s)) . x by A28, A32, SCMPDS_4:23;
hence (IExec (I ';' J),s) . x = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A33, FUNCT_4:12; :: thesis: verum
end;
suppose A34: x = IC SCMPDS ; :: thesis: (IExec (I ';' J),s) . b1 = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . b1
then x in {(IC SCMPDS )} by TARSKI:def 1;
then A35: x in dom (Start-At l) by FUNCOP_1:19;
thus (IExec (I ';' J),s) . x = (Start-At l) . (IC SCMPDS ) by A27, A34, FUNCOP_1:87
.= ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A34, A35, FUNCT_4:14 ; :: thesis: verum
end;
suppose A36: x is Instruction-Location of SCMPDS ; :: thesis: (IExec (I ';' J),s) . b1 = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . b1
then x <> IC SCMPDS by AMI_1:48;
then A37: not x in dom (Start-At l) by A29, TARSKI:def 1;
(IExec (I ';' J),s) | NAT = s | NAT by CARD_3:99
.= (IExec J,(IExec I,s)) | NAT by A3, CARD_3:99 ;
then (IExec (I ';' J),s) . x = (IExec J,(IExec I,s)) . x by A36, SCMPDS_4:21;
hence (IExec (I ';' J),s) . x = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A37, FUNCT_4:12; :: thesis: verum
end;
end;
end;
dom (IExec (I ';' J),s) = the carrier of SCMPDS by AMI_1:79
.= dom ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) by AMI_1:79 ;
hence IExec (I ';' J),s = (IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I))) by A30, FUNCT_1:9; :: thesis: verum
end;