<monet:definitions xmlns:monet="http://monet.nag.co.uk/monet/ns"
                   xmlns:om="http://www.openmath.org/OpenMath"
                   targetNamespace="http://monet.nag.co.uk/problems/" >

 <monet:problem name ="univariate_polynomial_roots">
  <monet:header>
    <monet:taxonomy taxonomy="http://gams.nist.gov" code="GamsF1a" />
  </monet:header>

  <monet:body>
    <monet:input name="p">
      <monet:signature>
        <om:OMOBJ>
          <om:OMS  cd="polysts"  name="polynomial_ring" />
        </om:OMOBJ>
      </monet:signature>
    </monet:input>

    <monet:output name="roots">
      <monet:signature>
        <om:OMOBJ>
          <om:OMA>
            <om:OMS cd="sts2" name="list"/> 
            <om:OMA>
              <om:OMS cd="poly" name="coefficient_ring"/> 
              <om:OMV name="p"/>
            </om:OMA>
          </om:OMA>
        </om:OMOBJ>
      </monet:signature>
    </monet:output>

    <monet:pre-condition>
      <om:OMOBJ>
        <om:OMA>
          <om:OMS cd="relation1" name="eq"/>
          <om:OMA>
            <om:OMS cd="poly" name="degree"/>
            <om:OMV name="p"/>
          </om:OMA>
          <om:OMV name="n"/>
        </om:OMA>
      </om:OMOBJ>
    </monet:pre-condition>

    <monet:post-condition>
      <om:OMOBJ>
        <om:OMA>
          <om:OMS cd="relation1" name="eq"/>
          <om:OMA>
            <om:OMS cd="list2" name="size"/>
            <om:OMV name="roots"/>
          </om:OMA>
          <om:OMV name="n"/>
        </om:OMA>
      </om:OMOBJ>
    </monet:post-condition>

    <monet:post-condition>
      <om:OMOBJ>
        <om:OMBIND>
          <om:OMS cd="quant1" name="forall"/>
          <om:OMBVAR>
            <om:OMV name="x"/>
          </om:OMBVAR>
          <om:OMA>
            <om:OMS name="implies" cd="logic1"/>
            <om:OMA>
              <om:OMS name="in" cd="list2"/>
              <om:OMV name="x"/>
              <om:OMV name="roots"/>
            </om:OMA>
            <om:OMA>
              <om:OMS cd="relation1" name="eq"/>
              <om:OMA>
                <om:OMS cd="poly" name="evaluate"/>
                <om:OMV name="p"/>
                <om:OMV name="x"/>
              </om:OMA>
              <om:OMS cd="alg1" name="zero"/>
            </om:OMA>
          </om:OMA>
        </om:OMBIND>
      </om:OMOBJ>
    </monet:post-condition>

  </monet:body>

 </monet:problem>
</monet:definitions>
