occam-verify-cli 0.0.682 → 0.0.684
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/assignment/equality.js +60 -0
- package/lib/assignment/variable.js +60 -0
- package/lib/axiom.js +4 -4
- package/lib/axiomLemmaTheoremConjecture.js +29 -29
- package/lib/collection.js +154 -0
- package/lib/combinator.js +1 -1
- package/lib/conclusion.js +5 -5
- package/lib/conjecture.js +4 -4
- package/lib/consequent.js +3 -3
- package/lib/constructor.js +1 -1
- package/lib/context/file.js +9 -2
- package/lib/context/local.js +330 -0
- package/lib/context/localMeta.js +192 -0
- package/lib/context/release.js +1 -1
- package/lib/equality.js +19 -87
- package/lib/label.js +1 -1
- package/lib/lemma.js +4 -4
- package/lib/log.js +1 -1
- package/lib/metaType.js +1 -1
- package/lib/metavariable.js +1 -1
- package/lib/ocmbinator/bracketed.js +1 -1
- package/lib/premise.js +9 -9
- package/lib/rule.js +25 -25
- package/lib/step/metaproof.js +1 -1
- package/lib/step/proof.js +1 -1
- package/lib/substitution/metastatementForMetavariable.js +1 -1
- package/lib/substitution/statementForMetavariable.js +1 -1
- package/lib/substitution/termForVariable.js +1 -1
- package/lib/supposition.js +5 -5
- package/lib/term.js +68 -0
- package/lib/theorem.js +4 -4
- package/lib/type.js +5 -5
- package/lib/utilities/array.js +4 -4
- package/lib/utilities/collection.js +107 -0
- package/lib/variable.js +1 -1
- package/lib/verifier/node/metastatement.js +9 -9
- package/lib/verifier/node/statementAsCombinator.js +1 -1
- package/lib/verifier/node/termAsConstructor.js +2 -2
- package/lib/verifier/node.js +1 -1
- package/lib/verifier/nodes/metastatementForMetavariable/conclusion.js +1 -1
- package/lib/verifier/nodes/metastatementForMetavariable/premise.js +1 -1
- package/lib/verifier/nodes/metastatementForMetavariable.js +8 -8
- package/lib/verifier/nodes/statement.js +1 -1
- package/lib/verifier/nodes/statementForMetavariable/conclusion.js +1 -1
- package/lib/verifier/nodes/statementForMetavariable/premise.js +1 -1
- package/lib/verifier/nodes/statementForMetavariable.js +9 -9
- package/lib/verifier/nodes/term.js +3 -3
- package/lib/verifier/nodes/termForVariable/consequent.js +1 -1
- package/lib/verifier/nodes/termForVariable/supposition.js +1 -1
- package/lib/verifier/nodes/termForVariable.js +11 -11
- package/lib/verifier/nodes.js +1 -1
- package/lib/verify/axiom.js +6 -6
- package/lib/verify/conclusion.js +6 -6
- package/lib/verify/conjecture.js +7 -7
- package/lib/verify/consequent.js +6 -6
- package/lib/verify/derivation.js +17 -17
- package/lib/verify/equality.js +50 -18
- package/lib/verify/lemma.js +7 -7
- package/lib/verify/metastatement/qualified.js +7 -7
- package/lib/verify/metastatement/unqualified.js +7 -7
- package/lib/verify/metastatement.js +12 -12
- package/lib/verify/premise.js +7 -7
- package/lib/verify/proof.js +10 -7
- package/lib/verify/rule.js +6 -6
- package/lib/verify/ruleDerivation.js +17 -17
- package/lib/verify/ruleProof.js +6 -6
- package/lib/verify/statement/qualified.js +15 -15
- package/lib/verify/statement/unqualified.js +7 -7
- package/lib/verify/supposition.js +8 -8
- package/lib/verify/term.js +32 -31
- package/lib/verify/terms.js +11 -17
- package/lib/verify/theorem.js +7 -7
- package/lib/verify/typeAssertion.js +3 -3
- package/package.json +2 -2
- package/src/assignment/equality.js +21 -0
- package/src/assignment/variable.js +21 -0
- package/src/axiom.js +1 -1
- package/src/axiomLemmaTheoremConjecture.js +26 -26
- package/src/collection.js +101 -0
- package/src/conclusion.js +6 -6
- package/src/conjecture.js +1 -1
- package/src/consequent.js +4 -4
- package/src/context/file.js +9 -1
- package/src/context/local.js +311 -0
- package/src/context/{metaproof.js → localMeta.js} +16 -17
- package/src/equality.js +17 -111
- package/src/lemma.js +1 -1
- package/src/premise.js +12 -12
- package/src/rule.js +24 -24
- package/src/supposition.js +8 -8
- package/src/term.js +30 -0
- package/src/theorem.js +1 -1
- package/src/type.js +3 -3
- package/src/utilities/array.js +1 -1
- package/src/utilities/collection.js +83 -0
- package/src/verifier/node/metastatement.js +8 -8
- package/src/verifier/node/termAsConstructor.js +2 -2
- package/src/verifier/nodes/metastatementForMetavariable.js +7 -7
- package/src/verifier/nodes/statementForMetavariable.js +8 -8
- package/src/verifier/nodes/term.js +5 -4
- package/src/verifier/nodes/termForVariable.js +15 -14
- package/src/verify/axiom.js +5 -5
- package/src/verify/conclusion.js +5 -5
- package/src/verify/conjecture.js +6 -6
- package/src/verify/consequent.js +5 -5
- package/src/verify/derivation.js +16 -16
- package/src/verify/equality.js +81 -24
- package/src/verify/lemma.js +6 -6
- package/src/verify/metastatement/qualified.js +7 -7
- package/src/verify/metastatement/unqualified.js +6 -6
- package/src/verify/metastatement.js +11 -11
- package/src/verify/premise.js +6 -6
- package/src/verify/proof.js +13 -10
- package/src/verify/rule.js +5 -5
- package/src/verify/ruleDerivation.js +16 -16
- package/src/verify/ruleProof.js +5 -5
- package/src/verify/statement/qualified.js +15 -15
- package/src/verify/statement/unqualified.js +6 -6
- package/src/verify/supposition.js +7 -7
- package/src/verify/term.js +38 -35
- package/src/verify/terms.js +14 -28
- package/src/verify/theorem.js +6 -6
- package/src/verify/typeAssertion.js +3 -2
- package/lib/assignment.js +0 -74
- package/lib/context/metaproof.js +0 -192
- package/lib/context/proof.js +0 -245
- package/lib/verifier/nodes/equality.js +0 -155
- package/src/assignment.js +0 -36
- package/src/context/proof.js +0 -205
- package/src/verifier/nodes/equality.js +0 -68
package/lib/verify/axiom.js
CHANGED
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _axiom = /*#__PURE__*/ _interop_require_default(require("../axiom"));
|
|
12
|
-
var
|
|
12
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
13
13
|
var _labels = /*#__PURE__*/ _interop_require_default(require("../verify/labels"));
|
|
14
14
|
var _consequent = /*#__PURE__*/ _interop_require_default(require("../verify/consequent"));
|
|
15
15
|
var _supposition = /*#__PURE__*/ _interop_require_default(require("../verify/supposition"));
|
|
@@ -23,20 +23,20 @@ function _interop_require_default(obj) {
|
|
|
23
23
|
var labelNodesQuery = (0, _query.nodesQuery)("/axiom/labels/label"), consequentNodeQuery = (0, _query.nodeQuery)("/axiom/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/axiom/supposition");
|
|
24
24
|
function verifyAxiom(axiomNode, fileContext) {
|
|
25
25
|
var axiomVerified = false;
|
|
26
|
-
var labelNodes = labelNodesQuery(axiomNode), labelsString = fileContext.nodesAsString(labelNodes),
|
|
26
|
+
var labelNodes = labelNodesQuery(axiomNode), labelsString = fileContext.nodesAsString(labelNodes), localContext = _local.default.fromFileContext(fileContext);
|
|
27
27
|
fileContext.trace("Verifying the '".concat(labelsString, "' axiom..."), axiomNode);
|
|
28
28
|
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
29
29
|
if (labelsVerified) {
|
|
30
30
|
var suppositions = [], suppositionNodes = suppositionsNodeQuery(axiomNode), suppositionsVerified = suppositionNodes.every(function(suppositionNode) {
|
|
31
|
-
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions,
|
|
31
|
+
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions, localContext);
|
|
32
32
|
if (suppositionVerified) {
|
|
33
33
|
return true;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
if (suppositionsVerified) {
|
|
37
|
-
var consequents = [], consequentNode = consequentNodeQuery(axiomNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents,
|
|
37
|
+
var consequents = [], consequentNode = consequentNodeQuery(axiomNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents, localContext);
|
|
38
38
|
if (consequentVerified) {
|
|
39
|
-
var firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, axiom = _axiom.default.
|
|
39
|
+
var firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, axiom = _axiom.default.fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext);
|
|
40
40
|
fileContext.addAxiom(axiom);
|
|
41
41
|
axiomVerified = true;
|
|
42
42
|
}
|
|
@@ -48,4 +48,4 @@ function verifyAxiom(axiomNode, fileContext) {
|
|
|
48
48
|
return axiomVerified;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvYXhpb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBBeGlvbSBmcm9tIFwiLi4vYXhpb21cIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW50IGZyb20gXCIuLi92ZXJpZnkvY29uc2VxdWVudFwiO1xuaW1wb3J0IHZlcmlmeVN1cHBvc2l0aW9uIGZyb20gXCIuLi92ZXJpZnkvc3VwcG9zaXRpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvYXhpb20vbGFiZWxzL2xhYmVsXCIpLFxuICAgICAgY29uc2VxdWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9heGlvbS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvYXhpb20vc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUF4aW9tKGF4aW9tTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGF4aW9tVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KGF4aW9tTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIGF4aW9tLi4uYCwgYXhpb21Ob2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25zID0gW10sXG4gICAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHN1cHBvc2l0aW9uc05vZGVRdWVyeShheGlvbU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gc3VwcG9zaXRpb25Ob2Rlcy5ldmVyeSgoc3VwcG9zaXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdXBwb3NpdGlvblZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChzdXBwb3NpdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25zZXF1ZW50cyA9IFtdLFxuICAgICAgICAgICAgY29uc2VxdWVudE5vZGUgPSBjb25zZXF1ZW50Tm9kZVF1ZXJ5KGF4aW9tTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBmaXJzdENvbnNlcXVlbnQgPSBmaXJzdChjb25zZXF1ZW50cyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbnQgPSBmaXJzdENvbnNlcXVlbnQsIC8vL1xuICAgICAgICAgICAgICBheGlvbSA9IEF4aW9tLmZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW50QW5kTG9jYWxDb250ZXh0KGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmFkZEF4aW9tKGF4aW9tKTtcblxuICAgICAgICBheGlvbVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoYXhpb21WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgYXhpb20uYCwgYXhpb21Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBheGlvbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUF4aW9tIiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdXBwb3NpdGlvbnNOb2RlUXVlcnkiLCJheGlvbU5vZGUiLCJmaWxlQ29udGV4dCIsImF4aW9tVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInRyYWNlIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25zVmVyaWZpZWQiLCJldmVyeSIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbiIsImNvbnNlcXVlbnRzIiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW50IiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50IiwiYXhpb20iLCJBeGlvbSIsImZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW50QW5kTG9jYWxDb250ZXh0IiwiYWRkQXhpb20iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUF3QkE7Ozs0REFiTjs0REFDTzs2REFDQTtpRUFDSTtrRUFDQztxQkFFUjtxQkFDZ0I7Ozs7OztBQUV0QyxJQUFNQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsd0JBQzdCQyxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUMsdUJBQ2hDQyx3QkFBd0JILElBQUFBLGlCQUFVLEVBQUM7QUFFMUIsU0FBU0YsWUFBWU0sU0FBUyxFQUFFQyxXQUFXO0lBQ3hELElBQUlDLGdCQUFnQjtJQUVwQixJQUFNQyxhQUFhUixnQkFBZ0JLLFlBQzdCSSxlQUFlSCxZQUFZSSxhQUFhLENBQUNGLGFBQ3pDRyxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ1A7SUFFbERBLFlBQVlRLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTCxjQUFhLGVBQWFKO0lBRTlELElBQU1VLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVQ7SUFFeEQsSUFBSVUsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CZixzQkFBc0JDLFlBQ3pDZSx1QkFBdUJELGlCQUFpQkUsS0FBSyxDQUFDLFNBQUNDO1lBQzdDLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkosY0FBY1A7WUFFN0UsSUFBSVkscUJBQXFCO2dCQUN2QixPQUFPO1lBQ1Q7UUFDRjtRQUVOLElBQUlILHNCQUFzQjtZQUN4QixJQUFNSyxjQUFjLEVBQUUsRUFDaEJDLGlCQUFpQnhCLG9CQUFvQkcsWUFDckNzQixxQkFBcUJDLElBQUFBLG1CQUFnQixFQUFDRixnQkFBZ0JELGFBQWFkO1lBRXpFLElBQUlnQixvQkFBb0I7Z0JBQ3RCLElBQU1FLGtCQUFrQkMsSUFBQUEsWUFBSyxFQUFDTCxjQUN4Qk0sYUFBYUYsaUJBQ2JHLFFBQVFDLGNBQUssQ0FBQ0MsK0NBQStDLENBQUNuQixRQUFRRyxjQUFjYSxZQUFZcEI7Z0JBRXRHTCxZQUFZNkIsUUFBUSxDQUFDSDtnQkFFckJ6QixnQkFBZ0I7WUFDbEI7UUFDRjtJQUNGO0lBRUEsSUFBSUEsZUFBZTtRQUNqQkQsWUFBWThCLEtBQUssQ0FBQyxBQUFDLG9CQUFnQyxPQUFiM0IsY0FBYSxhQUFXSjtJQUNoRTtJQUVBLE9BQU9FO0FBQ1QifQ==
|
package/lib/verify/conclusion.js
CHANGED
|
@@ -17,20 +17,20 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
var metastatementNodeQuery = (0, _query.nodeQuery)("/unqualifiedMetastatement/metastatement!"), unqualifiedMetastatementNodeQuery = (0, _query.nodeQuery)("/conclusion/unqualifiedMetastatement!");
|
|
20
|
-
function verifyConclusion(conclusionNode, conclusions,
|
|
20
|
+
function verifyConclusion(conclusionNode, conclusions, localMetaContext) {
|
|
21
21
|
var conclusionVerified = false;
|
|
22
|
-
var conclusionString =
|
|
23
|
-
|
|
24
|
-
var derived = false, unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(conclusionNode), unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, derived,
|
|
22
|
+
var conclusionString = localMetaContext.nodeAsString(conclusionNode);
|
|
23
|
+
localMetaContext.trace("Verifying the '".concat(conclusionString, "' conclusion..."), conclusionNode);
|
|
24
|
+
var derived = false, unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(conclusionNode), unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, derived, localMetaContext);
|
|
25
25
|
if (unqualifiedMetastatementVerified) {
|
|
26
26
|
var metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode), conclusion = _conclusion.default.fromMetastatementNode(metastatementNode);
|
|
27
27
|
conclusions.push(conclusion);
|
|
28
28
|
conclusionVerified = true;
|
|
29
29
|
}
|
|
30
30
|
if (conclusionVerified) {
|
|
31
|
-
|
|
31
|
+
localMetaContext.debug("...verified the '".concat(conclusionString, "' conclusion."), conclusionNode);
|
|
32
32
|
}
|
|
33
33
|
return conclusionVerified;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29uY2x1c2lvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbmNsdXNpb24gZnJvbSBcIi4uL2NvbmNsdXNpb25cIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4vbWV0YXN0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbmNsdXNpb24vdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29uY2x1c2lvbihjb25jbHVzaW9uTm9kZSwgY29uY2x1c2lvbnMsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IGNvbmNsdXNpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbmNsdXNpb25TdHJpbmcgPSBsb2NhbE1ldGFDb250ZXh0Lm5vZGVBc1N0cmluZyhjb25jbHVzaW9uTm9kZSk7XG5cbiAgbG9jYWxNZXRhQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb25jbHVzaW9uU3RyaW5nfScgY29uY2x1c2lvbi4uLmAsIGNvbmNsdXNpb25Ob2RlKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkoY29uY2x1c2lvbk5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbmNsdXNpb25zLnB1c2goY29uY2x1c2lvbik7XG5cbiAgICBjb25jbHVzaW9uVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNvbmNsdXNpb25WZXJpZmllZCkge1xuICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb25jbHVzaW9uU3RyaW5nfScgY29uY2x1c2lvbi5gLCBjb25jbHVzaW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUNvbmNsdXNpb24iLCJtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5IiwiY29uY2x1c2lvbk5vZGUiLCJjb25jbHVzaW9ucyIsImxvY2FsTWV0YUNvbnRleHQiLCJjb25jbHVzaW9uVmVyaWZpZWQiLCJjb25jbHVzaW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJkZXJpdmVkIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJjb25jbHVzaW9uIiwiQ29uY2x1c2lvbiIsImZyb21NZXRhc3RhdGVtZW50Tm9kZSIsInB1c2giLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7OztpRUFSRDtrRUFDb0I7cUJBRWpCOzs7Ozs7QUFFMUIsSUFBTUMseUJBQXlCQyxJQUFBQSxnQkFBUyxFQUFDLDZDQUNuQ0Msb0NBQW9DRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXJDLFNBQVNGLGlCQUFpQkksY0FBYyxFQUFFQyxXQUFXLEVBQUVDLGdCQUFnQjtJQUNwRixJQUFJQyxxQkFBcUI7SUFFekIsSUFBTUMsbUJBQW1CRixpQkFBaUJHLFlBQVksQ0FBQ0w7SUFFdkRFLGlCQUFpQkksS0FBSyxDQUFDLEFBQUMsa0JBQWtDLE9BQWpCRixrQkFBaUIsb0JBQWtCSjtJQUU1RSxJQUFNTyxVQUFVLE9BQ1ZDLCtCQUErQlQsa0NBQWtDQyxpQkFDakVTLG1DQUFtQ0MsSUFBQUEsb0JBQThCLEVBQUNGLDhCQUE4QkQsU0FBU0w7SUFFL0csSUFBSU8sa0NBQWtDO1FBQ3BDLElBQU1FLG9CQUFvQmQsdUJBQXVCVywrQkFDM0NJLGFBQWFDLG1CQUFVLENBQUNDLHFCQUFxQixDQUFDSDtRQUVwRFYsWUFBWWMsSUFBSSxDQUFDSDtRQUVqQlQscUJBQXFCO0lBQ3ZCO0lBRUEsSUFBSUEsb0JBQW9CO1FBQ3RCRCxpQkFBaUJjLEtBQUssQ0FBQyxBQUFDLG9CQUFvQyxPQUFqQlosa0JBQWlCLGtCQUFnQko7SUFDOUU7SUFFQSxPQUFPRztBQUNUIn0=
|
package/lib/verify/conjecture.js
CHANGED
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _conjecture = /*#__PURE__*/ _interop_require_default(require("../conjecture"));
|
|
12
12
|
var _proof = /*#__PURE__*/ _interop_require_default(require("../verify/proof"));
|
|
13
|
-
var
|
|
13
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
14
14
|
var _labels = /*#__PURE__*/ _interop_require_default(require("../verify/labels"));
|
|
15
15
|
var _consequent = /*#__PURE__*/ _interop_require_default(require("./consequent"));
|
|
16
16
|
var _supposition = /*#__PURE__*/ _interop_require_default(require("./supposition"));
|
|
@@ -24,22 +24,22 @@ function _interop_require_default(obj) {
|
|
|
24
24
|
var proofNodeQuery = (0, _query.nodeQuery)("/conjecture/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/conjecture/labels/label"), consequentNodeQuery = (0, _query.nodeQuery)("/conjecture/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/conjecture/supposition");
|
|
25
25
|
function verifyConjecture(conjectureNode, fileContext) {
|
|
26
26
|
var conjectureVerified = false;
|
|
27
|
-
var labelNodes = labelNodesQuery(conjectureNode), labelsString = fileContext.nodesAsString(labelNodes),
|
|
27
|
+
var labelNodes = labelNodesQuery(conjectureNode), labelsString = fileContext.nodesAsString(labelNodes), localContext = _local.default.fromFileContext(fileContext);
|
|
28
28
|
fileContext.trace("Verifying the '".concat(labelsString, "' conjecture..."), conjectureNode);
|
|
29
29
|
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
30
30
|
if (labelsVerified) {
|
|
31
31
|
var suppositions = [], suppositionNodes = suppositionsNodeQuery(conjectureNode), suppositionsVerified = suppositionNodes.every(function(suppositionNode) {
|
|
32
|
-
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions,
|
|
32
|
+
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions, localContext);
|
|
33
33
|
if (suppositionVerified) {
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
if (suppositionsVerified) {
|
|
38
|
-
var consequents = [], consequentNode = consequentNodeQuery(conjectureNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents,
|
|
38
|
+
var consequents = [], consequentNode = consequentNodeQuery(conjectureNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents, localContext);
|
|
39
39
|
if (consequentVerified) {
|
|
40
40
|
var proofNode = proofNodeQuery(conjectureNode), firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent; ///
|
|
41
|
-
(0, _proof.default)(proofNode, consequent,
|
|
42
|
-
var conjecture = _conjecture.default.
|
|
41
|
+
(0, _proof.default)(proofNode, consequent, localContext);
|
|
42
|
+
var conjecture = _conjecture.default.fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext);
|
|
43
43
|
fileContext.addConjecture(conjecture);
|
|
44
44
|
conjectureVerified = true;
|
|
45
45
|
}
|
|
@@ -51,4 +51,4 @@ function verifyConjecture(conjectureNode, fileContext) {
|
|
|
51
51
|
return conjectureVerified;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29uamVjdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbmplY3R1cmUgZnJvbSBcIi4uL2NvbmplY3R1cmVcIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi9jb25zZXF1ZW50XCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbmplY3R1cmUvcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb25qZWN0dXJlL2xhYmVscy9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uamVjdHVyZS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvY29uamVjdHVyZS9zdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29uamVjdHVyZShjb25qZWN0dXJlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGNvbmplY3R1cmVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkoY29uamVjdHVyZU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBjb25qZWN0dXJlLi4uYCwgY29uamVjdHVyZU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KGNvbmplY3R1cmVOb2RlKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNWZXJpZmllZCA9IHN1cHBvc2l0aW9uTm9kZXMuZXZlcnkoKHN1cHBvc2l0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25WZXJpZmllZCA9IHZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uTm9kZSwgc3VwcG9zaXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVudHMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnROb2RlID0gY29uc2VxdWVudE5vZGVRdWVyeShjb25qZWN0dXJlTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBwcm9vZk5vZGUgPSBwcm9vZk5vZGVRdWVyeShjb25qZWN0dXJlTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudDsgLy8vXG5cbiAgICAgICAgdmVyaWZ5UHJvb2YocHJvb2ZOb2RlLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGNvbmplY3R1cmUgPSBDb25qZWN0dXJlLmZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW50QW5kTG9jYWxDb250ZXh0KGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmFkZENvbmplY3R1cmUoY29uamVjdHVyZSk7XG5cbiAgICAgICAgY29uamVjdHVyZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoY29uamVjdHVyZVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBjb25qZWN0dXJlLmAsIGNvbmplY3R1cmVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBjb25qZWN0dXJlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5Q29uamVjdHVyZSIsInByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbnNOb2RlUXVlcnkiLCJjb25qZWN0dXJlTm9kZSIsImZpbGVDb250ZXh0IiwiY29uamVjdHVyZVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJ0cmFjZSIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwic3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwiZXZlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwidmVyaWZ5U3VwcG9zaXRpb24iLCJjb25zZXF1ZW50cyIsImNvbnNlcXVlbnROb2RlIiwiY29uc2VxdWVudFZlcmlmaWVkIiwidmVyaWZ5Q29uc2VxdWVudCIsInByb29mTm9kZSIsImZpcnN0Q29uc2VxdWVudCIsImZpcnN0IiwiY29uc2VxdWVudCIsInZlcmlmeVByb29mIiwiY29uamVjdHVyZSIsIkNvbmplY3R1cmUiLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsImFkZENvbmplY3R1cmUiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7aUVBZkQ7NERBQ0M7NERBQ0M7NkRBQ0E7aUVBQ0k7a0VBQ0M7cUJBRVI7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLHVCQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLDZCQUM3QkMsc0JBQXNCSCxJQUFBQSxnQkFBUyxFQUFDLDRCQUNoQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGlCQUFpQk8sY0FBYyxFQUFFQyxXQUFXO0lBQ2xFLElBQUlDLHFCQUFxQjtJQUV6QixJQUFNQyxhQUFhUCxnQkFBZ0JJLGlCQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRixhQUN6Q0csZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNQO0lBRWxEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxvQkFBa0JKO0lBRW5FLElBQU1VLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVQ7SUFFeEQsSUFBSVUsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CZixzQkFBc0JDLGlCQUN6Q2UsdUJBQXVCRCxpQkFBaUJFLEtBQUssQ0FBQyxTQUFDQztZQUM3QyxJQUFNQyxzQkFBc0JDLElBQUFBLG9CQUFpQixFQUFDRixpQkFBaUJKLGNBQWNQO1lBRTdFLElBQUlZLHFCQUFxQjtnQkFDdkIsT0FBTztZQUNUO1FBQ0Y7UUFFTixJQUFJSCxzQkFBc0I7WUFDeEIsSUFBTUssY0FBYyxFQUFFLEVBQ2hCQyxpQkFBaUJ2QixvQkFBb0JFLGlCQUNyQ3NCLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYWQ7WUFFekUsSUFBSWdCLG9CQUFvQjtnQkFDdEIsSUFBTUUsWUFBWTlCLGVBQWVNLGlCQUMzQnlCLGtCQUFrQkMsSUFBQUEsWUFBSyxFQUFDTixjQUN4Qk8sYUFBYUYsaUJBQWlCLEdBQUc7Z0JBRXZDRyxJQUFBQSxjQUFXLEVBQUNKLFdBQVdHLFlBQVlyQjtnQkFFbkMsSUFBTXVCLGFBQWFDLG1CQUFVLENBQUNDLCtDQUErQyxDQUFDckIsUUFBUUcsY0FBY2MsWUFBWXJCO2dCQUVoSEwsWUFBWStCLGFBQWEsQ0FBQ0g7Z0JBRTFCM0IscUJBQXFCO1lBQ3ZCO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLG9CQUFvQjtRQUN0QkQsWUFBWWdDLEtBQUssQ0FBQyxBQUFDLG9CQUFnQyxPQUFiN0IsY0FBYSxrQkFBZ0JKO0lBQ3JFO0lBRUEsT0FBT0U7QUFDVCJ9
|
package/lib/verify/consequent.js
CHANGED
|
@@ -17,20 +17,20 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!"), unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/consequent/unqualifiedStatement!");
|
|
20
|
-
function verifyConsequent(consequentNode, consequents,
|
|
20
|
+
function verifyConsequent(consequentNode, consequents, localContext) {
|
|
21
21
|
var consequentVerified = false;
|
|
22
|
-
var consequentString =
|
|
23
|
-
|
|
24
|
-
var derived = false, assignments = [], unqualifiedStatementNode = unqualifiedStatementNodeQuery(consequentNode), unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments, derived,
|
|
22
|
+
var consequentString = localContext.nodeAsString(consequentNode);
|
|
23
|
+
localContext.trace("Verifying the '".concat(consequentString, "' consequent..."), consequentNode);
|
|
24
|
+
var derived = false, assignments = [], unqualifiedStatementNode = unqualifiedStatementNodeQuery(consequentNode), unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments, derived, localContext);
|
|
25
25
|
if (unqualifiedStatementVerified) {
|
|
26
26
|
var statementNode = statementNodeQuery(unqualifiedStatementNode), consequent = _consequent.default.fromStatementNode(statementNode);
|
|
27
27
|
consequents.push(consequent);
|
|
28
28
|
consequentVerified = true;
|
|
29
29
|
}
|
|
30
30
|
if (consequentVerified) {
|
|
31
|
-
|
|
31
|
+
localContext.debug("...verified the '".concat(consequentString, "' consequent."), consequentNode);
|
|
32
32
|
}
|
|
33
33
|
return consequentVerified;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29uc2VxdWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbnNlcXVlbnQgZnJvbSBcIi4uL2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi9zdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnNlcXVlbnQvdW5xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBjb25zZXF1ZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBjb25zZXF1ZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhjb25zZXF1ZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnNlcXVlbnRTdHJpbmd9JyBjb25zZXF1ZW50Li4uYCwgY29uc2VxdWVudE5vZGUpO1xuXG4gIGNvbnN0IGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkoY29uc2VxdWVudE5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBjb25zZXF1ZW50ID0gQ29uc2VxdWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnNlcXVlbnRzLnB1c2goY29uc2VxdWVudCk7XG5cbiAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnNlcXVlbnRTdHJpbmd9JyBjb25zZXF1ZW50LmAsIGNvbnNlcXVlbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBjb25zZXF1ZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5Q29uc2VxdWVudCIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50cyIsImxvY2FsQ29udGV4dCIsImNvbnNlcXVlbnRWZXJpZmllZCIsImNvbnNlcXVlbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJjb25zZXF1ZW50IiwiQ29uc2VxdWVudCIsImZyb21TdGF0ZW1lbnROb2RlIiwicHVzaCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O2lFQVJEO2tFQUNnQjtxQkFFYjs7Ozs7O0FBRTFCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxxQ0FDL0JDLGdDQUFnQ0QsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixpQkFBaUJJLGNBQWMsRUFBRUMsV0FBVyxFQUFFQyxZQUFZO0lBQ2hGLElBQUlDLHFCQUFxQjtJQUV6QixJQUFNQyxtQkFBbUJGLGFBQWFHLFlBQVksQ0FBQ0w7SUFFbkRFLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUFrQyxPQUFqQkYsa0JBQWlCLG9CQUFrQko7SUFFeEUsSUFBTU8sVUFBVSxPQUNWQyxjQUFjLEVBQUUsRUFDaEJDLDJCQUEyQlYsOEJBQThCQyxpQkFDekRVLCtCQUErQkMsSUFBQUEsb0JBQTBCLEVBQUNGLDBCQUEwQkQsYUFBYUQsU0FBU0w7SUFFaEgsSUFBSVEsOEJBQThCO1FBQ2hDLElBQU1FLGdCQUFnQmYsbUJBQW1CWSwyQkFDbkNJLGFBQWFDLG1CQUFVLENBQUNDLGlCQUFpQixDQUFDSDtRQUVoRFgsWUFBWWUsSUFBSSxDQUFDSDtRQUVqQlYscUJBQXFCO0lBQ3ZCO0lBRUEsSUFBSUEsb0JBQW9CO1FBQ3RCRCxhQUFhZSxLQUFLLENBQUMsQUFBQyxvQkFBb0MsT0FBakJiLGtCQUFpQixrQkFBZ0JKO0lBQzFFO0lBRUEsT0FBT0c7QUFDVCJ9
|
package/lib/verify/derivation.js
CHANGED
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _proof = /*#__PURE__*/ _interop_require_default(require("../step/proof"));
|
|
12
|
-
var
|
|
12
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
13
13
|
var _supposition = /*#__PURE__*/ _interop_require_default(require("./supposition"));
|
|
14
14
|
var _qualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/qualified"));
|
|
15
15
|
var _unqualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/unqualified"));
|
|
@@ -21,75 +21,75 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
var childNodesQuery = (0, _query.nodesQuery)("/derivation|subDerivation/*"), statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement|unqualifiedStatement/statement!"), suppositionNodesQuery = (0, _query.nodesQuery)("/subproof/supposition"), subDerivationNodeQuery = (0, _query.nodeQuery)("/subproof/subDerivation");
|
|
24
|
-
function verifyDerivation(derivationNode,
|
|
24
|
+
function verifyDerivation(derivationNode, localContext) {
|
|
25
25
|
var derivationVerified;
|
|
26
26
|
var childNodes = childNodesQuery(derivationNode);
|
|
27
27
|
derivationVerified = childNodes.every(function(childNode) {
|
|
28
|
-
var childVerified = verifyChild(childNode,
|
|
28
|
+
var childVerified = verifyChild(childNode, localContext);
|
|
29
29
|
if (childVerified) {
|
|
30
30
|
return true;
|
|
31
31
|
}
|
|
32
32
|
});
|
|
33
33
|
return derivationVerified;
|
|
34
34
|
}
|
|
35
|
-
function verifySubDerivation(subDerivationNode,
|
|
35
|
+
function verifySubDerivation(subDerivationNode, localContext) {
|
|
36
36
|
var subDerivationVerified;
|
|
37
37
|
var childNodes = childNodesQuery(subDerivationNode);
|
|
38
38
|
subDerivationVerified = childNodes.every(function(childNode) {
|
|
39
|
-
var childVerified = verifyChild(childNode,
|
|
39
|
+
var childVerified = verifyChild(childNode, localContext);
|
|
40
40
|
if (childVerified) {
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
return subDerivationVerified;
|
|
45
45
|
}
|
|
46
|
-
function verifySubproof(subproofNode,
|
|
46
|
+
function verifySubproof(subproofNode, localContext) {
|
|
47
47
|
var subproofVerified = false;
|
|
48
|
-
|
|
48
|
+
localContext = _local.default.fromLocalContext(localContext); ///
|
|
49
49
|
var suppositions = [], suppositionNodes = suppositionNodesQuery(subproofNode), suppositionsVerified = suppositionNodes.every(function(suppositionNode) {
|
|
50
|
-
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions,
|
|
50
|
+
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions, localContext);
|
|
51
51
|
if (suppositionVerified) {
|
|
52
52
|
return true;
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
if (suppositionsVerified) {
|
|
56
|
-
var subDerivationNode = subDerivationNodeQuery(subproofNode), subDerivationVerified = verifySubDerivation(subDerivationNode,
|
|
56
|
+
var subDerivationNode = subDerivationNodeQuery(subproofNode), subDerivationVerified = verifySubDerivation(subDerivationNode, localContext);
|
|
57
57
|
if (subDerivationVerified) {
|
|
58
58
|
subproofVerified = true;
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
return subproofVerified;
|
|
62
62
|
}
|
|
63
|
-
function verifyChild(childNode,
|
|
63
|
+
function verifyChild(childNode, localContext) {
|
|
64
64
|
var childVerified;
|
|
65
65
|
var childNodeRuleName = childNode.getRuleName();
|
|
66
66
|
switch(childNodeRuleName){
|
|
67
67
|
case _ruleNames.SUBPROOF_RULE_NAME:
|
|
68
68
|
{
|
|
69
|
-
var subproofNode = childNode, subproofVerified = verifySubproof(subproofNode,
|
|
69
|
+
var subproofNode = childNode, subproofVerified = verifySubproof(subproofNode, localContext);
|
|
70
70
|
if (subproofVerified) {
|
|
71
71
|
var proofStep = _proof.default.fromSubproofNode(subproofNode);
|
|
72
|
-
|
|
72
|
+
localContext.addProofStep(proofStep);
|
|
73
73
|
childVerified = true;
|
|
74
74
|
}
|
|
75
75
|
break;
|
|
76
76
|
}
|
|
77
77
|
case _ruleNames.QUALIFIED_STATEMENT_RULE_NAME:
|
|
78
78
|
{
|
|
79
|
-
var derived = true, assignments = [], qualifiedStatementNode = childNode, qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, assignments, derived,
|
|
79
|
+
var derived = true, assignments = [], qualifiedStatementNode = childNode, qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, assignments, derived, localContext);
|
|
80
80
|
if (qualifiedStatementVerified) {
|
|
81
81
|
var statementNode = statementNodeQuery(qualifiedStatementNode), proofStep1 = _proof.default.fromStatementNode(statementNode);
|
|
82
|
-
|
|
82
|
+
localContext.addProofStep(proofStep1);
|
|
83
83
|
childVerified = qualifiedStatementVerified; ///
|
|
84
84
|
}
|
|
85
85
|
break;
|
|
86
86
|
}
|
|
87
87
|
case _ruleNames.UNQUALIFIED_STATEMENT_RULE_NAME:
|
|
88
88
|
{
|
|
89
|
-
var derived1 = true, assignments1 = [], unqualifiedStatementNode = childNode, unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments1, derived1,
|
|
89
|
+
var derived1 = true, assignments1 = [], unqualifiedStatementNode = childNode, unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments1, derived1, localContext);
|
|
90
90
|
if (unqualifiedStatementVerified) {
|
|
91
91
|
var statementNode1 = statementNodeQuery(unqualifiedStatementNode), proofStep2 = _proof.default.fromStatementNode(statementNode1);
|
|
92
|
-
|
|
92
|
+
localContext.addProofStep(proofStep2);
|
|
93
93
|
childVerified = true;
|
|
94
94
|
}
|
|
95
95
|
break;
|
|
@@ -98,4 +98,4 @@ function verifyChild(childNode, proofContext) {
|
|
|
98
98
|
return childVerified;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVyaXZhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByb29mU3RlcCBmcm9tIFwiLi4vc3RlcC9wcm9vZlwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IHZlcmlmeVN1cHBvc2l0aW9uIGZyb20gXCIuL3N1cHBvc2l0aW9uXCI7XG5pbXBvcnQgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFNVQlBST09GX1JVTEVfTkFNRSwgUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IGNoaWxkTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZGVyaXZhdGlvbnxzdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50fHVucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICBzdXBwb3NpdGlvbk5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3N1YnByb29mL3N1cHBvc2l0aW9uXCIpLFxuICAgICAgc3ViRGVyaXZhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdWJwcm9vZi9zdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlEZXJpdmF0aW9uKGRlcml2YXRpb25Ob2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2YXRpb25WZXJpZmllZDtcblxuICBjb25zdCBjaGlsZE5vZGVzID0gY2hpbGROb2Rlc1F1ZXJ5KGRlcml2YXRpb25Ob2RlKTtcblxuICBkZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKGNoaWxkVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRlcml2YXRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3ViRGVyaXZhdGlvbihzdWJEZXJpdmF0aW9uTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShzdWJEZXJpdmF0aW9uTm9kZSk7XG5cbiAgc3ViRGVyaXZhdGlvblZlcmlmaWVkID0gY2hpbGROb2Rlcy5ldmVyeSgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGRWZXJpZmllZCA9IHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBzdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN1YnByb29mKHN1YnByb29mTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Mb2NhbENvbnRleHQobG9jYWxDb250ZXh0KTsgLy8vXG5cbiAgY29uc3Qgc3VwcG9zaXRpb25zID0gW10sXG4gICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbk5vZGVzUXVlcnkoc3VicHJvb2ZOb2RlKSxcbiAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSBzdXBwb3NpdGlvbk5vZGVzLmV2ZXJ5KChzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBzdXBwb3NpdGlvblZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdWJEZXJpdmF0aW9uTm9kZSA9IHN1YkRlcml2YXRpb25Ob2RlUXVlcnkoc3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICBzdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlTdWJEZXJpdmF0aW9uKHN1YkRlcml2YXRpb25Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN1YkRlcml2YXRpb25WZXJpZmllZCkge1xuICAgICAgc3VicHJvb2ZWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN1YnByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBjaGlsZFZlcmlmaWVkO1xuXG4gIGNvbnN0IGNoaWxkTm9kZVJ1bGVOYW1lID0gY2hpbGROb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgc3dpdGNoIChjaGlsZE5vZGVSdWxlTmFtZSkge1xuICAgIGNhc2UgU1VCUFJPT0ZfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBzdWJwcm9vZk5vZGUgPSBjaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlTdWJwcm9vZihzdWJwcm9vZk5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdWJwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSk7XG5cbiAgICAgICAgbG9jYWxDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuXG4gICAgICAgIGNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBkZXJpdmVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBsb2NhbENvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkOyAvLy9cbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBkZXJpdmVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBjaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBsb2NhbENvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeURlcml2YXRpb24iLCJjaGlsZE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5Iiwic3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsImRlcml2YXRpb25Ob2RlIiwibG9jYWxDb250ZXh0IiwiZGVyaXZhdGlvblZlcmlmaWVkIiwiY2hpbGROb2RlcyIsImV2ZXJ5IiwiY2hpbGROb2RlIiwiY2hpbGRWZXJpZmllZCIsInZlcmlmeUNoaWxkIiwidmVyaWZ5U3ViRGVyaXZhdGlvbiIsInN1YkRlcml2YXRpb25Ob2RlIiwic3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5U3VicHJvb2YiLCJzdWJwcm9vZk5vZGUiLCJzdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxDb250ZXh0IiwiZnJvbUxvY2FsQ29udGV4dCIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbiIsImNoaWxkTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJwcm9vZlN0ZXAiLCJQcm9vZlN0ZXAiLCJmcm9tU3VicHJvb2ZOb2RlIiwiYWRkUHJvb2ZTdGVwIiwiUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUiLCJkZXJpdmVkIiwiYXNzaWdubWVudHMiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnQkE7OztlQUF3QkE7Ozs0REFkRjs0REFDRztrRUFDSztnRUFDTztrRUFDRTtxQkFFRDt5QkFDNkQ7Ozs7OztBQUVuRyxJQUFNQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsZ0NBQzdCQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsd0RBQy9CQyx3QkFBd0JILElBQUFBLGlCQUFVLEVBQUMsMEJBQ25DSSx5QkFBeUJGLElBQUFBLGdCQUFTLEVBQUM7QUFFMUIsU0FBU0osaUJBQWlCTyxjQUFjLEVBQUVDLFlBQVk7SUFDbkUsSUFBSUM7SUFFSixJQUFNQyxhQUFhVCxnQkFBZ0JNO0lBRW5DRSxxQkFBcUJDLFdBQVdDLEtBQUssQ0FBQyxTQUFDQztRQUNyQyxJQUFNQyxnQkFBZ0JDLFlBQVlGLFdBQVdKO1FBRTdDLElBQUlLLGVBQWU7WUFDakIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPSjtBQUNUO0FBRUEsU0FBU00sb0JBQW9CQyxpQkFBaUIsRUFBRVIsWUFBWTtJQUMxRCxJQUFJUztJQUVKLElBQU1QLGFBQWFULGdCQUFnQmU7SUFFbkNDLHdCQUF3QlAsV0FBV0MsS0FBSyxDQUFDLFNBQUNDO1FBQ3hDLElBQU1DLGdCQUFnQkMsWUFBWUYsV0FBV0o7UUFFN0MsSUFBSUssZUFBZTtZQUNqQixPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxTQUFTQyxlQUFlQyxZQUFZLEVBQUVYLFlBQVk7SUFDaEQsSUFBSVksbUJBQW1CO0lBRXZCWixlQUFlYSxjQUFZLENBQUNDLGdCQUFnQixDQUFDZCxlQUFlLEdBQUc7SUFFL0QsSUFBTWUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJuQixzQkFBc0JjLGVBQ3pDTSx1QkFBdUJELGlCQUFpQmIsS0FBSyxDQUFDLFNBQUNlO1FBQzdDLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkgsY0FBY2Y7UUFFN0UsSUFBSW1CLHFCQUFxQjtZQUN2QixPQUFPO1FBQ1Q7SUFDRjtJQUVOLElBQUlGLHNCQUFzQjtRQUN4QixJQUFNVCxvQkFBb0JWLHVCQUF1QmEsZUFDM0NGLHdCQUF3QkYsb0JBQW9CQyxtQkFBbUJSO1FBRXJFLElBQUlTLHVCQUF1QjtZQUN6QkcsbUJBQW1CO1FBQ3JCO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU04sWUFBWUYsU0FBUyxFQUFFSixZQUFZO0lBQzFDLElBQUlLO0lBRUosSUFBTWdCLG9CQUFvQmpCLFVBQVVrQixXQUFXO0lBRS9DLE9BQVFEO1FBQ04sS0FBS0UsNkJBQWtCO1lBQUU7Z0JBQ3ZCLElBQU1aLGVBQWVQLFdBQ2ZRLG1CQUFtQkYsZUFBZUMsY0FBY1g7Z0JBRXRELElBQUlZLGtCQUFrQjtvQkFDcEIsSUFBTVksWUFBWUMsY0FBUyxDQUFDQyxnQkFBZ0IsQ0FBQ2Y7b0JBRTdDWCxhQUFhMkIsWUFBWSxDQUFDSDtvQkFFMUJuQixnQkFBZ0I7Z0JBQ2xCO2dCQUVBO1lBQ0Y7UUFFQSxLQUFLdUIsd0NBQTZCO1lBQUU7Z0JBQ2xDLElBQU1DLFVBQVUsTUFDVkMsY0FBYyxFQUFFLEVBQ2hCQyx5QkFBeUIzQixXQUN6QjRCLDZCQUE2QkMsSUFBQUEsa0JBQXdCLEVBQUNGLHdCQUF3QkQsYUFBYUQsU0FBUzdCO2dCQUUxRyxJQUFJZ0MsNEJBQTRCO29CQUM5QixJQUFNRSxnQkFBZ0J2QyxtQkFBbUJvQyx5QkFDbkNQLGFBQVlDLGNBQVMsQ0FBQ1UsaUJBQWlCLENBQUNEO29CQUU5Q2xDLGFBQWEyQixZQUFZLENBQUNIO29CQUUxQm5CLGdCQUFnQjJCLDRCQUE0QixHQUFHO2dCQUNqRDtnQkFFQTtZQUNGO1FBRUEsS0FBS0ksMENBQStCO1lBQUU7Z0JBQ3BDLElBQU1QLFdBQVUsTUFDVkMsZUFBYyxFQUFFLEVBQ2hCTywyQkFBMkJqQyxXQUMzQmtDLCtCQUErQkMsSUFBQUEsb0JBQTBCLEVBQUNGLDBCQUEwQlAsY0FBYUQsVUFBUzdCO2dCQUVoSCxJQUFJc0MsOEJBQThCO29CQUNoQyxJQUFNSixpQkFBZ0J2QyxtQkFBbUIwQywyQkFDbkNiLGFBQVlDLGNBQVMsQ0FBQ1UsaUJBQWlCLENBQUNEO29CQUU5Q2xDLGFBQWEyQixZQUFZLENBQUNIO29CQUUxQm5CLGdCQUFnQjtnQkFDbEI7Z0JBRUE7WUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
|
package/lib/verify/equality.js
CHANGED
|
@@ -10,22 +10,26 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _equality = /*#__PURE__*/ _interop_require_default(require("../equality"));
|
|
12
12
|
var _terms = /*#__PURE__*/ _interop_require_default(require("../verify/terms"));
|
|
13
|
+
var _equality1 = /*#__PURE__*/ _interop_require_default(require("../assignment/equality"));
|
|
14
|
+
var _query = require("../utilities/query");
|
|
15
|
+
var _array = require("../utilities/array");
|
|
13
16
|
function _interop_require_default(obj) {
|
|
14
17
|
return obj && obj.__esModule ? obj : {
|
|
15
18
|
default: obj
|
|
16
19
|
};
|
|
17
20
|
}
|
|
21
|
+
var leftTermNodeQuery = (0, _query.nodeQuery)("/equality/argument[0]/term!"), rightTermNodeQuery = (0, _query.nodeQuery)("/equality/argument[1]/term!");
|
|
18
22
|
function verifyEquality(equalityNode, assignments, derived, context, verifyAhead) {
|
|
19
23
|
var equalityVerified;
|
|
20
24
|
var equalityString = context.nodeAsString(equalityNode);
|
|
21
25
|
context.trace("Verifying the '".concat(equalityString, "' equality..."), equalityNode);
|
|
22
|
-
var
|
|
26
|
+
var verifyEqualityFunctions = [
|
|
23
27
|
verifyDerivedEquality,
|
|
24
28
|
verifyStandaloneEquality
|
|
25
29
|
];
|
|
26
|
-
equalityVerified =
|
|
27
|
-
var
|
|
28
|
-
if (
|
|
30
|
+
equalityVerified = verifyEqualityFunctions.some(function(verifyEqualityFunction) {
|
|
31
|
+
var equalityVerified = verifyEqualityFunction(equalityNode, assignments, derived, context, verifyAhead);
|
|
32
|
+
if (equalityVerified) {
|
|
29
33
|
return true;
|
|
30
34
|
}
|
|
31
35
|
});
|
|
@@ -34,31 +38,59 @@ function verifyEquality(equalityNode, assignments, derived, context, verifyAhead
|
|
|
34
38
|
}
|
|
35
39
|
return equalityVerified;
|
|
36
40
|
}
|
|
37
|
-
function verifyDerivedEquality(equalityNode, derived, context, verifyAhead) {
|
|
38
|
-
var
|
|
41
|
+
function verifyDerivedEquality(equalityNode, assignments, derived, context, verifyAhead) {
|
|
42
|
+
var derivedEqualityVerified = false;
|
|
39
43
|
if (derived) {
|
|
40
44
|
var equalityString = context.nodeAsString(equalityNode);
|
|
41
45
|
context.trace("Verifying the '".concat(equalityString, "' derived equality..."), equalityNode);
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
var terms = [], leftTermNode = leftTermNodeQuery(equalityNode), rightTermNode = rightTermNodeQuery(equalityNode), termNodes = [
|
|
47
|
+
leftTermNode,
|
|
48
|
+
rightTermNode
|
|
49
|
+
], termsVerified = (0, _terms.default)(termNodes, terms, context, function() {
|
|
50
|
+
var verifiedAhead = false;
|
|
51
|
+
var firstTerm = (0, _array.first)(terms), secondTerm = (0, _array.second)(terms), leftTerm = firstTerm, rightTerm = secondTerm, equality = _equality.default.fromLeftTermAndRightTerm(leftTerm, rightTerm);
|
|
52
|
+
if (equality !== null) {
|
|
53
|
+
var equalityEqual = context.isEqualityEqual(equality);
|
|
54
|
+
if (equalityEqual) {
|
|
55
|
+
verifiedAhead = verifyAhead();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return verifiedAhead;
|
|
59
|
+
});
|
|
60
|
+
derivedEqualityVerified = termsVerified; ///
|
|
61
|
+
if (derivedEqualityVerified) {
|
|
62
|
+
context.trace("...verified the '".concat(equalityString, "' derived equality."), equalityNode);
|
|
46
63
|
}
|
|
47
64
|
}
|
|
48
|
-
return
|
|
65
|
+
return derivedEqualityVerified;
|
|
49
66
|
}
|
|
50
|
-
function verifyStandaloneEquality(equalityNode, derived, context, verifyAhead) {
|
|
51
|
-
var
|
|
67
|
+
function verifyStandaloneEquality(equalityNode, assignments, derived, context, verifyAhead) {
|
|
68
|
+
var standaloneEqualityVerified = false;
|
|
52
69
|
if (!derived) {
|
|
53
70
|
var equalityString = context.nodeAsString(equalityNode);
|
|
54
71
|
context.trace("Verifying the '".concat(equalityString, "' standalone equality..."), equalityNode);
|
|
55
|
-
var
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
var terms = [], leftTermNode = leftTermNodeQuery(equalityNode), rightTermNode = rightTermNodeQuery(equalityNode), termNodes = [
|
|
73
|
+
leftTermNode,
|
|
74
|
+
rightTermNode
|
|
75
|
+
], termsVerified = (0, _terms.default)(termNodes, terms, context, function() {
|
|
76
|
+
var verifiedAhead = false;
|
|
77
|
+
var firstTerm = (0, _array.first)(terms), secondTerm = (0, _array.second)(terms), leftTerm = firstTerm, rightTerm = secondTerm, equality = _equality.default.fromLeftTermAndRightTerm(leftTerm, rightTerm);
|
|
78
|
+
if (equality !== null) {
|
|
79
|
+
var equalityAssignment = _equality1.default.fromEquality(equality), assignment = equalityAssignment; ///
|
|
80
|
+
assignments.push(assignment);
|
|
81
|
+
verifiedAhead = verifyAhead();
|
|
82
|
+
if (!verifiedAhead) {
|
|
83
|
+
assignments.pop();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return verifiedAhead;
|
|
87
|
+
});
|
|
88
|
+
standaloneEqualityVerified = termsVerified; ///
|
|
89
|
+
if (standaloneEqualityVerified) {
|
|
58
90
|
context.trace("...verified the '".concat(equalityString, "' standalone equality."), equalityNode);
|
|
59
91
|
}
|
|
60
92
|
}
|
|
61
|
-
return
|
|
93
|
+
return standaloneEqualityVerified;
|
|
62
94
|
}
|
|
63
95
|
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZXF1YWxpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFcXVhbGl0eSBmcm9tIFwiLi4vZXF1YWxpdHlcIjtcbmltcG9ydCB2ZXJpZnlUZXJtcyBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1zXCI7XG5pbXBvcnQgRXF1YWxpdHlBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L2VxdWFsaXR5XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmNvbnN0IGxlZnRUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2VxdWFsaXR5L2FyZ3VtZW50WzBdL3Rlcm0hXCIpLFxuICAgICAgcmlnaHRUZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2VxdWFsaXR5L2FyZ3VtZW50WzFdL3Rlcm0hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgZXF1YWxpdHlWZXJpZmllZDtcblxuICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKGVxdWFsaXR5Tm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGVxdWFsaXR5Li4uYCwgZXF1YWxpdHlOb2RlKTtcblxuICBjb25zdCB2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlEZXJpdmVkRXF1YWxpdHksXG4gICAgdmVyaWZ5U3RhbmRhbG9uZUVxdWFsaXR5XG4gIF07XG5cbiAgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5RnVuY3Rpb25zLnNvbWUoKHZlcmlmeUVxdWFsaXR5RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBlcXVhbGl0eVZlcmlmaWVkID0gdmVyaWZ5RXF1YWxpdHlGdW5jdGlvbihlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAoZXF1YWxpdHlWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAoZXF1YWxpdHlWZXJpZmllZCkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGVxdWFsaXR5LmAsIGVxdWFsaXR5Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gZXF1YWxpdHlWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZEVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBkZXJpdmVkRXF1YWxpdHlWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmVkKSB7XG4gICAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGRlcml2ZWQgZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICBsZWZ0VGVybU5vZGUgPSBsZWZ0VGVybU5vZGVRdWVyeShlcXVhbGl0eU5vZGUpLFxuICAgICAgICAgIHJpZ2h0VGVybU5vZGUgPSByaWdodFRlcm1Ob2RlUXVlcnkoZXF1YWxpdHlOb2RlKSxcbiAgICAgICAgICB0ZXJtTm9kZXMgPSBbXG4gICAgICAgICAgICBsZWZ0VGVybU5vZGUsXG4gICAgICAgICAgICByaWdodFRlcm1Ob2RlXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0ZXJtc1ZlcmlmaWVkID0gdmVyaWZ5VGVybXModGVybU5vZGVzLCB0ZXJtcywgY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgICAgc2Vjb25kVGVybSA9IHNlY29uZCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICBsZWZ0VGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICByaWdodFRlcm0gPSBzZWNvbmRUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbUxlZnRUZXJtQW5kUmlnaHRUZXJtKGxlZnRUZXJtLCByaWdodFRlcm0pO1xuXG4gICAgICAgICAgICBpZiAoZXF1YWxpdHkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXF1YWxpdHlFcXVhbCA9IGNvbnRleHQuaXNFcXVhbGl0eUVxdWFsKGVxdWFsaXR5KTtcblxuICAgICAgICAgICAgICBpZiAoZXF1YWxpdHlFcXVhbCkge1xuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgZGVyaXZlZEVxdWFsaXR5VmVyaWZpZWQgPSB0ZXJtc1ZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkRXF1YWxpdHlWZXJpZmllZCkge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmVyaWZpZWQgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZGVyaXZlZCBlcXVhbGl0eS5gLCBlcXVhbGl0eU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkRXF1YWxpdHlWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhbmRhbG9uZUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lRXF1YWxpdHlWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IGVxdWFsaXR5U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoZXF1YWxpdHlOb2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBzdGFuZGFsb25lIGVxdWFsaXR5Li4uYCwgZXF1YWxpdHlOb2RlKTtcblxuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgbGVmdFRlcm1Ob2RlID0gbGVmdFRlcm1Ob2RlUXVlcnkoZXF1YWxpdHlOb2RlKSxcbiAgICAgICAgICByaWdodFRlcm1Ob2RlID0gcmlnaHRUZXJtTm9kZVF1ZXJ5KGVxdWFsaXR5Tm9kZSksXG4gICAgICAgICAgdGVybU5vZGVzID0gW1xuICAgICAgICAgICAgbGVmdFRlcm1Ob2RlLFxuICAgICAgICAgICAgcmlnaHRUZXJtTm9kZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdGVybXNWZXJpZmllZCA9IHZlcmlmeVRlcm1zKHRlcm1Ob2RlcywgdGVybXMsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgICAgIHNlY29uZFRlcm0gPSBzZWNvbmQodGVybXMpLFxuICAgICAgICAgICAgICAgICAgbGVmdFRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgcmlnaHRUZXJtID0gc2Vjb25kVGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICBlcXVhbGl0eSA9IEVxdWFsaXR5LmZyb21MZWZ0VGVybUFuZFJpZ2h0VGVybShsZWZ0VGVybSwgcmlnaHRUZXJtKTtcblxuICAgICAgICAgICAgaWYgKGVxdWFsaXR5ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVxdWFsaXR5QXNzaWdubWVudCA9IEVxdWFsaXR5QXNzaWdubWVudC5mcm9tRXF1YWxpdHkoZXF1YWxpdHkpLFxuICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gZXF1YWxpdHlBc3NpZ25tZW50OyAvLy9cblxuICAgICAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuXG4gICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgc3RhbmRhbG9uZUVxdWFsaXR5VmVyaWZpZWQgPSB0ZXJtc1ZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGFuZGFsb25lRXF1YWxpdHlWZXJpZmllZCkge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmVyaWZpZWQgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgc3RhbmRhbG9uZSBlcXVhbGl0eS5gLCBlcXVhbGl0eU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGFuZGFsb25lRXF1YWxpdHlWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlFcXVhbGl0eSIsImxlZnRUZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicmlnaHRUZXJtTm9kZVF1ZXJ5IiwiZXF1YWxpdHlOb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwiZXF1YWxpdHlWZXJpZmllZCIsImVxdWFsaXR5U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRFcXVhbGl0eSIsInZlcmlmeVN0YW5kYWxvbmVFcXVhbGl0eSIsInNvbWUiLCJ2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkRXF1YWxpdHlWZXJpZmllZCIsInRlcm1zIiwibGVmdFRlcm1Ob2RlIiwicmlnaHRUZXJtTm9kZSIsInRlcm1Ob2RlcyIsInRlcm1zVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtcyIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInNlY29uZFRlcm0iLCJzZWNvbmQiLCJsZWZ0VGVybSIsInJpZ2h0VGVybSIsImVxdWFsaXR5IiwiRXF1YWxpdHkiLCJmcm9tTGVmdFRlcm1BbmRSaWdodFRlcm0iLCJlcXVhbGl0eUVxdWFsIiwiaXNFcXVhbGl0eUVxdWFsIiwic3RhbmRhbG9uZUVxdWFsaXR5VmVyaWZpZWQiLCJlcXVhbGl0eUFzc2lnbm1lbnQiLCJFcXVhbGl0eUFzc2lnbm1lbnQiLCJmcm9tRXF1YWxpdHkiLCJhc3NpZ25tZW50IiwicHVzaCIsInBvcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUF3QkE7OzsrREFWSDs0REFDRztnRUFDTztxQkFFTDtxQkFDSTs7Ozs7O0FBRTlCLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyxnQ0FDOUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRixlQUFlSSxZQUFZLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFdBQVc7SUFDN0YsSUFBSUM7SUFFSixJQUFNQyxpQkFBaUJILFFBQVFJLFlBQVksQ0FBQ1A7SUFFNUNHLFFBQVFLLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmRixnQkFBZSxrQkFBZ0JOO0lBRS9ELElBQU1TLDBCQUEwQjtRQUM5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
|
package/lib/verify/lemma.js
CHANGED
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _lemma = /*#__PURE__*/ _interop_require_default(require("../lemma"));
|
|
12
12
|
var _proof = /*#__PURE__*/ _interop_require_default(require("../verify/proof"));
|
|
13
|
-
var
|
|
13
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
14
14
|
var _labels = /*#__PURE__*/ _interop_require_default(require("../verify/labels"));
|
|
15
15
|
var _consequent = /*#__PURE__*/ _interop_require_default(require("./consequent"));
|
|
16
16
|
var _supposition = /*#__PURE__*/ _interop_require_default(require("./supposition"));
|
|
@@ -25,22 +25,22 @@ function _interop_require_default(obj) {
|
|
|
25
25
|
var proofNodeQuery = (0, _query.nodeQuery)("/lemma/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/lemma/labels/label"), consequentNodeQuery = (0, _query.nodeQuery)("/lemma/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/lemma/supposition");
|
|
26
26
|
function verifyLemma(lemmaNode, fileContext) {
|
|
27
27
|
var lemmaVerified = false;
|
|
28
|
-
var labelNodes = labelNodesQuery(lemmaNode), labelsString = fileContext.nodesAsString(labelNodes),
|
|
28
|
+
var labelNodes = labelNodesQuery(lemmaNode), labelsString = fileContext.nodesAsString(labelNodes), localContext = _local.default.fromFileContext(fileContext);
|
|
29
29
|
labelsString === _constants.EMPTY_STRING ? fileContext.trace("Verifying a lemma...", lemmaNode) : fileContext.trace("Verifying the '".concat(labelsString, "' lemma..."), lemmaNode);
|
|
30
30
|
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
31
31
|
if (labelsVerified) {
|
|
32
32
|
var suppositions = [], suppositionNodes = suppositionsNodeQuery(lemmaNode), suppositionsVerified = suppositionNodes.every(function(suppositionNode) {
|
|
33
|
-
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions,
|
|
33
|
+
var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions, localContext);
|
|
34
34
|
if (suppositionVerified) {
|
|
35
35
|
return true;
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
if (suppositionsVerified) {
|
|
39
|
-
var consequents = [], consequentNode = consequentNodeQuery(lemmaNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents,
|
|
39
|
+
var consequents = [], consequentNode = consequentNodeQuery(lemmaNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents, localContext);
|
|
40
40
|
if (consequentVerified) {
|
|
41
|
-
var proofNode = proofNodeQuery(lemmaNode), firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, proofVerified = (0, _proof.default)(proofNode, consequent,
|
|
41
|
+
var proofNode = proofNodeQuery(lemmaNode), firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, proofVerified = (0, _proof.default)(proofNode, consequent, localContext);
|
|
42
42
|
if (proofVerified) {
|
|
43
|
-
var lemma = _lemma.default.
|
|
43
|
+
var lemma = _lemma.default.fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext);
|
|
44
44
|
fileContext.addLemma(lemma);
|
|
45
45
|
lemmaVerified = true;
|
|
46
46
|
}
|
|
@@ -53,4 +53,4 @@ function verifyLemma(lemmaNode, fileContext) {
|
|
|
53
53
|
return lemmaVerified;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbGVtbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMZW1tYSBmcm9tIFwiLi4vbGVtbWFcIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi9jb25zZXF1ZW50XCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hL3Byb29mIVwiKSxcbiAgICAgIGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbGVtbWEvbGFiZWxzL2xhYmVsXCIpLFxuICAgICAgY29uc2VxdWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9sZW1tYS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbGVtbWEvc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUxlbW1hKGxlbW1hTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGxlbW1hVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIChsYWJlbHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgYSBsZW1tYS4uLmAsIGxlbW1hTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgbGVtbWEuLi5gLCBsZW1tYU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSBzdXBwb3NpdGlvbk5vZGVzLmV2ZXJ5KChzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZWQgPSB2ZXJpZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbk5vZGUsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbnNlcXVlbnRzID0gW10sXG4gICAgICAgICAgICBjb25zZXF1ZW50Tm9kZSA9IGNvbnNlcXVlbnROb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnRWZXJpZmllZCA9IHZlcmlmeUNvbnNlcXVlbnQoY29uc2VxdWVudE5vZGUsIGNvbnNlcXVlbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoY29uc2VxdWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZVF1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBsZW1tYSA9IExlbW1hLmZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW50QW5kTG9jYWxDb250ZXh0KGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgZmlsZUNvbnRleHQuYWRkTGVtbWEobGVtbWEpO1xuXG4gICAgICAgICAgbGVtbWFWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobGVtbWFWZXJpZmllZCkge1xuICAgIChsYWJlbHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBsZW1tYS5gLCBsZW1tYU5vZGUpIDpcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBsZW1tYS5gLCBsZW1tYU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGxlbW1hVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TGVtbWEiLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwibGVtbWFOb2RlIiwiZmlsZUNvbnRleHQiLCJsZW1tYVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJFTVBUWV9TVFJJTkciLCJ0cmFjZSIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwic3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwiZXZlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwidmVyaWZ5U3VwcG9zaXRpb24iLCJjb25zZXF1ZW50cyIsImNvbnNlcXVlbnROb2RlIiwiY29uc2VxdWVudFZlcmlmaWVkIiwidmVyaWZ5Q29uc2VxdWVudCIsInByb29mTm9kZSIsImZpcnN0Q29uc2VxdWVudCIsImZpcnN0IiwiY29uc2VxdWVudCIsInByb29mVmVyaWZpZWQiLCJ2ZXJpZnlQcm9vZiIsImxlbW1hIiwiTGVtbWEiLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsImFkZExlbW1hIiwiZGVidWciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtCQTs7O2VBQXdCQTs7OzREQWhCTjs0REFDTTs0REFDQzs2REFDQTtpRUFDSTtrRUFDQztxQkFFUjt5QkFDTztxQkFDUzs7Ozs7O0FBRXRDLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxrQkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyx3QkFDN0JDLHNCQUFzQkgsSUFBQUEsZ0JBQVMsRUFBQyx1QkFDaENJLHdCQUF3QkYsSUFBQUEsaUJBQVUsRUFBQztBQUUxQixTQUFTSixZQUFZTyxTQUFTLEVBQUVDLFdBQVc7SUFDeEQsSUFBSUMsZ0JBQWdCO0lBRXBCLElBQU1DLGFBQWFQLGdCQUFnQkksWUFDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0YsYUFDekNHLGVBQWVDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDUDtJQUVqREcsaUJBQWlCSyx1QkFBWSxHQUM1QlIsWUFBWVMsS0FBSyxDQUFFLHdCQUF1QlYsYUFDeENDLFlBQVlTLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTixjQUFhLGVBQWFKO0lBRWxFLElBQU1XLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1YsWUFBWVEsUUFBUVY7SUFFeEQsSUFBSVcsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CaEIsc0JBQXNCQyxZQUN6Q2dCLHVCQUF1QkQsaUJBQWlCRSxLQUFLLENBQUMsU0FBQ0M7WUFDN0MsSUFBTUMsc0JBQXNCQyxJQUFBQSxvQkFBaUIsRUFBQ0YsaUJBQWlCSixjQUFjUjtZQUU3RSxJQUFJYSxxQkFBcUI7Z0JBQ3ZCLE9BQU87WUFDVDtRQUNGO1FBRU4sSUFBSUgsc0JBQXNCO1lBQ3hCLElBQU1LLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCeEIsb0JBQW9CRSxZQUNyQ3VCLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYWY7WUFFekUsSUFBSWlCLG9CQUFvQjtnQkFDdEIsSUFBTUUsWUFBWS9CLGVBQWVNLFlBQzNCMEIsa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFDYkcsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNMLFdBQVdHLFlBQVl0QjtnQkFFekQsSUFBSXVCLGVBQWU7b0JBQ2pCLElBQU1FLFFBQVFDLGNBQUssQ0FBQ0MsK0NBQStDLENBQUN0QixRQUFRRyxjQUFjYyxZQUFZdEI7b0JBRXRHTCxZQUFZaUMsUUFBUSxDQUFDSDtvQkFFckI3QixnQkFBZ0I7Z0JBQ2xCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSUEsZUFBZTtRQUNoQkUsaUJBQWlCSyx1QkFBWSxHQUM1QlIsWUFBWWtDLEtBQUssQ0FBRSwwQkFBeUJuQyxhQUMxQ0MsWUFBWWtDLEtBQUssQ0FBQyxBQUFDLG9CQUFnQyxPQUFiL0IsY0FBYSxhQUFXSjtJQUNwRTtJQUVBLE9BQU9FO0FBQ1QifQ==
|