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
  for s be State of SCM+FSA,
      I be InitHalting really-closed MacroInstruction of SCM+FSA,
      a be read-write Int-Location st s.a > 0
   ex s2 be State of SCM+FSA, k be  Nat st s2 = Initialized s &
   k =LifeSpan(P +* I,Initialized s) + 2 &
   IC Comput(P +* while>0(a,I), s2,k) =  0 &
    (for b be Int-Location
  holds Comput(P +* while>0(a,I), s2,k).b = IExec(I,P,s).b) &
   for f be FinSeq-Location holds
    Comput(P +* while>0(a,I), s2,k).f = IExec(I,P,s).f
proof
  let s be State of SCM+FSA,
      I be InitHalting really-closed MacroInstruction of SCM+FSA;
  set D = Data-Locations SCM+FSA;
  let a be read-write Int-Location;
  assume
A1: s.a > 0;
  set Is=Initialize Initialized s;
  set Q = while>0(a,I), s1 = Initialized s, P1 = P +* I;
  take s1;
  set P2 = P +* Q;
  take k = LifeSpan(P1,s1) + 2;
  thus s1 = Initialized s & k = LifeSpan(P1,s1) + 2;
A2: I is_halting_onInit s,P by SCM_HALT:26;
  then
A3:  P1 halts_on s1;
  Initialized s
     = Initialize Initialized s by MEMSTR_0:44
     .= Initialize Initialized s
     .= Initialize Initialized s;
  then P +* I halts_on Initialize Initialized s by A3;
  then
A4: I is_halting_on Initialized s,P by SCMFSA7B:def 7;
  thus IC ( Comput(P2, s1,k))= 0 by A1,A2,SCM_HALT:74;
  set s4= Comput(P2, s1,k), s3= Comput(P1, s1,
LifeSpan(P1,s1));
A5: Initialized s = Initialize Initialized s by MEMSTR_0:44;
A6: s3 = Comput(P1, Is,LifeSpan(P1,Is))
     by A5;
A7: DataPart s4 = DataPart s3 by A1,A2,SCM_HALT:74;
  hereby
    let b be Int-Location;
    thus s4.b = Comput(P1, Is,LifeSpan(P1,Is)).b by A6,A7,SCMFSA_M:2
      .= IExec(I,P,s).b by A4,Th1;
  end;
  hereby
    let f be FinSeq-Location;
    thus s4.f = Comput(P1, Is,LifeSpan(P1,Is)).f by A6,A7,SCMFSA_M:2
      .= IExec(I,P,s).f by A4,SCMFSA8C:58;
  end;
end;
