let N be non empty with_non-empty_elements set ; for S being non empty stored-program IC-Ins-separated definite realistic standard-ins homogeneous regular J/A-independent proper-halt halting Exec-preserving relocable IC-recognized relocable1 AMI-Struct of N st S is CurIns-recognized & S is relocable2 holds
for F being PartFunc of (FinPartSt S),(FinPartSt S)
for l being Element of NAT
for p being b3 -started non program-free autonomic halting FinPartState of S st IC in dom p & F is data-only holds
for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F )
let S be non empty stored-program IC-Ins-separated definite realistic standard-ins homogeneous regular J/A-independent proper-halt halting Exec-preserving relocable IC-recognized relocable1 AMI-Struct of N; ( S is CurIns-recognized & S is relocable2 implies for F being PartFunc of (FinPartSt S),(FinPartSt S)
for l being Element of NAT
for p being b2 -started non program-free autonomic halting FinPartState of S st IC in dom p & F is data-only holds
for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F ) )
assume A1:
( S is CurIns-recognized & S is relocable2 )
; for F being PartFunc of (FinPartSt S),(FinPartSt S)
for l being Element of NAT
for p being b2 -started non program-free autonomic halting FinPartState of S st IC in dom p & F is data-only holds
for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F )
let F be PartFunc of (FinPartSt S),(FinPartSt S); for l being Element of NAT
for p being b1 -started non program-free autonomic halting FinPartState of S st IC in dom p & F is data-only holds
for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F )
let l be Element of NAT ; for p being l -started non program-free autonomic halting FinPartState of S st IC in dom p & F is data-only holds
for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F )
let p be l -started non program-free autonomic halting FinPartState of S; ( IC in dom p & F is data-only implies for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F ) )
assume that
A2:
IC in dom p
and
A3:
F is data-only
; for k being Element of NAT holds
( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F )
let k be Element of NAT ; ( ProgramPart p,p computes F iff Reloc ((ProgramPart p),k), Relocated (p,k) computes F )
RE:
Reloc ((ProgramPart p),k) = ProgramPart (Relocated (p,k))
by COMPOS_1:116;
hereby ( Reloc ((ProgramPart p),k), Relocated (p,k) computes F implies ProgramPart p,p computes F )
assume A5:
ProgramPart p,
p computes F
;
Reloc ((ProgramPart p),k), Relocated (p,k) computes Fthus
Reloc (
(ProgramPart p),
k),
Relocated (
p,
k)
computes F
verumproof
let x be
set ;
EXTPRO_1:def 13 ( not x in proj1 F or ex b1 being set st
( x = b1 & (Relocated (p,k)) +* b1 is Autonomy of Reloc ((ProgramPart p),k) & F . b1 c= Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* b1)) ) )
assume A6:
x in dom F
;
ex b1 being set st
( x = b1 & (Relocated (p,k)) +* b1 is Autonomy of Reloc ((ProgramPart p),k) & F . b1 c= Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* b1)) )
then consider d1 being
FinPartState of
S such that A7:
x = d1
and A8:
p +* d1 is
Autonomy of
ProgramPart p
and A9:
F . d1 c= Result (
(ProgramPart p),
(p +* d1))
by A5, EXTPRO_1:def 13;
dom F c= FinPartSt S
by RELAT_1:def 18;
then reconsider d =
x as
FinPartState of
S by A6, COMPOS_1:25;
reconsider d =
d as
data-only FinPartState of
S by A3, A6, COMPOS_1:def 24;
dom (p +* d) = (dom p) \/ (dom d)
by FUNCT_4:def 1;
then A10:
IC in dom (p +* d)
by A2, XBOOLE_0:def 3;
dom d misses NAT
by COMPOS_1:40;
then A11:
ProgramPart (p +* d) = ProgramPart p
by FUNCT_4:76;
A12:
dom d misses NAT
by COMPOS_1:40;
A13:
dom d misses dom (Reloc ((ProgramPart p),k))
by A12, RE, RELAT_1:87, XBOOLE_1:63;
A14:
((Relocated (p,k)) +* d) +* (Reloc ((ProgramPart p),k)) =
(Relocated (p,k)) +* (d +* (Reloc ((ProgramPart p),k)))
by FUNCT_4:15
.=
(Relocated (p,k)) +* ((Reloc ((ProgramPart p),k)) +* d)
by A13, FUNCT_4:36
.=
((Relocated (p,k)) +* (Reloc ((ProgramPart p),k))) +* d
by FUNCT_4:15
.=
(Relocated (p,k)) +* d
by RE, FUNCT_4:80
;
dom d misses NAT
by COMPOS_1:40;
then A15:
dom d misses dom (ProgramPart p)
by RELAT_1:87, XBOOLE_1:63;
A16:
(p +* d) +* (ProgramPart p) =
p +* (d +* (ProgramPart p))
by FUNCT_4:15
.=
p +* ((ProgramPart p) +* d)
by A15, FUNCT_4:36
.=
(p +* (ProgramPart p)) +* d
by FUNCT_4:15
.=
p +* d
by FUNCT_4:80
;
then A17:
p +* d is
autonomic
by A7, A8, EXTPRO_1:def 11;
then A18:
Relocated (
(p +* d),
k) is
autonomic
by A10, Th11, A1;
A19:
p +* d is
halting
by A7, A8, A16, EXTPRO_1:def 11;
then A20:
DataPart (Result ((ProgramPart p),(p +* d1))) =
DataPart (Result ((Reloc ((ProgramPart p),k)),(Relocated ((p +* d),k))))
by A7, Th13, A10, A11, A17, A1
.=
DataPart (Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d)))
by COMPOS_1:124
;
reconsider Fs1 =
F . d1 as
FinPartState of
S by A9;
take
d
;
( x = d & (Relocated (p,k)) +* d is Autonomy of Reloc ((ProgramPart p),k) & F . d c= Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d)) )
thus
x = d
;
( (Relocated (p,k)) +* d is Autonomy of Reloc ((ProgramPart p),k) & F . d c= Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d)) )
(Relocated (p,k)) +* d = Relocated (
(p +* d),
k)
by COMPOS_1:124;
hence
(Relocated (p,k)) +* d is
Autonomy of
Reloc (
(ProgramPart p),
k)
by A17, A19, A18, A14, EXTPRO_1:def 11;
F . d c= Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d))
A21:
Fs1 is
data-only
by A3, A6, A7, COMPOS_1:def 24;
then
F . d1 c= DataPart (Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d)))
by A20, A9, COMPOS_1:17;
hence
F . d c= Result (
(Reloc ((ProgramPart p),k)),
((Relocated (p,k)) +* d))
by A7, A21, COMPOS_1:17;
verum
end;
end;
assume A22:
Reloc ((ProgramPart p),k), Relocated (p,k) computes F
; ProgramPart p,p computes F
let x be set ; EXTPRO_1:def 13 ( not x in proj1 F or ex b1 being set st
( x = b1 & p +* b1 is Autonomy of ProgramPart p & F . b1 c= Result ((ProgramPart p),(p +* b1)) ) )
assume A23:
x in dom F
; ex b1 being set st
( x = b1 & p +* b1 is Autonomy of ProgramPart p & F . b1 c= Result ((ProgramPart p),(p +* b1)) )
then consider d1 being FinPartState of S such that
A24:
x = d1
and
A25:
(Relocated (p,k)) +* d1 is Autonomy of Reloc ((ProgramPart p),k)
and
A26:
F . d1 c= Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d1))
by A22, EXTPRO_1:def 13;
dom F c= FinPartSt S
by RELAT_1:def 18;
then reconsider d = x as FinPartState of S by A23, COMPOS_1:25;
reconsider d = d as data-only FinPartState of S by A3, A23, COMPOS_1:def 24;
dom (p +* d) = (dom p) \/ (dom d)
by FUNCT_4:def 1;
then A27:
IC in dom (p +* d)
by A2, XBOOLE_0:def 3;
dom d misses NAT
by COMPOS_1:40;
then A28:
ProgramPart (p +* d) = ProgramPart p
by FUNCT_4:76;
A29:
dom d misses NAT
by COMPOS_1:40;
A30:
dom d misses dom (Reloc ((ProgramPart p),k))
by A29, RE, RELAT_1:87, XBOOLE_1:63;
A31: ((Relocated (p,k)) +* d) +* (Reloc ((ProgramPart p),k)) =
(Relocated (p,k)) +* (d +* (Reloc ((ProgramPart p),k)))
by FUNCT_4:15
.=
(Relocated (p,k)) +* ((Reloc ((ProgramPart p),k)) +* d)
by A30, FUNCT_4:36
.=
((Relocated (p,k)) +* (Reloc ((ProgramPart p),k))) +* d
by FUNCT_4:15
.=
(Relocated (p,k)) +* d
by RE, FUNCT_4:80
;
A32:
(Relocated (p,k)) +* d = Relocated ((p +* d),k)
by COMPOS_1:124;
Relocated ((p +* d),k) is autonomic
by A24, A25, A31, A32, EXTPRO_1:def 11;
then A33:
p +* d is autonomic
by A27, Th11, A1;
Relocated ((p +* d),k) is halting
by A24, A25, A31, A32, EXTPRO_1:def 11;
then A34:
p +* d is halting
by A27, Th12, A33;
A35: DataPart (Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d1))) =
DataPart (Result ((Reloc ((ProgramPart p),k)),(Relocated ((p +* d),k))))
by A24, COMPOS_1:124
.=
DataPart (Result ((ProgramPart p),(p +* d)))
by A27, A33, A34, Th13, A28, A1
;
take
d
; ( x = d & p +* d is Autonomy of ProgramPart p & F . d c= Result ((ProgramPart p),(p +* d)) )
thus
x = d
; ( p +* d is Autonomy of ProgramPart p & F . d c= Result ((ProgramPart p),(p +* d)) )
dom d misses NAT
by COMPOS_1:40;
then A36:
dom d misses dom (ProgramPart p)
by RELAT_1:87, XBOOLE_1:63;
(p +* d) +* (ProgramPart p) =
p +* (d +* (ProgramPart p))
by FUNCT_4:15
.=
p +* ((ProgramPart p) +* d)
by A36, FUNCT_4:36
.=
(p +* (ProgramPart p)) +* d
by FUNCT_4:15
.=
p +* d
by FUNCT_4:80
;
hence
p +* d is Autonomy of ProgramPart p
by A33, A34, EXTPRO_1:def 11; F . d c= Result ((ProgramPart p),(p +* d))
reconsider Fs1 = F . d1 as FinPartState of S by A26;
A37:
Fs1 is data-only
by A3, A23, A24, COMPOS_1:def 24;
then
F . d1 c= DataPart (Result ((Reloc ((ProgramPart p),k)),((Relocated (p,k)) +* d1)))
by A26, COMPOS_1:17;
hence
F . d c= Result ((ProgramPart p),(p +* d))
by A24, A37, A35, COMPOS_1:17; verum