
theorem LemmaIntProg:
  for f being Arithmetic_Progression st
    ex i being Nat st f.i is Integer &
    difference f is Integer holds
      f is integer-valued
  proof
    let f be Arithmetic_Progression;
    assume ex i being Nat st f.i is Integer &
    difference f is Integer; then
    consider i being Nat such that
A1: f.i is Integer & difference f is Integer;
    defpred P[Nat] means f.$1 is integer;
A2: ex k being Nat st P[k] by A1;
A3: for k being Nat st k <> 0 & P[k]
    ex n being Nat st n < k & P[n]
    proof
      let k be Nat;
      assume
BB:   k <> 0 & P[k]; then
      difference f = f.(k-1+1) - f.(k-1) by LemmaDiffConst; then
b1:   f.(k-1) = f.k - difference f;
      reconsider n = k-1 as Nat by BB; :::: repeated
      take n;
      thus thesis by b1,XREAL_1:44,BB,A1;
    end;
z1: P[0] from NAT_1:sch 7(A2,A3);
    for n being object st n in dom f holds f.n is integer
    proof
      let n be object;
SS:   dom f = NAT by FUNCT_2:def 1;
      assume n in dom f; then
      reconsider nn = n as Nat by SS;
      f = ArProg(f.0,difference f) by APAsArProg;
      hence thesis by A1,z1;
    end;
    hence thesis by VALUED_0:def 11;
  end;
