<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/xsl" href="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}
a.mainindex {font-weight: bold;}
li.sitem {list-style-type: none;}

  .error { color: red }
  .minitoc { border-style: solid;
             border-color: #0050B2; 
             border-width: 1px ;
             padding: 0.3em;}
  .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; }

div.div1 {margin-bottom: 1em;}
          
.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="base.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 (Second 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>This presents an informal EBNF grammar that can be used to validate the structure of Content Markup.</p>
         <ul>
            <li class="sitem">
It defines the valid expression trees in content markup.
It does not define the rules for attribute validation.  That must be done separately.</li>
            <li class="sitem">
The non-terminal <a href="#Presentation.tags">Presentation_tags</a> is a placeholder for a valid
 presentation element start tag or end tag.</li>
            <li class="sitem">
The string <code>
#PCDATA</code> denotes XML parsed character data.</li>
            <li class="sitem">
Symbols beginning with '_' (for example <a href="#nt.mmlarg">_mmlarg</a>) are internal symbols.
 A recursive grammar is usually required for their recognition.</li>
            <li class="sitem">
Symbols which are all in lowercase symbols (for example 'ci') are terminal symbols
 representing MathML content elements.</li>
            <li class="sitem">
Symbols beginning with Uppercase letters are terminals representating other tokens.</li>
         </ul>

         <h5>
            <a id="d0e33075">

            </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>
 (<a href="#pSpace">Space</a> | <a href="#Presentation.tags">Presentation_tags"</a>)*</code>
                  </td>
                  <td>
                     <i>/* treat presentation as space */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33105">

            </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>
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</code>
                  </td>
                  <td>
                     <i>/* valid XML chars */</i>
                  </td>
               </tr>
            </tbody>
         </table>
         <ul>
            <li class="sitem">
start(\%x) returns a valid start tag for the element \%x</li>
            <li class="sitem">
end(\%x) returns a valid end tag for the element \%x</li>
            <li class="sitem">
empty(\%x) returns a valid empty tag for the element \%x</li>
         </ul>
         <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="d0e33126">

            </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" (<a href="#pChar">Char</a> - '&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" <a href="#pSpace">Space</a>* "&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" (<a href="#pChar">Char</a> - '&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>
 
                        <a href="#pS">S</a> 
                        <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) <a href="#pS">S</a>
                     </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>
 
                        <a href="#pS">S</a> 
                        <a href="#nt.empty">_empty</a>(\%x) <a href="#pS">S</a>
                     </code>
                  </td>
                  <td>
                     <i>/*  empty tag preceded and followed by optional whitespace */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33199">

            </a>semantics, annotation, etc.</h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="psemantics">

                     </a>[11]   </td>
                  <td>
                     <code>
semantics</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>

   
                        <a href="#nt.sg">_sg</a>(semantics)
   <a href="#nt.mmlarg">_mmlarg</a>
   
                        <a href="#nt.annot">_annot</a>*
   <a href="#nt.eg">_eg</a>(semantics)
 </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pannotation">

                     </a>[12]   </td>
                  <td>
                     <code>
annotation</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>

   
                        <a href="#nt.sg">_sg</a>(annotation)
   #PCDATA
   <a href="#nt.eg">_eg</a>(annotation)
 </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pannotation-xml">

                     </a>[13]   </td>
                  <td>
                     <code>
annotation-xml</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>

   
                        <a href="#nt.sg">_sg</a>(annotation-xml)
   <a href="#nt.ANY">_ANY</a>
   
                        <a href="#nt.eg">_eg</a>(annotation-xml)
 </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.ANY">

                     </a>[14]   </td>
                  <td>
                     <code>
_ANY</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
"AnyXML"</code>
                  </td>
                  <td>
                     <i>/* placeholder for wellformed XML Fragment (not Mixed Content) */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.annot">

                     </a>[15]   </td>
                  <td>
                     <code>
_annot</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 annotation | annotation-xml </code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33270">

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

                     </a>[16]   </td>
                  <td>
                     <code>
_mmlarg</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <a href="#nt.container">_container</a> | <a href="#nt.token">_token</a> | <a href="#nt.operator">_operator</a> | <a href="#nt.relation">_relation</a> 
                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.container">

                     </a>[17]   </td>
                  <td>
                     <code>
_container</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <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>[18]   </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>[19]   </td>
                  <td>
                     <code>
_special</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 apply | lambda | reln | fn | semantics</code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.constructor">

                     </a>[20]   </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.qualifier">

                     </a>[21]   </td>
                  <td>
                     <code>
_qualifier</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 lowlimit | uplimit | degree | logbase | domainofapplication
                     | momentabout | condition </code>
                  </td>
                  <td>
                     <i>/* interval is both a qualifier and a constructor */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.constantsym">

                     </a>[22]   </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="d0e33371">

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

                     </a>[23]   </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>[24]   </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>[25]   </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>[26]   </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>[27]   </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>[28]   </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>[29]   </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>[30]   </td>
                  <td>
                     <code>
_seqrel2ary</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 tendsto</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33432">

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

                     </a>[31]   </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="d0e33472">

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

                     </a>[32]   </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>[33]   </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>[34]   </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 <code>
minus</code> is both 1ary and 2ary)</p>

         <h5>
            <a id="d0e33502">

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

                     </a>[35]   </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>[36]   </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>[37]   </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>[38]   </td>
                  <td>
                     <code>
_arithopnary</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 plus | times | max | min | gcd | lcm</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33534">

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

                     </a>[39]   </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>[40]   </td>
                  <td>
                     <code>
_vcalcop</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 divergence | grad | curl | laplacian</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33547">

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

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

         <h5>
            <a id="d0e33555">

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

                     </a>[42]   </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>[43]   </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="d0e33568">

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

                     </a>[44]   </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>[45]   </td>
                  <td>
                     <code>
_statopnary</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 mean | sdev | variance | median | mode</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33584">

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

                     </a>[46]   </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>[47]   </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>[48]   </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>[49]   </td>
                  <td>
                     <code>
_lalgopnary</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 selector</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33615">

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

                     </a>[50]   </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>[51]   </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>[52]   </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>[53]   </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>[54]   </td>
                  <td>
                     <code>
_logicopquant</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 forall | exists</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33655">

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

                     </a>[55]   </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>[56]   </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>[57]   </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>[58]   </td>
                  <td>
                     <code>
_setopnary</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 union | intersect | cartesianproduct</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e33686">

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

                     </a>[59]   </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>[60]   </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>[61]   </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.specialop">

                     </a>[62]   </td>
                  <td>
                     <code>
_specialop</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <a href="#nt.special">_special</a> | ci | csymbol </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.ispop">

                     </a>[63]   </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>[64]   </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>[65]   </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>[66]   </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="d0e33800">

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

                     </a>[67]   </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="d0e33811">

            </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>[68]   </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>[69]   </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>[70]   </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>[71]   </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>[72]   </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>
 
            <code>
condition</code> -  constraints.
 constraints contains either a single <code>
reln</code> (relation), or
 an apply holding a logical combination of relations, or
 a set (over which the operator should be applied).</p>

         <h5>
            <a id="d0e33884">

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

                     </a>[73]   </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="d0e33898">

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

                     </a>[74]   </td>
                  <td>
                     <code>
_domainofapp</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 domainofapplication | <a href="#nt.domainabbrev">_domainabbrev</a>
                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.domainabbrev">

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

         <h5>
            <a id="d0e33926">

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

                     </a>[76]   </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>[77]   </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* <a href="#nt.domainofapp">_domainofapp</a>? <a href="#nt.mmlarg">_mmlarg</a>)</code>
                  </td>
                  <td>
                     <i>/* n-ary ops, over domain of application */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>
| (<a href="#nt.specialop">_specialop</a> 
                        <a href="#nt.mmlarg">_mmlarg</a>*)</code>
                  </td>
                  <td>
                     <i>/* special ops can be applied to anything */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>
| (<a href="#nt.specialop">_specialop</a> bvar* <a href="#nt.domainofapp">_domainofapp</a>? <a href="#nt.mmlarg">_mmlarg</a>)</code>
                  </td>
                  <td>
                     <i>/* special ops, over domain of application  */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>
| (<a href="#nt.ispop">_ispop</a>  bvar* <a href="#nt.domainofapp">_domainofapp</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.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* <a href="#nt.domainofapp">_domainofapp</a>? <a href="#nt.mmlarg">_mmlarg</a>)</code>
                  </td>
                  <td>
                     <i>/* quantifier with explicit bound variables */</i>
                  </td>
               </tr>
            </tbody>
         </table>
         <p>
 Equations and relations - <code>
reln</code> uses lisp-like syntax (like <code>
apply</code>)
 the <code>
bvar</code> and <code>
condition</code> elements are used to construct a "such that" or
 "where" constraint on the relation. 
 Note that <code>
reln</code> is deprecated but still valid in MathML2.0.</p>

         <h5>
            <a id="d0e34139">

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

                     </a>[78]   </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>[79]   </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="d0e34176">

            </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>[80]   </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>[81]   </td>
                  <td>
                     <code>
_fnbody</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
  
                        <a href="#Presentation.tags">Presentation_tags</a> | <a href="#nt.mmlarg">_mmlarg</a>
                     </code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e34210">

            </a> 
            <code>
lambda</code> construct     </h5>
         <table class="scrap" summary="Scrap">
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="plambda">

                     </a>[82]   </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>[83]   </td>
                  <td>
                     <code>
_lambdabody</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
  bvar* <a href="#nt.domainofapp">_domainofapp</a>? <a href="#nt.mmlarg">_mmlarg</a>
                     </code>
                  </td>
                  <td>
                     <i>/* multivariate lambda calculus */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e34248">

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

                     </a>[84]   </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>[85]   </td>
                  <td>
                     <code>
_declarebody</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 ci (fn | constructor)?</code>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e34272">

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

                     </a>[86]   </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>[87]   </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>[88]   </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>[89]   </td>
                  <td>
                     <code>
_lsbody</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
  
                        <a href="#nt.mmlarg">_mmlarg</a>*</code>
                  </td>
                  <td>
                     <i>/* enumerated arguments */</i>
                  </td>
               </tr>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

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

                     </a>[90]   </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>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>
| <a href="#nt.sg">_sg</a>(matrix) bvar* <a href="#nt.domainofapp">_domainofapp</a>? <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(matrix)</code>
                  </td>
                  <td>
                     <i>/* vectors over domain of application */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pmatrixrow">

                     </a>[91]   </td>
                  <td>
                     <code>
matrixrow</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <a href="#nt.sg">_sg</a>(matrixrow) <a href="#nt.mmlarg">_mmlarg</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>[92]   </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>
               <tr valign="baseline">
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>

                  </td>
                  <td>
                     <code>
| <a href="#nt.sg">_sg</a>(vector) bvar* <a href="#nt.domainofapp">_domainofapp</a>? <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(vector)</code>
                  </td>
                  <td>
                     <i>/* vectors over domain of application */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="ppiecewise">

                     </a>[93]   </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>[94]   </td>
                  <td>
                     <code>
piece</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <a href="#nt.sg">_sg</a>(piece) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(piece)</code>
                  </td>
                  <td>
                     <i>/* used by piecewise */</i>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="potherwise">

                     </a>[95]   </td>
                  <td>
                     <code>
otherwise</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <a href="#nt.sg">_sg</a>(otherwise) <a href="#nt.mmlarg">_mmlarg</a> 
                        <a href="#nt.eg">_eg</a>(otherwise)</code>
                  </td>
                  <td>
                     <i>/* used by piecewise */</i>
                  </td>
               </tr>
            </tbody>
         </table>

         <h5>
            <a id="d0e34490">

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

                     </a>[96]   </td>
                  <td>
                     <code>
_cisemantics</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>

   
                        <a href="#nt.sg">_sg</a>(semantics)
   <a href="#nt.citoken">_citoken</a>
   
                        <a href="#nt.annot">_annot</a>*
   <a href="#nt.eg">_eg</a>(semantics)
 </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="nt.citoken">

                     </a>[97]   </td>
                  <td>
                     <code>
_citoken</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 ci |    <a href="#nt.cisemantics">_cisemantics</a>
                     </code>
                  </td>
               </tr>
            </tbody>
            <tbody>
               <tr valign="baseline">
                  <td>
                     <a id="pbvar">

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

                     </a>[99]   </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>
         </table>

         <h5>
            <a id="d0e34545">

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

                     </a>[100]   </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>[101]   </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="plogbase">

                     </a>[102]   </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>[103]   </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>[104]   </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 <code>
math</code> element. Allow <code>
declare</code> only at the head of a <code>
math</code> element.</p>

         <h5>
            <a id="d0e34667">

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

                     </a>[105]   </td>
                  <td>
                     <code>
math</code>
                  </td>
                  <td>   ::=   </td>
                  <td>
                     <code>
 
                        <a href="#nt.sg">_sg</a>(math) declare* <a href="#nt.mmlarg">_mmlarg</a>* <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 (Second 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>
