thus
f :=<0,...,0> a is parahalting
f :=<0,...,0> a is keeping_0 proof
set Ma =
Macro (f :=<0,...,0> a);
let s be
State of ;
AMI_1:def 26,
SCMFSA6B:def 3,
SCMFSA6C:def 1 ( not (Macro (f :=<0,...,0> a)) +* (Start-At (insloc 0 )) c= s or ProgramPart s halts_on s )
assume A8:
(Macro (f :=<0,...,0> a)) +* (Start-At (insloc 0 )) c= s
;
ProgramPart s halts_on s
A9:
Macro (f :=<0,...,0> a) c= s
by A8, SCMFSA6B:5;
take
1
;
AMI_1:def 20 ( IC (Computation s,1) in dom (ProgramPart s) & (ProgramPart s) . (IC (Computation s,1)) = halt SCM+FSA )
IC (Computation s,1) in NAT
by AMI_1:def 4;
hence
IC (Computation s,1) in dom (ProgramPart s)
by AMI_1:143;
(ProgramPart s) . (IC (Computation s,1)) = halt SCM+FSA
dom (Start-At (insloc 0 )) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then A10:
IC SCM+FSA in dom (Start-At (insloc 0 ))
by TARSKI:def 1;
Start-At (insloc 0 ) c= (Macro (f :=<0,...,0> a)) +* (Start-At (insloc 0 ))
by FUNCT_4:26;
then
Start-At (insloc 0 ) c= s
by A8, XBOOLE_1:1;
then A11:
IC s =
(Start-At (insloc 0 )) . (IC SCM+FSA )
by A10, GRFUNC_1:8
.=
insloc 0
by FUNCOP_1:87
;
then A12:
IC (Exec (f :=<0,...,0> a),s) =
Next (insloc 0 )
by SCMFSA_2:101
.=
insloc (0 + 1)
;
insloc 1
in dom (Macro (f :=<0,...,0> a))
by SCMFSA6B:32;
then
(Macro (f :=<0,...,0> a)) . (insloc 1) = s . (insloc 1)
by A9, GRFUNC_1:8;
then A13:
s . (insloc 1) = halt SCM+FSA
by SCMFSA6B:33;
insloc 0 in dom (Macro (f :=<0,...,0> a))
by SCMFSA6B:32;
then A14:
(Macro (f :=<0,...,0> a)) . (insloc 0 ) = s . (insloc 0 )
by A9, GRFUNC_1:8;
Computation s,
(0 + 1) =
Following (Computation s,0 )
by AMI_1:14
.=
Following s
by AMI_1:13
.=
Exec (f :=<0,...,0> a),
s
by A11, A14, SCMFSA6B:33
;
then
CurInstr (Computation s,1) = halt SCM+FSA
by A12, A13, AMI_1:def 13;
hence
(ProgramPart s) . (IC (Computation s,1)) = halt SCM+FSA
by AMI_1:145;
verum
end;
thus
f :=<0,...,0> a is keeping_0
verumproof
set Ma =
Macro (f :=<0,...,0> a);
let s be
State of ;
SCMFSA6B:def 4,
SCMFSA6C:def 2 ( not (Macro (f :=<0,...,0> a)) +* (Start-At (insloc 0 )) c= s or for b1 being Element of NAT holds (Computation s,b1) . (intloc 0 ) = s . (intloc 0 ) )
assume A15:
(Macro (f :=<0,...,0> a)) +* (Start-At (insloc 0 )) c= s
;
for b1 being Element of NAT holds (Computation s,b1) . (intloc 0 ) = s . (intloc 0 )
then A16:
Macro (f :=<0,...,0> a) c= s
by SCMFSA6B:5;
let k be
Element of
NAT ;
(Computation s,k) . (intloc 0 ) = s . (intloc 0 )
dom (Start-At (insloc 0 )) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then A17:
IC SCM+FSA in dom (Start-At (insloc 0 ))
by TARSKI:def 1;
Start-At (insloc 0 ) c= (Macro (f :=<0,...,0> a)) +* (Start-At (insloc 0 ))
by FUNCT_4:26;
then
Start-At (insloc 0 ) c= s
by A15, XBOOLE_1:1;
then A18:
IC s =
(Start-At (insloc 0 )) . (IC SCM+FSA )
by A17, GRFUNC_1:8
.=
insloc 0
by FUNCOP_1:87
;
insloc 0 in dom (Macro (f :=<0,...,0> a))
by SCMFSA6B:32;
then A19:
(Macro (f :=<0,...,0> a)) . (insloc 0 ) = s . (insloc 0 )
by A16, GRFUNC_1:8;
A20:
Computation s,
(0 + 1) =
Following (Computation s,0 )
by AMI_1:14
.=
Following s
by AMI_1:13
.=
Exec (f :=<0,...,0> a),
s
by A18, A19, SCMFSA6B:33
;
insloc 1
in dom (Macro (f :=<0,...,0> a))
by SCMFSA6B:32;
then
(Macro (f :=<0,...,0> a)) . (insloc 1) = s . (insloc 1)
by A16, GRFUNC_1:8;
then A21:
s . (insloc 1) = halt SCM+FSA
by SCMFSA6B:33;
IC (Exec (f :=<0,...,0> a),s) =
Next (insloc 0 )
by A18, SCMFSA_2:101
.=
insloc (0 + 1)
;
then A22:
CurInstr (Computation s,1) = halt SCM+FSA
by A21, A20, AMI_1:def 13;
end;