let F be PartFunc of (FinPartSt SCM+FSA ),(FinPartSt SCM+FSA ); for p being FinPartState of SCM+FSA st IC SCM+FSA in dom p & F is data-only holds
for k being Element of NAT holds
( ProgramPart p,p computes F iff ProgramPart (Relocated p,k), Relocated p,k computes F )
let p be FinPartState of SCM+FSA ; ( IC SCM+FSA in dom p & F is data-only implies for k being Element of NAT holds
( ProgramPart p,p computes F iff ProgramPart (Relocated p,k), Relocated p,k computes F ) )
assume that
A1:
IC SCM+FSA in dom p
and
A2:
F is data-only
; for k being Element of NAT holds
( ProgramPart p,p computes F iff ProgramPart (Relocated p,k), Relocated p,k computes F )
let k be Element of NAT ; ( ProgramPart p,p computes F iff ProgramPart (Relocated p,k), Relocated p,k computes F )
F1:
(ProgramPart p) +* p = p
by FUNCT_4:119;
F2:
(ProgramPart (Relocated p,k)) +* (Relocated p,k) = Relocated p,k
by FUNCT_4:119;
hereby ( ProgramPart (Relocated p,k), Relocated p,k computes F implies ProgramPart p,p computes F )
assume A3:
ProgramPart p,
p computes F
;
ProgramPart (Relocated p,k), Relocated p,k computes Fthus
ProgramPart (Relocated p,k),
Relocated p,
k computes F
verumproof
let x be
set ;
AMI_1:def 30 ( not x in proj1 F or ex b1 being set st
( x = b1 & ((ProgramPart (Relocated p,k)) +* (Relocated p,k)) +* b1 is set & F . b1 c= Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* b1) ) )
assume A4:
x in dom F
;
ex b1 being set st
( x = b1 & ((ProgramPart (Relocated p,k)) +* (Relocated p,k)) +* b1 is set & F . b1 c= Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* b1) )
then consider d1 being
FinPartState of
SCM+FSA such that A5:
x = d1
and A6:
((ProgramPart p) +* p) +* d1 is
pre-program of
SCM+FSA
and A7:
F . d1 c= Result (ProgramPart p),
(p +* d1)
by A3, AMI_1:def 30;
dom F c= FinPartSt SCM+FSA
by RELAT_1:def 18;
then reconsider d =
x as
FinPartState of
SCM+FSA by A4, COMPOS_1:25;
reconsider d =
d as
data-only FinPartState of
SCM+FSA by A2, A4, COMPOS_1:def 24;
X:
(Relocated p,k) +* d = Relocated (p +* d),
k
by AMISTD_2:78;
xx:
dom d misses NAT
by COMPOS_1:40;
then x:
ProgramPart (p +* d) = ProgramPart p
by FUNCT_4:76;
y:
ProgramPart ((Relocated p,k) +* d) = ProgramPart (Relocated p,k)
by xx, FUNCT_4:76;
dom (p +* d) = (dom p) \/ (dom d)
by FUNCT_4:def 1;
then A8:
IC SCM+FSA in dom (p +* d)
by A1, XBOOLE_0:def 3;
then A9:
DataPart (Result (ProgramPart p),(p +* d1)) =
DataPart (Result (ProgramPart (Relocated p,k)),(Relocated (p +* d),k))
by A5, A6, F1, Th17, x, X, y
.=
DataPart (Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d))
by AMISTD_2:78
;
reconsider Fs1 =
F . d1 as
FinPartState of
SCM+FSA by A7;
take
d
;
( x = d & ((ProgramPart (Relocated p,k)) +* (Relocated p,k)) +* d is set & F . d c= Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d) )
thus
x = d
;
( ((ProgramPart (Relocated p,k)) +* (Relocated p,k)) +* d is set & F . d c= Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d) )
(Relocated p,k) +* d = Relocated (p +* d),
k
by AMISTD_2:78;
hence
((ProgramPart (Relocated p,k)) +* (Relocated p,k)) +* d is
pre-program of
SCM+FSA
by A5, A6, A8, Th13, Th16, F1, F2;
F . d c= Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d)
A10:
Fs1 is
data-only
by A2, A4, A5, COMPOS_1:def 24;
then
F . d1 c= DataPart (Result (ProgramPart p),(p +* d1))
by A7, COMPOS_1:17;
hence
F . d c= Result (ProgramPart (Relocated p,k)),
((Relocated p,k) +* d)
by A5, A10, A9, COMPOS_1:17;
verum
end;
end;
assume A11:
ProgramPart (Relocated p,k), Relocated p,k computes F
; ProgramPart p,p computes F
let x be set ; AMI_1:def 30 ( not x in proj1 F or ex b1 being set st
( x = b1 & ((ProgramPart p) +* p) +* b1 is set & F . b1 c= Result (ProgramPart p),(p +* b1) ) )
assume A12:
x in dom F
; ex b1 being set st
( x = b1 & ((ProgramPart p) +* p) +* b1 is set & F . b1 c= Result (ProgramPart p),(p +* b1) )
then consider d1 being FinPartState of SCM+FSA such that
A13:
x = d1
and
A14:
((ProgramPart (Relocated p,k)) +* (Relocated p,k)) +* d1 is pre-program of SCM+FSA
and
A15:
F . d1 c= Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d1)
by A11, AMI_1:def 30;
dom F c= FinPartSt SCM+FSA
by RELAT_1:def 18;
then reconsider d = x as FinPartState of SCM+FSA by A12, COMPOS_1:25;
reconsider d = d as data-only FinPartState of SCM+FSA by A2, A12, COMPOS_1:def 24;
X:
(Relocated p,k) +* d = Relocated (p +* d),k
by AMISTD_2:78;
xx:
dom d misses NAT
by COMPOS_1:40;
then x:
ProgramPart (p +* d) = ProgramPart p
by FUNCT_4:76;
y:
ProgramPart ((Relocated p,k) +* d) = ProgramPart (Relocated p,k)
by xx, FUNCT_4:76;
dom (p +* d) = (dom p) \/ (dom d)
by FUNCT_4:def 1;
then A16:
IC SCM+FSA in dom (p +* d)
by A1, XBOOLE_0:def 3;
A17:
(Relocated p,k) +* d = Relocated (p +* d),k
by AMISTD_2:78;
then A18:
p +* d is autonomic
by A13, A14, A16, Th16, F2;
then A19:
p +* d is halting
by A13, A14, A17, A16, Th13, F2;
A20: DataPart (Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d1)) =
DataPart (Result (ProgramPart (Relocated p,k)),(Relocated (p +* d),k))
by A13, A17, Th13, F2, A16, Th16
.=
DataPart (Result (ProgramPart p),(p +* d))
by A16, A18, A19, Th17, x, y, X
;
take
d
; ( x = d & ((ProgramPart p) +* p) +* d is set & F . d c= Result (ProgramPart p),(p +* d) )
thus
x = d
; ( ((ProgramPart p) +* p) +* d is set & F . d c= Result (ProgramPart p),(p +* d) )
thus
((ProgramPart p) +* p) +* d is pre-program of SCM+FSA
by A13, A14, A17, A16, A18, Th13, F1, F2; F . d c= Result (ProgramPart p),(p +* d)
reconsider Fs1 = F . d1 as FinPartState of SCM+FSA by A15;
A21:
Fs1 is data-only
by A2, A12, A13, COMPOS_1:def 24;
then
F . d1 c= DataPart (Result (ProgramPart (Relocated p,k)),((Relocated p,k) +* d1))
by A15, COMPOS_1:17;
hence
F . d c= Result (ProgramPart p),(p +* d)
by A13, A21, A20, COMPOS_1:17; verum