let i be Instruction of SCM+FSA; for s, t being State of SCM+FSA st s | (UsedIntLoc i) = t | (UsedIntLoc i) & s | (UsedInt*Loc i) = t | (UsedInt*Loc i) & IC s = IC t holds
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )
let s, t be State of SCM+FSA; ( s | (UsedIntLoc i) = t | (UsedIntLoc i) & s | (UsedInt*Loc i) = t | (UsedInt*Loc i) & IC s = IC t implies ( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) ) )
assume that
A1:
s | (UsedIntLoc i) = t | (UsedIntLoc i)
and
A2:
s | (UsedInt*Loc i) = t | (UsedInt*Loc i)
and
A3:
IC s = IC t
; ( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )
set UFi = UsedInt*Loc i;
set Ui = UsedIntLoc i;
set Et = Exec (i,t);
set Es = Exec (i,s);
A4: dom (Exec (i,s)) =
the carrier of SCM+FSA
by PARTFUN1:def 2
.=
dom (Exec (i,t))
by PARTFUN1:def 2
;
A5:
InsCode i <= 12
by SCMFSA_2:16;
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 A5, NAT_1:36;
suppose
InsCode i = 0
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then A6:
i = halt SCM+FSA
by SCMFSA_2:95;
then
Exec (
i,
s)
= s
by EXTPRO_1:def 3;
hence
(
IC (Exec (i,s)) = IC (Exec (i,t)) &
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) &
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )
by A1, A2, A3, A6, EXTPRO_1:def 3;
verum end; suppose
InsCode i = 1
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location such that A7:
i = a := b
by SCMFSA_2:30;
A8:
UsedIntLoc i = {a,b}
by A7, Th14;
then A9:
b in UsedIntLoc i
by TARSKI:def 2;
then
s . b = (s | (UsedIntLoc i)) . b
by FUNCT_1:49;
then A10:
s . b = t . b
by A1, A9, FUNCT_1:49;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A7, SCMFSA_2:63
.=
IC (Exec (i,t))
by A7, SCMFSA_2:63
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )
(
a = b or
a <> b )
;
then A11:
(
(Exec (i,s)) . b = s . b &
(Exec (i,t)) . b = t . b )
by A7, SCMFSA_2:63;
(
(Exec (i,s)) . a = s . b &
(Exec (i,t)) . a = t . b )
by A7, SCMFSA_2:63;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A8, A10, A11, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A12:
UsedInt*Loc i = {}
by A7, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A12, RELAT_1:81
;
verum end; suppose
InsCode i = 2
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location such that A13:
i = AddTo (
a,
b)
by SCMFSA_2:31;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A13, SCMFSA_2:64
.=
IC (Exec (i,t))
by A13, SCMFSA_2:64
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A14:
UsedIntLoc i = {a,b}
by A13, Th14;
then A15:
a in UsedIntLoc i
by TARSKI:def 2;
then
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A16:
s . a = t . a
by A1, A15, FUNCT_1:49;
A18:
b in UsedIntLoc i
by A14, TARSKI:def 2;
then
s . b = (s | (UsedIntLoc i)) . b
by FUNCT_1:49;
then A19:
s . b = t . b
by A1, A18, FUNCT_1:49;
(
(Exec (i,s)) . a = (s . a) + (s . b) &
(Exec (i,t)) . a = (t . a) + (t . b) )
by A13, SCMFSA_2:64;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A14, A16, A19, A17, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A20:
UsedInt*Loc i = {}
by A13, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A20, RELAT_1:81
;
verum end; suppose
InsCode i = 3
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location such that A21:
i = SubFrom (
a,
b)
by SCMFSA_2:32;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A21, SCMFSA_2:65
.=
IC (Exec (i,t))
by A21, SCMFSA_2:65
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A22:
UsedIntLoc i = {a,b}
by A21, Th14;
then A23:
a in UsedIntLoc i
by TARSKI:def 2;
then
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A24:
s . a = t . a
by A1, A23, FUNCT_1:49;
A26:
b in UsedIntLoc i
by A22, TARSKI:def 2;
then
s . b = (s | (UsedIntLoc i)) . b
by FUNCT_1:49;
then A27:
s . b = t . b
by A1, A26, FUNCT_1:49;
(
(Exec (i,s)) . a = (s . a) - (s . b) &
(Exec (i,t)) . a = (t . a) - (t . b) )
by A21, SCMFSA_2:65;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A22, A24, A27, A25, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A28:
UsedInt*Loc i = {}
by A21, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A28, RELAT_1:81
;
verum end; suppose
InsCode i = 4
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location such that A29:
i = MultBy (
a,
b)
by SCMFSA_2:33;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A29, SCMFSA_2:66
.=
IC (Exec (i,t))
by A29, SCMFSA_2:66
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A30:
UsedIntLoc i = {a,b}
by A29, Th14;
then A31:
a in UsedIntLoc i
by TARSKI:def 2;
then
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A32:
s . a = t . a
by A1, A31, FUNCT_1:49;
A34:
b in UsedIntLoc i
by A30, TARSKI:def 2;
then
s . b = (s | (UsedIntLoc i)) . b
by FUNCT_1:49;
then A35:
s . b = t . b
by A1, A34, FUNCT_1:49;
(
(Exec (i,s)) . a = (s . a) * (s . b) &
(Exec (i,t)) . a = (t . a) * (t . b) )
by A29, SCMFSA_2:66;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A30, A32, A35, A33, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A36:
UsedInt*Loc i = {}
by A29, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A36, RELAT_1:81
;
verum end; suppose
InsCode i = 5
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location such that A37:
i = Divide (
a,
b)
by SCMFSA_2:34;
A38:
UsedIntLoc i = {a,b}
by A37, Th14;
then A39:
a in UsedIntLoc i
by TARSKI:def 2;
then
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A40:
s . a = t . a
by A1, A39, FUNCT_1:49;
A41:
UsedInt*Loc i = {}
by A37, Th32;
A42:
b in UsedIntLoc i
by A38, TARSKI:def 2;
then
s . b = (s | (UsedIntLoc i)) . b
by FUNCT_1:49;
then A43:
s . b = t . b
by A1, A42, FUNCT_1:49;
hereby verum
per cases
( a = b or a <> b )
;
suppose A44:
a = b
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )hence IC (Exec (i,s)) =
succ (IC t)
by A3, A37, SCMFSA_2:68
.=
IC (Exec (i,t))
by A37, A44, SCMFSA_2:68
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )
(
(Exec (i,s)) . a = (s . a) mod (s . a) &
(Exec (i,t)) . a = (t . a) mod (t . b) )
by A37, A44, SCMFSA_2:68;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A38, A40, A44, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)thus (Exec (i,s)) | (UsedInt*Loc i) =
{}
by A41, RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A41, RELAT_1:81
;
verum end; suppose A45:
a <> b
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )thus IC (Exec (i,s)) =
succ (IC t)
by A3, A37, SCMFSA_2:67
.=
IC (Exec (i,t))
by A37, SCMFSA_2:67
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A46:
(
(Exec (i,s)) . b = (s . a) mod (s . b) &
(Exec (i,t)) . b = (t . a) mod (t . b) )
by A37, SCMFSA_2:67;
(
(Exec (i,s)) . a = (s . a) div (s . b) &
(Exec (i,t)) . a = (t . a) div (t . b) )
by A37, A45, SCMFSA_2:67;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A38, A40, A43, A46, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)thus (Exec (i,s)) | (UsedInt*Loc i) =
{}
by A41, RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A41, RELAT_1:81
;
verum end; end;
end; end; suppose
InsCode i = 6
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider l being
Element of
NAT such that A47:
i = goto l
by SCMFSA_2:35;
thus IC (Exec (i,s)) =
l
by A47, SCMFSA_2:69
.=
IC (Exec (i,t))
by A47, SCMFSA_2:69
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A48:
UsedIntLoc i = {}
by A47, Th15;
hence (Exec (i,s)) | (UsedIntLoc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedIntLoc i)
by A48, RELAT_1:81
;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A49:
UsedInt*Loc i = {}
by A47, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A49, RELAT_1:81
;
verum end; suppose
InsCode i = 7
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider l being
Element of
NAT ,
a being
Int-Location such that A50:
i = a =0_goto l
by SCMFSA_2:36;
A51:
UsedIntLoc i = {a}
by A50, Th16;
then A52:
a in UsedIntLoc i
by TARSKI:def 1;
then A53:
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A54:
s . a = t . a
by A1, A52, FUNCT_1:49;
(
(Exec (i,s)) . a = s . a &
(Exec (i,t)) . a = t . a )
by A50, SCMFSA_2:70;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A1, A4, A51, A52, A53, FUNCT_1:49, GRFUNC_1:29;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A57:
UsedInt*Loc i = {}
by A50, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A57, RELAT_1:81
;
verum end; suppose
InsCode i = 8
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider l being
Element of
NAT ,
a being
Int-Location such that A58:
i = a >0_goto l
by SCMFSA_2:37;
A59:
UsedIntLoc i = {a}
by A58, Th16;
then A60:
a in UsedIntLoc i
by TARSKI:def 1;
then A61:
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A62:
s . a = t . a
by A1, A60, FUNCT_1:49;
(
(Exec (i,s)) . a = s . a &
(Exec (i,t)) . a = t . a )
by A58, SCMFSA_2:71;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A1, A4, A59, A60, A61, FUNCT_1:49, GRFUNC_1:29;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A65:
UsedInt*Loc i = {}
by A58, Th32;
hence (Exec (i,s)) | (UsedInt*Loc i) =
{}
by RELAT_1:81
.=
(Exec (i,t)) | (UsedInt*Loc i)
by A65, RELAT_1:81
;
verum end; suppose
InsCode i = 9
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location,
f being
FinSeq-Location such that A66:
i = b := (
f,
a)
by SCMFSA_2:38;
A67:
UsedIntLoc i = {a,b}
by A66, Th17;
then A68:
a in UsedIntLoc i
by TARSKI:def 2;
then
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A69:
s . a = t . a
by A1, A68, FUNCT_1:49;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A66, SCMFSA_2:72
.=
IC (Exec (i,t))
by A66, SCMFSA_2:72
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A70:
UsedInt*Loc i = {f}
by A66, Th33;
then A71:
f in UsedInt*Loc i
by TARSKI:def 1;
then A72:
s . f = (s | (UsedInt*Loc i)) . f
by FUNCT_1:49;
A73:
( ex
m being
Element of
NAT st
(
m = abs (s . a) &
(Exec (i,s)) . b = (s . f) /. m ) & ex
n being
Element of
NAT st
(
n = abs (t . a) &
(Exec (i,t)) . b = (t . f) /. n ) )
by A66, SCMFSA_2:72;
s . f = t . f
by A2, A71, A72, FUNCT_1:49;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A67, A69, A73, A74, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
(
(Exec (i,s)) . f = s . f &
(Exec (i,t)) . f = t . f )
by A66, SCMFSA_2:72;
hence
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
by A2, A4, A70, A71, A72, FUNCT_1:49, GRFUNC_1:29;
verum end; suppose
InsCode i = 10
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a,
b being
Int-Location,
f being
FinSeq-Location such that A75:
i = (
f,
a)
:= b
by SCMFSA_2:39;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A75, SCMFSA_2:73
.=
IC (Exec (i,t))
by A75, SCMFSA_2:73
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A76:
(
(Exec (i,t)) . a = t . a &
(Exec (i,t)) . b = t . b )
by A75, SCMFSA_2:73;
A77:
UsedIntLoc i = {a,b}
by A75, Th17;
then A78:
a in UsedIntLoc i
by TARSKI:def 2;
then
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
then A79:
s . a = t . a
by A1, A78, FUNCT_1:49;
A80:
b in UsedIntLoc i
by A77, TARSKI:def 2;
then
s . b = (s | (UsedIntLoc i)) . b
by FUNCT_1:49;
then A81:
s . b = t . b
by A1, A80, FUNCT_1:49;
A82:
UsedInt*Loc i = {f}
by A75, Th33;
then A83:
f in UsedInt*Loc i
by TARSKI:def 1;
then
s . f = (s | (UsedInt*Loc i)) . f
by FUNCT_1:49;
then A84:
s . f = t . f
by A2, A83, FUNCT_1:49;
(
(Exec (i,s)) . a = s . a &
(Exec (i,s)) . b = s . b )
by A75, SCMFSA_2:73;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A77, A79, A81, A76, GRFUNC_1:30;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
( ex
m being
Element of
NAT st
(
m = abs (s . a) &
(Exec (i,s)) . f = (s . f) +* (
m,
(s . b)) ) & ex
n being
Element of
NAT st
(
n = abs (t . a) &
(Exec (i,t)) . f = (t . f) +* (
n,
(t . b)) ) )
by A75, SCMFSA_2:73;
hence
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
by A4, A82, A79, A81, A84, GRFUNC_1:29;
verum end; suppose
InsCode i = 11
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a being
Int-Location,
f being
FinSeq-Location such that A85:
i = a :=len f
by SCMFSA_2:40;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A85, SCMFSA_2:74
.=
IC (Exec (i,t))
by A85, SCMFSA_2:74
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A86:
(Exec (i,t)) . a = len (t . f)
by A85, SCMFSA_2:74;
A87:
(
UsedIntLoc i = {a} &
(Exec (i,s)) . a = len (s . f) )
by A85, Th18, SCMFSA_2:74;
A88:
UsedInt*Loc i = {f}
by A85, Th34;
then A89:
f in UsedInt*Loc i
by TARSKI:def 1;
then A90:
s . f = (s | (UsedInt*Loc i)) . f
by FUNCT_1:49;
then
s . f = t . f
by A2, A89, FUNCT_1:49;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A4, A87, A86, GRFUNC_1:29;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
(
(Exec (i,s)) . f = s . f &
(Exec (i,t)) . f = t . f )
by A85, SCMFSA_2:74;
hence
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
by A2, A4, A88, A89, A90, FUNCT_1:49, GRFUNC_1:29;
verum end; suppose
InsCode i = 12
;
( IC (Exec (i,s)) = IC (Exec (i,t)) & (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )then consider a being
Int-Location,
f being
FinSeq-Location such that A91:
i = f :=<0,...,0> a
by SCMFSA_2:41;
thus IC (Exec (i,s)) =
succ (IC t)
by A3, A91, SCMFSA_2:75
.=
IC (Exec (i,t))
by A91, SCMFSA_2:75
;
( (Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i) & (Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i) )A92:
UsedIntLoc i = {a}
by A91, Th18;
then A93:
a in UsedIntLoc i
by TARSKI:def 1;
then A94:
s . a = (s | (UsedIntLoc i)) . a
by FUNCT_1:49;
A95:
(
UsedInt*Loc i = {f} & ex
m being
Element of
NAT st
(
m = abs (s . a) &
(Exec (i,s)) . f = m |-> 0 ) )
by A91, Th34, SCMFSA_2:75;
(
(Exec (i,s)) . a = s . a &
(Exec (i,t)) . a = t . a )
by A91, SCMFSA_2:75;
hence
(Exec (i,s)) | (UsedIntLoc i) = (Exec (i,t)) | (UsedIntLoc i)
by A1, A4, A92, A93, A94, FUNCT_1:49, GRFUNC_1:29;
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)A96:
ex
n being
Element of
NAT st
(
n = abs (t . a) &
(Exec (i,t)) . f = n |-> 0 )
by A91, SCMFSA_2:75;
s . a = t . a
by A1, A93, A94, FUNCT_1:49;
hence
(Exec (i,s)) | (UsedInt*Loc i) = (Exec (i,t)) | (UsedInt*Loc i)
by A4, A95, A96, GRFUNC_1:29;
verum end; end;