let k be Element of NAT ; for R being good Ring st not R is trivial holds
for p being autonomic FinPartState of (SCM R) st IC (SCM R) in dom p holds
( p is halting iff Relocated (p,k) is halting )
let R be good Ring; ( not R is trivial implies for p being autonomic FinPartState of (SCM R) st IC (SCM R) in dom p holds
( p is halting iff Relocated (p,k) is halting ) )
assume A1:
not R is trivial
; for p being autonomic FinPartState of (SCM R) st IC (SCM R) in dom p holds
( p is halting iff Relocated (p,k) is halting )
let p be autonomic FinPartState of (SCM R); ( IC (SCM R) in dom p implies ( p is halting iff Relocated (p,k) is halting ) )
assume A2:
IC (SCM R) in dom p
; ( p is halting iff Relocated (p,k) is halting )
hereby ( Relocated (p,k) is halting implies p is halting )
assume A3:
p is
halting
;
Relocated (p,k) is halting thus
Relocated (
p,
k) is
halting
verumproof
let t be
State of
(SCM R);
EXTPRO_1:def 10 ( not Relocated (p,k) c= t or ProgramPart t halts_on t )
assume A4:
Relocated (
p,
k)
c= t
;
ProgramPart t halts_on t
set s =
t +* p;
reconsider s3 =
(t +* p) +* (DataPart t) as
State of
(SCM R) ;
A5:
p c= t +* p
by FUNCT_4:26;
then
ProgramPart (t +* p) halts_on t +* p
by A3, EXTPRO_1:def 10;
then consider u being
Element of
NAT such that A6:
CurInstr (
(ProgramPart (t +* p)),
(Comput ((ProgramPart (t +* p)),(t +* p),u)))
= halt (SCM R)
by EXTPRO_1:30;
TX:
ProgramPart (t +* p) = ProgramPart (Comput ((ProgramPart (t +* p)),(t +* p),u))
by AMI_1:123;
take
u
;
EXTPRO_1:def 7 ( IC (Comput ((ProgramPart t),t,u)) in proj1 (ProgramPart t) & CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u))) = halt (SCM R) )
IC (Comput ((ProgramPart t),t,u)) in NAT
;
hence
IC (Comput ((ProgramPart t),t,u)) in dom (ProgramPart t)
by COMPOS_1:34;
CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u))) = halt (SCM R)
NX:
ProgramPart t = ProgramPart (Comput ((ProgramPart t),t,u))
by AMI_1:123;
s3 = s3
;
then CurInstr (
(ProgramPart t),
(Comput ((ProgramPart t),t,u))) =
IncAddr (
(halt (SCM R)),
k)
by A1, A2, A4, A5, A6, Th35, TX, NX
.=
halt (SCM R)
by COMPOS_1:92
;
hence
CurInstr (
(ProgramPart t),
(Comput ((ProgramPart t),t,u)))
= halt (SCM R)
;
verum
end;
end;
assume A7:
Relocated (p,k) is halting
; p is halting
let t be State of (SCM R); EXTPRO_1:def 10 ( not p c= t or ProgramPart t halts_on t )
reconsider s = t +* (Relocated (p,k)) as State of (SCM R) ;
A8:
Relocated (p,k) c= t +* (Relocated (p,k))
by FUNCT_4:26;
then
ProgramPart s halts_on s
by A7, EXTPRO_1:def 10;
then consider u being Element of NAT such that
A9:
CurInstr ((ProgramPart s),(Comput ((ProgramPart s),s,u))) = halt (SCM R)
by EXTPRO_1:30;
TX:
ProgramPart s = ProgramPart (Comput ((ProgramPart s),s,u))
by AMI_1:123;
reconsider s3 = t +* (DataPart s) as State of (SCM R) ;
assume A10:
p c= t
; ProgramPart t halts_on t
take
u
; EXTPRO_1:def 7 ( IC (Comput ((ProgramPart t),t,u)) in proj1 (ProgramPart t) & CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u))) = halt (SCM R) )
IC (Comput ((ProgramPart t),t,u)) in NAT
;
hence
IC (Comput ((ProgramPart t),t,u)) in dom (ProgramPart t)
by COMPOS_1:34; CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u))) = halt (SCM R)
NX:
ProgramPart t = ProgramPart (Comput ((ProgramPart t),t,u))
by AMI_1:123;
s3 = s3
;
then
IncAddr ((CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u)))),k) = halt (SCM R)
by A1, A2, A10, A8, A9, Th35, TX, NX;
hence
CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u))) = halt (SCM R)
by COMPOS_1:96; verum