let i be Instruction of SCMPDS; for s1, s2 being State of SCMPDS st DataPart s1 = DataPart s2 & InsCode i <> 3 holds
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
let s1, s2 be State of SCMPDS; ( DataPart s1 = DataPart s2 & InsCode i <> 3 implies DataPart (Exec (i,s1)) = DataPart (Exec (i,s2)) )
assume that
A1:
DataPart s1 = DataPart s2
and
A2:
InsCode i <> 3
; DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
not not InsCode i = 0 & ... & not InsCode i = 14
by SCMPDS_2:6;
per cases then
( InsCode i = 0 or InsCode i = 14 or InsCode i = 1 or InsCode i = 2 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 or InsCode i = 13 )
by A2;
suppose
InsCode i = 8
;
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))then consider a being
Int_position,
k1,
k2 being
Integer such that A18:
i = AddTo (
a,
k1,
k2)
by SCMPDS_2:34;
now for b being Int_position holds (Exec (i,s1)) . b = (Exec (i,s2)) . blet b be
Int_position;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1per cases
( DataLoc ((s1 . a),k1) = b or DataLoc ((s1 . a),k1) <> b )
;
suppose A19:
DataLoc (
(s1 . a),
k1)
= b
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A20:
DataLoc (
(s2 . a),
k1)
= b
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . b =
(s1 . (DataLoc ((s1 . a),k1))) + k2
by A18, A19, SCMPDS_2:48
.=
(s2 . (DataLoc ((s2 . a),k1))) + k2
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . b
by A18, A20, SCMPDS_2:48
;
verum end; end; end; hence
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
by SCMPDS_4:8;
verum end; suppose
InsCode i = 9
;
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))then consider a,
b being
Int_position,
k1,
k2 being
Integer such that A23:
i = AddTo (
a,
k1,
b,
k2)
by SCMPDS_2:35;
now for c being Int_position holds (Exec (i,s1)) . c = (Exec (i,s2)) . clet c be
Int_position;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1per cases
( DataLoc ((s1 . a),k1) = c or DataLoc ((s1 . a),k1) <> c )
;
suppose A24:
DataLoc (
(s1 . a),
k1)
= c
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A25:
DataLoc (
(s2 . a),
k1)
= c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
(s1 . (DataLoc ((s1 . a),k1))) + (s1 . (DataLoc ((s1 . b),k2)))
by A23, A24, SCMPDS_2:49
.=
(s2 . (DataLoc ((s2 . a),k1))) + (s1 . (DataLoc ((s1 . b),k2)))
by A1, SCMPDS_3:2
.=
(s2 . (DataLoc ((s2 . a),k1))) + (s2 . (DataLoc ((s2 . b),k2)))
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . c
by A23, A25, SCMPDS_2:49
;
verum end; end; end; hence
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
by SCMPDS_4:8;
verum end; suppose
InsCode i = 10
;
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))then consider a,
b being
Int_position,
k1,
k2 being
Integer such that A28:
i = SubFrom (
a,
k1,
b,
k2)
by SCMPDS_2:36;
now for c being Int_position holds (Exec (i,s1)) . c = (Exec (i,s2)) . clet c be
Int_position;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1per cases
( DataLoc ((s1 . a),k1) = c or DataLoc ((s1 . a),k1) <> c )
;
suppose A29:
DataLoc (
(s1 . a),
k1)
= c
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A30:
DataLoc (
(s2 . a),
k1)
= c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
(s1 . (DataLoc ((s1 . a),k1))) - (s1 . (DataLoc ((s1 . b),k2)))
by A28, A29, SCMPDS_2:50
.=
(s2 . (DataLoc ((s2 . a),k1))) - (s1 . (DataLoc ((s1 . b),k2)))
by A1, SCMPDS_3:2
.=
(s2 . (DataLoc ((s2 . a),k1))) - (s2 . (DataLoc ((s2 . b),k2)))
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . c
by A28, A30, SCMPDS_2:50
;
verum end; end; end; hence
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
by SCMPDS_4:8;
verum end; suppose
InsCode i = 11
;
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))then consider a,
b being
Int_position,
k1,
k2 being
Integer such that A33:
i = MultBy (
a,
k1,
b,
k2)
by SCMPDS_2:37;
now for c being Int_position holds (Exec (i,s1)) . c = (Exec (i,s2)) . clet c be
Int_position;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1per cases
( DataLoc ((s1 . a),k1) = c or DataLoc ((s1 . a),k1) <> c )
;
suppose A34:
DataLoc (
(s1 . a),
k1)
= c
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A35:
DataLoc (
(s2 . a),
k1)
= c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
(s1 . (DataLoc ((s1 . a),k1))) * (s1 . (DataLoc ((s1 . b),k2)))
by A33, A34, SCMPDS_2:51
.=
(s2 . (DataLoc ((s2 . a),k1))) * (s1 . (DataLoc ((s1 . b),k2)))
by A1, SCMPDS_3:2
.=
(s2 . (DataLoc ((s2 . a),k1))) * (s2 . (DataLoc ((s2 . b),k2)))
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . c
by A33, A35, SCMPDS_2:51
;
verum end; end; end; hence
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
by SCMPDS_4:8;
verum end; suppose
InsCode i = 12
;
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))then consider a,
b being
Int_position,
k1,
k2 being
Integer such that A38:
i = Divide (
a,
k1,
b,
k2)
by SCMPDS_2:38;
now for c being Int_position holds (Exec (i,s1)) . c = (Exec (i,s2)) . clet c be
Int_position;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1per cases
( DataLoc ((s1 . b),k2) = c or DataLoc ((s1 . b),k2) <> c )
;
suppose A39:
DataLoc (
(s1 . b),
k2)
= c
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A40:
DataLoc (
(s2 . b),
k2)
= c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
(s1 . (DataLoc ((s1 . a),k1))) mod (s1 . (DataLoc ((s1 . b),k2)))
by A38, A39, SCMPDS_2:52
.=
(s2 . (DataLoc ((s2 . a),k1))) mod (s1 . (DataLoc ((s1 . b),k2)))
by A1, SCMPDS_3:2
.=
(s2 . (DataLoc ((s2 . a),k1))) mod (s2 . (DataLoc ((s2 . b),k2)))
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . c
by A38, A40, SCMPDS_2:52
;
verum end; suppose A41:
DataLoc (
(s1 . b),
k2)
<> c
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A42:
DataLoc (
(s2 . b),
k2)
<> c
by A1, SCMPDS_4:8;
hereby verum
per cases
( DataLoc ((s1 . a),k1) <> c or DataLoc ((s1 . a),k1) = c )
;
suppose A43:
DataLoc (
(s1 . a),
k1)
<> c
;
(Exec (i,s1)) . c = (Exec (i,s2)) . cthen A44:
DataLoc (
(s2 . a),
k1)
<> c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
s1 . c
by A38, A41, A43, SCMPDS_2:52
.=
s2 . c
by A1, SCMPDS_4:8
.=
(Exec (i,s2)) . c
by A38, A42, A44, SCMPDS_2:52
;
verum end; suppose A45:
DataLoc (
(s1 . a),
k1)
= c
;
(Exec (i,s1)) . c = (Exec (i,s2)) . cthen A46:
DataLoc (
(s2 . a),
k1)
= c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
(s1 . (DataLoc ((s1 . a),k1))) div (s1 . (DataLoc ((s1 . b),k2)))
by A38, A41, A45, SCMPDS_2:52
.=
(s2 . (DataLoc ((s2 . a),k1))) div (s1 . (DataLoc ((s1 . b),k2)))
by A1, SCMPDS_3:2
.=
(s2 . (DataLoc ((s2 . a),k1))) div (s2 . (DataLoc ((s2 . b),k2)))
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . c
by A38, A42, A46, SCMPDS_2:52
;
verum end; end;
end; end; end; end; hence
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
by SCMPDS_4:8;
verum end; suppose
InsCode i = 13
;
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))then consider a,
b being
Int_position,
k1,
k2 being
Integer such that A47:
i = (
a,
k1)
:= (
b,
k2)
by SCMPDS_2:39;
now for c being Int_position holds (Exec (i,s1)) . c = (Exec (i,s2)) . clet c be
Int_position;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1per cases
( DataLoc ((s1 . a),k1) = c or DataLoc ((s1 . a),k1) <> c )
;
suppose A48:
DataLoc (
(s1 . a),
k1)
= c
;
(Exec (i,s1)) . b1 = (Exec (i,s2)) . b1then A49:
DataLoc (
(s2 . a),
k1)
= c
by A1, SCMPDS_4:8;
thus (Exec (i,s1)) . c =
s1 . (DataLoc ((s1 . b),k2))
by A47, A48, SCMPDS_2:47
.=
s2 . (DataLoc ((s2 . b),k2))
by A1, SCMPDS_3:2
.=
(Exec (i,s2)) . c
by A47, A49, SCMPDS_2:47
;
verum end; end; end; hence
DataPart (Exec (i,s1)) = DataPart (Exec (i,s2))
by SCMPDS_4:8;
verum end; end;