let m, n be Nat; for s being State of SCMPDS
for P being Instruction-Sequence of SCMPDS st GCD-Algorithm c= P & IC s = 5 & n = s . SBP & s . GBP = 0 & s . (DataLoc ((s . SBP),3)) > 0 & 1 < m & m <= n + 1 holds
(Comput (P,s,7)) . (intpos m) = s . (intpos m)
let s be State of SCMPDS; for P being Instruction-Sequence of SCMPDS st GCD-Algorithm c= P & IC s = 5 & n = s . SBP & s . GBP = 0 & s . (DataLoc ((s . SBP),3)) > 0 & 1 < m & m <= n + 1 holds
(Comput (P,s,7)) . (intpos m) = s . (intpos m)
let P be Instruction-Sequence of SCMPDS; ( GCD-Algorithm c= P & IC s = 5 & n = s . SBP & s . GBP = 0 & s . (DataLoc ((s . SBP),3)) > 0 & 1 < m & m <= n + 1 implies (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A1:
GCD-Algorithm c= P
; ( not IC s = 5 or not n = s . SBP or not s . GBP = 0 or not s . (DataLoc ((s . SBP),3)) > 0 or not 1 < m or not m <= n + 1 or (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A2:
IC s = 5
; ( not n = s . SBP or not s . GBP = 0 or not s . (DataLoc ((s . SBP),3)) > 0 or not 1 < m or not m <= n + 1 or (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A3:
n = s . SBP
; ( not s . GBP = 0 or not s . (DataLoc ((s . SBP),3)) > 0 or not 1 < m or not m <= n + 1 or (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A4:
s . GBP = 0
; ( not s . (DataLoc ((s . SBP),3)) > 0 or not 1 < m or not m <= n + 1 or (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A5:
s . (DataLoc ((s . SBP),3)) > 0
; ( not 1 < m or not m <= n + 1 or (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A6:
1 < m
; ( not m <= n + 1 or (Comput (P,s,7)) . (intpos m) = s . (intpos m) )
assume A7:
m <= n + 1
; (Comput (P,s,7)) . (intpos m) = s . (intpos m)
A8:
P /. (IC s) = P . (IC s)
by PBOOLE:143;
A9:
P /. (IC (Comput (P,s,1))) = P . (IC (Comput (P,s,1)))
by PBOOLE:143;
A10: Comput (P,s,(1 + 0)) =
Following (P,(Comput (P,s,0)))
by EXTPRO_1:3
.=
Following (P,s)
by EXTPRO_1:2
.=
Exec (((SBP,3) <=0_goto 9),s)
by A2, A8, Lm1, A1
;
then A11: IC (Comput (P,s,1)) =
(IC s) + 1
by A5, SCMPDS_2:56
.=
5 + 1
by A2
;
then A12: CurInstr (P,(Comput (P,s,1))) =
P . 6
by A9
.=
(SBP,6) := (SBP,3)
by Lm1, A1
;
A13: Comput (P,s,(1 + 1)) =
Following (P,(Comput (P,s,1)))
by EXTPRO_1:3
.=
Exec (((SBP,6) := (SBP,3)),(Comput (P,s,1)))
by A12
;
A14:
(Comput (P,s,1)) . SBP = n
by A3, A10, SCMPDS_2:56;
A15:
(Comput (P,s,1)) . GBP = 0
by A4, A10, SCMPDS_2:56;
A16:
(Comput (P,s,1)) . (intpos m) = s . (intpos m)
by A10, SCMPDS_2:56;
A17:
P /. (IC (Comput (P,s,2))) = P . (IC (Comput (P,s,2)))
by PBOOLE:143;
A18: IC (Comput (P,s,2)) =
(IC (Comput (P,s,1))) + 1
by A13, SCMPDS_2:47
.=
6 + 1
by A11
;
then A19: CurInstr (P,(Comput (P,s,2))) =
P . 7
by A17
.=
Divide (SBP,2,SBP,3)
by Lm1, A1
;
A20: Comput (P,s,(2 + 1)) =
Following (P,(Comput (P,s,2)))
by EXTPRO_1:3
.=
Exec ((Divide (SBP,2,SBP,3)),(Comput (P,s,2)))
by A19
;
A21:
DataLoc (((Comput (P,s,1)) . SBP),6) = intpos (n + 6)
by A14, Th1;
then A22:
(Comput (P,s,2)) . SBP = n
by A13, A14, Lm3, SCMPDS_2:47;
A23:
(Comput (P,s,2)) . GBP = 0
by A13, A15, A21, Lm2, SCMPDS_2:47;
n + 1 < n + 6
by XREAL_1:6;
then A24:
(Comput (P,s,2)) . (intpos m) = s . (intpos m)
by A7, A13, A16, A21, AMI_3:10, SCMPDS_2:47;
A25:
P /. (IC (Comput (P,s,3))) = P . (IC (Comput (P,s,3)))
by PBOOLE:143;
A26: IC (Comput (P,s,3)) =
(IC (Comput (P,s,2))) + 1
by A20, SCMPDS_2:52
.=
7 + 1
by A18
;
then A27: CurInstr (P,(Comput (P,s,3))) =
P . 8
by A25
.=
(SBP,7) := (SBP,3)
by Lm1, A1
;
A28: Comput (P,s,(3 + 1)) =
Following (P,(Comput (P,s,3)))
by EXTPRO_1:3
.=
Exec (((SBP,7) := (SBP,3)),(Comput (P,s,3)))
by A27
;
A29:
DataLoc (((Comput (P,s,2)) . SBP),2) = intpos (n + 2)
by A22, Th1;
then A30:
SBP <> DataLoc (((Comput (P,s,2)) . SBP),2)
by Lm3;
A31:
DataLoc (((Comput (P,s,2)) . SBP),3) = intpos (n + 3)
by A22, Th1;
then
SBP <> DataLoc (((Comput (P,s,2)) . SBP),3)
by Lm3;
then A32:
(Comput (P,s,3)) . SBP = n
by A20, A22, A30, SCMPDS_2:52;
A33:
GBP <> DataLoc (((Comput (P,s,2)) . SBP),2)
by A29, Lm2;
GBP <> DataLoc (((Comput (P,s,2)) . SBP),3)
by A31, Lm2;
then A34:
(Comput (P,s,3)) . GBP = 0
by A20, A23, A33, SCMPDS_2:52;
n + 1 < n + 2
by XREAL_1:6;
then A35:
intpos m <> DataLoc (((Comput (P,s,2)) . SBP),2)
by A7, A29, AMI_3:10;
n + 1 < n + 3
by XREAL_1:6;
then
intpos m <> DataLoc (((Comput (P,s,2)) . SBP),3)
by A7, A31, AMI_3:10;
then A36:
(Comput (P,s,3)) . (intpos m) = s . (intpos m)
by A20, A24, A35, SCMPDS_2:52;
A37:
P /. (IC (Comput (P,s,4))) = P . (IC (Comput (P,s,4)))
by PBOOLE:143;
A38: IC (Comput (P,s,4)) =
(IC (Comput (P,s,3))) + 1
by A28, SCMPDS_2:47
.=
8 + 1
by A26
;
then A39: CurInstr (P,(Comput (P,s,4))) =
P . 9
by A37
.=
(SBP,(4 + RetSP)) := (GBP,1)
by Lm1, A1
;
A40: Comput (P,s,(4 + 1)) =
Following (P,(Comput (P,s,4)))
by EXTPRO_1:3
.=
Exec (((SBP,(4 + RetSP)) := (GBP,1)),(Comput (P,s,4)))
by A39
;
A41:
DataLoc (((Comput (P,s,3)) . SBP),7) = intpos (n + 7)
by A32, Th1;
then A42:
(Comput (P,s,4)) . SBP = n
by A28, A32, Lm3, SCMPDS_2:47;
A43:
(Comput (P,s,4)) . GBP = 0
by A28, A34, A41, Lm2, SCMPDS_2:47;
n + 1 < n + 7
by XREAL_1:6;
then A44:
(Comput (P,s,4)) . (intpos m) = s . (intpos m)
by A7, A28, A36, A41, AMI_3:10, SCMPDS_2:47;
A45:
P /. (IC (Comput (P,s,5))) = P . (IC (Comput (P,s,5)))
by PBOOLE:143;
A46: IC (Comput (P,s,5)) =
(IC (Comput (P,s,4))) + 1
by A40, SCMPDS_2:47
.=
9 + 1
by A38
;
then A47: CurInstr (P,(Comput (P,s,5))) =
P . 10
by A45
.=
AddTo (GBP,1,4)
by Lm1, A1
;
A48: Comput (P,s,(5 + 1)) =
Following (P,(Comput (P,s,5)))
by EXTPRO_1:3
.=
Exec ((AddTo (GBP,1,4)),(Comput (P,s,5)))
by A47
;
A49:
DataLoc (((Comput (P,s,4)) . SBP),(4 + RetSP)) = intpos (n + (4 + 0))
by A42, Th1, SCMPDS_I:def 13;
then A50:
(Comput (P,s,5)) . SBP = n
by A40, A42, Lm3, SCMPDS_2:47;
A51:
(Comput (P,s,5)) . GBP = 0
by A40, A43, A49, Lm2, SCMPDS_2:47;
n + 1 < n + 4
by XREAL_1:6;
then A52:
(Comput (P,s,5)) . (intpos m) = s . (intpos m)
by A7, A40, A44, A49, AMI_3:10, SCMPDS_2:47;
A53:
P /. (IC (Comput (P,s,6))) = P . (IC (Comput (P,s,6)))
by PBOOLE:143;
IC (Comput (P,s,6)) =
(IC (Comput (P,s,5))) + 1
by A48, SCMPDS_2:48
.=
10 + 1
by A46
;
then A54: CurInstr (P,(Comput (P,s,6))) =
P . 11
by A53
.=
saveIC (SBP,RetIC)
by Lm1, A1
;
A55: Comput (P,s,(6 + 1)) =
Following (P,(Comput (P,s,6)))
by EXTPRO_1:3
.=
Exec ((saveIC (SBP,RetIC)),(Comput (P,s,6)))
by A54
;
A56:
DataLoc (((Comput (P,s,5)) . GBP),1) = intpos (0 + 1)
by A51, Th1;
then A57:
(Comput (P,s,6)) . SBP = n + 4
by A48, A50, SCMPDS_2:48;
A58:
(Comput (P,s,6)) . (intpos m) = s . (intpos m)
by A6, A48, A52, A56, AMI_3:10, SCMPDS_2:48;
A59: DataLoc (((Comput (P,s,6)) . SBP),RetIC) =
intpos ((n + 4) + 1)
by A57, Th1, SCMPDS_I:def 14
.=
intpos (n + (4 + 1))
;
n + 1 < n + 5
by XREAL_1:6;
hence
(Comput (P,s,7)) . (intpos m) = s . (intpos m)
by A7, A55, A58, A59, AMI_3:10, SCMPDS_2:59; verum