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 Th58:
  for k be Integer,loc be Element of NAT holds ex
  s be State of SCMPDS st s.NAT=loc & for d being Int_position holds s.d = k
proof
  set f = the_Values_of SCMPDS;
  let k be Integer,loc be Element of NAT;
A1: {NAT} c= SCM-Memory by AMI_2:22,ZFMISC_1:31;
A2: dom f = SCM-Memory by PARTFUN1:def 2;
  consider s1 be State of SCMPDS such that
A3: for d being Int_position holds s1.d = k by Th57;
  reconsider S = s1 as SCM-State by CARD_3:107;
  set t = S +* (NAT.--> loc);
A4: dom S = the carrier of SCMPDS by PARTFUN1:def 2;
  NAT in dom (NAT.--> loc) by TARSKI:def 1;
  then
A6: t.NAT = (NAT.--> loc).NAT by FUNCT_4:13
    .= loc by FUNCOP_1:72;
  then
A7: t.NAT in NAT;
A8: for x being object st x in dom f holds t.x in f.x
  proof
    let x be object such that
A9: x in dom f;
    per cases;
    suppose
      x = NAT;
      hence thesis by A7,AMI_2:6;
    end;
    suppose
      x <> NAT;
      then not x in dom (NAT.--> loc) by TARSKI:def 1;
      then t.x = S.x by FUNCT_4:11;
      hence thesis by A9,CARD_3:9;
    end;
  end;
  dom t = dom S \/ dom (NAT.--> loc) by FUNCT_4:def 1
    .= SCM-Memory \/ dom (NAT.--> loc) by A4
    .= SCM-Memory \/ {NAT}
    .= SCM-Memory by A1,XBOOLE_1:12;
  then reconsider s=t as State of SCMPDS by A2,A8,FUNCT_1:def 14,PARTFUN1:def 2
,RELAT_1:def 18;
  take s;
  thus s.NAT=loc by A6;
  hereby
    let d be Int_position;
    d in SCM-Data-Loc by AMI_2:def 16;
    then
A10: ex j be Nat st d=[1,j] by AMI_2:23;
     not d in dom (NAT.--> loc) by A10,TARSKI:def 1;
    hence s.d=s1.d by FUNCT_4:11
      .=k by A3;
  end;
end;
