QuasiAlgebraicSet(R, Var, Expon, Dpoly)¶
qalgset.spad line 1 [edit on github]
R: GcdDomain
Var: OrderedSet
Expon: OrderedAbelianMonoidSup
Dpoly: PolynomialCategory(R, Expon, Var)
QuasiAlgebraicSet constructs a domain representing quasi-algebraic sets, which is the intersection of a Zariski closed set, defined as the common zeros of a given list of polynomials (the defining polynomials for equations), and a principal Zariski open set, defined as the complement of the common zeros of a polynomial f
(the defining polynomial for the inequation). This domain provides simplification of a user-given representation using groebner basis computations. There are two simplification routines: the first function idealSimplify uses groebner basis of ideals alone, while the second, simplify uses both groebner basis and factorization. The resulting defining equations L
always form a groebner basis, and the resulting defining inequation f
is always reduced. The function simplify may be applied several times if desired. A third simplification routine radicalSimplify is provided in QuasiAlgebraicSet2 for comparison study only, as it is inefficient compared to the other two, as well as is restricted to only certain coefficient domains. For detail analysis and a comparison of the three methods, please consult the reference cited. A polynomial function q
defined on the quasi-algebraic set is equivalent to its reduced form with respect to L
. While this may be obtained using the usual normal form algorithm, there is no canonical form for q
. The ordering in groebner basis computation is determined by the data type of the input polynomials. If it is possible we suggest to use refinements of total degree orderings.
- coerce: % -> OutputForm
from CoercibleTo OutputForm
- definingEquations: % -> List Dpoly
definingEquations(s)
returns a list of defining polynomials for equations, that is, for the Zariski closed part ofs
.
- definingInequation: % -> Dpoly
definingInequation(s)
returns a single defining polynomial for the inequation, that is, the Zariski open part ofs
.
- empty?: % -> Boolean
empty?(s)
returnstrue
if the quasialgebraic sets
has no points, andfalse
otherwise.
- empty: () -> %
empty()
returns the empty quasi-algebraic set
- idealSimplify: % -> %
idealSimplify(s)
returns a different and presumably simpler representation ofs
with the defining polynomials for the equations forming a groebner basis, and the defining polynomial for the inequation reduced with respect to the basis, using Buchberger's
algorithm.
- latex: % -> String
from SetCategory
- quasiAlgebraicSet: (List Dpoly, Dpoly) -> %
quasiAlgebraicSet(pl, q)
returns the quasi-algebraic set with defining equationsp
= 0 forp
belonging to the listpl
, and defining inequationq
~=
0.
- setStatus: (%, Union(Boolean, failed)) -> %
setStatus(s, t)
returns the same representation fors
, but asserts the following: ift
istrue
, thens
is empty, ift
isfalse
, thens
is non-empty, and ift
= “failed”, then no assertion is made (that is, “don't
know”). Note: for internal use only, with care.
- simplify: % -> % if R has PolynomialFactorizationExplicit and R has CharacteristicZero
simplify(s)
returns a different and presumably simpler representation ofs
with the defining polynomials for the equations forming a groebner basis, and the defining polynomial for the inequation reduced with respect to the basis, using a heuristic algorithm based on factoring.
- status: % -> Union(Boolean, failed)
status(s)
returnstrue
if the quasi-algebraic set is empty,false
if it is not, and “failed” if not yet known