occam-verify-cli 0.0.922 → 0.0.923
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/conclusion.js +11 -41
- package/lib/constants.js +1 -5
- package/lib/context/local.js +15 -55
- package/lib/declaration.js +15 -15
- package/lib/metaLemmaMetatheorem.js +59 -59
- package/lib/mixins/nodesVerifier/metaLevel.js +6 -6
- package/lib/premise.js +14 -91
- package/lib/{step/proof.js → proofStep.js} +1 -1
- package/lib/rule.js +1 -45
- package/lib/ruleNames.js +1 -9
- package/lib/substitution/statementForMetavariable.js +9 -1
- package/lib/substitution.js +1 -8
- package/lib/supposition.js +55 -1
- package/lib/utilities/customGrammar.js +2 -2
- package/lib/utilities/match.js +13 -50
- package/lib/utilities/node.js +2 -27
- package/lib/utilities/tokens.js +1 -8
- package/lib/utilities/verify.js +8 -24
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +29 -29
- package/lib/verifier/nodes/metaLevel.js +13 -13
- package/lib/verify/conclusion.js +10 -11
- package/lib/verify/declaration.js +6 -6
- package/lib/verify/metaLemma.js +12 -12
- package/lib/verify/metastatement.js +64 -64
- package/lib/verify/metatheorem.js +12 -12
- package/lib/verify/premise.js +11 -30
- package/lib/verify/proofStep.js +5 -5
- package/lib/verify/rule.js +9 -9
- package/lib/verify/statement/qualified.js +35 -9
- package/lib/verify/statement/unqualified.js +1 -1
- package/lib/verify/supposition.js +3 -3
- package/package.json +1 -1
- package/src/conclusion.js +13 -52
- package/src/constants.js +0 -1
- package/src/context/local.js +17 -64
- package/src/declaration.js +19 -19
- package/src/metaLemmaMetatheorem.js +58 -58
- package/src/mixins/nodesVerifier/metaLevel.js +8 -8
- package/src/premise.js +20 -137
- package/src/rule.js +0 -67
- package/src/ruleNames.js +0 -2
- package/src/substitution/statementForMetavariable.js +14 -0
- package/src/substitution.js +0 -6
- package/src/supposition.js +46 -0
- package/src/utilities/customGrammar.js +1 -2
- package/src/utilities/match.js +13 -60
- package/src/utilities/node.js +3 -32
- package/src/utilities/tokens.js +0 -8
- package/src/utilities/verify.js +4 -20
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +36 -37
- package/src/verifier/nodes/metaLevel.js +17 -17
- package/src/verify/conclusion.js +9 -13
- package/src/verify/declaration.js +7 -7
- package/src/verify/metaLemma.js +22 -22
- package/src/verify/metastatement.js +64 -64
- package/src/verify/metatheorem.js +21 -21
- package/src/verify/premise.js +14 -46
- package/src/verify/proofStep.js +1 -1
- package/src/verify/rule.js +8 -8
- package/src/verify/statement/qualified.js +43 -9
- package/src/verify/statement/unqualified.js +1 -1
- package/src/verify/supposition.js +1 -1
- package/lib/metaConsequent.js +0 -108
- package/lib/metaSupposition.js +0 -160
- package/lib/node/metastatement/bracketed.js +0 -16
- package/lib/step/metaproof.js +0 -106
- package/lib/substitution/metastatementForMetavariable.js +0 -173
- package/lib/verify/metaConsequent.js +0 -50
- package/lib/verify/metaDerivation.js +0 -31
- package/lib/verify/metaSubDerivation.js +0 -25
- package/lib/verify/metaSubproof.js +0 -34
- package/lib/verify/metaSupposition.js +0 -61
- package/lib/verify/metaSuppositions.js +0 -28
- package/lib/verify/metaproof.js +0 -31
- package/lib/verify/metaproofStep.js +0 -98
- package/lib/verify/metastatement/qualified.js +0 -95
- package/lib/verify/metastatement/unqualified.js +0 -37
- package/lib/verify/metastatementAsContainedAssertion.js +0 -109
- package/lib/verify/metastatementAsDefinedAssertion.js +0 -132
- package/lib/verify/metavariableAgainstMetastatement.js +0 -44
- package/src/metaConsequent.js +0 -83
- package/src/metaSupposition.js +0 -127
- package/src/node/metastatement/bracketed.js +0 -9
- package/src/step/metaproof.js +0 -73
- package/src/substitution/metastatementForMetavariable.js +0 -90
- package/src/verify/metaConsequent.js +0 -61
- package/src/verify/metaDerivation.js +0 -23
- package/src/verify/metaSubDerivation.js +0 -22
- package/src/verify/metaSubproof.js +0 -32
- package/src/verify/metaSupposition.js +0 -78
- package/src/verify/metaSuppositions.js +0 -17
- package/src/verify/metaproof.js +0 -28
- package/src/verify/metaproofStep.js +0 -137
- package/src/verify/metastatement/qualified.js +0 -130
- package/src/verify/metastatement/unqualified.js +0 -34
- package/src/verify/metastatementAsContainedAssertion.js +0 -127
- package/src/verify/metastatementAsDefinedAssertion.js +0 -156
- package/src/verify/metavariableAgainstMetastatement.js +0 -42
- /package/src/{step/proof.js → proofStep.js} +0 -0
|
@@ -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 verifyMetastatementAsDefinedAssertion;
|
|
14
|
-
},
|
|
15
|
-
isMetastatementDefinedAssertion: function() {
|
|
16
|
-
return isMetastatementDefinedAssertion;
|
|
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 _query = require("../utilities/query");
|
|
24
|
-
var _verify = require("../utilities/verify");
|
|
25
|
-
function _interop_require_default(obj) {
|
|
26
|
-
return obj && obj.__esModule ? obj : {
|
|
27
|
-
default: obj
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
var termNodeQuery = (0, _query.nodeQuery)("/metastatement/term!"), variableNodeQuery = (0, _query.nodeQuery)("/metastatement/term/variable!"), operatorTerminalNodesQuery = (0, _query.nodesQuery)("/metastatement/@operator");
|
|
31
|
-
function verifyMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
32
|
-
var metastatementVerifiedAsDefinedAssertion = false;
|
|
33
|
-
var metastatementDefinedAssertion = isMetastatementDefinedAssertion(metastatementNode);
|
|
34
|
-
if (metastatementDefinedAssertion) {
|
|
35
|
-
var metastatementString = localContext.nodeAsString(metastatementNode);
|
|
36
|
-
localContext.trace("Verifying the '".concat(metastatementString, "' metastatement as a defined assertion..."), metastatementNode);
|
|
37
|
-
var definedAssertionFunctions = [
|
|
38
|
-
verifyDerivedMetastatementAsDefinedAssertion,
|
|
39
|
-
verifyStatedMetastatementAsDefinedAssertion
|
|
40
|
-
];
|
|
41
|
-
metastatementVerifiedAsDefinedAssertion = definedAssertionFunctions.some(function(definedAssertionFunction) {
|
|
42
|
-
var metastatementVerifiedAsDefinedAssertion = definedAssertionFunction(metastatementNode, assignments, derived, localContext);
|
|
43
|
-
if (metastatementVerifiedAsDefinedAssertion) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
if (metastatementVerifiedAsDefinedAssertion) {
|
|
48
|
-
localContext.debug("...verified the '".concat(metastatementString, "' metastatement as a defined assertion."), metastatementNode);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return metastatementVerifiedAsDefinedAssertion;
|
|
52
|
-
}
|
|
53
|
-
function verifyDerivedMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
54
|
-
var derivedMetastatementVerifiedAsDefeindAssertion = false;
|
|
55
|
-
if (derived) {
|
|
56
|
-
var metastatementString = localContext.nodeAsString(metastatementNode);
|
|
57
|
-
localContext.trace("Verifying the derived '".concat(metastatementString, "' metastatement as a defined assertion..."), metastatementNode);
|
|
58
|
-
var metastatementNegated = (0, _verify.isMetastatementNegated)(metastatementNode), variableNode = variableNodeQuery(metastatementNode), termNode = termNodeQuery(metastatementNode);
|
|
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 (!metastatementNegated) {
|
|
66
|
-
if (variableDefined) {
|
|
67
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (metastatementNegated) {
|
|
71
|
-
if (!variableDefined) {
|
|
72
|
-
derivedMetastatementVerifiedAsDefeindAssertion = 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 (!metastatementNegated) {
|
|
84
|
-
if (termGrounded) {
|
|
85
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (metastatementNegated) {
|
|
89
|
-
if (!termGrounded) {
|
|
90
|
-
derivedMetastatementVerifiedAsDefeindAssertion = true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (derivedMetastatementVerifiedAsDefeindAssertion) {
|
|
96
|
-
localContext.debug("...verified the derived '".concat(metastatementString, "' metastatement as a defined assertion."), metastatementNode);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return derivedMetastatementVerifiedAsDefeindAssertion;
|
|
100
|
-
}
|
|
101
|
-
function verifyStatedMetastatementAsDefinedAssertion(metastatementNode, assignments, derived, localContext) {
|
|
102
|
-
var statedMetastatementVerifiedAsDefinedAssertion = false;
|
|
103
|
-
if (!derived) {
|
|
104
|
-
var metastatementString = localContext.nodeAsString(metastatementNode);
|
|
105
|
-
localContext.trace("Verifying the stated '".concat(metastatementString, "' metastatement as a defined assertion..."), metastatementNode);
|
|
106
|
-
var intrinsicLevel = localContext.isIntrinsicLevel();
|
|
107
|
-
if (intrinsicLevel) {
|
|
108
|
-
localContext.debug("The stated '".concat(metastatementString, "' metastatement as a defined assertion cannot be verified at intrinsic level."), metastatementNode);
|
|
109
|
-
} else {
|
|
110
|
-
var nonTerminalNode = metastatementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
|
|
111
|
-
var verifiedAhead = true;
|
|
112
|
-
return verifiedAhead;
|
|
113
|
-
});
|
|
114
|
-
statedMetastatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
|
|
115
|
-
}
|
|
116
|
-
if (statedMetastatementVerifiedAsDefinedAssertion) {
|
|
117
|
-
localContext.debug("...verified the stated '".concat(metastatementString, "' metastatement as a defined assertion."), metastatementNode);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return statedMetastatementVerifiedAsDefinedAssertion;
|
|
121
|
-
}
|
|
122
|
-
function isMetastatementDefinedAssertion(metastatementNode) {
|
|
123
|
-
var operatorTerminalNodes = operatorTerminalNodesQuery(metastatementNode), metastatementDefinedAssertion = operatorTerminalNodes.some(function(operatorTerminalNode) {
|
|
124
|
-
var content = operatorTerminalNode.getContent(), contentDefined = content === _constants.DEFINED;
|
|
125
|
-
if (contentDefined) {
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
return metastatementDefinedAssertion;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4vdGVybVwiO1xuaW1wb3J0IG1ldGFMZXZlbE5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBERUZJTkVEIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgaXNNZXRhc3RhdGVtZW50TmVnYXRlZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC90ZXJtIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFzdGF0ZW1lbnQvdGVybS92YXJpYWJsZSFcIiksXG4gICAgICBvcGVyYXRvclRlcm1pbmFsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9Ab3BlcmF0b3JcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeU1ldGFzdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24obWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uID0gaXNNZXRhc3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbihtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKG1ldGFzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zID0gW1xuICAgICAgdmVyaWZ5RGVyaXZlZE1ldGFzdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgICB2ZXJpZnlTdGF0ZWRNZXRhc3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uXG4gICAgXTtcblxuICAgIG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGRlZmluZWRBc3NlcnRpb25GdW5jdGlvbnMuc29tZSgoZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24obWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXN0YXRlbWVudFN0cmluZ30nIG1ldGFzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZE1ldGFzdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24obWV0YXN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBkZXJpdmVkICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBtZXRhc3RhdGVtZW50TmVnYXRlZCA9IGlzTWV0YXN0YXRlbWVudE5lZ2F0ZWQobWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KG1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5lZCA9IGxvY2FsQ29udGV4dC5pc1ZhcmlhYmxlRGVmaW5lZCh2YXJpYWJsZSk7XG5cbiAgICAgICAgaWYgKCFtZXRhc3RhdGVtZW50TmVnYXRlZCkge1xuICAgICAgICAgIGlmICh2YXJpYWJsZURlZmluZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXRhc3RhdGVtZW50TmVnYXRlZCkge1xuICAgICAgICAgIGlmICghdmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgICAgICBkZXJpdmVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgICAgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgIHRlcm1Hcm91bmRlZCA9IGxvY2FsQ29udGV4dC5pc1Rlcm1Hcm91bmRlZCh0ZXJtKTtcblxuICAgICAgICBpZiAoIW1ldGFzdGF0ZW1lbnROZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKHRlcm1Hcm91bmRlZCkge1xuICAgICAgICAgICAgZGVyaXZlZE1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1ldGFzdGF0ZW1lbnROZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKCF0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXJpdmVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBkZXJpdmVkICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRNZXRhc3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uKG1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgc3RhdGVkICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBtZXRhc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBpbnRyaW5zaWNMZXZlbCA9IGxvY2FsQ29udGV4dC5pc0ludHJpbnNpY0xldmVsKCk7XG5cbiAgICBpZiAoaW50cmluc2ljTGV2ZWwpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlIHN0YXRlZCAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uIGNhbm5vdCBiZSB2ZXJpZmllZCBhdCBpbnRyaW5zaWMgbGV2ZWwuYCwgbWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFMZXZlbE5vZGVWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgc3RhdGVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmIChzdGF0ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlIHN0YXRlZCAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgbWV0YXN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkTWV0YXN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNZXRhc3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbihtZXRhc3RhdGVtZW50Tm9kZSkge1xuICBjb25zdCBvcGVyYXRvclRlcm1pbmFsTm9kZXMgPSBvcGVyYXRvclRlcm1pbmFsTm9kZXNRdWVyeShtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIG1ldGFzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uID0gb3BlcmF0b3JUZXJtaW5hbE5vZGVzLnNvbWUoKG9wZXJhdG9yVGVybWluYWxOb2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IG9wZXJhdG9yVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgICAgICBjb250ZW50RGVmaW5lZCA9IChjb250ZW50ID09PSBERUZJTkVEKTtcblxuICAgICAgICAgIGlmIChjb250ZW50RGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICByZXR1cm4gbWV0YXN0YXRlbWVudERlZmluZWRBc3NlcnRpb247XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsImlzTWV0YXN0YXRlbWVudERlZmluZWRBc3NlcnRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJvcGVyYXRvclRlcm1pbmFsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsIm1ldGFzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uIiwibWV0YXN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwiZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRNZXRhc3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkTWV0YXN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsInNvbWUiLCJkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRNZXRhc3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24iLCJtZXRhc3RhdGVtZW50TmVnYXRlZCIsImlzTWV0YXN0YXRlbWVudE5lZ2F0ZWQiLCJ2YXJpYWJsZU5vZGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZURlZmluZWQiLCJpc1ZhcmlhYmxlRGVmaW5lZCIsInRlcm1zIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtR3JvdW5kZWQiLCJpc1Rlcm1Hcm91bmRlZCIsInN0YXRlZE1ldGFzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsImludHJpbnNpY0xldmVsIiwiaXNJbnRyaW5zaWNMZXZlbCIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwibWV0YUxldmVsTm9kZVZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwib3BlcmF0b3JUZXJtaW5hbE5vZGVzIiwib3BlcmF0b3JUZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImNvbnRlbnREZWZpbmVkIiwiREVGSU5FRCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBY0EsT0E2QkM7ZUE3QnVCQTs7SUFpSVJDLCtCQUErQjtlQUEvQkE7OzsyREE3SU87Z0VBQ1c7cUJBRVo7eUJBQ0U7cUJBQ2M7c0JBQ0M7Ozs7OztBQUV2QyxJQUFN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
|
|
@@ -1,44 +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 verifyMetavariableAgainstMetastatement;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _metastatementForMetavariable = /*#__PURE__*/ _interop_require_default(require("../substitution/metastatementForMetavariable"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead) {
|
|
18
|
-
var metavariableVerifiedAgainstMetastatement = false;
|
|
19
|
-
var substitution = substitutions.find(function(substitution) {
|
|
20
|
-
var substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNode);
|
|
21
|
-
if (substitutionMatchesMetavariableNodeA) {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
}) || null;
|
|
25
|
-
if (substitution !== null) {
|
|
26
|
-
var metastatementNodeMatches = substitution.matchMetastatementNode(metastatementNode);
|
|
27
|
-
if (metastatementNodeMatches) {
|
|
28
|
-
var verifiedAhead = verifyAhead();
|
|
29
|
-
metavariableVerifiedAgainstMetastatement = verifiedAhead; ///
|
|
30
|
-
}
|
|
31
|
-
} else {
|
|
32
|
-
var verifiedAhead1;
|
|
33
|
-
var metastatementForMetavariableSubstitution = _metastatementForMetavariable.default.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode), substitution1 = metastatementForMetavariableSubstitution; ///
|
|
34
|
-
substitutions.push(substitution1);
|
|
35
|
-
verifiedAhead1 = verifyAhead();
|
|
36
|
-
if (!verifiedAhead1) {
|
|
37
|
-
substitutions.pop();
|
|
38
|
-
}
|
|
39
|
-
metavariableVerifiedAgainstMetastatement = verifiedAhead1; ///
|
|
40
|
-
}
|
|
41
|
-
return metavariableVerifiedAgainstMetastatement;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlQWdhaW5zdE1ldGFzdGF0ZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vbWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGVBZ2FpbnN0TWV0YXN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdE1ldGFzdGF0ZW1lbnQgPSBmYWxzZTtcblxuICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmQoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQSA9IHN1YnN0aXR1dGlvbi5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICBtZXRhdmFyaWFibGVWZXJpZmllZEFnYWluc3RNZXRhc3RhdGVtZW50ID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgY29uc3QgbWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiA9IE1ldGFzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhc3RhdGVtZW50Tm9kZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gbWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgc3Vic3RpdHV0aW9ucy5wdXNoKHN1YnN0aXR1dGlvbik7XG5cbiAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgc3Vic3RpdHV0aW9ucy5wb3AoKTtcbiAgICB9XG5cbiAgICBtZXRhdmFyaWFibGVWZXJpZmllZEFnYWluc3RNZXRhc3RhdGVtZW50ID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWRBZ2FpbnN0TWV0YXN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGVBZ2FpbnN0TWV0YXN0YXRlbWVudCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbnMiLCJ2ZXJpZnlBaGVhZCIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdE1ldGFzdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwic3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmaWVkQWhlYWQiLCJtZXRhc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiTWV0YXN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21NZXRhdmFyaWFibGVOb2RlQW5kTWV0YXN0YXRlbWVudE5vZGUiLCJwdXNoIiwicG9wIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O21GQUY2Qjs7Ozs7O0FBRXRDLFNBQVNBLHVDQUF1Q0MsZ0JBQWdCLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLFdBQVc7SUFDNUgsSUFBSUMsMkNBQTJDO0lBRS9DLElBQU1DLGVBQWVILGNBQWNJLElBQUksQ0FBQyxTQUFDRDtRQUN2QyxJQUFNRSx1Q0FBdUNGLGFBQWFHLHFCQUFxQixDQUFDUjtRQUVoRixJQUFJTyxzQ0FBc0M7WUFDeEMsT0FBTztRQUNUO0lBQ0YsTUFBTTtJQUVOLElBQUlGLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1JLDJCQUEyQkosYUFBYUssc0JBQXNCLENBQUNUO1FBRXJFLElBQUlRLDBCQUEwQjtZQUM1QixJQUFNRSxnQkFBZ0JSO1lBRXRCQywyQ0FBMkNPLGVBQWUsR0FBRztRQUMvRDtJQUNGLE9BQU87UUFDTCxJQUFJQTtRQUVKLElBQU1DLDJDQUEyQ0MscUNBQXdDLENBQUNDLHdDQUF3QyxDQUFDZCxrQkFBa0JDLG9CQUMvSUksZ0JBQWVPLDBDQUEyQyxHQUFHO1FBRW5FVixjQUFjYSxJQUFJLENBQUNWO1FBRW5CTSxpQkFBZ0JSO1FBRWhCLElBQUksQ0FBQ1EsZ0JBQWU7WUFDbEJULGNBQWNjLEdBQUc7UUFDbkI7UUFFQVosMkNBQTJDTyxnQkFBZSxHQUFHO0lBQy9EO0lBRUEsT0FBT1A7QUFDVCJ9
|
package/src/metaConsequent.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import LocalContext from "./context/local";
|
|
4
|
-
import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
|
|
5
|
-
|
|
6
|
-
import { nodeAsString } from "./utilities/string";
|
|
7
|
-
import { statementNodeFromStatementString, metastatementNodeFromMetastatementString } from "./utilities/node";
|
|
8
|
-
|
|
9
|
-
export default class MetaConsequent {
|
|
10
|
-
constructor(metastatementNode, statementNode) {
|
|
11
|
-
this.metastatementNode = metastatementNode;
|
|
12
|
-
this.statementNode = statementNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getMetastatementNode() {
|
|
16
|
-
return this.metastatementNode;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
getStatementNode() {
|
|
20
|
-
return this.statementNode;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
matchMetastatementNode(metastatementNode, substitutions, fileContext, localContext) {
|
|
24
|
-
let matchesMetastatementNode = false;
|
|
25
|
-
|
|
26
|
-
if (this.metastatementNode !== null) {
|
|
27
|
-
const fileContextA = fileContext, ///
|
|
28
|
-
nonTerminalNodeA = this.metastatementNode, ///
|
|
29
|
-
nonTerminalNodeB = metastatementNode, ///
|
|
30
|
-
localContextA = LocalContext.fromFileContext(fileContextA),
|
|
31
|
-
localContextB = localContext, ///
|
|
32
|
-
nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
|
|
33
|
-
const verifiedAhead = true;
|
|
34
|
-
|
|
35
|
-
return verifiedAhead;
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
matchesMetastatementNode = nonTerminalNodeVerified; ///
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return matchesMetastatementNode;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
toJSON(tokens) {
|
|
45
|
-
const metastatementString = nodeAsString(this.metastatementNode, tokens),
|
|
46
|
-
statementString = nodeAsString(this.statementNode, tokens),
|
|
47
|
-
metastatement = metastatementString, ///
|
|
48
|
-
statement = statementString, ///
|
|
49
|
-
json = {
|
|
50
|
-
metastatement,
|
|
51
|
-
statement
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
return json;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
static fromStatementNode(statementNode) {
|
|
58
|
-
const metastatementNode = null,
|
|
59
|
-
metaConsequent = new MetaConsequent(metastatementNode, statementNode);
|
|
60
|
-
|
|
61
|
-
return metaConsequent;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
static fromMetastatementNode(metastatementNode) {
|
|
65
|
-
const statementNode = null,
|
|
66
|
-
metaConsequent = new MetaConsequent(metastatementNode, statementNode);
|
|
67
|
-
|
|
68
|
-
return metaConsequent;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
static fromJSONAndFileContext(json, fileContext) {
|
|
72
|
-
const { metastatement, statement } = json,
|
|
73
|
-
metastatementString = metastatement, ///
|
|
74
|
-
statementString = statement, ///
|
|
75
|
-
lexer = fileContext.getLexer(),
|
|
76
|
-
parser = fileContext.getParser(),
|
|
77
|
-
metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
|
|
78
|
-
statementNode = statementNodeFromStatementString(statementString, lexer, parser),
|
|
79
|
-
metaConsequent = new MetaConsequent(metastatementNode, statementNode);
|
|
80
|
-
|
|
81
|
-
return metaConsequent;
|
|
82
|
-
}
|
|
83
|
-
}
|
package/src/metaSupposition.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import LocalContext from "./context/local";
|
|
4
|
-
import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
|
|
5
|
-
|
|
6
|
-
import { match } from "./utilities/array";
|
|
7
|
-
import { nodeAsString } from "./utilities/string";
|
|
8
|
-
import { nodeQuery, nodesQuery } from "./utilities/query";
|
|
9
|
-
import { statementNodeFromStatementString, metastatementNodeFromMetastatementString } from "./utilities/node";
|
|
10
|
-
|
|
11
|
-
const subproofAssertionNodeQuery = nodeQuery("/metastatement/subproofAssertion!"),
|
|
12
|
-
subproofAssertionMetastatementNodesQuery = nodesQuery("/subproofAssertion/metastatement"),
|
|
13
|
-
metaSubproofMetaSuppositionMetastatementNodesQuery = nodesQuery("/metaSubproof/metaSupposition/unqualifiedMetastatement/metastatement!"),
|
|
14
|
-
metaSubproofLastMetpProofStepMetastatementNodeQuery = nodeQuery("/metaSubproof/metaSubDerivation/lastMetpProofStep/unqualifiedMetastatement|qualifiedMetastatement/metastatement!");
|
|
15
|
-
|
|
16
|
-
export default class MetaSupposition {
|
|
17
|
-
constructor(metastatementNode, statementNode) {
|
|
18
|
-
this.metastatementNode = metastatementNode;
|
|
19
|
-
this.statementNode = statementNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getMetastatementNode() {
|
|
23
|
-
return this.metastatementNode;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
getStatementNode() {
|
|
27
|
-
return this.statementNode;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
matchMetaSubproofNode(metaSubproofNode, substitutions, fileContext, localContext) {
|
|
31
|
-
let matchesMetaSubproofNode = false;
|
|
32
|
-
|
|
33
|
-
if (this.metastatementNode !== null) {
|
|
34
|
-
const subproofAssertionNode = subproofAssertionNodeQuery(this.metastatementNode);
|
|
35
|
-
|
|
36
|
-
if (subproofAssertionNode !== null) {
|
|
37
|
-
const metaSubproofMetaSuppositionMetastatementNodes = metaSubproofMetaSuppositionMetastatementNodesQuery(metaSubproofNode),
|
|
38
|
-
metaSubproofLastMetpProofStepMetastatementNode = metaSubproofLastMetpProofStepMetastatementNodeQuery(metaSubproofNode),
|
|
39
|
-
metaSubproofMetastatementNodes = [
|
|
40
|
-
...metaSubproofMetaSuppositionMetastatementNodes,
|
|
41
|
-
metaSubproofLastMetpProofStepMetastatementNode
|
|
42
|
-
],
|
|
43
|
-
subproofAssertionMetastatementNodes = subproofAssertionMetastatementNodesQuery(subproofAssertionNode);
|
|
44
|
-
|
|
45
|
-
matchesMetaSubproofNode = match(subproofAssertionMetastatementNodes, metaSubproofMetastatementNodes, (subproofAssertionMetastatementNode, ruleSubproofMetastatementNode) => {
|
|
46
|
-
const fileContextA = fileContext, ///
|
|
47
|
-
nonTerminalNodeA = subproofAssertionMetastatementNode, ///
|
|
48
|
-
nonTerminalNodeB = ruleSubproofMetastatementNode, ///
|
|
49
|
-
localContextA = LocalContext.fromFileContext(fileContextA), ///
|
|
50
|
-
localContextB = localContext, ///
|
|
51
|
-
nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
|
|
52
|
-
const verifiedAhead = true;
|
|
53
|
-
|
|
54
|
-
return verifiedAhead;
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
if (nonTerminalNodeVerified) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return matchesMetaSubproofNode;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
matchMetastatementNode(metastatementNode, substitutions, fileContext, localContext) {
|
|
68
|
-
let matchesMetastatementNode = false;
|
|
69
|
-
|
|
70
|
-
if (this.metastatementNode !== null) {
|
|
71
|
-
const fileContextA = fileContext, ///
|
|
72
|
-
nonTerminalNodeA = this.metastatementNode, ///
|
|
73
|
-
nonTerminalNodeB = metastatementNode, ///
|
|
74
|
-
localContextA = LocalContext.fromFileContext(fileContextA), ///
|
|
75
|
-
localContextB = localContext, ///
|
|
76
|
-
nonTerminalNodeVerified = metaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
|
|
77
|
-
const verifiedAhead = true;
|
|
78
|
-
|
|
79
|
-
return verifiedAhead;
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
matchesMetastatementNode = nonTerminalNodeVerified; ///
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return matchesMetastatementNode;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
toJSON(tokens) {
|
|
89
|
-
const metastatementString = nodeAsString(this.metastatementNode, tokens),
|
|
90
|
-
statementString = nodeAsString(this.statementNode, tokens),
|
|
91
|
-
metastatement = metastatementString, ///
|
|
92
|
-
statement = statementString, ///
|
|
93
|
-
json = {
|
|
94
|
-
metastatement,
|
|
95
|
-
statement
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
return json;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
static fromStatementNode(statementNode) {
|
|
102
|
-
const metastatementNode = null,
|
|
103
|
-
metaSupposition = new MetaSupposition(metastatementNode, statementNode);
|
|
104
|
-
|
|
105
|
-
return metaSupposition;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
static fromMetastatementNode(metastatementNode) {
|
|
109
|
-
const statementNode = null,
|
|
110
|
-
metaSupposition = new MetaSupposition(metastatementNode, statementNode);
|
|
111
|
-
|
|
112
|
-
return metaSupposition;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
static fromJSONAndFileContext(json, fileContext) {
|
|
116
|
-
const { metastatement, statement } = json,
|
|
117
|
-
metastatementString = metastatement, ///
|
|
118
|
-
statementString = statement, ///
|
|
119
|
-
lexer = fileContext.getLexer(),
|
|
120
|
-
parser = fileContext.getParser(),
|
|
121
|
-
metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
|
|
122
|
-
statementNode = statementNodeFromStatementString(statementString, lexer, parser),
|
|
123
|
-
metaSupposition = new MetaSupposition(metastatementNode, statementNode);
|
|
124
|
-
|
|
125
|
-
return metaSupposition;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { metastatementNodeFromMetastatementString } from "../../utilities/node";
|
|
4
|
-
|
|
5
|
-
const bracketedMetastatementString = "(A)";
|
|
6
|
-
|
|
7
|
-
const bracketedMetastatementNode = metastatementNodeFromMetastatementString(bracketedMetastatementString);
|
|
8
|
-
|
|
9
|
-
export default bracketedMetastatementNode;
|
package/src/step/metaproof.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export default class MetaproofStep {
|
|
4
|
-
constructor(statementNode, ruleSubproofNode, metaSubproofNode, metastatementNode) {
|
|
5
|
-
this.statementNode = statementNode;
|
|
6
|
-
this.ruleSubproofNode = ruleSubproofNode;
|
|
7
|
-
this.metaSubproofNode = metaSubproofNode;
|
|
8
|
-
this.metastatementNode = metastatementNode;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
getStatementNode() {
|
|
12
|
-
return this.statementNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getRuleSubproofNode() {
|
|
16
|
-
return this.ruleSubproofNode;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
getMetaSubproofNode() {
|
|
20
|
-
return this.metaSubproofNode;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
getMetastatementNode() {
|
|
24
|
-
return this.metastatementNode;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
matchMetastatementNode(metastatementNode) {
|
|
28
|
-
let matchesMetastatementNode = false;
|
|
29
|
-
|
|
30
|
-
if (this.metastatementNode !== null) {
|
|
31
|
-
matchesMetastatementNode = this.metastatementNode.match(metastatementNode);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return matchesMetastatementNode;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
static fromStatementNode(statementNode) {
|
|
38
|
-
const ruleSubproofNode = null,
|
|
39
|
-
metaSubproofNode = null,
|
|
40
|
-
metastatementNode = null,
|
|
41
|
-
metaproofStep = new MetaproofStep(statementNode, ruleSubproofNode, metaSubproofNode, metastatementNode);
|
|
42
|
-
|
|
43
|
-
return metaproofStep;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
static fromRuleSubproofNode(ruleSubproofNode) {
|
|
47
|
-
const statementNode = null,
|
|
48
|
-
metaSubproofNode = null,
|
|
49
|
-
metastatementNode = null,
|
|
50
|
-
metaproofStep = new MetaproofStep(statementNode, ruleSubproofNode, metaSubproofNode, metastatementNode);
|
|
51
|
-
|
|
52
|
-
return metaproofStep;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
static fromMetaSubproofNode(metaSubproofNode) {
|
|
56
|
-
const statementNode = null,
|
|
57
|
-
ruleSubproofNode = null,
|
|
58
|
-
metastatementNode = null,
|
|
59
|
-
metaproofStep = new MetaproofStep(statementNode, ruleSubproofNode, metaSubproofNode, metastatementNode);
|
|
60
|
-
|
|
61
|
-
return metaproofStep;
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
static fromMetastatementNode(metastatementNode) {
|
|
66
|
-
const statementNode = null,
|
|
67
|
-
ruleSubproofNode = null,
|
|
68
|
-
metaSubproofNode = null,
|
|
69
|
-
metaproofStep = new MetaproofStep(statementNode, ruleSubproofNode, metaSubproofNode, metastatementNode);
|
|
70
|
-
|
|
71
|
-
return metaproofStep;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import Substitution from "../substitution";
|
|
4
|
-
|
|
5
|
-
import { nodeAsString } from "../utilities/string";
|
|
6
|
-
import { bracketedMetastatementChildNodeFromMetastatementNode } from "../utilities/match";
|
|
7
|
-
import { metavariableNodeFromMetavariableString, metastatementNodeFromMetastatementString } from "../utilities/node";
|
|
8
|
-
|
|
9
|
-
export default class MetastatementForMetavariableSubstitution extends Substitution {
|
|
10
|
-
constructor(metavariableNode, metastatementNode) {
|
|
11
|
-
super();
|
|
12
|
-
|
|
13
|
-
this.metavariableNode = metavariableNode;
|
|
14
|
-
this.metastatementNode = metastatementNode;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
getMetavariableNode() {
|
|
18
|
-
return this.metavariableNode;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
getMetastatementNode() {
|
|
22
|
-
return this.metastatementNode;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
matchMetavariableNode(metavariableNode) {
|
|
26
|
-
const matchesMetavariableNode = this.metavariableNode.match(metavariableNode);
|
|
27
|
-
|
|
28
|
-
return matchesMetavariableNode;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
matchMetastatementNode(metastatementNode) {
|
|
32
|
-
let matchesMetastatementNode;
|
|
33
|
-
|
|
34
|
-
matchesMetastatementNode = this.metastatementNode.match(metastatementNode)
|
|
35
|
-
|
|
36
|
-
if (!matchesMetastatementNode) {
|
|
37
|
-
const bracketedMetastatementChildNode = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNode);
|
|
38
|
-
|
|
39
|
-
if (bracketedMetastatementChildNode !== null) {
|
|
40
|
-
const metastatementNode = bracketedMetastatementChildNode; ///
|
|
41
|
-
|
|
42
|
-
matchesMetastatementNode = this.metastatementNode.match(metastatementNode);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return matchesMetastatementNode;
|
|
47
|
-
}
|
|
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
|
-
|
|
75
|
-
static fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode) {
|
|
76
|
-
let metastatementForMetavariableSubstitution;
|
|
77
|
-
|
|
78
|
-
metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metavariableNode, metastatementNode);
|
|
79
|
-
|
|
80
|
-
const bracketedMetastatementChildNode = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNode);
|
|
81
|
-
|
|
82
|
-
if (bracketedMetastatementChildNode !== null) {
|
|
83
|
-
const metastatementNode = bracketedMetastatementChildNode; ///
|
|
84
|
-
|
|
85
|
-
metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metavariableNode, metastatementNode);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return metastatementForMetavariableSubstitution;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetaConsequent from "../metaConsequent";
|
|
4
|
-
import verifyUnqualifiedStatement from "./statement/unqualified";
|
|
5
|
-
import verifyUnqualifiedMetastatement from "./metastatement/unqualified";
|
|
6
|
-
|
|
7
|
-
import { nodeQuery } from "../utilities/query";
|
|
8
|
-
|
|
9
|
-
const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
|
|
10
|
-
metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
|
|
11
|
-
unqualifiedStatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedStatement!"),
|
|
12
|
-
unqualifiedMetastatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedMetastatement!");
|
|
13
|
-
|
|
14
|
-
export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, substitutions, localContext) {
|
|
15
|
-
let metaConsequentVerified = false;
|
|
16
|
-
|
|
17
|
-
const metaConsequentString = localContext.nodeAsString(metaConsequentNode);
|
|
18
|
-
|
|
19
|
-
localContext.trace(`Verifying the '${metaConsequentString}' meta-consequent...`, metaConsequentNode);
|
|
20
|
-
|
|
21
|
-
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(metaConsequentNode),
|
|
22
|
-
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaConsequentNode);
|
|
23
|
-
|
|
24
|
-
if (unqualifiedStatementNode !== null) {
|
|
25
|
-
const derived = false,
|
|
26
|
-
assignments = [],
|
|
27
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
28
|
-
|
|
29
|
-
metaConsequentVerified = unqualifiedStatementVerified; ///
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (unqualifiedMetastatementNode !== null) {
|
|
33
|
-
const derived = false,
|
|
34
|
-
assignments = [],
|
|
35
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
|
|
36
|
-
|
|
37
|
-
metaConsequentVerified = unqualifiedMetastatementVerified; ///
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (metaConsequentVerified) {
|
|
41
|
-
let metaConsequent;
|
|
42
|
-
|
|
43
|
-
if (unqualifiedStatementNode !== null) {
|
|
44
|
-
const statementNode = statementNodeQuery(unqualifiedStatementNode);
|
|
45
|
-
|
|
46
|
-
metaConsequent = MetaConsequent.fromStatementNode(statementNode);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (unqualifiedMetastatementNode !== null) {
|
|
50
|
-
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
|
|
51
|
-
|
|
52
|
-
metaConsequent = MetaConsequent.fromMetastatementNode(metastatementNode);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
metaConsequents.push(metaConsequent);
|
|
56
|
-
|
|
57
|
-
localContext.debug(`...verified the '${metaConsequentString}' meta-consequent.`, metaConsequentNode);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return metaConsequentVerified;
|
|
61
|
-
}
|