asciimath 1.0.9 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +5 -5
  2. data/AST.adoc +457 -0
  3. data/CHANGELOG.adoc +12 -0
  4. data/Gemfile.lock +39 -0
  5. data/README.adoc +27 -3
  6. data/asciimath.gemspec +9 -5
  7. data/lib/asciimath.rb +5 -4
  8. data/lib/asciimath/ast.rb +456 -0
  9. data/lib/asciimath/cli.rb +4 -1
  10. data/lib/asciimath/color_table.rb +21 -0
  11. data/lib/asciimath/html.rb +126 -111
  12. data/lib/asciimath/latex.rb +386 -0
  13. data/lib/asciimath/markup.rb +478 -0
  14. data/lib/asciimath/mathml.rb +189 -87
  15. data/lib/asciimath/parser.rb +498 -343
  16. data/lib/asciimath/symbol_table.rb +25 -0
  17. data/lib/asciimath/version.rb +1 -1
  18. data/spec/ast.rb +144 -0
  19. data/spec/parser_spec.rb +592 -165
  20. data/spec/schema/mathml2/common/common-attribs.xsd +41 -0
  21. data/spec/schema/mathml2/common/math.xsd +126 -0
  22. data/spec/schema/mathml2/common/xlink-href.xsd +20 -0
  23. data/spec/schema/mathml2/content/arith.xsd +90 -0
  24. data/spec/schema/mathml2/content/calculus.xsd +146 -0
  25. data/spec/schema/mathml2/content/common-attrib.xsd +30 -0
  26. data/spec/schema/mathml2/content/constants.xsd +83 -0
  27. data/spec/schema/mathml2/content/constructs.xsd +260 -0
  28. data/spec/schema/mathml2/content/elementary-functions.xsd +117 -0
  29. data/spec/schema/mathml2/content/functions.xsd +73 -0
  30. data/spec/schema/mathml2/content/linear-algebra.xsd +173 -0
  31. data/spec/schema/mathml2/content/logic.xsd +53 -0
  32. data/spec/schema/mathml2/content/relations.xsd +55 -0
  33. data/spec/schema/mathml2/content/semantics.xsd +85 -0
  34. data/spec/schema/mathml2/content/sets.xsd +236 -0
  35. data/spec/schema/mathml2/content/statistics.xsd +136 -0
  36. data/spec/schema/mathml2/content/tokens.xsd +120 -0
  37. data/spec/schema/mathml2/content/vector-calculus.xsd +88 -0
  38. data/spec/schema/mathml2/mathml2.xsd +59 -0
  39. data/spec/schema/mathml2/presentation/action.xsd +44 -0
  40. data/spec/schema/mathml2/presentation/characters.xsd +37 -0
  41. data/spec/schema/mathml2/presentation/common-attribs.xsd +113 -0
  42. data/spec/schema/mathml2/presentation/common-types.xsd +103 -0
  43. data/spec/schema/mathml2/presentation/error.xsd +40 -0
  44. data/spec/schema/mathml2/presentation/layout.xsd +195 -0
  45. data/spec/schema/mathml2/presentation/scripts.xsd +186 -0
  46. data/spec/schema/mathml2/presentation/space.xsd +52 -0
  47. data/spec/schema/mathml2/presentation/style.xsd +69 -0
  48. data/spec/schema/mathml2/presentation/table.xsd +216 -0
  49. data/spec/schema/mathml2/presentation/tokens.xsd +124 -0
  50. data/spec/schema/mathml3/mathml3-common.xsd +99 -0
  51. data/spec/schema/mathml3/mathml3-content.xsd +684 -0
  52. data/spec/schema/mathml3/mathml3-presentation.xsd +2151 -0
  53. data/spec/schema/mathml3/mathml3-strict-content.xsd +186 -0
  54. data/spec/schema/mathml3/mathml3.xsd +9 -0
  55. metadata +102 -10
  56. data/.gitignore +0 -16
  57. data/.travis.yml +0 -18
@@ -0,0 +1,124 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns="http://www.w3.org/1998/Math/MathML"
6
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
7
+ elementFormDefault="qualified"
8
+ >
9
+
10
+ <xs:annotation>
11
+ <xs:documentation>
12
+ This is the XML schema module for the token elements of the
13
+ presentation part of MathML.
14
+ Author: St&#233;phane Dalmas, INRIA.
15
+ </xs:documentation>
16
+ </xs:annotation>
17
+
18
+ <!-- The content of presentation token elements is either normal
19
+ characters, "mglyph" ones or alignment marks -->
20
+
21
+ <xs:group name="Glyph-alignmark.class">
22
+ <xs:choice>
23
+ <xs:element ref="malignmark"/>
24
+ <xs:element ref="mglyph"/>
25
+ </xs:choice>
26
+ </xs:group>
27
+
28
+ <!-- "mi" -->
29
+
30
+ <!-- "mi" is supposed to have a default value of its "mathvariant" attribute
31
+ set to "italic" -->
32
+ <xs:attributeGroup name="mi.attlist">
33
+ <xs:attributeGroup ref="Token-style.attrib"/>
34
+ <xs:attributeGroup ref="Common.attrib"/>
35
+ </xs:attributeGroup>
36
+
37
+ <xs:complexType name="mi.type" mixed="true">
38
+ <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/>
39
+ <xs:attributeGroup ref="mi.attlist"/>
40
+ </xs:complexType>
41
+
42
+ <xs:element name="mi" type="mi.type"/>
43
+
44
+ <!-- "mo" -->
45
+
46
+ <xs:attributeGroup name="mo.attlist">
47
+ <xs:attributeGroup ref="Operator.attrib"/>
48
+ <xs:attributeGroup ref="Token-style.attrib"/>
49
+ <xs:attributeGroup ref="Common.attrib"/>
50
+ </xs:attributeGroup>
51
+
52
+ <xs:complexType name="mo.type" mixed="true">
53
+ <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/>
54
+ <xs:attributeGroup ref="mo.attlist"/>
55
+ </xs:complexType>
56
+
57
+ <xs:element name="mo" type="mo.type"/>
58
+
59
+ <!-- "mn" -->
60
+
61
+ <xs:attributeGroup name="mn.attlist">
62
+ <xs:attributeGroup ref="Token-style.attrib"/>
63
+ <xs:attributeGroup ref="Common.attrib"/>
64
+ </xs:attributeGroup>
65
+
66
+ <xs:complexType name="mn.type" mixed="true">
67
+ <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/>
68
+ <xs:attributeGroup ref="mi.attlist"/>
69
+ </xs:complexType>
70
+
71
+ <xs:element name="mn" type="mn.type"/>
72
+
73
+ <!-- "mtext" -->
74
+
75
+ <xs:attributeGroup name="mtext.attlist">
76
+ <xs:attributeGroup ref="Token-style.attrib"/>
77
+ <xs:attributeGroup ref="Common.attrib"/>
78
+ </xs:attributeGroup>
79
+
80
+ <xs:complexType name="mtext.type" mixed="true">
81
+ <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/>
82
+ <xs:attributeGroup ref="mtext.attlist"/>
83
+ </xs:complexType>
84
+
85
+ <xs:element name="mtext" type="mtext.type"/>
86
+
87
+ <!-- "ms" -->
88
+
89
+ <xs:attributeGroup name="ms.attlist">
90
+ <!-- the values of "lquote" or "rquote" are not restricted to be
91
+ one character strings... -->
92
+ <xs:attribute name="lquote" type="xs:string" default="&quot;"/>
93
+ <xs:attribute name="rquote" type="xs:string" default="&quot;"/>
94
+ <xs:attributeGroup ref="Token-style.attrib"/>
95
+ <xs:attributeGroup ref="Common.attrib"/>
96
+ </xs:attributeGroup>
97
+
98
+ <xs:complexType name="ms.type" mixed="true">
99
+ <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/>
100
+ <xs:attributeGroup ref="ms.attlist"/>
101
+ </xs:complexType>
102
+
103
+ <xs:element name="ms" type="ms.type"/>
104
+
105
+ <!-- And the group of any token -->
106
+
107
+ <xs:group name="Presentation-token.class">
108
+ <xs:choice>
109
+ <xs:element ref="mi"/>
110
+ <xs:element ref="mo"/>
111
+ <xs:element ref="mn"/>
112
+ <xs:element ref="mtext"/>
113
+ <xs:element ref="ms"/>
114
+ </xs:choice>
115
+ </xs:group>
116
+
117
+ </xs:schema>
118
+
119
+ <!--
120
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
121
+ of Technology, Institut National de Recherche en Informatique et en
122
+ Automatique, Keio University). All Rights Reserved. See
123
+ http://www.w3.org/Consortium/Legal/.
124
+ -->
@@ -0,0 +1,99 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
4
+ elementFormDefault="qualified"
5
+ targetNamespace="http://www.w3.org/1998/Math/MathML">
6
+ <xs:element name="math">
7
+ <xs:complexType>
8
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:MathExpression"/>
9
+ <xs:attributeGroup ref="m:math.attributes"/>
10
+ </xs:complexType>
11
+ </xs:element>
12
+ <xs:attributeGroup name="CommonDeprecatedAtt">
13
+ <xs:attribute name="other"/>
14
+ </xs:attributeGroup>
15
+ <xs:attributeGroup name="CommonAtt">
16
+ <xs:attribute name="id" type="xs:ID"/>
17
+ <xs:attribute name="xref"/>
18
+ <xs:attribute name="class" type="xs:NMTOKENS"/>
19
+ <xs:attribute name="style" type="xs:string"/>
20
+ <xs:attribute name="href" type="xs:anyURI"/>
21
+ <xs:attributeGroup ref="m:CommonDeprecatedAtt"/>
22
+ <xs:anyAttribute namespace="##other" processContents="skip"/>
23
+ </xs:attributeGroup>
24
+ <xs:attributeGroup name="math.deprecatedattributes">
25
+ <xs:attribute name="mode" type="xs:string"/>
26
+ <xs:attribute name="macros" type="xs:string"/>
27
+ </xs:attributeGroup>
28
+ <xs:attributeGroup name="name">
29
+ <xs:attribute name="name" use="required" type="xs:NCName"/>
30
+ </xs:attributeGroup>
31
+ <xs:attributeGroup name="cd">
32
+ <xs:attribute name="cd" use="required" type="xs:NCName"/>
33
+ </xs:attributeGroup>
34
+ <xs:attributeGroup name="src">
35
+ <xs:attribute name="src" type="xs:anyURI"/>
36
+ </xs:attributeGroup>
37
+ <xs:element name="annotation">
38
+ <xs:complexType mixed="true">
39
+ <xs:attributeGroup ref="m:annotation.attributes"/>
40
+ </xs:complexType>
41
+ </xs:element>
42
+ <xs:complexType name="annotation-xml.model"><!--content model altered for libxml (annotation-xml)--><xs:sequence>
43
+ <xs:any processContents="lax"/>
44
+ </xs:sequence>
45
+ </xs:complexType>
46
+ <xs:group name="anyElement">
47
+ <xs:choice>
48
+ <xs:any namespace="##other" processContents="skip"/>
49
+ <xs:any namespace="##local" processContents="skip"/>
50
+ </xs:choice>
51
+ </xs:group>
52
+ <xs:element name="annotation-xml">
53
+ <xs:complexType>
54
+ <xs:complexContent>
55
+ <xs:extension base="m:annotation-xml.model">
56
+ <xs:attributeGroup ref="m:annotation.attributes"/>
57
+ </xs:extension>
58
+ </xs:complexContent>
59
+ </xs:complexType>
60
+ </xs:element>
61
+ <xs:attributeGroup name="annotation.attributes">
62
+ <xs:attributeGroup ref="m:CommonAtt"/>
63
+ <xs:attribute name="cd" type="xs:NCName"/>
64
+ <xs:attribute name="name" type="xs:NCName"/>
65
+ <xs:attributeGroup ref="m:DefEncAtt"/>
66
+ <xs:attributeGroup ref="m:src"/>
67
+ </xs:attributeGroup>
68
+ <xs:attributeGroup name="DefEncAtt">
69
+ <xs:attribute name="encoding" type="xs:string"/>
70
+ <xs:attribute name="definitionURL" type="xs:anyURI"/>
71
+ </xs:attributeGroup>
72
+ <xs:group name="semantics">
73
+ <xs:sequence>
74
+ <xs:element name="semantics">
75
+ <xs:complexType>
76
+ <xs:sequence>
77
+ <xs:group ref="m:MathExpression"/>
78
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
79
+ <xs:element ref="m:annotation"/>
80
+ <xs:element ref="m:annotation-xml"/>
81
+ </xs:choice>
82
+ </xs:sequence>
83
+ <xs:attributeGroup ref="m:semantics.attributes"/>
84
+ </xs:complexType>
85
+ </xs:element>
86
+ </xs:sequence>
87
+ </xs:group>
88
+ <xs:attributeGroup name="semantics.attributes">
89
+ <xs:attributeGroup ref="m:CommonAtt"/>
90
+ <xs:attributeGroup ref="m:DefEncAtt"/>
91
+ <xs:attribute name="cd" type="xs:NCName"/>
92
+ <xs:attribute name="name" type="xs:NCName"/>
93
+ </xs:attributeGroup>
94
+ <xs:simpleType name="length">
95
+ <xs:restriction base="xs:string">
96
+ <xs:pattern value="\s*((-?[0-9]*([0-9]\.?|\.[0-9])[0-9]*(e[mx]|in|cm|mm|p[xtc]|%)?)|(negative)?((very){0,2}thi(n|ck)|medium)mathspace)\s*"/>
97
+ </xs:restriction>
98
+ </xs:simpleType>
99
+ </xs:schema>
@@ -0,0 +1,684 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
4
+ elementFormDefault="qualified"
5
+ targetNamespace="http://www.w3.org/1998/Math/MathML">
6
+ <xs:include schemaLocation="mathml3-strict-content.xsd"/>
7
+ <xs:complexType name="cn.content" mixed="true">
8
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
9
+ <xs:element ref="m:mglyph"/>
10
+ <xs:element ref="m:sep"/>
11
+ <xs:element ref="m:PresentationExpression"/>
12
+ </xs:choice>
13
+ </xs:complexType>
14
+ <xs:attributeGroup name="cn.attributes">
15
+ <xs:attributeGroup ref="m:CommonAtt"/>
16
+ <xs:attributeGroup ref="m:DefEncAtt"/>
17
+ <xs:attribute name="type"/>
18
+ <xs:attribute name="base"/>
19
+ </xs:attributeGroup>
20
+ <xs:attributeGroup name="ci.attributes">
21
+ <xs:attributeGroup ref="m:CommonAtt"/>
22
+ <xs:attributeGroup ref="m:DefEncAtt"/>
23
+ <xs:attribute name="type"/>
24
+ </xs:attributeGroup>
25
+ <xs:attributeGroup name="ci.type">
26
+ <xs:attribute name="type" use="required"/>
27
+ </xs:attributeGroup>
28
+ <xs:complexType name="ci.content" mixed="true">
29
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
30
+ <xs:element ref="m:mglyph"/>
31
+ <xs:element ref="m:PresentationExpression"/>
32
+ </xs:choice>
33
+ </xs:complexType>
34
+ <xs:attributeGroup name="csymbol.attributes">
35
+ <xs:attributeGroup ref="m:CommonAtt"/>
36
+ <xs:attributeGroup ref="m:DefEncAtt"/>
37
+ <xs:attribute name="type"/>
38
+ <xs:attribute name="cd" type="xs:NCName"/>
39
+ </xs:attributeGroup>
40
+ <xs:complexType name="csymbol.content" mixed="true">
41
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
42
+ <xs:element ref="m:mglyph"/>
43
+ <xs:element ref="m:PresentationExpression"/>
44
+ </xs:choice>
45
+ </xs:complexType>
46
+ <xs:element name="bvar">
47
+ <xs:complexType>
48
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
49
+ <xs:choice>
50
+ <xs:element ref="m:ci"/>
51
+ <xs:group ref="m:semantics-ci"/>
52
+ </xs:choice>
53
+ <xs:element ref="m:degree"/>
54
+ </xs:choice>
55
+ <xs:attributeGroup ref="m:CommonAtt"/>
56
+ </xs:complexType>
57
+ </xs:element>
58
+ <xs:attributeGroup name="cbytes.attributes">
59
+ <xs:attributeGroup ref="m:CommonAtt"/>
60
+ <xs:attributeGroup ref="m:DefEncAtt"/>
61
+ </xs:attributeGroup>
62
+ <xs:attributeGroup name="cs.attributes">
63
+ <xs:attributeGroup ref="m:CommonAtt"/>
64
+ <xs:attributeGroup ref="m:DefEncAtt"/>
65
+ </xs:attributeGroup>
66
+ <!--Ambiguous content model altered (apply.content)-->
67
+ <xs:complexType name="apply.content">
68
+ <xs:sequence>
69
+ <xs:group ref="m:ContExp"/>
70
+ <xs:group ref="m:BvarQ"/>
71
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:Qualifier"/>
72
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:ContExp"/>
73
+ </xs:sequence>
74
+ </xs:complexType>
75
+ <xs:complexType name="bind.content">
76
+ <xs:complexContent>
77
+ <xs:extension base="m:apply.content"/>
78
+ </xs:complexContent>
79
+ </xs:complexType>
80
+ <xs:attributeGroup name="base">
81
+ <xs:attribute name="base" use="required"/>
82
+ </xs:attributeGroup>
83
+ <xs:element name="sep">
84
+ <xs:complexType/>
85
+ </xs:element>
86
+ <xs:element name="PresentationExpression" abstract="true"/>
87
+ <xs:group name="DomainQ">
88
+ <xs:sequence>
89
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
90
+ <xs:element ref="m:domainofapplication"/>
91
+ <xs:element ref="m:condition"/>
92
+ <!--Ambiguous content model altered (interval)--><xs:sequence>
93
+ <xs:element ref="m:lowlimit"/>
94
+ <xs:element minOccurs="0" ref="m:uplimit"/>
95
+ </xs:sequence>
96
+ </xs:choice>
97
+ </xs:sequence>
98
+ </xs:group>
99
+ <xs:element name="domainofapplication">
100
+ <xs:complexType>
101
+ <xs:group ref="m:ContExp"/>
102
+ </xs:complexType>
103
+ </xs:element>
104
+ <xs:element name="condition">
105
+ <xs:complexType>
106
+ <xs:group ref="m:ContExp"/>
107
+ </xs:complexType>
108
+ </xs:element>
109
+ <xs:element name="uplimit">
110
+ <xs:complexType>
111
+ <xs:group ref="m:ContExp"/>
112
+ </xs:complexType>
113
+ </xs:element>
114
+ <xs:element name="lowlimit">
115
+ <xs:complexType>
116
+ <xs:group ref="m:ContExp"/>
117
+ </xs:complexType>
118
+ </xs:element>
119
+ <xs:group name="Qualifier">
120
+ <xs:choice>
121
+ <xs:group ref="m:DomainQ"/>
122
+ <xs:element ref="m:degree"/>
123
+ <xs:element ref="m:momentabout"/>
124
+ <xs:element ref="m:logbase"/>
125
+ </xs:choice>
126
+ </xs:group>
127
+ <xs:element name="degree">
128
+ <xs:complexType>
129
+ <xs:group ref="m:ContExp"/>
130
+ </xs:complexType>
131
+ </xs:element>
132
+ <xs:element name="momentabout">
133
+ <xs:complexType>
134
+ <xs:group ref="m:ContExp"/>
135
+ </xs:complexType>
136
+ </xs:element>
137
+ <xs:element name="logbase">
138
+ <xs:complexType>
139
+ <xs:group ref="m:ContExp"/>
140
+ </xs:complexType>
141
+ </xs:element>
142
+ <xs:attributeGroup name="type">
143
+ <xs:attribute name="type" use="required"/>
144
+ </xs:attributeGroup>
145
+ <xs:attributeGroup name="order">
146
+ <xs:attribute name="order" use="required">
147
+ <xs:simpleType>
148
+ <xs:restriction base="xs:token">
149
+ <xs:enumeration value="numeric"/>
150
+ <xs:enumeration value="lexicographic"/>
151
+ </xs:restriction>
152
+ </xs:simpleType>
153
+ </xs:attribute>
154
+ </xs:attributeGroup>
155
+ <xs:attributeGroup name="closure">
156
+ <xs:attribute name="closure" use="required"/>
157
+ </xs:attributeGroup>
158
+ <xs:element name="piecewise">
159
+ <xs:complexType>
160
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
161
+ <xs:element ref="m:piece"/>
162
+ <xs:element ref="m:otherwise"/>
163
+ </xs:choice>
164
+ <xs:attributeGroup ref="m:CommonAtt"/>
165
+ <xs:attributeGroup ref="m:DefEncAtt"/>
166
+ </xs:complexType>
167
+ </xs:element>
168
+ <xs:element name="piece">
169
+ <xs:complexType>
170
+ <xs:sequence>
171
+ <xs:group ref="m:ContExp"/>
172
+ <xs:group ref="m:ContExp"/>
173
+ </xs:sequence>
174
+ <xs:attributeGroup ref="m:CommonAtt"/>
175
+ <xs:attributeGroup ref="m:DefEncAtt"/>
176
+ </xs:complexType>
177
+ </xs:element>
178
+ <xs:element name="otherwise">
179
+ <xs:complexType>
180
+ <xs:group ref="m:ContExp"/>
181
+ <xs:attributeGroup ref="m:CommonAtt"/>
182
+ <xs:attributeGroup ref="m:DefEncAtt"/>
183
+ </xs:complexType>
184
+ </xs:element>
185
+ <xs:element name="DeprecatedContExp" abstract="true"/>
186
+ <xs:element name="reln" substitutionGroup="m:DeprecatedContExp">
187
+ <xs:complexType>
188
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:ContExp"/>
189
+ </xs:complexType>
190
+ </xs:element>
191
+ <xs:element name="fn" substitutionGroup="m:DeprecatedContExp">
192
+ <xs:complexType>
193
+ <xs:group ref="m:ContExp"/>
194
+ </xs:complexType>
195
+ </xs:element>
196
+ <xs:element name="declare" substitutionGroup="m:DeprecatedContExp">
197
+ <xs:complexType>
198
+ <xs:group maxOccurs="unbounded" ref="m:ContExp"/>
199
+ <xs:attribute name="type" type="xs:string"/>
200
+ <xs:attribute name="scope" type="xs:string"/>
201
+ <xs:attribute name="nargs" type="xs:nonNegativeInteger"/>
202
+ <xs:attribute name="occurrence">
203
+ <xs:simpleType>
204
+ <xs:restriction base="xs:token">
205
+ <xs:enumeration value="prefix"/>
206
+ <xs:enumeration value="infix"/>
207
+ <xs:enumeration value="function-model"/>
208
+ </xs:restriction>
209
+ </xs:simpleType>
210
+ </xs:attribute>
211
+ <xs:attributeGroup ref="m:DefEncAtt"/>
212
+ </xs:complexType>
213
+ </xs:element>
214
+ <xs:element name="interval.class" abstract="true">
215
+ <xs:complexType>
216
+ <xs:sequence>
217
+ <xs:group ref="m:ContExp"/>
218
+ <xs:group ref="m:ContExp"/>
219
+ </xs:sequence>
220
+ <xs:attributeGroup ref="m:CommonAtt"/>
221
+ <xs:attributeGroup ref="m:DefEncAtt"/>
222
+ <xs:attribute name="closure"/>
223
+ </xs:complexType>
224
+ </xs:element>
225
+ <xs:element name="interval" substitutionGroup="m:interval.class"/>
226
+ <xs:element name="unary-functional.class" abstract="true">
227
+ <xs:complexType>
228
+ <xs:attributeGroup ref="m:CommonAtt"/>
229
+ <xs:attributeGroup ref="m:DefEncAtt"/>
230
+ </xs:complexType>
231
+ </xs:element>
232
+ <xs:element name="inverse" substitutionGroup="m:unary-functional.class"/>
233
+ <xs:element name="ident" substitutionGroup="m:unary-functional.class"/>
234
+ <xs:element name="domain" substitutionGroup="m:unary-functional.class"/>
235
+ <xs:element name="codomain" substitutionGroup="m:unary-functional.class"/>
236
+ <xs:element name="image" substitutionGroup="m:unary-functional.class"/>
237
+ <xs:element name="ln" substitutionGroup="m:unary-functional.class"/>
238
+ <xs:element name="log" substitutionGroup="m:unary-functional.class"/>
239
+ <xs:element name="moment" substitutionGroup="m:unary-functional.class"/>
240
+ <xs:element name="lambda.class" abstract="true">
241
+ <xs:complexType>
242
+ <xs:sequence>
243
+ <xs:group ref="m:BvarQ"/>
244
+ <xs:group ref="m:DomainQ"/>
245
+ <xs:group ref="m:ContExp"/>
246
+ </xs:sequence>
247
+ <xs:attributeGroup ref="m:CommonAtt"/>
248
+ <xs:attributeGroup ref="m:DefEncAtt"/>
249
+ </xs:complexType>
250
+ </xs:element>
251
+ <xs:element name="lambda" substitutionGroup="m:lambda.class"/>
252
+ <xs:element name="nary-functional.class" abstract="true">
253
+ <xs:complexType>
254
+ <xs:attributeGroup ref="m:CommonAtt"/>
255
+ <xs:attributeGroup ref="m:DefEncAtt"/>
256
+ </xs:complexType>
257
+ </xs:element>
258
+ <xs:element name="compose" substitutionGroup="m:nary-functional.class"/>
259
+ <xs:group name="binary-arith.class">
260
+ <xs:choice>
261
+ <xs:element ref="m:quotient"/>
262
+ <xs:element ref="m:divide"/>
263
+ <xs:element ref="m:minus"/>
264
+ <xs:element ref="m:power"/>
265
+ <xs:element ref="m:rem"/>
266
+ <xs:element ref="m:root"/>
267
+ </xs:choice>
268
+ </xs:group>
269
+ <xs:element name="quotient">
270
+ <xs:complexType>
271
+ <xs:attributeGroup ref="m:CommonAtt"/>
272
+ <xs:attributeGroup ref="m:DefEncAtt"/>
273
+ </xs:complexType>
274
+ </xs:element>
275
+ <xs:element name="divide">
276
+ <xs:complexType>
277
+ <xs:attributeGroup ref="m:CommonAtt"/>
278
+ <xs:attributeGroup ref="m:DefEncAtt"/>
279
+ </xs:complexType>
280
+ </xs:element>
281
+ <xs:element name="minus">
282
+ <xs:complexType>
283
+ <xs:attributeGroup ref="m:CommonAtt"/>
284
+ <xs:attributeGroup ref="m:DefEncAtt"/>
285
+ </xs:complexType>
286
+ </xs:element>
287
+ <xs:element name="power">
288
+ <xs:complexType>
289
+ <xs:attributeGroup ref="m:CommonAtt"/>
290
+ <xs:attributeGroup ref="m:DefEncAtt"/>
291
+ </xs:complexType>
292
+ </xs:element>
293
+ <xs:element name="rem">
294
+ <xs:complexType>
295
+ <xs:attributeGroup ref="m:CommonAtt"/>
296
+ <xs:attributeGroup ref="m:DefEncAtt"/>
297
+ </xs:complexType>
298
+ </xs:element>
299
+ <xs:element name="root">
300
+ <xs:complexType>
301
+ <xs:attributeGroup ref="m:CommonAtt"/>
302
+ <xs:attributeGroup ref="m:DefEncAtt"/>
303
+ </xs:complexType>
304
+ </xs:element>
305
+ <xs:group name="unary-arith.class">
306
+ <xs:choice>
307
+ <xs:element ref="m:factorial"/>
308
+ <!--Ambiguous content model altered (minus)--><!--Ambiguous content model altered (root)--><xs:element ref="m:abs"/>
309
+ <xs:element ref="m:conjugate"/>
310
+ <xs:element ref="m:arg"/>
311
+ <xs:element ref="m:real"/>
312
+ <xs:element ref="m:imaginary"/>
313
+ <xs:element ref="m:floor"/>
314
+ <xs:element ref="m:ceiling"/>
315
+ <xs:element ref="m:exp"/>
316
+ </xs:choice>
317
+ </xs:group>
318
+ <xs:element name="factorial">
319
+ <xs:complexType>
320
+ <xs:attributeGroup ref="m:CommonAtt"/>
321
+ <xs:attributeGroup ref="m:DefEncAtt"/>
322
+ </xs:complexType>
323
+ </xs:element>
324
+ <xs:element name="abs">
325
+ <xs:complexType>
326
+ <xs:attributeGroup ref="m:CommonAtt"/>
327
+ <xs:attributeGroup ref="m:DefEncAtt"/>
328
+ </xs:complexType>
329
+ </xs:element>
330
+ <xs:element name="conjugate">
331
+ <xs:complexType>
332
+ <xs:attributeGroup ref="m:CommonAtt"/>
333
+ <xs:attributeGroup ref="m:DefEncAtt"/>
334
+ </xs:complexType>
335
+ </xs:element>
336
+ <xs:element name="arg">
337
+ <xs:complexType>
338
+ <xs:attributeGroup ref="m:CommonAtt"/>
339
+ <xs:attributeGroup ref="m:DefEncAtt"/>
340
+ </xs:complexType>
341
+ </xs:element>
342
+ <xs:element name="real">
343
+ <xs:complexType>
344
+ <xs:attributeGroup ref="m:CommonAtt"/>
345
+ <xs:attributeGroup ref="m:DefEncAtt"/>
346
+ </xs:complexType>
347
+ </xs:element>
348
+ <xs:element name="imaginary">
349
+ <xs:complexType>
350
+ <xs:attributeGroup ref="m:CommonAtt"/>
351
+ <xs:attributeGroup ref="m:DefEncAtt"/>
352
+ </xs:complexType>
353
+ </xs:element>
354
+ <xs:element name="floor">
355
+ <xs:complexType>
356
+ <xs:attributeGroup ref="m:CommonAtt"/>
357
+ <xs:attributeGroup ref="m:DefEncAtt"/>
358
+ </xs:complexType>
359
+ </xs:element>
360
+ <xs:element name="ceiling">
361
+ <xs:complexType>
362
+ <xs:attributeGroup ref="m:CommonAtt"/>
363
+ <xs:attributeGroup ref="m:DefEncAtt"/>
364
+ </xs:complexType>
365
+ </xs:element>
366
+ <xs:element name="exp">
367
+ <xs:complexType>
368
+ <xs:attributeGroup ref="m:CommonAtt"/>
369
+ <xs:attributeGroup ref="m:DefEncAtt"/>
370
+ </xs:complexType>
371
+ </xs:element>
372
+ <xs:element name="nary-minmax.class" abstract="true">
373
+ <xs:complexType>
374
+ <xs:attributeGroup ref="m:CommonAtt"/>
375
+ <xs:attributeGroup ref="m:DefEncAtt"/>
376
+ </xs:complexType>
377
+ </xs:element>
378
+ <xs:element name="max" substitutionGroup="m:nary-minmax.class"/>
379
+ <xs:element name="min" substitutionGroup="m:nary-minmax.class"/>
380
+ <xs:element name="nary-arith.class" abstract="true">
381
+ <xs:complexType>
382
+ <xs:attributeGroup ref="m:CommonAtt"/>
383
+ <xs:attributeGroup ref="m:DefEncAtt"/>
384
+ </xs:complexType>
385
+ </xs:element>
386
+ <xs:element name="plus" substitutionGroup="m:nary-arith.class"/>
387
+ <xs:element name="times" substitutionGroup="m:nary-arith.class"/>
388
+ <xs:element name="gcd" substitutionGroup="m:nary-arith.class"/>
389
+ <xs:element name="lcm" substitutionGroup="m:nary-arith.class"/>
390
+ <xs:element name="nary-logical.class" abstract="true">
391
+ <xs:complexType>
392
+ <xs:attributeGroup ref="m:CommonAtt"/>
393
+ <xs:attributeGroup ref="m:DefEncAtt"/>
394
+ </xs:complexType>
395
+ </xs:element>
396
+ <xs:element name="and" substitutionGroup="m:nary-logical.class"/>
397
+ <xs:element name="or" substitutionGroup="m:nary-logical.class"/>
398
+ <xs:element name="xor" substitutionGroup="m:nary-logical.class"/>
399
+ <xs:element name="unary-logical.class" abstract="true">
400
+ <xs:complexType>
401
+ <xs:attributeGroup ref="m:CommonAtt"/>
402
+ <xs:attributeGroup ref="m:DefEncAtt"/>
403
+ </xs:complexType>
404
+ </xs:element>
405
+ <xs:element name="not" substitutionGroup="m:unary-logical.class"/>
406
+ <xs:element name="binary-logical.class" abstract="true">
407
+ <xs:complexType>
408
+ <xs:attributeGroup ref="m:CommonAtt"/>
409
+ <xs:attributeGroup ref="m:DefEncAtt"/>
410
+ </xs:complexType>
411
+ </xs:element>
412
+ <xs:element name="implies" substitutionGroup="m:binary-logical.class"/>
413
+ <xs:element name="equivalent" substitutionGroup="m:binary-logical.class"/>
414
+ <xs:element name="quantifier.class" abstract="true">
415
+ <xs:complexType>
416
+ <xs:attributeGroup ref="m:CommonAtt"/>
417
+ <xs:attributeGroup ref="m:DefEncAtt"/>
418
+ </xs:complexType>
419
+ </xs:element>
420
+ <xs:element name="forall" substitutionGroup="m:quantifier.class"/>
421
+ <xs:element name="exists" substitutionGroup="m:quantifier.class"/>
422
+ <xs:element name="nary-reln.class" abstract="true">
423
+ <xs:complexType>
424
+ <xs:attributeGroup ref="m:CommonAtt"/>
425
+ <xs:attributeGroup ref="m:DefEncAtt"/>
426
+ </xs:complexType>
427
+ </xs:element>
428
+ <xs:element name="eq" substitutionGroup="m:nary-reln.class"/>
429
+ <xs:element name="gt" substitutionGroup="m:nary-reln.class"/>
430
+ <xs:element name="lt" substitutionGroup="m:nary-reln.class"/>
431
+ <xs:element name="geq" substitutionGroup="m:nary-reln.class"/>
432
+ <xs:element name="leq" substitutionGroup="m:nary-reln.class"/>
433
+ <xs:element name="binary-reln.class" abstract="true"/>
434
+ <xs:element name="neq" substitutionGroup="m:binary-reln.class">
435
+ <xs:complexType>
436
+ <xs:attributeGroup ref="m:CommonAtt"/>
437
+ <xs:attributeGroup ref="m:DefEncAtt"/>
438
+ </xs:complexType>
439
+ </xs:element>
440
+ <xs:element name="approx" substitutionGroup="m:binary-reln.class">
441
+ <xs:complexType>
442
+ <xs:attributeGroup ref="m:CommonAtt"/>
443
+ <xs:attributeGroup ref="m:DefEncAtt"/>
444
+ </xs:complexType>
445
+ </xs:element>
446
+ <xs:element name="factorof" substitutionGroup="m:binary-reln.class">
447
+ <xs:complexType>
448
+ <xs:attributeGroup ref="m:CommonAtt"/>
449
+ <xs:attributeGroup ref="m:DefEncAtt"/>
450
+ </xs:complexType>
451
+ </xs:element>
452
+ <xs:element name="tendsto" substitutionGroup="m:binary-reln.class">
453
+ <xs:complexType>
454
+ <xs:attributeGroup ref="m:CommonAtt"/>
455
+ <xs:attributeGroup ref="m:DefEncAtt"/>
456
+ <xs:attribute name="type"/>
457
+ </xs:complexType>
458
+ </xs:element>
459
+ <xs:element name="int.class" abstract="true">
460
+ <xs:complexType>
461
+ <xs:attributeGroup ref="m:CommonAtt"/>
462
+ <xs:attributeGroup ref="m:DefEncAtt"/>
463
+ </xs:complexType>
464
+ </xs:element>
465
+ <xs:element name="int" substitutionGroup="m:int.class"/>
466
+ <xs:element name="Differential-Operator.class" abstract="true">
467
+ <xs:complexType>
468
+ <xs:attributeGroup ref="m:CommonAtt"/>
469
+ <xs:attributeGroup ref="m:DefEncAtt"/>
470
+ </xs:complexType>
471
+ </xs:element>
472
+ <xs:element name="diff" substitutionGroup="m:Differential-Operator.class"/>
473
+ <xs:element name="partialdiff.class" abstract="true">
474
+ <xs:complexType>
475
+ <xs:attributeGroup ref="m:CommonAtt"/>
476
+ <xs:attributeGroup ref="m:DefEncAtt"/>
477
+ </xs:complexType>
478
+ </xs:element>
479
+ <xs:element name="partialdiff" substitutionGroup="m:partialdiff.class"/>
480
+ <xs:element name="unary-veccalc.class" abstract="true">
481
+ <xs:complexType>
482
+ <xs:attributeGroup ref="m:CommonAtt"/>
483
+ <xs:attributeGroup ref="m:DefEncAtt"/>
484
+ </xs:complexType>
485
+ </xs:element>
486
+ <xs:element name="divergence" substitutionGroup="m:unary-veccalc.class"/>
487
+ <xs:element name="grad" substitutionGroup="m:unary-veccalc.class"/>
488
+ <xs:element name="curl" substitutionGroup="m:unary-veccalc.class"/>
489
+ <xs:element name="laplacian" substitutionGroup="m:unary-veccalc.class"/>
490
+ <xs:element name="nary-setlist-constructor.class" abstract="true"/>
491
+ <xs:element name="set" substitutionGroup="m:nary-setlist-constructor.class">
492
+ <xs:complexType>
493
+ <xs:sequence>
494
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:BvarQ"/>
495
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:DomainQ"/>
496
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:ContExp"/>
497
+ </xs:sequence>
498
+ <xs:attributeGroup ref="m:CommonAtt"/>
499
+ <xs:attributeGroup ref="m:DefEncAtt"/>
500
+ <xs:attribute name="type"/>
501
+ </xs:complexType>
502
+ </xs:element>
503
+ <xs:element name="list" substitutionGroup="m:nary-setlist-constructor.class">
504
+ <xs:complexType>
505
+ <xs:sequence>
506
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:BvarQ"/>
507
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:DomainQ"/>
508
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:ContExp"/>
509
+ </xs:sequence>
510
+ <xs:attributeGroup ref="m:CommonAtt"/>
511
+ <xs:attributeGroup ref="m:DefEncAtt"/>
512
+ <xs:attribute name="order">
513
+ <xs:simpleType>
514
+ <xs:restriction base="xs:token">
515
+ <xs:enumeration value="numeric"/>
516
+ <xs:enumeration value="lexicographic"/>
517
+ </xs:restriction>
518
+ </xs:simpleType>
519
+ </xs:attribute>
520
+ </xs:complexType>
521
+ </xs:element>
522
+ <xs:element name="nary-set.class" abstract="true">
523
+ <xs:complexType>
524
+ <xs:attributeGroup ref="m:CommonAtt"/>
525
+ <xs:attributeGroup ref="m:DefEncAtt"/>
526
+ </xs:complexType>
527
+ </xs:element>
528
+ <xs:element name="union" substitutionGroup="m:nary-set.class"/>
529
+ <xs:element name="intersect" substitutionGroup="m:nary-set.class"/>
530
+ <xs:element name="cartesianproduct" substitutionGroup="m:nary-set.class"/>
531
+ <xs:element name="binary-set.class" abstract="true">
532
+ <xs:complexType>
533
+ <xs:attributeGroup ref="m:CommonAtt"/>
534
+ <xs:attributeGroup ref="m:DefEncAtt"/>
535
+ </xs:complexType>
536
+ </xs:element>
537
+ <xs:element name="in" substitutionGroup="m:binary-set.class"/>
538
+ <xs:element name="notin" substitutionGroup="m:binary-set.class"/>
539
+ <xs:element name="notsubset" substitutionGroup="m:binary-set.class"/>
540
+ <xs:element name="notprsubset" substitutionGroup="m:binary-set.class"/>
541
+ <xs:element name="setdiff" substitutionGroup="m:binary-set.class"/>
542
+ <xs:element name="nary-set-reln.class" abstract="true">
543
+ <xs:complexType>
544
+ <xs:attributeGroup ref="m:CommonAtt"/>
545
+ <xs:attributeGroup ref="m:DefEncAtt"/>
546
+ </xs:complexType>
547
+ </xs:element>
548
+ <xs:element name="subset" substitutionGroup="m:nary-set-reln.class"/>
549
+ <xs:element name="prsubset" substitutionGroup="m:nary-set-reln.class"/>
550
+ <xs:element name="unary-set.class" abstract="true">
551
+ <xs:complexType>
552
+ <xs:attributeGroup ref="m:CommonAtt"/>
553
+ <xs:attributeGroup ref="m:DefEncAtt"/>
554
+ </xs:complexType>
555
+ </xs:element>
556
+ <xs:element name="card" substitutionGroup="m:unary-set.class"/>
557
+ <xs:element name="sum.class" abstract="true">
558
+ <xs:complexType>
559
+ <xs:attributeGroup ref="m:CommonAtt"/>
560
+ <xs:attributeGroup ref="m:DefEncAtt"/>
561
+ </xs:complexType>
562
+ </xs:element>
563
+ <xs:element name="sum" substitutionGroup="m:sum.class"/>
564
+ <xs:element name="product.class" abstract="true">
565
+ <xs:complexType>
566
+ <xs:attributeGroup ref="m:CommonAtt"/>
567
+ <xs:attributeGroup ref="m:DefEncAtt"/>
568
+ </xs:complexType>
569
+ </xs:element>
570
+ <xs:element name="product" substitutionGroup="m:product.class"/>
571
+ <xs:element name="limit.class" abstract="true">
572
+ <xs:complexType>
573
+ <xs:attributeGroup ref="m:CommonAtt"/>
574
+ <xs:attributeGroup ref="m:DefEncAtt"/>
575
+ </xs:complexType>
576
+ </xs:element>
577
+ <xs:element name="limit" substitutionGroup="m:limit.class"/>
578
+ <xs:element name="unary-elementary.class" abstract="true">
579
+ <xs:complexType>
580
+ <xs:attributeGroup ref="m:CommonAtt"/>
581
+ <xs:attributeGroup ref="m:DefEncAtt"/>
582
+ </xs:complexType>
583
+ </xs:element>
584
+ <xs:element name="sin" substitutionGroup="m:unary-elementary.class"/>
585
+ <xs:element name="cos" substitutionGroup="m:unary-elementary.class"/>
586
+ <xs:element name="tan" substitutionGroup="m:unary-elementary.class"/>
587
+ <xs:element name="sec" substitutionGroup="m:unary-elementary.class"/>
588
+ <xs:element name="csc" substitutionGroup="m:unary-elementary.class"/>
589
+ <xs:element name="cot" substitutionGroup="m:unary-elementary.class"/>
590
+ <xs:element name="sinh" substitutionGroup="m:unary-elementary.class"/>
591
+ <xs:element name="cosh" substitutionGroup="m:unary-elementary.class"/>
592
+ <xs:element name="tanh" substitutionGroup="m:unary-elementary.class"/>
593
+ <xs:element name="sech" substitutionGroup="m:unary-elementary.class"/>
594
+ <xs:element name="csch" substitutionGroup="m:unary-elementary.class"/>
595
+ <xs:element name="coth" substitutionGroup="m:unary-elementary.class"/>
596
+ <xs:element name="arcsin" substitutionGroup="m:unary-elementary.class"/>
597
+ <xs:element name="arccos" substitutionGroup="m:unary-elementary.class"/>
598
+ <xs:element name="arctan" substitutionGroup="m:unary-elementary.class"/>
599
+ <xs:element name="arccosh" substitutionGroup="m:unary-elementary.class"/>
600
+ <xs:element name="arccot" substitutionGroup="m:unary-elementary.class"/>
601
+ <xs:element name="arccoth" substitutionGroup="m:unary-elementary.class"/>
602
+ <xs:element name="arccsc" substitutionGroup="m:unary-elementary.class"/>
603
+ <xs:element name="arccsch" substitutionGroup="m:unary-elementary.class"/>
604
+ <xs:element name="arcsec" substitutionGroup="m:unary-elementary.class"/>
605
+ <xs:element name="arcsech" substitutionGroup="m:unary-elementary.class"/>
606
+ <xs:element name="arcsinh" substitutionGroup="m:unary-elementary.class"/>
607
+ <xs:element name="arctanh" substitutionGroup="m:unary-elementary.class"/>
608
+ <xs:element name="nary-stats.class" abstract="true">
609
+ <xs:complexType>
610
+ <xs:attributeGroup ref="m:CommonAtt"/>
611
+ <xs:attributeGroup ref="m:DefEncAtt"/>
612
+ </xs:complexType>
613
+ </xs:element>
614
+ <xs:element name="mean" substitutionGroup="m:nary-stats.class"/>
615
+ <xs:element name="sdev" substitutionGroup="m:nary-stats.class"/>
616
+ <xs:element name="variance" substitutionGroup="m:nary-stats.class"/>
617
+ <xs:element name="median" substitutionGroup="m:nary-stats.class"/>
618
+ <xs:element name="mode" substitutionGroup="m:nary-stats.class"/>
619
+ <xs:element name="nary-constructor.class" abstract="true">
620
+ <xs:complexType>
621
+ <xs:sequence>
622
+ <xs:group ref="m:BvarQ"/>
623
+ <xs:group ref="m:DomainQ"/>
624
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="m:ContExp"/>
625
+ </xs:sequence>
626
+ <xs:attributeGroup ref="m:CommonAtt"/>
627
+ <xs:attributeGroup ref="m:DefEncAtt"/>
628
+ </xs:complexType>
629
+ </xs:element>
630
+ <xs:element name="vector" substitutionGroup="m:nary-constructor.class"/>
631
+ <xs:element name="matrix" substitutionGroup="m:nary-constructor.class"/>
632
+ <xs:element name="matrixrow" substitutionGroup="m:nary-constructor.class"/>
633
+ <xs:element name="unary-linalg.class" abstract="true">
634
+ <xs:complexType>
635
+ <xs:attributeGroup ref="m:CommonAtt"/>
636
+ <xs:attributeGroup ref="m:DefEncAtt"/>
637
+ </xs:complexType>
638
+ </xs:element>
639
+ <xs:element name="determinant" substitutionGroup="m:unary-linalg.class"/>
640
+ <xs:element name="transpose" substitutionGroup="m:unary-linalg.class"/>
641
+ <xs:element name="nary-linalg.class" abstract="true">
642
+ <xs:complexType>
643
+ <xs:attributeGroup ref="m:CommonAtt"/>
644
+ <xs:attributeGroup ref="m:DefEncAtt"/>
645
+ </xs:complexType>
646
+ </xs:element>
647
+ <xs:element name="selector" substitutionGroup="m:nary-linalg.class"/>
648
+ <xs:element name="binary-linalg.class" abstract="true">
649
+ <xs:complexType>
650
+ <xs:attributeGroup ref="m:CommonAtt"/>
651
+ <xs:attributeGroup ref="m:DefEncAtt"/>
652
+ </xs:complexType>
653
+ </xs:element>
654
+ <xs:element name="vectorproduct" substitutionGroup="m:binary-linalg.class"/>
655
+ <xs:element name="scalarproduct" substitutionGroup="m:binary-linalg.class"/>
656
+ <xs:element name="outerproduct" substitutionGroup="m:binary-linalg.class"/>
657
+ <xs:element name="constant-set.class" abstract="true">
658
+ <xs:complexType>
659
+ <xs:attributeGroup ref="m:CommonAtt"/>
660
+ <xs:attributeGroup ref="m:DefEncAtt"/>
661
+ </xs:complexType>
662
+ </xs:element>
663
+ <xs:element name="integers" substitutionGroup="m:constant-set.class"/>
664
+ <xs:element name="reals" substitutionGroup="m:constant-set.class"/>
665
+ <xs:element name="rationals" substitutionGroup="m:constant-set.class"/>
666
+ <xs:element name="naturalnumbers" substitutionGroup="m:constant-set.class"/>
667
+ <xs:element name="complexes" substitutionGroup="m:constant-set.class"/>
668
+ <xs:element name="primes" substitutionGroup="m:constant-set.class"/>
669
+ <xs:element name="emptyset" substitutionGroup="m:constant-set.class"/>
670
+ <xs:element name="constant-arith.class" abstract="true">
671
+ <xs:complexType>
672
+ <xs:attributeGroup ref="m:CommonAtt"/>
673
+ <xs:attributeGroup ref="m:DefEncAtt"/>
674
+ </xs:complexType>
675
+ </xs:element>
676
+ <xs:element name="exponentiale" substitutionGroup="m:constant-arith.class"/>
677
+ <xs:element name="imaginaryi" substitutionGroup="m:constant-arith.class"/>
678
+ <xs:element name="notanumber" substitutionGroup="m:constant-arith.class"/>
679
+ <xs:element name="true" substitutionGroup="m:constant-arith.class"/>
680
+ <xs:element name="false" substitutionGroup="m:constant-arith.class"/>
681
+ <xs:element name="pi" substitutionGroup="m:constant-arith.class"/>
682
+ <xs:element name="eulergamma" substitutionGroup="m:constant-arith.class"/>
683
+ <xs:element name="infinity" substitutionGroup="m:constant-arith.class"/>
684
+ </xs:schema>