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

theorem Th62:
  for s1,s2 being State of SCM+FSA,
      I being really-closed Program of SCM+FSA st
I is_halting_on s1,P1 & DataPart s1 = DataPart s2
  for k being Nat holds
    Comput(P1 +* I,Initialize s1,k)
   =  Comput(P2 +* I,Initialize s2,k)
   & CurInstr(P1 +* I,Comput(P1 +* I,Initialize s1,k))
    = CurInstr(P2 +* I,Comput(P2 +* I,Initialize s2,k))
proof
  let s1,s2 be State of SCM+FSA;
  set D = Data-Locations SCM+FSA;
  let I be really-closed Program of SCM+FSA;
  set ss2 = Initialize s2,
      PP2 = P2 +* I;
  set ss1 = Initialize s1,
      PP1 = P1 +* I;
A1: I c= P1 +* I by FUNCT_4:25;
A2: I c= P2 +* I by FUNCT_4:25;
  assume
 I is_halting_on s1,P1;
  assume
A3: DataPart s1 = DataPart s2;
    let k be Nat;
    IC ss1 = 0 by MEMSTR_0:def 11;
    then IC ss1 in dom I by AFINSQ_1:65;
    then
A4: IC Comput(PP1, ss1,k) in dom I by A1,AMISTD_1:21;
    IC ss2 = 0 by MEMSTR_0:def 11;
    then
A5:   IC ss2 in dom I by AFINSQ_1:65;
    then
A6: for m being Nat st m < k holds IC Comput(PP2, ss2,m) in dom I
        by AMISTD_1:21,A2;
     ss1 =  ss2 by A3,MEMSTR_0:80;
    hence
     Comput(PP1, ss1,k) =  Comput(PP2, ss2,k)
        by A6,A1,A2,AMISTD_2:10;
    then
A7: IC Comput(PP1, ss1,k) = IC Comput(PP2, ss2,k);
A8: IC Comput(PP2, ss2,k) in dom I by AMISTD_1:21,A5,A2;
    thus CurInstr(PP2,Comput(PP2,ss2,k))
     = PP2.IC Comput(PP2, ss2,k) by PBOOLE:143
      .= I.IC Comput(PP2, ss2,k) by A8,A2,GRFUNC_1:2
      .= PP1.IC Comput(PP1, ss1,k) by A7,A4,A1,GRFUNC_1:2
      .= CurInstr(PP1,Comput(PP1,ss1,k)) by PBOOLE:143;
end;
