reserve x for set,
  D for non empty set,
  k, n for Nat,
  z for Nat;
reserve
  N for with_zero set,
  S for IC-Ins-separated non empty
          with_non-empty_values AMI-Struct over N,
  i for Element of the InstructionsF of S,
  l, l1, l2, l3 for Nat,
  s for State of S;
reserve ss for Element of product the_Values_of S;

theorem Th2:
  for S being IC-Ins-separated non empty with_non-empty_values
         AMI-Struct over N,
      il being Nat, i being Instruction of S st i is halting
  holds NIC(i,il) = {il}
proof
  let S be IC-Ins-separated
   non empty with_non-empty_values AMI-Struct over N,
  il be Nat, i be Instruction of S
  such that
A1: for s being State of S holds Exec(i,s) = s;
  hereby
    let n be object;
    assume n in NIC(i,il);
    then ex s being Element of product the_Values_of S
    st n = IC Exec(i,s) & IC s = il;
    then n = il by A1;
    hence n in {il} by TARSKI:def 1;
  end;
    set s = the  State of S,
        P = the Instruction-Sequence of S;
  let n be object;
  assume
 n in {il};
  then
A2: n = il by TARSKI:def 1;
    il in NAT by ORDINAL1:def 12;
    then
A3: il in dom P by PARTFUN1:def 2;
A4: IC S in dom s by MEMSTR_0:2;
   then IC(s+*(IC S,il)) = il by FUNCT_7:31;
   then CurInstr(P+*(il,i),s+*(IC S,il))
         = (P+*(il,i)).il by PBOOLE:143
        .= i by A3,FUNCT_7:31;
   then IC Following(P+*(il,i),s+*(IC S,il))
      = IC(s+*(IC S,il)) by A1
     .= n by A2,A4,FUNCT_7:31;
  hence n in NIC(i,il) by Lm1;
end;
