let s be State of SCMPDS; for i being Instruction of SCMPDS
for l being Element of NAT holds (Exec (i,s)) . l = s . l
let i be Instruction of SCMPDS; for l being Element of NAT holds (Exec (i,s)) . l = s . l
let l be Element of NAT ; (Exec (i,s)) . l = s . l
reconsider c = i as Element of SCMPDS-Instr ;
reconsider S = s as Element of product SCMPDS-OK by PBOOLE:155;
reconsider l9 = l as Element of NAT ;
now per cases
( c in { [0,{},<*k1*>] where k1 is Element of INT : verum } or c in { [1,{},<*d1*>] where d1 is Element of SCM-Data-Loc : verum } or c in { [I1,{},<*d2,k2*>] where I1 is Element of Segm 14, d2 is Element of SCM-Data-Loc , k2 is Element of INT : I1 in {2,3} } or c in { [I2,{},<*d3,k3,k4*>] where I2 is Element of Segm 14, d3 is Element of SCM-Data-Loc , k3, k4 is Element of INT : I2 in {4,5,6,7,8} } or c in { [I3,{},<*d4,d5,k5,k6*>] where I3 is Element of Segm 14, d4, d5 is Element of SCM-Data-Loc , k5, k6 is Element of INT : I3 in {9,10,11,12,13} } )
by Lm1;
case A1:
c in { [1,{},<*d1*>] where d1 is Element of SCM-Data-Loc : verum }
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(c address_1),
(S . (Address_Add (S,(c address_1),RetSP))));
ex
d1 being
Element of
SCM-Data-Loc st
c = [1,{},<*d1*>]
by A1;
hence (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(c address_1),(S . (Address_Add (S,(c address_1),RetSP))))),(PopInstrLoc (S,(Address_Add (S,(c address_1),RetIC)))))) . l9
by SCMPDS_1:def 24
.=
(SCM-Chg (S,(c address_1),(S . (Address_Add (S,(c address_1),RetSP))))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; case A2:
c in { [I1,{},<*d2,k2*>] where I1 is Element of Segm 14, d2 is Element of SCM-Data-Loc , k2 is Element of INT : I1 in {2,3} }
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(c P21address),
(c P22const));
consider I1 being
Element of
Segm 14,
d1 being
Element of
SCM-Data-Loc ,
k1 being
Element of
INT such that A3:
c = [I1,{},<*d1,k1*>]
and A4:
I1 in {2,3}
by A2;
now per cases
( I1 = 2 or I1 = 3 )
by A4, TARSKI:def 2;
case A5:
I1 = 3
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P21address),(c P22const))),
(IC S));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P21address),(c P22const))),(IC S))),(succ (IC S)))) . l9
by A3, A5, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P21address),(c P22const))),(IC S))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; end; end; hence
(SCM-Exec-Res (c,S)) . l9 = S . l9
;
verum end; case
c in { [I2,{},<*d3,k3,k4*>] where I2 is Element of Segm 14, d3 is Element of SCM-Data-Loc , k3, k4 is Element of INT : I2 in {4,5,6,7,8} }
;
(SCM-Exec-Res (c,S)) . l9 = S . l9then consider I1 being
Element of
Segm 14,
d1 being
Element of
SCM-Data-Loc ,
k1,
k2 being
Element of
INT such that A6:
c = [I1,{},<*d1,k1,k2*>]
and A7:
I1 in {4,5,6,7,8}
;
now per cases
( I1 = 4 or I1 = 5 or I1 = 6 or I1 = 7 or I1 = 8 )
by A7, ENUMSET1:def 3;
case A8:
I1 = 7
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P31address),(c P32const))),
(c P33const));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P31address),(c P32const))),(c P33const))),(succ (IC S)))) . l9
by A6, A8, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P31address),(c P32const))),(c P33const))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; case A9:
I1 = 8
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P31address),(c P32const))),
((S . (Address_Add (S,(c P31address),(c P32const)))) + (c P33const)));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P31address),(c P32const))),((S . (Address_Add (S,(c P31address),(c P32const)))) + (c P33const)))),(succ (IC S)))) . l9
by A6, A9, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P31address),(c P32const))),((S . (Address_Add (S,(c P31address),(c P32const)))) + (c P33const)))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; end; end; hence
(SCM-Exec-Res (c,S)) . l9 = S . l9
;
verum end; case
c in { [I3,{},<*d4,d5,k5,k6*>] where I3 is Element of Segm 14, d4, d5 is Element of SCM-Data-Loc , k5, k6 is Element of INT : I3 in {9,10,11,12,13} }
;
(SCM-Exec-Res (c,S)) . l9 = S . l9then consider I1 being
Element of
Segm 14,
d1,
d2 being
Element of
SCM-Data-Loc ,
k1,
k2 being
Element of
INT such that A10:
c = [I1,{},<*d1,d2,k1,k2*>]
and A11:
I1 in {9,10,11,12,13}
;
now per cases
( I1 = 9 or I1 = 10 or I1 = 11 or I1 = 12 or I1 = 13 )
by A11, ENUMSET1:def 3;
case A12:
I1 = 9
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P41address),(c P43const))),
((S . (Address_Add (S,(c P41address),(c P43const)))) + (S . (Address_Add (S,(c P42address),(c P44const))))));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) + (S . (Address_Add (S,(c P42address),(c P44const))))))),(succ (IC S)))) . l9
by A10, A12, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) + (S . (Address_Add (S,(c P42address),(c P44const))))))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; case A13:
I1 = 10
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P41address),(c P43const))),
((S . (Address_Add (S,(c P41address),(c P43const)))) - (S . (Address_Add (S,(c P42address),(c P44const))))));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) - (S . (Address_Add (S,(c P42address),(c P44const))))))),(succ (IC S)))) . l9
by A10, A13, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) - (S . (Address_Add (S,(c P42address),(c P44const))))))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; case A14:
I1 = 11
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P41address),(c P43const))),
((S . (Address_Add (S,(c P41address),(c P43const)))) * (S . (Address_Add (S,(c P42address),(c P44const))))));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) * (S . (Address_Add (S,(c P42address),(c P44const))))))),(succ (IC S)))) . l9
by A10, A14, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) * (S . (Address_Add (S,(c P42address),(c P44const))))))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; case A15:
I1 = 12
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SA =
SCM-Chg (
S,
(Address_Add (S,(c P41address),(c P43const))),
((S . (Address_Add (S,(c P41address),(c P43const)))) div (S . (Address_Add (S,(c P42address),(c P44const))))));
set SB =
SCM-Chg (
(SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) div (S . (Address_Add (S,(c P42address),(c P44const))))))),
(Address_Add (S,(c P42address),(c P44const))),
((S . (Address_Add (S,(c P41address),(c P43const)))) mod (S . (Address_Add (S,(c P42address),(c P44const))))));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) div (S . (Address_Add (S,(c P42address),(c P44const))))))),(Address_Add (S,(c P42address),(c P44const))),((S . (Address_Add (S,(c P41address),(c P43const)))) mod (S . (Address_Add (S,(c P42address),(c P44const))))))),(succ (IC S)))) . l9
by A10, A15, SCMPDS_1:def 24
.=
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) div (S . (Address_Add (S,(c P42address),(c P44const))))))),(Address_Add (S,(c P42address),(c P44const))),((S . (Address_Add (S,(c P41address),(c P43const)))) mod (S . (Address_Add (S,(c P42address),(c P44const))))))) . l9
by SCMPDS_1:28
.=
(SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),((S . (Address_Add (S,(c P41address),(c P43const)))) div (S . (Address_Add (S,(c P42address),(c P44const))))))) . l9
by SCMPDS_1:32
.=
S . l9
by SCMPDS_1:32
;
verum end; case A16:
I1 = 13
;
(SCM-Exec-Res (c,S)) . l9 = S . l9set SS =
SCM-Chg (
S,
(Address_Add (S,(c P41address),(c P43const))),
(S . (Address_Add (S,(c P42address),(c P44const)))));
thus (SCM-Exec-Res (c,S)) . l9 =
(SCM-Chg ((SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),(S . (Address_Add (S,(c P42address),(c P44const)))))),(succ (IC S)))) . l9
by A10, A16, SCMPDS_1:def 24
.=
(SCM-Chg (S,(Address_Add (S,(c P41address),(c P43const))),(S . (Address_Add (S,(c P42address),(c P44const)))))) . l9
by SCMPDS_1:28
.=
S . l9
by SCMPDS_1:32
;
verum end; end; end; hence
(SCM-Exec-Res (c,S)) . l9 = S . l9
;
verum end; end; end;
hence
(Exec (i,s)) . l = s . l
by SCMPDS_1:def 25; verum