Chapter 2 - symbolic differentiation