reserve m for Nat;
reserve P,PP,P1,P2 for Instruction-Sequence of SCM+FSA;

theorem Th34:
  for s being State of SCM+FSA, I,J being MacroInstruction of SCM+FSA, a
  being read-write Int-Location st s.a <= 0 &
   Directed J is_pseudo-closed_on s,P
holds if>0(a,I,J) is_halting_on s,P &
  LifeSpan(P +* if>0(a,I,J),s +* (Start-At(0,SCM+FSA))) =
  LifeSpan(P +* (J ";" Stop SCM+FSA),
  Initialize s) + 3
proof
  let s be State of SCM+FSA;
  set D = Data-Locations SCM+FSA;
  let I,J be MacroInstruction of SCM+FSA;
  let a be read-write Int-Location;
  set J0 = Directed J;
  set s0 = Initialized s;
  set J9 = J ";" (Goto  (card I + 1) ";" (I ";" Stop SCM+FSA));
  set s00 = Initialize s,
      P00 = P+*J0;
  set s3 = Initialize s,
      P3 = P +* if>0(a,I,J);
A1: if>0(a,I,J) c= P3 by FUNCT_4:25;
  set s4 = Comput(P3, s3,1);
  set s5 = Comput(P3, s3,2);
  set i = a >0_goto  (card J + 3);
A2: J0 c= P00 by FUNCT_4:25;
  if>0(a,I,J) = Macro i ";" J ";" Goto  (card I + 1) ";" (I ";"
  Stop SCM+FSA) by SCMFSA6A:25;
  then if>0(a,I,J) = Macro i ";" J ";" (Goto  (card I + 1) ";" (I ";"
  Stop SCM+FSA)) by SCMFSA6A:25;
  then
A3: if>0(a,I,J) = Macro i ";" (J ";" (Goto  (card I + 1) ";" (I ";"
  Stop SCM+FSA))) by SCMFSA6A:25;
  card Macro i = 2 by COMPOS_1:56;
  then
A4: Reloc(J9,2) c= if>0(a,I,J) by A3,SCMFSA6A:38;
A5:  0 in dom if>0(a,I,J) by AFINSQ_1:65;
A6: P3. 0 = (if>0(a,I,J)). 0 by A5,FUNCT_4:13
    .= i by Th18;
  card if>0(a,I,J) = card I + card J + (2 + 2) by SCMFSA8B:12
    .= card J + 2 + (card I + 2);
  then
 card J + 2 + 0 < card if>0(a,I,J) by XREAL_1:8;
  then
A7:  (card J + 2) in dom if>0(a,I,J) by AFINSQ_1:66;
A8: IC SCM+FSA in dom Start-At(0,SCM+FSA) by MEMSTR_0:15;
A9: IC s3 = IC(Initialize s)
      .= IC Start-At(0,SCM+FSA) by A8,FUNCT_4:13
      .=  0 by FUNCOP_1:72;
  set ss = Comput(P3, s3,pseudo-LifeSpan(s00,P00,J0) + 2),
      PP = P3;
  if>0(a,I,J) c= P3 by FUNCT_4:25;
  then
A10: Reloc(J9,2) c= P3 by A4,XBOOLE_1:1;
 Reloc(J0,2) c= Reloc(J9,2) by COMPOS_1:44,SCMFSA6A:16;
  then
A11: Reloc(J0,2) c= P3 by A10,XBOOLE_1:1;
  card if>0(a,I,J) = card I + card J + (3 + 1) by SCMFSA8B:12
    .= card I + card J + 3 + 1;
  then card I + card J + 3 < card if>0(a,I,J) by NAT_1:13;
  then
A12:  (card I + card J + 3) in dom if>0(a,I,J) by AFINSQ_1:66;
  assume s.a <= 0;
  then
A13: s0.a <= 0 by SCMFSA_M:37;
A14:  1 in dom if>0(a,I,J) by Th17;
  assume
A15: J0 is_pseudo-closed_on s,P;
  then
A16: pseudo-LifeSpan(s,P,J0) = LifeSpan(P +* (J ";" Stop SCM+FSA),
Initialize s) by Th21;
A17: P3. 1  = (if>0(a,I,J)). 1
    by A14,FUNCT_4:13
    .= goto  2 by Th18;
A18: J0 is_pseudo-closed_on s00,P00 by A15;
A19: Comput(P3, s3,0+1) = Following(P3,Comput(P3,s3,0)) by EXTPRO_1:3
    .= Following(P3,s3)
    .= Exec(i,s3) by A9,A6,PBOOLE:143;
A20:  a <> IC SCM+FSA by SCMFSA_2:56;
    not a in dom Start-At(0,SCM+FSA) by A20,TARSKI:def 1;
   then
 not a in dom Start-At(0,SCM+FSA);
  then  s3.a = s.a by FUNCT_4:11
    .= s0.a by SCMFSA_M:37;
  then
A21: IC s4 = IC s3 + 1 by A13,A19,SCMFSA_2:71
    .=  (0 + 1) by A9;
A22: Comput(P3, s3,1+1) = Following(P3,s4) by EXTPRO_1:3
    .= Exec(goto  2,s4) by A21,A17,PBOOLE:143;
  then
A23: IC s5 =  2 by SCMFSA_2:69;
A24: now
    let f be FinSeq-Location;
    thus s00.f = s4.f by A19,SCMFSA_2:71
      .= s5.f by A22,SCMFSA_2:69;
  end;
  now
    let a be Int-Location;
    thus s00.a = s4.a by A19,SCMFSA_2:71
      .= s5.a by A22,SCMFSA_2:69;
  end;
  then
A25: DataPart s00 = DataPart s5 by A24,SCMFSA_M:2;
 IC ss = IC Comput(P3, s5,pseudo-LifeSpan(
s00,P00,J0)) by EXTPRO_1:4
    .= IC Comput(P00, s00,pseudo-LifeSpan(s00,P00
,J0)) + 2 by A18,A11,A23,A25,Th14,A2
    .= IC Comput(P00, s00,pseudo-LifeSpan(s,P,J0)
) + 2 by A15,Th13
    .=  card J0 + 2 by A15,SCMFSA8A:def 4
    .=  (card J + 2) by SCMFSA6A:36;
  then
A26: CurInstr(P3,ss) = P3. (card J + 2) by PBOOLE:143
    .= if>0(a,I,J). (card J + 2) by A7,A1,GRFUNC_1:2
    .= goto  (card I + card J + 3) by Th27;
 IC Comput(P3, s3,pseudo-LifeSpan(s00,P00,J0) + 2 + 1)
     = IC Following(P3,ss) by EXTPRO_1:3
    .=  (card I + card J + 3) by A26,SCMFSA_2:69;
  then
A27: CurInstr(P3,Comput(P3, s3,pseudo-LifeSpan(s00,P00,J0) + 2 + 1))
     = P3. (card I + card J + 3) by PBOOLE:143
    .= if>0(a,I,J). (card I + card J + 3) by A12,A1,GRFUNC_1:2
    .= halt SCM+FSA by Th25;
  then
A28: P3 halts_on s3 by EXTPRO_1:29;
  hence if>0(a,I,J) is_halting_on s,P;
A29: CurInstr(P3,s3) = i by A9,A6,PBOOLE:143;
  now
A30: 0 + 2 < card I + card J + 3 by XREAL_1:8;
    then
A31:  2 in dom if>0(a,I,J) by Th20;
A32: CurInstr(P3,Comput(P3,s3,2)) = P3. 2 by A23,PBOOLE:143
      .= if>0(a,I,J). 2 by A31,A1,GRFUNC_1:2;
    let k be Nat;
    assume
A33: CurInstr(P3,Comput(P3,s3,k)) = halt SCM+FSA;
A34: k <> 0 by A33,A29;
A35:    k <> 1 by A21,A33,A17,PBOOLE:143;
    2 <> k by A33,A30,Th20,A32;
    then k <> 0 & ... & k <> 2 by A34,A35;
    then 2 < k;
    then consider k2 being Nat such that
A36: 2 + k2 = k by NAT_1:10;
    reconsider k2 as Element of NAT by ORDINAL1:def 12;
    reconsider n = IC Comput(P00, s00,k2) as Element of NAT;
    assume not pseudo-LifeSpan(s00,P00,J0) + (1 + 2) <= k;
    then k < pseudo-LifeSpan(s00,P00,J0) + 1 + 2;
    then k2 < pseudo-LifeSpan(s00,P00,J0) + 1 by A36,XREAL_1:6;
    then
A37: k2 <= pseudo-LifeSpan(s00,P00,J0) by NAT_1:13;
    then
A38: k2 <= pseudo-LifeSpan(s,P,J0) by A15,Th13;
A39: now
      per cases by A38,XXREAL_0:1;
      suppose
A40:    k2 = pseudo-LifeSpan(s,P,J0);
        card I + card J + (2 + 1) = card J + 2 + 1 + card I;
        then
A41:    card J + 2 + 1 <= card I + card J + 3 by NAT_1:11;
        IC Comput(P00, s00,k2) =  card J0 by A15,A40,SCMFSA8A:def 4;
        then n = card J by SCMFSA6A:36;
        hence n + 2 < card I + card J + 3 by A41,NAT_1:13;
      end;
      suppose
        k2 < pseudo-LifeSpan(s,P,J0);
        then  n in dom J0 by A15,SCMFSA8A:17;
        then n < card J0 by AFINSQ_1:66;
        then n + 2 < card J0 + 2 by XREAL_1:6;
        then
A42:    n + 2 < card J + 2 by SCMFSA6A:36;
        card I + card J + (1 + 2) = card J + 2 + (card I + 1);
        then card J + 2 <= card I + card J + 3 by NAT_1:11;
        hence n + 2 < card I + card J + 3 by A42,XXREAL_0:2;
      end;
    end;
    then
A43:  (n + 2) in dom if>0(a,I,J) by Th20;
A44: IC Comput(P3, s3,k) = IC Comput(P3, s5,k2) by A36,EXTPRO_1:4
      .=  (n + 2) by A18,A11,A23,A25,A37,Th14,A2;
    CurInstr(P3,Comput(P3,s3,k))
     = P3.IC Comput(P3, s3,k) by PBOOLE:143
      .= if>0(a,I,J).IC Comput(P3, s3,k) by A44,A43,A1,GRFUNC_1:2;
    hence contradiction by A33,A44,A39,Th20;
  end;
  then LifeSpan(P3,s3) = pseudo-LifeSpan(s00,P00,J0) + 3
    by A27,A28,EXTPRO_1:def 15;
  hence thesis by A15,A16,Th13;
end;
