occam-verify-cli 0.0.883 → 0.0.884
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/axiomLemmaTheoremConjecture.js +7 -7
- package/lib/context/file.js +17 -17
- package/lib/label.js +13 -13
- package/lib/metaLemmaMetatheorem.js +7 -7
- package/lib/rule.js +7 -7
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/label.js +9 -7
- package/lib/verify/labels.js +8 -15
- package/lib/verify/lemma.js +4 -4
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/rule.js +4 -4
- package/lib/verify/theorem.js +4 -4
- package/package.json +5 -5
- package/src/axiomLemmaTheoremConjecture.js +5 -6
- package/src/context/file.js +16 -17
- package/src/label.js +10 -12
- package/src/metaLemmaMetatheorem.js +5 -6
- package/src/rule.js +5 -6
- package/src/verify/axiom.js +4 -4
- package/src/verify/conjecture.js +4 -4
- package/src/verify/label.js +11 -6
- package/src/verify/labels.js +7 -18
- package/src/verify/lemma.js +4 -4
- package/src/verify/metaLemma.js +4 -4
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/rule.js +4 -4
- package/src/verify/theorem.js +4 -4
package/lib/verify/rule.js
CHANGED
|
@@ -21,12 +21,12 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
default: obj
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
var
|
|
24
|
+
var labelNodesQuery = (0, _query.nodesQuery)("/rule/label"), premisesNodeQuery = (0, _query.nodesQuery)("/rule/premise"), ruleProofNodeQuery = (0, _query.nodeQuery)("/rule/ruleProof!"), conclusionNodeQuery = (0, _query.nodeQuery)("/rule/conclusion!");
|
|
25
25
|
function verifyRule(ruleNode, fileContext) {
|
|
26
26
|
var ruleVerified = false;
|
|
27
|
-
var
|
|
27
|
+
var labelNodes = labelNodesQuery(ruleNode), labelsString = fileContext.nodesAsString(labelNodes), localMetaContext = _localMeta.default.fromFileContext(fileContext);
|
|
28
28
|
fileContext.trace("Verifying the '".concat(labelsString, "' rule..."), ruleNode);
|
|
29
|
-
var labels = [], labelsVerified = (0, _labels.default)(
|
|
29
|
+
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
var premises = [], premiseNodes = premisesNodeQuery(ruleNode), premisesVerified = (0, _premises.default)(premiseNodes, premises, localMetaContext);
|
|
32
32
|
if (premisesVerified) {
|
|
@@ -51,4 +51,4 @@ function verifyRule(ruleNode, fileContext) {
|
|
|
51
51
|
return ruleVerified;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlcyBmcm9tIFwiLi4vdmVyaWZ5L3ByZW1pc2VzXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVByb29mIGZyb20gXCIuLi92ZXJpZnkvcnVsZVByb29mXCI7XG5pbXBvcnQgTG9jYWxNZXRhQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbE1ldGFcIjtcbmltcG9ydCB2ZXJpZnlDb25jbHVzaW9uIGZyb20gXCIuLi92ZXJpZnkvY29uY2x1c2lvblwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL2xhYmVsXCIpLFxuICAgICAgcHJlbWlzZXNOb2RlUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGUvcHJlbWlzZVwiKSxcbiAgICAgIHJ1bGVQcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL3J1bGVQcm9vZiFcIiksXG4gICAgICBjb25jbHVzaW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGUvY29uY2x1c2lvbiFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVJ1bGUocnVsZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBydWxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZXNBc1N0cmluZyhsYWJlbE5vZGVzKSxcbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dCA9IExvY2FsTWV0YUNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBydWxlLi4uYCwgcnVsZU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBwcmVtaXNlcyA9IFtdLFxuICAgICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VzTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICBwcmVtaXNlc1ZlcmlmaWVkID0gdmVyaWZ5UHJlbWlzZXMocHJlbWlzZU5vZGVzLCBwcmVtaXNlcywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAocHJlbWlzZXNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uY2x1c2lvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob2RlID0gY29uY2x1c2lvbk5vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgICBjb25jbHVzaW9uVmVyaWZpZWQgPSB2ZXJpZnlDb25jbHVzaW9uKGNvbmNsdXNpb25Ob2RlLCBjb25jbHVzaW9ucywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmIChjb25jbHVzaW9uVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcnVsZVByb29mTm9kZSA9IHJ1bGVQcm9vZk5vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uY2x1c2lvbiA9IGZpcnN0KGNvbmNsdXNpb25zKSxcbiAgICAgICAgICAgICAgY29uY2x1c2lvbiA9IGZpcnN0Q29uY2x1c2lvbjsgLy8vXG5cbiAgICAgICAgbGV0IHJ1bGVQcm9vZlZlcmlmaWVkID0gdHJ1ZTsgLy8vXG5cbiAgICAgICAgaWYgKHJ1bGVQcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICBydWxlUHJvb2ZWZXJpZmllZCA9IHZlcmlmeVJ1bGVQcm9vZihydWxlUHJvb2ZOb2RlLCBjb25jbHVzaW9uLCBsb2NhbE1ldGFDb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChydWxlUHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHJ1bGUgPSBSdWxlLmZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dChsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5hZGRSdWxlKHJ1bGUpO1xuXG4gICAgICAgICAgcnVsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChydWxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIHJ1bGUuYCwgcnVsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHJ1bGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlIiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInByZW1pc2VzTm9kZVF1ZXJ5IiwicnVsZVByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiY29uY2x1c2lvbk5vZGVRdWVyeSIsInJ1bGVOb2RlIiwiZmlsZUNvbnRleHQiLCJydWxlVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImxvY2FsTWV0YUNvbnRleHQiLCJMb2NhbE1ldGFDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidHJhY2UiLCJsYWJlbHMiLCJsYWJlbHNWZXJpZmllZCIsInZlcmlmeUxhYmVscyIsInByZW1pc2VzIiwicHJlbWlzZU5vZGVzIiwicHJlbWlzZXNWZXJpZmllZCIsInZlcmlmeVByZW1pc2VzIiwiY29uY2x1c2lvbnMiLCJjb25jbHVzaW9uTm9kZSIsImNvbmNsdXNpb25WZXJpZmllZCIsInZlcmlmeUNvbmNsdXNpb24iLCJydWxlUHJvb2ZOb2RlIiwiZmlyc3RDb25jbHVzaW9uIiwiZmlyc3QiLCJjb25jbHVzaW9uIiwicnVsZVByb29mVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlUHJvb2YiLCJydWxlIiwiUnVsZSIsImZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dCIsImFkZFJ1bGUiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7MkRBZlA7NkRBQ1E7K0RBQ0U7Z0VBQ0M7Z0VBQ0M7aUVBQ0E7cUJBRVA7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLGdCQUM3QkMsb0JBQW9CRCxJQUFBQSxpQkFBVSxFQUFDLGtCQUMvQkUscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHFCQUMvQkMsc0JBQXNCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXZCLFNBQVNMLFdBQVdPLFFBQVEsRUFBRUMsV0FBVztJQUN0RCxJQUFJQyxlQUFlO0lBRW5CLElBQU1DLGFBQWFULGdCQUFnQk0sV0FDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0YsYUFDekNHLG1CQUFtQkMsa0JBQWdCLENBQUNDLGVBQWUsQ0FBQ1A7SUFFMURBLFlBQVlRLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTCxjQUFhLGNBQVlKO0lBRTdELElBQU1VLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVQ7SUFFeEQsSUFBSVUsZ0JBQWdCO1FBQ2xCLElBQU1FLFdBQVcsRUFBRSxFQUNiQyxlQUFlbEIsa0JBQWtCSSxXQUNqQ2UsbUJBQW1CQyxJQUFBQSxpQkFBYyxFQUFDRixjQUFjRCxVQUFVUDtRQUVoRSxJQUFJUyxrQkFBa0I7WUFDcEIsSUFBTUUsY0FBYyxFQUFFLEVBQ2hCQyxpQkFBaUJuQixvQkFBb0JDLFdBQ3JDbUIscUJBQXFCQyxJQUFBQSxtQkFBZ0IsRUFBQ0YsZ0JBQWdCRCxhQUFhWDtZQUV6RSxJQUFJYSxvQkFBb0I7Z0JBQ3RCLElBQU1FLGdCQUFnQnhCLG1CQUFtQkcsV0FDbkNzQixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ04sY0FDeEJPLGFBQWFGLGlCQUFpQixHQUFHO2dCQUV2QyxJQUFJRyxvQkFBb0IsTUFBTSxHQUFHO2dCQUVqQyxJQUFJSixrQkFBa0IsTUFBTTtvQkFDMUJJLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0wsZUFBZUcsWUFBWWxCO2dCQUNqRTtnQkFFQSxJQUFJbUIsbUJBQW1CO29CQUNyQixJQUFNRSxPQUFPQyxhQUFJLENBQUNDLDBDQUEwQyxDQUFDbkIsUUFBUUcsVUFBVVcsWUFBWXZCO29CQUUzRkEsWUFBWTZCLE9BQU8sQ0FBQ0g7b0JBRXBCekIsZUFBZTtnQkFDakI7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxJQUFJQSxjQUFjO1FBQ2hCRCxZQUFZOEIsS0FBSyxDQUFDLEFBQUMsb0JBQWdDLE9BQWIzQixjQUFhLFlBQVVKO0lBQy9EO0lBRUEsT0FBT0U7QUFDVCJ9
|
package/lib/verify/theorem.js
CHANGED
|
@@ -21,12 +21,12 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
default: obj
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"),
|
|
24
|
+
var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/theorem/label"), consequentNodeQuery = (0, _query.nodeQuery)("/theorem/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/theorem/supposition");
|
|
25
25
|
function verifyTheorem(theoremNode, fileContext) {
|
|
26
26
|
var theoremVerified = false;
|
|
27
|
-
var
|
|
27
|
+
var labelNodes = labelNodesQuery(theoremNode), labelsString = fileContext.nodesAsString(labelNodes), localContext = _local.default.fromFileContext(fileContext);
|
|
28
28
|
fileContext.trace("Verifying the '".concat(labelsString, "' theorem..."), theoremNode);
|
|
29
|
-
var labels = [], labelsVerified = (0, _labels.default)(
|
|
29
|
+
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
var suppositions = [], suppositionNodes = suppositionsNodeQuery(theoremNode), suppositionsVerified = (0, _suppositions.default)(suppositionNodes, suppositions, localContext);
|
|
32
32
|
if (suppositionsVerified) {
|
|
@@ -47,4 +47,4 @@ function verifyTheorem(theoremNode, fileContext) {
|
|
|
47
47
|
return theoremVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi4vdmVyaWZ5L2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL2xhYmVsXCIpLFxuICAgICAgY29uc2VxdWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtL2NvbnNlcXVlbnQhXCIpLFxuICAgICAgc3VwcG9zaXRpb25zTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL3N1cHBvc2l0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUaGVvcmVtKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGhlb3JlbVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uLi5gLCB0aGVvcmVtTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb25zKHN1cHBvc2l0aW9uTm9kZXMsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVudHMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnROb2RlID0gY29uc2VxdWVudE5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBwcm9vZk5vZGUgPSBwcm9vZk5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCB0aGVvcmVtID0gVGhlb3JlbS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dChsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgICAgICB0aGVvcmVtVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoZW9yZW1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgdGhlb3JlbS5gLCB0aGVvcmVtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGhlb3JlbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRoZW9yZW0iLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGUiLCJmaWxlQ29udGV4dCIsInRoZW9yZW1WZXJpZmllZCIsImxhYmVsTm9kZXMiLCJsYWJlbHNTdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidHJhY2UiLCJsYWJlbHMiLCJsYWJlbHNWZXJpZmllZCIsInZlcmlmeUxhYmVscyIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImNvbnNlcXVlbnRzIiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW50IiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50IiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsImFkZFRoZW9yZW0iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7OERBZko7NERBQ0k7NERBQ0M7NkRBQ0E7aUVBQ0k7bUVBQ0U7cUJBRVQ7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLG1CQUM3QkMsc0JBQXNCSCxJQUFBQSxnQkFBUyxFQUFDLHlCQUNoQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGNBQWNPLFdBQVcsRUFBRUMsV0FBVztJQUM1RCxJQUFJQyxrQkFBa0I7SUFFdEIsSUFBTUMsYUFBYVAsZ0JBQWdCSSxjQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRixhQUN6Q0csZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNQO0lBRWxEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxpQkFBZUo7SUFFaEUsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJmLHNCQUFzQkMsY0FDekNlLHVCQUF1QkMsSUFBQUEscUJBQWtCLEVBQUNGLGtCQUFrQkQsY0FBY1A7UUFFaEYsSUFBSVMsc0JBQXNCO1lBQ3hCLElBQU1FLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCcEIsb0JBQW9CRSxjQUNyQ21CLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYVg7WUFFekUsSUFBSWEsb0JBQW9CO2dCQUN0QixJQUFNRSxZQUFZM0IsZUFBZU0sY0FDM0JzQixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ04sY0FDeEJPLGFBQWFGLGlCQUNiRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csWUFBWWxCO2dCQUV6RCxJQUFJbUIsZUFBZTtvQkFDakIsSUFBTUUsVUFBVUMsZ0JBQU8sQ0FBQ0MsK0NBQStDLENBQUNuQixRQUFRRyxjQUFjVyxZQUFZbEI7b0JBRTFHTCxZQUFZNkIsVUFBVSxDQUFDSDtvQkFFdkJ6QixrQkFBa0I7Z0JBQ3BCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEsaUJBQWlCO1FBQ25CRCxZQUFZOEIsS0FBSyxDQUFDLEFBQUMsb0JBQWdDLE9BQWIzQixjQUFhLGVBQWFKO0lBQ2xFO0lBRUEsT0FBT0U7QUFDVCJ9
|
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.884",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,10 +12,10 @@
|
|
|
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.
|
|
18
|
-
"occam-grammar-utilities": "^8.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.790",
|
|
16
|
+
"occam-entities": "^1.0.137",
|
|
17
|
+
"occam-file-system": "^6.0.179",
|
|
18
|
+
"occam-grammar-utilities": "^8.0.207",
|
|
19
19
|
"occam-query": "^3.1.174"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
@@ -66,17 +66,16 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
66
66
|
return statementNatches;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
labelMatchesNode = label.matchNode(node);
|
|
69
|
+
matchMetavariableNode(metavariableNode) {
|
|
70
|
+
const metavariableNodeMatches = this.labels.some((label) => {
|
|
71
|
+
const labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
73
72
|
|
|
74
|
-
if (
|
|
73
|
+
if (labelMatchesMetavariableNode) {
|
|
75
74
|
return true;
|
|
76
75
|
}
|
|
77
76
|
});
|
|
78
77
|
|
|
79
|
-
return
|
|
78
|
+
return metavariableNodeMatches;
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
toJSON(tokens) {
|
package/src/context/file.js
CHANGED
|
@@ -361,10 +361,9 @@ export default class FileContext {
|
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
findLabelByMetavariableNode(metavariableNode) {
|
|
364
|
-
const
|
|
365
|
-
labels = this.getLabels(),
|
|
364
|
+
const labels = this.getLabels(),
|
|
366
365
|
label = labels.find((label) => {
|
|
367
|
-
const matches = label.
|
|
366
|
+
const matches = label.matchMetavariableNode(metavariableNode);
|
|
368
367
|
|
|
369
368
|
if (matches) {
|
|
370
369
|
return true;
|
|
@@ -377,9 +376,9 @@ export default class FileContext {
|
|
|
377
376
|
findRuleByMetavariableNode(metavariableNode) {
|
|
378
377
|
const rules = this.getRules(),
|
|
379
378
|
rule = rules.find((rule) => {
|
|
380
|
-
const
|
|
379
|
+
const ruleMatchesMetavariableNode = rule.matchMetavariableNode(metavariableNode);
|
|
381
380
|
|
|
382
|
-
if (
|
|
381
|
+
if (ruleMatchesMetavariableNode) {
|
|
383
382
|
return true;
|
|
384
383
|
}
|
|
385
384
|
}) || null;
|
|
@@ -390,9 +389,9 @@ export default class FileContext {
|
|
|
390
389
|
findAxiomByMetavariableNode(metavariableNode) {
|
|
391
390
|
const axioms = this.getAxioms(),
|
|
392
391
|
axiom = axioms.find((axiom) => {
|
|
393
|
-
const
|
|
392
|
+
const axiomMatchesMetavariableNode = axiom.matchMetavariableNode(metavariableNode);
|
|
394
393
|
|
|
395
|
-
if (
|
|
394
|
+
if (axiomMatchesMetavariableNode) {
|
|
396
395
|
return true;
|
|
397
396
|
}
|
|
398
397
|
}) || null;
|
|
@@ -403,9 +402,9 @@ export default class FileContext {
|
|
|
403
402
|
findLemmaByMetavariableNode(metavariableNode) {
|
|
404
403
|
const lemmas = this.getLemmas(),
|
|
405
404
|
lemma = lemmas.find((lemma) => {
|
|
406
|
-
const
|
|
405
|
+
const lemmaMatchesMetavariableNode = lemma.matchMetavariableNode(metavariableNode);
|
|
407
406
|
|
|
408
|
-
if (
|
|
407
|
+
if (lemmaMatchesMetavariableNode) {
|
|
409
408
|
return true;
|
|
410
409
|
}
|
|
411
410
|
}) || null;
|
|
@@ -416,9 +415,9 @@ export default class FileContext {
|
|
|
416
415
|
findTheoremByMetavariableNode(metavariableNode) {
|
|
417
416
|
const theorems = this.getTheorems(),
|
|
418
417
|
theorem = theorems.find((theorem) => {
|
|
419
|
-
const
|
|
418
|
+
const theoremMatchesMetavariableNode = theorem.matchMetavariableNode(metavariableNode);
|
|
420
419
|
|
|
421
|
-
if (
|
|
420
|
+
if (theoremMatchesMetavariableNode) {
|
|
422
421
|
return true;
|
|
423
422
|
}
|
|
424
423
|
}) || null;
|
|
@@ -429,9 +428,9 @@ export default class FileContext {
|
|
|
429
428
|
findMetaLemmaByMetavariableNode(metavariableNode) {
|
|
430
429
|
const metaLemmas = this.getMetaLemmas(),
|
|
431
430
|
metaLemma = metaLemmas.find((metaLemma) => {
|
|
432
|
-
const
|
|
431
|
+
const metaLemmaMatchesMetavariableNode = metaLemma.matchMetavariableNode(metavariableNode);
|
|
433
432
|
|
|
434
|
-
if (
|
|
433
|
+
if (metaLemmaMatchesMetavariableNode) {
|
|
435
434
|
return true;
|
|
436
435
|
}
|
|
437
436
|
}) || null;
|
|
@@ -442,9 +441,9 @@ export default class FileContext {
|
|
|
442
441
|
findConjectureByMetavariableNode(metavariableNode) {
|
|
443
442
|
const conjectures = this.getConjectures(),
|
|
444
443
|
conjecture = conjectures.find((conjecture) => {
|
|
445
|
-
const
|
|
444
|
+
const conjectureMatchesMetavariableNode = conjecture.matchMetavariableNode(metavariableNode);
|
|
446
445
|
|
|
447
|
-
if (
|
|
446
|
+
if (conjectureMatchesMetavariableNode) {
|
|
448
447
|
return true;
|
|
449
448
|
}
|
|
450
449
|
}) || null;
|
|
@@ -455,9 +454,9 @@ export default class FileContext {
|
|
|
455
454
|
findMetatheoremByMetavariableNode(metavariableNode) {
|
|
456
455
|
const metatheorems = this.getMetatheorems(),
|
|
457
456
|
metatheorem = metatheorems.find((metatheorem) => {
|
|
458
|
-
const
|
|
457
|
+
const metatheoremMatchesMetavariableNode = metatheorem.matchMetavariableNode(metavariableNode);
|
|
459
458
|
|
|
460
|
-
if (
|
|
459
|
+
if (metatheoremMatchesMetavariableNode) {
|
|
461
460
|
return true;
|
|
462
461
|
}
|
|
463
462
|
}) || null;
|
package/src/label.js
CHANGED
|
@@ -4,36 +4,35 @@ import { nodeAsString } from "./utilities/string";
|
|
|
4
4
|
import { metavariableNodeFromMetavariableString } from "./utilities/node";
|
|
5
5
|
|
|
6
6
|
export default class Label {
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
7
|
+
constructor(metavariableNode) {
|
|
8
|
+
this.metavariableNode = metavariableNode;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
return this.
|
|
11
|
+
getMetavariableNode() {
|
|
12
|
+
return this.metavariableNode;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
const matches = this.
|
|
15
|
+
matchMetavariableNode(metavariableNode) {
|
|
16
|
+
const matches = this.metavariableNode.match(metavariableNode);
|
|
17
17
|
|
|
18
18
|
return matches;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
asString(tokens) {
|
|
22
|
-
const string = nodeAsString(this.
|
|
22
|
+
const string = nodeAsString(this.metavariableNode, tokens);
|
|
23
23
|
|
|
24
24
|
return string;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
toJSON(tokens) {
|
|
28
|
-
const string = nodeAsString(this.
|
|
28
|
+
const string = nodeAsString(this.metavariableNode, tokens),
|
|
29
29
|
json = string; ///
|
|
30
30
|
|
|
31
31
|
return json;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
static fromMetavariableNode(metavariableNode) {
|
|
35
|
-
const
|
|
36
|
-
label = new Label(node);
|
|
35
|
+
const label = new Label(metavariableNode);
|
|
37
36
|
|
|
38
37
|
return label;
|
|
39
38
|
}
|
|
@@ -43,8 +42,7 @@ export default class Label {
|
|
|
43
42
|
lexer = fileContext.getLexer(),
|
|
44
43
|
parser = fileContext.getParser(),
|
|
45
44
|
metavariableNode = metavariableNodeFromMetavariableString(metavariableString, lexer, parser),
|
|
46
|
-
|
|
47
|
-
label = new Label(node);
|
|
45
|
+
label = new Label(metavariableNode);
|
|
48
46
|
|
|
49
47
|
return label;
|
|
50
48
|
}
|
|
@@ -71,17 +71,16 @@ export default class MetaLemmaMetatheorem {
|
|
|
71
71
|
return metastatementNatches;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
labelMatchesNode = label.matchNode(node);
|
|
74
|
+
matchMetavariableNode(metavariableNode) {
|
|
75
|
+
const metavariableNodeMatches = this.labels.some((label) => {
|
|
76
|
+
const labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
78
77
|
|
|
79
|
-
if (
|
|
78
|
+
if (labelMatchesMetavariableNode) {
|
|
80
79
|
return true;
|
|
81
80
|
}
|
|
82
81
|
});
|
|
83
82
|
|
|
84
|
-
return
|
|
83
|
+
return metavariableNodeMatches;
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
toJSON(tokens) {
|
package/src/rule.js
CHANGED
|
@@ -99,17 +99,16 @@ export default class Rule {
|
|
|
99
99
|
return metastatementNatches;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
labelMatchesNode = label.matchNode(node);
|
|
102
|
+
matchMetavariableNode(metavariableNode) {
|
|
103
|
+
const metavariableNodeMatches = this.labels.some((label) => {
|
|
104
|
+
const labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
106
105
|
|
|
107
|
-
if (
|
|
106
|
+
if (labelMatchesMetavariableNode) {
|
|
108
107
|
return true;
|
|
109
108
|
}
|
|
110
109
|
});
|
|
111
110
|
|
|
112
|
-
return
|
|
111
|
+
return metavariableNodeMatches;
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
toJSON(tokens) {
|
package/src/verify/axiom.js
CHANGED
|
@@ -9,21 +9,21 @@ import verifySuppositions from "../verify/suppositions";
|
|
|
9
9
|
import { first } from "../utilities/array";
|
|
10
10
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const labelNodesQuery = nodesQuery("/axiom/label"),
|
|
13
13
|
consequentNodeQuery = nodeQuery("/axiom/consequent!"),
|
|
14
14
|
suppositionsNodeQuery = nodesQuery("/axiom/supposition");
|
|
15
15
|
|
|
16
16
|
export default function verifyAxiom(axiomNode, fileContext) {
|
|
17
17
|
let axiomVerified = false;
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
labelsString = fileContext.
|
|
19
|
+
const labelNodes = labelNodesQuery(axiomNode),
|
|
20
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
21
21
|
localContext = LocalContext.fromFileContext(fileContext);
|
|
22
22
|
|
|
23
23
|
fileContext.trace(`Verifying the '${labelsString}' axiom...`, axiomNode);
|
|
24
24
|
|
|
25
25
|
const labels = [],
|
|
26
|
-
labelsVerified = verifyLabels(
|
|
26
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
27
27
|
|
|
28
28
|
if (labelsVerified) {
|
|
29
29
|
const suppositions = [],
|
package/src/verify/conjecture.js
CHANGED
|
@@ -11,21 +11,21 @@ import { first } from "../utilities/array";
|
|
|
11
11
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
12
12
|
|
|
13
13
|
const proofNodeQuery = nodeQuery("/conjecture/proof!"),
|
|
14
|
-
|
|
14
|
+
labelNodesQuery = nodesQuery("/conjecture/label!"),
|
|
15
15
|
consequentNodeQuery = nodeQuery("/conjecture/consequent!"),
|
|
16
16
|
suppositionsNodeQuery = nodesQuery("/conjecture/supposition");
|
|
17
17
|
|
|
18
18
|
export default function verifyConjecture(conjectureNode, fileContext) {
|
|
19
19
|
let conjectureVerified = false;
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
labelsString = fileContext.
|
|
21
|
+
const labelNodes = labelNodesQuery(conjectureNode),
|
|
22
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
23
23
|
localContext = LocalContext.fromFileContext(fileContext);
|
|
24
24
|
|
|
25
25
|
fileContext.trace(`Verifying the '${labelsString}' conjecture...`, conjectureNode);
|
|
26
26
|
|
|
27
27
|
const labels = [],
|
|
28
|
-
labelsVerified = verifyLabels(
|
|
28
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
29
29
|
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
const suppositions = [],
|
package/src/verify/label.js
CHANGED
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
import Label from "../label";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import { nodeQuery } from "../utilities/query";
|
|
6
|
+
|
|
7
|
+
const metavariableNodeQuery = nodeQuery("/label/metavariable!");
|
|
8
|
+
|
|
9
|
+
export default function verifyLabel(labelNode, labels, fileContext) {
|
|
6
10
|
let labelVerified = false;
|
|
7
11
|
|
|
8
|
-
const
|
|
12
|
+
const labelString = fileContext.nodeAsString(labelNode);
|
|
9
13
|
|
|
10
|
-
fileContext.trace(`Verifying the '${
|
|
14
|
+
fileContext.trace(`Verifying the '${labelString}' label...`, labelNode);
|
|
11
15
|
|
|
12
|
-
const
|
|
16
|
+
const metavariableNode = metavariableNodeQuery(labelNode),
|
|
17
|
+
labelPresent = fileContext.isLabelPresentByMetavariableNode(metavariableNode);
|
|
13
18
|
|
|
14
19
|
if (labelPresent) {
|
|
15
|
-
fileContext.debug(`The '${
|
|
20
|
+
fileContext.debug(`The '${labelString}' label is already present.`, labelNode);
|
|
16
21
|
} else {
|
|
17
22
|
const label = Label.fromMetavariableNode(metavariableNode);
|
|
18
23
|
|
|
@@ -22,7 +27,7 @@ export default function verifyLabel(metavariableNode, labels, fileContext) {
|
|
|
22
27
|
}
|
|
23
28
|
|
|
24
29
|
if (labelVerified) {
|
|
25
|
-
fileContext.debug(`...verified the '${
|
|
30
|
+
fileContext.debug(`...verified the '${labelString}' label.`, labelNode);
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
return labelVerified;
|
package/src/verify/labels.js
CHANGED
|
@@ -2,27 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
import verifyLabel from "../verify/label";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const labelsMetavariableNodesQuery = nodesQuery("/labels/metavariable");
|
|
8
|
-
|
|
9
|
-
export default function verifyLabels(labelsNode, labels, fileContext) {
|
|
5
|
+
export default function verifyLabels(labelNodes, labels, fileContext) {
|
|
10
6
|
let labelsVerified;
|
|
11
7
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} else {
|
|
15
|
-
const labelsMetavariableNodes = labelsMetavariableNodesQuery(labelsNode),
|
|
16
|
-
metavariableNodes = labelsMetavariableNodes; ///
|
|
17
|
-
|
|
18
|
-
labelsVerified = metavariableNodes.every((metavariableNode) => {
|
|
19
|
-
const labelVerified = verifyLabel(metavariableNode, labels, fileContext);
|
|
8
|
+
labelsVerified = labelNodes.every((labelNode) => {
|
|
9
|
+
const labelVerified = verifyLabel(labelNode, labels, fileContext);
|
|
20
10
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
11
|
+
if (labelVerified) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
26
15
|
|
|
27
16
|
return labelsVerified;
|
|
28
17
|
}
|
package/src/verify/lemma.js
CHANGED
|
@@ -12,15 +12,15 @@ import { EMPTY_STRING } from "../constants";
|
|
|
12
12
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
13
13
|
|
|
14
14
|
const proofNodeQuery = nodeQuery("/lemma/proof!"),
|
|
15
|
-
|
|
15
|
+
labelNodesQuery = nodesQuery("/lemma/label"),
|
|
16
16
|
consequentNodeQuery = nodeQuery("/lemma/consequent!"),
|
|
17
17
|
suppositionsNodeQuery = nodesQuery("/lemma/supposition");
|
|
18
18
|
|
|
19
19
|
export default function verifyLemma(lemmaNode, fileContext) {
|
|
20
20
|
let lemmaVerified = false;
|
|
21
21
|
|
|
22
|
-
const
|
|
23
|
-
labelsString = fileContext.
|
|
22
|
+
const labelNodes = labelNodesQuery(lemmaNode),
|
|
23
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
24
24
|
localContext = LocalContext.fromFileContext(fileContext);
|
|
25
25
|
|
|
26
26
|
(labelsString === EMPTY_STRING) ?
|
|
@@ -28,7 +28,7 @@ export default function verifyLemma(lemmaNode, fileContext) {
|
|
|
28
28
|
fileContext.trace(`Verifying the '${labelsString}' lemma...`, lemmaNode);
|
|
29
29
|
|
|
30
30
|
const labels = [],
|
|
31
|
-
labelsVerified = verifyLabels(
|
|
31
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
32
32
|
|
|
33
33
|
if (labelsVerified) {
|
|
34
34
|
const suppositions = [],
|
package/src/verify/metaLemma.js
CHANGED
|
@@ -11,7 +11,7 @@ import { first } from "../utilities/array";
|
|
|
11
11
|
import { EMPTY_STRING } from "../constants";
|
|
12
12
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
13
13
|
|
|
14
|
-
const
|
|
14
|
+
const labelNodesQuery = nodesQuery("/metaLemma/label"),
|
|
15
15
|
metaproofNodeQuery = nodeQuery("/metaLemma/metaproof!"),
|
|
16
16
|
metaConsequentNodeQuery = nodeQuery("/metaLemma/metaConsequent!"),
|
|
17
17
|
metaSuppositionsNodeQuery = nodesQuery("/metaLemma/metaSupposition");
|
|
@@ -19,8 +19,8 @@ const labelsNodeQuery = nodeQuery("/metaLemma/labels!"),
|
|
|
19
19
|
export default function verifyMetaLemma(metaLemmaNode, fileContext) {
|
|
20
20
|
let metaLemmaVerified = false;
|
|
21
21
|
|
|
22
|
-
const
|
|
23
|
-
labelsString = fileContext.
|
|
22
|
+
const labelNodes = labelNodesQuery(metaLemmaNode),
|
|
23
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
24
24
|
localMetaContext = LocalMetaContext.fromFileContext(fileContext);
|
|
25
25
|
|
|
26
26
|
(labelsString === EMPTY_STRING) ?
|
|
@@ -28,7 +28,7 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
|
|
|
28
28
|
fileContext.trace(`Verifying the '${labelsString}' meta-lLemma...`, metaLemmaNode);
|
|
29
29
|
|
|
30
30
|
const labels = [],
|
|
31
|
-
labelsVerified = verifyLabels(
|
|
31
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
32
32
|
|
|
33
33
|
if (labelsVerified) {
|
|
34
34
|
const substitutions = [],
|
|
@@ -10,7 +10,7 @@ import verifyMetaSuppositions from "../verify/metaSuppositions";
|
|
|
10
10
|
import { first } from "../utilities/array";
|
|
11
11
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
12
12
|
|
|
13
|
-
const
|
|
13
|
+
const labelNodesQuery = nodesQuery("/metatheorem/label"),
|
|
14
14
|
metaproofNodeQuery = nodeQuery("/metatheorem/metaproof!"),
|
|
15
15
|
metaConsequentNodeQuery = nodeQuery("/metatheorem/metaConsequent!"),
|
|
16
16
|
metaSuppositionsNodeQuery = nodesQuery("/metatheorem/metaSupposition");
|
|
@@ -18,14 +18,14 @@ const labelsNodeQuery = nodeQuery("/metatheorem/labels!"),
|
|
|
18
18
|
export default function verifyMetatheorem(metatheoremNode, fileContext) {
|
|
19
19
|
let metatheoremVerified = false;
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
labelsString = fileContext.
|
|
21
|
+
const labelNodes = labelNodesQuery(metatheoremNode),
|
|
22
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
23
23
|
localMetaContext = LocalMetaContext.fromFileContext(fileContext);
|
|
24
24
|
|
|
25
25
|
fileContext.trace(`Verifying the '${labelsString}' metatheorem...`, metatheoremNode);
|
|
26
26
|
|
|
27
27
|
const labels = [],
|
|
28
|
-
labelsVerified = verifyLabels(
|
|
28
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
29
29
|
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
const substitutions = [],
|
package/src/verify/rule.js
CHANGED
|
@@ -10,7 +10,7 @@ import verifyConclusion from "../verify/conclusion";
|
|
|
10
10
|
import { first } from "../utilities/array";
|
|
11
11
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
12
12
|
|
|
13
|
-
const
|
|
13
|
+
const labelNodesQuery = nodesQuery("/rule/label"),
|
|
14
14
|
premisesNodeQuery = nodesQuery("/rule/premise"),
|
|
15
15
|
ruleProofNodeQuery = nodeQuery("/rule/ruleProof!"),
|
|
16
16
|
conclusionNodeQuery = nodeQuery("/rule/conclusion!");
|
|
@@ -18,14 +18,14 @@ const labelsNodeQuery = nodeQuery("/rule/labels!"),
|
|
|
18
18
|
export default function verifyRule(ruleNode, fileContext) {
|
|
19
19
|
let ruleVerified = false;
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
labelsString = fileContext.
|
|
21
|
+
const labelNodes = labelNodesQuery(ruleNode),
|
|
22
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
23
23
|
localMetaContext = LocalMetaContext.fromFileContext(fileContext);
|
|
24
24
|
|
|
25
25
|
fileContext.trace(`Verifying the '${labelsString}' rule...`, ruleNode);
|
|
26
26
|
|
|
27
27
|
const labels = [],
|
|
28
|
-
labelsVerified = verifyLabels(
|
|
28
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
29
29
|
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
const premises = [],
|
package/src/verify/theorem.js
CHANGED
|
@@ -11,21 +11,21 @@ import { first } from "../utilities/array";
|
|
|
11
11
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
12
12
|
|
|
13
13
|
const proofNodeQuery = nodeQuery("/theorem/proof!"),
|
|
14
|
-
|
|
14
|
+
labelNodesQuery = nodesQuery("/theorem/label"),
|
|
15
15
|
consequentNodeQuery = nodeQuery("/theorem/consequent!"),
|
|
16
16
|
suppositionsNodeQuery = nodesQuery("/theorem/supposition");
|
|
17
17
|
|
|
18
18
|
export default function verifyTheorem(theoremNode, fileContext) {
|
|
19
19
|
let theoremVerified = false;
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
labelsString = fileContext.
|
|
21
|
+
const labelNodes = labelNodesQuery(theoremNode),
|
|
22
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
23
23
|
localContext = LocalContext.fromFileContext(fileContext);
|
|
24
24
|
|
|
25
25
|
fileContext.trace(`Verifying the '${labelsString}' theorem...`, theoremNode);
|
|
26
26
|
|
|
27
27
|
const labels = [],
|
|
28
|
-
labelsVerified = verifyLabels(
|
|
28
|
+
labelsVerified = verifyLabels(labelNodes, labels, fileContext);
|
|
29
29
|
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
const suppositions = [],
|