occam-verify-cli 0.0.464 → 0.0.466
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/antecedent.js +214 -0
- package/lib/axiom.js +93 -78
- package/lib/axiomLemmaTheorem.js +190 -0
- package/lib/consequent.js +157 -0
- package/lib/constants.js +9 -1
- package/lib/lemma.js +93 -78
- package/lib/ruleNames.js +4 -4
- package/lib/substitution.js +123 -0
- package/lib/theorem.js +93 -78
- package/lib/utilities/statement.js +45 -0
- package/lib/utilities/string.js +6 -6
- package/lib/verify/antecedentOrAntecedents.js +38 -0
- package/lib/verify/axiom.js +15 -14
- package/lib/verify/conditinalIndicative.js +32 -0
- package/lib/verify/{indicativeConditional.js → conditionalIndicative.js} +10 -10
- package/lib/verify/consequent.js +36 -0
- package/lib/verify/derivation.js +1 -1
- package/lib/verify/lemma.js +25 -19
- package/lib/verify/proof.js +26 -11
- package/lib/verify/statement/qualified.js +16 -4
- package/lib/verify/theorem.js +22 -17
- package/lib/verify/unconditionalIndicative.js +28 -0
- package/package.json +3 -3
- package/src/antecedent.js +235 -0
- package/src/axiom.js +5 -95
- package/src/axiomLemmaTheorem.js +190 -0
- package/src/consequent.js +187 -0
- package/src/constants.js +2 -0
- package/src/lemma.js +5 -95
- package/src/ruleNames.js +1 -1
- package/src/substitution.js +130 -0
- package/src/theorem.js +5 -95
- package/src/utilities/statement.js +50 -0
- package/src/utilities/string.js +6 -6
- package/src/verify/antecedentOrAntecedents.js +40 -0
- package/src/verify/axiom.js +21 -16
- package/src/verify/conditinalIndicative.js +31 -0
- package/src/verify/conditionalIndicative.js +29 -0
- package/src/verify/consequent.js +36 -0
- package/src/verify/derivation.js +1 -1
- package/src/verify/lemma.js +38 -21
- package/src/verify/proof.js +32 -14
- package/src/verify/statement/qualified.js +15 -6
- package/src/verify/theorem.js +32 -20
- package/src/verify/unconditionalIndicative.js +24 -0
- package/src/verify/indicativeConditional.js +0 -29
package/lib/verify/proof.js
CHANGED
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return verifyProof;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _proof = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
|
|
11
12
|
var _derivation = /*#__PURE__*/ _interopRequireDefault(require("../verify/derivation"));
|
|
12
13
|
var _qualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/qualified"));
|
|
13
14
|
var _query = require("../utilities/query");
|
|
@@ -16,22 +17,36 @@ function _interopRequireDefault(obj) {
|
|
|
16
17
|
default: obj
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
|
-
var derivationNodeQuery = (0, _query.nodeQuery)("/proof/derivation!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proof/qualifiedStatement!")
|
|
20
|
-
function verifyProof(proofNode,
|
|
20
|
+
var derivationNodeQuery = (0, _query.nodeQuery)("/proof/derivation!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proof/qualifiedStatement!");
|
|
21
|
+
function verifyProof(proofNode, fileContext) {
|
|
21
22
|
var proofVerified = false;
|
|
23
|
+
var proofContext = _proof.default.fromFileContext(fileContext);
|
|
22
24
|
proofContext.begin(proofNode);
|
|
23
|
-
var derivationNode = derivationNodeQuery(proofNode);
|
|
24
|
-
var derivationVerified =
|
|
25
|
+
var derivationNode = derivationNodeQuery(proofNode), qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode);
|
|
26
|
+
var derivationVerified = false, qualifiedStatementVerified = false;
|
|
25
27
|
if (derivationNode !== null) {
|
|
26
28
|
derivationVerified = (0, _derivation.default)(derivationNode, proofContext);
|
|
27
29
|
}
|
|
28
|
-
if (
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
if (qualifiedStatementNode !== null) {
|
|
31
|
+
var derived;
|
|
32
|
+
derived = true;
|
|
33
|
+
proofContext.setDerived(derived);
|
|
34
|
+
qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, proofContext);
|
|
35
|
+
derived = false;
|
|
36
|
+
proofContext.setDerived(derived);
|
|
34
37
|
}
|
|
38
|
+
// if (derivationVerified) {
|
|
39
|
+
// const qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode),
|
|
40
|
+
// qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, proofContext);
|
|
41
|
+
//
|
|
42
|
+
// if (qualifiedStatementVerified) {
|
|
43
|
+
// const statementNode = conclusion.getStatementNode(),
|
|
44
|
+
// proofStatementNode = proofStatementNodeQuery(proofNode),
|
|
45
|
+
// proofStatementNodeMatches = matchProofStatementNode(proofStatementNode, statementNode);
|
|
46
|
+
//
|
|
47
|
+
// proofVerified = proofStatementNodeMatches; ///
|
|
48
|
+
// }
|
|
49
|
+
// }
|
|
35
50
|
proofVerified ? proofContext.complete(proofNode) : proofContext.complete(proofNode);
|
|
36
51
|
return proofVerified;
|
|
37
52
|
}
|
|
@@ -80,4 +95,4 @@ function matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode) {
|
|
|
80
95
|
return proofNonTerminalNodeMatches;
|
|
81
96
|
}
|
|
82
97
|
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL2Rlcml2YXRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL3F1YWxpZmllZFN0YXRlbWVudCFcIiksXG4gICAgICBwcm9vZlN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UHJvb2YocHJvb2ZOb2RlLCBjb25jbHVzaW9uLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocHJvb2ZOb2RlKTtcblxuICBjb25zdCBkZXJpdmF0aW9uTm9kZSA9IGRlcml2YXRpb25Ob2RlUXVlcnkocHJvb2ZOb2RlKTtcblxuICBsZXQgZGVyaXZhdGlvblZlcmlmaWVkID0gdHJ1ZTtcblxuICBpZiAoZGVyaXZhdGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBkZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZXJpdmF0aW9uKGRlcml2YXRpb25Ob2RlLCBwcm9vZkNvbnRleHQpO1xuICB9XG5cbiAgaWYgKGRlcml2YXRpb25WZXJpZmllZCkge1xuICAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gY29uY2x1c2lvbi5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgICBwcm9vZlN0YXRlbWVudE5vZGUgPSBwcm9vZlN0YXRlbWVudE5vZGVRdWVyeShwcm9vZk5vZGUpLFxuICAgICAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoUHJvb2ZTdGF0ZW1lbnROb2RlKHByb29mU3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIHByb29mVmVyaWZpZWQgPSBwcm9vZlN0YXRlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfVxuICB9XG5cbiAgcHJvb2ZWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHByb29mTm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHByb29mTm9kZSk7XG5cbiAgcmV0dXJuIHByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZTdGF0ZW1lbnROb2RlKHByb29mU3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50Tm9kZSkge1xuICBjb25zdCBwcm9vZk5vblRlcm1pbmFsTm9kZSA9IHByb29mU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoUHJvb2ZOb25UZXJtaW5hbE5vZGUocHJvb2ZOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSksXG4gICAgICAgIHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gcHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZk5vZGUocHJvb2ZOb2RlLCBub2RlKSB7XG4gIGxldCBwcm9vZk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBwcm9vZk5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gcnVsZU5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGUgPSBwcm9vZk5vZGUsICAvLy9cbiAgICAgICAgICAgIHByb29mVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoUHJvb2ZUZXJtaW5hbE5vZGUocHJvb2ZUZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIHByb29mTm9kZU1hdGNoZXMgPSBwcm9vZlRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBwcm9vZk5vblRlcm1pbmFsTm9kZSA9IHByb29mTm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZk5vblRlcm1pbmFsTm9kZShwcm9vZk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb29mTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZOb2Rlcyhwcm9vZk5vZGVzLCBub2Rlcykge1xuICBsZXQgcHJvb2ZOb2Rlc01hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgcHJvb2ZOb2Rlc0xlbmd0aCA9IHByb29mTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gcHJvb2ZOb2Rlc0xlbmd0aCkge1xuICAgIHByb29mTm9kZXNNYXRjaGVzID0gbm9kZXMuZXZlcnkoKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBwcm9vZk5vZGUgPSBwcm9vZk5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIHByb29mTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9kZShwcm9vZk5vZGUsIG5vZGUpO1xuXG4gICAgICBpZiAocHJvb2ZOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHByb29mTm9kZXNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mVGVybWluYWxOb2RlKHByb29mVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHByb29mVGVybWluYWxOb2RlLm1hdGNoKHRlcm1pbmFsTm9kZSksXG4gICAgICAgIHByb29mVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mTm9uVGVybWluYWxOb2RlKHByb29mTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpIHtcbiAgbGV0IHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIHByb29mUnVsZU5hbWUgPSBwcm9vZk5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IHByb29mUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBwcm9vZkNoaWxkTm9kZXMgPSBwcm9vZk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBwcm9vZk5vZGVzID0gcHJvb2ZDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBwcm9vZk5vZGVzTWF0Y2hlcyA9IG1hdGNoUHJvb2ZOb2Rlcyhwcm9vZk5vZGVzLCBub2Rlcyk7XG5cbiAgICBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBwcm9vZk5vZGVzTWF0Y2hlczsgLy8vXG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVByb29mIiwiZGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInByb29mU3RhdGVtZW50Tm9kZVF1ZXJ5IiwicHJvb2ZOb2RlIiwiY29uY2x1c2lvbiIsInByb29mQ29udGV4dCIsInByb29mVmVyaWZpZWQiLCJiZWdpbiIsImRlcml2YXRpb25Ob2RlIiwiZGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5RGVyaXZhdGlvbiIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZTdGF0ZW1lbnROb2RlIiwiY29tcGxldGUiLCJwcm9vZk5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsInByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZOb25UZXJtaW5hbE5vZGUiLCJtYXRjaFByb29mTm9kZSIsIm5vZGUiLCJwcm9vZk5vZGVNYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwicnVsZU5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJwcm9vZlRlcm1pbmFsTm9kZSIsInByb29mVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZUZXJtaW5hbE5vZGUiLCJtYXRjaFByb29mTm9kZXMiLCJwcm9vZk5vZGVzIiwibm9kZXMiLCJwcm9vZk5vZGVzTWF0Y2hlcyIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwicHJvb2ZOb2Rlc0xlbmd0aCIsImV2ZXJ5IiwiaW5kZXgiLCJtYXRjaGVzIiwibWF0Y2giLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwicHJvb2ZSdWxlTmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwicHJvb2ZDaGlsZE5vZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXdCQTs7OytEQVRLOzhEQUNRO3FCQUVYOzs7Ozs7QUFFMUIsSUFBTUMsc0JBQXNCQyxJQUFBQSxnQkFBUyxFQUFDLHVCQUNoQ0MsOEJBQThCRCxJQUFBQSxnQkFBUyxFQUFDLCtCQUN4Q0UsMEJBQTBCRixJQUFBQSxnQkFBUyxFQUFDO0FBRTNCLFNBQVNGLFlBQVlLLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxZQUFZLEVBQUU7SUFDdkUsSUFBSUMsZ0JBQWdCLEtBQUs7SUFFekJELGFBQWFFLEtBQUssQ0FBQ0o7SUFFbkIsSUFBTUssaUJBQWlCVCxvQkFBb0JJO0lBRTNDLElBQUlNLHFCQUFxQixJQUFJO0lBRTdCLElBQUlELG1CQUFtQixJQUFJLEVBQUU7UUFDM0JDLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkg7SUFDeEQsQ0FBQztJQUVELElBQUlJLG9CQUFvQjtRQUN0QixJQUFNRSx5QkFBeUJWLDRCQUE0QkUsWUFDckRTLDZCQUE2QkMsSUFBQUEsa0JBQXdCLEVBQUNGLHdCQUF3Qk47UUFFcEYsSUFBSU8sNEJBQTRCO1lBQzlCLElBQU1FLGdCQUFnQlYsV0FBV1csZ0JBQWdCLElBQzNDQyxxQkFBcUJkLHdCQUF3QkMsWUFDN0NjLDRCQUE0QkMsd0JBQXdCRixvQkFBb0JGO1lBRTlFUixnQkFBZ0JXLDJCQUE0QixHQUFHO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBRURYLGdCQUNFRCxhQUFhYyxRQUFRLENBQUNoQixhQUNwQkUsYUFBYWMsUUFBUSxDQUFDaEIsVUFBVTtJQUVwQyxPQUFPRztBQUNUO0FBRUEsU0FBU1ksd0JBQXdCRixrQkFBa0IsRUFBRUYsYUFBYSxFQUFFO0lBQ2xFLElBQU1NLHVCQUF1Qkosb0JBQ3ZCSyxrQkFBa0JQLGVBQ2xCUSw4QkFBOEJDLDBCQUEwQkgsc0JBQXNCQyxrQkFDOUVKLDRCQUE0QkssNkJBQThCLEdBQUc7SUFFbkUsT0FBT0w7QUFDVDtBQUVBLFNBQVNPLGVBQWVyQixTQUFTLEVBQUVzQixJQUFJLEVBQUU7SUFDdkMsSUFBSUMsbUJBQW1CLEtBQUs7SUFFNUIsSUFBTUMsbUJBQW1CRixLQUFLRyxjQUFjLElBQ3RDQyx1QkFBdUIxQixVQUFVeUIsY0FBYztJQUVyRCxJQUFJRCxxQkFBcUJFLHNCQUFzQjtRQUM3QyxJQUFJRixrQkFBa0I7WUFDcEIsSUFBTUcsZUFBZUwsTUFDZk0sb0JBQW9CNUIsV0FDcEI2QiwyQkFBMkJDLHVCQUF1QkYsbUJBQW1CRDtZQUUzRUosbUJBQW1CTSwwQkFBMkIsR0FBRztRQUNuRCxPQUFPO1lBQ0wsSUFBTVgsa0JBQWtCSSxNQUNsQkwsdUJBQXVCakIsV0FDdkJtQiw4QkFBOEJDLDBCQUEwQkgsc0JBQXNCQztZQUVwRkssbUJBQW1CSiw2QkFBNkIsR0FBRztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9JO0FBQ1Q7QUFFQSxTQUFTUSxnQkFBZ0JDLFVBQVUsRUFBRUMsS0FBSyxFQUFFO0lBQzFDLElBQUlDLG9CQUFvQixLQUFLO0lBRTdCLElBQU1DLGNBQWNGLE1BQU1HLE1BQU0sRUFDMUJDLG1CQUFtQkwsV0FBV0ksTUFBTTtJQUUxQyxJQUFJRCxnQkFBZ0JFLGtCQUFrQjtRQUNwQ0gsb0JBQW9CRCxNQUFNSyxLQUFLLENBQUMsU0FBQ2hCLE1BQU1pQixPQUFVO1lBQy9DLElBQU12QyxZQUFZZ0MsVUFBVSxDQUFDTyxNQUFNLEVBQzdCaEIsbUJBQW1CRixlQUFlckIsV0FBV3NCO1lBRW5ELElBQUlDLGtCQUFrQjtnQkFDcEIsT0FBTyxJQUFJO1lBQ2IsQ0FBQztRQUNIO0lBQ0YsQ0FBQztJQUVELE9BQU9XO0FBQ1Q7QUFFQSxTQUFTSix1QkFBdUJGLGlCQUFpQixFQUFFRCxZQUFZLEVBQUU7SUFDL0QsSUFBTWEsVUFBVVosa0JBQWtCYSxLQUFLLENBQUNkLGVBQ2xDRSwyQkFBMkJXLFNBQVUsR0FBRztJQUU5QyxPQUFPWDtBQUNUO0FBRUEsU0FBU1QsMEJBQTBCSCxvQkFBb0IsRUFBRUMsZUFBZSxFQUFFO0lBQ3hFLElBQUlDLDhCQUE4QixLQUFLO0lBRXZDLElBQU11QixXQUFXeEIsZ0JBQWdCeUIsV0FBVyxJQUN0Q0MsZ0JBQWdCM0IscUJBQXFCMEIsV0FBVyxJQUFJLEdBQUc7SUFFN0QsSUFBSUQsYUFBYUUsZUFBZTtRQUM5QixJQUFNQyxhQUFhM0IsZ0JBQWdCNEIsYUFBYSxJQUMxQ0Msa0JBQWtCOUIscUJBQXFCNkIsYUFBYSxJQUNwRGIsUUFBUVksWUFDUmIsYUFBYWUsaUJBQ2JiLG9CQUFvQkgsZ0JBQWdCQyxZQUFZQztRQUV0RGQsOEJBQThCZSxtQkFBbUIsR0FBRztJQUN0RCxDQUFDO0lBRUQsT0FBT2Y7QUFDVCJ9
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL2Rlcml2YXRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL3F1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByb29mKHByb29mTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocHJvb2ZOb2RlKTtcblxuICBjb25zdCBkZXJpdmF0aW9uTm9kZSA9IGRlcml2YXRpb25Ob2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShwcm9vZk5vZGUpO1xuXG4gIGxldCBkZXJpdmF0aW9uVmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2YXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgZGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVyaXZhdGlvbihkZXJpdmF0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KTtcbiAgfVxuXG4gIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IGRlcml2ZWQ7XG5cbiAgICBkZXJpdmVkID0gdHJ1ZTtcblxuICAgIHByb29mQ29udGV4dC5zZXREZXJpdmVkKGRlcml2ZWQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGRlcml2ZWQgPSBmYWxzZTtcblxuICAgIHByb29mQ29udGV4dC5zZXREZXJpdmVkKGRlcml2ZWQpO1xuICB9XG5cbiAgLy8gaWYgKGRlcml2YXRpb25WZXJpZmllZCkge1xuICAvLyAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgLy8gICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuICAvL1xuICAvLyAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAvLyAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb24uZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAvLyAgICAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgLy8gICAgICAgICAgIHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaFByb29mU3RhdGVtZW50Tm9kZShwcm9vZlN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUpO1xuICAvL1xuICAvLyAgICAgcHJvb2ZWZXJpZmllZCA9IHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXM7ICAvLy9cbiAgLy8gICB9XG4gIC8vIH1cblxuICBwcm9vZlZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKTtcblxuICByZXR1cm4gcHJvb2ZWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZlN0YXRlbWVudE5vZGUocHJvb2ZTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IHByb29mTm9uVGVybWluYWxOb2RlID0gcHJvb2ZTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZk5vblRlcm1pbmFsTm9kZShwcm9vZk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBwcm9vZlN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mTm9kZShwcm9vZk5vZGUsIG5vZGUpIHtcbiAgbGV0IHByb29mTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IHByb29mTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBwcm9vZlRlcm1pbmFsTm9kZSA9IHByb29mTm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZlRlcm1pbmFsTm9kZShwcm9vZlRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKTtcblxuICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IHByb29mVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIHByb29mTm9uVGVybWluYWxOb2RlID0gcHJvb2ZOb2RlLCAgLy8vXG4gICAgICAgICAgICBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9uVGVybWluYWxOb2RlKHByb29mTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBwcm9vZk5vZGVNYXRjaGVzID0gcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZk5vZGVzKHByb29mTm9kZXMsIG5vZGVzKSB7XG4gIGxldCBwcm9vZk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBwcm9vZk5vZGVzTGVuZ3RoID0gcHJvb2ZOb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBwcm9vZk5vZGVzTGVuZ3RoKSB7XG4gICAgcHJvb2ZOb2Rlc01hdGNoZXMgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IG1hdGNoUHJvb2ZOb2RlKHByb29mTm9kZSwgbm9kZSk7XG5cbiAgICAgIGlmIChwcm9vZk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZUZXJtaW5hbE5vZGUocHJvb2ZUZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSkge1xuICBjb25zdCBtYXRjaGVzID0gcHJvb2ZUZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBwcm9vZlRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZOb25UZXJtaW5hbE5vZGUocHJvb2ZOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSkge1xuICBsZXQgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgcHJvb2ZSdWxlTmFtZSA9IHByb29mTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gcHJvb2ZSdWxlTmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByb29mQ2hpbGROb2RlcyA9IHByb29mTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByb29mTm9kZXMgPSBwcm9vZkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByb29mTm9kZXNNYXRjaGVzID0gbWF0Y2hQcm9vZk5vZGVzKHByb29mTm9kZXMsIG5vZGVzKTtcblxuICAgIHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHByb29mTm9kZXNNYXRjaGVzOyAvLy9cbiAgfVxuXG4gIHJldHVybiBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UHJvb2YiLCJkZXJpdmF0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwicHJvb2ZOb2RlIiwiZmlsZUNvbnRleHQiLCJwcm9vZlZlcmlmaWVkIiwicHJvb2ZDb250ZXh0IiwiUHJvb2ZDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwiYmVnaW4iLCJkZXJpdmF0aW9uTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJkZXJpdmF0aW9uVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeURlcml2YXRpb24iLCJkZXJpdmVkIiwic2V0RGVyaXZlZCIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImNvbXBsZXRlIiwibWF0Y2hQcm9vZlN0YXRlbWVudE5vZGUiLCJwcm9vZlN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaFByb29mTm9uVGVybWluYWxOb2RlIiwicHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZOb2RlIiwibm9kZSIsInByb29mTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInByb29mVGVybWluYWxOb2RlIiwicHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hQcm9vZlRlcm1pbmFsTm9kZSIsIm1hdGNoUHJvb2ZOb2RlcyIsInByb29mTm9kZXMiLCJub2RlcyIsInByb29mTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJwcm9vZk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJwcm9vZlJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJwcm9vZkNoaWxkTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEM7K0RBQ0k7OERBQ1E7cUJBRVg7Ozs7OztBQUUxQixJQUFNQyxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUMsdUJBQ2hDQyw4QkFBOEJELElBQUFBLGdCQUFTLEVBQUM7QUFFL0IsU0FBU0YsWUFBWUksU0FBUyxFQUFFQyxXQUFXLEVBQUU7SUFDMUQsSUFBSUMsZ0JBQWdCLEtBQUs7SUFFekIsSUFBTUMsZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNKO0lBRWxERSxhQUFhRyxLQUFLLENBQUNOO0lBRW5CLElBQU1PLGlCQUFpQlYsb0JBQW9CRyxZQUNyQ1EseUJBQXlCVCw0QkFBNEJDO0lBRTNELElBQUlTLHFCQUFxQixLQUFLLEVBQzFCQyw2QkFBNkIsS0FBSztJQUV0QyxJQUFJSCxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCRSxxQkFBcUJFLElBQUFBLG1CQUFnQixFQUFDSixnQkFBZ0JKO0lBQ3hELENBQUM7SUFFRCxJQUFJSywyQkFBMkIsSUFBSSxFQUFFO1FBQ25DLElBQUlJO1FBRUpBLFVBQVUsSUFBSTtRQUVkVCxhQUFhVSxVQUFVLENBQUNEO1FBRXhCRiw2QkFBNkJJLElBQUFBLGtCQUF3QixFQUFDTix3QkFBd0JMO1FBRTlFUyxVQUFVLEtBQUs7UUFFZlQsYUFBYVUsVUFBVSxDQUFDRDtJQUMxQixDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLDJFQUEyRTtJQUMzRSx1R0FBdUc7SUFDdkcsRUFBRTtJQUNGLHNDQUFzQztJQUN0QywyREFBMkQ7SUFDM0QscUVBQXFFO0lBQ3JFLG9HQUFvRztJQUNwRyxFQUFFO0lBQ0Ysc0RBQXNEO0lBQ3RELE1BQU07SUFDTixJQUFJO0lBRUpWLGdCQUNFQyxhQUFhWSxRQUFRLENBQUNmLGFBQ3BCRyxhQUFhWSxRQUFRLENBQUNmLFVBQVU7SUFFcEMsT0FBT0U7QUFDVDtBQUVBLFNBQVNjLHdCQUF3QkMsa0JBQWtCLEVBQUVDLGFBQWEsRUFBRTtJQUNsRSxJQUFNQyx1QkFBdUJGLG9CQUN2Qkcsa0JBQWtCRixlQUNsQkcsOEJBQThCQywwQkFBMEJILHNCQUFzQkMsa0JBQzlFRyw0QkFBNEJGLDZCQUE4QixHQUFHO0lBRW5FLE9BQU9FO0FBQ1Q7QUFFQSxTQUFTQyxlQUFleEIsU0FBUyxFQUFFeUIsSUFBSSxFQUFFO0lBQ3ZDLElBQUlDLG1CQUFtQixLQUFLO0lBRTVCLElBQU1DLG1CQUFtQkYsS0FBS0csY0FBYyxJQUN0Q0MsdUJBQXVCN0IsVUFBVTRCLGNBQWM7SUFFckQsSUFBSUQscUJBQXFCRSxzQkFBc0I7UUFDN0MsSUFBSUYsa0JBQWtCO1lBQ3BCLElBQU1HLGVBQWVMLE1BQ2ZNLG9CQUFvQi9CLFdBQ3BCZ0MsMkJBQTJCQyx1QkFBdUJGLG1CQUFtQkQ7WUFFM0VKLG1CQUFtQk0sMEJBQTJCLEdBQUc7UUFDbkQsT0FBTztZQUNMLElBQU1aLGtCQUFrQkssTUFDbEJOLHVCQUF1Qm5CLFdBQ3ZCcUIsOEJBQThCQywwQkFBMEJILHNCQUFzQkM7WUFFcEZNLG1CQUFtQkwsNkJBQTZCLEdBQUc7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPSztBQUNUO0FBRUEsU0FBU1EsZ0JBQWdCQyxVQUFVLEVBQUVDLEtBQUssRUFBRTtJQUMxQyxJQUFJQyxvQkFBb0IsS0FBSztJQUU3QixJQUFNQyxjQUFjRixNQUFNRyxNQUFNLEVBQzFCQyxtQkFBbUJMLFdBQVdJLE1BQU07SUFFMUMsSUFBSUQsZ0JBQWdCRSxrQkFBa0I7UUFDcENILG9CQUFvQkQsTUFBTUssS0FBSyxDQUFDLFNBQUNoQixNQUFNaUIsT0FBVTtZQUMvQyxJQUFNMUMsWUFBWW1DLFVBQVUsQ0FBQ08sTUFBTSxFQUM3QmhCLG1CQUFtQkYsZUFBZXhCLFdBQVd5QjtZQUVuRCxJQUFJQyxrQkFBa0I7Z0JBQ3BCLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtJQUNGLENBQUM7SUFFRCxPQUFPVztBQUNUO0FBRUEsU0FBU0osdUJBQXVCRixpQkFBaUIsRUFBRUQsWUFBWSxFQUFFO0lBQy9ELElBQU1hLFVBQVVaLGtCQUFrQmEsS0FBSyxDQUFDZCxlQUNsQ0UsMkJBQTJCVyxTQUFVLEdBQUc7SUFFOUMsT0FBT1g7QUFDVDtBQUVBLFNBQVNWLDBCQUEwQkgsb0JBQW9CLEVBQUVDLGVBQWUsRUFBRTtJQUN4RSxJQUFJQyw4QkFBOEIsS0FBSztJQUV2QyxJQUFNd0IsV0FBV3pCLGdCQUFnQjBCLFdBQVcsSUFDdENDLGdCQUFnQjVCLHFCQUFxQjJCLFdBQVcsSUFBSSxHQUFHO0lBRTdELElBQUlELGFBQWFFLGVBQWU7UUFDOUIsSUFBTUMsYUFBYTVCLGdCQUFnQjZCLGFBQWEsSUFDMUNDLGtCQUFrQi9CLHFCQUFxQjhCLGFBQWEsSUFDcERiLFFBQVFZLFlBQ1JiLGFBQWFlLGlCQUNiYixvQkFBb0JILGdCQUFnQkMsWUFBWUM7UUFFdERmLDhCQUE4QmdCLG1CQUFtQixHQUFHO0lBQ3RELENBQUM7SUFFRCxPQUFPaEI7QUFDVCJ9
|
|
@@ -8,9 +8,15 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return verifyQualifiedStatement;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _statement = /*#__PURE__*/ _interopRequireDefault(require("../../verify/statement"));
|
|
11
12
|
var _string = require("../../utilities/string");
|
|
12
13
|
var _query = require("../../utilities/query");
|
|
13
|
-
|
|
14
|
+
function _interopRequireDefault(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), referenceNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/qualification!/reference!");
|
|
14
20
|
function verifyQualifiedStatement(qualifiedStatementNode, proofContext) {
|
|
15
21
|
var qualifiedStatementVerified = false;
|
|
16
22
|
proofContext.begin(qualifiedStatementNode);
|
|
@@ -18,8 +24,14 @@ function verifyQualifiedStatement(qualifiedStatementNode, proofContext) {
|
|
|
18
24
|
proofContext.debug("Verifying the '".concat(qualifiedStatementString, "' qualified statement..."));
|
|
19
25
|
var statementNode = statementNodeQuery(qualifiedStatementNode);
|
|
20
26
|
if (statementNode !== null) {
|
|
21
|
-
var referenceNode = referenceNodeQuery(qualifiedStatementNode)
|
|
22
|
-
|
|
27
|
+
var referenceNode = referenceNodeQuery(qualifiedStatementNode);
|
|
28
|
+
if (referenceNode === null) {
|
|
29
|
+
var statementVerified = (0, _statement.default)(statementNode, proofContext);
|
|
30
|
+
qualifiedStatementVerified = statementVerified; ///
|
|
31
|
+
} else {
|
|
32
|
+
var referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode);
|
|
33
|
+
debugger;
|
|
34
|
+
}
|
|
23
35
|
}
|
|
24
36
|
if (qualifiedStatementVerified) {
|
|
25
37
|
proofContext.info("Verified the '".concat(qualifiedStatementString, "' qualified statement."));
|
|
@@ -28,4 +40,4 @@ function verifyQualifiedStatement(qualifiedStatementNode, proofContext) {
|
|
|
28
40
|
return qualifiedStatementVerified;
|
|
29
41
|
}
|
|
30
42
|
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHJlZmVyZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvcmVmZXJlbmNlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSByZWZlcmVuY2VOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAocmVmZXJlbmNlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZU5hbWUgPSByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSk7XG5cbiAgICAgIGRlYnVnZ2VyXG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50LmApO1xuICB9XG5cbiAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicmVmZXJlbmNlTm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInByb29mQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE5vZGUiLCJyZWZlcmVuY2VOb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJyZWZlcmVuY2VOYW1lIiwicmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlIiwiaW5mbyIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7Ozs4REFSSTtzQkFFQztxQkFDNkI7Ozs7OztBQUUxRCxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsbUNBQy9CQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0YseUJBQXlCSSxzQkFBc0IsRUFBRUMsWUFBWSxFQUFFO0lBQ3JGLElBQUlDLDZCQUE2QixLQUFLO0lBRXRDRCxhQUFhRSxLQUFLLENBQUNIO0lBRW5CLElBQU1JLDJCQUEyQkMsSUFBQUEsb0JBQVksRUFBQ0w7SUFFOUNDLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUEwQyxPQUF6QkYsMEJBQXlCO0lBRTlELElBQU1HLGdCQUFnQlYsbUJBQW1CRztJQUV6QyxJQUFJTyxrQkFBa0IsSUFBSSxFQUFFO1FBQzFCLElBQU1DLGdCQUFnQlQsbUJBQW1CQztRQUV6QyxJQUFJUSxrQkFBa0IsSUFBSSxFQUFFO1lBQzFCLElBQU1DLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0gsZUFBZU47WUFFekRDLDZCQUE2Qk8sbUJBQW1CLEdBQUc7UUFDckQsT0FBTztZQUNMLElBQU1FLGdCQUFnQkMsSUFBQUEscUNBQThCLEVBQUNKO1lBRXJELFFBQVE7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlOLDRCQUE0QjtRQUM5QkQsYUFBYVksSUFBSSxDQUFDLEFBQUMsaUJBQXlDLE9BQXpCVCwwQkFBeUI7SUFDOUQsQ0FBQztJQUVERiw2QkFDRUQsYUFBYWEsUUFBUSxDQUFDZCwwQkFDcEJDLGFBQWFjLElBQUksQ0FBQ2YsdUJBQXVCO0lBRTdDLE9BQU9FO0FBQ1QifQ==
|
package/lib/verify/theorem.js
CHANGED
|
@@ -9,10 +9,12 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _theorem = /*#__PURE__*/ _interopRequireDefault(require("../theorem"));
|
|
12
|
+
var _proof = /*#__PURE__*/ _interopRequireDefault(require("../verify/proof"));
|
|
13
|
+
var _proof1 = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
|
|
12
14
|
var _labels = /*#__PURE__*/ _interopRequireDefault(require("../verify/labels"));
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
15
|
+
var _conditinalIndicative = /*#__PURE__*/ _interopRequireDefault(require("../verify/conditinalIndicative"));
|
|
16
|
+
var _unconditionalIndicative = /*#__PURE__*/ _interopRequireDefault(require("../verify/unconditionalIndicative"));
|
|
17
|
+
var _array = require("../utilities/array");
|
|
16
18
|
var _string = require("../utilities/string");
|
|
17
19
|
var _query = require("../utilities/query");
|
|
18
20
|
function _interopRequireDefault(obj) {
|
|
@@ -20,33 +22,36 @@ function _interopRequireDefault(obj) {
|
|
|
20
22
|
default: obj
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
|
-
var labelNodesQuery = (0, _query.nodesQuery)("/theorem/label"),
|
|
25
|
+
var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/theorem/label"), conditionalIndicativeNodeQuery = (0, _query.nodeQuery)("/theorem/conditionalIndicative!"), unconditionalIndicativeNodeQuery = (0, _query.nodeQuery)("/theorem/unconditionalIndicative!");
|
|
24
26
|
function verifyTheorem(theoremNode, fileContext) {
|
|
25
27
|
var theoremVerified = false;
|
|
26
28
|
fileContext.begin(theoremNode);
|
|
27
|
-
var labelNodes = labelNodesQuery(theoremNode), labelsString = (0, _string.nodesAsString)(labelNodes), proofContext =
|
|
29
|
+
var labelNodes = labelNodesQuery(theoremNode), labelsString = (0, _string.nodesAsString)(labelNodes), proofContext = _proof1.default.fromFileContext(fileContext);
|
|
28
30
|
fileContext.debug("Verifying the '".concat(labelsString, "' theorem..."));
|
|
29
31
|
var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
|
|
30
32
|
if (labelsVerified) {
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
if (
|
|
34
|
-
|
|
33
|
+
var antecedents = [], consequents = [], conditionalIndicativeNode = conditionalIndicativeNodeQuery(theoremNode), unconditionalIndicativeNode = unconditionalIndicativeNodeQuery(theoremNode);
|
|
34
|
+
var conditionalIndicativeVerified = false, unconditionalIndicativeVerified = false;
|
|
35
|
+
if (conditionalIndicativeNode !== null) {
|
|
36
|
+
conditionalIndicativeVerified = (0, _conditinalIndicative.default)(conditionalIndicativeNode, antecedents, consequents, proofContext);
|
|
35
37
|
}
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
+
if (unconditionalIndicativeNode !== null) {
|
|
39
|
+
unconditionalIndicativeVerified = (0, _unconditionalIndicative.default)(unconditionalIndicativeNode, consequents, proofContext);
|
|
38
40
|
}
|
|
39
|
-
if (
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
if (conditionalIndicativeVerified || unconditionalIndicativeVerified) {
|
|
42
|
+
var proofNode = proofNodeQuery(theoremNode), firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, proofVerified = (0, _proof.default)(proofNode, consequent, proofContext);
|
|
43
|
+
if (proofVerified) {
|
|
44
|
+
var theorem = _theorem.default.fromLabelsAntecedentsAndConsequent(labels, antecedents, consequent);
|
|
45
|
+
fileContext.addTheorem(theorem);
|
|
46
|
+
theoremVerified = true;
|
|
47
|
+
}
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
if (theoremVerified) {
|
|
46
51
|
fileContext.info("Verified the '".concat(labelsString, "' theorem."));
|
|
47
52
|
}
|
|
48
|
-
theoremVerified ? fileContext.complete(theoremNode) : fileContext.
|
|
53
|
+
theoremVerified ? fileContext.complete(theoremNode) : fileContext.complete(theoremNode);
|
|
49
54
|
return theoremVerified;
|
|
50
55
|
}
|
|
51
56
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uZGl0aW9uYWxJbmRpY2F0aXZlIGZyb20gXCIuLi92ZXJpZnkvY29uZGl0aW5hbEluZGljYXRpdmVcIjtcbmltcG9ydCB2ZXJpZnlVbmNvbmRpdGlvbmFsSW5kaWNhdGl2ZSBmcm9tIFwiLi4vdmVyaWZ5L3VuY29uZGl0aW9uYWxJbmRpY2F0aXZlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZXNBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL2xhYmVsXCIpLFxuICAgICAgY29uZGl0aW9uYWxJbmRpY2F0aXZlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vY29uZGl0aW9uYWxJbmRpY2F0aXZlIVwiKSxcbiAgICAgIHVuY29uZGl0aW9uYWxJbmRpY2F0aXZlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vdW5jb25kaXRpb25hbEluZGljYXRpdmUhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUaGVvcmVtKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGhlb3JlbVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgZmlsZUNvbnRleHQuYmVnaW4odGhlb3JlbU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLi4uYCk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IGFudGVjZWRlbnRzID0gW10sXG4gICAgICAgICAgY29uc2VxdWVudHMgPSBbXSxcbiAgICAgICAgICBjb25kaXRpb25hbEluZGljYXRpdmVOb2RlID0gY29uZGl0aW9uYWxJbmRpY2F0aXZlTm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICB1bmNvbmRpdGlvbmFsSW5kaWNhdGl2ZU5vZGUgPSB1bmNvbmRpdGlvbmFsSW5kaWNhdGl2ZU5vZGVRdWVyeSh0aGVvcmVtTm9kZSk7XG5cbiAgICBsZXQgY29uZGl0aW9uYWxJbmRpY2F0aXZlVmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgdW5jb25kaXRpb25hbEluZGljYXRpdmVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgaWYgKGNvbmRpdGlvbmFsSW5kaWNhdGl2ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbmRpdGlvbmFsSW5kaWNhdGl2ZVZlcmlmaWVkID0gdmVyaWZ5Q29uZGl0aW9uYWxJbmRpY2F0aXZlKGNvbmRpdGlvbmFsSW5kaWNhdGl2ZU5vZGUsIGFudGVjZWRlbnRzLCBjb25zZXF1ZW50cywgcHJvb2ZDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAodW5jb25kaXRpb25hbEluZGljYXRpdmVOb2RlICE9PSBudWxsKSB7XG4gICAgICB1bmNvbmRpdGlvbmFsSW5kaWNhdGl2ZVZlcmlmaWVkID0gdmVyaWZ5VW5jb25kaXRpb25hbEluZGljYXRpdmUodW5jb25kaXRpb25hbEluZGljYXRpdmVOb2RlLCBjb25zZXF1ZW50cywgcHJvb2ZDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoY29uZGl0aW9uYWxJbmRpY2F0aXZlVmVyaWZpZWQgfHwgdW5jb25kaXRpb25hbEluZGljYXRpdmVWZXJpZmllZCkge1xuICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgICAgZmlyc3RDb25zZXF1ZW50ID0gZmlyc3QoY29uc2VxdWVudHMpLFxuICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICBwcm9vZlZlcmlmaWVkID0gdmVyaWZ5UHJvb2YocHJvb2ZOb2RlLCBjb25zZXF1ZW50LCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICBpZiAocHJvb2ZWZXJpZmllZCkge1xuICAgICAgICBjb25zdCB0aGVvcmVtID0gVGhlb3JlbS5mcm9tTGFiZWxzQW50ZWNlZGVudHNBbmRDb25zZXF1ZW50KGxhYmVscywgYW50ZWNlZGVudHMsIGNvbnNlcXVlbnQpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgICAgdGhlb3JlbVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodGhlb3JlbVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uYCk7XG4gIH1cblxuICB0aGVvcmVtVmVyaWZpZWQgP1xuICAgIGZpbGVDb250ZXh0LmNvbXBsZXRlKHRoZW9yZW1Ob2RlKSA6XG4gICAgICBmaWxlQ29udGV4dC5jb21wbGV0ZSh0aGVvcmVtTm9kZSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUaGVvcmVtIiwicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsYWJlbE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29uZGl0aW9uYWxJbmRpY2F0aXZlTm9kZVF1ZXJ5IiwidW5jb25kaXRpb25hbEluZGljYXRpdmVOb2RlUXVlcnkiLCJ0aGVvcmVtTm9kZSIsImZpbGVDb250ZXh0IiwidGhlb3JlbVZlcmlmaWVkIiwiYmVnaW4iLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsInByb29mQ29udGV4dCIsIlByb29mQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImRlYnVnIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJhbnRlY2VkZW50cyIsImNvbnNlcXVlbnRzIiwiY29uZGl0aW9uYWxJbmRpY2F0aXZlTm9kZSIsInVuY29uZGl0aW9uYWxJbmRpY2F0aXZlTm9kZSIsImNvbmRpdGlvbmFsSW5kaWNhdGl2ZVZlcmlmaWVkIiwidW5jb25kaXRpb25hbEluZGljYXRpdmVWZXJpZmllZCIsInZlcmlmeUNvbmRpdGlvbmFsSW5kaWNhdGl2ZSIsInZlcmlmeVVuY29uZGl0aW9uYWxJbmRpY2F0aXZlIiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50IiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzQW50ZWNlZGVudHNBbmRDb25zZXF1ZW50IiwiYWRkVGhlb3JlbSIsImluZm8iLCJjb21wbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBa0JBOzs7ZUFBd0JBOzs7NERBaEJKOzBEQUNJOzJEQUNDOzJEQUNBO3lFQUNlOzRFQUNFO3FCQUVwQjtzQkFDUTtxQkFDUTs7Ozs7O0FBRXRDLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxtQkFDN0JDLGlDQUFpQ0gsSUFBQUEsZ0JBQVMsRUFBQyxvQ0FDM0NJLG1DQUFtQ0osSUFBQUEsZ0JBQVMsRUFBQztBQUVwQyxTQUFTRixjQUFjTyxXQUFXLEVBQUVDLFdBQVcsRUFBRTtJQUM5RCxJQUFJQyxrQkFBa0IsS0FBSztJQUUzQkQsWUFBWUUsS0FBSyxDQUFDSDtJQUVsQixJQUFNSSxhQUFhUixnQkFBZ0JJLGNBQzdCSyxlQUFlQyxJQUFBQSxxQkFBYSxFQUFDRixhQUM3QkcsZUFBZUMsZUFBWSxDQUFDQyxlQUFlLENBQUNSO0lBRWxEQSxZQUFZUyxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYTtJQUVqRCxJQUFNTSxTQUFTLEVBQUUsRUFDWEMsaUJBQWlCQyxJQUFBQSxlQUFZLEVBQUNULFlBQVlPLFFBQVFWO0lBRXhELElBQUlXLGdCQUFnQjtRQUNsQixJQUFNRSxjQUFjLEVBQUUsRUFDaEJDLGNBQWMsRUFBRSxFQUNoQkMsNEJBQTRCbEIsK0JBQStCRSxjQUMzRGlCLDhCQUE4QmxCLGlDQUFpQ0M7UUFFckUsSUFBSWtCLGdDQUFnQyxLQUFLLEVBQ3JDQyxrQ0FBa0MsS0FBSztRQUUzQyxJQUFJSCw4QkFBOEIsSUFBSSxFQUFFO1lBQ3RDRSxnQ0FBZ0NFLElBQUFBLDZCQUEyQixFQUFDSiwyQkFBMkJGLGFBQWFDLGFBQWFSO1FBQ25ILENBQUM7UUFFRCxJQUFJVSxnQ0FBZ0MsSUFBSSxFQUFFO1lBQ3hDRSxrQ0FBa0NFLElBQUFBLGdDQUE2QixFQUFDSiw2QkFBNkJGLGFBQWFSO1FBQzVHLENBQUM7UUFFRCxJQUFJVyxpQ0FBaUNDLGlDQUFpQztZQUNwRSxJQUFNRyxZQUFZNUIsZUFBZU0sY0FDM0J1QixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ1QsY0FDeEJVLGFBQWFGLGlCQUNiRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csWUFBWWxCO1lBRXpELElBQUltQixlQUFlO2dCQUNqQixJQUFNRSxVQUFVQyxnQkFBTyxDQUFDQyxrQ0FBa0MsQ0FBQ25CLFFBQVFHLGFBQWFXO2dCQUVoRnhCLFlBQVk4QixVQUFVLENBQUNIO2dCQUV2QjFCLGtCQUFrQixJQUFJO1lBQ3hCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGlCQUFpQjtRQUNuQkQsWUFBWStCLElBQUksQ0FBQyxBQUFDLGlCQUE2QixPQUFiM0IsY0FBYTtJQUNqRCxDQUFDO0lBRURILGtCQUNFRCxZQUFZZ0MsUUFBUSxDQUFDakMsZUFDbkJDLFlBQVlnQyxRQUFRLENBQUNqQyxZQUFZO0lBRXJDLE9BQU9FO0FBQ1QifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return verifyUnconditionalIndicative;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _consequent = /*#__PURE__*/ _interopRequireDefault(require("../verify/consequent"));
|
|
12
|
+
var _query = require("../utilities/query");
|
|
13
|
+
function _interopRequireDefault(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
var consequentNodeQuery = (0, _query.nodeQuery)("/unconditionalIndicative/consequent!");
|
|
19
|
+
function verifyUnconditionalIndicative(conditionalIndicativeNode, consequents, proofContext) {
|
|
20
|
+
var unconditionalIndicativeVerified;
|
|
21
|
+
proofContext.begin(conditionalIndicativeNode);
|
|
22
|
+
var consequentNode = consequentNodeQuery(conditionalIndicativeNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents, proofContext);
|
|
23
|
+
unconditionalIndicativeVerified = consequentVerified; ///
|
|
24
|
+
unconditionalIndicativeVerified ? proofContext.complete(conditionalIndicativeNode) : proofContext.halt(conditionalIndicativeNode);
|
|
25
|
+
return unconditionalIndicativeVerified;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdW5jb25kaXRpb25hbEluZGljYXRpdmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW50IGZyb20gXCIuLi92ZXJpZnkvY29uc2VxdWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGNvbnNlcXVlbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5jb25kaXRpb25hbEluZGljYXRpdmUvY29uc2VxdWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVVuY29uZGl0aW9uYWxJbmRpY2F0aXZlKGNvbmRpdGlvbmFsSW5kaWNhdGl2ZU5vZGUsIGNvbnNlcXVlbnRzLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHVuY29uZGl0aW9uYWxJbmRpY2F0aXZlVmVyaWZpZWQ7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGNvbmRpdGlvbmFsSW5kaWNhdGl2ZU5vZGUpO1xuXG4gIGNvbnN0IGNvbnNlcXVlbnROb2RlID0gY29uc2VxdWVudE5vZGVRdWVyeShjb25kaXRpb25hbEluZGljYXRpdmVOb2RlKSxcbiAgICAgICAgY29uc2VxdWVudFZlcmlmaWVkID0gdmVyaWZ5Q29uc2VxdWVudChjb25zZXF1ZW50Tm9kZSwgY29uc2VxdWVudHMsIHByb29mQ29udGV4dCk7XG5cbiAgdW5jb25kaXRpb25hbEluZGljYXRpdmVWZXJpZmllZCA9IGNvbnNlcXVlbnRWZXJpZmllZDsgIC8vL1xuXG4gIHVuY29uZGl0aW9uYWxJbmRpY2F0aXZlVmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShjb25kaXRpb25hbEluZGljYXRpdmVOb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChjb25kaXRpb25hbEluZGljYXRpdmVOb2RlKTtcblxuICByZXR1cm4gdW5jb25kaXRpb25hbEluZGljYXRpdmVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlVbmNvbmRpdGlvbmFsSW5kaWNhdGl2ZSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJjb25kaXRpb25hbEluZGljYXRpdmVOb2RlIiwiY29uc2VxdWVudHMiLCJwcm9vZkNvbnRleHQiLCJ1bmNvbmRpdGlvbmFsSW5kaWNhdGl2ZVZlcmlmaWVkIiwiYmVnaW4iLCJjb25zZXF1ZW50Tm9kZSIsImNvbnNlcXVlbnRWZXJpZmllZCIsInZlcmlmeUNvbnNlcXVlbnQiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBd0JBOzs7K0RBTks7cUJBRUg7Ozs7OztBQUUxQixJQUFNQyxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUM7QUFFdkIsU0FBU0YsOEJBQThCRyx5QkFBeUIsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUU7SUFDMUcsSUFBSUM7SUFFSkQsYUFBYUUsS0FBSyxDQUFDSjtJQUVuQixJQUFNSyxpQkFBaUJQLG9CQUFvQkUsNEJBQ3JDTSxxQkFBcUJDLElBQUFBLG1CQUFnQixFQUFDRixnQkFBZ0JKLGFBQWFDO0lBRXpFQyxrQ0FBa0NHLG9CQUFxQixHQUFHO0lBRTFESCxrQ0FDRUQsYUFBYU0sUUFBUSxDQUFDUiw2QkFDcEJFLGFBQWFPLElBQUksQ0FBQ1QsMEJBQTBCO0lBRWhELE9BQU9HO0FBQ1QifQ==
|
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.466",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.21",
|
|
14
14
|
"necessary": "^11.2.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.374",
|
|
16
16
|
"occam-dom": "^3.1.1",
|
|
17
|
-
"occam-file-system": "^5.0.
|
|
17
|
+
"occam-file-system": "^5.0.133",
|
|
18
18
|
"occam-grammar-utilities": "^7.0.66"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Substitution from "./substitution";
|
|
4
|
+
|
|
5
|
+
import { first } from "./utilities/array";
|
|
6
|
+
import { nodeAsString } from "./utilities/string";
|
|
7
|
+
import { nodeQuery, nodesQuery } from "./utilities/query";
|
|
8
|
+
import { variableNameFromVariableNode } from "./utilities/query";
|
|
9
|
+
import { statementNodeFromStatementString } from "./utilities/string";
|
|
10
|
+
import { VARIABLE_RULE_NAME, STATEMENT_RULE_NAME } from "./ruleNames";
|
|
11
|
+
|
|
12
|
+
const statementNodesQuery = nodesQuery("/subproofAssertion/statement"),
|
|
13
|
+
subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
|
|
14
|
+
unqualifiedStatementStatementNodesQuery = nodesQuery("/subproof/unqualifiedStatement/statement!"),
|
|
15
|
+
qualifiedOrUnqualifiedStatementStatementNodeQuery = nodeQuery("/subproof/metaDerivation|abridgedMetaDerivation/qualifiedStatement|unqualifiedStatement[-1]/statement!");
|
|
16
|
+
|
|
17
|
+
export default class Antecedent {
|
|
18
|
+
constructor(statementNode) {
|
|
19
|
+
this.statementNode = statementNode;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getStatementNode() {
|
|
23
|
+
return this.statementNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
matchSubproofNode(subproofNode, substitutions) {
|
|
27
|
+
let subproofNodeMatches = false;
|
|
28
|
+
|
|
29
|
+
const subproofAssertionNode = subproofAssertionNodeQuery(this.statementNode);
|
|
30
|
+
|
|
31
|
+
if (subproofAssertionNode !== null) {
|
|
32
|
+
const subproofAssertionStatementNodes = statementNodesQuery(subproofAssertionNode),
|
|
33
|
+
unqualifiedStatementStatementNodes = unqualifiedStatementStatementNodesQuery(subproofNode),
|
|
34
|
+
qualifiedOrUnqualifiedStatementStatementNode = qualifiedOrUnqualifiedStatementStatementNodeQuery(subproofNode),
|
|
35
|
+
statementNodes = [
|
|
36
|
+
...unqualifiedStatementStatementNodes,
|
|
37
|
+
qualifiedOrUnqualifiedStatementStatementNode
|
|
38
|
+
],
|
|
39
|
+
statementNodesLength = statementNodes.length,
|
|
40
|
+
subproofAssertionStatementNodesLength = subproofAssertionStatementNodes.length;
|
|
41
|
+
|
|
42
|
+
if (statementNodesLength === subproofAssertionStatementNodesLength) {
|
|
43
|
+
subproofNodeMatches = subproofAssertionStatementNodes.every((subproofAssertionStatementNode, index) => {
|
|
44
|
+
const statementNode = statementNodes[index],
|
|
45
|
+
nonTerminalNode = statementNode, ///
|
|
46
|
+
antecedentNonTerminalNode = subproofAssertionStatementNode, ///
|
|
47
|
+
antecedentNonTerminalNodeMatches = matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions);
|
|
48
|
+
|
|
49
|
+
if (antecedentNonTerminalNodeMatches) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return subproofNodeMatches;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
matchStatementNode(statementNode, substitutions) {
|
|
60
|
+
const nonTerminalNode = statementNode, ///
|
|
61
|
+
antecedentNonTerminalNode = this.statementNode, ///
|
|
62
|
+
antecedentNonTerminalNodeMatches = matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions),
|
|
63
|
+
statementNodeMatches = antecedentNonTerminalNodeMatches; ///
|
|
64
|
+
|
|
65
|
+
return statementNodeMatches;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
toJSON() {
|
|
69
|
+
const statementString = nodeAsString(this.statementNode),
|
|
70
|
+
statement = statementString, ///
|
|
71
|
+
json = {
|
|
72
|
+
statement
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return json;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static fromJSON(json, releaseContext) {
|
|
79
|
+
const { statement } = json,
|
|
80
|
+
statementString = statement, ///
|
|
81
|
+
statementNode = statementNodeFromStatementString(statementString, releaseContext),
|
|
82
|
+
antecedent = new Antecedent(statementNode);
|
|
83
|
+
|
|
84
|
+
return antecedent;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static fromStatementNode(statementNode) {
|
|
88
|
+
const antecedent = new Antecedent(statementNode);
|
|
89
|
+
|
|
90
|
+
return antecedent;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function matchAntecedentNode(antecedentNode, node, substitutions) {
|
|
95
|
+
let antecedentNodeMatches = false;
|
|
96
|
+
|
|
97
|
+
const nodeTerminalNode = node.isTerminalNode(),
|
|
98
|
+
ruleNodeTerminalNode = antecedentNode.isTerminalNode();
|
|
99
|
+
|
|
100
|
+
if (nodeTerminalNode === ruleNodeTerminalNode) {
|
|
101
|
+
if (nodeTerminalNode) {
|
|
102
|
+
const terminalNode = node, ///
|
|
103
|
+
antecedentTerminalNode = antecedentNode, ///
|
|
104
|
+
antecedentTerminalNodeMatches = matchAntecedentTerminalNode(antecedentTerminalNode, terminalNode, substitutions);
|
|
105
|
+
|
|
106
|
+
antecedentNodeMatches = antecedentTerminalNodeMatches; ///
|
|
107
|
+
} else {
|
|
108
|
+
const nonTerminalNode = node, ///
|
|
109
|
+
antecedentNonTerminalNode = antecedentNode, ///
|
|
110
|
+
antecedentNonTerminalNodeMatches = matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions);
|
|
111
|
+
|
|
112
|
+
antecedentNodeMatches = antecedentNonTerminalNodeMatches; ///
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return antecedentNodeMatches;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function matchAntecedentNodes(antecedentNodes, nodes, substitutions) {
|
|
120
|
+
let antecedentNodesMatches = false;
|
|
121
|
+
|
|
122
|
+
const nodesLength = nodes.length,
|
|
123
|
+
antecedentNodesLength = antecedentNodes.length;
|
|
124
|
+
|
|
125
|
+
if (nodesLength === antecedentNodesLength) {
|
|
126
|
+
antecedentNodesMatches = nodes.every((node, index) => {
|
|
127
|
+
const antecedentNode = antecedentNodes[index],
|
|
128
|
+
antecedentNodeMatches = matchAntecedentNode(antecedentNode, node, substitutions);
|
|
129
|
+
|
|
130
|
+
if (antecedentNodeMatches) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return antecedentNodesMatches;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function matchAntecedentVariable(antecedentVariableNode, nodes, substitutions) {
|
|
140
|
+
let antecedentVariableMatches;
|
|
141
|
+
|
|
142
|
+
const antecedentVariableName = variableNameFromVariableNode(antecedentVariableNode),
|
|
143
|
+
substitution = substitutions.find((substitution) => {
|
|
144
|
+
const variableName = substitution.getVariableName();
|
|
145
|
+
|
|
146
|
+
if (variableName === antecedentVariableName) {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
}) || null;
|
|
150
|
+
|
|
151
|
+
if (substitution !== null) {
|
|
152
|
+
const substitutionNodesMatch = substitution.matchNodes(nodes);
|
|
153
|
+
|
|
154
|
+
antecedentVariableMatches = substitutionNodesMatch; ///
|
|
155
|
+
} else {
|
|
156
|
+
const variableName = antecedentVariableName, ///
|
|
157
|
+
substitution = Substitution.fromVariableNameAndNodes(variableName, nodes);
|
|
158
|
+
|
|
159
|
+
substitutions.push(substitution);
|
|
160
|
+
|
|
161
|
+
antecedentVariableMatches = true;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return antecedentVariableMatches;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function matchAntecedentTerminalNode(antecedentTerminalNode, terminalNode, substitutions) {
|
|
168
|
+
const matches = antecedentTerminalNode.match(terminalNode),
|
|
169
|
+
antecedentTerminalNodeMatches = matches;
|
|
170
|
+
|
|
171
|
+
return antecedentTerminalNodeMatches;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions) {
|
|
175
|
+
let antecedentNonTerminalNodeMatches = false;
|
|
176
|
+
|
|
177
|
+
const ruleName = nonTerminalNode.getRuleName(),
|
|
178
|
+
antecedentRuleName = antecedentNonTerminalNode.getRuleName(); ///
|
|
179
|
+
|
|
180
|
+
if (ruleName === antecedentRuleName) {
|
|
181
|
+
const childNodes = nonTerminalNode.getChildNodes(),
|
|
182
|
+
antecedentChildNodes = antecedentNonTerminalNode.getChildNodes(),
|
|
183
|
+
nodes = childNodes, ///
|
|
184
|
+
antecedentNodes = antecedentChildNodes, ///
|
|
185
|
+
antecedentChildNodesMatches = matchAntecedentNodes(antecedentNodes, nodes, substitutions);
|
|
186
|
+
|
|
187
|
+
antecedentNonTerminalNodeMatches = antecedentChildNodesMatches; ///
|
|
188
|
+
|
|
189
|
+
if (!antecedentNonTerminalNodeMatches) {
|
|
190
|
+
const ruleNameStatementRuleName = (ruleName === STATEMENT_RULE_NAME);
|
|
191
|
+
|
|
192
|
+
if (ruleNameStatementRuleName) {
|
|
193
|
+
const statementNode = nonTerminalNode, ///
|
|
194
|
+
antecedentStatementNode = antecedentNonTerminalNode, ///
|
|
195
|
+
antecedentStatementNodeMatches = matchAntecedentStatementNode(antecedentStatementNode, statementNode, substitutions);
|
|
196
|
+
|
|
197
|
+
antecedentNonTerminalNodeMatches = antecedentStatementNodeMatches; ///
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return antecedentNonTerminalNodeMatches;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function matchAntecedentStatementNode(antecedentStatementNode, statementNode, substitutions) {
|
|
206
|
+
let antecedentStatementNodeMatches = false;
|
|
207
|
+
|
|
208
|
+
const antecedentNonTerminalNode = antecedentStatementNode, ///
|
|
209
|
+
antecedentChildNodes = antecedentNonTerminalNode.getChildNodes(),
|
|
210
|
+
antecedentChildNodesLength = antecedentChildNodes.length;
|
|
211
|
+
|
|
212
|
+
if (antecedentChildNodesLength === 1) {
|
|
213
|
+
const firstAntecedentChildNode = first(antecedentChildNodes),
|
|
214
|
+
antecedentChildNode = firstAntecedentChildNode, ///
|
|
215
|
+
antecedentChildNodeNonTerminalNode = antecedentChildNode.isNonTerminalNode();
|
|
216
|
+
|
|
217
|
+
if (antecedentChildNodeNonTerminalNode) {
|
|
218
|
+
const antecedentNonTerminalChildNode = antecedentChildNode, ///
|
|
219
|
+
antecedentNonTerminalChildNodeRuleName = antecedentNonTerminalChildNode.getRuleName(),
|
|
220
|
+
antecedentNonTerminalChildNodeRuleNameVariableRuleName = (antecedentNonTerminalChildNodeRuleName === VARIABLE_RULE_NAME);
|
|
221
|
+
|
|
222
|
+
if (antecedentNonTerminalChildNodeRuleNameVariableRuleName) {
|
|
223
|
+
const antecedentVariableNode = antecedentNonTerminalChildNode, ///
|
|
224
|
+
nonTerminalNode = statementNode, ///
|
|
225
|
+
childNodes = nonTerminalNode.getChildNodes(),
|
|
226
|
+
nodes = childNodes, ///
|
|
227
|
+
antecedentVariableMatches = matchAntecedentVariable(antecedentVariableNode, nodes, substitutions);
|
|
228
|
+
|
|
229
|
+
antecedentStatementNodeMatches = antecedentVariableMatches; ///
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return antecedentStatementNodeMatches;
|
|
235
|
+
}
|
package/src/axiom.js
CHANGED
|
@@ -1,103 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AxiomLemmaTheorem from "./axiomLemmaTheorem";
|
|
4
4
|
|
|
5
5
|
import { AXIOM_KIND } from "./kinds";
|
|
6
|
-
import { nodeAsString } from "./utilities/string";
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
export default class Axiom extends AxiomLemmaTheorem {
|
|
8
|
+
static kind = AXIOM_KIND;
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
constructor(labels, unqualifiedStatementNode, indicativeConditionalNode) {
|
|
12
|
-
this.labels = labels;
|
|
13
|
-
this.unqualifiedStatementNode = unqualifiedStatementNode;
|
|
14
|
-
this.indicativeConditionalNode = indicativeConditionalNode;
|
|
15
|
-
}
|
|
10
|
+
static fromJSON(json, releaseContext) { return AxiomLemmaTheorem.fromJSON(Axiom, json); }
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
return this.labels;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
getUnqualifiedStatementNode() {
|
|
22
|
-
return this.unqualifiedStatementNode;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
getIndicativeConditionalNode() {
|
|
26
|
-
return this.indicativeConditionalNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
matchLabelName(labelName) {
|
|
30
|
-
const matchesLabelName = this.labels.some((label) => {
|
|
31
|
-
const name = labelName, ///
|
|
32
|
-
labelMatchesName = label.matchName(name);
|
|
33
|
-
|
|
34
|
-
if (labelMatchesName) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return matchesLabelName;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
toJSON() {
|
|
43
|
-
const labelsJSON = this.labels.map((label) => {
|
|
44
|
-
const labelJSON = label.toJSON();
|
|
45
|
-
|
|
46
|
-
return labelJSON;
|
|
47
|
-
}),
|
|
48
|
-
unqualifiedStatementString = nodeAsString(this.unqualifiedStatementNode),
|
|
49
|
-
indicativeConditionalString = nodeAsString(this.indicativeConditionalNode),
|
|
50
|
-
kind = AXIOM_KIND,
|
|
51
|
-
labels = labelsJSON, ///
|
|
52
|
-
unqualifiedStatement = unqualifiedStatementString, ///
|
|
53
|
-
indicativeConditional = indicativeConditionalString, ///
|
|
54
|
-
json = {
|
|
55
|
-
kind,
|
|
56
|
-
labels,
|
|
57
|
-
unqualifiedStatement,
|
|
58
|
-
indicativeConditional
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
return json;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
static fromJSON(json, releaseContext) {
|
|
65
|
-
let { labels } = json;
|
|
66
|
-
|
|
67
|
-
const labelsJSON = labels; ///
|
|
68
|
-
|
|
69
|
-
labels = labelsJSON.map((labelJSON) => {
|
|
70
|
-
const json = labelJSON, ///
|
|
71
|
-
label = Label.fromJSON(json, releaseContext);
|
|
72
|
-
|
|
73
|
-
return label;
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
let { unqualifiedStatement, indicativeConditional } = json;
|
|
77
|
-
|
|
78
|
-
let unqualifiedStatementNode = null,
|
|
79
|
-
indicativeConditionalNode = null;
|
|
80
|
-
|
|
81
|
-
if (unqualifiedStatement !== null) {
|
|
82
|
-
const unqualifiedStatementString = unqualifiedStatement; ///
|
|
83
|
-
|
|
84
|
-
unqualifiedStatementNode = unqualifiedStatementNodeFromUnqualifiedStatementString(unqualifiedStatementString, releaseContext);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (indicativeConditional !== null) {
|
|
88
|
-
const indicativeConditionalString = indicativeConditional; ///
|
|
89
|
-
|
|
90
|
-
indicativeConditionalNode = indicativeConditionalNodeFromIndicativeConditionalString(indicativeConditionalString, releaseContext);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const axiom = new Axiom(labels, unqualifiedStatementNode, indicativeConditionalNode);
|
|
94
|
-
|
|
95
|
-
return axiom;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
static fromLabelsUnqualifiedStatementNodeAndIndicativeConditionalNode(labels, unqualifiedStatementNode, indicativeConditionalNode) {
|
|
99
|
-
const axiom = new Axiom(labels, unqualifiedStatementNode, indicativeConditionalNode);
|
|
100
|
-
|
|
101
|
-
return axiom;
|
|
102
|
-
}
|
|
12
|
+
static fromLabelsAntecedentsAndConsequent(labels, antecedents, consequent) { return AxiomLemmaTheorem.fromLabelsAntecedentsAndConsequent(Axiom, labels, antecedents, consequent); }
|
|
103
13
|
}
|