reserve m,n for Nat,
  I for Program of SCM+FSA,
  s,s1,s2 for State of SCM+FSA,
  a for Int-Location,
  f for FinSeq-Location,
  p,p1,p2 for Instruction-Sequence of SCM+FSA;

theorem Th14:
  for I being keepInt0_1 really-closed Program of SCM+FSA st p+*I halts_on s
  for J being really-closed Program of SCM+FSA st
   Initialize ((intloc 0) .--> 1) c= s & I ";" J c= p
for k being Element of NAT holds (Comput(p +* I +* J,
(Result(p +* I,s) +* Initialize ((intloc 0) .--> 1)),k) +*
  Start-At (IC Comput(p +* I +* J, (
  Result(p +* I,s) +* Initialize ((intloc 0) .--> 1)),k) + card I,SCM+FSA))
  =  Comput(p +* (I ";" J), s,LifeSpan(p +* I,s)+1+k)
proof
  let I be keepInt0_1 really-closed Program of SCM+FSA;
  assume
A1: p+*I halts_on s;
  let J be really-closed Program of SCM+FSA;
  set sISA0 = s +* iS,
      pISA0 = p +* I;
A2: I c= pISA0 by FUNCT_4:25;
A3: iS c= sISA0 by FUNCT_4:25;
  set RI = Result(p +* I,s +* iS),
      pRI = p +* I;
  set RIJ = RI +* iS,
      pRIJ = pRI +* J;
  set sIJSA0 = Initialized s,
      pIJSA0 = p +* (I ";" J);
  defpred X[Nat] means (Comput(pRIJ, RIJ,$1) +* Start-At (IC
   Comput(pRIJ, RIJ,$1) + card I,SCM+FSA))
   =  Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)+1+$1);
  assume
A4:   iS c= s;
  then
A5: s = sIJSA0 by FUNCT_4:98;
  assume
A6: I ";" J c= p;
   then
A7: pIJSA0 = p by FUNCT_4:98;
A8: for k being Nat st X[k] holds X[k+1]
  proof
    let k be Nat;
    set k1 = k+1;
    set CRk = Comput(pRIJ, RIJ,k);
    set CRSk = IncIC(CRk,card I);
    set CIJk = Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)+1+k);
    set CRk1 = Comput(pRIJ, RIJ,k1);
    set CRSk1 = CRk1 +* Start-At (IC CRk1 + card I,SCM+FSA);
    set CIJk1 = Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)+1+k1);
    assume
A9: (Comput(pRIJ, RIJ,k)
      +* Start-At (IC Comput(pRIJ,RIJ,k) + card I,SCM+FSA))
    =  Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)+1+k);
A10: IncAddr(CurInstr(pRIJ,CRk), card I) = CurInstr(pIJSA0,CIJk)
    proof
A11:   J c= pRIJ by FUNCT_4:25;
A12:    Reloc(J, card I) c= I ";" J by SCMFSA6A:38;
     I ";" J c= pIJSA0 by FUNCT_4:25;
     then
A13: Reloc(J, card I) c= pIJSA0 by A12,XBOOLE_1:1;
A14:  pIJSA0/.IC CIJk = pIJSA0.IC CIJk by PBOOLE:143;
A15:  CurInstr(pIJSA0,CIJk) = pIJSA0.(IC CRk + card I) by A9,A14,FUNCT_4:113;
      reconsider ii = IC CRk as Element of NAT;
      IC RIJ = 0 by MEMSTR_0:def 11;
      then IC RIJ in dom J by AFINSQ_1:65;
      then
A16:  IC CRk in dom J by AMISTD_1:21,A11;
      then
A17:  ii in dom IncAddr(J, card I) by COMPOS_1:def 21;
      then
A18:  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 A16,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
A19:  IC CRk + card I in dom Shift(IncAddr(J, card I), card I) by A17;
A20:   J/.ii = J.IC CRk by A16,PARTFUN1:def 6
        .= pRIJ.IC CRk by A16,A11,GRFUNC_1:2;
       CurInstr(pRIJ,CRk) = pRIJ.IC CRk by PBOOLE:143;
      hence
      IncAddr(CurInstr(pRIJ,CRk), card I)
        = CurInstr(pIJSA0,CIJk) by A15,A18,A19,A20,A13,GRFUNC_1:2;
    end;
A21:  Exec(CurInstr(pIJSA0,CIJk), CIJk)
     =  Exec(IncAddr(CurInstr(pRIJ,CRk),card I), CRSk) by A9,A10;
    then
A22:  Exec(CurInstr(pIJSA0,CIJk), CIJk)
     =  IncIC(Following(pRIJ,CRk),card I)
         by AMISTD_5:4;
    CIJk1 = Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,
sISA0)+1+k+1);
    then
A23: CIJk1 = Following(pIJSA0,CIJk) by EXTPRO_1:3;
A24: now
      let a be Int-Location;
      thus CRSk1.a = CRk1.a by SCMFSA_3:3
        .= (Following(pRIJ,CRk)).a by EXTPRO_1:3
        .= CIJk1.a by A23,A22,SCMFSA_3:3;
    end;
A25: now
      let f be FinSeq-Location;
      thus CRSk1.f = CRk1.f by SCMFSA_3:4
        .= (Following(pRIJ,CRk)).f by EXTPRO_1:3
        .= IncIC(Following(pRIJ,CRk),card I).f by SCMFSA_3:4
        .= CIJk1.f by A23,A21,AMISTD_5:4;
    end;
    IC CRSk1 = IC CRk1 + card I by FUNCT_4:113
      .= IC Following(pRIJ,CRk) + card I by EXTPRO_1:3;
    then
    IC CRSk1 =
     IC IncIC(Following(pRIJ,CRk),card I) by FUNCT_4:113
      .= IC CIJk1 by A23,A21,AMISTD_5:4;
    hence thesis by A24,A25,SCMFSA_2:61;
  end;
A26: sISA0 = s by A4,FUNCT_4:98;
A27:  Directed I c= I ";" J by SCMFSA6A:16;
A28: Directed I c= p by A27,A6,XBOOLE_1:1;
A29: now
    set s2 = Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)+1+0);
    set s1 = IncIC(RIJ,card I);
    reconsider RIJ1 = RI +* ((intloc 0 .--> 1)) as State of SCM+FSA;
A30: RIJ = Initialize RIJ1 by FUNCT_4:14;
    thus IC s1 = IC RIJ + card I by FUNCT_4:113
      .=  0 + card I by A30,FUNCT_4:113
      .= IC s2 by A1,A26,Th9,A28,A7,FUNCT_4:25;
A31: DataPart Comput(p,s,LifeSpan(pISA0,sISA0)) =
DataPart Comput(p, s,
    LifeSpan(pISA0,sISA0)+1) by A1,A5,Th10,A28,FUNCT_4:25;
    hereby
      let a be Int-Location;
      not a in dom Start-At (IC RIJ + card I,SCM+FSA) by SCMFSA_2:102;
      then
A32:  s1.a = RIJ.a by FUNCT_4:11;
A33:  Comput(pISA0, sISA0,LifeSpan(pISA0,sISA0)).a =
       Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)).a by A1,A26,Th12
        .= s2.a by A5,A31,A7,SCMFSA_M:2;
      per cases;
      suppose
A34:     a <> intloc 0;
       a <> IC SCM+FSA by SCMFSA_2:56;
        then not a in dom iS by A34,SCMFSA_M:11,TARSKI:def 2;
        hence s1.a = RI.a by A32,FUNCT_4:11
          .= s2.a by A1,A26,A33,EXTPRO_1:23;
      end;
      suppose
A35:    a = intloc 0;
        then a in dom iS by SCMFSA_M:11,TARSKI:def 2;
        hence s1.a
          = 1 by A35,A32,FUNCT_4:13,SCMFSA_M:12
          .=s2.a by A33,A35,Def2,A2,A3;
      end;
    end;
    let f be FinSeq-Location;
     f <> intloc 0 & f <> IC SCM+FSA by SCMFSA_2:57,58;
     then
A36: not f in dom iS by SCMFSA_M:11,TARSKI:def 2;
    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 A36,FUNCT_4:11
      .= Comput(pISA0, sISA0,LifeSpan(pISA0,sISA0)).f by A1,A26,EXTPRO_1:23
      .= Comput(pIJSA0, sIJSA0,LifeSpan(pISA0,sISA0)).f by A1,A26,Th12
      .= s2.f by A5,A31,A7,SCMFSA_M:2;
  end;
A37: X[0] by A29,SCMFSA_2:61;
  for k being Nat holds X[k] from NAT_1:sch 2(A37, A8);
  hence thesis by A26;
end;
