reserve x for set,
  m,n for Nat,
  a,b,c for Int_position,
  i for Instruction of SCMPDS,
  s,s1,s2 for State of SCMPDS,
  k1,k2 for Integer,
  loc,l1 for Nat,
  I,J for Program of SCMPDS,
  N for with_non-empty_elements set;
reserve P,P1,P2,Q for Instruction-Sequence of SCMPDS;

theorem
  for s being 0-started State of SCMPDS
  for I being parahalting halt-free Program of SCMPDS,J being
  parahalting shiftable Program of SCMPDS,k being Nat st
  stop (I ';' J) c= P holds
   IncIC(Comput(P +* stop I +* stop J,
     Initialize Result(P +* stop I,s),k),card I)
  =  Comput(P+*stop(I ';' J),s,LifeSpan(P +* stop I,s)+k)
proof
  let s be 0-started State of SCMPDS;
  let I be parahalting halt-free Program of SCMPDS,J be parahalting
  shiftable Program of SCMPDS,k be Nat;
  set sIsI = s, PIPI = P +* stop I,
      RI = Result(PIPI,sIsI), pJ= stop J,
   RIJ = Initialize RI, PRIJ = PIPI +* pJ,
   pIJ = stop (I ';' J),
   sIsIJ = s, PIPIJ = P +* pIJ;
A1:  pJ c= PRIJ by FUNCT_4:25;
   stop I c= PIPI by FUNCT_4:25;
   then
A2: PIPI halts_on sIsI by SCMPDS_4:def 7;
  set s2 = Comput(PIPIJ, sIsIJ,LifeSpan(PIPI,sIsI)+0);
  set s1 = RIJ +* Start-At (IC RIJ + card I,SCMPDS);
  set m1 = LifeSpan(PIPI,sIsI);
A3: I c= pIJ by Th1;
  assume
A4: pIJ c= P;
A5: P +* pIJ = P by A4,FUNCT_4:98;
A6: now
    thus IC s1 = IC RIJ + card I by FUNCT_4:113
      .=  (0+card I) by FUNCT_4:113
      .= IC s2 by A4,A3,Th14,A5,XBOOLE_1:1;

    hereby
      let a be Int_position;
A7: not a in dom Start-At(0,SCMPDS) by SCMPDS_4:18;
   not a in dom Start-At (IC RIJ + card I,SCMPDS) by SCMPDS_4:18;
      hence s1.a = RIJ.a by FUNCT_4:11
        .= RI.a by A7,FUNCT_4:11
        .= Comput(PIPI, sIsI,m1).a by A2,EXTPRO_1:23
        .= s2.a by Th18;
    end;
  end;
  defpred X[Nat] means
    IncIC(Comput(PRIJ, RIJ,$1), card I)
     = Comput(PIPIJ, sIsIJ,LifeSpan(PIPI,sIsI)+$1);
A8: pIJ c= PIPIJ by FUNCT_4:25;
A9: for k being Nat st X[k] holds X[k+1]
  proof
    let k be Nat;
    set k1 = k+1, CRk = Comput(PRIJ, RIJ,k),
       PCRk = PRIJ,
       CRSk = IncIC(CRk,card I),
    CIJk = Comput(PIPIJ, sIsIJ,LifeSpan(PIPI,sIsI)+k),
    PCIJk = PIPIJ,
CRk1 = Comput(PRIJ, RIJ,k1
    ), CRSk1 = CRk1 +* Start-At (IC CRk1 + card I,SCMPDS),
    CIJk1 = Comput(PIPIJ, sIsIJ,
    LifeSpan(PIPI,sIsI)+k1);
    assume
A10:  CRSk =  CIJk;
A11: CurInstr(PCRk,CRk) = CurInstr(PCIJk,CIJk)
    proof
A12:  CurInstr(PCIJk,CIJk) = PCIJk.IC CRSk by A10,PBOOLE:143
        .= PCIJk.(IC CRk + card I) by FUNCT_4:113;
      reconsider n = IC CRk as Nat;
A13:  pIJ = I ';' pJ by AFINSQ_1:27;
A14:  IC CRk in dom pJ by A1,SCMPDS_4:def 6;
      then n < card pJ by AFINSQ_1:66;
      then n+card I < card pJ + card I by XREAL_1:6;
      then n+card I < card pIJ by A13,AFINSQ_1:17;
      then
A15:  IC CRk + card I in dom pIJ by AFINSQ_1:66;
A16:  PCRk/.IC CRk = PCRk.IC CRk by PBOOLE:143;
      pJ c= PCRk by FUNCT_4:25;
      hence CurInstr(PCRk,CRk) =pJ.IC CRk by A14,A16,GRFUNC_1:2
        .=pIJ.(IC CRk + card I) by A14,A13,AFINSQ_1:def 3
        .= CurInstr(PCIJk,CIJk) by A12,A8,A15,GRFUNC_1:2;
    end;
A17:  Exec(CurInstr(PCIJk,CIJk), CIJk)
   =  IncIC(Following(PCRk,CRk), card I) by A10,Th19,A11,FUNCT_4:25;
    CIJk1 = Comput(PIPIJ, sIsIJ,LifeSpan(PIPI,sIsI)+k+1);
    then
A18: CIJk1 = Following(PIPIJ,CIJk) by EXTPRO_1:3;
A19: now
      let a be Int_position;
      thus CRSk1.a = CRk1.a by SCMPDS_3:6
        .= (Following(PRIJ,CRk)).a by EXTPRO_1:3
        .= CIJk1.a by A18,A17,SCMPDS_3:6;
    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 CIJk1 by A18,A17,FUNCT_4:113;
    hence thesis by A19,SCMPDS_4:2;
  end;
A20: X[0] by A6,SCMPDS_4:2;
  for k being Nat holds X[k] from NAT_1:sch 2(A20,A9);
  hence thesis;
end;
