[om] Univariate Polynomials

Arjeh Cohen amc at win.tue.nl
Tue Aug 12 02:58:11 CEST 2003

```Dear all + Dorina Jibetean,

Dorina Jibetean (and to some extent I) have been working on the polyonomial CDs as well.
We have separated out the Groebner part from polyd (to the best of my recollection)---the reason being that
you can use Groebner notions for other kinds of polynomials as well.

By means of the email I mean to ask Dorina and otehrs to coordinate before submitting...

Greetings, Arjeh M. Cohen

On Sat, Aug 09, 2003 at 05:56:44PM +0100, Professor James Davenport wrote:
> I attach a CD and STS for this, prompted by discussions with John Abbott
> and Hans Schonemann at ISSAC 2003. I would be grateful if these two would
> review it, and if David C. could mount it as an extra.
> James

> <CD>
>    <CDName> polyu </CDName>
>    <CDURL> http://www.openmath.org/cd/polyu.ocd </CDURL>
>    <CDReviewDate> 2003-04-01 </CDReviewDate>
>    <CDDate> 2003-08-06 </CDDate>
>    <CDStatus> experimental </CDStatus>
>    <CDVersion> 1 </CDVersion>
>    <CDRevision> 0 </CDRevision>
> <CDUses>
>   <CDName>setname1</CDName>
> </CDUses>
>    <Description>
>      This CD contains operators to deal with polynomials and more precisely
>      Univariate Polynomials.
>      Note that recursive polynomials are regarded as univariates in their most
>      significant variable (as defined by the order in PolynomialRingR:
>      the first variable to appear is the most significant),
>      with monomials in decreasing order of exponent, and coefficients
>      being polynomials in the rest of the variables, and therefore univariates
>      are a special case. This is provided as a separate CD to allow for
>      univariate-only operations (e.g. composition) and for systems that only
>      understand univariates, e.g. NTL.
>    </Description>
>
> <CDComment>
> Based on recursive polynomials 2003-08-06 JHD
> </CDComment>
>
> <CDComment>
>      Definition of data-structure constructors
> </CDComment>
>
> <CDComment>
>      The polynomial x^6 + 3*x^5 +2 can be conceptually encoded as
>      poly_u_rep(x,
>            term(6,1),
>            term(5,3),
> 	   term(0,2))
>      It lies in polynomial_ring_u(Z,x)
> </CDComment>
>
>     <CDDefinition>
>        <Name> term </Name>
>        <Description>
>           A constructor for monomials, that is products of powers and
>           elements of the base ring.
>           First argument is from N (the exponent of the variable
>           implied by an outer poly_u_rep)
>           second argument is a coefficient (from the ground field)
>        </Description>
>     </CDDefinition>
>
>     <CDDefinition>
>        <Name> poly_u_rep </Name>
>        <Description>
>          A constructor for the representation of polynomials.
>          The first argument is the polynomial variable, the rest are
>          monomials (in decreasing order of exponent).
>        </Description>
>        <Example>
>
>        The polynomial x^6 + 3*x^5 + 2 may be encoded as:
>
>          <OMOBJ>
>            <OMA>
>              <OMS name="poly_u_rep" cd="polyu"/>
>              <OMV name="x"/>
>              <OMA>
>                <OMS name="term" cd="polyu"/>
>                <OMI> 6 </OMI>
>                <OMI> 1 </OMI>
>              </OMA>
>              <OMA>
>                <OMS name="term" cd="polyu"/>
>                <OMI> 5 </OMI>
>                <OMI> 3 </OMI>
>              </OMA>
>              <OMA>
>                <OMS name="term" cd="polyu"/>
>                <OMI> 0 </OMI>
>                <OMI> 2 </OMI>
>              </OMA>
>            </OMA>
>          </OMOBJ>
>        </Example>
>     </CDDefinition>
>
>     <CDDefinition>
>        <Name> polynomial_u </Name>
>        <Description>
>          The constructor of Recursive Polynomials. The first argument
>          is the polynomial ring containing the polynomial and the second
>          is a "poly_u_rep".
>        </Description>
>
>        <Example>
>          The polynomial x^6 + 3*x^5 + 2 in the
>          polynomial ring with the integers as the coefficient ring and
>          variable x may be encoded as:
>
>          <OMOBJ>
>            <OMA>
>              <OMS name="polynomial_u" cd="polyu"/>
>              <OMA>
>                <OMS name="polynomial_ring_u" cd="polyu"/>
>                <OMS name="Z" cd="setname1"/>
>                <OMV name="x"/>
>              </OMA>
>              <OMA>
>                <OMS name="poly_u_rep" cd="polyu"/>
>                <OMV name="x"/>
>                <OMA>
>                  <OMS name="term" cd="polyu"/>
>                  <OMI> 6 </OMI>
>                  <OMI> 1 </OMI>
>                </OMA>
>                <OMA>
>                  <OMS name="term" cd="polyu"/>
>                  <OMI> 5 </OMI>
>                  <OMI> 3 </OMI>
>                </OMA>
>                <OMA>
>                  <OMS name="term" cd="polyu"/>
>                  <OMI> 0 </OMI>
>                  <OMI> 2 </OMI>
>                </OMA>
>              </OMA>
>            </OMA>
>          </OMOBJ>
>        </Example>
>     </CDDefinition>
>
> <CDComment>
>     Polynomial ring constructor
> </CDComment>
>
>
>     <CDDefinition>
>        <Name> polynomial_ring_u </Name>
>        <Description>
>          The constructor of a univariate polynomial ring. The first argument
>          is a ring (the ring of the coefficients), the second is the variable.
>        </Description>
>        <CMP>
>          Univariates are just recursive polynomials in one variable (though
> 	 constructed using isomorphic, but different, constructors).
>        </CMP>
>        <FMP>
>          <OMOBJ>
>            <OMA>
>              <OMS name="eq" cd="relation1"/>
>              <OMA>
>                <OMS name="polynomial_ring_u" cd="polyr"/>
>                <OMV name="R"/>
>                <OMV name="x"/>
>              </OMA>
>              <OMA>
>                <OMS name="polynomial_ring_r" cd="polyr"/>
>                <OMV name="R"/>
>                <OMV name="x"/>
>              </OMA>
>            </OMA>
>          </OMOBJ>
>        </FMP>
>        <Example>
>          <OMOBJ>
>            <OMA>
>              <OMS name="polynomial_ring_u" cd="polyr"/>
>              <OMS name="Z" cd="setname1"/>
>              <OMV name="x"/>
>            </OMA>
>          </OMOBJ>
>        </Example>
>     </CDDefinition>
>
> </CD>

> <CDSignatures type="sts" cd="polyu">
>
> <CDSComment>
> Date:  2003-08-06
> Author: James Davenport
> </CDSComment>
>
> <Signature name="term" >
> <OMOBJ>
>   <OMA>
>     <OMS name="mapsto" cd="sts"/>
>     <OMS name="N" cd="setname1"/>
>     <OMV name="Ring"/>
>     <OMV name="MonomialU"/>
>   </OMA>
> </OMOBJ>
> </Signature>
>
> <Signature name="PolyUrep" >
> <OMOBJ>
>  <OMA>
>    <OMS name="mapsto" cd="sts" />
>     <OMV name="PolynomialVariable" />
>     <OMA>
>       <OMS name="nary" cd="sts"/>
>       <OMV name="MonomialU"/>
>     </OMA>
>     <OMV name="poly_u_rep" />
>  </OMA>
> </OMOBJ>
> </Signature>
>
> <Signature name="polynomial_u" >
> <OMOBJ>
>  <OMA>
>    <OMS name="mapsto" cd="sts" />
>    <OMA>
>      <OMS name="structure" cd="sts" />
>      <OMV name="Ring"/>
>    </OMA>
>    <OMV name="poly_u_rep"/>
>    <OMS name="polynomial_ring" cd="polysts" />
>  </OMA>
> </OMOBJ>
> </Signature>
>
> <Signature name="polynomial_ring_u" >
> <OMOBJ>
>  <OMA>
>    <OMS name="mapsto" cd="sts" />
>    <OMA>
>      <OMS name="structure" cd="sts"/>
>      <OMV name="Ring"/>
>    </OMA>
>    <OMV name="PolynomialVariable"/>
>    <OMA>
>      <OMS name="structure" cd="sts"/>
>      <OMS name="PolynomialRing" cd="polysts"/>
>    </OMA>
>  </OMA>
> </OMOBJ>
> </Signature>
>
> </CDSignatures>

--
om at openmath.org  -  general discussion on OpenMath
Post public announcements to om-announce at openmath.org
Automatic list maintenance software at majordomo at openmath.org
Mail om-owner at openmath.org for assistance with any problems

```

More information about the Om mailing list