reserve x for set,
  m,n for Nat,
  a,b for Int_position,
  i,j,k for Instruction of SCMPDS,
  s,s1,s2 for State of SCMPDS,
  k1,k2 for Integer,
  loc,l for Nat,
  I,J,K for Program of SCMPDS;
reserve P,P1,P2,Q for Instruction-Sequence of SCMPDS;

theorem Th28: ::SCMPDS_5:39
  for s being 0-started State of SCMPDS
  for I being halt-free Program of SCMPDS, J being shiftable
  Program of SCMPDS st I is_closed_on s,P & I is_halting_on s,P
   & J is_closed_on
  IExec(I,P,s),P & J is_halting_on IExec(I,P,s),P
   holds IExec(I ';' J,P,s).a
   = IExec(J,P,Initialize IExec(I,P,s)).a
proof
  let s be 0-started State of SCMPDS;
  let I be halt-free Program of SCMPDS,J be shiftable Program of SCMPDS;
  assume that
A1: I is_closed_on s,P and
A2: I is_halting_on s,P and
A3: J is_closed_on IExec(I,P,s),P and
A4: J is_halting_on IExec(I,P,s),P;
A5: not a in dom Start-At (IC IExec(J,P,Initialize IExec(I,P,s))
    + card I,SCMPDS) by SCMPDS_4:18;
  IExec(I ';' J,P,s)
   = IncIC(IExec(J,P,Initialize IExec(I,P,s)),card I)
    by A1,A2,A3,A4,Th27;
  hence thesis by A5,FUNCT_4:11;
end;
