# MaybeSkewPolynomialCategory(R, E, VarSet)¶

polycat.spad line 165 [edit on github]

R: Join(SemiRng, AbelianMonoid)

VarSet: OrderedSet

The category for general multi-variate possibly skew polynomials over a ring `R`

, in variables from VarSet, with exponents from the OrderedAbelianMonoidSup.

- 0: %
from AbelianMonoid

- 1: % if R has SemiRing
from MagmaWithUnit

- *: (%, %) -> %
from LeftModule %

- *: (%, Fraction Integer) -> % if R has Algebra Fraction Integer
from RightModule Fraction Integer

- *: (%, R) -> %
from RightModule R

- *: (Fraction Integer, %) -> % if R has Algebra Fraction Integer
from LeftModule Fraction Integer

- *: (Integer, %) -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- *: (NonNegativeInteger, %) -> %
from AbelianMonoid

- *: (PositiveInteger, %) -> %
from AbelianSemiGroup

- *: (R, %) -> %
from LeftModule R

- +: (%, %) -> %
from AbelianSemiGroup

- -: % -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- -: (%, %) -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- /: (%, R) -> % if R has Field
from AbelianMonoidRing(R, E)

- ^: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- ^: (%, PositiveInteger) -> %
from Magma

- annihilate?: (%, %) -> Boolean if R has Ring
from Rng

- antiCommutator: (%, %) -> %

- associates?: (%, %) -> Boolean if R has EntireRing
from EntireRing

- associator: (%, %, %) -> % if R has Ring
from NonAssociativeRng

- binomThmExpt: (%, %, NonNegativeInteger) -> % if % has CommutativeRing
from FiniteAbelianMonoidRing(R, E)

- characteristic: () -> NonNegativeInteger if R has Ring
from NonAssociativeRing

- charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero

- coefficient: (%, E) -> R
from AbelianMonoidRing(R, E)

- coefficient: (%, List VarSet, List NonNegativeInteger) -> %
`coefficient(p, lv, ln)`

views the polynomial`p`

as a polynomial in the variables of`lv`

and returns the coefficient of the term`lv^ln`

, i.e.`prod(lv_i ^ ln_i)`

.

- coefficient: (%, VarSet, NonNegativeInteger) -> %
`coefficient(p, v, n)`

views the polynomial`p`

as a univariate polynomial in`v`

and returns the coefficient of the`v^n`

term.

- coefficients: % -> List R
from FreeModuleCategory(R, E)

- coerce: % -> % if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients
from Algebra %

- coerce: % -> OutputForm
from CoercibleTo OutputForm

- coerce: Fraction Integer -> % if R has Algebra Fraction Integer or R has RetractableTo Fraction Integer
- coerce: Integer -> % if R has RetractableTo Integer or R has Ring
from NonAssociativeRing

- coerce: R -> %
from Algebra R

- commutator: (%, %) -> % if R has Ring
from NonAssociativeRng

- construct: List Record(k: E, c: R) -> %
from IndexedProductCategory(R, E)

- constructOrdered: List Record(k: E, c: R) -> %
from IndexedProductCategory(R, E)

- content: % -> R if R has GcdDomain
from FiniteAbelianMonoidRing(R, E)

- degree: % -> E
from AbelianMonoidRing(R, E)

- degree: (%, List VarSet) -> List NonNegativeInteger
`degree(p, lv)`

gives the list of degrees of polynomial`p`

with respect to each of the variables in the list`lv`

.

- degree: (%, VarSet) -> NonNegativeInteger
`degree(p, v)`

gives the degree of polynomial`p`

with respect to the variable`v`

.

- exquo: (%, %) -> Union(%, failed) if R has EntireRing
from EntireRing

- exquo: (%, R) -> Union(%, failed) if R has EntireRing
from FiniteAbelianMonoidRing(R, E)

- fmecg: (%, E, R, %) -> % if R has Ring
from FiniteAbelianMonoidRing(R, E)

- ground?: % -> Boolean
from FiniteAbelianMonoidRing(R, E)

- ground: % -> R
from FiniteAbelianMonoidRing(R, E)

- hash: % -> SingleInteger
from SetCategory

- hashUpdate!: (HashState, %) -> HashState
from SetCategory

- latex: % -> String
from SetCategory

- leadingCoefficient: % -> R
from IndexedProductCategory(R, E)

- leadingMonomial: % -> %
from IndexedProductCategory(R, E)

- leadingSupport: % -> E
from IndexedProductCategory(R, E)

- leadingTerm: % -> Record(k: E, c: R)
from IndexedProductCategory(R, E)

- leftPower: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- leftPower: (%, PositiveInteger) -> %
from Magma

- leftRecip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- linearExtend: (E -> R, %) -> R if R has CommutativeRing
from FreeModuleCategory(R, E)

- listOfTerms: % -> List Record(k: E, c: R)
from IndexedDirectProductCategory(R, E)

- mainVariable: % -> Union(VarSet, failed)
`mainVariable(p)`

returns the biggest variable which actually occurs in the polynomial`p`

, or “failed” if no variables are present. fails precisely if polynomial satisfies ground?

- map: (R -> R, %) -> %
from IndexedProductCategory(R, E)

- mapExponents: (E -> E, %) -> %
from FiniteAbelianMonoidRing(R, E)

- minimumDegree: % -> E
from FiniteAbelianMonoidRing(R, E)

- monomial?: % -> Boolean
from IndexedProductCategory(R, E)

- monomial: (%, List VarSet, List NonNegativeInteger) -> %
`monomial(a, [v1..vn], [e1..en])`

returns`a*prod(vi^ei)`

.

- monomial: (%, VarSet, NonNegativeInteger) -> %
`monomial(a, x, n)`

creates the monomial`a*x^n`

where`a`

is a polynomial,`x`

is a variable and`n`

is a nonnegative integer.- monomial: (R, E) -> %
from IndexedProductCategory(R, E)

- monomials: % -> List %
`monomials(p)`

returns the list of non-zero monomials of polynomial`p`

, i.e.`monomials(sum(a_(i) X^(i))) = [a_(1) X^(1), ..., a_(n) X^(n)]`

.

- numberOfMonomials: % -> NonNegativeInteger
from IndexedDirectProductCategory(R, E)

- one?: % -> Boolean if R has SemiRing
from MagmaWithUnit

- opposite?: (%, %) -> Boolean
from AbelianMonoid

- pomopo!: (%, R, E, %) -> %
from FiniteAbelianMonoidRing(R, E)

- primitiveMonomials: % -> List % if R has SemiRing
`primitiveMonomials(p)`

gives the list of monomials of the polynomial`p`

with their coefficients removed. Note:`primitiveMonomials(sum(a_(i) X^(i))) = [X^(1), ..., X^(n)]`

.

- primitivePart: % -> % if R has GcdDomain
from FiniteAbelianMonoidRing(R, E)

- recip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix Integer, vec: Vector Integer) if R has LinearlyExplicitOver Integer and R has Ring
- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix R, vec: Vector R) if R has Ring
from LinearlyExplicitOver R

- reducedSystem: Matrix % -> Matrix Integer if R has LinearlyExplicitOver Integer and R has Ring
- reducedSystem: Matrix % -> Matrix R if R has Ring
from LinearlyExplicitOver R

- reductum: % -> %
from IndexedProductCategory(R, E)

- retract: % -> Fraction Integer if R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer

- retract: % -> Integer if R has RetractableTo Integer
from RetractableTo Integer

- retract: % -> R
from RetractableTo R

- retractIfCan: % -> Union(Fraction Integer, failed) if R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer

- retractIfCan: % -> Union(Integer, failed) if R has RetractableTo Integer
from RetractableTo Integer

- retractIfCan: % -> Union(R, failed)
from RetractableTo R

- rightPower: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- rightPower: (%, PositiveInteger) -> %
from Magma

- rightRecip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- sample: %
from AbelianMonoid

- smaller?: (%, %) -> Boolean if R has Comparable
from Comparable

- subtractIfCan: (%, %) -> Union(%, failed)

- support: % -> List E
from FreeModuleCategory(R, E)

- totalDegree: % -> NonNegativeInteger
`totalDegree(p)`

returns the largest sum over all monomials of all exponents of a monomial.

- totalDegree: (%, List VarSet) -> NonNegativeInteger
`totalDegree(p, lv)`

returns the maximum sum (over all monomials of polynomial`p`

) of the variables in the list`lv`

.

- totalDegreeSorted: (%, List VarSet) -> NonNegativeInteger
`totalDegreeSorted(p, lv)`

returns the maximum sum (over all monomials of polynomial`p`

) of the degree in variables in the list`lv`

.`lv`

is assumed to be sorted in decreasing order.

- unit?: % -> Boolean if R has EntireRing
from EntireRing

- unitCanonical: % -> % if R has EntireRing
from EntireRing

- unitNormal: % -> Record(unit: %, canonical: %, associate: %) if R has EntireRing
from EntireRing

- variables: % -> List VarSet
`variables(p)`

returns the list of those variables actually appearing in the polynomial`p`

.

- zero?: % -> Boolean
from AbelianMonoid

AbelianGroup if R has AbelianGroup

AbelianMonoidRing(R, E)

Algebra % if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

Algebra Fraction Integer if R has Algebra Fraction Integer

Algebra R if R has CommutativeRing and % has VariablesCommuteWithCoefficients

BiModule(%, %)

BiModule(Fraction Integer, Fraction Integer) if R has Algebra Fraction Integer

BiModule(R, R)

canonicalUnitNormal if R has canonicalUnitNormal

CharacteristicNonZero if R has CharacteristicNonZero

CharacteristicZero if R has CharacteristicZero

CoercibleFrom Fraction Integer if R has RetractableTo Fraction Integer

CoercibleFrom Integer if R has RetractableTo Integer

CommutativeRing if R has IntegralDomain and % has VariablesCommuteWithCoefficients or R has CommutativeRing and % has VariablesCommuteWithCoefficients

CommutativeStar if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

Comparable if R has Comparable

EntireRing if R has EntireRing

FiniteAbelianMonoidRing(R, E)

FreeModuleCategory(R, E)

FullyLinearlyExplicitOver R if R has Ring

IndexedDirectProductCategory(R, E)

IndexedProductCategory(R, E)

IntegralDomain if R has IntegralDomain and % has VariablesCommuteWithCoefficients

LeftModule Fraction Integer if R has Algebra Fraction Integer

LinearlyExplicitOver Integer if R has LinearlyExplicitOver Integer and R has Ring

LinearlyExplicitOver R if R has Ring

MagmaWithUnit if R has SemiRing

Module % if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

Module Fraction Integer if R has Algebra Fraction Integer

Module R if R has CommutativeRing

NonAssociativeRing if R has Ring

NonAssociativeRng if R has Ring

NonAssociativeSemiRing if R has SemiRing

noZeroDivisors if R has EntireRing

RetractableTo Fraction Integer if R has RetractableTo Fraction Integer

RetractableTo Integer if R has RetractableTo Integer

RightModule Fraction Integer if R has Algebra Fraction Integer

TwoSidedRecip if R has CommutativeRing and % has VariablesCommuteWithCoefficients or R has IntegralDomain and % has VariablesCommuteWithCoefficients

unitsKnown if R has Ring