Availability::- use_module(library(clpBNR)).
 partial_derivative(+Exp, -X, ?Drv) is semidet
Suucceds if the (symbolic) partial derivative of Exp with respect to variable X is Drv; otherwise fails. The syntax of Exp is determined by normal clpBNR (and Prolog) arithmetic syntax. Examples:
?- partial_derivative(X**2,X,Drv).
Drv = 2*X.

?- partial_derivative(X/Y,X,Drv).
Drv = 1/Y.

?- partial_derivative(X/Y,Y,Drv).
Drv = -1*X/Y**2.

?- partial_derivative(max(X,Y),Y,Drv).
false.

This predicate can be used in generating additional constraints, e.g., local optima with a gradient of 0, or in constructing meta-contractors like the Taylor series contractor described in the User Guide.