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.
Files changed (46) hide show
  1. package/lib/antecedent.js +214 -0
  2. package/lib/axiom.js +93 -78
  3. package/lib/axiomLemmaTheorem.js +190 -0
  4. package/lib/consequent.js +157 -0
  5. package/lib/constants.js +9 -1
  6. package/lib/lemma.js +93 -78
  7. package/lib/ruleNames.js +4 -4
  8. package/lib/substitution.js +123 -0
  9. package/lib/theorem.js +93 -78
  10. package/lib/utilities/statement.js +45 -0
  11. package/lib/utilities/string.js +6 -6
  12. package/lib/verify/antecedentOrAntecedents.js +38 -0
  13. package/lib/verify/axiom.js +15 -14
  14. package/lib/verify/conditinalIndicative.js +32 -0
  15. package/lib/verify/{indicativeConditional.js → conditionalIndicative.js} +10 -10
  16. package/lib/verify/consequent.js +36 -0
  17. package/lib/verify/derivation.js +1 -1
  18. package/lib/verify/lemma.js +25 -19
  19. package/lib/verify/proof.js +26 -11
  20. package/lib/verify/statement/qualified.js +16 -4
  21. package/lib/verify/theorem.js +22 -17
  22. package/lib/verify/unconditionalIndicative.js +28 -0
  23. package/package.json +3 -3
  24. package/src/antecedent.js +235 -0
  25. package/src/axiom.js +5 -95
  26. package/src/axiomLemmaTheorem.js +190 -0
  27. package/src/consequent.js +187 -0
  28. package/src/constants.js +2 -0
  29. package/src/lemma.js +5 -95
  30. package/src/ruleNames.js +1 -1
  31. package/src/substitution.js +130 -0
  32. package/src/theorem.js +5 -95
  33. package/src/utilities/statement.js +50 -0
  34. package/src/utilities/string.js +6 -6
  35. package/src/verify/antecedentOrAntecedents.js +40 -0
  36. package/src/verify/axiom.js +21 -16
  37. package/src/verify/conditinalIndicative.js +31 -0
  38. package/src/verify/conditionalIndicative.js +29 -0
  39. package/src/verify/consequent.js +36 -0
  40. package/src/verify/derivation.js +1 -1
  41. package/src/verify/lemma.js +38 -21
  42. package/src/verify/proof.js +32 -14
  43. package/src/verify/statement/qualified.js +15 -6
  44. package/src/verify/theorem.js +32 -20
  45. package/src/verify/unconditionalIndicative.js +24 -0
  46. package/src/verify/indicativeConditional.js +0 -29
@@ -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!"), proofStatementNodeQuery = (0, _query.nodeQuery)("/proof/qualifiedStatement/statement!");
20
- function verifyProof(proofNode, conclusion, proofContext) {
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 = true;
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 (derivationVerified) {
29
- var qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode), qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, proofContext);
30
- if (qualifiedStatementVerified) {
31
- var statementNode = conclusion.getStatementNode(), proofStatementNode = proofStatementNodeQuery(proofNode), proofStatementNodeMatches = matchProofStatementNode(proofStatementNode, statementNode);
32
- proofVerified = proofStatementNodeMatches; ///
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
- var referenceNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/qualification!/reference!"), statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!");
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), referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode);
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgcmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCByZWZlcmVuY2VOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3F1YWxpZmljYXRpb24hL3JlZmVyZW5jZSFcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSByZWZlcmVuY2VOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgcmVmZXJlbmNlTmFtZSA9IHJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKTtcblxuICAgIC8vL1xuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50LmApO1xuICB9XG5cbiAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50IiwicmVmZXJlbmNlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInByb29mQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE5vZGUiLCJyZWZlcmVuY2VOb2RlIiwicmVmZXJlbmNlTmFtZSIsInJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZSIsImluZm8iLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBd0JBOzs7c0JBTks7cUJBQzZCO0FBRTFELElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxrREFDL0JDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRix5QkFBeUJJLHNCQUFzQixFQUFFQyxZQUFZLEVBQUU7SUFDckYsSUFBSUMsNkJBQTZCLEtBQUs7SUFFdENELGFBQWFFLEtBQUssQ0FBQ0g7SUFFbkIsSUFBTUksMkJBQTJCQyxJQUFBQSxvQkFBWSxFQUFDTDtJQUU5Q0MsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQTBDLE9BQXpCRiwwQkFBeUI7SUFFOUQsSUFBTUcsZ0JBQWdCUixtQkFBbUJDO0lBRXZDLElBQUlPLGtCQUFrQixJQUFJLEVBQUU7UUFDNUIsSUFBTUMsZ0JBQWdCWCxtQkFBbUJHLHlCQUNuQ1MsZ0JBQWdCQyxJQUFBQSxxQ0FBOEIsRUFBQ0Y7SUFFckQsR0FBRztJQUNMLENBQUM7SUFFRCxJQUFJTiw0QkFBNEI7UUFDOUJELGFBQWFVLElBQUksQ0FBQyxBQUFDLGlCQUF5QyxPQUF6QlAsMEJBQXlCO0lBQzlELENBQUM7SUFFREYsNkJBQ0VELGFBQWFXLFFBQVEsQ0FBQ1osMEJBQ3BCQyxhQUFhWSxJQUFJLENBQUNiLHVCQUF1QjtJQUU3QyxPQUFPRTtBQUNUIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHJlZmVyZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvcmVmZXJlbmNlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSByZWZlcmVuY2VOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAocmVmZXJlbmNlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZU5hbWUgPSByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSk7XG5cbiAgICAgIGRlYnVnZ2VyXG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50LmApO1xuICB9XG5cbiAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicmVmZXJlbmNlTm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInByb29mQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE5vZGUiLCJyZWZlcmVuY2VOb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJyZWZlcmVuY2VOYW1lIiwicmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlIiwiaW5mbyIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7Ozs4REFSSTtzQkFFQztxQkFDNkI7Ozs7OztBQUUxRCxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsbUNBQy9CQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0YseUJBQXlCSSxzQkFBc0IsRUFBRUMsWUFBWSxFQUFFO0lBQ3JGLElBQUlDLDZCQUE2QixLQUFLO0lBRXRDRCxhQUFhRSxLQUFLLENBQUNIO0lBRW5CLElBQU1JLDJCQUEyQkMsSUFBQUEsb0JBQVksRUFBQ0w7SUFFOUNDLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUEwQyxPQUF6QkYsMEJBQXlCO0lBRTlELElBQU1HLGdCQUFnQlYsbUJBQW1CRztJQUV6QyxJQUFJTyxrQkFBa0IsSUFBSSxFQUFFO1FBQzFCLElBQU1DLGdCQUFnQlQsbUJBQW1CQztRQUV6QyxJQUFJUSxrQkFBa0IsSUFBSSxFQUFFO1lBQzFCLElBQU1DLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0gsZUFBZU47WUFFekRDLDZCQUE2Qk8sbUJBQW1CLEdBQUc7UUFDckQsT0FBTztZQUNMLElBQU1FLGdCQUFnQkMsSUFBQUEscUNBQThCLEVBQUNKO1lBRXJELFFBQVE7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlOLDRCQUE0QjtRQUM5QkQsYUFBYVksSUFBSSxDQUFDLEFBQUMsaUJBQXlDLE9BQXpCVCwwQkFBeUI7SUFDOUQsQ0FBQztJQUVERiw2QkFDRUQsYUFBYWEsUUFBUSxDQUFDZCwwQkFDcEJDLGFBQWFjLElBQUksQ0FBQ2YsdUJBQXVCO0lBRTdDLE9BQU9FO0FBQ1QifQ==
@@ -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 _proof = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
14
- var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/unqualified"));
15
- var _indicativeConditional = /*#__PURE__*/ _interopRequireDefault(require("../verify/indicativeConditional"));
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"), unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/theorem/unqualifiedStatement!"), indicativeConditionalNodeQuery = (0, _query.nodeQuery)("/theorem/indicativeConditional!");
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 = _proof.default.fromFileContext(fileContext);
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 unqualifiedStatementNode = unqualifiedStatementNodeQuery(theoremNode), indicativeConditionalNode = indicativeConditionalNodeQuery(theoremNode);
32
- var unqualifiedStatementVerified = false, indicativeConditionalVerified = false;
33
- if (unqualifiedStatementNode !== null) {
34
- unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, proofContext);
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 (indicativeConditionalNode !== null) {
37
- indicativeConditionalVerified = (0, _indicativeConditional.default)(indicativeConditionalNode, proofContext);
38
+ if (unconditionalIndicativeNode !== null) {
39
+ unconditionalIndicativeVerified = (0, _unconditionalIndicative.default)(unconditionalIndicativeNode, consequents, proofContext);
38
40
  }
39
- if (unqualifiedStatementVerified || indicativeConditionalVerified) {
40
- var theorem = _theorem.default.fromLabelsUnqualifiedStatementNodeAndIndicativeConditionalNode(labels, unqualifiedStatementNode, indicativeConditionalNode);
41
- fileContext.addTheorem(theorem);
42
- theoremVerified = true;
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.halt(theoremNode);
53
+ theoremVerified ? fileContext.complete(theoremNode) : fileContext.complete(theoremNode);
49
54
  return theoremVerified;
50
55
  }
51
56
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCBQcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeUluZGljYXRpdmVDb25kaXRpb25hbCBmcm9tIFwiLi4vdmVyaWZ5L2luZGljYXRpdmVDb25kaXRpb25hbFwiO1xuXG5pbXBvcnQgeyBub2Rlc0FzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL2xhYmVsXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS91bnF1YWxpZmllZFN0YXRlbWVudCFcIiksXG4gICAgICBpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS9pbmRpY2F0aXZlQ29uZGl0aW9uYWwhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUaGVvcmVtKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGhlb3JlbVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgZmlsZUNvbnRleHQuYmVnaW4odGhlb3JlbU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLi4uYCk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgIGluZGljYXRpdmVDb25kaXRpb25hbE5vZGUgPSBpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlUXVlcnkodGhlb3JlbU5vZGUpO1xuXG4gICAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgIGluZGljYXRpdmVDb25kaXRpb25hbFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlICE9PSBudWxsKSB7XG4gICAgICBpbmRpY2F0aXZlQ29uZGl0aW9uYWxWZXJpZmllZCA9IHZlcmlmeUluZGljYXRpdmVDb25kaXRpb25hbChpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlLCBwcm9vZkNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIHx8IGluZGljYXRpdmVDb25kaXRpb25hbFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCB0aGVvcmVtID0gVGhlb3JlbS5mcm9tTGFiZWxzVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlQW5kSW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZShsYWJlbHMsIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZSk7XG5cbiAgICAgIGZpbGVDb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgIHRoZW9yZW1WZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoZW9yZW1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLmApO1xuICB9XG5cbiAgdGhlb3JlbVZlcmlmaWVkID9cbiAgICBmaWxlQ29udGV4dC5jb21wbGV0ZSh0aGVvcmVtTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQuaGFsdCh0aGVvcmVtTm9kZSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUaGVvcmVtIiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGUiLCJmaWxlQ29udGV4dCIsInRoZW9yZW1WZXJpZmllZCIsImJlZ2luIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJwcm9vZkNvbnRleHQiLCJQcm9vZkNvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJkZWJ1ZyIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJpbmRpY2F0aXZlQ29uZGl0aW9uYWxWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IiwidmVyaWZ5SW5kaWNhdGl2ZUNvbmRpdGlvbmFsIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlQW5kSW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZSIsImFkZFRoZW9yZW0iLCJpbmZvIiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFlQTs7O2VBQXdCQTs7OzREQWJKOzJEQUNLOzBEQUNBO2dFQUNjOzBFQUNDO3NCQUVWO3FCQUNROzs7Ozs7QUFFdEMsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLG1CQUM3QkMsZ0NBQWdDQyxJQUFBQSxnQkFBUyxFQUFDLG1DQUMxQ0MsaUNBQWlDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWxDLFNBQVNKLGNBQWNNLFdBQVcsRUFBRUMsV0FBVyxFQUFFO0lBQzlELElBQUlDLGtCQUFrQixLQUFLO0lBRTNCRCxZQUFZRSxLQUFLLENBQUNIO0lBRWxCLElBQU1JLGFBQWFULGdCQUFnQkssY0FDN0JLLGVBQWVDLElBQUFBLHFCQUFhLEVBQUNGLGFBQzdCRyxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ1I7SUFFbERBLFlBQVlTLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTCxjQUFhO0lBRWpELElBQU1NLFNBQVMsRUFBRSxFQUNmQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVY7SUFFcEQsSUFBSVcsZ0JBQWdCO1FBQ2xCLElBQU1FLDJCQUEyQmpCLDhCQUE4QkcsY0FDekRlLDRCQUE0QmhCLCtCQUErQkM7UUFFakUsSUFBSWdCLCtCQUErQixLQUFLLEVBQ3RDQyxnQ0FBZ0MsS0FBSztRQUV2QyxJQUFJSCw2QkFBNkIsSUFBSSxFQUFFO1lBQ3JDRSwrQkFBK0JFLElBQUFBLG9CQUEwQixFQUFDSiwwQkFBMEJQO1FBQ3RGLENBQUM7UUFFRCxJQUFJUSw4QkFBOEIsSUFBSSxFQUFFO1lBQ3RDRSxnQ0FBZ0NFLElBQUFBLDhCQUEyQixFQUFDSiwyQkFBMkJSO1FBQ3pGLENBQUM7UUFFRCxJQUFJUyxnQ0FBZ0NDLCtCQUErQjtZQUNqRSxJQUFNRyxVQUFVQyxnQkFBTyxDQUFDQyw4REFBOEQsQ0FBQ1gsUUFBUUcsMEJBQTBCQztZQUV6SGQsWUFBWXNCLFVBQVUsQ0FBQ0g7WUFFdkJsQixrQkFBa0IsSUFBSTtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGlCQUFpQjtRQUNuQkQsWUFBWXVCLElBQUksQ0FBQyxBQUFDLGlCQUE2QixPQUFibkIsY0FBYTtJQUNqRCxDQUFDO0lBRURILGtCQUNFRCxZQUFZd0IsUUFBUSxDQUFDekIsZUFDbkJDLFlBQVl5QixJQUFJLENBQUMxQixZQUFZO0lBRWpDLE9BQU9FO0FBQ1QifQ==
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.464",
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.372",
15
+ "occam-custom-grammars": "^5.0.374",
16
16
  "occam-dom": "^3.1.1",
17
- "occam-file-system": "^5.0.132",
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 Label from "./label";
3
+ import AxiomLemmaTheorem from "./axiomLemmaTheorem";
4
4
 
5
5
  import { AXIOM_KIND } from "./kinds";
6
- import { nodeAsString } from "./utilities/string";
7
6
 
8
- import { unqualifiedStatementNodeFromUnqualifiedStatementString, indicativeConditionalNodeFromIndicativeConditionalString } from "./utilities/string";
7
+ export default class Axiom extends AxiomLemmaTheorem {
8
+ static kind = AXIOM_KIND;
9
9
 
10
- export default class Axiom {
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
- getLabels() {
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
  }