occam-verify-cli 0.0.923 → 0.0.925
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/axiom.js +9 -9
- package/lib/conjecture.js +9 -9
- package/lib/constants.js +1 -9
- package/lib/context/file.js +3 -3
- package/lib/context/local.js +5 -5
- package/lib/lemma.js +9 -9
- package/lib/metaLemma.js +7 -7
- package/lib/metatheorem.js +7 -7
- package/lib/metavariable.js +8 -1
- package/lib/mixins/nodesVerifier/metaLevel.js +2 -2
- package/lib/premise.js +6 -6
- package/lib/theorem.js +9 -9
- package/lib/topLevelAssertion.js +186 -0
- package/lib/verifier/nodes/intrinsicLevel.js +3 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +3 -3
- package/lib/verifier/nodes/metaLevel.js +16 -16
- package/lib/verify/assertion/contained.js +91 -0
- package/lib/verify/assertion/defined.js +114 -0
- package/lib/verify/assertion/subproof.js +65 -0
- package/lib/verify/assertion/type.js +112 -0
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/declaration.js +3 -6
- package/lib/verify/derivation.js +7 -7
- package/lib/verify/equality.js +3 -3
- package/lib/verify/frame.js +2 -2
- package/lib/verify/judgement.js +2 -2
- package/lib/verify/lemma.js +5 -5
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metastatement.js +4 -24
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/metavariable.js +2 -2
- package/lib/verify/proof.js +3 -3
- package/lib/verify/proofStep.js +4 -4
- package/lib/verify/rule.js +3 -3
- package/lib/verify/statement/qualified.js +19 -25
- package/lib/verify/statement/unqualified.js +38 -10
- package/lib/verify/statement.js +106 -97
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +3 -3
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/axiom.js +4 -4
- package/src/conjecture.js +4 -4
- package/src/constants.js +0 -2
- package/src/context/file.js +2 -2
- package/src/context/local.js +4 -3
- package/src/lemma.js +4 -4
- package/src/metaLemma.js +4 -4
- package/src/metatheorem.js +4 -4
- package/src/metavariable.js +6 -0
- package/src/mixins/nodesVerifier/metaLevel.js +1 -1
- package/src/premise.js +6 -6
- package/src/theorem.js +4 -4
- package/src/{metaLemmaMetatheorem.js → topLevelAssertion.js} +16 -26
- package/src/verifier/nodes/intrinsicLevel.js +2 -2
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +3 -3
- package/src/verifier/nodes/metaLevel.js +18 -19
- package/src/verify/assertion/contained.js +111 -0
- package/src/verify/{statementAsDefinedAssertion.js → assertion/defined.js} +25 -41
- package/src/verify/assertion/subproof.js +77 -0
- package/src/verify/{typeAssertion.js → assertion/type.js} +15 -15
- package/src/verify/axiom.js +5 -4
- package/src/verify/conjecture.js +5 -4
- package/src/verify/declaration.js +2 -6
- package/src/verify/derivation.js +6 -6
- package/src/verify/equality.js +2 -2
- package/src/verify/frame.js +1 -1
- package/src/verify/judgement.js +1 -1
- package/src/verify/lemma.js +8 -5
- package/src/verify/metaLemma.js +4 -4
- package/src/verify/metastatement.js +3 -32
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/metavariable.js +1 -1
- package/src/verify/proof.js +2 -2
- package/src/verify/proofStep.js +3 -3
- package/src/verify/rule.js +4 -4
- package/src/verify/statement/qualified.js +30 -33
- package/src/verify/statement/unqualified.js +52 -10
- package/src/verify/statement.js +168 -47
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +2 -2
- package/src/verify/termAsConstructor.js +2 -2
- package/src/verify/theorem.js +7 -4
- package/lib/axiomLemmaTheoremConjecture.js +0 -174
- package/lib/metaLemmaMetatheorem.js +0 -191
- package/lib/verify/statementAsContainedAssertion.js +0 -109
- package/lib/verify/statementAsDefinedAssertion.js +0 -132
- package/lib/verify/typeAssertion.js +0 -112
- package/src/axiomLemmaTheoremConjecture.js +0 -165
- package/src/verify/statementAsContainedAssertion.js +0 -127
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
default: function() {
|
|
13
|
-
return verifyStatementAsDefinedAssertion;
|
|
14
|
-
},
|
|
15
|
-
isStatementDefinedAssertion: function() {
|
|
16
|
-
return isStatementDefinedAssertion;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var _term = /*#__PURE__*/ _interop_require_default(require("./term"));
|
|
20
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
|
|
21
|
-
var _array = require("../utilities/array");
|
|
22
|
-
var _constants = require("../constants");
|
|
23
|
-
var _verify = require("../utilities/verify");
|
|
24
|
-
var _query = require("../utilities/query");
|
|
25
|
-
function _interop_require_default(obj) {
|
|
26
|
-
return obj && obj.__esModule ? obj : {
|
|
27
|
-
default: obj
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
var termNodeQuery = (0, _query.nodeQuery)("/statement/term!"), variableNodeQuery = (0, _query.nodeQuery)("/statement/term/variable!"), operatorTerminalNodesQuery = (0, _query.nodesQuery)("/statement/@operator");
|
|
31
|
-
function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
|
|
32
|
-
var statementVerifiedAsDefinedAssertion = false;
|
|
33
|
-
var statementDefinedAssertion = isStatementDefinedAssertion(statementNode);
|
|
34
|
-
if (statementDefinedAssertion) {
|
|
35
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
36
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement as a defined assertion..."), statementNode);
|
|
37
|
-
var definedAssertionFunctions = [
|
|
38
|
-
verifyDerivedStatementAsDefinedAssertion,
|
|
39
|
-
verifyStatedStatementAsDefinedAssertion
|
|
40
|
-
];
|
|
41
|
-
statementVerifiedAsDefinedAssertion = definedAssertionFunctions.some(function(definedAssertionFunction) {
|
|
42
|
-
var statementVerifiedAsDefinedAssertion = definedAssertionFunction(statementNode, assignments, derived, localContext);
|
|
43
|
-
if (statementVerifiedAsDefinedAssertion) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
if (statementVerifiedAsDefinedAssertion) {
|
|
48
|
-
localContext.debug("...verified the '".concat(statementString, "' statement as a defined assertion."), statementNode);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return statementVerifiedAsDefinedAssertion;
|
|
52
|
-
}
|
|
53
|
-
function verifyDerivedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
|
|
54
|
-
var derivedStatementVerifiedAsDefeindAssertion = false;
|
|
55
|
-
if (derived) {
|
|
56
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
57
|
-
localContext.trace("Verifying the derived '".concat(statementString, "' statement as a defined assertion..."), statementNode);
|
|
58
|
-
var statementNegated = (0, _verify.isStatementNegated)(statementNode), variableNode = variableNodeQuery(statementNode), termNode = termNodeQuery(statementNode);
|
|
59
|
-
if (false) {
|
|
60
|
-
///
|
|
61
|
-
} else if (variableNode !== null) {
|
|
62
|
-
var variable = localContext.findVariableByVariableNode(variableNode);
|
|
63
|
-
if (variable !== null) {
|
|
64
|
-
var variableDefined = localContext.isVariableDefined(variable);
|
|
65
|
-
if (!statementNegated) {
|
|
66
|
-
if (variableDefined) {
|
|
67
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (statementNegated) {
|
|
71
|
-
if (!variableDefined) {
|
|
72
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
} else if (termNode !== null) {
|
|
77
|
-
var terms = [], termVerified = (0, _term.default)(termNode, terms, localContext, function() {
|
|
78
|
-
var verifiedAhead = true;
|
|
79
|
-
return verifiedAhead;
|
|
80
|
-
});
|
|
81
|
-
if (termVerified) {
|
|
82
|
-
var firstTerm = (0, _array.first)(terms), term = firstTerm, termGrounded = localContext.isTermGrounded(term);
|
|
83
|
-
if (!statementNegated) {
|
|
84
|
-
if (termGrounded) {
|
|
85
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (statementNegated) {
|
|
89
|
-
if (!termGrounded) {
|
|
90
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (derivedStatementVerifiedAsDefeindAssertion) {
|
|
96
|
-
localContext.debug("...verified the derived '".concat(statementString, "' statement as a defined assertion."), statementNode);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return derivedStatementVerifiedAsDefeindAssertion;
|
|
100
|
-
}
|
|
101
|
-
function verifyStatedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
|
|
102
|
-
var statedStatementVerifiedAsDefinedAssertion = false;
|
|
103
|
-
if (!derived) {
|
|
104
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
105
|
-
localContext.trace("Verifying the stated '".concat(statementString, "' statement as a defined assertion..."), statementNode);
|
|
106
|
-
var intrinsicLevel = localContext.isIntrinsicLevel();
|
|
107
|
-
if (intrinsicLevel) {
|
|
108
|
-
localContext.debug("The stated '".concat(statementString, "' statement as a defined assertion cannot be verified at intrinsic level."), statementNode);
|
|
109
|
-
} else {
|
|
110
|
-
var nonTerminalNode = statementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
|
|
111
|
-
var verifiedAhead = true;
|
|
112
|
-
return verifiedAhead;
|
|
113
|
-
});
|
|
114
|
-
statedStatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
|
|
115
|
-
}
|
|
116
|
-
if (statedStatementVerifiedAsDefinedAssertion) {
|
|
117
|
-
localContext.debug("...verified the stated '".concat(statementString, "' statement as a defined assertion."), statementNode);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return statedStatementVerifiedAsDefinedAssertion;
|
|
121
|
-
}
|
|
122
|
-
function isStatementDefinedAssertion(statementNode) {
|
|
123
|
-
var operatorTerminalNodes = operatorTerminalNodesQuery(statementNode), statementDefinedAssertion = operatorTerminalNodes.some(function(operatorTerminalNode) {
|
|
124
|
-
var content = operatorTerminalNode.getContent(), contentDefined = content === _constants.DEFINED;
|
|
125
|
-
if (contentDefined) {
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
return statementDefinedAssertion;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi90ZXJtXCI7XG5pbXBvcnQgbWV0YUxldmVsTm9kZVZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2RlL21ldGFMZXZlbFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRklORUQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpc1N0YXRlbWVudE5lZ2F0ZWQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90ZXJtIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIG9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdGF0ZW1lbnQvQG9wZXJhdG9yXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uID0gaXNTdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICAgIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgICB2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb25cbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKGRlZmluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBkZXJpdmVkICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROZWdhdGVkID0gaXNTdGF0ZW1lbnROZWdhdGVkKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZURlZmluZWQgPSBsb2NhbENvbnRleHQuaXNWYXJpYWJsZURlZmluZWQodmFyaWFibGUpO1xuXG4gICAgICAgIGlmICghc3RhdGVtZW50TmVnYXRlZCkge1xuICAgICAgICAgIGlmICh2YXJpYWJsZURlZmluZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudE5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoIXZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgICAgZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgICAgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgIHRlcm1Hcm91bmRlZCA9IGxvY2FsQ29udGV4dC5pc1Rlcm1Hcm91bmRlZCh0ZXJtKTtcblxuICAgICAgICBpZiAoIXN0YXRlbWVudE5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAodGVybUdyb3VuZGVkKSB7XG4gICAgICAgICAgICBkZXJpdmVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZW1lbnROZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKCF0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgZGVyaXZlZCAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlIHN0YXRlZCAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24gY2Fubm90IGJlIHZlcmlmaWVkIGF0IGludHJpbnNpYyBsZXZlbC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFMZXZlbE5vZGVWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3Qgb3BlcmF0b3JUZXJtaW5hbE5vZGVzID0gb3BlcmF0b3JUZXJtaW5hbE5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudERlZmluZWRBc3NlcnRpb24gPSBvcGVyYXRvclRlcm1pbmFsTm9kZXMuc29tZSgob3BlcmF0b3JUZXJtaW5hbE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gb3BlcmF0b3JUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICAgIGNvbnRlbnREZWZpbmVkID0gKGNvbnRlbnQgPT09IERFRklORUQpO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnREZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsImlzU3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudERlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImRlZmluZWRBc3NlcnRpb25GdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwic29tZSIsImRlZmluZWRBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uIiwic3RhdGVtZW50TmVnYXRlZCIsImlzU3RhdGVtZW50TmVnYXRlZCIsInZhcmlhYmxlTm9kZSIsInRlcm1Ob2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRGVmaW5lZCIsImlzVmFyaWFibGVEZWZpbmVkIiwidGVybXMiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwidmVyaWZpZWRBaGVhZCIsImZpcnN0VGVybSIsImZpcnN0IiwidGVybSIsInRlcm1Hcm91bmRlZCIsImlzVGVybUdyb3VuZGVkIiwic3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJpbnRyaW5zaWNMZXZlbCIsImlzSW50cmluc2ljTGV2ZWwiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm1ldGFMZXZlbE5vZGVWZXJpZmllciIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm9wZXJhdG9yVGVybWluYWxOb2RlcyIsIm9wZXJhdG9yVGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJjb250ZW50RGVmaW5lZCIsIkRFRklORUQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWNBLE9BNkJDO2VBN0J1QkE7O0lBaUlSQywyQkFBMkI7ZUFBM0JBOzs7MkRBN0lPO2dFQUNXO3FCQUVaO3lCQUNFO3NCQUNXO3FCQUNHOzs7Ozs7QUFFdEMsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHFCQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM5QkUsNkJBQTZCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRS9CLFNBQVNOLGtDQUFrQ08sYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN6RyxJQUFJQyxzQ0FBc0M7SUFFMUMsSUFBTUMsNEJBQTRCWCw0QkFBNEJNO0lBRTlELElBQUlLLDJCQUEyQjtRQUM3QixJQUFNQyxrQkFBa0JILGFBQWFJLFlBQVksQ0FBQ1A7UUFFbERHLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLDBDQUF3Q047UUFFN0YsSUFBTVMsNEJBQTRCO1lBQ2hDQztZQUNBQztTQUNEO1FBRURQLHND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
|
|
@@ -1,112 +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 verifyTypeAssertion;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _variable = /*#__PURE__*/ _interop_require_default(require("../variable"));
|
|
12
|
-
var _term = /*#__PURE__*/ _interop_require_default(require("../verify/term"));
|
|
13
|
-
var _variable1 = /*#__PURE__*/ _interop_require_default(require("../assignment/variable"));
|
|
14
|
-
var _array = require("../utilities/array");
|
|
15
|
-
var _query = require("../utilities/query");
|
|
16
|
-
function _interop_require_default(obj) {
|
|
17
|
-
return obj && obj.__esModule ? obj : {
|
|
18
|
-
default: obj
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
var termNodeQuery = (0, _query.nodeQuery)("/typeAssertion/term!"), typeNodeQuery = (0, _query.nodeQuery)("/typeAssertion/type!"), variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
22
|
-
function verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead) {
|
|
23
|
-
var typeAssertionVerified;
|
|
24
|
-
var typeAssertionString = localContext.nodeAsString(typeAssertionNode);
|
|
25
|
-
localContext.trace("Verifying the '".concat(typeAssertionString, "' type assertion..."), typeAssertionNode);
|
|
26
|
-
var verifyTypeAssertionFunctions = [
|
|
27
|
-
verifyDerivedTypeAssertion,
|
|
28
|
-
verifyStatedTypeAssertion
|
|
29
|
-
];
|
|
30
|
-
typeAssertionVerified = verifyTypeAssertionFunctions.some(function(verifyTypeAssertionFunction) {
|
|
31
|
-
var typeAssertionVerified = verifyTypeAssertionFunction(typeAssertionNode, assignments, derived, localContext, verifyAhead);
|
|
32
|
-
if (typeAssertionVerified) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
if (typeAssertionVerified) {
|
|
37
|
-
localContext.debug("...verified the '".concat(typeAssertionString, "' type assertion."), typeAssertionNode);
|
|
38
|
-
}
|
|
39
|
-
return typeAssertionVerified;
|
|
40
|
-
}
|
|
41
|
-
function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead) {
|
|
42
|
-
var derivedTypeAssertionVerified = false;
|
|
43
|
-
if (derived) {
|
|
44
|
-
var typeAssertionString = localContext.nodeAsString(typeAssertionNode);
|
|
45
|
-
localContext.trace("Verifying the '".concat(typeAssertionString, "' derived type assertion..."), typeAssertionNode);
|
|
46
|
-
var terms = [], termNode = termNodeQuery(typeAssertionNode), termVerified = (0, _term.default)(termNode, terms, localContext, function() {
|
|
47
|
-
var verifiedAhead = false;
|
|
48
|
-
var typeNode = typeNodeQuery(typeAssertionNode), type = localContext.findTypeByTypeNode(typeNode);
|
|
49
|
-
if (type !== null) {
|
|
50
|
-
var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = localContext.getTermType(term), typeEqualToOrSuperTypeOfTermType = type.isEqualToOrSuperTypeOf(termType);
|
|
51
|
-
if (typeEqualToOrSuperTypeOfTermType) {
|
|
52
|
-
var variableNode = variableNodeQuery(termNode);
|
|
53
|
-
if (variableNode === null) {
|
|
54
|
-
verifiedAhead = verifyAhead();
|
|
55
|
-
} else {
|
|
56
|
-
var variable = localContext.findVariableByVariableNode(variableNode);
|
|
57
|
-
variable = _variable.default.fromVariableAndType(variable, type);
|
|
58
|
-
var variableAssignment = _variable1.default.fromVariable(variable), assignment = variableAssignment; ///
|
|
59
|
-
assignments.push(assignment);
|
|
60
|
-
verifiedAhead = verifyAhead();
|
|
61
|
-
if (!verifiedAhead) {
|
|
62
|
-
assignments.pop();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return verifiedAhead;
|
|
68
|
-
});
|
|
69
|
-
derivedTypeAssertionVerified = termVerified; ///
|
|
70
|
-
if (derivedTypeAssertionVerified) {
|
|
71
|
-
localContext.trace("...verified the '".concat(typeAssertionString, "' derived type assertion."), typeAssertionNode);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return derivedTypeAssertionVerified;
|
|
75
|
-
}
|
|
76
|
-
function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead) {
|
|
77
|
-
var statedTypeAssertionVerified = false;
|
|
78
|
-
if (!derived) {
|
|
79
|
-
var typeAssertionString = localContext.nodeAsString(typeAssertionNode);
|
|
80
|
-
localContext.trace("Verifying the '".concat(typeAssertionString, "' stated type assertion..."), typeAssertionNode);
|
|
81
|
-
var terms = [], termNode = termNodeQuery(typeAssertionNode), termVerified = (0, _term.default)(termNode, terms, localContext, function() {
|
|
82
|
-
var verifiedAhead = false;
|
|
83
|
-
var typeNode = typeNodeQuery(typeAssertionNode), type = localContext.findTypeByTypeNode(typeNode);
|
|
84
|
-
if (type !== null) {
|
|
85
|
-
var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = term.getType(), typeEqualToOrSubTypeOfTermType = type.isEqualToOrSubTypeOf(termType);
|
|
86
|
-
if (typeEqualToOrSubTypeOfTermType) {
|
|
87
|
-
var variableNode = variableNodeQuery(termNode);
|
|
88
|
-
if (variableNode === null) {
|
|
89
|
-
verifiedAhead = verifyAhead();
|
|
90
|
-
} else {
|
|
91
|
-
var variable = localContext.findVariableByVariableNode(variableNode);
|
|
92
|
-
variable = _variable.default.fromVariableAndType(variable, type);
|
|
93
|
-
var variableAssignment = _variable1.default.fromVariable(variable), assignment = variableAssignment; ///
|
|
94
|
-
assignments.push(assignment);
|
|
95
|
-
verifiedAhead = verifyAhead();
|
|
96
|
-
if (!verifiedAhead) {
|
|
97
|
-
assignments.pop();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return verifiedAhead;
|
|
103
|
-
});
|
|
104
|
-
statedTypeAssertionVerified = termVerified; ///
|
|
105
|
-
if (statedTypeAssertionVerified) {
|
|
106
|
-
localContext.trace("...verified the '".concat(typeAssertionString, "' stated type assertion."), typeAssertionNode);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return statedTypeAssertionVerified;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZUFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFZhcmlhYmxlIGZyb20gXCIuLi92YXJpYWJsZVwiO1xuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgVmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L3ZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdHlwZSFcIiksXG4gICAgICB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHR5cGVBc3NlcnRpb25WZXJpZmllZDtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeURlcml2ZWRUeXBlQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlZFR5cGVBc3NlcnRpb25cbiAgXTtcblxuICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAodHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmVkKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIHR5cGUgYXNzZXJ0aW9uLi4uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICAgICAgICB0eXBlID0gbG9jYWxDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgICAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gbG9jYWxDb250ZXh0LmdldFRlcm1UeXBlKHRlcm0pLFxuICAgICAgICAgICAgICAgICAgICB0eXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSA9IHR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZUFuZFR5cGUodmFyaWFibGUsIHR5cGUpO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSB2YXJpYWJsZUFzc2lnbm1lbnQ7ICAvLy9cblxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdGVybVZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZFR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGF0ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHN0YXRlZCB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgICAgICAgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICAgIHRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICB0eXBlRXF1YWxUb09yU3ViVHlwZU9mVGVybVR5cGUgPSB0eXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHRlcm1UeXBlKTtcblxuICAgICAgICAgICAgICBpZiAodHlwZUVxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZUFuZFR5cGUodmFyaWFibGUsIHR5cGUpO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSB2YXJpYWJsZUFzc2lnbm1lbnQ7ICAvLy9cblxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBzdGF0ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB0ZXJtVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlZFR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LnRyYWNlKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHN0YXRlZCB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZFR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0eXBlQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZWRUeXBlQXNzZXJ0aW9uIiwic29tZSIsInZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCIsInRlcm1zIiwidGVybU5vZGUiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwidmVyaWZpZWRBaGVhZCIsInR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsImZpcnN0VGVybSIsImZpcnN0IiwidGVybSIsInRlcm1UeXBlIiwiZ2V0VGVybVR5cGUiLCJ0eXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwiVmFyaWFibGUiLCJmcm9tVmFyaWFibGVBbmRUeXBlIiwidmFyaWFibGVBc3NpZ25tZW50IiwiVmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbVZhcmlhYmxlIiwiYXNzaWdubWVudCIsInB1c2giLCJwb3AiLCJzdGF0ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJnZXRUeXBlIiwidHlwZUVxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBd0JBOzs7K0RBWEg7MkRBQ0U7Z0VBQ1E7cUJBRVQ7cUJBQ0k7Ozs7OztBQUUxQixJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMseUJBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUMseUJBQzFCRSxvQkFBb0JGLElBQUFBLGdCQUFTLEVBQUM7QUFFckIsU0FBU0Ysb0JBQW9CSyxpQkFBaUIsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUM1RyxJQUFJQztJQUVKLElBQU1DLHNCQUFzQkgsYUFBYUksWUFBWSxDQUFDUDtJQUV0REcsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0Isd0JBQXNCTjtJQUUvRSxJQUFNUywrQkFBK0I7UUFDbkNDO1FBQ0FDO0tBQ0Q7SUFFRE4sd0JBQXdCSSw2QkFBNkJHLElBQUksQ0FBQyxTQUFDQztRQUN6RCxJQUFNUix3QkFBd0JRLDRCQUE0QmIsbUJBQW1CQyxhQUFhQyxTQUFTQyxjQUFjQztRQUVqSCxJQUFJQyx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSx1QkFBdUI7UUFDekJGLGFBQWFXLEtBQUssQ0FBQyxBQUFDLG9CQUF1QyxPQUFwQlIscUJBQW9CLHNCQUFvQk47SUFDakY7SUFFQSxPQUFPSztBQUNUO0FBRUEsU0FBU0ss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
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import Label from "./label";
|
|
4
|
-
import Consequent from "./consequent";
|
|
5
|
-
import Supposition from "./supposition";
|
|
6
|
-
import LocalContext from "./context/local";
|
|
7
|
-
|
|
8
|
-
import { reverse, correlate } from "./utilities/array";
|
|
9
|
-
|
|
10
|
-
export default class AxiomLemmaTheoremConjecture {
|
|
11
|
-
constructor(labels, suppositions, consequent, localContext) {
|
|
12
|
-
this.labels = labels;
|
|
13
|
-
this.suppositions = suppositions;
|
|
14
|
-
this.consequent = consequent;
|
|
15
|
-
this.localContext = localContext;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getLabels() {
|
|
19
|
-
return this.labels;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getSuppositions() {
|
|
23
|
-
return this.suppositions;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
getConsequent() {
|
|
27
|
-
return this.consequent;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
getLocalContext() {
|
|
31
|
-
return this.localContext;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
matchStatement(statementNode, localContext) {
|
|
35
|
-
let statementNatches = false;
|
|
36
|
-
|
|
37
|
-
const proofSteps = localContext.getProofSteps(),
|
|
38
|
-
substitutions = [],
|
|
39
|
-
suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.localContext, localContext);
|
|
40
|
-
|
|
41
|
-
if (suppositionsMatch) {
|
|
42
|
-
const consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, localContext);
|
|
43
|
-
|
|
44
|
-
statementNatches = consequentMatches; ///
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return statementNatches;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
matchMetavariableNode(metavariableNode) {
|
|
51
|
-
const matchesMetavariableNode = this.labels.some((label) => {
|
|
52
|
-
const labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
53
|
-
|
|
54
|
-
if (labelMatchesMetavariableNode) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
return matchesMetavariableNode;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
toJSON(tokens) {
|
|
63
|
-
const labelsJSON = this.labels.map((label) => {
|
|
64
|
-
const labelJSON = label.toJSON(tokens);
|
|
65
|
-
|
|
66
|
-
return labelJSON;
|
|
67
|
-
}),
|
|
68
|
-
suppositionsJSON = this.suppositions.map((supposition) => {
|
|
69
|
-
const suppositionJSON = supposition.toJSON(tokens);
|
|
70
|
-
|
|
71
|
-
return suppositionJSON;
|
|
72
|
-
}),
|
|
73
|
-
consequentJSON = this.consequent.toJSON(tokens),
|
|
74
|
-
localContextJSON = this.localContext.toJSON(tokens),
|
|
75
|
-
labels = labelsJSON, ///
|
|
76
|
-
suppositions = suppositionsJSON, ///
|
|
77
|
-
consequent = consequentJSON, ///
|
|
78
|
-
localContext = localContextJSON, ///
|
|
79
|
-
json = {
|
|
80
|
-
labels,
|
|
81
|
-
suppositions,
|
|
82
|
-
consequent,
|
|
83
|
-
localContext
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
return json;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
static fromJSONAndFileContext(Class, json, fileContext) {
|
|
90
|
-
let { labels } = json;
|
|
91
|
-
|
|
92
|
-
const labelsJSON = labels; ///
|
|
93
|
-
|
|
94
|
-
labels = labelsJSON.map((labelJSON) => {
|
|
95
|
-
const json = labelJSON, ///
|
|
96
|
-
label = Label.fromJSONAndFileContext(json, fileContext);
|
|
97
|
-
|
|
98
|
-
return label;
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
let { suppositions, consequent, localContext } = json;
|
|
102
|
-
|
|
103
|
-
const suppositionsJSON = suppositions; ///
|
|
104
|
-
|
|
105
|
-
suppositions = suppositionsJSON.map((suppositionJSON) => {
|
|
106
|
-
const json = suppositionJSON, ///
|
|
107
|
-
supposition = Supposition.fromJSONAndFileContext(json, fileContext);
|
|
108
|
-
|
|
109
|
-
return supposition;
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
const consequentJSON = consequent; ///
|
|
113
|
-
|
|
114
|
-
json = consequentJSON; ///
|
|
115
|
-
|
|
116
|
-
consequent = Consequent.fromJSONAndFileContext(json, fileContext);
|
|
117
|
-
|
|
118
|
-
const localContextJSON = localContext; ///
|
|
119
|
-
|
|
120
|
-
json = localContextJSON; ///
|
|
121
|
-
|
|
122
|
-
localContext = LocalContext.fromJSONAndFileContext(json, fileContext);
|
|
123
|
-
|
|
124
|
-
return new Class(labels, suppositions, consequent, localContext); ///
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
static fromLabelsSuppositionsConsequentAndLocalContext(Class, labels, suppositions, consequent, localContext) { return new Class(labels, suppositions, consequent, localContext); }
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function matchSuppositions(suppositions, proofSteps, substitutions, localContext, statementLocalContext) {
|
|
131
|
-
suppositions = reverse(suppositions); ///
|
|
132
|
-
|
|
133
|
-
proofSteps = reverse(proofSteps); ///
|
|
134
|
-
|
|
135
|
-
const suppositionsMatch = correlate(suppositions, proofSteps, (supposition, proofStep) => {
|
|
136
|
-
const suppositionMatches = matchSupposition(supposition, proofStep, substitutions, localContext, statementLocalContext);
|
|
137
|
-
|
|
138
|
-
if (suppositionMatches) {
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
return suppositionsMatch;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
function matchSupposition(supposition, proofStep, substitutions, localContext, statementLocalContext) {
|
|
147
|
-
let suppositionMatches = false;
|
|
148
|
-
|
|
149
|
-
const statementNode = proofStep.getStatementNode();
|
|
150
|
-
|
|
151
|
-
if (statementNode !== null) {
|
|
152
|
-
const suppositionMatchesStatementNode = supposition.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext);
|
|
153
|
-
|
|
154
|
-
suppositionMatches = suppositionMatchesStatementNode; ///
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return suppositionMatches;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function matchConsequent(consequent, statementNode, substitutions, localContext, statementLocalContext) {
|
|
161
|
-
const consequentMatchesStatementNode = consequent.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext),
|
|
162
|
-
consequentMatches = consequentMatchesStatementNode; ///
|
|
163
|
-
|
|
164
|
-
return consequentMatches;
|
|
165
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import metaLevelNodeVerifier from "../verifier/node/metaLevel";
|
|
4
|
-
|
|
5
|
-
import { CONTAINED } from "../constants";
|
|
6
|
-
import { isStatementNegated } from "../utilities/verify";
|
|
7
|
-
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
8
|
-
|
|
9
|
-
const termNodeQuery = nodeQuery("/statement/term!"),
|
|
10
|
-
statementTermNodesQuery = nodesQuery("/statement/metaArgument/statement//term"),
|
|
11
|
-
operatorTerminalNodesQuery = nodesQuery("/statement/@operator");
|
|
12
|
-
|
|
13
|
-
export default function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
|
|
14
|
-
let statementVerifiedAsContainedAssertion;
|
|
15
|
-
|
|
16
|
-
const statementContainedAssertion = isStatementContainedAssertion(statementNode);
|
|
17
|
-
|
|
18
|
-
if (statementContainedAssertion) {
|
|
19
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
20
|
-
|
|
21
|
-
localContext.trace(`Verifying the '${statementString}' statement as a contained assertion...`, statementNode);
|
|
22
|
-
|
|
23
|
-
const statementFunctions = [
|
|
24
|
-
verifyStatementAsDerivedContainedAssertion,
|
|
25
|
-
verifyStatementAsStatedContainedAssertion
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
statementVerifiedAsContainedAssertion = statementFunctions.some((statementFunction) => {
|
|
29
|
-
const statementVerifiedAsContainedAssertion = statementFunction(statementNode, assignments, derived, localContext);
|
|
30
|
-
|
|
31
|
-
if (statementVerifiedAsContainedAssertion) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
if (statementVerifiedAsContainedAssertion) {
|
|
37
|
-
localContext.debug(`...verified the '${statementString}' statement as a contained assertion.`, statementNode);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return statementVerifiedAsContainedAssertion;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function verifyStatementAsDerivedContainedAssertion(statementNode, assignments, derived, localContext) {
|
|
45
|
-
let statementVerifiedAsDefinedContainedAssertion = false;
|
|
46
|
-
|
|
47
|
-
if (derived) {
|
|
48
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
49
|
-
|
|
50
|
-
localContext.trace(`Verifying the derived '${statementString}' statement as a contained assertion...`, statementNode);
|
|
51
|
-
|
|
52
|
-
const statementNegated = isStatementNegated(statementNode),
|
|
53
|
-
termNode = termNodeQuery(statementNode),
|
|
54
|
-
negated = statementNegated, ///
|
|
55
|
-
statementTermNodes = statementTermNodesQuery(statementNode),
|
|
56
|
-
termNodeMatchesMetaArgumentVariableNode = statementTermNodes.some((statementTermNode) => {
|
|
57
|
-
const termNodeMatchesMetaArgumentVariableNode = termNode.match(statementTermNode);
|
|
58
|
-
|
|
59
|
-
if (termNodeMatchesMetaArgumentVariableNode) {
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (!negated) {
|
|
65
|
-
if (termNodeMatchesMetaArgumentVariableNode) {
|
|
66
|
-
statementVerifiedAsDefinedContainedAssertion = true;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (negated) {
|
|
71
|
-
if (!termNodeMatchesMetaArgumentVariableNode) {
|
|
72
|
-
statementVerifiedAsDefinedContainedAssertion = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (statementVerifiedAsDefinedContainedAssertion) {
|
|
77
|
-
localContext.debug(`...verified the derived '${statementString}' statement as a contained assertion.`, statementNode);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return statementVerifiedAsDefinedContainedAssertion;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function verifyStatementAsStatedContainedAssertion(statementNode, assignments, derived, localContext) {
|
|
85
|
-
let statementVerifiedAsStatedContainedAssertion = false;
|
|
86
|
-
|
|
87
|
-
if (!derived) {
|
|
88
|
-
const statementString = localContext.nodeAsString(statementNode);
|
|
89
|
-
|
|
90
|
-
localContext.trace(`Verifying the stated '${statementString}' statement as a contained assertion...`, statementNode);
|
|
91
|
-
|
|
92
|
-
const intrinsicLevel = localContext.isIntrinsicLevel();
|
|
93
|
-
|
|
94
|
-
if (intrinsicLevel) {
|
|
95
|
-
localContext.debug(`The stated '${statementString}' statement as a contained assertion cannot be verified at intrinsic level.`, statementNode);
|
|
96
|
-
} else {
|
|
97
|
-
const nonTerminalNode = statementNode, ///
|
|
98
|
-
nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
|
|
99
|
-
const verifiedAhead = true;
|
|
100
|
-
|
|
101
|
-
return verifiedAhead;
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
statementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (statementVerifiedAsStatedContainedAssertion) {
|
|
108
|
-
localContext.debug(`...verified the stated '${statementString}' statement as a contained assertion.`, statementNode);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return statementVerifiedAsStatedContainedAssertion;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export function isStatementContainedAssertion(statementNode) {
|
|
116
|
-
const operatorTerminalNodes = operatorTerminalNodesQuery(statementNode),
|
|
117
|
-
statementContainedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
|
|
118
|
-
const content = operatorTerminalNode.getContent(),
|
|
119
|
-
contentContained = (content === CONTAINED);
|
|
120
|
-
|
|
121
|
-
if (contentContained) {
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
return statementContainedAssertion;
|
|
127
|
-
}
|