theorem Th54:
  for I being Element of A st I is_terminating_wrt g for i,n being
  Variable of g st (ex d being Function st d.b = 0 & d.n = 1 & d.i = 2) & for s
  holds g.(s,I).n = s.n & g.(s,I).i = s.i holds for-do(i:=t, i leq n, i+=1, I)
  is_terminating_wrt g
proof
  set S = Funcs(X, INT);
  set T = Funcs(X, INT)\(b,0);
  let I be Element of A such that
A1: I is_terminating_wrt g;
  let i,n be Variable of g;
  i+=1 is_terminating_wrt g by AOFA_000:104;
  then
A2: I\; i+=1 is_terminating_wrt g by A1,AOFA_000:110;
  set Q = while(i leq n, I\; i+=1);
  given d being Function such that
A3: d.b = 0 and
A4: d.n = 1 and
A5: d.i = 2;
  assume
A6: for s holds g.(s,I).n = s.n & g.(s,I).i = s.i;
  let s;
A7: [s, i:=t] in TerminatingPrograms(A,S,T,g) by AOFA_000:def 36;
A8: i leq n is_terminating_wrt g by AOFA_000:104;
  g iteration_terminates_for I\; i+=1\; i leq n, g.(g.(s, i:=t), i leq n)
  by A3,A4,A5,A6,Th52;
  then [g.(s, i:=t), Q] in TerminatingPrograms(A,S,T,g) by A8,A2,AOFA_000:114;
  hence thesis by A7,AOFA_000:def 35;
end;
