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 J = Stop SCM+FSA ;
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 ((insloc ((card I) + 4)) .--> (goto (insloc 0 ))) = {(insloc ((card I) + 4))}
by FUNCOP_1:19;
A3:
not insloc 0 in dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))
by A2;
A4:
insloc 0 in dom (while=0 a,I)
by Th10;
A5:
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;
1 <> (card I) + 4
by NAT_1:11;
then A6:
not insloc 1 in dom ((insloc ((card I) + 4)) .--> (goto (insloc 0 )))
by A2, TARSKI:def 1;
A7:
insloc 1 in dom (while=0 a,I)
by Th10;
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 ))))
;
dom (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) = {(insloc 0 ),(insloc 1)}
by SCMFSA7B:4;
then A9:
( insloc 0 in dom (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) & insloc 1 in dom (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) )
by TARSKI:def 2;
thus (while=0 a,I) . (insloc 0 ) =
(if=0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 0 )
by A3, A4, A5, FUNCT_4:def 1
.=
(Directed (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 0 )
by A8, A9, 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) )
thus (while=0 a,I) . (insloc 1) =
(if=0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 1)
by A5, A6, A7, FUNCT_4:def 1
.=
(Directed (Macro (a =0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 1)
by A8, A9, 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));
A10:
a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)) <> halt SCM+FSA
by SCMFSA_2:49, SCMFSA_2:124;
A11:
insloc 0 in dom (while>0 a,I)
by Th10;
A12:
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;
A13:
insloc 1 in dom (while>0 a,I)
by Th10;
A14: 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 ))))
;
dom (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) = {(insloc 0 ),(insloc 1)}
by SCMFSA7B:4;
then A15:
( insloc 0 in dom (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) & insloc 1 in dom (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3)))) )
by TARSKI:def 2;
thus (while>0 a,I) . (insloc 0 ) =
(if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 0 )
by A3, A11, A12, FUNCT_4:def 1
.=
(Directed (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 0 )
by A14, A15, SCMFSA8A:28
.=
a >0_goto (insloc 4)
by A10, SCMFSA7B:7, SCMFSA8A:17
; :: thesis: (while>0 a,I) . (insloc 1) = goto (insloc 2)
thus (while>0 a,I) . (insloc 1) =
(if>0 a,(I ';' (Goto (insloc 0 ))),(Stop SCM+FSA )) . (insloc 1)
by A6, A12, A13, FUNCT_4:def 1
.=
(Directed (Macro (a >0_goto (insloc ((card (Stop SCM+FSA )) + 3))))) . (insloc 1)
by A14, A15, SCMFSA8A:28
.=
goto (insloc 2)
by SCMFSA7B:8
; :: thesis: verum