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.
Derivation and Differential
The derivation of a differential ring and its differential, whenever applicable, can be retrieved as indicated below.
- 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.
Numerical Invariants
Predicates and Booleans
- R eq F: RngDiff, RngDiff -> BoolElt
Returns
trueif and only if the differential rings \(R\) and \(F\) are the same.
- IsIdentical(R, F): RngDiff, RngDiff -> BoolElt
Returns
trueif and only if the differential rings \(R\) and \(F\) are identical.
- IsDomain(R): RngDiff -> BoolElt
Returns
trueif and only if the differential ring \(R\) is a domain.
- IsDifferentialField(R): Rng -> BoolElt
Returns
trueif and only if the ring \(R\) is a differential field.
- IsAlgebraicDifferentialField(R): Rng -> BoolElt
Returns
trueif and only if the field structure of the differential ring \(R\) is an algebraic function field.
- IsDifferentialSeriesRing(R): Rng -> BoolElt
Returns
trueif and only if the underlying ring of the differential ring \(R\) is a series ring.
- IsDifferentialLaurentSeriesRing(R): Rng -> BoolElt
Returns
trueif 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: Predicates for Differential Rings (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
- HasProjectiveDerivation(F): RngDiff -> BoolElt
Returns
trueif 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
trueif 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: Predicates on the 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
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: Relative Precision of a Series Ring (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
- Example: Relative Precision of a 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
- 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: Changing the Precision of a Series Ring (ex-d18d60)
Run in calculator (opens in a new tab)
> 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