let a, b, n be Element of NAT ; GenFib (b,(a + b),n) = GenFib (a,b,(n + 1))
defpred S1[ Nat] means GenFib (b,(a + b),$1) = GenFib (a,b,($1 + 1));
A1:
for k being Nat st S1[k] & S1[k + 1] holds
S1[k + 2]
proof
let k be
Nat;
( S1[k] & S1[k + 1] implies S1[k + 2] )
assume
(
S1[
k] &
S1[
k + 1] )
;
S1[k + 2]
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
S1[
k + 2]
;
verum
end;
GenFib (b,(a + b),0) =
b
by Th32
.=
GenFib (a,b,(0 + 1))
by Th32
;
then A2:
S1[ 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:
S1[1]
;
for k being Nat holds S1[k]
from FIB_NUM:sch 1(A2, A3, A1);
hence
GenFib (b,(a + b),n) = GenFib (a,b,(n + 1))
; verum