sysml-validate 0.11.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/LICENSE +27 -27
  2. package/README.md +200 -200
  3. package/out/main.js +596 -141
  4. package/out/main.js.map +4 -4
  5. package/package.json +57 -57
  6. package/resources/sysml.dimension-table.json +1 -1
  7. package/resources/sysml.library/Domain Libraries/Analysis/.meta.json +9 -9
  8. package/resources/sysml.library/Domain Libraries/Analysis/.project.json +26 -26
  9. package/resources/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +33 -33
  10. package/resources/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +118 -118
  11. package/resources/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -143
  12. package/resources/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +170 -170
  13. package/resources/sysml.library/Domain Libraries/Cause and Effect/.meta.json +7 -7
  14. package/resources/sysml.library/Domain Libraries/Cause and Effect/.project.json +22 -22
  15. package/resources/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +82 -82
  16. package/resources/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -81
  17. package/resources/sysml.library/Domain Libraries/Geometry/.meta.json +7 -7
  18. package/resources/sysml.library/Domain Libraries/Geometry/.project.json +26 -26
  19. package/resources/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +898 -898
  20. package/resources/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +167 -167
  21. package/resources/sysml.library/Domain Libraries/Metadata/.meta.json +9 -9
  22. package/resources/sysml.library/Domain Libraries/Metadata/.project.json +18 -18
  23. package/resources/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +77 -77
  24. package/resources/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +142 -142
  25. package/resources/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +38 -38
  26. package/resources/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +99 -99
  27. package/resources/sysml.library/Domain Libraries/Quantities and Units/.meta.json +28 -28
  28. package/resources/sysml.library/Domain Libraries/Quantities and Units/.project.json +22 -22
  29. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -42
  30. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -439
  31. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -2726
  32. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -206
  33. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -1991
  34. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -1353
  35. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -1223
  36. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -2333
  37. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -958
  38. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -1537
  39. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -1564
  40. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -1169
  41. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -1256
  42. package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -30
  43. package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -526
  44. package/resources/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -107
  45. package/resources/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -70
  46. package/resources/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -378
  47. package/resources/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -48
  48. package/resources/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +49 -49
  49. package/resources/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -274
  50. package/resources/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -260
  51. package/resources/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -62
  52. package/resources/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +7 -7
  53. package/resources/sysml.library/Domain Libraries/Requirement Derivation/.project.json +18 -18
  54. package/resources/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +62 -62
  55. package/resources/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +38 -38
  56. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +8 -8
  57. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +10 -10
  58. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +176 -176
  59. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -23
  60. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +63 -63
  61. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +22 -22
  62. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +14 -14
  63. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +79 -79
  64. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -22
  65. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -68
  66. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -47
  67. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +116 -116
  68. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +42 -42
  69. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -43
  70. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -27
  71. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +42 -42
  72. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +153 -153
  73. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -49
  74. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -56
  75. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +32 -32
  76. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +110 -110
  77. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -25
  78. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +34 -34
  79. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +272 -272
  80. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +21 -21
  81. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +14 -14
  82. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +94 -94
  83. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +155 -155
  84. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +134 -134
  85. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +189 -189
  86. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -483
  87. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +66 -66
  88. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +57 -57
  89. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -212
  90. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +160 -160
  91. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -992
  92. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +292 -292
  93. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +196 -196
  94. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +144 -144
  95. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +280 -280
  96. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +65 -65
  97. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +187 -187
  98. package/resources/sysml.library/LICENSE +276 -276
  99. package/resources/sysml.library/NOTICE.md +20 -20
  100. package/resources/sysml.library/Systems Library/Actions.sysml +556 -556
  101. package/resources/sysml.library/Systems Library/Allocations.sysml +28 -28
  102. package/resources/sysml.library/Systems Library/AnalysisCases.sysml +37 -37
  103. package/resources/sysml.library/Systems Library/Attributes.sysml +24 -24
  104. package/resources/sysml.library/Systems Library/Calculations.sysml +36 -36
  105. package/resources/sysml.library/Systems Library/Cases.sysml +70 -70
  106. package/resources/sysml.library/Systems Library/Connections.sysml +59 -59
  107. package/resources/sysml.library/Systems Library/Constraints.sysml +43 -43
  108. package/resources/sysml.library/Systems Library/Flows.sysml +125 -125
  109. package/resources/sysml.library/Systems Library/Interfaces.sysml +88 -88
  110. package/resources/sysml.library/Systems Library/Items.sysml +152 -152
  111. package/resources/sysml.library/Systems Library/Metadata.sysml +31 -31
  112. package/resources/sysml.library/Systems Library/Parts.sysml +80 -80
  113. package/resources/sysml.library/Systems Library/Ports.sysml +53 -53
  114. package/resources/sysml.library/Systems Library/Requirements.sysml +193 -193
  115. package/resources/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -123
  116. package/resources/sysml.library/Systems Library/States.sysml +102 -102
  117. package/resources/sysml.library/Systems Library/SysML.sysml +539 -539
  118. package/resources/sysml.library/Systems Library/UseCases.sysml +56 -56
  119. package/resources/sysml.library/Systems Library/VerificationCases.sysml +102 -102
  120. package/resources/sysml.library/Systems Library/Views.sysml +163 -163
  121. package/resources/sysml.library.index.json +1 -1
@@ -1,177 +1,177 @@
1
- standard library package Collections {
2
- doc
3
- /*
4
- * This package defines a standard set of Collection data types. Unlike sequences of values
5
- * defined directly using multiplicity, these data types allow for the possibility of collections
6
- * as elements of collections.
7
- */
8
-
9
- private import Base::*;
10
- private import ScalarValues::*;
11
- private import SequenceFunctions::size;
12
- private import SequenceFunctions::equals;
13
- private import IntegerFunctions::*;
14
- private import ControlFunctions::*;
15
-
16
- abstract datatype Collection {
17
- doc
18
- /*
19
- * A Collection is a DataValue that represents a collection of elements of a given type.
20
- */
21
-
22
- feature elements[0..*] nonunique {
23
- doc
24
- /*
25
- * The contents of the Collection.
26
- */
27
- }
28
- }
29
-
30
- abstract datatype OrderedCollection :> Collection {
31
- doc
32
- /*
33
- * An OrderedCollection is a Collection of which the elements are ordered and not necessarily unique.
34
- */
35
-
36
- feature elements[0..*] ordered nonunique :>> Collection::elements;
37
- }
38
-
39
- abstract datatype UniqueCollection :> Collection {
40
- doc
41
- /*
42
- * A UniqueCollection is a Collection of which the elements are unique and not necessarily ordered.
43
- */
44
-
45
- feature elements[0..*] :>> Collection::elements {
46
- doc
47
- /* Note: Redefinition of 'elements' is unique by default. */
48
- }
49
- }
50
-
51
- datatype Array :> OrderedCollection {
52
- doc
53
- /*
54
- * An Array is a fixed size, multi-dimensional Collection of which the elements are nonunique and ordered.
55
- * Its dimensions specify how many dimensions the array has, and how many elements there are in each dimension.
56
- * The rank is equal to the number of dimensions. The flattenedSize is equal to the total number of elements
57
- * in the array.
58
- *
59
- * Feature elements is a flattened sequence of all elements of an Array and can be accessed by a tuple of indices.
60
- * The number of indices is equal to rank. The elements are packed according to row-major convention.
61
- *
62
- * The elements of an Array can be accessed by a tuple of indices. The number of indices in such tuple is equal to rank.
63
- * The elements are packed according to the row-major convention.
64
- *
65
- * Note 1. Feature dimensions may be empty, which denotes a zero dimensional array, allowing an Array to collapse to a single element.
66
- * This is useful to allow for specialization of an Array into a type restricted to represent a scalar.
67
- * The flattenedSize of a zero dimensional array is 1.
68
- *
69
- * Note 2: An Array can represent the generalized mathematical concept of an infinite matrix of any rank, i.e. not limited to rank two.
70
- */
71
-
72
- feature dimensions: Positive[0..*] ordered nonunique {
73
- doc
74
- /*
75
- * Defines the N-dimensional shape of the Array.
76
- */
77
- }
78
-
79
- feature rank: Natural[1] = size(dimensions) {
80
- doc
81
- /*
82
- * The number of dimensions.
83
- */
84
- }
85
-
86
- feature flattenedSize: Positive[1] = dimensions->reduce '*' ?? 1 {
87
- doc
88
- /*
89
- * The number of elements in the Array, given as the product of the dimensions,
90
- * or 1 if dimensions is empty.
91
- */
92
- }
93
-
94
- inv { flattenedSize == size(elements) }
95
- }
96
-
97
- datatype Bag :> Collection {
98
- doc
99
- /*
100
- * A Bag is a variable-size Collection of which the elements are unordered and nonunique.
101
- */
102
- }
103
-
104
- datatype Set :> UniqueCollection {
105
- doc
106
- /*
107
- * A Set is a variable-size Collection of which the elements are unique and unordered.
108
- */
109
- }
110
-
111
- datatype OrderedSet :> OrderedCollection, UniqueCollection
112
- intersects OrderedCollection, UniqueCollection {
113
- doc
114
- /*
115
- * An OrderedSet is a variable-size Collection of which the elements are unique and ordered.
116
- */
117
-
118
- feature elements[0..*] ordered :>> OrderedCollection::elements, UniqueCollection::elements {
119
- doc
120
- /* Note: Redefinition of elements is unique by default. */
121
- }
122
- }
123
-
124
- datatype List :> OrderedCollection {
125
- doc
126
- /*
127
- * A List is a variable-size Collection of which the elements are nonunique and ordered.
128
- */
129
- }
130
-
131
- datatype KeyValuePair {
132
- doc
133
- /*
134
- * A KeyValuePair is a DataValue that represents a pair of a key and an associated val,
135
- * primarily for use in Maps.
136
- */
137
-
138
- feature key: Anything[0..*] ordered nonunique;
139
- feature val: Anything[0..*] ordered nonunique;
140
- }
141
-
142
- datatype Map :> Collection {
143
- doc
144
- /*
145
- * Map is a variable-size Collection of which the elements are KeyValuePairs.
146
- * The keys must be unique within the Map. The vals need not be unique.
147
- */
148
-
149
- feature elements: KeyValuePair[0..*] :>> Collection::elements {
150
- doc
151
- /* Note: Redefinition of elements is unique by default.*/
152
- }
153
-
154
- inv {
155
- elements->forAll{ in e1 : KeyValuePair;
156
- not elements->exists{ in e2 : KeyValuePair;
157
- e1 != e2 and e1.key->equals(e2.key) }
158
- }
159
- }
160
- }
161
-
162
- datatype OrderedMap :> Map, OrderedCollection {
163
- doc
164
- /*
165
- * An OrderedMap is a variable-size Map that maintains an ordering of its elements.
166
- *
167
- * The ordering may be by key of the KeyValuePair elements, or by order of construction,
168
- * or any other method. The essential aspect is that ordering is maintained and guaranteed across
169
- * accesses to the OrderedMap.
170
- */
171
-
172
- feature elements: KeyValuePair[0..*] ordered :>> Map::elements, OrderedCollection::elements {
173
- doc
174
- /* Note: Redefinition of elements is unique by default. */
175
- }
176
- }
1
+ standard library package Collections {
2
+ doc
3
+ /*
4
+ * This package defines a standard set of Collection data types. Unlike sequences of values
5
+ * defined directly using multiplicity, these data types allow for the possibility of collections
6
+ * as elements of collections.
7
+ */
8
+
9
+ private import Base::*;
10
+ private import ScalarValues::*;
11
+ private import SequenceFunctions::size;
12
+ private import SequenceFunctions::equals;
13
+ private import IntegerFunctions::*;
14
+ private import ControlFunctions::*;
15
+
16
+ abstract datatype Collection {
17
+ doc
18
+ /*
19
+ * A Collection is a DataValue that represents a collection of elements of a given type.
20
+ */
21
+
22
+ feature elements[0..*] nonunique {
23
+ doc
24
+ /*
25
+ * The contents of the Collection.
26
+ */
27
+ }
28
+ }
29
+
30
+ abstract datatype OrderedCollection :> Collection {
31
+ doc
32
+ /*
33
+ * An OrderedCollection is a Collection of which the elements are ordered and not necessarily unique.
34
+ */
35
+
36
+ feature elements[0..*] ordered nonunique :>> Collection::elements;
37
+ }
38
+
39
+ abstract datatype UniqueCollection :> Collection {
40
+ doc
41
+ /*
42
+ * A UniqueCollection is a Collection of which the elements are unique and not necessarily ordered.
43
+ */
44
+
45
+ feature elements[0..*] :>> Collection::elements {
46
+ doc
47
+ /* Note: Redefinition of 'elements' is unique by default. */
48
+ }
49
+ }
50
+
51
+ datatype Array :> OrderedCollection {
52
+ doc
53
+ /*
54
+ * An Array is a fixed size, multi-dimensional Collection of which the elements are nonunique and ordered.
55
+ * Its dimensions specify how many dimensions the array has, and how many elements there are in each dimension.
56
+ * The rank is equal to the number of dimensions. The flattenedSize is equal to the total number of elements
57
+ * in the array.
58
+ *
59
+ * Feature elements is a flattened sequence of all elements of an Array and can be accessed by a tuple of indices.
60
+ * The number of indices is equal to rank. The elements are packed according to row-major convention.
61
+ *
62
+ * The elements of an Array can be accessed by a tuple of indices. The number of indices in such tuple is equal to rank.
63
+ * The elements are packed according to the row-major convention.
64
+ *
65
+ * Note 1. Feature dimensions may be empty, which denotes a zero dimensional array, allowing an Array to collapse to a single element.
66
+ * This is useful to allow for specialization of an Array into a type restricted to represent a scalar.
67
+ * The flattenedSize of a zero dimensional array is 1.
68
+ *
69
+ * Note 2: An Array can represent the generalized mathematical concept of an infinite matrix of any rank, i.e. not limited to rank two.
70
+ */
71
+
72
+ feature dimensions: Positive[0..*] ordered nonunique {
73
+ doc
74
+ /*
75
+ * Defines the N-dimensional shape of the Array.
76
+ */
77
+ }
78
+
79
+ feature rank: Natural[1] = size(dimensions) {
80
+ doc
81
+ /*
82
+ * The number of dimensions.
83
+ */
84
+ }
85
+
86
+ feature flattenedSize: Positive[1] = dimensions->reduce '*' ?? 1 {
87
+ doc
88
+ /*
89
+ * The number of elements in the Array, given as the product of the dimensions,
90
+ * or 1 if dimensions is empty.
91
+ */
92
+ }
93
+
94
+ inv { flattenedSize == size(elements) }
95
+ }
96
+
97
+ datatype Bag :> Collection {
98
+ doc
99
+ /*
100
+ * A Bag is a variable-size Collection of which the elements are unordered and nonunique.
101
+ */
102
+ }
103
+
104
+ datatype Set :> UniqueCollection {
105
+ doc
106
+ /*
107
+ * A Set is a variable-size Collection of which the elements are unique and unordered.
108
+ */
109
+ }
110
+
111
+ datatype OrderedSet :> OrderedCollection, UniqueCollection
112
+ intersects OrderedCollection, UniqueCollection {
113
+ doc
114
+ /*
115
+ * An OrderedSet is a variable-size Collection of which the elements are unique and ordered.
116
+ */
117
+
118
+ feature elements[0..*] ordered :>> OrderedCollection::elements, UniqueCollection::elements {
119
+ doc
120
+ /* Note: Redefinition of elements is unique by default. */
121
+ }
122
+ }
123
+
124
+ datatype List :> OrderedCollection {
125
+ doc
126
+ /*
127
+ * A List is a variable-size Collection of which the elements are nonunique and ordered.
128
+ */
129
+ }
130
+
131
+ datatype KeyValuePair {
132
+ doc
133
+ /*
134
+ * A KeyValuePair is a DataValue that represents a pair of a key and an associated val,
135
+ * primarily for use in Maps.
136
+ */
137
+
138
+ feature key: Anything[0..*] ordered nonunique;
139
+ feature val: Anything[0..*] ordered nonunique;
140
+ }
141
+
142
+ datatype Map :> Collection {
143
+ doc
144
+ /*
145
+ * Map is a variable-size Collection of which the elements are KeyValuePairs.
146
+ * The keys must be unique within the Map. The vals need not be unique.
147
+ */
148
+
149
+ feature elements: KeyValuePair[0..*] :>> Collection::elements {
150
+ doc
151
+ /* Note: Redefinition of elements is unique by default.*/
152
+ }
153
+
154
+ inv {
155
+ elements->forAll{ in e1 : KeyValuePair;
156
+ not elements->exists{ in e2 : KeyValuePair;
157
+ e1 != e2 and e1.key->equals(e2.key) }
158
+ }
159
+ }
160
+ }
161
+
162
+ datatype OrderedMap :> Map, OrderedCollection {
163
+ doc
164
+ /*
165
+ * An OrderedMap is a variable-size Map that maintains an ordering of its elements.
166
+ *
167
+ * The ordering may be by key of the KeyValuePair elements, or by order of construction,
168
+ * or any other method. The essential aspect is that ordering is maintained and guaranteed across
169
+ * accesses to the OrderedMap.
170
+ */
171
+
172
+ feature elements: KeyValuePair[0..*] ordered :>> Map::elements, OrderedCollection::elements {
173
+ doc
174
+ /* Note: Redefinition of elements is unique by default. */
175
+ }
176
+ }
177
177
  }
@@ -1,23 +1,23 @@
1
- standard library package ScalarValues {
2
- doc
3
- /*
4
- * This package contains a basic set of primitive scalar (non-collection) data types.
5
- * These include Boolean and String types and a hierarchy of concrete Number types, from
6
- * the most general type of Complex numbers to the most specific type of Positive integers.</p>
7
- */
8
-
9
- private import Base::DataValue;
10
-
11
- abstract datatype ScalarValue specializes DataValue;
12
- datatype Boolean specializes ScalarValue;
13
- datatype String specializes ScalarValue;
14
- abstract datatype NumericalValue specializes ScalarValue;
15
-
16
- abstract datatype Number specializes NumericalValue;
17
- datatype Complex specializes Number;
18
- datatype Real specializes Complex;
19
- datatype Rational specializes Real;
20
- datatype Integer specializes Rational;
21
- datatype Natural specializes Integer;
22
- datatype Positive specializes Natural;
23
- }
1
+ standard library package ScalarValues {
2
+ doc
3
+ /*
4
+ * This package contains a basic set of primitive scalar (non-collection) data types.
5
+ * These include Boolean and String types and a hierarchy of concrete Number types, from
6
+ * the most general type of Complex numbers to the most specific type of Positive integers.</p>
7
+ */
8
+
9
+ private import Base::DataValue;
10
+
11
+ abstract datatype ScalarValue specializes DataValue;
12
+ datatype Boolean specializes ScalarValue;
13
+ datatype String specializes ScalarValue;
14
+ abstract datatype NumericalValue specializes ScalarValue;
15
+
16
+ abstract datatype Number specializes NumericalValue;
17
+ datatype Complex specializes Number;
18
+ datatype Real specializes Complex;
19
+ datatype Rational specializes Real;
20
+ datatype Integer specializes Rational;
21
+ datatype Natural specializes Integer;
22
+ datatype Positive specializes Natural;
23
+ }
@@ -1,64 +1,64 @@
1
- standard library package VectorValues {
2
- doc
3
- /*
4
- * This package provides a basic model of abstract vectors as well as concrete vectors
5
- * whose components are numerical values. The package VectorFunctions defines the
6
- * corresponding vector-space functions.
7
- */
8
-
9
- private import ScalarValues::NumericalValue;
10
- private import ScalarValues::Real;
11
- private import Collections::Array;
12
-
13
- abstract datatype VectorValue {
14
- doc
15
- /*
16
- * A VectorValue is an abstract data type whose values may be operated on using
17
- * VectorFunctions.
18
- */
19
- }
20
-
21
- datatype NumericalVectorValue :> VectorValue, Array intersects VectorValue, Array {
22
- doc
23
- /*
24
- * A NumericalVectorValue is a kind of VectorValue that is specifically represented
25
- * as a one-dimensional array of NumericalValues. The dimension is allowed to be empty,
26
- * permitting a NumericalVectorValue of rank 0, which is essentially isomorphic to a
27
- * scalar NumericalValue.
28
- */
29
-
30
- feature dimension[0..1] :>> dimensions;
31
- feature :>> elements : NumericalValue;
32
- }
33
-
34
- datatype CartesianVectorValue :> NumericalVectorValue {
35
- doc
36
- /*
37
- * CartesianVectorValue is a specialization Numerical VectorValue for which there are
38
- * specific implementations in VectorFunctions of the abstract vector-space functions.
39
- *
40
- * Note: The restriction of the element type to Real is to facilitate
41
- * the complete definition of these functions.
42
- */
43
-
44
- feature :>> elements : Real;
45
- }
46
-
47
- datatype ThreeVectorValue :> NumericalVectorValue {
48
- doc
49
- /*
50
- * A ThreeVectorValue is a NumericalVectorValue that has dimension 3.
51
- */
52
-
53
- feature :>> dimension = 3;
54
- }
55
-
56
- datatype CartesianThreeVectorValue :> CartesianVectorValue, ThreeVectorValue
57
- intersects CartesianVectorValue, ThreeVectorValue {
58
- doc
59
- /*
60
- * A CartesianThreeVectorValue is a NumericalVectorValue that is both Cartesian and
61
- * has dimension 3.
62
- */
63
- }
1
+ standard library package VectorValues {
2
+ doc
3
+ /*
4
+ * This package provides a basic model of abstract vectors as well as concrete vectors
5
+ * whose components are numerical values. The package VectorFunctions defines the
6
+ * corresponding vector-space functions.
7
+ */
8
+
9
+ private import ScalarValues::NumericalValue;
10
+ private import ScalarValues::Real;
11
+ private import Collections::Array;
12
+
13
+ abstract datatype VectorValue {
14
+ doc
15
+ /*
16
+ * A VectorValue is an abstract data type whose values may be operated on using
17
+ * VectorFunctions.
18
+ */
19
+ }
20
+
21
+ datatype NumericalVectorValue :> VectorValue, Array intersects VectorValue, Array {
22
+ doc
23
+ /*
24
+ * A NumericalVectorValue is a kind of VectorValue that is specifically represented
25
+ * as a one-dimensional array of NumericalValues. The dimension is allowed to be empty,
26
+ * permitting a NumericalVectorValue of rank 0, which is essentially isomorphic to a
27
+ * scalar NumericalValue.
28
+ */
29
+
30
+ feature dimension[0..1] :>> dimensions;
31
+ feature :>> elements : NumericalValue;
32
+ }
33
+
34
+ datatype CartesianVectorValue :> NumericalVectorValue {
35
+ doc
36
+ /*
37
+ * CartesianVectorValue is a specialization Numerical VectorValue for which there are
38
+ * specific implementations in VectorFunctions of the abstract vector-space functions.
39
+ *
40
+ * Note: The restriction of the element type to Real is to facilitate
41
+ * the complete definition of these functions.
42
+ */
43
+
44
+ feature :>> elements : Real;
45
+ }
46
+
47
+ datatype ThreeVectorValue :> NumericalVectorValue {
48
+ doc
49
+ /*
50
+ * A ThreeVectorValue is a NumericalVectorValue that has dimension 3.
51
+ */
52
+
53
+ feature :>> dimension = 3;
54
+ }
55
+
56
+ datatype CartesianThreeVectorValue :> CartesianVectorValue, ThreeVectorValue
57
+ intersects CartesianVectorValue, ThreeVectorValue {
58
+ doc
59
+ /*
60
+ * A CartesianThreeVectorValue is a NumericalVectorValue that is both Cartesian and
61
+ * has dimension 3.
62
+ */
63
+ }
64
64
  }
@@ -1,23 +1,23 @@
1
- {
2
- "index": {
3
- "BaseFunctions": "BaseFunctions.kerml",
4
- "BooleanFunctions": "BooleanFunctions.kerml",
5
- "CollectionFunctions": "CollectionFunctions.kerml",
6
- "ComplexFunctions": "ComplexFunctions.kerml",
7
- "ControlFunctions": "ControlFunctions.kerml",
8
- "DataFunctions": "DataFunctions.kerml",
9
- "IntegerFunctions": "IntegerFunctions.kerml",
10
- "NaturalFunctions": "NaturalFunctions.kerml",
11
- "NumericalFunctions": "NumericalFunctions.kerml",
12
- "OccurrenceFunctions": "OccurrenceFunctions.kerml",
13
- "RationalFunctions": "RationalFunctions.kerml",
14
- "RealFunctions": "RealFunctions.kerml",
15
- "ScalarFunctions": "ScalarFunctions.kerml",
16
- "SequenceFunctions": "SequenceFunctions.kerml",
17
- "StringFunctions": "StringFunctions.kerml",
18
- "TrigFunctions": "TrigFunctions.kerml",
19
- "VectorFunctions": "VectorFunctions.kerml"
20
- },
21
- "created": "2025-03-13T00:00:00Z",
22
- "metamodel": "https://www.omg.org/spec/KerML/20250201"
1
+ {
2
+ "index": {
3
+ "BaseFunctions": "BaseFunctions.kerml",
4
+ "BooleanFunctions": "BooleanFunctions.kerml",
5
+ "CollectionFunctions": "CollectionFunctions.kerml",
6
+ "ComplexFunctions": "ComplexFunctions.kerml",
7
+ "ControlFunctions": "ControlFunctions.kerml",
8
+ "DataFunctions": "DataFunctions.kerml",
9
+ "IntegerFunctions": "IntegerFunctions.kerml",
10
+ "NaturalFunctions": "NaturalFunctions.kerml",
11
+ "NumericalFunctions": "NumericalFunctions.kerml",
12
+ "OccurrenceFunctions": "OccurrenceFunctions.kerml",
13
+ "RationalFunctions": "RationalFunctions.kerml",
14
+ "RealFunctions": "RealFunctions.kerml",
15
+ "ScalarFunctions": "ScalarFunctions.kerml",
16
+ "SequenceFunctions": "SequenceFunctions.kerml",
17
+ "StringFunctions": "StringFunctions.kerml",
18
+ "TrigFunctions": "TrigFunctions.kerml",
19
+ "VectorFunctions": "VectorFunctions.kerml"
20
+ },
21
+ "created": "2025-03-13T00:00:00Z",
22
+ "metamodel": "https://www.omg.org/spec/KerML/20250201"
23
23
  }
@@ -1,15 +1,15 @@
1
- {
2
- "name": "Kernel Function Library",
3
- "version": "1.0.0",
4
- "description": "Standard function library for the Kernel Modeling Language (KerML)",
5
- "usage": [
6
- {
7
- "resource": "https://www.omg.org/spec/KerML/20250201/Semantic-Library.kpar",
8
- "versionConstraint": "1.0.0"
9
- },
10
- {
11
- "resource": "https://www.omg.org/spec/KerML/20250201/Data-Type-Library.kpar",
12
- "versionConstraint": "1.0.0"
13
- }
14
- ]
1
+ {
2
+ "name": "Kernel Function Library",
3
+ "version": "1.0.0",
4
+ "description": "Standard function library for the Kernel Modeling Language (KerML)",
5
+ "usage": [
6
+ {
7
+ "resource": "https://www.omg.org/spec/KerML/20250201/Semantic-Library.kpar",
8
+ "versionConstraint": "1.0.0"
9
+ },
10
+ {
11
+ "resource": "https://www.omg.org/spec/KerML/20250201/Data-Type-Library.kpar",
12
+ "versionConstraint": "1.0.0"
13
+ }
14
+ ]
15
15
  }