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

theorem Th30:
  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 I is_pseudo-closed_on s,P
holds if>0(a,I,J) is_halting_on s,P &
 LifeSpan(P+* if>0(a,I,J),Initialize s)
   = LifeSpan(P +* (I ";" Stop SCM+FSA),Initialize s) + 1
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 I0 = Directed I;
  set I1 = I ";" Stop SCM+FSA;
  set s00 = Initialize s,
      P00 = P+*I0;
  set s3 = Initialize s,
      P3 = P +* if>0(a,I,J);
  set s4 = Comput(P3, s3,1);
  set i = a >0_goto  (card J + 3);
A1: I0 c= P00 by FUNCT_4:25;
A2: if>0(a,I,J) c= P3 by FUNCT_4:25;
  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
A3:  (card I + card J + 3) in dom if>0(a,I,J) by AFINSQ_1:66;
A4: IC SCM+FSA in dom Start-At(0,SCM+FSA) by MEMSTR_0:15;
A5: IC s3 = IC(Initialize s)
      .= IC Start-At(0,SCM+FSA) by A4,FUNCT_4:13
      .=  0 by FUNCOP_1:72;
A6:  0 in dom if>0(a,I,J) by AFINSQ_1:65;
A7: P3. 0 = (if>0(a,I,J)). 0 by A6,FUNCT_4:13
    .= i by Th18;
A8: card (i ";" J ";" Goto  (card I + 1)) = card (Macro i ";" J) +
  card Goto  (card I + 1) by SCMFSA6A:21
    .= card (Macro i ";" J) + 1 by SCMFSA8A:15
    .= card Macro i + card J + 1 by SCMFSA6A:21
    .= card J + 2 + 1 by COMPOS_1:56
    .= card J + (2 + 1);
A9: Comput(P3, s3,0+1) = Following(P3,Comput(P3,s3,0)) by EXTPRO_1:3
    .= Following(P3,s3)
    .= Exec(i,s3) by A5,A7,PBOOLE:143;
A10: if>0(a,I,J) c= P3 by FUNCT_4:25;
  if>0(a,I,J) = i ";" J ";" Goto  (card I + 1) ";" I1 by SCMFSA6A:25;
  then
 Reloc(I1,card J + 3) c= if>0(a,I,J) by A8,SCMFSA6A:38;
  then
A11: Reloc(I1,card J + 3) c= P3 by A10,XBOOLE_1:1;
  Reloc(I0,card J + 3) c= Reloc(I1,card J
  + 3) by COMPOS_1:44,SCMFSA6A:16;
  then
A12: Reloc(I0,card J + 3) c= P3 by A11,XBOOLE_1:1;
A13: for f being FinSeq-Location holds s00.f = s4.f by A9,SCMFSA_2:71;
  for a being Int-Location holds s00.a = s4.a by A9,SCMFSA_2:71;
  then
A14: DataPart s00 = DataPart s4 by A13,SCMFSA_M:2;
A15:  a <> IC SCM+FSA by SCMFSA_2:56;
    not a in dom Start-At(0,SCM+FSA) by A15,TARSKI:def 1;
   then
 not a in dom Start-At(0,SCM+FSA);
  then
A16:  s3.a = s.a by FUNCT_4:11;
  assume s.a > 0;
  then
A17: IC Comput(P3,s3,1) =  (card J + 3) by A9,A16,SCMFSA_2:71;
  assume
A18: I0 is_pseudo-closed_on s,P;
  then
A19: pseudo-LifeSpan(s,P,I0) = LifeSpan(P +* I1,
Initialize s) by Th21;
A20: I0 is_pseudo-closed_on s00,P00 by A18;
 IC Comput(P3, s3,pseudo-LifeSpan(s00,P00,I0)
+ 1) = IC Comput(
P3, s4,
  pseudo-LifeSpan(s00,P00,I0)) by EXTPRO_1:4
    .= IC Comput(P00, s00,pseudo-LifeSpan(s00,P00,I0)) + (card J + 3)
by A20,A12,A17,A14,Th14,A1
    .= IC Comput(P00, s00,pseudo-LifeSpan(s,P,I0)
) + (card J + 3)
by A18,Th13
    .=  card I0 + (card J + 3) by A18,SCMFSA8A:def 4
    .=  (card I + (card J + 3)) by SCMFSA6A:36
    .=  (card I + card J + 3);
  then
A21: CurInstr(P3,
    Comput(P3, s3,pseudo-LifeSpan(s00,P00,I0) + 1
)) = P3. (card I + card J + 3) by PBOOLE:143
    .= if>0(a,I,J). (card I + card J + 3) by A3,A2,GRFUNC_1:2
    .= halt SCM+FSA by Th25;
  then
A22: P3 halts_on s3 by EXTPRO_1:29;
  hence if>0(a,I,J) is_halting_on s,P;
  now
    set J1 = a >0_goto  (card J + 3) ";" J ";" Goto  (card I + 1)
    ";" I;
    let k be Nat;
    assume
A23: CurInstr(P3,Comput(P3,s3,k)) = halt SCM+FSA;
    assume not pseudo-LifeSpan(s00,P00,I0) + 1 <= k;
    then
A24: k <= pseudo-LifeSpan(s00,P00,I0) by NAT_1:13;
A25:  0 in dom if>0(a,I,J) by AFINSQ_1:65;
A26:  P3/.IC s3 = P3.IC s3 by PBOOLE:143;
    CurInstr(P3,Comput(P3,s3,0))
      = P3. 0 by A26,MEMSTR_0:16
      .= if>0(a,I,J). 0 by A25,A2,GRFUNC_1:2
      .= a >0_goto  (card J + 3) by Th18;
    then consider k1 being Nat such that
A27: k1 + 1 = k by A23,NAT_1:6;
    reconsider k1 as Element of NAT by ORDINAL1:def 12;
    reconsider n = IC Comput(P00, s00,k1) as Element of NAT;
    k1 < k by A27,XREAL_1:29;
    then
A28: k1 < pseudo-LifeSpan(s00,P00,I0) by A24,XXREAL_0:2;
    then k1 < pseudo-LifeSpan(s,P,I0) by A18,Th13;
    then  n in dom I0 by A18,SCMFSA8A:17;
    then n < card I0 by AFINSQ_1:66;
    then n + (card J + 3) < card I0 + (card J + 3) by XREAL_1:6;
    then
A29: n + (card J + 3) < card I + (card J + 3) by SCMFSA6A:36;
A30: IC Comput(P3, s3,k) = IC Comput(P3, s4,k1) by A27,EXTPRO_1:4
      .= IC Comput(P00, s00,k1) + (card J + 3) by A20,A12,A17,A14,A28,Th14,A1;
    card J1 = card (Macro (a >0_goto  (card J + 3)) ";" J ";" Goto
     (card I + 1)) + card I by SCMFSA6A:21
      .= card (Macro (a >0_goto  (card J + 3)) ";" J) + card Goto
     (card I + 1) + card I by SCMFSA6A:21
      .= card (Macro (a >0_goto  (card J + 3)) ";" J) + 1 + card I by
SCMFSA8A:15
      .= card Macro (a >0_goto  (card J + 3)) + card J + 1 + card I by
SCMFSA6A:21
      .= 2 + card J + 1 + card I by COMPOS_1:56
      .= card I + card J + 3;
    then IC Comput(P3, s3,k) in dom J1 by A30,A29,AFINSQ_1:66;
    then
A31: IC Comput(P3, s3,k) in dom Directed J1 by FUNCT_4:99;
    then
A32: (Directed J1).IC Comput(P3, s3,k) in rng Directed J1 by FUNCT_1:def 3;
    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 XREAL_1:29;
    then n + (card J + 3) < card if>0(a,I,J) by A29,XXREAL_0:2;
    then
A33: IC Comput(P3, s3,k) in dom if>0(a,I,J) by A30,AFINSQ_1:66;
A34: 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 A33,A2,GRFUNC_1:2;
    Directed J1 c= if>0(a,I,J) by SCMFSA6A:16;
    then
    if>0(a,I,J).IC Comput(P3, s3,k) = (Directed J1).IC Comput(
P3, s3,
    k) by A31,GRFUNC_1:2;
    hence contradiction by A23,A32,A34,COMPOS_1:def 11;
  end;
  then LifeSpan(P3,s3) = pseudo-LifeSpan(s00,P00,
I0) + 1 by A21,A22,EXTPRO_1:def 15;
  hence thesis by A18,A19,Th13;
end;
