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: