Computing with non-commutative polynomials
Univariate differential case
Let's first consider a differential
operator algebra.
fricas
Z ==> Integer
Type: Void
fricas
P ==> UnivariatePolynomial('x, Z)
Type: Void
fricas
sigma1: Automorphism P := 1
Type: Automorphism(UnivariatePolynomial
?(x,
Integer))
fricas
delta1: P -> P := D$P
Type: (UnivariatePolynomial
?(x,
Integer) -> UnivariatePolynomial
?(x,
Integer))
fricas
S1 ==> UnivariateSkewPolynomial('X, P, sigma1, delta1)
Type: Void
fricas
x1: S1 := 'x
Type: UnivariateSkewPolynomial
?(X,
UnivariatePolynomial
?(x,
Integer),
R -> R,
theMap(DIFRING-;D;2S;1,
303))
fricas
X1: S1 := 'X
Type: UnivariateSkewPolynomial
?(X,
UnivariatePolynomial
?(x,
Integer),
R -> R,
theMap(DIFRING-;D;2S;1,
303))
fricas
X1*x1
Type: UnivariateSkewPolynomial
?(X,
UnivariatePolynomial
?(x,
Integer),
R -> R,
theMap(DIFRING-;D;2S;1,
303))
Univariate shift case
Similarly, we can define a
shift algebra.
fricas
xp: P := 'x
Type: UnivariatePolynomial
?(x,
Integer)
fricas
sigma2: Automorphism P := morphism((p: P): P +-> p(x+1), (p: P): P +-> p(x-1))
Type: Automorphism(UnivariatePolynomial
?(x,
Integer))
fricas
delta2: P -> P := (p: P): P +-> 0
Type: (UnivariatePolynomial
?(x,
Integer) -> UnivariatePolynomial
?(x,
Integer))
fricas
S2 ==> UnivariateSkewPolynomial('X, P, sigma2, delta2)
Type: Void
fricas
x2: S2 := 'x
Type: UnivariateSkewPolynomial
?(X,
UnivariatePolynomial
?(x,
Integer),
R -> R,
theMap(*1;anonymousFunction;2;initial;internal))
fricas
X2: S2 := 'X
Type: UnivariateSkewPolynomial
?(X,
UnivariatePolynomial
?(x,
Integer),
R -> R,
theMap(*1;anonymousFunction;2;initial;internal))
fricas
X2*x2
Type: UnivariateSkewPolynomial
?(X,
UnivariatePolynomial
?(x,
Integer),
R -> R,
theMap(*1;anonymousFunction;2;initial;internal))
Multivariate case
The multivariate case is only
sligthly more complicated.
Let us here use a field as coefficient domain.
fricas
1