
theorem
  for a being Int-Location, I being MacroInstruction of SCM+FSA holds
  while>0(a,I).(card I+4) = halt SCM+FSA
proof
  set J = Stop SCM+FSA;
  let a be Int-Location;
  let I be MacroInstruction of SCM+FSA;
  set I1= I ';' goto  0;
  set i = a >0_goto 3;
  set c5 = card I + 4;
  set Mi= Macro i ";" Goto  (card I1 + 1) ";" I1;
   0 + c5 in { il+c5 where il is Nat: il in dom J} by Lm3;
  then
A1:  c5 in dom Shift(J,c5) by VALUED_1:def 12;
  then
A2: Shift(J,c5)/.c5 = Shift(J,c5).( 0 +c5) by PARTFUN1:def 6
    .= halt SCM+FSA by Lm2,Lm3,VALUED_1:def 12;
A3: c5 in dom while>0(a,I) & dom while>0(a,I) = dom if>0(a,I1)
  by Th8,FUNCT_7:30;
  card if>0(a, I1) = card Mi + card J by SCMFSA6A:21;
  then
A4: card Mi = card if>0(a,I1)-card J
    .= card I1 + 4 - 1 by Th2,Lm1
    .= card I + 1 + 4 - 1 by COMPOS_2:11
    .= c5;
  then
A5: not c5 in dom Mi;
 dom if>0(a,I1) = dom Mi \/ dom Reloc(J, c5) by A4,SCMFSA6A:39;
  then
A6: c5 in dom Reloc(J, c5) by A3,A5,XBOOLE_0:def 3;
A7: Reloc(J,c5) = IncAddr(Shift(J,c5),c5) by COMPOS_1:34;
   c5 <> card I + 2;
  hence while>0(a,I).c5 = (Mi ";" J).c5 by FUNCT_7:32
    .= (Reloc(J,c5)).c5 by A6,SCMFSA6A:40,A4
    .= IncAddr( halt SCM+FSA, c5 ) by A1,A2,A7,COMPOS_1:def 21
    .= halt SCM+FSA by COMPOS_0:4;
end;
