thus f :=<0,...,0> a is parahalting :: thesis: f :=<0,...,0> a is keeping_0
proof
set Ma = Macro (f :=<0,...,0> a);
let s be State of ; :: according to AMI_1:def 26,SCMFSA6B:def 3,SCMFSA6C:def 1 :: thesis: ( 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 ; :: thesis: ProgramPart s halts_on s
A9: Macro (f :=<0,...,0> a) c= s by A8, SCMFSA6B:5;
take 1 ; :: according to AMI_1:def 20 :: thesis: ( 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; :: thesis: (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; :: thesis: verum
end;
thus f :=<0,...,0> a is keeping_0 :: thesis: verum
proof
set Ma = Macro (f :=<0,...,0> a);
let s be State of ; :: according to SCMFSA6B:def 4,SCMFSA6C:def 2 :: thesis: ( 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 ; :: thesis: 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 ; :: thesis: (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;
per cases ( k = 0 or 1 <= k ) by NAT_1:14;
end;
end;