Overview: Mathematical Markup Language (MathML) Version 2.0
Previous: B Content Markup Validation Grammar
Next: D Document Object Model for MathML
C Content Element Definitions
C.1 About Content Markup Elements
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.2 Basic Content Elements
C.2.3 Arithmetic Algebra and Logic
C.2.4 Relations
C.2.5 Calculus and Vector Calculus
C.2.6 Theory of Sets
C.2.7 Sequences and Series
C.2.8 Elementary Classical Functions
C.2.9 Statistics
C.2.10 Linear Algebra
C.2.11 Constants and Symbol 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.
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.
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.
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:
PCDATA providing the name of the MathML element.
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.
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.
plus and sin. These
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. 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 nary 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.
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.
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.
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 braces. 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.
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.
cn
The cn element is used to encode numerical constants. The mathematical type of number is given as an attribute. The default type is "real". Numbers such as floating-point, rational and complex, require two parts for a complete specification. The parts of such a number are separated by an empty sep element.
Many of the commonly occurring numeric constants such as
π have their own elements.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | integer | rational | complex-cartesian | complex-polar | real | floating-point | MathMLtype | real |
| base | integer between 2 and 36 | 10 |
[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=rational](numstring,numstring) -> constant(rational)
[definitionURL=definition](numstring*) -> constant(user-defined)
<apply><eq/><cn base="16"> A </cn><cn> 10 </cn></apply>
<apply><eq/><cn base="16"> B </cn><cn> 11 </cn></apply>
<apply><eq/><cn base="16"> C </cn><cn> 12 </cn></apply>
<apply><eq/><cn base="16"> D </cn><cn> 13 </cn></apply>
<apply><eq/><cn base="16"> E </cn><cn> 14 </cn></apply>
<apply><eq/><cn base="16"> F </cn><cn> 15 </cn></apply>
<cn> 245 </cn>
<cn type="integer"> 245 </cn>
<cn type="integer" base="16"> A </cn>
<cn type="rational"> 245 <sep/> 351 </cn>
<cn type="complex-cartesian"> 1 <sep/> 2 </cn>
<cn> 245 </cn>
<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>
ci
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | constant | matrix | set | vector | list | MathMLtype | real |
({string|mmlpresentation}) -> symbol
[type=typename]({string|mmlpresentation}) -> symbol(typename)
<ci> xyz </ci>
<ci> type="vector"> v </ci>
csymbol
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
[definitionURL=definition]({string|mmlpresentation}) -> defined_symbol
[type=typename]({string|mmlpresentation}) -> defined_symbol(typename)
<csymbol definitionURL=".../mydefinitionofPi">π</csymbol>
apply
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.)
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function,anything*) -> apply
<apply><plus/> <ci>x</ci> <cn>1</cn> </apply>
<apply><sin/> <ci>x</ci> </apply>
reln
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function,anything*) -> reln
No examples of deprecated constructions are provided.
fn
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(anything) -> function
[definitionURL=functiondef](anything) ->function
No examples of deprecated constructions are provided.
interval
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | closed | open | open-closed | closed-open | closed |
[type=interval-type](expression,expression) -> interval(interval-type)
<apply><interval closure="open"/> <ci>x</ci> <cn>1</cn> </apply>
<apply><interval closure="open-closed"/> <cn>0</cn> <cn>1</cn> </apply>
inverse
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> function
[definitionURL=URI](function) -> function(definition)
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>
<apply><inverse/> <sin/> </apply>
<apply><inverse definitionURL="www.example.com/MathML/Content/arcsin"/> <sin/> </apply>
sep
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.
See also .
<cn type="complex-polar">123<sep/>456</cn>
<cn>123</cn>
condition
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" .
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(apply) -> predicate
<condition>
<apply><lt/>
<apply><power/><ci>x</ci><cn>5</cn></apply>
<cn>3</cn>
</apply>
</condition>
declare
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)
See also .
| 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 |
[(attributename=attributevalue)*](anything) -> [(attributename=attributevalue)*](anything)
[(attributename=attributevalue)*](anything,anything) -> [(attributename=attributevalue)*](anything)
(anything,anything) -> (anything)
<declare> <ci>y</ci> <apply><plus/><ci>x</ci><cn>3</cn></apply> </declare>
<declare type="vector"> <ci> V </ci> </declare>
<declare type="vector"> <ci> V </ci> <vector><cn> 1 </cn><cn> 2 </cn><cn> 3 </cn></vector> </declare>
lambda
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 itsself is interpreted 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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(bvar*,anything) -> function
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>
<lambda> <bvar><ci>x</ci></bvar> <apply><sin/><apply><plus/><ci> x </ci><cn> 3 </cn></apply></apply> </lambda>
compose
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function*) -> function
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>
The use of fn is deprecated. Use type="function" instead.
<apply><compose/> <ci type="function"> f </ci> <ci type="function"> g </ci> <sin/> </apply>
ident
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
function
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>
<apply><eq/>
<apply><compose/>
<ci type="function"> f </ci>
<apply><inverse/><ci type="function"> f </ci>
</apply>
</apply>
<ident/>
</apply>
domain
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> set
<apply><eq/> <apply><domain/><ci>f</ci></apply> <reals/> </apply>
codomain
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> set
ForAll(y, y =f(x) , member(y,codomain(f)))
<apply><eq/> <apply><codomain/><ci>f</ci></apply> <rationals/> </apply>
image
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> set
ForAll(x, x in codomain(f) , ThereExists(y,f(y)=x))
<apply><eq/> <apply><image/><sin/></apply> <interval><cn>-1</cn><cn> 1</cn></interval> </apply>
domainofapplication
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> set
<apply><int/> <domainofapplication><ci>C</ci></domainofapplication> <ci>f </ci> </apply>
piecewise
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(piece*,otherwise) -> algebraic
ForAll(x, x in domain(f) , the evaluation rules collectively produce at most one value in codomain(f))
<piecewise> <piece><cn> 0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece> <otherwise><ci>x</ci></otherwise> </piecewise>
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>
piece
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(algebraic,boolean) -> piece
<piecewise> <piece><cn>0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece> <otherwise><ci>x</ci></otherwise> </piecewise>
otherwise
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | a URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(algebraic) -> algebraic
<piecewise> <piece><cn> 0</cn><apply><lt/><ci> x</ci> <cn> 0</cn></apply></piece> <otherwise><ci>x</ci></otherwise> </piecewise>
quotient
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
(integer, integer) -> integer
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>
<apply><quotient/> <ci> a </ci> <ci> b </ci> </apply>
<apply> <quotient/> <cn>5</cn> <cn>4</cn> </apply>
factorial
This is the unary operator used to construct factorials. Factorials are defined by n! = n*(n-1)* ... * 1
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
( algebraic ) -> algebraic
(integer)->integer
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>
0! = 1
<apply></eq> <apply><factorial/><cn>0</cn></apply> <cn>1</cn> </apply>
<apply><factorial/> <ci>n</ci> </apply>
divide
This is the binary MathML operator that is used indicate the mathematical operation a "divided by" b.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(complex, complex) -> complex
(real, real) -> real
(rational, rational) -> rational
(integer, integer) -> rational
Division by Zero error
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><divide/><ci> a </ci><ci> 0 </ci>
<notanumber/>
</apply>
</apply>
</apply>
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>
<apply><divide/> <ci> a </ci> <ci> b </ci> </apply>
max
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
( ordered_set_element * ) -> ordered_set_element
( bvar,condition,anything ) -> anything
ForAll(x in S, max(y in S,y) \geq x )
Maximum of a finite listing of elements
<apply><max/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
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>
min
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
( ordered_set_element * ) -> ordered_set_element
( bvar,condition,anything ) -> ordered_set_element
Minimum of a finite listing of elements
<apply><min/><cn>2</cn><cn>3</cn><cn>5</cn></apply>
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>
minus
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(real) -> real
(real,real) -> real
[type=MathMLtype](MathMLtype) -> MathMLtype
[type=MathMLtype](MathMLtype,MathMLtype) -> MathMLtype
(set,set) -> set
(multiset,multiset)->multiset
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>
<apply><minus/> <cn>3</cn> <cn>5</cn> </apply>
<apply><minus/> <cn>3</cn> </apply>
plus
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
[type=MathMLtype](anything*) -> MathMLtype
(set*)->set
(multiset*)->multiset
(real*)->real
(complex*)->complex
(integer*)->integer
an sum of no terms is 0
<apply><eq/> <apply><plus/></apply> <cn>0</cn> </apply>
a sum of one term is equal to itsself
<apply><forall/>
<bvar><ci>a</ci></bvar>
<apply><eq/>
<apply><plus/><ci>a</ci></apply>
<cn>a</cn>
</apply>
</apply>
Commutivity
<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>
<apply><plus/> <cn>3</cn> </apply>
<apply><plus/> <cn>3</cn> <cn>5</cn> </apply>
<apply><plus/> <cn>3</cn> <cn>5</cn> <cn>7</cn> </apply>
power
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(complex, complex) -> complex
(real, real) -> complex
(rational, integer) -> rational
(integer, integer) -> rational
[type=MathMLtype](anything,anything) -> MathMLtype
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>
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>
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>
<apply><power/><cn>2</cn><ci>x</ci></apply>
<apply><power/><ci> x </ci><cn> 3 </cn></apply>
rem
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
(integer, integer) -> integer
[type=MathMLtype](MathMLtype,MathMLtype)->MathMLtype
rem(a, 0) is undefined
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>
<apply><rem/><ci> a </ci><ci> b </ci></apply>
times
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(complex*) -> complex
(real*) -> real
(rational*) -> rational
(integer*) -> integer
ForAll([a,b],condition(in({a,b},Commutative)),a*b=b*a)
ForAll([a,b,c],Associative,a*(b*c)=(a*b)*c), associativity
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>
a*0=0
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>
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>
<apply> <times/> <ci> a </ci> <ci> b </ci> </apply>
root
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)
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | real | complex | principle_branch | MathMLType | real |
( anything , anything) -> root
ForAll(bvars(a,n),root(a,n) = a^(1/n))
nth root of a
<apply><root/> <ci> a </ci> <ci> n </ci> </apply>
gcd
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 1. If one argument is provided, the gcd is that argument.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
[type=MathMLtype](MathMLtype*) ->MathMLtype
(integer*) -> integer
<apply><forall/> <forall/> <bvar><ci>x</ci></bvar> <apply><eq/> <apply><gcd/> <ci>x</ci> <cn>1</cn> </apply> <cn>1</cn> </apply> </apply>
<apply><gcd/> <cn>12</cn> <cn>17</cn> </apply>
<apply><gcd/> <cn>3</cn> <cn>5</cn> <cn>7</cn> </apply>
and
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(boolean*) -> boolean
forall(p,(true and p = p )
forall([p,q],(p and q = q and p ))
x and not(x) = false
<apply><and/> <ci>p</ci> <ci>q</ci> </apply>
or
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(boolean*) -> boolean
[type="boolean"](symbolic*) -> boolean
<apply> <or/> <ci> a </ci> <ci> b </ci> </apply>
xor
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(boolean*) -> boolean
[type="boolean"](symbolic*) -> symbolic
x xor x = false
x xor not(x) = true
<apply> <xor/> <ci> a </ci> <ci> b </ci> </apply>
not
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(boolean) -> boolean
[type="boolean"](algebraic) -> boolean
<apply> <not/> <ci> a </ci> </apply>
implies
This is the binary "implies" operator. It is used to construct the logical expression "A implies B".
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(boolean,boolean) -> boolean
false implies x
<apply> <implies/> <ci> A </ci> <ci> B </ci> </apply>
forall
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).
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(bvar*,condition?,apply) -> boolean
(bvar*,condition?,(reln)) -> boolean
<apply> <forall/> <bvar><ci> x </ci></bvar> <apply><eq/> <apply> <minus/><ci> x </ci><ci> x </ci> </apply> <cn>0</cn> </apply> </apply>
exists
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | boolean |
(element,set) ->boolean
<apply><exists/>
<bvar><ci>x</ci></bvar>
<apply><eq/>
<apply><ci>f</ci>
<ci>x</ci>
</apply>
<cn>0</cn>
</apply>
</apply>
abs
A unary operator which represents the absolute value of its argument. In the complex case this is often referred to as the modulus.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(real)->real
(complex)->real
for all x and y, abs(x) + abs(y) >= abs(x+y)
<apply><abs/><ci>x</ci></apply>
conjugate
The unary "conjugate" arithmetic operator is used to represent the complex conjugate of its argument.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(algebraic) -> algebraic
(complex)->complex
<apply><conjugate/>
<apply><plus/>
<ci> x </ci>
<apply><times/>
<imaginaryi/>
<ci> y </ci>
</apply>
</apply>
</apply>
arg
The unary "arg" operator is used to construct an expression which represents the "argument" of a complex number.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(compex)->real
<apply><arg/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
real
A unary operator used to construct an expression representing the "real" part of a complex number.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(complex)->real
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>
<apply><real/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
imaginary
The unary function used to construct an expression which represents the imaginary part of a complex number.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(complex)->real
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>
<apply><imaginary/>
<apply><plus/>
<ci> x </ci>
<apply><times/><imaginaryi/><ci>y</ci></apply>
</apply>
</apply>
lcm
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 0. If one argument is provided, the lcm is that argument. The least common multiple of x and 1 is x.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
[type=MathMLtype](MathMLtype*) ->MathMLtype
(integer*) -> integer
(algebraic*) -> algebraic
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>
<apply><lcm/> <cn>12</cn> <cn>17</cn> </apply>
<apply><lcm/> <cn>3</cn> <cn>5</cn> <cn>7</cn> </apply>
floor
The floor element is used to denote the round-down (towards -infinity) operator.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
(real) -> integer
[type=MathMLtype](orderedset_element) -> orderedset_element
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>
<apply> <floor/> <ci> a </ci> </apply>
ceiling
The ceiling element is used to denote the round-up (towards +infinity) operator.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
(real) -> integer
[type=MathMLtype](orderedset_element) -> orderedset_element
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>
<apply> <ceiling/> <ci> a </ci> </apply>
eq
This n-ary function is used to indicate that two or more quantities are equal. There must be at least two arguments.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real+) -> boolean
(boolean, boolean+) -> boolean
(set,set+) -> set
(multiset,multiset+) -> multiset
Symmetric
Transitive
Reflexive
<apply><eq/><cn type="rational">2<sep/>4</cn><cn type="rational">1<sep/>2</cn></apply>
<apply><eq/><ci type="set">A</ci><ci type="set">B</ci></apply>
<apply><eq/><ci type="multiset">A</ci><ci type="multiset">B</ci></apply>
neq
This binary function represents the relation "not equal to" which returns true unless the two arguments are equal.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real) -> boolean
(boolean,boolean)-> boolean
(set,set) -> set
(multiset,multiset) -> multiset
Symmetric
<apply><neq/><cn>3</cn><cn>4</cn></apply>
gt
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real+) -> boolean
Transitive
<apply><gt/><cn>3</cn><cn>2</cn></apply>
lt
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real+) -> boolean
Transitive
<apply><lt/><cn>2</cn><cn>3</cn><cn>4</cn></apply>
geq
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real+) -> boolean
Transitive
Reflexive
<apply><geq/><cn>4</cn><cn>3</cn><cn>3</cn></apply>
leq
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real+) -> boolean
Transitive
Reflexive
<apply><leq/><cn>3</cn><cn>3</cn><cn>4</cn></apply>
equivalent
This element represents the n-ary equivalence function as defined by a partitioning of sets. There must be at least two arguments.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(real,real+) -> boolean
Symmetric
Transitive
Reflexive
<apply><equivalent/><ci>a</ci><ci>b</ci></apply>
approx
This element is used to indicate that two or more quantites are approximately equal. If a more precise definition of approximately equal is required the definintionURL should be used to identify a suitable definition..
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | real |
(real,real+) -> boolean
(boolean, boolean+) -> boolean
Symmetric
Transitive
Reflexive
<apply><approx/><pi/><cn type="rational">22<sep/>7</cn></apply>
factorof
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | MathMLType | integer |
(integer, integer) -> boolean
ForAll( a,b a and b integers, a divides b if there is an integer c such that a*c = b
<apply><factorof/> <ci> a </ci> <ci> b </ci> </apply>
int
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> function
(bvar,algebraic) -> algebraic
(bvar,interval,algebraic) -> algebraic
(bvar,condition,algebraic) -> algebraic
(bvar,lowlimit,uplimit,algebraic) -> algebraic
<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>
<apply><int/> <bvar><ci> x </ci></bvar> <interval><ci> a </ci><ci> b </ci></interval> <apply><cos/><ci> x </ci></apply> </apply>
<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>
diff
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' .
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | function | algebraic | algebraic |
(bvar,algebraic) -> algebraic
(function) -> function
ForAll([x,n],n!=0,diff( x^n , x ) = n*x^(n-1))
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>
diff(x^2,x)
<apply><diff/> <bvar><ci>x</ci></bvar> <apply><power/><ci>x</ci><cn>2</cn></apply> </apply>
diff(f(x),x)
<apply><diff/><bvar><ci> x </ci></bvar> <apply><ci type="function"> f </ci><ci> x </ci></apply> </apply>
diff(sin) = cos
<apply><eq/><apply><diff/><sin/></apply><cos/></apply>
partialdiff
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | function | algebraic | algebraic |
(degree?,bvar+,algebraic) -> algebraic
(vector,function) -> function
ForAll(x,y,diff( x*y , x ) = diff(x,x)*y + diff(y,x)*x )
ForAll(x,a,b,diff( a + b , x ) = diff(a,x) + diff(b,x) )
diff(sin) = cos
d^k/(dx^m dy^n) f(x,y)
<apply><partialdiff/> <degree><ci>k</ci></degree> <bvar><ci> x </ci><degree><ci> m </ci></degree></bvar> <bvar><ci> y </ci><degree><ci> n </ci></degree></bvar> <apply><ci type="function"> f </ci> <ci> x </ci> <ci> y </ci> </apply> </apply>
d^2/(dx dy) f(x,y)
<apply><partialdiff/> <bvar><ci> x </ci></degree></bvar> <bvar><ci> y </ci></degree></bvar> <apply><ci type="function"> f </ci> <ci> x </ci> <ci> y </ci> </apply> </apply>
D_{1,1,3}(f)
<apply><partialdiff/> <list><cn>1</cn><cn>1</cn><cn>3</cn></list> <ci type="function">f</ci> </apply>
lowlimit
Construct a lower limit. Upper and lower limits are used in some integrals as alternative way of describing the interval
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(algebraic+) -> lowlimit
See int
uplimit
Construct an upper limit. Upper and lower limits are used in some integrals as alternative way of describing the interval
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(algebraic+) -> uplimit
See int
bvar
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 quantifiy 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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(symbol,degree?) -> bvar
<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>
<apply><diff/> <bvar><ci>x</ci><degree><cn>2</cn></degree></bvar> <apply><power/><ci>x</ci><cn>5</cn></apply> </apply>
degree
A parameter used by some MathML data-types to specify that, for example, a bound variable is repeated several times.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(anything) -> degree
<apply><diff/> <bvar><ci>x</ci><degree><cn>2</cn></degree></bvar> <apply><power/><ci>x</ci><cn>5</cn></apply> </apply>
divergence
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 implicitely as expressions defined in terms of the coordinate names, in which case the coordinate names must be provided as bound variables.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(vector(function)) -> function
(bvar+,vector(algebraic)) -> algebraic
<apply><divergence/><ci type="vector"> E</ci></apply>
<declare><ci>F</ci><vector><ci>f1</ci><ci>f2</ci><ci>f3</ci></vector></declare> <apply><divergence/><ci>F</ci></apply>
<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>
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>
<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>
grad
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 )
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(function) -> vector(function)
(bvar+,algebraic) -> vector(algebraic)
<apply><grad/><ci type="function"> f</ci></apply>
<apply><grad/> <bvar><ci>x</ci></bvar><bvar><ci>y</ci></bvar><bvar><ci>z</ci></bvar> <apply><times/><ci>x</ci><ci>y</ci><ci>z</ci></apply></apply> </apply>
curl
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(bvar,bvar,bvar,algebraic) -> vector(algebraic)
(vector(function) ) -> vector(function)
curl(F) = i X \partial(F)/\partial(x) + j X \partial(F)/\partial(y) + j X \partial(F)/\partial(Z)
<apply> <curl/> <ci type="vector" > f</ci> </apply>
laplacian
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
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(bvar+,algebraic) -> algebraic
(scalar_valued_function) -> scalar_valued_function
<apply><laplacian/><ci type="vector"> E</ci></apply>
<declare><ci>F</ci><vector><ci>f1</ci><ci>f2</ci><ci>f3</ci></vector></declare> <apply><laplacian/><ci>F</ci></apply>
<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>
set
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| type | set | multiset | set |
(anything*) -> set
( bvar , condition , anything ) -> set
<set> <ci> a </ci> <ci> b </ci> <ci> c </ci> </set>
<set>
<bvar><ci> x </ci></bvar>
<condition>
<apply><lt/>
<ci> x </ci>
<cn> 5 </cn>
</apply>
</condition>
</set>
list
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
| order | lexicographic | numeric | none |
(anything*) -> list
(bvar,condition,anything) -> list
[order=ordering](bvar,condition,anything) -> list(ordering)
<list> <ci> a </ci> <ci> b </ci> <ci> c </ci> </list>
<list order="numeric">
<bvar><ci> x </ci></bvar>
<condition>
<apply><lt/>
<ci> x </ci>
<cn> 5 </cn>
</apply>
</condition>
</list>
union
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(set*) -> set
( multiset+ ) -> multiset
<apply><union/> <ci> A </ci> <ci> B </ci> </apply>
intersect
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.
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(set+) -> set
(multiset+) -> multiset
<apply><intersect/> <ci type="set"> A </ci> <ci type="set"> B </ci> </apply>
in
The in element is the relational operator used for a set-theoretic inclusion (`is in' or `is a member of').
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(anything, set) -> boolean
(anything, multiset ) -> boolean
<apply><in/> <ci> a </ci> <ci type="set"> A </ci> </apply>
notin
The notin element is the relational operator element used to construct set-theoretic exclusion (`is not in' or `is not a member of').
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
( anything, set ) -> boolean
( anything , multiset ) -> boolean
<apply><notin/> <ci> a </ci> <ci type="set"> A </ci> </apply>
subset
The subset element is the relational operator element for a set-theoretic containment (`is a subset of').
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(set,set) -> boolean
( multiset , multiset ) -> boolean
<apply><subset/> <ci type="set"> A </ci> <ci type="set"> B </ci> </apply>
prsubset
The prsubset element is the relational operator element for set-theoretic proper containment (`is a proper subset of').
See also .
| Name | Value | Default |
|---|---|---|
| definitionURL | URI identifying the definition | APPENDIX_C |
| encoding | CDATA | MathML |
(set, set) -> boolean
( multiset ,