TriangularSetCategory(R, E, V, P)¶
triset.spad line 1 [edit on github]
V: OrderedSet
P: RecursivePolynomialCategory(R, E, V)
The category of triangular sets of multivariate polynomials with coefficients in an integral domain. Let R
be an integral domain and V
a finite ordered set of variables, say X1 < X2 < ... < Xn
. A set S
of polynomials in R[X1, X2, ..., Xn]
is triangular if no elements of S
lies in R
, and if two distinct elements of S
have distinct main variables. Note that the empty set is a triangular set. A triangular set is not necessarily a (lexicographical) Groebner basis and the notion of reduction related to triangular sets is based on the recursive view of polynomials. We recall this notion here and refer to [1] for more details. A polynomial P
is reduced w
.r
.t
a non-constant polynomial Q
if the degree of P
in the main variable of Q
is less than the main degree of Q
. A polynomial P
is reduced w
.r
.t
a triangular set T
if it is reduced w
.r
.t
. every polynomial of T
.
- #: % -> NonNegativeInteger
from Aggregate
- algebraic?: (V, %) -> Boolean
algebraic?(v, ts)
returnstrue
iffv
is the main variable of some polynomial ints
.
- algebraicVariables: % -> List V
algebraicVariables(ts)
returns the decreasingly sorted list of the main variables of the polynomials ofts
.
- any?: (P -> Boolean, %) -> Boolean
from HomogeneousAggregate P
- autoReduced?: (%, (P, List P) -> Boolean) -> Boolean
autoReduced?(ts, redOp?)
returnstrue
iff every element ofts
is reducedw
.r
.t
to every other in the sense ofredOp?
- basicSet: (List P, (P, P) -> Boolean) -> Union(Record(bas: %, top: List P), failed)
basicSet(ps, redOp?)
returns[bs, ts]
whereconcat(bs, ts)
isps
andbs
is a basic set in Wu Wen Tsun sense ofps
w
.r
.t
the reduction-testredOp?
, if no non-zero constant polynomial lie inps
, otherwise"failed"
is returned.
- basicSet: (List P, P -> Boolean, (P, P) -> Boolean) -> Union(Record(bas: %, top: List P), failed)
basicSet(ps, pred?, redOp?)
returns the same asbasicSet(qs, redOp?)
whereqs
consists of the polynomials ofps
satisfying propertypred?
.
- coerce: % -> List P
from CoercibleTo List P
- coerce: % -> OutputForm
from CoercibleTo OutputForm
- coHeight: % -> NonNegativeInteger if V has Finite
coHeight(ts)
returnssize()\$V
minus\#ts
.
- collect: (%, V) -> %
from PolynomialSetCategory(R, E, V, P)
- collectQuasiMonic: % -> %
collectQuasiMonic(ts)
returns the subset ofts
consisting of the polynomials with initial inR
.
- collectUnder: (%, V) -> %
from PolynomialSetCategory(R, E, V, P)
- collectUpper: (%, V) -> %
from PolynomialSetCategory(R, E, V, P)
- construct: List P -> %
from Collection P
- convert: % -> InputForm
from ConvertibleTo InputForm
- count: (P -> Boolean, %) -> NonNegativeInteger
from HomogeneousAggregate P
- count: (P, %) -> NonNegativeInteger
from HomogeneousAggregate P
- degree: % -> NonNegativeInteger
degree(ts)
returns the product of main degrees of the members ofts
.
- eval: (%, Equation P) -> % if P has Evalable P
from Evalable P
- eval: (%, List Equation P) -> % if P has Evalable P
from Evalable P
- eval: (%, List P, List P) -> % if P has Evalable P
from InnerEvalable(P, P)
- eval: (%, P, P) -> % if P has Evalable P
from InnerEvalable(P, P)
- every?: (P -> Boolean, %) -> Boolean
from HomogeneousAggregate P
- extend: (%, P) -> %
extend(ts, p)
returns a triangular set which encodes the simple extension byp
of the extension of the base field defined byts
, according to the properties of triangular sets of the current category If the required properties do not hold an error is returned.
- extendIfCan: (%, P) -> Union(%, failed)
extendIfCan(ts, p)
returns a triangular set which encodes the simple extension byp
of the extension of the base field defined byts
, according to the properties of triangular sets of the current domain. If the required properties do not hold then “failed” is returned. This operation encodes in some sense the properties of the triangular sets of the current category. Is is used to implement theconstruct
operation to guarantee that every triangular set build from a list of polynomials has the required properties.
- find: (P -> Boolean, %) -> Union(P, failed)
from Collection P
- first: % -> Union(P, failed)
first(ts)
returns the polynomial ofts
with greatest main variable ifts
is not empty, otherwise returns"failed"
.
- headReduce: (P, %) -> P
headReduce(p, ts)
returns a polynomialr
such thatheadReduce?(r, ts)
holds and there exists some producth
ofinitials(ts)
such thath*p - r
lies in the ideal generated byts
.
- headReduced?: % -> Boolean
headReduced?(ts)
returnstrue
iff the head of every element ofts
is reducedw
.r
.t
to any other element ofts
.
- headReduced?: (P, %) -> Boolean
headReduced?(p, ts)
returnstrue
iff the head ofp
is reducedw
.r
.t
.ts
.
- headRemainder: (P, %) -> Record(num: P, den: R)
from PolynomialSetCategory(R, E, V, P)
- iexactQuo: (R, R) -> R
from PolynomialSetCategory(R, E, V, P)
- infRittWu?: (%, %) -> Boolean
infRittWu?(ts1, ts2)
returnstrue
iffts2
has higher rank thants1
in Wu Wen Tsun sense.
- initiallyReduce: (P, %) -> P
initiallyReduce(p, ts)
returns a polynomialr
such thatinitiallyReduced?(r, ts)
holds and there exists some producth
ofinitials(ts)
such thath*p - r
lies in the ideal generated byts
.
- initiallyReduced?: % -> Boolean
initiallyReduced?(ts)
returnstrue
iff for every elementp
ofts
p
and all its iterated initials are reducedw
.r
.t
. to the other elements ofts
with the same main variable.
- initiallyReduced?: (P, %) -> Boolean
initiallyReduced?(p, ts)
returnstrue
iffp
and all its iterated initials are reducedw
.r
.t
. to the elements ofts
with the same main variable.
- initials: % -> List P
initials(ts)
returns the list of the non-constant initials of the members ofts
.
- last: % -> Union(P, failed)
last(ts)
returns the polynomial ofts
with smallest main variable ifts
is not empty, otherwise returns"failed"
.
- latex: % -> String
from SetCategory
- less?: (%, NonNegativeInteger) -> Boolean
from Aggregate
- mainVariable?: (V, %) -> Boolean
from PolynomialSetCategory(R, E, V, P)
- mainVariables: % -> List V
from PolynomialSetCategory(R, E, V, P)
- map!: (P -> P, %) -> %
from HomogeneousAggregate P
- map: (P -> P, %) -> %
from HomogeneousAggregate P
- max: % -> P if P has OrderedSet
from HomogeneousAggregate P
- max: ((P, P) -> Boolean, %) -> P
from HomogeneousAggregate P
- member?: (P, %) -> Boolean
from HomogeneousAggregate P
- members: % -> List P
from HomogeneousAggregate P
- min: % -> P if P has OrderedSet
from HomogeneousAggregate P
- more?: (%, NonNegativeInteger) -> Boolean
from Aggregate
- mvar: % -> V
from PolynomialSetCategory(R, E, V, P)
- normalized?: % -> Boolean
normalized?(ts)
returnstrue
iff for everyp
ints
we havenormalized?(p, us)
whereus
iscollectUnder(ts, mvar(p))
.
- normalized?: (P, %) -> Boolean
normalized?(p, ts)
returnstrue
iffp
and all its iterated initials have degree zerow
.r
.t
. the main variables of the polynomials ofts
- parts: % -> List P
from HomogeneousAggregate P
- quasiComponent: % -> Record(close: List P, open: List P)
quasiComponent(ts)
returns[lp, lq]
wherelp
is the list of the members ofts
andlq
isinitials(ts)
.
- reduce: ((P, P) -> P, %) -> P
from Collection P
- reduce: ((P, P) -> P, %, P) -> P
from Collection P
- reduce: ((P, P) -> P, %, P, P) -> P
from Collection P
- reduce: (P, %, (P, P) -> P, (P, P) -> Boolean) -> P
reduce(p, ts, redOp, redOp?)
returns a polynomialr
such thatredOp?(r, p)
holds for everyp
ofts
and there exists some producth
of the initials of the members ofts
such thath*p - r
lies in the ideal generated byts
. The operationredOp
must satisfy the following conditions. For everyp
andq
we haveredOp?(redOp(p, q), q)
and there exists an integere
and a polynomialf
such thatinit(q)^e*p = f*q + redOp(p, q)
.
- reduceByQuasiMonic: (P, %) -> P
reduceByQuasiMonic(p, ts)
returns the same asremainder(p, collectQuasiMonic(ts)).polnum
.
- reduced?: (P, %, (P, P) -> Boolean) -> Boolean
reduced?(p, ts, redOp?)
returnstrue
iffp
is reducedw
.r
.t
. in the sense of the operationredOp?
, that is if for everyt
ints
redOp?(p, t)
holds.
- remainder: (P, %) -> Record(rnum: R, polnum: P, den: R)
from PolynomialSetCategory(R, E, V, P)
- remove: (P -> Boolean, %) -> %
from Collection P
- remove: (P, %) -> %
from Collection P
- removeDuplicates: % -> %
from Collection P
- removeZero: (P, %) -> P
removeZero(p, ts)
returns0
ifp
reduces to0
by pseudo-divisionw
.r
.t
ts
otherwise returns a polynomialq
computed fromp
by removing any coefficient inp
reducing to0
.
- rest: % -> Union(%, failed)
rest(ts)
returns the polynomials ofts
with smaller main variable thanmvar(ts)
ifts
is not empty, otherwise returns “failed”
- retract: List P -> %
from RetractableFrom List P
- retractIfCan: List P -> Union(%, failed)
from RetractableFrom List P
- rewriteIdealWithHeadRemainder: (List P, %) -> List P
from PolynomialSetCategory(R, E, V, P)
- rewriteIdealWithRemainder: (List P, %) -> List P
from PolynomialSetCategory(R, E, V, P)
- rewriteSetWithReduction: (List P, %, (P, P) -> P, (P, P) -> Boolean) -> List P
rewriteSetWithReduction(lp, ts, redOp, redOp?)
returns a listlq
of polynomials such that[reduce(p, ts, redOp, redOp?) for p in lp]
andlp
have the same zeros inside the regular zero set ofts
. Moreover, for every polynomialq
inlq
and every polynomialt
ints
redOp?(q, t)
holds and there exists a polynomialp
in the ideal generated bylp
and a producth
ofinitials(ts)
such thath*p - r
lies in the ideal generated byts
. The operationredOp
must satisfy the following conditions. For everyp
andq
we haveredOp?(redOp(p, q), q)
and there exists an integere
and a polynomialf
such thatinit(q)^e*p = f*q + redOp(p, q)
.
- roughBase?: % -> Boolean
from PolynomialSetCategory(R, E, V, P)
- roughEqualIdeals?: (%, %) -> Boolean
from PolynomialSetCategory(R, E, V, P)
- roughSubIdeal?: (%, %) -> Boolean
from PolynomialSetCategory(R, E, V, P)
- roughUnitIdeal?: % -> Boolean
from PolynomialSetCategory(R, E, V, P)
- select: (%, V) -> Union(P, failed)
select(ts, v)
returns the polynomial ofts
withv
as main variable, if any.- select: (P -> Boolean, %) -> %
from Collection P
- size?: (%, NonNegativeInteger) -> Boolean
from Aggregate
- sort: (%, V) -> Record(under: %, floor: %, upper: %)
from PolynomialSetCategory(R, E, V, P)
- stronglyReduce: (P, %) -> P
stronglyReduce(p, ts)
returns a polynomialr
such thatstronglyReduced?(r, ts)
holds and there exists some producth
ofinitials(ts)
such thath*p - r
lies in the ideal generated byts
.
- stronglyReduced?: % -> Boolean
stronglyReduced?(ts)
returnstrue
iff every element ofts
is reducedw
.r
.t
to any other element ofts
.
- stronglyReduced?: (P, %) -> Boolean
stronglyReduced?(p, ts)
returnstrue
iffp
is reducedw
.r
.t
.ts
.
- triangular?: % -> Boolean
from PolynomialSetCategory(R, E, V, P)
- trivialIdeal?: % -> Boolean
from PolynomialSetCategory(R, E, V, P)
- variables: % -> List V
from PolynomialSetCategory(R, E, V, P)
- zeroSetSplit: List P -> List %
zeroSetSplit(lp)
returns a listlts
of triangular sets such that the zero set oflp
is the union of the closures of the regular zero sets of the members oflts
.
- zeroSetSplitIntoTriangularSystems: List P -> List Record(close: %, open: List P)
zeroSetSplitIntoTriangularSystems(lp)
returns a list of triangular systems[[ts1, qs1], ..., [tsn, qsn]]
such that the zero set oflp
is the union of the closures of theW_i
whereW_i
consists of the zeros ofts
which do not cancel any polynomial inqsi
.
Evalable P if P has Evalable P
InnerEvalable(P, P) if P has Evalable P
PolynomialSetCategory(R, E, V, P)