occam-verify-cli 0.0.879 → 0.0.880
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/context/file.js +1 -8
- package/lib/context/local.js +1 -7
- package/lib/context/localMeta.js +5 -22
- package/lib/metaLemma.js +4 -4
- package/lib/metaLemmaMetatheorem.js +25 -9
- package/lib/metatheorem.js +4 -4
- package/lib/substitution/metastatementForMetavariable.js +20 -1
- package/lib/verifier/nodes/metaLevel.js +2 -2
- package/lib/verify/metaConsequent.js +2 -2
- package/lib/verify/metaDerivation.js +12 -12
- package/lib/verify/metaLemma.js +5 -5
- package/lib/verify/metaSuppositions.js +2 -2
- package/lib/verify/metaproof.js +3 -3
- package/lib/verify/metastatement/qualified.js +11 -4
- package/lib/verify/metatheorem.js +5 -5
- package/lib/verify/metavariableAgainstMetastatement.js +2 -2
- package/lib/verify/ruleDerivation.js +3 -3
- package/package.json +4 -4
- package/src/context/file.js +0 -6
- package/src/context/local.js +0 -2
- package/src/context/localMeta.js +4 -24
- package/src/metaLemma.js +1 -1
- package/src/metaLemmaMetatheorem.js +27 -5
- package/src/metatheorem.js +1 -1
- package/src/substitution/metastatementForMetavariable.js +28 -0
- package/src/verifier/nodes/metaLevel.js +1 -1
- package/src/verify/metaConsequent.js +1 -1
- package/src/verify/metaDerivation.js +10 -11
- package/src/verify/metaLemma.js +6 -5
- package/src/verify/metaSuppositions.js +1 -1
- package/src/verify/metaproof.js +2 -2
- package/src/verify/metastatement/qualified.js +15 -6
- package/src/verify/metatheorem.js +6 -5
- package/src/verify/metavariableAgainstMetastatement.js +1 -1
- package/src/verify/ruleDerivation.js +2 -2
- package/lib/utilities/metaEquivalences.js +0 -15
- package/src/utilities/metaEquivalences.js +0 -5
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _metastatement = /*#__PURE__*/ _interop_require_default(require("../metastatement"));
|
|
12
|
+
var _metavariableAgainstMetastatement = /*#__PURE__*/ _interop_require_default(require("../../verify/metavariableAgainstMetastatement"));
|
|
12
13
|
var _query = require("../../utilities/query");
|
|
13
14
|
function _interop_require_default(obj) {
|
|
14
15
|
return obj && obj.__esModule ? obj : {
|
|
@@ -16,7 +17,7 @@ function _interop_require_default(obj) {
|
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
var metastatementNodeQuery = (0, _query.nodeQuery)("/qualifiedMetastatement/metastatement!"), referenceMetavariableNodeQuery = (0, _query.nodeQuery)("/qualifiedMetastatement/reference!/metavariable!");
|
|
19
|
-
function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
20
|
+
function verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, derived, localMetaContext) {
|
|
20
21
|
var qualifiedMetastatementVerified = false;
|
|
21
22
|
var metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode);
|
|
22
23
|
if (metastatementNode !== null) {
|
|
@@ -27,14 +28,20 @@ function verifyQualifiedMetastatement(qualifiedMetastatementNode, metavariableRe
|
|
|
27
28
|
var ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, metastatementLocalMetaContext);
|
|
28
29
|
qualifiedMetastatementVerified = ruleMatchesMetastatement; ///
|
|
29
30
|
} else {
|
|
30
|
-
if (
|
|
31
|
+
if (substitutions !== null) {
|
|
31
32
|
var metavariableNode = referenceMetavariableNode, metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode, localMetaContext);
|
|
32
33
|
if (metavariablePresent) {
|
|
33
34
|
var metastatementVerified = (0, _metastatement.default)(metastatementNode, assignments, derived, localMetaContext, function() {
|
|
34
35
|
var verifiedAhead = true;
|
|
35
36
|
return verifiedAhead;
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
if (metastatementVerified) {
|
|
39
|
+
var metavariableVerifiedAgainstMetastatement = (0, _metavariableAgainstMetastatement.default)(metavariableNode, metastatementNode, substitutions, function() {
|
|
40
|
+
var verifiedAhead = true;
|
|
41
|
+
return verifiedAhead;
|
|
42
|
+
});
|
|
43
|
+
qualifiedMetastatementVerified = metavariableVerifiedAgainstMetastatement; ///
|
|
44
|
+
}
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
}
|
|
@@ -45,4 +52,4 @@ function verifyQualifiedMetastatement(qualifiedMetastatementNode, metavariableRe
|
|
|
45
52
|
return qualifiedMetastatementVerified;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC9xdWFsaWZpZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlNZXRhc3RhdGVtZW50IGZyb20gXCIuLi9tZXRhc3RhdGVtZW50XCI7XG5pbXBvcnQgdmVyaWZ5TWV0YXZhcmlhYmxlQWdhaW5zdE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uLy4uL3ZlcmlmeS9tZXRhdmFyaWFibGVBZ2FpbnN0TWV0YXN0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKSxcbiAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50L3JlZmVyZW5jZSEvbWV0YXZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCA9IGxvY2FsTWV0YUNvbnRleHQ7IC8vL1xuXG4gICAgbG9jYWxNZXRhQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIG1ldGFzdGF0ZW1lbnQuLi5gLCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgcnVsZSA9IGxvY2FsTWV0YUNvbnRleHQuZmluZFJ1bGVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgaWYgKHJ1bGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJ1bGVNYXRjaGVzTWV0YXN0YXRlbWVudCA9IHJ1bGUubWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHJ1bGVNYXRjaGVzTWV0YXN0YXRlbWVudDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3Vic3RpdHV0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBsb2NhbE1ldGFDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeU1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVWZXJpZmllZEFnYWluc3RNZXRhc3RhdGVtZW50ID0gdmVyaWZ5TWV0YXZhcmlhYmxlQWdhaW5zdE1ldGFzdGF0ZW1lbnQobWV0YXZhcmlhYmxlTm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gbWV0YXZhcmlhYmxlVmVyaWZpZWRBZ2FpbnN0TWV0YXN0YXRlbWVudDsgLy8vXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgbWV0YXN0YXRlbWVudC5gLCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwic3Vic3RpdHV0aW9ucyIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsTWV0YUNvbnRleHQiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJtZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCIsInRyYWNlIiwicmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSIsImxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsInJ1bGUiLCJmaW5kUnVsZUJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlIiwicnVsZU1hdGNoZXNNZXRhc3RhdGVtZW50IiwibWF0Y2hNZXRhc3RhdGVtZW50IiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVByZXNlbnQiLCJpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50IiwidmVyaWZpZWRBaGVhZCIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdE1ldGFzdGF0ZW1lbnQiLCJ2ZXJpZnlNZXRhdmFyaWFibGVBZ2FpbnN0TWV0YXN0YXRlbWVudCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O29FQVJRO3VGQUNtQjtxQkFFekI7Ozs7OztBQUUxQixJQUFNQyx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUMsMkNBQ25DQyxpQ0FBaUNELElBQUFBLGdCQUFTLEVBQUM7QUFFbEMsU0FBU0YsNkJBQTZCSSwwQkFBMEIsRUFBRUMsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQ3BJLElBQUlDLGlDQUFpQztJQUVyQyxJQUFNQyxvQkFBb0JULHVCQUF1Qkc7SUFFakQsSUFBSU0sc0JBQXNCLE1BQU07UUFDOUIsSUFBTUMsc0JBQXNCSCxpQkFBaUJJLFlBQVksQ0FBQ0Ysb0JBQ3BERyxnQ0FBZ0NMLGtCQUFrQixHQUFHO1FBRTNEQSxpQkFBaUJNLEtBQUssQ0FBQyxBQUFDLGtCQUFxQyxPQUFwQkgscUJBQW9CLGlDQUErQlA7UUFFNUYsSUFBTVcsNEJBQTRCWiwrQkFBK0JDLDZCQUMzRFksd0JBQXdCRCwyQkFDeEJFLE9BQU9ULGlCQUFpQlUsK0JBQStCLENBQUNGO1FBRTlELElBQUlDLFNBQVMsTUFBTTtZQUNqQixJQUFNRSwyQkFBMkJGLEtBQUtHLGtCQUFrQixDQUFDVixtQkFBbUJHO1lBRTVFSixpQ0FBaUNVLDBCQUEyQixHQUFHO1FBQ2pFLE9BQU87WUFDTCxJQUFJZCxrQkFBa0IsTUFBTTtnQkFDMUIsSUFBTWdCLG1CQUFtQk4sMkJBQ25CTyxzQkFBc0JkLGlCQUFpQmUsdUNBQXVDLENBQUNGLGtCQUFrQmI7Z0JBRXZHLElBQUljLHFCQUFxQjtvQkFDdkIsSUFBTUUsd0JBQXdCQyxJQUFBQSxzQkFBbUIsRUFBQ2YsbUJBQW1CSixhQUFhQyxTQUFTQyxrQkFBa0I7d0JBQzNHLElBQU1rQixnQkFBZ0I7d0JBRXRCLE9BQU9BO29CQUNUO29CQUVBLElBQUlGLHVCQUF1Qjt3QkFDekIsSUFBTUcsMkNBQTJDQyxJQUFBQSx5Q0FBc0MsRUFBQ1Asa0JBQWtCWCxtQkFBbUJMLGVBQWU7NEJBQzFJLElBQU1xQixnQkFBZ0I7NEJBRXRCLE9BQU9BO3dCQUNUO3dCQUVBakIsaUNBQWlDa0IsMENBQTBDLEdBQUc7b0JBQ2hGO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUlsQixnQ0FBZ0M7WUFDbENELGlCQUFpQnFCLEtBQUssQ0FBQyxBQUFDLG9CQUF1QyxPQUFwQmxCLHFCQUFvQiwrQkFBNkJQO1FBQzlGO0lBQ0Y7SUFFQSxPQUFPSztBQUNUIn0=
|
|
@@ -28,13 +28,13 @@ function verifyMetatheorem(metatheoremNode, fileContext) {
|
|
|
28
28
|
fileContext.trace("Verifying the '".concat(labelsString, "' metatheorem..."), metatheoremNode);
|
|
29
29
|
var labels = [], labelsVerified = (0, _labels.default)(labelsNode, labels, fileContext);
|
|
30
30
|
if (labelsVerified) {
|
|
31
|
-
var metaSuppositions = [], metaSuppositionNodes = metaSuppositionsNodeQuery(metatheoremNode), metaSuppositionsVerified = (0, _metaSuppositions.default)(metaSuppositionNodes, metaSuppositions, localMetaContext);
|
|
31
|
+
var substitutions = [], metaSuppositions = [], metaSuppositionNodes = metaSuppositionsNodeQuery(metatheoremNode), metaSuppositionsVerified = (0, _metaSuppositions.default)(metaSuppositionNodes, metaSuppositions, substitutions, localMetaContext);
|
|
32
32
|
if (metaSuppositionsVerified) {
|
|
33
|
-
var metaConsequents = [], metaConsequentNode = metaConsequentNodeQuery(metatheoremNode), metaConsequentVerified = (0, _metaConsequent.default)(metaConsequentNode, metaConsequents, localMetaContext);
|
|
33
|
+
var metaConsequents = [], metaConsequentNode = metaConsequentNodeQuery(metatheoremNode), metaConsequentVerified = (0, _metaConsequent.default)(metaConsequentNode, metaConsequents, substitutions, localMetaContext);
|
|
34
34
|
if (metaConsequentVerified) {
|
|
35
|
-
var metaproofNode = metaproofNodeQuery(metatheoremNode), firstMetaConsequent = (0, _array.first)(metaConsequents), metaConsequent = firstMetaConsequent, metaproofVerified = (0, _metaproof.default)(metaproofNode, metaConsequent, localMetaContext);
|
|
35
|
+
var metaproofNode = metaproofNodeQuery(metatheoremNode), firstMetaConsequent = (0, _array.first)(metaConsequents), metaConsequent = firstMetaConsequent, metaproofVerified = (0, _metaproof.default)(metaproofNode, metaConsequent, substitutions, localMetaContext);
|
|
36
36
|
if (metaproofVerified) {
|
|
37
|
-
var metatheorem = _metatheorem.default.
|
|
37
|
+
var metatheorem = _metatheorem.default.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
|
|
38
38
|
fileContext.addMetatheorem(metatheorem);
|
|
39
39
|
metatheoremVerified = true;
|
|
40
40
|
}
|
|
@@ -47,4 +47,4 @@ function verifyMetatheorem(metatheoremNode, fileContext) {
|
|
|
47
47
|
return metatheoremVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXRoZW9yZW0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhdGhlb3JlbSBmcm9tIFwiLi4vbWV0YXRoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlNZXRhcHJvb2YgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhcHJvb2ZcIjtcbmltcG9ydCBMb2NhbE1ldGFDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsTWV0YVwiO1xuaW1wb3J0IHZlcmlmeU1ldGFDb25zZXF1ZW50IGZyb20gXCIuLi92ZXJpZnkvbWV0YUNvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlNZXRhU3VwcG9zaXRpb25zIGZyb20gXCIuLi92ZXJpZnkvbWV0YVN1cHBvc2l0aW9uc1wiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbGFiZWxzTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF0aGVvcmVtL2xhYmVscyFcIiksXG4gICAgICBtZXRhcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXRoZW9yZW0vbWV0YXByb29mIVwiKSxcbiAgICAgIG1ldGFDb25zZXF1ZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF0aGVvcmVtL21ldGFDb25zZXF1ZW50IVwiKSxcbiAgICAgIG1ldGFTdXBwb3NpdGlvbnNOb2RlUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGF0aGVvcmVtL21ldGFTdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5TWV0YXRoZW9yZW0obWV0YXRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXRoZW9yZW1WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsc05vZGUgPSBsYWJlbHNOb2RlUXVlcnkobWV0YXRoZW9yZW1Ob2RlKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKGxhYmVsc05vZGUpLFxuICAgICAgICBsb2NhbE1ldGFDb250ZXh0ID0gTG9jYWxNZXRhQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIG1ldGF0aGVvcmVtLi4uYCwgbWV0YXRoZW9yZW1Ob2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxzTm9kZSwgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhU3VwcG9zaXRpb25Ob2RlcyA9IG1ldGFTdXBwb3NpdGlvbnNOb2RlUXVlcnkobWV0YXRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICBtZXRhU3VwcG9zaXRpb25zVmVyaWZpZWQgPSB2ZXJpZnlNZXRhU3VwcG9zaXRpb25zKG1ldGFTdXBwb3NpdGlvbk5vZGVzLCBtZXRhU3VwcG9zaXRpb25zLCBzdWJzdGl0dXRpb25zLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChtZXRhU3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGFDb25zZXF1ZW50cyA9IFtdLFxuICAgICAgICAgICAgbWV0YUNvbnNlcXVlbnROb2RlID0gbWV0YUNvbnNlcXVlbnROb2RlUXVlcnkobWV0YXRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlNZXRhQ29uc2VxdWVudChtZXRhQ29uc2VxdWVudE5vZGUsIG1ldGFDb25zZXF1ZW50cywgc3Vic3RpdHV0aW9ucywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhQ29uc2VxdWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFwcm9vZk5vZGUgPSBtZXRhcHJvb2ZOb2RlUXVlcnkobWV0YXRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RNZXRhQ29uc2VxdWVudCA9IGZpcnN0KG1ldGFDb25zZXF1ZW50cyksXG4gICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50ID0gZmlyc3RNZXRhQ29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlZlcmlmaWVkID0gdmVyaWZ5TWV0YXByb29mKG1ldGFwcm9vZk5vZGUsIG1ldGFDb25zZXF1ZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICBpZiAobWV0YXByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBtZXRhdGhlb3JlbSA9IE1ldGF0aGVvcmVtLmZyb21MYWJlbHNNZXRhU3VwcG9zaXRpb25zTWV0YUNvbnNlcXVlbnRTdWJzdGl0dXRpb25zQW5kRmlsZUNvbnRleHQobGFiZWxzLCBtZXRhU3VwcG9zaXRpb25zLCBtZXRhQ29uc2VxdWVudCwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgZmlsZUNvbnRleHQuYWRkTWV0YXRoZW9yZW0obWV0YXRoZW9yZW0pO1xuXG4gICAgICAgICAgbWV0YXRoZW9yZW1WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXRoZW9yZW1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgbWV0YXRoZW9yZW0uYCwgbWV0YXRoZW9yZW1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdGhlb3JlbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeU1ldGF0aGVvcmVtIiwibGFiZWxzTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXByb29mTm9kZVF1ZXJ5IiwibWV0YUNvbnNlcXVlbnROb2RlUXVlcnkiLCJtZXRhU3VwcG9zaXRpb25zTm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGF0aGVvcmVtTm9kZSIsImZpbGVDb250ZXh0IiwibWV0YXRoZW9yZW1WZXJpZmllZCIsImxhYmVsc05vZGUiLCJsYWJlbHNTdHJpbmciLCJub2RlQXNTdHJpbmciLCJsb2NhbE1ldGFDb250ZXh0IiwiTG9jYWxNZXRhQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInRyYWNlIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdWJzdGl0dXRpb25zIiwibWV0YVN1cHBvc2l0aW9ucyIsIm1ldGFTdXBwb3NpdGlvbk5vZGVzIiwibWV0YVN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwidmVyaWZ5TWV0YVN1cHBvc2l0aW9ucyIsIm1ldGFDb25zZXF1ZW50cyIsIm1ldGFDb25zZXF1ZW50Tm9kZSIsIm1ldGFDb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlNZXRhQ29uc2VxdWVudCIsIm1ldGFwcm9vZk5vZGUiLCJmaXJzdE1ldGFDb25zZXF1ZW50IiwiZmlyc3QiLCJtZXRhQ29uc2VxdWVudCIsIm1ldGFwcm9vZlZlcmlmaWVkIiwidmVyaWZ5TWV0YXByb29mIiwibWV0YXRoZW9yZW0iLCJNZXRhdGhlb3JlbSIsImZyb21MYWJlbHNNZXRhU3VwcG9zaXRpb25zTWV0YUNvbnNlcXVlbnRTdWJzdGl0dXRpb25zQW5kRmlsZUNvbnRleHQiLCJhZGRNZXRhdGhlb3JlbSIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUF3QkE7OztrRUFmQTs2REFDQztnRUFDRztnRUFDQztxRUFDSTt1RUFDRTtxQkFFYjtxQkFDZ0I7Ozs7OztBQUV0QyxJQUFNQyxrQkFBa0JDLElBQUFBLGdCQUFTLEVBQUMseUJBQzVCQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUMsNEJBQy9CRSwwQkFBMEJGLElBQUFBLGdCQUFTLEVBQUMsaUNBQ3BDRyw0QkFBNEJDLElBQUFBLGlCQUFVLEVBQUM7QUFFOUIsU0FBU04sa0JBQWtCTyxlQUFlLEVBQUVDLFdBQVc7SUFDcEUsSUFBSUMsc0JBQXNCO0lBRTFCLElBQU1DLGFBQWFULGdCQUFnQk0sa0JBQzdCSSxlQUFlSCxZQUFZSSxZQUFZLENBQUNGLGFBQ3hDRyxtQkFBbUJDLGtCQUFnQixDQUFDQyxlQUFlLENBQUNQO0lBRTFEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxxQkFBbUJKO0lBRXBFLElBQU1VLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVQ7SUFFeEQsSUFBSVUsZ0JBQWdCO1FBQ2xCLElBQU1FLGdCQUFnQixFQUFFLEVBQ2xCQyxtQkFBbUIsRUFBRSxFQUNyQkMsdUJBQXVCakIsMEJBQTBCRSxrQkFDakRnQiwyQkFBMkJDLElBQUFBLHlCQUFzQixFQUFDRixzQkFBc0JELGtCQUFrQkQsZUFBZVA7UUFFL0csSUFBSVUsMEJBQTBCO1lBQzVCLElBQU1FLGtCQUFrQixFQUFFLEVBQ3BCQyxxQkFBcUJ0Qix3QkFBd0JHLGtCQUM3Q29CLHlCQUF5QkMsSUFBQUEsdUJBQW9CLEVBQUNGLG9CQUFvQkQsaUJBQWlCTCxlQUFlUDtZQUV4RyxJQUFJYyx3QkFBd0I7Z0JBQzFCLElBQU1FLGdCQUFnQjFCLG1CQUFtQkksa0JBQ25DdUIsc0JBQXNCQyxJQUFBQSxZQUFLLEVBQUNOLGtCQUM1Qk8saUJBQWlCRixxQkFDakJHLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0wsZUFBZUcsZ0JBQWdCWixlQUFlUDtnQkFFeEYsSUFBSW9CLG1CQUFtQjtvQkFDckIsSUFBTUUsY0FBY0Msb0JBQVcsQ0FBQ0MsbUVBQW1FLENBQUNwQixRQUFRSSxrQkFBa0JXLGdCQUFnQlosZUFBZVo7b0JBRTdKQSxZQUFZOEIsY0FBYyxDQUFDSDtvQkFFM0IxQixzQkFBc0I7Z0JBQ3hCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEscUJBQXFCO1FBQ3ZCRCxZQUFZK0IsS0FBSyxDQUFDLEFBQUMsb0JBQWdDLE9BQWI1QixjQUFhLG1CQUFpQko7SUFDdEU7SUFFQSxPQUFPRTtBQUNUIn0=
|
|
@@ -14,7 +14,7 @@ function _interop_require_default(obj) {
|
|
|
14
14
|
default: obj
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions,
|
|
17
|
+
function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead) {
|
|
18
18
|
var metavariableVerifiedAgainstMetastatement = false;
|
|
19
19
|
var substitution = substitutions.find(function(substitution) {
|
|
20
20
|
var substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNode);
|
|
@@ -41,4 +41,4 @@ function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementN
|
|
|
41
41
|
return metavariableVerifiedAgainstMetastatement;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlQWdhaW5zdE1ldGFzdGF0ZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vbWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGVBZ2FpbnN0TWV0YXN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdE1ldGFzdGF0ZW1lbnQgPSBmYWxzZTtcblxuICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmQoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQSA9IHN1YnN0aXR1dGlvbi5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICBtZXRhdmFyaWFibGVWZXJpZmllZEFnYWluc3RNZXRhc3RhdGVtZW50ID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgY29uc3QgbWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiA9IE1ldGFzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhc3RhdGVtZW50Tm9kZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gbWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgc3Vic3RpdHV0aW9ucy5wdXNoKHN1YnN0aXR1dGlvbik7XG5cbiAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgc3Vic3RpdHV0aW9ucy5wb3AoKTtcbiAgICB9XG5cbiAgICBtZXRhdmFyaWFibGVWZXJpZmllZEFnYWluc3RNZXRhc3RhdGVtZW50ID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWRBZ2FpbnN0TWV0YXN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGVBZ2FpbnN0TWV0YXN0YXRlbWVudCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbnMiLCJ2ZXJpZnlBaGVhZCIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdE1ldGFzdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwic3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmaWVkQWhlYWQiLCJtZXRhc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiTWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21NZXRhdmFyaWFibGVOb2RlQW5kTWV0YXN0YXRlbWVudE5vZGUiLCJwdXNoIiwicG9wIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O21GQUY2Qjs7Ozs7O0FBRXRDLFNBQVNBLHVDQUF1Q0MsZ0JBQWdCLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLFdBQVc7SUFDNUgsSUFBSUMsMkNBQTJDO0lBRS9DLElBQU1DLGVBQWVILGNBQWNJLElBQUksQ0FBQyxTQUFDRDtRQUN2QyxJQUFNRSx1Q0FBdUNGLGFBQWFHLHFCQUFxQixDQUFDUjtRQUVoRixJQUFJTyxzQ0FBc0M7WUFDeEMsT0FBTztRQUNUO0lBQ0YsTUFBTTtJQUVOLElBQUlGLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1JLDJCQUEyQkosYUFBYUssc0JBQXNCLENBQUNUO1FBRXJFLElBQUlRLDBCQUEwQjtZQUM1QixJQUFNRSxnQkFBZ0JSO1lBRXRCQywyQ0FBMkNPLGVBQWUsR0FBRztRQUMvRDtJQUNGLE9BQU87UUFDTCxJQUFJQTtRQUVKLElBQU1DLDJDQUEyQ0MscUNBQXdDLENBQUNDLHdDQUF3QyxDQUFDZCxrQkFBa0JDLG9CQUMvSUksZ0JBQWVPLDBDQUEyQyxHQUFHO1FBRW5FVixjQUFjYSxJQUFJLENBQUNWO1FBRW5CTSxpQkFBZ0JSO1FBRWhCLElBQUksQ0FBQ1EsZ0JBQWU7WUFDbEJULGNBQWNjLEdBQUc7UUFDbkI7UUFFQVosMkNBQTJDTyxnQkFBZSxHQUFHO0lBQy9EO0lBRUEsT0FBT1A7QUFDVCJ9
|
|
@@ -73,8 +73,8 @@ function verifyChild(childNode, localMetaContext) {
|
|
|
73
73
|
case _ruleNames.QUALIFIED_METASTATEMENT_RULE_NAME:
|
|
74
74
|
{
|
|
75
75
|
var qualifiedMetastatementVerified;
|
|
76
|
-
var derived = true, assignments = [],
|
|
77
|
-
qualifiedMetastatementVerified = (0, _qualified.default)(qualifiedMetastatementNode,
|
|
76
|
+
var derived = true, assignments = [], substitutions = null, qualifiedMetastatementNode = childNode; ///
|
|
77
|
+
qualifiedMetastatementVerified = (0, _qualified.default)(qualifiedMetastatementNode, substitutions, assignments, derived, localMetaContext);
|
|
78
78
|
if (qualifiedMetastatementVerified) {
|
|
79
79
|
var assignmentAssigned = (0, _assignments.assignAssignment)(assignments, localMetaContext);
|
|
80
80
|
qualifiedMetastatementVerified = assignmentAssigned; ///
|
|
@@ -106,4 +106,4 @@ function verifyChild(childNode, localMetaContext) {
|
|
|
106
106
|
return childVerified;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVByZW1pc2VzIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZXNcIjtcbmltcG9ydCBMb2NhbE1ldGFDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsTWV0YVwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBjaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVEZXJpdmF0aW9ufHJ1bGVTdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBwcmVtaXNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZVN1YnByb29mL3ByZW1pc2VcIiksXG4gICAgICBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YnByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBsb2NhbE1ldGFDb250ZXh0ID0gTG9jYWxNZXRhQ29udGV4dC5mcm9tTG9jYWxNZXRhQ29udGV4dChsb2NhbE1ldGFDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgcHJlbWlzZU5vZGVzID0gcHJlbWlzZU5vZGVzUXVlcnkocnVsZVN1YnByb29mTm9kZSksXG4gICAgICAgIHByZW1pc2VzVmVyaWZpZWQgPSB2ZXJpZnlQcmVtaXNlcyhwcmVtaXNlTm9kZXMsIHByZW1pc2VzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICBpZiAocHJlbWlzZXNWZXJpZmllZCkge1xuICAgIGNvbnN0IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSA9IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcnVsZVN1YnByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgY2hpbGRWZXJpZmllZDtcblxuICBjb25zdCBjaGlsZE5vZGVSdWxlTmFtZSA9IGNoaWxkTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHN3aXRjaCAoY2hpbGROb2RlUnVsZU5hbWUpIHtcbiAgICBjYXNlIFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHZlcmlmeVJ1bGVTdWJwcm9vZihydWxlU3VicHJvb2ZOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKHJ1bGVTdWJwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21SdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUpO1xuXG4gICAgICAgIGxvY2FsTWV0YUNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgICAgICBjaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZVJlZmVyZW5jZXMgPSB0cnVlLFxuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBjaGlsZE5vZGU7ICAvLy9cblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXZhcmlhYmxlUmVmZXJlbmNlcywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmIChxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBsb2NhbE1ldGFDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgICAgY29uc3QgZGVyaXZlZCA9IHRydWUsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZTsgIC8vL1xuXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIGNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlRGVyaXZhdGlvbiIsImNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsInJ1bGVEZXJpdmF0aW9uTm9kZSIsImxvY2FsTWV0YUNvbnRleHQiLCJydWxlRGVyaXZhdGlvblZlcmlmaWVkIiwiY2hpbGROb2RlcyIsImV2ZXJ5IiwiY2hpbGROb2RlIiwiY2hpbGRWZXJpZmllZCIsInZlcmlmeUNoaWxkIiwidmVyaWZ5UnVsZVN1YkRlcml2YXRpb24iLCJydWxlU3ViRGVyaXZhdGlvbk5vZGUiLCJydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5UnVsZVN1YnByb29mIiwicnVsZVN1YnByb29mTm9kZSIsInJ1bGVTdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxNZXRhQ29udGV4dCIsImZyb21Mb2NhbE1ldGFDb250ZXh0IiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZXMiLCJjaGlsZE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiUlVMRV9TVUJQUk9PRl9SVUxFX05BTUUiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsIlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsIm1ldGF2YXJpYWJsZVJlZmVyZW5jZXMiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7Z0VBZkU7K0RBQ0M7Z0VBQ0U7Z0VBQ1k7a0VBQ0U7MkJBRVY7cUJBQ0s7eUJBQzBFOzs7Ozs7QUFFaEgsSUFBTUMsa0JBQWtCQyxJQUFBQSxp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
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVByZW1pc2VzIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZXNcIjtcbmltcG9ydCBMb2NhbE1ldGFDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsTWV0YVwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBjaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVEZXJpdmF0aW9ufHJ1bGVTdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBwcmVtaXNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZVN1YnByb29mL3ByZW1pc2VcIiksXG4gICAgICBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YnByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBsb2NhbE1ldGFDb250ZXh0ID0gTG9jYWxNZXRhQ29udGV4dC5mcm9tTG9jYWxNZXRhQ29udGV4dChsb2NhbE1ldGFDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgcHJlbWlzZU5vZGVzID0gcHJlbWlzZU5vZGVzUXVlcnkocnVsZVN1YnByb29mTm9kZSksXG4gICAgICAgIHByZW1pc2VzVmVyaWZpZWQgPSB2ZXJpZnlQcmVtaXNlcyhwcmVtaXNlTm9kZXMsIHByZW1pc2VzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICBpZiAocHJlbWlzZXNWZXJpZmllZCkge1xuICAgIGNvbnN0IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSA9IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcnVsZVN1YnByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgY2hpbGRWZXJpZmllZDtcblxuICBjb25zdCBjaGlsZE5vZGVSdWxlTmFtZSA9IGNoaWxkTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHN3aXRjaCAoY2hpbGROb2RlUnVsZU5hbWUpIHtcbiAgICBjYXNlIFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHZlcmlmeVJ1bGVTdWJwcm9vZihydWxlU3VicHJvb2ZOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKHJ1bGVTdWJwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21SdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUpO1xuXG4gICAgICAgIGxvY2FsTWV0YUNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgICAgICBjaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBudWxsLFxuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBjaGlsZE5vZGU7ICAvLy9cblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmIChxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBsb2NhbE1ldGFDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgICAgY29uc3QgZGVyaXZlZCA9IHRydWUsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZTsgIC8vL1xuXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIGNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlRGVyaXZhdGlvbiIsImNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsInJ1bGVEZXJpdmF0aW9uTm9kZSIsImxvY2FsTWV0YUNvbnRleHQiLCJydWxlRGVyaXZhdGlvblZlcmlmaWVkIiwiY2hpbGROb2RlcyIsImV2ZXJ5IiwiY2hpbGROb2RlIiwiY2hpbGRWZXJpZmllZCIsInZlcmlmeUNoaWxkIiwidmVyaWZ5UnVsZVN1YkRlcml2YXRpb24iLCJydWxlU3ViRGVyaXZhdGlvbk5vZGUiLCJydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5UnVsZVN1YnByb29mIiwicnVsZVN1YnByb29mTm9kZSIsInJ1bGVTdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxNZXRhQ29udGV4dCIsImZyb21Mb2NhbE1ldGFDb250ZXh0IiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZXMiLCJjaGlsZE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiUlVMRV9TVUJQUk9PRl9SVUxFX05BTUUiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsIlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsInN1YnN0aXR1dGlvbnMiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7Z0VBZkU7K0RBQ0M7Z0VBQ0U7Z0VBQ1k7a0VBQ0U7MkJBRVY7cUJBQ0s7eUJBQzBFOzs7Ozs7QUFFaEgsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLHdDQUM3QkMsb0JBQW9CRCxJQUFBQSxpQkFBVSxFQUFDLDBCQUMvQkUseUJBQXlCQyxJQUFBQSxnQkFBUyxFQUFDLG9FQUNuQ0MsNkJBQTZCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRTlCLFNBQVNMLHFCQUFxQk8sa0JBQWtCLEVBQUVDLGdCQUFnQjtJQUMvRSxJQUFJQztJQUVKLElBQU1DLGFBQWFULGdCQUFnQk07SUFFbkNFLHlCQUF5QkMsV0FBV0MsS0FBSyxDQUFDLFNBQUNDO1FBQ3pDLElBQU1DLGdCQUFnQkMsWUFBWUYsV0FBV0o7UUFFN0MsSUFBSUssZUFBZTtZQUNqQixPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9KO0FBQ1Q7QUFFQSxTQUFTTSx3QkFBd0JDLHFCQUFxQixFQUFFUixnQkFBZ0I7SUFDdEUsSUFBSVM7SUFFSixJQUFNUCxhQUFhVCxnQkFBZ0JlO0lBRW5DQyw0QkFBNEJQLFdBQVdDLEtBQUssQ0FBQyxTQUFDQztRQUM1QyxJQUFNQyxnQkFBZ0JDLFlBQVlGLFdBQVdKO1FBRTdDLElBQUlLLGVBQWU7WUFDakIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPSTtBQUNUO0FBRUEsU0FBU0MsbUJBQW1CQyxnQkFBZ0IsRUFBRVgsZ0JBQWdCO0lBQzVELElBQUlZLHVCQUF1QjtJQUUzQlosbUJBQW1CYSxrQkFBZ0IsQ0FBQ0Msb0JBQW9CLENBQUNkLG1CQUFtQixHQUFHO0lBRS9FLElBQU1lLFdBQVcsRUFBRSxFQUNiQyxlQUFlckIsa0JBQWtCZ0IsbUJBQ2pDTSxtQkFBbUJDLElBQUFBLGlCQUFjLEVBQUNGLGNBQWNELFVBQVVmO0lBRWhFLElBQUlpQixrQkFBa0I7UUFDcEIsSUFBTVQsd0JBQXdCViwyQkFBMkJhLG1CQUNuREYsNEJBQTRCRix3QkFBd0JDLHVCQUF1QlI7UUFFakYsSUFBSVMsMkJBQTJCO1lBQzdCRyx1QkFBdUI7UUFDekI7SUFDRjtJQUVBLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTTixZQUFZRixTQUFTLEVBQUVKLGdCQUFnQjtJQUM5QyxJQUFJSztJQUVKLElBQU1jLG9CQUFvQmYsVUFBVWdCLFdBQVc7SUFFL0MsT0FBUUQ7UUFDTixLQUFLRSxrQ0FBdUI7WUFBRTtnQkFDNUIsSUFBTVYsbUJBQW1CUCxXQUNuQlEsdUJBQXVCRixtQkFBbUJDLGtCQUFrQlg7Z0JBRWxFLElBQUlZLHNCQUFzQjtvQkFDeEIsSUFBTVUsZ0JBQWdCQyxrQkFBYSxDQUFDQyxvQkFBb0IsQ0FBQ2I7b0JBRXpEWCxpQkFBaUJ5QixnQkFBZ0IsQ0FBQ0g7b0JBRWxDakIsZ0JBQWdCO2dCQUNsQjtnQkFFQTtZQUNGO1FBRUEsS0FBS3FCLDRDQUFpQztZQUFFO2dCQUN0QyxJQUFJQztnQkFFSixJQUFNQyxVQUFVLE1BQ1ZDLGNBQWMsRUFBRSxFQUNoQkMsZ0JBQWdCLE1BQ2hCQyw2QkFBNkIzQixXQUFZLEdBQUc7Z0JBRWxEdUIsaUNBQWlDSyxJQUFBQSxrQkFBNEIsRUFBQ0QsNEJBQTRCRCxlQUFlRCxhQUFhRCxTQUFTNUI7Z0JBRS9ILElBQUkyQixnQ0FBZ0M7b0JBQ2xDLElBQU1NLHFCQUFxQkMsSUFBQUEsNkJBQWdCLEVBQUNMLGFBQWE3QjtvQkFFekQyQixpQ0FBaUNNLG9CQUFvQixHQUFHO2dCQUMxRDtnQkFFQSxJQUFJTixnQ0FBZ0M7b0JBQ2xDLElBQU1RLG9CQUFvQnZDLHVCQUF1Qm1DLDZCQUMzQ1QsaUJBQWdCQyxrQkFBYSxDQUFDYSxxQkFBcUIsQ0FBQ0Q7b0JBRTFEbkMsaUJBQWlCeUIsZ0JBQWdCLENBQUNIO29CQUVsQ2pCLGdCQUFnQnNCLGdDQUFnQyxHQUFHO2dCQUNyRDtnQkFFQTtZQUNGO1FBRUEsS0FBS1UsOENBQW1DO1lBQUU7Z0JBQ3hDLElBQUlDO2dCQUVKLElBQU1WLFdBQVUsTUFDVkMsZUFBYyxFQUFFLEVBQ2hCVSwrQkFBK0JuQyxXQUFZLEdBQUc7Z0JBRXBEa0MsbUNBQW1DRSxJQUFBQSxvQkFBOEIsRUFBQ0QsOEJBQThCVixjQUFhRCxVQUFTNUI7Z0JBRXRILElBQUlzQyxrQ0FBa0M7b0JBQ3BDLElBQU1MLHNCQUFxQkMsSUFBQUEsNkJBQWdCLEVBQUNMLGNBQWE3QjtvQkFFekRzQyxtQ0FBbUNMLHFCQUFvQixHQUFHO2dCQUM1RDtnQkFFQSxJQUFJSyxrQ0FBa0M7b0JBQ3BDLElBQU1ILHFCQUFvQnZDLHVCQUF1QjJDLCtCQUMzQ2pCLGlCQUFnQkMsa0JBQWEsQ0FBQ2EscUJBQXFCLENBQUNEO29CQUUxRG5DLGlCQUFpQnlCLGdCQUFnQixDQUFDSDtvQkFFbENqQixnQkFBZ0I7Z0JBQ2xCO2dCQUVBO1lBQ0Y7SUFDRjtJQUVBLE9BQU9BO0FBQ1QifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.880",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.28",
|
|
14
14
|
"necessary": "^14.0.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
16
|
-
"occam-entities": "^1.0.
|
|
17
|
-
"occam-file-system": "^6.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.786",
|
|
16
|
+
"occam-entities": "^1.0.135",
|
|
17
|
+
"occam-file-system": "^6.0.177",
|
|
18
18
|
"occam-grammar-utilities": "^8.0.205",
|
|
19
19
|
"occam-query": "^3.1.174"
|
|
20
20
|
},
|
package/src/context/file.js
CHANGED
package/src/context/local.js
CHANGED
package/src/context/localMeta.js
CHANGED
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
import contextMixins from "../mixins/context";
|
|
4
4
|
|
|
5
5
|
import { last } from "../utilities/array";
|
|
6
|
-
import { mergeMetaEquivalences } from "../utilities/metaEquivalences";
|
|
7
6
|
|
|
8
7
|
class LocalMetaContext {
|
|
9
|
-
constructor(context, metavariables, metaproofSteps
|
|
8
|
+
constructor(context, metavariables, metaproofSteps) {
|
|
10
9
|
this.context = context;
|
|
11
10
|
this.metavariables = metavariables;
|
|
12
11
|
this.metaproofSteps = metaproofSteps;
|
|
13
|
-
this.metaEquivalences = metaEquivalences;
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
getContext() {
|
|
@@ -34,18 +32,6 @@ class LocalMetaContext {
|
|
|
34
32
|
return metaproofSteps;
|
|
35
33
|
}
|
|
36
34
|
|
|
37
|
-
getMetaEquivalences() {
|
|
38
|
-
let metaEquivalences = this.context.getMetaEquivalences();
|
|
39
|
-
|
|
40
|
-
const metaEquivalencesA = this.metaEquivalences, ///
|
|
41
|
-
metaEquivalencesB = metaEquivalences,
|
|
42
|
-
localMetaContext = this; ///
|
|
43
|
-
|
|
44
|
-
metaEquivalences = mergeMetaEquivalences(metaEquivalencesA, metaEquivalencesB, localMetaContext); ///
|
|
45
|
-
|
|
46
|
-
return metaEquivalences;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
35
|
getVariables() { return this.context.getVariables(); }
|
|
50
36
|
|
|
51
37
|
getEquivalences() { return this.context.getEquivalences(); }
|
|
@@ -102,10 +88,6 @@ class LocalMetaContext {
|
|
|
102
88
|
this.metaproofSteps.push(metaproofStep);
|
|
103
89
|
}
|
|
104
90
|
|
|
105
|
-
addMetaEquivalence(metaEquivalence) {
|
|
106
|
-
this.metaEquivalences.push(metaEquivalence);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
91
|
matchMetastatement(metastatementNode) {
|
|
110
92
|
let metastatementMatches = false;
|
|
111
93
|
|
|
@@ -174,8 +156,7 @@ class LocalMetaContext {
|
|
|
174
156
|
const context = fileContext, ///
|
|
175
157
|
metavariables = [],
|
|
176
158
|
metaproofSteps = [],
|
|
177
|
-
|
|
178
|
-
localMetaContext = new LocalMetaContext(context, metavariables, metaproofSteps, metaEquivalences);
|
|
159
|
+
localMetaContext = new LocalMetaContext(context, metavariables, metaproofSteps);
|
|
179
160
|
|
|
180
161
|
return localMetaContext;
|
|
181
162
|
}
|
|
@@ -183,10 +164,9 @@ class LocalMetaContext {
|
|
|
183
164
|
static fromLocalMetaContext(localMetaContext) {
|
|
184
165
|
const context = localMetaContext, ///
|
|
185
166
|
metavariables = [],
|
|
186
|
-
metaproofSteps = []
|
|
187
|
-
metaEquivalences = [];
|
|
167
|
+
metaproofSteps = [];
|
|
188
168
|
|
|
189
|
-
localMetaContext = new LocalMetaContext(context, metavariables, metaproofSteps
|
|
169
|
+
localMetaContext = new LocalMetaContext(context, metavariables, metaproofSteps); ///
|
|
190
170
|
|
|
191
171
|
return localMetaContext;
|
|
192
172
|
}
|
package/src/metaLemma.js
CHANGED
|
@@ -5,5 +5,5 @@ import MetalemmaMetatheorem from "./metalemmaMetatheorem";
|
|
|
5
5
|
export default class MetaLemma extends MetalemmaMetatheorem {
|
|
6
6
|
static fromJSONAndFileContext(json, fileContext) { return MetalemmaMetatheorem.fromJSONAndFileContext(MetaLemma, json, fileContext); }
|
|
7
7
|
|
|
8
|
-
static
|
|
8
|
+
static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return MetalemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(MetaLemma, labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
|
|
9
9
|
}
|
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
import Label from "./label";
|
|
4
4
|
import MetaConsequent from "./metaConsequent";
|
|
5
5
|
import MetaSupposition from "./metaSupposition";
|
|
6
|
-
import LocalMetaContext from "./context/localMeta";
|
|
7
6
|
|
|
8
7
|
import { prune } from "./utilities/array";
|
|
9
8
|
import { someSubArray } from "./utilities/array";
|
|
9
|
+
import MetastatementForMetavariableSubstitution from "./substitution/metastatementForMetavariable";
|
|
10
10
|
|
|
11
11
|
export default class MetaLemmaMetatheorem {
|
|
12
|
-
constructor(labels, metaSuppositions, metaConsequent, fileContext) {
|
|
12
|
+
constructor(labels, metaSuppositions, metaConsequent, substitutions, fileContext) {
|
|
13
13
|
this.labels = labels;
|
|
14
14
|
this.metaSuppositions = metaSuppositions;
|
|
15
15
|
this.metaConsequent = metaConsequent;
|
|
16
|
+
this.substitutions = substitutions;
|
|
16
17
|
this.fileContext = fileContext;
|
|
17
18
|
}
|
|
18
19
|
|
|
@@ -28,6 +29,10 @@ export default class MetaLemmaMetatheorem {
|
|
|
28
29
|
return this.metaConsequent;
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
getSubstitutions() {
|
|
33
|
+
return this.substitutions;
|
|
34
|
+
}
|
|
35
|
+
|
|
31
36
|
getFileContext() {
|
|
32
37
|
return this.fileContext;
|
|
33
38
|
}
|
|
@@ -91,15 +96,22 @@ export default class MetaLemmaMetatheorem {
|
|
|
91
96
|
return metaSuppositionJSON;
|
|
92
97
|
}),
|
|
93
98
|
metaConsequentJSON = this.metaConsequent.toJSON(tokens),
|
|
99
|
+
substitutionsJSON = this.substitutions.map((substitution) => {
|
|
100
|
+
const substitutionJSON = substitution.toJSON();
|
|
101
|
+
|
|
102
|
+
return substitutionJSON;
|
|
103
|
+
}),
|
|
94
104
|
localContextJSON = this.fileContext.toJSON(tokens),
|
|
95
105
|
labels = labelsJSON, ///
|
|
96
106
|
metaSuppositions = metaSuppositionsJSON, ///
|
|
97
107
|
metaConsequent = metaConsequentJSON, ///
|
|
108
|
+
substitutions = substitutionsJSON, ///
|
|
98
109
|
fileContext = localContextJSON, ///
|
|
99
110
|
json = {
|
|
100
111
|
labels,
|
|
101
112
|
metaSuppositions,
|
|
102
113
|
metaConsequent,
|
|
114
|
+
substitutions,
|
|
103
115
|
fileContext
|
|
104
116
|
};
|
|
105
117
|
|
|
@@ -118,7 +130,7 @@ export default class MetaLemmaMetatheorem {
|
|
|
118
130
|
return label;
|
|
119
131
|
});
|
|
120
132
|
|
|
121
|
-
let { metaSuppositions, metaConsequent } = json;
|
|
133
|
+
let { metaSuppositions, metaConsequent, substitutions } = json;
|
|
122
134
|
|
|
123
135
|
const metaSuppositionsJSON = metaSuppositions; ///
|
|
124
136
|
|
|
@@ -135,10 +147,20 @@ export default class MetaLemmaMetatheorem {
|
|
|
135
147
|
|
|
136
148
|
metaConsequent = MetaConsequent.fromJSONAndFileContext(json, fileContext);
|
|
137
149
|
|
|
138
|
-
|
|
150
|
+
const substitutionsJSON = substitutions; ///
|
|
151
|
+
|
|
152
|
+
substitutions = substitutionsJSON.map((substitutionJSON) => {
|
|
153
|
+
const json = substitutionJSON, ///
|
|
154
|
+
metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromJSONAndFileContext(json, fileContext),
|
|
155
|
+
substitution = metastatementForMetavariableSubstitution; ///
|
|
156
|
+
|
|
157
|
+
return substitution;
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
return new Class(labels, metaSuppositions, metaConsequent, substitutions, fileContext); ///
|
|
139
161
|
}
|
|
140
162
|
|
|
141
|
-
static
|
|
163
|
+
static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Class, labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return new Class(labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
|
|
142
164
|
}
|
|
143
165
|
|
|
144
166
|
function matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, fileContext, metastatementLocalContext) {
|
package/src/metatheorem.js
CHANGED
|
@@ -5,5 +5,5 @@ import MetaLemmaMetatheorem from "./metaLemmaMetatheorem";
|
|
|
5
5
|
export default class Metatheorem extends MetaLemmaMetatheorem {
|
|
6
6
|
static fromJSONAndFileContext(json, fileContext) { return MetaLemmaMetatheorem.fromJSONAndFileContext(Metatheorem, json, fileContext); }
|
|
7
7
|
|
|
8
|
-
static
|
|
8
|
+
static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, fileContext) { return MetaLemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
|
|
9
9
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
import Substitution from "../substitution";
|
|
4
4
|
|
|
5
5
|
import { bracketedMetastatementChildNodeFromMetastatementNode } from "../utilities/metaproof";
|
|
6
|
+
import {nodeAsString} from "../utilities/string";
|
|
7
|
+
import {metastatementNodeFromMetastatementString, metavariableNodeFromMetavariableString} from "../utilities/node";
|
|
6
8
|
|
|
7
9
|
export default class MetastatementForMetavariableSubstitution extends Substitution {
|
|
8
10
|
constructor(metavariableNode, metastatementNode) {
|
|
@@ -44,6 +46,32 @@ export default class MetastatementForMetavariableSubstitution extends Substituti
|
|
|
44
46
|
return metastatementNodeMatches;
|
|
45
47
|
}
|
|
46
48
|
|
|
49
|
+
toJSON(tokens) {
|
|
50
|
+
const metavariableString = nodeAsString(this.metavariableNode, tokens),
|
|
51
|
+
metastatementString = nodeAsString(this.metastatementNode, tokens),
|
|
52
|
+
metavariable = metavariableString, ///
|
|
53
|
+
metastatement = metastatementString, ///
|
|
54
|
+
json = {
|
|
55
|
+
metavariable,
|
|
56
|
+
metastatement
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return json;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static fromJSONAndFileContext(json, fileContext) {
|
|
63
|
+
const { metavariable, metastatement } = json,
|
|
64
|
+
metavariableString = metavariable, ///
|
|
65
|
+
metastatementString = metastatement, ///
|
|
66
|
+
lexer = fileContext.getLexer(),
|
|
67
|
+
parser = fileContext.getParser(),
|
|
68
|
+
metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
|
|
69
|
+
metavariableNode = metavariableNodeFromMetavariableString(metavariableString, lexer, parser),
|
|
70
|
+
metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metastatementNode, metavariableNode);
|
|
71
|
+
|
|
72
|
+
return metastatementForMetavariableSubstitution;
|
|
73
|
+
}
|
|
74
|
+
|
|
47
75
|
static fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode) {
|
|
48
76
|
let metastatementForMetavariableSubstitution;
|
|
49
77
|
|
|
@@ -47,7 +47,7 @@ class MetaLevelNodesVerifier extends NodesVerifier {
|
|
|
47
47
|
|
|
48
48
|
const metavariableNode = metastatementMetavariableNodeA, ///
|
|
49
49
|
metastatementNode = metastatementNodeB, ///
|
|
50
|
-
metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions,
|
|
50
|
+
metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead);
|
|
51
51
|
|
|
52
52
|
metastatementMetavariableNodeVerifiedAgainstMetastatementNode = metavariableVerifiedAgainstMetastatement; ///
|
|
53
53
|
|
|
@@ -8,7 +8,7 @@ import { nodeQuery } from "../utilities/query";
|
|
|
8
8
|
const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
|
|
9
9
|
unqualifiedMetastatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedMetastatement!");
|
|
10
10
|
|
|
11
|
-
export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, localMetaContext) {
|
|
11
|
+
export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localMetaContext) {
|
|
12
12
|
let metaConsequentVerified = false;
|
|
13
13
|
|
|
14
14
|
const metaConsequentString = localMetaContext.nodeAsString(metaConsequentNode);
|
|
@@ -15,13 +15,13 @@ const childNodesQuery = nodesQuery("/metaDerivation|metaSubDerivation/*"),
|
|
|
15
15
|
metaSuppositionNodesQuery = nodesQuery("/metaSubproof/metaSupposition"),
|
|
16
16
|
metaSubDerivationNodeQuery = nodeQuery("/metaSubproof/metaSubDerivation");
|
|
17
17
|
|
|
18
|
-
export default function verifyMetaDerivation(metaDerivationNode, localMetaContext) {
|
|
18
|
+
export default function verifyMetaDerivation(metaDerivationNode, substitutions, localMetaContext) {
|
|
19
19
|
let metaDerivationVerified;
|
|
20
20
|
|
|
21
21
|
const childNodes = childNodesQuery(metaDerivationNode);
|
|
22
22
|
|
|
23
23
|
metaDerivationVerified = childNodes.every((childNode) => {
|
|
24
|
-
const childVerified = verifyChild(childNode, localMetaContext);
|
|
24
|
+
const childVerified = verifyChild(childNode, substitutions, localMetaContext);
|
|
25
25
|
|
|
26
26
|
if (childVerified) {
|
|
27
27
|
return true;
|
|
@@ -31,13 +31,13 @@ export default function verifyMetaDerivation(metaDerivationNode, localMetaContex
|
|
|
31
31
|
return metaDerivationVerified;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
function verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext) {
|
|
34
|
+
function verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext) {
|
|
35
35
|
let metaSubDerivationVerified;
|
|
36
36
|
|
|
37
37
|
const childNodes = childNodesQuery(metaSubDerivationNode);
|
|
38
38
|
|
|
39
39
|
metaSubDerivationVerified = childNodes.every((childNode) => {
|
|
40
|
-
const childVerified = verifyChild(childNode, localMetaContext);
|
|
40
|
+
const childVerified = verifyChild(childNode, substitutions, localMetaContext);
|
|
41
41
|
|
|
42
42
|
if (childVerified) {
|
|
43
43
|
return true;
|
|
@@ -47,18 +47,18 @@ function verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext) {
|
|
|
47
47
|
return metaSubDerivationVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
function verifyMetaSubproof(metaSubproofNode, localMetaContext) {
|
|
50
|
+
function verifyMetaSubproof(metaSubproofNode, substitutions, localMetaContext) {
|
|
51
51
|
let metaSubproofVerified = false;
|
|
52
52
|
|
|
53
53
|
localMetaContext = LocalMetaContext.fromLocalMetaContext(localMetaContext); ///
|
|
54
54
|
|
|
55
55
|
const metaSuppositions = [],
|
|
56
56
|
metaSuppositionNodes = metaSuppositionNodesQuery(metaSubproofNode),
|
|
57
|
-
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, localMetaContext);
|
|
57
|
+
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localMetaContext);
|
|
58
58
|
|
|
59
59
|
if (metaSuppositionsVerified) {
|
|
60
60
|
const metaSubDerivationNode = metaSubDerivationNodeQuery(metaSubproofNode),
|
|
61
|
-
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext);
|
|
61
|
+
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext);
|
|
62
62
|
|
|
63
63
|
if (metaSubDerivationVerified) {
|
|
64
64
|
metaSubproofVerified = true;
|
|
@@ -68,7 +68,7 @@ function verifyMetaSubproof(metaSubproofNode, localMetaContext) {
|
|
|
68
68
|
return metaSubproofVerified;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
function verifyChild(childNode, localMetaContext) {
|
|
71
|
+
function verifyChild(childNode, substitutions, localMetaContext) {
|
|
72
72
|
let childVerified = false;
|
|
73
73
|
|
|
74
74
|
const childNodeRuleName = childNode.getRuleName();
|
|
@@ -79,7 +79,7 @@ function verifyChild(childNode, localMetaContext) {
|
|
|
79
79
|
|
|
80
80
|
const metaSubproofNode = childNode; ///
|
|
81
81
|
|
|
82
|
-
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, localMetaContext);
|
|
82
|
+
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localMetaContext);
|
|
83
83
|
|
|
84
84
|
if (metaSubproofVerified) {
|
|
85
85
|
const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
|
|
@@ -97,10 +97,9 @@ function verifyChild(childNode, localMetaContext) {
|
|
|
97
97
|
|
|
98
98
|
const derived = true,
|
|
99
99
|
assignments = [],
|
|
100
|
-
metavariableReferences = true,
|
|
101
100
|
qualifiedMetastatementNode = childNode; ///
|
|
102
101
|
|
|
103
|
-
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
102
|
+
qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, substitutions, assignments, derived, localMetaContext);
|
|
104
103
|
|
|
105
104
|
if (qualifiedMetastatementVerified) {
|
|
106
105
|
const assignmentAssigned = assignAssignment(assignments, localMetaContext);
|
package/src/verify/metaLemma.js
CHANGED
|
@@ -31,23 +31,24 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
|
|
|
31
31
|
labelsVerified = verifyLabels(labelsNode, labels, fileContext);
|
|
32
32
|
|
|
33
33
|
if (labelsVerified) {
|
|
34
|
-
const
|
|
34
|
+
const substitutions = [],
|
|
35
|
+
metaSuppositions = [],
|
|
35
36
|
metaSuppositionNodes = metaSuppositionsNodeQuery(metaLemmaNode),
|
|
36
|
-
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, localMetaContext);
|
|
37
|
+
metaSuppositionsVerified = verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localMetaContext);
|
|
37
38
|
|
|
38
39
|
if (metaSuppositionsVerified) {
|
|
39
40
|
const metaConsequents = [],
|
|
40
41
|
metaConsequentNode = metaConsequentNodeQuery(metaLemmaNode),
|
|
41
|
-
metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, localMetaContext);
|
|
42
|
+
metaConsequentVerified = verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localMetaContext);
|
|
42
43
|
|
|
43
44
|
if (metaConsequentVerified) {
|
|
44
45
|
const metaproofNode = metaproofNodeQuery(metaLemmaNode),
|
|
45
46
|
firstMetaConsequent = first(metaConsequents),
|
|
46
47
|
metaConsequent = firstMetaConsequent, ///
|
|
47
|
-
metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, localMetaContext);
|
|
48
|
+
metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, substitutions, localMetaContext);
|
|
48
49
|
|
|
49
50
|
if (metaproofVerified) {
|
|
50
|
-
const metaLemma = MetaLemma.
|
|
51
|
+
const metaLemma = MetaLemma.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext);
|
|
51
52
|
|
|
52
53
|
fileContext.addMetaLemma(metaLemma);
|
|
53
54
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import verifyMetaSupposition from "../verify/metaSupposition";
|
|
4
4
|
|
|
5
|
-
export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, localMetaContext) {
|
|
5
|
+
export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, substitutions, localMetaContext) {
|
|
6
6
|
let metaSuppositionsVerified;
|
|
7
7
|
|
|
8
8
|
metaSuppositionsVerified = metaSuppositionNodes.every((metaSuppositionNode) => {
|