reserve P,P1,P2 for Instruction-Sequence of SCM+FSA;

theorem Th2:
  for s1 being 0-started State of SCM+FSA,
      s2 being State of SCM+FSA, I being really-closed Program of SCM+FSA
   st
:::I is_closed_on s1,P1 &
     I c= P1
 for n being Nat st
   IC s2 =  n & DataPart s1 = DataPart s2 & Reloc(I,n) c= P2
for i being Nat holds
   IC Comput(P1, s1,i) + n = IC Comput(P2, s2,i) &
   IncAddr(CurInstr(P1,Comput( P1,s1,i)),n)
      = CurInstr(P2,Comput(P2,s2,i)) &
   DataPart Comput(P1, s1,i) = DataPart Comput(P2,s2,i)
proof
  let s1 be 0-started State of SCM+FSA,
      s2 be State of SCM+FSA;
  let I be really-closed Program of SCM+FSA;
A1: Start-At(0,SCM+FSA) c= s1 by MEMSTR_0:29;
::   assume
:: A2: I is_closed_on s1,P1;
  assume
A2: I c= P1;
  let n be Nat;
A3: IC SCM+FSA in dom Start-At(0,SCM+FSA) by MEMSTR_0:15;
  defpred P[Nat] means IC Comput(P1,s1,$1) + n = IC Comput(
P2,s2,$1) &
IncAddr(CurInstr(P1,Comput(P1,s1,$1)),n)
 = CurInstr(P2,Comput(P2,s2,$1)) &
 DataPart Comput(P1,s1,$1) = DataPart Comput(P2,s2,$1);
A4: IC Comput(P1,s1,0) = IC s1
    .= IC Start-At(0,SCM+FSA) by A1,A3,GRFUNC_1:2
    .=  0 by FUNCOP_1:72;
  assume
A5: IC s2 =  n;
A6:  0 in dom I by AFINSQ_1:65;
  then
A7: 0 + n in dom Reloc(I,n) by COMPOS_1:46;
  IC SCM+FSA in dom Start-At(0,SCM+FSA) by MEMSTR_0:15;
  then
A8: P1.IC s1 = P1.IC Start-At(0,SCM+FSA) by A1,GRFUNC_1:2
    .= P1. 0 by FUNCOP_1:72
    .= I. 0 by A6,A2,GRFUNC_1:2;
  assume DataPart s1 = DataPart s2;
  then
A9: DataPart Comput(P1,s1,0) = DataPart s2
    .= DataPart Comput(P2,s2,0);
  assume
A10: Reloc(I,n) c= P2;
  let i be Nat;
A11:  (P2)/.IC s2 = P2.IC s2 by PBOOLE:143;
A12: CurInstr(P1,s1) = I.0 by A8,PBOOLE:143;
  IncAddr(CurInstr(P1,Comput(P1,s1,0)),n)
     = IncAddr(CurInstr(P1,s1),n)
    .= Reloc(I,n).( 0 + n) by A12,A6,COMPOS_1:35
    .= CurInstr(P2,s2) by A5,A7,A11,A10,GRFUNC_1:2
    .= CurInstr(P2,Comput(P2,s2,0));
  then
A13: P[0] by A5,A4,A9;
A14: for k being Nat st P[k] holds P[k + 1]
  proof
    let k be Nat;
A15: Comput(P1,s1,k+1) = Following(P1,Comput(P1,s1,k))
 by EXTPRO_1:3
      .= Exec(CurInstr(P1,Comput(P1,s1,k)),
      Comput(P1,s1,k));
   IC s1 = 0 by MEMSTR_0:def 11;
   then
A16: IC s1 in dom I by AFINSQ_1:65;
A17: I c= P1+*I by FUNCT_4:25;
    reconsider l = IC Comput(P1,s1,k+1) as Element of NAT;
    reconsider
     j = CurInstr(P1,Comput(P1,s1,k+1)) as Instruction of SCM+FSA;
A18: Comput(P2,s2,k+1) = Following(P2,Comput(P2,s2,k)) by EXTPRO_1:3
      .= Exec(CurInstr(P2,Comput(P2,s2,k)),Comput(P2,s2,k));
A19:    P1 = P1+*I by A2,FUNCT_4:98;
    then
A20: IC Comput(P1,s1,k+1) in dom I by A16,A17,AMISTD_1:21;
    assume
A21: P[k];
    hence
A22: IC Comput(P1,s1,k+1) + n = IC Comput(P2,s2,k+1)
by A15,A18,SCMFSA6A:8;
    then
A23: IC Comput(P2,s2,k+1) in dom Reloc(I,n) by A20,COMPOS_1:46;
A24: l in dom I by A19,A16,A17,AMISTD_1:21;
    j = P1.IC Comput(P1,s1,k+1) by PBOOLE:143
      .= I.l by A20,A2,GRFUNC_1:2;
    hence IncAddr(CurInstr(P1,Comput(P1,s1,k+1)),n)
     = Reloc(I,n).(l + n) by A24,COMPOS_1:35
      .= P2.IC Comput(P2,s2,k+1) by A23,A22,A10,GRFUNC_1:2
      .= CurInstr(P2,Comput(P2,s2,k+1)) by PBOOLE:143;
    thus thesis by A21,A15,A18,SCMFSA6A:8;
  end;
  for k being Nat holds P[k] from NAT_1:sch 2(A13,A14);
  hence thesis;
end;
