reserve m, n for Nat,
  x for set,
  i for Instruction of SCM+FSA,
  I for Program of SCM+FSA,
  a for Int-Location,
  f for FinSeq-Location,
  l, l1 for Nat,
  s,s1,s2 for State of SCM+FSA,
  P,P1,P2 for Instruction-Sequence of SCM+FSA;

theorem Th16:
 for s being 0-started State of SCM+FSA
  for I being keeping_0 really-closed Program of SCM+FSA st P+*I halts_on s
for J being really-closed Program of SCM+FSA st I ";" J c= P
 for k being Element of NAT holds
   IncIC(Comput(P+*I+*J, Initialize Result(P+*I,s),k),card I)
  = Comput(P+*(I ";" J),s,(LifeSpan(P+*I,s)+1+k))
proof
 let s be 0-started State of SCM+FSA;
  let I be keeping_0 really-closed Program of SCM+FSA;
  assume
A1: P+*I halts_on s;
  let J be really-closed Program of SCM+FSA;
  set RI = Result(P+*I,s);
  set JSA0 = Start-At(0,SCM+FSA);
  set RIJ = RI +* JSA0;
  defpred X[Nat] means IncIC(Comput(P+*I+*J,RIJ,$1),card I)
   =  Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)+1+$1);
  assume
A2: I ";" J c= P;
   then
A3: P +* (I ";" J) = P by FUNCT_4:98;
A4: for n being Nat st X[n] holds X[n+1]
  proof
    let k be Nat;
    set k1 = k+1;
    set CRk = Comput(P+*I+*J,RIJ,k);
    set CRSk = IncIC(CRk,card I);
    set CIJk = Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)+1+k);
    set CRk1 = Comput(P+*I+*J,RIJ,k1);
    set CRSk1 = IncIC(CRk1, card I);
    set CIJk1 = Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)+1+k1);
    assume
A5: IncIC(Comput(P+*I+*J,RIJ,k),card I)
    =  Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)+1+k);
A6: IncAddr(CurInstr(P+*I+*J,CRk), card I) = CurInstr(P+*(I ";" J),CIJk)
    proof
A7:  I ";" J c= P+*(I ";" J) by FUNCT_4:25;
      Reloc(J, card I) c= I ";" J by SCMFSA6A:38;
      then
A8:  Reloc(J, card I) c= P+*(I ";" J) by A7,XBOOLE_1:1;
A9: dom(P+*(I ";" J)) = NAT by PARTFUN1:def 2;
A10:  CurInstr(P+*(I ";" J),CIJk) = (P+*(I ";" J)).IC CRSk
         by A5,A9,PARTFUN1:def 6
        .= (P+*(I ";" J)).(IC CRk + card I) by FUNCT_4:113;
      reconsider ii = IC CRk as Element of NAT;
     IC RIJ = 0 by MEMSTR_0:def 11;
     then
A11:   IC RIJ in dom J by AFINSQ_1:65;
     J c= P+*I+*J by FUNCT_4:25;
     then
A12:  IC CRk in dom J by AMISTD_1:21,A11;
      then
A13:  IC CRk in dom IncAddr(J, card I) by COMPOS_1:def 21;
      then
A14:  Shift(IncAddr(J, card I), card I).(IC CRk + card I) = IncAddr(J,
      card I).ii by VALUED_1:def 12
        .= IncAddr(J/.ii, card I) by A12,COMPOS_1:def 21;
      dom Shift(IncAddr(J, card I), card I) = { il+card I where il is
      Nat: il in dom IncAddr(J, card I)} by VALUED_1:def 12;
      then
A15:  ii + card I in dom Shift(IncAddr(J, card I), card I) by A13;
A16:   J c= P+*I+*J by FUNCT_4:25;
A17:   J/.ii = J.ii by A12,PARTFUN1:def 6;
      thus
      IncAddr(CurInstr(P+*I+*J,CRk), card I)
         = IncAddr((P+*I+*J).IC CRk,card I) by PBOOLE:143
        .= Reloc(J,card I).(IC CRk + card I) by A14,A16,A17,A12,GRFUNC_1:2
        .= CurInstr(P+*(I ";" J),CIJk) by A10,A8,A15,GRFUNC_1:2;
    end;
A18:  Exec(CurInstr(P+*(I ";" J),CIJk), CIJk)
    =  IncIC(Following(P+*I+*J,CRk),card I) by A6,A5,AMISTD_5:4;
    CIJk1 =Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)+1+k+1);
    then
A19: CIJk1 = Following(P+*(I ";" J),CIJk) by EXTPRO_1:3;
A20: for a being Int-Location holds CRSk1.a = CIJk1.a
         by A19,A18,EXTPRO_1:3;
A21: for f being FinSeq-Location holds CRSk1.f = CIJk1.f
              by A19,A18,EXTPRO_1:3;
    IC CRSk1 = IC CRk1 + card I by FUNCT_4:113
      .= IC Following(P+*I+*J,CRk) + card I by EXTPRO_1:3;
    then IC CRSk1 = IC CIJk1 by A19,A18,FUNCT_4:113;
    hence thesis by A20,A21,SCMFSA_2:61;
  end;
A22:  Directed I c= I ";" J by SCMFSA6A:16;
A23: now
    set s2 = Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)+1+0);
    set s1 = IncIC(RIJ,card I);
    thus IC s1 = IC RIJ + card I by FUNCT_4:113
      .= 0+card I by FUNCT_4:113
      .= IC s2 by A1,A22,Th11,A3,A2,XBOOLE_1:1;
A24: DataPart Comput(P,s,LifeSpan(P+*I,s)) =
    DataPart Comput(P,s,LifeSpan(P+*I,s)+1)
     by A1,A22,Th12,A2,XBOOLE_1:1;
    set o = LifeSpan(P+*I,s);
    hereby
      let a be Int-Location;
A25:  not a in dom JSA0 by SCMFSA_2:102;
      not a in dom Start-At (IC RIJ + card I,SCM+FSA) by SCMFSA_2:102;
      hence s1.a = RIJ.a by FUNCT_4:11
        .= RI.a by A25,FUNCT_4:11
        .= Comput(P+*I,s,LifeSpan(P+*I,s)).a by A1,EXTPRO_1:23
        .= Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)).a by Th14,A1
        .= s2.a by A24,A3,SCMFSA_M:2;
    end;
    let f be FinSeq-Location;
A26: not f in dom JSA0 by SCMFSA_2:103;
    not f in dom Start-At (IC RIJ + card I,SCM+FSA) by SCMFSA_2:103;
    hence s1.f = RIJ.f by FUNCT_4:11
      .= RI.f by A26,FUNCT_4:11
      .= Comput(P+*I,s,LifeSpan(P+*I,s)).f by A1,EXTPRO_1:23
      .= Comput(P+*(I ";" J),s,LifeSpan(P+*I,s)).f by Th14,A1
      .= s2.f by A24,A3,SCMFSA_M:2;
  end;
A27: X[0] by A23,SCMFSA_2:61;
  for k being Nat holds X[k] from NAT_1:sch 2(A27, A4);
  hence thesis;
end;
