reserve s for State of SCM+FSA,
  I for MacroInstruction of SCM+FSA,
  a for read-write Int-Location;
reserve i,j,k,n for Nat;
reserve P,P1,P2,Q for Instruction-Sequence of SCM+FSA;

theorem Th13:
  for s be State of SCM+FSA, I be MacroInstruction of SCM+FSA, a be
  read-write Int-Location st s.a <= 0
   holds DataPart IExec(while>0(a,I),P,s) =
  DataPart Initialized s
proof
  let s be State of SCM+FSA, I be MacroInstruction of SCM+FSA,
      a be read-write Int-Location;
  set D = Data-Locations SCM+FSA;
  set Is=Initialized s;
  set s1 = Initialize Is, P1 = P +* while>0(a,I);
A1: while>0(a,I) c= P1 by FUNCT_4:25;
  set s2 = Comput(P1, s1,1);
  set s4 = Comput(P1,s1,2);
  set s5 = Comput(P1,s1,3);
  set i = a >0_goto  3;
A2:  1 in dom while>0(a,I) by SCMFSA_X:9;
A3: P1. 1 = while>0(a,I). 1 by A2,A1,GRFUNC_1:2
    .= goto  2 by SCMFSA_X:10;
  IC SCM+FSA in dom Start-At(0,SCM+FSA) by MEMSTR_0:15;
  then
A4: IC s1 = IC Start-At(0,SCM+FSA) by FUNCT_4:13
    .=  0 by FUNCOP_1:72;
  0 in dom while>0(a,I) by AFINSQ_1:65;
  then
A5: P1. 0
     = while>0(a,I). 0 by A1,GRFUNC_1:2
    .= i by SCMFSA_X:10;
  then
A6: CurInstr(P1,s1) = i by A4,PBOOLE:143;
A7: Comput(P1, s1,0 + 1) = Following(P1,Comput(P1,s1,0)) by EXTPRO_1:3
    .= Following(P1,s1)
    .= Exec(i,s1) by A4,A5,PBOOLE:143;
  set loc5=  (card I +4);
A8:  2 in dom while>0(a,I) by SCMFSA_X:7;
A9: loc5 in dom while>0(a,I) by SCMFSA_X:8;
  not a in dom Start-At(0,SCM+FSA) by SCMFSA_2:102;
  then
A10: s1.a = Is.a by FUNCT_4:11;
  assume s.a <= 0;
  then Is.a <= 0 by SCMFSA_M:37;
  then
A11: IC Comput(P1,s1,1) = 0+1 by A4,A7,A10,SCMFSA_2:71;
A12: Comput(P1, s1,1 + 1) = Following(P1,s2) by EXTPRO_1:3
    .= Exec(goto  2,s2) by A11,A3,PBOOLE:143;
A13: P1. 2 = while>0(a,I). 2 by A8,A1,GRFUNC_1:2
    .= goto loc5 by SCMFSA_X:17;
A14:  P1/.IC s4 = P1.IC s4 by PBOOLE:143;
A15: Comput(P1, s1,2 + 1) = Following(P1,s4) by EXTPRO_1:3
    .= Exec(goto loc5,s4) by A12,A13,A14,SCMFSA_2:69;
A16:  P1/.IC s5 = P1.IC s5 by PBOOLE:143;
  P1.loc5 = while>0(a,I).loc5 by A9,A1,GRFUNC_1:2
    .= halt SCM+FSA by SCMFSA_X:16;
  then
A17: CurInstr(P1,s5) = halt SCM+FSA by A15,A16,SCMFSA_2:69;
  then
A18: P1 halts_on s1 by EXTPRO_1:29;
A19:  P1/.IC s4 = P1.IC s4 by PBOOLE:143;
A20: CurInstr(P1,s4) = goto loc5 by A12,A13,A19,SCMFSA_2:69;
  now
    let k be Nat;
    assume
A21: CurInstr(P1,Comput(P1,s1,k)) = halt SCM+FSA;
A22: k <> 0 by A21,A6;
A23:    k <> 1 by A11,A3,A21,PBOOLE:143;
    k <> 2 by A20,A21;
    then k <> 0 & ... & k <> 2 by A22,A23;
    then 2<k;
    hence 2+1<=k by INT_1:7;
  end;
  then
A24: LifeSpan(P1,s1) = 3 by A17,A18,EXTPRO_1:def 15;
A25: Initialized Is = Initialize Initialized Is by MEMSTR_0:44
    .=s1;
A26: s1=Is by A25;
A27: now
    let a be Int-Location;
    thus Is.a =s2.a by A7,A26,SCMFSA_2:71
      .=s4.a by A12,SCMFSA_2:69
      .=s5.a by A15,SCMFSA_2:69;
  end;
A28: now
    let f be FinSeq-Location;
    thus Is.f =s2.f by A7,A26,SCMFSA_2:71
      .=s4.f by A12,SCMFSA_2:69
      .=s5.f by A15,SCMFSA_2:69;
  end;
  thus DataPart IExec(while>0(a,I),P,s)
   = DataPart IExec(while>0(a,I),P,Is) by SCMFSA8C:3
    .= DataPart Result(P +* while>0(a,I),Initialized Is) by SCMFSA6B:def 1
    .= DataPart Result(P1,s1) by A25
    .= DataPart s5 by A18,A24,EXTPRO_1:23
    .= DataPart Is by A27,A28,SCMFSA_M:2;
end;
