let k be Element of NAT ; for R being good Ring
for s being State of (SCM R) holds Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
let R be good Ring; for s being State of (SCM R) holds Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
let s be State of (SCM R); Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
set INS = CurInstr (ProgramPart s),s;
consider m being natural number such that
A1:
IC s = m
;
reconsider m = m as Element of NAT by ORDINAL1:def 13;
A3: succ (IC (s +* (Start-At ((IC s) + k),(SCM R)))) =
succ ((IC s) + k)
by FUNCT_4:121
.=
IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R)))
by FUNCT_4:121
;
A4:
now let d be
Element of
NAT ;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . dthus (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by AMI_1:def 13
.=
s . d
by COMPOS_1:20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by AMI_1:def 13
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by COMPOS_1:20
;
verum end;
per cases
( InsCode (CurInstr (ProgramPart s),s) = 0 or InsCode (CurInstr (ProgramPart s),s) = 1 or InsCode (CurInstr (ProgramPart s),s) = 2 or InsCode (CurInstr (ProgramPart s),s) = 3 or InsCode (CurInstr (ProgramPart s),s) = 4 or InsCode (CurInstr (ProgramPart s),s) = 5 or InsCode (CurInstr (ProgramPart s),s) = 6 or InsCode (CurInstr (ProgramPart s),s) = 7 )
by NAT_1:32, SCMRING3:71;
suppose
InsCode (CurInstr (ProgramPart s),s) = 0
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then A5:
CurInstr (ProgramPart s),
s = halt (SCM R)
by SCMRING3:16;
then A6:
Following (ProgramPart s),
s = s
by AMI_1:def 8;
thus
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A6, A5, AMI_1:def 8;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 1
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider da,
db being
Data-Location of
R such that A7:
CurInstr (ProgramPart s),
s = da := db
by SCMRING3:17;
A8:
now let d be
Data-Location of
R;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1per cases
( da = d or da <> d )
;
suppose A9:
da = d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . db
by A7, SCMRING2:13
.=
s . db
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A7, A9, SCMRING2:13
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; suppose A10:
da <> d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A7, SCMRING2:13
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A7, A10, SCMRING2:13
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; end; end; A11:
(
IncAddr (CurInstr (ProgramPart s),s),
k = CurInstr (ProgramPart s),
s &
IC (Exec (CurInstr (ProgramPart s),s),s) = succ (IC s) )
by A7, AMISTD_2:29, SCMRING2:13;
IC (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) = IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R)))
by A3, A7, SCMRING2:13;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A4, A11, A8, Th21;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 2
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider da,
db being
Data-Location of
R such that A12:
CurInstr (ProgramPart s),
s = AddTo da,
db
by SCMRING3:18;
A13:
now let d be
Data-Location of
R;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1per cases
( da = d or da <> d )
;
suppose A14:
da = d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
((s +* (Start-At ((IC s) + k),(SCM R))) . da) + ((s +* (Start-At ((IC s) + k),(SCM R))) . db)
by A12, SCMRING2:14
.=
(s . da) + ((s +* (Start-At ((IC s) + k),(SCM R))) . db)
by Th20
.=
(s . da) + (s . db)
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A12, A14, SCMRING2:14
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; suppose A15:
da <> d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A12, SCMRING2:14
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A12, A15, SCMRING2:14
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; end; end; A16:
(
IncAddr (CurInstr (ProgramPart s),s),
k = CurInstr (ProgramPart s),
s &
IC (Exec (CurInstr (ProgramPart s),s),s) = succ (IC s) )
by A12, AMISTD_2:29, SCMRING2:14;
IC (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) = IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R)))
by A3, A12, SCMRING2:14;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A4, A16, A13, Th21;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 3
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider da,
db being
Data-Location of
R such that A17:
CurInstr (ProgramPart s),
s = SubFrom da,
db
by SCMRING3:19;
A18:
now let d be
Data-Location of
R;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1per cases
( da = d or da <> d )
;
suppose A19:
da = d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
((s +* (Start-At ((IC s) + k),(SCM R))) . da) - ((s +* (Start-At ((IC s) + k),(SCM R))) . db)
by A17, SCMRING2:15
.=
(s . da) - ((s +* (Start-At ((IC s) + k),(SCM R))) . db)
by Th20
.=
(s . da) - (s . db)
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A17, A19, SCMRING2:15
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; suppose A20:
da <> d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A17, SCMRING2:15
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A17, A20, SCMRING2:15
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; end; end; A21:
(
IncAddr (CurInstr (ProgramPart s),s),
k = CurInstr (ProgramPart s),
s &
IC (Exec (CurInstr (ProgramPart s),s),s) = succ (IC s) )
by A17, AMISTD_2:29, SCMRING2:15;
IC (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) = IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R)))
by A3, A17, SCMRING2:15;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A4, A21, A18, Th21;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 4
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider da,
db being
Data-Location of
R such that A22:
CurInstr (ProgramPart s),
s = MultBy da,
db
by SCMRING3:20;
A23:
now let d be
Data-Location of
R;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1per cases
( da = d or da <> d )
;
suppose A24:
da = d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
((s +* (Start-At ((IC s) + k),(SCM R))) . da) * ((s +* (Start-At ((IC s) + k),(SCM R))) . db)
by A22, SCMRING2:16
.=
(s . da) * ((s +* (Start-At ((IC s) + k),(SCM R))) . db)
by Th20
.=
(s . da) * (s . db)
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A22, A24, SCMRING2:16
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; suppose A25:
da <> d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A22, SCMRING2:16
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A22, A25, SCMRING2:16
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; end; end; A26:
(
IncAddr (CurInstr (ProgramPart s),s),
k = CurInstr (ProgramPart s),
s &
IC (Exec (CurInstr (ProgramPart s),s),s) = succ (IC s) )
by A22, AMISTD_2:29, SCMRING2:16;
IC (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) = IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R)))
by A3, A22, SCMRING2:16;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A4, A26, A23, Th21;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 5
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider da being
Data-Location of
R,
r being
Element of
R such that A27:
CurInstr (ProgramPart s),
s = da := r
by SCMRING3:21;
A28:
now let d be
Data-Location of
R;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1per cases
( da = d or da <> d )
;
suppose A29:
da = d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
r
by A27, SCMRING2:19
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A27, A29, SCMRING2:19
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; suppose A30:
da <> d
;
(Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . b1 = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . b1hence (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A27, SCMRING2:19
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A27, A30, SCMRING2:19
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R))) . d
by Th20
;
verum end; end; end; A31:
(
IncAddr (CurInstr (ProgramPart s),s),
k = CurInstr (ProgramPart s),
s &
IC (Exec (CurInstr (ProgramPart s),s),s) = succ (IC s) )
by A27, AMISTD_2:29, SCMRING2:19;
IC (Exec (CurInstr (ProgramPart s),s),(s +* (Start-At ((IC s) + k),(SCM R)))) = IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((succ (IC s)) + k),(SCM R)))
by A3, A27, SCMRING2:19;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A4, A31, A28, Th21;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 6
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider loc being
Element of
NAT such that A32:
CurInstr (ProgramPart s),
s = goto loc,
R
by SCMRING3:22;
A33:
IC (Exec (CurInstr (ProgramPart s),s),s) = loc
by A32, SCMRING2:17;
A34:
now let d be
Element of
NAT ;
(Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . dthus (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by AMI_1:def 13
.=
s . d
by COMPOS_1:20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by AMI_1:def 13
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . d
by COMPOS_1:20
;
verum end; A35:
IncAddr (CurInstr (ProgramPart s),s),
k = goto (loc + k),
R
by A32, SCMRING3:69;
A36:
now let d be
Data-Location of
R;
(Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . dthus (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A35, SCMRING2:17
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A32, SCMRING2:17
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . d
by Th20
;
verum end; set s1 =
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R)));
set s2 =
(Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R));
IC (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) =
loc + k
by A35, SCMRING2:17
.=
IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R)))
by A33, FUNCT_4:121
;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
by A36, A34, Th21;
verum end; suppose
InsCode (CurInstr (ProgramPart s),s) = 7
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))then consider da being
Data-Location of
R,
loc being
Element of
NAT such that A37:
CurInstr (ProgramPart s),
s = da =0_goto loc
by SCMRING3:23;
A38:
IncAddr (CurInstr (ProgramPart s),s),
k = da =0_goto (loc + k)
by A37, SCMRING3:70;
now per cases
( s . da = 0. R or s . da <> 0. R )
;
suppose A39:
s . da = 0. R
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))A40:
now let d be
Data-Location of
R;
(Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . dthus (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A38, SCMRING2:18
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A37, SCMRING2:18
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . d
by Th20
;
verum end; A41:
now let d be
Element of
NAT ;
(Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . dthus (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by AMI_1:def 13
.=
s . d
by COMPOS_1:20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by AMI_1:def 13
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . d
by COMPOS_1:20
;
verum end; A42:
IC (Exec (CurInstr (ProgramPart s),s),s) = loc
by A37, A39, SCMRING2:18;
(s +* (Start-At ((IC s) + k),(SCM R))) . da = 0. R
by A39, Th20;
then IC (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) =
loc + k
by A38, SCMRING2:18
.=
IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R)))
by A42, FUNCT_4:121
;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))
by A40, A41, Th21;
verum end; suppose A43:
s . da <> 0. R
;
Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R))) = (Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))A44:
now let d be
Element of
NAT ;
(Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . dthus (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by AMI_1:def 13
.=
s . d
by COMPOS_1:20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by AMI_1:def 13
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . d
by COMPOS_1:20
;
verum end; A45:
now let d be
Data-Location of
R;
(Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d = ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . dthus (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) . d =
(s +* (Start-At ((IC s) + k),(SCM R))) . d
by A38, SCMRING2:18
.=
s . d
by Th20
.=
(Exec (CurInstr (ProgramPart s),s),s) . d
by A37, SCMRING2:18
.=
((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))) . d
by Th20
;
verum end;
(
(s +* (Start-At ((IC s) + k),(SCM R))) . da <> 0. R &
IC (Exec (CurInstr (ProgramPart s),s),s) = succ (IC s) )
by A37, A43, Th20, SCMRING2:18;
then
IC (Exec (IncAddr (CurInstr (ProgramPart s),s),k),(s +* (Start-At ((IC s) + k),(SCM R)))) = IC ((Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R)))
by A3, A38, SCMRING2:18;
hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Exec (CurInstr (ProgramPart s),s),s) +* (Start-At ((IC (Exec (CurInstr (ProgramPart s),s),s)) + k),(SCM R))
by A45, A44, Th21;
verum end; end; end; hence
Exec (IncAddr (CurInstr (ProgramPart s),s),k),
(s +* (Start-At ((IC s) + k),(SCM R))) = (Following (ProgramPart s),s) +* (Start-At ((IC (Following (ProgramPart s),s)) + k),(SCM R))
;
verum end; end;