OpenMath Content Dictionary: polygb2
Canonical URL:
http://www.win.tue.nl/~amc/oz/om/cds/polygb2.ocd
CD Base:
http://www.openmath.org/cd
CD File:
polygb2.ocd
CD as XML Encoded OpenMath:
polygb2.omcd
Defines:
extended_in , in , in_radical , minimal_groebner_element
Date:
2004-06-01
Version:
1
(Revision 1)
Review Date:
2006-06-01
Status:
experimental
This CD contains operators for Groebner basis computations with
polynomial expressions. It adds features to polygb1 like testing
membership of an ideal, and of the radical ideal of an ideal, and
providing insight as to how to change the ideal minimally so as to let
this happen. Suggestion:
polygb3 is to contain a trace of the GB computation.
polygb4 is to contain S poly
Description:
This symbol is a function of at least 4 arguments. The first argument
is a polynomial p,
the second is a list of variables, the third is an ordering
the fourth is a list of polynomials B, and,
optionally, the fifth is a polynomial_ring.
When applied to its arguments, it represents the boolean value
of the assertion that p belongs to the ideal generated by B.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS name="in" cd="set1"/>
<OMA><OMS name="minus" cd="arith1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="ordering" cd="polyd2"/>
<OMS name="lexicographic" cd="polyd2"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMA><OMS name="minus" cd="arith1"/>
<OMA><OMS name="times" cd="arith1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMV name="x"/>
<OMI> 2 </OMI>
</OMA>
<OMV name="y"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
<OMA><OMS name="minus" cd="arith1"/>
<OMA><OMS name="times" cd="arith1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMV name="y"/>
<OMI> 2 </OMI>
</OMA>
<OMV name="x"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="set1">in</csymbol>
<apply><csymbol cd="arith1">minus</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="list1">list</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="polyd2">ordering</csymbol><csymbol cd="polyd2">lexicographic</csymbol></apply>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="arith1">minus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn type="integer">2</cn></apply>
<ci>y</ci>
</apply>
<cn type="integer">1</cn>
</apply>
<apply><csymbol cd="arith1">minus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>y</ci><cn type="integer">2</cn></apply>
<ci>x</ci>
</apply>
<cn type="integer">1</cn>
</apply>
</apply>
</apply>
</math>
Prefix
in
(
minus
(
x ,
y )
,
list
(
x ,
y )
,
ordering
(
lexicographic )
,
list
(
minus
(
times
(
power
(
x , 2 )
,
y )
, 1 )
,
minus
(
times
(
power
(
y , 2 )
,
x )
, 1 )
)
)
Popcorn
set1.in($x - $y, [$x , $y], polyd2.ordering(polyd2.lexicographic), [$x ^ 2 * $y - 1 , $y ^ 2 * $x - 1])
Rendered Presentation MathML
Signatures:
sts
Description:
This symbol is a function of at least 4 arguments. The first argument
should be a polynomial p,
the second is a list of variables, the third is an ordering
the fourth is a list of polynomials B, and
optionally: the fifth is a polynomial_ring.
When applied to its arguments, it represents the boolean value
of the assertion that p belongs to the radical ideal generated by B.
Example:
The following evaluates to true:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS name="in_radical" cd="polygb2"/>
<OMA><OMS name="minus" cd="arith1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="ordering" cd="polyd2"/>
<OMS name="lexicographic" cd="polyd2"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMA><OMS name="minus" cd="arith1"/>
<OMA><OMS name="times" cd="arith1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMV name="x"/>
<OMI> 2 </OMI>
</OMA>
<OMV name="y"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
<OMI> 2 </OMI>
</OMA>
<OMA><OMS name="minus" cd="arith1"/>
<OMA><OMS name="times" cd="arith1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMV name="y"/>
<OMI> 2 </OMI>
</OMA>
<OMV name="x"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="polygb2">in_radical</csymbol>
<apply><csymbol cd="arith1">minus</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="list1">list</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="polyd2">ordering</csymbol><csymbol cd="polyd2">lexicographic</csymbol></apply>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="arith1">power</csymbol>
<apply><csymbol cd="arith1">minus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn type="integer">2</cn></apply>
<ci>y</ci>
</apply>
<cn type="integer">1</cn>
</apply>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="arith1">minus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>y</ci><cn type="integer">2</cn></apply>
<ci>x</ci>
</apply>
<cn type="integer">1</cn>
</apply>
</apply>
</apply>
</math>
Prefix
in_radical
(
minus
(
x ,
y )
,
list
(
x ,
y )
,
ordering
(
lexicographic )
,
list
(
power
(
minus
(
times
(
power
(
x , 2 )
,
y )
, 1 )
, 2 )
,
minus
(
times
(
power
(
y , 2 )
,
x )
, 1 )
)
)
Popcorn
polygb2.in_radical($x - $y, [$x , $y], polyd2.ordering(polyd2.lexicographic), [($x ^ 2 * $y - 1) ^ 2 , $y ^ 2 * $x - 1])
Rendered Presentation MathML
in_radical
(
x
-
y
,
(
x
,
y
)
,
ordering
(
lexicographic
)
,
(
x
2
y
-
1
)
2
y
2
x
-
1
)
The following evaluates to false:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS name="in_radical" cd="polygb2"/>
<OMA><OMS name="minus" cd="arith1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="ordering" cd="polyd2"/>
<OMS name="lexicographic" cd="polyd2"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMA><OMS cd="arith1" name="plus"/>
<OMA><OMS cd="arith1" name="times"/>
<OMI>-1</OMI>
<OMV name="x"/>
</OMA>
<OMA><OMS cd="arith1" name="power"/>
<OMV name="x"/> <OMI>3</OMI>
</OMA>
</OMA>
<OMA><OMS cd="arith1" name="plus"/>
<OMI>1</OMI>
<OMV name="y"/>
<OMA><OMS cd="arith1" name="power"/>
<OMV name="y"/><OMI>3</OMI>
</OMA>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="polygb2">in_radical</csymbol>
<apply><csymbol cd="arith1">minus</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="list1">list</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="polyd2">ordering</csymbol><csymbol cd="polyd2">lexicographic</csymbol></apply>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="arith1">plus</csymbol>
<apply><csymbol cd="arith1">times</csymbol><cn type="integer">-1</cn><ci>x</ci></apply>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn type="integer">3</cn></apply>
</apply>
<apply><csymbol cd="arith1">plus</csymbol>
<cn type="integer">1</cn>
<ci>y</ci>
<apply><csymbol cd="arith1">power</csymbol><ci>y</ci><cn type="integer">3</cn></apply>
</apply>
</apply>
</apply>
</math>
Prefix
in_radical
(
minus
(
x ,
y )
,
list
(
x ,
y )
,
ordering
(
lexicographic )
,
list
(
plus
(
times
(-1,
x )
,
power
(
x , 3)
)
,
plus
(1,
y ,
power
(
y , 3)
)
)
)
Popcorn
polygb2.in_radical($x - $y, [$x , $y], polyd2.ordering(polyd2.lexicographic), [-1 * $x + $x ^ 3 , 1 + $y + $y ^ 3])
Rendered Presentation MathML
in_radical
(
x
-
y
,
(
x
,
y
)
,
ordering
(
lexicographic
)
,
-1
x
+
x
3
1
+
y
+
y
3
)
Signatures:
sts
Description:
This symbol is a function with 3 arguments. First argument is
a list of variables, the second is an ordering, the third is a list B
of polynomials.
[Optionally, the fourth is a polynomial ring.]
When applied to its arguments, it represents the polynomial in
the Groebner basis of B with respect to the ordering with the
least leading monomial.
Example:
The following evaluates to the polynomial 1-2y^3+y^6 (up to a scalar multiple)
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA><OMS name="minimal_groebner_element" cd="polygb2"/>
<OMA><OMS name="list" cd="list1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA><OMS name="ordering" cd="polyd2"/>
<OMS name="lexicographic" cd="polyd2"/>
</OMA>
<OMA><OMS name="list" cd="list1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMA><OMS name="minus" cd="arith1"/>
<OMA><OMS name="times" cd="arith1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMV name="x"/>
<OMI> 2 </OMI>
</OMA>
<OMV name="y"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
<OMI> 2 </OMI>
</OMA>
<OMA><OMS name="minus" cd="arith1"/>
<OMA><OMS name="times" cd="arith1"/>
<OMA><OMS name="power" cd="arith1"/>
<OMV name="y"/>
<OMI> 2 </OMI>
</OMA>
<OMV name="x"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
</OMA>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="polygb2">minimal_groebner_element</csymbol>
<apply><csymbol cd="list1">list</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="polyd2">ordering</csymbol><csymbol cd="polyd2">lexicographic</csymbol></apply>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="arith1">power</csymbol>
<apply><csymbol cd="arith1">minus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn type="integer">2</cn></apply>
<ci>y</ci>
</apply>
<cn type="integer">1</cn>
</apply>
<cn type="integer">2</cn>
</apply>
<apply><csymbol cd="arith1">minus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>y</ci><cn type="integer">2</cn></apply>
<ci>x</ci>
</apply>
<cn type="integer">1</cn>
</apply>
</apply>
</apply>
</math>
Prefix
minimal_groebner_element
(
list
(
x ,
y )
,
ordering
(
lexicographic )
,
list
(
power
(
minus
(
times
(
power
(
x , 2 )
,
y )
, 1 )
, 2 )
,
minus
(
times
(
power
(
y , 2 )
,
x )
, 1 )
)
)
Popcorn
polygb2.minimal_groebner_element([$x , $y], polyd2.ordering(polyd2.lexicographic), [($x ^ 2 * $y - 1) ^ 2 , $y ^ 2 * $x - 1])
Rendered Presentation MathML
minimal_groebner_element
(
(
x
,
y
)
,
ordering
(
lexicographic
)
,
(
x
2
y
-
1
)
2
y
2
x
-
1
)
Signatures:
sts
Description:
This symbol is a function of at least 3 arguments. The first argument is a list of variables.
The second and third argument are lists of polynomials in the variables from the first
argument, C and T respectively.
When applied to its arguments, it represents the boolean value of the assertion that all elements t
in T can be written as t = f_1*c_1 + ... + f_n*c_n (c_i in C).
If the optional 4th argument is 1, those f_i are returned.
Example:
OpenMath XML (source)
<OMOBJ xmlns="http://www.openmath.org/OpenMath" version="2.0">
<OMA>
<OMS name="extended_in" cd="polygb2"/>
<OMA>
<OMS name="list" cd="list1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA>
<OMS name="list" cd="list1"/>
<OMA>
<OMS name="plus" cd="arith1"/>
<OMV name="x"/>
<OMV name="y"/>
</OMA>
<OMA>
<OMS name="plus" cd="arith1"/>
<OMV name="x"/>
<OMA>
<OMS name="times" cd="arith1"/>
<OMI> 2 </OMI>
<OMV name="y"/>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS name="list" cd="list1"/>
<OMV name="y"/>
</OMA>
<OMI> 1 </OMI>
</OMA>
</OMOBJ>
Strict Content MathML
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><csymbol cd="polygb2">extended_in</csymbol>
<apply><csymbol cd="list1">list</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="list1">list</csymbol>
<apply><csymbol cd="arith1">plus</csymbol><ci>x</ci><ci>y</ci></apply>
<apply><csymbol cd="arith1">plus</csymbol>
<ci>x</ci>
<apply><csymbol cd="arith1">times</csymbol><cn type="integer">2</cn><ci>y</ci></apply>
</apply>
</apply>
<apply><csymbol cd="list1">list</csymbol><ci>y</ci></apply>
<cn type="integer">1</cn>
</apply>
</math>
Prefix
Popcorn
polygb2.extended_in([$x , $y], [$x + $y , $x + 2 * $y], [$y], 1)
Rendered Presentation MathML
extended_in
(
(
x
,
y
)
,
x
+
y
x
+
2
y
,
(
y
)
,
1
)
Signatures:
sts