let N be non empty with_non-empty_elements set ; :: thesis: for S being non empty stored-program IC-Ins-separated definite realistic standard-ins homogeneous regular J/A-independent halting Exec-preserving relocable IC-recognized AMI-Struct of N st S is CurIns-recognized holds
for p being FinPartState of S st IC in dom p holds
for k being Element of NAT holds
( p is autonomic iff Relocated (p,k) is autonomic )

let S be non empty stored-program IC-Ins-separated definite realistic standard-ins homogeneous regular J/A-independent halting Exec-preserving relocable IC-recognized AMI-Struct of N; :: thesis: ( S is CurIns-recognized implies for p being FinPartState of S st IC in dom p holds
for k being Element of NAT holds
( p is autonomic iff Relocated (p,k) is autonomic ) )

assume A1: S is CurIns-recognized ; :: thesis: for p being FinPartState of S st IC in dom p holds
for k being Element of NAT holds
( p is autonomic iff Relocated (p,k) is autonomic )

let p be FinPartState of S; :: thesis: ( IC in dom p implies for k being Element of NAT holds
( p is autonomic iff Relocated (p,k) is autonomic ) )

assume A2: IC in dom p ; :: thesis: for k being Element of NAT holds
( p is autonomic iff Relocated (p,k) is autonomic )

let k be Element of NAT ; :: thesis: ( p is autonomic iff Relocated (p,k) is autonomic )
RE: Reloc ((ProgramPart p),k) = ProgramPart (Relocated (p,k)) by COMPOS_1:116;
hereby :: thesis: ( Relocated (p,k) is autonomic implies p is autonomic )
assume A4: p is autonomic ; :: thesis: Relocated (p,k) is autonomic
thus Relocated (p,k) is autonomic :: thesis: verum
proof
let P, Q be the Instructions of S -valued ManySortedSet of NAT ; :: according to EXTPRO_1:def 9 :: thesis: ( not ProgramPart (Relocated (p,k)) c= P or not ProgramPart (Relocated (p,k)) c= Q or for b1, b2 being set holds
( not NPP (Relocated (p,k)) c= b1 or not NPP (Relocated (p,k)) c= b2 or for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP (Relocated (p,k)))) = (Comput (Q,b2,b3)) | (proj1 (NPP (Relocated (p,k)))) ) )

assume that
A5: ProgramPart (Relocated (p,k)) c= P and
A6: ProgramPart (Relocated (p,k)) c= Q ; :: thesis: for b1, b2 being set holds
( not NPP (Relocated (p,k)) c= b1 or not NPP (Relocated (p,k)) c= b2 or for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP (Relocated (p,k)))) = (Comput (Q,b2,b3)) | (proj1 (NPP (Relocated (p,k)))) )

let s1, s2 be State of S; :: thesis: ( not NPP (Relocated (p,k)) c= s1 or not NPP (Relocated (p,k)) c= s2 or for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP (Relocated (p,k)))) = (Comput (Q,s2,b1)) | (proj1 (NPP (Relocated (p,k)))) )
assume that
A7: NPP (Relocated (p,k)) c= s1 and
A8: NPP (Relocated (p,k)) c= s2 ; :: thesis: for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP (Relocated (p,k)))) = (Comput (Q,s2,b1)) | (proj1 (NPP (Relocated (p,k))))
let i be Element of NAT ; :: thesis: (Comput (P,s1,i)) | (proj1 (NPP (Relocated (p,k)))) = (Comput (Q,s2,i)) | (proj1 (NPP (Relocated (p,k))))
A9: NPP (Comput (P,s1,i)) = NPP (IncIC ((Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)),k)) by A2, A4, A7, Th9, A1, A5, RE;
A12: dom (Start-At (((IC (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i))) + k),S)) = {(IC )} by FUNCOP_1:19;
then A13: dom (DataPart p) misses dom (Start-At (((IC (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i))) + k),S)) by COMPOS_1:13;
A14: dom (Start-At (((IC (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i))) + k),S)) = {(IC )} by FUNCOP_1:19;
then A15: dom (DataPart p) misses dom (Start-At (((IC (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i))) + k),S)) by COMPOS_1:13;
A16: NPP (Comput (Q,s2,i)) = NPP (IncIC ((Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)),k)) by A2, A4, A8, Th9, A1, A6, RE;
A17: ( ProgramPart p c= P +* (ProgramPart p) & ProgramPart p c= Q +* (ProgramPart p) ) by FUNCT_4:26;
( NPP p c= s1 +* (NPP p) & NPP p c= s2 +* (NPP p) ) by FUNCT_4:26;
then A18: (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)) | (dom (NPP p)) = (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)) | (dom (NPP p)) by A4, A17, EXTPRO_1:def 9;
A19: DataPart p c= NPP p by COMPOS_1:169;
A21: (Comput (P,s1,i)) | (dom (DataPart p)) = (NPP (Comput (P,s1,i))) | (dom (DataPart p)) by COMPOS_1:241
.= (NPP (IncIC ((Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)),k))) | (dom (DataPart p)) by A9
.= (IncIC ((Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)),k)) | (dom (DataPart p)) by COMPOS_1:241
.= (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)) | (dom (DataPart p)) by A15, FUNCT_4:76
.= (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)) | (dom (DataPart p)) by A18, A19, RELAT_1:25, RELAT_1:188
.= (IncIC ((Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)),k)) | (dom (DataPart p)) by A13, FUNCT_4:76
.= (NPP (IncIC ((Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)),k))) | (dom (DataPart p)) by COMPOS_1:241
.= (NPP (Comput (Q,s2,i))) | (dom (DataPart p)) by A16
.= (Comput (Q,s2,i)) | (dom (DataPart p)) by COMPOS_1:241 ;
IC in dom (NPP p) by A2, COMPOS_1:179;
then A22: {(IC )} c= dom (NPP p) by ZFMISC_1:37;
A23: Start-At ((IC (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i))),S) = (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)) | {(IC )} by COMPOS_1:10
.= (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)) | {(IC )} by A18, A22, RELAT_1:188
.= Start-At ((IC (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i))),S) by COMPOS_1:10 ;
A24: dom (Start-At (((IC p) + k),S)) = {(IC )} by FUNCOP_1:19;
then A26: (Comput (P,s1,i)) | (dom (Start-At (((IC p) + k),S))) = (NPP (Comput (P,s1,i))) | (dom (Start-At (((IC p) + k),S))) by COMPOS_1:242
.= (NPP (IncIC ((Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)),k))) | (dom (Start-At (((IC p) + k),S))) by A9
.= (IncIC ((Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i)),k)) | (dom (Start-At (((IC p) + k),S))) by A24, COMPOS_1:242
.= Start-At (((IC (Comput ((P +* (ProgramPart p)),(s1 +* (NPP p)),i))) + k),S) by A24, A14, FUNCT_4:24
.= Start-At (((IC (Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i))) + k),S) by A23, COMPOS_1:43
.= (IncIC ((Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)),k)) | (dom (Start-At (((IC p) + k),S))) by A24, A12, FUNCT_4:24
.= (NPP (IncIC ((Comput ((Q +* (ProgramPart p)),(s2 +* (NPP p)),i)),k))) | (dom (Start-At (((IC p) + k),S))) by A24, COMPOS_1:242
.= (NPP (Comput (Q,s2,i))) | (dom (Start-At (((IC p) + k),S))) by A16
.= (Comput (Q,s2,i)) | (dom (Start-At (((IC p) + k),S))) by A24, COMPOS_1:242 ;
A27: dom (Start-At (((IC p) + k),S)) = {(IC )} by FUNCOP_1:19;
A28: dom (NPP p) = {(IC )} \/ (dom (DataPart p)) by A2, COMPOS_1:70;
A29: (Comput (P,s1,i)) | (dom (NPP p)) = ((Comput (P,s1,i)) | {(IC )}) \/ ((Comput (P,s1,i)) | (dom (DataPart p))) by A28, RELAT_1:107
.= (Comput (Q,s2,i)) | (dom (NPP p)) by A28, A27, A21, A26, RELAT_1:107 ;
A30: dom (IncIC ((NPP p),k)) = (dom (NPP p)) \/ (dom (Start-At (((IC (NPP p)) + k),S))) by FUNCT_4:def 1
.= (dom (NPP p)) \/ (dom (Start-At (((IC p) + k),S))) by A2, COMPOS_1:72 ;
A31: (Comput (P,s1,i)) | (dom (IncIC ((NPP p),k))) = ((Comput (P,s1,i)) | (dom (NPP p))) \/ ((Comput (P,s1,i)) | (dom (Start-At (((IC p) + k),S)))) by A30, RELAT_1:107
.= (Comput (Q,s2,i)) | (dom (IncIC ((NPP p),k))) by A30, A26, A29, RELAT_1:107 ;
thus (Comput (P,s1,i)) | (dom (NPP (Relocated (p,k)))) = (Comput (P,s1,i)) | (dom (IncIC ((NPP p),k))) by COMPOS_1:180
.= (Comput (Q,s2,i)) | (dom (NPP (Relocated (p,k)))) by A31, COMPOS_1:180 ; :: thesis: verum
end;
end;
assume A32: Relocated (p,k) is autonomic ; :: thesis: p is autonomic
DataPart (Relocated (p,k)) c= NPP (Relocated (p,k)) by COMPOS_1:169;
then DataPart p c= NPP (Relocated (p,k)) by COMPOS_1:115;
then A33: dom (DataPart p) c= dom (NPP (Relocated (p,k))) by GRFUNC_1:8;
let P, Q be the Instructions of S -valued ManySortedSet of NAT ; :: according to EXTPRO_1:def 9 :: thesis: ( not ProgramPart p c= P or not ProgramPart p c= Q or for b1, b2 being set holds
( not NPP p c= b1 or not NPP p c= b2 or for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) ) )

assume that
A34: ProgramPart p c= P and
A35: ProgramPart p c= Q ; :: thesis: for b1, b2 being set holds
( not NPP p c= b1 or not NPP p c= b2 or for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) )

A36: ( Reloc ((ProgramPart p),k) c= P +* (Reloc ((ProgramPart p),k)) & Reloc ((ProgramPart p),k) c= Q +* (Reloc ((ProgramPart p),k)) ) by FUNCT_4:26;
let s1, s2 be State of S; :: thesis: ( not NPP p c= s1 or not NPP p c= s2 or for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p)) )
assume that
A37: NPP p c= s1 and
A38: NPP p c= s2 ; :: thesis: for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p))
let i be Element of NAT ; :: thesis: (Comput (P,s1,i)) | (proj1 (NPP p)) = (Comput (Q,s2,i)) | (proj1 (NPP p))
( NPP (Relocated (p,k)) c= s1 +* (NPP (Relocated (p,k))) & NPP (Relocated (p,k)) c= s2 +* (NPP (Relocated (p,k))) ) by FUNCT_4:26;
then A43: (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)) | (dom (NPP (Relocated (p,k)))) = (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)) | (dom (NPP (Relocated (p,k)))) by A32, A36, RE, EXTPRO_1:def 9;
A44: dom (Start-At (((IC (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i))) -' k),S)) = {(IC )} by FUNCOP_1:19;
then A45: dom (DataPart p) misses dom (Start-At (((IC (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i))) -' k),S)) by COMPOS_1:13;
A46: dom (Start-At (((IC (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i))) -' k),S)) = {(IC )} by FUNCOP_1:19;
then A47: dom (DataPart p) misses dom (Start-At (((IC (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i))) -' k),S)) by COMPOS_1:13;
A49: (Comput (P,s1,i)) | (dom (DataPart p)) = (NPP (Comput (P,s1,i))) | (dom (DataPart p)) by COMPOS_1:241
.= (NPP (DecIC ((Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)),k))) | (dom (DataPart p)) by A2, A32, A37, Th10, A1, A34
.= (DecIC ((Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)),k)) | (dom (DataPart p)) by COMPOS_1:241
.= (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)) | (dom (DataPart p)) by A47, FUNCT_4:76
.= (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)) | (dom (DataPart p)) by A43, A33, RELAT_1:188
.= (DecIC ((Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)),k)) | (dom (DataPart p)) by A45, FUNCT_4:76
.= (NPP (DecIC ((Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)),k))) | (dom (DataPart p)) by COMPOS_1:241
.= (NPP (Comput (Q,s2,i))) | (dom (DataPart p)) by A2, A32, A38, Th10, A1, A35
.= (Comput (Q,s2,i)) | (dom (DataPart p)) by COMPOS_1:241 ;
IC in dom (Relocated (p,k)) by COMPOS_1:119;
then IC in dom (NPP (Relocated (p,k))) by COMPOS_1:179;
then A50: {(IC )} c= dom (NPP (Relocated (p,k))) by ZFMISC_1:37;
A51: Start-At ((IC (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i))),S) = (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)) | {(IC )} by COMPOS_1:10
.= (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)) | {(IC )} by A43, A50, RELAT_1:188
.= Start-At ((IC (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i))),S) by COMPOS_1:10 ;
A52: dom (Start-At ((IC p),S)) = {(IC )} by FUNCOP_1:19;
then A54: (Comput (P,s1,i)) | (dom (Start-At ((IC p),S))) = (NPP (Comput (P,s1,i))) | (dom (Start-At ((IC p),S))) by COMPOS_1:242
.= (NPP (DecIC ((Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)),k))) | (dom (Start-At ((IC p),S))) by A2, A32, A37, Th10, A1, A34
.= (DecIC ((Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i)),k)) | (dom (Start-At ((IC p),S))) by A52, COMPOS_1:242
.= Start-At (((IC (Comput ((P +* (Reloc ((ProgramPart p),k))),(s1 +* (NPP (Relocated (p,k)))),i))) -' k),S) by A52, A46, FUNCT_4:24
.= Start-At (((IC (Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i))) -' k),S) by A51, COMPOS_1:44
.= (DecIC ((Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)),k)) | (dom (Start-At ((IC p),S))) by A52, A44, FUNCT_4:24
.= (NPP (DecIC ((Comput ((Q +* (Reloc ((ProgramPart p),k))),(s2 +* (NPP (Relocated (p,k)))),i)),k))) | (dom (Start-At ((IC p),S))) by A52, COMPOS_1:242
.= (NPP (Comput (Q,s2,i))) | (dom (Start-At ((IC p),S))) by A2, A32, A38, Th10, A1, A35
.= (Comput (Q,s2,i)) | (dom (Start-At ((IC p),S))) by A52, COMPOS_1:242 ;
thus (Comput (P,s1,i)) | (dom (NPP p)) = (Comput (P,s1,i)) | (dom ((Start-At ((IC p),S)) +* (DataPart p))) by A2, COMPOS_1:181
.= (Comput (P,s1,i)) | ((dom (Start-At ((IC p),S))) \/ (dom (DataPart p))) by FUNCT_4:def 1
.= ((Comput (Q,s2,i)) | (dom (Start-At ((IC p),S)))) \/ ((Comput (Q,s2,i)) | (dom (DataPart p))) by A49, A54, RELAT_1:107
.= (Comput (Q,s2,i)) | ((dom (Start-At ((IC p),S))) \/ (dom (DataPart p))) by RELAT_1:107
.= (Comput (Q,s2,i)) | (dom ((Start-At ((IC p),S)) +* (DataPart p))) by FUNCT_4:def 1
.= (Comput (Q,s2,i)) | (dom (NPP p)) by A2, COMPOS_1:181 ; :: thesis: verum