reserve x,a for Int_position,
  s for State of SCMPDS;
reserve P,Q 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,c be Integer,X be set st
 (for x st x in X holds s.x >= c+s.DataLoc(s.a,i)) &
 (for t be 0-started State of SCMPDS,Q st (for x st
x in X holds t.x >= c+t.DataLoc(s.a,i)) & t.a=s.a & t.DataLoc(s.a,i) > 0 holds
IExec(I,Q,t).a=t.a & I is_closed_on t,Q & I is_halting_on t,Q
 & IExec(I,Q,t).DataLoc(s.
  a,i) < t.DataLoc(s.a,i) & for x st x in X
   holds IExec(I,Q,t).x >= c+IExec(I,Q,t).DataLoc(s.a,i))
    holds while>0(a,i,I) is_closed_on s, P & while>0(a,i,I)
is_halting_on s, P & (s.DataLoc(s.a,i) > 0
 implies
  IExec(while>0(a,i,I),P,s) =IExec(while>0(a,i,I),P,Initialize IExec(I,P,s)))
proof
  let s be 0-started State of SCMPDS,
      I be halt-free shiftable Program of SCMPDS, a be
  Int_position, i,c be Integer,X be set;
  set b=DataLoc(s.a,i);
  assume
A1: for x st x in X holds s.x >= c+s.b;
  assume
A2: for t be 0-started State of SCMPDS,Q
 st (for x st x in X holds t.x >= c+t.b) & t
.a=s.a & t.b > 0 holds IExec(I,Q,t).a=t.a & I is_closed_on t,Q
 & I is_halting_on t,Q
  & IExec(I,Q,t).b < t.b & for x st x in X
   holds IExec(I,Q,t).x >= c+IExec(I,Q,t).b;
  then
  for t being 0-started State of SCMPDS,Q
   st (for x st x in X holds t.x >= c+t.b) & (
for x st x in {} holds t.x=s.x) & t.a=s.a & t.b > 0
 holds (IExec(I,Q,t).a=t.a & I
is_closed_on t,Q & I is_halting_on t,Q & IExec(I,Q,t).b < t.b &
 for x st x in X holds
  IExec(I,Q,t).x >= c+IExec(I,Q,t).b) & for x st x in {}
   holds IExec(I,Q,t).x=t.x;
  hence
  while>0(a,i,I) is_closed_on s, P
   & while>0(a,i,I) is_halting_on s, P by A1,Th25;
  for t being 0-started State of SCMPDS,Q
   st (for x st x in X holds t.x >= c+t.b) & (
for x st x in {} holds t.x=s.x) & t.a=s.a & t.b > 0
 holds (IExec(I,Q,t).a=t.a & I
is_closed_on t,Q & I is_halting_on t,Q & IExec(I,Q,t).b < t.b &
 for x st x in X holds
IExec(I,Q,t).x >= c+IExec(I,Q,t).b) & for x st x in {}
 holds IExec(I,Q,t).x=t.x by A2;
  hence thesis by A1,Th25;
end;
