RegularTriangularSetCategory(R, E, V, P)ΒΆ
regset.spad line 1 [edit on github]
R: GcdDomain
V: OrderedSet
P: RecursivePolynomialCategory(R, E, V)
The category of regular triangular sets, introduced under the name regular chains in [1] (and other papers). In [3] it is proved that regular triangular sets and towers of simple extensions of a field are equivalent notions. In the following definitions, all polynomials and ideals are taken from the polynomial ring k[x1, ..., xn] where k is the fraction field of R. The triangular set [t1, ..., tm] is regular iff for every i the initial of ti+1 is invertible in the tower of simple extensions associated with [t1, ..., ti]. A family [T1, ..., Ts] of regular triangular sets is a split of Kalkbrener of a given ideal I iff the radical of I is equal to the intersection of the radical ideals generated by the saturated ideals of the [T1, ..., Ti]. A family [T1, ..., Ts] of regular triangular sets is a split of Kalkbrener of a given triangular set T iff it is a split of Kalkbrener of the saturated ideal of T. Let K be an algebraic closure of k. Assume that V is finite with cardinality n and let A be the affine space K^n. For a regular triangular set T let denote by W(T) the set of regular zeros of T. A family [T1, ..., Ts] of regular triangular sets is a split of Lazard of a given subset S of A iff the union of the W(Ti) contains S and is contained in the closure of S (w.r.t. Zariski topology). A family [T1, ..., Ts] of regular triangular sets is a split of Lazard of a given triangular set T if it is a split of Lazard of W(T). Note that if [T1, ..., Ts] is a split of Lazard of T then it is also a split of Kalkbrener of T. The converse is false. This category provides operations related to both kinds of splits, the former being related to ideals decomposition whereas the latter deals with varieties decomposition. See the example illustrating the RegularTriangularSet constructor for more explanations about decompositions by means of regular triangular sets.
- #: % -> NonNegativeInteger
from Aggregate
- algebraic?: (V, %) -> Boolean
from TriangularSetCategory(R, E, V, P)
- algebraicCoefficients?: (P, %) -> Boolean
algebraicCoefficients?(p, ts)returnstrueiff every variable ofpwhich is not the main one ofpis algebraicw.r.t.ts.
- algebraicVariables: % -> List V
from TriangularSetCategory(R, E, V, P)
- any?: (P -> Boolean, %) -> Boolean
from HomogeneousAggregate P
- augment: (List P, %) -> List %
augment(lp, ts)returnstsifempty? lp,augment(p, ts)iflp = [p], otherwiseaugment(first lp, augment(rest lp, ts))
- augment: (List P, List %) -> List %
augment(lp, lts)returns the same asconcat([augment(lp, ts) for ts in lts])
- augment: (P, %) -> List %
augment(p, ts)assumes thatpis a non-constant polynomial whose main variable is greater than any variable ofts. This operation assumes also that ifpis added totsthe resulting set, sayts+p, is a regular triangular set. Then it returns a split of Kalkbrener ofts+p. This may not bets+pitself, if for instancets+pis required to be square-free.
- augment: (P, List %) -> List %
augment(p, lts)returns the same asconcat([augment(p, ts) for ts in lts])
- autoReduced?: (%, (P, List P) -> Boolean) -> Boolean
from TriangularSetCategory(R, E, V, P)
- basicSet: (List P, (P, P) -> Boolean) -> Union(Record(bas: %, top: List P), failed)
from TriangularSetCategory(R, E, V, P)
- basicSet: (List P, P -> Boolean, (P, P) -> Boolean) -> Union(Record(bas: %, top: List P), failed)
from TriangularSetCategory(R, E, V, P)
- coerce: % -> List P
from CoercibleTo List P
- coerce: % -> OutputForm
from CoercibleTo OutputForm
- coHeight: % -> NonNegativeInteger if V has Finite
from TriangularSetCategory(R, E, V, P)
- collect: (%, V) -> %
from PolynomialSetCategory(R, E, V, P)
- collectQuasiMonic: % -> %
from TriangularSetCategory(R, E, V, P)
- 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
from TriangularSetCategory(R, E, V, P)
- 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) -> %
from TriangularSetCategory(R, E, V, P)
- extend: (List P, %) -> List %
extend(lp, ts)returnstsifempty? lpextend(p, ts)iflp = [p]elseextend(first lp, extend(rest lp, ts))
- extend: (List P, List %) -> List %
extend(lp, lts)returns the same asconcat([extend(lp, ts) for ts in lts])|
- extend: (P, %) -> List %
extend(p, ts)assumes thatpis a non-constant polynomial whose main variable is greater than any variable ofts. Then it returns a split of Kalkbrener ofts+p. This may not bets+pitself, if for instancets+pis not a regular triangular set.
- extend: (P, List %) -> List %
extend(p, lts)returns the same asconcat([extend(p, ts) for ts in lts])|
- extendIfCan: (%, P) -> Union(%, failed)
from TriangularSetCategory(R, E, V, P)
- find: (P -> Boolean, %) -> Union(P, failed)
from Collection P
- first: % -> Union(P, failed)
from TriangularSetCategory(R, E, V, P)
- headReduce: (P, %) -> P
from TriangularSetCategory(R, E, V, P)
- headReduced?: % -> Boolean
from TriangularSetCategory(R, E, V, P)
- headReduced?: (P, %) -> Boolean
from TriangularSetCategory(R, E, V, P)
- 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
from TriangularSetCategory(R, E, V, P)
- initiallyReduce: (P, %) -> P
from TriangularSetCategory(R, E, V, P)
- initiallyReduced?: % -> Boolean
from TriangularSetCategory(R, E, V, P)
- initiallyReduced?: (P, %) -> Boolean
from TriangularSetCategory(R, E, V, P)
- initials: % -> List P
from TriangularSetCategory(R, E, V, P)
- internalAugment: (List P, %) -> %
internalAugment(lp, ts)returnstsiflpis empty otherwise returnsinternalAugment(rest lp, internalAugment(first lp, ts))
- internalAugment: (P, %) -> %
internalAugment(p, ts)assumes thataugment(p, ts)returns a singleton and returns it.
- intersect: (List P, %) -> List %
intersect(lp, ts)returnsltsa split of Lazard of the intersection of the affine variety associated withlpand the regular zero set ofts.
- intersect: (List P, List %) -> List %
intersect(lp, lts)returns the same asconcat([intersect(lp, ts) for ts in lts])|
- intersect: (P, %) -> List %
intersect(p, ts)returns the same asintersect([p], ts)
- invertible?: (P, %) -> Boolean
invertible?(p, ts)returnstrueiffpis invertible in the tower associated withts.
- invertible?: (P, %) -> List Record(val: Boolean, tower: %)
invertible?(p, ts)returnslbwtwherelbwt.iis the result ofinvertibleElseSplit?(p, lbwt.i.tower)and the list of the(lqrwt.i).toweris a split of Kalkbrener ofts.
- invertibleElseSplit?: (P, %) -> Union(Boolean, List %)
invertibleElseSplit?(p, ts)returnstrue(resp.false) ifpis invertible in the tower associated withtsor returns a split of Kalkbrener ofts.
- invertibleSet: (P, %) -> List %
invertibleSet(p, ts)returns a split of Kalkbrener of the quotient ideal of the idealIbypwhereIis the radical of saturated ofts.
- last: % -> Union(P, failed)
from TriangularSetCategory(R, E, V, P)
- lastSubResultant: (P, P, %) -> List Record(val: P, tower: %)
lastSubResultant(p1, p2, ts)returnslpwtsuch thatlpwt.i.valis a quasi-monicgcdofp1andp2w.r.t.lpwt.i.tower, for everyi, and such that the list of thelpwt.i.toweris a split of Kalkbrener ofts. Moreover, ifp1andp2do not have a non-trivialgcdw.r.t.lpwt.i.towerthenlpwt.i.valis the resultant of these polynomialsw.r.t.lpwt.i.tower. This assumes thatp1andp2have the same maim variable and that this variable is greater that any variable occurring ints.
- lastSubResultantElseSplit: (P, P, %) -> Union(P, List %)
lastSubResultantElseSplit(p1, p2, ts)returns eitherga quasi-monicgcdofp1andp2w.r.t. thetsor a split of Kalkbrener ofts. This assumes thatp1andp2have the same maim variable and that this variable is greater that any variable occurring ints.
- 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
from TriangularSetCategory(R, E, V, P)
- normalized?: (P, %) -> Boolean
from TriangularSetCategory(R, E, V, P)
- parts: % -> List P
from HomogeneousAggregate P
- purelyAlgebraic?: % -> Boolean
purelyAlgebraic?(ts)returnstrueiff for every algebraic variablevoftswe havealgebraicCoefficients?(t_v, ts_v_-)wherets_vis select(ts,v) andts_v_-is collectUnder(ts,v).
- purelyAlgebraic?: (P, %) -> Boolean
purelyAlgebraic?(p, ts)returnstrueiff every variable ofpis algebraicw.r.t.ts.
- purelyAlgebraicLeadingMonomial?: (P, %) -> Boolean
purelyAlgebraicLeadingMonomial?(p, ts)returnstrueiff the main variable of any non-constant iterarted initial ofpis algebraicw.r.t.ts.
- purelyTranscendental?: (P, %) -> Boolean
purelyTranscendental?(p, ts)returnstrueiff every variable ofpis not algebraicw.r.t.ts
- quasiComponent: % -> Record(close: List P, open: List P)
from TriangularSetCategory(R, E, V, P)
- 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
from TriangularSetCategory(R, E, V, P)
- reduceByQuasiMonic: (P, %) -> P
from TriangularSetCategory(R, E, V, P)
- reduced?: (P, %, (P, P) -> Boolean) -> Boolean
from TriangularSetCategory(R, E, V, P)
- 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
from TriangularSetCategory(R, E, V, P)
- rest: % -> Union(%, failed)
from TriangularSetCategory(R, E, V, P)
- 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
from TriangularSetCategory(R, E, V, P)
- 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)
from TriangularSetCategory(R, E, V, P)
- select: (P -> Boolean, %) -> %
from Collection P
- size?: (%, NonNegativeInteger) -> Boolean
from Aggregate
- sort: (%, V) -> Record(under: %, floor: %, upper: %)
from PolynomialSetCategory(R, E, V, P)
- squareFreePart: (P, %) -> List Record(val: P, tower: %)
squareFreePart(p, ts)returnslpwtsuch thatlpwt.i.valis a square-free polynomialw.r.t.lpwt.i.tower, this polynomial being associated withpmodulolpwt.i.tower, for everyi. Moreover, the list of thelpwt.i.toweris a split of Kalkbrener ofts. WARNING: This assumes thatpis a non-constant polynomial such that ifpis added tots, then the resulting set is a regular triangular set.
- stronglyReduce: (P, %) -> P
from TriangularSetCategory(R, E, V, P)
- stronglyReduced?: % -> Boolean
from TriangularSetCategory(R, E, V, P)
- stronglyReduced?: (P, %) -> Boolean
from TriangularSetCategory(R, E, V, P)
- 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, Boolean) -> List %
zeroSetSplit(lp, clos?)returnsltsa split of Kalkbrener of the radical ideal associated withlp. Ifclos?isfalse, it is also a decomposition of the variety associated withlpinto the regular zero set of thetsinlts(or, in other words, a split of Lazard of this variety). See the example illustrating the RegularTriangularSet constructor for more explanations about decompositions by means of regular triangular sets.- zeroSetSplit: List P -> List %
from TriangularSetCategory(R, E, V, P)
- zeroSetSplitIntoTriangularSystems: List P -> List Record(close: %, open: List P)
from TriangularSetCategory(R, E, V, P)
Evalable P if P has Evalable P
InnerEvalable(P, P) if P has Evalable P
PolynomialSetCategory(R, E, V, P)
TriangularSetCategory(R, E, V, P)