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
  for I being keeping_0 parahalting really-closed Program of SCM+FSA,
      J being parahalting really-closed Program of SCM+FSA
 holds IExec(I ";" J,P,s) = IncIC(IExec(J,P,IExec(I,P,s)),card I)
proof
  set D = (Int-Locations \/ FinSeq-Locations);
  set A = NAT;
  let I be keeping_0 parahalting really-closed Program of SCM+FSA;
  let J be parahalting really-closed Program of SCM+FSA;
  set s1 = s +* Initialize((intloc 0).-->1),
      P1 = P +* I;
A1: I c= P+*I by FUNCT_4:25;
  set s2 = s +* Initialize((intloc 0).-->1),
      P2 = P +* (I ";" J);
  set s3 = Comput(P1,s1,LifeSpan(P1,s1)) +* Initialize((intloc 0).-->1),
      P3 = P1 +* J;
  set m1 = LifeSpan(P1,s1);
  set m3 = LifeSpan(P3,s3);
A2:Initialize((intloc 0).-->1) c= s2 by FUNCT_4:25;
A3: I c= P2 +* I by FUNCT_4:25;
A4:   I ";" J c= P+*(I ";" J) by FUNCT_4:25;
A5: LifeSpan(P2 +* I,s2) = m1 by Th8,A1,A3;
A6: Reloc(J,card I) c= P+*(I ";" J) by A2,Lm2,A4;
A7: I c= P1 by FUNCT_4:25;
A8: Initialize((intloc 0).-->1) c= s1 by FUNCT_4:25;
A9: s3 = Result(P1,s1) +* Initialize((intloc 0).-->1)
        by Th2,A7,A8,EXTPRO_1:23;
A10: P+*(I ";" J)+*I+*(I ";" J)
    = P+*(I ";" J)+*(I+*(I ";" J)) by FUNCT_4:14
   .= P+*((I ";" J)+*(I+*(I ";" J))) by FUNCT_4:14
   .= P +* ((I ";" J) +* (I ";" J)) by SCMFSA6A:18;
A11: P+*I+*(I ";" J)
  = P +* (I +* (I ";" J)) by FUNCT_4:14
 .= P +* ((I ";" J) +* (I ";" J)) by SCMFSA6A:18;
A12: P+*(I ";" J)+*I halts_on s2 by Th1,FUNCT_4:25;
  DataPart Comput(P+*(I ";" J)+*I,s2,m1)
    = DataPart Comput(P +* ((I ";" J) +* (I ";" J)),
           s +* Initialize((intloc 0).-->1),m1) by A10,A12,Th10,A5,FUNCT_4:25
    .= DataPart Comput(P+*I,s1,m1) by A11,A7,A8,Th10,Th2;
  then
A13: DataPart( Comput(P2+*I,s2,m1)+* Initialize((intloc 0).-->1))
     = DataPart Comput(P1,s1,m1) +* DataPart Initialize((intloc 0).-->1)
      by FUNCT_4:71
    .= DataPart s3 by FUNCT_4:71;
A14:  J c= P+*I+*J by FUNCT_4:25;
A15: IC Comput(P2,s2,m1+1) =  card I
            by A2,A5,Lm2,A4;
A16: DataPart Comput(P2,s2,m1+1) = DataPart s3 by A13,A2,A5,Lm2,A4;
  then
A17: DataPart Comput(P+*(I ";" J),Comput(P+*(I ";" J),s2,m1+1),m3)
    = DataPart Comput(P+*I+*J,s3,m3 ) by Th6,A14,A6,A15;
A18: IC Comput(P+*(I ";" J),Comput(P+*(I ";" J),s2,m1+1),m3)
       = IC Comput(P+*I+*J,s3,m3) + card I by A15,Th6,A6,A14,A16;
A19: J c= P3 by FUNCT_4:25;
A20: Initialize((intloc 0).-->1) c= s3 by FUNCT_4:25;
A21: J c= P1 +* J by FUNCT_4:25;
A22: J c= P+*J by FUNCT_4:25;
A23: Result(P +* J,IExec(I,P,s) +* Initialize((intloc 0).-->1))
     = Result(P3,s3) by Th8,A22,A19,A9;
A24: I ";" J c= P2 by FUNCT_4:25;
  then
  IExec(I ";" J,P,s) = Comput(P2,s2,LifeSpan(P2,s2))
       by A2,Th2,EXTPRO_1:23
    .= Comput(P2,s2,m1+1+m3) by A9,Th17;
  then
A25: DataPart IExec(I ";" J,P,s)
     = DataPart Comput(P3,s3,m3) by A17,EXTPRO_1:4
    .= DataPart IExec(J,P,IExec(I,P,s)) by A20,A23,Th2,A19,EXTPRO_1:23;
A26: IC IExec(I ";" J,P,s)
     = IC Comput(P2,s2,LifeSpan(P2,s2)) by A24,A2,Th2,EXTPRO_1:23
    .= IC Comput(P2,s2,m1+1+m3) by A9,Th17
    .= IC Comput(P3,s3,m3) + card I by A18,EXTPRO_1:4
    .= IC Result(P3,s3) + card I by A20,Th2,A19,EXTPRO_1:23
    .= IC Result(P1 +* J,
    Result(P1,s1) +* Initialize((intloc 0).-->1)) + card I
           by A8,Th2,A7,EXTPRO_1:23
    .= IC IExec(J,P,IExec(I,P,s)) + card I by A21,A22,Th8;
  hereby
    reconsider l = IC IExec(J,P,IExec(I,P,s)) + card I as Element of NAT;
A28: now
      let x be object;
      assume
A29:  x in dom IExec(I ";" J,P,s);
      per cases by A29,SCMFSA_M:1;
      suppose
A30:    x is Int-Location;
        then x <> IC SCM+FSA by SCMFSA_2:56;
        then
A31:    not x in dom Start-At(l,SCM+FSA) by TARSKI:def 1;
        IExec(I ";" J,P,s).x = IExec(J,P,IExec(I,P,s)).x
         by A25,A30,SCMFSA_M:2;
        hence
        IExec(I ";" J,P,s).x = (IExec(J,P,IExec(I,P,s))
         +* Start-At (IC IExec(J,P,
         IExec(I,P,s)) + card I,SCM+FSA)).x by A31,FUNCT_4:11;
      end;
      suppose
A32:    x is FinSeq-Location;
        then x <> IC SCM+FSA by SCMFSA_2:57;
        then
A33:    not x in dom Start-At(l,SCM+FSA) by TARSKI:def 1;
        IExec(I ";" J,P,s).x = IExec(J,P,IExec(I,P,s)).x
         by A25,A32,SCMFSA_M:2;
        hence
        IExec(I ";" J,P,s).x = (IExec(J,P,IExec(I,P,s)) +*
          Start-At (IC IExec(J,P,
         IExec(I,P,s)) + card I,SCM+FSA)).x by A33,FUNCT_4:11;
      end;
      suppose
A34:    x = IC SCM+FSA;
        then x in {IC SCM+FSA} by TARSKI:def 1;
        then
A35:    x in dom Start-At(l,SCM+FSA);
        thus IExec(I ";" J,P,s).x = (Start-At(l,SCM+FSA)).IC SCM+FSA
         by A26,A34,FUNCOP_1:72
          .= (IExec(J,P,IExec(I,P,s)) +*
           Start-At (IC IExec(J,P,IExec(I,P,s)) + card
        I,SCM+FSA)).x by A34,A35,FUNCT_4:13;
      end;
    end;
    dom IExec(I ";" J,P,s) = the carrier of SCM+FSA by PARTFUN1:def 2
      .= dom (IExec(J,P,IExec(I,P,s))
         +* Start-At (IC IExec(J,P,IExec(I,P,s)) + card
    I,SCM+FSA)) by PARTFUN1:def 2;
    hence thesis by A28,FUNCT_1:2;
  end;
end;
