reserve s, s1, s2 for State of SCM+FSA,
  p, p1 for Instruction-Sequence of SCM+FSA,
  a, b for Int-Location,
  d for read-write Int-Location,
  f for FinSeq-Location,
  I for MacroInstruction of SCM+FSA,
  J for good MacroInstruction of SCM+FSA,
  k, m for Nat;

theorem Th14:
 for J being good really-closed MacroInstruction of SCM+FSA holds
  ProperTimesBody a,J,s,p & 0 <= s.a & (s.intloc 0 = 1 or a is
read-write) implies
 for k st k >= s.a holds StepTimes(a,J,p,s).k.(1-stRWNotIn({
  a} \/ UsedILoc J)) = 0 & StepTimes(a,J,p,s).k.intloc 0 = 1
proof let J be good really-closed MacroInstruction of SCM+FSA;
  set I = J;
  assume that
A1: ProperTimesBody a,I,s,p and
A2: 0 <= s.a and
A3: s.intloc 0 = 1 or a is read-write;
  set au = 1-stRWNotIn ({a} \/ UsedILoc I);
  set ST = StepTimes(a,I,p,s);
  set SW = StepWhile>0 (au, I ";" SubFrom(au, intloc 0),  p, Exec(au := a,
  Initialized s));
  defpred X[Nat] means $1 >= s.a implies ST.$1.au = 0 & ST.$1.
  intloc 0 = 1;
A4: for k st X[k] holds X[k+1]
  proof
    reconsider sa = s.a as Element of NAT by A2,INT_1:3;
    let k such that
A5: k >= s.a implies ST.k.au = 0 & ST.k.intloc 0 = 1 and
A6: (k+1) >= s.a;
    per cases by A6,XXREAL_0:1;
    suppose
A7:   k+1 = sa;
      then ST.(k+1).au+(k+1) = s.a by A1,A3,Th13;
      hence ST.(k+1).au = 0 by A7;
      thus thesis by A1,A7,Th12;
    end;
    suppose
A8:   k+1 > sa;
      then
A9:   DataPart SW.(k+1) = DataPart SW.k by A5,NAT_1:13,SCMFSA9A:31;
      hence ST.(k+1).au = 0 by A5,A8,NAT_1:13,SCMFSA_M:2;
      thus thesis by A5,A8,A9,NAT_1:13,SCMFSA_M:2;
    end;
  end;
A10: X[0]
  proof
    assume
A11: 0 >= s.a;
    thus ST.0.au = ST.0.au+0
      .= 0 by A1,A2,A3,A11,Th13;
    thus thesis by A1,A2,Th12;
  end;
  thus for k holds X[k] from NAT_1:sch 2(A10, A4);
end;
