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 Th12:
 for J being good really-closed MacroInstruction of SCM+FSA holds
  ProperTimesBody a,J,s,p implies for k st k <= s.a holds
  StepTimes(a,J,p,s).k.intloc 0 = 1
proof let J be good really-closed MacroInstruction of SCM+FSA;
  set I = J;
  set ST = StepTimes(a,I,p,s);
  set au = 1-stRWNotIn ({a} \/ UsedILoc I);
  set Is = Initialized s;
  defpred X[Nat] means $1 <= s.a implies ST.$1.intloc 0 = 1;
  assume
A1: ProperTimesBody a,I,s,p;
A2: for k being Nat st X[k] holds X[k+1]
  proof
    let k be Nat;
    assume that
A3: k <= s.a implies ST.k.intloc 0 = 1 and
A4: k+1 <= s.a;
    reconsider sa = s.a as Element of NAT by A4,INT_1:3;
A5: k < sa by A4,NAT_1:13;
    then I is_halting_on ST.k,p+*times*(a,I) by A1;
    hence thesis by A3,A5,Th8;
  end;
A6: X[0]
  proof
    assume 0 <= s.a;
    thus ST.0.intloc 0 = Exec(au := a, Is).intloc 0 by SCMFSA_9:def 5
      .= Is.intloc 0 by SCMFSA_2:63
      .= 1 by SCMFSA_M:9;
  end;
  thus for k holds X[k] from NAT_1:sch 2(A6, A2);
end;
