set Ma = Macro (MultBy a,b);
let s be State of SCM+FSA ; SCMFSA6B:def 4,SCMFSA6C:def 2 ( not (Macro (MultBy a,b)) +* (Start-At 0 ,SCM+FSA ) c= s or for b1 being Element of NAT holds (Comput (ProgramPart s),s,b1) . (intloc 0 ) = s . (intloc 0 ) )
assume A28:
(Macro (MultBy a,b)) +* (Start-At 0 ,SCM+FSA ) c= s
; for b1 being Element of NAT holds (Comput (ProgramPart s),s,b1) . (intloc 0 ) = s . (intloc 0 )
then A29:
Macro (MultBy a,b) c= s
by SCMFSA6B:5;
let k be Element of NAT ; (Comput (ProgramPart s),s,k) . (intloc 0 ) = s . (intloc 0 )
dom (Start-At 0 ,SCM+FSA ) = {(IC SCM+FSA )}
by FUNCOP_1:19;
then A30:
IC SCM+FSA in dom (Start-At 0 ,SCM+FSA )
by TARSKI:def 1;
Start-At 0 ,SCM+FSA c= (Macro (MultBy a,b)) +* (Start-At 0 ,SCM+FSA )
by FUNCT_4:26;
then
Start-At 0 ,SCM+FSA c= s
by A28, XBOOLE_1:1;
then A31: IC s =
(Start-At 0 ,SCM+FSA ) . (IC SCM+FSA )
by A30, GRFUNC_1:8
.=
0
by FUNCOP_1:87
;
0 in dom (Macro (MultBy a,b))
by SCMFSA6B:32;
then A32:
(Macro (MultBy a,b)) . 0 = s . 0
by A29, GRFUNC_1:8;
Y:
(ProgramPart s) /. (IC s) = s . (IC s)
by COMPOS_1:38;
Z:
(ProgramPart (Comput (ProgramPart s),s,1)) /. (IC (Comput (ProgramPart s),s,1)) = (Comput (ProgramPart s),s,1) . (IC (Comput (ProgramPart s),s,1))
by COMPOS_1:38;
A33: Comput (ProgramPart s),s,(0 + 1) =
Following (ProgramPart s),(Comput (ProgramPart s),s,0 )
by AMI_1:14
.=
Following (ProgramPart s),s
by AMI_1:13
.=
Exec (MultBy a,b),s
by A31, A32, Y, SCMFSA6B:33
;
1 in dom (Macro (MultBy a,b))
by SCMFSA6B:32;
then
(Macro (MultBy a,b)) . 1 = s . 1
by A29, GRFUNC_1:8;
then A34:
s . 1 = halt SCM+FSA
by SCMFSA6B:33;
IC (Exec (MultBy a,b),s) =
succ 0
by A31, SCMFSA_2:92
.=
0 + 1
;
then A35:
CurInstr (ProgramPart (Comput (ProgramPart s),s,1)),(Comput (ProgramPart s),s,1) = halt SCM+FSA
by A34, A33, Z, AMI_1:def 13;
T:
ProgramPart s = ProgramPart (Comput (ProgramPart s),s,1)
by AMI_1:123;