Symbolic Differentiation
Symbolic differentiation is easy to do with patterns because there is a list of reduction patterns in calculus books:
d/dx (u + v) = d/dx(u) + d/dx(v)
d/dx (u * v) = v * d/dx(u) + u * d/dx(v)
( (deriv (+ ?u ?v) ?x) (+ (deriv ?u ?x) (deriv ?v ?x)) ) ( (deriv (* ?u ?v) ?x) (+ (* ?v (deriv ?u ?x)) (* ?u (deriv ?v ?x))) )
These formulas have the properties: