occam-verify-cli 1.0.414 → 1.0.415

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.
@@ -1,242 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _ontology = /*#__PURE__*/ _interop_require_default(require("../ontology"));
12
- var _verifier = /*#__PURE__*/ _interop_require_default(require("../verifier"));
13
- var _query = require("../utilities/query");
14
- function _assert_this_initialized(self) {
15
- if (self === void 0) {
16
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
- }
18
- return self;
19
- }
20
- function _call_super(_this, derived, args) {
21
- derived = _get_prototype_of(derived);
22
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
23
- }
24
- function _class_call_check(instance, Constructor) {
25
- if (!(instance instanceof Constructor)) {
26
- throw new TypeError("Cannot call a class as a function");
27
- }
28
- }
29
- function _defineProperties(target, props) {
30
- for(var i = 0; i < props.length; i++){
31
- var descriptor = props[i];
32
- descriptor.enumerable = descriptor.enumerable || false;
33
- descriptor.configurable = true;
34
- if ("value" in descriptor) descriptor.writable = true;
35
- Object.defineProperty(target, descriptor.key, descriptor);
36
- }
37
- }
38
- function _create_class(Constructor, protoProps, staticProps) {
39
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
40
- if (staticProps) _defineProperties(Constructor, staticProps);
41
- return Constructor;
42
- }
43
- function _define_property(obj, key, value) {
44
- if (key in obj) {
45
- Object.defineProperty(obj, key, {
46
- value: value,
47
- enumerable: true,
48
- configurable: true,
49
- writable: true
50
- });
51
- } else {
52
- obj[key] = value;
53
- }
54
- return obj;
55
- }
56
- function _get_prototype_of(o) {
57
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
58
- return o.__proto__ || Object.getPrototypeOf(o);
59
- };
60
- return _get_prototype_of(o);
61
- }
62
- function _inherits(subClass, superClass) {
63
- if (typeof superClass !== "function" && superClass !== null) {
64
- throw new TypeError("Super expression must either be null or a function");
65
- }
66
- subClass.prototype = Object.create(superClass && superClass.prototype, {
67
- constructor: {
68
- value: subClass,
69
- writable: true,
70
- configurable: true
71
- }
72
- });
73
- if (superClass) _set_prototype_of(subClass, superClass);
74
- }
75
- function _interop_require_default(obj) {
76
- return obj && obj.__esModule ? obj : {
77
- default: obj
78
- };
79
- }
80
- function _possible_constructor_return(self, call) {
81
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
82
- return call;
83
- }
84
- return _assert_this_initialized(self);
85
- }
86
- function _set_prototype_of(o, p) {
87
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
88
- o.__proto__ = p;
89
- return o;
90
- };
91
- return _set_prototype_of(o, p);
92
- }
93
- function _type_of(obj) {
94
- "@swc/helpers - typeof";
95
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
96
- }
97
- function _is_native_reflect_construct() {
98
- try {
99
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
100
- } catch (_) {}
101
- return (_is_native_reflect_construct = function() {
102
- return !!result;
103
- })();
104
- }
105
- var errorNodeQuery = (0, _query.nodeQuery)("/error"), ruleNodeQuery = (0, _query.nodeQuery)("/rule"), axiomNodeQuery = (0, _query.nodeQuery)("/axiom"), lemmaNodeQuery = (0, _query.nodeQuery)("/lemma"), sectionNodeQuery = (0, _query.nodeQuery)("/section"), theoremNodeQuery = (0, _query.nodeQuery)("/theorem"), metaLemmaNodeQuery = (0, _query.nodeQuery)("/metaLemma"), conjectureNodeQuery = (0, _query.nodeQuery)("/conjecture"), metatheoremNodeQuery = (0, _query.nodeQuery)("/metatheorem"), variableDeclarationNodeQuery = (0, _query.nodeQuery)("/variableDeclaration"), combinatorDeclarationNodeQuery = (0, _query.nodeQuery)("/combinatorDeclaration"), simpleTypeDeclarationNodeQuery = (0, _query.nodeQuery)("/simpleTypeDeclaration"), typePrefixDeclarationNodeQuery = (0, _query.nodeQuery)("/typePrefixDeclaration"), constructorDeclarationNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration"), complexTypeDeclarationNodeQuery = (0, _query.nodeQuery)("/complexTypeDeclaration"), metavariableDeclarationNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration");
106
- var TopLevelVerifier = /*#__PURE__*/ function(Verifier) {
107
- _inherits(TopLevelVerifier, Verifier);
108
- function TopLevelVerifier() {
109
- _class_call_check(this, TopLevelVerifier);
110
- return _call_super(this, TopLevelVerifier, arguments);
111
- }
112
- _create_class(TopLevelVerifier, [
113
- {
114
- key: "verify",
115
- value: function verify(node, fileContext) {
116
- var verifiesAtTopLevel;
117
- var context = fileContext, nonTerminalNode = node, nonTerminalNodeVerifies = this.verifyNonTerminalNode(nonTerminalNode, context);
118
- verifiesAtTopLevel = nonTerminalNodeVerifies; ///
119
- return verifiesAtTopLevel;
120
- }
121
- }
122
- ]);
123
- return TopLevelVerifier;
124
- }(_verifier.default);
125
- _define_property(TopLevelVerifier, "maps", [
126
- {
127
- nodeQuery: errorNodeQuery,
128
- verify: function(errorNode, context) {
129
- var Error = _ontology.default.Error, error = Error.fromErrorNode(errorNode, context), errorVerifies = error.verify();
130
- return errorVerifies;
131
- }
132
- },
133
- {
134
- nodeQuery: ruleNodeQuery,
135
- verify: function(ruleNode, context) {
136
- var Rule = _ontology.default.Rule, rule = Rule.fromRuleNode(ruleNode, context), ruleVerifies = rule.verify();
137
- return ruleVerifies;
138
- }
139
- },
140
- {
141
- nodeQuery: axiomNodeQuery,
142
- verify: function(axiomNode, context) {
143
- var Axiom = _ontology.default.Axiom, axiom = Axiom.fromAxiomNode(axiomNode, context), axiomVerifies = axiom.verify();
144
- return axiomVerifies;
145
- }
146
- },
147
- {
148
- nodeQuery: lemmaNodeQuery,
149
- verify: function(lemmaNode, context) {
150
- var Lemma = _ontology.default.Lemma, lemma = Lemma.fromLemmaNode(lemmaNode, context), lemmaVerifies = lemma.verify();
151
- return lemmaVerifies;
152
- }
153
- },
154
- {
155
- nodeQuery: sectionNodeQuery,
156
- verify: function(sectionNode, context) {
157
- var Section = _ontology.default.Section, section = Section.fromSectionNode(sectionNode, context), sectionVerifies = section.verify();
158
- return sectionVerifies;
159
- }
160
- },
161
- {
162
- nodeQuery: theoremNodeQuery,
163
- verify: function(theoremNode, context) {
164
- var Theorem = _ontology.default.Theorem, theorem = Theorem.fromTheoremNode(theoremNode, context), theoremVerifies = theorem.verify();
165
- return theoremVerifies;
166
- }
167
- },
168
- {
169
- nodeQuery: metaLemmaNodeQuery,
170
- verify: function(metaLemmaNode, context) {
171
- var MetaLemma = _ontology.default.MetaLemma, metaLemma = MetaLemma.fromMetaLemmaNode(metaLemmaNode, context), metaLemmaVerifies = metaLemma.verify();
172
- return metaLemmaVerifies;
173
- }
174
- },
175
- {
176
- nodeQuery: conjectureNodeQuery,
177
- verify: function(conjectureNode, context) {
178
- var Conjecture = _ontology.default.Conjecture, conjecture = Conjecture.fromConjectureNode(conjectureNode, context), conjectureVerifies = conjecture.verify();
179
- return conjectureVerifies;
180
- }
181
- },
182
- {
183
- nodeQuery: metatheoremNodeQuery,
184
- verify: function(metatheoremNode, context) {
185
- var Metatheorem = _ontology.default.Metatheorem, metatheorem = Metatheorem.fromMetatheoremNode(metatheoremNode, context), metatheoremVerifies = metatheorem.verify();
186
- return metatheoremVerifies;
187
- }
188
- },
189
- {
190
- nodeQuery: variableDeclarationNodeQuery,
191
- verify: function(variableDeclarationNode, context) {
192
- var VariableDeclaration = _ontology.default.VariableDeclaration, variableDeclaration = VariableDeclaration.fromVariableDeclarationNode(variableDeclarationNode, context), variableDeclarationVerifies = variableDeclaration.verify();
193
- return variableDeclarationVerifies;
194
- }
195
- },
196
- {
197
- nodeQuery: simpleTypeDeclarationNodeQuery,
198
- verify: function(simpleTypeDeclarationNode, context) {
199
- var SimpleTypeDeclaration = _ontology.default.SimpleTypeDeclaration, simpleTypeDeclaration = SimpleTypeDeclaration.fromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context), simpleTypeDeclarationVerifies = simpleTypeDeclaration.verify();
200
- return simpleTypeDeclarationVerifies;
201
- }
202
- },
203
- {
204
- nodeQuery: typePrefixDeclarationNodeQuery,
205
- verify: function(typePrefixDeclarationNode, context) {
206
- var TypePrefixDeclaration = _ontology.default.TypePrefixDeclaration, typePrefixDeclaration = TypePrefixDeclaration.fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context), typePrefixDeclarationVerifies = typePrefixDeclaration.verify();
207
- return typePrefixDeclarationVerifies;
208
- }
209
- },
210
- {
211
- nodeQuery: combinatorDeclarationNodeQuery,
212
- verify: function(combinatorDeclarationNode, context) {
213
- var CombinatorDeclaration = _ontology.default.CombinatorDeclaration, combinatorDeclaration = CombinatorDeclaration.fromCombinatorDeclarationNode(combinatorDeclarationNode, context), combinatorDeclarationVerifies = combinatorDeclaration.verify();
214
- return combinatorDeclarationVerifies;
215
- }
216
- },
217
- {
218
- nodeQuery: constructorDeclarationNodeQuery,
219
- verify: function(constructorDeclarationNode, context) {
220
- var ConstructorDeclaration = _ontology.default.ConstructorDeclaration, constructorDeclaration = ConstructorDeclaration.fromConstructorDeclarationNode(constructorDeclarationNode, context), constructorDeclarationVerifies = constructorDeclaration.verify();
221
- return constructorDeclarationVerifies;
222
- }
223
- },
224
- {
225
- nodeQuery: complexTypeDeclarationNodeQuery,
226
- verify: function(complexTypeDeclarationNode, context) {
227
- var ComplexTypeDeclaration = _ontology.default.ComplexTypeDeclaration, complexTypeDeclaration = ComplexTypeDeclaration.fromComplexTypeDeclarationNode(complexTypeDeclarationNode, context), complexTypeDeclarationVerifies = complexTypeDeclaration.verify();
228
- return complexTypeDeclarationVerifies;
229
- }
230
- },
231
- {
232
- nodeQuery: metavariableDeclarationNodeQuery,
233
- verify: function(metavariableDeclarationNode, context) {
234
- var MetavariableDeclaration = _ontology.default.MetavariableDeclaration, metavariableDeclaration = MetavariableDeclaration.fromMetavariableDeclarationNode(metavariableDeclarationNode, context), metavariableDeclarationVerifies = metavariableDeclaration.verify();
235
- return metavariableDeclarationVerifies;
236
- }
237
- }
238
- ]);
239
- var topLevelVerifier = new TopLevelVerifier();
240
- var _default = topLevelVerifier;
241
-
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci90b3BMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG9udG9sb2d5IGZyb20gXCIuLi9vbnRvbG9neVwiO1xuaW1wb3J0IFZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllclwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGVycm9yTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2Vycm9yXCIpLFxuICAgICAgcnVsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlXCIpLFxuICAgICAgYXhpb21Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXhpb21cIiksXG4gICAgICBsZW1tYU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9sZW1tYVwiKSxcbiAgICAgIHNlY3Rpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc2VjdGlvblwiKSxcbiAgICAgIHRoZW9yZW1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbVwiKSxcbiAgICAgIG1ldGFMZW1tYU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhTGVtbWFcIiksXG4gICAgICBjb25qZWN0dXJlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbmplY3R1cmVcIiksXG4gICAgICBtZXRhdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdGhlb3JlbVwiKSxcbiAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21iaW5hdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBzaW1wbGVUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc2ltcGxlVHlwZURlY2xhcmF0aW9uXCIpLFxuICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVQcmVmaXhEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tcGxleFR5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCIpO1xuXG5jbGFzcyBUb3BMZXZlbFZlcmlmaWVyIGV4dGVuZHMgVmVyaWZpZXIge1xuICB2ZXJpZnkobm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXNBdFRvcExldmVsO1xuXG4gICAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgdmVyaWZpZXNBdFRvcExldmVsID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZXM7ICAvLy9cblxuICAgIHJldHVybiB2ZXJpZmllc0F0VG9wTGV2ZWw7XG4gIH1cblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGVycm9yTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoZXJyb3JOb2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRXJyb3IgfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBlcnJvciA9IEVycm9yLmZyb21FcnJvck5vZGUoZXJyb3JOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZXJyb3JWZXJpZmllcyA9IGVycm9yLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBlcnJvclZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBydWxlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAocnVsZU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBSdWxlIH0gPSBvbnRvbG9neSxcbiAgICAgICAgICAgICAgcnVsZSA9IFJ1bGUuZnJvbVJ1bGVOb2RlKHJ1bGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgcnVsZVZlcmlmaWVzID0gcnVsZS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gcnVsZVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBheGlvbU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGF4aW9tTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IEF4aW9tIH0gPSBvbnRvbG9neSxcbiAgICAgICAgICAgICAgYXhpb20gPSBBeGlvbS5mcm9tQXhpb21Ob2RlKGF4aW9tTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIGF4aW9tVmVyaWZpZXMgPSBheGlvbS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gYXhpb21WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbGVtbWFOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChsZW1tYU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBMZW1tYSB9ID0gb250b2xvZ3ksXG4gICAgICAgICAgICAgIGxlbW1hID0gTGVtbWEuZnJvbUxlbW1hTm9kZShsZW1tYU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBsZW1tYVZlcmlmaWVzID0gbGVtbWEudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGxlbW1hVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHNlY3Rpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChzZWN0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFNlY3Rpb24gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBzZWN0aW9uID0gU2VjdGlvbi5mcm9tU2VjdGlvbk5vZGUoc2VjdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzZWN0aW9uVmVyaWZpZXMgPSBzZWN0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBzZWN0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh0aGVvcmVtTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFRoZW9yZW0gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICB0aGVvcmVtID0gVGhlb3JlbS5mcm9tVGhlb3JlbU5vZGUodGhlb3JlbU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0aGVvcmVtVmVyaWZpZXMgPSB0aGVvcmVtLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiB0aGVvcmVtVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IG1ldGFMZW1tYU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKG1ldGFMZW1tYU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBNZXRhTGVtbWEgfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBtZXRhTGVtbWEgPSBNZXRhTGVtbWEuZnJvbU1ldGFMZW1tYU5vZGUobWV0YUxlbW1hTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIG1ldGFMZW1tYVZlcmlmaWVzID0gbWV0YUxlbW1hLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhTGVtbWFWZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29uamVjdHVyZU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbmplY3R1cmVOb2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gb250b2xvZ3ksXG4gICAgICAgICAgICAgIGNvbmplY3R1cmUgPSBDb25qZWN0dXJlLmZyb21Db25qZWN0dXJlTm9kZShjb25qZWN0dXJlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIGNvbmplY3R1cmVWZXJpZmllcyA9IGNvbmplY3R1cmUudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbmplY3R1cmVWZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChtZXRhdGhlb3JlbU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBNZXRhdGhlb3JlbSB9ID0gb250b2xvZ3ksXG4gICAgICAgICAgICAgIG1ldGF0aGVvcmVtID0gTWV0YXRoZW9yZW0uZnJvbU1ldGF0aGVvcmVtTm9kZShtZXRhdGhlb3JlbU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBtZXRhdGhlb3JlbVZlcmlmaWVzID0gbWV0YXRoZW9yZW0udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGF0aGVvcmVtVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFZhcmlhYmxlRGVjbGFyYXRpb24gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uID0gVmFyaWFibGVEZWNsYXJhdGlvbi5mcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZXMgPSB2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBTaW1wbGVUeXBlRGVjbGFyYXRpb24gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBzaW1wbGVUeXBlRGVjbGFyYXRpb24gPSBTaW1wbGVUeXBlRGVjbGFyYXRpb24uZnJvbVNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUoc2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHNpbXBsZVR5cGVEZWNsYXJhdGlvblZlcmlmaWVzID0gc2ltcGxlVHlwZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBzaW1wbGVUeXBlRGVjbGFyYXRpb25WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFR5cGVQcmVmaXhEZWNsYXJhdGlvbiB9ID0gb250b2xvZ3ksXG4gICAgICAgICAgICAgIHR5cGVQcmVmaXhEZWNsYXJhdGlvbiA9IFR5cGVQcmVmaXhEZWNsYXJhdGlvbi5mcm9tVHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSh0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uVmVyaWZpZXMgPSB0eXBlUHJlZml4RGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGVQcmVmaXhEZWNsYXJhdGlvblZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29tYmluYXRvckRlY2xhcmF0aW9uIH0gPSBvbnRvbG9neSxcbiAgICAgICAgICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uID0gQ29tYmluYXRvckRlY2xhcmF0aW9uLmZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllcyA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbnN0cnVjdG9yRGVjbGFyYXRpb24gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uID0gQ29uc3RydWN0b3JEZWNsYXJhdGlvbi5mcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZXMgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbXBsZXhUeXBlRGVjbGFyYXRpb24gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uID0gQ29tcGxleFR5cGVEZWNsYXJhdGlvbi5mcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uVmVyaWZpZXMgPSBjb21wbGV4VHlwZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb21wbGV4VHlwZURlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24gfSA9IG9udG9sb2d5LFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiA9IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLmZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllcyA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgdG9wTGV2ZWxWZXJpZmllciA9IG5ldyBUb3BMZXZlbFZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHRvcExldmVsVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsiZXJyb3JOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlTm9kZVF1ZXJ5IiwiYXhpb21Ob2RlUXVlcnkiLCJsZW1tYU5vZGVRdWVyeSIsInNlY3Rpb25Ob2RlUXVlcnkiLCJ0aGVvcmVtTm9kZVF1ZXJ5IiwibWV0YUxlbW1hTm9kZVF1ZXJ5IiwiY29uamVjdHVyZU5vZGVRdWVyeSIsIm1ldGF0aGVvcmVtTm9kZVF1ZXJ5IiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJUb3BMZXZlbFZlcmlmaWVyIiwidmVyaWZ5Iiwibm9kZSIsImZpbGVDb250ZXh0IiwidmVyaWZpZXNBdFRvcExldmVsIiwiY29udGV4dCIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVzIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwiVmVyaWZpZXIiLCJtYXBzIiwiZXJyb3JOb2RlIiwiRXJyb3IiLCJvbnRvbG9neSIsImVycm9yIiwiZnJvbUVycm9yTm9kZSIsImVycm9yVmVyaWZpZXMiLCJydWxlTm9kZSIsIlJ1bGUiLCJydWxlIiwiZnJvbVJ1bGVOb2RlIiwicnVsZVZlcmlmaWVzIiwiYXhpb21Ob2RlIiwiQXhpb20iLCJheGlvbSIsImZyb21BeGlvbU5vZGUiLCJheGlvbVZlcmlmaWVzIiwibGVtbWFOb2RlIiwiTGVtbWEiLCJsZW1tYSIsImZyb21MZW1tYU5vZGUiLCJsZW1tYVZlcmlmaWVzIiwic2VjdGlvbk5vZGUiLCJTZWN0aW9uIiwic2VjdGlvbiIsImZyb21TZWN0aW9uTm9kZSIsInNlY3Rpb25WZXJpZmllcyIsInRoZW9yZW1Ob2RlIiwiVGhlb3JlbSIsInRoZW9yZW0iLCJmcm9tVGhlb3JlbU5vZGUiLCJ0aGVvcmVtVmVyaWZpZXMiLCJtZXRhTGVtbWFOb2RlIiwiTWV0YUxlbW1hIiwibWV0YUxlbW1hIiwiZnJvbU1ldGFMZW1tYU5vZGUiLCJtZXRhTGVtbWFWZXJpZmllcyIsImNvbmplY3R1cmVOb2RlIiwiQ29uamVjdHVyZSIsImNvbmplY3R1cmUiLCJmcm9tQ29uamVjdHVyZU5vZGUiLCJjb25qZWN0dXJlVmVyaWZpZXMiLCJtZXRhdGhlb3JlbU5vZGUiLCJNZXRhdGhlb3JlbSIsIm1ldGF0aGVvcmVtIiwiZnJvbU1ldGF0aGVvcmVtTm9kZSIsIm1ldGF0aGVvcmVtVmVyaWZpZXMiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwiZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzIiwic2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSIsIlNpbXBsZVR5cGVEZWNsYXJhdGlvbiIsInNpbXBsZVR5cGVEZWNsYXJhdGlvbiIsImZyb21TaW1wbGVUeXBlRGVjbGFyYXRpb25Ob2RlIiwic2ltcGxlVHlwZURlY2xhcmF0aW9uVmVyaWZpZXMiLCJ0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwiVHlwZVByZWZpeERlY2xhcmF0aW9uIiwidHlwZVByZWZpeERlY2xhcmF0aW9uIiwiZnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlUHJlZml4RGVjbGFyYXRpb25WZXJpZmllcyIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJDb21iaW5hdG9yRGVjbGFyYXRpb24iLCJjb21iaW5hdG9yRGVjbGFyYXRpb24iLCJmcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvblZlcmlmaWVzIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJDb25zdHJ1Y3RvckRlY2xhcmF0aW9uIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbiIsImZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25WZXJpZmllcyIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiQ29tcGxleFR5cGVEZWNsYXJhdGlvbiIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb24iLCJmcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uVmVyaWZpZXMiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIiwiZnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZXMiLCJ0b3BMZXZlbFZlcmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEyTUE7OztlQUFBOzs7K0RBek1xQjsrREFDQTtxQkFFSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- import { arrayUtilities } from "necessary";
4
-
5
- import ontology from "../ontology";
6
- import Verifier from "../verifier";
7
-
8
- import { nodeQuery } from "../utilities/query";
9
- import { TYPE_TYPE } from "../constants";
10
-
11
- const { last } = arrayUtilities;
12
-
13
- const termNodeQuery = nodeQuery("/term"),
14
- typeNodeQuery = nodeQuery("/type");
15
-
16
- class ConstructorVerifier extends Verifier {
17
- verifyTerm(termNode, context) {
18
- let termVerifiesAsConstructor;
19
-
20
- const nonTerminalNode = termNode, ///
21
- childNodes = nonTerminalNode.getChildNodes(),
22
- childNodesVerify = this.verifyChildNodes(childNodes, context, () => {
23
- const verifiesAhead = true;
24
-
25
- return verifiesAhead;
26
- });
27
-
28
- termVerifiesAsConstructor = childNodesVerify; ///
29
-
30
- return termVerifiesAsConstructor;
31
- }
32
-
33
- verifyTerminalNode(terminalNode, ...remainingArguments) {
34
- let terminalNodeVerifies;
35
-
36
- const type = terminalNode.getType();
37
-
38
- if (type === TYPE_TYPE) {
39
- const verifyAhead = remainingArguments.pop(), ///
40
- lastRemainingArgument = last(remainingArguments),
41
- context = lastRemainingArgument, ///
42
- content = terminalNode.getContent(),
43
- typeString = content; ///
44
-
45
- context.debug(`The '${typeString}' type is present in the constructor but has not been declared beforehand.`);
46
-
47
- terminalNodeVerifies = false;
48
-
49
- remainingArguments.push(verifyAhead);
50
- } else {
51
- terminalNodeVerifies = super.verifyTerminalNode(terminalNode, ...remainingArguments);
52
- }
53
-
54
- return terminalNodeVerifies;
55
- }
56
-
57
- static maps = [
58
- {
59
- nodeQuery: termNodeQuery,
60
- verify: (termNode, context, verifyAhead) => {
61
- const { Term } = ontology,
62
- term = Term.fromTermNode(termNode, context),
63
- termVerifies = term.verify(context, verifyAhead);
64
-
65
- return termVerifies;
66
- }
67
- },
68
- {
69
- nodeQuery: typeNodeQuery,
70
- verify: (typeNode, context, verifyAhead) => {
71
- let typeVerifies;
72
-
73
- const nominalTypeName = typeNode.getNominalTypeName(),
74
- typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
75
-
76
- if (typePresent) {
77
- const verifiesAhead = verifyAhead();
78
-
79
- typeVerifies = verifiesAhead; ///
80
- } else {
81
- const typeString = nominalTypeName; ///
82
-
83
- context.debug(`The '${typeString}' type is not present.`);
84
-
85
- typeVerifies = false;
86
- }
87
-
88
- return typeVerifies;
89
- }
90
- }
91
- ];
92
- }
93
-
94
- const constructorVerifier = new ConstructorVerifier();
95
-
96
- export default constructorVerifier;
@@ -1,204 +0,0 @@
1
- "use strict";
2
-
3
- import ontology from "../ontology";
4
- import Verifier from "../verifier";
5
-
6
- import { nodeQuery } from "../utilities/query";
7
-
8
- const errorNodeQuery = nodeQuery("/error"),
9
- ruleNodeQuery = nodeQuery("/rule"),
10
- axiomNodeQuery = nodeQuery("/axiom"),
11
- lemmaNodeQuery = nodeQuery("/lemma"),
12
- sectionNodeQuery = nodeQuery("/section"),
13
- theoremNodeQuery = nodeQuery("/theorem"),
14
- metaLemmaNodeQuery = nodeQuery("/metaLemma"),
15
- conjectureNodeQuery = nodeQuery("/conjecture"),
16
- metatheoremNodeQuery = nodeQuery("/metatheorem"),
17
- variableDeclarationNodeQuery = nodeQuery("/variableDeclaration"),
18
- combinatorDeclarationNodeQuery = nodeQuery("/combinatorDeclaration"),
19
- simpleTypeDeclarationNodeQuery = nodeQuery("/simpleTypeDeclaration"),
20
- typePrefixDeclarationNodeQuery = nodeQuery("/typePrefixDeclaration"),
21
- constructorDeclarationNodeQuery = nodeQuery("/constructorDeclaration"),
22
- complexTypeDeclarationNodeQuery = nodeQuery("/complexTypeDeclaration"),
23
- metavariableDeclarationNodeQuery = nodeQuery("/metavariableDeclaration");
24
-
25
- class TopLevelVerifier extends Verifier {
26
- verify(node, fileContext) {
27
- let verifiesAtTopLevel;
28
-
29
- const context = fileContext, ///
30
- nonTerminalNode = node, ///
31
- nonTerminalNodeVerifies = this.verifyNonTerminalNode(nonTerminalNode, context);
32
-
33
- verifiesAtTopLevel = nonTerminalNodeVerifies; ///
34
-
35
- return verifiesAtTopLevel;
36
- }
37
-
38
- static maps = [
39
- {
40
- nodeQuery: errorNodeQuery,
41
- verify: (errorNode, context) => {
42
- const { Error } = ontology,
43
- error = Error.fromErrorNode(errorNode, context),
44
- errorVerifies = error.verify();
45
-
46
- return errorVerifies;
47
- }
48
- },
49
- {
50
- nodeQuery: ruleNodeQuery,
51
- verify: (ruleNode, context) => {
52
- const { Rule } = ontology,
53
- rule = Rule.fromRuleNode(ruleNode, context),
54
- ruleVerifies = rule.verify();
55
-
56
- return ruleVerifies;
57
- }
58
- },
59
- {
60
- nodeQuery: axiomNodeQuery,
61
- verify: (axiomNode, context) => {
62
- const { Axiom } = ontology,
63
- axiom = Axiom.fromAxiomNode(axiomNode, context),
64
- axiomVerifies = axiom.verify();
65
-
66
- return axiomVerifies;
67
- }
68
- },
69
- {
70
- nodeQuery: lemmaNodeQuery,
71
- verify: (lemmaNode, context) => {
72
- const { Lemma } = ontology,
73
- lemma = Lemma.fromLemmaNode(lemmaNode, context),
74
- lemmaVerifies = lemma.verify();
75
-
76
- return lemmaVerifies;
77
- }
78
- },
79
- {
80
- nodeQuery: sectionNodeQuery,
81
- verify: (sectionNode, context) => {
82
- const { Section } = ontology,
83
- section = Section.fromSectionNode(sectionNode, context),
84
- sectionVerifies = section.verify();
85
-
86
- return sectionVerifies;
87
- }
88
- },
89
- {
90
- nodeQuery: theoremNodeQuery,
91
- verify: (theoremNode, context) => {
92
- const { Theorem } = ontology,
93
- theorem = Theorem.fromTheoremNode(theoremNode, context),
94
- theoremVerifies = theorem.verify();
95
-
96
- return theoremVerifies;
97
- }
98
- },
99
- {
100
- nodeQuery: metaLemmaNodeQuery,
101
- verify: (metaLemmaNode, context) => {
102
- const { MetaLemma } = ontology,
103
- metaLemma = MetaLemma.fromMetaLemmaNode(metaLemmaNode, context),
104
- metaLemmaVerifies = metaLemma.verify();
105
-
106
- return metaLemmaVerifies;
107
- }
108
- },
109
- {
110
- nodeQuery: conjectureNodeQuery,
111
- verify: (conjectureNode, context) => {
112
- const { Conjecture } = ontology,
113
- conjecture = Conjecture.fromConjectureNode(conjectureNode, context),
114
- conjectureVerifies = conjecture.verify();
115
-
116
- return conjectureVerifies;
117
- }
118
- },
119
- {
120
- nodeQuery: metatheoremNodeQuery,
121
- verify: (metatheoremNode, context) => {
122
- const { Metatheorem } = ontology,
123
- metatheorem = Metatheorem.fromMetatheoremNode(metatheoremNode, context),
124
- metatheoremVerifies = metatheorem.verify();
125
-
126
- return metatheoremVerifies;
127
- }
128
- },
129
- {
130
- nodeQuery: variableDeclarationNodeQuery,
131
- verify: (variableDeclarationNode, context) => {
132
- const { VariableDeclaration } = ontology,
133
- variableDeclaration = VariableDeclaration.fromVariableDeclarationNode(variableDeclarationNode, context),
134
- variableDeclarationVerifies = variableDeclaration.verify();
135
-
136
- return variableDeclarationVerifies;
137
- }
138
- },
139
- {
140
- nodeQuery: simpleTypeDeclarationNodeQuery,
141
- verify: (simpleTypeDeclarationNode, context) => {
142
- const { SimpleTypeDeclaration } = ontology,
143
- simpleTypeDeclaration = SimpleTypeDeclaration.fromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context),
144
- simpleTypeDeclarationVerifies = simpleTypeDeclaration.verify();
145
-
146
- return simpleTypeDeclarationVerifies;
147
- }
148
- },
149
- {
150
- nodeQuery: typePrefixDeclarationNodeQuery,
151
- verify: (typePrefixDeclarationNode, context) => {
152
- const { TypePrefixDeclaration } = ontology,
153
- typePrefixDeclaration = TypePrefixDeclaration.fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context),
154
- typePrefixDeclarationVerifies = typePrefixDeclaration.verify();
155
-
156
- return typePrefixDeclarationVerifies;
157
- }
158
- },
159
- {
160
- nodeQuery: combinatorDeclarationNodeQuery,
161
- verify: (combinatorDeclarationNode, context) => {
162
- const { CombinatorDeclaration } = ontology,
163
- combinatorDeclaration = CombinatorDeclaration.fromCombinatorDeclarationNode(combinatorDeclarationNode, context),
164
- combinatorDeclarationVerifies = combinatorDeclaration.verify();
165
-
166
- return combinatorDeclarationVerifies;
167
- }
168
- },
169
- {
170
- nodeQuery: constructorDeclarationNodeQuery,
171
- verify: (constructorDeclarationNode, context) => {
172
- const { ConstructorDeclaration } = ontology,
173
- constructorDeclaration = ConstructorDeclaration.fromConstructorDeclarationNode(constructorDeclarationNode, context),
174
- constructorDeclarationVerifies = constructorDeclaration.verify();
175
-
176
- return constructorDeclarationVerifies;
177
- }
178
- },
179
- {
180
- nodeQuery: complexTypeDeclarationNodeQuery,
181
- verify: (complexTypeDeclarationNode, context) => {
182
- const { ComplexTypeDeclaration } = ontology,
183
- complexTypeDeclaration = ComplexTypeDeclaration.fromComplexTypeDeclarationNode(complexTypeDeclarationNode, context),
184
- complexTypeDeclarationVerifies = complexTypeDeclaration.verify();
185
-
186
- return complexTypeDeclarationVerifies;
187
- }
188
- },
189
- {
190
- nodeQuery: metavariableDeclarationNodeQuery,
191
- verify: (metavariableDeclarationNode, context) => {
192
- const { MetavariableDeclaration } = ontology,
193
- metavariableDeclaration = MetavariableDeclaration.fromMetavariableDeclarationNode(metavariableDeclarationNode, context),
194
- metavariableDeclarationVerifies = metavariableDeclaration.verify();
195
-
196
- return metavariableDeclarationVerifies;
197
- }
198
- }
199
- ];
200
- }
201
-
202
- const topLevelVerifier = new TopLevelVerifier();
203
-
204
- export default topLevelVerifier;