# DifferentialVariableCategory S¶

- S: OrderedSet

DifferentialVariableCategory constructs the set of derivatives of a given set of (ordinary) differential indeterminates. If `x`

, …, `y`

is an ordered set of differential indeterminates, and the prime notation is used for differentiation, then the set of derivatives (including zero-th order) of the differential indeterminates is `x`

, `x'`

, `x''`

, …, `y`

, `y'`

, `y''`

, … (Note: in the interpreter, the `n`

-th derivative of `y`

is displayed as `y`

with a subscript `n`

.) This set is viewed as a set of algebraic indeterminates, totally ordered in a way compatible with differentiation and the given order on the differential indeterminates. Such a total order is called a ranking of the differential indeterminates. A domain in this category is needed to construct a differential polynomial domain. Differential polynomials are ordered by a ranking on the derivatives, and by an order (extending the ranking) on on the set of differential monomials. One may thus associate a domain in this category with a ranking of the differential indeterminates, just as one associates a domain in the category OrderedAbelianMonoidSup with an ordering of the set of monomials in a set of algebraic indeterminates. The ranking is specified through the binary relation <. For example, one may define one derivative to be less than another by lexicographically comparing first the order, then the given order of the differential indeterminates appearing in the derivatives. This is the default implementation. The notion of weight generalizes that of degree. A polynomial domain may be made into a graded ring if a weight function is given on the set of indeterminates, Very often, a grading is the first step in ordering the set of monomials. For differential polynomial domains, this constructor provides a function weight, which allows the assignment of a non-negative number to each derivative of a differential indeterminate. For example, one may define the weight of a derivative to be simply its order (this is the default assignment). This weight function can then be extended to the set of all differential polynomials, providing a graded ring structure.

- <: (%, %) -> Boolean
- from PartialOrder
- <=: (%, %) -> Boolean
- from PartialOrder
- =: (%, %) -> Boolean
- from BasicType
- >: (%, %) -> Boolean
- from PartialOrder
- >=: (%, %) -> Boolean
- from PartialOrder
- ~=: (%, %) -> Boolean
- from BasicType
- coerce: % -> OutputForm
- from CoercibleTo OutputForm

- coerce: S -> %
`coerce(s)`

returns`s`

, viewed as the zero-th order derivative of`s`

.

- differentiate: % -> %
`differentiate(v)`

returns the derivative of`v`

.

- differentiate: (%, NonNegativeInteger) -> %
`differentiate(v, n)`

returns the`n`

-th derivative of`v`

.- hash: % -> SingleInteger
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState
- from SetCategory
- latex: % -> String
- from SetCategory

- makeVariable: (S, NonNegativeInteger) -> %
`makeVariable(s, n)`

returns the`n`

-th derivative of a differential indeterminate`s`

as an algebraic indeterminate.- max: (%, %) -> %
- from OrderedSet
- min: (%, %) -> %
- from OrderedSet

- order: % -> NonNegativeInteger
`order(v)`

returns`n`

if`v`

is the`n`

-th derivative of any differential indeterminate.- retract: % -> S
- from RetractableTo S
- retractIfCan: % -> Union(S, failed)
- from RetractableTo S
- smaller?: (%, %) -> Boolean
- from Comparable

- variable: % -> S
`variable(v)`

returns`s`

if`v`

is any derivative of the differential indeterminate`s`

.

- weight: % -> NonNegativeInteger
`weight(v)`

returns the weight of the derivative`v`

.