# C Content Element Definitions

Overview: Mathematical Markup Language (MathML) Version 2.0 (2nd Edition)
Previous: B Content Markup Validation Grammar
Next: D Document Object Model for MathML

C Content Element Definitions
C.1.1 The Default Definitions
C.1.2 The Structure of an MMLdefinition.
C.2 Definitions of MathML Content Elements
C.2.1 Token Elements
C.2.1.1 cn
C.2.1.2 ci
C.2.1.3 csymbol
C.2.2 Basic Content Elements
C.2.2.1 apply
C.2.2.2 reln
C.2.2.3 fn
C.2.2.4 interval
C.2.2.5 inverse
C.2.2.6 sep
C.2.2.7 condition
C.2.2.8 declare
C.2.2.9 lambda
C.2.2.10 compose
C.2.2.11 ident
C.2.2.12 domain
C.2.2.13 codomain
C.2.2.14 image
C.2.2.15 domainofapplication
C.2.2.16 piecewise
C.2.2.17 piece
C.2.2.18 otherwise
C.2.3 Arithmetic Algebra and Logic
C.2.3.1 quotient
C.2.3.2 factorial
C.2.3.3 divide
C.2.3.4 max
C.2.3.5 min
C.2.3.6 minus
C.2.3.7 plus
C.2.3.8 power
C.2.3.9 rem
C.2.3.10 times
C.2.3.11 root
C.2.3.12 gcd
C.2.3.13 and
C.2.3.14 or
C.2.3.15 xor
C.2.3.16 not
C.2.3.17 implies
C.2.3.18 forall
C.2.3.19 exists
C.2.3.20 abs
C.2.3.21 conjugate
C.2.3.22 arg
C.2.3.23 real
C.2.3.24 imaginary
C.2.3.25 lcm
C.2.3.26 floor
C.2.3.27 ceiling
C.2.4 Relations
C.2.4.1 eq
C.2.4.2 neq
C.2.4.3 gt
C.2.4.4 lt
C.2.4.5 geq
C.2.4.6 leq
C.2.4.7 equivalent
C.2.4.8 approx
C.2.4.9 factorof
C.2.5 Calculus and Vector Calculus
C.2.5.1 int
C.2.5.2 diff
C.2.5.3 partialdiff
C.2.5.4 lowlimit
C.2.5.5 uplimit
C.2.5.6 bvar
C.2.5.7 degree
C.2.5.8 divergence
C.2.5.10 curl
C.2.5.11 laplacian
C.2.6 Theory of Sets
C.2.6.1 set
C.2.6.2 list
C.2.6.3 union
C.2.6.4 intersect
C.2.6.5 in
C.2.6.6 notin
C.2.6.7 subset
C.2.6.8 prsubset
C.2.6.9 notsubset
C.2.6.10 notprsubset
C.2.6.11 setdiff
C.2.6.12 card
C.2.6.13 cartesianproduct
C.2.7 Sequences and Series
C.2.7.1 sum
C.2.7.2 product
C.2.7.3 limit
C.2.7.4 tendsto
C.2.8 Elementary Classical Functions
C.2.8.1 exp
C.2.8.2 ln
C.2.8.3 log
C.2.8.4 sin
C.2.8.5 cos
C.2.8.6 tan
C.2.8.7 sec
C.2.8.8 csc
C.2.8.9 cot
C.2.8.10 sinh
C.2.8.11 cosh
C.2.8.12 tanh
C.2.8.13 sech
C.2.8.14 csch
C.2.8.15 coth
C.2.8.16 arcsin
C.2.8.17 arccos
C.2.8.18 arctan
C.2.8.19 arccosh
C.2.8.20 arccot
C.2.8.21 arccoth
C.2.8.22 arccsc
C.2.8.23 arccsch
C.2.8.24 arcsec
C.2.8.25 arcsech
C.2.8.26 arcsinh
C.2.8.27 arctanh
C.2.9 Statistics
C.2.9.1 mean
C.2.9.2 sdev
C.2.9.3 variance
C.2.9.4 median
C.2.9.5 mode
C.2.9.6 moment
C.2.10 Linear Algebra
C.2.10.1 vector
C.2.10.2 matrix
C.2.10.3 matrixrow
C.2.10.4 determinant
C.2.10.5 transpose
C.2.10.6 selector
C.2.10.7 vectorproduct
C.2.10.8 scalarproduct
C.2.10.9 outerproduct
C.2.11 Constants and Symbol Elements
C.2.11.1 integers
C.2.11.2 reals
C.2.11.3 rationals
C.2.11.4 naturalnumbers
C.2.11.5 complexes
C.2.11.6 primes
C.2.11.7 exponentiale
C.2.11.8 imaginaryi
C.2.11.9 notanumber
C.2.11.10 true
C.2.11.11 false
C.2.11.12 emptyset
C.2.11.13 pi
C.2.11.14 eulergamma
C.2.11.15 infinity

## C.1 About Content Markup Elements

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 default 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.

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.

1. 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.

2. In most cases, the translation of a mathematical definition into a new notation is an inappropriate use of an author's energy and time.

3. 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).

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, F is an unknown but differentiable function from the real numbers to the real numbers, or as complicated as requiring that F 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.

### C.1.1 The Default Definitions

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.

Definitions are overridden in a particular instance by making use of the definitionURL 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 definitionURL'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 semantics element to establish a correspondence between two encodings. Whatever format is chosen, the only requirement is that some sort of definition be indicated.

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 content dictionaries. While the actual details differ somewhat from the OpenMath specification, the underlying principles are the same.

Several of the definitions provided here refer to one or more of the standard mathematical references Abramowitz and Stegun [Abramowitz1997] and Standard Mathematical Tables and Formulae [Zwillinger1988].

### C.1.2 The Structure of an MMLdefinition.

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.

The top element is MMLdefinition. The sub-elements identify the various parts of the description and include:

name

PCDATA providing the name of the MathML element.

description

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.

classification

Each MathML element must be classified according to its mathematical role.

punctuation

Some elements exist simply as an aid to parsing. For example the sep element is used to separate the CDATA defining a rational number into two parts in a manner that is easily parsed by an XML application. These objects are referred to as punctuation.

descriptor

Some elements exist simply to modify the properties of an existing element or mathematical object. For example the declare 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 descriptors and the type of the resulting object is the same as that of element being modified, but with the new attribute values.

function (operator)

The traditional mathematical functions and operators are represented in MathML by empty XML elements such as plus and sin. These function elements can be assigned alternative definitions (indicating, for example, that they represent operations on elements from some author defined algebra) through use of the definitionURL attribute. They can be included in expressions on their own such as when discussing the properties of a function, or they can be applied to arguments using apply. J function 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 applied to arguments using apply. J The latter case is referred to as function application.

Functions are often classified according to how they are used. For example the plus element is an n-ary operator. This additional information is captured by the signature. The signature of a function (see below) describes how it is to be used a mathematical function inside an apply element. Each combination of types of function arguments used inside an apply gives rise to an apply element of a given type.

constant

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.

constructor

The remaining objects that "contain" sub-elements are all object constructors 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 lambda element constructs a function definition from a list of variables and an expression. while the apply element constructs a function application. By function application we mean the result of applying the first element of the apply (the function) to the zero or more remaining elements (the arguments). A function application represents an object in the range of the function.

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.

MMLattribute

Some of the XML attributes of a MathML content element have a direct impact on the mathematical semantics of the object. For example the type attribute of the cn 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.

signature

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.

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 apply. Modifiers modify the attributes of an existing object. For example, a symbol might become a symbol of type vector.

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:

[<attribute name>=<attribute-value>]( <list of argument types> )
--> <mathematical result type>(<mathematical subtype>)

The MMLattributes, if any, appear in the form <name>=<value>. 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.

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 <elementname>=<type> in a manner analogous for that used for attribute values. For example, if the argument is named (e.g. bvar) then it is represented in the signature by an equation as in:

[<attribute name>=<attributevalue>]( bvar=symbol,<argument list> ) -->
<mathematical result type>(<mathematical subtype>)

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 cn), or a name such as string or the name of a MathML constructor. Various collections of types such as anything, matrixtype are used from time to time. The type name mmlpresentation is used to represent any valid MathML presentation object and the name MathMLtype is used to describe the collection of all MathML types. The type algebraic is used for expressions constructed from one or more symbols through arithmetic operations and interval-type 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.

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.

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 plus 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.

example

Examples of the use of this object in MathML are included in these elements.

property

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 value or approx (approximation) element that contains a MathML description of this particular value. More elaborate conditions on the object are expressed using the MathML syntax.

comment

These elements contain only PCDATA and can occur as a child of the MMLdefinition at any point.

## C.2 Definitions of MathML Content Elements

### C.2.1 Token Elements

#### C.2.1.1 MMLdefinition: cn

Description

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 e-notationJ, rational and complex, require two parts for a complete specification. The parts of such a number are separated by an empty sep element.

Many of the commonly occurring numeric constants such as &pi; have their own elements.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type integer | rational | complex-cartesian | complex-polar | real | e-notationJ | MathMLtype real
base integer between 2 and 36 10
Signature

[type=integer](numstring) -> constant(integer)

[base=base-value](numstring) -> constant(integer)

[type=rational](numstring,numstring) -> constant(rational)

[type=complex-cartesian](numstring,numstring) -> constant(complex)

[type=e-notation](numstring,numstring) -> constant(e-notation)

J

[type=complex-polar](numstring,numstring) -> constant(rational)

J

[definitionURL=definition](numstring*) -> constant(user-defined)

Property
<apply><eq/><cn base="16"> A </cn><cn> 10 </cn></apply>
Property
<apply><eq/><cn base="16"> B </cn><cn> 11 </cn></apply>
Property
<apply><eq/><cn base="16"> C </cn><cn> 12 </cn></apply>
Property
<apply><eq/><cn base="16"> D </cn><cn> 13 </cn></apply>
Property
<apply><eq/><cn base="16"> E </cn><cn> 14 </cn></apply>
Property
<apply><eq/><cn base="16"> F </cn><cn> 15 </cn></apply>
Example
<cn> 245 </cn>
Example
<cn type="integer"> 245 </cn>
Example
<cn type="integer" base="16"> A </cn>
Example
<cn type="rational"> 245 <sep/> 351 </cn>
Example
<cn type="complex-cartesian"> 1 <sep/> 2 </cn>
Example
<cn> 245 </cn>
Example
<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>

#### C.2.1.2 MMLdefinition: ci

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type constant | matrix | set | vector | list | MathMLtype real
Signature

({string|mmlpresentation}) -> symbol

[type=typename]({string|mmlpresentation}) -> symbol(typename)

Example
<ci> xyz </ci>
Example
<ci type="vector"> v </ci>

#### C.2.1.3 MMLdefinition: csymbol

Description

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.

Classification
constant function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

[definitionURL=definition]({string|mmlpresentation}) -> defined_symbol

[type=typename]({string|mmlpresentation}) -> defined_symbol(typename)

Example
<csymbol definitionURL=".../mydefinitionofPi">&pi;</csymbol>

### C.2.2 Basic Content Elements

#### C.2.2.1 MMLdefinition: apply

Description

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.)

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function,anything*) -> apply

Example
<apply><plus/>
<ci>x</ci>
<cn>1</cn>
</apply>
Example
<apply><sin/>
<ci>x</ci>
</apply>

#### C.2.2.2 MMLdefinition: reln

Description

This constructor has been deprecated. All uses of reln are replaced by apply.

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function,anything*) -> reln

Example

No examples of deprecated constructions are provided.

#### C.2.2.3 MMLdefinition: fn

Description

This constructor has been deprecated.

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(anything) -> function

[definitionURL=functiondef](anything) ->function

Example

No examples of deprecated constructions are provided.

#### C.2.2.4 MMLdefinition: interval

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
type closed | open | open-closed | closed-open closed
Signature

[type=interval-type](expression,expression) -> interval(interval-type)

Example
<interval closure="open">
<ci>x</ci>
<cn>1</cn>
</interval>J
Example
<interval closure="open-closed">
<cn>0</cn>
<cn>1</cn>
</interval>J

#### C.2.2.5 MMLdefinition: inverse

Description

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.

Classification
operator
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> function

[definitionURL=URI](function) -> function(definition)

Property

ForAll( y, such y in domain( f^(-1) ), f( f^(-1)(y) ) = y

<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>
Example
<apply><inverse/>
<sin/>
</apply>
Example
<apply><inverse definitionURL="www.example.com/MathML/Content/arcsin"/>
<sin/>
</apply>

#### C.2.2.6 MMLdefinition: sep

Description

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.

Classification
punctuation
Example
<cn type="complex-polar">123<sep/>456</cn>
Example
<cn>123</cn>

#### C.2.2.7 MMLdefinition: condition

Description

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.

You can build compound conditions by applying operators such as "and" or "or" .

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(apply) -> predicate

Example
<condition>
<apply><lt/>
<apply><power/><ci>x</ci><cn>5</cn></apply>
<cn>3</cn>
</apply>
</condition>

#### C.2.2.8 MMLdefinition: declare

Description

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.

The attribute values of the declare statement itself become the default attribute values of the first argument of the declare.

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)

Classification
modifier
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLtype none
nargs number of arguments for an object of operator *
occurrence infix | prefix prefix
Signature

[(attributename=attributevalue)*](anything) -> [(attributename=attributevalue)*](anything)

[(attributename=attributevalue)*](anything,anything) -> [(attributename=attributevalue)*](anything)

(anything,anything) -> (anything)

Example
<declare>
<ci>y</ci>
<apply><plus/><ci>x</ci><cn>3</cn></apply>
</declare>
Example
<declare type="vector"> <ci> V </ci> </declare>
Example
<declare type="vector">
<ci> V </ci>
<vector><cn> 1 </cn><cn> 2 </cn><cn> 3 </cn></vector>
</declare>

#### C.2.2.9 MMLdefinition: lambda

Description

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.

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.

Note that a lambda expression on an arbitrary function applied to a simple argument is equivalent to that arbitrary function.

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(bvar*,anything) -> function

Property

ForAll( F, lambda(x,F(x)) = F )

<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>
Example
<lambda>
<bvar><ci>x</ci></bvar>
<apply><sin/><apply><plus/><ci> x </ci><cn> 3 </cn></apply></apply>
</lambda>

#### C.2.2.10 MMLdefinition: compose

Description

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.

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:

(f @ g )( x ) == f( g(x) ).

This function is often denoted by a small circle infix operator.

Classification
function
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function*) -> function

Property

ForAll( x, (f@g)(x) = f(g(x) )

<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>
Example

The use of fn is deprecated. Use type="function" instead.

<apply><compose/>
<ci type="function"> f </ci>
<ci type="function"> g </ci>
<sin/>
</apply>

#### C.2.2.11 MMLdefinition: ident

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

function

Property

ForAll( x, ident(x) = x )

<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><ident/><ci>x</ci></apply>
<ci>x</ci>
</apply>
</apply>
Example
<apply><eq/>
<apply><compose/>
<ci type="function"> f </ci>
<apply><inverse/><ci type="function"> f </ci></apply>
</apply>
<ident/>
</apply>

#### C.2.2.12 MMLdefinition: domain

Description

The domain element denotes the domain of a given function, which is the set of values over which it is defined.

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
function
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> set

Example
<apply><eq/>
<apply><domain/><ci>f</ci></apply>
<reals/>
</apply>

#### C.2.2.13 MMLdefinition: codomain

Description

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.

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
function
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> set

Property

ForAll( y, y =f(x), member(y,codomain(f)) )

Example
<apply><eq/>
<apply><codomain/><ci>f</ci></apply>
<rationals/>
</apply>

#### C.2.2.14 MMLdefinition: image

Description

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.

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
function
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> set

Property

ForAll( x, x in codomain(f), ThereExists(y,f(y)=x) )

Example
<apply><eq/>
<apply><image/><sin/></apply>
<interval><cn>-1</cn><cn> 1</cn></interval>
</apply>

#### C.2.2.15 MMLdefinition: domainofapplication

Description

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

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
function
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> set

Example
<apply><int/>
<domainofapplication><ci>C</ci></domainofapplication>
<ci>f </ci>
</apply>

#### C.2.2.16 MMLdefinition: piecewise

Description

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.

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(piece*, otherwise) -> algebraic

Property

ForAll( x, x in domain(f), the evaluation rules collectively produce at most one value in codomain(f) )

Example
<piecewise>
<piece><cn> 0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece>
<otherwise><ci>x</ci></otherwise>
</piecewise>
Example

The value of the abs function evaluated at x can be written as:

<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>

#### C.2.2.17 MMLdefinition: piece

Description

The piece element is used to construct the conditionally defined values as part of a piecewise object.

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(algebraic,boolean) -> piece

Example
<piecewise>
<piece><cn>0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece>
<otherwise><ci>x</ci></otherwise>
</piecewise>

#### C.2.2.18 MMLdefinition: otherwise

Description

The otherwise element is used to describe the value of a piecewise construct when none of the conditions of the associated pieces are satisfied.

To override the default semantics for this element, or to associate a more specific definition, use the definitionURL and encoding attributes

Classification
constructor
MMLattribute
Name Value Default
definitionURL a URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(algebraic) -> algebraic

Example
<piecewise>
<piece><cn> 0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece>
<otherwise><ci>x</ci></otherwise>
</piecewise>

### C.2.3 Arithmetic Algebra and Logic

#### C.2.3.1 MMLdefinition: quotient

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

(integer, integer) -> integer

Property

ForAll( [a,b], b != 0, a = b*quotient(a,b) + rem(a,b) )

<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>
Example
<apply><quotient/>
<ci> a </ci>
<ci> b </ci>
</apply>
Example
<apply>
<quotient/>
<cn>5</cn>
<cn>4</cn>
</apply>

#### C.2.3.2 MMLdefinition: factorial

Description

This is the unary operator used to construct factorials. Factorials are defined by n! = n*(n-1)* ... * 1

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

(algebraic) -> algebraic

(integer) -> integer

Property

ForAll( n, n \gt 0, n! = n*(n-1)! )

<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

0! = 1

<apply><eq/>J
<apply><factorial/><cn>0</cn></apply>
<cn>1</cn>
</apply>
Example
<apply><factorial/>
<ci>n</ci>
</apply>

#### C.2.3.3 MMLdefinition: divide

Description

This is the binary MathML operator that is used indicate the mathematical operation a "divided by" b.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(complex, complex) -> complex

(real, real) -> real

(rational, rational) -> rational

(integer, integer) -> rational

Property

Division by Zero error

<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><divide/><ci> a </ci><cn> 0 </cn></apply>J
<notanumber/>
</apply>J
</apply>
Property

ForAll( a, a!= 0, a/a = 1 )

<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>
Example
<apply><divide/>
<ci> a </ci>
<ci> b </ci>
</apply>

#### C.2.3.4 MMLdefinition: max

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(ordered_set_element*) -> ordered_set_element

(bvar,condition,anything) -> anything

Property

ForAll( x in S, max(y in S,y) \geq x )

Example

Maximum of a finite listing of elements

<apply><max/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
Example

Max(y^3, y in (0,1))

<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>

#### C.2.3.5 MMLdefinition: min

Description

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.

The elements must all be comparable if the result is to be well defined.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(ordered_set_element*) -> ordered_set_element

(bvar,condition,anything) -> ordered_set_element

Example

Minimum of a finite listing of elements

<apply><min/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
Example

min(y^2, y in (0,1))

<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>

#### C.2.3.6 MMLdefinition: minus

Description

This is the subtraction operator for an additive group.

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(real) -> real

(real,real) -> real

[type=MathMLtype](MathMLtype) -> MathMLtype

[type=MathMLtype](MathMLtype,MathMLtype) -> MathMLtype

(set,set) -> set

(multiset,multiset) -> multiset

Property

ForAll( x, x-x=0 )

<apply><forall/>
<bvar><ci> x </ci></bvar>
<apply><eq/>
<apply><minus/><ci> x </ci><ci> x </ci></apply>
<cn>0</cn>
</apply>
</apply>
Example
<apply><minus/>
<cn>3</cn>
<cn>5</cn>
</apply>
Example
<apply><minus/>
<cn>3</cn>
</apply>

#### C.2.3.7 MMLdefinition: plus

Description

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.

To use different type coercion rules different from those indicated by the signatures, use the definitionURL attribute to identify a new definition.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

[type=MathMLtype](anything*) -> MathMLtype

(set*) -> set

(multiset*) -> multiset

(real*) -> real

(complex*) -> complex

(integer*) -> integer

Property

an sum of no terms is 0

<apply><eq/>
<apply><plus/></apply>
<cn>0</cn>
</apply>
Property

a sum of one term is equal to itself

<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><plus/><ci>a</ci></apply>
<cn>a</cn>
</apply>
</apply>
Property

CommutativityJ

<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>
Example
<apply><plus/>
<cn>3</cn>
</apply>
Example
<apply><plus/>
<cn>3</cn>
<cn>5</cn>
</apply>
Example
<apply><plus/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply>

#### C.2.3.8 MMLdefinition: power

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(complex, complex) -> complex

(real, real) -> complex

(rational, integer) -> rational

(integer, integer) -> rational

[type=MathMLtype](anything,anything) -> MathMLtype

Property

ForAll( a, a!=0, a^0=1 )

<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

ForAll( a, a^1=a )

<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><power/><ci>a</ci><cn>1</cn></apply>
<ci>a</ci>
</apply>
</apply>
Property

ForAll( a, 1^a=1 )

<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><power/><cn>1</cn><ci>a</ci></apply>
<cn>1</cn>
</apply>
</apply>
Example
<apply><power/><cn>2</cn><ci>x</ci></apply>
Example
<apply><power/><ci> x </ci><cn> 3 </cn></apply>

#### C.2.3.9 MMLdefinition: rem

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

(integer, integer) -> integer

[type=MathMLtype](MathMLtype,MathMLtype) -> MathMLtype

Property

rem(a, 0) is undefined

Property

ForAll( [a,b], b!=0, a = b*quotient(a,b) + rem(a,b))

<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>J
</apply>
Example
<apply><rem/><ci> a </ci><ci> b </ci></apply>

#### C.2.3.10 MMLdefinition: times

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(complex*) -> complex

(real*) -> real

(rational*) -> rational

(integer*) -> integer

Property

ForAll( [a,b], condition(in({a,b}, Commutative)), a*b=b*a )

Property

ForAll( [a,b,c], Associative, a*(b*c)=(a*b)*c ), associativity

Property

multiplicative identity

<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><times/><cn>1</cn><ci>a</ci></apply>
<ci>a</ci>
</apply>
</apply>
Property

a*0=0

Property

Commutative property

<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

a*0=0

<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><times/><cn>0</cn><ci>a</ci></apply>
<cn>0</cn>
</apply>
</apply>
Example
<apply>
<times/>
<ci> a </ci>
<ci> b </ci>
</apply>

#### C.2.3.11 MMLdefinition: root

Description

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)

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type real | complex | principal_branch | MathMLType real
Signature

(anything) -> root(degree(2),anything)

J

(degree,anything) -> root

J
Property

ForAll( bvars(a,n), root(degree(n),a)J = a^(1/n) )

Example

nth root of a

<apply><root/>
<degree>J<ci> n </ci></degree>J
<ci> a </ci>
</apply>

#### C.2.3.12 MMLdefinition: gcd

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

[type=MathMLtype](MathMLtype*) ->MathMLtype

(integer*) -> integer

Property
<apply><forall/>
<forall/>J
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><gcd/>
<ci>x</ci>
<cn>1</cn>
</apply>
<cn>1</cn>
</apply>
</apply>
Example
<apply><gcd/>
<cn>12</cn>
<cn>17</cn>
</apply>
Example
<apply><gcd/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply>

#### C.2.3.13 MMLdefinition: and

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(boolean*) -> boolean

Property

ForAll( p, (true and p = p) )

Property

ForAll( [p,q], (p and q = q and p) )

Property

x and not(x) = false

Example
<apply><and/>
<ci>p</ci>
<ci>q</ci>
</apply>

#### C.2.3.14 MMLdefinition: or

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(boolean*) -> boolean

[type="boolean"](symbolic*) -> boolean

Example
<apply>
<or/>
<ci> a </ci>
<ci> b </ci>
</apply>

#### C.2.3.15 MMLdefinition: xor

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(boolean*) -> boolean

[type="boolean"](symbolic*) -> symbolic

Property

x xor x = false

Property

x xor not(x) = true

Example
<apply>
<xor/>
<ci> a </ci>
<ci> b </ci>
</apply>

#### C.2.3.16 MMLdefinition: not

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(boolean) -> boolean

[type="boolean"](algebraic) -> boolean

Example
<apply>
<not/>
<ci> a </ci>
</apply>

#### C.2.3.17 MMLdefinition: implies

Description

This is the binary "implies" operator. It is used to construct the logical expression "A implies B".

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(boolean,boolean) -> boolean

Property

false implies x

Example
<apply>
<implies/>
<ci> A </ci>
<ci> B </ci>
</apply>

#### C.2.3.18 MMLdefinition: forall

Description

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).

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(bvar*,condition?,apply) -> boolean

(bvar*,condition?,(reln)) -> boolean

Example
<apply>
<forall/>
<bvar><ci> x </ci></bvar>
<apply><eq/>
<apply>
<minus/><ci> x </ci><ci> x </ci>
</apply>
<cn>0</cn>
</apply>
</apply>

#### C.2.3.19 MMLdefinition: exists

Description

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."

- The first argument indicates the bound variable,

- The second optional argument places conditions on that bound variable.

- The last argument is the expression that is asserted to be true.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType boolean
Signature

(element,set) ->boolean

Example
<apply><exists/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><ci>f</ci>
<ci>x</ci>
</apply>
<cn>0</cn>
</apply>
</apply>

#### C.2.3.20 MMLdefinition: abs

Description

A unary operator which represents the absolute value of its argument. In the complex case this is often referred to as the modulus.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(real) -> real

(complex) -> real

Property

for all x and y, abs(x) + abs(y) >= abs(x+y)

Example
<apply><abs/><ci>x</ci></apply>

#### C.2.3.21 MMLdefinition: conjugate

Description

The unary "conjugate" arithmetic operator is used to represent the complex conjugate of its argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(algebraic) -> algebraic

(complex) -> complex

Example
<apply><conjugate/>
<apply><plus/>
<ci> x </ci>
<apply><times/>
<imaginaryi/>
<ci> y </ci>
</apply>
</apply>
</apply>

#### C.2.3.22 MMLdefinition: arg

Description

The unary "arg" operator is used to construct an expression which represents the "argument" of a complex number.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(complex) -> real

Example
<apply><arg/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>

#### C.2.3.23 MMLdefinition: real

Description

A unary operator used to construct an expression representing the "real" part of a complex number.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(complex) -> real

Property

ForAll( [x,y], x in R, Y in R, real(x+i*y)=x) )

<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>
Example
<apply><real/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>

#### C.2.3.24 MMLdefinition: imaginary

Description

The unary function used to construct an expression which represents the imaginary part of a complex number.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(complex) -> real

Property

ForAll( [x,y], Imaginary(x + i*y) = y )

<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>
Example
<apply><imaginary/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>

#### C.2.3.25 MMLdefinition: lcm

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

[type=MathMLtype](MathMLtype*) -> MathMLtype

(integer*) -> integer

(algebraic*) -> algebraic

Property

ForAll( x, lcm(x,1)=x )

<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><lcm/><ci>x</ci><cn>1</cn></apply>
<ci>x</ci>
</apply>
</apply>
Example
<apply><lcm/>
<cn>12</cn>
<cn>17</cn>
</apply>
Example
<apply><lcm/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply>

#### C.2.3.26 MMLdefinition: floor

Description

The floor element is used to denote the round-down (towards -infinity) operator.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

(real) -> integer

[type=MathMLtype](orderedset_element) -> orderedset_element

Property

ForAll( x, floor(x) <= x )

<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><leq/>
<apply><floor/>
<ci>x</ci>
</apply>
<ci>x</ci>
</apply>
</apply>
Example
<apply> <floor/>
<ci> a </ci>
</apply>

#### C.2.3.27 MMLdefinition: ceiling

Description

The ceiling element is used to denote the round-up (towards +infinity) operator.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

(real) -> integer

[type=MathMLtype](orderedset_element) -> orderedset_element

Property

ForAll( x, ceiling(x) >= x )

<apply><forall/>
<bvar><ci>x</ci></bvar>
<apply><geq/>
<apply><ceiling/>
<ci>x</ci>
</apply>
<ci>x</ci>
</apply>
</apply>
Example
<apply> <ceiling/>
<ci> a </ci>
</apply>

### C.2.4 Relations

#### C.2.4.1 MMLdefinition: eq

Description

This n-ary function is used to indicate that two or more quantities are equal. There must be at least two arguments.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(real,real+) -> boolean

(boolean, boolean+) -> boolean

(set,set+) -> set

(multiset,multiset+) -> multiset

Property

Symmetric

Property

Transitive

Property

Reflexive

Example
<apply><eq/>
<cn type="rational">2<sep/>4</cn><cn type="rational">1<sep/>2</cn>
</apply>
Example
<apply><eq/><ci type="set">A</ci><ci type="set">B</ci></apply>
Example
<apply><eq/><ci type="multiset">A</ci><ci type="multiset">B</ci></apply>

#### C.2.4.2 MMLdefinition: neq

Description

This binary function represents the relation "not equal to" which returns true unless the two arguments are equal.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(real,real) -> boolean

(boolean,boolean) -> boolean

(set,set) -> set

(multiset,multiset) -> multiset

Property

Symmetric

Example
<apply><neq/><cn>3</cn><cn>4</cn></apply>

#### C.2.4.3 MMLdefinition: gt

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(real,real+) -> boolean

Property

Transitive

Example
<apply><gt/><cn>3</cn><cn>2</cn></apply>

#### C.2.4.4 MMLdefinition: lt

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(real,real+) -> boolean

Property

Transitive

Example
<apply><lt/><cn>2</cn><cn>3</cn><cn>4</cn></apply>

#### C.2.4.5 MMLdefinition: geq

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(real,real+) -> boolean

Property

Transitive

Property

Reflexive

Example
<apply><geq/><cn>4</cn><cn>3</cn><cn>3</cn></apply>

#### C.2.4.6 MMLdefinition: leq

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(real,real+) -> boolean

Property

Transitive

Property

Reflexive

Example
<apply><leq/><cn>3</cn><cn>3</cn><cn>4</cn></apply>

#### C.2.4.7 MMLdefinition: equivalent

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(logical,logical+) -> boolean

Property

Symmetric

Property

Transitive

Property

Reflexive

Example
<apply><equivalent/>
<ci>a</ci>
<apply><not/>
<apply>J<not/><ci>a</ci></apply>
</apply>
</Japply>

#### C.2.4.8 MMLdefinition: approx

Description

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..

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType real
Signature

(real,real+) -> boolean

Property

Symmetric

Property

Transitive

Property

Reflexive

Example
<apply><approx/><pi/><cn type="rational">22<sep/>7</cn></apply>

#### C.2.4.9 MMLdefinition: factorof

Description

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

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type MathMLType integer
Signature

(integer, integer) -> boolean

Property

ForAll( [a,b], a and b integers, a divides b if there is an integer c such that a*c = b )

Example
<apply><factorof/>
<ci> a </ci>
<ci> b </ci>
</apply>

### C.2.5 Calculus and Vector Calculus

#### C.2.5.1 MMLdefinition: int

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> function

(bvar,algebraic) -> algebraic

(bvar,interval,algebraic) -> algebraic

(bvar,condition,algebraic) -> algebraic

(bvar,lowlimit,uplimit,algebraic) -> algebraic

Example
<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
<apply><int/>
<bvar><ci> x </ci></bvar>
<interval><ci> a </ci><ci> b </ci></interval>
<apply><cos/><ci> x </ci></apply>
</apply>
Example
<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>

#### C.2.5.2 MMLdefinition: diff

Description

This occurs in two forms, one for functions and one for expressions involving a bound variable.

For expressions in the bound variable x, the expression to be differentiated follows the bound variable.

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' .

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type function | algebraic algebraic
Signature

(bvar,algebraic) -> algebraic

(function) -> function

Property

ForAll( [x,n], n!=0, diff( x^n , x ) = n*x^(n-1) )

Example

diff( sin(x) , x ) = cos(x)

<apply><eq/>
<apply><diff/>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>
<apply><cos/><ci>x</ci></apply>
</apply>
Example

diff(x^2,x)

<apply><diff/>
<bvar><ci>x</ci></bvar>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>
Example

diff(f(x),x)

<apply><diff/><bvar><ci> x </ci></bvar>
<apply><ci type="function"> f </ci><ci> x </ci></apply>
</apply>
Example

diff(sin) = cos

<apply><eq/><apply><diff/><sin/></apply><cos/></apply>

#### C.2.5.3 MMLdefinition: partialdiff

Description

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$ )

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.

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type function | algebraic algebraic
Signature

(bvar+,degree?,algebraic) -> algebraic

J

(vector,function) -> function

Property

ForAll( [x,y], diff( x * y , x ) = diff(x,x)*y + diff(y,x)*x )

Property

ForAll( [x,a,b], diff( a + b , x ) = diff(a,x) + diff(b,x) )

Property

diff(sin) = cos

Example

d^k/(dx^m dy^n) f(x,y)

<apply><partialdiff/>
<bvar><ci> x </ci><degree><ci> m </ci></degree></bvar>
<bvar><ci> y </ci><degree><ci> n </ci></degree></bvar>
<degree><ci>k</ci></degree>
<apply><ci type="function"> f </ci>
<ci> x </ci>
<ci> y </ci>
</apply>
</apply>
Example

d^2/(dx dy) f(x,y)

<apply><partialdiff/>
<bvar><ci> x </ci></bvar>
<bvar><ci> y </ci></bvar>
<apply><ci type="function"> f </ci>
<ci> x </ci>
<ci> y </ci>
</apply>
</apply>
Example

D_{1,1,3}(f)

<apply><partialdiff/>
<list><cn>1</cn><cn>1</cn><cn>3</cn></list>
<ci type="function">f</ci>
</apply>

#### C.2.5.4 MMLdefinition: lowlimit

Description

Construct a lower limit. Upper and lower limits are used in some integrals as alternative way of describing the interval

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(algebraic+) -> lowlimit

Example

See int

#### C.2.5.5 MMLdefinition: uplimit

Description

Construct an upper limit. Upper and lower limits are used in some integrals as alternative way of describing the interval

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(algebraic+) -> uplimit

Example

See int

#### C.2.5.6 MMLdefinition: bvar

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(symbol,degree?) -> bvar

Example
<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
<apply><diff/>
<bvar><ci>x</ci><degree><cn>2</cn></degree></bvar>
<apply><power/><ci>x</ci><cn>5</cn></apply>
</apply>

#### C.2.5.7 MMLdefinition: degree

Description

A parameter used by some MathML data-types to specify that, for example, a bound variable is repeated several times.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(anything) -> degree

Example
<apply><diff/>
<bvar><ci>x</ci><degree><cn>2</cn></degree></bvar>
<apply><power/><ci>x</ci><cn>5</cn></apply>
</apply>

#### C.2.5.8 MMLdefinition: divergence

Description

This symbol is used to represent the divergence function.

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:

divergence(F) = \partial(F_(x_1))/\partial(x_1) + ... + \partial(F_(x_n))/\partial(x_n)

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(vector(function)) -> function

(bvar+,vector(algebraic)) -> algebraic

Example
<apply><divergence/><ci type="vector"> E</ci></apply>
Example
<declare><ci>F</ci><vector><ci>f1</ci><ci>f2</ci><ci>f3</ci></vector></declare>
<apply><divergence/><ci>F</ci></apply>
Example
<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

If a is a vector field defined inside a closed surface S enclosing a volume V, then the divergence of a is given by

<apply>
<eq/>
<apply><divergence/><ci type="vectorfield">a</ci></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>

J

Description

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 )

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> vector(function)

(bvar+,algebraic) -> vector(algebraic)

Example
Example

<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>
J

#### C.2.5.10 MMLdefinition: curl

Description

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.

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.

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:

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(bvar,bvar,bvar,algebraic) -> vector(algebraic)

(vector(function) ) -> vector(function)

Property

curl(F) = i X \partial(F)/\partial(x) + j X \partial(F)/\partial(y) + j X \partial(F)/\partial(Z)

Example
<apply>
<curl/>
<ci type="vector" > f</ci>
</apply>

#### C.2.5.11 MMLdefinition: laplacian

Description

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.

laplacian(F) = \partial^2(F)/\partial(x_1)^2 + ... + \partial^2(F)/\partial(x_n)^2

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(bvar+,algebraic) -> algebraic

(scalar_valued_function) -> scalar_valued_function

Example
<apply><laplacian/><ci type="vector"> E</ci></apply>
Example
<declare><ci>F</ci><vector><ci>f1</ci><ci>f2</ci><ci>f3</ci></vector></declare>
<apply><laplacian/><ci>F</ci></apply>
Example
<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>

### C.2.6 Theory of Sets

#### C.2.6.1 MMLdefinition: set

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type set | multiset set
Signature

(anything*) -> set

(bvar,condition,anything) -> set

Example
<set>
<ci> a </ci>
<ci> b </ci>
<ci> c </ci>
</set>
Example
<set>
<bvar><ci> x </ci></bvar>
<condition>
<apply><lt/>
<ci> x </ci>
<cn> 5 </cn>
</apply>
</condition>
</set>

#### C.2.6.2 MMLdefinition: list

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
order lexicographic | numeric none
Signature

(anything*) -> list

(bvar,condition,anything) -> list

[order=ordering](bvar,condition,anything) -> list(ordering)

Example
<list>
<ci> a </ci>
<ci> b </ci>
<ci> c </ci>
</list>
Example
<list order="numeric">
<bvar><ci> x </ci></bvar>
<condition>
<apply><lt/>
<ci> x </ci>
<cn> 5 </cn>
</apply>
</condition>
</list>

#### C.2.6.3 MMLdefinition: union

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set*) -> set

(multiset+) -> multiset

Example
<apply><union/>
<ci> A </ci>
<ci> B </ci>
</apply>

#### C.2.6.4 MMLdefinition: intersect

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set+) -> set

(multiset+) -> multiset

Example
<apply><intersect/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>

#### C.2.6.5 MMLdefinition: in

Description

The in element is the relational operator used for a set-theoretic inclusion ('is in' or 'is a member of').

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(anything,set) -> boolean

(anything,multiset) -> boolean

Example
<apply><in/>
<ci> a </ci>
<ci type="set"> A </ci>
</apply>

#### C.2.6.6 MMLdefinition: notin

Description

The notin element is the relational operator element used to construct set-theoretic exclusion ('is not in' or 'is not a member of').

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(anything,set) -> boolean

(anything,multiset) -> boolean

Example
<apply><notin/>
<ci> a </ci>
<ci type="set"> A </ci>
</apply>

#### C.2.6.7 MMLdefinition: subset

Description

The subset element is the relational operator element for a set-theoretic containment ('is a subset of').

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set,set) -> boolean

(multiset,multiset) -> boolean

Example
<apply><subset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>

#### C.2.6.8 MMLdefinition: prsubset

Description

The prsubset element is the relational operator element for set-theoretic proper containment ('is a proper subset of').

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set,set) -> boolean

(multiset,multiset) -> boolean

Example
<apply><prsubset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>

#### C.2.6.9 MMLdefinition: notsubset

Description

The notsubset element is the relational operator element for the set-theoretic relation 'is not a subset of'.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set, set) -> boolean

(multiset,multiset) -> boolean

Example
<apply><notsubset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>

#### C.2.6.10 MMLdefinition: notprsubset

Description

The notprsubset element is the element for constructing the set-theoretic relation 'is not a proper subset of'.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set,set) -> boolean

(multiset,multiset) -> boolean

Example
<apply><notprsubset/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>

#### C.2.6.11 MMLdefinition: setdiff

Description

The setdiff element is the operator element for a set-theoretic difference of two sets.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set,set) -> set

(multiset,multiset) -> multiset

Example
<apply><setdiff/>
<ci type="set"> A </ci>
<ci type="set"> B </ci>
</apply>

#### C.2.6.12 MMLdefinition: card

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set) -> scalar

(multiset) -> scalar

Example
<apply><eq/>
<apply><card/><ci> A </ci></apply>
<ci> 5 </ci>
</apply>

#### C.2.6.13 MMLdefinition: cartesianproduct

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(set*) -> set

(multiset*) -> multiset

Example
<apply><cartesianproduct/>
<ci> A </ci>
<ci> B </ci>
</apply>
Example
<apply><cartesianproduct/>
<reals/>
<reals/>
<reals/>
</apply>

### C.2.7 Sequences and Series

#### C.2.7.1 MMLdefinition: sum

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(bvar*, ( (lowlimit, uplimit) |condition ), algebraic) -> real

Example
<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
<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>

#### C.2.7.2 MMLdefinition: product

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(bvar*, ( (lowlimit, uplimit) |condition ), algebraic) -> real

Example
<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
<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>

#### C.2.7.3 MMLdefinition: limit

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(bvar*, ( (lowlimit, uplimit) |condition ), algebraic) -> real

Example
<apply><limit/>
<apply>
<tendsto type="above"/>
<ci>x</ci><cn>0</cn>
</apply>
<apply><sin/><ci>x</ci></apply>
</apply>
Example
<apply><limit/>
<apply><tendsto/><ci>x</ci><cn>0</cn></apply>J
<apply><sin/><ci>x</ci></apply>
</apply>

#### C.2.7.4 MMLdefinition: tendsto

Description

The tendsto element is used to express the relation that a quantity is tending to a specified value.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type above | below | all | MathMLType all
Signature

(algebraic,algebraic) -> tendsto

[ type=direction ](algebraic,algebraic) -> tendsto(direction)

Example
<apply><tendsto type="above"/>
<apply><power/><ci> x </ci><cn> 2 </cn></apply>
<apply><power/><ci> a </ci><cn> 2 </cn></apply>
</apply>
Example
<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>

### C.2.8 Elementary Classical Functions

#### C.2.8.1 MMLdefinition: exp

Description

This element represents the exponentiation function as described in Abramowitz and Stegun, section 4.2. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property
<apply><eq/>
<apply><exp/><cn>0</cn></apply>
<cn>1</cn>
</apply>
Property

for all k if k is an integer then e^(z+2*pi*k*i)=e^z

Example
<apply><exp/><ci> x </ci></apply>

#### C.2.8.2 MMLdefinition: ln

Description

This element represents the ln function (natural logarithm) as described in Abramowitz and Stegun, section 4.1. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

-pi lt Im ln x leq pi

Example
<apply><ln/><ci> a </ci></apply>

#### C.2.8.3 MMLdefinition: log

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(logbase,real) -> real

(logbase,complex) -> complex

(real) -> real

(complex) -> complex

Property

a^b = c implies log_a c = b

Example
<apply><log/>
<logbase><cn> 3 </cn></logbase>
<ci> x </ci>
</apply>
Example
<apply><log/><ci>x</ci></apply>

#### C.2.8.4 MMLdefinition: sin

Description

This element represents the sin function as described in Abramowitz and Stegun, section 4.3. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

sin(0) = 0

Property

sin(integer*Pi) = 0

Property

sin(x) = (exp(ix)-exp(-ix))/2i

Example
<apply><sin/><ci> x </ci></apply>

#### C.2.8.5 MMLdefinition: cos

Description

This element represents the cos function as described in Abramowitz and Stegun, section 4.3. It takes one argument. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

cos(0) = 1

Property

cos(integer*Pi+Pi/2) = 0

Property

cos(x) = (exp(ix)+exp(-ix))/2

Example
<apply><cos/><ci>x</ci></apply>

#### C.2.8.6 MMLdefinition: tan

Description

This element represents the tan function as described in Abramowitz and Stegun, section 4.3. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

tan(integer*Pi) = 0

Property

tan(x) = sin(x)/cos(x)

Example
<apply><tan/><ci>x</ci></apply>

#### C.2.8.7 MMLdefinition: sec

Description

This element represents the sec function as described in Abramowitz and Stegun, section 4.3. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

sec(x) = 1/cos(x)

Example
<apply><sec/><ci>x</ci></apply>

#### C.2.8.8 MMLdefinition: csc

Description

This element represents the csc function as described in Abramowitz and Stegun, section 4.3. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

csc(x) = 1/sin(x)

Example
<apply><csc/><ci>x</ci></apply>

#### C.2.8.9 MMLdefinition: cot

Description

This element represents the cot function as described in Abramowitz and Stegun, section 4.3. It takes one argument. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

cot(integer*Pi+Pi/2) = 0

Property

cot(x) = cos(x)/sin(x)

Property

cot A = 1/tan A

Example
<apply><cot/><ci>x</ci></apply>

#### C.2.8.10 MMLdefinition: sinh

Description

This element represents the sinh function as described in Abramowitz and Stegun, section 4.5. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

sinh A = 1/2 * (e^A - e^(-A))

Example
<apply><sinh/><ci>x</ci></apply>

#### C.2.8.11 MMLdefinition: cosh

Description

This symbol represents the cosh function as described in Abramowitz and Stegun, section 4.5. It takes one argument. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

cosh A = 1/2 * (e^A + e^(-A))

Example
<apply><cosh/><ci>x</ci></apply>

#### C.2.8.12 MMLdefinition: tanh

Description

This element represents the tanh function as described in Abramowitz and Stegun, section 4.5. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

tanh A = sinh A / cosh A

Example
<apply><tanh/><ci>x</ci></apply>

#### C.2.8.13 MMLdefinition: sech

Description

This element represents the sech function as described in Abramowitz and Stegun, section 4.5. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

sech A = 1/cosh A

Example
<apply><sech/><ci>x</ci></apply>

#### C.2.8.14 MMLdefinition: csch

Description

This element represents the csch function as described in Abramowitz and Stegun, section 4.5. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

csch A = 1/sinh A

Example
<apply><csch/><ci>x</ci></apply>

#### C.2.8.15 MMLdefinition: coth

Description

This element represents the coth function as described in Abramowitz and Stegun, section 4.5. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

coth A = 1/tanh A

Example
<apply><coth/><ci>x</ci></apply>

#### C.2.8.16 MMLdefinition: arcsin

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arcsin(z) = -i ln (sqrt(1-z^2)-iz)

Example
<apply><arcsin/><ci>x</ci></apply>

#### C.2.8.17 MMLdefinition: arccos

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arccos(z) = -i ln(z+i \sqrt(1-z^2))

Example
<apply><arccos/><ci>x</ci></apply>

#### C.2.8.18 MMLdefinition: arctan

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arctan(z) = (log(1+iz)-log(1-iz))/2i

Example
<apply><arctan/><ci>x</ci></apply>

#### C.2.8.19 MMLdefinition: arccosh

Description

This symbol represents the arccosh function as described in Abramowitz and Stegun, section 4.6. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arccosh(z) = 2*ln(\sqrt((z+1)/2) + \sqrt((z-1)/2))

Example
<apply><arccosh/><ci>x</ci></apply>

#### C.2.8.20 MMLdefinition: arccot

Description

This element represents the arccot function as described in Abramowitz and Stegun, section 4.4. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arccot(-z) = - arccot(z)

Example
<apply><arccot/><ci>x</ci></apply>

#### C.2.8.21 MMLdefinition: arccoth

Description

This element represents the arccoth function as described in Abramowitz and Stegun, section 4.6. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arccoth(z) = (ln(-1-z)-ln(1-z))/2

Example
<apply><arccoth/><ci>x</ci></apply>

#### C.2.8.22 MMLdefinition: arccsc

Description

This element represents the arccsc function as described in Abramowitz and Stegun, section 4.4. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arccsc(z) = -i ln(i/z + \sqrt(1 - 1/z^2))

Example
<apply><arccsc/><ci>x</ci></apply>

#### C.2.8.23 MMLdefinition: arccsch

Description

This element represents the arccsch function as described in Abramowitz and Stegun, section 4.6. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arccsch(z) = ln(1/z + \sqrt(1+(1/z)^2))

Example
<apply><arccsch/><ci>x</ci></apply>

#### C.2.8.24 MMLdefinition: arcsec

Description

This element represents the arcsec function as described in Abramowitz and Stegun, section 4.4. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arcsec(z) = -i ln(1/z + i \sqrt(1-1/z^2))

Example
<apply><arcsec/><ci>x</ci></apply>

#### C.2.8.25 MMLdefinition: arcsech

Description

This element represents the arcsech function as described in Abramowitz and Stegun, section 4.6. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arcsech(z) = 2 ln(\sqrt((1+z)/(2z)) + \sqrt((1-z)/(2z)))

Example
<apply><arcsech/><ci>x</ci></apply>

#### C.2.8.26 MMLdefinition: arcsinh

Description

This element represents the arcsinh function as described in Abramowitz and Stegun, section 4.6. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arcsinh z = ln(z + \sqrt(1+z^2))

Example
<apply><arcsinh/><ci>x</ci></apply>

#### C.2.8.27 MMLdefinition: arctanh

Description

This element represents the arctanh function as described in Abramowitz and Stegun, section 4.6. It takes one argument.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real -> real

complex -> complex

Property

arctanh(z) = - i * arctan(i * z)

Example
<apply><arctanh/><ci>x</ci></apply>

### C.2.9 Statistics

#### C.2.9.1 MMLdefinition: mean

Description

The mean value of a set of data, or of a

random variable. See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, section 7.7.1

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(random_variable) -> scalar

(scalar+) -> scalar

Example
<apply><mean/><ci type="discrete_random_variable"> X </ci></apply>
Example
<apply><mean/><cn>3</cn><cn>4</cn><cn>3</cn><cn>7</cn><cn>4</cn></apply>
Example
<apply><mean/><ci> X </ci></apply>

#### C.2.9.2 MMLdefinition: sdev

Description

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.

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.

See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, (7.7.11) section 7.7.1.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(scalar,scalar+) -> scalar

(descrete_random_variable) -> scalar

(continuous_random_variable) -> scalar

Example
<apply><sdev/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>
Example
<apply><sdev/>
<ci type="discrete_random_variable"> X </ci>
</apply>

#### C.2.9.3 MMLdefinition: variance

Description

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].

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(scalar*) -> scalar

(descrete_random_variable) -> scalar

(continuous_random_variable) -> scalar

Example
<apply><variance/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>
Example
<apply><variance/>
<ci type="discrete_random_variable"> X </ci>
</apply>

#### C.2.9.4 MMLdefinition: median

Description

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

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(scalar+) -> scalar

Example
<apply><median/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>

#### C.2.9.5 MMLdefinition: mode

Description

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

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA
Signature

(scalar+) -> scalar

Example
<apply><mode/><cn>3</cn><cn>4</cn><cn>2</cn><cn>2</cn></apply>

#### C.2.9.6 MMLdefinition: moment

Description

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( i , 0 , x ). J

The first argument indicates which moment about that point is being specified. For the i'th moment the first argument should be i. The second 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 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).

J

The use of of a degree to indicate the order of the moment has been deprecated.

J

See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, section 7.7.1

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

Example

The third moment about the point p of a discrete random variable

<apply> <moment/>
<degree><cn>3</cn></degree>
<ci>X</ci>
</apply>
Example

The 3rd central moment of a set of data.

<apply><moment/>
<degree><cn>3</cn></degree>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn><cn>5</cn>
</apply>
Example

The 3rd central moment of a discrete random variable.

<apply><moment/>
<degree><cn>3</cn></degree>
<ci type="discrete_random_variable"> X </ci>
</apply>
Example

The 3rd moment about the origin of a set of data.

<apply><moment/>
<degree><cn>3</cn></degree>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn>
</apply>

Description

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.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(function) -> method

(scalar) -> point

Example

The third moment about the point p of a discrete random variable

<apply> <moment/>
<degree> <cn> 3 </cn> </degree>
<ci> X </ci>
</apply>
Example

The 3rd central moment of a set of data.

<apply><moment/>
<degree><cn> 3 </cn></degree>
<cn>6</cn><cn>4</cn><cn>2</cn><cn>2</cn><cn>5</cn>
</apply>

### C.2.10 Linear Algebra

#### C.2.10.1 MMLdefinition: vector

Description

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]

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type row | column | MathMLType column
Signature

(real*) -> vector(type=real)

[type=vectortype]((cn|ci|apply)*) -> vector(type=vectortype)

Property

vector=column_vector

Property

matrix * vector = vector

Property

matrix * column_vector = column_ vector

Property

row_vector*matrix = row_vector

Property

transpose(vector) = row_vector

Property

transpose(column_vector) = row_vector

Property

transpose(row_vector) = column_vector

Property

distributive over scalars

Property

associativity.

Property

Matrix * column vector

Property

row vector * Matrix

Example
<vector>
<cn> 1 </cn>
<cn> 2 </cn>
<cn> 3 </cn>
<ci> x </ci>
</vector>
Example
<vector type="row">
<cn> 1 </cn>
<cn> 2 </cn>
<cn> 3 </cn>
<ci> x </ci>
</vector>

#### C.2.10.2 MMLdefinition: matrix

Description

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].

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
type real | complex | integer | symbolic | integer | MathMLType real
Signature

(matrixrow*) -> matrix

[type=matrixtype](matrixrow*) -> matrix(type=matrixtype)

Property

scalar multiplication

Property

scalar multiplication

Matrix*column vector
Property

scalar multiplication

Property

scalar multiplication

Matrix*Matrix
Example
<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>

#### C.2.10.3 MMLdefinition: matrixrow

Description

This symbol is an n-ary constructor used to represent rows of matrices. Its arguments should be members of a ring.

Classification
constructor
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(ringelement+) -> matrixrow

Example
<matrixrow>
<cn> 1 </cn>
<cn> 2 </cn>
</matrixrow>

#### C.2.10.4 MMLdefinition: determinant

Description

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].

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA
Signature

(matrix)-> scalar

Example
<apply><determinant/>
<ci type="matrix"> A </ci>
</apply>

#### C.2.10.5 MMLdefinition: transpose

Description

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].

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(vector)->vector(type=row)

(matrix)->matrix

(vector(type=row)->vector

Property

transpose(transpose(A))= A

Property

transpose(transpose(V))= V

Example
<apply><transpose/>
<ci type="matrix"> A </ci>
</apply>
Example
<apply><transpose/>
<ci type="vector"> V </ci>
</apply>

#### C.2.10.6 MMLdefinition: selector

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(matrix,scalar,scalar)->scalar

(matrix,scalar)->matrixrow

(matrix)->scalar*

((vector|list|matrixrow),scalar )->scalar

(vector|list|matrixrow)->scalar*

Property

For all vectors V, V = vector(select(V))

Property

For all matrices M, M = matrix(select(M))

Example
<apply>J<selector/><ci type="matrix">M</ci><cn>3</cn><cn>2</cn></apply>J

#### C.2.10.7 MMLdefinition: vectorproduct

Description

The vector or cross product of two nonzero three-dimensional vectors v1 and v2 is defined by

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]

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(vector,vector)->vector

Property

if v1 and v2 are parallel then their vector product is 0

Example
<apply><vectorproduct/><ci>u</ci><ci>v</ci></apply>

#### C.2.10.8 MMLdefinition: scalarproduct

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(vector,vector) -> scalar

Property

if the scalar product of two vectors is 0 then they are orthogonal.

Example
<apply><scalarproduct/><ci>u</ci><ci>v</ci></apply>

#### C.2.10.9 MMLdefinition: outerproduct

Description

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.

Classification
function
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

(vector,vector) -> matrix

Example
<apply><outerproduct/><ci>u</ci><ci>v</ci></apply>

### C.2.11 Constants and Symbol Elements

#### C.2.11.1 MMLdefinition: integers

Description

integers represents the set of all integers.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

n is an integer implies n+1 is an integer.

<apply><implies/>
<apply><in/><ci>n</ci><integers/></apply>
<apply><in/><apply><plus/><ci>n</ci><cn>1</cn></apply><integers/></apply>
</apply>
Property

0 is an integer

<apply><in/><cn>0</cn><integers/></apply>
Property

n is an integer implies -n is an integer

<apply><implies/>
<apply><in/><ci>n</ci><integers/></apply>
<apply><in/><apply><minus/><ci>n</ci></apply><integers/></apply>
</apply>
Example
<apply><in/>
<cn type="integer"> 42 </cn>
<integers/>
</apply>

#### C.2.11.2 MMLdefinition: reals

Description

reals represents the set of all real numbers.

Classification
symbol
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

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)

Property

for all a,b | a,b rational with a<b implies there exists rational a,c s.t. a<c and c<b

Example
<apply><in/>
<cn type="real"> 44.997 </cn>
<reals/>
</apply>

#### C.2.11.3 MMLdefinition: rationals

Description

rationals represents the set of all rational numbers.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

for all z where z is a rational, there exists integers p and q with p/q = z

<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>J
<ci>z</ci>
</apply>
</apply>
</apply>

Property

ForAll( [a,b], a and b are rational, a < b implies there exists c such that a < c and c < b )

Property

for all z where z is a rational, there exists integers p and q with p/q = z

Example
<apply><in/>
<cn type="rational"> 22 <sep/>7</cn>
<rationals/>
</apply>

#### C.2.11.4 MMLdefinition: naturalnumbers

Description

naturalnumbers represents the set of all natural numbers, i.e.. non-negative integers.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

For all n | n is a natural number implies n+1 is a natural number.

<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

0 is a natural number.

<apply><in/><cn>0</cn><naturalnumbers/></apply>
Property

for all n | n in the natural numbers is equivalent to saying n=0 or n-1 is a natural number

Example
<apply><in/>
<cn type="integer">1729</cn>
<naturalnumbers/>
</apply>

#### C.2.11.5 MMLdefinition: complexes

Description

complexes represents the set of all complex numbers, i.e., numbers which may have a real and an imaginary part.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

for all z | if z is complex then there exist reals x,y s.t. z = x + i * y

Example
<apply><in/>
<cn type="complex">17<sep/>29</cn>
<complexes/>
</apply>

#### C.2.11.6 MMLdefinition: primes

Description

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.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

ForAll( [d,p], p is prime, Implies( d | p , d=1 or d=p ) )

<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>
Example
<apply>
<in/>
<cn type="integer">17</cn>
<primes/>
</apply>

#### C.2.11.7 MMLdefinition: exponentiale

Description

exponentiale represents the mathematical constant which is the exponential base of the natural logarithms, commonly written e . It is approximately 2.718281828..

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real constant

Property

ln(e) = 1

<apply><eq/>
<apply><ln/><exponentiale/></apply>
<cn>1</cn>
</apply>
Property

e is approximately 2.718281828

<apply><approx/>
<exponentiale/>
<cn>2.718281828 </cn>
</apply>J
Property

e = the sum as j ranges from 0 to infinity of 1/(j!)

Example
<apply> <eq/>
<apply><ln/><exponentiale/></apply>
<cn>1</cn>
</apply>

#### C.2.11.8 MMLdefinition: imaginaryi

Description

imaginaryi represents the mathematical constant which is the square root of -1, commonly written i

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

complex constant

Property

sqrt(-1) = i

<apply><eq/>
<imaginaryi/>
<apply><root/><degree><cn>2</cn></degree><cn>-1</cn></apply>
</apply>J
Example
<apply> <eq/>
<apply><power/>
<imaginaryi/>
<cn>2</cn>
</apply>
<cn>-1</cn>
</apply>

#### C.2.11.9 MMLdefinition: notanumber

Description

notanumber represents the result of an ill-defined floating point operation, sometimes also called NaN.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

undefined

Example
<apply><eq/>
<apply><divide/><cn>0</cn><cn>0</cn></apply>
<notanumber/>
</apply>

#### C.2.11.10 MMLdefinition: true

Description

true represents the logical constant for truth.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA
Signature

boolean constant

Property

not true = false

<apply><eq/>
<apply><not/><true/></apply>
<cn>false</cn>
</apply>
Property

For all boolean p, p or true is true

<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>
Example
<apply> <eq/>
<apply><or/>
<true/>
<ci type = "logical">P</ci>
</apply>
<true/>
</apply>

#### C.2.11.11 MMLdefinition: false

Description

false represents the logical constant for falsehood.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

boolean constant

Property

not true = false

<apply><eq/>
<apply><not/><true/></apply>
<false/>
</apply>
Property

p and false = false

<declare type="boolean"><ci>p</ci></declare>
<apply><forall/>
<bvar><ci>p</ci></bvar>
<apply><and/><ci>p</ci><false/></apply>
<false/>
</apply>
Example
<apply><eq/>
<apply><and/>
<false/>
<ci type = "logical">P</ci>
</apply>
<false/>
</apply>

#### C.2.11.12 MMLdefinition: emptyset

Description

emptyset represents the empty set.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

set

Property

for all sets S, intersect(S,emptyset) = emptyset

<apply><forall/><bvar><ci type="set">S</ci></bvar>
<apply><eq/>
<apply><intersect/><emptyset/><ci>S</ci></apply>
<emptyset/>
</apply>
</apply>
Example
<apply><neq/>
<integers/>
<emptyset/>
</apply>

#### C.2.11.13 MMLdefinition: pi

Description

pi represents the mathematical constant which is the ratio of a circle's circumference to its diameter, approximately 3.141592653.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

constant

Property
<apply><approx/>
<cn>pi</cn>
<cn> 3.141592654 </cn>
</apply>
Property

pi = 4 * the sum as j ranges from 0 to infinity of ((1/(4j+1))-(1/(4j+3)))

Example
<apply><approx/>
<pi/>
<cn type = "rational">22<sep/>7</cn>
</apply>

#### C.2.11.14 MMLdefinition: eulergamma

Description

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.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

real constant

Property

gamma is approx. 0.5772156649

<apply><approx/>
<eulergamma/>
<cn> .5772156649 </cn>
</apply>
Property

gamma = limit_(m -> infinity)(sum_(j ranges from 1 to m)(1/j) - ln m)

Example
<apply><approx/>
<eulergamma/>
<cn>0.5772156649</cn>
</apply>

#### C.2.11.15 MMLdefinition: infinity

Description

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.

Classification
constant
MMLattribute
Name Value Default
definitionURL URI identifying the definition APPENDIX_C
encoding CDATA MathML
Signature

constant

Property

infinity/infinity is not defined.

<apply><eq/>
<apply><divide/><infinity/><infinity/></apply>
<notanumber/>
</apply>
Property

for all reals x, x \lt infinity

<apply><forall/>
<bvar><ci>n</ci></bvar>
<condition><apply><in/><ci>n</ci><reals/></apply></condition>
<apply><lt/><ci>n</ci><infinity/></apply>
</apply>
Example
<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>
Overview: Mathematical Markup Language (MathML) Version 2.0 (2nd Edition)
Previous: B Content Markup Validation Grammar
Next: D Document Object Model for MathML