Differential polynomial rings

A differential polynomial ring over the commutative ring $R$ is an action polynomial ring $A$ whose action maps are derivations of $A$, i.e. $R$-linear maps that also satisfy the Leibniz-rule.

Construction

differential_polynomial_ringFunction
differential_polynomial_ring(R::Ring, elementary_symbols::Union{Vector{Symbol}, Int}, n_action_maps::Int) -> Tuple{DifferentialPolyRing, Vector{DifferentialPolyRingElem}}

Construct the differential polynomial ring over the base ring R with the given elementary symbols and n_action_maps commuting derivations.

  • If elementary_symbols is a vector of symbols, those names are used.
  • If it is an integer m, the symbols u1, …, um are generated automatically.

In both cases, the jet variables that are initially available are those with jet [0,…,0], one for each elementary symbol.

This method returns a tuple (dpr, gens) where dpr is the resulting differential polynomial ring and gens is the vector of initial jet variables.

This constructor also accepts all keyword arguments of set_ranking! to control the ranking.

Examples

julia> R, variablesR = differential_polynomial_ring(QQ, 3, 4)
(Differential polynomial ring in 3 elementary symbols over QQ, DifferentialPolyRingElem{QQFieldElem}[u1[0,0,0,0], u2[0,0,0,0], u3[0,0,0,0]])

julia> R
Differential polynomial ring in 3 elementary symbols u1, u2, u3
with 4 commuting derivations
  over rational field

julia> variablesR
3-element Vector{DifferentialPolyRingElem{QQFieldElem}}:
 u1[0,0,0,0]
 u2[0,0,0,0]
 u3[0,0,0,0]

julia> S, variablesS = differential_polynomial_ring(QQ, [:a, :b, :c], 4)
(Differential polynomial ring in 3 elementary symbols over QQ, DifferentialPolyRingElem{QQFieldElem}[a[0,0,0,0], b[0,0,0,0], c[0,0,0,0]])

julia> S
Differential polynomial ring in 3 elementary symbols a, b, c
with 4 commuting derivations
  over rational field

julia> variablesS
3-element Vector{DifferentialPolyRingElem{QQFieldElem}}:
 a[0,0,0,0]
 b[0,0,0,0]
 c[0,0,0,0]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Action maps

The action maps of a differential polynomial ring over the commutative ring R are R-linear derivations.

Warning

After calling one of the two following methods, all jet variables that arise within their computation will be tracked afterwards.

diff_actionMethod
diff_action(p::DifferentialPolyRingElem, i::Int)

Apply the i-th derivation to the polynomial p.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
diff_actionMethod
diff_action(p::ActionPolyRingElem, d::Vector{Int}) -> ActionPolyRingElem

Successively apply the i-th diff-action d[i]-times to the polynomial p, where $i = 1, \ldots, \mathrm{length}(d)$.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source