let INS be Instruction of (SCM R); AMISTD_5:def 2 INS is relocable
let j, k be Nat; AMISTD_5:def 1 for b1 being set holds NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (b1,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),b1)),k))
reconsider k = k as Element of NAT by ORDINAL1:def 13;
let s be State of (SCM R); NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
A1: IC (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) =
(IC (Exec ((IncAddr (INS,j)),s))) + k
by COMPOS_1:54
.=
IC (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k))))
by AMISTD_2:def 18
;
per cases
( InsCode INS = 0 or InsCode INS = 1 or InsCode INS = 2 or InsCode INS = 3 or InsCode INS = 4 or InsCode INS = 5 or InsCode INS = 6 or InsCode INS = 7 )
by NAT_1:32, SCMRING3:71;
suppose
InsCode INS = 0
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then A3:
INS = halt (SCM R)
by SCMRING3:16;
Exec (
(IncAddr (INS,(j + k))),
(IncIC (s,k))) =
IncIC (
s,
k)
by EXTPRO_1:def 3, A3
.=
IncIC (
(Exec ((IncAddr (INS,j)),s)),
k)
by A3, EXTPRO_1:def 3
;
hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
;
verum end; suppose
InsCode INS = 1
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider da,
db being
Data-Location of
R such that A4:
INS = da := db
by SCMRING3:17;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1per cases
( da = d or da <> d )
;
suppose A5:
da = d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A4, COMPOS_1:92
.=
(IncIC (s,k)) . db
by A4, A5, SCMRING2:13
.=
s . db
by Th7
.=
(Exec (INS,s)) . d
by A4, A5, SCMRING2:13
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A4, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; suppose A6:
da <> d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A4, COMPOS_1:92
.=
(IncIC (s,k)) . d
by A4, A6, SCMRING2:13
.=
s . d
by Th7
.=
(Exec (INS,s)) . d
by A4, A6, SCMRING2:13
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A4, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; end; end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by Th8, A1;
verum end; suppose
InsCode INS = 2
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider da,
db being
Data-Location of
R such that A7:
INS = AddTo (
da,
db)
by SCMRING3:18;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1per cases
( da = d or da <> d )
;
suppose A8:
da = d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A7, COMPOS_1:92
.=
((IncIC (s,k)) . da) + ((IncIC (s,k)) . db)
by A8, A7, SCMRING2:14
.=
(s . da) + ((IncIC (s,k)) . db)
by Th7
.=
(s . da) + (s . db)
by Th7
.=
(Exec (INS,s)) . d
by A7, A8, SCMRING2:14
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A7, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; suppose A9:
da <> d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A7, COMPOS_1:92
.=
(IncIC (s,k)) . d
by A7, A9, SCMRING2:14
.=
s . d
by Th7
.=
(Exec (INS,s)) . d
by A7, A9, SCMRING2:14
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A7, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; end; end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by Th8, A1;
verum end; suppose
InsCode INS = 3
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider da,
db being
Data-Location of
R such that A10:
INS = SubFrom (
da,
db)
by SCMRING3:19;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1per cases
( da = d or da <> d )
;
suppose A11:
da = d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A10, COMPOS_1:92
.=
((IncIC (s,k)) . da) - ((IncIC (s,k)) . db)
by A11, A10, SCMRING2:15
.=
(s . da) - ((IncIC (s,k)) . db)
by Th7
.=
(s . da) - (s . db)
by Th7
.=
(Exec (INS,s)) . d
by A10, A11, SCMRING2:15
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A10, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; suppose A12:
da <> d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A10, COMPOS_1:92
.=
(IncIC (s,k)) . d
by A10, A12, SCMRING2:15
.=
s . d
by Th7
.=
(Exec (INS,s)) . d
by A10, A12, SCMRING2:15
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A10, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; end; end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by Th8, A1;
verum end; suppose
InsCode INS = 4
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider da,
db being
Data-Location of
R such that A13:
INS = MultBy (
da,
db)
by SCMRING3:20;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1per cases
( da = d or da <> d )
;
suppose A14:
da = d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A13, COMPOS_1:92
.=
((IncIC (s,k)) . da) * ((IncIC (s,k)) . db)
by A14, A13, SCMRING2:16
.=
(s . da) * ((IncIC (s,k)) . db)
by Th7
.=
(s . da) * (s . db)
by Th7
.=
(Exec (INS,s)) . d
by A13, A14, SCMRING2:16
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A13, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; suppose A15:
da <> d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A13, COMPOS_1:92
.=
(IncIC (s,k)) . d
by A13, A15, SCMRING2:16
.=
s . d
by Th7
.=
(Exec (INS,s)) . d
by A13, A15, SCMRING2:16
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A13, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; end; end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by Th8, A1;
verum end; suppose
InsCode INS = 5
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider da being
Data-Location of
R,
r being
Element of
R such that A16:
INS = da := r
by SCMRING3:21;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1per cases
( da = d or da <> d )
;
suppose A17:
da = d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A16, COMPOS_1:92
.=
r
by A17, A16, SCMRING2:19
.=
(Exec (INS,s)) . d
by A16, A17, SCMRING2:19
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A16, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; suppose A18:
da <> d
;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . b1 = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . b1thus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(Exec (INS,(IncIC (s,k)))) . d
by A16, COMPOS_1:92
.=
(IncIC (s,k)) . d
by A16, A18, SCMRING2:19
.=
s . d
by Th7
.=
(Exec (INS,s)) . d
by A16, A18, SCMRING2:19
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A16, COMPOS_1:92
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; end; end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by Th8, A1;
verum end; suppose
InsCode INS = 6
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider loc being
Element of
NAT such that A19:
INS = goto (
loc,
R)
by SCMRING3:22;
A20:
IncAddr (
INS,
(j + k))
= goto (
(loc + (j + k)),
R)
by A19, SCMRING3:69;
A21:
IncAddr (
INS,
j)
= goto (
(loc + j),
R)
by A19, SCMRING3:69;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . dthus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(IncIC (s,k)) . d
by A20, SCMRING2:17
.=
s . d
by Th7
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A21, SCMRING2:17
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by Th8, A1;
verum end; suppose
InsCode INS = 7
;
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))then consider da being
Data-Location of
R,
loc being
Element of
NAT such that A22:
INS = da =0_goto loc
by SCMRING3:23;
A23:
IncAddr (
INS,
(j + k))
= da =0_goto (loc + (j + k))
by A22, SCMRING3:70;
A24:
IncAddr (
INS,
j)
= da =0_goto (loc + j)
by A22, SCMRING3:70;
now let d be
Data-Location of
R;
(Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d = (IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . dthus (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) . d =
(IncIC (s,k)) . d
by A23, SCMRING2:18
.=
s . d
by Th7
.=
(Exec ((IncAddr (INS,j)),s)) . d
by A24, SCMRING2:18
.=
(IncIC ((Exec ((IncAddr (INS,j)),s)),k)) . d
by Th7
;
verum end; hence
NPP (Exec ((IncAddr (INS,(j + k))),(IncIC (s,k)))) = NPP (IncIC ((Exec ((IncAddr (INS,j)),s)),k))
by A1, Th8;
verum end; end;