let s be State of SCMPDS; for k1 being Integer
for a being Int_position holds
( (Exec ((saveIC (a,k1)),s)) . (IC ) = (IC s) + 1 & (Exec ((saveIC (a,k1)),s)) . (DataLoc ((s . a),k1)) = IC s & ( for b being Int_position st DataLoc ((s . a),k1) <> b holds
(Exec ((saveIC (a,k1)),s)) . b = s . b ) )
let k1 be Integer; for a being Int_position holds
( (Exec ((saveIC (a,k1)),s)) . (IC ) = (IC s) + 1 & (Exec ((saveIC (a,k1)),s)) . (DataLoc ((s . a),k1)) = IC s & ( for b being Int_position st DataLoc ((s . a),k1) <> b holds
(Exec ((saveIC (a,k1)),s)) . b = s . b ) )
let a be Int_position; ( (Exec ((saveIC (a,k1)),s)) . (IC ) = (IC s) + 1 & (Exec ((saveIC (a,k1)),s)) . (DataLoc ((s . a),k1)) = IC s & ( for b being Int_position st DataLoc ((s . a),k1) <> b holds
(Exec ((saveIC (a,k1)),s)) . b = s . b ) )
reconsider S = s as SCM-State by CARD_3:107;
reconsider m = IC S as Element of NAT ;
reconsider da = a as Element of SCM-Data-Loc by AMI_2:def 16;
reconsider I = saveIC (a,k1) as Element of SCMPDS-Instr ;
set A1 = Address_Add (S,(I P21address),(I P22const));
set S1 = SCM-Chg (S,(Address_Add (S,(I P21address),(I P22const))),m);
reconsider i = 3 as Element of Segm 15 by NAT_1:44;
set DL = DataLoc ((s . a),k1);
I = [i,{},<*da,k1*>]
;
then A1:
( I P21address = da & I P22const = k1 )
by SCMPDS_I:5;
A2:
InsCode I = 3
;
A3: Exec ((saveIC (a,k1)),s) =
SCM-Exec-Res (I,S)
by SCMPDS_1:def 23
.=
SCM-Chg ((SCM-Chg (S,(Address_Add (S,(I P21address),(I P22const))),m)),((IC S) + 1))
by A2, SCMPDS_1:def 22
;
hence
(Exec ((saveIC (a,k1)),s)) . (IC ) = (IC s) + 1
by Th1, AMI_2:11; ( (Exec ((saveIC (a,k1)),s)) . (DataLoc ((s . a),k1)) = IC s & ( for b being Int_position st DataLoc ((s . a),k1) <> b holds
(Exec ((saveIC (a,k1)),s)) . b = s . b ) )
thus (Exec ((saveIC (a,k1)),s)) . (DataLoc ((s . a),k1)) =
(SCM-Chg (S,(Address_Add (S,(I P21address),(I P22const))),m)) . (Address_Add (S,(I P21address),(I P22const)))
by A3, A1, AMI_2:12
.=
IC s
by Th1, AMI_2:15
; for b being Int_position st DataLoc ((s . a),k1) <> b holds
(Exec ((saveIC (a,k1)),s)) . b = s . b
let b be Int_position; ( DataLoc ((s . a),k1) <> b implies (Exec ((saveIC (a,k1)),s)) . b = s . b )
reconsider mn = b as Element of SCM-Data-Loc by AMI_2:def 16;
assume A4:
DataLoc ((s . a),k1) <> b
; (Exec ((saveIC (a,k1)),s)) . b = s . b
thus (Exec ((saveIC (a,k1)),s)) . b =
(SCM-Chg (S,(Address_Add (S,(I P21address),(I P22const))),m)) . mn
by A3, AMI_2:12
.=
s . b
by A1, A4, AMI_2:16
; verum