IC SCM in {(IC SCM)}
by TARSKI:def 1;
then A1:
IC SCM in (Data-Locations SCM) \/ {(IC SCM)}
by XBOOLE_0:def 3;
let s1, s2 be State of SCM; ( s1 | ((Data-Locations SCM) \/ {(IC SCM)}) = s2 | ((Data-Locations SCM) \/ {(IC SCM)}) implies for l being Instruction of SCM holds (Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)}) )
assume A2:
s1 | ((Data-Locations SCM) \/ {(IC SCM)}) = s2 | ((Data-Locations SCM) \/ {(IC SCM)})
; for l being Instruction of SCM holds (Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
A3:
(Data-Locations SCM) \/ {(IC SCM)} c= the carrier of SCM
by AMI_3:4, AMI_3:72, XBOOLE_1:7;
then
(Data-Locations SCM) \/ {(IC SCM)} c= dom s2
by PARTFUN1:def 4;
then A4:
IC SCM in dom (s2 | ((Data-Locations SCM) \/ {(IC SCM)}))
by A1, RELAT_1:91;
(Data-Locations SCM) \/ {(IC SCM)} c= dom s1
by A3, PARTFUN1:def 4;
then
IC SCM in dom (s1 | ((Data-Locations SCM) \/ {(IC SCM)}))
by A1, RELAT_1:91;
then A5: IC s1 =
(s2 | ((Data-Locations SCM) \/ {(IC SCM)})) . (IC SCM)
by A2, FUNCT_1:70
.=
IC s2
by A4, FUNCT_1:70
;
let l be Instruction of SCM; (Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
A6:
( dom (Exec (l,s1)) = the carrier of SCM & dom (Exec (l,s2)) = the carrier of SCM )
by PARTFUN1:def 4;
A7:
Data-Locations SCM c= (Data-Locations SCM) \/ {(IC SCM)}
by XBOOLE_1:7;
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 )
by Th36, NAT_1:33;
suppose
InsCode l = 1
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider da,
db being
Data-Location such that A9:
l = da := db
by Th47;
A10:
for
x being
set st
x in (Data-Locations SCM) \ {da} holds
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
proof
let x be
set ;
( x in (Data-Locations SCM) \ {da} implies ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x )
assume A11:
x in (Data-Locations SCM) \ {da}
;
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
then A12:
x in Data-Locations SCM
by XBOOLE_0:def 5;
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A13:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A12, XBOOLE_0:def 3;
not
x in {da}
by A11, XBOOLE_0:def 5;
then A14:
a <> da
by TARSKI:def 1;
thus ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x =
(Exec (l,s1)) . a
by A11, FUNCT_1:72
.=
s1 . a
by A9, A14, AMI_3:8
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A13, FUNCT_1:72
.=
s2 . a
by A2, A13, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A9, A14, AMI_3:8
.=
((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
by A11, FUNCT_1:72
;
verum
end;
(
dom ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} &
dom ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} )
by A6, RELAT_1:91;
then A15:
(Exec (l,s1)) | ((Data-Locations SCM) \ {da}) = (Exec (l,s2)) | ((Data-Locations SCM) \ {da})
by A10, FUNCT_1:9;
A16:
db in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
(Exec (l,s1)) . (IC SCM) =
succ (IC s1)
by A9, AMI_3:8
.=
(Exec (l,s2)) . (IC SCM)
by A5, A9, AMI_3:8
;
then A17:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A18:
Data-Locations SCM =
(Data-Locations SCM) \/ {da}
by ZFMISC_1:46
.=
((Data-Locations SCM) \ {da}) \/ {da}
by XBOOLE_1:39
;
(Exec (l,s1)) . da =
s1 . db
by A9, AMI_3:8
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . db
by A7, A16, FUNCT_1:72
.=
s2 . db
by A2, A7, A16, FUNCT_1:72
.=
(Exec (l,s2)) . da
by A9, AMI_3:8
;
then
(Exec (l,s1)) | {da} = (Exec (l,s2)) | {da}
by A6, GRFUNC_1:90;
then
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A18, A15, RELAT_1:185;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A17, RELAT_1:185;
verum end; suppose
InsCode l = 2
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider da,
db being
Data-Location such that A19:
l = AddTo (
da,
db)
by Th48;
A20:
for
x being
set st
x in (Data-Locations SCM) \ {da} holds
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
proof
let x be
set ;
( x in (Data-Locations SCM) \ {da} implies ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x )
assume A21:
x in (Data-Locations SCM) \ {da}
;
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
then A22:
x in Data-Locations SCM
by XBOOLE_0:def 5;
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A23:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A22, XBOOLE_0:def 3;
not
x in {da}
by A21, XBOOLE_0:def 5;
then A24:
a <> da
by TARSKI:def 1;
thus ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x =
(Exec (l,s1)) . a
by A21, FUNCT_1:72
.=
s1 . a
by A19, A24, AMI_3:9
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A23, FUNCT_1:72
.=
s2 . a
by A2, A23, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A19, A24, AMI_3:9
.=
((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
by A21, FUNCT_1:72
;
verum
end;
(
dom ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} &
dom ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} )
by A6, RELAT_1:91;
then A25:
(Exec (l,s1)) | ((Data-Locations SCM) \ {da}) = (Exec (l,s2)) | ((Data-Locations SCM) \ {da})
by A20, FUNCT_1:9;
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A26:
Data-Locations SCM =
(Data-Locations SCM) \/ {da}
by ZFMISC_1:46
.=
((Data-Locations SCM) \ {da}) \/ {da}
by XBOOLE_1:39
;
(Exec (l,s1)) . (IC SCM) =
succ (IC s1)
by A19, AMI_3:9
.=
(Exec (l,s2)) . (IC SCM)
by A5, A19, AMI_3:9
;
then A27:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A28:
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A29:
s1 . da =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . da
by A7, FUNCT_1:72
.=
s2 . da
by A2, A7, A28, FUNCT_1:72
;
A30:
db in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A31:
s1 . db =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . db
by A7, FUNCT_1:72
.=
s2 . db
by A2, A7, A30, FUNCT_1:72
;
(Exec (l,s1)) . da =
(s1 . da) + (s1 . db)
by A19, AMI_3:9
.=
(Exec (l,s2)) . da
by A19, A29, A31, AMI_3:9
;
then
(Exec (l,s1)) | {da} = (Exec (l,s2)) | {da}
by A6, GRFUNC_1:90;
then
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A26, A25, RELAT_1:185;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A27, RELAT_1:185;
verum end; suppose
InsCode l = 3
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider da,
db being
Data-Location such that A32:
l = SubFrom (
da,
db)
by Th49;
A33:
for
x being
set st
x in (Data-Locations SCM) \ {da} holds
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
proof
let x be
set ;
( x in (Data-Locations SCM) \ {da} implies ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x )
assume A34:
x in (Data-Locations SCM) \ {da}
;
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
then A35:
x in Data-Locations SCM
by XBOOLE_0:def 5;
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A36:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A35, XBOOLE_0:def 3;
not
x in {da}
by A34, XBOOLE_0:def 5;
then A37:
a <> da
by TARSKI:def 1;
thus ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x =
(Exec (l,s1)) . a
by A34, FUNCT_1:72
.=
s1 . a
by A32, A37, AMI_3:10
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A36, FUNCT_1:72
.=
s2 . a
by A2, A36, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A32, A37, AMI_3:10
.=
((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
by A34, FUNCT_1:72
;
verum
end;
(
dom ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} &
dom ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} )
by A6, RELAT_1:91;
then A38:
(Exec (l,s1)) | ((Data-Locations SCM) \ {da}) = (Exec (l,s2)) | ((Data-Locations SCM) \ {da})
by A33, FUNCT_1:9;
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A39:
Data-Locations SCM =
(Data-Locations SCM) \/ {da}
by ZFMISC_1:46
.=
((Data-Locations SCM) \ {da}) \/ {da}
by XBOOLE_1:39
;
(Exec (l,s1)) . (IC SCM) =
succ (IC s1)
by A32, AMI_3:10
.=
(Exec (l,s2)) . (IC SCM)
by A5, A32, AMI_3:10
;
then A40:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A41:
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A42:
s1 . da =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . da
by A7, FUNCT_1:72
.=
s2 . da
by A2, A7, A41, FUNCT_1:72
;
A43:
db in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A44:
s1 . db =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . db
by A7, FUNCT_1:72
.=
s2 . db
by A2, A7, A43, FUNCT_1:72
;
(Exec (l,s1)) . da =
(s1 . da) - (s1 . db)
by A32, AMI_3:10
.=
(Exec (l,s2)) . da
by A32, A42, A44, AMI_3:10
;
then
(Exec (l,s1)) | {da} = (Exec (l,s2)) | {da}
by A6, GRFUNC_1:90;
then
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A39, A38, RELAT_1:185;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A40, RELAT_1:185;
verum end; suppose
InsCode l = 4
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider da,
db being
Data-Location such that A45:
l = MultBy (
da,
db)
by Th50;
A46:
for
x being
set st
x in (Data-Locations SCM) \ {da} holds
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
proof
let x be
set ;
( x in (Data-Locations SCM) \ {da} implies ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x )
assume A47:
x in (Data-Locations SCM) \ {da}
;
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
then A48:
x in Data-Locations SCM
by XBOOLE_0:def 5;
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A49:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A48, XBOOLE_0:def 3;
not
x in {da}
by A47, XBOOLE_0:def 5;
then A50:
a <> da
by TARSKI:def 1;
thus ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x =
(Exec (l,s1)) . a
by A47, FUNCT_1:72
.=
s1 . a
by A45, A50, AMI_3:11
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A49, FUNCT_1:72
.=
s2 . a
by A2, A49, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A45, A50, AMI_3:11
.=
((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
by A47, FUNCT_1:72
;
verum
end;
(
dom ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} &
dom ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} )
by A6, RELAT_1:91;
then A51:
(Exec (l,s1)) | ((Data-Locations SCM) \ {da}) = (Exec (l,s2)) | ((Data-Locations SCM) \ {da})
by A46, FUNCT_1:9;
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A52:
Data-Locations SCM =
(Data-Locations SCM) \/ {da}
by ZFMISC_1:46
.=
((Data-Locations SCM) \ {da}) \/ {da}
by XBOOLE_1:39
;
(Exec (l,s1)) . (IC SCM) =
succ (IC s1)
by A45, AMI_3:11
.=
(Exec (l,s2)) . (IC SCM)
by A5, A45, AMI_3:11
;
then A53:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A54:
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A55:
s1 . da =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . da
by A7, FUNCT_1:72
.=
s2 . da
by A2, A7, A54, FUNCT_1:72
;
A56:
db in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A57:
s1 . db =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . db
by A7, FUNCT_1:72
.=
s2 . db
by A2, A7, A56, FUNCT_1:72
;
(Exec (l,s1)) . da =
(s1 . da) * (s1 . db)
by A45, AMI_3:11
.=
(Exec (l,s2)) . da
by A45, A55, A57, AMI_3:11
;
then
(Exec (l,s1)) | {da} = (Exec (l,s2)) | {da}
by A6, GRFUNC_1:90;
then
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A52, A51, RELAT_1:185;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A53, RELAT_1:185;
verum end; suppose
InsCode l = 5
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider da,
db being
Data-Location such that A58:
l = Divide (
da,
db)
by Th51;
thus
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
verumproof
per cases
( da = db or da <> db )
;
suppose A59:
da = db
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})A60:
for
x being
set st
x in (Data-Locations SCM) \ {da} holds
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
proof
let x be
set ;
( x in (Data-Locations SCM) \ {da} implies ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x )
assume A61:
x in (Data-Locations SCM) \ {da}
;
((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
then A62:
x in Data-Locations SCM
by XBOOLE_0:def 5;
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A63:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A62, XBOOLE_0:def 3;
not
x in {da}
by A61, XBOOLE_0:def 5;
then A64:
a <> da
by TARSKI:def 1;
thus ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) . x =
(Exec (l,s1)) . a
by A61, FUNCT_1:72
.=
s1 . a
by A58, A59, A64, AMI_3:12
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A63, FUNCT_1:72
.=
s2 . a
by A2, A63, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A58, A59, A64, AMI_3:12
.=
((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) . x
by A61, FUNCT_1:72
;
verum
end;
(
dom ((Exec (l,s1)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} &
dom ((Exec (l,s2)) | ((Data-Locations SCM) \ {da})) = (Data-Locations SCM) \ {da} )
by A6, RELAT_1:91;
then A65:
(Exec (l,s1)) | ((Data-Locations SCM) \ {da}) = (Exec (l,s2)) | ((Data-Locations SCM) \ {da})
by A60, FUNCT_1:9;
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A66:
Data-Locations SCM =
(Data-Locations SCM) \/ {da}
by ZFMISC_1:46
.=
((Data-Locations SCM) \ {da}) \/ {da}
by XBOOLE_1:39
;
(Exec (l,s1)) . (IC SCM) =
succ (IC s1)
by A58, AMI_3:12
.=
(Exec (l,s2)) . (IC SCM)
by A5, A58, AMI_3:12
;
then A67:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A68:
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A69:
s1 . da =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . da
by A7, FUNCT_1:72
.=
s2 . da
by A2, A7, A68, FUNCT_1:72
;
(Exec (l,s1)) . da =
(s1 . da) mod (s1 . da)
by A58, A59, AMI_3:12
.=
(Exec (l,s2)) . da
by A58, A59, A69, AMI_3:12
;
then
(Exec (l,s1)) | {da} = (Exec (l,s2)) | {da}
by A6, GRFUNC_1:90;
then
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A66, A65, RELAT_1:185;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A67, RELAT_1:185;
verum end; suppose A70:
da <> db
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})(Exec (l,s1)) . (IC SCM) =
succ (IC s1)
by A58, AMI_3:12
.=
(Exec (l,s2)) . (IC SCM)
by A5, A58, AMI_3:12
;
then A71:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A72:
db in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A73:
s1 . db =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . db
by A7, FUNCT_1:72
.=
s2 . db
by A2, A7, A72, FUNCT_1:72
;
A74:
for
x being
set st
x in (Data-Locations SCM) \ {da,db} holds
((Exec (l,s1)) | ((Data-Locations SCM) \ {da,db})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da,db})) . x
proof
let x be
set ;
( x in (Data-Locations SCM) \ {da,db} implies ((Exec (l,s1)) | ((Data-Locations SCM) \ {da,db})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da,db})) . x )
assume A75:
x in (Data-Locations SCM) \ {da,db}
;
((Exec (l,s1)) | ((Data-Locations SCM) \ {da,db})) . x = ((Exec (l,s2)) | ((Data-Locations SCM) \ {da,db})) . x
then A76:
x in Data-Locations SCM
by XBOOLE_0:def 5;
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A77:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A76, XBOOLE_0:def 3;
not
x in {da,db}
by A75, XBOOLE_0:def 5;
then A78:
(
a <> da &
a <> db )
by TARSKI:def 2;
thus ((Exec (l,s1)) | ((Data-Locations SCM) \ {da,db})) . x =
(Exec (l,s1)) . a
by A75, FUNCT_1:72
.=
s1 . a
by A58, A78, AMI_3:12
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A77, FUNCT_1:72
.=
s2 . a
by A2, A77, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A58, A78, AMI_3:12
.=
((Exec (l,s2)) | ((Data-Locations SCM) \ {da,db})) . x
by A75, FUNCT_1:72
;
verum
end;
(
dom ((Exec (l,s1)) | ((Data-Locations SCM) \ {da,db})) = (Data-Locations SCM) \ {da,db} &
dom ((Exec (l,s2)) | ((Data-Locations SCM) \ {da,db})) = (Data-Locations SCM) \ {da,db} )
by A6, RELAT_1:91;
then A79:
(Exec (l,s1)) | ((Data-Locations SCM) \ {da,db}) = (Exec (l,s2)) | ((Data-Locations SCM) \ {da,db})
by A74, FUNCT_1:9;
(
da in Data-Locations SCM &
db in Data-Locations SCM )
by AMI_3:72, AMI_3:def 2;
then A80:
Data-Locations SCM =
(Data-Locations SCM) \/ {da,db}
by ZFMISC_1:48
.=
((Data-Locations SCM) \ {da,db}) \/ {da,db}
by XBOOLE_1:39
;
A81:
da in Data-Locations SCM
by AMI_3:72, AMI_3:def 2;
then A82:
s1 . da =
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . da
by A7, FUNCT_1:72
.=
s2 . da
by A2, A7, A81, FUNCT_1:72
;
A83:
(Exec (l,s1)) . db =
(s1 . da) mod (s1 . db)
by A58, AMI_3:12
.=
(Exec (l,s2)) . db
by A58, A82, A73, AMI_3:12
;
(Exec (l,s1)) . da =
(s1 . da) div (s1 . db)
by A58, A70, AMI_3:12
.=
(Exec (l,s2)) . da
by A58, A70, A82, A73, AMI_3:12
;
then
(Exec (l,s1)) | {da,db} = (Exec (l,s2)) | {da,db}
by A6, A83, GRFUNC_1:91;
then
DataPart (Exec (l,s1)) = DataPart (Exec (l,s2))
by A80, A79, RELAT_1:185;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A71, RELAT_1:185;
verum end; end;
end; end; suppose
InsCode l = 6
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider loc being
Element of
NAT such that A84:
l = SCM-goto loc
by Th52;
A85:
for
x being
set st
x in Data-Locations SCM holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in Data-Locations SCM implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A86:
x in Data-Locations SCM
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A87:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A86, XBOOLE_0:def 3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . a
by A86, FUNCT_1:72
.=
s1 . a
by A84, AMI_3:13
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A87, FUNCT_1:72
.=
s2 . a
by A2, A87, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A84, AMI_3:13
.=
(DataPart (Exec (l,s2))) . x
by A86, FUNCT_1:72
;
verum
end; (Exec (l,s1)) . (IC SCM) =
loc
by A84, AMI_3:13
.=
(Exec (l,s2)) . (IC SCM)
by A84, AMI_3:13
;
then A88:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
(
dom (DataPart (Exec (l,s1))) = Data-Locations SCM &
dom (DataPart (Exec (l,s2))) = Data-Locations SCM )
by A6, RELAT_1:91;
then
(Exec (l,s1)) | (Data-Locations SCM) = (Exec (l,s2)) | (Data-Locations SCM)
by A85, FUNCT_1:9;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A88, RELAT_1:185;
verum end; suppose
InsCode l = 7
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider loc being
Element of
NAT ,
da being
Data-Location such that A89:
l = da =0_goto loc
by Th53;
(Exec (l,s1)) . (IC SCM) = (Exec (l,s2)) . (IC SCM)
then A94:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A95:
for
x being
set st
x in Data-Locations SCM holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in Data-Locations SCM implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A96:
x in Data-Locations SCM
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A97:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A96, XBOOLE_0:def 3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . a
by A96, FUNCT_1:72
.=
s1 . a
by A89, AMI_3:14
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A97, FUNCT_1:72
.=
s2 . a
by A2, A97, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A89, AMI_3:14
.=
(DataPart (Exec (l,s2))) . x
by A96, FUNCT_1:72
;
verum
end;
(
dom (DataPart (Exec (l,s1))) = Data-Locations SCM &
dom (DataPart (Exec (l,s2))) = Data-Locations SCM )
by A6, RELAT_1:91;
then
(Exec (l,s1)) | (Data-Locations SCM) = (Exec (l,s2)) | (Data-Locations SCM)
by A95, FUNCT_1:9;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A94, RELAT_1:185;
verum end; suppose
InsCode l = 8
;
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})then consider loc being
Element of
NAT ,
da being
Data-Location such that A98:
l = da >0_goto loc
by Th54;
(Exec (l,s1)) . (IC SCM) = (Exec (l,s2)) . (IC SCM)
then A103:
(Exec (l,s1)) | {(IC SCM)} = (Exec (l,s2)) | {(IC SCM)}
by A6, GRFUNC_1:90;
A104:
for
x being
set st
x in Data-Locations SCM holds
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
proof
let x be
set ;
( x in Data-Locations SCM implies (DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x )
assume A105:
x in Data-Locations SCM
;
(DataPart (Exec (l,s1))) . x = (DataPart (Exec (l,s2))) . x
then reconsider a =
x as
Data-Location by AMI_3:72, AMI_3:def 2;
A106:
a in (Data-Locations SCM) \/ {(IC SCM)}
by A105, XBOOLE_0:def 3;
thus (DataPart (Exec (l,s1))) . x =
(Exec (l,s1)) . a
by A105, FUNCT_1:72
.=
s1 . a
by A98, AMI_3:15
.=
(s1 | ((Data-Locations SCM) \/ {(IC SCM)})) . a
by A106, FUNCT_1:72
.=
s2 . a
by A2, A106, FUNCT_1:72
.=
(Exec (l,s2)) . a
by A98, AMI_3:15
.=
(DataPart (Exec (l,s2))) . x
by A105, FUNCT_1:72
;
verum
end;
(
dom (DataPart (Exec (l,s1))) = Data-Locations SCM &
dom (DataPart (Exec (l,s2))) = Data-Locations SCM )
by A6, RELAT_1:91;
then
(Exec (l,s1)) | (Data-Locations SCM) = (Exec (l,s2)) | (Data-Locations SCM)
by A104, FUNCT_1:9;
hence
(Exec (l,s1)) | ((Data-Locations SCM) \/ {(IC SCM)}) = (Exec (l,s2)) | ((Data-Locations SCM) \/ {(IC SCM)})
by A103, RELAT_1:185;
verum end; end;