`d/(dx)[f(x)*g(x)] = lim_(h->0) (f(x+h)*g(x+h)-f(x)*g(x))/h`
The trick is to add and subtract `f(x+h)*g(x)` in the numerator.
`lim_(h->0) (f(x+h)*g(x+h)-f(x)*g(x))/h = lim_(h->0) (f(x+h)*g(x+h)-f(x+h)*g(x)+f(x+h)*g(x)-f(x)*g(x))/h`
Now, factor in groups.
`lim_(h->0) (f(x+h)*g(x+h)-f(x+h)*g(x)+f(x+h)*g(x)-f(x)*g(x))/h = (f(x+h) [color(blue)(g(x+h)-g(x))]+g(x)[color(blue)(f(x+h)-f(x))])/h`
Now separate these two groups.
`lim_(h->0) (f(x+h)[g(x+h)-g(x)]+g(x)[f(x+h)-f(x)])/h = lim_(h->0) (f(x+h)[g(x+h)-g(x)])/h + lim_(h->0) (g(x)[f(x+h)-f(x)])/h`
We can evaluate these limits based on our limit rules.
`f(x)*g'(x)+g(x)*f'(x)`