# LeadingCoefDetermination(OV, E, Z, P)ΒΆ

- OV: OrderedSet
- E: OrderedAbelianMonoidSup
- Z: EuclideanDomain
- P: PolynomialCategory(Z, E, OV)

Package for leading coefficient determination in the lifting step. Package working for every `R`

euclidean with property `"F"`

. Uses algorithm given in section 3 of `P`

. `S`

. Wang “An improved multivariate polynomial factoring algorithm”, Math. of Comput. 32, 1978, `p`

. 1215-`-1231`

, generalized to arbitrary euclidean domain.

- distFact: (Z, List SparseUnivariatePolynomial Z, Record(contp: Z, factors: List Record(irr: P, pow: Integer)), List Z, List OV, List Z) -> Union(Record(polfac: List P, correct: Z, corrfact: List SparseUnivariatePolynomial Z), failed)
`distFact(contm, unilist, plead, vl, lvar, lval)`

, where`contm`

is the content of the evaluated polynomial,`unilist`

is the list of factors of the evaluated polynomial,`plead`

is the complete factorization of the leading coefficient,`vl`

is the list of factors of the leading coefficient evaluated,`lvar`

is the list of variables, lval is the list of values, returns a record giving the list of leading coefficients to impose on the univariate factors,

- polCase: (Z, NonNegativeInteger, List Z) -> Boolean
`polCase(contprod, numFacts, evallcs)`

, where`contprod`

is the product of the content of the leading coefficient of the polynomial to be factored with the content of the evaluated polynomial,`numFacts`

is the number of factors of the leadingCoefficient, and evallcs is the list of the evaluated factors of the leadingCoefficient, returns`true`

if the factors of the leading Coefficient can be distributed with this valuation.