reserve k for Nat;
reserve N for with_zero set,
   S for IC-recognized
    halting IC-Ins-separated
  non empty with_non-empty_values AMI-Struct over N;
reserve
   S for IC-recognized CurIns-recognized
    halting IC-Ins-separated
  non empty with_non-empty_values AMI-Struct over N;
reserve S for relocable IC-recognized CurIns-recognized
     halting IC-Ins-separated
  non empty with_non-empty_values AMI-Struct over N;

theorem
  for k being Nat
 for q be non halt-free finite
  (the InstructionsF of S)-valued NAT-defined Function
   for p being q-autonomic FinPartState of S
  st IC S in dom p
 for s being State of S st  p c= s
 for P being Instruction-Sequence of S
   st q c= P
  for i being Nat
   holds  Comput(P +* Reloc(q,k),s +* IncIC( p,k),i) =
     IncIC(Comput(P,s,i),k)
proof
  let k be Nat;
 let q be non halt-free finite
  (the InstructionsF of S)-valued NAT-defined Function;
 let p be q-autonomic FinPartState of S such that
A1: IC S in dom p;
  let s be State of S such that
A2:  p c= s;
  let P be Instruction-Sequence of S;
  assume
A3: q c= P;
  defpred P[Nat] means
    Comput(P+*Reloc(q,k),s+*IncIC( p,k),$1) =
     IncIC(Comput(P,s,$1),k);
A4: for i being Nat st P[i] holds P[i+1]
  proof
    let i be Nat such that
A5:  Comput(P+*Reloc(q,k),s+*IncIC( p,k),i)
     =  IncIC(Comput(P,s,i),k);
    reconsider kk = IC Comput(P,s,i) as Nat;
A6: IC S in dom Start-At (IC Comput(P,s,i) +k,S) by TARSKI:def 1;
A7: IC (IncIC(Comput(P,s,i),k))
     = IC Start-At (IC Comput(P,s,i) +k,S) by A6,FUNCT_4:13
    .= IC Comput(P,s,i) + k by FUNCOP_1:72;
    p is not empty by A1;
    then
A8: IC Comput(P,s,i) in dom q by A3,Def4,A2;
    then
A9: IC Comput(P,s,i) in dom IncAddr(q,k) by COMPOS_1:def 21;
A10: q/.kk = q.IC Comput(P,s,i) by A8,PARTFUN1:def 6
      .= P.IC Comput(P,s,i) by A8,A3,GRFUNC_1:2;
    reconsider kk = IC Comput(P,s,i) as Nat;
A11:  (IC Comput(P,s,i) +k)
     in dom Reloc(q,k) by A8,COMPOS_1:46;
A12: CurInstr(P+*Reloc(q,k),
         Comput(P+*Reloc(q,k),s+*IncIC( p,k),i))
   = (P+*Reloc(q,k)).
         IC Comput(P+*Reloc(q,k),s+*IncIC( p,k),i)
             by PBOOLE:143
      .= Reloc(q,k).(IC Comput(P,s,i) +k) by A5,A7,A11,FUNCT_4:13
      .= IncAddr(q,k).kk by A9,VALUED_1:def 12
      .= IncAddr((q)/.kk,k) by A8,COMPOS_1:def 21
      .= IncAddr (CurInstr(P,Comput(P,s,i)),k) by A10,PBOOLE:143;
    thus  Comput(P+*Reloc(q,k),
       s+*IncIC( p,k),i+1)
     =  Following(P+*Reloc(q,k),
         Comput(P+*Reloc(q,k),s+*IncIC( p,k),i))
              by EXTPRO_1:3
    .=  IncIC(Following(P,Comput(P,s,i)),k) by A5,A12,Th4
    .=  IncIC(Comput(P,s,i+1),k) by EXTPRO_1:3;
  end;
A13: IC p = IC s by A2,A1,GRFUNC_1:2;
A14:  DataPart p c=  p by MEMSTR_0:12;
  Comput(P+*Reloc(q,k),s+*IncIC( p,k),0)
    = s +* (DataPart p +* Start-At ((IC p) +k,S)) by A1,MEMSTR_0:56
   .= s +* DataPart p +* Start-At ((IC p) +k,S) by FUNCT_4:14
    .= IncIC(Comput(P,s,0),k) by A13,A14,A2,FUNCT_4:98,XBOOLE_1:1;
  then
A15: P[0];
  thus for i being Nat holds P[i] from NAT_1:sch 2(A15,A4);
end;
