let p be autonomic FinPartState of SCM+FSA; for k being Element of NAT st IC SCM+FSA in dom p holds
( p is halting iff Relocated (p,k) is halting )
let k be Element of NAT ; ( IC SCM+FSA in dom p implies ( p is halting iff Relocated (p,k) is halting ) )
assume A2:
IC SCM+FSA 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+FSA;
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
reconsider s =
t +* p as
State of
SCM+FSA ;
A5:
p c= t +* p
by FUNCT_4:26;
then
ProgramPart s halts_on s
by A3, EXTPRO_1:def 10;
then consider u being
Element of
NAT such that A6:
CurInstr (
(ProgramPart s),
(Comput ((ProgramPart s),s,u)))
= halt SCM+FSA
by EXTPRO_1:30;
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+FSA )
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+FSA
CurInstr (
(ProgramPart t),
(Comput ((ProgramPart t),t,u))) =
IncAddr (
(halt SCM+FSA),
k)
by A2, A4, A5, A6, Th12
.=
halt SCM+FSA
by SCMFSA_4:8
;
hence
CurInstr (
(ProgramPart t),
(Comput ((ProgramPart t),t,u)))
= halt SCM+FSA
;
verum
reconsider s3 =
s +* (DataPart t) as
State of
SCM+FSA ;
end;
end;
assume A7:
Relocated (p,k) is halting
; p is halting
let t be State of SCM+FSA; EXTPRO_1:def 10 ( not p c= t or ProgramPart t halts_on t )
reconsider s = t +* (Relocated (p,k)) as State of SCM+FSA ;
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+FSA
by EXTPRO_1:30;
assume
p c= t
; ProgramPart t halts_on t
then
IncAddr ((CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u)))),k) = halt SCM+FSA
by A2, A8, A9, Th12;
then B10:
IncAddr ((CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u)))),k) = IncAddr ((halt SCM+FSA),k)
by COMPOS_1:93;
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+FSA )
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+FSA
thus
CurInstr ((ProgramPart t),(Comput ((ProgramPart t),t,u))) = halt SCM+FSA
by B10, COMPOS_1:95; verum