reserve p,p1,p2,h for Instruction-Sequence of SCM+FSA;
reserve k, l, n for Nat,
  j for Integer,
  i,i1 for Instruction of SCM+FSA;
reserve s, s1, s2 for State of SCM+FSA,
  a for read-write Int-Location,
  b for Int-Location,
  I, J for MacroInstruction of SCM+FSA,
  Ig for good MacroInstruction of SCM+FSA,
  i, j, k, m, n for Nat;

theorem Th31: :: Step_gt0_0:
  (StepWhile>0(a,I,p,s).k).a <= 0 implies
   DataPart StepWhile>0(a,I,p,s).(k+1) = DataPart StepWhile>0(a,I,p,s).k
proof
  assume
A1: (StepWhile>0(a,I,p,s).k).a <= 0;
  set SW = StepWhile>0(a,I,p,s),
      PW = p +* while>0(a,I);
A2: while>0(a,I) c= PW by FUNCT_4:25;
A3: DataPart(Initialize(SW.k)) = DataPart SW.k
by MEMSTR_0:79;
  then
A4: SW.k.a = (Initialize(SW.k)).a by SCMFSA_M:2;
  thus DataPart SW.(k+1) = DataPart Comput(PW +* while>0(a,I),
     (Initialize(SW.k)
  ), (LifeSpan(PW +* I,Initialize(SW.k)) + 2)) by SCMFSA_9:def 5
    .= DataPart StepWhile>0(a,I,p,s).k by A1,A3,A4,Th29,A2;
end;
