## `Cat::PartialDifferentialRing` -- the category of partial differential rings

#### Introduction

`Cat::PartialDifferentialRing` represents the category of partial differential rings.

#### Generating the category

`Cat::PartialDifferentialRing()`

#### Categories

`Cat::CommutativeRing`

#### Details

- A `Cat::PartialDifferentialRing` is a commutative ring with a finite set of derivation operators `D_i`.
- A derivation is a linear operator with product rule, i.e. `D_i(f * g)` equals `D_i(f) * g + f * D_i(g)` for all `f` and `g`.
- For many partial differential rings the derivations are differentiations with respect to some indeterminates. Thus in order to support a natural notion it is also supposed that a method `"diff"` exists, such that `diff(f, x)` returns the partial derivation of `f` with respect to the indeterminate `x`.

#### Method D: returns derivative

- `D(Type::ListOf(Type::PosInt) l, dom x)`
- - Must return the derivative of `x` which is given by the indices in `l`:
    1. If `l` is empty then `x` must be returned.
    2. If `l` contains one integer `i` then the `i`-th derivative `D_i(x)` must be returned. If the `i`-th derivativation does not exist `dom::zero` must be returned.
    3. If `l` contains more than one integer `i1`,...,`in` than the derivative `D_i1(...D_in(x)...)` must be returned.

#### Method diff: returns partial derivative

- `diff(dom x <, variable v...>)`
- - Must return the derivative of `x` with respect to the variables `v`:
    1. `diff(x)` must return `x`.
    2. `diff(x, v)` must return the partial derivative of `x` with respect to `v`.
    3. `diff(x, v1,..., vn)` must return `diff(...diff(x, v1),...vn)`.

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000