set J = Stop SCM+FSA ;
let a be Int-Location ; :: thesis: for I being Program of SCM+FSA holds
( (while=0 a,I) . (insloc 0 ) = a =0_goto (insloc 4) & (while=0 a,I) . (insloc 1) = goto (insloc 2) & (while>0 a,I) . (insloc 0 ) = a >0_goto (insloc 4) & (while>0 a,I) . (insloc 1) = goto (insloc 2) )

let I be Program of SCM+FSA ; :: thesis: ( (while=0 a,I) . (insloc 0 ) = a =0_goto (insloc 4) & (while=0 a,I) . (insloc 1) = goto (insloc 2) & (while>0 a,I) . (insloc 0 ) = a >0_goto (insloc 4) & (while>0 a,I) . (insloc 1) = goto (insloc 2) )
set I1 = I ';' (Goto (insloc 0 ));
set f = (insloc ((card I) + 4)) .--> (goto (insloc 0 ));
set i = a =0_goto (insloc ((card (Stop SCM+FSA )) + 3));
A1: a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)) <> halt SCM+FSA by SCMFSA_2:48, SCMFSA_2:124;
A2: dom (while=0 a,I) = (dom (if=0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))) \/ (dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) by FUNCT_4:def 1;
A3: dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))) = {(insloc ((card I) + 4))} by FUNCOP_1:19;
then A4: not insloc 0 in dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))) ;
A5: dom (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) = {(insloc 0 ),(insloc 1)} by SCMFSA7B:4;
then A6: insloc 0 in dom (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) by TARSKI:def 2;
A7: insloc 1 in dom (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) by A5, TARSKI:def 2;
A8: if=0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ) = ((((a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' (Stop SCM+FSA )) ';' (Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1)))) ';' (I ';' (Goto (insloc 0 )))) ';' (Stop SCM+FSA ) by SCMFSA8B:def 1
.= (((a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' (Stop SCM+FSA )) ';' (Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1)))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA )) by SCMFSA6A:67
.= ((a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' (Stop SCM+FSA )) ';' ((Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA ))) by SCMFSA6A:67
.= (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' ((Stop SCM+FSA ) ';' ((Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA )))) by SCMFSA6A:71
.= (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) ';' ((Stop SCM+FSA ) ';' ((Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA )))) ;
1 <> (card I) + 4 by NAT_1:11;
then A9: not insloc 1 in dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))) by A3, TARSKI:def 1;
insloc 0 in dom (while=0 a,I) by Th10;
hence (while=0 a,I) . (insloc 0 ) = (if=0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 0 ) by A4, A2, FUNCT_4:def 1
.= (Directed (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 0 ) by A8, A6, SCMFSA8A:28
.= a =0_goto (insloc 4) by A1, SCMFSA7B:7, SCMFSA8A:17 ;
:: thesis: ( (while=0 a,I) . (insloc 1) = goto (insloc 2) & (while>0 a,I) . (insloc 0 ) = a >0_goto (insloc 4) & (while>0 a,I) . (insloc 1) = goto (insloc 2) )
A10: dom (while>0 a,I) = (dom (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ))) \/ (dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))) by FUNCT_4:def 1;
insloc 1 in dom (while=0 a,I) by Th10;
hence (while=0 a,I) . (insloc 1) = (if=0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 1) by A2, A9, FUNCT_4:def 1
.= (Directed (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 1) by A8, A7, SCMFSA8A:28
.= goto (insloc 2) by SCMFSA7B:8 ;
:: thesis: ( (while>0 a,I) . (insloc 0 ) = a >0_goto (insloc 4) & (while>0 a,I) . (insloc 1) = goto (insloc 2) )
set i = a >0_goto (insloc ((card (Stop SCM+FSA )) + 3));
A11: a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)) <> halt SCM+FSA by SCMFSA_2:49, SCMFSA_2:124;
A12: if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA ) = ((((a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' (Stop SCM+FSA )) ';' (Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1)))) ';' (I ';' (Goto (insloc 0 )))) ';' (Stop SCM+FSA ) by SCMFSA8B:def 2
.= (((a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' (Stop SCM+FSA )) ';' (Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1)))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA )) by SCMFSA6A:67
.= ((a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' (Stop SCM+FSA )) ';' ((Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA ))) by SCMFSA6A:67
.= (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))) ';' ((Stop SCM+FSA ) ';' ((Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA )))) by SCMFSA6A:71
.= (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) ';' ((Stop SCM+FSA ) ';' ((Goto (insloc ((card (I ';' (Goto (insloc 0 )))) + 1))) ';' ((I ';' (Goto (insloc 0 ))) ';' (Stop SCM+FSA )))) ;
A13: dom (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) = {(insloc 0 ),(insloc 1)} by SCMFSA7B:4;
then A14: insloc 0 in dom (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) by TARSKI:def 2;
A15: insloc 1 in dom (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) by A13, TARSKI:def 2;
insloc 0 in dom (while>0 a,I) by Th10;
hence (while>0 a,I) . (insloc 0 ) = (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 0 ) by A4, A10, FUNCT_4:def 1
.= (Directed (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 0 ) by A12, A14, SCMFSA8A:28
.= a >0_goto (insloc 4) by A11, SCMFSA7B:7, SCMFSA8A:17 ;
:: thesis: (while>0 a,I) . (insloc 1) = goto (insloc 2)
insloc 1 in dom (while>0 a,I) by Th10;
hence (while>0 a,I) . (insloc 1) = (if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 1) by A9, A10, FUNCT_4:def 1
.= (Directed (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 1) by A12, A15, SCMFSA8A:28
.= goto (insloc 2) by SCMFSA7B:8 ;
:: thesis: verum