<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/xsl" href="../../../Math/XSL/mathml.xsl"?>

<!DOCTYPE html
  SYSTEM "mathml.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>Content Markup Validation Grammar
</title>
      <style type="text/css">
code           { font-family: monospace; }

div.constraint,
div.issue,
div.note,
div.notice     { margin-left: 2em; }

li p           { margin-top: 0.3em;
                 margin-bottom: 0.3em; }

div.exampleInner pre { margin-left: 1em;
                       margin-top: 0em; margin-bottom: 0em}
div.exampleOuter {border: 4px double gray;
                  margin: 0em; padding: 0em}
div.exampleInner { background-color: #d5dee3;
                   border-top-width: 4px;
                   border-top-style: double;
                   border-top-color: #d3d3d3;
                   border-bottom-width: 4px;
                   border-bottom-style: double;
                   border-bottom-color: #d3d3d3;
                   padding: 4px; margin: 0em }
div.exampleWrapper { margin: 4px }
div.exampleHeader { font-weight: bold;
                    margin: 4px}

  .error { color: red }
  .minitoc { border-style: solid;
             border-color: #0050B2; 
             border-width: 1px ; }
  .attention { border-style: solid; 
               border-width: 1px ; 
               color: #5D0091;
               background: #F9F5DE; 
               border-color: red;
               margin-left: 1em;
               margin-right: 1em;
               margin-top: 0.25em;
               margin-bottom: 0.25em; }

  .attribute-Name { background: #F9F5C0; }
  .method-Name { background: #C0C0F9; }
  .IDL-definition { border-style: solid; 
               border-width: 1px ; 
               color: #001000;
               background: #E0FFE0; 
               border-color: #206020;
               margin-left: 1em;
               margin-right: 1em;
               margin-top: 0.25em;
               margin-bottom: 0.25em; }
  .baseline {vertical-align: baseline}

  #eqnoc1 {width: 10%}
  #eqnoc2 {width: 80%; text-align: center; }
  #eqnoc3 {width: 10%; text-align: right; }
          
.h3style {
  text-align: left;
  font-family: sans-serif;
  font-weight: normal;
  color: #0050B2; 
  font-size: 125%;
}

  h4 { text-align: left;
       font-family: sans-serif;
       font-weight: normal;
       color: #0050B2; }
  h5 { text-align: left;
       font-family: sans-serif;
       font-weight: bold;
       color: #0050B2; } 

  th {background:  #E0FFE0;}

  p, blockquote, h4 { font-family: sans-serif; }
  dt, dd, dl, ul, li { font-family: sans-serif; }
  pre, code { font-family: monospace }




.mathml-render {
font-family: serif;
font-size: 130%;
border: solid 4px green;
padding-left: 1em;
padding-right: 1em;
}
</style>
      <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WD.css"/>
   </head>
   <body>

      <h1>
         <a id="cmvg">

         </a>B Content Markup Validation Grammar</h1><!-- TOP NAVIGATION BAR -->
      <div class="minitoc">

  Overview: <a href="overview.xml">Mathematical Markup Language (MathML) Version 2.0 (2nd Edition)
</a>
         <br class="html-compat"/>
  Previous: A <a href="appendixa.xml">Parsing MathML</a>
         <br class="html-compat"/>
  Next: C <a href="appendixc.xml">Content Element Definitions</a>
         <br class="html-compat"/>
         <br class="html-compat"/>B <a href="appendixb.xml">Content Markup Validation Grammar</a>
         <br class="html-compat"/>
      </div>
      <div class="div1">
         <p>Informal EBNF grammar for Content Markup structure validation</p>
         <blockquote>
            <p>This defines the valid expression trees in content markup
it does not define attribute validation -
 this has to be done on top<br class="html-compat"/> 
               <a href="#Presentation.tags">Presentation_tags</a> is a placeholder for a valid
 presentation element start tag or end tag<br class="html-compat"/> #PCDATA is the XML parsed character data<br class="html-compat"/> symbols beginning with '_' for example <a href="#nt.mmlarg">_mmlarg</a> are internal symbols
 (recursive grammar usually required for recognition)<br class="html-compat"/> all-lowercase symbols for example 'ci' are terminal symbols
 representing MathML content elements<br class="html-compat"/> symbols beginning with Uppercase are terminals
 representating other tokens<br class="html-compat"/> revised sb 3.nov.97, 16.nov.97 and 22.dec.1997<br class="html-compat"/> revised sb 6.jan.98, 6.Feb.1998 and 4.april.1998<br class="html-compat"/> revised sb 27.nov.2000 for MathML2.0</p>
         </blockquote>

         <h5>
            <a id="d0e31106">

            </a>whitespace  definitions  including Presentation_tags</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="Presentation.tags">

                     </a>[1]   </td>
                  <td>
                     <code>Presentation_tags
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> "presentation"
</code>
                  </td>
                  <td>
                     <i>/* placeholder */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pSpace">

                     </a>[2]   </td>
                  <td>
                     <code>Space
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> #x09 | #x0A | #x0D | #x20
</code>
                  </td>
                  <td>
                     <i>/* tab, lf, cr, space characters */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pS">

                     </a>[3]   </td>
                  <td>
                     <code>S
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> (Space | Presentation_tags)*
</code>
                  </td>
                  <td>
                     <i>/* treat presentation as space */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31130">

            </a>Characters,
only for content validation characters</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pChar">

                     </a>[4]   </td>
                  <td>
                     <code>Char
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> Space | [#x21 - #xFFFD] 
             | [#x00010000 - #x7FFFFFFFF]
</code>
                  </td>
                  <td>
                     <i>/* valid XML chars */</i>
                  </td>
               </tr>
            </tbody>
         </table>
         <blockquote>
            <p>start(\%x) returns a valid start tag for the element \%x<br class="html-compat"/>end(\%x) returns a valid end tag for the element \%x<br class="html-compat"/>empty(\%x) returns a valid empty tag for the element \%x</p>
         </blockquote>
         <pre>
 start(ci)    ::= "&lt;ci&gt;"
 end(cn)      ::= "&lt;/cn&gt;"
 empty(plus)  ::= "&lt;plus/&gt;"
</pre>
         <p>The reason for doing this is to avoid writing a grammar
 for all the attributes. The model below is not complete
 for all possible attribute values.</p>

         <h5>
            <a id="d0e31151">

            </a>start and end tag functions</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.start">

                     </a>[5]   </td>
                  <td>
                     <code>_start(\%x)
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> "&lt;\%x" (Char - '&gt;')* "&gt;"
</code>
                  </td>
                  <td>
                     <i>/*  returns a valid start tag for the element \%x */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.end">

                     </a>[6]   </td>
                  <td>
                     <code>_end(\%x)
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> "&lt;\%x" Space* "&gt;"
</code>
                  </td>
                  <td>
                     <i>/*  returns a valid end tag for the element \%x */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.empty">

                     </a>[7]   </td>
                  <td>
                     <code>_empty(\%x)
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> "&lt;\%x" (Char - '&gt;')* "/&gt;"
</code>
                  </td>
                  <td>
                     <i>/*  returns a valid empty tag for the element \%x */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.sg">

                     </a>[8]   </td>
                  <td>
                     <code>_sg(\%x)
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> S <a href="#nt.start">_start</a>(\%x)
</code>
                  </td>
                  <td>
                     <i>/*  start tag preceded by optional whitespace */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.eg">

                     </a>[9]   </td>
                  <td>
                     <code>_eg(\%x)
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.end">_end</a>(\%x) S
</code>
                  </td>
                  <td>
                     <i>/*  end tag followed by optional whitespace */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.ey">

                     </a>[10]   </td>
                  <td>
                     <code>_ey(\%x)
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> S <a href="#nt.empty">_empty</a>(\%x) S
</code>
                  </td>
                  <td>
                     <i>/*  empty tag preceded and followed by optional whitespace */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31205">

            </a>mathml content constructs</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.mmlall">

                     </a>[11]   </td>
                  <td>
                     <code>_mmlall
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.container">_container</a> | <a href="#nt.relation">_relation</a> | <a href="#nt.operator">_operator</a> | <a href="#nt.qualifier">_qualifier</a> | <a href="#nt.other">_other</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.mmlarg">

                     </a>[12]   </td>
                  <td>
                     <code>_mmlarg
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.container">_container</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.container">

                     </a>[13]   </td>
                  <td>
                     <code>_container
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.token">_token</a> | <a href="#nt.special">_special</a> | <a href="#nt.constructor">_constructor</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.token">

                     </a>[14]   </td>
                  <td>
                     <code>_token
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> ci | cn | csymbol | <a href="#nt.constantsym">_constantsym</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.special">

                     </a>[15]   </td>
                  <td>
                     <code>_special
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> apply | lambda | reln | fn
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.constructor">

                     </a>[16]   </td>
                  <td>
                     <code>_constructor
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> interval | list | matrix | matrixrow | set | vector	| piecewise
                     | piece | otherwise
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.other">

                     </a>[17]   </td>
                  <td>
                     <code>_other
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> condition |  declare | sep
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.qualifier">

                     </a>[18]   </td>
                  <td>
                     <code>_qualifier
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> lowlimit | uplimit | bvar | degree | logbase | domainofapplication
                     | momentabout
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.constantsym">

                     </a>[19]   </td>
                  <td>
                     <code>_constantsym
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> integers | rationals | reals | naturalnumbers | complexes | primes 
                     | exponentiale | imaginaryi | notanumber | true | false | pi
                     | eulergamma | infinity
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31279">

            </a> relations</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.relation">

                     </a>[20]   </td>
                  <td>
                     <code>_relation
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.genrel">_genrel</a> | <a href="#nt.setrel">_setrel</a> | <a href="#nt.seqrel2ary">_seqrel2ary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.genrel">

                     </a>[21]   </td>
                  <td>
                     <code>_genrel
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.genrel2ary">_genrel2ary</a> | <a href="#nt.genrelnary">_genrelnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.genrel2ary">

                     </a>[22]   </td>
                  <td>
                     <code>_genrel2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> ne
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.genrelnary">

                     </a>[23]   </td>
                  <td>
                     <code>_genrelnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> eq | leq | lt | geq | gt
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setrel">

                     </a>[24]   </td>
                  <td>
                     <code>_setrel
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.seqrel2ary">_seqrel2ary</a> | <a href="#nt.setrelnary">_setrelnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setrel2ary">

                     </a>[25]   </td>
                  <td>
                     <code>_setrel2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  in | notin | notsubset | notprsubset
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setrelnary">

                     </a>[26]   </td>
                  <td>
                     <code>_setrelnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> subset | prsubset
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.seqrel2ary">

                     </a>[27]   </td>
                  <td>
                     <code>_seqrel2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> tendsto
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31340">

            </a>operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.operator">

                     </a>[28]   </td>
                  <td>
                     <code>_operator
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.funcop">_funcop</a> |
               <a href="#nt.arithop">_arithop</a> | <a href="#nt.calcop">_calcop</a> | 
               <a href="#nt.vcalcop">_vcalcop</a> | <a href="#nt.seqop">_seqop</a> |
               <a href="#nt.trigop">_trigop</a> | <a href="#nt.classop">_classop</a> |
               <a href="#nt.statop">_statop</a> | <a href="#nt.lalgop">_lalgop</a> |
               <a href="#nt.logicop">_logicop</a> | <a href="#nt.setop">_setop</a>

                     </code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31380">

            </a>functional operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.funcop">

                     </a>[29]   </td>
                  <td>
                     <code>_funcop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.funcop1ary">_funcop1ary</a> | <a href="#nt.funcopnary">_funcopnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.funcop1ary">

                     </a>[30]   </td>
                  <td>
                     <code>_funcop1ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> inverse     | ident | domain | codomain | image
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.funcopnary">

                     </a>[31]   </td>
                  <td>
                     <code>_funcopnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> fn| compose
</code>
                  </td>
                  <td>
                     <i>/*  general user-defined function is n-ary */</i>
                  </td>
               </tr>
            </tbody>
         </table>
         <p>(note minus is both 1ary and 2ary)</p>

         <h5>
            <a id="d0e31407">

            </a> arithmetic operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.arithop">

                     </a>[32]   </td>
                  <td>
                     <code>_arithop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.arithop1ary">_arithop1ary</a> | <a href="#nt.arithop2ary">_arithop2ary</a> | <a href="#nt.arithopnary">_arithopnary</a>  | root
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.arithop1ary">

                     </a>[33]   </td>
                  <td>
                     <code>_arithop1ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> abs | conjugate | factorial | minus | arg | real | imaginary
                     | floor | ceiling
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.arithop2ary">

                     </a>[34]   </td>
                  <td>
                     <code>_arithop2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> quotient | divide | minus | power | rem
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.arithopnary">

                     </a>[35]   </td>
                  <td>
                     <code>_arithopnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> plus | times | max | min | gcd | lcm
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31439">

            </a> calculus and vector calculus</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.calcop">

                     </a>[36]   </td>
                  <td>
                     <code>_calcop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> int | diff | partialdiff
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.vcalcop">

                     </a>[37]   </td>
                  <td>
                     <code>_vcalcop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> divergence | grad | curl | laplacian
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31452">

            </a> sequences and series</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.seqop">

                     </a>[38]   </td>
                  <td>
                     <code>_seqop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> sum | product | limit
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31460">

            </a> elementary classical functions and trigonometry</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.classop">

                     </a>[39]   </td>
                  <td>
                     <code>_classop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> exp | ln | log
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.trigop">

                     </a>[40]   </td>
                  <td>
                     <code>_trigop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> sin | cos | tan | sec | csc | cot | sinh 
                    | cosh | tanh | sech | csch | coth 
                    | arcsin | arccos | arctan
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31473">

            </a> statistics operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.statop">

                     </a>[41]   </td>
                  <td>
                     <code>_statop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.statopnary">_statopnary</a> | moment
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.statopnary">

                     </a>[42]   </td>
                  <td>
                     <code>_statopnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> mean | sdev | variance | median | mode
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31489">

            </a> linear algebra operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.lalgop">

                     </a>[43]   </td>
                  <td>
                     <code>_lalgop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.lalgop1ary">_lalgop1ary</a> |<a href="#nt.lalgop2ary">_lalgop2ary</a> | <a href="#nt.lalgopnary">_lalgopnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.lalgop1ary">

                     </a>[44]   </td>
                  <td>
                     <code>_lalgop1ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> determinant | transpose
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.lalgop2ary">

                     </a>[45]   </td>
                  <td>
                     <code>_lalgop2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> vectorproduct | scalarproduct | outerproduct
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.lalgopnary">

                     </a>[46]   </td>
                  <td>
                     <code>_lalgopnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> selector
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31520">

            </a> logical operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.logicop">

                     </a>[47]   </td>
                  <td>
                     <code>_logicop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.logicop1ary">_logicop1ary</a> | <a href="#nt.logicopnary">_logicopnary</a> | <a href="#nt.logicop2ary">_logicop2ary</a> | <a href="#nt.logicopquant">_logicopquant</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.logicop1ary">

                     </a>[48]   </td>
                  <td>
                     <code>_logicop1ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> not
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.logicop2ary">

                     </a>[49]   </td>
                  <td>
                     <code>_logicop2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> implies	| equivalent | approx | factorof
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.logicopnary">

                     </a>[50]   </td>
                  <td>
                     <code>_logicopnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> and | or | xor
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.logicopquant">

                     </a>[51]   </td>
                  <td>
                     <code>_logicopquant
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> forall | exists
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31559">

            </a> set theoretic operators</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setop">

                     </a>[52]   </td>
                  <td>
                     <code>_setop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.setop1ary">_setop1ary</a> |<a href="#nt.setop2ary">_setop2ary</a> | <a href="#nt.setopnary">_setopnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setop1ary">

                     </a>[53]   </td>
                  <td>
                     <code>_setop1ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> card
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setop2ary">

                     </a>[54]   </td>
                  <td>
                     <code>_setop2ary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> setdiff
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.setopnary">

                     </a>[55]   </td>
                  <td>
                     <code>_setopnary
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> union | intersect | cartesianproduct
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31590">

            </a> operator groups</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.unaryop">

                     </a>[56]   </td>
                  <td>
                     <code>_unaryop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.funcop1ary">_funcop1ary</a> | <a href="#nt.arithop1ary">_arithop1ary</a> | <a href="#nt.trigop">_trigop</a> | <a href="#nt.classop">_classop</a>  
                     | <a href="#nt.calcop">_calcop</a> | <a href="#nt.vcalcop">_vcalcop</a> | <a href="#nt.logicop1ary">_logicop1ary</a>	| <a href="#nt.lalgop1ary">_lalgop1ary</a> | <a href="#nt.setop1ary">_setop1ary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.binaryop">

                     </a>[57]   </td>
                  <td>
                     <code>_binaryop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.arithop2ary">_arithop2ary</a> | <a href="#nt.setop2ary">_setop2ary</a> | <a href="#nt.logicop2ary">_logicop2ary</a> | <a href="#nt.lalgop2ary">_lalgop2ary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.naryop">

                     </a>[58]   </td>
                  <td>
                     <code>_naryop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.arithopnary">_arithopnary</a> | <a href="#nt.statopnary">_statopnary</a>  | <a href="#nt.logicopnary">_logicopnary</a> 
                     | <a href="#nt.lalgopnary">_lalgopnary</a> | <a href="#nt.setopnary">_setopnary</a> | <a href="#nt.funcopnary">_funcopnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.ispop">

                     </a>[59]   </td>
                  <td>
                     <code>_ispop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> int | sum | product
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.diffop">

                     </a>[60]   </td>
                  <td>
                     <code>_diffop
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> diff | partialdiff
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.binaryrel">

                     </a>[61]   </td>
                  <td>
                     <code>_binaryrel
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.genrel2ary">_genrel2ary</a> | <a href="#nt.setrel2ary">_setrel2ary</a> |  <a href="#nt.seqrel2ary">_seqrel2ary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.naryrel">

                     </a>[62]   </td>
                  <td>
                     <code>_naryrel
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.genrelnary">_genrelnary</a> | <a href="#nt.setrelnary">_setrelnary</a>

                     </code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31695">

            </a>separator</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="psep">

                     </a>[63]   </td>
                  <td>
                     <code>sep
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.ey">_ey</a>(sep)
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31706">

            </a>leaf tokens  and data content of leaf elements</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.mdatai">

                     </a>[64]   </td>
                  <td>
                     <code>_mdatai
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> (#PCDATA | <a href="#Presentation.tags">Presentation_tags</a>)*
</code>
                  </td>
                  <td>
                     <i>/* note _mdata includes Presentation constructs here. */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.mdatan">

                     </a>[65]   </td>
                  <td>
                     <code>_mdatan
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> (#PCDATA | sep | <a href="#Presentation.tags">Presentation_tags</a>)*
</code>
                  </td>
                  <td>
                     <i>/* note _mdata includes Presentation constructs here. */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pci">

                     </a>[66]   </td>
                  <td>
                     <code>ci
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(ci) <a href="#nt.mdatai">_mdatai</a> 
                        <a href="#nt.eg">_eg</a>(ci)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pcn">

                     </a>[67]   </td>
                  <td>
                     <code>cn
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(cn) <a href="#nt.mdatan">_mdatan</a> 
                        <a href="#nt.eg">_eg</a>(cn)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pcsymbol">

                     </a>[68]   </td>
                  <td>
                     <code>csymbol
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(csymbol) <a href="#nt.mdatai">_mdatai</a> 
                        <a href="#nt.eg">_eg</a>(csymbol)
</code>
                  </td>
               </tr>
            </tbody>
         </table>
         <p>
 condition -  constraints constraints. contains either
 a single reln (relation), or
 an apply holding a logical combination of relations, or
 a set (over which the operator should be applied)</p>

         <h5>
            <a id="d0e31773">

            </a>condition</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pcondition">

                     </a>[69]   </td>
                  <td>
                     <code>condition
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(condition)  reln | apply | set  <a href="#nt.eg">_eg</a>(condition)
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31787">

            </a> domains for integral, sum , product</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.ispdomain">

                     </a>[70]   </td>
                  <td>
                     <code>_ispdomain
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> (lowlimit  uplimit?)
                | uplimit
                | interval
                | condition
</code>
                  </td>
               </tr>
            </tbody>
         </table>
         <p>
Note that apply is used in place of the deprecated reln in MathML2.0
 for relational operators as well as arithmetic, algebraic etc.</p>

         <h5>
            <a id="d0e31797">

            </a>apply construct</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="papply">

                     </a>[71]   </td>
                  <td>
                     <code>apply
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(apply) <a href="#nt.applybody">_applybody</a> | <a href="#nt.relnbody">_relnbody</a> 
                        <a href="#nt.eg">_eg</a>(apply)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.applybody">

                     </a>[72]   </td>
                  <td>
                     <code>_applybody
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>( <a href="#nt.unaryop">_unaryop</a> 
                        <a href="#nt.mmlarg">_mmlarg</a>  )
</code>
                  </td>
                  <td>
                     <i>/* 1-ary ops */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.binaryop">_binaryop</a> 
                        <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* 2-ary ops */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.naryop">_naryop</a> 
                        <a href="#nt.mmlarg">_mmlarg</a>*)
</code>
                  </td>
                  <td>
                     <i>/* n-ary ops, enumerated arguments */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.naryop">_naryop</a> bvar* condition <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* n-ary ops, condition defines argument list */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.ispop">_ispop</a>  bvar? <a href="#nt.ispdomain">_ispdomain</a>? <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* integral, sum, product */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.ispop">_ispop</a>  domainofapplication? <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* integral, sum, product */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.diffop">_diffop</a> bvar* <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* differential ops */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (log logbase? <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* logs */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (moment degree? momentabout? <a href="#nt.mmlarg">_mmlarg</a>*)
</code>
                  </td>
                  <td>
                     <i>/* statistical moment */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (root degree? <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* radicals - default is square-root */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (limit bvar* lowlimit? condition? <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* limits */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (<a href="#nt.logicopquant">_logicopquant</a> bvar+ condition? (reln | apply))
</code>
                  </td>
                  <td>
                     <i>/* quantifier with explicit bound variables */</i>
                  </td>
               </tr>
            </tbody>
         </table>
         <p>
 equations and relations - reln uses lisp-like syntax (like apply)
 the bvar and condition are used to construct a "such that" or
 "where" constraint on the relation  . 
 Note that reln is deprecated but still valid in MathML2.0</p>

         <h5>
            <a id="d0e31933">

            </a>equations and relations</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="preln">

                     </a>[73]   </td>
                  <td>
                     <code>reln
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(reln) <a href="#nt.relnbody">_relnbody</a> 
                        <a href="#nt.eg">_eg</a>(reln)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.relnbody">

                     </a>[74]   </td>
                  <td>
                     <code>_relnbody
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> ( <a href="#nt.binaryrel">_binaryrel</a> bvar* condition? <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.mmlarg">_mmlarg</a> )
                    | ( <a href="#nt.naryrel">_naryrel</a> bvar* condition? <a href="#nt.mmlarg">_mmlarg</a>*  )
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31970">

            </a> fn construct Note that fn is deprecated but still valid in MathML2.0
</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pfn">

                     </a>[75]   </td>
                  <td>
                     <code>fn
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(fn) <a href="#nt.fnbody">_fnbody</a> 
                        <a href="#nt.eg">_eg</a>(fn)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.fnbody">

                     </a>[76]   </td>
                  <td>
                     <code>_fnbody
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  Presentation_tags | container
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e31992">

            </a> lambda construct     - note at least 1 bvar must be present</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="plambda">

                     </a>[77]   </td>
                  <td>
                     <code>lambda
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(lambda) <a href="#nt.lambdabody">_lambdabody</a> 
                        <a href="#nt.eg">_eg</a>(lambda)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.lambdabody">

                     </a>[78]   </td>
                  <td>
                     <code>_lambdabody
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  bvar+ <a href="#nt.container">_container</a>

                     </code>
                  </td>
                  <td>
                     <i>/* multivariate lambda calculus */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e32018">

            </a>declare construct</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pdeclare">

                     </a>[79]   </td>
                  <td>
                     <code>declare
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(declare) <a href="#nt.declarebody">_declarebody</a> 
                        <a href="#nt.eg">_eg</a>(declare)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.declarebody">

                     </a>[80]   </td>
                  <td>
                     <code>_declarebody
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> ci (fn | constructor)?
</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e32040">

            </a> constructors</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pinterval">

                     </a>[81]   </td>
                  <td>
                     <code>interval
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(interval) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(interval)
</code>
                  </td>
                  <td>
                     <i>/* start, end define interval */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pset">

                     </a>[82]   </td>
                  <td>
                     <code>set
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(set) <a href="#nt.lsbody">_lsbody</a> 
                        <a href="#nt.eg">_eg</a>(set)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="plist">

                     </a>[83]   </td>
                  <td>
                     <code>list
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.sg">_sg</a>(list) <a href="#nt.lsbody">_lsbody</a> 
                        <a href="#nt.eg">_eg</a>(list)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.lsbody">

                     </a>[84]   </td>
                  <td>
                     <code>_lsbody
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>  
                        <a href="#nt.mmlarg">_mmlarg</a>*
</code>
                  </td>
                  <td>
                     <i>/* condition constructs arguments */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>| (bvar* condition <a href="#nt.mmlarg">_mmlarg</a>)
</code>
                  </td>
                  <td>
                     <i>/* enumerated arguments */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pmatrix">

                     </a>[85]   </td>
                  <td>
                     <code>matrix
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(matrix) matrixrow* <a href="#nt.eg">_eg</a>(matrix)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pmatrixrow">

                     </a>[86]   </td>
                  <td>
                     <code>matrixrow
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(matrixrow) <a href="#nt.mmlall">_mmlall</a>* <a href="#nt.eg">_eg</a>(matrixrow)
</code>
                  </td>
                  <td>
                     <i>/* allows matrix of operators */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pvector">

                     </a>[87]   </td>
                  <td>
                     <code>vector
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(vector) <a href="#nt.mmlarg">_mmlarg</a>* <a href="#nt.eg">_eg</a>(vector)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="ppiecewise">

                     </a>[88]   </td>
                  <td>
                     <code>piecewise
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(piecewise) piece* otherwise? <a href="#nt.eg">_eg</a>(piecewise)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="ppiece">

                     </a>[89]   </td>
                  <td>
                     <code>piece
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(piece) <a href="#nt.mmlall">_mmlall</a> 
                        <a href="#nt.eg">_eg</a>(piece)
</code>
                  </td>
                  <td>
                     <i>/* allows piecewise construct of operators */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="potherwise">

                     </a>[90]   </td>
                  <td>
                     <code>otherwise
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(otherwise) <a href="#nt.mmlall">_mmlall</a> 
                        <a href="#nt.eg">_eg</a>(otherwise)
</code>
                  </td>
                  <td>
                     <i>/* allows piecewise construct of operators */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e32191">

            </a>qualifiers - note the contained <a href="#nt.mmlarg">_mmlarg</a> could be a reln</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="plowlimit">

                     </a>[91]   </td>
                  <td>
                     <code>lowlimit
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(lowlimit) <a href="#nt.mmlarg">_mmlarg</a>  
                        <a href="#nt.eg">_eg</a>(lowlimit)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="puplimit">

                     </a>[92]   </td>
                  <td>
                     <code>uplimit
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(uplimit) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(uplimit)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pbvar">

                     </a>[93]   </td>
                  <td>
                     <code>bvar
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(bvar) ci degree? <a href="#nt.eg">_eg</a>(bvar)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pdegree">

                     </a>[94]   </td>
                  <td>
                     <code>degree
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(degree) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(degree)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="plogbase">

                     </a>[95]   </td>
                  <td>
                     <code>logbase
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(logbase) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(logbase)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pdomainofapplication">

                     </a>[96]   </td>
                  <td>
                     <code>domainofapplication
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(domainofapplication) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(domainofapplication)
</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pmomentabout">

                     </a>[97]   </td>
                  <td>
                     <code>momentabout
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(momentabout) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(momentabout)
</code>
                  </td>
               </tr>
            </tbody>
         </table>
         <p>the top level math element
allow declare only at the head of a math element.</p>

         <h5>
            <a id="d0e32327">

            </a>math</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pmath">

                     </a>[101]   </td>
                  <td>
                     <code>math
</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code> 
                        <a href="#nt.sg">_sg</a>(math) declare* mmlall* <a href="#nt.eg">_eg</a>(math)
</code>
                  </td>
               </tr>
            </tbody>
         </table>
      </div>
      <div class="minitoc">

  Overview: <a href="overview.xml">Mathematical Markup Language (MathML) Version 2.0 (2nd Edition)
</a>
         <br class="html-compat"/>
  Previous:     A <a href="appendixa.xml">Parsing MathML</a>
         <br class="html-compat"/>
  Next:     C <a href="appendixc.xml">Content Element Definitions</a>
      </div>
   </body>
</html>