reserve p,P,P1,P2 for Instruction-Sequence of SCM+FSA;
reserve s, S for State of SCM+FSA,
  I, J for Program of SCM+FSA,
  Ig for good Program of SCM+FSA,
  i for good sequential Instruction of SCM+FSA,
  j for sequential Instruction of SCM+FSA,
  a, b for Int-Location,
  f for FinSeq-Location;

theorem Th3: :: SCMFSA6B:27
 for I being really-closed Program of SCM+FSA
 for s being 0-started State of SCM+FSA
  st I c= p & p halts_on s
 for m being Nat st m <= LifeSpan(p,s) holds
   Comput(p, s,m) =  Comput(p+*(I ";" J),s,m)
proof let I be really-closed Program of SCM+FSA;
 let s be 0-started State of SCM+FSA;
  assume that
A1: I c= p and
A2: p halts_on s;
  defpred X[Nat] means
    $1 <= LifeSpan(p,s) implies
     Comput(p, s,$1) =  Comput(p+*(I ";" J),s,$1);
A3: for m being Nat st X[m] holds X[m+1]
  proof
    dom(I ";" J) = dom I \/ dom Reloc(J, card I) by SCMFSA6A:39;
    then
A4: dom I c= dom(I ";" J) by XBOOLE_1:7;
    set sIJ = s,
        pIJ = p+*(I ";" J);
A5: I ";" J c= pIJ by FUNCT_4:25;
    let m be Nat;
    assume
A6: m <= LifeSpan(p,s) implies
       Comput(p, s,m) =  Comput(p+*(I ";"J),s,m);
A7: Comput(pIJ,sIJ,m+1) = Following(pIJ,Comput(pIJ,sIJ,m)) by EXTPRO_1:3;
A8: Comput(p,s,m+1) = Following(p,Comput(p,s,m)) by EXTPRO_1:3;
A9:  p/.IC Comput(p,s,m) = p.IC Comput(p,s,m) by PBOOLE:143;
    assume
A10: m+1 <= LifeSpan(p,s);
    then
A11: IC(Comput(p,s,m)) = IC(Comput(pIJ,sIJ,m)) by A6,NAT_1:13;
    IC s = 0 by MEMSTR_0:def 11;
    then IC s in dom I by AFINSQ_1:65;
    then
A12: IC Comput(p,s,m) in dom I by A1,AMISTD_1:21;
A13: CurInstr(p,Comput(p,s,m))
 = I.IC(Comput(p,s,m)) by A12,A9,A1,GRFUNC_1:2;
A14:  (pIJ)/.IC Comput(pIJ,sIJ,m)
 = pIJ.IC Comput(pIJ,sIJ,m) by PBOOLE:143;
    m < LifeSpan(p,s) by A10,NAT_1:13;
    then I.IC(Comput(p,s,m)) <> halt SCM+FSA by A2,A13,EXTPRO_1:def 15;
    then CurInstr(p,Comput(p,s,m))
     = (I ";" J).IC(Comput(p,s,m)) by A12,A13,SCMFSA6A:15
      .= CurInstr(pIJ,Comput(pIJ,sIJ,m))
       by A11,A12,A4,A14,A5,GRFUNC_1:2;
    hence thesis by A6,A10,A8,A7,NAT_1:13;
  end;
A15: X[0];
  thus for n being Nat holds X[n] from NAT_1:sch 2(A15,A3);
end;
