let k be natural number ; :: thesis: 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; :: thesis: ( 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 ; :: thesis: 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); :: thesis: ( IC (SCM R) in dom p implies ( p is halting iff Relocated p,k is halting ) )
assume A2: IC (SCM R) in dom p ; :: thesis: ( p is halting iff Relocated p,k is halting )
hereby :: thesis: ( Relocated p,k is halting implies p is halting )
assume A3: p is halting ; :: thesis: Relocated p,k is halting
thus Relocated p,k is halting :: thesis: verum
proof
let t be State of (SCM R); :: according to AMI_1:def 26 :: thesis: ( not Relocated p,k c= t or ProgramPart t halts_on t )
assume A4: Relocated p,k c= t ; :: thesis: 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 ; :: according to AMI_1:def 20 :: thesis: ( 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; :: thesis: (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; :: thesis: verum
end;
end;
assume A7: Relocated p,k is halting ; :: thesis: p is halting
let t be State of (SCM R); :: according to AMI_1:def 26 :: thesis: ( 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 ; :: thesis: ProgramPart t halts_on t
take u ; :: according to AMI_1:def 20 :: thesis: ( 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; :: thesis: (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; :: thesis: verum