let s be State of SCM+FSA ; :: thesis: IExec (Stop SCM+FSA ),s = (Initialized s) +* (Start-At 0 ,SCM+FSA )
set D = Int-Locations \/ FinSeq-Locations ;
set A = NAT ;
set s1 = (Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ));
A1: (Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )) = Comput (ProgramPart ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))),0 by AMI_1:13;
A2: IExec (Stop SCM+FSA ),s = (Result (ProgramPart (s +* (Initialized (Stop SCM+FSA )))),(s +* (Initialized (Stop SCM+FSA )))) +* (s | NAT ) by SCMFSA6B:def 1;
Y: (ProgramPart ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )))) /. (IC ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )))) = ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))) . (IC ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )))) by COMPOS_1:38;
y: (Stop SCM+FSA ) . 0 = halt SCM+FSA by AFINSQ_1:38;
x: 0 in dom (Stop SCM+FSA ) by COMPOS_1:45;
A3: s +* (Initialized (Stop SCM+FSA )) = (Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )) by SCMFSA8A:13;
then A4: CurInstr (ProgramPart ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))) = ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))) . 0 by Y, FUNCT_4:26, SCMFSA6B:34
.= (Stop SCM+FSA ) . 0 by Th26, x ;
then ProgramPart ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))) halts_on (Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA )) by A1, y, AMI_1:146;
then A5: IExec (Stop SCM+FSA ),s = ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))) +* (s | NAT ) by A3, A4, A1, A2, y, AMI_1:def 22;
then A6: DataPart (IExec (Stop SCM+FSA ),s) = DataPart ((Initialized s) +* ((Stop SCM+FSA ) +* (Start-At 0 ,SCM+FSA ))) by Th37
.= DataPart (Initialized s) by SCMFSA8A:11 ;
hereby :: thesis: verum
A7: dom (Start-At 0 ,SCM+FSA ) = {(IC SCM+FSA )} by FUNCOP_1:19;
A8: now
let x be set ; :: thesis: ( x in dom (IExec (Stop SCM+FSA ),s) implies (IExec (Stop SCM+FSA ),s) . b1 = ((Initialized s) +* (Start-At 0 ,SCM+FSA )) . b1 )
assume A9: x in dom (IExec (Stop SCM+FSA ),s) ; :: thesis: (IExec (Stop SCM+FSA ),s) . b1 = ((Initialized s) +* (Start-At 0 ,SCM+FSA )) . b1
per cases ( x is Int-Location or x is FinSeq-Location or x = IC SCM+FSA or x is Element of NAT ) by A9, SCMFSA6A:35;
end;
end;
dom (IExec (Stop SCM+FSA ),s) = the carrier of SCM+FSA by PARTFUN1:def 4
.= dom ((Initialized s) +* (Start-At 0 ,SCM+FSA )) by PARTFUN1:def 4 ;
hence IExec (Stop SCM+FSA ),s = (Initialized s) +* (Start-At 0 ,SCM+FSA ) by A8, FUNCT_1:9; :: thesis: verum
end;