let p be FinPartState of SCMPDS; for x, y being Integer st y >= 0 & x >= y & p = ((intpos 9),(intpos 10)) --> (x,y) holds
Initialize p is GCD-Algorithm -autonomic
let x, y be Integer; ( y >= 0 & x >= y & p = ((intpos 9),(intpos 10)) --> (x,y) implies Initialize p is GCD-Algorithm -autonomic )
set GA = GCD-Algorithm ;
set a = intpos 9;
set b = intpos 10;
assume that
A1:
y >= 0
and
A2:
x >= y
and
A3:
p = ((intpos 9),(intpos 10)) --> (x,y)
; Initialize p is GCD-Algorithm -autonomic
A4:
dom p = {(intpos 9),(intpos 10)}
by A3, FUNCT_4:62;
( intpos 9 in SCM-Data-Loc & intpos 10 in SCM-Data-Loc )
by AMI_2:def 16;
then
( intpos 9 in Data-Locations & intpos 10 in Data-Locations )
by SCMPDS_2:84;
then A5:
dom p c= Data-Locations
by A4, ZFMISC_1:32;
not IC in Data-Locations
by STRUCT_0:3;
then
{(IC )} misses Data-Locations
by ZFMISC_1:50;
then
Data-Locations misses {(IC )}
;
then
dom p misses {(IC )}
by A5, XBOOLE_1:63;
then A6:
p is data-only
;
intpos 9 in dom p
by A4, TARSKI:def 2;
then A7:
intpos 9 in dom p
;
intpos 10 in dom p
by A4, TARSKI:def 2;
then A8:
intpos 10 in dom p
;
A9:
dom (Start-At (0,SCMPDS)) = {(IC )}
by FUNCOP_1:13;
A10:
for t being State of SCMPDS st Initialize p c= t holds
( t . (intpos 9) = x & t . (intpos 10) = y )
proof
let t be
State of
SCMPDS;
( Initialize p c= t implies ( t . (intpos 9) = x & t . (intpos 10) = y ) )
assume A11:
Initialize p c= t
;
( t . (intpos 9) = x & t . (intpos 10) = y )
p = DataPart p
by A6, MEMSTR_0:7;
then
dom p misses dom (Start-At (0,SCMPDS))
by A9, MEMSTR_0:4;
then
p c= Initialize p
by FUNCT_4:32;
then
p c= Initialize p
;
then A12:
p c= t
by A11, XBOOLE_1:1;
hence t . (intpos 9) =
p . (intpos 9)
by A7, GRFUNC_1:2
.=
p . (intpos 9)
.=
x
by A3, AMI_3:10, FUNCT_4:63
;
t . (intpos 10) = y
thus t . (intpos 10) =
p . (intpos 10)
by A12, A8, GRFUNC_1:2
.=
p . (intpos 10)
.=
y
by A3, FUNCT_4:63
;
verum
end;
let P1, P2 be Instruction-Sequence of SCMPDS; EXTPRO_1:def 10 ( not GCD-Algorithm c= P1 or not GCD-Algorithm c= P2 or for b1, b2 being set holds
( not Initialize p c= b1 or not Initialize p c= b2 or for b3 being set holds (Comput (P1,b1,b3)) | (dom (Initialize p)) = (Comput (P2,b2,b3)) | (dom (Initialize p)) ) )
assume A13:
( GCD-Algorithm c= P1 & GCD-Algorithm c= P2 )
; for b1, b2 being set holds
( not Initialize p c= b1 or not Initialize p c= b2 or for b3 being set holds (Comput (P1,b1,b3)) | (dom (Initialize p)) = (Comput (P2,b2,b3)) | (dom (Initialize p)) )
let s1, s2 be State of SCMPDS; ( not Initialize p c= s1 or not Initialize p c= s2 or for b1 being set holds (Comput (P1,s1,b1)) | (dom (Initialize p)) = (Comput (P2,s2,b1)) | (dom (Initialize p)) )
assume that
A14:
Initialize p c= s1
and
A15:
Initialize p c= s2
; for b1 being set holds (Comput (P1,s1,b1)) | (dom (Initialize p)) = (Comput (P2,s2,b1)) | (dom (Initialize p))
Initialize p c= s1
by A14;
then A16:
Start-At (0,SCMPDS) c= s1
by MEMSTR_0:50;
then A17:
s1 is 0 -started
by MEMSTR_0:29;
A18:
GCD-Algorithm c= P1
by A13;
Initialize p c= s2
by A15;
then A19:
Start-At (0,SCMPDS) c= s2
by MEMSTR_0:50;
then A20:
s2 is 0 -started
by MEMSTR_0:29;
A21:
GCD-Algorithm c= P2
by A13;
A22:
s1 . (intpos 9) = x
by A10, A14;
A23:
s1 . (intpos 10) = y
by A10, A14;
A24:
s2 . (intpos 9) = x
by A10, A15;
A25:
s2 . (intpos 10) = y
by A10, A15;
set s4 = Comput (P1,s1,4);
set t4 = Comput (P2,s2,4);
A26:
IC (Comput (P1,s1,4)) = 5
by Th11, A18, A17;
A27:
(Comput (P1,s1,4)) . GBP = 0
by Th11, A18, A17;
A28:
(Comput (P1,s1,4)) . SBP = 7
by Th11, A18, A17;
A29:
(Comput (P1,s1,4)) . (intpos (7 + RetIC)) = 2
by Th11, A18, A17;
A30:
(Comput (P1,s1,4)) . (intpos 9) = s1 . (intpos 9)
by Th11, A18, A17;
A31:
(Comput (P1,s1,4)) . (intpos 10) = s1 . (intpos 10)
by Th11, A18, A17;
A32: (Comput (P1,s1,4)) . (DataLoc (((Comput (P1,s1,4)) . SBP),3)) =
(Comput (P1,s1,4)) . (intpos (7 + 3))
by A28, Th1
.=
y
by A10, A14, A31
;
A33:
DataLoc (((Comput (P1,s1,4)) . SBP),2) = intpos (7 + 2)
by A28, Th1;
A34:
IC (Comput (P2,s2,4)) = 5
by Th11, A21, A20;
A35:
(Comput (P2,s2,4)) . GBP = 0
by Th11, A21, A20;
A36:
(Comput (P2,s2,4)) . SBP = 7
by Th11, A21, A20;
A37:
(Comput (P2,s2,4)) . (intpos (7 + RetIC)) = 2
by Th11, A21, A20;
A38:
(Comput (P2,s2,4)) . (intpos 9) = s2 . (intpos 9)
by Th11, A21, A20;
A39:
(Comput (P2,s2,4)) . (intpos 10) = s2 . (intpos 10)
by Th11, A21, A20;
(Comput (P2,s2,4)) . (DataLoc (((Comput (P2,s2,4)) . SBP),3)) =
(Comput (P2,s2,4)) . (intpos (7 + 3))
by A36, Th1
.=
(Comput (P1,s1,4)) . (DataLoc (((Comput (P1,s1,4)) . SBP),3))
by A10, A15, A32, A39
;
then consider n being Nat such that
A40:
CurInstr (P1,(Comput (P1,(Comput (P1,s1,4)),n))) = return SBP
and
A41:
(Comput (P1,s1,4)) . SBP = (Comput (P1,(Comput (P1,s1,4)),n)) . SBP
and
A42:
CurInstr (P2,(Comput (P2,(Comput (P2,s2,4)),n))) = return SBP
and
A43:
(Comput (P2,s2,4)) . SBP = (Comput (P2,(Comput (P2,s2,4)),n)) . SBP
and
A44:
for j being Nat st 1 < j & j <= ((Comput (P1,s1,4)) . SBP) + 1 holds
( (Comput (P1,s1,4)) . (intpos j) = (Comput (P1,(Comput (P1,s1,4)),n)) . (intpos j) & (Comput (P2,s2,4)) . (intpos j) = (Comput (P2,(Comput (P2,s2,4)),n)) . (intpos j) )
and
A45:
for k being Nat
for c being Int_position st k <= n & (Comput (P1,s1,4)) . c = (Comput (P2,s2,4)) . c holds
( IC (Comput (P1,(Comput (P1,s1,4)),k)) = IC (Comput (P2,(Comput (P2,s2,4)),k)) & (Comput (P1,(Comput (P1,s1,4)),k)) . c = (Comput (P2,(Comput (P2,s2,4)),k)) . c )
by A1, A2, A10, A15, A22, A26, A27, A28, A30, A32, A33, A34, A35, A36, A38, Lm8, A18, A21;
A46: (Comput (P1,(Comput (P1,s1,4)),n)) . (DataLoc (((Comput (P1,(Comput (P1,s1,4)),n)) . SBP),RetIC)) =
(Comput (P1,(Comput (P1,s1,4)),n)) . (intpos (7 + 1))
by A28, A41, Th1, SCMPDS_I:def 14
.=
2
by A28, A29, A44, SCMPDS_I:def 14
;
A47: (Comput (P2,(Comput (P2,s2,4)),n)) . (DataLoc (((Comput (P2,(Comput (P2,s2,4)),n)) . SBP),RetIC)) =
(Comput (P2,(Comput (P2,s2,4)),n)) . (intpos (7 + 1))
by A36, A43, Th1, SCMPDS_I:def 14
.=
2
by A28, A37, A44, SCMPDS_I:def 14
;
A48:
P1 /. (IC (Comput (P1,(Comput (P1,s1,4)),(n + 1)))) = P1 . (IC (Comput (P1,(Comput (P1,s1,4)),(n + 1))))
by PBOOLE:143;
A49: Comput (P1,(Comput (P1,s1,4)),(n + 1)) =
Following (P1,(Comput (P1,(Comput (P1,s1,4)),n)))
by EXTPRO_1:3
.=
Exec ((return SBP),(Comput (P1,(Comput (P1,s1,4)),n)))
by A40
;
then A50: IC (Comput (P1,(Comput (P1,s1,4)),(n + 1))) =
|.((Comput (P1,(Comput (P1,s1,4)),n)) . (DataLoc (((Comput (P1,(Comput (P1,s1,4)),n)) . SBP),RetIC))).| + 2
by SCMPDS_2:58
.=
2 + 2
by A46, ABSVALUE:29
;
then A51: CurInstr (P1,(Comput (P1,(Comput (P1,s1,4)),(n + 1)))) =
P1 . 4
by A48
.=
P1 . 4
.=
halt SCMPDS
by Lm1, A18
;
A52:
P2 /. (IC (Comput (P2,(Comput (P2,s2,4)),(n + 1)))) = P2 . (IC (Comput (P2,(Comput (P2,s2,4)),(n + 1))))
by PBOOLE:143;
A53: Comput (P2,(Comput (P2,s2,4)),(n + 1)) =
Following (P2,(Comput (P2,(Comput (P2,s2,4)),n)))
by EXTPRO_1:3
.=
Exec ((return SBP),(Comput (P2,(Comput (P2,s2,4)),n)))
by A42
;
then A54: IC (Comput (P2,(Comput (P2,s2,4)),(n + 1))) =
|.((Comput (P2,(Comput (P2,s2,4)),n)) . (DataLoc (((Comput (P2,(Comput (P2,s2,4)),n)) . SBP),RetIC))).| + 2
by SCMPDS_2:58
.=
2 + 2
by A47, ABSVALUE:29
;
then A55: CurInstr (P2,(Comput (P2,(Comput (P2,s2,4)),(n + 1)))) =
P2 . 4
by A52
.=
P2 . 4
.=
halt SCMPDS
by Lm1, A21
;
A56:
(Comput (P1,s1,4)) . (intpos 9) = (Comput (P2,s2,4)) . (intpos 9)
by A19, A22, A24, Lm9, A18, A16, A21;
A57:
(Comput (P1,s1,4)) . (intpos 10) = (Comput (P2,s2,4)) . (intpos 10)
by A19, A23, A25, Lm9, A18, A16, A21;
A58: (Comput (P1,(Comput (P1,s1,4)),(n + 1))) . (intpos 9) =
(Comput (P1,(Comput (P1,s1,4)),n)) . (intpos 9)
by A49, AMI_3:10, SCMPDS_2:58
.=
(Comput (P2,(Comput (P2,s2,4)),n)) . (intpos 9)
by A45, A56
.=
(Comput (P2,(Comput (P2,s2,4)),(n + 1))) . (intpos 9)
by A53, AMI_3:10, SCMPDS_2:58
;
A59: (Comput (P1,(Comput (P1,s1,4)),(n + 1))) . (intpos 10) =
(Comput (P1,(Comput (P1,s1,4)),n)) . (intpos 10)
by A49, AMI_3:10, SCMPDS_2:58
.=
(Comput (P2,(Comput (P2,s2,4)),n)) . (intpos 10)
by A45, A57
.=
(Comput (P2,(Comput (P2,s2,4)),(n + 1))) . (intpos 10)
by A53, AMI_3:10, SCMPDS_2:58
;
A60:
now for j being Nat holds
( IC (Comput (P1,s1,j)) = IC (Comput (P2,s2,j)) & (Comput (P1,s1,j)) . (intpos 9) = (Comput (P2,s2,j)) . (intpos 9) & (Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10) )let j be
Nat;
( IC (Comput (P1,s1,b1)) = IC (Comput (P2,s2,b1)) & (Comput (P1,s1,b1)) . (intpos 9) = (Comput (P2,s2,b1)) . (intpos 9) & (Comput (P1,s1,b1)) . (intpos 10) = (Comput (P2,s2,b1)) . (intpos 10) )A61:
(
j < (n + 4) + 1 or
j >= n + 5 )
;
A62:
now ( not j <= n + 4 or ( j <= 3 & j <= 3 ) or ( j >= 4 & j >= 4 & j <= n + 4 ) )assume A63:
j <= n + 4
;
( ( j <= 3 & j <= 3 ) or ( j >= 4 & j >= 4 & j <= n + 4 ) )A64:
(
j < 3
+ 1 or
j >= 4 )
;
end; per cases
( j <= 3 or ( j >= 4 & j <= n + 4 ) or j >= n + 5 )
by A61, A62, NAT_1:13;
suppose
j <= 3
;
( IC (Comput (P1,s1,b1)) = IC (Comput (P2,s2,b1)) & (Comput (P1,s1,b1)) . (intpos 9) = (Comput (P2,s2,b1)) . (intpos 9) & (Comput (P1,s1,b1)) . (intpos 10) = (Comput (P2,s2,b1)) . (intpos 10) )then A65:
j <= 4
by XXREAL_0:2;
hence
IC (Comput (P1,s1,j)) = IC (Comput (P2,s2,j))
by A19, A22, A24, Lm9, A18, A16, A21;
( (Comput (P1,s1,j)) . (intpos 9) = (Comput (P2,s2,j)) . (intpos 9) & (Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10) )thus
(Comput (P1,s1,j)) . (intpos 9) = (Comput (P2,s2,j)) . (intpos 9)
by A19, A22, A24, A65, Lm9, A18, A16, A21;
(Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10)thus
(Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10)
by A19, A23, A25, A65, Lm9, A18, A16, A21;
verum end; suppose A66:
(
j >= 4 &
j <= n + 4 )
;
( IC (Comput (P1,s1,b1)) = IC (Comput (P2,s2,b1)) & (Comput (P1,s1,b1)) . (intpos 9) = (Comput (P2,s2,b1)) . (intpos 9) & (Comput (P1,s1,b1)) . (intpos 10) = (Comput (P2,s2,b1)) . (intpos 10) )then consider j1 being
Nat such that A67:
j = 4
+ j1
by NAT_1:10;
reconsider j1 =
j1 as
Nat ;
A68:
j1 <= n
by A66, A67, XREAL_1:6;
thus IC (Comput (P1,s1,j)) =
IC (Comput (P1,(Comput (P1,s1,4)),j1))
by A67, EXTPRO_1:4
.=
IC (Comput (P2,(Comput (P2,s2,4)),j1))
by A45, A56, A68
.=
IC (Comput (P2,s2,j))
by A67, EXTPRO_1:4
;
( (Comput (P1,s1,j)) . (intpos 9) = (Comput (P2,s2,j)) . (intpos 9) & (Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10) )thus (Comput (P1,s1,j)) . (intpos 9) =
(Comput (P1,(Comput (P1,s1,4)),j1)) . (intpos 9)
by A67, EXTPRO_1:4
.=
(Comput (P2,(Comput (P2,s2,4)),j1)) . (intpos 9)
by A45, A56, A68
.=
(Comput (P2,s2,j)) . (intpos 9)
by A67, EXTPRO_1:4
;
(Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10)thus (Comput (P1,s1,j)) . (intpos 10) =
(Comput (P1,(Comput (P1,s1,4)),j1)) . (intpos 10)
by A67, EXTPRO_1:4
.=
(Comput (P2,(Comput (P2,s2,4)),j1)) . (intpos 10)
by A45, A57, A68
.=
(Comput (P2,s2,j)) . (intpos 10)
by A67, EXTPRO_1:4
;
verum end; suppose
j >= n + 5
;
( IC (Comput (P1,s1,b1)) = IC (Comput (P2,s2,b1)) & (Comput (P1,s1,b1)) . (intpos 9) = (Comput (P2,s2,b1)) . (intpos 9) & (Comput (P1,s1,b1)) . (intpos 10) = (Comput (P2,s2,b1)) . (intpos 10) )then consider j1 being
Nat such that A69:
j = (n + (1 + 4)) + j1
by NAT_1:10;
reconsider j1 =
j1 as
Nat ;
A70:
j = ((n + 1) + j1) + 4
by A69;
hence IC (Comput (P1,s1,j)) =
IC (Comput (P1,(Comput (P1,s1,4)),((n + 1) + j1)))
by EXTPRO_1:4
.=
IC (Comput (P2,(Comput (P2,s2,4)),(n + 1)))
by A50, A51, A54, EXTPRO_1:5, NAT_1:11
.=
IC (Comput (P2,(Comput (P2,s2,4)),((n + 1) + j1)))
by A55, EXTPRO_1:5, NAT_1:11
.=
IC (Comput (P2,s2,j))
by A70, EXTPRO_1:4
;
( (Comput (P1,s1,j)) . (intpos 9) = (Comput (P2,s2,j)) . (intpos 9) & (Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10) )thus (Comput (P1,s1,j)) . (intpos 9) =
(Comput (P1,(Comput (P1,s1,4)),((n + 1) + j1))) . (intpos 9)
by A70, EXTPRO_1:4
.=
(Comput (P2,(Comput (P2,s2,4)),(n + 1))) . (intpos 9)
by A51, A58, EXTPRO_1:5, NAT_1:11
.=
(Comput (P2,(Comput (P2,s2,4)),((n + 1) + j1))) . (intpos 9)
by A55, EXTPRO_1:5, NAT_1:11
.=
(Comput (P2,s2,j)) . (intpos 9)
by A70, EXTPRO_1:4
;
(Comput (P1,s1,j)) . (intpos 10) = (Comput (P2,s2,j)) . (intpos 10)thus (Comput (P1,s1,j)) . (intpos 10) =
(Comput (P1,(Comput (P1,s1,4)),((n + 1) + j1))) . (intpos 10)
by A70, EXTPRO_1:4
.=
(Comput (P2,(Comput (P2,s2,4)),(n + 1))) . (intpos 10)
by A51, A59, EXTPRO_1:5, NAT_1:11
.=
(Comput (P2,(Comput (P2,s2,4)),((n + 1) + j1))) . (intpos 10)
by A55, EXTPRO_1:5, NAT_1:11
.=
(Comput (P2,s2,j)) . (intpos 10)
by A70, EXTPRO_1:4
;
verum end; end; end;
set A = {(IC ),(intpos 9),(intpos 10)};
A71:
IC in dom (Initialize p)
by MEMSTR_0:48;
dom (DataPart (Initialize p)) =
dom (DataPart p)
by MEMSTR_0:45
.=
dom (DataPart p)
.=
{(intpos 9),(intpos 10)}
by A6, A4, MEMSTR_0:7
;
then A72: dom (Initialize p) =
{(IC )} \/ {(intpos 9),(intpos 10)}
by A71, MEMSTR_0:24
.=
{(IC ),(intpos 9),(intpos 10)}
by ENUMSET1:2
;
let k be Nat; (Comput (P1,s1,k)) | (dom (Initialize p)) = (Comput (P2,s2,k)) | (dom (Initialize p))
A73: (Comput (P1,s1,k)) . (IC ) =
IC (Comput (P1,s1,k))
.=
IC (Comput (P2,s2,k))
by A60
.=
(Comput (P2,s2,k)) . (IC )
;
A74:
(Comput (P1,s1,k)) . (intpos 9) = (Comput (P2,s2,k)) . (intpos 9)
by A60;
A75:
(Comput (P1,s1,k)) . (intpos 10) = (Comput (P2,s2,k)) . (intpos 10)
by A60;
dom (Comput (P1,s1,k)) =
the carrier of SCMPDS
by PARTFUN1:def 2
.=
dom (Comput (P2,s2,k))
by PARTFUN1:def 2
;
then
(Comput (P1,s1,k)) | {(IC ),(intpos 9),(intpos 10)} = (Comput (P2,s2,k)) | {(IC ),(intpos 9),(intpos 10)}
by A73, A74, A75, GRFUNC_1:31;
hence
(Comput (P1,s1,k)) | (dom (Initialize p)) = (Comput (P2,s2,k)) | (dom (Initialize p))
by A72; verum