let s be State of SCM+FSA; for P being Instruction-Sequence of SCM+FSA
for i being parahalting Instruction of SCM+FSA holds Exec (i,(Initialized s)) = IExec ((Macro i),P,s)
let P be Instruction-Sequence of SCM+FSA; for i being parahalting Instruction of SCM+FSA holds Exec (i,(Initialized s)) = IExec ((Macro i),P,s)
let i be parahalting Instruction of SCM+FSA; Exec (i,(Initialized s)) = IExec ((Macro i),P,s)
set Mi = Macro i;
set sI = s +* (Initialize ((intloc 0) .--> 1));
set pI = P +* (Macro i);
A1:
Macro i c= P +* (Macro i)
by FUNCT_4:25;
set Is = Initialized s;
set IC1 = IC (Comput ((P +* (Macro i)),(s +* (Initialize ((intloc 0) .--> 1))),1));
reconsider Mi = Macro i as parahalting Program of SCM+FSA ;
A3:
IC (Comput ((P +* (Macro i)),(s +* (Initialize ((intloc 0) .--> 1))),1)) in dom Mi
by A1, AMISTD_1:def 10;
A24:
1 in dom Mi
by COMPOS_1:60;
A25:
0 in dom Mi
by COMPOS_1:60;
A26:
Mi . 0 = i
by COMPOS_1:58;
XX:
IC (s +* (Initialize ((intloc 0) .--> 1))) = 0
by MEMSTR_0:def 8;
A28: Comput ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))),(0 + 1)) =
Following ((P +* Mi),(Comput ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))),0)))
by EXTPRO_1:3
.=
Following ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))))
by EXTPRO_1:2
.=
Exec (((P +* (Macro i)) . 0),(s +* (Initialize ((intloc 0) .--> 1))))
by XX, PBOOLE:143
.=
Exec (i,(s +* (Initialize ((intloc 0) .--> 1))))
by A26, A1, A25, GRFUNC_1:2
;
per cases
( IC (Comput ((P +* (Macro i)),(s +* (Initialize ((intloc 0) .--> 1))),1)) = 0 or IC (Comput ((P +* (Macro i)),(s +* (Initialize ((intloc 0) .--> 1))),1)) = 1 )
by A3, COMPOS_1:60;
suppose A29:
IC (Comput ((P +* (Macro i)),(s +* (Initialize ((intloc 0) .--> 1))),1)) = 0
;
Exec (i,(Initialized s)) = IExec ((Macro i),P,s)then A30:
CurInstr (
(P +* Mi),
(Comput ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))),1))) =
(P +* Mi) . 0
by PBOOLE:143
.=
i
by A26, A25, FUNCT_4:13
;
succ (IC (s +* (Initialize ((intloc 0) .--> 1)))) = 1
by XX;
then A31:
InsCode i in {0,6,7,8}
by A28, A29, SCMFSA6A:3;
hereby verum
per cases
( InsCode i = 0 or InsCode i = 6 or InsCode i = 7 or InsCode i = 8 )
by A31, ENUMSET1:def 2;
suppose A33:
(
InsCode i = 6 or
InsCode i = 7 or
InsCode i = 8 )
;
Exec (i,(Initialized s)) = IExec ((Macro i),P,s)A38:
Following (
(P +* Mi),
(s +* (Initialize ((intloc 0) .--> 1)))) =
Following (
(P +* Mi),
(Comput ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))),0)))
by EXTPRO_1:2
.=
Exec (
i,
(s +* (Initialize ((intloc 0) .--> 1))))
by A28, EXTPRO_1:3
;
for
n being
Element of
NAT holds
CurInstr (
(P +* Mi),
(Comput ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))),n)))
<> halt SCM+FSA
by A30, A33, SCMFSA_2:97, A34, A36, A28, A29, XX, A38, AMISTD_2:11, SCMFSA_2:104;
then A39:
not
P +* Mi halts_on s +* (Initialize ((intloc 0) .--> 1))
by EXTPRO_1:29;
Mi c= P +* Mi
by FUNCT_4:25;
hence
Exec (
i,
(Initialized s))
= IExec (
(Macro i),
P,
s)
by A39, AMISTD_1:def 11;
verum end; end;
end; end; suppose A41:
IC (Comput ((P +* (Macro i)),(s +* (Initialize ((intloc 0) .--> 1))),1)) = 1
;
Exec (i,(Initialized s)) = IExec ((Macro i),P,s)A43:
Mi . 1
= halt SCM+FSA
by COMPOS_1:59;
A44:
CurInstr (
(P +* Mi),
(Comput ((P +* Mi),(s +* (Initialize ((intloc 0) .--> 1))),1))) =
(P +* Mi) . 1
by A41, PBOOLE:143
.=
halt SCM+FSA
by A43, A1, A24, GRFUNC_1:2
;
then
P +* Mi halts_on s +* (Initialize ((intloc 0) .--> 1))
by EXTPRO_1:29;
hence
Exec (
i,
(Initialized s))
= IExec (
(Macro i),
P,
s)
by A28, A44, EXTPRO_1:def 9;
verum end; end;