IC in {(IC )}
by TARSKI:def 1;
then A1:
IC in SCM-Data-Loc \/ {(IC )}
by XBOOLE_0:def 3;
let s1, s2 be State of SCMPDS; ( s1 | (SCM-Data-Loc \/ {(IC )}) = s2 | (SCM-Data-Loc \/ {(IC )}) implies for l being Instruction of SCMPDS holds (Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )}) )
assume A2:
s1 | (SCM-Data-Loc \/ {(IC )}) = s2 | (SCM-Data-Loc \/ {(IC )})
; for l being Instruction of SCMPDS holds (Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
A3:
DataPart s1 = DataPart s2
by A2, RELAT_1:153, SCMPDS_2:84, XBOOLE_1:7;
A4:
SCM-Data-Loc \/ {(IC )} c= the carrier of SCMPDS
by AMI_3:1;
then
SCM-Data-Loc \/ {(IC )} c= dom s2
by PARTFUN1:def 2;
then A5:
IC in dom (s2 | (SCM-Data-Loc \/ {(IC )}))
by A1, RELAT_1:62;
SCM-Data-Loc \/ {(IC )} c= dom s1
by A4, PARTFUN1:def 2;
then
IC in dom (s1 | (SCM-Data-Loc \/ {(IC )}))
by A1, RELAT_1:62;
then A6: IC s1 =
(s2 | (SCM-Data-Loc \/ {(IC )})) . (IC )
by A2, FUNCT_1:47
.=
IC s2
by A5, FUNCT_1:47
;
let l be Instruction of SCMPDS; (Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
A7:
dom (Exec (l,s1)) = the carrier of SCMPDS
by PARTFUN1:def 2;
then A8:
dom (Exec (l,s1)) = dom (Exec (l,s2))
by PARTFUN1:def 2;
dom (Exec (l,s2)) = the carrier of SCMPDS
by PARTFUN1:def 2;
then A9:
dom (DataPart (Exec (l,s2))) = SCM-Data-Loc
by RELAT_1:62, SCMPDS_2:84;
A10:
dom (DataPart (Exec (l,s1))) = SCM-Data-Loc
by A7, RELAT_1:62, SCMPDS_2:84;
per cases
( InsCode l = 0 or InsCode l = 1 or InsCode l = 2 or InsCode l = 3 or InsCode l = 4 or InsCode l = 5 or InsCode l = 6 or InsCode l = 7 or InsCode l = 8 or InsCode l = 9 or InsCode l = 10 or InsCode l = 11 or InsCode l = 12 or InsCode l = 13 )
by NAT_1:37, SCMPDS_2:6;
suppose
InsCode l = 0
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider k1 being
Integer such that A11:
l = goto k1
by SCMPDS_2:26;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A12:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider a =
x as
Int_position by SCMPDS_2:3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . a
by A12, FUNCT_1:49, SCMPDS_2:84
.=
s1 . a
by A11, SCMPDS_2:54
.=
(DataPart s1) . a
by A12, FUNCT_1:49, SCMPDS_2:84
.=
s2 . a
by A3, A12, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . a
by A11, SCMPDS_2:54
.=
(DataPart (Exec (l,s2))) . x
by A12, FUNCT_1:49, SCMPDS_2:84
;
verum
end; then A13:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
ICplusConst (
s1,
k1)
by A11, SCMPDS_2:54
.=
ICplusConst (
s2,
k1)
by A6, Th2
.=
(Exec (l,s2)) . (IC )
by A11, SCMPDS_2:54
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A13, RELAT_1:150;
verum end; suppose
InsCode l = 1
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position such that A14:
l = return a
by SCMPDS_2:27;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A15:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
per cases
( b <> a or b = a )
;
suppose A16:
b <> a
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A15, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A14, A16, SCMPDS_2:58
.=
(DataPart s1) . b
by A15, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A15, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A14, A16, SCMPDS_2:58
.=
(DataPart (Exec (l,s2))) . x
by A15, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A17:
b = a
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A15, FUNCT_1:49, SCMPDS_2:84
.=
s1 . (DataLoc ((s1 . a),RetSP))
by A14, A17, SCMPDS_2:58
.=
s2 . (DataLoc ((s2 . a),RetSP))
by A3, Th3
.=
(Exec (l,s2)) . b
by A14, A17, SCMPDS_2:58
.=
(DataPart (Exec (l,s2))) . x
by A15, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A18:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
(abs (s1 . (DataLoc ((s1 . a),RetIC)))) + 2
by A14, SCMPDS_2:58
.=
(abs (s2 . (DataLoc ((s2 . a),RetIC)))) + 2
by A3, Th3
.=
(Exec (l,s2)) . (IC )
by A14, SCMPDS_2:58
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A18, RELAT_1:150;
verum end; suppose
InsCode l = 2
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1 being
Integer such that A19:
l = a := k1
by SCMPDS_2:28;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A20:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
per cases
( b <> a or b = a )
;
suppose A21:
b <> a
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A20, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A19, A21, SCMPDS_2:45
.=
(DataPart s1) . b
by A20, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A20, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A19, A21, SCMPDS_2:45
.=
(DataPart (Exec (l,s2))) . x
by A20, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A22:
b = a
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A20, FUNCT_1:49, SCMPDS_2:84
.=
k1
by A19, A22, SCMPDS_2:45
.=
(Exec (l,s2)) . b
by A19, A22, SCMPDS_2:45
.=
(DataPart (Exec (l,s2))) . x
by A20, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A23:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A19, SCMPDS_2:45
.=
(Exec (l,s2)) . (IC )
by A19, SCMPDS_2:45
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A23, RELAT_1:150;
verum end; suppose
InsCode l = 3
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1 being
Integer such that A24:
l = saveIC (
a,
k1)
by SCMPDS_2:29;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A25:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
per cases
( b <> DataLoc ((s1 . a),k1) or b = DataLoc ((s1 . a),k1) )
;
suppose A26:
b <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A27:
b <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A25, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A24, A26, SCMPDS_2:59
.=
(DataPart s1) . b
by A25, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A25, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A24, A27, SCMPDS_2:59
.=
(DataPart (Exec (l,s2))) . x
by A25, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A28:
b = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A29:
b = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A25, FUNCT_1:49, SCMPDS_2:84
.=
IC s2
by A6, A24, A28, SCMPDS_2:59
.=
(Exec (l,s2)) . b
by A24, A29, SCMPDS_2:59
.=
(DataPart (Exec (l,s2))) . x
by A25, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A30:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A24, SCMPDS_2:59
.=
(Exec (l,s2)) . (IC )
by A24, SCMPDS_2:59
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A30, RELAT_1:150;
verum end; suppose
InsCode l = 4
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1,
k2 being
Integer such that A31:
l = (
a,
k1)
<>0_goto k2
by SCMPDS_2:30;
now per cases
( s1 . (DataLoc ((s1 . a),k1)) <> 0 or s1 . (DataLoc ((s1 . a),k1)) = 0 )
;
suppose A32:
s1 . (DataLoc ((s1 . a),k1)) <> 0
;
(Exec (l,s1)) . (IC ) = (Exec (l,s2)) . (IC )then A33:
s2 . (DataLoc ((s2 . a),k1)) <> 0
by A3, Th3;
thus (Exec (l,s1)) . (IC ) =
ICplusConst (
s1,
k2)
by A31, A32, SCMPDS_2:55
.=
ICplusConst (
s2,
k2)
by A6, Th2
.=
(Exec (l,s2)) . (IC )
by A31, A33, SCMPDS_2:55
;
verum end; end; end; then A36:
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A37:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A37, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A31, SCMPDS_2:55
.=
(DataPart s1) . b
by A37, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A37, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A31, SCMPDS_2:55
.=
(DataPart (Exec (l,s2))) . x
by A37, FUNCT_1:49, SCMPDS_2:84
;
verum
end; then
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A36, RELAT_1:150;
verum end; suppose
InsCode l = 5
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1,
k2 being
Integer such that A38:
l = (
a,
k1)
<=0_goto k2
by SCMPDS_2:31;
now per cases
( s1 . (DataLoc ((s1 . a),k1)) <= 0 or s1 . (DataLoc ((s1 . a),k1)) > 0 )
;
suppose A39:
s1 . (DataLoc ((s1 . a),k1)) <= 0
;
(Exec (l,s1)) . (IC ) = (Exec (l,s2)) . (IC )then A40:
s2 . (DataLoc ((s2 . a),k1)) <= 0
by A3, Th3;
thus (Exec (l,s1)) . (IC ) =
ICplusConst (
s1,
k2)
by A38, A39, SCMPDS_2:56
.=
ICplusConst (
s2,
k2)
by A6, Th2
.=
(Exec (l,s2)) . (IC )
by A38, A40, SCMPDS_2:56
;
verum end; end; end; then A43:
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A44:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A44, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A38, SCMPDS_2:56
.=
(DataPart s1) . b
by A44, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A44, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A38, SCMPDS_2:56
.=
(DataPart (Exec (l,s2))) . x
by A44, FUNCT_1:49, SCMPDS_2:84
;
verum
end; then
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A43, RELAT_1:150;
verum end; suppose
InsCode l = 6
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1,
k2 being
Integer such that A45:
l = (
a,
k1)
>=0_goto k2
by SCMPDS_2:32;
now per cases
( s1 . (DataLoc ((s1 . a),k1)) >= 0 or s1 . (DataLoc ((s1 . a),k1)) < 0 )
;
suppose A46:
s1 . (DataLoc ((s1 . a),k1)) >= 0
;
(Exec (l,s1)) . (IC ) = (Exec (l,s2)) . (IC )then A47:
s2 . (DataLoc ((s2 . a),k1)) >= 0
by A3, Th3;
thus (Exec (l,s1)) . (IC ) =
ICplusConst (
s1,
k2)
by A45, A46, SCMPDS_2:57
.=
ICplusConst (
s2,
k2)
by A6, Th2
.=
(Exec (l,s2)) . (IC )
by A45, A47, SCMPDS_2:57
;
verum end; end; end; then A50:
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A51:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A51, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A45, SCMPDS_2:57
.=
(DataPart s1) . b
by A51, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A51, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A45, SCMPDS_2:57
.=
(DataPart (Exec (l,s2))) . x
by A51, FUNCT_1:49, SCMPDS_2:84
;
verum
end; then
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A50, RELAT_1:150;
verum end; suppose
InsCode l = 7
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1,
k2 being
Integer such that A52:
l = (
a,
k1)
:= k2
by SCMPDS_2:33;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A53:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
per cases
( b <> DataLoc ((s1 . a),k1) or b = DataLoc ((s1 . a),k1) )
;
suppose A54:
b <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A55:
b <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A53, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A52, A54, SCMPDS_2:46
.=
(DataPart s1) . b
by A53, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A53, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A52, A55, SCMPDS_2:46
.=
(DataPart (Exec (l,s2))) . x
by A53, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A56:
b = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A57:
b = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A53, FUNCT_1:49, SCMPDS_2:84
.=
k2
by A52, A56, SCMPDS_2:46
.=
(Exec (l,s2)) . b
by A52, A57, SCMPDS_2:46
.=
(DataPart (Exec (l,s2))) . x
by A53, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A58:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A52, SCMPDS_2:46
.=
(Exec (l,s2)) . (IC )
by A52, SCMPDS_2:46
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A58, RELAT_1:150;
verum end; suppose
InsCode l = 8
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a being
Int_position ,
k1,
k2 being
Integer such that A59:
l = AddTo (
a,
k1,
k2)
by SCMPDS_2:34;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A60:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider b =
x as
Int_position by SCMPDS_2:3;
per cases
( b <> DataLoc ((s1 . a),k1) or b = DataLoc ((s1 . a),k1) )
;
suppose A61:
b <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A62:
b <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A60, FUNCT_1:49, SCMPDS_2:84
.=
s1 . b
by A59, A61, SCMPDS_2:48
.=
(DataPart s1) . b
by A60, FUNCT_1:49, SCMPDS_2:84
.=
s2 . b
by A3, A60, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . b
by A59, A62, SCMPDS_2:48
.=
(DataPart (Exec (l,s2))) . x
by A60, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A63:
b = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A64:
b = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . b
by A60, FUNCT_1:49, SCMPDS_2:84
.=
(s1 . (DataLoc ((s1 . a),k1))) + k2
by A59, A63, SCMPDS_2:48
.=
(s2 . (DataLoc ((s2 . a),k1))) + k2
by A3, Th3
.=
(Exec (l,s2)) . b
by A59, A64, SCMPDS_2:48
.=
(DataPart (Exec (l,s2))) . x
by A60, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A65:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A59, SCMPDS_2:48
.=
(Exec (l,s2)) . (IC )
by A59, SCMPDS_2:48
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A65, RELAT_1:150;
verum end; suppose
InsCode l = 9
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a,
b being
Int_position ,
k1,
k2 being
Integer such that A66:
l = AddTo (
a,
k1,
b,
k2)
by SCMPDS_2:35;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A67:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider c =
x as
Int_position by SCMPDS_2:3;
per cases
( c <> DataLoc ((s1 . a),k1) or c = DataLoc ((s1 . a),k1) )
;
suppose A68:
c <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A69:
c <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A67, FUNCT_1:49, SCMPDS_2:84
.=
s1 . c
by A66, A68, SCMPDS_2:49
.=
(DataPart s1) . c
by A67, FUNCT_1:49, SCMPDS_2:84
.=
s2 . c
by A3, A67, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . c
by A66, A69, SCMPDS_2:49
.=
(DataPart (Exec (l,s2))) . x
by A67, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A70:
c = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A71:
c = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A67, FUNCT_1:49, SCMPDS_2:84
.=
(s1 . (DataLoc ((s1 . a),k1))) + (s1 . (DataLoc ((s1 . b),k2)))
by A66, A70, SCMPDS_2:49
.=
(s2 . (DataLoc ((s2 . a),k1))) + (s1 . (DataLoc ((s1 . b),k2)))
by A3, Th3
.=
(s2 . (DataLoc ((s2 . a),k1))) + (s2 . (DataLoc ((s2 . b),k2)))
by A3, Th3
.=
(Exec (l,s2)) . c
by A66, A71, SCMPDS_2:49
.=
(DataPart (Exec (l,s2))) . x
by A67, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A72:
(Exec (l,s1)) | SCM-Data-Loc = (Exec (l,s2)) | SCM-Data-Loc
by A10, A9, FUNCT_1:2, SCMPDS_2:84;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A66, SCMPDS_2:49
.=
(Exec (l,s2)) . (IC )
by A66, SCMPDS_2:49
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A72, RELAT_1:150;
verum end; suppose
InsCode l = 10
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a,
b being
Int_position ,
k1,
k2 being
Integer such that A73:
l = SubFrom (
a,
k1,
b,
k2)
by SCMPDS_2:36;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A74:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider c =
x as
Int_position by SCMPDS_2:3;
per cases
( c <> DataLoc ((s1 . a),k1) or c = DataLoc ((s1 . a),k1) )
;
suppose A75:
c <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A76:
c <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A74, FUNCT_1:49, SCMPDS_2:84
.=
s1 . c
by A73, A75, SCMPDS_2:50
.=
(DataPart s1) . c
by A74, FUNCT_1:49, SCMPDS_2:84
.=
s2 . c
by A3, A74, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . c
by A73, A76, SCMPDS_2:50
.=
(DataPart (Exec (l,s2))) . x
by A74, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A77:
c = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A78:
c = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A74, FUNCT_1:49, SCMPDS_2:84
.=
(s1 . (DataLoc ((s1 . a),k1))) - (s1 . (DataLoc ((s1 . b),k2)))
by A73, A77, SCMPDS_2:50
.=
(s2 . (DataLoc ((s2 . a),k1))) - (s1 . (DataLoc ((s1 . b),k2)))
by A3, Th3
.=
(s2 . (DataLoc ((s2 . a),k1))) - (s2 . (DataLoc ((s2 . b),k2)))
by A3, Th3
.=
(Exec (l,s2)) . c
by A73, A78, SCMPDS_2:50
.=
(DataPart (Exec (l,s2))) . x
by A74, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A79:
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A10, A9, FUNCT_1:2;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A73, SCMPDS_2:50
.=
(Exec (l,s2)) . (IC )
by A73, SCMPDS_2:50
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A79, RELAT_1:150, SCMPDS_2:84;
verum end; suppose
InsCode l = 11
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a,
b being
Int_position ,
k1,
k2 being
Integer such that A80:
l = MultBy (
a,
k1,
b,
k2)
by SCMPDS_2:37;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A81:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider c =
x as
Int_position by SCMPDS_2:3;
per cases
( c <> DataLoc ((s1 . a),k1) or c = DataLoc ((s1 . a),k1) )
;
suppose A82:
c <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A83:
c <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A81, FUNCT_1:49, SCMPDS_2:84
.=
s1 . c
by A80, A82, SCMPDS_2:51
.=
(DataPart s1) . c
by A81, FUNCT_1:49, SCMPDS_2:84
.=
s2 . c
by A3, A81, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . c
by A80, A83, SCMPDS_2:51
.=
(DataPart (Exec (l,s2))) . x
by A81, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A84:
c = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A85:
c = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A81, FUNCT_1:49, SCMPDS_2:84
.=
(s1 . (DataLoc ((s1 . a),k1))) * (s1 . (DataLoc ((s1 . b),k2)))
by A80, A84, SCMPDS_2:51
.=
(s2 . (DataLoc ((s2 . a),k1))) * (s1 . (DataLoc ((s1 . b),k2)))
by A3, Th3
.=
(s2 . (DataLoc ((s2 . a),k1))) * (s2 . (DataLoc ((s2 . b),k2)))
by A3, Th3
.=
(Exec (l,s2)) . c
by A80, A85, SCMPDS_2:51
.=
(DataPart (Exec (l,s2))) . x
by A81, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A86:
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A10, A9, FUNCT_1:2;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A80, SCMPDS_2:51
.=
(Exec (l,s2)) . (IC )
by A80, SCMPDS_2:51
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A86, RELAT_1:150, SCMPDS_2:84;
verum end; suppose
InsCode l = 12
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a,
b being
Int_position ,
k1,
k2 being
Integer such that A87:
l = Divide (
a,
k1,
b,
k2)
by SCMPDS_2:38;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A88:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider c =
x as
Int_position by SCMPDS_2:3;
per cases
( c = DataLoc ((s1 . b),k2) or c <> DataLoc ((s1 . b),k2) )
;
suppose A89:
c = DataLoc (
(s1 . b),
k2)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A90:
c = DataLoc (
(s2 . b),
k2)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A88, FUNCT_1:49, SCMPDS_2:84
.=
(s1 . (DataLoc ((s1 . a),k1))) mod (s1 . (DataLoc ((s1 . b),k2)))
by A87, A89, SCMPDS_2:52
.=
(s2 . (DataLoc ((s2 . a),k1))) mod (s1 . (DataLoc ((s1 . b),k2)))
by A3, Th3
.=
(s2 . (DataLoc ((s2 . a),k1))) mod (s2 . (DataLoc ((s2 . b),k2)))
by A3, Th3
.=
(Exec (l,s2)) . c
by A87, A90, SCMPDS_2:52
.=
(DataPart (Exec (l,s2))) . x
by A88, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A91:
c <> DataLoc (
(s1 . b),
k2)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A92:
c <> DataLoc (
(s2 . b),
k2)
by A3, Th4;
hereby verum
per cases
( c <> DataLoc ((s1 . a),k1) or c = DataLoc ((s1 . a),k1) )
;
suppose A93:
c <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A94:
c <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A88, FUNCT_1:49, SCMPDS_2:84
.=
s1 . c
by A87, A91, A93, SCMPDS_2:52
.=
s2 . c
by A3, Th4
.=
(Exec (l,s2)) . c
by A87, A92, A94, SCMPDS_2:52
.=
(DataPart (Exec (l,s2))) . x
by A88, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A95:
c = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A96:
c = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A88, FUNCT_1:49, SCMPDS_2:84
.=
(s1 . (DataLoc ((s1 . a),k1))) div (s1 . (DataLoc ((s1 . b),k2)))
by A87, A91, A95, SCMPDS_2:52
.=
(s2 . (DataLoc ((s2 . a),k1))) div (s1 . (DataLoc ((s1 . b),k2)))
by A3, Th3
.=
(s2 . (DataLoc ((s2 . a),k1))) div (s2 . (DataLoc ((s2 . b),k2)))
by A3, Th3
.=
(Exec (l,s2)) . c
by A87, A92, A96, SCMPDS_2:52
.=
(DataPart (Exec (l,s2))) . x
by A88, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; end; end;
end; then A97:
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A10, A9, FUNCT_1:2;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A87, SCMPDS_2:52
.=
(Exec (l,s2)) . (IC )
by A87, SCMPDS_2:52
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A97, RELAT_1:150, SCMPDS_2:84;
verum end; suppose
InsCode l = 13
;
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})then consider a,
b being
Int_position ,
k1,
k2 being
Integer such that A98:
l = (
a,
k1)
:= (
b,
k2)
by SCMPDS_2:39;
for
x being
set st
x in SCM-Data-Loc holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in SCM-Data-Loc implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A99:
x in SCM-Data-Loc
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider c =
x as
Int_position by SCMPDS_2:3;
per cases
( c <> DataLoc ((s1 . a),k1) or c = DataLoc ((s1 . a),k1) )
;
suppose A100:
c <> DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A101:
c <> DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A99, FUNCT_1:49, SCMPDS_2:84
.=
s1 . c
by A98, A100, SCMPDS_2:47
.=
(DataPart s1) . c
by A99, FUNCT_1:49, SCMPDS_2:84
.=
s2 . c
by A3, A99, FUNCT_1:49, SCMPDS_2:84
.=
(Exec (l,s2)) . c
by A98, A101, SCMPDS_2:47
.=
(DataPart (Exec (l,s2))) . x
by A99, FUNCT_1:49, SCMPDS_2:84
;
verum end; suppose A102:
c = DataLoc (
(s1 . a),
k1)
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . xthen A103:
c = DataLoc (
(s2 . a),
k1)
by A3, Th4;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . c
by A99, FUNCT_1:49, SCMPDS_2:84
.=
s1 . (DataLoc ((s1 . b),k2))
by A98, A102, SCMPDS_2:47
.=
s2 . (DataLoc ((s2 . b),k2))
by A3, Th3
.=
(Exec (l,s2)) . c
by A98, A103, SCMPDS_2:47
.=
(DataPart (Exec (l,s2))) . x
by A99, FUNCT_1:49, SCMPDS_2:84
;
verum end; end;
end; then A104:
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A10, A9, FUNCT_1:2;
(Exec (l,s1)) . (IC ) =
succ (IC s2)
by A6, A98, SCMPDS_2:47
.=
(Exec (l,s2)) . (IC )
by A98, SCMPDS_2:47
;
then
(Exec (l,s1)) | {(IC )} = (Exec (l,s2)) | {(IC )}
by A8, GRFUNC_1:29;
hence
(Exec (l,s1)) | (SCM-Data-Loc \/ {(IC )}) = (Exec (l,s2)) | (SCM-Data-Loc \/ {(IC )})
by A104, RELAT_1:150, SCMPDS_2:84;
verum end; end;