Structure Operations on Differential Rings#

Category and Parent#

Differential Rings form the Magma category RngDiff. The notional power structures exist as parents of differential rings.

Category(R): RngDiff -> RngDiff#
Type(R): RngDiff -> RngDiff#

The category, or type, of the differential ring \(R\).

Parent(R): RngDiff -> PowStr#

The power structure of the differential ring \(R\).

Derivation and Differential#

The derivation of a differential ring and its differential, whenever applicable, can be retrieved as indicated below.

Derivation(R): RngDiff -> Map#

The derivation of the differential ring \(R\).

Differential(F): RngDiff -> DiffFunElt#

The differential belonging to the derivation of the differential field \(F\). The field \(F\) must have been constructed in such a way that its derivation is defined by a differential.

Example: Diff Ring Derivation Differential (ex-627c5f)#
> F<z> := RationalDifferentialField(Rationals());
> Derivation(F);
Mapping from: RngDiff: F to RngDiff: F given by a rule [no inverse]
> Differential(F);
(1) d(z)

Run in calculator

Numerical Invariants#

Ngens(R): RngDiff -> RngIntElt#

The number of indeterminates associated with the differential ring \(R\).

Predicates and Booleans#

R eq F: RngDiff, RngDiff -> BoolElt#

Returns true if and only if the differential rings \(R\) and \(F\) are the same.

IsIdentical(R, F): RngDiff, RngDiff -> BoolElt#

Returns true if and only if the differential rings \(R\) and \(F\) are identical.

IsDomain(R): RngDiff -> BoolElt#

Returns true if and only if the differential ring \(R\) is a domain.

IsField(R): RngDiff -> BoolElt#

Returns true if and only if the differential ring \(R\) is field.

IsDifferentialField(R): Rng -> BoolElt#

Returns true if and only if the ring \(R\) is a differential field.

IsAlgebraicDifferentialField(R): Rng -> BoolElt#

Returns true if and only if the field structure of the differential ring \(R\) is an algebraic function field.

IsDifferentialSeriesRing(R): Rng -> BoolElt#

Returns true if and only if the underlying ring of the differential ring \(R\) is a series ring.

IsDifferentialLaurentSeriesRing(R): Rng -> BoolElt#

Returns true if and only if the underlying ring of the differential ring \(R\) is a Laurent series ring and \(R\) has been created with a known constant ring.

Example: Diff Rings Booleans (ex-913ce7)#

This example shows some booleans for various differential rings.

> F<z>:=RationalDifferentialField(Rationals());
> S<t>:=DifferentialLaurentSeriesRing(Rationals());
> IsAlgebraicDifferentialField(F);
true
> IsDifferentialSeriesRing(F);
false
> IsAlgebraicDifferentialField(S);
false
> IsDifferentialSeriesRing(S);
true
> IsDifferentialLaurentSeriesRing(S);
true

Run in calculator

HasProjectiveDerivation(F): RngDiff -> BoolElt#

Returns true if and only if \(F\) is a differential ring with derivation weakly of the form \((F.1)\cdot d/d(F.1)\).

HasZeroDerivation(F): RngDiff -> BoolElt#

Returns true if and only if the algebraic differential field or differential series ring \(F\) has zero derivation. When \(F\) is a series ring we relax being zero to being weakly zero.

Example: Diff Rings Booleans Derivation (ex-a3014d)#
> F<z>:=RationalDifferentialField(Rationals());
> S<t>:=DifferentialLaurentSeriesRing(Rationals());
> HasProjectiveDerivation(F);
false
> HasProjectiveDerivation(ChangeDerivation(F,z));
true
> HasZeroDerivation(F);
false
> HasProjectiveDerivation(S);
true
> HasProjectiveDerivation(ChangeDerivation(S,S!3));
false
> HasZeroDerivation(S);
false

Run in calculator

Precision#

RelativePrecision(F): RngDiff -> RngElt#

Returns the relative precision of the underlying series ring of F.

RelativePrecisionOfDerivation(F): RngDiff -> RngElt#

Given a differential Laurent series ring \(F\), returns the relative precision of the ring derivative of \(F.1\).

Example: Diff Rings Relative Precision (ex-4674cf)#

This example illustrate the relative precision of differential rings.

> S<t>:=DifferentialLaurentSeriesRing(Rationals());
> Derivative(t);
t
> IsDifferentialLaurentSeriesRing(S);
true
> RelativePrecision(S);
20
> RelativePrecision(UnderlyingRing(S));
20;
> V<w>:=DifferentialLaurentSeriesRing(Rationals():Precision:=30);
> RelativePrecision(V);
30
> RelativePrecision(V) eq RelativePrecision(UnderlyingRing(V));
true

Run in calculator

Example Differential Ring Relative Precision Derivation (ex-617005)#
> S<t> := DifferentialLaurentSeriesRing(Rationals());
> RelativePrecisionOfDerivation(S);
Infinity
> V<w> := ChangeDerivation(S,t+O(t^6));
> Derivation(V)(w);
w^2 + O(w^7)
> RelativePrecisionOfDerivation(V);
5

Run in calculator

ChangePrecision(F, p): RngDiff, RngElt -> RngDiff, Map#

Returns the differential series ring isomorphic to \(F\) with relative precision \(p\). The map returned is the induced map of \(F\) to the new field.

Example: Diff Rings Change Precision (ex-d18d60)#
> S<t>:=DifferentialLaurentSeriesRing(Rationals());
> RelativePrecision(S);
20
> V<w>,mp :=  ChangePrecision(S,10);
> Type(V);
RngDiff
> IsDifferentialLaurentSeriesRing(V);
true
> RelativePrecision(V);
10
> RelativePrecision(1/(w-1)) eq 10;
true
> mp(t) eq w;
true
> w@@mp eq t;
true
> derivt := Derivation(S)(t);
> derivt;
t
> derivw := Derivation(V)(w);
> derivw;
w
> mp(derivt) eq Derivation(V)(w);
true

Run in calculator