theorem
  for I being shiftable Program of SCMPDS,k1,k2 be Integer,a be
  Int_position st card I + k2 >= 0 holds I ';' (a,k1)<>0_goto k2 is shiftable
proof
  let I be shiftable Program of SCMPDS,k1,k2 be Integer,a be Int_position;
  set ii= (a,k1)<>0_goto k2, J= Load ii;
  set Ig=I ';' ii;
  assume
A1: card I + k2 >= 0;
  now
    set D = {l+card I where l is Nat: l in dom J };
    let n,i such that
A2:  n in dom Ig and
A3: i=Ig.( n);
    dom Shift(J,card I) = D by VALUED_1:def 12;
    then
A4: dom Ig = dom I \/ D by FUNCT_4:def 1;
    per cases by A2,A4,XBOOLE_0:def 3;
    suppose
A5:    n in dom I;
      then I. n=i by A3,AFINSQ_1:def 3;
      hence InsCode i <> 1 & InsCode i <> 3 & i valid_at n by A5,Def9;
    end;
    suppose
       n in D;
      then consider l being Nat such that
A6:   n = l+card I and
A7:   l in dom J;
      dom J = {  0 } by FUNCOP_1:13;
      then
A8:    l =  0 by A7,TARSKI:def 1;
      then
A9:   ii=J. l
        .=i by A3,A6,A7,AFINSQ_1:def 3;
      hence InsCode i <> 1 & InsCode i <> 3;
      thus i valid_at n by A1,A6,A8,A9;
    end;
  end;
  hence thesis;
end;
