home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
XML Bible (2nd Edition)
/
XML_Bible_Second_Edition_Hungry_Minds_2001.iso
/
mac
/
specs
/
XML-MathML-20010221
/
xml
/
content-element-def.xml
< prev
next >
Wrap
Extensible Markup Language
|
2001-01-30
|
201KB
|
5,869 lines
<?xml version="1.0" encoding="UTF-8"?>
<div1 id="cedef" role="appendixc">
<head>Content Element Definitions</head>
<!-- $Id: content-element-def.xml,v 1.40 2001/01/30 12:25:51 davidc Exp $ -->
<div2 id="cedef_about">
<head>About Content Markup Elements</head>
<p>The primary role of MathML content elements is to provide a mechanism
for recording that a particular notational structure has a
particular mathematical meaning. To this end, every content element must
have a mathematical definition associated with it in some form. The purpose
of this appendix is to provide <emph>default</emph> definitions. (An index
to the definitions is provided later in this document.) Authors may
adapt the notation to their own particular needs by using mechanisms
provided to override these default definitions for selected content
elements.</p>
<p>The mathematical definitions below are not restricted to any one format.
There are several reasons for allowing this, nearly all derived
from the fact that if it is extremely important to allow authors to make
use of existing definitions from the mathematical literature.
<olist>
<item>
<p>There is no suitable notation in common use. For example,
the mathematical libraries of even the most extensive mathematical
computation systems in use today capture only a small fraction of the
mathematical literature and furthermore much of mathematics
is not computational.</p>
</item>
<item>
<p>In most cases, the translation of a mathematical definition into a
new notation is an inappropriate use of an author's energy and
time.</p>
</item>
<item>
<p>The task of designing a new machine readable language suitable for
recording semantic descriptions is one that goes substantially
beyond the scope of this particular recommendation. It would also overlap
substantially with the efforts of such groups as the OpenMath Consortium (see
also the North American OpenMath Initiative, and the European OpenMath
Consortium).
</p>
</item>
</olist>
</p>
<p>The key issues for both archival and computational purposes are that
there be a definition and that the author have a mechanism to specify which
definition is intended for a given instance of a notational construct.
This requirement is important whether or not there is
an implementation of a particular concept or object in a mathematical
computation system. The definition may be as vague as claiming that, say,
<mi>F</mi> is an unknown but differentiable function from the real
numbers to the real numbers, or as complicated as requiring that <mi>F</mi>
be an elaborate function or operation as defined in a specific
research paper. The important thing is that the reader always
have a way of determining how the notation is being used.</p>
<div3>
<head>The Default Definitions</head>
<p>An author's decision to use content elements is a decision to used
defined objects. To make this easier, default
definitions are provided. In this way, an author need only provide
explicit definitions where the usage differs from the default.
Where possible the default definitions have naturally been chosen to reflect
common usage.
</p>
<p>Definitions are overridden in a particular instance by making use of the
<kw role="attrib">definitionURL</kw> attribute. The value of this attribute
is a URI (notwithstanding its old-style name) and beyond that its format
is unspecified. It may even be the case that the <kw role="attrib">definitionURL</kw>'s
value is just a name invented by the author. In that case it serves to warn the
reader (and computational systems) that the author is using a private local
definition. It may be the URL of a mathematical paper, or a reference
to a traditional source in
which the construct is defined. If the author's mathematical operator
matches exactly an operator in a particular computational system, an
appropriate definition might use a MathML <kw role="element">semantics</kw>
element to establish a correspondence between two encodings.
Whatever format is chosen, the only requirement is that
some sort of definition be indicated.</p>
<p>This rest of this appendix provides detailed descriptions of the default
semantics associated with each of the MathML content elements. Since this
is exactly the role intended for the encodings under development by the
OpenMath Consortium, and one of our goals is to foster
cooperation in such standardization efforts we have presented the default
definitions in a format modeled on OpenMath's <emph>content
dictionaries</emph>. While the actual details differ somewhat from the
OpenMath specification, the underlying principles are the same. </p>
<p>Several of the definitions
provided here refer to one or more of the standard mathematical references
Abramowitz and Stegun <bibref ref="Abramowitz1997"/> and
Standard Mathematical Tables and Formulae <bibref ref="Zwillinger1988"/>.
</p>
<!--
Abramowitz, Milton, Irene A. Stegun (editors), Handbook of
Mathematical Fuctions: With Formulas, Graphs, and Mathmetical
Tables, Dover Publications Inc., December 1977, ISBN: 0-4866-1272-4
Daniel Zwillinger (editor), Standard Mathematical Tables and
Formulae (30th Edition), CRC Press LLC, January 1996, ISBN: 0-8493-2479-3
-->
</div3>
<div3>
<head>The Structure of an MMLdefinition.</head>
<p>In the XML source for this appendix each MathML element is described using
an XML vocabulary designed for the purpose. However, though well adapted
to machine processing the XML form of the definitions is difficult to
read for humans. Therefore the text below is composed in a way automatically
derived by XSL transformations (and typesetting in the case of the PDF versions
of the MathML specification) from the XML source, but formatted so that it is
much easier to read and comprehend. The conventions employed will be explained
just below in the course of going through the elements of the XML markup in
the XML source. The first example definition, but only that one, will be
provided in both the more legible form and in raw XML, so the difference
can be appreciated.
</p>
<p>The top element is <kw role="element">MMLdefinition</kw>.
The sub-elements identify the various parts of the description and include:
<glist>
<gitem>
<label>name</label>
<def>
<p>
<kw>PCDATA</kw> providing the name of the MathML element.</p>
</def>
</gitem>
<gitem>
<label>description</label>
<def>
<p>A CDATA description of the object that an element represents.
This will often reference more traditional texts
or papers or existing papers on the Web.</p>
</def>
</gitem>
<gitem>
<label>classification</label>
<def>
<p>Each MathML element must be classified according to its mathematical
role.
<!-- begin of nested glist -->
<glist>
<gitem>
<label>punctuation</label>
<def>
<p>Some elements exist simply as an aid to parsing. For example the
<kw role="element">sep</kw> element is used to separate the <kw>CDATA</kw>
defining a rational number into two parts in a manner that is easily parsed
by an XML application. These objects are referred to as
<emph>punctuation</emph>.</p>
</def>
</gitem>
<gitem>
<label>descriptor</label>
<def>
<p>Some elements exist simply to modify the properties of an existing
element or mathematical object. For example the <kw role="element">declare</kw>
construct is used to reset the default
attribute values, or to associate a name with a specific instance of an
object. These kinds of elements are referred to as <emph>descriptors</emph>
and the type of the resulting object is the same as that of
element being modified, but with the new attribute values.</p>
</def>
</gitem>
<gitem>
<label>function (operator)</label>
<def>
<p>The traditional mathematical functions and operators are
represented in MathML by empty XML elements such as
<kw role="element">plus</kw> and <kw role="element">sin</kw>. These
<emph>function</emph> definitions are parameterized by their XML attribute
values (for example, they may be of type vector) and are either used as is,
for example when discussing the properties of a particular function or
operator, or they are <emph>applied</emph> to arguments using
<kw role="element">apply</kw>. The latter case is referred to as function
application.</p>
<p>Functions are often classified according to how they are used. For example
the <kw role="element">plus</kw> element is an <emph>n-ary</emph> operator.
This additional information is captured by the signature.
The <emph>signature</emph> of a function (see below) describes how it is to
be used a mathematical function inside an <kw role="element">apply</kw> element.
Each combination of types of function arguments used inside an <kw role="element">apply</kw>
gives rise to an <kw role="element">apply</kw> element of a given type.</p>
</def>
</gitem>
<gitem>
<label>constant</label>
<def>
<p>Mathematical constants are generally represented by empty elements and are
distinguished from functions by the fact that they are not used as the first
argument of an apply. Their signature is simply the type of the object
they represent.
</p>
</def>
</gitem>
<gitem>
<label>constructor</label>
<def>
<p>The remaining objects that <quote>contain</quote> sub-elements are
all object <emph>constructors</emph> of some sort or another. They combine
the sub-elements into a compound mathematical object such as a constant,
set, list, or a function application. For example, the <kw role="element">lambda</kw>
element <emph>constructs</emph> a function
definition from a list of variables and an expression. while the <kw role="element">apply</kw>
element constructs a <emph>function
application.</emph> By <emph>function application</emph> we mean the result
of applying the first element of the apply (the function) to the zero or
more remaining elements (the arguments). A <emph>function
application</emph> represents an object in the range of the function.</p>
<p>For each given combination of type and order of XML children, the
signature of a constructor indicates the type (and sometimes subtype) of
the resulting object.</p>
</def>
</gitem>
</glist>
<!-- end of nested glist -->
</p>
</def>
</gitem>
<gitem>
<label>MMLattribute</label>
<def>
<p>Some of the XML attributes of a MathML content element have a
direct impact on the mathematical semantics of the object. For example
the <kw role="attrib">type</kw> attribute of the <kw role="element">cn</kw>
element is used to determine what type of constant (integer, real, etc.)
is being constructed. Only those attributes that affect the mathematical
properties of an object are listed here and typically these also appear
explicitly in the signature.</p>
</def>
</gitem>
<gitem>
<label>signature</label>
<def>
<p>The signature is a systematic representation that associates the
types of different possible combinations of attributes and function
arguments to type of mathematical object that is constructed. The possible
combinations of parameter and argument types (the left-hand side) each
result in an object of some type (the right-hand side). In effect, it
describes how to resolve operator overloading.</p>
<p>For constructors, the left-hand side of the signature describes the
types of the child elements and the right-hand side describes the type of
object that is constructed. For functions, the left-hand side of the
signature indicates the types of the parameters and arguments that would be
expected when it is applied, or used to construct a relation, and the
right-hand side represents the mathematical type of the object constructed
by the <kw role="element">apply</kw>. Modifiers modify the attributes of an
existing object. For example, a <emph>symbol</emph> might become a
<emph>symbol of type vector</emph>.</p>
<p>The signature must be able to record specific attribute values and
argument types on the left, and parameterized types on the right.. The
syntax used for signatures is of the general form:
<eg><![CDATA[
[<attribute name>=<attribute-value>]( <list of argument types> )
--> <mathematical result type>(<mathematical subtype>)
]]></eg>
</p>
<p>The MMLattributes, if any, appear in the form
<code><name>=<value></code>. They are separated notationally
from the rest of the arguments by square brackets. The possible values are
usually taken from an enumerated list, and the signature is usually
affected by selection of a specific value.</p>
<p>For the actual function arguments and named parameters on the left,
the focus is on the mathematical types involved. The function argument
types are presented in a syntax similar to that used for a DTD, with the
one main exception. The types of the named parameters appear in the
signature as
<code><![CDATA[<elementname>=<type>]]></code>
in a manner analogous for that used for attribute values. For example,
if the argument is named (e.g. <kw role="element">bvar</kw>) then it is
represented in the signature by an equation as in:
<eg><![CDATA[
[<attribute name>=<attributevalue>]( bvar=symbol,<argument list> ) -->
<mathematical result type>(<mathematical subtype>)
]]></eg>
</p>
<p>There is no formal type system in MathML. The type values that are used
in the signatures are common mathematical types such as integer, rational,
real, complex (such as found in the description of <kw role="element">cn</kw>),
or a name such as string or the name of a MathML constructor.
Various collections of types such as <emph>anything</emph>, <emph>matrixtype</emph>
are used from time to time. The type name <emph>mmlpresentation</emph>
is used to represent any valid MathML presentation object and the name
<emph>MathMLtype</emph> is used to describe the collection of all MathML types.
The type <emph>algebraic</emph> is used for expressions constructed
from one or more symbols through arithmetic operations and <emph>interval-type</emph>
refers to the valid types of intervals as defined in chapter 4.
The collection of types is not closed. Users writing their own definitions
of new constructs may introduce new types.
</p>
<p>Depending on the types involved, more than one signature may apply.
For example, many arithmetic operations involving integers map to integers,
but since integers are real numbers, the signature for real numbers also
is valid. Generally, the signature providing the most information is
most appropriate.</p>
<p>No mathematical evaluation ever takes place in MathML. Every MathML
content element either refers to a defined object such as a mathematical
function or it combines such objects in some way to build a new object.
For purposes of the signature, the constructed object represents an object
of a certain type parameterized type. For example the result of applying
<kw role="element">plus</kw> to arguments is an expression that represents
a sum. The type of the resulting expression depends on the types of the
operands, and the values of the MathML attributes.</p>
</def>
</gitem>
<gitem>
<label>example</label>
<def>
<p>Examples of the use of this object in MathML
are included in these elements.</p>
</def>
</gitem>
<gitem>
<label>property</label>
<def>
<p>This element describes the mathematical properties of such
objects. For simple associations of values with specific instances of
an object, the first child is an instance of the object being
defined. The second is a <kw role="element">value</kw> or
<kw role="element">approx</kw> (approximation) element that contains a
MathML description of this particular value. More elaborate conditions
on the object are expressed using the MathML syntax.</p>
</def>
</gitem>
<gitem>
<label>comment</label>
<def>
<p>These elements contain only PCDATA and
can occur as a child of the MMLdefinition at any point.</p>
</def>
</gitem>
</glist>
</p>
</div3>
</div2>
<div2 id="cedef_def">
<head>Definitions of MathML Content Elements</head>
<div3 id="cedef_Token_Elements">
<head>Token Elements</head>
<MMLdefinition id="cedef_cn">
<name>cn</name>
<description>
<p>The cn element is used to encode numerical constants.
The mathematical type of number is given as an attribute.
The default type is "real".
Numbers such as floating-point, rational and complex, require two
parts for a complete specification. The parts of such
a number are separated by an empty sep element.</p>
<p>
Many of the commonly occurring numeric constants such as
<kw role="entity">pi</kw> have their own elements.
</p>
</description>
<classification> constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> integer | rational | complex-cartesian | complex-polar | real | floating-point | MathMLtype </attvalue>
<attdefault> real </attdefault>
</MMLattribute>
<MMLattribute>
<attname> base </attname>
<attvalue> integer between 2 and 36 </attvalue>
<attdefault> 10 </attdefault>
</MMLattribute>
<signature> [type=integer](numstring) -> constant(integer) </signature>
<signature> [base=base-value](numstring) -> constant(integer) </signature>
<signature> [type=rational](numstring,numstring) -> constant(rational) </signature>
<signature> [type=complex-cartesian](numstring,numstring) -> constant(complex) </signature>
<signature> [type=rational](numstring,numstring) -> constant(rational) </signature>
<signature> [definitionURL=definition](numstring*) -> constant(user-defined) </signature>
<property><![CDATA[<apply><eq/><cn base="16"> A </cn><cn> 10 </cn></apply>]]></property>
<property><![CDATA[<apply><eq/><cn base="16"> B </cn><cn> 11 </cn></apply>]]></property>
<property><![CDATA[<apply><eq/><cn base="16"> C </cn><cn> 12 </cn></apply>]]></property>
<property><![CDATA[<apply><eq/><cn base="16"> D </cn><cn> 13 </cn></apply>]]></property>
<property><![CDATA[<apply><eq/><cn base="16"> E </cn><cn> 14 </cn></apply>]]></property>
<property><![CDATA[<apply><eq/><cn base="16"> F </cn><cn> 15 </cn></apply>]]></property>
<example><![CDATA[<cn> 245 </cn>]]></example>
<example><![CDATA[<cn type="integer"> 245 </cn>]]></example>
<example><![CDATA[<cn type="integer" base="16"> A </cn>]]></example>
<example><![CDATA[<cn type="rational"> 245 <sep/> 351 </cn>]]></example>
<example><![CDATA[<cn type="complex-cartesian"> 1 <sep/> 2 </cn>]]></example>
<example><![CDATA[<cn> 245 </cn>]]></example>
<example><![CDATA[<apply><eq/>
<cn type="e-notation"> 2 <sep/> 5 </cn>
<apply><times/><cn>2</cn><apply><power/><cn>10</cn><cn>5</cn></apply></apply>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_ci">
<name>ci</name>
<description>
<p>This element constructs an identifier (symbolic name). The type attribute is
used to indicate the type of object being specified. By default, the type is real. </p>
</description>
<classification>constructor </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> constant | matrix | set | vector | list | MathMLtype </attvalue>
<attdefault> real </attdefault>
</MMLattribute>
<signature> ({string|mmlpresentation}) -> symbol </signature>
<signature> [type=typename]({string|mmlpresentation}) -> symbol(typename) </signature>
<example><![CDATA[<ci> xyz </ci>]]></example>
<example><![CDATA[<ci> type="vector"> v </ci>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_csymbol">
<name>csymbol</name>
<description>
<p>The csymbol element allows a writer to introduce new objects
into MathML. The objects are linked to external definitions by
means of the definitionURL attribute and encoding attribute.
The csymbol element becomes the "name" of the new object.
The new objects are typically either constants or functions.
</p>
</description>
<classification> constant function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> [definitionURL=definition]({string|mmlpresentation}) -> defined_symbol </signature>
<signature> [type=typename]({string|mmlpresentation}) -> defined_symbol(typename) </signature>
<example><![CDATA[<csymbol definitionURL=".../mydefinitionofPi">π</csymbol>]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Basic_Content_Elements">
<head>Basic Content Elements</head>
<MMLdefinition id="cedef_apply">
<name>apply</name>
<description>
<p>This is the MathML constructor for function application.
The first argument is applied to the remaining arguments.
It may be the case that some of the child elements are
named elements. (See the signature.)</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (function,anything*) -> apply </signature>
<example><![CDATA[<apply><plus/>
<ci>x</ci>
<cn>1</cn>
</apply>]]></example>
<example><![CDATA[<apply><sin/>
<ci>x</ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_reln">
<name>reln</name>
<description>
<p>This constructor has been deprecated. All uses of reln
are replaced by apply.</p>
<p>
This is the MathML 1.0 constructor for expressing a relation between
two or more mathematical objects. The first argument indicates
the type of "relation" between the remaining arguments. (See the signature.)
No assumptions are made about the truth value of such a relation.
Typically, the relation is used as a component in the construction
of some logical assertion. Relations may be combined into
sets, etc. just like any other mathematical object.</p>
</description>
<classification>constructor </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (function,anything*) -> reln </signature>
<example>
<description>
<p>
No examples of deprecated constructions are provided.</p>
</description><![CDATA[
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_fn">
<name>fn</name>
<description>
<p>This constructor has been deprecated.
</p>
<p>
This was the MathML 1.0 constructor for building new functions.
Its role was to identify a general MathML content object as
a function in such a way that it could have a definition and
be used in a function context such as in apply and declare.
This is now accomplished through the use of definitionURL
and the fact that declare and apply allow any content element
as their first argument.
</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (anything) -> function </signature>
<signature> [definitionURL=functiondef](anything) ->function</signature>
<example>
<description>
<p>
No examples of deprecated constructions are provided.</p>
</description>
</example>
</MMLdefinition>
<MMLdefinition id="cedef_interval">
<name>interval</name>
<description>
<p>This is the MathML constructor element for building an interval
on the real line. While an interval can be expressed by
combining relations appropriately, they occur here explicitly because
of the frequency of their use.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue> closed | open | open-closed | closed-open </attvalue>
<attdefault> closed </attdefault>
</MMLattribute>
<signature> [type=interval-type](expression,expression) -> interval(interval-type) </signature>
<example><![CDATA[<apply><interval closure="open"/>
<ci>x</ci>
<cn>1</cn>
</apply>]]></example>
<example><![CDATA[<apply><interval closure="open-closed"/>
<cn>0</cn>
<cn>1</cn>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_inverse">
<name>inverse</name>
<description>
<p>This MathML element is applied to a function in order to
construct a new function that is to be interpreted as the
inverse function of the original function. For a particular
function F, inverse(F) composed with F behaves like the
identity map on the domain of F and F composed with inverse(F)
should be an identity function on a suitably restricted
subset of the Range of F.
The MathML definitionURL attribute should be used to resolve
notational ambiguities, or to restrict the inverse to a
particular domain or to make it one-sided. </p>
</description>
<classification>operator</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (function) -> function </signature>
<signature> [definitionURL=URI](function) ->
function(definition) </signature>
<property>
<description>
<p>
ForAll( y such y in domain( f^(-1)) , f( f^(-1)(y)) = y </p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>y</ci></bvar>
<bvar><ci type="function">f</ci></bvar>
<condition>
<apply><in/>
<ci>y</ci>
<apply><csymbol definitionURL="domain"><mtext>Domain</mtext></csymbol>
<apply><inverse/><ci type="function">f</ci></apply>
</apply>
</apply>
</condition>
<apply><eq/>
<apply><ci type="function">f</ci>
<apply><apply><inverse/><ci type="function">f</ci></apply>
<ci>y</ci>
</apply>
</apply>
<ci>y</ci>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><inverse/>
<sin/>
</apply>]]></example>
<example><![CDATA[<apply><inverse definitionURL="www.example.com/MathML/Content/arcsin"/>
<sin/>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_sep">
<name>sep</name>
<description>
<p>This is the MathML infix constructor used to sub-divide PCDATA into
separate components. This is used in the description of
a multi-part number such as a rational or a complex number.</p>
</description>
<classification>punctuation </classification>
<example><![CDATA[<cn type="complex-polar">123<sep/>456</cn>]]></example>
<example><![CDATA[<cn>123</cn>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_condition">
<name>condition</name>
<description>
<p>This is the MathML constructor for building conditions.
A condition differs from a relation in how it is used.
A relation is simply an expression, while a condition
is used as a predicate to place conditions on bound
variables. </p>
<p>
You can build compound conditions by applying operators
such as "and" or "or" . </p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (apply) -> predicate </signature>
<!-- this is OK, but not a complete example as condition not usable at top level -->
<example><![CDATA[<condition>
<apply><lt/>
<apply><power/><ci>x</ci><cn>5</cn></apply>
<cn>3</cn>
</apply>
</condition>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_declare">
<name>declare</name>
<description>
<p>This is the MathML constructor for associating default
attribute values and values with mathematical objects.
For example V may be an identifier declared to be a vector
(has the attribute of being a vector),
or V may be a name that stands for a particular vector.
</p>
<p>
The attribute values of the declare statement itself
become the default attribute values of the
first argument of the declare. </p>
<p>
If there is a second argument, the first argument becomes an
alias for the second argument and it also assumes all the properties
of the second argument . For example, a ci identifier v, declared
to be the vector (1,2,3) would appear in the type style of a
vector, and would have a norm which is the norm of (1,2,3)
</p>
</description>
<classification>modifier</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue> MathMLtype </attvalue>
<attdefault>none</attdefault>
</MMLattribute>
<MMLattribute>
<attname>nargs</attname>
<attvalue> number of arguments for an object of operator </attvalue>
<attdefault>*</attdefault>
</MMLattribute>
<MMLattribute>
<attname>occurrence</attname>
<attvalue>infix | prefix</attvalue>
<attdefault>prefix</attdefault>
</MMLattribute>
<signature> [(attributename=attributevalue)*](anything) -> [(attributename=attributevalue)*](anything) </signature>
<signature> [(attributename=attributevalue)*](anything,anything) -> [(attributename=attributevalue)*](anything) </signature>
<signature>(anything,anything) -> (anything)</signature>
<example><![CDATA[<declare>
<ci>y</ci>
<apply><plus/><ci>x</ci><cn>3</cn></apply>
</declare>]]></example>
<example><![CDATA[<declare type="vector"> <ci> V </ci> </declare>]]></example>
<example><![CDATA[<declare type="vector">
<ci> V </ci>
<vector><cn> 1 </cn><cn> 2 </cn><cn> 3 </cn></vector>
</declare>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_lambda">
<name>lambda</name>
<description>
<p>This is the operation of lambda calculus that constructs a
function from an expression and a variable. Lambda is an n-ary
function, where all but the last argument are bound variables
and the last argument is an expression possibly involving those
variables. The lambda function can be viewed as the inverse of function
application.
</p>
<p>
For example, Lambda( x, F ) is written as \lambda x [F] in the lambda
calculus literature. The expression F may contain x but the full lambda
expression is regarded to be free of x.
A computational application receiving a
MathML lambda expression should not evaluate x or test
for x. Such an application may apply the lambda expression as a function
to arguments in which case any result that is computed is computed
through parameter substitutions into F.</p>
<p>
Note that a lambda expression on an arbitrary function applied to a
simple argument is equivalent to that arbitrary function.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(bvar*,anything) -> function </signature>
<property>
<description>
<p>
ForAll( F , lambda(x,F(x)) = F)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>F</ci></bvar>
<apply><eq/>
<lambda>
<bvar><ci>x</ci></bvar>
<apply><ci>F</ci><ci>x</ci></apply>
</lambda>
<ci>F</ci>
</apply>
</apply>
]]></property>
<example><![CDATA[
<lambda>
<bvar><ci>x</ci></bvar>
<apply><sin/><apply><plus/><ci> x </ci><cn> 3 </cn></apply></apply>
</lambda>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_compose">
<name>compose</name>
<description>
<p>This is the MathML constructor for composing functions.
In order for a composition to be meaningful, the range of
the first function should be the domain of the second function,
etc. . However, since no evaluation takes place in MathML,
such a construct can safely be used to make statements such
as that f composed with g is undefined.</p>
<p>
The result is a new function whose domain is the domain of
the first function and whose range is the range of the last
function and whose definition is equivalent to applying
each function to the previous outcome in turn as in:</p>
<p>
(f @ g )( x ) == f( g(x) ).</p>
<p>
This function is often denoted by a small circle infix
operator.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (function*) -> function </signature>
<property>
<description>
<p>
ForAll(x, (f@g)(x) = f(g(x))</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>x</ci></bvar><bvar><ci>f</ci></bvar><bvar><ci>g</ci></bvar>
<apply><eq/>
<apply><apply><compose/><ci>f</ci><ci>g</ci></apply>
<ci>x</ci>
</apply>
<apply><ci>f</ci><apply><ci>g</ci><ci>x</ci></apply></apply>
</apply>
</apply>
]]></property>
<example>
<description>
<p>
The use of fn is deprecated. Use type="function" instead.</p>
</description><![CDATA[
<apply><compose/>
<ci type="function"> f </ci>
<ci type="function"> g </ci>
<sin/>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_ident">
<name>ident</name>
<description>
<p>The ident element represents the identity function.
MathML makes no assumption about the function
space in which the identity function resides.
Proper interpretation of the domain (and hence range)
of the identity function depends on the context in which it is used.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> function </signature>
<property>
<description>
<p>ForAll(x, ident(x) = x )</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><ident/><ci>x</ci></apply>
<ci>x</ci>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><eq/>
<apply><compose/>
<ci type="function"> f </ci>
<apply><inverse/><ci type="function"> f </ci>
</apply>
</apply>
<ident/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_domain">
<name>domain</name>
<description>
<p>The domain element denotes the domain of a given function, which is the
set of values over which it is defined.
</p>
<p>
To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(function) -> set </signature>
<example><![CDATA[<apply><eq/>
<apply><domain/><ci>f</ci></apply>
<reals/>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_codomain">
<name>codomain</name>
<description>
<p>The codomain (range) element denotes the codomain of a given function, which is a set
containing all values taken by the function. The codomain may contain additional points which
are not realized by applying the the function to elements of the domain.</p>
<p>To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(function) -> set </signature>
<property>
<description>
<p>ForAll(y, y =f(x) , member(y,codomain(f)))</p>
</description>
</property>
<example><![CDATA[<apply><eq/>
<apply><codomain/><ci>f</ci></apply>
<rationals/>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_image">
<name>image</name>
<description>
<p>The image element denotes the image of a given function, which is the set of values
taken by the function. Every point in the image is generated by the function applied to some
point of the domain.</p>
<p>To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(function) -> set </signature>
<property>
<description>
<p>ForAll(x, x in codomain(f) , ThereExists(y,f(y)=x))</p>
</description>
</property>
<example><![CDATA[<apply><eq/>
<apply><image/><sin/></apply>
<interval><cn>-1</cn><cn> 1</cn></interval>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_domainofapplication">
<name>domainofapplication</name>
<description>
<p>The domainofapplication element denotes the domain over which a given function
is being applied. It is intended to be a more general alternative to specification
of this domain using such quantifier elements as bvar, lowlimit or condition </p>
<p>To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(function) -> set </signature>
<example><![CDATA[<apply><int/>
<domainofapplication><ci>C</ci></domainofapplication>
<ci>f </ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_piecewise">
<name>piecewise</name>
<description>
<p>The piecewise, piece, and otherwise elements are used to
support 'piecewise' declarations of the form H(x) = 0 if x less than 0, H(x) = 1 otherwise.
The piece and otherwise elements describe evaluation rules. If no rule applies or
if more than one rule applies but they give different answers then the expression is
undefined.</p>
<p>To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes </p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(piece*,otherwise) -> algebraic</signature>
<property>
<description>
<p>ForAll(x, x in domain(f) , the evaluation rules collectively produce at most one
value in codomain(f))</p>
</description>
</property>
<example><![CDATA[<piecewise>
<piece><cn> 0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece>
<otherwise><ci>x</ci></otherwise>
</piecewise>]]></example>
<example>
<description>
<p>The value of the abs function evaluated at x can be written as:</p>
</description><![CDATA[<piecewise>
<piece>
<apply><minus/><ci>x</ci></apply>
<apply><lt/><ci> x</ci><cn> 0</cn></apply>
</piece>
<piece>
<cn>0</cn>
<apply><eq/><ci>x</ci><cn>0</cn></apply>
</piece>
<piece>
<ci>x</ci>
<apply><gt/><ci>x</ci><cn>0</cn></apply>
</piece>
</piecewise>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_piece">
<name>piece</name>
<description>
<p>The piece element is used to construct the conditionally defined values as part of a
piecewise object.</p>
<p>To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes </p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(algebraic,boolean) -> piece</signature>
<example><![CDATA[<piecewise>
<piece><cn>0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece>
<otherwise><ci>x</ci></otherwise>
</piecewise>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_otherwise">
<name>otherwise</name>
<description>
<p>The otherwise element is used to describe the value of a piecewise
construct when none of the conditions of the associated pieces are satisfied.</p>
<p>To override the default semantics for this element, or to associate
a more specific definition, use the definitionURL and encoding attributes </p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> a URI identifying the definition </attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(algebraic) -> algebraic</signature>
<example><![CDATA[<piecewise>
<piece><cn> 0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece>
<otherwise><ci>x</ci></otherwise>
</piecewise>]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Arithmetic_Algebra_and_Logic">
<head>Arithmetic Algebra and Logic</head>
<MMLdefinition id="cedef_quotient">
<name>quotient</name>
<description>
<p>quotient is the binary function used to represent
the operation of integer division. quotient(a,b) denotes q such that
a = b*q+r, with |r| less than |b| and a*r positive. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> (integer, integer) -> integer </signature>
<property>
<description>
<p>forall([a,b], b != 0, a = b*quotient(a,b) + rem(a,b)</p>
</description><![CDATA[<apply><forall/>
<bvar><ci>a</ci></bvar>
<bvar><ci>b</ci></bvar>
<condition><apply><neq/><ci>b</ci><cn>0</cn></apply></condition>
<apply><eq/>
<ci>a</ci>
<apply><plus/>
<apply><times/>
<ci>b</ci>
<apply><quotient/><ci>a</ci><ci>b</ci></apply>
</apply>
<apply><rem/><ci>a</ci><ci>b</ci></apply>
</apply>
</apply>
</apply>]]></property>
<example><![CDATA[<apply><quotient/>
<ci> a </ci>
<ci> b </ci>
</apply>
]]></example>
<example><![CDATA[<apply>
<quotient/>
<cn>5</cn>
<cn>4</cn>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_factorial">
<name>factorial</name>
<description>
<p>This is the unary operator used to construct factorials. Factorials
are defined by n! = n*(n-1)* ... * 1</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> ( algebraic ) -> algebraic </signature>
<signature>(integer)->integer</signature>
<property>
<description>
<p>ForAll(n,n \gt 0, n! = n*(n-1)!)</p>
</description><![CDATA[<apply><forall/>
<bvar><ci>n</ci></bvar>
<condition><apply><gt/><ci>n</ci><cn>0</cn></apply></condition>
<apply><eq/>
<apply><factorial/><ci>n</ci></apply>
<apply><times/>
<ci>n</ci>
<apply><factorial/>
<apply><minus/><ci>n</ci><cn>1</cn></apply>
</apply>
</apply>
</apply>
</apply>
]]></property>
<property>
<description>
<p>0! = 1</p>
</description><![CDATA[<apply></eq>
<apply><factorial/><cn>0</cn></apply>
<cn>1</cn>
</apply>
]]></property>
<example><![CDATA[<apply><factorial/>
<ci>n</ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_divide">
<name>divide</name>
<description>
<p>This is the binary MathML operator that is used indicate
the mathematical operation a "divided by" b.
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue>MathMLType</attvalue>
<attdefault> real </attdefault>
</MMLattribute>
<signature> (complex, complex) -> complex </signature>
<signature> (real, real) -> real </signature>
<signature> (rational, rational) -> rational </signature>
<signature> (integer, integer) -> rational </signature>
<property>
<description>
<p>Division by Zero error</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><divide/><ci> a </ci><ci> 0 </ci>
<notanumber/>
</apply>
</apply>
</apply>
]]></property>
<property>
<description>
<p>ForAll( a , a!= 0, a/a = 1)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<condition><apply><neq/><ci>a</ci><cn>0</cn></apply></condition>
<apply><eq/>
<apply><divide/><ci>a</ci><ci>a</ci></apply>
<cn>1</cn>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><divide/>
<ci> a </ci>
<ci> b </ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_max">
<name>max</name>
<description>
<p>This is the n-ary operator used to
represent the maximum of a set of elements.
The elements may be listed explicitly or they may
be described by a condition, e.g., the maximum
over all x in the set A.</p>
</description>
<classification> function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature> ( ordered_set_element * ) -> ordered_set_element </signature>
<signature> ( bvar,condition,anything ) -> anything </signature>
<property>
<description>
<p>ForAll(x in S, max(y in S,y) \geq x )</p>
</description>
</property>
<example>
<description>
<p>
Maximum of a finite listing of elements</p>
</description><![CDATA[
<apply><max/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
]]></example>
<example>
<description>
<p>
Max(y^3, y in (0,1)) </p>
</description><![CDATA[
<apply>
<max/>
<bvar><ci>y</ci></bvar>
<condition>
<apply><in/><ci>y</ci><interval><cn>0</cn><cn>1</cn></interval></apply>
</condition>
<apply><power/><ci> y</ci><cn>3</cn></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_min">
<name>min</name>
<description>
<p>This is the n-ary operator used to
represent the minimum of a set of elements. The elements
may be listed explicitly or they may be described by a
condition, e.g., the minimum over all x in
the set A.</p>
<p>
The elements must all be comparable if the result is
to be well defined.</p>
</description>
<classification> function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature> ( ordered_set_element * ) -> ordered_set_element </signature>
<signature> ( bvar,condition,anything ) -> ordered_set_element </signature>
<example>
<description>
<p>
Minimum of a finite listing of elements</p>
</description><![CDATA[
<apply><min/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
]]></example>
<example>
<description>
<p>
min(y^2, y in (0,1)) </p>
</description><![CDATA[
<apply>
<min/>
<bvar><ci>y</ci></bvar>
<condition>
<apply><in/><ci>y</ci><interval><cn>0</cn><cn>1</cn></interval></apply>
</condition>
<apply><power/><ci> y</ci><cn>2</cn></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_minus">
<name>minus</name>
<description>
<p>This is the subtraction operator for an additive group.
</p>
<p>
If one argument is provided this operator constructs the additive
inverse of that group element.
If two arguments, say a and b, are provided it
constructs the mathematical expression a - b.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>(real) -> real</signature>
<signature>(real,real) -> real</signature>
<signature>[type=MathMLtype](MathMLtype) -> MathMLtype </signature>
<signature>[type=MathMLtype](MathMLtype,MathMLtype) -> MathMLtype </signature>
<signature>(set,set) -> set</signature>
<signature>(multiset,multiset)->multiset</signature>
<property>
<description>
<p>
ForAll(x,x-x=0)</p>
</description><![CDATA[<apply><forall/>
<bvar><ci> x </ci></bvar>
<apply><eq/>
<apply><minus/><ci> x </ci><ci> x </ci></apply>
<cn>0</cn>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><minus/>
<cn>3</cn>
<cn>5</cn>
</apply>]]></example>
<example><![CDATA[<apply><minus/>
<cn>3</cn>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_plus">
<name>plus</name>
<description>
<p>This is the n-ary addition operator of an algebraic structure.
If no operands are provided, the expression represents
the additive identity.
If one operand, a, is provided the expression
evaluates to "a".
If two or more operands are provided, the expression
represents the (semi) group element corresponding to a left
associative binary pairing of the operands.
The meaning of mixed operand types
not covered by the signatures shown here are
left up to the target system.
</p>
<p>To use different
type coercion rules different from those indicated by the signatures,
use the definitionURL attribute to identify a new definition.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>[type=MathMLtype](anything*) -> MathMLtype </signature>
<signature>(set*)->set</signature>
<signature>(multiset*)->multiset</signature>
<signature>(real*)->real</signature>
<signature>(complex*)->complex</signature>
<signature>(integer*)->integer</signature>
<property>
<description>
<p>an sum of no terms is 0</p>
</description><![CDATA[
<apply><eq/>
<apply><plus/></apply>
<cn>0</cn>
</apply>
]]></property>
<property>
<description>
<p>a sum of one term is equal to itself</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><plus/><ci>a</ci></apply>
<cn>a</cn>
</apply>
</apply>
]]></property>
<property>
<description>
<p>Commutivity</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<bvar><ci>b</ci></bvar>
<condition>
<apply><and/>
<apply><in/><ci>a</ci><reals/></apply>
<apply><in/><ci>b</ci><reals/></apply>
</apply>
</condition>
<apply><eq/>
<apply><plus/><ci>a</ci><ci>b</ci></apply>
<apply><plus/><ci>b</ci><ci>a</ci></apply>
</apply>
</apply>]]></property>
<example><![CDATA[<apply><plus/>
<cn>3</cn>
</apply>]]></example>
<example><![CDATA[<apply><plus/>
<cn>3</cn>
<cn>5</cn>
</apply>]]></example>
<example><![CDATA[<apply><plus/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_power">
<name>power</name>
<description>
<p>This is the binary powering operator that is
used to construct expressions such as a "to the power of" b.
In particular, it is the operation for which a "to the power
of" 2 is equivalent to a * a.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature> (complex, complex) -> complex </signature>
<signature> (real, real) -> complex </signature>
<signature> (rational, integer) -> rational </signature>
<signature> (integer, integer) -> rational </signature>
<signature>[type=MathMLtype](anything,anything) -> MathMLtype </signature>
<property>
<description>
<p>
ForAll(a,a!=0,a^0=1)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<condition><apply><neq/><ci>a</ci><cn>0</cn></apply></condition>
<apply><eq/>
<apply><power/><ci>a</ci><cn>0</cn></apply>
<cn>1</cn>
</apply>
</apply>
]]></property>
<property>
<description>
<p>
ForAll(a,a^1=a)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><power/><ci>a</ci><cn>1</cn></apply>
<ci>a</ci>
</apply>
</apply>
]]></property>
<property>
<description>
<p>
ForAll(a,1^a=1)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><power/><cn>1</cn><ci>a</ci></apply>
<cn>1</cn>
</apply>
</apply>]]></property>
<example><![CDATA[<apply><power/><cn>2</cn><ci>x</ci></apply>]]></example>
<example><![CDATA[<apply><power/><ci> x </ci><cn> 3 </cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_rem">
<name>rem</name>
<description>
<p>This is the binary operator used to
represent the integer remainder a mod b.
For arguments a and b, such that
a = b*q + r with |r| < |b|
it represents the value r.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> (integer, integer) -> integer </signature>
<signature>[type=MathMLtype](MathMLtype,MathMLtype)->MathMLtype</signature>
<property>
<description>
<p>rem(a, 0) is undefined</p>
</description>
</property>
<property>
<description>
<p>ForAll([a,b],b!=0,a = b*quotient(a,b) + rem(a,b)) </p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<bvar><ci>b</ci></bvar>
<condition><apply><neq/><ci>b</ci><cn>0</cn></apply></condition>
<apply><eq/>
<ci>a</ci>
<apply><plus/>
<apply><times/>
<ci>b</ci>
<apply><quotient/><ci>a</ci><ci>b</ci></apply>
</apply>
<apply><rem/>
<ci>a</ci>
<ci>b</ci>
</apply>
</apply>
<apply/>
</apply>
]]></property>
<example><![CDATA[<apply><rem/><ci> a </ci><ci> b </ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_times">
<name>times</name>
<description>
<p> This is the n-ary multiplication operator of a ring.
If no arguments are supplied then this represents the
multiplicative identity. If one argument is supplied, this
represents an expression that would evaluate to
that single argument.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature> (complex*) -> complex </signature>
<signature> (real*) -> real </signature>
<signature> (rational*) -> rational </signature>
<signature> (integer*) -> integer </signature>
<property>
<description>
<p>ForAll([a,b],condition(in({a,b},Commutative)),a*b=b*a)</p>
</description>
</property>
<property>
<description>
<p>ForAll([a,b,c],Associative,a*(b*c)=(a*b)*c), associativity </p>
</description>
</property>
<property>
<description>
<p>
multiplicative identity</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><times/><cn>1</cn><ci>a</ci></apply>
<ci>a</ci>
</apply>
</apply>
]]></property>
<property>
<description>
<p> a*0=0 </p>
</description>
</property>
<property>
<description>
<p>
Commutative property</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<bvar><ci>b</ci></bvar>
<condition>
<apply><and/>
<apply><in/><ci>a</ci><reals/></apply>
<apply><in/><ci>b</ci><reals/></apply>
</apply>
</condition>
<apply><eq/>
<apply><times/><ci>a</ci><ci>b</ci></apply>
<apply><times/><ci>b</ci><ci>a</ci></apply>
</apply>
</apply>]]></property>
<property>
<description>
<p>
a*0=0</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><times/><cn>0</cn><ci>a</ci></apply>
<cn>0</cn>
</apply>
</apply>
]]></property>
<example><![CDATA[
<apply>
<times/>
<ci> a </ci>
<ci> b </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_root">
<name>root</name>
<description>
<p>This is the binary operator used to
construct the nth root of an expression.
The first argument "a" is the expression and the
second object "n" denotes the root, as in
( a ) ^ (1/n)</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> real | complex | principal_branch | MathMLType </attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature> ( anything , anything) -> root </signature>
<property>
<description>
<p>ForAll(bvars(a,n),root(a,n) = a^(1/n))</p>
</description><![CDATA[ ]]></property>
<example>
<description>
<p>
nth root of a</p>
</description><![CDATA[
<apply><root/>
<ci> a </ci>
<ci> n </ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_gcd">
<name>gcd</name>
<description>
<p>This is the n-ary operator used to construct an expression
which represents the greatest common divisor of its arguments.
If no argument is provided, the gcd is 0.
If one argument is provided, the gcd is that argument.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> [type=MathMLtype](MathMLtype*) ->MathMLtype </signature>
<signature>(integer*) -> integer </signature>
<property><![CDATA[
<apply><forall/>
<forall/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><gcd/>
<ci>x</ci>
<cn>1</cn>
</apply>
<cn>1</cn>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><gcd/>
<cn>12</cn>
<cn>17</cn>
</apply>]]></example>
<example><![CDATA[<apply><gcd/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_and">
<name>and</name>
<description>
<p>This is the n-ary logical "and" operator. It is used
to construct the logical expression which were it to be evaluated
would have a value of "true" when all of its operands
have a truth value of "true", and "false" otherwise.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (boolean*) -> boolean </signature>
<property>
<description>
<p> forall(p,(true and p = p )</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p> forall([p,q],(p and q = q and p )) </p>
</description>
</property>
<property>
<description>
<p>x and not(x) = false
</p>
</description>
</property>
<example><![CDATA[<apply><and/>
<ci>p</ci>
<ci>q</ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_or">
<name>or</name>
<description>
<p>The is the n-ary logical "or" operator. The constructed expression
has a truth value of true if at least one of its arguments
is true.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (boolean*) -> boolean </signature>
<signature> [type="boolean"](symbolic*) -> boolean </signature>
<example><![CDATA[<apply>
<or/>
<ci> a </ci>
<ci> b </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_xor">
<name>xor</name>
<description>
<p>The is the n-ary logical "xor" operator. The constructed expression
has a truth value of true if an odd number of its arguments
are true.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (boolean*) -> boolean </signature>
<signature> [type="boolean"](symbolic*) -> symbolic </signature>
<property>
<description>
<p>x xor x = false </p>
</description>
</property>
<property>
<description>
<p>x xor not(x) = true </p>
</description>
</property>
<example><![CDATA[
<apply>
<xor/>
<ci> a </ci>
<ci> b </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_not">
<name>not</name>
<description>
<p>This is the unary logical "not" operator. It negates the truth value
of its single argument. e.g., not P is true when
P is false and false when P is true.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (boolean) -> boolean </signature>
<signature> [type="boolean"](algebraic) -> boolean </signature>
<example><![CDATA[<apply>
<not/>
<ci> a </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_implies">
<name>implies</name>
<description>
<p>This is the binary "implies" operator. It is used to
construct the logical expression
"A implies B". </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (boolean,boolean) -> boolean </signature>
<property>
<description>
<p>false implies x
</p>
</description>
</property>
<example><![CDATA[<apply>
<implies/>
<ci> A </ci>
<ci> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_forall">
<name>forall</name>
<description>
<p>The forall operator is the logical "For all" quantifier.
The bound variables, if any, appear first and are tagged using the
bvar element.
Next comes an optional condition on the bound variables.
The last argument is the boolean expression that is asserted
to be true for all values of the bound variables that meet the
specified conditions (if any).</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (bvar*,condition?,apply) -> boolean </signature>
<signature> (bvar*,condition?,(reln)) -> boolean </signature>
<example><![CDATA[<apply>
<forall/>
<bvar><ci> x </ci></bvar>
<apply><eq/>
<apply>
<minus/><ci> x </ci><ci> x </ci>
</apply>
<cn>0</cn>
</apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_exists">
<name>exists</name>
<description>
<p>This is the MathML operator that is used to
assert existence, as in "There exists an x such
that x is real and x is positive."</p>
<p>- The first argument indicates the bound variable,</p>
<p>- The second optional argument places conditions on that
bound variable. </p>
<p>- The last argument is the expression
that is asserted to be true.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>boolean</attdefault>
</MMLattribute>
<signature> (element,set) ->boolean </signature>
<example><![CDATA[
<apply><exists/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><ci>f</ci>
<ci>x</ci>
</apply>
<cn>0</cn>
</apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_abs">
<name>abs</name>
<description>
<p>A unary operator which represents the absolute value of its argument.
In the complex case this is often referred to as the modulus. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>(real)->real</signature>
<signature>(complex)->real</signature>
<property>
<description>
<p>for all x and y, abs(x) + abs(y) >= abs(x+y) </p>
</description>
</property>
<example><![CDATA[
<apply><abs/><ci>x</ci></apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_conjugate">
<name>conjugate</name>
<description>
<p>The unary "conjugate" arithmetic operator is
used to represent the complex conjugate of its
argument.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (algebraic) -> algebraic </signature>
<signature>(complex)->complex</signature>
<example><![CDATA[
<apply><conjugate/>
<apply><plus/>
<ci> x </ci>
<apply><times/>
<imaginaryi/>
<ci> y </ci>
</apply>
</apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arg">
<name>arg</name>
<description>
<p>The unary "arg" operator is used to construct
an expression which represents the
"argument" of a complex number.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>(compex)->real</signature>
<example><![CDATA[<apply><arg/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_real">
<name>real</name>
<description>
<p>A unary operator used to construct an expression
representing the "real" part of a complex number. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>(complex)->real</signature>
<property>
<description>
<p>ForAll(x,y, x in R, Y in R, real(x+i*y)=x)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><eq/>
<apply><real/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
<ci> x </ci>
</apply>
</apply>
]]></property>
<example><![CDATA[
<apply><real/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_imaginary">
<name>imaginary</name>
<description>
<p>The unary function used to construct an expression which
represents the imaginary part of a complex number. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>(complex)->real</signature>
<property>
<description>
<p>forall([x,y],Imaginary(x + i*y) = y )</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><eq/>
<apply><imaginary/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
<ci> y </ci>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><imaginary/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_lcm">
<name>lcm</name>
<description>
<p>This n-ary operator is used to construct an expression
which represents the least common multiple of its arguments.
If no argument is provided, the lcm is 1.
If one argument is provided, the lcm is that argument.
The least common multiple of x and 1 is x.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> [type=MathMLtype](MathMLtype*) ->MathMLtype </signature>
<signature>(integer*) -> integer</signature>
<signature>(algebraic*) -> algebraic</signature>
<property>
<description>
<p>ForAll(x,lcm(x,1)=x)</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><lcm/><ci>x</ci><cn>1</cn></apply>
<ci>x</ci>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply><lcm/>
<cn>12</cn>
<cn>17</cn>
</apply>]]></example>
<example><![CDATA[<apply><lcm/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_floor">
<name>floor</name>
<description>
<p>The floor element is used to denote the round-down (towards -infinity) operator.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> (real) -> integer</signature>
<signature> [type=MathMLtype](orderedset_element) -> orderedset_element</signature>
<property>
<description>
<p>ForAll(x,floor(x) <= x)</p>
</description><![CDATA[<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><leq/>
<apply><floor/>
<ci>x</ci>
</apply>
<ci>x</ci>
</apply>
</apply>]]></property>
<example><![CDATA[<apply> <floor/>
<ci> a </ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_ceiling">
<name>ceiling</name>
<description>
<p>The ceiling element is used to denote the round-up (towards +infinity) operator.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>integer</attdefault>
</MMLattribute>
<signature> (real) -> integer</signature>
<signature> [type=MathMLtype](orderedset_element) -> orderedset_element</signature>
<property>
<description>
<p>ForAll(x,ceiling(x) >= x)</p>
</description><![CDATA[<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><geq/>
<apply><ceiling/>
<ci>x</ci>
</apply>
<ci>x</ci>
</apply>
</apply>]]></property>
<example><![CDATA[<apply> <ceiling/>
<ci> a </ci>
</apply>]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Relations">
<head>Relations</head>
<MMLdefinition id="cedef_eq">
<name>eq</name>
<description>
<p>This n-ary function is used to indicate that two or more quantities are equal.
There must be at least two arguments.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(real,real+) -> boolean</signature>
<signature>(boolean, boolean+) -> boolean</signature>
<signature>(set,set+) -> set</signature>
<signature>(multiset,multiset+) -> multiset</signature>
<property>
<description>
<p>Symmetric</p>
</description>
</property>
<property>
<description>
<p>Transitive</p>
</description>
</property>
<property>
<description>
<p>Reflexive</p>
</description>
</property>
<example><![CDATA[<apply><eq/><cn type="rational">2<sep/>4</cn><cn type="rational">1<sep/>2</cn></apply>]]></example>
<example><![CDATA[<apply><eq/><ci type="set">A</ci><ci type="set">B</ci></apply>]]></example>
<example><![CDATA[<apply><eq/><ci type="multiset">A</ci><ci type="multiset">B</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_neq">
<name>neq</name>
<description>
<p>This binary function represents the relation "not equal to" which returns
true unless the two arguments are equal.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (real,real) -> boolean </signature>
<signature>(boolean,boolean)-> boolean</signature>
<signature>(set,set) -> set</signature>
<signature>(multiset,multiset) -> multiset</signature>
<property>
<description>
<p> Symmetric</p>
</description>
</property>
<example><![CDATA[<apply><neq/><cn>3</cn><cn>4</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_gt">
<name>gt</name>
<description>
<p>This n-ary function represents the relation "greater than"
which returns true if each argument in turn is greater than
the one following it. There must be at least two arguments. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(real,real+) -> boolean </signature>
<property>
<description>
<p>Transitive</p>
</description>
</property>
<example><![CDATA[<apply><gt/><cn>3</cn><cn>2</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_lt">
<name>lt</name>
<description>
<p>This n-ary function represents the relation "less than"
which returns true if each argument in turn is less than
the one following it. There must be at least two arguments. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(real,real+) -> boolean </signature>
<property>
<description>
<p>Transitive</p>
</description>
</property>
<example><![CDATA[<apply><lt/><cn>2</cn><cn>3</cn><cn>4</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_geq">
<name>geq</name>
<description>
<p>This element represents the n-ary greater than or equal to function.
which returns true if each argument in turn is greater than or equal to
the one following it. . There must be at least two arguments. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(real,real+) -> boolean </signature>
<property>
<description>
<p>Transitive</p>
</description>
</property>
<property>
<description>
<p>Reflexive</p>
</description>
</property>
<example><![CDATA[<apply><geq/><cn>4</cn><cn>3</cn><cn>3</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_leq">
<name>leq</name>
<description>
<p>This n-ary function represents the relation "less than or equal to"
which returns true if each argument in turn is less or equal to
the one following it. There must be at least two arguments. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(real,real+) -> boolean </signature>
<property>
<description>
<p>Transitive</p>
</description>
</property>
<property>
<description>
<p>Reflexive</p>
</description>
</property>
<example><![CDATA[<apply><leq/><cn>3</cn><cn>3</cn><cn>4</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_equivalent">
<name>equivalent</name>
<description>
<p>This element represents the n-ary logical equivalence function
in which two boolean expressions are said to be equivalent if their truth values are equal for all choices
of values of the boolean variables appearing in them.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(logical,logical+) -> boolean </signature>
<property>
<description>
<p> Symmetric </p>
</description>
</property>
<property>
<description>
<p>Transitive </p>
</description>
</property>
<property>
<description>
<p>Reflexive</p>
</description>
</property>
<example><![CDATA[<apply><equivalent/>
<ci>a</ci>
<apply><not/>
<apply<not/><ci>a</ci></apply>
</apply>
<apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_approx">
<name>approx</name>
<description>
<p>This element is used to indicate that two or more quantities are approximately
equal. If a more precise definition of approximately equal is required the
definintionURL should be used to identify a suitable definition..</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>MathMLType</attvalue>
<attdefault>real</attdefault>
</MMLattribute>
<signature>(real,real+) -> boolean </signature>
<property>
<description>
<p> Symmetric</p>
</description>
</property>
<property>
<description>
<p>Transitive</p>
</description>
</property>
<property>
<description>
<p>Reflexive</p>
</description>
</property>
<example><![CDATA[<apply><approx/><pi/><cn type="rational">22<sep/>7</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_factorof">
<name>factorof</name>
<description>
<p>This is the binary MathML operator that is used indicate
the mathematical relationship a "is a factor of" b. This relationship
is true just if b mod a = 0</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> MathMLType </attvalue>
<attdefault> integer </attdefault>
</MMLattribute>
<signature> (integer, integer) -> boolean</signature>
<property>
<description>
<p>
ForAll( a,b a and b integers, a divides b if there is an integer c such that a*c = b</p>
</description>
</property>
<example><![CDATA[<apply><factorof/>
<ci> a </ci>
<ci> b </ci>
</apply>]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Calculus_and_Vector_Calculus">
<head>Calculus and Vector Calculus</head>
<MMLdefinition id="cedef_int">
<name>int</name>
<description>
<p>The definite or indefinite integral of a function or algebraic
expression. There are several forms of calling sequences depending on
the nature of the arguments, and whether or not it is a
definite integral.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (function) -> function </signature>
<signature> (bvar,algebraic) -> algebraic </signature>
<signature> (bvar,interval,algebraic) -> algebraic </signature>
<signature> (bvar,condition,algebraic) -> algebraic </signature>
<signature>(bvar,lowlimit,uplimit,algebraic) -> algebraic</signature>
<example><![CDATA[<apply><int/>
<bvar><ci> x </ci></bvar>
<lowlimit><cn> 0 </cn></lowlimit>
<uplimit><ci> a </ci></uplimit>
<apply><ci> f </ci><ci> x </ci></apply>
</apply>
]]></example>
<example><![CDATA[<apply><int/>
<bvar><ci> x </ci></bvar>
<interval><ci> a </ci><ci> b </ci></interval>
<apply><cos/><ci> x </ci></apply>
</apply>
]]></example>
<example><![CDATA[<apply><int/>
<bvar><ci> x </ci></bvar>
<condition>
<apply><in/><ci> x </ci><ci type="set"> D </ci></apply>
</condition>
<apply><ci type="function"> f </ci><ci> x </ci></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_diff">
<name>diff</name>
<description>
<p>This occurs in two forms, one for functions and one
for expressions involving a bound variable.</p>
<p>For expressions in the bound variable x, the expression
to be differentiated follows the bound variable.
</p>
<p>
If there is only one argument, a function, the result of
applying diff to that function is a new function,
the derivative of f, often written as f' .</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue> function | algebraic </attvalue>
<attdefault>algebraic</attdefault>
</MMLattribute>
<signature> (bvar,algebraic) -> algebraic </signature>
<signature> (function) -> function </signature>
<property>
<description>
<p>ForAll([x,n],n!=0,diff( x^n , x ) = n*x^(n-1))</p>
</description>
</property>
<example>
<description>
<p>diff( sin(x) , x ) = cos(x)</p>
</description><![CDATA[
<apply><eq/>
<apply><diff/>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>
<apply><cos/><ci>x</ci></apply>
</apply>
]]></example>
<example>
<description>
<p>diff(x^2,x)</p>
</description><![CDATA[
<apply><diff/>
<bvar><ci>x</ci></bvar>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
]]></example>
<example>
<description>
<p>diff(f(x),x)</p>
</description><![CDATA[
<apply><diff/><bvar><ci> x </ci></bvar>
<apply><ci type="function"> f </ci><ci> x </ci></apply>
</apply>
]]></example>
<example>
<description>
<p>diff(sin) = cos</p>
</description><![CDATA[
<apply><eq/><apply><diff/><sin/></apply><cos/></apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_partialdiff">
<name>partialdiff</name>
<description>
<p>This symbol is used to express partial differentiation.
It occurs in two forms: one form corresponding to the differentiation of
algebraic expressions (often displayed using the Leibnitz notation,
and the other to express partial derivatives of actual functions
(often expressed as $D_{1,2} f $ )
</p>
<p>For the first form, the arguments are the bound variables
followed by the algebraic expression. The result is an algebraic
expression. Repetitions of the bound variables are indicated
using the degree element. The total degree is indicated by use of a
degree element at the top level.
</p>
<p>For the second form, there are two arguments: a list of indices
indicating by position which coordinates are involved in constructing the partial
derivatives, and the actual function. The coordinates may
be repeated.
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>function | algebraic </attvalue>
<attdefault>algebraic</attdefault>
</MMLattribute>
<signature> (degree?,bvar+,algebraic) -> algebraic </signature>
<signature>(vector,function) -> function </signature>
<property>
<description>
<p>ForAll(x,y,diff( x*y , x ) = diff(x,x)*y + diff(y,x)*x )</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p>ForAll(x,a,b,diff( a + b , x ) = diff(a,x) + diff(b,x) )</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p>diff(sin) = cos </p>
</description><![CDATA[ ]]></property>
<example>
<description>
<p>d^k/(dx^m dy^n) f(x,y)</p>
</description><![CDATA[
<apply><partialdiff/>
<degree><ci>k</ci></degree>
<bvar><ci> x </ci><degree><ci> m </ci></degree></bvar>
<bvar><ci> y </ci><degree><ci> n </ci></degree></bvar>
<apply><ci type="function"> f </ci>
<ci> x </ci>
<ci> y </ci>
</apply>
</apply>
]]></example>
<example>
<description>
<p>d^2/(dx dy) f(x,y)</p>
</description><![CDATA[
<apply><partialdiff/>
<bvar><ci> x </ci></degree></bvar>
<bvar><ci> y </ci></degree></bvar>
<apply><ci type="function"> f </ci>
<ci> x </ci>
<ci> y </ci>
</apply>
</apply>
]]></example>
<example>
<description>
<p>D_{1,1,3}(f) </p>
</description><![CDATA[
<apply><partialdiff/>
<list><cn>1</cn><cn>1</cn><cn>3</cn></list>
<ci type="function">f</ci>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_lowlimit">
<name>lowlimit</name>
<description>
<p>Construct a lower limit. Upper and lower limits
are used in some integrals as alternative way
of describing the interval</p>
</description>
<classification>constructor </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (algebraic+) -> lowlimit </signature>
<example>
<description>
<p>See int</p>
</description>
</example>
</MMLdefinition>
<MMLdefinition id="cedef_uplimit">
<name>uplimit</name>
<description>
<p>Construct an upper limit. Upper and lower limits
are used in some integrals as alternative way
of describing the interval</p>
</description>
<classification>constructor </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (algebraic+) -> uplimit</signature>
<example>
<description>
<p>See int</p>
</description>
</example>
</MMLdefinition>
<MMLdefinition id="cedef_bvar">
<name>bvar</name>
<description>
<p>The bvar element is the container element
for the "bound variable" of an operation.
For example, in an integral it specifies the
variable of integration. In a derivative, it
indicates which variable with respect to
which a function is being differentiated.
When the bvar element is used to quantify a derivative,
the bvar element may contain a child degree element that
specifies the order of the derivative with respect to that
variable. The bvar element is also used for the internal
variable in sums and products.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (symbol,degree?) -> bvar </signature>
<example><![CDATA[
<apply><forall/><bvar><ci>x</ci></bvar>
<condition><apply><in/><ci>x</ci><reals/></apply></condition>
<apply><eq/><apply><minus/><ci>x</ci><ci>x</ci></apply><cn>0</cn></apply>
</apply>
]]></example>
<example><![CDATA[<apply><diff/>
<bvar><ci>x</ci><degree><cn>2</cn></degree></bvar>
<apply><power/><ci>x</ci><cn>5</cn></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_degree">
<name>degree</name>
<description>
<p> A parameter used by some
MathML data-types to specify that, for example,
a bound variable is repeated several times.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (anything) -> degree </signature>
<example><![CDATA[<apply><diff/>
<bvar><ci>x</ci><degree><cn>2</cn></degree></bvar>
<apply><power/><ci>x</ci><cn>5</cn></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_divergence">
<name>divergence</name>
<description>
<p>This symbol is used to represent the divergence function.
</p>
<p>
Given, one argument which is a vector of scalar
valued functions defined on the coordinates x_1, x_2, ... x_n.
It returns a scalar value function. That function
satisfies the defining relation:
</p>
<p>
divergence(F) = \partial(F_(x_1))/\partial(x_1) + ... + \partial(F_(x_n))/\partial(x_n)
</p>
<p>
The functions defining the coordinates may be defined implicitly
as expressions defined in terms of the coordinate names, in which case
the coordinate names must be provided as bound variables.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(vector(function)) -> function </signature>
<signature>(bvar+,vector(algebraic)) -> algebraic </signature>
<example><![CDATA[
<apply><divergence/><ci type="vector"> E</ci></apply>
]]></example>
<example><![CDATA[
<declare><ci>F</ci><vector><ci>f1</ci><ci>f2</ci><ci>f3</ci></vector></declare>
<apply><divergence/><ci>F</ci></apply>
]]></example>
<example><![CDATA[
<apply><divergence/>
<bvar><ci>x</ci></bvar><bvar><ci>y</ci></bvar><bvar><ci>z</ci></bvar>
<vector>
<apply><plus/><ci>x</ci><ci>y</ci></apply>
<apply><plus/><ci>x</ci><ci>z</ci></apply>
<apply><plus/><ci>z</ci><ci>y</ci></apply>
</vector>
</apply>
]]></example>
<example>
<description>
<p>If
<mi>a</mi> is a vector field defined inside a closed surface
<mi>S</mi> enclosing a volume
<mi>V</mi>, then the divergence of
<mi>a</mi> is given by
</p>
</description>
<![CDATA[
<apply>
<eq/>
<apply><divergence/><ci type="vectorfield">a</ci></apply>
</apply>
<apply>
<limit/>
<bvar>
<ci> V </ci>
</bvar>
<condition>
<apply>
<tendsto/>
<ci> V </ci>
<cn> 0 </cn>
</apply>
</condition>
<apply>
<divide/>
<apply><int encoding="text" definitionURL="SurfaceIntegrals.htm"/>
<bvar>
<ci> S</ci>
</bvar>
<ci> a </ci>
</apply>
<ci> V </ci>
</apply>
</apply>
</apply>
]]>
</example>
</MMLdefinition>
<MMLdefinition id="cedef_grad">
<name>grad</name>
<description>
<p>The gradient element is the vector calculus gradient operator, often called grad.
It represents the operation that constructs a vector of partial derivatives
vector( df/dx_1 , df/dx_2, ... df/dx_n )
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (function) -> vector(function) </signature>
<signature>(bvar+,algebraic) -> vector(algebraic) </signature>
<example><![CDATA[<apply><grad/><ci type="function"> f</ci></apply>]]></example>
<example><![CDATA[
<apply><grad/>
<bvar><ci>x</ci></bvar><bvar><ci>y</ci></bvar><bvar><ci>z</ci></bvar>
<apply><times/><ci>x</ci><ci>y</ci><ci>z</ci></apply></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_curl">
<name>curl</name>
<description>
<p>This symbol is used to represent the curl operator. It requires both a coordinates
and a vector of expressions defined over those coordinates. It returns a vector valued
expression.</p>
<p> In its functional form the coordinates are implicit in the definition of the function
so it needs only one argument which is a vector valued function and returns a vector of functions.
</p>
<p>
Given F = F(x,y,z) = ( f1(x,y,z) , f2(x,y,z), f3(x,y,z) ) and coordinate names
(x,y,z) the following relationship must hold:
</p>
<p>
curl(F) = i X \partial(F)/\partial(x) + j X \partial(F)/\partial(y) + j X \partial(F)/\partial(Z)
where i,j,k are the unit vectors corresponding to the x,y,z axes respectivly
and the multiplication X is cross multiplication. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(bvar,bvar,bvar,algebraic) -> vector(algebraic)</signature>
<signature> (vector(function) ) -> vector(function) </signature>
<property>
<description>
<p>
curl(F) = i X \partial(F)/\partial(x) + j X \partial(F)/\partial(y) + j X \partial(F)/\partial(Z) </p>
</description><![CDATA[
]]></property>
<example><![CDATA[<apply>
<curl/>
<ci type="vector" > f</ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_laplacian">
<name>laplacian</name>
<description>
<p>This is the element used to indicate an application of the laplacian operator.
It may be applied directly to expressions, in which case the coordinate names
are provided in order by use of bvar. It may also be applied directly to a function F
in which case, the definition below is for F = F(x_1, x_2, ... x_n) where
x_1, x_2, ... x_n are the coordinate names.
</p>
<p>
laplacian(F) = \partial^2(F)/\partial(x_1)^2 + ... + \partial^2(F)/\partial(x_n)^2
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (bvar+,algebraic) -> algebraic </signature>
<signature>(scalar_valued_function) -> scalar_valued_function </signature>
<example><![CDATA[
<apply><laplacian/><ci type="vector"> E</ci></apply>
]]></example>
<example><![CDATA[
<declare><ci>F</ci><vector><ci>f1</ci><ci>f2</ci><ci>f3</ci></vector></declare>
<apply><laplacian/><ci>F</ci></apply>
]]></example>
<example><![CDATA[
<apply><laplacian/>
<bvar><ci>x</ci></bvar><bvar><ci>y</ci></bvar><bvar><ci>z</ci></bvar>
<apply><ci>f</ci>
<ci>x</ci><ci>y</ci>
</apply>
</apply>
]]></example>
</MMLdefinition>
</div3>
<!-- Edited to here -->
<div3 id="cedef_Theory_of_Sets">
<head>Theory of Sets</head>
<MMLdefinition id="cedef_set">
<name>set</name>
<description>
<p>The set element is the container element that constructs a set of elements.
They may be explicitly listed, or defined through conditions on a bound variable.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>set | multiset</attvalue>
<attdefault>set</attdefault>
</MMLattribute>
<signature> (anything*) -> set </signature>
<signature>( bvar , condition , anything ) -> set </signature>
<example><![CDATA[<set>
<ci> a </ci>
<ci> b </ci>
<ci> c </ci>
</set>
]]></example>
<example><![CDATA[<set>
<bvar><ci> x </ci></bvar>
<condition>
<apply><lt/>
<ci> x </ci>
<cn> 5 </cn>
</apply>
</condition>
</set>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_list">
<name>list</name>
<description>
<p>The list element is the container element that constructs a list of elements.
They may be explicitly listed, or defined through conditions on a bound variable.</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>order</attname>
<attvalue> lexicographic | numeric </attvalue>
<attdefault>none</attdefault>
</MMLattribute>
<signature> (anything*) -> list </signature>
<signature> (bvar,condition,anything) -> list </signature>
<signature>[order=ordering](bvar,condition,anything) -> list(ordering)</signature>
<example><![CDATA[<list>
<ci> a </ci>
<ci> b </ci>
<ci> c </ci>
</list>
]]></example>
<example><![CDATA[<list order="numeric">
<bvar><ci> x </ci></bvar>
<condition>
<apply><lt/>
<ci> x </ci>
<cn> 5 </cn>
</apply>
</condition>
</list>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_union">
<name>union</name>
<description>
<p>This is the set-theoretic operation of union of two or more sets.
It generalizes to operations on multisets by tracking the frequency of occurrence
of each element in the union. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set*) -> set </signature>
<signature> ( multiset+ ) -> multiset </signature>
<example><![CDATA[<apply><union/>
<ci> A </ci>
<ci> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_intersect">
<name>intersect</name>
<description>
<p> This operator indicates the intersection of two sets. If the two sets are multisets, the result
is a multiset. in which each element is present with a repetition determined
by the smallest number of occurrences in any of the sets (multisets) that
occur as arguments.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set+) -> set </signature>
<signature> (multiset+) -> multiset </signature>
<example><![CDATA[<apply><intersect/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_in">
<name>in</name>
<description>
<p>The in element is the relational operator used for a set-theoretic
inclusion (`is in' or `is a member of').</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (anything, set) -> boolean </signature>
<signature> (anything, multiset ) -> boolean </signature>
<example><![CDATA[<apply><in/>
<ci> a </ci>
<ci type="set"> A </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_notin">
<name>notin</name>
<description>
<p>The notin element is the relational operator element used
to construct set-theoretic exclusion (`is not in' or `is not a member of').</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> ( anything, set ) -> boolean </signature>
<signature> ( anything , multiset ) -> boolean </signature>
<example><![CDATA[<apply><notin/>
<ci> a </ci>
<ci type="set"> A </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_subset">
<name>subset</name>
<description>
<p>The subset element is the relational operator element for a
set-theoretic containment (`is a subset of').</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set,set) -> boolean </signature>
<signature> ( multiset , multiset ) -> boolean </signature>
<example><![CDATA[<apply><subset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_prsubset">
<name>prsubset</name>
<description>
<p>The prsubset element is the relational operator element for set-theoretic
proper containment (`is a proper subset of').</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set, set) -> boolean </signature>
<signature> ( multiset , multiset ) -> boolean </signature>
<example><![CDATA[<apply><prsubset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_notsubset">
<name>notsubset</name>
<description>
<p>The notsubset element is the relational operator element for the
set-theoretic relation `is not a subset of'.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set, set) -> boolean </signature>
<signature> ( multiset , multiset ) -> boolean </signature>
<example><![CDATA[<apply><notsubset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_notprsubset">
<name>notprsubset</name>
<description>
<p>The notprsubset element is the element for constructing the
set-theoretic relation `is not a proper subset of'.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set, set) -> boolean </signature>
<signature> ( multiset , multiset ) -> boolean </signature>
<example><![CDATA[<apply><notprsubset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_setdiff">
<name>setdiff</name>
<description>
<p>The setdiff element is the operator element for a
set-theoretic difference of two sets.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set, set) -> set </signature>
<signature> ( multiset , multiset ) -> multiset </signature>
<example><![CDATA[<apply><setdiff/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_card">
<name>card</name>
<description>
<p>The card element is the operator element for deriving the size or
cardinality of a set. The size of a multset is simply the total number of
elements in the multiset.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> ( set ) -> scalar </signature>
<signature> (multiset ) -> scalar </signature>
<example><![CDATA[<apply><eq/>
<apply><card/><ci> A </ci></apply>
<ci> 5 </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_cartesianproduct">
<name>cartesianproduct</name>
<description>
<p>The cartesianproduct element is the operator for a set-theoretic
cartesian product of two (or more) sets. The cartesian
product of multisets produces a multiset since n-tuples
may be repeated if elements in the base sets are repeated.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (set*) -> set </signature>
<signature> (multiset*) -> multiset </signature>
<example><![CDATA[<apply><cartesianproduct/>
<ci> A </ci>
<ci> B </ci>
</apply>
]]></example>
<example><![CDATA[<apply><cartesianproduct/>
<reals/>
<reals/>
<reals/>
</apply>
]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Sequences_and_Series">
<head>Sequences and Series</head>
<MMLdefinition id="cedef_sum">
<name>sum</name>
<description>
<p>The sum element denotes the summation operator. Upper and lower
limits for the sum, and more generally a domains for the bound variables
are specified using uplimit, lowlimit or a condition on the bound variables.
The index for the summation is specified by a bvar element.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (bvar*, ( (lowlimit, uplimit) |condition ), algebraic ) -> real </signature>
<example><![CDATA[
<apply><sum/>
<bvar> <ci> x </ci></bvar>
<lowlimit><ci> a </ci></lowlimit>
<uplimit><ci> b </ci></uplimit>
<apply><ci> f </ci><ci> x </ci></apply>
</apply>
]]></example>
<example><![CDATA[
<apply><sum/>
<bvar><ci> x </ci></bvar>
<condition><apply> <in/><ci> x </ci><ci type="set"> B </ci></apply></condition>
<apply><ci type="function"> f </ci><ci> x </ci></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_product">
<name>product</name>
<description>
<p>The product element denotes the product operator. Upper and lower limits for
the product, and more generally a domains for the bound variables are specified
using uplimit, lowlimit or a condition on the bound variables. The index for the
product is specified by a bvar element.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (bvar*, ( (lowlimit, uplimit) |condition ), algebraic ) -> real </signature>
<example><![CDATA[
<apply><product/>
<bvar><ci> x </ci></bvar>
<lowlimit> <ci> a </ci></lowlimit>
<uplimit><ci> b </ci></uplimit>
<apply><ci type="function"> f </ci><ci> x </ci></apply>
</apply>
]]></example>
<example><![CDATA[
<apply><product/>
<bvar><ci> x </ci></bvar>
<condition><apply> <in/><ci> x </ci><ci type="set"> B </ci></apply></condition>
<apply><ci> f </ci><ci> x </ci></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_limit">
<name>limit</name>
<description>
<p>The limit element represents the operation of taking a limit of a sequence. The
limit point is expressed by specifying a lowlimit and a bvar, or by specifying a
condition on one or more bound variables.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (bvar*, ( (lowlimit, uplimit) |condition ), algebraic ) -> real </signature>
<example><![CDATA[
<apply><limit/>
<apply>
<tendsto type="above"/>
<ci>x</ci><cn>0</cn>
</apply>
<apply><sin/><ci>x</ci></apply>
</apply>
]]></example>
<!-- fixed to HERE JSD -->
<example><![CDATA[
<apply><limit/>
<tendsto><ci>x</ci><cn>0</cn></tendsto>
<apply><sin/><ci>x</ci></apply>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_tendsto">
<name>tendsto</name>
<description>
<p>The tendsto element is used to express the relation that a quantity is
tending to a specified value.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue>above | below | all | MathMLType </attvalue>
<attdefault>all</attdefault>
</MMLattribute>
<signature> (algebraic,algebraic) -> tendsto </signature>
<signature> [ type=direction ](algebraic,algebraic) -> tendsto(direction) </signature>
<example><![CDATA[
<apply><tendsto type="above"/>
<apply><power/><ci> x </ci><cn> 2 </cn></apply>
<apply><power/><ci> a </ci><cn> 2 </cn></apply>
</apply>
]]></example>
<example><![CDATA[
<apply><tendsto/>
<vector><ci> x </ci><ci> y </ci></vector>
<vector>
<apply><ci type="function">f</ci><ci> x </ci><ci> y </ci></apply>
<apply><ci type="function">g</ci><ci> x </ci><ci> y </ci></apply>
</vector>
</apply>
]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Elementary_Classical_Functions">
<head>Elementary Classical Functions</head>
<MMLdefinition id="cedef_exp">
<name>exp</name>
<description>
<p>This element represents the exponentiation function
as described in Abramowitz and Stegun, section 4.2.
It takes one argument. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property><![CDATA[
<apply><eq/>
<apply><exp/><cn>0</cn></apply>
<cn>1</cn>
</apply>
]]></property>
<property>
<description>
<p>for all k if k is an integer then e^(z+2*pi*k*i)=e^z </p>
</description>
</property>
<example><![CDATA[<apply><exp/><ci> x </ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_ln">
<name>ln</name>
<description>
<p>This element represents the ln function (natural logarithm)
as described in Abramowitz and Stegun, section 4.1.
It takes one argument.</p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>-pi lt Im ln x leq pi </p>
</description>
</property>
<example><![CDATA[<apply><ln/><ci> a </ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_log">
<name>log</name>
<description>
<p>This element represents the log function.
It is defined in Abramowitz and Stegun,
Handbook of Mathematical Functions, section 4.1
If its first argument is a logbase element, it specifies
the base and the second argument is the argument
to which the function is applied using that base.
If no logbase element is present, the base is
assumed to be 10.</p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> (logbase, real) -> real </signature>
<signature>(logbase,complex) -> complex</signature>
<signature>(real) -> real </signature>
<signature>(complex) -> complex</signature>
<property>
<description>
<p>a^b = c implies log_a c = b </p>
</description>
</property>
<example><![CDATA[<apply><log/>
<logbase><cn> 3 </cn></logbase>
<ci> x </ci>
</apply>
]]></example>
<example><![CDATA[<apply><log/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_sin">
<name>sin</name>
<description>
<p>This element represents the sin function as described
in Abramowitz and Stegun, section 4.3. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p> sin(0) = 0 </p>
</description>
</property>
<property>
<description>
<p> sin(integer*Pi) = 0</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p>sin(x) = (exp(ix)-exp(-ix))/2i </p>
</description>
</property>
<example><![CDATA[<apply><sin/><ci> x </ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_cos">
<name>cos</name>
<description>
<p>This element represents the cos function as described in
Abramowitz and Stegun, section 4.3. It takes one argument.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p> cos(0) = 1</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p> cos(integer*Pi+Pi/2) = 0 </p>
</description>
</property>
<property>
<description>
<p>cos(x) = (exp(ix)+exp(-ix))/2 </p>
</description>
</property>
<example><![CDATA[<apply><cos/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_tan">
<name>tan</name>
<description>
<p>This element represents the tan function as described in
Abramowitz and Stegun, section 4.3. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p> tan(integer*Pi) = 0 </p>
</description>
</property>
<property>
<description>
<p> tan(x) = sin(x)/cos(x)</p>
</description><![CDATA[ ]]></property>
<example><![CDATA[<apply><tan/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_sec">
<name>sec</name>
<description>
<p>This element represents the sec function
as described in Abramowitz and Stegun, section 4.3.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p> sec(x) = 1/cos(x) </p>
</description>
</property>
<example><![CDATA[<apply><sec/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_csc">
<name>csc</name>
<description>
<p>This element represents the csc function as
described in Abramowitz and Stegun, section 4.3.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p> csc(x) = 1/sin(x) </p>
</description>
</property>
<example><![CDATA[<apply><csc/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_cot">
<name>cot</name>
<description>
<p>This element represents the cot function as described in
Abramowitz and Stegun, section 4.3. It takes one argument.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p> cot(integer*Pi+Pi/2) = 0</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p> cot(x) = cos(x)/sin(x) </p>
</description>
</property>
<property>
<description>
<p>cot A = 1/tan A </p>
</description>
</property>
<example><![CDATA[<apply><cot/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_sinh">
<name>sinh</name>
<description>
<p>This element represents the sinh function as described
in Abramowitz and Stegun, section 4.5. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>sinh A = 1/2 * (e^A - e^(-A)) </p>
</description>
</property>
<example><![CDATA[<apply><sinh/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_cosh">
<name>cosh</name>
<description>
<p>This symbol represents the cosh function as described
in Abramowitz and Stegun, section 4.5. It takes one argument.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>cosh A = 1/2 * (e^A + e^(-A)) </p>
</description>
</property>
<example><![CDATA[<apply><cosh/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_tanh">
<name>tanh</name>
<description>
<p>This element represents the tanh function as described in
Abramowitz and Stegun, section 4.5. It takes one argument. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>tanh A = sinh A / cosh A </p>
</description>
</property>
<example><![CDATA[<apply><tanh/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_sech">
<name>sech</name>
<description>
<p>This element represents the sech function
as described in Abramowitz and Stegun, section 4.5.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>sech A = 1/cosh A </p>
</description>
</property>
<example><![CDATA[<apply><sech/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_csch">
<name>csch</name>
<description>
<p>This element represents the csch function
as described in Abramowitz and Stegun, section 4.5.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>csch A = 1/sinh A </p>
</description>
</property>
<example><![CDATA[<apply><csch/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_coth">
<name>coth</name>
<description>
<p>This element represents the coth function as described in
Abramowitz and Stegun, section 4.5. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>coth A = 1/tanh A </p>
</description>
</property>
<example><![CDATA[<apply><coth/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arcsin">
<name>arcsin</name>
<description>
<p>This element represents the arcsin function which
is the inverse of the sin function as described in
Abramowitz and Stegun, section 4.4. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arcsin(z) = -i ln (sqrt(1-z^2)-iz) </p>
</description>
</property>
<example><![CDATA[<apply><arcsin/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arccos">
<name>arccos</name>
<description>
<p> This element represents the arccos function which is the inverse of the cos function
as described in Abramowitz and Stegun, section 4.4. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arccos(z) = -i ln(z+i \sqrt(1-z^2)) </p>
</description>
</property>
<example><![CDATA[<apply><arccos/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arctan">
<name>arctan</name>
<description>
<p>This element represents the arctan function which is the inverse of the tan function
as described in Abramowitz and Stegun, section 4.4. It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arctan(z) = (log(1+iz)-log(1-iz))/2i </p>
</description>
</property>
<example><![CDATA[<apply><arctan/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arccosh">
<name>arccosh</name>
<description>
<p> This symbol represents the arccosh function as described in
Abramowitz and Stegun, section 4.6.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arccosh(z) = 2*ln(\sqrt((z+1)/2) + \sqrt((z-1)/2)) </p>
</description>
</property>
<example><![CDATA[<apply><arccosh/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arccot">
<name>arccot</name>
<description>
<p>This element represents the arccot function as described in
Abramowitz and Stegun, section 4.4.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arccot(-z) = - arccot(z) </p>
</description><![CDATA[ ]]></property>
<example><![CDATA[<apply><arccot/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arccoth">
<name>arccoth</name>
<description>
<p>This element represents the arccoth function as described
in Abramowitz and Stegun, section 4.6.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arccoth(z) = (ln(-1-z)-ln(1-z))/2 </p>
</description>
</property>
<example><![CDATA[<apply><arccoth/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arccsc">
<name>arccsc</name>
<description>
<p>This element represents the arccsc function as described
in Abramowitz and Stegun, section 4.4.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arccsc(z) = -i ln(i/z + \sqrt(1 - 1/z^2)) </p>
</description>
</property>
<example><![CDATA[<apply><arccsc/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arccsch">
<name>arccsch</name>
<description>
<p> This element represents the arccsch function as
described in Abramowitz and Stegun, section 4.6.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arccsch(z) = ln(1/z + \sqrt(1+(1/z)^2)) </p>
</description>
</property>
<example><![CDATA[<apply><arccsch/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arcsec">
<name>arcsec</name>
<description>
<p>This element represents the arcsec function as described
in Abramowitz and Stegun, section 4.4.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arcsec(z) = -i ln(1/z + i \sqrt(1-1/z^2))</p>
</description>
</property>
<example><![CDATA[<apply><arcsec/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arcsech">
<name>arcsech</name>
<description>
<p>This element represents the arcsech function
as described in Abramowitz and Stegun, section 4.6.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arcsech(z) = 2 ln(\sqrt((1+z)/(2z)) + \sqrt((1-z)/(2z))) </p>
</description>
</property>
<example><![CDATA[<apply><arcsech/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arcsinh">
<name>arcsinh</name>
<description>
<p>This element represents the arcsinh function
as described in Abramowitz and Stegun, section 4.6.
It takes one argument.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arcsinh z = ln(z + \sqrt(1+z^2)) </p>
</description>
</property>
<example><![CDATA[<apply><arcsinh/><ci>x</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_arctanh">
<name>arctanh</name>
<description>
<p>This element represents the arctanh function as
described in Abramowitz and Stegun, section 4.6.
It takes one argument. </p>
</description>
<classification>function </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature> real -> real </signature>
<signature>complex -> complex</signature>
<property>
<description>
<p>arctanh(z) = - i * arctan(i * z) </p>
</description>
</property>
<example><![CDATA[<apply><arctanh/><ci>x</ci></apply>]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Statistics">
<head>Statistics</head>
<MMLdefinition id="cedef_mean">
<name>mean</name>
<description>
<p>The mean value of a set of data, or of a</p>
<p>random variable. See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger,
CRC Press Inc., 1996, section 7.7.1</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>( random_variable) -> scalar </signature>
<signature>(scalar+) -> scalar </signature>
<example><![CDATA[
<apply><mean/><ci type="discrete_random_variable"> X </ci></apply>
]]></example>
<example><![CDATA[
<apply><mean/><cn>3</cn><cn>4</cn><cn>3</cn><cn>7</cn><cn>4</cn></apply>
]]></example>
<example><![CDATA[
<apply><mean/><ci> X </ci></apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_sdev">
<name>sdev</name>
<description>
<p> This element represents a function denoting the sample standard deviation
of its arguments. The arguments are either all data, or a discrete random variable,
or a continuous random variable.</p>
<p>For numeric data at least two values are required and this is the square root of
(the sum of the squares of the deviations from the mean of the arguments,
divided by the number of arguments less one).
For a "discrete_random_variable", this is the square root of the second
moment about the mean. This further generalizes to identifiers of type
continuous_random_variable.</p>
<p>
See CRC Standard Mathematical Tables and
Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, (7.7.11) section 7.7.1.
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(scalar,scalar+) -> scalar </signature>
<signature>(descrete_random_variable) -> scalar </signature>
<signature>(continuous_random_variable) -> scalar </signature>
<example><![CDATA[<apply><sdev/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>]]></example>
<example><![CDATA[<apply><sdev/>
<ci type="discrete_random_variable"> X </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_variance">
<name>variance</name>
<description>
<p>This symbol represents a function denoting the variance of its
arguments, that is, the square of the standard deviation.
The arguments are either all data in which case there are two or
more of them, or an identifier of type
discrete_random_variable, or continuous_random_variable.
See CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, [7.1.2] and [7.7].</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(scalar*) -> scalar</signature>
<signature>(descrete_random_variable) -> scalar </signature>
<signature>(continuous_random_variable) -> scalar </signature>
<example><![CDATA[<apply><variance/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>]]></example>
<example><![CDATA[<apply><variance/>
<ci type="discrete_random_variable"> X </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_median">
<name>median</name>
<description>
<p>This symbol represents an n-ary function denoting the median of its arguments.
That is, if the data were placed in ascending order then it denotes the middle
one (in the case of an odd amount of data) or the average of the middle two
(in the case of an even amount of data). See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger,
CRC Press Inc., 1996, section 7.7.1</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(scalar+) -> scalar</signature>
<example><![CDATA[<apply><median/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_mode">
<name>mode</name>
<description>
<p>This represents the mode of n data values. The mode is the data value that
occurs with the greatest frequency.
See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger,
CRC Press Inc., 1996, section 7.7.1</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault/>
</MMLattribute>
<signature>(scalar+) -> scalar</signature>
<example><![CDATA[<apply><mode/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_moment">
<name>moment</name>
<description>
<p>This symbol is used to denote the i'th moment of a set of data, or a random
variable. Unless otherwise specified, the moment is about the origin.
For example, the i'th moment of X about the origin is given by
moment( 0 , i , x ).
</p>
<p>
The first argument specifies the point about which the moment is computed.
It is either an actual point ( e.g. 0 ), or a function which can be used on the data to
compute that point. To indicate a central moment, specify the element "mean".
The second argument indicates which moment about that point is being specified.
For the i'th moment the second argument should be i.
The third argument is either a discrete or continuous random variable, or the start
of a sequence of data. If there is a sequence of data then the i'th moment
is (1/n) (x_1^i + x_2^i + ... + x_n^i).
</p>
<p>The use of of a degree to indicate the order of the moment has been
deprecated.
</p>
<p>
See CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, section 7.7.1</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(degree, momentabout? , scalar+) -> scalar</signature>
<signature>(degree, momentabout? , discrete_random_variable) -> scalar </signature>
<signature>(degree, momentabout? , continuous_random_variable) -> scalar </signature>
<example>
<description>
<p>
The third moment about the point p of a discrete random variable</p>
</description><![CDATA[
<apply> <moment/>
<degree><cn>3</cn></degree>
<momentabout><ci>p</ci></momentabout>
<ci>X</ci>
</apply>
]]></example>
<example>
<description>
<p>
The 3rd central moment of a set of data. </p>
</description><![CDATA[
<apply><moment/>
<degree><cn>3</cn></degree>
<momentabout><mean/></momentabout>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn><cn>5</cn>
</apply>
]]></example>
<example>
<description>
<p>
The 3rd central moment of a discrete random variable. </p>
</description><![CDATA[
<apply><moment/>
<degree><cn>3</cn></degree>
<momentabout><mean/></momentabout>
<ci type="discrete_random_variable"> X </ci>
</apply>
]]></example>
<example>
<description>
<p>The 3rd moment about the origin of a set of data.</p>
</description><![CDATA[
<apply><moment/>
<degree><cn>3</cn></degree>
<momentabout><cn>0</cn></momentabout>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_momentabout">
<name>momentabout</name>
<description>
<p>This element is used to identify the point about which a moment is to
be computed. It may be an explicit point, or it may identify a method by which
the point is to be computed from the given data. For example the moment
may be computed about the mean by specifying the element used for the mean.
</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(function) -> method</signature>
<signature>(scalar) -> point </signature>
<example>
<description>
<p>
The third moment about the point p of a discrete random variable</p>
</description><![CDATA[
<apply> <moment/>
<degree> <cn> 3 </cn> </degree>
<momentabout> <ci> p </ci> </momentabout>
<ci> X </ci>
</apply>
]]></example>
<example>
<description>
<p>
The 3rd central moment of a set of data. </p>
</description><![CDATA[
<apply><moment/>
<degree><cn> 3 </cn></degree>
<momentabout><mean/></momentabout>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn><cn>5</cn>
</apply>
]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Linear_Algebra">
<head>Linear Algebra</head>
<MMLdefinition id="cedef_vector">
<name>vector</name>
<description>
<p>A vector is an ordered n-tuple of values
representing an element of an n-dimensional
vector space. The "values" are all from the
same ring, typically real or complex.
Where orientation is important, such as for pre or post
multiplication by a matrix a vector is treated as if it
were a column vector and its transpose is treated a row vector.
The type attribute can be used to explicitly specify that
a vector is a "row" vector.
See CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, [2.4]</p>
</description>
<classification> constructor </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> row | column | MathMLType </attvalue>
<attdefault> column </attdefault>
</MMLattribute>
<signature> (real*) -> vector(type=real) </signature>
<signature> [type=vectortype]((cn|ci|apply)*) -> vector(type=vectortype)</signature>
<property>
<description>
<p>vector=column_vector</p>
</description>
</property>
<property>
<description>
<p>matrix * vector = vector</p>
</description>
</property>
<property>
<description>
<p>matrix * column_vector = column_ vector</p>
</description>
</property>
<property>
<description>
<p>row_vector*matrix = row_vector</p>
</description>
</property>
<property>
<description>
<p>transpose(vector) = row_vector</p>
</description>
</property>
<property>
<description>
<p>transpose(column_vector) = row_vector</p>
</description>
</property>
<property>
<description>
<p>transpose(row_vector) = column_vector</p>
</description>
</property>
<property>
<description>
<p>distributive over scalars</p>
</description>
</property>
<property>
<description>
<p>associativity.</p>
</description>
</property>
<property>
<description>
<p>Matrix * column vector</p>
</description><![CDATA[ ]]></property>
<property>
<description>
<p>row vector * Matrix</p>
</description><![CDATA[ ]]></property>
<example><![CDATA[<vector>
<cn> 1 </cn>
<cn> 2 </cn>
<cn> 3 </cn>
<ci> x </ci>
</vector>
]]></example>
<example><![CDATA[<vector type="row">
<cn> 1 </cn>
<cn> 2 </cn>
<cn> 3 </cn>
<ci> x </ci>
</vector>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_matrix">
<name>matrix</name>
<description>
<p>This is the constructor for a matrix. it
requires matrixrow's as arguments.
It is used to represent matrices.
See CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, [2.5.1].</p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<MMLattribute>
<attname>type</attname>
<attvalue> real | complex | integer | symbolic | integer | MathMLType </attvalue>
<attdefault> real </attdefault>
</MMLattribute>
<signature>(matrixrow*) -> matrix</signature>
<signature>[type=matrixtype](matrixrow*) ->
matrix(type=matrixtype)</signature>
<property>
<description>
<p>scalar multiplication</p>
</description>
</property>
<property>
<description>
<p>scalar multiplication</p>
</description><![CDATA[Matrix*column vector]]></property>
<property>
<description>
<p>scalar multiplication</p>
</description><![CDATA[Addition]]></property>
<property>
<description>
<p>scalar multiplication</p>
</description><![CDATA[Matrix*Matrix]]></property>
<example><![CDATA[<matrix>
<matrixrow><cn> 0 </cn> <cn> 1 </cn> <cn> 0 </cn></matrixrow>
<matrixrow><cn> 0 </cn> <cn> 0 </cn> <cn> 1 </cn></matrixrow>
<matrixrow><cn> 1 </cn> <cn> 0 </cn> <cn> 0 </cn></matrixrow>
</matrix>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_matrixrow">
<name>matrixrow</name>
<description>
<p>This symbol is an n-ary constructor used to represent rows of matrices.
Its arguments should be members of a ring. </p>
</description>
<classification>constructor</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(ringelement +) -> matrixrow </signature>
<example><![CDATA[<matrixrow>
<cn> 1 </cn>
<cn> 2 </cn>
</matrixrow>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_determinant">
<name>determinant</name>
<description>
<p>The "determinant" of a matrix. This is a unary function.
See CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, [2.5.4].</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault/>
</MMLattribute>
<signature>(matrix)-> scalar </signature>
<example><![CDATA[<apply><determinant/>
<ci type="matrix"> A </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_transpose">
<name>transpose</name>
<description>
<p>The transpose of a matrix or vector.
See CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, [2.4] and [2.5.1].</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(vector)->vector(type=row)</signature>
<signature>(matrix)->matrix</signature>
<signature>(vector(type=row)->vector</signature>
<property>
<description>
<p>transpose(transpose(A))= A</p>
</description>
</property>
<property>
<description>
<p>transpose(transpose(V))= V</p>
</description>
</property>
<example><![CDATA[<apply><transpose/>
<ci type="matrix"> A </ci>
</apply>
]]></example>
<example><![CDATA[<apply><transpose/>
<ci type="vector"> V </ci>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_selector">
<name>selector</name>
<description>
<p>The operator used to extract sub-objects from vectors, matrices
matrix rows and lists.
Elements are accessed by providing one index element for each
dimension. For matrices, sub-matrices are selected by providing
one fewer index items. For a matrix A and a column vector V :
select( i, j , A ) is the i,j th element of A.
select(i , A ) is the matrixrow formed from the i'th row of A.
select( i , V ) is the i'th element of V.
select( V ) is the sequence of all elements of V.
select(A) is the sequence of all elements of A, extracted row
by row.
select(i,L) is the i'th element of a list.
select(L) is the sequence of elements of a list.</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(matrix , scalar,scalar)->scalar</signature>
<signature>(matrix, scalar)->matrixrow</signature>
<signature>(matrix)->scalar* </signature>
<signature>((vector|list|matrixrow) , scalar )->scalar</signature>
<signature>(vector|list|matrixrow)->scalar*</signature>
<property>
<description>
<p>For all vectors V, V = vector(select(V))</p>
</description>
</property>
<property>
<description>
<p>For all matrices M, M = matrix(select(M))</p>
</description>
</property>
<example><![CDATA[<selector/><ci type="matrix">M</ci><cn>3</cn><cn>2</cn>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_vectorproduct">
<name>vectorproduct</name>
<description>
<p>The vector or cross product of two nonzero three-dimensional vectors
v1 and v2 is defined by</p>
<p>v1 x v2 = n norm(v1) * norm(v2) sin(theta)
where n is the unit normal vector perpendicular to both, adhering to
the right hand rule.
CRC Standard Mathematical Tables and Formulae,
editor: Dan Zwillinger, CRC Press Inc., 1996, [2.4]
</p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(vector,vector)->vector</signature>
<property>
<description>
<p>if v1 and v2 are parallel then their vector product is 0</p>
</description>
</property>
<example><![CDATA[<apply><vectorproduct/><ci>u</ci><ci>v</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_scalarproduct">
<name>scalarproduct</name>
<description>
<p>This symbol represents the scalar product function. It takes two vector arguments
and returns a scalar value. The scalar product of two vectors a, b is
defined as |a| * |b| * cos(\theta), where \theta is the angle between the
two vectors and |.| is a euclidean size function. Note that the scalar product
is often referred to as the dot product. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(vector,vector) -> scalar</signature>
<property>
<description>
<p>if the scalar product of two vectors is 0 then they are orthogonal.</p>
</description>
</property>
<example><![CDATA[<apply><scalarproduct/><ci>u</ci><ci>v</ci></apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_outerproduct">
<name>outerproduct</name>
<description>
<p>This symbol represents the outer product function. It takes two vector arguments
and returns a matrix. It is defined as follows: if we write the {i,j}'th element of the
matrix to be returned as m_{i,j}, then: m_{i,j}=a_i * b_j where a_i,b_j are the i'th
and j'th elements of a, b respectively. </p>
</description>
<classification>function</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>(vector,vector) -> matrix </signature>
<example><![CDATA[<apply><outerproduct/><ci>u</ci><ci>v</ci></apply>]]></example>
</MMLdefinition>
</div3>
<div3 id="cedef_Constants_and_Symbol_Elements">
<head>Constants and Symbol Elements</head>
<MMLdefinition id="cedef_integers">
<name>integers</name>
<description>
<p>integers represents the set of all integers.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p>n is an integer implies n+1 is an integer.</p>
</description><![CDATA[
<apply><implies/>
<apply><in/><ci>n</ci><integers/></apply>
<apply><in/><apply><plus/><ci>n</ci><cn>1</cn></apply><integers/></apply>
</apply>]]></property>
<property>
<description>
<p>0 is an integer</p>
</description><![CDATA[
<apply><in/><cn>0</cn><integers/></apply>]]></property>
<property>
<description>
<p>n is an integer implies -n is an integer</p>
</description><![CDATA[
<apply><implies/>
<apply><in/><ci>n</ci><integers/></apply>
<apply><in/><apply><minus/><ci>n</ci></apply><integers/></apply>
</apply>]]></property>
<example><![CDATA[<apply><in/>
<cn type="integer"> 42 </cn>
<integers/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_reals">
<name>reals</name>
<description>
<p>reals represents the set of all real numbers.</p>
</description>
<classification>symbol</classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p>
S \subset R and exists y in R : forall x in S x \le y) implies
exists z in R such that (( forall x in S x \le z) and ((forall x in S x \le w)
implies z le w)
</p>
</description>
</property>
<property>
<description>
<p>for all a,b | a,b rational with a<b implies there exists
rational a,c s.t. a<c and c<b
</p>
</description>
</property>
<example><![CDATA[<apply><in/>
<cn type="real"> 44.997 </cn>
<reals/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_rationals">
<name>rationals</name>
<description>
<p>rationals represents the set of all rational numbers.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p>for all z where z is a rational, there exists integers p and q with p/q = z </p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>z</ci></bvar>
<condition><apply><in/><ci>z</ci><rationals/></apply></condition>
<apply><exists/>
<bvar><ci>p</ci></bvar>
<bvar><ci>q</ci></bvar>
<apply><and/>
<apply><in/><ci>p</ci><integers/></apply>
<apply><in/><ci>q</ci><integers/></apply>
<apply><eq/>
<apply><divide/><ci>p</ci><ci>q</ci></apply><integers/></apply>
<ci>z</ci>
</apply>
</apply>
</apply>
</apply>
]]></property>
<property>
<description>
<p>ForAll([a,b], a and b are rational, a < b implies there exists c such that a < c
and c < b) </p>
</description>
</property>
<property>
<description>
<p>for all z where z is a rational, there exists integers p and q with p/q = z </p>
</description><![CDATA[
]]></property>
<example><![CDATA[<apply><in/>
<cn type="rational"> 22 <sep/>7</cn>
<rationals/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_naturalnumbers">
<name>naturalnumbers</name>
<description>
<p>naturalnumbers represents the set of all natural numbers,
i.e.. non-negative integers.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p>For all n | n is a natural number implies n+1 is a natural number.</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>n</ci></bvar>
<apply><implies/>
<apply><in/><ci>n</ci><naturalnumbers/></apply>
<apply><in/><apply><plus/><ci>n</ci><cn>1</cn></apply><naturalnumbers/></apply>
</apply>
</apply>]]></property>
<property>
<description>
<p> 0 is a natural number. </p>
</description><![CDATA[
<apply><in/><cn>0</cn><naturalnumbers/></apply>]]></property>
<property>
<description>
<p>for all n | n in the natural numbers is equivalent to saying n=0 or n-1 is a natural number
</p>
</description>
</property>
<example><![CDATA[<apply><in/>
<cn type="integer">1729</cn>
<naturalnumbers/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_complexes">
<name>complexes</name>
<description>
<p>complexes represents the set of all complex numbers, i.e., numbers
which may have a real and an imaginary part.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p><![CDATA[for all z | if z is complex then there exist
reals x,y s.t. z = x + i * y ]]></p>
</description>
</property>
<example><![CDATA[<apply><in/>
<cn type="complex">17<sep/>29</cn>
<complexes/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_primes">
<name>primes</name>
<description>
<p>primes represents the set of all natural prime numbers,
i.e., integers greater than 1 which have no positive integer factor
other than themselves and 1.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p>ForAll( [d,p], p is prime , Implies( d | p , d=1 or d=p ) )</p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>d</ci></bvar>
<bvar><ci>p</ci></bvar>
<condition>
<apply><and/>
<apply><in/><ci>p</ci><primes/></apply>
<apply><in/><ci>d</ci><naturalnumbers/></apply>
</apply>
</condition>
<apply><implies/>
<apply><divide/><ci>d</ci><ci>p</ci></apply>
<apply><or/>
<apply><eq/><ci>d</ci><cn>1</cn></apply>
<apply><eq/><ci>d</ci><ci>p</ci></apply>
</apply>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply>
<in/>
<cn type="integer">17</cn>
<primes/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_exponentiale">
<name>exponentiale</name>
<description>
<p>exponentiale represents the mathematical constant which is the
exponential base of the natural logarithms, commonly written e .
It is approximately 2.718281828.. </p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>real constant</signature>
<property>
<description>
<p>
ln(e) = 1</p>
</description><![CDATA[<apply><eq/>
<apply><ln/><exponentiale/></apply>
<cn>1</cn>
</apply>
]]></property>
<property>
<description>
<p>
e is approximately 2.718281828</p>
</description><![CDATA[
<apply><apply><approx/>
<exponentiale/>
<cn>2.718281828 </cn>
</apply>
</apply>]]></property>
<property>
<description>
<p>
e = the sum as j ranges from 0 to infinity of 1/(j!)</p>
</description>
</property>
<example><![CDATA[<apply> <eq/>
<apply><ln/><exponentiale/></apply>
<cn>1</cn>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_imaginaryi">
<name>imaginaryi</name>
<description>
<p>imaginaryi represents the mathematical constant which is
the square root of -1, commonly written i</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>complex constant</signature>
<property>
<description>
<p>
sqrt(-1) = i</p>
</description><![CDATA[
<apply><eq/>
<imaginaryi/>
<apply><root/><cn>-1</cn><cn>2</cn></apply>
</apply>]]></property>
<example><![CDATA[<apply> <eq/>
<apply><power/>
<imaginaryi/>
<cn>2</cn>
</apply>
<cn>-1</cn>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_notanumber">
<name>notanumber</name>
<description>
<p>notanumber represents the result of an ill-defined floating point
operation, sometimes also called NaN.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>undefined</signature>
<example><![CDATA[<apply><eq/>
<apply><divide/><cn>0</cn><cn>0</cn></apply>
<notanumber/>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_true">
<name>true</name>
<description>
<p>
true represents the logical constant for truth.
</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>
CDATA
</attvalue>
<attdefault/>
</MMLattribute>
<signature>boolean constant</signature>
<property>
<description>
<p>
not true = false</p>
</description><![CDATA[
<apply><eq/>
<apply><not/><true/></apply>
<cn>false</cn>
</apply>]]></property>
<property>
<description>
<p>
For all boolean p, p or true is true</p>
</description><![CDATA[
<declare type="boolean"><ci>p</ci></declare>
<apply><forall/>
<bvar><ci>p</ci></bvar>
<apply><eq/>
<apply><or/><ci>p</ci><true/></apply>
<true/>
</apply>
</apply>
]]></property>
<example><![CDATA[<apply> <eq/>
<apply><or/>
<true/>
<ci type = "logical">P</ci>
</apply>
<true/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_false">
<name>false</name>
<description>
<p>false represents the logical constant for falsehood.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>boolean constant</signature>
<property>
<description>
<p>
not true = false</p>
</description><![CDATA[
<apply><eq/>
<apply><not/><true/></apply>
<false/>
</apply>]]></property>
<property>
<description>
<p>
p and false = false</p>
</description><![CDATA[
<declare type="boolean"><ci>p</ci></declare>
<apply><forall/>
<bvar><ci>p</ci></bvar>
<apply><and/><ci>p</ci><false/></apply>
<false/>
</apply>
]]></property>
<example><![CDATA[<apply><eq/>
<apply><and/>
<false/>
<ci type = "logical">P</ci>
</apply>
<false/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_emptyset">
<name>emptyset</name>
<description>
<p>emptyset represents the empty set.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>set</signature>
<property>
<description>
<p>
for all sets S, intersect(S,emptyset) = emptyset</p>
</description><![CDATA[
<apply><forall/><bvar><ci type="set">S</ci></bvar>
<apply><eq/>
<apply><intersect/><emptyset/><ci>S</ci></apply>
<emptyset/>
</apply>
</apply>]]></property>
<example><![CDATA[<apply><neq/>
<integers/>
<emptyset/>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_pi">
<name>pi</name>
<description>
<p>pi represents the mathematical constant which is the ratio of a circle's
circumference to its diameter, approximately 3.141592653.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>constant</signature>
<property><![CDATA[
<apply><approx/>
<cn>pi</cn>
<cn> 3.141592654 </cn>
</apply>
]]></property>
<property>
<description>
<p>
pi = 4 * the sum as j ranges from 0 to infinity of ((1/(4j+1))-(1/(4j+3))) </p>
</description><![CDATA[
]]></property>
<example><![CDATA[<apply><approx/>
<pi/>
<cn type = "rational">22<sep/>7</cn>
</apply>
]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_eulergamma">
<name>eulergamma</name>
<description>
<p>A symbol to convey the notion of the gamma constant as defined in Abramowitz and Stegun,
Handbook of Mathematical Functions, section 6.1.3. It is the limit of 1 + 1/2 + 1/3 + ... + 1/m - ln m
as m tends to infinity, this is approximately 0.5772 15664. </p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>real constant</signature>
<property>
<description>
<p>
gamma is approx. 0.5772156649</p>
</description><![CDATA[
<apply><approx/>
<eulergamma/>
<cn> .5772156649 </cn>
</apply>]]></property>
<property>
<description>
<p>gamma = limit_(m -> infinity)(sum_(j ranges from 1 to m)(1/j) - ln m) </p>
</description><![CDATA[
]]></property>
<example><![CDATA[<apply><approx/>
<eulergamma/>
<cn>0.5772156649</cn>
</apply>]]></example>
</MMLdefinition>
<MMLdefinition id="cedef_infinity">
<name>infinity</name>
<description>
<p>Infinity. Interpretation depends on the context.
The default value is the positive infinity used to extend the
real number line. The "type" attribute can be use to indicate
that this is a "complex" infinity.</p>
</description>
<classification>constant </classification>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue>URI identifying the definition</attvalue>
<attdefault>APPENDIX_C</attdefault>
</MMLattribute>
<MMLattribute>
<attname>encoding</attname>
<attvalue>CDATA</attvalue>
<attdefault>MathML</attdefault>
</MMLattribute>
<signature>constant</signature>
<property>
<description>
<p>
infinity/infinity is not defined.</p>
</description><![CDATA[
<apply><eq/>
<apply><divide/><infinity/><infinity/></apply>
<notanumber/>
</apply>]]></property>
<property>
<description>
<p>
for all reals x, x \lt infinity </p>
</description><![CDATA[
<apply><forall/>
<bvar><ci>n</ci></bvar>
<condition><apply><in/><ci>n</ci><reals/></apply></condition>
<apply><lt/><ci>n</ci><infinity/></apply>
</apply>]]></property>
<example><![CDATA[<apply><eq/>
<apply><limit/>
<bvar><ci>x</ci></bvar>
<condition><apply><tendsto/><ci>x</ci><infinity/></apply></condition>
<apply><divide/><cn>1</cn><ci>x</ci></apply>
</apply>
<cn>0</cn>
</apply>]]></example>
</MMLdefinition>
</div3>
</div2>
</div1>