occam-verify-cli 0.0.929 → 0.0.931
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.
- package/lib/verifier/nodes/statementAgainstCombinator.js +3 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +2 -2
- package/lib/verify/assertion/contained.js +36 -44
- package/lib/verify/assertion/defined.js +37 -45
- package/lib/verify/statement.js +62 -6
- package/lib/verify/statementAgainstMetaType.js +7 -3
- package/package.json +2 -2
- package/src/verifier/nodes/statementAgainstCombinator.js +4 -3
- package/src/verifier/nodes/termAgainstConstructor.js +1 -1
- package/src/verify/assertion/contained.js +39 -49
- package/src/verify/assertion/defined.js +38 -48
- package/src/verify/statement.js +56 -7
- package/src/verify/statementAgainstMetaType.js +10 -2
- package/lib/verify/metastatement.js +0 -92
- package/src/verify/metastatement.js +0 -114
package/src/verify/statement.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import verifyEquality from "../verify/equality";
|
|
4
4
|
import verifyJudgement from "../verify/judgement";
|
|
5
|
+
import bracketedCombinator from "../ocmbinator/bracketed";
|
|
5
6
|
import verifyTypeAssertion from "../verify/assertion/type";
|
|
6
7
|
import verifyDefinedAssertion from "../verify/assertion/defined";
|
|
7
8
|
import verifySubproofAssertion from "../verify/assertion/subproof";
|
|
@@ -11,9 +12,12 @@ import statementAgainstCombinatorNodesVerifier from "../verifier/nodes/statement
|
|
|
11
12
|
import { nodeQuery } from "../utilities/query";
|
|
12
13
|
import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
13
14
|
|
|
14
|
-
const
|
|
15
|
+
const variableNodeQuery = nodeQuery("/substitution/variable!"),
|
|
16
|
+
equalityNodeQuery = nodeQuery("/statement/equality!"),
|
|
15
17
|
judgementNodeQuery = nodeQuery("/statement/judgement!"),
|
|
18
|
+
termVariableNodeQuery = nodeQuery("/substitution/term/variable!"),
|
|
16
19
|
metavariableNodeQuery = nodeQuery("/statement/metavariable!"),
|
|
20
|
+
substitutionNodeQuery = nodeQuery("/statement/substitution!"),
|
|
17
21
|
typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
|
|
18
22
|
definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
|
|
19
23
|
subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
|
|
@@ -162,12 +166,13 @@ function verifyStatementAsMetavariable(statementNode, assignments, derived, loca
|
|
|
162
166
|
|
|
163
167
|
localContext.trace(`Verifying the '${statementString}' statement as a metavariable...`, statementNode);
|
|
164
168
|
|
|
165
|
-
const
|
|
169
|
+
const metavariableVerified = verifyMetavariable(metavariableNode, localContext);
|
|
166
170
|
|
|
167
|
-
if (
|
|
168
|
-
const
|
|
171
|
+
if (metavariableVerified) {
|
|
172
|
+
const substitutionNode = substitutionNodeQuery(statementNode),
|
|
173
|
+
substitutionVerified = verifySubstitution(substitutionNode, localContext);
|
|
169
174
|
|
|
170
|
-
if (
|
|
175
|
+
if (substitutionVerified) {
|
|
171
176
|
statementVerifiedAsMetavariable = true;
|
|
172
177
|
}
|
|
173
178
|
}
|
|
@@ -277,7 +282,12 @@ function verifyStatementAgainstCombinators(statementNode, assignments, derived,
|
|
|
277
282
|
(subproofAssertionNode === null) &&
|
|
278
283
|
(containedAssertionNode === null) ) {
|
|
279
284
|
|
|
280
|
-
|
|
285
|
+
let combinators = localContext.getCombinators();
|
|
286
|
+
|
|
287
|
+
combinators = [ ///
|
|
288
|
+
bracketedCombinator,
|
|
289
|
+
...combinators
|
|
290
|
+
];
|
|
281
291
|
|
|
282
292
|
statementVerifiedAgainstCombinators = combinators.some((combinator) => {
|
|
283
293
|
const statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, localContext);
|
|
@@ -315,4 +325,43 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
|
|
|
315
325
|
}
|
|
316
326
|
|
|
317
327
|
return statementVerifiedAgainstCombinator;
|
|
318
|
-
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
function verifyMetavariable(metavariableNode, localContext) {
|
|
331
|
+
let metavariableVerified = false;
|
|
332
|
+
|
|
333
|
+
const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
|
|
334
|
+
|
|
335
|
+
if (metavariable !== null) {
|
|
336
|
+
const metaTypeName = metavariable.getMetaTypeName();
|
|
337
|
+
|
|
338
|
+
if (metaTypeName === STATEMENT_META_TYPE_NAME) {
|
|
339
|
+
metavariableVerified = true;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
return metavariableVerified;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
function verifySubstitution(substitutionNode, localContext) {
|
|
347
|
+
let substitutionVerified = false;
|
|
348
|
+
|
|
349
|
+
if (substitutionNode === null) {
|
|
350
|
+
substitutionVerified = true;
|
|
351
|
+
} else {
|
|
352
|
+
const variableNode = variableNodeQuery(substitutionNode),
|
|
353
|
+
variablePresent = localContext.isVariablePresentByVariableNode(variableNode);
|
|
354
|
+
|
|
355
|
+
if (variablePresent) {
|
|
356
|
+
const termVariableNode = termVariableNodeQuery(substitutionNode);
|
|
357
|
+
|
|
358
|
+
if (termVariableNode !== null) {
|
|
359
|
+
const termVariablePresent = localContext.isVariablePresentByVariableNode(termVariableNode);
|
|
360
|
+
|
|
361
|
+
substitutionVerified = termVariablePresent; ///
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
return substitutionVerified;
|
|
367
|
+
}
|
|
@@ -5,14 +5,22 @@ import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
|
5
5
|
|
|
6
6
|
const metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type!");
|
|
7
7
|
|
|
8
|
-
export default function verifyStatementAgainstMetaType(statementNode, metaTypeNode, localContext, verifyAhead) {
|
|
8
|
+
export default function verifyStatementAgainstMetaType(statementNode, metaTypeNode, localContext, verifyAhead, verifyStatement) {
|
|
9
9
|
let statementVerifiedAgainstMetaType = false;
|
|
10
10
|
|
|
11
11
|
const metaTypeTerminalNode = metaTypeTerminalNodeQuery(metaTypeNode),
|
|
12
12
|
content = metaTypeTerminalNode.getContent();
|
|
13
13
|
|
|
14
14
|
if (content === STATEMENT_META_TYPE_NAME) {
|
|
15
|
-
|
|
15
|
+
let verifiedAhead = false;
|
|
16
|
+
|
|
17
|
+
const derived = false,
|
|
18
|
+
assignments = [],
|
|
19
|
+
statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
|
|
20
|
+
|
|
21
|
+
if (statementVerified) {
|
|
22
|
+
verifiedAhead = verifyAhead();
|
|
23
|
+
}
|
|
16
24
|
|
|
17
25
|
statementVerifiedAgainstMetaType = verifiedAhead; ///
|
|
18
26
|
}
|
|
@@ -1,92 +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 _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
|
|
12
|
-
var _query = require("../utilities/query");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
var judgementNodeQuery = (0, _query.nodeQuery)("/statement/judgement!");
|
|
19
|
-
function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
20
|
-
var statementVerified;
|
|
21
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
22
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement..."), statementNode);
|
|
23
|
-
var verifyStatementFunctions = [
|
|
24
|
-
verifyStatementAsIs
|
|
25
|
-
];
|
|
26
|
-
statementVerified = verifyStatementFunctions.some(function(verifyStatementFunction) {
|
|
27
|
-
var statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
|
|
28
|
-
if (statementVerified) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
if (statementVerified) {
|
|
33
|
-
localContext.debug("...verified the '".concat(statementString, "' statement."), statementNode);
|
|
34
|
-
}
|
|
35
|
-
return statementVerified;
|
|
36
|
-
}
|
|
37
|
-
Object.assign(_metaLevel.default, {
|
|
38
|
-
verifyStatement: verifyStatement
|
|
39
|
-
});
|
|
40
|
-
var _default = verifyStatement;
|
|
41
|
-
function verifyStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
42
|
-
var statementVerifiedAsIs;
|
|
43
|
-
var statementJudgement = isStatementJudgement(statementNode);
|
|
44
|
-
if (!statementJudgement) {
|
|
45
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
46
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement as is..."), statementNode);
|
|
47
|
-
var verifyStatementAsIsFunctions = [
|
|
48
|
-
verifyDerivedStatementAsIs,
|
|
49
|
-
verifyStatedStatementAsIs
|
|
50
|
-
];
|
|
51
|
-
statementVerifiedAsIs = verifyStatementAsIsFunctions.some(function(verifyStatementAsIsFunction) {
|
|
52
|
-
var statementVerifiedAsIs = verifyStatementAsIsFunction(statementNode, assignments, derived, localContext);
|
|
53
|
-
if (statementVerifiedAsIs) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
if (statementVerifiedAsIs) {
|
|
58
|
-
localContext.debug("...verified the '".concat(statementString, "' statement as is."), statementNode);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return statementVerifiedAsIs;
|
|
62
|
-
}
|
|
63
|
-
function verifyDerivedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
64
|
-
var derivedStatementVerifiedAsIs = false;
|
|
65
|
-
if (derived) {
|
|
66
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
67
|
-
localContext.debug("Cannot verify the '".concat(statementString, "' derived statement as is."), statementNode);
|
|
68
|
-
}
|
|
69
|
-
return derivedStatementVerifiedAsIs;
|
|
70
|
-
}
|
|
71
|
-
function verifyStatedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
72
|
-
var statedStatementVerifiedAsIs = false;
|
|
73
|
-
if (!derived) {
|
|
74
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
75
|
-
localContext.trace("Verifying the '".concat(statementString, "' stated statement as is..."), statementNode);
|
|
76
|
-
var nonTerminalNode = statementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
|
|
77
|
-
var verifiedAhead = true;
|
|
78
|
-
return verifiedAhead;
|
|
79
|
-
});
|
|
80
|
-
statedStatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
81
|
-
if (statedStatementVerifiedAsIs) {
|
|
82
|
-
localContext.debug("...verified the '".concat(statementString, "' stated statement as is."), statementNode);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return statedStatementVerifiedAsIs;
|
|
86
|
-
}
|
|
87
|
-
function isStatementJudgement(statementNode) {
|
|
88
|
-
var judgementNode = judgementNodeQuery(statementNode), statementJudgement = judgementNode !== null;
|
|
89
|
-
return statementJudgement;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbE5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBqdWRnZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2p1ZGdlbWVudCFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNJc1xuICBdO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24obWV0YUxldmVsTm9kZVZlcmlmaWVyLCB7XG4gIHZlcmlmeVN0YXRlbWVudFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVN0YXRlbWVudDtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNJcyhzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG5cbiAgY29uc3Qgc3RhdGVtZW50SnVkZ2VtZW50ID0gaXNTdGF0ZW1lbnRKdWRnZW1lbnQoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKCFzdGF0ZW1lbnRKdWRnZW1lbnQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBpcy4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdmVyaWZ5U3RhdGVtZW50QXNJc0Z1bmN0aW9ucyA9IFtcbiAgICAgIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0lzLFxuICAgICAgdmVyaWZ5U3RhdGVkU3RhdGVtZW50QXNJc1xuICAgIF07XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzSXMgPSB2ZXJpZnlTdGF0ZW1lbnRBc0lzRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEFzSXNGdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0lzID0gdmVyaWZ5U3RhdGVtZW50QXNJc0Z1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0lzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNJcykge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGlzLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0lzKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzSXMgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQuZGVidWcoYENhbm5vdCB2ZXJpZnkgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgc3RhdGVtZW50IGFzIGlzLmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZFN0YXRlbWVudEFzSXMoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0lzID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGlzLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFMZXZlbE5vZGVWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNJcyA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAoc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0lzKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGlzLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRTdGF0ZW1lbnRWZXJpZmllZEFzSXM7XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGVtZW50SnVkZ2VtZW50KHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50SnVkZ2VtZW50ID0gKGp1ZGdlbWVudE5vZGUgIT09IG51bGwpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRKdWRnZW1lbnQ7XG59Il0sIm5hbWVzIjpbImp1ZGdlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcmlmeVN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNJcyIsInNvbWUiLCJ2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbiIsImRlYnVnIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0YUxldmVsTm9kZVZlcmlmaWVyIiwic3RhdGVtZW50VmVyaWZpZWRBc0lzIiwic3RhdGVtZW50SnVkZ2VtZW50IiwiaXNTdGF0ZW1lbnRKdWRnZW1lbnQiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0lzRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZFN0YXRlbWVudEFzSXMiLCJ2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0lzIiwidmVyaWZ5U3RhdGVtZW50QXNJc0Z1bmN0aW9uIiwiZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNJcyIsInN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNJcyIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwidmVyaWZpZWRBaGVhZCIsImp1ZGdlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNDQTs7O2VBQUE7OztnRUFwQ2tDO3FCQUVSOzs7Ozs7QUFFMUIsSUFBTUEscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXJDLFNBQVNDLGdCQUFnQkMsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN4RSxJQUFJQztJQUVKLElBQU1DLGtCQUFrQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUVsREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQWlDLE9BQWhCRixpQkFBZ0IsbUJBQWlC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
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import metaLevelNodeVerifier from "../verifier/node/metaLevel";
|
|
4
|
-
|
|
5
|
-
import { nodeQuery } from "../utilities/query";
|
|
6
|
-
|
|
7
|
-
const judgementNodeQuery = nodeQuery("/statement/judgement!");
|
|
8
|
-
|
|
9
|
-
function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
10
|
-
let statementVerified;
|
|
11
|
-
|
|
12
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
13
|
-
|
|
14
|
-
localContext.trace(`Verifying the '${statementString}' statement...`, statementNode);
|
|
15
|
-
|
|
16
|
-
const verifyStatementFunctions = [
|
|
17
|
-
verifyStatementAsIs
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
statementVerified = verifyStatementFunctions.some((verifyStatementFunction) => {
|
|
21
|
-
const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
|
|
22
|
-
|
|
23
|
-
if (statementVerified) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
if (statementVerified) {
|
|
29
|
-
localContext.debug(`...verified the '${statementString}' statement.`, statementNode);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return statementVerified;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
Object.assign(metaLevelNodeVerifier, {
|
|
36
|
-
verifyStatement
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
export default verifyStatement;
|
|
40
|
-
|
|
41
|
-
function verifyStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
42
|
-
let statementVerifiedAsIs;
|
|
43
|
-
|
|
44
|
-
const statementJudgement = isStatementJudgement(statementNode);
|
|
45
|
-
|
|
46
|
-
if (!statementJudgement) {
|
|
47
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
48
|
-
|
|
49
|
-
localContext.trace(`Verifying the '${statementString}' statement as is...`, statementNode);
|
|
50
|
-
|
|
51
|
-
const verifyStatementAsIsFunctions = [
|
|
52
|
-
verifyDerivedStatementAsIs,
|
|
53
|
-
verifyStatedStatementAsIs
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
statementVerifiedAsIs = verifyStatementAsIsFunctions.some((verifyStatementAsIsFunction) => {
|
|
57
|
-
const statementVerifiedAsIs = verifyStatementAsIsFunction(statementNode, assignments, derived, localContext);
|
|
58
|
-
|
|
59
|
-
if (statementVerifiedAsIs) {
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (statementVerifiedAsIs) {
|
|
65
|
-
localContext.debug(`...verified the '${statementString}' statement as is.`, statementNode);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return statementVerifiedAsIs;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function verifyDerivedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
73
|
-
let derivedStatementVerifiedAsIs = false;
|
|
74
|
-
|
|
75
|
-
if (derived) {
|
|
76
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
77
|
-
|
|
78
|
-
localContext.debug(`Cannot verify the '${statementString}' derived statement as is.`, statementNode);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return derivedStatementVerifiedAsIs;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function verifyStatedStatementAsIs(statementNode, assignments, derived, localContext) {
|
|
85
|
-
let statedStatementVerifiedAsIs = false;
|
|
86
|
-
|
|
87
|
-
if (!derived) {
|
|
88
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
89
|
-
|
|
90
|
-
localContext.trace(`Verifying the '${statementString}' stated statement as is...`, statementNode);
|
|
91
|
-
|
|
92
|
-
const nonTerminalNode = statementNode, ///
|
|
93
|
-
nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
|
|
94
|
-
const verifiedAhead = true;
|
|
95
|
-
|
|
96
|
-
return verifiedAhead;
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
statedStatementVerifiedAsIs = nonTerminalNodeVerified; ///
|
|
100
|
-
|
|
101
|
-
if (statedStatementVerifiedAsIs) {
|
|
102
|
-
localContext.debug(`...verified the '${statementString}' stated statement as is.`, statementNode);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return statedStatementVerifiedAsIs;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
function isStatementJudgement(statementNode) {
|
|
110
|
-
const judgementNode = judgementNodeQuery(statementNode),
|
|
111
|
-
statementJudgement = (judgementNode !== null);
|
|
112
|
-
|
|
113
|
-
return statementJudgement;
|
|
114
|
-
}
|