Given the real-valued functions $f_1$ and $f_2$ with $x\in\mathbb{R}$, then $$ \frac{df_2(f_1(x))}{dx} = \frac{df_2(f_1(x))}{d f_1(x)}\frac{df_1(x)}{dx}$$
Is it then the case that if we also have a real-valued function $f_3$, then $$ \frac{df_3(f_2(f_1(x)))}{dx} = \frac{df_3(f_2(f_1(x)))}{df_2(f_1(x))}\frac{df_2(f_1(x))}{df_1(x)}\frac{df_1(x)}{dx}$$
Is this correct?
If so, does the chain rule generalize to the following statement: $$ \frac{df_{N}(f_{N-1}(...f_2(f_1(x))))}{dx} $$ $$= \frac{df_{N}(f_{N-1}(...f_2(f_1(x))))}{df_{N-1}(...f_2(f_1(x)))} \frac{df_{N-1}(...f_2(f_1(x)))}{df_{N-2}(...f_2(f_1(x)))}...\frac{df_2(f_1(x))}{df_1(x)}\frac{df_1(x)}{dx}$$
My apologies about this looking like a straight calculus question. I am asking to figure out the backpropagation algorithm in its general form.