OpenMath Content Dictionary: polyd2
Canonical URL:
http://www.openmath.org/cd/polyd2.ocd
CD Base:
http://www.openmath.org/cd
CD File:
polyd2.ocd
CD as XML Encoded OpenMath:
polyd2.omcd
Defines:
elimination , graded_lexicographic , graded_reverse_lexicographic , lexicographic , matrix_ordering , ordering , reverse_lexicographic , weighted , weighted_degree
Date:
2004-07-07
Version:
3
Review Date:
2006-04-01
Status:
experimental
This CD defines symbols for ordering of monomial for
Distributed Multivariate Polynomials, which were defined in polyd1.
Original OpenMath v1.1 Poly 1997
Update to Current Format 1999-07-07 DPC
Move the names of rings to setname.ocd 1999-11-09 JHD
Delete those items moved to the new poly.ocd 1999-11-14 JHD
Delete those items pertaining to Groebner bases 2004-07-07 AMC
These are of use for canonical ways of writing polynomials and for Groebner bases
Description:
Used as an attribute to indicate an ordering of the monomials in a
polynomial or list of polynomials. The value of this attribute
should be one of the constructors specifying ordering.
Signatures:
sts
The following orders on monomials have their standards definitions,
see, for example, "Ideals, Varieties and Algorithms", D. Cox,
J.B. Little and D. O'Shea, Springer Verlag.
Description:
The lexicographic ordering of monomials.
Signatures:
sts
Description:
The reverse lexicographic ordering of monomials
Signatures:
sts
Description:
Total degree order, graded with the lexicographic ordering.
Signatures:
sts
Description:
Total degree order, graded with the reverse lexicographic ordering.
Signatures:
sts
Description:
This is an ordering, which is partially in terms of one
ordering, and partially in terms of another.
First argument is a number of variables.
Second is ordering to apply on the first so many variables.
Third is an ordering on the rest, to be used to break ties.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA>
<OMS name="elimination" cd="polyd2"/>
<OMI> 1 </OMI>
<OMS name="lexicographic" cd="polyd2"/>
<OMS name="graded_reverse_lexicographic" cd="polyd2"/>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="polyd2">elimination</csymbol>
<cn type="integer">1</cn>
<csymbol cd="polyd2">lexicographic</csymbol>
<csymbol cd="polyd2">graded_reverse_lexicographic</csymbol>
</apply>
</math>
Prefix
Popcorn
polyd2.elimination(1, polyd2.lexicographic, polyd2.graded_reverse_lexicographic)
Rendered Presentation MathML
elimination
(
1
,
lexicographic
,
graded_reverse_lexicographic
)
Signatures:
sts
Description:
The argument is a matrix with as many columns as indeterminates
(= rank). Each row in turm is multiplied by the column vector of
exponents to produce a weighting for comparison purposes.
Signatures:
sts
Description:
The first argument is a list of integers to act as variable weights,
and the second is an ordering. The result is an ordering.
Signatures:
sts
We need a few more orderings...
Definition of some other constructors
Description:
The total degree of its argument, taking into account any weights
declared. The value returned is an integer: non-negative if the
weights are. We note that the degree of 0 is undefined.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA>
<OMS name="eq" cd="relation1"/>
<OMA>
<OMS name="weighted_degree" cd="polyd2"/>
<OMA>
<OMS name="DMP" cd="polyd1"/>
<OMA>
<OMS name="poly_ring_d" cd="polyd1"/>
<OMS name="Q" cd="setname1"/>
<OMI> 3 </OMI>
</OMA>
<OMATTR>
<OMATP>
<OMS name="ordering" cd="polyd2"/>
<OMA>
<OMS name="weighted" cd="polyd2"/>
<OMA>
<OMS name="list" cd="list1"/>
<OMI> 1 </OMI>
<OMI> 2 </OMI>
<OMI> 3 </OMI>
</OMA>
<OMS name="graded_lexicographic" cd="polyd2"/>
</OMA>
</OMATP>
<OMA>
<OMS name="SDMP" cd="polyd1"/>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 1 </OMI>
<OMI> 0 </OMI>
<OMI> 0 </OMI>
<OMI> 1 </OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 2 </OMI>
<OMI> 2 </OMI>
<OMI> 0 </OMI>
<OMI> 0 </OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 3 </OMI>
<OMI> 0 </OMI>
<OMI> 1 </OMI>
<OMI> 0 </OMI>
</OMA>
<OMA>
<OMS name="term" cd="polyd1"/>
<OMI> 4 </OMI>
<OMI> 1 </OMI>
<OMI> 0 </OMI>
<OMI> 0 </OMI>
</OMA>
</OMA>
</OMATTR>
</OMA>
</OMA>
<OMI> 3 </OMI>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="polyd2">weighted_degree</csymbol>
<apply><csymbol cd="polyd1">DMP</csymbol>
<apply><csymbol cd="polyd1">poly_ring_d</csymbol>
<csymbol cd="setname1">Q</csymbol>
<cn type="integer">3</cn>
</apply>
<semantics>
<apply><csymbol cd="polyd1">SDMP</csymbol>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">1</cn>
<cn type="integer">0</cn>
<cn type="integer">0</cn>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">2</cn>
<cn type="integer">2</cn>
<cn type="integer">0</cn>
<cn type="integer">0</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">3</cn>
<cn type="integer">0</cn>
<cn type="integer">1</cn>
<cn type="integer">0</cn>
</apply>
<apply><csymbol cd="polyd1">term</csymbol>
<cn type="integer">4</cn>
<cn type="integer">1</cn>
<cn type="integer">0</cn>
<cn type="integer">0</cn>
</apply>
</apply>
<annotation-xml cd="polyd2" name="ordering">
<apply><csymbol cd="polyd2">weighted</csymbol>
<apply><csymbol cd="list1">list</csymbol>
<cn type="integer">1</cn>
<cn type="integer">2</cn>
<cn type="integer">3</cn>
</apply>
<csymbol cd="polyd2">graded_lexicographic</csymbol>
</apply>
</annotation-xml>
</semantics>
</apply>
</apply>
<cn type="integer">3</cn>
</apply>
</math>
Prefix
eq
(
weighted_degree
(
DMP
(
poly_ring_d
(
Q , 3 )
,
Attrib ([
ordering
weighted
(
list
( 1 , 2 , 3 )
,
graded_lexicographic )
],
SDMP
(
term
( 1 , 0 , 0 , 1 )
,
term
( 2 , 2 , 0 , 0 )
,
term
( 3 , 0 , 1 , 0 )
,
term
( 4 , 1 , 0 , 0 )
)
)
)
)
, 3 )
Popcorn
polyd2.weighted_degree(polyd1.DMP(polyd1.poly_ring_d(setname1.Q, 3), polyd1.SDMP(polyd1.term(1, 0, 0, 1), polyd1.term(2, 2, 0, 0), polyd1.term(3, 0, 1, 0), polyd1.term(4, 1, 0, 0)){polyd2.ordering -> polyd2.weighted([1 , 2 , 3], polyd2.graded_lexicographic)})) = 3
Rendered Presentation MathML
weighted_degree
(
DMP
(
poly_ring_d
(
Q
,
3
)
,
SDMP
(
term
(
1
,
0
,
0
,
1
)
,
term
(
2
,
2
,
0
,
0
)
,
term
(
3
,
0
,
1
,
0
)
,
term
(
4
,
1
,
0
,
0
)
)
)
)
=
3
Signatures:
sts