<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<include href="mathml3-strict-content.rng">
<define name="cn.content">
<zeroOrMore>
<choice>
<text/>
<ref name="mglyph"/>
<ref name="sep"/>
<ref name="PresentationExpression"/>
</choice>
</zeroOrMore>
</define>
<define name="cn.attributes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<attribute name="type"/>
</optional>
<optional>
<ref name="base"/>
</optional>
</define>
<define name="ci.attributes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<ref name="ci.type"/>
</optional>
</define>
<define name="ci.type">
<attribute name="type"/>
</define>
<define name="ci.content">
<zeroOrMore>
<choice>
<text/>
<ref name="mglyph"/>
<ref name="PresentationExpression"/>
</choice>
</zeroOrMore>
</define>
<define name="csymbol.attributes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<attribute name="type"/>
</optional>
<optional>
<ref name="cd"/>
</optional>
</define>
<define name="csymbol.content">
<zeroOrMore>
<choice>
<text/>
<ref name="mglyph"/>
<ref name="PresentationExpression"/>
</choice>
</zeroOrMore>
</define>
<define name="bvar">
<element name="bvar">
<interleave>
<choice>
<ref name="ci"/>
<ref name="semantics-ci"/>
</choice>
<optional>
<ref name="degree"/>
</optional>
</interleave>
</element>
</define>
<define name="cbytes.attributes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
</define>
<define name="cs.attributes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
</define>
<define name="apply.content">
<choice>
<oneOrMore>
<ref name="ContExp"/>
</oneOrMore>
<group>
<ref name="ContExp"/>
<ref name="BvarQ"/>
<zeroOrMore>
<ref name="Qualifier"/>
</zeroOrMore>
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</group>
</choice>
</define>
<define name="bind.content">
<ref name="apply.content"/>
</define>
</include>
<define name="base">
<attribute name="base"/>
</define>
<define name="sep">
<element name="sep">
<empty/>
</element>
</define>
<define name="PresentationExpression" combine="choice">
<notAllowed/>
</define>
<define name="DomainQ">
<zeroOrMore>
<choice>
<ref name="domainofapplication"/>
<ref name="condition"/>
<ref name="interval"/>
<group>
<ref name="lowlimit"/>
<optional>
<ref name="uplimit"/>
</optional>
</group>
</choice>
</zeroOrMore>
</define>
<define name="domainofapplication">
<element name="domainofapplication">
<ref name="ContExp"/>
</element>
</define>
<define name="condition">
<element name="condition">
<ref name="ContExp"/>
</element>
</define>
<define name="uplimit">
<element name="uplimit">
<ref name="ContExp"/>
</element>
</define>
<define name="lowlimit">
<element name="lowlimit">
<ref name="ContExp"/>
</element>
</define>
<define name="Qualifier">
<choice>
<ref name="DomainQ"/>
<ref name="degree"/>
<ref name="momentabout"/>
<ref name="logbase"/>
</choice>
</define>
<define name="degree">
<element name="degree">
<ref name="ContExp"/>
</element>
</define>
<define name="momentabout">
<element name="momentabout">
<ref name="ContExp"/>
</element>
</define>
<define name="logbase">
<element name="logbase">
<ref name="ContExp"/>
</element>
</define>
<define name="type">
<attribute name="type"/>
</define>
<define name="order">
<attribute name="order">
<choice>
<value>numeric</value>
<value>lexicographic</value>
</choice>
</attribute>
</define>
<define name="closure">
<attribute name="closure"/>
</define>
<define name="ContExp" combine="choice">
<ref name="piecewise"/>
</define>
<define name="piecewise">
<element name="piecewise">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<interleave>
<zeroOrMore>
<ref name="piece"/>
</zeroOrMore>
<optional>
<ref name="otherwise"/>
</optional>
</interleave>
</element>
</define>
<define name="piece">
<element name="piece">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<ref name="ContExp"/>
<ref name="ContExp"/>
</element>
</define>
<define name="otherwise">
<element name="otherwise">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<ref name="ContExp"/>
</element>
</define>
<define name="DeprecatedContExp">
<choice>
<ref name="reln"/>
<ref name="fn"/>
<ref name="declare"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="DeprecatedContExp"/>
</define>
<define name="reln">
<element name="reln">
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</element>
</define>
<define name="fn">
<element name="fn">
<ref name="ContExp"/>
</element>
</define>
<define name="declare">
<element name="declare">
<optional>
<attribute name="type">
<data type="string"/>
</attribute>
</optional>
<optional>
<attribute name="scope">
<data type="string"/>
</attribute>
</optional>
<optional>
<attribute name="nargs">
<data type="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="occurrence">
<choice>
<value>prefix</value>
<value>infix</value>
<value>function-model</value>
</choice>
</attribute>
</optional>
<ref name="DefEncAtt"/>
<oneOrMore>
<ref name="ContExp"/>
</oneOrMore>
</element>
</define>
<define name="interval.class">
<ref name="interval"/>
</define>
<define name="ContExp" combine="choice">
<ref name="interval.class"/>
</define>
<define name="interval">
<element name="interval">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<ref name="closure"/>
</optional>
<ref name="ContExp"/>
<ref name="ContExp"/>
</element>
</define>
<define name="unary-functional.class">
<choice>
<ref name="inverse"/>
<ref name="ident"/>
<ref name="domain"/>
<ref name="codomain"/>
<ref name="image"/>
<ref name="ln"/>
<ref name="log"/>
<ref name="moment"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-functional.class"/>
</define>
<define name="inverse">
<element name="inverse">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="ident">
<element name="ident">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="domain">
<element name="domain">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="codomain">
<element name="codomain">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="image">
<element name="image">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="ln">
<element name="ln">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="log">
<element name="log">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="moment">
<element name="moment">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="lambda.class">
<ref name="lambda"/>
</define>
<define name="ContExp" combine="choice">
<ref name="lambda.class"/>
</define>
<define name="lambda">
<element name="lambda">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<ref name="BvarQ"/>
<ref name="DomainQ"/>
<ref name="ContExp"/>
</element>
</define>
<define name="nary-functional.class">
<ref name="compose"/>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-functional.class"/>
</define>
<define name="compose">
<element name="compose">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="binary-arith.class">
<choice>
<ref name="quotient"/>
<ref name="divide"/>
<ref name="minus"/>
<ref name="power"/>
<ref name="rem"/>
<ref name="root"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="binary-arith.class"/>
</define>
<define name="quotient">
<element name="quotient">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="divide">
<element name="divide">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="minus">
<element name="minus">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="power">
<element name="power">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="rem">
<element name="rem">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="root">
<element name="root">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="unary-arith.class">
<choice>
<ref name="factorial"/>
<ref name="minus"/>
<ref name="root"/>
<ref name="abs"/>
<ref name="conjugate"/>
<ref name="arg"/>
<ref name="real"/>
<ref name="imaginary"/>
<ref name="floor"/>
<ref name="ceiling"/>
<ref name="exp"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-arith.class"/>
</define>
<define name="factorial">
<element name="factorial">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="abs">
<element name="abs">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="conjugate">
<element name="conjugate">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arg">
<element name="arg">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="real">
<element name="real">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="imaginary">
<element name="imaginary">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="floor">
<element name="floor">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="ceiling">
<element name="ceiling">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="exp">
<element name="exp">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-minmax.class">
<choice>
<ref name="max"/>
<ref name="min"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-minmax.class"/>
</define>
<define name="max">
<element name="max">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="min">
<element name="min">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-arith.class">
<choice>
<ref name="plus"/>
<ref name="times"/>
<ref name="gcd"/>
<ref name="lcm"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-arith.class"/>
</define>
<define name="plus">
<element name="plus">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="times">
<element name="times">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="gcd">
<element name="gcd">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="lcm">
<element name="lcm">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-logical.class">
<choice>
<ref name="and"/>
<ref name="or"/>
<ref name="xor"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-logical.class"/>
</define>
<define name="and">
<element name="and">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="or">
<element name="or">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="xor">
<element name="xor">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="unary-logical.class">
<ref name="not"/>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-logical.class"/>
</define>
<define name="not">
<element name="not">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="binary-logical.class">
<choice>
<ref name="implies"/>
<ref name="equivalent"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="binary-logical.class"/>
</define>
<define name="implies">
<element name="implies">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="equivalent">
<element name="equivalent">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="quantifier.class">
<choice>
<ref name="forall"/>
<ref name="exists"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="quantifier.class"/>
</define>
<define name="forall">
<element name="forall">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="exists">
<element name="exists">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-reln.class">
<choice>
<ref name="eq"/>
<ref name="gt"/>
<ref name="lt"/>
<ref name="geq"/>
<ref name="leq"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-reln.class"/>
</define>
<define name="eq">
<element name="eq">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="gt">
<element name="gt">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="lt">
<element name="lt">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="geq">
<element name="geq">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="leq">
<element name="leq">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="binary-reln.class">
<choice>
<ref name="neq"/>
<ref name="approx"/>
<ref name="factorof"/>
<ref name="tendsto"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="binary-reln.class"/>
</define>
<define name="neq">
<element name="neq">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="approx">
<element name="approx">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="factorof">
<element name="factorof">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="tendsto">
<element name="tendsto">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<ref name="type"/>
</optional>
<empty/>
</element>
</define>
<define name="int.class">
<ref name="int"/>
</define>
<define name="ContExp" combine="choice">
<ref name="int.class"/>
</define>
<define name="int">
<element name="int">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="Differential-Operator.class">
<ref name="diff"/>
</define>
<define name="ContExp" combine="choice">
<ref name="Differential-Operator.class"/>
</define>
<define name="diff">
<element name="diff">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="partialdiff.class">
<ref name="partialdiff"/>
</define>
<define name="ContExp" combine="choice">
<ref name="partialdiff.class"/>
</define>
<define name="partialdiff">
<element name="partialdiff">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="unary-veccalc.class">
<choice>
<ref name="divergence"/>
<ref name="grad"/>
<ref name="curl"/>
<ref name="laplacian"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-veccalc.class"/>
</define>
<define name="divergence">
<element name="divergence">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="grad">
<element name="grad">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="curl">
<element name="curl">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="laplacian">
<element name="laplacian">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-setlist-constructor.class">
<choice>
<ref name="set"/>
<ref name="mathml-list"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-setlist-constructor.class"/>
</define>
<define name="set">
<element name="set">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<ref name="type"/>
</optional>
<zeroOrMore>
<ref name="BvarQ"/>
</zeroOrMore>
<zeroOrMore>
<ref name="DomainQ"/>
</zeroOrMore>
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</element>
</define>
<define name="mathml-list">
<element name="list">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<optional>
<ref name="order"/>
</optional>
<zeroOrMore>
<ref name="BvarQ"/>
</zeroOrMore>
<zeroOrMore>
<ref name="DomainQ"/>
</zeroOrMore>
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</element>
</define>
<define name="nary-set.class">
<choice>
<ref name="union"/>
<ref name="intersect"/>
<ref name="cartesianproduct"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-set.class"/>
</define>
<define name="union">
<element name="union">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="intersect">
<element name="intersect">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="cartesianproduct">
<element name="cartesianproduct">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="binary-set.class">
<choice>
<ref name="in"/>
<ref name="notin"/>
<ref name="notsubset"/>
<ref name="notprsubset"/>
<ref name="setdiff"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="binary-set.class"/>
</define>
<define name="in">
<element name="in">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="notin">
<element name="notin">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="notsubset">
<element name="notsubset">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="notprsubset">
<element name="notprsubset">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="setdiff">
<element name="setdiff">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-set-reln.class">
<choice>
<ref name="subset"/>
<ref name="prsubset"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-set-reln.class"/>
</define>
<define name="subset">
<element name="subset">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="prsubset">
<element name="prsubset">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="unary-set.class">
<ref name="card"/>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-set.class"/>
</define>
<define name="card">
<element name="card">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="sum.class">
<ref name="sum"/>
</define>
<define name="ContExp" combine="choice">
<ref name="sum.class"/>
</define>
<define name="sum">
<element name="sum">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="product.class">
<ref name="product"/>
</define>
<define name="ContExp" combine="choice">
<ref name="product.class"/>
</define>
<define name="product">
<element name="product">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="limit.class">
<ref name="limit"/>
</define>
<define name="ContExp" combine="choice">
<ref name="limit.class"/>
</define>
<define name="limit">
<element name="limit">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="unary-elementary.class">
<choice>
<ref name="sin"/>
<ref name="cos"/>
<ref name="tan"/>
<ref name="sec"/>
<ref name="csc"/>
<ref name="cot"/>
<ref name="sinh"/>
<ref name="cosh"/>
<ref name="tanh"/>
<ref name="sech"/>
<ref name="csch"/>
<ref name="coth"/>
<ref name="arcsin"/>
<ref name="arccos"/>
<ref name="arctan"/>
<ref name="arccosh"/>
<ref name="arccot"/>
<ref name="arccoth"/>
<ref name="arccsc"/>
<ref name="arccsch"/>
<ref name="arcsec"/>
<ref name="arcsech"/>
<ref name="arcsinh"/>
<ref name="arctanh"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-elementary.class"/>
</define>
<define name="sin">
<element name="sin">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="cos">
<element name="cos">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="tan">
<element name="tan">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="sec">
<element name="sec">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="csc">
<element name="csc">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="cot">
<element name="cot">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="sinh">
<element name="sinh">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="cosh">
<element name="cosh">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="tanh">
<element name="tanh">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="sech">
<element name="sech">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="csch">
<element name="csch">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="coth">
<element name="coth">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arcsin">
<element name="arcsin">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arccos">
<element name="arccos">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arctan">
<element name="arctan">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arccosh">
<element name="arccosh">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arccot">
<element name="arccot">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arccoth">
<element name="arccoth">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arccsc">
<element name="arccsc">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arccsch">
<element name="arccsch">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arcsec">
<element name="arcsec">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arcsech">
<element name="arcsech">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arcsinh">
<element name="arcsinh">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="arctanh">
<element name="arctanh">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-stats.class">
<choice>
<ref name="mean"/>
<ref name="sdev"/>
<ref name="variance"/>
<ref name="median"/>
<ref name="mode"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-stats.class"/>
</define>
<define name="mean">
<element name="mean">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="sdev">
<element name="sdev">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="variance">
<element name="variance">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="median">
<element name="median">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="mode">
<element name="mode">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-constructor.class">
<choice>
<ref name="vector"/>
<ref name="matrix"/>
<ref name="matrixrow"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-constructor.class"/>
</define>
<define name="vector">
<element name="vector">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<ref name="BvarQ"/>
<ref name="DomainQ"/>
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</element>
</define>
<define name="matrix">
<element name="matrix">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<ref name="BvarQ"/>
<ref name="DomainQ"/>
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</element>
</define>
<define name="matrixrow">
<element name="matrixrow">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<ref name="BvarQ"/>
<ref name="DomainQ"/>
<zeroOrMore>
<ref name="ContExp"/>
</zeroOrMore>
</element>
</define>
<define name="unary-linalg.class">
<choice>
<ref name="determinant"/>
<ref name="transpose"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="unary-linalg.class"/>
</define>
<define name="determinant">
<element name="determinant">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="transpose">
<element name="transpose">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="nary-linalg.class">
<ref name="selector"/>
</define>
<define name="ContExp" combine="choice">
<ref name="nary-linalg.class"/>
</define>
<define name="selector">
<element name="selector">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="binary-linalg.class">
<choice>
<ref name="vectorproduct"/>
<ref name="scalarproduct"/>
<ref name="outerproduct"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="binary-linalg.class"/>
</define>
<define name="vectorproduct">
<element name="vectorproduct">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="scalarproduct">
<element name="scalarproduct">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="outerproduct">
<element name="outerproduct">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="constant-set.class">
<choice>
<ref name="integers"/>
<ref name="reals"/>
<ref name="rationals"/>
<ref name="naturalnumbers"/>
<ref name="complexes"/>
<ref name="primes"/>
<ref name="emptyset"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="constant-set.class"/>
</define>
<define name="integers">
<element name="integers">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="reals">
<element name="reals">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="rationals">
<element name="rationals">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="naturalnumbers">
<element name="naturalnumbers">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="complexes">
<element name="complexes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="primes">
<element name="primes">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="emptyset">
<element name="emptyset">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="constant-arith.class">
<choice>
<ref name="exponentiale"/>
<ref name="imaginaryi"/>
<ref name="notanumber"/>
<ref name="true"/>
<ref name="false"/>
<ref name="pi"/>
<ref name="eulergamma"/>
<ref name="infinity"/>
</choice>
</define>
<define name="ContExp" combine="choice">
<ref name="constant-arith.class"/>
</define>
<define name="exponentiale">
<element name="exponentiale">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="imaginaryi">
<element name="imaginaryi">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="notanumber">
<element name="notanumber">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="true">
<element name="true">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="false">
<element name="false">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="pi">
<element name="pi">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="eulergamma">
<element name="eulergamma">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
<define name="infinity">
<element name="infinity">
<ref name="CommonAtt"/>
<ref name="DefEncAtt"/>
<empty/>
</element>
</define>
</grammar>