Fibonacci addition law $F_{n+m} = F_{n-1}F_m + F_n F_{m+1}$

With Fibonacci numbers usually there are multiple ways of proving identities.

One way (which is one of my favourites) to prove your identity is the following:

Consider the following problem:

A person climbs up $\displaystyle n$ steps, by taking either one step, or two steps at a time.

The total number of ways the person can climb up all the $\displaystyle n$ steps is $\displaystyle F_{n+1}$ (Why?)

Now consider climbing $\displaystyle m+n-1$ steps and split into the cases when the person lands on step $\displaystyle n$ and the cases when the person lands on step $\displaystyle n-1$ and takes two steps at that point (and so does not land on step $\displaystyle n$ in those cases). These two cases cover all possibilities, and so we have:

$$\displaystyle F_{m+n} = F_{n+1}F_{m} + F_{n}F_{m-1}$$


If pressed, I'd nuke with Binet's formula myself, but here's another approach. By an easy induction, if $$A=\pmatrix{0&1\\\\ 1&1}$$ then $$A^n=\pmatrix{F_{n-1}&F_n\\\\ F_n&F_{n+1}}.$$ Comparing the top right entry in the equation $A^m A^n=A^{m+n}$ gives $$F_{m-1}F_n+F_m F_{n+1}=F_{m+n}.$$


Hint $\ $ If we put the Fibonacci recurrence into matrix form then the result is obvious, viz.

$$ M^n\ :=\ \left[\begin{array}{rr} \!\!1 & 1 \\\ \!\!1 & 0 \end{array}\right]^{\large n} =\, \left[\begin{array}{cc} F_{n+1} &\!\! F_n \\\ F_n &\!\! F_{n-1} \end{array}\right] $$

Now comparing the entries of $\ M^{n+m} = M^n \ M^m\,$ immediately yields the Fibonacci addition law.

Remark $\ M$ is the shift operator, i.e. $\,(F_{n−1},F_n)M^t = (F_n,F_{n+1}).\,$ The same idea works for any linear recurrence.