let s be State of SCM ; ( Euclide-Algorithm c= s implies S1[s] )
assume A1:
Euclide-Algorithm c= s
; S1[s]
(1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))) c= (0 .--> ((dl. 2) := (dl. 1))) +* ((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))))
by FUNCT_4:26;
then A2:
(1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))) c= s
by A1, XBOOLE_1:1;
(2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))) c= (1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))))
by FUNCT_4:26;
then A3:
(2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))) c= s
by A2, XBOOLE_1:1;
(3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )) c= (2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))
by FUNCT_4:26;
then A4:
(3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )) c= s
by A3, XBOOLE_1:1;
A5:
dom (4 .--> (halt SCM )) = {4}
by FUNCOP_1:19;
then A6:
not 3 in dom (4 .--> (halt SCM ))
by TARSKI:def 1;
dom (3 .--> ((dl. 1) >0_goto 0 )) = {3}
by FUNCOP_1:19;
then A7: dom ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))) =
{3} \/ {4}
by A5, FUNCT_4:def 1
.=
{3,4}
by ENUMSET1:41
;
then A8:
not 2 in dom ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))
by TARSKI:def 2;
dom (2 .--> ((dl. 0 ) := (dl. 2))) = {2}
by FUNCOP_1:19;
then A9: dom ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))) =
{2} \/ {3,4}
by A7, FUNCT_4:def 1
.=
{2,3,4}
by ENUMSET1:42
;
then A10:
not 1 in dom ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))))
by ENUMSET1:def 1;
dom (1 .--> (Divide (dl. 0 ),(dl. 1))) = {1}
by FUNCOP_1:19;
then A11: dom ((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))))) =
{1} \/ {2,3,4}
by A9, FUNCT_4:def 1
.=
{1,2,3,4}
by ENUMSET1:44
;
then A12:
not 0 in dom ((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))))
;
0 in dom ((0 .--> ((dl. 2) := (dl. 1))) +* ((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))))))
by Th4, CARD_1:91, ENUMSET1:def 3;
hence s . 0 =
((0 .--> ((dl. 2) := (dl. 1))) +* ((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))))) . 0
by A1, GRFUNC_1:8
.=
(0 .--> ((dl. 2) := (dl. 1))) . 0
by A12, FUNCT_4:12
.=
(dl. 2) := (dl. 1)
by FUNCOP_1:87
;
( s . 1 = Divide (dl. 0 ),(dl. 1) & s . 2 = (dl. 0 ) := (dl. 2) & s . 3 = (dl. 1) >0_goto 0 & s halts_at 4 )
1 in dom ((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))))
by A11, ENUMSET1:def 2;
hence s . 1 =
((1 .--> (Divide (dl. 0 ),(dl. 1))) +* ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))))) . 1
by A2, GRFUNC_1:8
.=
(1 .--> (Divide (dl. 0 ),(dl. 1))) . 1
by A10, FUNCT_4:12
.=
Divide (dl. 0 ),(dl. 1)
by FUNCOP_1:87
;
( s . 2 = (dl. 0 ) := (dl. 2) & s . 3 = (dl. 1) >0_goto 0 & s halts_at 4 )
2 in dom ((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))))
by A9, ENUMSET1:def 1;
hence s . 2 =
((2 .--> ((dl. 0 ) := (dl. 2))) +* ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))) . 2
by A3, GRFUNC_1:8
.=
(2 .--> ((dl. 0 ) := (dl. 2))) . 2
by A8, FUNCT_4:12
.=
(dl. 0 ) := (dl. 2)
by FUNCOP_1:87
;
( s . 3 = (dl. 1) >0_goto 0 & s halts_at 4 )
A13:
4 in dom (4 .--> (halt SCM ))
by A5, TARSKI:def 1;
3 in dom ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))
by A7, TARSKI:def 2;
hence s . 3 =
((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))) . 3
by A4, GRFUNC_1:8
.=
(3 .--> ((dl. 1) >0_goto 0 )) . 3
by A6, FUNCT_4:12
.=
(dl. 1) >0_goto 0
by FUNCOP_1:87
;
s halts_at 4
4 in dom ((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM )))
by A7, TARSKI:def 2;
hence s . 4 =
((3 .--> ((dl. 1) >0_goto 0 )) +* (4 .--> (halt SCM ))) . 4
by A4, GRFUNC_1:8
.=
(4 .--> (halt SCM )) . 4
by A13, FUNCT_4:14
.=
halt SCM
by FUNCOP_1:87
;
AMI_1:def 42 verum