let i be Instruction of SCM+FSA ; for s1, s2 being State of SCM+FSA st DataPart s1 = DataPart s2 holds
DataPart (Exec i,s1) = DataPart (Exec i,s2)
let s1, s2 be State of SCM+FSA ; ( DataPart s1 = DataPart s2 implies DataPart (Exec i,s1) = DataPart (Exec i,s2) )
assume A1:
DataPart s1 = DataPart s2
; DataPart (Exec i,s1) = DataPart (Exec i,s2)
A2:
( not InsCode i <= 9 + 1 or InsCode i <= 8 + 1 or InsCode i = 10 )
by NAT_1:8;
A3:
( not InsCode i <= 10 + 1 or InsCode i <= 10 or InsCode i = 11 )
by NAT_1:8;
set l = i;
A4:
InsCode i <= 11 + 1
by SCMFSA_2:35;
A5:
dom (Exec i,s1) = the carrier of SCM+FSA
by PARTFUN1:def 4;
then A6:
dom (Exec i,s1) = dom (Exec i,s2)
by PARTFUN1:def 4;
A7:
dom ((Exec i,s1) | (Int-Locations \/ FinSeq-Locations )) = Int-Locations \/ FinSeq-Locations
by A5, RELAT_1:91;
A8:
dom (Exec i,s2) = the carrier of SCM+FSA
by PARTFUN1:def 4;
then A9:
dom ((Exec i,s2) | (Int-Locations \/ FinSeq-Locations )) = Int-Locations \/ FinSeq-Locations
by RELAT_1:91;
per cases
( InsCode i = 0 or InsCode i = 1 or InsCode i = 2 or InsCode i = 3 or InsCode i = 4 or InsCode i = 5 or InsCode i = 6 or InsCode i = 7 or InsCode i = 8 or InsCode i = 9 or InsCode i = 10 or InsCode i = 11 or InsCode i = 12 )
by A4, A3, A2, NAT_1:8, NAT_1:33;
suppose
InsCode i = 1
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider db,
da being
Int-Location such that A11:
i = db := da
by SCMFSA_2:54;
A12:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x )
assume A13:
x in (Int-Locations \/ FinSeq-Locations ) \ {db}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
then A14:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A15:
not
x in {db}
by A13, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A14, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A16:
a <> db
by A15, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A13, FUNCT_1:72
.=
s1 . a
by A11, A16, SCMFSA_2:89
.=
(DataPart s1) . a
by A14, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A14, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A11, A16, SCMFSA_2:89
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A13, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A13, FUNCT_1:72
.=
s1 . a
by A11, SCMFSA_2:89
.=
(DataPart s1) . a
by A14, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A14, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A11, SCMFSA_2:89
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A13, FUNCT_1:72
;
verum end; end;
end; A17:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A5, RELAT_1:91;
then A18:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})
by A17, A12, FUNCT_1:9;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A19:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {db}) \/ {db}
by XBOOLE_1:39
;
A20:
(Exec i,s2) . db = s2 . da
by A11, SCMFSA_2:89;
A21:
(Exec i,s1) . db = s1 . da
by A11, SCMFSA_2:89;
da in Int-Locations
by SCMFSA_2:9;
then A22:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A22, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db} = (Exec i,s2) | {db}
by A6, A21, A20, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A19, A18, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 2
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider db,
da being
Int-Location such that A23:
i = AddTo db,
da
by SCMFSA_2:55;
A24:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x )
assume A25:
x in (Int-Locations \/ FinSeq-Locations ) \ {db}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
then A26:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A27:
not
x in {db}
by A25, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A26, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A28:
a <> db
by A27, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A25, FUNCT_1:72
.=
s1 . a
by A23, A28, SCMFSA_2:90
.=
(DataPart s1) . a
by A26, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A26, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A23, A28, SCMFSA_2:90
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A25, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A25, FUNCT_1:72
.=
s1 . a
by A23, SCMFSA_2:90
.=
(DataPart s1) . a
by A26, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A26, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A23, SCMFSA_2:90
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A25, FUNCT_1:72
;
verum end; end;
end; A29:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A5, RELAT_1:91;
then A30:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})
by A29, A24, FUNCT_1:9;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A31:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {db}) \/ {db}
by XBOOLE_1:39
;
A32:
(Exec i,s2) . db = (s2 . db) + (s2 . da)
by A23, SCMFSA_2:90;
A33:
(Exec i,s1) . db = (s1 . db) + (s1 . da)
by A23, SCMFSA_2:90;
db in Int-Locations
by SCMFSA_2:9;
then A34:
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A35:
s1 . db =
(DataPart s1) . db
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . db
by A1, A34, FUNCT_1:72, SCMFSA_2:127
;
da in Int-Locations
by SCMFSA_2:9;
then A36:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A36, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db} = (Exec i,s2) | {db}
by A6, A33, A32, A35, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A31, A30, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 3
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider db,
da being
Int-Location such that A37:
i = SubFrom db,
da
by SCMFSA_2:56;
A38:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x )
assume A39:
x in (Int-Locations \/ FinSeq-Locations ) \ {db}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
then A40:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A41:
not
x in {db}
by A39, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A40, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A42:
a <> db
by A41, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A39, FUNCT_1:72
.=
s1 . a
by A37, A42, SCMFSA_2:91
.=
(DataPart s1) . a
by A40, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A40, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A37, A42, SCMFSA_2:91
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A39, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A39, FUNCT_1:72
.=
s1 . a
by A37, SCMFSA_2:91
.=
(DataPart s1) . a
by A40, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A40, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A37, SCMFSA_2:91
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A39, FUNCT_1:72
;
verum end; end;
end; A43:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A5, RELAT_1:91;
then A44:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})
by A43, A38, FUNCT_1:9;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A45:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {db}) \/ {db}
by XBOOLE_1:39
;
A46:
(Exec i,s2) . db = (s2 . db) - (s2 . da)
by A37, SCMFSA_2:91;
A47:
(Exec i,s1) . db = (s1 . db) - (s1 . da)
by A37, SCMFSA_2:91;
db in Int-Locations
by SCMFSA_2:9;
then A48:
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A49:
s1 . db =
(DataPart s1) . db
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . db
by A1, A48, FUNCT_1:72, SCMFSA_2:127
;
da in Int-Locations
by SCMFSA_2:9;
then A50:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A50, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db} = (Exec i,s2) | {db}
by A6, A47, A46, A49, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A45, A44, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 4
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider db,
da being
Int-Location such that A51:
i = MultBy db,
da
by SCMFSA_2:57;
A52:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x )
assume A53:
x in (Int-Locations \/ FinSeq-Locations ) \ {db}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
then A54:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A55:
not
x in {db}
by A53, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A54, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A56:
a <> db
by A55, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A53, FUNCT_1:72
.=
s1 . a
by A51, A56, SCMFSA_2:92
.=
(DataPart s1) . a
by A54, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A54, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A51, A56, SCMFSA_2:92
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A53, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A53, FUNCT_1:72
.=
s1 . a
by A51, SCMFSA_2:92
.=
(DataPart s1) . a
by A54, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A54, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A51, SCMFSA_2:92
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A53, FUNCT_1:72
;
verum end; end;
end; A57:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A5, RELAT_1:91;
then A58:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})
by A57, A52, FUNCT_1:9;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A59:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {db}) \/ {db}
by XBOOLE_1:39
;
A60:
(Exec i,s2) . db = (s2 . db) * (s2 . da)
by A51, SCMFSA_2:92;
A61:
(Exec i,s1) . db = (s1 . db) * (s1 . da)
by A51, SCMFSA_2:92;
db in Int-Locations
by SCMFSA_2:9;
then A62:
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A63:
s1 . db =
(DataPart s1) . db
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . db
by A1, A62, FUNCT_1:72, SCMFSA_2:127
;
da in Int-Locations
by SCMFSA_2:9;
then A64:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A64, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db} = (Exec i,s2) | {db}
by A6, A61, A60, A63, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A59, A58, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 5
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider db,
da being
Int-Location such that A65:
i = Divide db,
da
by SCMFSA_2:58;
hereby verum
per cases
( da <> db or da = db )
;
suppose A66:
da <> db
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)A67:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db,da} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db,da} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x )
assume A68:
x in (Int-Locations \/ FinSeq-Locations ) \ {db,da}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x
then A69:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A70:
not
x in {db,da}
by A68, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A69, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A71:
a <> da
by A70, TARSKI:def 2;
A72:
a <> db
by A70, TARSKI:def 2;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x =
(Exec i,s1) . a
by A68, FUNCT_1:72
.=
s1 . a
by A65, A71, A72, SCMFSA_2:93
.=
(DataPart s1) . a
by A69, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A69, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A65, A71, A72, SCMFSA_2:93
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x
by A68, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x =
(Exec i,s1) . a
by A68, FUNCT_1:72
.=
s1 . a
by A65, SCMFSA_2:93
.=
(DataPart s1) . a
by A69, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A69, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A65, SCMFSA_2:93
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) . x
by A68, FUNCT_1:72
;
verum end; end;
end; A73:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) = (Int-Locations \/ FinSeq-Locations ) \ {db,da}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})) = (Int-Locations \/ FinSeq-Locations ) \ {db,da}
by A5, RELAT_1:91;
then A74:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db,da})
by A73, A67, FUNCT_1:9;
A75:
(Exec i,s2) . da = (s2 . db) mod (s2 . da)
by A65, SCMFSA_2:93;
db in Int-Locations
by SCMFSA_2:9;
then A76:
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A77:
s1 . db =
(DataPart s1) . db
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . db
by A1, A76, FUNCT_1:72, SCMFSA_2:127
;
da in Int-Locations
by SCMFSA_2:9;
then A78:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A79:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db,da}
by A78, ZFMISC_1:48
.=
((Int-Locations \/ FinSeq-Locations ) \ {db,da}) \/ {db,da}
by XBOOLE_1:39
;
A80:
(Exec i,s1) . da = (s1 . db) mod (s1 . da)
by A65, SCMFSA_2:93;
A81:
(Exec i,s2) . db = (s2 . db) div (s2 . da)
by A65, A66, SCMFSA_2:93;
A82:
(Exec i,s1) . db = (s1 . db) div (s1 . da)
by A65, A66, SCMFSA_2:93;
da in Int-Locations
by SCMFSA_2:9;
then A83:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A83, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db,da} = (Exec i,s2) | {db,da}
by A6, A82, A80, A81, A75, A77, GRFUNC_1:91;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A79, A74, RELAT_1:185, SCMFSA_2:127;
verum end; suppose A84:
da = db
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)A85:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x )
assume A86:
x in (Int-Locations \/ FinSeq-Locations ) \ {db}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
then A87:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A88:
not
x in {db}
by A86, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A87, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A89:
a <> db
by A88, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A86, FUNCT_1:72
.=
s1 . a
by A65, A84, A89, SCMFSA_2:94
.=
(DataPart s1) . a
by A87, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A87, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A65, A84, A89, SCMFSA_2:94
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A86, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A86, FUNCT_1:72
.=
s1 . a
by A65, A84, SCMFSA_2:94
.=
(s1 | (Int-Locations \/ FinSeq-Locations )) . a
by A87, FUNCT_1:72
.=
s2 . a
by A1, A87, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A65, A84, SCMFSA_2:94
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A86, FUNCT_1:72
;
verum end; end;
end; A90:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A5, RELAT_1:91;
then A91:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})
by A90, A85, FUNCT_1:9;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A92:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {db}) \/ {db}
by XBOOLE_1:39
;
A93:
(Exec i,s2) . db = (s2 . db) mod (s2 . da)
by A65, A84, SCMFSA_2:94;
A94:
(Exec i,s1) . db = (s1 . db) mod (s1 . da)
by A65, A84, SCMFSA_2:94;
db in Int-Locations
by SCMFSA_2:9;
then A95:
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A96:
s1 . db =
(DataPart s1) . db
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . db
by A1, A95, FUNCT_1:72, SCMFSA_2:127
;
da in Int-Locations
by SCMFSA_2:9;
then A97:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A97, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db} = (Exec i,s2) | {db}
by A6, A94, A93, A96, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A92, A91, RELAT_1:185, SCMFSA_2:127;
verum end; end;
end; end; suppose
InsCode i = 6
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then A98:
ex
l1 being
Element of
NAT st
i = goto l1
by SCMFSA_2:59;
for
x being
set st
x in Int-Locations \/ FinSeq-Locations holds
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x
proof
let x be
set ;
( x in Int-Locations \/ FinSeq-Locations implies (DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x )
assume A99:
x in Int-Locations \/ FinSeq-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A99, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
thus (DataPart (Exec i,s1)) . x =
(Exec i,s1) . a
by A99, FUNCT_1:72, SCMFSA_2:127
.=
s1 . a
by A98, SCMFSA_2:95
.=
(DataPart s1) . a
by A99, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A99, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A98, SCMFSA_2:95
.=
(DataPart (Exec i,s2)) . x
by A99, FUNCT_1:72, SCMFSA_2:127
;
verum end; suppose
x in FinSeq-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus (DataPart (Exec i,s1)) . x =
(Exec i,s1) . a
by A99, FUNCT_1:72, SCMFSA_2:127
.=
s1 . a
by A98, SCMFSA_2:95
.=
(DataPart s1) . a
by A99, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A99, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A98, SCMFSA_2:95
.=
(DataPart (Exec i,s2)) . x
by A99, FUNCT_1:72, SCMFSA_2:127
;
verum end; end;
end; hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A7, A9, FUNCT_1:9, SCMFSA_2:127;
verum end; suppose
InsCode i = 7
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then A100:
ex
l1 being
Element of
NAT ex
a being
Int-Location st
i = a =0_goto l1
by SCMFSA_2:60;
for
x being
set st
x in Int-Locations \/ FinSeq-Locations holds
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x
proof
let x be
set ;
( x in Int-Locations \/ FinSeq-Locations implies (DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x )
assume A101:
x in Int-Locations \/ FinSeq-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A101, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
thus (DataPart (Exec i,s1)) . x =
(Exec i,s1) . a
by A101, FUNCT_1:72, SCMFSA_2:127
.=
s1 . a
by A100, SCMFSA_2:96
.=
(DataPart s1) . a
by A101, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A101, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A100, SCMFSA_2:96
.=
(DataPart (Exec i,s2)) . x
by A101, FUNCT_1:72, SCMFSA_2:127
;
verum end; suppose
x in FinSeq-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus (DataPart (Exec i,s1)) . x =
(Exec i,s1) . a
by A101, FUNCT_1:72, SCMFSA_2:127
.=
s1 . a
by A100, SCMFSA_2:96
.=
(DataPart s1) . a
by A101, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A101, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A100, SCMFSA_2:96
.=
(DataPart (Exec i,s2)) . x
by A101, FUNCT_1:72, SCMFSA_2:127
;
verum end; end;
end; hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A7, A9, FUNCT_1:9, SCMFSA_2:127;
verum end; suppose
InsCode i = 8
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then A102:
ex
l1 being
Element of
NAT ex
a being
Int-Location st
i = a >0_goto l1
by SCMFSA_2:61;
for
x being
set st
x in Int-Locations \/ FinSeq-Locations holds
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x
proof
let x be
set ;
( x in Int-Locations \/ FinSeq-Locations implies (DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x )
assume A103:
x in Int-Locations \/ FinSeq-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . x
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A103, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
thus (DataPart (Exec i,s1)) . x =
(Exec i,s1) . a
by A103, FUNCT_1:72, SCMFSA_2:127
.=
s1 . a
by A102, SCMFSA_2:97
.=
(DataPart s1) . a
by A103, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A103, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A102, SCMFSA_2:97
.=
(DataPart (Exec i,s2)) . x
by A103, FUNCT_1:72, SCMFSA_2:127
;
verum end; suppose
x in FinSeq-Locations
;
(DataPart (Exec i,s1)) . x = (DataPart (Exec i,s2)) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus (DataPart (Exec i,s1)) . x =
(Exec i,s1) . a
by A103, FUNCT_1:72, SCMFSA_2:127
.=
s1 . a
by A102, SCMFSA_2:97
.=
(DataPart s1) . a
by A103, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A103, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A102, SCMFSA_2:97
.=
(DataPart (Exec i,s2)) . x
by A103, FUNCT_1:72, SCMFSA_2:127
;
verum end; end;
end; hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A7, A9, FUNCT_1:9, SCMFSA_2:127;
verum end; suppose
InsCode i = 9
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider da,
db being
Int-Location ,
fa being
FinSeq-Location such that A104:
i = db := fa,
da
by SCMFSA_2:62;
A105:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {db} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {db} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x )
assume A106:
x in (Int-Locations \/ FinSeq-Locations ) \ {db}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
then A107:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A108:
not
x in {db}
by A106, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A107, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A109:
a <> db
by A108, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A106, FUNCT_1:72
.=
s1 . a
by A104, A109, SCMFSA_2:98
.=
(DataPart s1) . a
by A107, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A107, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A104, A109, SCMFSA_2:98
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A106, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x =
(Exec i,s1) . a
by A106, FUNCT_1:72
.=
s1 . a
by A104, SCMFSA_2:98
.=
(DataPart s1) . a
by A107, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A107, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A104, SCMFSA_2:98
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) . x
by A106, FUNCT_1:72
;
verum end; end;
end; A110:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db})) = (Int-Locations \/ FinSeq-Locations ) \ {db}
by A5, RELAT_1:91;
then A111:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {db}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {db})
by A110, A105, FUNCT_1:9;
db in Int-Locations
by SCMFSA_2:9;
then
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A112:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {db}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {db}) \/ {db}
by XBOOLE_1:39
;
A113:
ex
k2 being
Element of
NAT st
(
k2 = abs (s2 . da) &
(Exec i,s2) . db = (s2 . fa) /. k2 )
by A104, SCMFSA_2:98;
A114:
ex
k1 being
Element of
NAT st
(
k1 = abs (s1 . da) &
(Exec i,s1) . db = (s1 . fa) /. k1 )
by A104, SCMFSA_2:98;
fa in FinSeq-Locations
by SCMFSA_2:10;
then A115:
fa in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A116:
s1 . fa =
(DataPart s1) . fa
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . fa
by A1, A115, FUNCT_1:72, SCMFSA_2:127
;
da in Int-Locations
by SCMFSA_2:9;
then A117:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A117, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {db} = (Exec i,s2) | {db}
by A6, A114, A113, A116, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A112, A111, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 10
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider da,
db being
Int-Location ,
fa being
FinSeq-Location such that A118:
i = fa,
da := db
by SCMFSA_2:63;
A119:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {fa} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {fa} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x )
assume A120:
x in (Int-Locations \/ FinSeq-Locations ) \ {fa}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
then A121:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A122:
not
x in {fa}
by A120, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A121, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x =
(Exec i,s1) . a
by A120, FUNCT_1:72
.=
s1 . a
by A118, SCMFSA_2:99
.=
(DataPart s1) . a
by A121, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A121, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A118, SCMFSA_2:99
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
by A120, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
A123:
a <> fa
by A122, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x =
(Exec i,s1) . a
by A120, FUNCT_1:72
.=
s1 . a
by A118, A123, SCMFSA_2:99
.=
(DataPart s1) . a
by A121, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A121, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A118, A123, SCMFSA_2:99
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
by A120, FUNCT_1:72
;
verum end; end;
end; A124:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) = (Int-Locations \/ FinSeq-Locations ) \ {fa}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) = (Int-Locations \/ FinSeq-Locations ) \ {fa}
by A5, RELAT_1:91;
then A125:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})
by A124, A119, FUNCT_1:9;
fa in FinSeq-Locations
by SCMFSA_2:10;
then
fa in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A126:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {fa}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {fa}) \/ {fa}
by XBOOLE_1:39
;
fa in FinSeq-Locations
by SCMFSA_2:10;
then A127:
fa in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A128:
s1 . fa =
(DataPart s1) . fa
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . fa
by A1, A127, FUNCT_1:72, SCMFSA_2:127
;
db in Int-Locations
by SCMFSA_2:9;
then A129:
db in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A130:
s1 . db =
(DataPart s1) . db
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . db
by A1, A129, FUNCT_1:72, SCMFSA_2:127
;
A131:
ex
k2 being
Element of
NAT st
(
k2 = abs (s2 . da) &
(Exec i,s2) . fa = (s2 . fa) +* k2,
(s2 . db) )
by A118, SCMFSA_2:99;
A132:
ex
k1 being
Element of
NAT st
(
k1 = abs (s1 . da) &
(Exec i,s1) . fa = (s1 . fa) +* k1,
(s1 . db) )
by A118, SCMFSA_2:99;
da in Int-Locations
by SCMFSA_2:9;
then A133:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A133, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {fa} = (Exec i,s2) | {fa}
by A6, A132, A131, A130, A128, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A126, A125, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 11
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider da being
Int-Location ,
fa being
FinSeq-Location such that A134:
i = da :=len fa
by SCMFSA_2:64;
A135:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {da} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {da} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x )
assume A136:
x in (Int-Locations \/ FinSeq-Locations ) \ {da}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x
then A137:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A138:
not
x in {da}
by A136, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A137, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
A139:
a <> da
by A138, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x =
(Exec i,s1) . a
by A136, FUNCT_1:72
.=
s1 . a
by A134, A139, SCMFSA_2:100
.=
(DataPart s1) . a
by A137, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A137, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A134, A139, SCMFSA_2:100
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x
by A136, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x =
(Exec i,s1) . a
by A136, FUNCT_1:72
.=
s1 . a
by A134, SCMFSA_2:100
.=
(DataPart s1) . a
by A137, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A137, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A134, SCMFSA_2:100
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) . x
by A136, FUNCT_1:72
;
verum end; end;
end;
da in Int-Locations
by SCMFSA_2:9;
then
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A140:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {da}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {da}) \/ {da}
by XBOOLE_1:39
;
fa in FinSeq-Locations
by SCMFSA_2:10;
then A141:
fa in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . fa =
(s1 | (Int-Locations \/ FinSeq-Locations )) . fa
by FUNCT_1:72
.=
s2 . fa
by A1, A141, FUNCT_1:72, SCMFSA_2:127
;
then (Exec i,s1) . da =
len (s2 . fa)
by A134, SCMFSA_2:100
.=
(Exec i,s2) . da
by A134, SCMFSA_2:100
;
then A142:
(Exec i,s1) | {da} = (Exec i,s2) | {da}
by A5, A8, GRFUNC_1:90;
A143:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) = (Int-Locations \/ FinSeq-Locations ) \ {da}
by A8, RELAT_1:91;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da})) = (Int-Locations \/ FinSeq-Locations ) \ {da}
by A5, RELAT_1:91;
then
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {da}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {da})
by A143, A135, FUNCT_1:9;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A140, A142, RELAT_1:185, SCMFSA_2:127;
verum end; suppose
InsCode i = 12
;
DataPart (Exec i,s1) = DataPart (Exec i,s2)then consider da being
Int-Location ,
fa being
FinSeq-Location such that A144:
i = fa :=<0,...,0> da
by SCMFSA_2:65;
set l =
i;
A145:
dom ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) = (Int-Locations \/ FinSeq-Locations ) \ {fa}
by A8, RELAT_1:91;
A146:
ex
k2 being
Element of
NAT st
(
k2 = abs (s2 . da) &
(Exec i,s2) . fa = k2 |-> 0 )
by A144, SCMFSA_2:101;
A147:
ex
k1 being
Element of
NAT st
(
k1 = abs (s1 . da) &
(Exec i,s1) . fa = k1 |-> 0 )
by A144, SCMFSA_2:101;
A148:
for
x being
set st
x in (Int-Locations \/ FinSeq-Locations ) \ {fa} holds
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
proof
let x be
set ;
( x in (Int-Locations \/ FinSeq-Locations ) \ {fa} implies ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x )
assume A149:
x in (Int-Locations \/ FinSeq-Locations ) \ {fa}
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
then A150:
x in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 5;
A151:
not
x in {fa}
by A149, XBOOLE_0:def 5;
per cases
( x in Int-Locations or x in FinSeq-Locations )
by A150, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . xthen reconsider a =
x as
Int-Location by SCMFSA_2:11;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x =
(Exec i,s1) . a
by A149, FUNCT_1:72
.=
s1 . a
by A144, SCMFSA_2:101
.=
(DataPart s1) . a
by A150, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A150, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A144, SCMFSA_2:101
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
by A149, FUNCT_1:72
;
verum end; suppose
x in FinSeq-Locations
;
((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x = ((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . xthen reconsider a =
x as
FinSeq-Location by SCMFSA_2:12;
A152:
a <> fa
by A151, TARSKI:def 1;
thus ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x =
(Exec i,s1) . a
by A149, FUNCT_1:72
.=
s1 . a
by A144, A152, SCMFSA_2:101
.=
(DataPart s1) . a
by A150, FUNCT_1:72, SCMFSA_2:127
.=
s2 . a
by A1, A150, FUNCT_1:72, SCMFSA_2:127
.=
(Exec i,s2) . a
by A144, A152, SCMFSA_2:101
.=
((Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) . x
by A149, FUNCT_1:72
;
verum end; end;
end;
dom ((Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})) = (Int-Locations \/ FinSeq-Locations ) \ {fa}
by A5, RELAT_1:91;
then A153:
(Exec i,s1) | ((Int-Locations \/ FinSeq-Locations ) \ {fa}) = (Exec i,s2) | ((Int-Locations \/ FinSeq-Locations ) \ {fa})
by A145, A148, FUNCT_1:9;
fa in FinSeq-Locations
by SCMFSA_2:10;
then
fa in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then A154:
Int-Locations \/ FinSeq-Locations =
(Int-Locations \/ FinSeq-Locations ) \/ {fa}
by ZFMISC_1:46
.=
((Int-Locations \/ FinSeq-Locations ) \ {fa}) \/ {fa}
by XBOOLE_1:39
;
da in Int-Locations
by SCMFSA_2:9;
then A155:
da in Int-Locations \/ FinSeq-Locations
by XBOOLE_0:def 3;
then s1 . da =
(DataPart s1) . da
by FUNCT_1:72, SCMFSA_2:127
.=
s2 . da
by A1, A155, FUNCT_1:72, SCMFSA_2:127
;
then
(Exec i,s1) | {fa} = (Exec i,s2) | {fa}
by A6, A147, A146, GRFUNC_1:90;
hence
DataPart (Exec i,s1) = DataPart (Exec i,s2)
by A154, A153, RELAT_1:185, SCMFSA_2:127;
verum end; end;