let k be natural number ; 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);
AMI_1:def 26 ( 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, AMI_1:def 26;
then consider u being
Element of
NAT such that A6:
CurInstr (ProgramPart (Comput (ProgramPart (t +* p)),(t +* p),u)),
(Comput (ProgramPart (t +* p)),(t +* p),u) = halt (SCM R)
by AMI_1:146;
take
u
;
AMI_1:def 20 ( IC (Comput (ProgramPart t),t,u) in proj1 (ProgramPart t) & (ProgramPart t) /. (IC (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 AMI_1:143;
(ProgramPart t) /. (IC (Comput (ProgramPart t),t,u)) = halt (SCM R)
s3 = s3
;
then CurInstr (ProgramPart (Comput (ProgramPart t),t,u)),
(Comput (ProgramPart t),t,u) =
IncAddr (halt (SCM R)),
k
by A1, A2, A4, A5, A6, Th35
.=
halt (SCM R)
by AMISTD_2:29
;
hence
(ProgramPart t) /. (IC (Comput (ProgramPart t),t,u)) = halt (SCM R)
by AMI_1:145;
verum
end;
end;
assume A7:
Relocated p,k is halting
; p is halting
let t be State of (SCM R); AMI_1:def 26 ( 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, AMI_1:def 26;
then consider u being Element of NAT such that
A9:
CurInstr (ProgramPart (Comput (ProgramPart s),s,u)),(Comput (ProgramPart s),s,u) = halt (SCM R)
by AMI_1:146;
reconsider s3 = t +* (DataPart s) as State of (SCM R) ;
assume A10:
p c= t
; ProgramPart t halts_on t
take
u
; AMI_1:def 20 ( IC (Comput (ProgramPart t),t,u) in proj1 (ProgramPart t) & (ProgramPart t) /. (IC (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 AMI_1:143; (ProgramPart t) /. (IC (Comput (ProgramPart t),t,u)) = halt (SCM R)
s3 = s3
;
then
IncAddr (CurInstr (ProgramPart (Comput (ProgramPart t),t,u)),(Comput (ProgramPart t),t,u)),k = halt (SCM R)
by A1, A2, A10, A8, A9, Th35;
then
CurInstr (ProgramPart (Comput (ProgramPart t),t,u)),(Comput (ProgramPart t),t,u) = halt (SCM R)
by AMISTD_2:35;
hence
(ProgramPart t) /. (IC (Comput (ProgramPart t),t,u)) = halt (SCM R)
by AMI_1:145; verum