# 4 Content Markup

Overview: Mathematical Markup Language (MathML) Version 3.0
Previous: 3 Presentation Markup
Next: 5 Combining Presentation and Content Markup

4 Content Markup
4.1 Introduction
4.2 Strict Content MathML
4.2.1 The structure of MathML3 Content Expressions
4.2.2 Encoding OpenMath Objects
4.2.3 Numbers
4.2.4 Symbols and Identifiers
4.2.4.1 Content Identifiers
4.2.4.2 Content Symbols
4.2.5 Function Application
4.2.6 Bindings and Bound Variables
4.2.6.1 Bindings
4.2.6.2 Bound Variables
4.2.6.3 Examples
4.2.7 Qualifiers
4.2.7.1 Conditions
4.2.7.2 Examples
4.2.8 Structure Sharing
4.2.8.1 The share element
4.2.8.2 An Acyclicity Constraint
4.2.8.3 Structure Sharing and Binding
4.2.8.4 Structure Sharing and cdbase
4.2.10 In Situ Error Markup
4.3 Pragmatic Content MathML
4.3.1 Operator Elements
4.3.2 Pragmatic Elements with Attributes
4.3.3 Bindings with apply
4.3.4 Container Markup for Constructor Symbols
4.3.5 Container Markup for Binding Constructors
4.3.6 Container Markup for Applicative Constructors
4.3.7 Symbols and Identifiers With Presentation MathML
4.3.8 Elementary MathML Types on Operator and Container Elements
4.3.9 Domain of Application
4.3.10 Domain of Application in Bindings
4.3.11 degree
4.3.12 Upper and Lower Limits
4.3.13 Lifted Associative Commutative Operators
4.3.14 Declare (declare)
4.4 The MathML3 Content Dictionaries and Operators
4.4.1 arith1
4.4.1.1 lcm (<lcm/>)
4.4.1.2 big_lcm
4.4.1.3 gcd (<gcd/>)
4.4.1.4 big_gcd
4.4.1.5 plus (<plus/>)
4.4.1.6 unary_minus (<unary_minus/>)
4.4.1.7 minus (<minus/>)
4.4.1.8 times (<times/>)
4.4.1.9 divide (<divide/>)
4.4.1.10 power (<power/>)
4.4.1.11 abs (<abs/>)
4.4.1.12 root (<root/>)
4.4.1.13 sum (<sum/>)
4.4.1.14 product (<product/>)
4.4.2 fns1
4.4.2.1 domain (<domain/>)
4.4.2.2 range (<codomain/>)
4.4.2.3 image (<image/>)
4.4.2.4 identity (<ident/>)
4.4.2.5 left_inverse
4.4.2.6 right_inverse
4.4.2.7 inverse (<inverse/>)
4.4.2.8 left_compose (<compose/>)
4.4.2.9 lambda (<lambda>)
4.4.3 linalg1
4.4.3.1 vectorproduct (<vectorproduct/>)
4.4.3.2 scalarproduct (<scalarproduct/>)
4.4.3.3 outerproduct (<outerproduct/>)
4.4.3.4 transpose (<transpose/>)
4.4.3.5 determinant (<determinant/>)
4.4.3.6 vector_selector (<selector/>)
4.4.3.7 matrix_selector (<matrix_selector/>)
4.4.4 logic1
4.4.4.1 equivalent (<equivalent/>)
4.4.4.2 not (<not/>)
4.4.4.3 and (<and/>)
4.4.4.4 big_and
4.4.4.5 xor (<xor/>)
4.4.4.6 big_xor
4.4.4.7 or (<or/>)
4.4.4.8 big_or
4.4.4.9 implies (<implies/>)
4.4.4.10 true (<true/>)
4.4.4.11 false (<false/>)
4.4.5 nums1
4.4.5.1 based_integer (<based_integer/>)
4.4.5.2 rational (<rational/>)
4.4.5.3 infinity (<infinity/>)
4.4.5.4 e (<exponentiale/>)
4.4.5.5 i (<imaginaryi/>)
4.4.5.6 pi (<pi/>)
4.4.5.7 gamma (<eulergamma/>)
4.4.5.8 NaN (<notanumber/>)
4.4.6 relation1
4.4.6.1 eq (<eq/>)
4.4.6.2 lt (<lt/>)
4.4.6.3 gt (<gt/>)
4.4.6.4 neq (<neq/>)
4.4.6.5 leq (<leq/>)
4.4.6.6 geq (<geq/>)
4.4.6.7 approx (<approx/>)
4.4.7 set1
4.4.7.1 cartesian_product (<cartesianproduct/>)
4.4.7.2 emptyset (<emptyset/>)
4.4.7.3 map (<map/>)
4.4.7.4 size (<card/>)
4.4.7.5 suchthat (<suchthat/>)
4.4.7.6 set (<set>)
4.4.7.7 intersect (<intersect/>)
4.4.7.8 big_intersect
4.4.7.9 union (<union/>)
4.4.7.10 big_union
4.4.7.11 setdiff (<setdiff/>)
4.4.7.12 subset (<subset/>)
4.4.7.13 in (<in/>)
4.4.7.14 notin (<notin/>)
4.4.7.15 prsubset (<prsubset/>)
4.4.7.16 notsubset (<notsubset/>)
4.4.7.17 notprsubset (<notprsubset/>)
4.4.8 veccalc1
4.4.8.1 divergence (<divergence/>)
4.4.8.3 curl (<curl/>)
4.4.8.4 Laplacian (<laplacian/>)
4.4.9 calculus1
4.4.9.1 diff (<diff/>)
4.4.9.2 nthdiff
4.4.9.3 partialdiff (<partialdiff/>)
4.4.9.4 int (<int/>)
4.4.9.5 defint (<defint/>)
4.4.10 integer1
4.4.10.1 factorof (<factorof/>)
4.4.10.2 factorial (<factorial/>)
4.4.10.3 quotient (<quotient/>)
4.4.10.4 remainder (<rem/>)
4.4.11 linalg2
4.4.11.1 vector (<vector>)
4.4.11.2 matrixrow (<matrixrow>)
4.4.11.3 matrix (<matrix>)
4.4.12 mathmlkeys
4.4.12.1 equiv
4.4.12.2 contentequiv
4.4.12.3 contentequiv-strict
4.4.13 rounding1
4.4.13.1 ceiling (<ceiling/>)
4.4.13.2 floor (<floor/>)
4.4.13.3 trunc (<trunc/>)
4.4.13.4 round (<round/>)
4.4.14 setname1
4.4.14.1 P (<primes/>)
4.4.14.2 N (<naturalnumbers/>)
4.4.14.3 Z (<integers/>)
4.4.14.4 rationials (<rationals/>)
4.4.14.5 R (<reals/>)
4.4.14.6 complexes (<complexes/>)
4.4.15 complex1
4.4.15.1 complex_cartesian (<complex_cartesian/>)
4.4.15.2 real (<real/>)
4.4.15.3 imaginary (<imaginary/>)
4.4.15.4 complex_polar (<complex_polar/>)
4.4.15.5 argument (<arg/>)
4.4.15.6 conjugate (<conjugate/>)
4.4.16 interval1
4.4.16.1 integer_interval (<integer_interval/>)
4.4.16.2 interval (<interval>)
4.4.16.3 interval_oo (<interval closure="open"/>)
4.4.16.4 interval_cc (<interval closure="closed"/>)
4.4.16.5 interval_oc (<interval closure="open-closed"/>)
4.4.16.6 interval_co (<interval closure="closed-open"/>)
4.4.17 linalg3
4.4.17.1 vector (<vector.column>)
4.4.17.2 matrixcolumn (<matrixcolumn/>)
4.4.17.3 matrix (<matrix.column/>)
4.4.18 minmax1
4.4.18.1 min (<min/>)
4.4.18.2 big_min
4.4.18.3 max (<max/>)
4.4.18.4 big_max
4.4.19 piece1
4.4.19.1 piecewise (<piecewise>)
4.4.19.2 piece (<piece>)
4.4.19.3 otherwise (<otherwise>)
4.4.20 error1
4.4.20.1 unhandled_symbol
4.4.20.2 unexpected_symbol
4.4.20.3 unsupported_CD
4.4.21 limit1
4.4.21.1 limit (<limit/>)
4.4.21.2 both_sides (<both_sides/>)
4.4.21.3 above (<above/>)
4.4.21.4 below (<below/>)
4.4.21.5 null (<null/>)
4.4.21.6 tendsto (<tendsto/>)
4.4.22 list1
4.4.22.1 map
4.4.22.2 suchthat
4.4.22.3 list (<list>)
4.4.23 multiset1
4.4.23.1 size (<size type="multiset"/>)
4.4.23.2 cartesian_product (<cartesianproduct type="multiset"/>)
4.4.23.3 emptyset (<emptyset type="multiset"/>)
4.4.23.4 multiset (<multiset type="multiset">)
4.4.23.5 intersect (<intersect type="multiset"/>)
4.4.23.6 big_intersect
4.4.23.7 union (<union type="multiset"/>)
4.4.23.8 big_union
4.4.23.9 setdiff (<setdiff type="multiset"/>)
4.4.23.10 subset (<subset type="multiset"/>)
4.4.23.11 in (<in type="multiset"/>)
4.4.23.12 notin (<notin type="multiset"/>)
4.4.23.13 prsubset (<prsubset type="multiset"/>)
4.4.23.14 notsubset (<notsubset type="multiset"/>)
4.4.23.15 notprsubset (<notprsubset type="multiset"/>)
4.4.24 quant1
4.4.24.1 forall (<forall/>)
4.4.24.2 exists (<exists/>)
4.4.25 s_dist1
4.4.25.1 mean (<mean.dist/>)
4.4.25.2 sdev (<sdev.dist/>)
4.4.25.3 variance (<variance.dist/>)
4.4.25.4 moment (<moment.dist/>)
4.4.26 s_data1
4.4.26.1 mean (<mean/>)
4.4.26.2 sdev (<sdev/>)
4.4.26.3 variance (<variance/>)
4.4.26.4 mode (<mode/>)
4.4.26.5 median (<median/>)
4.4.26.6 moment (<moment/>)
4.4.27 transc1
4.4.27.1 log (<log/>)
4.4.27.2 ln (<ln/>)
4.4.27.3 exp (<exp/>)
4.4.27.4 sin (<sin/>)
4.4.27.5 cos (<cos/>)
4.4.27.6 tan (<tan/>)
4.4.27.7 sec (<sec/>)
4.4.27.8 csc (<csc/>)
4.4.27.9 cot (<cot/>)
4.4.27.10 sinh (<sinh/>)
4.4.27.11 cosh (<cosh/>)
4.4.27.12 tanh (<tanh/>)
4.4.27.13 sech (<sech/>)
4.4.27.14 csch (<csch/>)
4.4.27.15 coth (<coth/>)
4.4.27.16 arcsin (<arcsin/>)
4.4.27.17 arccos (<arccos/>)
4.4.27.18 arctan (<arctan/>)
4.4.27.19 arcsec (<arcsec/>)
4.4.27.20 arccsc (<arccsc/>)
4.4.27.21 arccot (<arccot/>)
4.4.27.22 arcsinh (<arcsinh/>)
4.4.27.23 arccosh (<arccosh/>)
4.4.27.24 arctanh (<arctanh/>)
4.4.27.25 arcsech (<arcsech/>)
4.4.27.26 arccsch (<arccsch/>)
4.4.27.27 arccoth (<arccoth/>)

## 4.1 Introduction

In MathML3, content markup is divided into two subsets "Strict"- and "Pragmatic" Content MathML. The first subset uses a minimal set of elements representing the meaning of a mathematical expression in a uniform structure, while the second one tries to strike a pragmatic balance between verbosity and formality. Both forms of content expressions are legitimate and have their role in representing mathematics. Strict Content MathML is canonical in a sense and simplifies the implementation of content MathML processors and the comparison of content expressions and Pragmatic Content MathML is much simpler and more intuitive for humans to understand, read, and write.

Strict Content MathML3 expressions can directly be given a formal semantics in terms of "OpenMath Objects" [OpenMath2004], and we interpret Pragmatic Content MathML3 expressions by specifying equivalent Strict variants, so that they inherit their semantics.

## 4.2 Strict Content MathML

### 4.2.1 The structure of MathML3 Content Expressions

MathML content encoding is based on the concept of an expression tree built up from

As a general rule, the terminal nodes in the tree represent basic mathematical objects such as numbers, variables, arithmetic operations and so on. The internal nodes in the tree generally represent some kind of function application or other mathematical construction that builds up a compound object. Function application provides the most important example; an internal node might represent the application of a function to several arguments, which are themselves represented by the terminal nodes underneath the internal node.

This section provides the basic XML Encoding of content MathML expression trees. General usage and the mechanism used to associate mathematical meaning with symbols are provided here. [mathml3cds] provides a complete listing of the specific Content MathML symbols defined by this specification along with full reference information including attributes, syntax, and examples. It also describes the intended semantics of those symbols and suggests default renderings. The rules for using presentation markup within content markup are explained in Section 5.4.2 Presentation Markup in Content Markup.

### 4.2.2 Encoding OpenMath Objects

Strict Content MathML is designed to be and XML encoding of OpenMath Objects (see [OpenMath2004]), which constitute the semantics of strict content MathML expressions. The table below gives an element-by-element correspondence between the OpenMath XML encoding of OpenMath objects and strict content MathML.

strict Content MathML OpenMath
cn OMI, OMF
csymbol OMS
ci OMV
apply OMA
bind OMBIND
bvar OMBVAR
condition OMC (proposed)
share OMR
semantics OMATTR, OMATP
annotation, annotation-xml OMFOREIGN
error OME

### 4.2.3 Numbers

The cn element is the MathML element used to represent numbers. The supported types of numbers include integers, real numbers, double precision floating point numbers, rational numbers and complex numbers. Where it makes sense, the base in which the number is written can be specified. For most numeric values, the content of a cn element should be either PCDATA or other cn elements.

The permissible attributes on the cn are:

Name Values Default
type "integer" | "real" | "double" | "e-notation," | "rational" | "complex-cartesian" | "complex-polar" real
base number 10

The attribute type is used to specify the kind of number being represented. The pre-defined values are given in the table above. Unless otherwise specified, the default "real" is used.

The attribute base is used to specify how the content is to be parsed. The attribute value is a base 10 positive integer giving the value of base in which the PCDATA is to be interpreted. The base attribute should only be used on elements with type "integer" or "real". Its use on cn elements of other type is deprecated. The default value for base is "10".

Each data type implies that the content be of a certain form, as detailed below.

integer

An integer is represented by an optional sign followed by a string of one or more "digits". How a "digit" is interpreted depends on the base attribute. If base is present, it specifies the base for the digit encoding, and it specifies it base 10. Thus base='16' specifies a hexadecimal encoding.

When base > 10, letters are used in alphabetical order as digits. For example,

<cn base="16">7FE0</cn>

encodes the number written as 32736 in base ten.

When base > 36, some integers cannot be represented using numbers and letters alone and it is up to the application what additional characters (if any) may be used for digits. For example,

<cn base="1000">10F</cn>

represents the number written in base 10 as 1,000,015. However, the number written in base 10 as 1,000,037 cannot be represented using letters and numbers alone when base is 1000.

real

A real number is presented in radix notation. Radix notation consists of an optional sign ("+" or "-") followed by a string of digits possibly separated into an integer and a fractional part by a "decimal point". Some examples are 0.3, 1, and -31.56. If a different base is specified, then the digits are interpreted as being digits computed to that base (in the same was as described for type "integer").

double

This type is used to mark up those double-precision floating point numbers that can be represented in the IEEE 754 standard. This includes a subset of the (mathematical) real numbers, negative zero, positive and negative real infinity and a set of "not a number" values.

The content of a cn element may be PCDATA (representing numeric values as described below), a infinity symbol (representing positive real infinity), a minfinity symbol (representing negative real infinity) or a notanumber element.

 Editorial note: Miko Stephen is postulating an mininfinity symbol here, but we do not have one yeta.

If the content is PCDATA, it is interpreted as a real number in scientific notation. The number then has one or two parts, a significand and possibly an exponent. The significand has the format of a base 10 real number, as described above. The exponent (if present) has the format of a base 10 integer as described above. If the exponent is not present, it is taken to have the value 0. The value of the number is then that of the significand times ten to the power of the exponent.

A special case of PCDATA content is recognized. If a number of the above form has a negative sign and all digits of the significand are zero, then it is taken to be a negative zero in the sense of the IEEE 754 standard.

e-notation

This type is deprecated. It is recommended to use double or real instead.

A real number may be presented in scientific notation using this type. Such numbers have two parts (a significand and an exponent) separated by a <sep/> element. The first part is a real number, while the second part is an integer exponent indicating a power of the base. For example, 12.3<sep/>5 represents 12.3 times 105. The default presentation of this example is 12.3e5.

rational

A rational number is given as two integers giving the numerator and denominator of a quotient. These should themselves be given as nested cn elements.

For backward compatibility, deprecated usage allows the two integers to be given as PCDATA separated by <sep/>. If a base is present in this deprecated use, it specifies the base used for the digit encoding of both integers.

complex-cartesian

A complex cartesian number is given as two numbers giving the real and imaginary parts. These should themselves be given as nested cn elements. As for rational numbers, the deprecated use of <sep/> is also allowed.

complex-polar

A complex polar number is given as two numbers giving the magnitude and angle. These should themselves be given as nested cn elements. As for rational numbers, the deprecated use of <sep/> is also allowed.

constant

This type was deprecated in MathML 2.0 and is now no longer supported. The number constants exponentiale, imaginaryi, true, false, notanumber, pi, eulergamma, and infinity should be used instead.

### 4.2.4 Symbols and Identifiers

The notion of constructing a general expression tree is essentially that of applying an operator to sub-objects. For example, the sum "x+y" can be thought of as an application of the addition operator to two arguments x and y. And the expression "cos(π)" as the application of the cosine function to the number π.

In Content MathML, elements are used for operators and functions to capture the crucial semantic distinction between the function itself and the expression resulting from applying that function to zero or more arguments. This is addressed by making the functions self-contained objects with their own properties and providing an explicit apply construct corresponding to function application. We will consider the apply construct in the next section.

In a sum expression "x+y" above, x and y typically taken to be "variables", since they have properties, but no fixed value, whereas the addition function is a "constant" or "symbol" as it denotes a specific function, which is defined somewhere externally. (Note that "symbol" is used here in the abstract sense and has no connection with any presentation of the construct on screen or paper).

#### 4.2.4.1 Content Identifiers

Strict Content MathML3 uses the ci element (for "content identifier") to construct a variable, or an identifier that is not a symbol. Its PCDATA content is interpreted as a name that identifies it. Two variables are considered equal, iff their names are in the respective scope (see Section 4.2.6 Bindings and Bound Variables for a discussion). A type attribute indicates the type of object the symbol represents. Typically, ci represents a real scalar, but no default is specified.

Name values default
type string unspecified

#### 4.2.4.2 Content Symbols

Due to the nature of mathematics the meaning of the mathematical expressions must be extensible. The key to extensibility is the ability of the user to define new functions and other symbols to expand the terrain of mathematical discourse. The csymbol element is used represent a "symbol" in much the same way that ci is used to construct a variable. The difference is that csymbol should refer to some mathematically defined concept with an external definition referenced via the content dictionary attributes, whereas ci is used for identifiers that are essentially "local" to the MathML expression.

In MathML3, external definitions are grouped in Content Dictionaries (structured documents for the definition of mathematical concepts; see [OpenMath2004] and [mathml3cds]).

We need three bits of information to fully identify a symbol: a symbol name, a Content Dictionary name, and (optionally) a Content Dictionary base URI, which we encode in the textual content (which is the symbol name) and two attributes of the csymbol element: cd and cdbase. The Content Dictionary is the location of the declaration of the symbol, consisting of a name and, optionally, a unique prefix called a cdbase which is used to disambiguate multiple Content Dictionaries of the same name. There are multiple encodings for content dictionaries, this referencing scheme does not distinguish between them. If a symbol does not have an explicit cdbase attribute, then it inherits its cdbase from the first ancestor in the XML tree with one, should such an element exist. In this document we have tended to omit the cdbase for brevity.

Name values default
cdbase URI inherited
cd URI required
 Editorial note: MiKo need to fix the default URI here
Issue default_cd wiki (member only) We might make the cd attribute optional? Then that would refer to the current CD if we are in one, or we could make cd inherit like cdbase. That would save bandwidth None recorded

There are other properties of the symbol that are not explicit in these fields but whose values may be obtained by inspecting the Content Dictionary specified. These include the symbol definition, formal properties and examples and, optionally, a Role which is a restriction on where the symbol may appear in a MathML expression tree. The possible roles are described in Section 8.5 Symbol Roles.

<csymbol cdbase="http://www.example.com" cd="VectorCalculus">Christoffel</csymbol>

For backwards compatibility with MathML2 and to facilitate the use of MathML within a URI-based framework (such as RDF [rdf] or OWL [owl]), the csymbol content together with the values of the cd and cdbase attributes can be combined in the definitionURL attribute: we provide the following scheme for constructing a canonical URI for an MathML Symbol, which can be given in the definitionURL attribute.

URI = cdbase-value + '/' + cd-value + '#' + content

In the case of the Christoffel symbol above this would be the URL

http://www.example.com/VectorCalculus#Christoffel

For backwards compatibility with MathML2, we do not require that the definitionURL point to a content dictionary. But if the URL in this attribute is of the form above, it will be interpreted as the canonical URL of a MathML3 symbol. So the representation above would be equivalent to the one below:

<csymbol definitionURL="http://www.example.com/VectorCalculus">Christoffel</csymbol>
Issue MathML_CDs_URI wiki (member only) We still have to fix this. Maybe it should correspond to the final resting place for CDs. None recorded
Issue definitionURL_encoding wiki (member only)   ISSUE-17 (member only) The URI encoding of the triplet we propose here does not work (not yet for MathMLCDs and not at all for OpenMath2 CDs). The URI reference proposed uses a bare name pointer #Christoffel at the end, which points to the element that has and ID-type attribute with value Christoffel, which is not present in either of these formats. Moreover, it does not scale well with extended CD formats like the OMDoc 1.8 format currently under development None recorded
Issue cdbase-default wiki (member only)   ISSUE-13 (member only) For the inheritance mechanism to be complete, it would make sense to define a default cdbase attribute value, e.g. at the math element. We'd support expressions ignorant of cdbase as they all are thus far. Something such as http://www.w3.org/Math/CDs/official ? Moreover the MathML content dictionaries should contain such. None recorded

### 4.2.5 Function Application

The most fundamental way of building a compound object in mathematics is by applying a function or an operator to some arguments. MathML supplies an infrastructure to represent this in expression trees, which we will present in this section.

An apply element is used to build an expression tree that represents the result of applying a function or operator to its arguments. The tree corresponds to a complete mathematical expression. Roughly speaking, this means a piece of mathematics that could be surrounded by parentheses or "logical brackets" without changing its meaning.

Name values default
cdbase URI inherited

For example, (x + y) might be encoded as

<apply><csymbol cd="arith1">plus</csymbol><ci>x</ci><ci>y</ci></apply>

The opening and closing tags of apply specify exactly the scope of any operator or function. The most typical way of using apply is simple and recursive. Symbolically, the content model can be described as:

<apply> op a b </apply>

where the operands a and b are MathML expression trees themselves, and op is a MathML expression tree that represents an operator or function. Note that apply constructs can be nested to arbitrary depth.

An apply may in principle have any number of operands:

<apply> op a b [c...] </apply>

For example, (x + y + z) can be encoded as

<apply>
<csymbol cd="arith1">plus</csymbol>
<ci>x</ci>
<ci>y</ci>
<ci>z</ci>
</apply>

Mathematical expressions involving a mixture of operations result in nested occurrences of apply. For example, a x + b would be encoded as

<apply><csymbol cd="arith1">plus</csymbol>
<apply><csymbol cd="arith1">times</csymbol>
<ci>a</ci>
<ci>x</ci>
</apply>
<ci>b</ci>
</apply>

There is no need to introduce parentheses or to resort to operator precedence in order to parse the expression correctly. The apply tags provide the proper grouping for the re-use of the expressions within other constructs. Any expression enclosed by an apply element is viewed as a single coherent object.

An expression such as (F+G)(x) might be a product, as in

<apply><csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">plus</csymbol>
<ci>F</ci>
<ci>G</ci>
</apply>
<ci>x</ci>
</apply>

or it might indicate the application of the function F + G to the argument x. This is indicated by constructing the sum

<apply><csymbol cd="arith1">plus</csymbol><ci>F</ci><ci>G</ci></apply>

and applying it to the argument x as in

<apply>
<apply><csymbol cd="arith1">plus</csymbol>
<ci>F</ci>
<ci>G</ci>
</apply>
<ci>x</ci>
</apply>

Both the function and the arguments may be simple identifiers or more complicated expressions.

The apply element is conceptually necessary in order to distinguish between a function or operator, and an instance of its use. The expression constructed by applying a function to 0 or more arguments is always an element from the codomain of the function. Proper usage depends on the operator that is being applied. For example, the plus operator may have zero or more arguments, while the minus operator requires one or two arguments to be properly formed.

If the object being applied as a function is not already one of the elements known to be a function (such as sin or plus) then it is treated as if it were a function.

### 4.2.6 Bindings and Bound Variables

Some complex mathematical objects are constructed by the use of bound variables. For instance the integration variables in an integral expression is one.

#### 4.2.6.1 Bindings

Such expressions are represented as MathML expression trees using the bind element. Its first child is a MathML expression that represents a binding operator (the integral operator in our example). This can be followed by a non-empty list of bvar elements for the bound variables, possibly augmented by the qualifier element condition (see Section 4.2.7 Qualifiers. The last child is the body of the binding, it is another content MathML expression.

Name values default
cdbase URI inherited

#### 4.2.6.2 Bound Variables

The bvar element is a special qualifier element that is used to denote the bound variable of a binding expression, e.g. in sums, products, and quantifiers or user defined functions.

Name values default
cdbase URI inherited

#### 4.2.6.3 Examples

<bind>
<csymbol cd="quant1">forall</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="arith1">minus</csymbol><ci>x</ci><ci>x</ci></apply>
<cn>0</cn>
</apply>
</bind>
<bind>
<csymbol cd="calculus1">int</csymbol>
<bvar><ci xml:id="var-x">x</ci></bvar>
<apply><csymbol cd="arith1">power</csymbol>
<ci definitionURL="#var-x"><mi>x</mi></ci>
<cn>7</cn>
</apply>
</bind>
 Editorial note: MiKo We need to say something about alpha-conversion here for OpenMath compatibility.

### 4.2.7 Qualifiers

The integrals we have seen so far have all been indefinite, i.e. the range of the bound variables range is unspecified. In many situations, we also want to specify range of bound variables, e.g. in definitive integrals. MathML3 provides the optional condition element as a general restriction mechanism for binding expressions.

#### 4.2.7.1 Conditions

A condition element contains a single child that represents a truth condition. Compound conditions are indicated by applying operators such as and in the condition. Consider for instance the following representation of a definite integral.

Name values default
cdbase URI inherited

#### 4.2.7.2 Examples

<bind>
<int/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><csymbol cd="sets">in</csymbol>
<apply><csymbol cd="interval">interval</csymbol>
<cn>0</cn>
<csymbol cd="nums1">infinity</csymbol>
</apply>
</apply>
</condition>
<apply><csymbol cd="transc1">sin</csymbol><ci>x</ci></apply>
</bind>

Here the condition element restricts the bound variables to range over the non-negative integers. A number of common mathematical constructions involve such restrictions, either implicit in conventional notation, such as a bound variable, or thought of as part of the operator rather than an argument, as is the case with the limits of a definite integral.

A typical use of the condition qualifier is to define sets by rule, rather than enumeration. The following markup, for instance, encodes the set {x | x < 1}:

<bind><csymbol cd="sets1">set</csymbol>
<bvar><ci>x</ci></bvar>
<condition>
<apply><csymbol cd="relations1">lt</csymbol><ci>x</ci><cn>1</cn></apply>
</condition>
<ci>x</ci>
</bind>

In the context of quantifier operators, this corresponds to the "such that" construct used in mathematical expressions. The next example encodes "for all x in N there exist prime numbers p, q such that p+q = 2x".

<bind><csymbol cd="quant1">forall</csymbol>
<bvar><ci>x</ci></bvar>
<condition>
<apply><csymbol cd="sets">in</csymbol>
<ci>x</ci>
<csymbol cd="setname1">naturalnumbers</csymbol>
</apply>
</condition>
<bind><csymbol cd="quant1">exists</csymbol>
<bvar><ci>p</ci></bvar>
<bvar><ci>q</ci></bvar>
<condition>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="sets">in</csymbol><ci>p</ci><primes/></apply>
<apply><csymbol cd="sets">in</csymbol><ci>q</ci><primes/></apply>
</apply>
</condition>
<apply><csymbol cd="relation1">eq</csymbol>
<apply><csymbol cd="arith1">plus</csymbol><ci>p</ci><ci>q</ci></apply>
<apply><csymbol cd="arith1">times</csymbol><cn>2</cn><ci>x</ci></apply>
</apply>
</bind>
</bind>

This use extends to multivariate domains by using extra bound variables and a domain corresponding to a cartesian product as in

<bind><csymbol cd="calculus1">int</csymbol>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<condition>
<apply><csymbol cd="logic1">and</csymbol>
<apply><csymbol cd="relation1">leq</csymbol><cn>0</cn><ci>x</ci></apply>
<apply><csymbol cd="relation1">leq</csymbol><ci>x</ci><cn>1</cn></apply>
<apply><csymbol cd="relation1">leq</csymbol><cn>0</cn><ci>y</ci></apply>
<apply><csymbol cd="relation1">leq</csymbol><ci>y</ci><cn>1</cn></apply>
</apply>
</condition>
<apply>
<csymbol cd="arith1">times</csymbol>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci><cn>2</cn></apply>
<apply><csymbol cd="arith1">power</csymbol><ci>y</ci><cn>3</cn></apply>
</apply>
</bind>

### 4.2.8 Structure Sharing

To conserve space, MathML3 expression trees can make use of structure sharing

#### 4.2.8.1 The share element

This element has an href attribute whose value is the value of a URI referencing an xml:id attribute of a MathML expression tree. When building the MathML expression tree, the share element is replaced by a copy of the MathML expression tree referenced by the href attribute. Note that this copy is structurally equal, but not identical to the element referenced. The values of the share will often be relative URI references, in which case they are resolved using the base URI of the document containing the share element.

Name values default
href URI

For instance, the mathematical object f(f(f(a,a),f(a,a)),f(a,a),f(a,a)) can be encoded as either one of the following representations (and some intermediate versions as well).

$[itex] <apply> <apply> <ci>f</ci> <ci>f</ci> <apply> <apply xml:id="t1"> <ci>f</ci> <ci>f</ci> <apply> <apply xml:id="t11"> <ci>f</ci> <ci>f</ci> <ci>a</ci> <ci>a</ci> <ci>a</ci> <ci>a</ci> </apply> </apply> <apply> <share href="#t11"/> <ci>f</ci> <ci>a</ci> <ci>a</ci> </apply> </apply> </apply> <apply> <share href="#t1"/> <ci>f</ci> <apply> <ci>f</ci> <ci>a</ci> <ci>a</ci> </apply> <apply> <ci>f</ci> <ci>a</ci> <ci>a</ci> </apply> </apply> </apply>$                     [/itex]

#### 4.2.8.2 An Acyclicity Constraint

We say that an element dominates all its children and all elements they dominate. An share element dominates its target, i.e. the element that carries the xml:id attribute pointed to by the href attribute. For instance in the representation above the apply element with xml:id="t1" and also the second share dominate the apply element with xml:id="t11".

The occurrences of the share element must obey the following global acyclicity constraint: An element may not dominate itself. For instance the following representation violates this constraint:

<apply xml:id="foo">
<csymbol cd="arith1">plus</csymbol>
<cn>1</cn>
<apply>
<csymbol cd="arith1">plus</csymbol>
<cn>1</cn>
<share href="foo"/>
</apply>
</apply>

Here, the apply element with xml:id="foo" dominates its third child, which dominates the share element, which dominates its target: the element with xml:id="foo". So by transitivity, this element dominates itself, and by the acyclicity constraint, it is not an MathML expression tree. Even though it could be given the interpretation of the continued fraction this would correspond to an infinite tree of applications, which is not admitted by Content MathML

Note that the acyclicity constraints is not restricted to such simple cases, as the following example shows:

<apply xml:id="bar">              <apply xml:id="baz">
<csymbol cd="arith1">plus</csymbol>  <csymbol cd="arith1">plus</csymbol>
<cn>1</cn>                      <cn>1</cn>
<share href="baz"/>             <share href="bar"/>
</apply>                        </apply>

Here, the apply with xml:id="bar" dominates its third child, the share with href="baz", which dominates its target apply with xml:id="baz", which in turn dominates its third child, the share with href="bar", this finally dominates its target, the original apply element with xml:id="bar". So this pair of representations violates the acyclicity constraint.

#### 4.2.8.3 Structure Sharing and Binding

Note that the share element is a syntactic referencing mechanism: an share element stands for the exact element it points to. In particular, referencing does not interact with binding in a semantically intuitive way, since it allows for variable capture. Consider for instance

<bind xml:id="outer">
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply>
<ci>f</ci>
<bind xml:id="inner">
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<share xml:id="copy" href="#orig"/>
</bind>
<apply xml:id="orig"><ci>g</ci><ci>X</ci></apply>
</apply>
</bind>

it represents the term which has two sub-terms of the form , one with xml:id="orig" (the one explicitly represented) and one with xml:id="copy", represented by the share element. In the original, the variable x is bound by the outer bind element, and in the copy, the variable x is bound by the inner bind element. We say that the inner bind has captured the variable X.

It is well-known that variable capture does not conserve semantics. For instance, we could use α-conversion to rename the inner occurrence of x into, say, y arriving at the (same) object Using references that capture variables in this way can easily lead to representation errors, and is not recommended.

#### 4.2.8.4 Structure Sharing and cdbase

 Editorial note: MiKo say something about cdbase here.

### 4.2.9 Attribution via semantics

Content elements can be adorned with additional information via the semantics element, see Section 5.3 Semantic Annotations beyond Alternate Representations for details. As such, the semantics element should be considered part of both presentation MathML and content MathML. MathML3 considers a semantics element (strict) content MathML, if and only if its first child is (strict) content MathML. All MathML processors should process the semantics element, even if they only process one of those subsets.

 Editorial note: MiKo Give an elaborated example from the types note here (or in the primer?), reference Section 8.4 Type Declarations

### 4.2.10 In Situ Error Markup

A content error expression is made up of a symbol and a sequence of zero or more MathML expression trees. This object has no direct mathematical meaning. Errors occur as the result of some treatment on an expression tree and are thus of real interest only when some sort of communication is taking place. Errors may occur inside other objects and also inside other errors.

Name values default
cdbase URI inherited

To encode an error caused by a division by zero, we would employ a aritherror Content Dictionary with a DivisionByZero symbol with role error we would use the following expression tree:

<cerror>
<csymbol cd="aritherror">DivisionByZero</csymbol>
<apply><csymbol cd="arith1">divide</csymbol><ci>x</ci><cn>0</cn></apply>
</cerror>

Note that the error should cover the smallest erroneous subexpression so cerror can be a subexpression of a bigger one, e.g.

<apply><csymbol cd="relation1">eq</csymbol>
<cerror>
<csymbol cd="aritherror">DivisionByZero</csymbol>
<apply><csymbol cd="arith1">divide</csymbol><ci>x</ci><cn>0</cn></apply>
</cerror>
<cn>0</cn>
</apply>

If an application wishes to signal that the content MathML expressions it has received is invalid or is not well-formed then the offending data must be encoded as a string. For example:

<cerror>
<csymbol cd="parser">invalid_XML</csymbol>
<mtext> &#x3C;<!--LESS-THAN SIGN-->apply&#x3E;<!--GREATER-THAN SIGN-->&#x3C;<!--LESS-THAN SIGN-->cos&#x3E;<!--GREATER-THAN SIGN--> &#x3C;<!--LESS-THAN SIGN-->ci&#x3E;<!--GREATER-THAN SIGN-->v&#x3C;<!--LESS-THAN SIGN-->/ci&#x3E;<!--GREATER-THAN SIGN--> &#x3C;<!--LESS-THAN SIGN-->/apply&#x3E;<!--GREATER-THAN SIGN--> </mtext>
</cerror>

Note that the < and > characters have been escaped as is usual in an XML document.

## 4.3 Pragmatic Content MathML

Strict MathML3 content markup differs from earlier versions of MathML in that it has been regularized and based on the content dictionary model introduced by OpenMath [OpenMath2004]. MathML3 also supports MathML2-like markup as a pragmatic representation that is easier to read and more intuitive for humans. "Content MathML" without qualification consists of both types of markup together.

In the following we will discuss the general aspects of pragmatic Content MathML3 and indicate the equivalent strict Content MathML3 expressions. Thus the "pragmatic content MathML" representations inherit the meaning from their strict counterparts. As pragmatic Content MathML is not as regular as strict Content MathML and the mapping from the former to the latter is not regular either, the particulars will be covered in Section 4.4 The MathML3 Content Dictionaries and Operators, where the Content MathML operators are introduced.

 Editorial note: MiKo This part of the specification is still under heavy development and should not be considered as final. In particular, the description of the pragmatic-vs-strict correspondence is still under-defined and should only be considered as an indication of the intended relation. We anticipate that we may have to give normative specification of the relation as a XSLT style sheet that converts pragmatic content MathML expressions to strict content MathML expressions. Such a style sheet is under development at "http://svn.openmath.org/OpenMath3/xsl/cmml2om.xsl (actually it transforms pragmatic content MathML to OpenMath, but this is equivalent, and can be transformed to strict content MathML via "http://svn.openmath.org/OpenMath3/xsl/om2mml.xsl.

### 4.3.1 Operator Elements

Pragmatic content MathML3 provides empty elements for the operators and functions of the K-14 fragment of mathematics. For instance, the empty MathML element <plus/> is equivalent to the element

<csymbol cdbase="http://w3.org/Math/CD" cd="arith1">plus</csymbol>

The set of elements is the same as the ones for MathML2 with few additions. In most cases, the names of the empty operator elements are the same as the symbol names defined in the MathML3 content dictionaries (see Section 4.4 The MathML3 Content Dictionaries and Operators for details). Note that the concepts of "MathML symbols" (defined in Section 4.2.4 Symbols and Identifiers) and "operator elements" are different. In particular not all symbols defined by the MathML3 Content Dictionaries have corresponding operator elements in pragmatic Content MathML.

### 4.3.2 Pragmatic Elements with Attributes

Following MathML2, pragmatic Content MathML3 allows to specialize the meaning of some elements via attributes, usually the type attribute. Strict Content MathML does not have this possibility, therefore these attributes are either passed to the symbols as extra arguments in the apply or bind elements, or MathML3 adds new symbols for the non-default case to the respective content dictionaries. These will normally not have corresponding operator elements (see above).

For instance the closure interval element can be given by the closure attribute. Thus the pragmatic Content MathML3 expression

<apply><interval closure="open-closed"/><cn>0</cn><cn>1</cn></apply>

is equivalent to the strict content MathML3 expression

<apply><csymbol cd="interval1">interval-oc</csymbol><cn>0</cn><cn>1</cn></apply>

The exact relation strict symbols and operator elements is defined in the MathML3 content dictionaries (see Chapter 8 MathML3 Content Dictionaries) and recapitulated in Section 4.4 The MathML3 Content Dictionaries and Operators.

In MathML2, the definitionURL attribute could be used to modify the meaning of an element to allow essentially the same notation to be re-used for a discussion taking place in a different mathematical domain. This use of the attribute is deprecated in MathML3, in favor of using a csymbol with cdbase and cd attributes that combine to the same definitionURL attribute (see Section 4.2.4.2 Content Symbols).

### 4.3.3 Bindings with apply

Pragmatic Content MathML3 allows to use the apply element instead of the bind element to conserve backwards compatibility with MathML2. The mapping to strict Content MathML applies two general principles here depending on the operator. Where there is a binding operator in the content dictionaries, we use that and only replace the apply tag with a bind tag. This is the case for instance for the quantifiers: the pragmatic expression

<apply>
<forall/>
<bvar><ci>x</ci></bvar>
<apply><geq/><ci>x</ci><ci>x</ci></apply>
</apply>

is equivalent to the strict expression.

<bind>
<csymbol cd="logic1">forall</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">geq</csymbol><ci>x</ci><ci>x</ci></apply>
</bind>

This situation also obtains for the exists and lambda symbols.

Where binding operators are not available, we just convert the expression with the bound variable into a λ-expression. Usually we have to move any qualifiers into an argument. For instance for sums:

<apply>
<sum/>
<bvar><ci>i</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>100</cn></uplimit>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</apply>

is equivalent to the strict expression.

<apply>
<sum/>
<apply>
<csymbol cd="interval1">integer_interval</csymbol>
<cn>0</cn>
<cn>100</cn>
</apply>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</bind>
</apply>

For information about which of the schemes applies to a particular symbol, see the respective instructions in Section 4.4 The MathML3 Content Dictionaries and Operators.

### 4.3.4 Container Markup for Constructor Symbols

Pragmatic Content MathML3 provides an alternative representation for applications of "constructor" symbols called "container markup". Constructor symbols represent operators that construct mathematical operators that construct a mathematical structure from a list of objects. This list can be given by an explicit sequence of arguments or as an expression with a bound variable. In pragmatic Content MathML3, we allow to write the argument list as children to the element instead of having to append them as to the empty operator element as children of an apply element.

For instance for the set constructor allow to write:

<set><ci>a</ci><ci>b</ci><ci>c</ci></set>

This is conisdered equivalent to the following strict Content MathML3 expression.

<apply><csymbol cd="set1">set</csymbol><ci>a</ci><ci>b</ci><ci>c</ci></apply>

But the set constructor can also take a list that is given as an expression with a bound variable in pragmatic Content MathML. Consider for instance the collection of all intervals from 0 to x. Here we do not have a systematic correspondence, since a symbol can only have one role. For the constructor symbols this is the role application. Thus the pragmatic Content MathML expression

<set>
<bvar><ci>x</ci></bvar>
<interval><cn>0</cn><ci>x</ci></interval>
</set>

has to be modeled by a

<apply>
<csymbol cd="set1">suchthat</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply>
<csymbol cd="interval1">interval</csymbol>
<cn>0</cn>
<ci>x</ci>
</apply>
</bind>
</apply>

Note that even though we have not made use of this here, the bound variable can be qualified by any of the strict qualifier element condition or the pragmatic qualifier elements (see Section 4.3.12 Upper and Lower Limits, Section 4.3.10 Domain of Application in Bindings and Section 4.3.11 degree).

Note that container markup is restricted to the MathML2 elements set, interval, list, matrix, matrixrow, and vector. For specifics of the strict-pragmatic correspondence see Section 4.4 The MathML3 Content Dictionaries and Operators

### 4.3.5 Container Markup for Binding Constructors

The lambda element allows a kind of container markup for the lambda symbol from the fns1 content dictionary. e.g.

<lambda><bvar><ci>x</ci></bvar><ci>x</ci></lambda>

but unlike the set element, which corresponds to a symbol with role application, the role of the lambda symbol is binding. Therefore the lambda element has to have at least one bvar child followed by qualifiers (see below), followed by a content MathML element. The strict Content MathML equivalent of the expression above is

<bind><csymbol cd="fns1">lambda</csymbol><bvar><ci>x</ci></bvar><ci>x</ci></bind>

### 4.3.6 Container Markup for Applicative Constructors

The piecewise>, piece, and otherwise allow container markup for the constructor symbols of the content dictionary piece1. Unlike the cases described above, these do not allow their arguments to be represented as expressions with bound variables, so the strict-pragmatic correspondence is very simple in this case. For instance the pragmatic Content MathML representation of the absolute value function

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

has the strict equivalent

<apply>
<csymbol cd="piece1">piecewise</csymbol>
<apply>
<csymbol cd="piece1">piece</csymbol>
<apply><csymbol cd="arith1">minus</csymbol><ci>x</ci></apply>
<apply><csymbol cd="arith1">lt</csymbol><ci>x</ci><cn>0</cn></apply>
</apply>
<apply>
<csymbol cd="piece1">piece</csymbol>
<cn>0</cn>
<apply><csymbol cd="arith1">eq</csymbol><ci>x</ci><cn>0</cn></apply>
</apply>
<apply>
<csymbol cd="piece1">piece</csymbol>
<ci>x</ci>
<apply><csymbol cd="arith1">gt</csymbol><ci>x</ci><cn>0</cn></apply>
</apply>
</apply>

### 4.3.7 Symbols and Identifiers With Presentation MathML

In Pragmatic Content MathML, the ci and csymbol elements can contain a general presentation construct (see Section 3.1.6 Summary of Presentation Elements), which is used for rendering (see Section 8.6 Rendering of Content Elements). For example,

<csymbol  cd="ContDiffFuncs">
<msup><mi>C</mi><mn>2</mn></msup>
</csymbol>

encodes an atomic symbol that displays visually as C2 and that, for purposes of content, is treated as a single symbol representing the space of twice-differentiable continuous functions.

Issue csymbol_pmathml_strict wiki (member only) What is the strict equivalent for the case of a csymbol with pMathML content, we do not have a good way of determining that either from the pMathML (we could take the element content stripped of elements; I am assuming this in the example below for now) or from the definitionURL. But as David convinced me, this does not work, so we still need to discuss this. In the We also need to keep the use of symbol names as fragment identifiers in mind. None recorded

A ci or csymbol element with Presentation MathML content is equivalent to a semantics construction where the first child is a ci whose content is the symbol or identifier name and whose second child is an annotation-xml element with the MathML Presentation. For example the Strict Content MathML equivalent to the example above would be

<semantics>
<csymbol cd="ContDiffFuncs">C2</csymbol>
<annotation-xml encoding="MathMLP">
<msup><mi>C</mi><mn>2</mn></msup>
</annotation-xml>
</semantics>

In this situation, the name of the symbol name (which has to be a text string) can be determined from the presentation MathML representation above by stripped off elements. But this is not possible in general . Therefore pragmatic Content MathML allows an additional name attribute on csymbol and ci which allows to specify the name. It is highly advisable to supply name attributes for symbols and identifiers that have presentation MathML content.

Alternatively, the definitionURL attribute can be used to associate a name with with a ci element. See the discussion of bound variables (Section 4.2.6 Bindings and Bound Variables) for a discussion of an important instance of this. For example,

<ci name="c1"><msub><mi>c</mi><mn>1</mn></msub></ci>

encodes an atomic symbol that displays visually as c1 which, for purposes of content, is treated as a atomic concept representing a real number.

Instances of the bound variables are normally recognized by comparing the XML information sets of the relevant ci elements after first carrying out XML space normalization. Such identification can be made explicit by placing an xml:id on the ci element in the bvar element and referring to it using the definitionURL attribute on all other instances. An example of this approach is This xml:id based approach is especially helpful when constructions involving bound variables are nested.

It can be necessary to associate additional information with a bound variable one or more instances of it. The information might be something like a detailed mathematical type, an alternative presentation or encoding or a domain of application. Such associations are accomplished in the standard way by replacing a ci element (even inside the bvar element) by a semantics element containing both it and the additional information. Recognition of and instance of the bound variable is still based on the actual ci elements and not the semantics elements or anything else they may contain. The xml:id based approach outlined above may still be used.

### 4.3.8 Elementary MathML Types on Operator and Container Elements

The ci element uses the type attribute to specify the basic type of object that it represents. While any CDATA string is a valid type, the predefined types include "integer", "rational", "real", "complex", "complex-polar", "complex-cartesian", "constant", "function" and more generally, any of the names of the MathML container elements (e.g. vector) or their type values. For a more advanced treatment of types, the type attribute is inappropriate. Advanced types require significant structure of their own (for example, vector(complex)) and are probably best constructed as mathematical objects and then associated with a MathML expression through use of the semantics element.

 Editorial note: MiKo Give the Strict equivalent here by techniques from the Types Note, but be careful what we eventually do with types.

### 4.3.9 Domain of Application

In pragmatic Content MathML the domainofapplication element may be used in an apply element to mark up the domain over which a given function is being applied. In contrast to its use as a qualifier in the bind element, the usage in the apply element only marks the argument position. For instance, the integral of a function f over an arbitrary domain C can be represented as

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

in Pragmatic Content MathML to mark the domain for the range argument of the definite integral. This expression is considered equivalent to

<apply><csymbol cd="calculus1">int</csymbol><ci>C</ci><ci>f</ci></apply>

### 4.3.10 Domain of Application in Bindings

The domainofapplication was intended to be an alternative to specification of range of bound variables for condition. Generally, a domain of application D can be specified by a condition element requesting that the bound variable is a member of D. For instance, we consider the Pragmatic Content MathML representation

<apply><int/>
<bvar><ci>x</ci></bvar>
<domainofapplication><ci type="set">D</ci></domainofapplication>
<apply><ci type="function">f</ci><ci>x</ci></apply>
</apply>

as equivalent to the Strict Content MathML representation

<apply><csymbol cd="calculus1">int</csymbol>
<bind><csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<condition>
<apply><csymbol cd="set1">in</csymbol><ci>x</ci><ci type="set">D</ci></apply>
</condition>
<apply><ci type="function">f</ci><ci>x</ci></apply>
</bind>
</apply>

### 4.3.11 degree

The degree element is a qualifier used by some MathML container elements to specify that, for example, a bound variable is repeated several times, i.e. for the for the "degree" or "order" of an operation. There are a number of basic mathematical constructs that come in families, such as derivatives and moments. Rather than introduce special elements for each of these families, MathML uses a single general construct, the degree element for this concept of "order".

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

A variable that is to be bound is placed in this container. In a derivative, it indicates which variable with respect to which a function is being differentiated. When the bvar element is used to qualify a derivative, the bvar element may contain a child degree element that specifies the order of the derivative with respect to that variable.

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

it is equivalent to

<bind>
<apply><diff/><cn>2</cn></apply>
<bvar><ci>x</ci></bvar>
<apply><power/><ci>x</ci><cn>4</cn></apply>
</bind>
 Editorial note: MiKo specify a complete list of containers that allow degree elements, so far I see diff, partialdiff, root, moment.

Note that the degree element is only allowed in the container representation. The strict representation takes the degree as a regular argument as the second child of the apply or bind element.

 Editorial note: MiKo Make sure that all MMLdefinitions of degree-carrying symbols get a paragraph like the one for root.

### 4.3.12 Upper and Lower Limits

The uplimit and lowlimit elements are pragmatic Content MathML qualifiers that can be used to restrict the range of a bound variable to an interval, e.g. in some integrals and sums. In strict content MathML, the uplimit/lowlimit pairs can be expressed via the interval symbol from the CD interval1. For instance, we consider the Pragmatic Content MathML representation

<apply><int/>
<bvar><ci> x </ci></bvar>
<lowlimit><ci>a</ci></lowlimit>
<uplimit><ci>b</ci></uplimit>
<apply><ci>f</ci><ci>x</ci></apply>
</apply>

as equivalent to the following strict representation

<apply>
<csymbol cd="calculus1">defint</csymbol>
<apply><interval/><ci>a</ci><ci>b</ci></apply>
<bind>
<lambda/>
<bvar><ci>x</ci></bvar>
<apply><ci>f</ci><ci>x</ci></apply>
</bind>
</apply>

If the lowlimit qualifier is missing, it is interpreted as negative infinity, similarly, if uplimit is then it is interpreted as positive infinity.

### 4.3.13 Lifted Associative Commutative Operators

Pragmatic Content MathML allows to use a associative operators to be "lifted" to "big operators", for instance the n-ary minimum operator to the minimum operator over sets, as the minimum of squares in this expression:

<apply>
<min/>
<bvar><ci>x</ci></bvar>
<condition>
<apply><in/><ci>x</ci><interval><cn>-4</cn><cn>4</cn></interval></apply>
</condition>
<apply><power/><ci>x</ci><cn>2</cn></apply>
</apply>

While the relation between the nary and the set-based operators is deterministic, i.e. the induced big operators are fully determined by them, the concepts are quite different in nature (different notational conventions, different types, different occurrence schemata). Therefore the MathML3 content dictionaries provide explicit symbols for the "big operators", much like MathML2 did with sum as the big operator for for the n-ary plus symbol, and prod for times. Concretely, these are big_union, big_intersect, big_max, big_min, big_gcd, big_lcm, big_or, big_and, and big_xor.

 Editorial note: MiKo actually, there are more, e.g. cartesianproduct; make a complete list

With these, we can express all pragmatic Content MathML expressions. For instance, the minimum above can be represented in strict Content MathML as

  <apply>
<csymbol cd="set1">suchthat</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>S</ci></bvar>
<condition>
<apply><csymbol cd="set1">in</csymbol><ci>S</ci><ci>F</ci></apply>
</condition>
<apply><csymbol cd="set1">setdiff</csymbol><ci>U</ci><ci>S</ci></apply>
</bind>
</apply>

For the exact meaning of the new symbols, consult the content dictionaries.

### 4.3.14 Declare (declare)

 Editorial note: MiKo This should maybe be moved into a general section about changes or deprecated elements. Also Stan thinks the text should be improved.

MathML2 provided the declare element that allowed to bind properties like types to symbols and variables and to define abbreviations for structure sharing. This element is deprecated in MathML3. Structure sharing can obtained via the share element (see Section 4.2.8 Structure Sharing for details).

## 4.4 The MathML3 Content Dictionaries and Operators

We will now give an overview over the MathML3 symbols: they are grouped into content dictionaries that broadly reflect the area of mathematics from which they come.

 Editorial note: MiKo The list is generated from the MathML3 Content Dictionaries at http://svn.openmath.org/OpenMath3/cd/MathML/. These are the result of merging material from the MathML2 and OpenMath2 content dictionaries, they are under review. We have already done some work on the arith1 CD to show how the extracted material will look in the MathML3 specification. The presentation of the other CDs will improve with the content dictionary editorial process.

### 4.4.1 arith1

This CD defines symbols for common arithmetic functions.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml.

#### 4.4.1.1 lcm (<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.

Example: If the following expression were evaluated at a=2, b=4, and c=6 it would yield 12.

    <apply><lcm/><ci>a</ci><ci>b</ci><ci>c</ci></apply>


For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#lcm.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementlcm in pragmatic Content MathML.

The lcm symbol can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_lcm symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<lcm/>
<bvar><ci>x</ci></bvar>
<ci>x</ci>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_lcm</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>x</ci>
</bind>
</apply>

#### 4.4.1.2 big_lcm

Description: This n-ary operator is used to construct the least common multiple over a set of expressions.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#big_lcm.

#### 4.4.1.3 gcd (<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.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#gcd.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementgcd in pragmatic Content MathML.

The gcd symbol can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_gcd symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<gcd/>
<bvar><ci>x</ci></bvar>
<ci>x</ci>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_gcd</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<ci>x</ci>
</bind>
</apply>

#### 4.4.1.4 big_gcd

Description: This n-ary operator is used to construct the greatest common divisor over a set of expressions.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#big_gcd.

#### 4.4.1.5 plus (<plus/>)

Description: The symbol representing an n-ary commutative function plus. 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.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#plus.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementplus in pragmatic Content MathML.

As an n-ary operation the operands of plus can also be generated by allowing a function or expression vary over a domain of application though the sum element is normally used for that purpose.

#### 4.4.1.6 unary_minus (<unary_minus/>)

Description: This symbol denotes unary minus, i.e. the additive inverse for an additive group. It constructs the additive inverse of that group element.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#unary_minus.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementunary_minus in pragmatic Content MathML.

#### 4.4.1.7 minus (<minus/>)

Description: The symbol representing a binary minus function, the subtraction operator for an additive group. This is equivalent to adding the additive inverse.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#minus.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementminus in pragmatic Content MathML.

#### 4.4.1.8 times (<times/>)

Description: The symbol representing an n-ary multiplication function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#times.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtimes in pragmatic Content MathML.

#### 4.4.1.9 divide (<divide/>)

Description: This symbol represents a (binary) division function denoting the first argument right-divided by the second, i.e. divide(a,b)=a*inverse(b). It is the inverse of the multiplication function defined by the symbol times in this CD.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#divide.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementdivide in pragmatic Content MathML.

#### 4.4.1.10 power (<power/>)

Description: This symbol represents a power function. The first argument is raised to the power of the second argument. When the second argument is not an integer, powering is defined in terms of exponentials and logarithms for the complex and real numbers. This operator can represent general powering.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#power.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementpower in pragmatic Content MathML.

#### 4.4.1.11 abs (<abs/>)

Description: A unary operator which represents the absolute value of its argument. The argument should be numerically valued. In the complex case this is often referred to as the modulus.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#abs.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementabs in pragmatic Content MathML.

#### 4.4.1.12 root (<root/>)

Description: A binary operator which represents its first argument "lowered" to its n'th root where n is the second argument. This is the inverse of the operation represented by the power symbol defined in this CD. Care should be taken as to the precise meaning of this operator, in particular which root is represented, however it is here to represent the general notion of taking n'th roots. As inferred by the signature relevant to this symbol, the function represented by this symbol is the single valued function, the specific root returned is the one indicated by the first CMP. Note also that the converse of the second CMP is not valid in general.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#root.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementroot in pragmatic Content MathML.

The root element is used to construct roots. The kind of root to be taken is specified by a "degree" child, which should be given as the second child of the apply element enclosing the root element. Thus, square roots correspond to the case where degree contains the value 2, cube roots correspond to 3, and so on.

Note that Pragmatic MathML3 supports a degree element in the container representation. If no degree is present, a default value of 2 is used.

#### 4.4.1.13 sum (<sum/>)

Description: An operator taking two arguments, the first being the range of summation, e.g. an integral interval, the second being the function to be summed. Note that the sum may be over an infinite interval.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#sum.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsum in pragmatic Content MathML.

In pragmatic Content MathmL, the sum operator may used as the first child of an apply element, which is qualified by providing a domainofapplication, an uplimit, lowlimit pair, condition element. The index for the summation is specified by a bvar element.

If no bound variables are specified then terms of the sum correspond to those produced by evaluating the function that is provided at the points of the domain, while if bound variables are present they are the index of summation and they take on the values of points in the domain. In this case the terms of the sum correspond to the values of the expression that is provided, evaluated at those points. Depending on the structure of the domain, the domain of summation can be abbreviated by using uplimit and lowlimit to specify upper and lower limits for the sum.

A sum in pragmatic Content MathML is turned into strict Content MathML by supplying a lambda binder for the expression to make it into a function. The range of integration is converted to an interval.

The pragmatic Content MathML expression

<apply>
<sum/>
<bvar><ci>i</ci></bvar>
<lowlimit><cn>0</cn></lowlimit>
<uplimit><cn>100</cn></uplimit>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<sum/>
<apply>
<csymbol cd="interval1">integer_interval</csymbol>
<cn>0</cn>
<cn>100</cn>
</apply>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</bind>
</apply>

#### 4.4.1.14 product (<product/>)

Description: An operator taking two arguments, the first being the range of multiplication e.g. an integral interval, the second being the function to be multiplied. Note that the product may be over an infinite interval.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/arith1.xhtml#product.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementproduct in pragmatic Content MathML.

In pragmatic Content MathmL, the product Operator may used as the first child of an apply element, which is qualified by providing a domainofapplication, an uplimit, lowlimit pair, condition element. The index is specified by a bvar element.

If no bound variables are specified then terms of the product correspond to those produced by evaluating the function that is provided at the points of the domain, while if bound variables are present they are the index and they take on the values of points in the domain. In this case the terms of the product correspond to the values of the expression that is provided, evaluated at those points. Depending on the structure of the domain, the domain of multiplication can be abbreviated by using uplimit and lowlimit to specify upper and lower limits for the product.

A product in pragmatic Content MathML is turned into strict Content MathML by supplying a lambda binder for the expression to make it into a function. The range of integration is converted to an interval.

The pragmatic Content MathML expression

<apply>
<product/>
<bvar><ci>i</ci></bvar>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<product/>
<apply>
<csymbol cd="interval1">integer_interval</csymbol>
<cn>0</cn>
<cn>100</cn>
</apply>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>i</ci></bvar>
<apply><power/><ci>x</ci><ci>i</ci></apply>
</bind>
</apply>

### 4.4.2 fns1

This CD is intended to be compatible' with the corresponding elements in Content MathML. In this CD we give a set of functions concerning functions themselves. Functions can be constructed from expressions via a lambda expression. Also there are basic function functions like compose, etc.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml.

#### 4.4.2.1 domain (<domain/>)

Description: This symbol denotes the domain of a given function, which is the set of values it is defined over.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#domain.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementdomain in pragmatic Content MathML.

#### 4.4.2.2 range (<codomain/>)

Description: This symbol denotes the range of a function, that is a set that the function will map to. The single argument should be the function whos range is being queried. It should be noted that this is not necessarily equal to the image, it is merely required to contain the image.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#range.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcodomain in pragmatic Content MathML.

#### 4.4.2.3 image (<image/>)

Description: This symbol denotes the image of a given function, which is the set of values the domain of the given function maps to.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#image.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementimage in pragmatic Content MathML.

#### 4.4.2.4 identity (<ident/>)

Description: The identity function, it takes one argument and returns the same value.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#identity.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementident in pragmatic Content MathML.

#### 4.4.2.5 left_inverse

Description: This symbol is used to describe the left inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the left inverse function is ill-defined without further stipulations. No other assumptions are made on the semantics of this left inverse.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#left_inverse.

#### 4.4.2.6 right_inverse

Description: This symbol is used to describe the right inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the right inverse function is ill-defined without further stipulations. No other assumptions are made on the semantics of this right inverse.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#right_inverse.

#### 4.4.2.7 inverse (<inverse/>)

Description: This symbol is used to describe the inverse of its argument (a function). This inverse may only be partially defined because the function may not have been surjective. If the function is not surjective the inverse function is ill-defined without further stipulations. No assumptions are made on the semantics of this inverse.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#inverse.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinverse in pragmatic Content MathML.

#### 4.4.2.8 left_compose (<compose/>)

Description: This symbol represents the function which forms the left-composition of its two (function) arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#left_compose.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcompose in pragmatic Content MathML.

#### 4.4.2.9 lambda (<lambda>)

Description: This symbol is used to represent anonymous functions as lambda expansions. It is used in a binder that takes two further arguments, the first of which is a list of variables, and the second of which is an expression, and it forms the function which is the lambda extraction of the expression.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/fns1.xhtml#lambda.

This constructor symbol allows container markup with with the element lambda in pragmatic Content MathML.

In pragmatic Content MathML, the condition and domainofapplication elements can be used to restrict the defined function to a specific domain.

### 4.4.3 linalg1

Operations on Matrices (independent of the matrix representation).

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml.

#### 4.4.3.1 vectorproduct (<vectorproduct/>)

Description: This symbol represents the vector product function. It takes two three dimensional vector arguments and returns a three dimensional vector. It is defined as follows: if we write a as [a_1,a_2,a_3] and b as [b_1,b_2,b_3] then the vector product denoted a x b = [a_2b_3 - a_3b_2 , a_3b_1 - a_1b_3 , a_1b_2 - a_2b_1]. Note that the vector product is often referred to as the cross product.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#vectorproduct.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementvectorproduct in pragmatic Content MathML.

#### 4.4.3.2 scalarproduct (<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.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#scalarproduct.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementscalarproduct in pragmatic Content MathML.

#### 4.4.3.3 outerproduct (<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.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#outerproduct.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementouterproduct in pragmatic Content MathML.

#### 4.4.3.4 transpose (<transpose/>)

Description: This symbol represents a unary function that denotes the transpose of the given matrix or vector

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#transpose.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtranspose in pragmatic Content MathML.

#### 4.4.3.5 determinant (<determinant/>)

Description: This symbol denotes the unary function which returns the determinant of its argument, the argument should be a square matrix.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#determinant.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementdeterminant in pragmatic Content MathML.

#### 4.4.3.6 vector_selector (<selector/>)

Description: This symbol represents the function which allows individual entries to be selected from a vector, or a matrixrow. It takes two arguments. The first argument is the position in the vector (or matrixrow) of the required entry, the second argument is the vector (or matrixrow) in question. The indexing is one based, i.e. the first element is indexed by one.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#vector_selector.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementselector in pragmatic Content MathML.

#### 4.4.3.7 matrix_selector (<matrix_selector/>)

Description: This symbol represents the function which allows individual entries to be selected from a matrix. It takes three arguments, the first is the index of the row and the second is the index of the column of the required element, the third argument is the matrix in question. The indexing is one based, i.e. the element in the top left hand corner is indexed by (1,1).

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg1.xhtml#matrix_selector.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmatrix_selector in pragmatic Content MathML.

### 4.4.4 logic1

This CD holds the basic logic functions.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml.

#### 4.4.4.1 equivalent (<equivalent/>)

Description: This symbol is used to show that two boolean expressions are logically equivalent, that is have the same boolean value for any inputs.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#equivalent.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementequivalent in pragmatic Content MathML.

#### 4.4.4.2 not (<not/>)

Description: This symbol represents the logical not function which takes one boolean argument, and returns the opposite boolean value.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#not.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnot in pragmatic Content MathML.

#### 4.4.4.3 and (<and/>)

Description: This symbol represents the logical and function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if all arguments are true or false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#and.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementand in pragmatic Content MathML.

The and operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_and symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<and/>
<bvar><ci>x</ci></bvar>
<apply><eq/><ci>x</ci><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_and</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">eq</csymbol><ci>x</ci><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.4.4 big_and

Description: This n-ary operator is used to construct the conjunction over a set of forumlae.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#big_and.

#### 4.4.4.5 xor (<xor/>)

Description: This symbol represents the logical xor function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if there are an odd number of true arguments or false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#xor.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementxor in pragmatic Content MathML.

The xor operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_xor symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<xor/>
<bvar><ci>x</ci></bvar>
<apply><eq/><ci>x</ci><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_xor</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">eq</csymbol><ci>x</ci><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.4.6 big_xor

Description: This n-ary operator is used to construct the exclusive disjunction over a set of forumlae.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#big_xor.

#### 4.4.4.7 or (<or/>)

Description: This symbol represents the logical or function which is an n-ary function taking boolean arguments and returning a boolean value. It is true if any of the arguments are true or false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#or.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementor in pragmatic Content MathML.

The or operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_or symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<or/>
<bvar><ci>x</ci></bvar>
<apply><eq/><ci>x</ci><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_or</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="relation1">eq</csymbol><ci>x</ci><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.4.8 big_or

Description: This n-ary operator is used to construct the disjunction over a set of forumlae.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#big_or.

#### 4.4.4.9 implies (<implies/>)

Description: This symbol represents the logical implies function which takes two boolean expressions as arguments. It evaluates to false if the first argument is true and the second argument is false, otherwise it evaluates to true.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#implies.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementimplies in pragmatic Content MathML.

#### 4.4.4.10 true (<true/>)

Description: This symbol represents the boolean value true.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#true.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtrue in pragmatic Content MathML.

#### 4.4.4.11 false (<false/>)

Description: This symbol represents the boolean value false.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/logic1.xhtml#false.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementfalse in pragmatic Content MathML.

### 4.4.5 nums1

This CD is intended to be compatible' with the MathML view of constructors for numbers (integers to an arbitrary base, rationals) and symbols for some common numerical constants. This CD holds a set of symbols for creating numbers, including some defined constants (i.e. nullary constructors).

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml.

#### 4.4.5.1 based_integer (<based_integer/>)

Description: This symbol represents the constructor function for integers, specifying the base. It takes two arguments, the first is a positive integer to denote the base to which the number is represented, the second argument is a string which contains an optional sign and the digits of the integer, using 0-9a-z (as a consequence of this no radix greater than 35 is supported). Base 16 and base 10 are already covered in the encodings of integers.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#based_integer.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementbased_integer in pragmatic Content MathML.

#### 4.4.5.2 rational (<rational/>)

Description: This symbol represents the constructor function for rational numbers. It takes two arguments, the first is an integer p to denote the numerator and the second a nonzero integer q to denote the denominator of the rational p/q.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#rational.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementrational in pragmatic Content MathML.

#### 4.4.5.3 infinity (<infinity/>)

Description: A symbol to represent the notion of infinity.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#infinity.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinfinity in pragmatic Content MathML.

#### 4.4.5.4 e (<exponentiale/>)

Description: This symbol represents the base of the natural logarithm, approximately 2.718. See Abramowitz and Stegun, Handbook of Mathematical Functions, section 4.1.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#e.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementexponentiale in pragmatic Content MathML.

#### 4.4.5.5 i (<imaginaryi/>)

Description: This symbol represents the square root of -1.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#i.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementimaginaryi in pragmatic Content MathML.

#### 4.4.5.6 pi (<pi/>)

Description: A symbol to convey the notion of pi, approximately 3.142. The ratio of the circumference of a circle to its diameter.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#pi.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementpi in pragmatic Content MathML.

#### 4.4.5.7 gamma (<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.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#gamma.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementeulergamma in pragmatic Content MathML.

#### 4.4.5.8 NaN (<notanumber/>)

Description: A symbol to convey the notion of not-a-number. The result of an ill-posed floating computation. See IEEE standard for floating point representations.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/nums1.xhtml#NaN.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotanumber in pragmatic Content MathML.

### 4.4.6 relation1

This CD holds the common arithmetic relations. It is intended to be compatible' with the appropriate MathML elements.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml.

#### 4.4.6.1 eq (<eq/>)

Description: This symbol represents the binary equality function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#eq.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementeq in pragmatic Content MathML.

#### 4.4.6.2 lt (<lt/>)

Description: This symbol represents the binary less than function which returns true if the first argument is less than the second, it returns false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#lt.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementlt in pragmatic Content MathML.

#### 4.4.6.3 gt (<gt/>)

Description: This symbol represents the binary greater than function which returns true if the first argument is greater than the second, it returns false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#gt.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementgt in pragmatic Content MathML.

#### 4.4.6.4 neq (<neq/>)

Description: This symbol represents the binary inequality function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#neq.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementneq in pragmatic Content MathML.

#### 4.4.6.5 leq (<leq/>)

Description: This symbol represents the binary less than or equal to function which returns true if the first argument is less than or equal to the second, it returns false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#leq.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementleq in pragmatic Content MathML.

#### 4.4.6.6 geq (<geq/>)

Description: This symbol represents the binary greater than or equal to function which returns true if the first argument is greater than or equal to the second, it returns false otherwise.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#geq.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementgeq in pragmatic Content MathML.

#### 4.4.6.7 approx (<approx/>)

Description: This symbol is used to denote the approximate equality of its two arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/relation1.xhtml#approx.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementapprox in pragmatic Content MathML.

### 4.4.7 set1

This CD defines the set functions and constructors for basic set theory. It is intended to be compatible' with the corresponding elements in MathML.

The symbols introduced in this content dictionary have operator elements that take a type attribute indicates whehter the they pertain to a set or multilset interpretation of the arguments. This attribute takes the values "normal" and "multiset", where "normal" is the default value. "multiset" indicates that repetitions are allowed. The symbols defined in the set1 content dictionary correspond to the set interpretation.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml.

#### 4.4.7.1 cartesian_product (<cartesianproduct/>)

Description: This symbol represents an n-ary construction function for constructing the Cartesian product of sets. It takes n set arguments in order to construct their Cartesian product.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#cartesian_product.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcartesianproduct in pragmatic Content MathML.

#### 4.4.7.2 emptyset (<emptyset/>)

Description: This symbol is used to represent the empty set, that is the set which contains no members. It takes no parameters.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#emptyset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementemptyset in pragmatic Content MathML.

#### 4.4.7.3 map (<map/>)

Description: This symbol represents a mapping function which may be used to construct sets, it takes as arguments a function from X to Y and a set over X in that order. The value that is returned is a set of values in Y. The argument list may be a set or an integer_interval.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#map.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmap in pragmatic Content MathML.

#### 4.4.7.4 size (<card/>)

Description: This symbol is used to denote the number of elements in a set. It is either a non-negative integer, or an infinite cardinal number. The symbol infinity may be used for an unspecified infinite cardinal.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#size.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcard in pragmatic Content MathML.

#### 4.4.7.5 suchthat (<suchthat/>)

Description: This symbol represents the suchthat function which may be used to construct sets, it takes two arguments. The first argument should be the set which contains the elements of the set we wish to represent, the second argument should be a predicate, that is a function from the set to the booleans which describes if an element is to be in the set returned.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#suchthat.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsuchthat in pragmatic Content MathML.

#### 4.4.7.6 set (<set>)

Description: This symbol represents the set construct. It is an n-ary function. The set entries are given explicitly. There is no implied ordering to the elements of a set.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#set.

This constructor symbol allows container markup with with the element set in pragmatic Content MathML.

#### 4.4.7.7 intersect (<intersect/>)

Description: This symbol is used to denote the n-ary intersection of sets. It takes sets as arguments, and denotes the set that contains all the elements that occur in all of them.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#intersect.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementintersect in pragmatic Content MathML.

The intersect operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_intersect symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<intersect/>
<bvar><ci>x</ci></bvar>
<apply><interval type="integer"/><cn>0</cn><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="set1">big_intersect</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="interval1">integer_interval</csymbol><cn>0</cn><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.7.8 big_intersect

Description: This n-ary operator is used to construct the intersection over a collection of sets.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#big_intersect.

#### 4.4.7.9 union (<union/>)

Description: This symbol is used to denote the n-ary union of sets. It takes sets as arguments, and denotes the set that contains all the elements that occur in any of them.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#union.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementunion in pragmatic Content MathML.

The union operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_union symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<union/>
<bvar><ci>x</ci></bvar>
<apply><interval type="integer"/><cn>0</cn><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="set1">big_union</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="interval1">integer_interval</csymbol><cn>0</cn><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.7.10 big_union

Description: This n-ary operator is used to construct the union over a collection of sets.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#big_union.

#### 4.4.7.11 setdiff (<setdiff/>)

Description: This symbol is used to denote the set difference of two sets. It takes two sets as arguments, and denotes the set that contains all the elements that occur in the first set, but not in the second.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#setdiff.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsetdiff in pragmatic Content MathML.

#### 4.4.7.12 subset (<subset/>)

Description: This symbol has two (set) arguments. It is used to denote that the first set is a subset of the second.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#subset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsubset in pragmatic Content MathML.

#### 4.4.7.13 in (<in/>)

Description: This symbol has two arguments, an element and a set. It is used to denote that the element is in the given set.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#in.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementin in pragmatic Content MathML.

#### 4.4.7.14 notin (<notin/>)

Description: This symbol has two arguments, an element and a set. It is used to denote that the element is not in the given set.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#notin.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotin in pragmatic Content MathML.

#### 4.4.7.15 prsubset (<prsubset/>)

Description: This symbol has two (set) arguments. It is used to denote that the first set is a proper subset of the second, that is a subset of the second set but not actually equal to it.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#prsubset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementprsubset in pragmatic Content MathML.

#### 4.4.7.16 notsubset (<notsubset/>)

Description: This symbol has two (set) arguments. It is used to denote that the first set is not a subset of the second.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#notsubset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotsubset in pragmatic Content MathML.

#### 4.4.7.17 notprsubset (<notprsubset/>)

Description: This symbol has two (set) arguments. It is used to denote that the first set is not a proper subset of the second. A proper subset of a set is a subset of the set but not actually equal to it.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/set1.xhtml#notprsubset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotprsubset in pragmatic Content MathML.

### 4.4.8 veccalc1

This CD contains symbols to represent functions which are concerned with vector calculus.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/veccalc1.xhtml.

#### 4.4.8.1 divergence (<divergence/>)

Description: This symbol is used to represent the divergence function. It takes one argument which should be a vector of scalar valued functions, intended to represent a vector valued function and returns a scalar value. It should satisfy the defining relation: divergence(F) = \partial(F_(x_1))/\partial(x_1) + ... + \partial(F_(x_n))/\partial(x_n)

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/veccalc1.xhtml#divergence.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementdivergence in pragmatic Content MathML.

#### 4.4.8.2 grad (<grad/>)

Description: This symbol is used to represent the grad function. It takes one argument which should be a scalar valued function and returns a vector of functions. It should satisfy the defining relation: grad(F) = (\partial(F)/\partial(x_1), ... ,\partial(F)/partial(x_n))

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/veccalc1.xhtml#grad.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementgrad in pragmatic Content MathML.

#### 4.4.8.3 curl (<curl/>)

Description: This symbol is used to represent the curl function. It takes one argument which should be a vector of scalar valued functions, intended to represent a vector valued function and returns a vector of functions. It should satisfy the defining relation: 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 respectively and the multiplication X is cross multiplication.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/veccalc1.xhtml#curl.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcurl in pragmatic Content MathML.

#### 4.4.8.4 Laplacian (<laplacian/>)

Description: This symbol is used to represent the laplacian function. It takes one argument which should be a vector of scalar valued functions, intended to represent a vector valued function and returns a vector of functions. It should satisfy the defining relation: laplacian(F) = \partial^2(F)/\partial(x_1)^2 + ... + \partial^2(F)/\partial(x_n)^2

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/veccalc1.xhtml#Laplacian.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementlaplacian in pragmatic Content MathML.

### 4.4.9 calculus1

This CD is intended to be compatible with the calculus operations in Content MathML. Integration is just for the univariate case and is either definite or indefinite.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/calculus1.xhtml.

#### 4.4.9.1 diff (<diff/>)

Description: This symbol is used to express ordinary differentiation of a unary function. The single argument is the unary function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/calculus1.xhtml#diff.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementdiff in pragmatic Content MathML.

In pragmatic Content MathML the diff operator can be applied to an expression involving a single variable such as sin(x), or cos(x). or a polynomial in x. For the expression case the actual variable is designated by a bvar element that is a child of the containing apply element. To translate this usage to strict Content MathML, we add a lambda construction.

The pragmatic Content MathML expression

<apply>
<diff/>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<diff/>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</bind>
</apply>

The bvar element may also contain a degree element, which specifies the order of the derivative to be taken. To achieve this effect in strict Content MathML, we use the nthdiff symbol.

The pragmatic Content MathML expression

<apply>
<diff/>
<bvar><degree><cn>2</cn></degree><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<nthdiff/>
<cn>2</cn>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><sin/><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.9.2 nthdiff

Description: This symbol is used to express the nth-iterated ordinary differentiation of a unary function. The first argument is n, and the second the unary function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/calculus1.xhtml#nthdiff.

#### 4.4.9.3 partialdiff (<partialdiff/>)

Description: This symbol is used to express partial differentiation of a function of more than one variable. It has two arguments, the first is a list of integers which index the variables of the function, the second is the function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/calculus1.xhtml#partialdiff.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementpartialdiff in pragmatic Content MathML.

In pragmatic Content MathML, the partialdiff operator can be applied to an expression with bound variables given by bvar elements, which are children of the containing apply element. The bvar elements may also contain degree element, which specify the order of the partial derivative to be taken in that variable. In strict Content MathML, the degrees are given as a list in the first argument of the partialdiff symbol.

The pragmatic Content MathML expression

<apply>
<partialdiff/>
<bvar>
<ci>x</ci>
<degree><ci>n</ci></degree>
</bvar>
<bvar>
<ci>y</ci>
<degree><ci>m</ci></degree>
</bvar>
<apply><sin/><apply><times/><ci>x</ci><ci>y</ci></apply></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<partialdiff/>
<apply><csymbol cd="list1">list</csymbol><ci>n</ci><ci>m</ci></apply>
<bind>
<lambda/>
<bvar><ci>x</ci></bvar>
<bvar><ci>y</ci></bvar>
<apply><sin/><apply><times/><ci>x</ci><ci>y</ci></apply></apply>
</bind>
</apply>

Where a total degree of differentiation must be specified, this is indicated by use of a degree element at the top level, i.e. without any associated bvar, as a child of the containing apply element. Each degree schema used with partialdiff is expected to contain a single child schema. For example,

  <apply>
<partialdiff/>
<bvar>
<degree><cn>2</cn></degree>
<ci>x</ci>
</bvar>
<bvar><ci>y</ci></bvar>
<bvar><ci>x</ci></bvar>
<degree><cn>4</cn></degree>
<ci type="function">f</ci>
</apply>


denotes the mixed partial derivative ( d4 / d2x dy dx ) f. In strict Content MathML, the overall degree cannot be given.

#### 4.4.9.4 int (<int/>)

Description: This symbol is used to represent indefinite integration of unary functions. The argument is the unary function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/calculus1.xhtml#int.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementint in pragmatic Content MathML.

#### 4.4.9.5 defint (<defint/>)

Description: This symbol is used to represent definite integration of unary functions. It takes two arguments; the first being the range (e.g. a set) of integration, and the second the function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/calculus1.xhtml#defint.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementdefint in pragmatic Content MathML.

### 4.4.10 integer1

This CD holds a collection of basic integer functions. This CD is intended to be compatible' with the corresponding elements in Content MathML.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/integer1.xhtml.

#### 4.4.10.1 factorof (<factorof/>)

Description: This is the binary OpenMath operator that is used to indicate the mathematical relationship a "is a factor of" b, where a is the first argument and b is the second. This relationship is true if and only if b mod a = 0.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/integer1.xhtml#factorof.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementfactorof in pragmatic Content MathML.

#### 4.4.10.2 factorial (<factorial/>)

Description: The symbol to represent a unary factorial function on non-negative integers.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/integer1.xhtml#factorial.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementfactorial in pragmatic Content MathML.

#### 4.4.10.3 quotient (<quotient/>)

Description: The symbol to represent the integer (binary) division operator. That is, for integers a and b, quotient(a,b) denotes q such that a=b*q+r, with |r| less than |b| and a*r positive.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/integer1.xhtml#quotient.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementquotient in pragmatic Content MathML.

#### 4.4.10.4 remainder (<rem/>)

Description: The symbol to represent the integer remainder after (binary) division. For integers a and b, remainder(a,b) denotes r such that a=b*q+r, with |r| less than |b| and a*r positive.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/integer1.xhtml#remainder.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementrem in pragmatic Content MathML.

### 4.4.11 linalg2

This CD treats matrices and vectors in a row oriented fashion (using matrixrow's).

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/linalg2.xhtml.

#### 4.4.11.1 vector (<vector>)

Description: This symbol represents an n-ary function used to construct (or describe) vectors. Vectors in this CD are considered to be row vectors and must therefore be transposed to be considered as column vectors.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg2.xhtml#vector.

This constructor symbol allows container markup with with the element vector in pragmatic Content MathML.

#### 4.4.11.2 matrixrow (<matrixrow>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg2.xhtml#matrixrow.

This constructor symbol allows container markup with with the element matrixrow in pragmatic Content MathML.

#### 4.4.11.3 matrix (<matrix>)

Description: This symbol is an n-ary matrix constructor which requires matrixrow's as arguments. It is used to represent matrices.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg2.xhtml#matrix.

This constructor symbol allows container markup with with the element matrix in pragmatic Content MathML.

### 4.4.12 mathmlkeys

This content dictionary provides some keys for specifying the relations in semantics elements.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/mathmlkeys.xhtml.

#### 4.4.12.1 equiv

Description: This key specifies that the corresponding value is equivalent to the annotated element in some unspecified way.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/mathmlkeys.xhtml#equiv.

#### 4.4.12.2 contentequiv

Description: This key specifies that the corresponding value is the content MathML equivalent of the annotated element.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/mathmlkeys.xhtml#contentequiv.

#### 4.4.12.3 contentequiv-strict

Description: This key specifies that the corresponding value is the equivalent in strict content MathML of the annotated element.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/mathmlkeys.xhtml#contentequiv-strict.

### 4.4.13 rounding1

A CD of basic rounding concepts

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/rounding1.xhtml.

#### 4.4.13.1 ceiling (<ceiling/>)

Description: The round up (to +infinity) operation.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/rounding1.xhtml#ceiling.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementceiling in pragmatic Content MathML.

#### 4.4.13.2 floor (<floor/>)

Description: The round down (to -infinity) operation.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/rounding1.xhtml#floor.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementfloor in pragmatic Content MathML.

#### 4.4.13.3 trunc (<trunc/>)

Description: The round to zero operation.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/rounding1.xhtml#trunc.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtrunc in pragmatic Content MathML.

#### 4.4.13.4 round (<round/>)

Description: The round to nearest operation.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/rounding1.xhtml#round.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementround in pragmatic Content MathML.

### 4.4.14 setname1

This CD defines common sets of mathematics

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml.

#### 4.4.14.1 P (<primes/>)

Description: This symbol represents the set of positive prime numbers.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml#P.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementprimes in pragmatic Content MathML.

#### 4.4.14.2 N (<naturalnumbers/>)

Description: This symbol represents the set of natural numbers (including zero).

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml#N.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnaturalnumbers in pragmatic Content MathML.

#### 4.4.14.3 Z (<integers/>)

Description: This symbol represents the set of integers, positive, negative and zero.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml#Z.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementintegers in pragmatic Content MathML.

#### 4.4.14.4 rationials (<rationals/>)

Description: This symbol represents the set of rational numbers.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml#rationials.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementrationals in pragmatic Content MathML.

#### 4.4.14.5 R (<reals/>)

Description: This symbol represents the set of real numbers.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml#R.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementreals in pragmatic Content MathML.

#### 4.4.14.6 complexes (<complexes/>)

Description: This symbol represents the set of complex numbers.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/setname1.xhtml#complexes.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcomplexes in pragmatic Content MathML.

### 4.4.15 complex1

This CD is intended to be compatible' with the MathML view of operations on and constructors for complex numbers.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml.

#### 4.4.15.1 complex_cartesian (<complex_cartesian/>)

Description: This symbol represents a constructor function for complex numbers specified as the Cartesian coordinates of the relevant point on the complex plane. It takes two arguments, the first is a number x to denote the real part and the second a number y to denote the imaginary part of the complex number x + i y. (Where i is the square root of -1.)

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml#complex_cartesian.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcomplex_cartesian in pragmatic Content MathML.

#### 4.4.15.2 real (<real/>)

Description: This represents the real part of a complex number

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml#real.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementreal in pragmatic Content MathML.

#### 4.4.15.3 imaginary (<imaginary/>)

Description: This represents the imaginary part of a complex number

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml#imaginary.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementimaginary in pragmatic Content MathML.

#### 4.4.15.4 complex_polar (<complex_polar/>)

Description: This symbol represents a constructor function for complex numbers specified as the polar coordinates of the relevant point on the complex plane. It takes two arguments, the first is a nonnegative number r to denote the magnitude and the second a number theta (given in radians) to denote the argument of the complex number r e^(i theta). (i and e are defined as in this CD).

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml#complex_polar.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcomplex_polar in pragmatic Content MathML.

#### 4.4.15.5 argument (<arg/>)

Description: This symbol represents the unary function which returns the argument of a complex number, viz. the angle which a straight line drawn from the number to zero makes with the Real line (measured anti-clockwise). The argument to the symbol is the complex number whos argument is being taken.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml#argument.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarg in pragmatic Content MathML.

#### 4.4.15.6 conjugate (<conjugate/>)

Description: A unary operator representing the complex conjugate of its argument.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/complex1.xhtml#conjugate.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementconjugate in pragmatic Content MathML.

### 4.4.16 interval1

This CD holds symbols which describe both discrete and continuous 1-dimensional intervals (with open/closed end points).

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml.

#### 4.4.16.1 integer_interval (<integer_interval/>)

Description: A symbol to denote a discrete 1 dimensional interval from the first argument to the second (inclusive), where the discretisation occurs at unit intervals. The arguments are the start and the end points of the interval in that order.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml#integer_interval.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinteger_interval in pragmatic Content MathML.

#### 4.4.16.2 interval (<interval>)

Description: A symbol to denote a continuous 1-dimensional interval without any information about the character of the end points (used in definite integration). The arguments are the start and the end points of the interval in that order.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml#interval.

This constructor symbol allows container markup with with the element interval in pragmatic Content MathML.

In pragmatic Content MathML, the interval element takes an attribute closure, which can take on any of the values "open", "closed", "open-closed", or "closed-open", with a default value of "closed". In strict Content MathML, the interval symbol is reserved for an interval whose closure property is not specified. For with closure information, we use the interval_oo, interval_oo, interval_oo, and interval_oo symbols defined below.

The pragmatic Content MathML expression

<interval closure="open"/>

is equivalent to the strict Content MathML expression

<csymbol cd="interval1">interval_oo</csymbol>

Moreover, the interval element can be used as a container element in pragmatic Content MathML.

#### 4.4.16.3 interval_oo (<interval closure="open"/>)

Description: A symbol to denote a continuous 1-dimensional interval with both end points excluded from the interval. The arguments are the start and the end points of the interval in that order.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml#interval_oo.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinterval with attributes  closure="open" in pragmatic Content MathML.

#### 4.4.16.4 interval_cc (<interval closure="closed"/>)

Description: A symbol to denote a continuous 1-dimensional interval with both end points included in the interval. The arguments are the start and the end points of the interval in that order.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml#interval_cc.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinterval with attributes  closure="closed" in pragmatic Content MathML.

#### 4.4.16.5 interval_oc (<interval closure="open-closed"/>)

Description: A symbol to denote a continuous 1-dimensional interval with the first point excluded from the interval, but the last included. The arguments are the start and the end points of the interval in that order.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml#interval_oc.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinterval with attributes  closure="open-closed" in pragmatic Content MathML.

#### 4.4.16.6 interval_co (<interval closure="closed-open"/>)

Description: A symbol to denote a continuous 1-dimensional interval with the first point included in the interval, but the last excluded. The arguments are the start and the end points of the interval in that order.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/interval1.xhtml#interval_co.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementinterval with attributes  closure="closed-open" in pragmatic Content MathML.

### 4.4.17 linalg3

This CD treats matrices and vectors in a column oriented fashion (using matrixcolumn's).

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/linalg3.xhtml.

#### 4.4.17.1 vector (<vector.column>)

Description: This symbol represents an n-ary function used to construct (or describe) vectors. Vectors in this CD are considered to be column vectors, and must therefore be transposed to be considered as row vectors.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg3.xhtml#vector.

This constructor symbol allows container markup with with the element vector.column in pragmatic Content MathML.

#### 4.4.17.2 matrixcolumn (<matrixcolumn/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg3.xhtml#matrixcolumn.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmatrixcolumn in pragmatic Content MathML.

#### 4.4.17.3 matrix (<matrix.column/>)

Description: This symbol is an n-ary matrix constructor which requires matrixcolumn's as arguments. It is used to represent matrices.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/linalg3.xhtml#matrix.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmatrix.column in pragmatic Content MathML.

### 4.4.18 minmax1

This CD holds the definitions of min and max.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/minmax1.xhtml.

#### 4.4.18.1 min (<min/>)

Description: This symbol denotes the unary minimum function which takes a set as its argument and returns the minimum element in that set.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/minmax1.xhtml#min.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmin in pragmatic Content MathML.

The min operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_min symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<min/>
<bvar><ci>x</ci></bvar>
<apply><power/><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_min</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.18.2 big_min

Description: This n-ary operator is used to construct the minimum over a set of objects.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/minmax1.xhtml#big_min.

#### 4.4.18.3 max (<max/>)

Description: This symbol denotes the unary maximum function which takes a set as its argument and returns the maximum element in that set.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/minmax1.xhtml#max.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmax in pragmatic Content MathML.

The max operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_max symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<max/>
<bvar><ci>x</ci></bvar>
<apply><power/><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_max</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="arith1">power</csymbol><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.18.4 big_max

Description: This n-ary operator is used to construct the maximum over a set of objects.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/minmax1.xhtml#big_max.

### 4.4.19 piece1

This CD is intended to be compatible with the corresponding elements in Content MathML 2. In this CD we give a set of operators for piece-wise defined expressions.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/piece1.xhtml.

#### 4.4.19.1 piecewise (<piecewise>)

Description: This operator heads an expression that is being defined piecewise. Its arguments are n objects built with the piece constructor, optionally followed by one built with otherwise constructor.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/piece1.xhtml#piecewise.

This constructor symbol allows container markup with with the element piecewise in pragmatic Content MathML.

#### 4.4.19.2 piece (<piece>)

Description: This introduces an individual component of a piecewise definition. It has precisely two arguments: the first is the value, and the second is a Boolean (meant to be a predicate) which is true if and only if this piece is to provide the value of the piecewise construct.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/piece1.xhtml#piece.

This constructor symbol allows container markup with with the element piece in pragmatic Content MathML.

#### 4.4.19.3 otherwise (<otherwise>)

Description: This symbol introduces the 'default' value of a piecewise construct. If none of the previous piece constructs can provide the value, this will. It has a single child, the value.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/piece1.xhtml#otherwise.

This constructor symbol allows container markup with with the element otherwise in pragmatic Content MathML.

### 4.4.20 error1

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/error1.xhtml.

#### 4.4.20.1 unhandled_symbol

Description: This symbol represents the error which is raised when an application reads a symbol which is present in the mentioned content dictionary, but which it has not implemented. When receiving such a symbol, the application should act as if it had received the OpenMath error object constructed from unhandled_symbol and the unhandled symbol as in the example below.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/error1.xhtml#unhandled_symbol.

#### 4.4.20.2 unexpected_symbol

Description: This symbol represents the error which is raised when an application reads a symbol which is not present in the mentioned content dictionary. When receiving such a symbol, the application should act as if it had received the OpenMath error object constructed from unexpected_symbol and the unexpected symbol as in the example below.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/error1.xhtml#unexpected_symbol.

#### 4.4.20.3 unsupported_CD

Description: This symbol represents the error which is raised when an application reads a symbol where the mentioned content dictionary is not present. When receiving such a symbol, the application should act as if it had received the OpenMath error object constructed from unsupported_CD and the symbol from the unsupported Content Dictionary as in the example below.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/error1.xhtml#unsupported_CD.

### 4.4.21 limit1

This CD holds the basic notion of the limits of unary functions whilst its variable tend (either from above, below or both sides) to a particular value.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml.

#### 4.4.21.1 limit (<limit/>)

Description: This symbol is used to denote the limit of a unary function. It takes 3 arguments: the limiting value of the argument, the method of approach (either null, above, below or both_sides) and the function.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml#limit.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementlimit in pragmatic Content MathML.

#### 4.4.21.2 both_sides (<both_sides/>)

Description: This symbol is used within a limit construct to show the limit is being approached from both sides. It takes no arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml#both_sides.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementboth_sides in pragmatic Content MathML.

#### 4.4.21.3 above (<above/>)

Description: This symbol is used within a limit construct to show the limit is being approached from above. It takes no arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml#above.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementabove in pragmatic Content MathML.

#### 4.4.21.4 below (<below/>)

Description: This symbol is used within a limit construct to show the limit is being approached from below. It takes no arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml#below.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementbelow in pragmatic Content MathML.

#### 4.4.21.5 null (<null/>)

Description: This symbol is used within a limit construct to avoid specifying the method of approach to the limit. It takes no arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml#null.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnull in pragmatic Content MathML.

#### 4.4.21.6 tendsto (<tendsto/>)

Description: This symbol is used within a limit construct to show the limit is being approached from below. It takes no arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/limit1.xhtml#tendsto.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtendsto in pragmatic Content MathML.

### 4.4.22 list1

This CD is intended to be compatible' with MathML list constructs.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/list1.xhtml.

#### 4.4.22.1 map

Description: This symbol represents a mapping function which may be used to construct lists, it takes as arguments a function from X to Y and a list over X in that order. The value that is returned is a list of values in Y. The argument list may be a set or an integer_interval.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/list1.xhtml#map.

#### 4.4.22.2 suchthat

Description: This symbol represents the suchthat function which may be used to construct lists, it takes two arguments. The first argument should be the set which contains the elements of the list, the second argument should be a predicate, that is a function from the set to the booleans which describes if an element is to be in the list returned.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/list1.xhtml#suchthat.

#### 4.4.22.3 list (<list>)

Description: This symbol denotes the list construct which is an n-ary function. The list entries must be given explicitly.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/list1.xhtml#list.

This constructor symbol allows container markup with with the element list in pragmatic Content MathML.

### 4.4.23 multiset1

This CD defines the set functions and constructors for basic multiset theory. It is intended to be compatible' with the corresponding elements in MathML i.e. set operations acting on sets of type=multiset.

The symbols introduced in this content dictionary have operator elements in pragmatic Content MathML that take a type attribute indicates whehter the they pertain to a set or multilset interpretation of the arguments. The symbols defined in the multiset1 content dictionary correspond to the multiset interpretatio, where repetitions of members are allowed. Therefore the value "multiset" is prescribed on these elements.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml.

#### 4.4.23.1 size (<size type="multiset"/>)

Description: This symbol is used to denote the number of elements in a multiset. It is either a non-negative integer, or an infinite cardinal number. The symbol infinity may be used for an unspecified infinite cardinal.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#size.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsize with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.2 cartesian_product (<cartesianproduct type="multiset"/>)

Description: This symbol represents an n-ary construction function for constructing the Cartesian product of multisets. It takes n multiset arguments in order to construct their Cartesian product.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#cartesian_product.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcartesianproduct with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.3 emptyset (<emptyset type="multiset"/>)

Description: This symbol is used to represent the empty multiset, that is the multiset which contains no members. It takes no parameters.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#emptyset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementemptyset with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.4 multiset (<multiset type="multiset">)

Description: This symbol represents the multiset construct. It is either an n-ary function, in which case the multiset entries are given explicitly, or it works on an elements construct. There is no implied ordering to the elements of a multiset.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#multiset.

This constructor symbol allows container markup with with the element multiset with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.5 intersect (<intersect type="multiset"/>)

Description: This symbol is used to denote the n-ary intersection of multisets. It takes multisets as arguments, and denotes the multiset that contains all the elements that occur in all of them, with multiplicity the minimum of their multiplicities in all multisets.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#intersect.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementintersect with attributes  type="multiset" in pragmatic Content MathML.

The intersect operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_intersect symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<intersect/>
<bvar><ci>x</ci></bvar>
<apply><interval type="integer"/><cn>0</cn><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_intersect</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="interval1">integer_interval</csymbol><cn>0</cn><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.23.6 big_intersect

Description: This n-ary operator is used to construct the intersection over a collection of sets.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#big_intersect.

#### 4.4.23.7 union (<union type="multiset"/>)

Description: This symbol is used to denote the n-ary union of multisets. It takes multisets as arguments, and denotes the multiset that contains all the elements that occur in any of them, with multiplicity the sum of all the multiplicities in the multiset arguments.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#union.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementunion with attributes  type="multiset" in pragmatic Content MathML.

The union operator element can be used as a binding operator in pragmatic Content MathML. This role is taken over by the big_union symbol in strict Content MathML.

The pragmatic Content MathML expression

<apply>
<union/>
<bvar><ci>x</ci></bvar>
<apply><interval type="integer"/><cn>0</cn><ci>x</ci></apply>
</apply>

is equivalent to the strict Content MathML expression

<apply>
<csymbol cd="arith1">big_union</csymbol>
<bind>
<csymbol cd="fns1">lambda</csymbol>
<bvar><ci>x</ci></bvar>
<apply><csymbol cd="interval1">integer_interval</csymbol><cn>0</cn><ci>x</ci></apply>
</bind>
</apply>

#### 4.4.23.8 big_union

Description: This n-ary operator is used to construct the union over a collection of multisets.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#big_union.

#### 4.4.23.9 setdiff (<setdiff type="multiset"/>)

Description: This symbol is used to denote the multiset difference of two multisets. It takes two multisets as arguments, and denotes the multiset that contains all the elements that occur in the first multiset with strictly greater multiplicity than in the second. The multiplicity in the result is the difference of the two.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#setdiff.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsetdiff with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.10 subset (<subset type="multiset"/>)

Description: This symbol has two (multiset) arguments. It is used to denote that the first set is a subset of the second, i.e. every element of the first occurs with multiplicity at least as much in the second.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#subset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsubset with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.11 in (<in type="multiset"/>)

Description: This symbol has two arguments, an element and a multiset. It is used to denote that the element is in the given multiset.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#in.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementin with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.12 notin (<notin type="multiset"/>)

Description: This symbol has two arguments, an element and a multiset. It is used to denote that the element is not in the given multiset.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#notin.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotin with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.13 prsubset (<prsubset type="multiset"/>)

Description: This symbol has two (multiset) arguments. It is used to denote that the first multiset is a proper subset of the second, that is a subset of the second multiset but not actually equal to it.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#prsubset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementprsubset with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.14 notsubset (<notsubset type="multiset"/>)

Description: This symbol has two (multiset) arguments. It is used to denote that the first multiset is not a subset of the second.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#notsubset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotsubset with attributes  type="multiset" in pragmatic Content MathML.

#### 4.4.23.15 notprsubset (<notprsubset type="multiset"/>)

Description: This symbol has two (multiset) arguments. It is used to denote that the first multiset is not a proper subset of the second. A proper subset of a multiset is a subset of the multiset but not actually equal to it.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/multiset1.xhtml#notprsubset.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementnotprsubset with attributes  type="multiset" in pragmatic Content MathML.

### 4.4.24 quant1

This CD holds the definitions of the basic universal ("for all") quantifier and existential ("there exists") quantifier. It is intended to be compatible' with the MathML elements representing these quantifiers.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/quant1.xhtml.

#### 4.4.24.1 forall (<forall/>)

Description: This symbol represents the universal ("for all") quantifier which takes two arguments. It must be placed within an OMBIND element. The first argument is the bound variables (placed within an OMBVAR element), and the second is an expression.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/quant1.xhtml#forall.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementforall in pragmatic Content MathML.

#### 4.4.24.2 exists (<exists/>)

Description: This symbol represents the existential ("there exists") quantifier which takes two arguments. It must be placed within an OMBIND element. The first argument is the bound variables (placed within an OMBVAR element), and the second is an expression.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/quant1.xhtml#exists.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementexists in pragmatic Content MathML.

### 4.4.25 s_dist1

This CD holds the definitions of the basic statistical functions used on random variables. It is intended to be compatible' with the MathML elements representing statistical functions.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/s_dist1.xhtml.

#### 4.4.25.1 mean (<mean.dist/>)

Description: This symbol represents a unary function denoting the mean of a distribution. The argument is a univariate function to describe the distribution. That is, if f is the function describing the distribution. The mean is the expression integrate(x*f(x)) w.r.t. x over the range (-infinity,infinity).

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_dist1.xhtml#mean.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmean.dist in pragmatic Content MathML.

#### 4.4.25.2 sdev (<sdev.dist/>)

Description: This symbol represents a unary function denoting the standard deviation of a distribution. The argument is a univariate function to describe the distribution. The standard deviation of a distribution is the arithmetical mean of the squares of the deviation of the distribution from the mean.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_dist1.xhtml#sdev.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsdev.dist in pragmatic Content MathML.

#### 4.4.25.3 variance (<variance.dist/>)

Description: This symbol represents a unary function denoting the variance of a distribution. The argument is a function to describe the distribution. That is if f is the function which describes the distribution. The variance of a distribution is the square of the standard deviation of the distribution.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_dist1.xhtml#variance.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementvariance.dist in pragmatic Content MathML.

#### 4.4.25.4 moment (<moment.dist/>)

Description: This symbol represents a ternary function to denote the i'th moment of a distribution. The first argument should be the degree of the moment (that is, for the i'th moment the first argument should be i), the second argument is the value about which the moment is to be taken and the third argument is a univariate function to describe the distribution. That is, if f is the function which describe the distribution. The i'th moment of f about a is the integral of (x-a)^i*f(x) with respect to x, over the interval (-infinity,infinity).

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_dist1.xhtml#moment.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmoment.dist in pragmatic Content MathML.

### 4.4.26 s_data1

This CD holds the definitions of the basic statistical functions used on sample data. It is intended to be compatible' with the MathML elements representing statistical functions, though it does not cover the concept of random variable which is mentioned in MathML.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml.

#### 4.4.26.1 mean (<mean/>)

Description: This symbol represents an n-ary function denoting the mean of its arguments. That is, their sum divided by their number.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml#mean.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmean in pragmatic Content MathML.

#### 4.4.26.2 sdev (<sdev/>)

Description: This symbol represents a function requiring two or more arguments, denoting the sample standard deviation of its arguments. That 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). See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, (7.7.11) section 7.7.1.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml#sdev.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsdev in pragmatic Content MathML.

#### 4.4.26.3 variance (<variance/>)

Description: This symbol represents a function requiring two or more arguments, denoting the variance of its arguments. That is, the square of the standard deviation.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml#variance.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementvariance in pragmatic Content MathML.

#### 4.4.26.4 mode (<mode/>)

Description: This symbol represents an n-ary function denoting the mode of its arguments. That is the value which occurs with the greatest frequency.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml#mode.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmode in pragmatic Content MathML.

#### 4.4.26.5 median (<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).

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml#median.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmedian in pragmatic Content MathML.

#### 4.4.26.6 moment (<moment/>)

Description: This symbol is used to denote the i'th moment of a set of data. The first argument should be the degree of the moment (that is, for the i'th moment the first argument should be i), the second argument should be the point about which the moment is being taken and the rest of the arguments are treated as the data. For n data values x_1, x_2, ..., x_n the i'th moment about c is (1/n) ((x_1-c)^i + (x_2-c)^i + ... + (x_n-c)^i). See CRC Standard Mathematical Tables and Formulae, editor: Dan Zwillinger, CRC Press Inc., 1996, section 7.7.1.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/s_data1.xhtml#moment.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementmoment in pragmatic Content MathML.

### 4.4.27 transc1

This CD holds the definitions of many transcendental functions. They are defined as in Abromowitz and Stegun (ninth printing on), with precise reductions to logs in the case of inverse functions. Note that, if signed zeros are supported, some strict inequalities have to become weak . It is intended to be compatible' with the MathML elements denoting trancendental functions. Some additional functions are in the CD transc2.

For a full semantic description of the content dictionary see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml.

#### 4.4.27.1 log (<log/>)

Description: This symbol represents a binary log function; the first argument is the base, to which the second argument is log'ed. It is defined in Abramowitz and Stegun, Handbook of Mathematical Functions, section 4.1

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#log.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementlog in pragmatic Content MathML.

#### 4.4.27.2 ln (<ln/>)

Description: This symbol represents the ln function (natural logarithm) as described in Abramowitz and Stegun, section 4.1. It takes one argument. Note the description in the CMP/FMP of the branch cut. If signed zeros are in use, the inequality needs to be non-strict.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#ln.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementln in pragmatic Content MathML.

#### 4.4.27.3 exp (<exp/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#exp.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementexp in pragmatic Content MathML.

#### 4.4.27.4 sin (<sin/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#sin.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsin in pragmatic Content MathML.

#### 4.4.27.5 cos (<cos/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#cos.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcos in pragmatic Content MathML.

#### 4.4.27.6 tan (<tan/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#tan.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtan in pragmatic Content MathML.

#### 4.4.27.7 sec (<sec/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#sec.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsec in pragmatic Content MathML.

#### 4.4.27.8 csc (<csc/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#csc.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcsc in pragmatic Content MathML.

#### 4.4.27.9 cot (<cot/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#cot.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcot in pragmatic Content MathML.

#### 4.4.27.10 sinh (<sinh/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#sinh.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsinh in pragmatic Content MathML.

#### 4.4.27.11 cosh (<cosh/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#cosh.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcosh in pragmatic Content MathML.

#### 4.4.27.12 tanh (<tanh/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#tanh.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementtanh in pragmatic Content MathML.

#### 4.4.27.13 sech (<sech/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#sech.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementsech in pragmatic Content MathML.

#### 4.4.27.14 csch (<csch/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#csch.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcsch in pragmatic Content MathML.

#### 4.4.27.15 coth (<coth/>)

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

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#coth.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementcoth in pragmatic Content MathML.

#### 4.4.27.16 arcsin (<arcsin/>)

Description: This symbol represents the arcsin function. This is the inverse of the sin function as described in Abramowitz and Stegun, section 4.4. It takes one argument.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arcsin.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarcsin in pragmatic Content MathML.

#### 4.4.27.17 arccos (<arccos/>)

Description: This symbol represents the arccos function. This is the inverse of the cos function as described in Abramowitz and Stegun, section 4.4. It takes one argument.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arccos.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarccos in pragmatic Content MathML.

#### 4.4.27.18 arctan (<arctan/>)

Description: This symbol represents the arctan function. This is the inverse of the tan function as described in Abramowitz and Stegun, section 4.4. It takes one argument.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arctan.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarctan in pragmatic Content MathML.

#### 4.4.27.19 arcsec (<arcsec/>)

Description: This symbol represents the arcsec function as described in Abramowitz and Stegun, section 4.4.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arcsec.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarcsec in pragmatic Content MathML.

#### 4.4.27.20 arccsc (<arccsc/>)

Description: This symbol represents the arccsc function as described in Abramowitz and Stegun, section 4.4.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arccsc.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarccsc in pragmatic Content MathML.

#### 4.4.27.21 arccot (<arccot/>)

Description: This symbol represents the arccot function as described in Abramowitz and Stegun, section 4.4.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arccot.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarccot in pragmatic Content MathML.

#### 4.4.27.22 arcsinh (<arcsinh/>)

Description: This symbol represents the arcsinh function as described in Abramowitz and Stegun, section 4.6.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arcsinh.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarcsinh in pragmatic Content MathML.

#### 4.4.27.23 arccosh (<arccosh/>)

Description: This symbol represents the arccosh function as described in Abramowitz and Stegun, section 4.6.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arccosh.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarccosh in pragmatic Content MathML.

#### 4.4.27.24 arctanh (<arctanh/>)

Description: This symbol represents the arctanh function as described in Abramowitz and Stegun, section 4.6.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arctanh.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarctanh in pragmatic Content MathML.

#### 4.4.27.25 arcsech (<arcsech/>)

Description: This symbol represents the arcsech function as described in Abramowitz and Stegun, section 4.6.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arcsech.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarcsech in pragmatic Content MathML.

#### 4.4.27.26 arccsch (<arccsch/>)

Description: This symbol represents the arccsch function as described in Abramowitz and Stegun, section 4.6.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arccsch.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarccsch in pragmatic Content MathML.

#### 4.4.27.27 arccoth (<arccoth/>)

Description: This symbol represents the arccoth function as described in Abramowitz and Stegun, section 4.6.

For a full semantic definition and more examples see http://svn.openmath.org/OpenMath3/cd/MathML/transc1.xhtml#arccoth.

Usage in pragmatic Content MathML: This symbol can be represented as the (empty) operator elementarccoth in pragmatic Content MathML.

Overview: Mathematical Markup Language (MathML) Version 3.0
Previous: 3 Presentation Markup
Next: 5 Combining Presentation and Content Markup