let a, b, c, d, n be Element of NAT ; :: thesis: (GenFib a,b,n) + (GenFib c,d,n) = GenFib (a + c),(b + d),n
defpred S1[ Nat] means (GenFib a,b,$1) + (GenFib c,d,$1) = GenFib (a + c),(b + d),$1;
A1: for k being Nat st S1[k] & S1[k + 1] holds
S1[k + 2]
proof
let k be Nat; :: thesis: ( S1[k] & S1[k + 1] implies S1[k + 2] )
assume that
A2: S1[k] and
A3: S1[k + 1] ; :: thesis: S1[k + 2]
(GenFib a,b,(k + 2)) + (GenFib c,d,(k + 2)) = ((GenFib a,b,k) + (GenFib a,b,(k + 1))) + (GenFib c,d,(k + 2)) by Th34
.= ((GenFib a,b,k) + (GenFib a,b,(k + 1))) + ((GenFib c,d,k) + (GenFib c,d,(k + 1))) by Th34
.= (GenFib (a + c),(b + d),k) + ((GenFib a,b,(k + 1)) + (GenFib c,d,(k + 1))) by A2
.= GenFib (a + c),(b + d),(k + 2) by A3, Th34 ;
hence S1[k + 2] ; :: thesis: verum
end;
(GenFib a,b,1) + (GenFib c,d,1) = b + (GenFib c,d,1) by Th32
.= b + d by Th32
.= GenFib (a + c),(b + d),1 by Th32 ;
then A4: S1[1] ;
(
GenFib a,b,0 ) + (GenFib c,d,0 ) = a + (GenFib c,d,0 ) by Th32
.= a + c by Th32
.= GenFib (a + c),(b + d),0 by Th32 ;
then A5: S1[ 0 ] ;
for k being Nat holds S1[k] from FIB_NUM:sch 1(A5, A4, A1);
hence (GenFib a,b,n) + (GenFib c,d,n) = GenFib (a + c),(b + d),n ; :: thesis: verum