occam-verify-cli 0.0.469 → 0.0.471

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 (45) hide show
  1. package/lib/context/file.js +9 -9
  2. package/lib/context/metaproof.js +30 -31
  3. package/lib/context/proof.js +30 -24
  4. package/lib/metaSubstitution.js +4 -4
  5. package/lib/rule.js +15 -19
  6. package/lib/step/metaproof.js +114 -0
  7. package/lib/step/proof.js +68 -0
  8. package/lib/utilities/array.js +2 -5
  9. package/lib/utilities/metaAssertion.js +117 -0
  10. package/lib/utilities/node.js +52 -0
  11. package/lib/verify/antecedent.js +4 -4
  12. package/lib/verify/derivation.js +13 -13
  13. package/lib/verify/equality.js +18 -5
  14. package/lib/verify/metaDerivation.js +13 -13
  15. package/lib/verify/metaproof.js +13 -51
  16. package/lib/verify/metastatement/unqualified.js +2 -3
  17. package/lib/verify/premiseOrPremises.js +4 -4
  18. package/lib/verify/proof.js +14 -62
  19. package/lib/verify/statement/unqualified.js +2 -3
  20. package/package.json +1 -1
  21. package/src/context/file.js +6 -6
  22. package/src/context/metaproof.js +28 -31
  23. package/src/context/proof.js +29 -26
  24. package/src/metaSubstitution.js +1 -1
  25. package/src/rule.js +19 -26
  26. package/src/step/metaproof.js +100 -0
  27. package/src/step/proof.js +30 -0
  28. package/src/utilities/array.js +1 -1
  29. package/src/utilities/metaAssertion.js +176 -0
  30. package/src/utilities/node.js +72 -0
  31. package/src/verify/antecedent.js +3 -3
  32. package/src/verify/derivation.js +14 -10
  33. package/src/verify/equality.js +29 -11
  34. package/src/verify/metaDerivation.js +14 -10
  35. package/src/verify/metaproof.js +26 -91
  36. package/src/verify/metastatement/unqualified.js +1 -3
  37. package/src/verify/premiseOrPremises.js +3 -3
  38. package/src/verify/proof.js +23 -97
  39. package/src/verify/statement/unqualified.js +1 -4
  40. package/lib/assertion.js +0 -147
  41. package/lib/metaAssertion.js +0 -200
  42. package/lib/utilities/metastatement.js +0 -45
  43. package/src/assertion.js +0 -150
  44. package/src/metaAssertion.js +0 -245
  45. package/src/utilities/metastatement.js +0 -50
@@ -8,19 +8,19 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyProof;
9
9
  }
10
10
  });
11
- var _proof = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
11
+ var _proof = /*#__PURE__*/ _interopRequireDefault(require("../step/proof"));
12
12
  var _derivation = /*#__PURE__*/ _interopRequireDefault(require("../verify/derivation"));
13
- var _qualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/qualified"));
13
+ var _qualified = /*#__PURE__*/ _interopRequireDefault(require("./statement/qualified"));
14
+ var _node = require("../utilities/node");
14
15
  var _query = require("../utilities/query");
15
16
  function _interopRequireDefault(obj) {
16
17
  return obj && obj.__esModule ? obj : {
17
18
  default: obj
18
19
  };
19
20
  }
20
- var derivationNodeQuery = (0, _query.nodeQuery)("/proof/derivation!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proof/qualifiedStatement!");
21
- function verifyProof(proofNode, fileContext) {
21
+ var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), derivationNodeQuery = (0, _query.nodeQuery)("/proof/derivation!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proof/qualifiedStatement!");
22
+ function verifyProof(proofNode, conclusion, proofContext) {
22
23
  var proofVerified = false;
23
- var proofContext = _proof.default.fromFileContext(fileContext);
24
24
  proofContext.begin(proofNode);
25
25
  var derivationNode = derivationNodeQuery(proofNode), qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode);
26
26
  var derivationVerified = false, qualifiedStatementVerified = false;
@@ -34,65 +34,17 @@ function verifyProof(proofNode, fileContext) {
34
34
  qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, proofContext);
35
35
  derived = false;
36
36
  proofContext.setDerived(derived);
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
- // }
50
- proofVerified ? proofContext.complete(proofNode) : proofContext.complete(proofNode);
51
- return proofVerified;
52
- }
53
- function matchProofStatementNode(proofStatementNode, statementNode) {
54
- var proofNonTerminalNode = proofStatementNode, nonTerminalNode = statementNode, proofNonTerminalNodeMatches = matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode), proofStatementNodeMatches = proofNonTerminalNodeMatches; ///
55
- return proofStatementNodeMatches;
56
- }
57
- function matchProofNode(proofNode, node) {
58
- var proofNodeMatches = false;
59
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = proofNode.isTerminalNode();
60
- if (nodeTerminalNode === ruleNodeTerminalNode) {
61
- if (nodeTerminalNode) {
62
- var terminalNode = node, proofTerminalNode = proofNode, proofTerminalNodeMatches = matchProofTerminalNode(proofTerminalNode, terminalNode);
63
- proofNodeMatches = proofTerminalNodeMatches; ///
64
- } else {
65
- var nonTerminalNode = node, proofNonTerminalNode = proofNode, proofNonTerminalNodeMatches = matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode);
66
- proofNodeMatches = proofNonTerminalNodeMatches; ///
37
+ if (qualifiedStatementVerified) {
38
+ var statementNode = statementNodeQuery(qualifiedStatementNode), proofStep = _proof.default.fromStatementNode(statementNode);
39
+ proofContext.addProofStep(proofStep);
67
40
  }
68
41
  }
69
- return proofNodeMatches;
70
- }
71
- function matchProofNodes(proofNodes, nodes) {
72
- var proofNodesMatches = false;
73
- var nodesLength = nodes.length, proofNodesLength = proofNodes.length;
74
- if (nodesLength === proofNodesLength) {
75
- proofNodesMatches = nodes.every(function(node, index) {
76
- var proofNode = proofNodes[index], proofNodeMatches = matchProofNode(proofNode, node);
77
- if (proofNodeMatches) {
78
- return true;
79
- }
80
- });
42
+ if (derivationVerified || qualifiedStatementVerified) {
43
+ var lastProofStep = proofContext.getLastProofStep(), proofStep1 = lastProofStep, statementNode1 = proofStep1.getStatementNode(), conclusionStatementNode = conclusion.getStatementNode(), nodeA = statementNode1, nodeB = conclusionStatementNode, nodeMatches = (0, _node.matchNode)(nodeA, nodeB);
44
+ proofVerified = nodeMatches; ///
81
45
  }
82
- return proofNodesMatches;
83
- }
84
- function matchProofTerminalNode(proofTerminalNode, terminalNode) {
85
- var matches = proofTerminalNode.match(terminalNode), proofTerminalNodeMatches = matches; ///
86
- return proofTerminalNodeMatches;
87
- }
88
- function matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode) {
89
- var proofNonTerminalNodeMatches = false;
90
- var ruleName = nonTerminalNode.getRuleName(), proofRuleName = proofNonTerminalNode.getRuleName(); ///
91
- if (ruleName === proofRuleName) {
92
- var childNodes = nonTerminalNode.getChildNodes(), proofChildNodes = proofNonTerminalNode.getChildNodes(), nodes = childNodes, proofNodes = proofChildNodes, proofNodesMatches = matchProofNodes(proofNodes, nodes);
93
- proofNonTerminalNodeMatches = proofNodesMatches; ///
94
- }
95
- return proofNonTerminalNodeMatches;
46
+ proofVerified ? proofContext.complete(proofNode) : proofContext.complete(proofNode);
47
+ return proofVerified;
96
48
  }
97
49
 
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL2Rlcml2YXRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL3F1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByb29mKHByb29mTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocHJvb2ZOb2RlKTtcblxuICBjb25zdCBkZXJpdmF0aW9uTm9kZSA9IGRlcml2YXRpb25Ob2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShwcm9vZk5vZGUpO1xuXG4gIGxldCBkZXJpdmF0aW9uVmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2YXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgZGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVyaXZhdGlvbihkZXJpdmF0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KTtcbiAgfVxuXG4gIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IGRlcml2ZWQ7XG5cbiAgICBkZXJpdmVkID0gdHJ1ZTtcblxuICAgIHByb29mQ29udGV4dC5zZXREZXJpdmVkKGRlcml2ZWQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGRlcml2ZWQgPSBmYWxzZTtcblxuICAgIHByb29mQ29udGV4dC5zZXREZXJpdmVkKGRlcml2ZWQpO1xuICB9XG5cbiAgLy8gaWYgKGRlcml2YXRpb25WZXJpZmllZCkge1xuICAvLyAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgLy8gICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuICAvL1xuICAvLyAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAvLyAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb24uZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAvLyAgICAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgLy8gICAgICAgICAgIHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaFByb29mU3RhdGVtZW50Tm9kZShwcm9vZlN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUpO1xuICAvL1xuICAvLyAgICAgcHJvb2ZWZXJpZmllZCA9IHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXM7ICAvLy9cbiAgLy8gICB9XG4gIC8vIH1cblxuICBwcm9vZlZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKTtcblxuICByZXR1cm4gcHJvb2ZWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZlN0YXRlbWVudE5vZGUocHJvb2ZTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IHByb29mTm9uVGVybWluYWxOb2RlID0gcHJvb2ZTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZk5vblRlcm1pbmFsTm9kZShwcm9vZk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBwcm9vZlN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mTm9kZShwcm9vZk5vZGUsIG5vZGUpIHtcbiAgbGV0IHByb29mTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IHByb29mTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBwcm9vZlRlcm1pbmFsTm9kZSA9IHByb29mTm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZlRlcm1pbmFsTm9kZShwcm9vZlRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKTtcblxuICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IHByb29mVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIHByb29mTm9uVGVybWluYWxOb2RlID0gcHJvb2ZOb2RlLCAgLy8vXG4gICAgICAgICAgICBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9uVGVybWluYWxOb2RlKHByb29mTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBwcm9vZk5vZGVNYXRjaGVzID0gcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZk5vZGVzKHByb29mTm9kZXMsIG5vZGVzKSB7XG4gIGxldCBwcm9vZk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBwcm9vZk5vZGVzTGVuZ3RoID0gcHJvb2ZOb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBwcm9vZk5vZGVzTGVuZ3RoKSB7XG4gICAgcHJvb2ZOb2Rlc01hdGNoZXMgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IG1hdGNoUHJvb2ZOb2RlKHByb29mTm9kZSwgbm9kZSk7XG5cbiAgICAgIGlmIChwcm9vZk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZUZXJtaW5hbE5vZGUocHJvb2ZUZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSkge1xuICBjb25zdCBtYXRjaGVzID0gcHJvb2ZUZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBwcm9vZlRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZOb25UZXJtaW5hbE5vZGUocHJvb2ZOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSkge1xuICBsZXQgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgcHJvb2ZSdWxlTmFtZSA9IHByb29mTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gcHJvb2ZSdWxlTmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByb29mQ2hpbGROb2RlcyA9IHByb29mTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByb29mTm9kZXMgPSBwcm9vZkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByb29mTm9kZXNNYXRjaGVzID0gbWF0Y2hQcm9vZk5vZGVzKHByb29mTm9kZXMsIG5vZGVzKTtcblxuICAgIHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHByb29mTm9kZXNNYXRjaGVzOyAvLy9cbiAgfVxuXG4gIHJldHVybiBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UHJvb2YiLCJkZXJpdmF0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwicHJvb2ZOb2RlIiwiZmlsZUNvbnRleHQiLCJwcm9vZlZlcmlmaWVkIiwicHJvb2ZDb250ZXh0IiwiUHJvb2ZDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwiYmVnaW4iLCJkZXJpdmF0aW9uTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJkZXJpdmF0aW9uVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeURlcml2YXRpb24iLCJkZXJpdmVkIiwic2V0RGVyaXZlZCIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImNvbXBsZXRlIiwibWF0Y2hQcm9vZlN0YXRlbWVudE5vZGUiLCJwcm9vZlN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaFByb29mTm9uVGVybWluYWxOb2RlIiwicHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZOb2RlIiwibm9kZSIsInByb29mTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInByb29mVGVybWluYWxOb2RlIiwicHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hQcm9vZlRlcm1pbmFsTm9kZSIsIm1hdGNoUHJvb2ZOb2RlcyIsInByb29mTm9kZXMiLCJub2RlcyIsInByb29mTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJwcm9vZk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJwcm9vZlJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJwcm9vZkNoaWxkTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEM7K0RBQ0k7OERBQ1E7cUJBRVg7Ozs7OztBQUUxQixJQUFNQyxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUMsdUJBQ2hDQyw4QkFBOEJELElBQUFBLGdCQUFTLEVBQUM7QUFFL0IsU0FBU0YsWUFBWUksU0FBUyxFQUFFQyxXQUFXLEVBQUU7SUFDMUQsSUFBSUMsZ0JBQWdCLEtBQUs7SUFFekIsSUFBTUMsZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNKO0lBRWxERSxhQUFhRyxLQUFLLENBQUNOO0lBRW5CLElBQU1PLGlCQUFpQlYsb0JBQW9CRyxZQUNyQ1EseUJBQXlCVCw0QkFBNEJDO0lBRTNELElBQUlTLHFCQUFxQixLQUFLLEVBQzFCQyw2QkFBNkIsS0FBSztJQUV0QyxJQUFJSCxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCRSxxQkFBcUJFLElBQUFBLG1CQUFnQixFQUFDSixnQkFBZ0JKO0lBQ3hELENBQUM7SUFFRCxJQUFJSywyQkFBMkIsSUFBSSxFQUFFO1FBQ25DLElBQUlJO1FBRUpBLFVBQVUsSUFBSTtRQUVkVCxhQUFhVSxVQUFVLENBQUNEO1FBRXhCRiw2QkFBNkJJLElBQUFBLGtCQUF3QixFQUFDTix3QkFBd0JMO1FBRTlFUyxVQUFVLEtBQUs7UUFFZlQsYUFBYVUsVUFBVSxDQUFDRDtJQUMxQixDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLDJFQUEyRTtJQUMzRSx1R0FBdUc7SUFDdkcsRUFBRTtJQUNGLHNDQUFzQztJQUN0QywyREFBMkQ7SUFDM0QscUVBQXFFO0lBQ3JFLG9HQUFvRztJQUNwRyxFQUFFO0lBQ0Ysc0RBQXNEO0lBQ3RELE1BQU07SUFDTixJQUFJO0lBRUpWLGdCQUNFQyxhQUFhWSxRQUFRLENBQUNmLGFBQ3BCRyxhQUFhWSxRQUFRLENBQUNmLFVBQVU7SUFFcEMsT0FBT0U7QUFDVDtBQUVBLFNBQVNjLHdCQUF3QkMsa0JBQWtCLEVBQUVDLGFBQWEsRUFBRTtJQUNsRSxJQUFNQyx1QkFBdUJGLG9CQUN2Qkcsa0JBQWtCRixlQUNsQkcsOEJBQThCQywwQkFBMEJILHNCQUFzQkMsa0JBQzlFRyw0QkFBNEJGLDZCQUE4QixHQUFHO0lBRW5FLE9BQU9FO0FBQ1Q7QUFFQSxTQUFTQyxlQUFleEIsU0FBUyxFQUFFeUIsSUFBSSxFQUFFO0lBQ3ZDLElBQUlDLG1CQUFtQixLQUFLO0lBRTVCLElBQU1DLG1CQUFtQkYsS0FBS0csY0FBYyxJQUN0Q0MsdUJBQXVCN0IsVUFBVTRCLGNBQWM7SUFFckQsSUFBSUQscUJBQXFCRSxzQkFBc0I7UUFDN0MsSUFBSUYsa0JBQWtCO1lBQ3BCLElBQU1HLGVBQWVMLE1BQ2ZNLG9CQUFvQi9CLFdBQ3BCZ0MsMkJBQTJCQyx1QkFBdUJGLG1CQUFtQkQ7WUFFM0VKLG1CQUFtQk0sMEJBQTJCLEdBQUc7UUFDbkQsT0FBTztZQUNMLElBQU1aLGtCQUFrQkssTUFDbEJOLHVCQUF1Qm5CLFdBQ3ZCcUIsOEJBQThCQywwQkFBMEJILHNCQUFzQkM7WUFFcEZNLG1CQUFtQkwsNkJBQTZCLEdBQUc7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPSztBQUNUO0FBRUEsU0FBU1EsZ0JBQWdCQyxVQUFVLEVBQUVDLEtBQUssRUFBRTtJQUMxQyxJQUFJQyxvQkFBb0IsS0FBSztJQUU3QixJQUFNQyxjQUFjRixNQUFNRyxNQUFNLEVBQzFCQyxtQkFBbUJMLFdBQVdJLE1BQU07SUFFMUMsSUFBSUQsZ0JBQWdCRSxrQkFBa0I7UUFDcENILG9CQUFvQkQsTUFBTUssS0FBSyxDQUFDLFNBQUNoQixNQUFNaUIsT0FBVTtZQUMvQyxJQUFNMUMsWUFBWW1DLFVBQVUsQ0FBQ08sTUFBTSxFQUM3QmhCLG1CQUFtQkYsZUFBZXhCLFdBQVd5QjtZQUVuRCxJQUFJQyxrQkFBa0I7Z0JBQ3BCLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtJQUNGLENBQUM7SUFFRCxPQUFPVztBQUNUO0FBRUEsU0FBU0osdUJBQXVCRixpQkFBaUIsRUFBRUQsWUFBWSxFQUFFO0lBQy9ELElBQU1hLFVBQVVaLGtCQUFrQmEsS0FBSyxDQUFDZCxlQUNsQ0UsMkJBQTJCVyxTQUFVLEdBQUc7SUFFOUMsT0FBT1g7QUFDVDtBQUVBLFNBQVNWLDBCQUEwQkgsb0JBQW9CLEVBQUVDLGVBQWUsRUFBRTtJQUN4RSxJQUFJQyw4QkFBOEIsS0FBSztJQUV2QyxJQUFNd0IsV0FBV3pCLGdCQUFnQjBCLFdBQVcsSUFDdENDLGdCQUFnQjVCLHFCQUFxQjJCLFdBQVcsSUFBSSxHQUFHO0lBRTdELElBQUlELGFBQWFFLGVBQWU7UUFDOUIsSUFBTUMsYUFBYTVCLGdCQUFnQjZCLGFBQWEsSUFDMUNDLGtCQUFrQi9CLHFCQUFxQjhCLGFBQWEsSUFDcERiLFFBQVFZLFlBQ1JiLGFBQWFlLGlCQUNiYixvQkFBb0JILGdCQUFnQkMsWUFBWUM7UUFFdERmLDhCQUE4QmdCLG1CQUFtQixHQUFHO0lBQ3RELENBQUM7SUFFRCxPQUFPaEI7QUFDVCJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3N0ZXAvcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi9zdGF0ZW1lbnQvcXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG1hdGNoTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbm9kZVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL2Rlcml2YXRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL3F1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByb29mKHByb29mTm9kZSwgY29uY2x1c2lvbiwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKHByb29mTm9kZSk7XG5cbiAgY29uc3QgZGVyaXZhdGlvbk5vZGUgPSBkZXJpdmF0aW9uTm9kZVF1ZXJ5KHByb29mTm9kZSksXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKTtcblxuICBsZXQgZGVyaXZhdGlvblZlcmlmaWVkID0gZmFsc2UsXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGRlcml2YXRpb25WZXJpZmllZCA9IHZlcmlmeURlcml2YXRpb24oZGVyaXZhdGlvbk5vZGUsIHByb29mQ29udGV4dCk7XG4gIH1cblxuICBpZiAocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGxldCBkZXJpdmVkO1xuXG4gICAgZGVyaXZlZCA9IHRydWU7XG5cbiAgICBwcm9vZkNvbnRleHQuc2V0RGVyaXZlZChkZXJpdmVkKTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICBkZXJpdmVkID0gZmFsc2U7XG5cbiAgICBwcm9vZkNvbnRleHQuc2V0RGVyaXZlZChkZXJpdmVkKTtcblxuICAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgcHJvb2ZDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkZXJpdmF0aW9uVmVyaWZpZWQgfHwgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBsYXN0UHJvb2ZTdGVwID0gcHJvb2ZDb250ZXh0LmdldExhc3RQcm9vZlN0ZXAoKSxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBsYXN0UHJvb2ZTdGVwLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGVwLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBjb25jbHVzaW9uU3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb24uZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICAgIG5vZGVBID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIG5vZGVCID0gY29uY2x1c2lvblN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IG1hdGNoTm9kZShub2RlQSwgbm9kZUIpO1xuXG4gICAgcHJvb2ZWZXJpZmllZCA9IG5vZGVNYXRjaGVzOyAgLy8vXG4gIH1cblxuICBwcm9vZlZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKTtcblxuICByZXR1cm4gcHJvb2ZWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlQcm9vZiIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRlcml2YXRpb25Ob2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJwcm9vZk5vZGUiLCJjb25jbHVzaW9uIiwicHJvb2ZDb250ZXh0IiwicHJvb2ZWZXJpZmllZCIsImJlZ2luIiwiZGVyaXZhdGlvbk5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiZGVyaXZhdGlvblZlcmlmaWVkIiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlEZXJpdmF0aW9uIiwiZGVyaXZlZCIsInNldERlcml2ZWQiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJhZGRQcm9vZlN0ZXAiLCJsYXN0UHJvb2ZTdGVwIiwiZ2V0TGFzdFByb29mU3RlcCIsImdldFN0YXRlbWVudE5vZGUiLCJjb25jbHVzaW9uU3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsImNvbXBsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXdCQTs7OzBEQVhGOytEQUNPOzhEQUNRO29CQUVYO3FCQUNBOzs7Ozs7QUFFMUIsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLG1DQUMvQkMsc0JBQXNCRCxJQUFBQSxnQkFBUyxFQUFDLHVCQUNoQ0UsOEJBQThCRixJQUFBQSxnQkFBUyxFQUFDO0FBRS9CLFNBQVNGLFlBQVlLLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxZQUFZLEVBQUU7SUFDdkUsSUFBSUMsZ0JBQWdCLEtBQUs7SUFFekJELGFBQWFFLEtBQUssQ0FBQ0o7SUFFbkIsSUFBTUssaUJBQWlCUCxvQkFBb0JFLFlBQ3JDTSx5QkFBeUJQLDRCQUE0QkM7SUFFM0QsSUFBSU8scUJBQXFCLEtBQUssRUFDMUJDLDZCQUE2QixLQUFLO0lBRXRDLElBQUlILG1CQUFtQixJQUFJLEVBQUU7UUFDM0JFLHFCQUFxQkUsSUFBQUEsbUJBQWdCLEVBQUNKLGdCQUFnQkg7SUFDeEQsQ0FBQztJQUVELElBQUlJLDJCQUEyQixJQUFJLEVBQUU7UUFDbkMsSUFBSUk7UUFFSkEsVUFBVSxJQUFJO1FBRWRSLGFBQWFTLFVBQVUsQ0FBQ0Q7UUFFeEJGLDZCQUE2QkksSUFBQUEsa0JBQXdCLEVBQUNOLHdCQUF3Qko7UUFFOUVRLFVBQVUsS0FBSztRQUVmUixhQUFhUyxVQUFVLENBQUNEO1FBRXhCLElBQUlGLDRCQUE0QjtZQUM5QixJQUFNSyxnQkFBZ0JqQixtQkFBbUJVLHlCQUNuQ1EsWUFBWUMsY0FBUyxDQUFDQyxpQkFBaUIsQ0FBQ0g7WUFFOUNYLGFBQWFlLFlBQVksQ0FBQ0g7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJUCxzQkFBc0JDLDRCQUE0QjtRQUNwRCxJQUFNVSxnQkFBZ0JoQixhQUFhaUIsZ0JBQWdCLElBQzdDTCxhQUFZSSxlQUNaTCxpQkFBZ0JDLFdBQVVNLGdCQUFnQixJQUMxQ0MsMEJBQTBCcEIsV0FBV21CLGdCQUFnQixJQUNyREUsUUFBUVQsZ0JBQ1JVLFFBQVFGLHlCQUNSRyxjQUFjQyxJQUFBQSxlQUFTLEVBQUNILE9BQU9DO1FBRXJDcEIsZ0JBQWdCcUIsYUFBYyxHQUFHO0lBQ25DLENBQUM7SUFFRHJCLGdCQUNFRCxhQUFhd0IsUUFBUSxDQUFDMUIsYUFDcEJFLGFBQWF3QixRQUFRLENBQUMxQixVQUFVO0lBRXBDLE9BQU9HO0FBQ1QifQ==
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _statement = /*#__PURE__*/ _interopRequireDefault(require("../../verify/statement"));
12
- var _assertion = /*#__PURE__*/ _interopRequireDefault(require("../../assertion"));
13
12
  var _query = require("../../utilities/query");
14
13
  var _string = require("../../utilities/string");
15
14
  function _interopRequireDefault(obj) {
@@ -29,7 +28,7 @@ function verifyUnqualifiedStatement(unqualifiedStatementNode, proofContext) {
29
28
  if (statementVerified) {
30
29
  var derived = proofContext.isDerived();
31
30
  if (derived) {
32
- var assertion = _assertion.default.fromStatementNode(statementNode), assertionMatches = proofContext.matchAssertion(assertion);
31
+ var assertionMatches = proofContext.matchStatement(statementNode);
33
32
  unqualifiedStatementVerified = assertionMatches; ///
34
33
  } else {
35
34
  unqualifiedStatementVerified = true;
@@ -43,4 +42,4 @@ function verifyUnqualifiedStatement(unqualifiedStatementNode, proofContext) {
43
42
  return unqualifiedStatementVerified;
44
43
  }
45
44
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi8uLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uLy4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4odW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSBwcm9vZkNvbnRleHQuaXNEZXJpdmVkKCk7XG5cbiAgICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGlvbiA9IEFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgYXNzZXJ0aW9uTWF0Y2hlcyA9IHByb29mQ29udGV4dC5tYXRjaEFzc2VydGlvbihhc3NlcnRpb24pO1xuXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBhc3NlcnRpb25NYXRjaGVzOyAgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIHByb29mQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyB1bnF1YWxpZmllZCBzdGF0ZW1lbnQuYCk7XG4gIH1cblxuICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicHJvb2ZDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImRlcml2ZWQiLCJpc0Rlcml2ZWQiLCJhc3NlcnRpb24iLCJBc3NlcnRpb24iLCJmcm9tU3RhdGVtZW50Tm9kZSIsImFzc2VydGlvbk1hdGNoZXMiLCJtYXRjaEFzc2VydGlvbiIsImluZm8iLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7OERBVEk7OERBRU47cUJBRUk7c0JBQ0c7Ozs7OztBQUU3QixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0YsMkJBQTJCRyx3QkFBd0IsRUFBRUMsWUFBWSxFQUFFO0lBQ3pGLElBQUlDLCtCQUErQixLQUFLO0lBRXhDRCxhQUFhRSxLQUFLLENBQUNIO0lBRW5CLElBQU1JLDZCQUE2QkMsSUFBQUEsb0JBQVksRUFBQ0w7SUFFaERDLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUE0QyxPQUEzQkYsNEJBQTJCO0lBRWhFLElBQU1HLGdCQUFnQlQsbUJBQW1CRTtJQUV6QyxJQUFJTyxrQkFBa0IsSUFBSSxFQUFFO1FBQzFCLElBQU1DLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0YsZUFBZU47UUFFekQsSUFBSU8sbUJBQW1CO1lBQ3JCLElBQU1FLFVBQVVULGFBQWFVLFNBQVM7WUFFdEMsSUFBSUQsU0FBUztnQkFDWCxJQUFNRSxZQUFZQyxrQkFBUyxDQUFDQyxpQkFBaUIsQ0FBQ1AsZ0JBQ3hDUSxtQkFBbUJkLGFBQWFlLGNBQWMsQ0FBQ0o7Z0JBRXJEViwrQkFBK0JhLGtCQUFtQixHQUFHO1lBQ3ZELE9BQU87Z0JBQ0xiLCtCQUErQixJQUFJO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLDhCQUE4QjtRQUNoQ0QsYUFBYWdCLElBQUksQ0FBQyxBQUFDLGlCQUEyQyxPQUEzQmIsNEJBQTJCO0lBQ2hFLENBQUM7SUFFREYsK0JBQ0VELGFBQWFpQixRQUFRLENBQUNsQiw0QkFDcEJDLGFBQWFrQixJQUFJLENBQUNuQix5QkFBeUI7SUFFL0MsT0FBT0U7QUFDVCJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi8uLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHByb29mQ29udGV4dC5iZWdpbih1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgcHJvb2ZDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgdW5xdWFsaWZpZWQgc3RhdGVtZW50Li4uYCk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgZGVyaXZlZCA9IHByb29mQ29udGV4dC5pc0Rlcml2ZWQoKTtcblxuICAgICAgaWYgKGRlcml2ZWQpIHtcbiAgICAgICAgY29uc3QgYXNzZXJ0aW9uTWF0Y2hlcyA9IHByb29mQ29udGV4dC5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gYXNzZXJ0aW9uTWF0Y2hlczsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBwcm9vZkNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke3VucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgdW5xdWFsaWZpZWQgc3RhdGVtZW50LmApO1xuICB9XG5cbiAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInByb29mQ29udGV4dCIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJiZWdpbiIsInVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJkZXJpdmVkIiwiaXNEZXJpdmVkIiwiYXNzZXJ0aW9uTWF0Y2hlcyIsIm1hdGNoU3RhdGVtZW50IiwiaW5mbyIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7Ozs4REFQSTtxQkFFRjtzQkFDRzs7Ozs7O0FBRTdCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRiwyQkFBMkJHLHdCQUF3QixFQUFFQyxZQUFZLEVBQUU7SUFDekYsSUFBSUMsK0JBQStCLEtBQUs7SUFFeENELGFBQWFFLEtBQUssQ0FBQ0g7SUFFbkIsSUFBTUksNkJBQTZCQyxJQUFBQSxvQkFBWSxFQUFDTDtJQUVoREMsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQTRDLE9BQTNCRiw0QkFBMkI7SUFFaEUsSUFBTUcsZ0JBQWdCVCxtQkFBbUJFO0lBRXpDLElBQUlPLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDRixlQUFlTjtRQUV6RCxJQUFJTyxtQkFBbUI7WUFDckIsSUFBTUUsVUFBVVQsYUFBYVUsU0FBUztZQUV0QyxJQUFJRCxTQUFTO2dCQUNYLElBQU1FLG1CQUFtQlgsYUFBYVksY0FBYyxDQUFDTjtnQkFFckRMLCtCQUErQlUsa0JBQW1CLEdBQUc7WUFDdkQsT0FBTztnQkFDTFYsK0JBQStCLElBQUk7WUFDckMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsOEJBQThCO1FBQ2hDRCxhQUFhYSxJQUFJLENBQUMsQUFBQyxpQkFBMkMsT0FBM0JWLDRCQUEyQjtJQUNoRSxDQUFDO0lBRURGLCtCQUNFRCxhQUFhYyxRQUFRLENBQUNmLDRCQUNwQkMsYUFBYWUsSUFBSSxDQUFDaEIseUJBQXlCO0lBRS9DLE9BQU9FO0FBQ1QifQ==
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.469",
4
+ "version": "0.0.471",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -175,16 +175,16 @@ export default class FileContext {
175
175
  return constructors;
176
176
  }
177
177
 
178
- getAssertions() {
179
- const assertions = []; ///
178
+ getProofSteps() {
179
+ const proofSteps = []; ///
180
180
 
181
- return assertions;
181
+ return proofSteps;
182
182
  }
183
183
 
184
- getMetaAssertions() {
185
- const metaAssertions = []; ///
184
+ getMetaproofSteps() {
185
+ const metaproofSteps = []; ///
186
186
 
187
- return metaAssertions;
187
+ return metaproofSteps;
188
188
  }
189
189
 
190
190
  findTypeByTypeName(typeName) {
@@ -7,10 +7,10 @@ import callbacksMixins from "../mixins/callbacks";
7
7
  import { last } from "../utilities/array";
8
8
 
9
9
  class MetaproofContext {
10
- constructor(context, derived, metaAssertions) {
10
+ constructor(context, derived, metaproofSteps) {
11
11
  this.context = context;
12
12
  this.derived = derived;
13
- this.metaAssertions = metaAssertions;
13
+ this.metaproofSteps = metaproofSteps;
14
14
  }
15
15
 
16
16
  getContext() {
@@ -21,63 +21,60 @@ class MetaproofContext {
21
21
  return this.derived;
22
22
  }
23
23
 
24
- getMetaAssertions() {
25
- let metaAssertions = this.context.getMetaAssertions();
24
+ getMetaproofSteps() {
25
+ let metaproofSteps = this.context.getMetaproofSteps();
26
26
 
27
- metaAssertions = [ ///
28
- ...metaAssertions,
29
- ...this.metaAssertions
27
+ metaproofSteps = [ ///
28
+ ...metaproofSteps,
29
+ ...this.metaproofSteps
30
30
  ];
31
31
 
32
- return metaAssertions;
32
+ return metaproofSteps;
33
33
  }
34
34
 
35
- getLastMetaAssertion() {
36
- let lastMetaAssertion = null;
35
+ getLastMetaproofStep() {
36
+ let lastMetaproofStep = null;
37
37
 
38
- const metaAssertionsLength = this.metaAssertions.length;
38
+ const metaproofStepsLength = this.metaproofSteps.length;
39
39
 
40
- if (metaAssertionsLength > 0) {
41
- lastMetaAssertion = last(this.metaAssertions);
40
+ if (metaproofStepsLength > 0) {
41
+ lastMetaproofStep = last(this.metaproofSteps);
42
42
  }
43
43
 
44
- return lastMetaAssertion;
44
+ return lastMetaproofStep;
45
45
  }
46
46
 
47
47
  setDerived(derived) {
48
48
  this.derived = derived;
49
49
  }
50
50
 
51
- addMetaAssertion(metaAssertion) {
52
- this.metaAssertions.push(metaAssertion);
51
+ addMetaproofStep(metaproofStep) {
52
+ this.metaproofSteps.push(metaproofStep);
53
53
  }
54
54
 
55
- matchMetaAssertion(metaAssertion) {
56
- let metaAssertionMatches;
55
+ matchMetastatement(metastatementNode) {
56
+ let metastatementMatches;
57
57
 
58
- const metaAssertionB = metaAssertion; ///
58
+ metastatementMatches = this.metaproofSteps.some((metaproofStep) => {
59
+ metastatementMatches = metaproofStep.matchMetastatement(metastatementNode);
59
60
 
60
- metaAssertionMatches = this.metaAssertions.some((metaAssertion) => {
61
- const metaAssertionA = metaAssertion, ///
62
- matches = metaAssertionA.match(metaAssertionB);
63
-
64
- if (matches) {
61
+ if (metastatementMatches) {
65
62
  return true;
66
63
  }
67
64
  });
68
65
 
69
- if (!metaAssertionMatches) {
70
- metaAssertionMatches = this.context.matchMetaAssertion(metaAssertion);
66
+ if (!metastatementMatches) {
67
+ metastatementMatches = this.context.matchMetastatement(metastatementNode);
71
68
  }
72
69
 
73
- return metaAssertionMatches;
70
+ return metastatementMatches;
74
71
  }
75
72
 
76
73
  static fromFileContext(fileContext) {
77
74
  const context = fileContext, ///
78
75
  derived = false,
79
- metaAssertions = [],
80
- metaproofContext = new MetaproofContext(context, derived, metaAssertions);
76
+ metaproofSteps = [],
77
+ metaproofContext = new MetaproofContext(context, derived, metaproofSteps);
81
78
 
82
79
  return metaproofContext;
83
80
  }
@@ -85,9 +82,9 @@ class MetaproofContext {
85
82
  static fromMetaproofContext(metaproofContext) {
86
83
  const context = metaproofContext, ///
87
84
  derived = false,
88
- metaAssertions = [];
85
+ metaproofSteps = [];
89
86
 
90
- metaproofContext = new MetaproofContext(context, derived, metaAssertions); ///
87
+ metaproofContext = new MetaproofContext(context, derived, metaproofSteps); ///
91
88
 
92
89
  return metaproofContext;
93
90
  }
@@ -4,14 +4,14 @@ import fileMixins from "../mixins/file";
4
4
  import loggingMixins from "../mixins/logging";
5
5
  import callbacksMixins from "../mixins/callbacks";
6
6
 
7
- import { push } from "../utilities/array";
7
+ import { push, last } from "../utilities/array";
8
8
 
9
9
  class ProofContext {
10
- constructor(context, derived, variables, assertions) {
10
+ constructor(context, derived, variables, proofSteps) {
11
11
  this.context = context;
12
12
  this.derived = derived;
13
13
  this.variables = variables;
14
- this.assertions = assertions;
14
+ this.proofSteps = proofSteps;
15
15
  }
16
16
 
17
17
  getContext() {
@@ -22,15 +22,15 @@ class ProofContext {
22
22
  return this.derived;
23
23
  }
24
24
 
25
- getAssertions() {
26
- let assertions = this.context.getAssertions();
25
+ getProofSteps() {
26
+ let proofSteps = this.context.getProofSteps();
27
27
 
28
- assertions = [
29
- ...assertions,
30
- ...this.assertions
28
+ proofSteps = [
29
+ ...proofSteps,
30
+ ...this.proofSteps
31
31
  ];
32
32
 
33
- return assertions;
33
+ return proofSteps;
34
34
  }
35
35
 
36
36
  getTypes() { return this.context.getTypes(); }
@@ -57,6 +57,12 @@ class ProofContext {
57
57
  return variables;
58
58
  }
59
59
 
60
+ getLastProofStep() {
61
+ const lastProofStep = last(this.proofSteps);
62
+
63
+ return lastProofStep;
64
+ }
65
+
60
66
  setDerived(derived) {
61
67
  this.derived = derived;
62
68
  }
@@ -65,29 +71,26 @@ class ProofContext {
65
71
  this.variables.push(variable);
66
72
  }
67
73
 
68
- addAssertion(assertion) {
69
- this.assertions.push(assertion);
74
+ addProofStep(proofStep) {
75
+ this.proofSteps.push(proofStep);
70
76
  }
71
77
 
72
- matchAssertion(assertion) {
73
- let assertionMatches;
74
-
75
- const assertionB = assertion; ///
78
+ matchStatement(statementNode) {
79
+ let statementMatches;
76
80
 
77
- assertionMatches = this.assertions.some((assertion) => {
78
- const assertionA = assertion, ///
79
- matches = assertionA.match(assertionB);
81
+ statementMatches = this.proofSteps.some((proofStep) => {
82
+ statementMatches = proofStep.matchStatement(statementNode);
80
83
 
81
- if (matches) {
84
+ if (statementMatches) {
82
85
  return true;
83
86
  }
84
87
  });
85
88
 
86
- if (!assertionMatches) {
87
- assertionMatches = this.context.matchAssertion(assertion);
89
+ if (!statementMatches) {
90
+ statementMatches = this.context.matchStatement(statementNode);
88
91
  }
89
92
 
90
- return assertionMatches;
93
+ return statementMatches;
91
94
  }
92
95
 
93
96
  findVariableByVariableName(variableName) {
@@ -131,8 +134,8 @@ class ProofContext {
131
134
  const context = fileContext, ///
132
135
  derived = false,
133
136
  variables = [],
134
- assertions = [],
135
- proofContext = new ProofContext(context, derived, variables, assertions);
137
+ proofSteps = [],
138
+ proofContext = new ProofContext(context, derived, variables, proofSteps);
136
139
 
137
140
  return proofContext;
138
141
  }
@@ -141,9 +144,9 @@ class ProofContext {
141
144
  const context = proofContext, ///
142
145
  derived = false,
143
146
  variables = [],
144
- assertions = [];
147
+ proofSteps = [];
145
148
 
146
- proofContext = new ProofContext(context, derived, variables, assertions);
149
+ proofContext = new ProofContext(context, derived, variables, proofSteps);
147
150
 
148
151
  return proofContext;
149
152
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { matchBracketedMetastatementChildNode, bracketedMetastatementChildNodeFromChildNodes } from "./utilities/metastatement";
3
+ import { matchBracketedMetastatementChildNode, bracketedMetastatementChildNodeFromChildNodes } from "./utilities/metaAssertion";
4
4
 
5
5
  export default class MetaSubstitution {
6
6
  constructor(metavariableName, nodes) {
package/src/rule.js CHANGED
@@ -51,10 +51,19 @@ export default class Rule {
51
51
 
52
52
  metastatementNatches = conclusionMatches; ///
53
53
  } else {
54
- const metaAssertions = metaproofContext.getMetaAssertions();
54
+ const metaproofSteps = metaproofContext.getMetaproofSteps();
55
55
 
56
- metastatementNatches = someSubArray(metaAssertions, premisesLength, (metaAssertions) => {
57
- const premisesMatchConclusion = matchPremisesAndConclusion(this.premises, this.conclusion, metaAssertions, metastatementNode);
56
+ metastatementNatches = someSubArray(metaproofSteps, premisesLength, (metaproofSteps) => {
57
+ let premisesMatchConclusion = false;
58
+
59
+ const metaSubstitutions = [],
60
+ premisesMatches = matchPremises(this.premises, metaproofSteps, metaSubstitutions);
61
+
62
+ if (premisesMatches) {
63
+ const conclusionMatches = matchConclusion(this.conclusion, metastatementNode, metaSubstitutions);
64
+
65
+ premisesMatchConclusion = conclusionMatches; ///
66
+ }
58
67
 
59
68
  if (premisesMatchConclusion) {
60
69
  return true;
@@ -136,10 +145,10 @@ export default class Rule {
136
145
  }
137
146
  }
138
147
 
139
- function matchPremise(premise, metaAssertions, metaSubstitutions) {
140
- const metaAssertion = prune(metaAssertions, (metaAssertion) => {
141
- const metaSubproofNode = metaAssertion.getMetaSubproofNode(),
142
- metastatementNode = metaAssertion.getMetastatementNode()
148
+ function matchPremise(premise, metaproofSteps, metaSubstitutions) {
149
+ const metaproofStep = prune(metaproofSteps, (metaproofStep) => {
150
+ const metaSubproofNode = metaproofStep.getMetaSubproofNode(),
151
+ metastatementNode = metaproofStep.getMetastatementNode()
143
152
 
144
153
  if (metaSubproofNode !== null) {
145
154
  const metaSubProofMatches = premise.matchMetaSubproofNode(metaSubproofNode, metaSubstitutions);
@@ -156,17 +165,16 @@ function matchPremise(premise, metaAssertions, metaSubstitutions) {
156
165
  return true;
157
166
  }
158
167
  }
159
-
160
168
  }) || null;
161
169
 
162
- const premiseMatches = (metaAssertion !== null);
170
+ const premiseMatches = (metaproofStep !== null);
163
171
 
164
172
  return premiseMatches;
165
173
  }
166
174
 
167
- function matchPremises(premise, metaAssertions, metaSubstitutions) {
175
+ function matchPremises(premise, metaproofSteps, metaSubstitutions) {
168
176
  const premisesMatches = premise.every((premise) => {
169
- const premiseMatches = matchPremise(premise, metaAssertions, metaSubstitutions);
177
+ const premiseMatches = matchPremise(premise, metaproofSteps, metaSubstitutions);
170
178
 
171
179
  if (premiseMatches) {
172
180
  return true;
@@ -182,18 +190,3 @@ function matchConclusion(conclusion, metastatementNode, metaSubstitutions) {
182
190
 
183
191
  return conclusionMatches;
184
192
  }
185
-
186
- function matchPremisesAndConclusion(premises, conclusion, metaAssertions, metastatementNode) {
187
- let premisesMatchConclusion = false;
188
-
189
- const metaSubstitutions = [],
190
- premisesMatches = matchPremises(premises, metaAssertions, metaSubstitutions);
191
-
192
- if (premisesMatches) {
193
- const conclusionMatches = matchConclusion(conclusion, metastatementNode, metaSubstitutions);
194
-
195
- premisesMatchConclusion = conclusionMatches; ///
196
- }
197
-
198
- return premisesMatchConclusion;
199
- }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ import { first, second } from "../utilities/array";
4
+ import { nodeQuery, nodesQuery } from "../utilities/query";
5
+
6
+ import { matchTopmostMetaAssertionMetastatementNode } from "../utilities/metaAssertion";
7
+
8
+ const metastatementNodesQuery = nodesQuery("/metaSubproofAssertion/metastatement"),
9
+ metaSubproofAssertionNodeQuery = nodeQuery("/metastatement/metaSubproofAssertion"),
10
+ qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = nodesQuery("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
11
+
12
+ export default class MetaproofStep {
13
+ constructor(metaSubproofNode, metastatementNode) {
14
+ this.metaSubproofNode = metaSubproofNode;
15
+ this.metastatementNode = metastatementNode;
16
+ }
17
+
18
+ getMetaSubproofNode() {
19
+ return this.metaSubproofNode;
20
+ }
21
+
22
+ getMetastatementNode() {
23
+ return this.metastatementNode;
24
+ }
25
+
26
+ matchMetastatement(metastatementNode) {
27
+ let metastatementMatches;
28
+
29
+ const metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(metastatementNode);
30
+
31
+ if (metaSubproofAssertionNode !== null) {
32
+ const metaSubproofAssertionMatches = this.matchMetaSubproofAssertion(metaSubproofAssertionNode);
33
+
34
+ metastatementMatches = metaSubproofAssertionMatches; ///
35
+ } else {
36
+ const metastatementsMatch = this.matchMetastatements(metastatementNode);
37
+
38
+ metastatementMatches = metastatementsMatch; //
39
+ }
40
+
41
+ return metastatementMatches;
42
+ }
43
+
44
+ matchMetastatements(metastatementNode) {
45
+ let metastatementsMatch = false;
46
+
47
+ if (this.metastatementNode !== null) {
48
+ const topmostMetastatementNode = metastatementNode, ///
49
+ topmostMetaAssertionMetastatementNode = this.metastatementNode, ///
50
+ topmostMetaAssertionMetastatementNodeMatches = matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode),
51
+ metastatementNodeMatches = topmostMetaAssertionMetastatementNodeMatches; ///
52
+
53
+ return metastatementNodeMatches;
54
+ }
55
+
56
+ return metastatementsMatch;
57
+ }
58
+
59
+ matchMetaSubproofAssertion(metaSubproofAssertionNode) {
60
+ let metaSubproofAssertionMatches = false;
61
+
62
+ if (this.metaSubproofNode !== null) {
63
+ const metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode),
64
+ firstMetaSubproofAssertionMetastatementNode = first(metaSubproofAssertionMetastatementNodes),
65
+ qualifiedOrUnqualifiedMetastatementMetastatementNodes = qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery(this.metaSubproofNode),
66
+ firstQualifiedOrUnqualifiedMetastatementMetastatementNode = first(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
67
+
68
+ const topmostMetastatementNode = firstMetaSubproofAssertionMetastatementNode, ///
69
+ topmostMetaAssertionMetastatementNode = firstQualifiedOrUnqualifiedMetastatementMetastatementNode, ///
70
+ topmostMetaAssertionMetastatementNodeMatches = matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode);
71
+
72
+ if (topmostMetaAssertionMetastatementNodeMatches) {
73
+ const secondMetaSubproofAssertionMetastatementNode = second(metaSubproofAssertionMetastatementNodes),
74
+ secondQualifiedOrUnqualifiedMetastatementMetastatementNode = second(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
75
+
76
+ const topmostMetastatementNode = secondMetaSubproofAssertionMetastatementNode, ///
77
+ topmostMetaAssertionMetastatementNode = secondQualifiedOrUnqualifiedMetastatementMetastatementNode, ///
78
+ topmostMetaAssertionMetastatementNodeMatches = matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode);
79
+
80
+ metaSubproofAssertionMatches = topmostMetaAssertionMetastatementNodeMatches; ///
81
+ }
82
+ }
83
+
84
+ return metaSubproofAssertionMatches;
85
+ }
86
+
87
+ static fromMetaSubproofNode(metaSubproofNode) {
88
+ const metastatementNode = null,
89
+ metaProofStep = new MetaproofStep(metaSubproofNode, metastatementNode);
90
+
91
+ return metaProofStep;
92
+ }
93
+
94
+ static fromMetastatementNode(metastatementNode) {
95
+ const metaSubproofNode = null,
96
+ metaProofStep = new MetaproofStep(metaSubproofNode, metastatementNode);
97
+
98
+ return metaProofStep;
99
+ }
100
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ export default class ProofStep {
4
+ constructor(subproofNode, statementNode) {
5
+ this.subproofNode = subproofNode;
6
+ this.statementNode = statementNode;
7
+ }
8
+
9
+ getSubproofNode() {
10
+ return this.subproofNode;
11
+ }
12
+
13
+ getStatementNode() {
14
+ return this.statementNode;
15
+ }
16
+
17
+ static fromSubproofNode(subproofNode) {
18
+ const statementNode = null,
19
+ metaProofStep = new ProofStep(subproofNode, statementNode);
20
+
21
+ return metaProofStep;
22
+ }
23
+
24
+ static fromStatementNode(statementNode) {
25
+ const subproofNode = null,
26
+ metaProofStep = new ProofStep(subproofNode, statementNode);
27
+
28
+ return metaProofStep;
29
+ }
30
+ }
@@ -6,7 +6,7 @@ import permutationsMatrix from "../permutationsMatrix";
6
6
 
7
7
  import { MAXIMUM_INDEXES_LENGTH, MAXIMUM_PERMUTATION_LENGTH } from "../constants";
8
8
 
9
- export const { front, first, second, third, last, push, prune, filter } = arrayUtilities;
9
+ export const { first, second, third, last, push, prune, filter } = arrayUtilities;
10
10
 
11
11
  export function someSubArray(array, subArrayLength, callback) {
12
12
  let found = false;