## Derivative

Declare an operator to satisfy the Leibnitz rule.

This property representes an generic derivative object, satisfying the Leibnitz rule. These
generic derivatives do not have to commuteD{#}::Derivative;
ex:= D(A B C);
product_rule(_);

\(\displaystyle{}\text{Attached property Derivative to }D(\#).\)

\(\displaystyle{}D(A B C)\)

\(\displaystyle{}D(A) B C+A D(B) C+A B D(C)\)

Refer to the documentation of

`PartialDerivative`

on how to
write derivatives with respect to coordinate indices or coordinates.Make sure to declare the derivative either using the "with any arguments"
notation as used above (using the hash mark), or by giving an
appropriate pattern. The following does not work:

D::Derivative;
ex:=D(A B C);
product_rule(_);

\(\displaystyle{}\text{Attached property Derivative to }D.\)

\(\displaystyle{}D(A B C)\)

\(\displaystyle{}D(A B C)\)

The pattern

`D`

above does not match the expression `D(A B C)`

and hence the algorithm does not know that `D(A B C)`

is a
derivative acting on the product of three objects.