reserve a,b,n for Element of NAT;

theorem
  for a,b,n being Element of NAT holds GenFib(b,a+b,n) = GenFib(a,b,n+1)
proof
  let a,b,n be Element of NAT;
  defpred P[Nat] means GenFib(b,a+b,$1) = GenFib(a,b,$1+1);
A1: for k being Nat st P[k] & P[k+1] holds P[k+2]
  proof
    let k be Nat;
    assume ( P[k])& P[k+1];
    then GenFib(b,a+b,k+2) = GenFib(a,b,k+1) + GenFib(a,b,k+2) by Th34
      .= GenFib(a,b,k+3) by Th35
      .= GenFib(a,b,((k+2)+1));
    hence thesis;
  end;
  GenFib(b,a+b,0)=b by Th32
    .=GenFib(a,b,0+1) by Th32;
  then
A2: P[0];
  GenFib(b,a+b,1)=a+b by Th32
    .=a+GenFib(a,b,1) by Th32
    .=GenFib(a,b,0)+GenFib(a,b,0+1) by Th32
    .=GenFib(a,b,0+2) by Th34
    .=GenFib(a,b,1+1);
  then
A3: P[1];
  for k being Nat holds P[k] from FIB_NUM:sch 1 (A2, A3, A1);
  hence thesis;
end;
