reserve x for Int_position,
  n,p0 for Nat;
reserve P,Q,U,V for Instruction-Sequence of SCMPDS;

theorem
  for s being 0-started State of SCMPDS,I being halt-free shiftable Program of
SCMPDS , a be Int_position, i be Integer,n be Nat
 st s.DataLoc(s.a,i) > 0 & n > 0 & a <> DataLoc(s.a,i) &
 (for t be 0-started State of SCMPDS,Q st t.a=s.a
 holds IExec(I,Q,t).a=t.a
 & IExec(I,Q,t).DataLoc(s.a,i)=t.DataLoc(s.a,i) & I
  is_closed_on t,Q & I is_halting_on t,Q) holds
   for-down(a,i,n,I) is_closed_on s,P &
  for-down(a,i,n,I) is_halting_on s,P
proof
  let s be 0-started State of SCMPDS,
      I be halt-free shiftable Program of SCMPDS,
      a be Int_position, i be Integer,n be Nat;
  assume that
A1: s.DataLoc(s.a,i) > 0 & n > 0 & a <> DataLoc(s.a,i) and
A2: for t be 0-startedState of SCMPDS,Q
 st t.a=s.a holds IExec(I,Q,t).a=t.a
  & IExec(I,Q,t).DataLoc(s.a,i)=t.DataLoc(s.a,i) & I is_closed_on t,Q
   & I is_halting_on t,Q;
  for t being 0-started State of SCMPDS,Q st
    (for x be Int_position st x in {} holds t.x=s.x) & t.a=s.a
     holds IExec(I,Q,t).a=t.a
 & IExec(I,Q,t).DataLoc(s.a,i)=t.DataLoc(
  s.a,i) & I is_closed_on t,Q & I is_halting_on t,Q
   & for y be Int_position st y in
  {} holds IExec(I,Q,t).y=t.y by A2;
  hence thesis by A1,SCMPDS_7:48;
end;
