diff --git a/standard/om20-editors-draft/omstd20-diff.html b/standard/om20-editors-draft/omstd20-diff.html index 775e03b0..5c3d60c9 100644 --- a/standard/om20-editors-draft/omstd20-diff.html +++ b/standard/om20-editors-draft/omstd20-diff.html @@ -9437,9 +9437,9 @@

A.1 The meta Content Dictionary
<CD
- xmlns="http://www.openmath.org/OpenMathCD">
+ xmlns="http://www.openmath.org/OpenMathCD">
 
-<CDComment>
+<CDComment>
 
      This document is distributed in the hope that it will be useful, 
      but WITHOUT ANY WARRANTY; without even the implied warranty of 
@@ -9470,140 +9470,140 @@ 

A.1 The meta Content Dictionary work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. -</CDComment> +</CDComment> -<CDName> meta </CDName> -<CDReviewDate>2006-03-30</CDReviewDate> -<CDDate>2004-03-30</CDDate> -<CDVersion>3</CDVersion> -<CDRevision>0</CDRevision> -<CDStatus> official </CDStatus> -<CDURL> http://www.openmath.org/cd/meta.ocd </CDURL> -<CDBase>http://www.openmath.org/cd</CDBase> +<CDName> meta </CDName> +<CDReviewDate>2006-03-30</CDReviewDate> +<CDDate>2004-03-30</CDDate> +<CDVersion>3</CDVersion> +<CDRevision>0</CDRevision> +<CDStatus> official </CDStatus> +<CDURL> http://www.openmath.org/cd/meta.ocd </CDURL> +<CDBase>http://www.openmath.org/cd</CDBase> -<Description> +<Description> This is a content dictionary to represent content dictionaries, so that they may be passed between OpenMath compliant application in a similar way to mathematical objects. The information written here is taken from chapter 4 of the current draft of the "OpenMath Standard". -</Description> +</Description> -<CDDefinition> -<Name> CD </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CD </Name> +<Role>application</Role> +<Description> The top level element for the Content Dictionary. It just acts as a container for the elements described below. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDDefinition </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDDefinition </Name> +<Role>application</Role> +<Description> This symbol is used to represent the element which contains the definition of each symbol in a content dictionary. That is: it must contain a 'Name' element and a 'Description' element, and it may contain an arbitrary number of 'Example', 'FMP' or 'CMP' elements. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDName </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDName </Name> +<Role>application</Role> +<Description> An element which contains the string corresponding to the name of the CD. The string must match the syntax for CD names given in the OpenMath Standard. Here and elsewhere white space occurring at the beginning or end of the string will be ignored. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDURL </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDURL </Name> +<Role>application</Role> +<Description> An optional element. If it is used it contains a string representing the URL where the canonical reference copy of this CD is stored. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDBase </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDBase </Name> +<Role>application</Role> +<Description> An optional element. If it is used it contains a string representing the URI to be used as the base for generated canonical URI references for symbols in the CD. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Example </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Example </Name> +<Role>application</Role> +<Description> An element which contains an arbitrary number of children, each of which is either a string or an OpenMath Object. These children give examples in natural language, or in OpenMath, of the enclosing symbol definition. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDDate </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDDate </Name> +<Role>application</Role> +<Description> An element which contains a date as a string in the ISO-8601 YYYY-MM-DD format. This gives the date at which the Content Dictionary was last edited. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDVersion </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDVersion </Name> +<Role>application</Role> +<Description> An element which contains a version number for the CD. This should be a non negative integer. Any change to the CD that affects existing OpenMath applications that support this CD should result in an increase in the version number. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDRevision </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDRevision </Name> +<Role>application</Role> +<Description> An element which contains a revision number (or minor version number) This should be a non-negative integer starting from zero for each new version. Additional examples would be typical changes to a CD requiring a new revision number. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDReviewDate </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDReviewDate </Name> +<Role>application</Role> +<Description> An element which contains a date as a string in the ISO-8601 YYYY-MM-DD format. This gives the date at which the Content Dictionary is next scheduled for review. It should be expected to be stable until at least this date. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDStatus </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDStatus </Name> +<Role>application</Role> +<Description> An element giving information on the status of the CD. The content of the element must be one of the following strings. @@ -9614,79 +9614,79 @@

A.1 The meta Content Dictionary private (used by a private group of OpenMath users), or obsolete (an obsolete CD kept only for archival purposes). -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDComment </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDComment </Name> +<Role>application</Role> +<Description> This symbol is used to represent the element of a content dictionary which explains some aspect of that content dictionary. It should have one string argument which makes that explanation. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDUses </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDUses </Name> +<Role>application</Role> +<Description> An element which contains zero or more CDNames which correspond to the CDs that this CD depends on, i.e. uses in examples and FMPs. If the CD is dependent on any other CDs they may be present here. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Description </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Description </Name> +<Role>application</Role> +<Description> An element which contains a string corresponding to the description of either the CD or the symbol (depending on which is the enclosing element). -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Name </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Name </Name> +<Role>application</Role> +<Description> An element containing the string corresponding to the name of the symbol being defined. This must match the syntax for symbol names given in the OpenMath Standard. Here and elsewhere white space occurring at the begining or end of the string will be ignored. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Role </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Role </Name> +<Role>application</Role> +<Description> An element containing the string corresponding to the role of the symbol being defined. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CMP </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CMP </Name> +<Role>application</Role> +<Description> An optional element (which may be repeated many times) which contains a string corresponding to a property of the symbol being defined. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> FMP </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> FMP </Name> +<Role>application</Role> +<Description> An optional element which contains an OpenMath Object. This corresponds to a property of the symbol being defined. -</Description> -</CDDefinition> +</Description> +</CDDefinition> </CD>

@@ -9701,9 +9701,9 @@

A.2 The arith1 Content Dictionary File
<CD
- xmlns="http://www.openmath.org/OpenMathCD">
+ xmlns="http://www.openmath.org/OpenMathCD">
 
-<CDComment>
+<CDComment>
 
      This document is distributed in the hope that it will be useful, 
      but WITHOUT ANY WARRANTY; without even the implied warranty of 
@@ -9734,727 +9734,727 @@ 

A.2 The arith1 Content Dictionary File work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. -</CDComment> - -<CDName> arith1 </CDName> -<CDBase>http://www.openmath.org/cd</CDBase> -<CDURL> http://www.openmath.org/cd/arith1.ocd </CDURL> -<CDReviewDate>2017-12-31</CDReviewDate> -<CDStatus> official </CDStatus> -<CDDate>2004-03-30</CDDate> -<CDVersion>3</CDVersion> -<CDRevision>2</CDRevision> -<CDComment> +</CDComment> + +<CDName> arith1 </CDName> +<CDBase>http://www.openmath.org/cd</CDBase> +<CDURL> http://www.openmath.org/cd/arith1.ocd </CDURL> +<CDReviewDate>2017-12-31</CDReviewDate> +<CDStatus> official </CDStatus> +<CDDate>2004-03-30</CDDate> +<CDVersion>3</CDVersion> +<CDRevision>2</CDRevision> +<CDComment> Author: OpenMath Consortium SourceURL: https://github.com/OpenMath/CDs -</CDComment> +</CDComment> -<Description> +<Description> This CD defines symbols for common arithmetic functions. -</Description> +</Description> -<CDDefinition> -<Name> lcm </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> lcm </Name> +<Role>application</Role> +<Description> The symbol to represent the n-ary function to return the least common multiple of its arguments. -</Description> +</Description> -<CMP> lcm(a,b) = a*b/gcd(a,b) </CMP> +<CMP> lcm(a,b) = a*b/gcd(a,b) </CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="lcm"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="gcd"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> -</OMOBJ> -</FMP> -<CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="lcm"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="gcd"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> +</OMOBJ> +</FMP> +<CMP> for all integers a,b | There does not exist a c&gt;0 such that c/a is an Integer and c/b is an Integer and lcm(a,b) &gt; c. -</CMP> +</CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="a"/> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="b"/> - <OMS cd="setname1" name="Z"/> - </OMA> - </OMA> - <OMA> - <OMS cd="logic1" name="not"/> - <OMBIND> - <OMS cd="quant1" name="exists"/> - <OMBVAR> - <OMV name="c"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="relation1" name="gt"/> - <OMV name="c"/> - <OMI>0</OMI> - </OMA> - <OMA> - <OMS cd="integer1" name="factorof"/> - <OMV name="a"/> - <OMV name="c"/> - </OMA> - <OMA> - <OMS cd="integer1" name="factorof"/> - <OMV name="b"/> - <OMV name="c"/> - </OMA> - <OMA> - <OMS cd="relation1" name="lt"/> - <OMV name="c"/> - <OMA> - <OMS cd="arith1" name="lcm"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> - </OMBIND> - </OMA> - </OMA> -</OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> gcd </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="a"/> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="b"/> + <OMS cd="setname1" name="Z"/> + </OMA> + </OMA> + <OMA> + <OMS cd="logic1" name="not"/> + <OMBIND> + <OMS cd="quant1" name="exists"/> + <OMBVAR> + <OMV name="c"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="relation1" name="gt"/> + <OMV name="c"/> + <OMI>0</OMI> + </OMA> + <OMA> + <OMS cd="integer1" name="factorof"/> + <OMV name="a"/> + <OMV name="c"/> + </OMA> + <OMA> + <OMS cd="integer1" name="factorof"/> + <OMV name="b"/> + <OMV name="c"/> + </OMA> + <OMA> + <OMS cd="relation1" name="lt"/> + <OMV name="c"/> + <OMA> + <OMS cd="arith1" name="lcm"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> + </OMBIND> + </OMA> + </OMA> +</OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> gcd </Name> +<Role>application</Role> +<Description> The symbol to represent the n-ary function to return the gcd (greatest common divisor) of its arguments. -</Description> +</Description> -<CMP> +<CMP> for all integers a,b | There does not exist a c such that a/c is an Integer and b/c is an Integer and c &gt; gcd(a,b). Note that this implies that gcd(a,b) &gt; 0 -</CMP> +</CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="a"/> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="b"/> - <OMS cd="setname1" name="Z"/> - </OMA> - </OMA> - <OMA> - <OMS cd="logic1" name="not"/> - <OMBIND> - <OMS cd="quant1" name="exists"/> - <OMBVAR> - <OMV name="c"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMV name="a"/> - <OMV name="c"/> - </OMA> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="set1" name="in"/> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMV name="b"/> - <OMV name="c"/> - </OMA> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="relation1" name="gt"/> - <OMV name="c"/> - <OMA> - <OMS cd="arith1" name="gcd"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> - </OMBIND> - </OMA> - </OMA> -</OMBIND> -</OMOBJ> -</FMP> - -<Example> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="a"/> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="b"/> + <OMS cd="setname1" name="Z"/> + </OMA> + </OMA> + <OMA> + <OMS cd="logic1" name="not"/> + <OMBIND> + <OMS cd="quant1" name="exists"/> + <OMBVAR> + <OMV name="c"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMV name="a"/> + <OMV name="c"/> + </OMA> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="set1" name="in"/> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMV name="b"/> + <OMV name="c"/> + </OMA> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="relation1" name="gt"/> + <OMV name="c"/> + <OMA> + <OMS cd="arith1" name="gcd"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> + </OMBIND> + </OMA> + </OMA> +</OMBIND> +</OMOBJ> +</FMP> + +<Example> gcd(6,9) = 3 <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="gcd"/> - <OMI> 6 </OMI> - <OMI> 9 </OMI> - </OMA> - <OMI> 3 </OMI> - </OMA> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> plus </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="gcd"/> + <OMI> 6 </OMI> + <OMI> 9 </OMI> + </OMA> + <OMI> 3 </OMI> + </OMA> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> plus </Name> +<Role>application</Role> +<Description> The symbol representing an n-ary commutative function plus. -</Description> -<CMP> for all a,b | a + b = b + a </CMP> -<FMP> +</Description> +<CMP> for all a,b | a + b = b + a </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="b"/> - <OMV name="a"/> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> unary_minus </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="b"/> + <OMV name="a"/> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> unary_minus </Name> +<Role>application</Role> +<Description> This symbol denotes unary minus, i.e. the additive inverse. -</Description> -<CMP> for all a | a + (-a) = 0 </CMP> -<FMP> +</Description> +<CMP> for all a | a + (-a) = 0 </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="unary_minus"/> - <OMV name="a"/> - </OMA> - </OMA> - <OMS cd="alg1" name="zero"/> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> minus </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="unary_minus"/> + <OMV name="a"/> + </OMA> + </OMA> + <OMS cd="alg1" name="zero"/> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> minus </Name> +<Role>application</Role> +<Description> The symbol representing a binary minus function. This is equivalent to adding the additive inverse. -</Description> -<CMP> for all a,b | a - b = a + (-b) </CMP> -<FMP> +</Description> +<CMP> for all a,b | a - b = a + (-b) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="minus"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="unary_minus"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> times </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="minus"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="unary_minus"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> times </Name> +<Role>application</Role> +<Description> The symbol representing an n-ary multiplication function. -</Description> -<Example> +</Description> +<Example> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 1 </OMI> - <OMI> 2 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 3 </OMI> - <OMI> 4 </OMI> - </OMA> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 5 </OMI> - <OMI> 6 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 7 </OMI> - <OMI> 8 </OMI> - </OMA> - </OMA> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 19 </OMI> - <OMI> 22 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 43 </OMI> - <OMI> 50 </OMI> - </OMA> - </OMA> -</OMA> -</OMOBJ> -</Example> -<CMP> for all a,b | a * 0 = 0 and a * b = a * (b - 1) + a </CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 1 </OMI> + <OMI> 2 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 3 </OMI> + <OMI> 4 </OMI> + </OMA> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 5 </OMI> + <OMI> 6 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 7 </OMI> + <OMI> 8 </OMI> + </OMA> + </OMA> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 19 </OMI> + <OMI> 22 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 43 </OMI> + <OMI> 50 </OMI> + </OMA> + </OMA> +</OMA> +</OMOBJ> +</Example> +<CMP> for all a,b | a * 0 = 0 and a * b = a * (b - 1) + a </CMP> <FMP><OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMS cd="alg1" name="zero"/> - </OMA> - <OMS cd="alg1" name="zero"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="minus"/> - <OMV name="b"/> - <OMS cd="alg1" name="one"/> - </OMA> - </OMA> - <OMV name="a"/> - </OMA> - </OMA> - </OMA> -</OMBIND> -</OMOBJ></FMP> - -<CMP> for all a,b,c | a*(b+c) = a*b + a*c </CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMS cd="alg1" name="zero"/> + </OMA> + <OMS cd="alg1" name="zero"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="minus"/> + <OMV name="b"/> + <OMS cd="alg1" name="one"/> + </OMA> + </OMA> + <OMV name="a"/> + </OMA> + </OMA> + </OMA> +</OMBIND> +</OMOBJ></FMP> + +<CMP> for all a,b,c | a*(b+c) = a*b + a*c </CMP> <FMP><OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - <OMV name="c"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="b"/> - <OMV name="c"/> - </OMA> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="c"/> - </OMA> - </OMA> - </OMA> -</OMBIND> -</OMOBJ></FMP> -</CDDefinition> - -<CDDefinition> -<Name> divide </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + <OMV name="c"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="b"/> + <OMV name="c"/> + </OMA> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="c"/> + </OMA> + </OMA> + </OMA> +</OMBIND> +</OMOBJ></FMP> +</CDDefinition> + +<CDDefinition> +<Name> divide </Name> +<Role>application</Role> +<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. -</Description> -<CMP> whenever not(a=0) then a/a = 1 </CMP> -<FMP> +</Description> +<CMP> whenever not(a=0) then a/a = 1 </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="relation1" name="neq"/> - <OMV name="a"/> - <OMS cd="alg1" name="zero"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMV name="a"/> - <OMV name="a"/> - </OMA> - <OMS cd="alg1" name="one"/> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> power </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="relation1" name="neq"/> + <OMV name="a"/> + <OMS cd="alg1" name="zero"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMV name="a"/> + <OMV name="a"/> + </OMA> + <OMS cd="alg1" name="one"/> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> power </Name> +<Role>application</Role> +<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. -</Description> +</Description> -<CMP> +<CMP> x\in C implies x^a = exp(a ln x) -</CMP> +</CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="x"/> - <OMS cd="setname1" name="C"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS name="power" cd="arith1"/> - <OMV name="x"/> - <OMV name="a"/> - </OMA> - <OMA> - <OMS name="exp" cd="transc1"/> - <OMA> - <OMS name="times" cd="arith1"/> - <OMV name="a"/> - <OMA> - <OMS name="ln" cd="transc1"/> - <OMV name="x"/> - </OMA> - </OMA> - </OMA> - </OMA> - </OMA> -</OMOBJ> -</FMP> - -<CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="x"/> + <OMS cd="setname1" name="C"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS name="power" cd="arith1"/> + <OMV name="x"/> + <OMV name="a"/> + </OMA> + <OMA> + <OMS name="exp" cd="transc1"/> + <OMA> + <OMS name="times" cd="arith1"/> + <OMV name="a"/> + <OMA> + <OMS name="ln" cd="transc1"/> + <OMV name="x"/> + </OMA> + </OMA> + </OMA> + </OMA> + </OMA> +</OMOBJ> +</FMP> + +<CMP> if n is an integer then x^0 = 1, x^n = x * x^(n-1) -</CMP> -<FMP> +</CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="n"/> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMV name="x"/> - <OMI>0</OMI> - </OMA> - <OMS cd="alg1" name="one"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMV name="x"/> - <OMV name="n"/> - </OMA> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="x"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMV name="x"/> - <OMA> - <OMS cd="arith1" name="minus"/> - <OMV name="n"/> - <OMI>1</OMI> - </OMA> - </OMA> - </OMA> - </OMA> - </OMA> - </OMA> -</OMOBJ> -</FMP> -<Example> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="n"/> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMV name="x"/> + <OMI>0</OMI> + </OMA> + <OMS cd="alg1" name="one"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMV name="x"/> + <OMV name="n"/> + </OMA> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="x"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMV name="x"/> + <OMA> + <OMS cd="arith1" name="minus"/> + <OMV name="n"/> + <OMI>1</OMI> + </OMA> + </OMA> + </OMA> + </OMA> + </OMA> + </OMA> +</OMOBJ> +</FMP> +<Example> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 1 </OMI> - <OMI> 2 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 3 </OMI> - <OMI> 4 </OMI> - </OMA> - </OMA> - <OMI>3</OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 37 </OMI> - <OMI> 54 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 81 </OMI> - <OMI> 118 </OMI> - </OMA> - </OMA> -</OMA> -</OMOBJ> -</Example> -<Example> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 1 </OMI> + <OMI> 2 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 3 </OMI> + <OMI> 4 </OMI> + </OMA> + </OMA> + <OMI>3</OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 37 </OMI> + <OMI> 54 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 81 </OMI> + <OMI> 118 </OMI> + </OMA> + </OMA> +</OMA> +</OMOBJ> +</Example> +<Example> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMS cd="nums1" name="e"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMS cd="nums1" name="i"/> - <OMS cd="nums1" name="pi"/> - </OMA> - </OMA> - <OMA> - <OMS cd="arith1" name="unary_minus"/> - <OMS cd="alg1" name="one"/> - </OMA> -</OMA> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> abs </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMS cd="nums1" name="e"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMS cd="nums1" name="i"/> + <OMS cd="nums1" name="pi"/> + </OMA> + </OMA> + <OMA> + <OMS cd="arith1" name="unary_minus"/> + <OMS cd="alg1" name="one"/> + </OMA> +</OMA> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> abs </Name> +<Role>application</Role> +<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. -</Description> -<CMP> for all x,y | abs(x) + abs(y) &gt;= abs(x+y) </CMP> -<FMP> +</Description> +<CMP> for all x,y | abs(x) + abs(y) &gt;= abs(x+y) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="x"/> - <OMV name="y"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="geq"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMA> - <OMS cd="arith1" name="abs"/> - <OMV name="x"/> - </OMA> - <OMA> - <OMS cd="arith1" name="abs"/> - <OMV name="y"/> - </OMA> - </OMA> - <OMA> - <OMS cd="arith1" name="abs"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="x"/> - <OMV name="y"/> - </OMA> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> root </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="x"/> + <OMV name="y"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="geq"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMA> + <OMS cd="arith1" name="abs"/> + <OMV name="x"/> + </OMA> + <OMA> + <OMS cd="arith1" name="abs"/> + <OMV name="y"/> + </OMA> + </OMA> + <OMA> + <OMS cd="arith1" name="abs"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="x"/> + <OMV name="y"/> + </OMA> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> root </Name> +<Role>application</Role> +<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. @@ -10466,147 +10466,147 @@

A.2 The arith1 Content Dictionary File 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. -</Description> +</Description> -<CMP> x\in C implies root(x,n) = exp(ln(x)/n) </CMP> -<FMP> +<CMP> x\in C implies root(x,n) = exp(ln(x)/n) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="x"/> - <OMS cd="setname1" name="C"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="root"/> - <OMV name="x"/> - <OMV name="n"/> - </OMA> - <OMA> - <OMS name="exp" cd="transc1"/> - <OMA> - <OMS name="divide" cd="arith1"/> - <OMA> - <OMS name="ln" cd="transc1"/> - <OMV name="x"/> - </OMA> - <OMV name="n"/> - </OMA> - </OMA> - </OMA> - </OMA> - </OMOBJ> -</FMP> - -<CMP> for all a,n | power(root(a,n),n) = a (if the root exists!) </CMP> -<FMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="x"/> + <OMS cd="setname1" name="C"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="root"/> + <OMV name="x"/> + <OMV name="n"/> + </OMA> + <OMA> + <OMS name="exp" cd="transc1"/> + <OMA> + <OMS name="divide" cd="arith1"/> + <OMA> + <OMS name="ln" cd="transc1"/> + <OMV name="x"/> + </OMA> + <OMV name="n"/> + </OMA> + </OMA> + </OMA> + </OMA> + </OMOBJ> +</FMP> + +<CMP> for all a,n | power(root(a,n),n) = a (if the root exists!) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="n"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMA> - <OMS cd="arith1" name="root"/> - <OMV name="a"/> - <OMV name="n"/> - </OMA> - <OMV name="n"/> - </OMA> - <OMV name="a"/> - </OMA> - </OMBIND> - </OMOBJ> -</FMP> -</CDDefinition> - - - - -<CDDefinition> -<Name> sum </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="n"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMA> + <OMS cd="arith1" name="root"/> + <OMV name="a"/> + <OMV name="n"/> + </OMA> + <OMV name="n"/> + </OMA> + <OMV name="a"/> + </OMA> + </OMBIND> + </OMOBJ> +</FMP> +</CDDefinition> + + + + +<CDDefinition> +<Name> sum </Name> +<Role>application</Role> +<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. -</Description> -<Example> +</Description> +<Example> This represents the summation of the reciprocals of all the integers between 1 and 10 inclusive. <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="arith1" name="sum"/> - <OMA> - <OMS cd="interval1" name="integer_interval"/> - <OMI> 1 </OMI> - <OMI> 10 </OMI> - </OMA> - <OMBIND> - <OMS cd="fns1" name="lambda"/> - <OMBVAR> - <OMV name="x"/> - </OMBVAR> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMI> 1 </OMI> - <OMV name="x"/> - </OMA> - </OMBIND> - </OMA> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> product </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="arith1" name="sum"/> + <OMA> + <OMS cd="interval1" name="integer_interval"/> + <OMI> 1 </OMI> + <OMI> 10 </OMI> + </OMA> + <OMBIND> + <OMS cd="fns1" name="lambda"/> + <OMBVAR> + <OMV name="x"/> + </OMBVAR> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMI> 1 </OMI> + <OMV name="x"/> + </OMA> + </OMBIND> + </OMA> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> product </Name> +<Role>application</Role> +<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. -</Description> -<Example> +</Description> +<Example> This represents the statement that the factorial of n is equal to the product of all the integers between 1 and n inclusive. <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="integer1" name="factorial"/> - <OMV name="n"/> - </OMA> - <OMA> - <OMS cd="arith1" name="product"/> - <OMA> - <OMS cd="interval1" name="integer_interval"/> - <OMI> 1 </OMI> - <OMV name="n"/> - </OMA> - <OMBIND> - <OMS cd="fns1" name="lambda"/> - <OMBVAR> - <OMV name="i"/> - </OMBVAR> - <OMV name="i"/> - </OMBIND> - </OMA> - </OMA> -</OMOBJ> -</Example> -</CDDefinition> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="integer1" name="factorial"/> + <OMV name="n"/> + </OMA> + <OMA> + <OMS cd="arith1" name="product"/> + <OMA> + <OMS cd="interval1" name="integer_interval"/> + <OMI> 1 </OMI> + <OMV name="n"/> + </OMA> + <OMBIND> + <OMS cd="fns1" name="lambda"/> + <OMBVAR> + <OMV name="i"/> + </OMBVAR> + <OMV name="i"/> + </OMBIND> + </OMA> + </OMA> +</OMOBJ> +</Example> +</CDDefinition> </CD>

@@ -10623,172 +10623,172 @@

A.3 The arith1 STS Signature File
<CDSignatures
- xmlns="http://www.openmath.org/OpenMathCDS" type="sts" cd="arith1">
-<CDSStatus> official </CDSStatus>
+ xmlns="http://www.openmath.org/OpenMathCDS" type="sts" cd="arith1">
+<CDSStatus> official </CDSStatus>
 
-<CDSComment>
+<CDSComment>
 Date:  1999-11-26
 Author: David Carlisle
-</CDSComment>
+</CDSComment>
 
-<Signature name="lcm">
+<Signature name="lcm">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMA>
-     <OMS name="nassoc" cd="sts"/>
-     <OMV name="SemiGroup"/>
-   </OMA>
-   <OMV name="SemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="gcd">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMA>
+     <OMS name="nassoc" cd="sts"/>
+     <OMV name="SemiGroup"/>
+   </OMA>
+   <OMV name="SemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="gcd">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMA>
-     <OMS name="nassoc" cd="sts"/>
-     <OMV name="SemiGroup"/>
-   </OMA>
-   <OMV name="SemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="plus">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMA>
+     <OMS name="nassoc" cd="sts"/>
+     <OMV name="SemiGroup"/>
+   </OMA>
+   <OMV name="SemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="plus">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMA>
-   <OMS name="nassoc" cd="sts"/> 
-   <OMV name="AbelianSemiGroup"/>
-  </OMA>
-  <OMV name="AbelianSemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="unary_minus">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMA>
+   <OMS name="nassoc" cd="sts"/> 
+   <OMV name="AbelianSemiGroup"/>
+  </OMA>
+  <OMV name="AbelianSemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="unary_minus">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="minus">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="AbelianGroup"/> 
+  <OMV name="AbelianGroup"/> 
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="minus">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="AbelianGroup"/> 
+  <OMV name="AbelianGroup"/> 
   <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
-<Signature name="times">
+<Signature name="times">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMA>
-   <OMS name="nassoc" cd="sts"/> 
-   <OMV name="SemiGroup"/>
-  </OMA>
-  <OMV name="SemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="divide">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMA>
+   <OMS name="nassoc" cd="sts"/> 
+   <OMV name="SemiGroup"/>
+  </OMA>
+  <OMV name="SemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="divide">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="AbelianGroup"/> 
+  <OMV name="AbelianGroup"/> 
   <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
-<Signature name="power">
+<Signature name="power">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMS name="NumericalValue" cd="sts"/> 
+  <OMS name="NumericalValue" cd="sts"/> 
   <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
-<Signature name="abs">
+<Signature name="abs">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMS name="C" cd="setname1"/> 
-  <OMS name="R" cd="setname1"/> 
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="root">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMS name="C" cd="setname1"/> 
+  <OMS name="R" cd="setname1"/> 
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="root">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMS name="NumericalValue" cd="sts"/> 
+  <OMS name="NumericalValue" cd="sts"/> 
   <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
 
-<Signature name="sum">
+<Signature name="sum">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMV name="IntegerRange"/>
-  <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMS name="Z" cd="setname1"/>
-   <OMV name="AbelianMonoid"/>
-  </OMA>
-  <OMV name="AbelianMonoid"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="product">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="IntegerRange"/>
+  <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMS name="Z" cd="setname1"/>
+   <OMV name="AbelianMonoid"/>
+  </OMA>
+  <OMV name="AbelianMonoid"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="product">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMV name="IntegerRange"/>
-  <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMS name="Z" cd="setname1"/>
-   <OMV name="AbelianMonoid"/>
-  </OMA>
-  <OMV name="AbelianMonoid"/>
- </OMA>
-</OMOBJ>
-</Signature>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="IntegerRange"/>
+  <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMS name="Z" cd="setname1"/>
+   <OMV name="AbelianMonoid"/>
+  </OMA>
+  <OMV name="AbelianMonoid"/>
+ </OMA>
+</OMOBJ>
+</Signature>
 
 </CDSignatures>
@@ -10804,164 +10804,164 @@

A.4 The MathML CDGroup
<CDGroup
- xmlns="http://www.openmath.org/OpenMathCDG">
- <CDGroupName>mathml</CDGroupName>
- <CDGroupVersion> 2 </CDGroupVersion>
- <CDGroupRevision> 1 </CDGroupRevision>
- <CDGroupURL>http://www.openmath.org/cdgroups/mathml.cdg</CDGroupURL>
- <CDGroupDescription>MathML compatibility CD Group </CDGroupDescription>
- <CDComment>Algebra</CDComment>
- <CDGroupMember>
-  <CDName>alg1</CDName>
-  <CDURL>http://www.openmath.org/cd/alg1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Arithmetic</CDComment>
- <CDGroupMember>
-  <CDName>arith1</CDName>
-  <CDURL>http://www.openmath.org/cd/arith1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Constructor for Floating Point Numbers</CDComment>
- <CDGroupMember>
-  <CDName>bigfloat1</CDName>
-  <CDURL>http://www.openmath.org/cd/bigfloat1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Calculus</CDComment>
- <CDGroupMember>
-  <CDName>calculus1</CDName>
-  <CDURL>http://www.openmath.org/cd/calculus1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Operations on and constructors for complex numbers</CDComment>
- <CDGroupMember>
-  <CDName>complex1</CDName>
-  <CDURL>http://www.openmath.org/cd/complex1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Functions on functions</CDComment>
- <CDGroupMember>
-  <CDName>fns1</CDName>
-  <CDURL>http://www.openmath.org/cd/fns1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Integer arithmetic</CDComment>
- <CDGroupMember>
-  <CDName>integer1</CDName>
-  <CDURL>http://www.openmath.org/cd/integer1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Intervals</CDComment>
- <CDGroupMember>
-  <CDName>interval1</CDName>
-  <CDURL>http://www.openmath.org/cd/interval1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are independant of orientation, but in MathML</CDComment>
- <CDGroupMember>
-  <CDName>linalg1</CDName>
-  <CDURL>http://www.openmath.org/cd/linalg1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are dependant of orientation, and in MathML</CDComment>
- <CDGroupMember>
-  <CDName>linalg2</CDName>
-  <CDURL>http://www.openmath.org/cd/linalg2.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Limits of unary functions</CDComment>
- <CDGroupMember>
-  <CDName>limit1</CDName>
-  <CDURL>http://www.openmath.org/cd/limit1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>List constructors</CDComment>
- <CDGroupMember>
-  <CDName>list1</CDName>
-  <CDURL>http://www.openmath.org/cd/list1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic logical operators</CDComment>
- <CDGroupMember>
-  <CDName>logic1</CDName>
-  <CDURL>http://www.openmath.org/cd/logic1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>MathML Numerical Types</CDComment>
- <CDGroupMember>
-  <CDName>mathmltypes</CDName>
-  <CDURL>http://www.openmath.org/cd/mathmltypes.ocd</CDURL>
- </CDGroupMember>
- <CDComment>MathML attributes</CDComment>
- <CDGroupMember>
-  <CDName>mathmlattr</CDName>
-  <CDURL>http://www.openmath.org/cd/mathmlattr.ocd</CDURL>
- </CDGroupMember>
- <CDComment>MathML Keys</CDComment>
- <CDGroupMember>
-  <CDName>mathmlkeys</CDName>
-  <CDURL>http://www.openmath.org/cd/mathmlkeys.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Minima and maxima</CDComment>
- <CDGroupMember>
-  <CDName>minmax1</CDName>
-  <CDURL>http://www.openmath.org/cd/minmax1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Multset-theoretic operators and constructors</CDComment>
- <CDGroupMember>
-  <CDName>multiset1</CDName>
-  <CDURL>http://www.openmath.org/cd/multiset1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Symbols for creating numbers, including some defined constants
- (which can be seen as nullary constructors)</CDComment>
- <CDGroupMember>
-  <CDName>nums1</CDName>
-  <CDURL>http://www.openmath.org/cd/nums1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Symbols for creating piecewise definitions</CDComment>
- <CDGroupMember>
-  <CDName>piece1</CDName>
-  <CDURL>http://www.openmath.org/cd/piece1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>The basic quantifiers forall and exists.</CDComment>
- <CDGroupMember>
-  <CDName>quant1</CDName>
-  <CDURL>http://www.openmath.org/cd/quant1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Common arithmetic relations</CDComment>
- <CDGroupMember>
-  <CDName>relation1</CDName>
-  <CDURL>http://www.openmath.org/cd/relation1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Number sets</CDComment>
- <CDGroupMember>
-  <CDName>setname1</CDName>
-  <CDURL>http://www.openmath.org/cd/setname1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Rounding</CDComment>
- <CDGroupMember>
-  <CDName>rounding1</CDName>
-  <CDURL>http://www.openmath.org/cd/rounding1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Set-theoretic operators and constructors</CDComment>
- <CDGroupMember>
-  <CDName>set1</CDName>
-  <CDURL>http://www.openmath.org/cd/set1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic data orientated statistical operators</CDComment>
- <CDGroupMember>
-  <CDName>s_data1</CDName>
-  <CDURL>http://www.openmath.org/cd/s_data1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic random variable orientated statistical operators</CDComment>
- <CDGroupMember>
-  <CDName>s_dist1</CDName>
-  <CDURL>http://www.openmath.org/cd/s_dist1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic transcendental functions</CDComment>
- <CDGroupMember>
-  <CDName>transc1</CDName>
-  <CDURL>http://www.openmath.org/cd/transc1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Vector calculus functions</CDComment>
- <CDGroupMember>
-  <CDName>veccalc1</CDName>
-  <CDURL>http://www.openmath.org/cd/veccalc1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Alternative encoding symbols for compatibility with the MathML
- Semantic mapping constructs.</CDComment>
- <CDGroupMember>
-  <CDName>altenc</CDName>
-  <CDURL>http://www.openmath.org/cd/altenc.ocd</CDURL>
- </CDGroupMember>
+ xmlns="http://www.openmath.org/OpenMathCDG">
+ <CDGroupName>mathml</CDGroupName>
+ <CDGroupVersion> 2 </CDGroupVersion>
+ <CDGroupRevision> 1 </CDGroupRevision>
+ <CDGroupURL>http://www.openmath.org/cdgroups/mathml.cdg</CDGroupURL>
+ <CDGroupDescription>MathML compatibility CD Group </CDGroupDescription>
+ <CDComment>Algebra</CDComment>
+ <CDGroupMember>
+  <CDName>alg1</CDName>
+  <CDURL>http://www.openmath.org/cd/alg1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Arithmetic</CDComment>
+ <CDGroupMember>
+  <CDName>arith1</CDName>
+  <CDURL>http://www.openmath.org/cd/arith1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Constructor for Floating Point Numbers</CDComment>
+ <CDGroupMember>
+  <CDName>bigfloat1</CDName>
+  <CDURL>http://www.openmath.org/cd/bigfloat1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Calculus</CDComment>
+ <CDGroupMember>
+  <CDName>calculus1</CDName>
+  <CDURL>http://www.openmath.org/cd/calculus1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Operations on and constructors for complex numbers</CDComment>
+ <CDGroupMember>
+  <CDName>complex1</CDName>
+  <CDURL>http://www.openmath.org/cd/complex1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Functions on functions</CDComment>
+ <CDGroupMember>
+  <CDName>fns1</CDName>
+  <CDURL>http://www.openmath.org/cd/fns1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Integer arithmetic</CDComment>
+ <CDGroupMember>
+  <CDName>integer1</CDName>
+  <CDURL>http://www.openmath.org/cd/integer1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Intervals</CDComment>
+ <CDGroupMember>
+  <CDName>interval1</CDName>
+  <CDURL>http://www.openmath.org/cd/interval1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are independant of orientation, but in MathML</CDComment>
+ <CDGroupMember>
+  <CDName>linalg1</CDName>
+  <CDURL>http://www.openmath.org/cd/linalg1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are dependant of orientation, and in MathML</CDComment>
+ <CDGroupMember>
+  <CDName>linalg2</CDName>
+  <CDURL>http://www.openmath.org/cd/linalg2.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Limits of unary functions</CDComment>
+ <CDGroupMember>
+  <CDName>limit1</CDName>
+  <CDURL>http://www.openmath.org/cd/limit1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>List constructors</CDComment>
+ <CDGroupMember>
+  <CDName>list1</CDName>
+  <CDURL>http://www.openmath.org/cd/list1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic logical operators</CDComment>
+ <CDGroupMember>
+  <CDName>logic1</CDName>
+  <CDURL>http://www.openmath.org/cd/logic1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>MathML Numerical Types</CDComment>
+ <CDGroupMember>
+  <CDName>mathmltypes</CDName>
+  <CDURL>http://www.openmath.org/cd/mathmltypes.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>MathML attributes</CDComment>
+ <CDGroupMember>
+  <CDName>mathmlattr</CDName>
+  <CDURL>http://www.openmath.org/cd/mathmlattr.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>MathML Keys</CDComment>
+ <CDGroupMember>
+  <CDName>mathmlkeys</CDName>
+  <CDURL>http://www.openmath.org/cd/mathmlkeys.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Minima and maxima</CDComment>
+ <CDGroupMember>
+  <CDName>minmax1</CDName>
+  <CDURL>http://www.openmath.org/cd/minmax1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Multset-theoretic operators and constructors</CDComment>
+ <CDGroupMember>
+  <CDName>multiset1</CDName>
+  <CDURL>http://www.openmath.org/cd/multiset1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Symbols for creating numbers, including some defined constants
+ (which can be seen as nullary constructors)</CDComment>
+ <CDGroupMember>
+  <CDName>nums1</CDName>
+  <CDURL>http://www.openmath.org/cd/nums1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Symbols for creating piecewise definitions</CDComment>
+ <CDGroupMember>
+  <CDName>piece1</CDName>
+  <CDURL>http://www.openmath.org/cd/piece1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>The basic quantifiers forall and exists.</CDComment>
+ <CDGroupMember>
+  <CDName>quant1</CDName>
+  <CDURL>http://www.openmath.org/cd/quant1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Common arithmetic relations</CDComment>
+ <CDGroupMember>
+  <CDName>relation1</CDName>
+  <CDURL>http://www.openmath.org/cd/relation1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Number sets</CDComment>
+ <CDGroupMember>
+  <CDName>setname1</CDName>
+  <CDURL>http://www.openmath.org/cd/setname1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Rounding</CDComment>
+ <CDGroupMember>
+  <CDName>rounding1</CDName>
+  <CDURL>http://www.openmath.org/cd/rounding1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Set-theoretic operators and constructors</CDComment>
+ <CDGroupMember>
+  <CDName>set1</CDName>
+  <CDURL>http://www.openmath.org/cd/set1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic data orientated statistical operators</CDComment>
+ <CDGroupMember>
+  <CDName>s_data1</CDName>
+  <CDURL>http://www.openmath.org/cd/s_data1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic random variable orientated statistical operators</CDComment>
+ <CDGroupMember>
+  <CDName>s_dist1</CDName>
+  <CDURL>http://www.openmath.org/cd/s_dist1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic transcendental functions</CDComment>
+ <CDGroupMember>
+  <CDName>transc1</CDName>
+  <CDURL>http://www.openmath.org/cd/transc1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Vector calculus functions</CDComment>
+ <CDGroupMember>
+  <CDName>veccalc1</CDName>
+  <CDURL>http://www.openmath.org/cd/veccalc1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Alternative encoding symbols for compatibility with the MathML
+ Semantic mapping constructs.</CDComment>
+ <CDGroupMember>
+  <CDName>altenc</CDName>
+  <CDURL>http://www.openmath.org/cd/altenc.ocd</CDURL>
+ </CDGroupMember>
 </CDGroup>
@@ -10977,9 +10977,9 @@

A.5 The error Content Dictionary
<CD
- xmlns="http://www.openmath.org/OpenMathCD">
+ xmlns="http://www.openmath.org/OpenMathCD">
 
-<CDComment>
+<CDComment>
 
      This document is distributed in the hope that it will be useful, 
      but WITHOUT ANY WARRANTY; without even the implied warranty of 
@@ -11010,25 +11010,25 @@ 

A.5 The error Content Dictionary work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. -</CDComment> - -<CDName> error </CDName> -<CDBase>http://www.openmath.org/cd</CDBase> -<CDURL> http://www.openmath.org/cd/error.ocd </CDURL> -<CDReviewDate>2017-12-31</CDReviewDate> -<CDStatus> official </CDStatus> -<CDDate>2004-03-30</CDDate> -<CDVersion>3</CDVersion> -<CDRevision>1</CDRevision> -<CDComment> +</CDComment> + +<CDName> error </CDName> +<CDBase>http://www.openmath.org/cd</CDBase> +<CDURL> http://www.openmath.org/cd/error.ocd </CDURL> +<CDReviewDate>2017-12-31</CDReviewDate> +<CDStatus> official </CDStatus> +<CDDate>2004-03-30</CDDate> +<CDVersion>3</CDVersion> +<CDRevision>1</CDRevision> +<CDComment> Author: OpenMath Consortium SourceURL: https://github.com/OpenMath/CDs -</CDComment> +</CDComment> -<CDDefinition> -<Name> unhandled_symbol </Name> -<Role>error</Role> -<Description> +<CDDefinition> +<Name> unhandled_symbol </Name> +<Role>error</Role> +<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. @@ -11036,47 +11036,47 @@

A.5 The error Content Dictionary 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. -</Description> +</Description> -<Example> +<Example> The application does not implement the Complex numbers: <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OME> - <OMS cd="error" name="unhandled_symbol"/> - <OMS cd="setname1" name="C"/> - </OME> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> unexpected_symbol </Name> -<Role>error</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OME> + <OMS cd="error" name="unhandled_symbol"/> + <OMS cd="setname1" name="C"/> + </OME> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> unexpected_symbol </Name> +<Role>error</Role> +<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. -</Description> -<Example> +</Description> +<Example> The application received a mistyped symbol <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OME> - <OMS cd="error" name="unexpected_symbol"/> - <OMS cd="arith1" name="plurse"/> - </OME> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> unsupported_CD </Name> -<Role>error</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OME> + <OMS cd="error" name="unexpected_symbol"/> + <OMS cd="arith1" name="plurse"/> + </OME> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> unsupported_CD </Name> +<Role>error</Role> +<Description> This symbol represents the error which is raised when an application reads a symbol where the mentioned content dictionary is not present. @@ -11085,18 +11085,18 @@

A.5 The error Content Dictionary received the OpenMath error object constructed from unsupported_CD and the symbol from the unsupported Content Dictionary as in the example below. -</Description> -<Example> +</Description> +<Example> The application does not know about the CD specfun1 <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OME> - <OMS cd="error" name="unsupported_CD"/> - <OMS cd="specfun1" name="BesselJ"/> - </OME> -</OMOBJ> -</Example> -</CDDefinition> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OME> + <OMS cd="error" name="unsupported_CD"/> + <OMS cd="specfun1" name="BesselJ"/> + </OME> +</OMOBJ> +</Example> +</CDDefinition> </CD>

@@ -11120,253 +11120,252 @@

-
-<grammar
- xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.openmath.org/OpenMath" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-  <start>
-    <ref name="OMOBJ"/>
-  </start>
-  <!-- OpenMath object constructor -->
-  <define name="OMOBJ">
-    <element name="OMOBJ">
-      <ref name="compound.attributes"/>
-      <optional>
-        <attribute name="version">
-          <data type="string"/>
-        </attribute>
-      </optional>
-      <ref name="omel"/>
-    </element>
-  </define>
-  <!-- Elements which can appear inside an OpenMath object -->
-  <define name="omel">
-    <choice>
-      <ref name="OMS"/>
-      <ref name="OMV"/>
-      <ref name="OMI"/>
-      <ref name="OMB"/>
-      <ref name="OMSTR"/>
-      <ref name="OMF"/>
-      <ref name="OMA"/>
-      <ref name="OMBIND"/>
-      <ref name="OME"/>
-      <ref name="OMATTR"/>
-      <ref name="OMR"/>
-    </choice>
-  </define>
-  <!-- things which can be variables -->
-  <define name="omvar">
-    <choice>
-      <ref name="OMV"/>
-      <ref name="attvar"/>
-    </choice>
-  </define>
-  <define name="attvar">
-    <element name="OMATTR">
-      <ref name="common.attributes"/>
-      <group>
-        <ref name="OMATP"/>
-        <choice>
-          <ref name="OMV"/>
-          <ref name="attvar"/>
-        </choice>
-      </group>
-    </element>
-  </define>
-  <define name="cdbase">
-    <optional>
-      <attribute name="cdbase">
-        <data type="anyURI"/>
-      </attribute>
-    </optional>
-  </define>
-  <!-- attributes common to all elements -->
-  <define name="common.attributes">
-    <optional>
-      <attribute name="id">
-        <data type="ID"/>
-      </attribute>
-    </optional>
-  </define>
-  <!-- attributes common to all elements that construct compount OM objects. -->
-  <define name="compound.attributes">
-    <ref name="common.attributes"/>
-    <ref name="cdbase"/>
-  </define>
-  <!-- symbol -->
-  <define name="OMS">
-    <element name="OMS">
-      <ref name="common.attributes"/>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-      <attribute name="cd">
-        <data type="NCName"/>
-      </attribute>
-      <ref name="cdbase"/>
-    </element>
-  </define>
-  <!-- variable -->
-  <define name="OMV">
-    <element name="OMV">
-      <ref name="common.attributes"/>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </element>
-  </define>
-  <!-- integer -->
-  <define name="OMI">
-    <element name="OMI">
-      <ref name="common.attributes"/>
-      <data type="string">
-        <param name="pattern">\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*</param>
-      </data>
-    </element>
-  </define>
-  <!-- byte array -->
-  <define name="OMB">
-    <element name="OMB">
-      <ref name="common.attributes"/>
-      <data type="base64Binary"/>
-    </element>
-  </define>
-  <!-- string -->
-  <define name="OMSTR">
-    <element name="OMSTR">
-      <ref name="common.attributes"/>
-      <text/>
-    </element>
-  </define>
-  <!-- IEEE floating point number -->
-  <define name="OMF">
-    <element name="OMF">
-      <ref name="common.attributes"/>
-      <choice>
-        <attribute name="dec">
-          <data type="double"/>
-        </attribute>
-        <attribute name="hex">
-          <data type="string">
-            <param name="pattern">[0-9A-F]+</param>
-          </data>
-        </attribute>
-      </choice>
-    </element>
-  </define>
-  <!-- apply constructor -->
-  <define name="OMA">
-    <element name="OMA">
-      <ref name="compound.attributes"/>
-      <oneOrMore>
-        <ref name="omel"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <!-- binding constructor -->
-  <define name="OMBIND">
-    <element name="OMBIND">
-      <ref name="compound.attributes"/>
-      <ref name="omel"/>
-      <ref name="OMBVAR"/>
-      <ref name="omel"/>
-    </element>
-  </define>
-  <!-- variables used in binding constructor -->
-  <define name="OMBVAR">
-    <element name="OMBVAR">
-      <ref name="common.attributes"/>
-      <oneOrMore>
-        <ref name="omvar"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <!-- error constructor -->
-  <define name="OME">
-    <element name="OME">
-      <ref name="common.attributes"/>
-      <ref name="OMS"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="omel"/>
-          <ref name="OMFOREIGN"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-  <!-- attribution constructor and attribute pair constructor -->
-  <define name="OMATTR">
-    <element name="OMATTR">
-      <ref name="compound.attributes"/>
-      <ref name="OMATP"/>
-      <ref name="omel"/>
-    </element>
-  </define>
-  <define name="OMATP">
-    <element name="OMATP">
-      <ref name="compound.attributes"/>
-      <oneOrMore>
-        <ref name="OMS"/>
-        <choice>
-          <ref name="omel"/>
-          <ref name="OMFOREIGN"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-  <!-- foreign constructor -->
-  <define name="OMFOREIGN">
-    <element name="OMFOREIGN">
-      <ref name="compound.attributes"/>
-      <optional>
-        <attribute name="encoding">
-          <data type="string"/>
-        </attribute>
-      </optional>
-      <zeroOrMore>
-        <choice>
-          <ref name="omel"/>
-          <ref name="notom"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
+         
<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.openmath.org/OpenMath" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <ref name="OMOBJ"/>
+  </start>
+  <!-- OpenMath object constructor -->
+  <define name="OMOBJ">
+    <element name="OMOBJ">
+      <ref name="compound.attributes"/>
+      <optional>
+        <attribute name="version">
+          <data type="string"/>
+        </attribute>
+      </optional>
+      <ref name="omel"/>
+    </element>
+  </define>
+  <!-- Elements which can appear inside an OpenMath object -->
+  <define name="omel">
+    <choice>
+      <ref name="OMS"/>
+      <ref name="OMV"/>
+      <ref name="OMI"/>
+      <ref name="OMB"/>
+      <ref name="OMSTR"/>
+      <ref name="OMF"/>
+      <ref name="OMA"/>
+      <ref name="OMBIND"/>
+      <ref name="OME"/>
+      <ref name="OMATTR"/>
+      <ref name="OMR"/>
+    </choice>
+  </define>
+  <!-- things which can be variables -->
+  <define name="omvar">
+    <choice>
+      <ref name="OMV"/>
+      <ref name="attvar"/>
+    </choice>
+  </define>
+  <define name="attvar">
+    <element name="OMATTR">
+      <ref name="common.attributes"/>
+      <group>
+        <ref name="OMATP"/>
+        <choice>
+          <ref name="OMV"/>
+          <ref name="attvar"/>
+        </choice>
+      </group>
+    </element>
+  </define>
+  <define name="cdbase">
+    <optional>
+      <attribute name="cdbase">
+        <data type="anyURI"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- attributes common to all elements -->
+  <define name="common.attributes">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- attributes common to all elements that construct compount OM objects. -->
+  <define name="compound.attributes">
+    <ref name="common.attributes"/>
+    <ref name="cdbase"/>
+  </define>
+  <!-- symbol -->
+  <define name="OMS">
+    <element name="OMS">
+      <ref name="common.attributes"/>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+      <attribute name="cd">
+        <data type="NCName"/>
+      </attribute>
+      <ref name="cdbase"/>
+    </element>
+  </define>
+  <!-- variable -->
+  <define name="OMV">
+    <element name="OMV">
+      <ref name="common.attributes"/>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </element>
+  </define>
+  <!-- integer -->
+  <define name="OMI">
+    <element name="OMI">
+      <ref name="common.attributes"/>
+      <data type="string">
+        <param name="pattern">\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*</param>
+      </data>
+    </element>
+  </define>
+  <!-- byte array -->
+  <define name="OMB">
+    <element name="OMB">
+      <ref name="common.attributes"/>
+      <data type="base64Binary"/>
+    </element>
+  </define>
+  <!-- string -->
+  <define name="OMSTR">
+    <element name="OMSTR">
+      <ref name="common.attributes"/>
+      <text/>
+    </element>
+  </define>
+  <!-- IEEE floating point number -->
+  <define name="OMF">
+    <element name="OMF">
+      <ref name="common.attributes"/>
+      <choice>
+        <attribute name="dec">
+          <data type="double"/>
+        </attribute>
+        <attribute name="hex">
+          <data type="string">
+            <param name="pattern">[0-9A-F]+</param>
+          </data>
+        </attribute>
+      </choice>
+    </element>
+  </define>
+  <!-- apply constructor -->
+  <define name="OMA">
+    <element name="OMA">
+      <ref name="compound.attributes"/>
+      <oneOrMore>
+        <ref name="omel"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- binding constructor -->
+  <define name="OMBIND">
+    <element name="OMBIND">
+      <ref name="compound.attributes"/>
+      <ref name="omel"/>
+      <ref name="OMBVAR"/>
+      <ref name="omel"/>
+    </element>
+  </define>
+  <!-- variables used in binding constructor -->
+  <define name="OMBVAR">
+    <element name="OMBVAR">
+      <ref name="common.attributes"/>
+      <oneOrMore>
+        <ref name="omvar"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- error constructor -->
+  <define name="OME">
+    <element name="OME">
+      <ref name="common.attributes"/>
+      <ref name="OMS"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="omel"/>
+          <ref name="OMFOREIGN"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- attribution constructor and attribute pair constructor -->
+  <define name="OMATTR">
+    <element name="OMATTR">
+      <ref name="compound.attributes"/>
+      <ref name="OMATP"/>
+      <ref name="omel"/>
+    </element>
+  </define>
+  <define name="OMATP">
+    <element name="OMATP">
+      <ref name="compound.attributes"/>
+      <oneOrMore>
+        <ref name="OMS"/>
+        <choice>
+          <ref name="omel"/>
+          <ref name="OMFOREIGN"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- foreign constructor -->
+  <define name="OMFOREIGN">
+    <element name="OMFOREIGN">
+      <ref name="compound.attributes"/>
+      <optional>
+        <attribute name="encoding">
+          <data type="string"/>
+        </attribute>
+      </optional>
+      <zeroOrMore>
+        <choice>
+          <ref name="omel"/>
+          <ref name="notom"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
   <!--
     Any elements not in the om namespace
     (valid om is allowed as a descendant)
-  -->
-  <define name="notom">
-    <choice>
-      <element>
-        <anyName>
-          <except>
-            <nsName/>
-          </except>
-        </anyName>
-        <zeroOrMore>
-          <attribute>
-            <anyName/>
-          </attribute>
-        </zeroOrMore>
-        <zeroOrMore>
-          <choice>
-            <ref name="omel"/>
-            <ref name="notom"/>
-          </choice>
-        </zeroOrMore>
-      </element>
-      <text/>
-    </choice>
-  </define>
-  <!-- reference constructor -->
-  <define name="OMR">
-    <element name="OMR">
-      <ref name="common.attributes"/>
-      <attribute name="href">
-        <data type="anyURI"/>
-      </attribute>
-    </element>
-  </define>
+  -->
+  <define name="notom">
+    <choice>
+      <element>
+        <anyName>
+          <except>
+            <nsName/>
+          </except>
+        </anyName>
+        <zeroOrMore>
+          <attribute>
+            <anyName/>
+          </attribute>
+        </zeroOrMore>
+        <zeroOrMore>
+          <choice>
+            <ref name="omel"/>
+            <ref name="notom"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+      <text/>
+    </choice>
+  </define>
+  <!-- reference constructor -->
+  <define name="OMR">
+    <element name="OMR">
+      <ref name="common.attributes"/>
+      <attribute name="href">
+        <data type="anyURI"/>
+      </attribute>
+    </element>
+  </define>
 </grammar>
@@ -11504,224 +11503,223 @@

-
-<schema
+         
<schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:om="http://www.openmath.org/OpenMath" elementFormDefault="qualified" targetNamespace="http://www.openmath.org/OpenMath">
-  <!-- OpenMath object constructor -->
-  <element name="OMOBJ">
-    <complexType>
-      <group ref="om:omel"/>
-      <attributeGroup ref="om:compound.attributes"/>
-      <attribute name="version" type="xs:string"/>
-    </complexType>
-  </element>
-  <!-- Elements which can appear inside an OpenMath object -->
-  <group name="omel">
-    <choice>
-      <element ref="om:OMS"/>
-      <element ref="om:OMV"/>
-      <element ref="om:OMI"/>
-      <element ref="om:OMB"/>
-      <element ref="om:OMSTR"/>
-      <element ref="om:OMF"/>
-      <element ref="om:OMA"/>
-      <element ref="om:OMBIND"/>
-      <element ref="om:OME"/>
-      <group ref="om:OMATTR"/>
-      <element ref="om:OMR"/>
-    </choice>
-  </group>
-  <!-- things which can be variables -->
-  <group name="omvar">
-    <choice>
-      <element ref="om:OMV"/>
-      <group ref="om:attvar"/>
-    </choice>
-  </group>
-  <group name="attvar">
-    <sequence>
-      <element name="OMATTR">
-        <complexType>
-          <sequence>
-            <element ref="om:OMATP"/>
-            <choice>
-              <element ref="om:OMV"/>
-              <group ref="om:attvar"/>
-            </choice>
-          </sequence>
-          <attributeGroup ref="om:common.attributes"/>
-        </complexType>
-      </element>
-    </sequence>
-  </group>
-  <attributeGroup name="cdbase">
-    <attribute name="cdbase" type="xs:anyURI"/>
-  </attributeGroup>
-  <!-- attributes common to all elements -->
-  <attributeGroup name="common.attributes">
-    <attribute name="id" type="xs:ID"/>
-  </attributeGroup>
-  <!-- attributes common to all elements that construct compount OM objects. -->
-  <attributeGroup name="compound.attributes">
-    <attributeGroup ref="om:common.attributes"/>
-    <attributeGroup ref="om:cdbase"/>
-  </attributeGroup>
-  <!-- symbol -->
-  <element name="OMS">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="name" use="required" type="xs:NCName"/>
-      <attribute name="cd" use="required" type="xs:NCName"/>
-      <attributeGroup ref="om:cdbase"/>
-    </complexType>
-  </element>
-  <!-- variable -->
-  <element name="OMV">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="name" use="required" type="xs:NCName"/>
-    </complexType>
-  </element>
-  <!-- integer -->
-  <element name="OMI">
-    <complexType>
-      <simpleContent>
-        <restriction base="xs:anyType">
-          <simpleType>
-            <restriction base="xs:string">
-              <pattern value="\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*"/>
-            </restriction>
-          </simpleType>
-          <attributeGroup ref="om:common.attributes"/>
-        </restriction>
-      </simpleContent>
-    </complexType>
-  </element>
-  <!-- byte array -->
-  <element name="OMB">
-    <complexType>
-      <simpleContent>
-        <extension base="xs:base64Binary">
-          <attributeGroup ref="om:common.attributes"/>
-        </extension>
-      </simpleContent>
-    </complexType>
-  </element>
-  <!-- string -->
-  <element name="OMSTR">
-    <complexType mixed="true">
-      <attributeGroup ref="om:common.attributes"/>
-    </complexType>
-  </element>
-  <!-- IEEE floating point number -->
-  <element name="OMF">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="dec" type="xs:double"/>
-      <attribute name="hex">
-        <simpleType>
-          <restriction base="xs:string">
-            <pattern value="[0-9A-F]+"/>
-          </restriction>
-        </simpleType>
-      </attribute>
-    </complexType>
-  </element>
-  <!-- apply constructor -->
-  <element name="OMA">
-    <complexType>
-      <group maxOccurs="unbounded" ref="om:omel"/>
-      <attributeGroup ref="om:compound.attributes"/>
-    </complexType>
-  </element>
-  <!-- binding constructor -->
-  <element name="OMBIND">
-    <complexType>
-      <sequence>
-        <group ref="om:omel"/>
-        <element ref="om:OMBVAR"/>
-        <group ref="om:omel"/>
-      </sequence>
-      <attributeGroup ref="om:compound.attributes"/>
-    </complexType>
-  </element>
-  <!-- variables used in binding constructor -->
-  <element name="OMBVAR">
-    <complexType>
-      <group maxOccurs="unbounded" ref="om:omvar"/>
-      <attributeGroup ref="om:common.attributes"/>
-    </complexType>
-  </element>
-  <!-- error constructor -->
-  <element name="OME">
-    <complexType>
-      <sequence>
-        <element ref="om:OMS"/>
-        <choice minOccurs="0" maxOccurs="unbounded">
-          <group ref="om:omel"/>
-          <element ref="om:OMFOREIGN"/>
-        </choice>
-      </sequence>
-      <attributeGroup ref="om:common.attributes"/>
-    </complexType>
-  </element>
-  <!-- attribution constructor and attribute pair constructor -->
-  <group name="OMATTR">
-    <sequence>
-      <element name="OMATTR">
-        <complexType>
-          <sequence>
-            <element ref="om:OMATP"/>
-            <group ref="om:omel"/>
-          </sequence>
-          <attributeGroup ref="om:compound.attributes"/>
-        </complexType>
-      </element>
-    </sequence>
-  </group>
-  <element name="OMATP">
-    <complexType>
-      <sequence maxOccurs="unbounded">
-        <element ref="om:OMS"/>
-        <choice>
-          <group ref="om:omel"/>
-          <element ref="om:OMFOREIGN"/>
-        </choice>
-      </sequence>
-      <attributeGroup ref="om:compound.attributes"/>
-    </complexType>
-  </element>
-  <!-- foreign constructor -->
-  <element name="OMFOREIGN">
-    <complexType mixed="true">
-      <choice minOccurs="0" maxOccurs="unbounded">
-        <group ref="om:omel"/>
-        <group ref="om:notom"/>
-      </choice>
-      <attributeGroup ref="om:compound.attributes"/>
-      <attribute name="encoding" type="xs:string"/>
-    </complexType>
-  </element>
+ xmlns:om="http://www.openmath.org/OpenMath" elementFormDefault="qualified" targetNamespace="http://www.openmath.org/OpenMath">
+  <!-- OpenMath object constructor -->
+  <element name="OMOBJ">
+    <complexType>
+      <group ref="om:omel"/>
+      <attributeGroup ref="om:compound.attributes"/>
+      <attribute name="version" type="xs:string"/>
+    </complexType>
+  </element>
+  <!-- Elements which can appear inside an OpenMath object -->
+  <group name="omel">
+    <choice>
+      <element ref="om:OMS"/>
+      <element ref="om:OMV"/>
+      <element ref="om:OMI"/>
+      <element ref="om:OMB"/>
+      <element ref="om:OMSTR"/>
+      <element ref="om:OMF"/>
+      <element ref="om:OMA"/>
+      <element ref="om:OMBIND"/>
+      <element ref="om:OME"/>
+      <group ref="om:OMATTR"/>
+      <element ref="om:OMR"/>
+    </choice>
+  </group>
+  <!-- things which can be variables -->
+  <group name="omvar">
+    <choice>
+      <element ref="om:OMV"/>
+      <group ref="om:attvar"/>
+    </choice>
+  </group>
+  <group name="attvar">
+    <sequence>
+      <element name="OMATTR">
+        <complexType>
+          <sequence>
+            <element ref="om:OMATP"/>
+            <choice>
+              <element ref="om:OMV"/>
+              <group ref="om:attvar"/>
+            </choice>
+          </sequence>
+          <attributeGroup ref="om:common.attributes"/>
+        </complexType>
+      </element>
+    </sequence>
+  </group>
+  <attributeGroup name="cdbase">
+    <attribute name="cdbase" type="xs:anyURI"/>
+  </attributeGroup>
+  <!-- attributes common to all elements -->
+  <attributeGroup name="common.attributes">
+    <attribute name="id" type="xs:ID"/>
+  </attributeGroup>
+  <!-- attributes common to all elements that construct compount OM objects. -->
+  <attributeGroup name="compound.attributes">
+    <attributeGroup ref="om:common.attributes"/>
+    <attributeGroup ref="om:cdbase"/>
+  </attributeGroup>
+  <!-- symbol -->
+  <element name="OMS">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="name" use="required" type="xs:NCName"/>
+      <attribute name="cd" use="required" type="xs:NCName"/>
+      <attributeGroup ref="om:cdbase"/>
+    </complexType>
+  </element>
+  <!-- variable -->
+  <element name="OMV">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="name" use="required" type="xs:NCName"/>
+    </complexType>
+  </element>
+  <!-- integer -->
+  <element name="OMI">
+    <complexType>
+      <simpleContent>
+        <restriction base="xs:anyType">
+          <simpleType>
+            <restriction base="xs:string">
+              <pattern value="\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*"/>
+            </restriction>
+          </simpleType>
+          <attributeGroup ref="om:common.attributes"/>
+        </restriction>
+      </simpleContent>
+    </complexType>
+  </element>
+  <!-- byte array -->
+  <element name="OMB">
+    <complexType>
+      <simpleContent>
+        <extension base="xs:base64Binary">
+          <attributeGroup ref="om:common.attributes"/>
+        </extension>
+      </simpleContent>
+    </complexType>
+  </element>
+  <!-- string -->
+  <element name="OMSTR">
+    <complexType mixed="true">
+      <attributeGroup ref="om:common.attributes"/>
+    </complexType>
+  </element>
+  <!-- IEEE floating point number -->
+  <element name="OMF">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="dec" type="xs:double"/>
+      <attribute name="hex">
+        <simpleType>
+          <restriction base="xs:string">
+            <pattern value="[0-9A-F]+"/>
+          </restriction>
+        </simpleType>
+      </attribute>
+    </complexType>
+  </element>
+  <!-- apply constructor -->
+  <element name="OMA">
+    <complexType>
+      <group maxOccurs="unbounded" ref="om:omel"/>
+      <attributeGroup ref="om:compound.attributes"/>
+    </complexType>
+  </element>
+  <!-- binding constructor -->
+  <element name="OMBIND">
+    <complexType>
+      <sequence>
+        <group ref="om:omel"/>
+        <element ref="om:OMBVAR"/>
+        <group ref="om:omel"/>
+      </sequence>
+      <attributeGroup ref="om:compound.attributes"/>
+    </complexType>
+  </element>
+  <!-- variables used in binding constructor -->
+  <element name="OMBVAR">
+    <complexType>
+      <group maxOccurs="unbounded" ref="om:omvar"/>
+      <attributeGroup ref="om:common.attributes"/>
+    </complexType>
+  </element>
+  <!-- error constructor -->
+  <element name="OME">
+    <complexType>
+      <sequence>
+        <element ref="om:OMS"/>
+        <choice minOccurs="0" maxOccurs="unbounded">
+          <group ref="om:omel"/>
+          <element ref="om:OMFOREIGN"/>
+        </choice>
+      </sequence>
+      <attributeGroup ref="om:common.attributes"/>
+    </complexType>
+  </element>
+  <!-- attribution constructor and attribute pair constructor -->
+  <group name="OMATTR">
+    <sequence>
+      <element name="OMATTR">
+        <complexType>
+          <sequence>
+            <element ref="om:OMATP"/>
+            <group ref="om:omel"/>
+          </sequence>
+          <attributeGroup ref="om:compound.attributes"/>
+        </complexType>
+      </element>
+    </sequence>
+  </group>
+  <element name="OMATP">
+    <complexType>
+      <sequence maxOccurs="unbounded">
+        <element ref="om:OMS"/>
+        <choice>
+          <group ref="om:omel"/>
+          <element ref="om:OMFOREIGN"/>
+        </choice>
+      </sequence>
+      <attributeGroup ref="om:compound.attributes"/>
+    </complexType>
+  </element>
+  <!-- foreign constructor -->
+  <element name="OMFOREIGN">
+    <complexType mixed="true">
+      <choice minOccurs="0" maxOccurs="unbounded">
+        <group ref="om:omel"/>
+        <group ref="om:notom"/>
+      </choice>
+      <attributeGroup ref="om:compound.attributes"/>
+      <attribute name="encoding" type="xs:string"/>
+    </complexType>
+  </element>
   <!--
     Any elements not in the om namespace
     (valid om is allowed as a descendant)
-  -->
-  <group name="notom">
-    <sequence>
-      <choice minOccurs="0">
-        <any namespace="##other" processContents="skip"/>
-        <any namespace="##local" processContents="skip"/>
-      </choice>
-    </sequence>
-  </group>
-  <!-- reference constructor -->
-  <element name="OMR">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="href" use="required" type="xs:anyURI"/>
-    </complexType>
-  </element>
+  -->
+  <group name="notom">
+    <sequence>
+      <choice minOccurs="0">
+        <any namespace="##other" processContents="skip"/>
+        <any namespace="##local" processContents="skip"/>
+      </choice>
+    </sequence>
+  </group>
+  <!-- reference constructor -->
+  <element name="OMR">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="href" use="required" type="xs:anyURI"/>
+    </complexType>
+  </element>
 </schema>
diff --git a/standard/om20-editors-draft/omstd20-diff.pdf b/standard/om20-editors-draft/omstd20-diff.pdf index 1de7d867..07e35297 100644 Binary files a/standard/om20-editors-draft/omstd20-diff.pdf and b/standard/om20-editors-draft/omstd20-diff.pdf differ diff --git a/standard/om20-editors-draft/omstd20.html b/standard/om20-editors-draft/omstd20.html index 2ca9afe0..afce3524 100644 --- a/standard/om20-editors-draft/omstd20.html +++ b/standard/om20-editors-draft/omstd20.html @@ -9213,9 +9213,9 @@

A.1 The meta Content Dictionary
<CD
- xmlns="http://www.openmath.org/OpenMathCD">
+ xmlns="http://www.openmath.org/OpenMathCD">
 
-<CDComment>
+<CDComment>
 
      This document is distributed in the hope that it will be useful, 
      but WITHOUT ANY WARRANTY; without even the implied warranty of 
@@ -9246,140 +9246,140 @@ 

A.1 The meta Content Dictionary work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. -</CDComment> +</CDComment> -<CDName> meta </CDName> -<CDReviewDate>2006-03-30</CDReviewDate> -<CDDate>2004-03-30</CDDate> -<CDVersion>3</CDVersion> -<CDRevision>0</CDRevision> -<CDStatus> official </CDStatus> -<CDURL> http://www.openmath.org/cd/meta.ocd </CDURL> -<CDBase>http://www.openmath.org/cd</CDBase> +<CDName> meta </CDName> +<CDReviewDate>2006-03-30</CDReviewDate> +<CDDate>2004-03-30</CDDate> +<CDVersion>3</CDVersion> +<CDRevision>0</CDRevision> +<CDStatus> official </CDStatus> +<CDURL> http://www.openmath.org/cd/meta.ocd </CDURL> +<CDBase>http://www.openmath.org/cd</CDBase> -<Description> +<Description> This is a content dictionary to represent content dictionaries, so that they may be passed between OpenMath compliant application in a similar way to mathematical objects. The information written here is taken from chapter 4 of the current draft of the "OpenMath Standard". -</Description> +</Description> -<CDDefinition> -<Name> CD </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CD </Name> +<Role>application</Role> +<Description> The top level element for the Content Dictionary. It just acts as a container for the elements described below. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDDefinition </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDDefinition </Name> +<Role>application</Role> +<Description> This symbol is used to represent the element which contains the definition of each symbol in a content dictionary. That is: it must contain a 'Name' element and a 'Description' element, and it may contain an arbitrary number of 'Example', 'FMP' or 'CMP' elements. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDName </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDName </Name> +<Role>application</Role> +<Description> An element which contains the string corresponding to the name of the CD. The string must match the syntax for CD names given in the OpenMath Standard. Here and elsewhere white space occurring at the beginning or end of the string will be ignored. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDURL </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDURL </Name> +<Role>application</Role> +<Description> An optional element. If it is used it contains a string representing the URL where the canonical reference copy of this CD is stored. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDBase </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDBase </Name> +<Role>application</Role> +<Description> An optional element. If it is used it contains a string representing the URI to be used as the base for generated canonical URI references for symbols in the CD. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Example </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Example </Name> +<Role>application</Role> +<Description> An element which contains an arbitrary number of children, each of which is either a string or an OpenMath Object. These children give examples in natural language, or in OpenMath, of the enclosing symbol definition. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDDate </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDDate </Name> +<Role>application</Role> +<Description> An element which contains a date as a string in the ISO-8601 YYYY-MM-DD format. This gives the date at which the Content Dictionary was last edited. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDVersion </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDVersion </Name> +<Role>application</Role> +<Description> An element which contains a version number for the CD. This should be a non negative integer. Any change to the CD that affects existing OpenMath applications that support this CD should result in an increase in the version number. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDRevision </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDRevision </Name> +<Role>application</Role> +<Description> An element which contains a revision number (or minor version number) This should be a non-negative integer starting from zero for each new version. Additional examples would be typical changes to a CD requiring a new revision number. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDReviewDate </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDReviewDate </Name> +<Role>application</Role> +<Description> An element which contains a date as a string in the ISO-8601 YYYY-MM-DD format. This gives the date at which the Content Dictionary is next scheduled for review. It should be expected to be stable until at least this date. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDStatus </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDStatus </Name> +<Role>application</Role> +<Description> An element giving information on the status of the CD. The content of the element must be one of the following strings. @@ -9390,79 +9390,79 @@

A.1 The meta Content Dictionary private (used by a private group of OpenMath users), or obsolete (an obsolete CD kept only for archival purposes). -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDComment </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDComment </Name> +<Role>application</Role> +<Description> This symbol is used to represent the element of a content dictionary which explains some aspect of that content dictionary. It should have one string argument which makes that explanation. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CDUses </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CDUses </Name> +<Role>application</Role> +<Description> An element which contains zero or more CDNames which correspond to the CDs that this CD depends on, i.e. uses in examples and FMPs. If the CD is dependent on any other CDs they may be present here. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Description </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Description </Name> +<Role>application</Role> +<Description> An element which contains a string corresponding to the description of either the CD or the symbol (depending on which is the enclosing element). -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Name </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Name </Name> +<Role>application</Role> +<Description> An element containing the string corresponding to the name of the symbol being defined. This must match the syntax for symbol names given in the OpenMath Standard. Here and elsewhere white space occurring at the begining or end of the string will be ignored. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> Role </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> Role </Name> +<Role>application</Role> +<Description> An element containing the string corresponding to the role of the symbol being defined. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> CMP </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> CMP </Name> +<Role>application</Role> +<Description> An optional element (which may be repeated many times) which contains a string corresponding to a property of the symbol being defined. -</Description> -</CDDefinition> +</Description> +</CDDefinition> -<CDDefinition> -<Name> FMP </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> FMP </Name> +<Role>application</Role> +<Description> An optional element which contains an OpenMath Object. This corresponds to a property of the symbol being defined. -</Description> -</CDDefinition> +</Description> +</CDDefinition> </CD>

@@ -9477,9 +9477,9 @@

A.2 The arith1 Content Dictionary File
<CD
- xmlns="http://www.openmath.org/OpenMathCD">
+ xmlns="http://www.openmath.org/OpenMathCD">
 
-<CDComment>
+<CDComment>
 
      This document is distributed in the hope that it will be useful, 
      but WITHOUT ANY WARRANTY; without even the implied warranty of 
@@ -9510,727 +9510,727 @@ 

A.2 The arith1 Content Dictionary File work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. -</CDComment> - -<CDName> arith1 </CDName> -<CDBase>http://www.openmath.org/cd</CDBase> -<CDURL> http://www.openmath.org/cd/arith1.ocd </CDURL> -<CDReviewDate>2017-12-31</CDReviewDate> -<CDStatus> official </CDStatus> -<CDDate>2004-03-30</CDDate> -<CDVersion>3</CDVersion> -<CDRevision>2</CDRevision> -<CDComment> +</CDComment> + +<CDName> arith1 </CDName> +<CDBase>http://www.openmath.org/cd</CDBase> +<CDURL> http://www.openmath.org/cd/arith1.ocd </CDURL> +<CDReviewDate>2017-12-31</CDReviewDate> +<CDStatus> official </CDStatus> +<CDDate>2004-03-30</CDDate> +<CDVersion>3</CDVersion> +<CDRevision>2</CDRevision> +<CDComment> Author: OpenMath Consortium SourceURL: https://github.com/OpenMath/CDs -</CDComment> +</CDComment> -<Description> +<Description> This CD defines symbols for common arithmetic functions. -</Description> +</Description> -<CDDefinition> -<Name> lcm </Name> -<Role>application</Role> -<Description> +<CDDefinition> +<Name> lcm </Name> +<Role>application</Role> +<Description> The symbol to represent the n-ary function to return the least common multiple of its arguments. -</Description> +</Description> -<CMP> lcm(a,b) = a*b/gcd(a,b) </CMP> +<CMP> lcm(a,b) = a*b/gcd(a,b) </CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="lcm"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="gcd"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> -</OMOBJ> -</FMP> -<CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="lcm"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="gcd"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> +</OMOBJ> +</FMP> +<CMP> for all integers a,b | There does not exist a c&gt;0 such that c/a is an Integer and c/b is an Integer and lcm(a,b) &gt; c. -</CMP> +</CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="a"/> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="b"/> - <OMS cd="setname1" name="Z"/> - </OMA> - </OMA> - <OMA> - <OMS cd="logic1" name="not"/> - <OMBIND> - <OMS cd="quant1" name="exists"/> - <OMBVAR> - <OMV name="c"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="relation1" name="gt"/> - <OMV name="c"/> - <OMI>0</OMI> - </OMA> - <OMA> - <OMS cd="integer1" name="factorof"/> - <OMV name="a"/> - <OMV name="c"/> - </OMA> - <OMA> - <OMS cd="integer1" name="factorof"/> - <OMV name="b"/> - <OMV name="c"/> - </OMA> - <OMA> - <OMS cd="relation1" name="lt"/> - <OMV name="c"/> - <OMA> - <OMS cd="arith1" name="lcm"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> - </OMBIND> - </OMA> - </OMA> -</OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> gcd </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="a"/> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="b"/> + <OMS cd="setname1" name="Z"/> + </OMA> + </OMA> + <OMA> + <OMS cd="logic1" name="not"/> + <OMBIND> + <OMS cd="quant1" name="exists"/> + <OMBVAR> + <OMV name="c"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="relation1" name="gt"/> + <OMV name="c"/> + <OMI>0</OMI> + </OMA> + <OMA> + <OMS cd="integer1" name="factorof"/> + <OMV name="a"/> + <OMV name="c"/> + </OMA> + <OMA> + <OMS cd="integer1" name="factorof"/> + <OMV name="b"/> + <OMV name="c"/> + </OMA> + <OMA> + <OMS cd="relation1" name="lt"/> + <OMV name="c"/> + <OMA> + <OMS cd="arith1" name="lcm"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> + </OMBIND> + </OMA> + </OMA> +</OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> gcd </Name> +<Role>application</Role> +<Description> The symbol to represent the n-ary function to return the gcd (greatest common divisor) of its arguments. -</Description> +</Description> -<CMP> +<CMP> for all integers a,b | There does not exist a c such that a/c is an Integer and b/c is an Integer and c &gt; gcd(a,b). Note that this implies that gcd(a,b) &gt; 0 -</CMP> +</CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="a"/> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="b"/> - <OMS cd="setname1" name="Z"/> - </OMA> - </OMA> - <OMA> - <OMS cd="logic1" name="not"/> - <OMBIND> - <OMS cd="quant1" name="exists"/> - <OMBVAR> - <OMV name="c"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMV name="a"/> - <OMV name="c"/> - </OMA> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="set1" name="in"/> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMV name="b"/> - <OMV name="c"/> - </OMA> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="relation1" name="gt"/> - <OMV name="c"/> - <OMA> - <OMS cd="arith1" name="gcd"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> - </OMBIND> - </OMA> - </OMA> -</OMBIND> -</OMOBJ> -</FMP> - -<Example> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="a"/> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="b"/> + <OMS cd="setname1" name="Z"/> + </OMA> + </OMA> + <OMA> + <OMS cd="logic1" name="not"/> + <OMBIND> + <OMS cd="quant1" name="exists"/> + <OMBVAR> + <OMV name="c"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMV name="a"/> + <OMV name="c"/> + </OMA> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="set1" name="in"/> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMV name="b"/> + <OMV name="c"/> + </OMA> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="relation1" name="gt"/> + <OMV name="c"/> + <OMA> + <OMS cd="arith1" name="gcd"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> + </OMBIND> + </OMA> + </OMA> +</OMBIND> +</OMOBJ> +</FMP> + +<Example> gcd(6,9) = 3 <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="gcd"/> - <OMI> 6 </OMI> - <OMI> 9 </OMI> - </OMA> - <OMI> 3 </OMI> - </OMA> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> plus </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="gcd"/> + <OMI> 6 </OMI> + <OMI> 9 </OMI> + </OMA> + <OMI> 3 </OMI> + </OMA> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> plus </Name> +<Role>application</Role> +<Description> The symbol representing an n-ary commutative function plus. -</Description> -<CMP> for all a,b | a + b = b + a </CMP> -<FMP> +</Description> +<CMP> for all a,b | a + b = b + a </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="b"/> - <OMV name="a"/> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> unary_minus </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="b"/> + <OMV name="a"/> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> unary_minus </Name> +<Role>application</Role> +<Description> This symbol denotes unary minus, i.e. the additive inverse. -</Description> -<CMP> for all a | a + (-a) = 0 </CMP> -<FMP> +</Description> +<CMP> for all a | a + (-a) = 0 </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="unary_minus"/> - <OMV name="a"/> - </OMA> - </OMA> - <OMS cd="alg1" name="zero"/> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> minus </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="unary_minus"/> + <OMV name="a"/> + </OMA> + </OMA> + <OMS cd="alg1" name="zero"/> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> minus </Name> +<Role>application</Role> +<Description> The symbol representing a binary minus function. This is equivalent to adding the additive inverse. -</Description> -<CMP> for all a,b | a - b = a + (-b) </CMP> -<FMP> +</Description> +<CMP> for all a,b | a - b = a + (-b) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="minus"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="unary_minus"/> - <OMV name="b"/> - </OMA> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> times </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="minus"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="unary_minus"/> + <OMV name="b"/> + </OMA> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> times </Name> +<Role>application</Role> +<Description> The symbol representing an n-ary multiplication function. -</Description> -<Example> +</Description> +<Example> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 1 </OMI> - <OMI> 2 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 3 </OMI> - <OMI> 4 </OMI> - </OMA> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 5 </OMI> - <OMI> 6 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 7 </OMI> - <OMI> 8 </OMI> - </OMA> - </OMA> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 19 </OMI> - <OMI> 22 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 43 </OMI> - <OMI> 50 </OMI> - </OMA> - </OMA> -</OMA> -</OMOBJ> -</Example> -<CMP> for all a,b | a * 0 = 0 and a * b = a * (b - 1) + a </CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 1 </OMI> + <OMI> 2 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 3 </OMI> + <OMI> 4 </OMI> + </OMA> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 5 </OMI> + <OMI> 6 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 7 </OMI> + <OMI> 8 </OMI> + </OMA> + </OMA> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 19 </OMI> + <OMI> 22 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 43 </OMI> + <OMI> 50 </OMI> + </OMA> + </OMA> +</OMA> +</OMOBJ> +</Example> +<CMP> for all a,b | a * 0 = 0 and a * b = a * (b - 1) + a </CMP> <FMP><OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMS cd="alg1" name="zero"/> - </OMA> - <OMS cd="alg1" name="zero"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="minus"/> - <OMV name="b"/> - <OMS cd="alg1" name="one"/> - </OMA> - </OMA> - <OMV name="a"/> - </OMA> - </OMA> - </OMA> -</OMBIND> -</OMOBJ></FMP> - -<CMP> for all a,b,c | a*(b+c) = a*b + a*c </CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMS cd="alg1" name="zero"/> + </OMA> + <OMS cd="alg1" name="zero"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="minus"/> + <OMV name="b"/> + <OMS cd="alg1" name="one"/> + </OMA> + </OMA> + <OMV name="a"/> + </OMA> + </OMA> + </OMA> +</OMBIND> +</OMOBJ></FMP> + +<CMP> for all a,b,c | a*(b+c) = a*b + a*c </CMP> <FMP><OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="b"/> - <OMV name="c"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="b"/> - <OMV name="c"/> - </OMA> - </OMA> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="b"/> - </OMA> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="a"/> - <OMV name="c"/> - </OMA> - </OMA> - </OMA> -</OMBIND> -</OMOBJ></FMP> -</CDDefinition> - -<CDDefinition> -<Name> divide </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="b"/> + <OMV name="c"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="b"/> + <OMV name="c"/> + </OMA> + </OMA> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="b"/> + </OMA> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="a"/> + <OMV name="c"/> + </OMA> + </OMA> + </OMA> +</OMBIND> +</OMOBJ></FMP> +</CDDefinition> + +<CDDefinition> +<Name> divide </Name> +<Role>application</Role> +<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. -</Description> -<CMP> whenever not(a=0) then a/a = 1 </CMP> -<FMP> +</Description> +<CMP> whenever not(a=0) then a/a = 1 </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - </OMBVAR> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="relation1" name="neq"/> - <OMV name="a"/> - <OMS cd="alg1" name="zero"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMV name="a"/> - <OMV name="a"/> - </OMA> - <OMS cd="alg1" name="one"/> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> power </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + </OMBVAR> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="relation1" name="neq"/> + <OMV name="a"/> + <OMS cd="alg1" name="zero"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMV name="a"/> + <OMV name="a"/> + </OMA> + <OMS cd="alg1" name="one"/> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> power </Name> +<Role>application</Role> +<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. -</Description> +</Description> -<CMP> +<CMP> x\in C implies x^a = exp(a ln x) -</CMP> +</CMP> -<FMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="x"/> - <OMS cd="setname1" name="C"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS name="power" cd="arith1"/> - <OMV name="x"/> - <OMV name="a"/> - </OMA> - <OMA> - <OMS name="exp" cd="transc1"/> - <OMA> - <OMS name="times" cd="arith1"/> - <OMV name="a"/> - <OMA> - <OMS name="ln" cd="transc1"/> - <OMV name="x"/> - </OMA> - </OMA> - </OMA> - </OMA> - </OMA> -</OMOBJ> -</FMP> - -<CMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="x"/> + <OMS cd="setname1" name="C"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS name="power" cd="arith1"/> + <OMV name="x"/> + <OMV name="a"/> + </OMA> + <OMA> + <OMS name="exp" cd="transc1"/> + <OMA> + <OMS name="times" cd="arith1"/> + <OMV name="a"/> + <OMA> + <OMS name="ln" cd="transc1"/> + <OMV name="x"/> + </OMA> + </OMA> + </OMA> + </OMA> + </OMA> +</OMOBJ> +</FMP> + +<CMP> if n is an integer then x^0 = 1, x^n = x * x^(n-1) -</CMP> -<FMP> +</CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="n"/> - <OMS cd="setname1" name="Z"/> - </OMA> - <OMA> - <OMS cd="logic1" name="and"/> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMV name="x"/> - <OMI>0</OMI> - </OMA> - <OMS cd="alg1" name="one"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMV name="x"/> - <OMV name="n"/> - </OMA> - <OMA> - <OMS cd="arith1" name="times"/> - <OMV name="x"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMV name="x"/> - <OMA> - <OMS cd="arith1" name="minus"/> - <OMV name="n"/> - <OMI>1</OMI> - </OMA> - </OMA> - </OMA> - </OMA> - </OMA> - </OMA> -</OMOBJ> -</FMP> -<Example> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="n"/> + <OMS cd="setname1" name="Z"/> + </OMA> + <OMA> + <OMS cd="logic1" name="and"/> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMV name="x"/> + <OMI>0</OMI> + </OMA> + <OMS cd="alg1" name="one"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMV name="x"/> + <OMV name="n"/> + </OMA> + <OMA> + <OMS cd="arith1" name="times"/> + <OMV name="x"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMV name="x"/> + <OMA> + <OMS cd="arith1" name="minus"/> + <OMV name="n"/> + <OMI>1</OMI> + </OMA> + </OMA> + </OMA> + </OMA> + </OMA> + </OMA> +</OMOBJ> +</FMP> +<Example> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 1 </OMI> - <OMI> 2 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 3 </OMI> - <OMI> 4 </OMI> - </OMA> - </OMA> - <OMI>3</OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrix"/> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 37 </OMI> - <OMI> 54 </OMI> - </OMA> - <OMA> - <OMS cd="linalg2" name="matrixrow"/> - <OMI> 81 </OMI> - <OMI> 118 </OMI> - </OMA> - </OMA> -</OMA> -</OMOBJ> -</Example> -<Example> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 1 </OMI> + <OMI> 2 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 3 </OMI> + <OMI> 4 </OMI> + </OMA> + </OMA> + <OMI>3</OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrix"/> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 37 </OMI> + <OMI> 54 </OMI> + </OMA> + <OMA> + <OMS cd="linalg2" name="matrixrow"/> + <OMI> 81 </OMI> + <OMI> 118 </OMI> + </OMA> + </OMA> +</OMA> +</OMOBJ> +</Example> +<Example> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> -<OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMS cd="nums1" name="e"/> - <OMA> - <OMS cd="arith1" name="times"/> - <OMS cd="nums1" name="i"/> - <OMS cd="nums1" name="pi"/> - </OMA> - </OMA> - <OMA> - <OMS cd="arith1" name="unary_minus"/> - <OMS cd="alg1" name="one"/> - </OMA> -</OMA> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> abs </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> +<OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMS cd="nums1" name="e"/> + <OMA> + <OMS cd="arith1" name="times"/> + <OMS cd="nums1" name="i"/> + <OMS cd="nums1" name="pi"/> + </OMA> + </OMA> + <OMA> + <OMS cd="arith1" name="unary_minus"/> + <OMS cd="alg1" name="one"/> + </OMA> +</OMA> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> abs </Name> +<Role>application</Role> +<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. -</Description> -<CMP> for all x,y | abs(x) + abs(y) &gt;= abs(x+y) </CMP> -<FMP> +</Description> +<CMP> for all x,y | abs(x) + abs(y) &gt;= abs(x+y) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="x"/> - <OMV name="y"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="geq"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMA> - <OMS cd="arith1" name="abs"/> - <OMV name="x"/> - </OMA> - <OMA> - <OMS cd="arith1" name="abs"/> - <OMV name="y"/> - </OMA> - </OMA> - <OMA> - <OMS cd="arith1" name="abs"/> - <OMA> - <OMS cd="arith1" name="plus"/> - <OMV name="x"/> - <OMV name="y"/> - </OMA> - </OMA> - </OMA> - </OMBIND> -</OMOBJ> -</FMP> -</CDDefinition> - -<CDDefinition> -<Name> root </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="x"/> + <OMV name="y"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="geq"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMA> + <OMS cd="arith1" name="abs"/> + <OMV name="x"/> + </OMA> + <OMA> + <OMS cd="arith1" name="abs"/> + <OMV name="y"/> + </OMA> + </OMA> + <OMA> + <OMS cd="arith1" name="abs"/> + <OMA> + <OMS cd="arith1" name="plus"/> + <OMV name="x"/> + <OMV name="y"/> + </OMA> + </OMA> + </OMA> + </OMBIND> +</OMOBJ> +</FMP> +</CDDefinition> + +<CDDefinition> +<Name> root </Name> +<Role>application</Role> +<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. @@ -10242,147 +10242,147 @@

A.2 The arith1 Content Dictionary File 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. -</Description> +</Description> -<CMP> x\in C implies root(x,n) = exp(ln(x)/n) </CMP> -<FMP> +<CMP> x\in C implies root(x,n) = exp(ln(x)/n) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="logic1" name="implies"/> - <OMA> - <OMS cd="set1" name="in"/> - <OMV name="x"/> - <OMS cd="setname1" name="C"/> - </OMA> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="root"/> - <OMV name="x"/> - <OMV name="n"/> - </OMA> - <OMA> - <OMS name="exp" cd="transc1"/> - <OMA> - <OMS name="divide" cd="arith1"/> - <OMA> - <OMS name="ln" cd="transc1"/> - <OMV name="x"/> - </OMA> - <OMV name="n"/> - </OMA> - </OMA> - </OMA> - </OMA> - </OMOBJ> -</FMP> - -<CMP> for all a,n | power(root(a,n),n) = a (if the root exists!) </CMP> -<FMP> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="logic1" name="implies"/> + <OMA> + <OMS cd="set1" name="in"/> + <OMV name="x"/> + <OMS cd="setname1" name="C"/> + </OMA> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="root"/> + <OMV name="x"/> + <OMV name="n"/> + </OMA> + <OMA> + <OMS name="exp" cd="transc1"/> + <OMA> + <OMS name="divide" cd="arith1"/> + <OMA> + <OMS name="ln" cd="transc1"/> + <OMV name="x"/> + </OMA> + <OMV name="n"/> + </OMA> + </OMA> + </OMA> + </OMA> + </OMOBJ> +</FMP> + +<CMP> for all a,n | power(root(a,n),n) = a (if the root exists!) </CMP> +<FMP> <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMBIND> - <OMS cd="quant1" name="forall"/> - <OMBVAR> - <OMV name="a"/> - <OMV name="n"/> - </OMBVAR> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="arith1" name="power"/> - <OMA> - <OMS cd="arith1" name="root"/> - <OMV name="a"/> - <OMV name="n"/> - </OMA> - <OMV name="n"/> - </OMA> - <OMV name="a"/> - </OMA> - </OMBIND> - </OMOBJ> -</FMP> -</CDDefinition> - - - - -<CDDefinition> -<Name> sum </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMBIND> + <OMS cd="quant1" name="forall"/> + <OMBVAR> + <OMV name="a"/> + <OMV name="n"/> + </OMBVAR> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="arith1" name="power"/> + <OMA> + <OMS cd="arith1" name="root"/> + <OMV name="a"/> + <OMV name="n"/> + </OMA> + <OMV name="n"/> + </OMA> + <OMV name="a"/> + </OMA> + </OMBIND> + </OMOBJ> +</FMP> +</CDDefinition> + + + + +<CDDefinition> +<Name> sum </Name> +<Role>application</Role> +<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. -</Description> -<Example> +</Description> +<Example> This represents the summation of the reciprocals of all the integers between 1 and 10 inclusive. <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="arith1" name="sum"/> - <OMA> - <OMS cd="interval1" name="integer_interval"/> - <OMI> 1 </OMI> - <OMI> 10 </OMI> - </OMA> - <OMBIND> - <OMS cd="fns1" name="lambda"/> - <OMBVAR> - <OMV name="x"/> - </OMBVAR> - <OMA> - <OMS cd="arith1" name="divide"/> - <OMI> 1 </OMI> - <OMV name="x"/> - </OMA> - </OMBIND> - </OMA> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> product </Name> -<Role>application</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="arith1" name="sum"/> + <OMA> + <OMS cd="interval1" name="integer_interval"/> + <OMI> 1 </OMI> + <OMI> 10 </OMI> + </OMA> + <OMBIND> + <OMS cd="fns1" name="lambda"/> + <OMBVAR> + <OMV name="x"/> + </OMBVAR> + <OMA> + <OMS cd="arith1" name="divide"/> + <OMI> 1 </OMI> + <OMV name="x"/> + </OMA> + </OMBIND> + </OMA> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> product </Name> +<Role>application</Role> +<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. -</Description> -<Example> +</Description> +<Example> This represents the statement that the factorial of n is equal to the product of all the integers between 1 and n inclusive. <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OMA> - <OMS cd="relation1" name="eq"/> - <OMA> - <OMS cd="integer1" name="factorial"/> - <OMV name="n"/> - </OMA> - <OMA> - <OMS cd="arith1" name="product"/> - <OMA> - <OMS cd="interval1" name="integer_interval"/> - <OMI> 1 </OMI> - <OMV name="n"/> - </OMA> - <OMBIND> - <OMS cd="fns1" name="lambda"/> - <OMBVAR> - <OMV name="i"/> - </OMBVAR> - <OMV name="i"/> - </OMBIND> - </OMA> - </OMA> -</OMOBJ> -</Example> -</CDDefinition> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OMA> + <OMS cd="relation1" name="eq"/> + <OMA> + <OMS cd="integer1" name="factorial"/> + <OMV name="n"/> + </OMA> + <OMA> + <OMS cd="arith1" name="product"/> + <OMA> + <OMS cd="interval1" name="integer_interval"/> + <OMI> 1 </OMI> + <OMV name="n"/> + </OMA> + <OMBIND> + <OMS cd="fns1" name="lambda"/> + <OMBVAR> + <OMV name="i"/> + </OMBVAR> + <OMV name="i"/> + </OMBIND> + </OMA> + </OMA> +</OMOBJ> +</Example> +</CDDefinition> </CD>

@@ -10399,172 +10399,172 @@

A.3 The arith1 STS Signature File
<CDSignatures
- xmlns="http://www.openmath.org/OpenMathCDS" type="sts" cd="arith1">
-<CDSStatus> official </CDSStatus>
+ xmlns="http://www.openmath.org/OpenMathCDS" type="sts" cd="arith1">
+<CDSStatus> official </CDSStatus>
 
-<CDSComment>
+<CDSComment>
 Date:  1999-11-26
 Author: David Carlisle
-</CDSComment>
+</CDSComment>
 
-<Signature name="lcm">
+<Signature name="lcm">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMA>
-     <OMS name="nassoc" cd="sts"/>
-     <OMV name="SemiGroup"/>
-   </OMA>
-   <OMV name="SemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="gcd">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMA>
+     <OMS name="nassoc" cd="sts"/>
+     <OMV name="SemiGroup"/>
+   </OMA>
+   <OMV name="SemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="gcd">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMA>
-     <OMS name="nassoc" cd="sts"/>
-     <OMV name="SemiGroup"/>
-   </OMA>
-   <OMV name="SemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="plus">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMA>
+     <OMS name="nassoc" cd="sts"/>
+     <OMV name="SemiGroup"/>
+   </OMA>
+   <OMV name="SemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="plus">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMA>
-   <OMS name="nassoc" cd="sts"/> 
-   <OMV name="AbelianSemiGroup"/>
-  </OMA>
-  <OMV name="AbelianSemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="unary_minus">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMA>
+   <OMS name="nassoc" cd="sts"/> 
+   <OMV name="AbelianSemiGroup"/>
+  </OMA>
+  <OMV name="AbelianSemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="unary_minus">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="minus">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="AbelianGroup"/> 
+  <OMV name="AbelianGroup"/> 
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="minus">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="AbelianGroup"/> 
+  <OMV name="AbelianGroup"/> 
   <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
-<Signature name="times">
+<Signature name="times">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMA>
-   <OMS name="nassoc" cd="sts"/> 
-   <OMV name="SemiGroup"/>
-  </OMA>
-  <OMV name="SemiGroup"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="divide">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMA>
+   <OMS name="nassoc" cd="sts"/> 
+   <OMV name="SemiGroup"/>
+  </OMA>
+  <OMV name="SemiGroup"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="divide">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="AbelianGroup"/> 
+  <OMV name="AbelianGroup"/> 
   <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
-  <OMV name="AbelianGroup"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
-<Signature name="power">
+<Signature name="power">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMS name="NumericalValue" cd="sts"/> 
+  <OMS name="NumericalValue" cd="sts"/> 
   <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
-<Signature name="abs">
+<Signature name="abs">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMS name="C" cd="setname1"/> 
-  <OMS name="R" cd="setname1"/> 
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="root">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMS name="C" cd="setname1"/> 
+  <OMS name="R" cd="setname1"/> 
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="root">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMS name="NumericalValue" cd="sts"/> 
+  <OMS name="NumericalValue" cd="sts"/> 
   <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
-  <OMS name="NumericalValue" cd="sts"/> 
- </OMA>
-</OMOBJ>
-</Signature>
+ </OMA>
+</OMOBJ>
+</Signature>
 
 
-<Signature name="sum">
+<Signature name="sum">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMV name="IntegerRange"/>
-  <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMS name="Z" cd="setname1"/>
-   <OMV name="AbelianMonoid"/>
-  </OMA>
-  <OMV name="AbelianMonoid"/>
- </OMA>
-</OMOBJ>
-</Signature>
-
-<Signature name="product">
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="IntegerRange"/>
+  <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMS name="Z" cd="setname1"/>
+   <OMV name="AbelianMonoid"/>
+  </OMA>
+  <OMV name="AbelianMonoid"/>
+ </OMA>
+</OMOBJ>
+</Signature>
+
+<Signature name="product">
 <OMOBJ
- xmlns="http://www.openmath.org/OpenMath"> 
- <OMA>
-  <OMS name="mapsto" cd="sts"/>
-  <OMV name="IntegerRange"/>
-  <OMA>
-   <OMS name="mapsto" cd="sts"/>
-   <OMS name="Z" cd="setname1"/>
-   <OMV name="AbelianMonoid"/>
-  </OMA>
-  <OMV name="AbelianMonoid"/>
- </OMA>
-</OMOBJ>
-</Signature>
+ xmlns="http://www.openmath.org/OpenMath"> 
+ <OMA>
+  <OMS name="mapsto" cd="sts"/>
+  <OMV name="IntegerRange"/>
+  <OMA>
+   <OMS name="mapsto" cd="sts"/>
+   <OMS name="Z" cd="setname1"/>
+   <OMV name="AbelianMonoid"/>
+  </OMA>
+  <OMV name="AbelianMonoid"/>
+ </OMA>
+</OMOBJ>
+</Signature>
 
 </CDSignatures>
@@ -10580,164 +10580,164 @@

A.4 The MathML CDGroup
<CDGroup
- xmlns="http://www.openmath.org/OpenMathCDG">
- <CDGroupName>mathml</CDGroupName>
- <CDGroupVersion> 2 </CDGroupVersion>
- <CDGroupRevision> 1 </CDGroupRevision>
- <CDGroupURL>http://www.openmath.org/cdgroups/mathml.cdg</CDGroupURL>
- <CDGroupDescription>MathML compatibility CD Group </CDGroupDescription>
- <CDComment>Algebra</CDComment>
- <CDGroupMember>
-  <CDName>alg1</CDName>
-  <CDURL>http://www.openmath.org/cd/alg1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Arithmetic</CDComment>
- <CDGroupMember>
-  <CDName>arith1</CDName>
-  <CDURL>http://www.openmath.org/cd/arith1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Constructor for Floating Point Numbers</CDComment>
- <CDGroupMember>
-  <CDName>bigfloat1</CDName>
-  <CDURL>http://www.openmath.org/cd/bigfloat1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Calculus</CDComment>
- <CDGroupMember>
-  <CDName>calculus1</CDName>
-  <CDURL>http://www.openmath.org/cd/calculus1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Operations on and constructors for complex numbers</CDComment>
- <CDGroupMember>
-  <CDName>complex1</CDName>
-  <CDURL>http://www.openmath.org/cd/complex1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Functions on functions</CDComment>
- <CDGroupMember>
-  <CDName>fns1</CDName>
-  <CDURL>http://www.openmath.org/cd/fns1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Integer arithmetic</CDComment>
- <CDGroupMember>
-  <CDName>integer1</CDName>
-  <CDURL>http://www.openmath.org/cd/integer1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Intervals</CDComment>
- <CDGroupMember>
-  <CDName>interval1</CDName>
-  <CDURL>http://www.openmath.org/cd/interval1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are independant of orientation, but in MathML</CDComment>
- <CDGroupMember>
-  <CDName>linalg1</CDName>
-  <CDURL>http://www.openmath.org/cd/linalg1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are dependant of orientation, and in MathML</CDComment>
- <CDGroupMember>
-  <CDName>linalg2</CDName>
-  <CDURL>http://www.openmath.org/cd/linalg2.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Limits of unary functions</CDComment>
- <CDGroupMember>
-  <CDName>limit1</CDName>
-  <CDURL>http://www.openmath.org/cd/limit1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>List constructors</CDComment>
- <CDGroupMember>
-  <CDName>list1</CDName>
-  <CDURL>http://www.openmath.org/cd/list1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic logical operators</CDComment>
- <CDGroupMember>
-  <CDName>logic1</CDName>
-  <CDURL>http://www.openmath.org/cd/logic1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>MathML Numerical Types</CDComment>
- <CDGroupMember>
-  <CDName>mathmltypes</CDName>
-  <CDURL>http://www.openmath.org/cd/mathmltypes.ocd</CDURL>
- </CDGroupMember>
- <CDComment>MathML attributes</CDComment>
- <CDGroupMember>
-  <CDName>mathmlattr</CDName>
-  <CDURL>http://www.openmath.org/cd/mathmlattr.ocd</CDURL>
- </CDGroupMember>
- <CDComment>MathML Keys</CDComment>
- <CDGroupMember>
-  <CDName>mathmlkeys</CDName>
-  <CDURL>http://www.openmath.org/cd/mathmlkeys.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Minima and maxima</CDComment>
- <CDGroupMember>
-  <CDName>minmax1</CDName>
-  <CDURL>http://www.openmath.org/cd/minmax1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Multset-theoretic operators and constructors</CDComment>
- <CDGroupMember>
-  <CDName>multiset1</CDName>
-  <CDURL>http://www.openmath.org/cd/multiset1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Symbols for creating numbers, including some defined constants
- (which can be seen as nullary constructors)</CDComment>
- <CDGroupMember>
-  <CDName>nums1</CDName>
-  <CDURL>http://www.openmath.org/cd/nums1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Symbols for creating piecewise definitions</CDComment>
- <CDGroupMember>
-  <CDName>piece1</CDName>
-  <CDURL>http://www.openmath.org/cd/piece1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>The basic quantifiers forall and exists.</CDComment>
- <CDGroupMember>
-  <CDName>quant1</CDName>
-  <CDURL>http://www.openmath.org/cd/quant1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Common arithmetic relations</CDComment>
- <CDGroupMember>
-  <CDName>relation1</CDName>
-  <CDURL>http://www.openmath.org/cd/relation1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Number sets</CDComment>
- <CDGroupMember>
-  <CDName>setname1</CDName>
-  <CDURL>http://www.openmath.org/cd/setname1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Rounding</CDComment>
- <CDGroupMember>
-  <CDName>rounding1</CDName>
-  <CDURL>http://www.openmath.org/cd/rounding1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Set-theoretic operators and constructors</CDComment>
- <CDGroupMember>
-  <CDName>set1</CDName>
-  <CDURL>http://www.openmath.org/cd/set1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic data orientated statistical operators</CDComment>
- <CDGroupMember>
-  <CDName>s_data1</CDName>
-  <CDURL>http://www.openmath.org/cd/s_data1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic random variable orientated statistical operators</CDComment>
- <CDGroupMember>
-  <CDName>s_dist1</CDName>
-  <CDURL>http://www.openmath.org/cd/s_dist1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Basic transcendental functions</CDComment>
- <CDGroupMember>
-  <CDName>transc1</CDName>
-  <CDURL>http://www.openmath.org/cd/transc1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Vector calculus functions</CDComment>
- <CDGroupMember>
-  <CDName>veccalc1</CDName>
-  <CDURL>http://www.openmath.org/cd/veccalc1.ocd</CDURL>
- </CDGroupMember>
- <CDComment>Alternative encoding symbols for compatibility with the MathML
- Semantic mapping constructs.</CDComment>
- <CDGroupMember>
-  <CDName>altenc</CDName>
-  <CDURL>http://www.openmath.org/cd/altenc.ocd</CDURL>
- </CDGroupMember>
+ xmlns="http://www.openmath.org/OpenMathCDG">
+ <CDGroupName>mathml</CDGroupName>
+ <CDGroupVersion> 2 </CDGroupVersion>
+ <CDGroupRevision> 1 </CDGroupRevision>
+ <CDGroupURL>http://www.openmath.org/cdgroups/mathml.cdg</CDGroupURL>
+ <CDGroupDescription>MathML compatibility CD Group </CDGroupDescription>
+ <CDComment>Algebra</CDComment>
+ <CDGroupMember>
+  <CDName>alg1</CDName>
+  <CDURL>http://www.openmath.org/cd/alg1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Arithmetic</CDComment>
+ <CDGroupMember>
+  <CDName>arith1</CDName>
+  <CDURL>http://www.openmath.org/cd/arith1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Constructor for Floating Point Numbers</CDComment>
+ <CDGroupMember>
+  <CDName>bigfloat1</CDName>
+  <CDURL>http://www.openmath.org/cd/bigfloat1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Calculus</CDComment>
+ <CDGroupMember>
+  <CDName>calculus1</CDName>
+  <CDURL>http://www.openmath.org/cd/calculus1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Operations on and constructors for complex numbers</CDComment>
+ <CDGroupMember>
+  <CDName>complex1</CDName>
+  <CDURL>http://www.openmath.org/cd/complex1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Functions on functions</CDComment>
+ <CDGroupMember>
+  <CDName>fns1</CDName>
+  <CDURL>http://www.openmath.org/cd/fns1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Integer arithmetic</CDComment>
+ <CDGroupMember>
+  <CDName>integer1</CDName>
+  <CDURL>http://www.openmath.org/cd/integer1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Intervals</CDComment>
+ <CDGroupMember>
+  <CDName>interval1</CDName>
+  <CDURL>http://www.openmath.org/cd/interval1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are independant of orientation, but in MathML</CDComment>
+ <CDGroupMember>
+  <CDName>linalg1</CDName>
+  <CDURL>http://www.openmath.org/cd/linalg1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Linear Algebra - vector &amp; matrix constructors, those symbols which are dependant of orientation, and in MathML</CDComment>
+ <CDGroupMember>
+  <CDName>linalg2</CDName>
+  <CDURL>http://www.openmath.org/cd/linalg2.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Limits of unary functions</CDComment>
+ <CDGroupMember>
+  <CDName>limit1</CDName>
+  <CDURL>http://www.openmath.org/cd/limit1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>List constructors</CDComment>
+ <CDGroupMember>
+  <CDName>list1</CDName>
+  <CDURL>http://www.openmath.org/cd/list1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic logical operators</CDComment>
+ <CDGroupMember>
+  <CDName>logic1</CDName>
+  <CDURL>http://www.openmath.org/cd/logic1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>MathML Numerical Types</CDComment>
+ <CDGroupMember>
+  <CDName>mathmltypes</CDName>
+  <CDURL>http://www.openmath.org/cd/mathmltypes.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>MathML attributes</CDComment>
+ <CDGroupMember>
+  <CDName>mathmlattr</CDName>
+  <CDURL>http://www.openmath.org/cd/mathmlattr.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>MathML Keys</CDComment>
+ <CDGroupMember>
+  <CDName>mathmlkeys</CDName>
+  <CDURL>http://www.openmath.org/cd/mathmlkeys.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Minima and maxima</CDComment>
+ <CDGroupMember>
+  <CDName>minmax1</CDName>
+  <CDURL>http://www.openmath.org/cd/minmax1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Multset-theoretic operators and constructors</CDComment>
+ <CDGroupMember>
+  <CDName>multiset1</CDName>
+  <CDURL>http://www.openmath.org/cd/multiset1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Symbols for creating numbers, including some defined constants
+ (which can be seen as nullary constructors)</CDComment>
+ <CDGroupMember>
+  <CDName>nums1</CDName>
+  <CDURL>http://www.openmath.org/cd/nums1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Symbols for creating piecewise definitions</CDComment>
+ <CDGroupMember>
+  <CDName>piece1</CDName>
+  <CDURL>http://www.openmath.org/cd/piece1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>The basic quantifiers forall and exists.</CDComment>
+ <CDGroupMember>
+  <CDName>quant1</CDName>
+  <CDURL>http://www.openmath.org/cd/quant1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Common arithmetic relations</CDComment>
+ <CDGroupMember>
+  <CDName>relation1</CDName>
+  <CDURL>http://www.openmath.org/cd/relation1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Number sets</CDComment>
+ <CDGroupMember>
+  <CDName>setname1</CDName>
+  <CDURL>http://www.openmath.org/cd/setname1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Rounding</CDComment>
+ <CDGroupMember>
+  <CDName>rounding1</CDName>
+  <CDURL>http://www.openmath.org/cd/rounding1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Set-theoretic operators and constructors</CDComment>
+ <CDGroupMember>
+  <CDName>set1</CDName>
+  <CDURL>http://www.openmath.org/cd/set1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic data orientated statistical operators</CDComment>
+ <CDGroupMember>
+  <CDName>s_data1</CDName>
+  <CDURL>http://www.openmath.org/cd/s_data1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic random variable orientated statistical operators</CDComment>
+ <CDGroupMember>
+  <CDName>s_dist1</CDName>
+  <CDURL>http://www.openmath.org/cd/s_dist1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Basic transcendental functions</CDComment>
+ <CDGroupMember>
+  <CDName>transc1</CDName>
+  <CDURL>http://www.openmath.org/cd/transc1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Vector calculus functions</CDComment>
+ <CDGroupMember>
+  <CDName>veccalc1</CDName>
+  <CDURL>http://www.openmath.org/cd/veccalc1.ocd</CDURL>
+ </CDGroupMember>
+ <CDComment>Alternative encoding symbols for compatibility with the MathML
+ Semantic mapping constructs.</CDComment>
+ <CDGroupMember>
+  <CDName>altenc</CDName>
+  <CDURL>http://www.openmath.org/cd/altenc.ocd</CDURL>
+ </CDGroupMember>
 </CDGroup>
@@ -10753,9 +10753,9 @@

A.5 The error Content Dictionary
<CD
- xmlns="http://www.openmath.org/OpenMathCD">
+ xmlns="http://www.openmath.org/OpenMathCD">
 
-<CDComment>
+<CDComment>
 
      This document is distributed in the hope that it will be useful, 
      but WITHOUT ANY WARRANTY; without even the implied warranty of 
@@ -10786,25 +10786,25 @@ 

A.5 The error Content Dictionary work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. -</CDComment> - -<CDName> error </CDName> -<CDBase>http://www.openmath.org/cd</CDBase> -<CDURL> http://www.openmath.org/cd/error.ocd </CDURL> -<CDReviewDate>2017-12-31</CDReviewDate> -<CDStatus> official </CDStatus> -<CDDate>2004-03-30</CDDate> -<CDVersion>3</CDVersion> -<CDRevision>1</CDRevision> -<CDComment> +</CDComment> + +<CDName> error </CDName> +<CDBase>http://www.openmath.org/cd</CDBase> +<CDURL> http://www.openmath.org/cd/error.ocd </CDURL> +<CDReviewDate>2017-12-31</CDReviewDate> +<CDStatus> official </CDStatus> +<CDDate>2004-03-30</CDDate> +<CDVersion>3</CDVersion> +<CDRevision>1</CDRevision> +<CDComment> Author: OpenMath Consortium SourceURL: https://github.com/OpenMath/CDs -</CDComment> +</CDComment> -<CDDefinition> -<Name> unhandled_symbol </Name> -<Role>error</Role> -<Description> +<CDDefinition> +<Name> unhandled_symbol </Name> +<Role>error</Role> +<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. @@ -10812,47 +10812,47 @@

A.5 The error Content Dictionary 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. -</Description> +</Description> -<Example> +<Example> The application does not implement the Complex numbers: <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OME> - <OMS cd="error" name="unhandled_symbol"/> - <OMS cd="setname1" name="C"/> - </OME> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> unexpected_symbol </Name> -<Role>error</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OME> + <OMS cd="error" name="unhandled_symbol"/> + <OMS cd="setname1" name="C"/> + </OME> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> unexpected_symbol </Name> +<Role>error</Role> +<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. -</Description> -<Example> +</Description> +<Example> The application received a mistyped symbol <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OME> - <OMS cd="error" name="unexpected_symbol"/> - <OMS cd="arith1" name="plurse"/> - </OME> -</OMOBJ> -</Example> -</CDDefinition> - -<CDDefinition> -<Name> unsupported_CD </Name> -<Role>error</Role> -<Description> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OME> + <OMS cd="error" name="unexpected_symbol"/> + <OMS cd="arith1" name="plurse"/> + </OME> +</OMOBJ> +</Example> +</CDDefinition> + +<CDDefinition> +<Name> unsupported_CD </Name> +<Role>error</Role> +<Description> This symbol represents the error which is raised when an application reads a symbol where the mentioned content dictionary is not present. @@ -10861,18 +10861,18 @@

A.5 The error Content Dictionary received the OpenMath error object constructed from unsupported_CD and the symbol from the unsupported Content Dictionary as in the example below. -</Description> -<Example> +</Description> +<Example> The application does not know about the CD specfun1 <OMOBJ - xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> - <OME> - <OMS cd="error" name="unsupported_CD"/> - <OMS cd="specfun1" name="BesselJ"/> - </OME> -</OMOBJ> -</Example> -</CDDefinition> + xmlns="http://www.openmath.org/OpenMath" version="2.0" cdbase="http://www.openmath.org/cd"> + <OME> + <OMS cd="error" name="unsupported_CD"/> + <OMS cd="specfun1" name="BesselJ"/> + </OME> +</OMOBJ> +</Example> +</CDDefinition> </CD>

@@ -10896,253 +10896,252 @@

-
-<grammar
- xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.openmath.org/OpenMath" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-  <start>
-    <ref name="OMOBJ"/>
-  </start>
-  <!-- OpenMath object constructor -->
-  <define name="OMOBJ">
-    <element name="OMOBJ">
-      <ref name="compound.attributes"/>
-      <optional>
-        <attribute name="version">
-          <data type="string"/>
-        </attribute>
-      </optional>
-      <ref name="omel"/>
-    </element>
-  </define>
-  <!-- Elements which can appear inside an OpenMath object -->
-  <define name="omel">
-    <choice>
-      <ref name="OMS"/>
-      <ref name="OMV"/>
-      <ref name="OMI"/>
-      <ref name="OMB"/>
-      <ref name="OMSTR"/>
-      <ref name="OMF"/>
-      <ref name="OMA"/>
-      <ref name="OMBIND"/>
-      <ref name="OME"/>
-      <ref name="OMATTR"/>
-      <ref name="OMR"/>
-    </choice>
-  </define>
-  <!-- things which can be variables -->
-  <define name="omvar">
-    <choice>
-      <ref name="OMV"/>
-      <ref name="attvar"/>
-    </choice>
-  </define>
-  <define name="attvar">
-    <element name="OMATTR">
-      <ref name="common.attributes"/>
-      <group>
-        <ref name="OMATP"/>
-        <choice>
-          <ref name="OMV"/>
-          <ref name="attvar"/>
-        </choice>
-      </group>
-    </element>
-  </define>
-  <define name="cdbase">
-    <optional>
-      <attribute name="cdbase">
-        <data type="anyURI"/>
-      </attribute>
-    </optional>
-  </define>
-  <!-- attributes common to all elements -->
-  <define name="common.attributes">
-    <optional>
-      <attribute name="id">
-        <data type="ID"/>
-      </attribute>
-    </optional>
-  </define>
-  <!-- attributes common to all elements that construct compount OM objects. -->
-  <define name="compound.attributes">
-    <ref name="common.attributes"/>
-    <ref name="cdbase"/>
-  </define>
-  <!-- symbol -->
-  <define name="OMS">
-    <element name="OMS">
-      <ref name="common.attributes"/>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-      <attribute name="cd">
-        <data type="NCName"/>
-      </attribute>
-      <ref name="cdbase"/>
-    </element>
-  </define>
-  <!-- variable -->
-  <define name="OMV">
-    <element name="OMV">
-      <ref name="common.attributes"/>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </element>
-  </define>
-  <!-- integer -->
-  <define name="OMI">
-    <element name="OMI">
-      <ref name="common.attributes"/>
-      <data type="string">
-        <param name="pattern">\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*</param>
-      </data>
-    </element>
-  </define>
-  <!-- byte array -->
-  <define name="OMB">
-    <element name="OMB">
-      <ref name="common.attributes"/>
-      <data type="base64Binary"/>
-    </element>
-  </define>
-  <!-- string -->
-  <define name="OMSTR">
-    <element name="OMSTR">
-      <ref name="common.attributes"/>
-      <text/>
-    </element>
-  </define>
-  <!-- IEEE floating point number -->
-  <define name="OMF">
-    <element name="OMF">
-      <ref name="common.attributes"/>
-      <choice>
-        <attribute name="dec">
-          <data type="double"/>
-        </attribute>
-        <attribute name="hex">
-          <data type="string">
-            <param name="pattern">[0-9A-F]+</param>
-          </data>
-        </attribute>
-      </choice>
-    </element>
-  </define>
-  <!-- apply constructor -->
-  <define name="OMA">
-    <element name="OMA">
-      <ref name="compound.attributes"/>
-      <oneOrMore>
-        <ref name="omel"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <!-- binding constructor -->
-  <define name="OMBIND">
-    <element name="OMBIND">
-      <ref name="compound.attributes"/>
-      <ref name="omel"/>
-      <ref name="OMBVAR"/>
-      <ref name="omel"/>
-    </element>
-  </define>
-  <!-- variables used in binding constructor -->
-  <define name="OMBVAR">
-    <element name="OMBVAR">
-      <ref name="common.attributes"/>
-      <oneOrMore>
-        <ref name="omvar"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <!-- error constructor -->
-  <define name="OME">
-    <element name="OME">
-      <ref name="common.attributes"/>
-      <ref name="OMS"/>
-      <zeroOrMore>
-        <choice>
-          <ref name="omel"/>
-          <ref name="OMFOREIGN"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
-  <!-- attribution constructor and attribute pair constructor -->
-  <define name="OMATTR">
-    <element name="OMATTR">
-      <ref name="compound.attributes"/>
-      <ref name="OMATP"/>
-      <ref name="omel"/>
-    </element>
-  </define>
-  <define name="OMATP">
-    <element name="OMATP">
-      <ref name="compound.attributes"/>
-      <oneOrMore>
-        <ref name="OMS"/>
-        <choice>
-          <ref name="omel"/>
-          <ref name="OMFOREIGN"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-  <!-- foreign constructor -->
-  <define name="OMFOREIGN">
-    <element name="OMFOREIGN">
-      <ref name="compound.attributes"/>
-      <optional>
-        <attribute name="encoding">
-          <data type="string"/>
-        </attribute>
-      </optional>
-      <zeroOrMore>
-        <choice>
-          <ref name="omel"/>
-          <ref name="notom"/>
-        </choice>
-      </zeroOrMore>
-    </element>
-  </define>
+         
<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.openmath.org/OpenMath" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <ref name="OMOBJ"/>
+  </start>
+  <!-- OpenMath object constructor -->
+  <define name="OMOBJ">
+    <element name="OMOBJ">
+      <ref name="compound.attributes"/>
+      <optional>
+        <attribute name="version">
+          <data type="string"/>
+        </attribute>
+      </optional>
+      <ref name="omel"/>
+    </element>
+  </define>
+  <!-- Elements which can appear inside an OpenMath object -->
+  <define name="omel">
+    <choice>
+      <ref name="OMS"/>
+      <ref name="OMV"/>
+      <ref name="OMI"/>
+      <ref name="OMB"/>
+      <ref name="OMSTR"/>
+      <ref name="OMF"/>
+      <ref name="OMA"/>
+      <ref name="OMBIND"/>
+      <ref name="OME"/>
+      <ref name="OMATTR"/>
+      <ref name="OMR"/>
+    </choice>
+  </define>
+  <!-- things which can be variables -->
+  <define name="omvar">
+    <choice>
+      <ref name="OMV"/>
+      <ref name="attvar"/>
+    </choice>
+  </define>
+  <define name="attvar">
+    <element name="OMATTR">
+      <ref name="common.attributes"/>
+      <group>
+        <ref name="OMATP"/>
+        <choice>
+          <ref name="OMV"/>
+          <ref name="attvar"/>
+        </choice>
+      </group>
+    </element>
+  </define>
+  <define name="cdbase">
+    <optional>
+      <attribute name="cdbase">
+        <data type="anyURI"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- attributes common to all elements -->
+  <define name="common.attributes">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- attributes common to all elements that construct compount OM objects. -->
+  <define name="compound.attributes">
+    <ref name="common.attributes"/>
+    <ref name="cdbase"/>
+  </define>
+  <!-- symbol -->
+  <define name="OMS">
+    <element name="OMS">
+      <ref name="common.attributes"/>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+      <attribute name="cd">
+        <data type="NCName"/>
+      </attribute>
+      <ref name="cdbase"/>
+    </element>
+  </define>
+  <!-- variable -->
+  <define name="OMV">
+    <element name="OMV">
+      <ref name="common.attributes"/>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </element>
+  </define>
+  <!-- integer -->
+  <define name="OMI">
+    <element name="OMI">
+      <ref name="common.attributes"/>
+      <data type="string">
+        <param name="pattern">\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*</param>
+      </data>
+    </element>
+  </define>
+  <!-- byte array -->
+  <define name="OMB">
+    <element name="OMB">
+      <ref name="common.attributes"/>
+      <data type="base64Binary"/>
+    </element>
+  </define>
+  <!-- string -->
+  <define name="OMSTR">
+    <element name="OMSTR">
+      <ref name="common.attributes"/>
+      <text/>
+    </element>
+  </define>
+  <!-- IEEE floating point number -->
+  <define name="OMF">
+    <element name="OMF">
+      <ref name="common.attributes"/>
+      <choice>
+        <attribute name="dec">
+          <data type="double"/>
+        </attribute>
+        <attribute name="hex">
+          <data type="string">
+            <param name="pattern">[0-9A-F]+</param>
+          </data>
+        </attribute>
+      </choice>
+    </element>
+  </define>
+  <!-- apply constructor -->
+  <define name="OMA">
+    <element name="OMA">
+      <ref name="compound.attributes"/>
+      <oneOrMore>
+        <ref name="omel"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- binding constructor -->
+  <define name="OMBIND">
+    <element name="OMBIND">
+      <ref name="compound.attributes"/>
+      <ref name="omel"/>
+      <ref name="OMBVAR"/>
+      <ref name="omel"/>
+    </element>
+  </define>
+  <!-- variables used in binding constructor -->
+  <define name="OMBVAR">
+    <element name="OMBVAR">
+      <ref name="common.attributes"/>
+      <oneOrMore>
+        <ref name="omvar"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- error constructor -->
+  <define name="OME">
+    <element name="OME">
+      <ref name="common.attributes"/>
+      <ref name="OMS"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="omel"/>
+          <ref name="OMFOREIGN"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- attribution constructor and attribute pair constructor -->
+  <define name="OMATTR">
+    <element name="OMATTR">
+      <ref name="compound.attributes"/>
+      <ref name="OMATP"/>
+      <ref name="omel"/>
+    </element>
+  </define>
+  <define name="OMATP">
+    <element name="OMATP">
+      <ref name="compound.attributes"/>
+      <oneOrMore>
+        <ref name="OMS"/>
+        <choice>
+          <ref name="omel"/>
+          <ref name="OMFOREIGN"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- foreign constructor -->
+  <define name="OMFOREIGN">
+    <element name="OMFOREIGN">
+      <ref name="compound.attributes"/>
+      <optional>
+        <attribute name="encoding">
+          <data type="string"/>
+        </attribute>
+      </optional>
+      <zeroOrMore>
+        <choice>
+          <ref name="omel"/>
+          <ref name="notom"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
   <!--
     Any elements not in the om namespace
     (valid om is allowed as a descendant)
-  -->
-  <define name="notom">
-    <choice>
-      <element>
-        <anyName>
-          <except>
-            <nsName/>
-          </except>
-        </anyName>
-        <zeroOrMore>
-          <attribute>
-            <anyName/>
-          </attribute>
-        </zeroOrMore>
-        <zeroOrMore>
-          <choice>
-            <ref name="omel"/>
-            <ref name="notom"/>
-          </choice>
-        </zeroOrMore>
-      </element>
-      <text/>
-    </choice>
-  </define>
-  <!-- reference constructor -->
-  <define name="OMR">
-    <element name="OMR">
-      <ref name="common.attributes"/>
-      <attribute name="href">
-        <data type="anyURI"/>
-      </attribute>
-    </element>
-  </define>
+  -->
+  <define name="notom">
+    <choice>
+      <element>
+        <anyName>
+          <except>
+            <nsName/>
+          </except>
+        </anyName>
+        <zeroOrMore>
+          <attribute>
+            <anyName/>
+          </attribute>
+        </zeroOrMore>
+        <zeroOrMore>
+          <choice>
+            <ref name="omel"/>
+            <ref name="notom"/>
+          </choice>
+        </zeroOrMore>
+      </element>
+      <text/>
+    </choice>
+  </define>
+  <!-- reference constructor -->
+  <define name="OMR">
+    <element name="OMR">
+      <ref name="common.attributes"/>
+      <attribute name="href">
+        <data type="anyURI"/>
+      </attribute>
+    </element>
+  </define>
 </grammar>
@@ -11280,224 +11279,223 @@

-
-<schema
+         
<schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:om="http://www.openmath.org/OpenMath" elementFormDefault="qualified" targetNamespace="http://www.openmath.org/OpenMath">
-  <!-- OpenMath object constructor -->
-  <element name="OMOBJ">
-    <complexType>
-      <group ref="om:omel"/>
-      <attributeGroup ref="om:compound.attributes"/>
-      <attribute name="version" type="xs:string"/>
-    </complexType>
-  </element>
-  <!-- Elements which can appear inside an OpenMath object -->
-  <group name="omel">
-    <choice>
-      <element ref="om:OMS"/>
-      <element ref="om:OMV"/>
-      <element ref="om:OMI"/>
-      <element ref="om:OMB"/>
-      <element ref="om:OMSTR"/>
-      <element ref="om:OMF"/>
-      <element ref="om:OMA"/>
-      <element ref="om:OMBIND"/>
-      <element ref="om:OME"/>
-      <group ref="om:OMATTR"/>
-      <element ref="om:OMR"/>
-    </choice>
-  </group>
-  <!-- things which can be variables -->
-  <group name="omvar">
-    <choice>
-      <element ref="om:OMV"/>
-      <group ref="om:attvar"/>
-    </choice>
-  </group>
-  <group name="attvar">
-    <sequence>
-      <element name="OMATTR">
-        <complexType>
-          <sequence>
-            <element ref="om:OMATP"/>
-            <choice>
-              <element ref="om:OMV"/>
-              <group ref="om:attvar"/>
-            </choice>
-          </sequence>
-          <attributeGroup ref="om:common.attributes"/>
-        </complexType>
-      </element>
-    </sequence>
-  </group>
-  <attributeGroup name="cdbase">
-    <attribute name="cdbase" type="xs:anyURI"/>
-  </attributeGroup>
-  <!-- attributes common to all elements -->
-  <attributeGroup name="common.attributes">
-    <attribute name="id" type="xs:ID"/>
-  </attributeGroup>
-  <!-- attributes common to all elements that construct compount OM objects. -->
-  <attributeGroup name="compound.attributes">
-    <attributeGroup ref="om:common.attributes"/>
-    <attributeGroup ref="om:cdbase"/>
-  </attributeGroup>
-  <!-- symbol -->
-  <element name="OMS">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="name" use="required" type="xs:NCName"/>
-      <attribute name="cd" use="required" type="xs:NCName"/>
-      <attributeGroup ref="om:cdbase"/>
-    </complexType>
-  </element>
-  <!-- variable -->
-  <element name="OMV">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="name" use="required" type="xs:NCName"/>
-    </complexType>
-  </element>
-  <!-- integer -->
-  <element name="OMI">
-    <complexType>
-      <simpleContent>
-        <restriction base="xs:anyType">
-          <simpleType>
-            <restriction base="xs:string">
-              <pattern value="\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*"/>
-            </restriction>
-          </simpleType>
-          <attributeGroup ref="om:common.attributes"/>
-        </restriction>
-      </simpleContent>
-    </complexType>
-  </element>
-  <!-- byte array -->
-  <element name="OMB">
-    <complexType>
-      <simpleContent>
-        <extension base="xs:base64Binary">
-          <attributeGroup ref="om:common.attributes"/>
-        </extension>
-      </simpleContent>
-    </complexType>
-  </element>
-  <!-- string -->
-  <element name="OMSTR">
-    <complexType mixed="true">
-      <attributeGroup ref="om:common.attributes"/>
-    </complexType>
-  </element>
-  <!-- IEEE floating point number -->
-  <element name="OMF">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="dec" type="xs:double"/>
-      <attribute name="hex">
-        <simpleType>
-          <restriction base="xs:string">
-            <pattern value="[0-9A-F]+"/>
-          </restriction>
-        </simpleType>
-      </attribute>
-    </complexType>
-  </element>
-  <!-- apply constructor -->
-  <element name="OMA">
-    <complexType>
-      <group maxOccurs="unbounded" ref="om:omel"/>
-      <attributeGroup ref="om:compound.attributes"/>
-    </complexType>
-  </element>
-  <!-- binding constructor -->
-  <element name="OMBIND">
-    <complexType>
-      <sequence>
-        <group ref="om:omel"/>
-        <element ref="om:OMBVAR"/>
-        <group ref="om:omel"/>
-      </sequence>
-      <attributeGroup ref="om:compound.attributes"/>
-    </complexType>
-  </element>
-  <!-- variables used in binding constructor -->
-  <element name="OMBVAR">
-    <complexType>
-      <group maxOccurs="unbounded" ref="om:omvar"/>
-      <attributeGroup ref="om:common.attributes"/>
-    </complexType>
-  </element>
-  <!-- error constructor -->
-  <element name="OME">
-    <complexType>
-      <sequence>
-        <element ref="om:OMS"/>
-        <choice minOccurs="0" maxOccurs="unbounded">
-          <group ref="om:omel"/>
-          <element ref="om:OMFOREIGN"/>
-        </choice>
-      </sequence>
-      <attributeGroup ref="om:common.attributes"/>
-    </complexType>
-  </element>
-  <!-- attribution constructor and attribute pair constructor -->
-  <group name="OMATTR">
-    <sequence>
-      <element name="OMATTR">
-        <complexType>
-          <sequence>
-            <element ref="om:OMATP"/>
-            <group ref="om:omel"/>
-          </sequence>
-          <attributeGroup ref="om:compound.attributes"/>
-        </complexType>
-      </element>
-    </sequence>
-  </group>
-  <element name="OMATP">
-    <complexType>
-      <sequence maxOccurs="unbounded">
-        <element ref="om:OMS"/>
-        <choice>
-          <group ref="om:omel"/>
-          <element ref="om:OMFOREIGN"/>
-        </choice>
-      </sequence>
-      <attributeGroup ref="om:compound.attributes"/>
-    </complexType>
-  </element>
-  <!-- foreign constructor -->
-  <element name="OMFOREIGN">
-    <complexType mixed="true">
-      <choice minOccurs="0" maxOccurs="unbounded">
-        <group ref="om:omel"/>
-        <group ref="om:notom"/>
-      </choice>
-      <attributeGroup ref="om:compound.attributes"/>
-      <attribute name="encoding" type="xs:string"/>
-    </complexType>
-  </element>
+ xmlns:om="http://www.openmath.org/OpenMath" elementFormDefault="qualified" targetNamespace="http://www.openmath.org/OpenMath">
+  <!-- OpenMath object constructor -->
+  <element name="OMOBJ">
+    <complexType>
+      <group ref="om:omel"/>
+      <attributeGroup ref="om:compound.attributes"/>
+      <attribute name="version" type="xs:string"/>
+    </complexType>
+  </element>
+  <!-- Elements which can appear inside an OpenMath object -->
+  <group name="omel">
+    <choice>
+      <element ref="om:OMS"/>
+      <element ref="om:OMV"/>
+      <element ref="om:OMI"/>
+      <element ref="om:OMB"/>
+      <element ref="om:OMSTR"/>
+      <element ref="om:OMF"/>
+      <element ref="om:OMA"/>
+      <element ref="om:OMBIND"/>
+      <element ref="om:OME"/>
+      <group ref="om:OMATTR"/>
+      <element ref="om:OMR"/>
+    </choice>
+  </group>
+  <!-- things which can be variables -->
+  <group name="omvar">
+    <choice>
+      <element ref="om:OMV"/>
+      <group ref="om:attvar"/>
+    </choice>
+  </group>
+  <group name="attvar">
+    <sequence>
+      <element name="OMATTR">
+        <complexType>
+          <sequence>
+            <element ref="om:OMATP"/>
+            <choice>
+              <element ref="om:OMV"/>
+              <group ref="om:attvar"/>
+            </choice>
+          </sequence>
+          <attributeGroup ref="om:common.attributes"/>
+        </complexType>
+      </element>
+    </sequence>
+  </group>
+  <attributeGroup name="cdbase">
+    <attribute name="cdbase" type="xs:anyURI"/>
+  </attributeGroup>
+  <!-- attributes common to all elements -->
+  <attributeGroup name="common.attributes">
+    <attribute name="id" type="xs:ID"/>
+  </attributeGroup>
+  <!-- attributes common to all elements that construct compount OM objects. -->
+  <attributeGroup name="compound.attributes">
+    <attributeGroup ref="om:common.attributes"/>
+    <attributeGroup ref="om:cdbase"/>
+  </attributeGroup>
+  <!-- symbol -->
+  <element name="OMS">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="name" use="required" type="xs:NCName"/>
+      <attribute name="cd" use="required" type="xs:NCName"/>
+      <attributeGroup ref="om:cdbase"/>
+    </complexType>
+  </element>
+  <!-- variable -->
+  <element name="OMV">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="name" use="required" type="xs:NCName"/>
+    </complexType>
+  </element>
+  <!-- integer -->
+  <element name="OMI">
+    <complexType>
+      <simpleContent>
+        <restriction base="xs:anyType">
+          <simpleType>
+            <restriction base="xs:string">
+              <pattern value="\s*(-\s?)?[0-9]+(\s[0-9]+)*\s*"/>
+            </restriction>
+          </simpleType>
+          <attributeGroup ref="om:common.attributes"/>
+        </restriction>
+      </simpleContent>
+    </complexType>
+  </element>
+  <!-- byte array -->
+  <element name="OMB">
+    <complexType>
+      <simpleContent>
+        <extension base="xs:base64Binary">
+          <attributeGroup ref="om:common.attributes"/>
+        </extension>
+      </simpleContent>
+    </complexType>
+  </element>
+  <!-- string -->
+  <element name="OMSTR">
+    <complexType mixed="true">
+      <attributeGroup ref="om:common.attributes"/>
+    </complexType>
+  </element>
+  <!-- IEEE floating point number -->
+  <element name="OMF">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="dec" type="xs:double"/>
+      <attribute name="hex">
+        <simpleType>
+          <restriction base="xs:string">
+            <pattern value="[0-9A-F]+"/>
+          </restriction>
+        </simpleType>
+      </attribute>
+    </complexType>
+  </element>
+  <!-- apply constructor -->
+  <element name="OMA">
+    <complexType>
+      <group maxOccurs="unbounded" ref="om:omel"/>
+      <attributeGroup ref="om:compound.attributes"/>
+    </complexType>
+  </element>
+  <!-- binding constructor -->
+  <element name="OMBIND">
+    <complexType>
+      <sequence>
+        <group ref="om:omel"/>
+        <element ref="om:OMBVAR"/>
+        <group ref="om:omel"/>
+      </sequence>
+      <attributeGroup ref="om:compound.attributes"/>
+    </complexType>
+  </element>
+  <!-- variables used in binding constructor -->
+  <element name="OMBVAR">
+    <complexType>
+      <group maxOccurs="unbounded" ref="om:omvar"/>
+      <attributeGroup ref="om:common.attributes"/>
+    </complexType>
+  </element>
+  <!-- error constructor -->
+  <element name="OME">
+    <complexType>
+      <sequence>
+        <element ref="om:OMS"/>
+        <choice minOccurs="0" maxOccurs="unbounded">
+          <group ref="om:omel"/>
+          <element ref="om:OMFOREIGN"/>
+        </choice>
+      </sequence>
+      <attributeGroup ref="om:common.attributes"/>
+    </complexType>
+  </element>
+  <!-- attribution constructor and attribute pair constructor -->
+  <group name="OMATTR">
+    <sequence>
+      <element name="OMATTR">
+        <complexType>
+          <sequence>
+            <element ref="om:OMATP"/>
+            <group ref="om:omel"/>
+          </sequence>
+          <attributeGroup ref="om:compound.attributes"/>
+        </complexType>
+      </element>
+    </sequence>
+  </group>
+  <element name="OMATP">
+    <complexType>
+      <sequence maxOccurs="unbounded">
+        <element ref="om:OMS"/>
+        <choice>
+          <group ref="om:omel"/>
+          <element ref="om:OMFOREIGN"/>
+        </choice>
+      </sequence>
+      <attributeGroup ref="om:compound.attributes"/>
+    </complexType>
+  </element>
+  <!-- foreign constructor -->
+  <element name="OMFOREIGN">
+    <complexType mixed="true">
+      <choice minOccurs="0" maxOccurs="unbounded">
+        <group ref="om:omel"/>
+        <group ref="om:notom"/>
+      </choice>
+      <attributeGroup ref="om:compound.attributes"/>
+      <attribute name="encoding" type="xs:string"/>
+    </complexType>
+  </element>
   <!--
     Any elements not in the om namespace
     (valid om is allowed as a descendant)
-  -->
-  <group name="notom">
-    <sequence>
-      <choice minOccurs="0">
-        <any namespace="##other" processContents="skip"/>
-        <any namespace="##local" processContents="skip"/>
-      </choice>
-    </sequence>
-  </group>
-  <!-- reference constructor -->
-  <element name="OMR">
-    <complexType>
-      <attributeGroup ref="om:common.attributes"/>
-      <attribute name="href" use="required" type="xs:anyURI"/>
-    </complexType>
-  </element>
+  -->
+  <group name="notom">
+    <sequence>
+      <choice minOccurs="0">
+        <any namespace="##other" processContents="skip"/>
+        <any namespace="##local" processContents="skip"/>
+      </choice>
+    </sequence>
+  </group>
+  <!-- reference constructor -->
+  <element name="OMR">
+    <complexType>
+      <attributeGroup ref="om:common.attributes"/>
+      <attribute name="href" use="required" type="xs:anyURI"/>
+    </complexType>
+  </element>
 </schema>
diff --git a/standard/om20-editors-draft/omstd20.pdf b/standard/om20-editors-draft/omstd20.pdf index f00453f7..ef062eab 100644 Binary files a/standard/om20-editors-draft/omstd20.pdf and b/standard/om20-editors-draft/omstd20.pdf differ