reserve x for set,
  k for Element of NAT;
reserve s for State of SCMPDS;
reserve d1,d2,d3,d4,d5 for Element of SCM-Data-Loc,
  k1,k2,k3,k4,k5,k6 for Integer;
reserve I for Instruction of SCMPDS;
reserve a,b,c for Int_position;

theorem Th55:
  Exec(return a, s).IC SCMPDS = (|.s.DataLoc(s.a,RetIC).|)+2 &
Exec(return a, s).a = s.DataLoc(s.a,RetSP) & for b st a <> b holds Exec(return
  a, s).b = s.b
proof
  reconsider S = s as SCM-State by CARD_3:107;
  reconsider da = a as Element of SCM-Data-Loc by AMI_2:def 16;
  reconsider I = return a as Element of SCMPDS-Instr;
  set A1 =Address_Add(S,I address_1,RetSP), S1 =SCM-Chg(S,I address_1,S.A1),
  A2=Address_Add(S,I address_1,RetIC), lc=PopInstrLoc(S,A2);
  reconsider i = 1 as Element of Segm 15 by NAT_1:44;
 I = [ i,{}, <*da*>];
  then
A1: I address_1 = da by SCMPDS_I:3;
A2: InsCode(I) = 1;
A3: Exec(return a, s) = SCM-Exec-Res(I,S) by SCMPDS_1:def 23
    .= SCM-Chg(S1,lc) by A2,SCMPDS_1:def 22;
  hence Exec(return a, s).IC SCMPDS =(|.s.DataLoc(s.a,RetIC).|)+2 by A1,Th1,
AMI_2:11;
  thus Exec(return a, s).a = S1.da by A3,AMI_2:12
    .= s.DataLoc(s.a,RetSP) by A1,AMI_2:15;
  let b;
  reconsider mn = b as Element of SCM-Data-Loc by AMI_2:def 16;
  assume
A4: b <> a;
  thus Exec(return a, s).b = S1.mn by A3,AMI_2:12
    .= s.b by A1,A4,AMI_2:16;
end;
