# UnivariateSkewPolynomialCategoryOps(R, C)ΒΆ

- R: Ring
- C: UnivariateSkewPolynomialCategory R

`UnivariateSkewPolynomialCategoryOps`

provides products and divisions of univariate skew polynomials.

- apply: (C, R, R, Automorphism R, R -> R) -> R
`apply(p, c, m, sigma, delta)`

returns`p(m)`

where the action is given by`x m = c sigma(m) + delta(m)`

.

- leftDivide: (C, C, Automorphism R) -> Record(quotient: C, remainder: C) if R has Field
`leftDivide(a, b, sigma)`

returns the pair`[q, r]`

such that`a = b*q + r`

and the degree of`r`

is less than the degree of`b`

. This process is called`left division\ ``''`

.`\sigma`

is the morphism to use.

- monicLeftDivide: (C, C, Automorphism R) -> Record(quotient: C, remainder: C) if R has IntegralDomain
`monicLeftDivide(a, b, sigma)`

returns the pair`[q, r]`

such that`a = b*q + r`

and the degree of`r`

is less than the degree of`b`

.`b`

must be monic. This process is called`left division\ ``''`

.`\sigma`

is the morphism to use.

- monicRightDivide: (C, C, Automorphism R) -> Record(quotient: C, remainder: C) if R has IntegralDomain
`monicRightDivide(a, b, sigma)`

returns the pair`[q, r]`

such that`a = q*b + r`

and the degree of`r`

is less than the degree of`b`

.`b`

must be monic. This process is called`right division\ ``''`

.`\sigma`

is the morphism to use.

- rightDivide: (C, C, Automorphism R) -> Record(quotient: C, remainder: C) if R has Field
`rightDivide(a, b, sigma)`

returns the pair`[q, r]`

such that`a = q*b + r`

and the degree of`r`

is less than the degree of`b`

. This process is called`right division\ ``''`

.`\sigma`

is the morphism to use.

- times: (C, C, Automorphism R, R -> R) -> C
`times(p, q, sigma, delta)`

returns`p * q`

.`\sigma`

and`\delta`

are the maps to use.