let s be State of SCM+FSA ; :: thesis: for I being InitHalting keepInt0_1 Program of SCM+FSA
for J being InitHalting Program of SCM+FSA holds IExec (I ';' J),s = (IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))

let I be InitHalting keepInt0_1 Program of SCM+FSA ; :: thesis: for J being InitHalting Program of SCM+FSA holds IExec (I ';' J),s = (IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))
let J be InitHalting Program of SCM+FSA ; :: thesis: IExec (I ';' J),s = (IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))
set ps = s | NAT ;
set s1 = s +* (Initialized I);
set s2 = s +* (Initialized (I ';' J));
set s3 = (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J);
set m1 = LifeSpan (s +* (Initialized I));
set m3 = LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J));
set A = NAT ;
set D = Int-Locations \/ FinSeq-Locations ;
A1: Initialized I c= s +* (Initialized I) by FUNCT_4:26;
A2: s +* (Initialized I) is halting by Th5, FUNCT_4:26;
A3: Initialized (I ';' J) c= s +* (Initialized (I ';' J)) by FUNCT_4:26;
s +* (Initialized (I ';' J)) = s +* ((I ';' J) +* (((intloc 0 ) .--> 1) +* (Start-At (insloc 0 )))) by FUNCT_4:15
.= (s +* (I ';' J)) +* (((intloc 0 ) .--> 1) +* (Start-At (insloc 0 ))) by FUNCT_4:15 ;
then A4: ((intloc 0 ) .--> 1) +* (Start-At (insloc 0 )) c= s +* (Initialized (I ';' J)) by FUNCT_4:26;
(s +* (Initialized (I ';' J))) +* (I +* (((intloc 0 ) .--> 1) +* (Start-At (insloc 0 )))) = ((s +* (Initialized (I ';' J))) +* I) +* (((intloc 0 ) .--> 1) +* (Start-At (insloc 0 ))) by FUNCT_4:15
.= ((s +* (Initialized (I ';' J))) +* (((intloc 0 ) .--> 1) +* (Start-At (insloc 0 )))) +* I by Th19
.= (s +* (Initialized (I ';' J))) +* I by A4, FUNCT_4:79 ;
then I +* (((intloc 0 ) .--> 1) +* (Start-At (insloc 0 ))) c= (s +* (Initialized (I ';' J))) +* I by FUNCT_4:26;
then Initialized I c= (s +* (Initialized (I ';' J))) +* I by FUNCT_4:15;
then A5: (s +* (Initialized (I ';' J))) +* I is halting by Th5;
A6: Initialized J c= (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J) by FUNCT_4:26;
A7: dom (s | NAT ) = (dom s) /\ NAT by RELAT_1:90
.= (((Int-Locations \/ FinSeq-Locations ) \/ {(IC SCM+FSA )}) \/ NAT ) /\ NAT by AMI_1:79, SCMFSA_2:8
.= NAT by XBOOLE_1:21 ;
A8: (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J),((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (s | NAT )) +* (Initialized J) equal_outside dom (s | NAT ) by FUNCT_7:31, FUNCT_7:106;
then A9: ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (s | NAT )) +* (Initialized J),(Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J) equal_outside dom (s | NAT ) by FUNCT_7:28;
Result ((IExec I,s) +* (Initialized J)), Result ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)) equal_outside NAT
proof end;
then A12: (Result ((IExec I,s) +* (Initialized J))) +* (s | NAT ) = (Result ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J))) +* (s | NAT ) by A7, FUNCT_7:108;
A13: (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J) = (Result (s +* (Initialized I))) +* (Initialized J) by A1, Th5, AMI_1:122;
A14: IExec (I ';' J),s = (Result (s +* (Initialized (I ';' J)))) +* (s | NAT ) by SCMFSA6B:def 1
.= (Computation (s +* (Initialized (I ';' J))),(LifeSpan (s +* (Initialized (I ';' J))))) +* (s | NAT ) by A3, Th5, AMI_1:122
.= (Computation (s +* (Initialized (I ';' J))),(((LifeSpan (s +* (Initialized I))) + 1) + (LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J))))) +* (s | NAT ) by A13, Th28 ;
(IExec I,s) | NAT = ((Result (s +* (Initialized I))) +* (s | NAT )) | NAT by SCMFSA6B:def 1
.= s | NAT by CARD_3:99 ;
then A15: IExec J,(IExec I,s) = (Result ((IExec I,s) +* (Initialized J))) +* (s | NAT ) by SCMFSA6B:def 1
.= (Computation ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) +* (s | NAT ) by A6, A12, Th5, AMI_1:122 ;
A16: Initialized I c= (s +* (Initialized (I ';' J))) +* I by FUNCT_4:26, SCMFSA6A:52;
A17: s +* (Initialized I),s +* (Initialized (I ';' J)) equal_outside NAT by SCMFSA6A:53;
s +* (Initialized (I ';' J)),(s +* (Initialized (I ';' J))) +* I equal_outside NAT by AMI_1:120;
then s +* (Initialized I),(s +* (Initialized (I ';' J))) +* I equal_outside NAT by A17, FUNCT_7:29;
then A18: LifeSpan ((s +* (Initialized (I ';' J))) +* I) = LifeSpan (s +* (Initialized I)) by A1, A16, Th15;
then A19: ( IC (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)) = insloc (card I) & DataPart (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)) = DataPart ((Computation ((s +* (Initialized (I ';' J))) +* I),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1) & (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)) . (intloc 0 ) = 1 ) by A3, Th25;
A20: ( DataPart (Computation (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) = DataPart (Computation ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) & IC (Computation (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) = (IC (Computation ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J))))) + (card I) )
proof
A21: Initialized J c= (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J) by FUNCT_4:26;
A22: (s +* (Initialized I)) +* (I ';' J) = s +* ((Initialized I) +* (I ';' J)) by FUNCT_4:15
.= s +* (Initialized (I ';' J)) by SCMFSA6A:58 ;
DataPart (Computation ((s +* (Initialized (I ';' J))) +* I),(LifeSpan (s +* (Initialized I)))) = DataPart (Computation (((s +* (Initialized (I ';' J))) +* I) +* (I ';' J)),(LifeSpan (s +* (Initialized I)))) by A5, A16, A18, Th18, SCMFSA6A:39
.= DataPart (Computation ((s +* (Initialized (I ';' J))) +* (I +* (I ';' J))),(LifeSpan (s +* (Initialized I)))) by FUNCT_4:15
.= DataPart (Computation ((s +* (Initialized (I ';' J))) +* (I ';' J)),(LifeSpan (s +* (Initialized I)))) by SCMFSA6A:57
.= DataPart (Computation (s +* ((Initialized (I ';' J)) +* (I ';' J))),(LifeSpan (s +* (Initialized I)))) by FUNCT_4:15
.= DataPart (Computation (s +* (Initialized (I ';' J))),(LifeSpan (s +* (Initialized I)))) by LATTICE2:8, SCMFSA6A:26
.= DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) by A1, A2, A22, Th18, SCMFSA6A:39 ;
then DataPart ((Computation ((s +* (Initialized (I ';' J))) +* I),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)) = (DataPart (Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I))))) +* (DataPart (Initialized J)) by FUNCT_4:75
.= DataPart ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)) by FUNCT_4:75 ;
hence ( DataPart (Computation (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) = DataPart (Computation ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) & IC (Computation (Computation (s +* (Initialized (I ';' J))),((LifeSpan (s +* (Initialized I))) + 1)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) = (IC (Computation ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J))))) + (card I) ) by A19, A21, Th12; :: thesis: verum
end;
A23: DataPart (IExec (I ';' J),s) = DataPart (IExec J,(IExec I,s))
proof end;
A25: IExec I,s = (Result (s +* (Initialized I))) +* (s | NAT ) by SCMFSA6B:def 1;
A26: Result (s +* (Initialized I)) = Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I))) by A1, Th5, AMI_1:122;
A27: Initialized J c= (Result (s +* (Initialized I))) +* (Initialized J) by FUNCT_4:26;
Initialized J c= (IExec I,s) +* (Initialized J) by FUNCT_4:26;
then A28: IC (Result ((Result (s +* (Initialized I))) +* (Initialized J))) = IC (Result ((IExec I,s) +* (Initialized J))) by A7, A8, A25, A26, A27, Th15, AMI_1:121;
A29: IC (IExec (I ';' J),s) = IC (Result (s +* (Initialized (I ';' J)))) by SCMFSA8A:7
.= IC (Computation (s +* (Initialized (I ';' J))),(LifeSpan (s +* (Initialized (I ';' J))))) by A3, Th5, AMI_1:122
.= IC (Computation (s +* (Initialized (I ';' J))),(((LifeSpan (s +* (Initialized I))) + 1) + (LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J))))) by A13, Th28
.= (IC (Computation ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)),(LifeSpan ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J))))) + (card I) by A20, AMI_1:51
.= (IC (Result ((Computation (s +* (Initialized I)),(LifeSpan (s +* (Initialized I)))) +* (Initialized J)))) + (card I) by A6, Th5, AMI_1:122
.= (IC (Result ((Result (s +* (Initialized I))) +* (Initialized J)))) + (card I) by A1, Th5, AMI_1:122
.= (IC (IExec J,(IExec I,s))) + (card I) by A28, SCMFSA8A:7 ;
hereby :: thesis: verum
A30: dom (IExec (I ';' J),s) = the carrier of SCM+FSA by AMI_1:79
.= dom ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) by AMI_1:79 ;
reconsider l = (IC (IExec J,(IExec I,s))) + (card I) as Instruction-Location of SCM+FSA ;
A31: dom (Start-At l) = {(IC SCM+FSA )} by FUNCOP_1:19;
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 A32: 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-Location or x is FinSeq-Location or x = IC SCM+FSA or x is Instruction-Location of SCM+FSA ) by A32, SCMFSA6A:35;
suppose A33: x is Int-Location ; :: thesis: (IExec (I ';' J),s) . b1 = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . b1
then A34: (IExec (I ';' J),s) . x = (IExec J,(IExec I,s)) . x by A23, SCMFSA6A:38;
x <> IC SCM+FSA by A33, SCMFSA_2:81;
then not x in dom (Start-At l) by A31, TARSKI:def 1;
hence (IExec (I ';' J),s) . x = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A34, FUNCT_4:12; :: thesis: verum
end;
suppose A35: x is FinSeq-Location ; :: thesis: (IExec (I ';' J),s) . b1 = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . b1
then A36: (IExec (I ';' J),s) . x = (IExec J,(IExec I,s)) . x by A23, SCMFSA6A:38;
x <> IC SCM+FSA by A35, SCMFSA_2:82;
then not x in dom (Start-At l) by A31, TARSKI:def 1;
hence (IExec (I ';' J),s) . x = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A36, FUNCT_4:12; :: thesis: verum
end;
suppose A37: x = IC SCM+FSA ; :: 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 SCM+FSA )} by TARSKI:def 1;
then A38: x in dom (Start-At l) by FUNCOP_1:19;
thus (IExec (I ';' J),s) . x = (Start-At l) . (IC SCM+FSA ) by A29, A37, FUNCOP_1:87
.= ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A37, A38, FUNCT_4:14 ; :: thesis: verum
end;
suppose A39: x is Instruction-Location of SCM+FSA ; :: thesis: (IExec (I ';' J),s) . b1 = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . b1
(IExec (I ';' J),s) | NAT = s | NAT by A14, CARD_3:99
.= (IExec J,(IExec I,s)) | NAT by A15, CARD_3:99 ;
then A40: (IExec (I ';' J),s) . x = (IExec J,(IExec I,s)) . x by A39, SCMFSA6A:36;
x <> IC SCM+FSA by A39, AMI_1:48;
then not x in dom (Start-At l) by A31, TARSKI:def 1;
hence (IExec (I ';' J),s) . x = ((IExec J,(IExec I,s)) +* (Start-At ((IC (IExec J,(IExec I,s))) + (card I)))) . x by A40, FUNCT_4:12; :: thesis: verum
end;
end;
end;
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;