occam-verify-cli 0.0.508 → 0.0.509

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 (35) hide show
  1. package/lib/assertion/type.js +90 -0
  2. package/lib/combinator.js +7 -1
  3. package/lib/verify/assertion/type.js +19 -23
  4. package/lib/verify/conclusion.js +6 -5
  5. package/lib/verify/consequence.js +6 -5
  6. package/lib/verify/derivation.js +2 -2
  7. package/lib/verify/metastatement/qualified.js +19 -5
  8. package/lib/verify/metastatement/unqualified.js +16 -4
  9. package/lib/verify/metastatement.js +3 -3
  10. package/lib/verify/premise.js +6 -5
  11. package/lib/verify/ruleDerivation.js +2 -2
  12. package/lib/verify/statement/qualified.js +9 -8
  13. package/lib/verify/statement/unqualified.js +16 -4
  14. package/lib/verify/statement.js +106 -9
  15. package/lib/verify/supposition.js +11 -11
  16. package/package.json +3 -3
  17. package/src/assertion/type.js +46 -0
  18. package/src/combinator.js +4 -0
  19. package/src/verify/assertion/type.js +24 -25
  20. package/src/verify/conclusion.js +11 -5
  21. package/src/verify/consequence.js +10 -4
  22. package/src/verify/derivation.js +4 -2
  23. package/src/verify/metastatement/qualified.js +20 -6
  24. package/src/verify/metastatement/unqualified.js +13 -3
  25. package/src/verify/metastatement.js +2 -2
  26. package/src/verify/premise.js +10 -4
  27. package/src/verify/ruleDerivation.js +4 -2
  28. package/src/verify/statement/qualified.js +13 -11
  29. package/src/verify/statement/unqualified.js +13 -3
  30. package/src/verify/statement.js +175 -9
  31. package/src/verify/supposition.js +16 -12
  32. package/lib/verify/metaDerivation.js +0 -63
  33. package/lib/verify/metaproof.js +0 -32
  34. package/src/verify/metaDerivation.js +0 -75
  35. package/src/verify/metaproof.js +0 -35
@@ -90,7 +90,7 @@ function verifyChild(childNode, metaproofContext) {
90
90
  }
91
91
  case _ruleNames.UNQUALIFIED_METASTATEMENT_RULE_NAME:
92
92
  {
93
- var unqualifiedMetastatementNode = childNode, unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, metaproofContext);
93
+ var derived = true, assertions = [], unqualifiedMetastatementNode = childNode, unqualifiedMetastatementVerified = (0, _unqualified.default)(unqualifiedMetastatementNode, assertions, derived, metaproofContext);
94
94
  if (unqualifiedMetastatementVerified) {
95
95
  var metastatementNode1 = metastatementNodeQuery(unqualifiedMetastatementNode), metaproofStep2 = _metaproof.default.fromMetastatementNode(metastatementNode1);
96
96
  metaproofContext.addMetaproofStep(metaproofStep2);
@@ -102,4 +102,4 @@ function verifyChild(childNode, metaproofContext) {
102
102
  return childVerified;
103
103
  }
104
104
 
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVByZW1pc2UgZnJvbSBcIi4uL3ZlcmlmeS9wcmVtaXNlXCI7XG5pbXBvcnQgTWV0YXByb29mQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9tZXRhcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvbWV0YXN0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBjaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVEZXJpdmF0aW9ufHJ1bGVTdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBwcmVtaXNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZVN1YnByb29mL3ByZW1pc2VcIiksXG4gICAgICBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgbWV0YXByb29mQ29udGV4dC5iZWdpbihydWxlRGVyaXZhdGlvbk5vZGUpO1xuXG4gIGNvbnN0IGNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzUXVlcnkocnVsZURlcml2YXRpb25Ob2RlKTtcblxuICBydWxlRGVyaXZhdGlvblZlcmlmaWVkID0gY2hpbGROb2Rlcy5ldmVyeSgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGRWZXJpZmllZCA9IHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICBpZiAoY2hpbGRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBydWxlRGVyaXZhdGlvblZlcmlmaWVkID9cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHJ1bGVEZXJpdmF0aW9uTm9kZSkgOlxuICAgICAgbWV0YXByb29mQ29udGV4dC5oYWx0KHJ1bGVEZXJpdmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVJ1bGVTdWJEZXJpdmF0aW9uKHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSwgbWV0YXByb29mQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcblxuICBtZXRhcHJvb2ZDb250ZXh0LmJlZ2luKHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSk7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgP1xuICAgIG1ldGFwcm9vZkNvbnRleHQuY29tcGxldGUocnVsZVN1YkRlcml2YXRpb25Ob2RlKSA6XG4gICAgICBtZXRhcHJvb2ZDb250ZXh0LmhhbHQocnVsZVN1YkRlcml2YXRpb25Ob2RlKTtcblxuICByZXR1cm4gcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UnVsZVN1YnByb29mKHJ1bGVTdWJwcm9vZk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbWV0YXByb29mQ29udGV4dCA9IE1ldGFwcm9vZkNvbnRleHQuZnJvbU1ldGFwcm9vZkNvbnRleHQobWV0YXByb29mQ29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHByZW1pc2VzID0gW10sXG4gICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VOb2Rlc1F1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICBwcmVtaXNlc1ZlcmlmaWVkID0gcHJlbWlzZU5vZGVzLmV2ZXJ5KChwcmVtaXNlTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByZW1pc2VWZXJpZmllZCA9IHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgIGlmIChwcmVtaXNlVmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgaWYgKHByZW1pc2VzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBydWxlU3ViRGVyaXZhdGlvbk5vZGUgPSBydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24ocnVsZVN1YkRlcml2YXRpb25Ob2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkKSB7XG4gICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJ1bGVTdWJwcm9vZlZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlDaGlsZChjaGlsZE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGNoaWxkVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlUnVsZU5hbWUgPSBjaGlsZE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICBzd2l0Y2ggKGNoaWxkTm9kZVJ1bGVOYW1lKSB7XG4gICAgY2FzZSBSVUxFX1NVQlBST09GX1JVTEVfTkFNRToge1xuICAgICAgY29uc3QgcnVsZVN1YnByb29mTm9kZSA9IGNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgcnVsZVN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChydWxlU3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gTWV0YXByb29mU3RlcC5mcm9tUnVsZVN1YnByb29mTm9kZShydWxlU3VicHJvb2ZOb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBjaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50KHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICBtZXRhcHJvb2ZTdGVwID0gTWV0YXByb29mU3RlcC5mcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIG1ldGFwcm9vZkNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgICAgICBjaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNoaWxkVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZURlcml2YXRpb24iLCJjaGlsZE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicHJlbWlzZU5vZGVzUXVlcnkiLCJtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkiLCJydWxlRGVyaXZhdGlvbk5vZGUiLCJtZXRhcHJvb2ZDb250ZXh0IiwicnVsZURlcml2YXRpb25WZXJpZmllZCIsImJlZ2luIiwiY2hpbGROb2RlcyIsImV2ZXJ5IiwiY2hpbGROb2RlIiwiY2hpbGRWZXJpZmllZCIsInZlcmlmeUNoaWxkIiwiY29tcGxldGUiLCJoYWx0IiwidmVyaWZ5UnVsZVN1YkRlcml2YXRpb24iLCJydWxlU3ViRGVyaXZhdGlvbk5vZGUiLCJydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5UnVsZVN1YnByb29mIiwicnVsZVN1YnByb29mTm9kZSIsInJ1bGVTdWJwcm9vZlZlcmlmaWVkIiwiTWV0YXByb29mQ29udGV4dCIsImZyb21NZXRhcHJvb2ZDb250ZXh0IiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwicHJlbWlzZU5vZGUiLCJwcmVtaXNlVmVyaWZpZWQiLCJ2ZXJpZnlQcmVtaXNlIiwiY2hpbGROb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsIlJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FIiwibWV0YXByb29mU3RlcCIsIk1ldGFwcm9vZlN0ZXAiLCJmcm9tUnVsZVN1YnByb29mTm9kZSIsImFkZE1ldGFwcm9vZlN0ZXAiLCJRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImZyb21NZXRhc3RhdGVtZW50Tm9kZSIsIlVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnQkE7OztlQUF3QkE7Ozs4REFkRTs0REFDQTsrREFDRzs4REFDWTtnRUFDRTtxQkFFTDt5QkFDMEU7Ozs7OztBQUVoSCxJQUFNQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsd0NBQzdCQyxvQkFBb0JELElBQUFBLGlCQUFVLEVBQUMsMEJBQy9CRSx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUMsb0VBQ25DQyw2QkFBNkJELElBQUFBLGdCQUFTLEVBQUM7QUFFOUIsU0FBU0wscUJBQXFCTyxrQkFBa0IsRUFBRUMsZ0JBQWdCLEVBQUU7SUFDakYsSUFBSUM7SUFFSkQsaUJBQWlCRSxLQUFLLENBQUNIO0lBRXZCLElBQU1JLGFBQWFWLGdCQUFnQk07SUFFbkNFLHlCQUF5QkUsV0FBV0MsS0FBSyxDQUFDLFNBQUNDLFdBQWM7UUFDdkQsSUFBTUMsZ0JBQWdCQyxZQUFZRixXQUFXTDtRQUU3QyxJQUFJTSxlQUFl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
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVByZW1pc2UgZnJvbSBcIi4uL3ZlcmlmeS9wcmVtaXNlXCI7XG5pbXBvcnQgTWV0YXByb29mQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9tZXRhcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvbWV0YXN0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBjaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVEZXJpdmF0aW9ufHJ1bGVTdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBwcmVtaXNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZVN1YnByb29mL3ByZW1pc2VcIiksXG4gICAgICBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgbWV0YXByb29mQ29udGV4dC5iZWdpbihydWxlRGVyaXZhdGlvbk5vZGUpO1xuXG4gIGNvbnN0IGNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzUXVlcnkocnVsZURlcml2YXRpb25Ob2RlKTtcblxuICBydWxlRGVyaXZhdGlvblZlcmlmaWVkID0gY2hpbGROb2Rlcy5ldmVyeSgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3QgY2hpbGRWZXJpZmllZCA9IHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICBpZiAoY2hpbGRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBydWxlRGVyaXZhdGlvblZlcmlmaWVkID9cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHJ1bGVEZXJpdmF0aW9uTm9kZSkgOlxuICAgICAgbWV0YXByb29mQ29udGV4dC5oYWx0KHJ1bGVEZXJpdmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVJ1bGVTdWJEZXJpdmF0aW9uKHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSwgbWV0YXByb29mQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcblxuICBtZXRhcHJvb2ZDb250ZXh0LmJlZ2luKHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSk7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgP1xuICAgIG1ldGFwcm9vZkNvbnRleHQuY29tcGxldGUocnVsZVN1YkRlcml2YXRpb25Ob2RlKSA6XG4gICAgICBtZXRhcHJvb2ZDb250ZXh0LmhhbHQocnVsZVN1YkRlcml2YXRpb25Ob2RlKTtcblxuICByZXR1cm4gcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5UnVsZVN1YnByb29mKHJ1bGVTdWJwcm9vZk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgbWV0YXByb29mQ29udGV4dCA9IE1ldGFwcm9vZkNvbnRleHQuZnJvbU1ldGFwcm9vZkNvbnRleHQobWV0YXByb29mQ29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHByZW1pc2VzID0gW10sXG4gICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VOb2Rlc1F1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICBwcmVtaXNlc1ZlcmlmaWVkID0gcHJlbWlzZU5vZGVzLmV2ZXJ5KChwcmVtaXNlTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByZW1pc2VWZXJpZmllZCA9IHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgIGlmIChwcmVtaXNlVmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgaWYgKHByZW1pc2VzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBydWxlU3ViRGVyaXZhdGlvbk5vZGUgPSBydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24ocnVsZVN1YkRlcml2YXRpb25Ob2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkKSB7XG4gICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJ1bGVTdWJwcm9vZlZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlDaGlsZChjaGlsZE5vZGUsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGNoaWxkVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlUnVsZU5hbWUgPSBjaGlsZE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICBzd2l0Y2ggKGNoaWxkTm9kZVJ1bGVOYW1lKSB7XG4gICAgY2FzZSBSVUxFX1NVQlBST09GX1JVTEVfTkFNRToge1xuICAgICAgY29uc3QgcnVsZVN1YnByb29mTm9kZSA9IGNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgcnVsZVN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChydWxlU3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gTWV0YXByb29mU3RlcC5mcm9tUnVsZVN1YnByb29mTm9kZShydWxlU3VicHJvb2ZOb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbWV0YXByb29mQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIGNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlRGVyaXZhdGlvbiIsImNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsInJ1bGVEZXJpdmF0aW9uTm9kZSIsIm1ldGFwcm9vZkNvbnRleHQiLCJydWxlRGVyaXZhdGlvblZlcmlmaWVkIiwiYmVnaW4iLCJjaGlsZE5vZGVzIiwiZXZlcnkiLCJjaGlsZE5vZGUiLCJjaGlsZFZlcmlmaWVkIiwidmVyaWZ5Q2hpbGQiLCJjb21wbGV0ZSIsImhhbHQiLCJ2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiIsInJ1bGVTdWJEZXJpdmF0aW9uTm9kZSIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlU3VicHJvb2YiLCJydWxlU3VicHJvb2ZOb2RlIiwicnVsZVN1YnByb29mVmVyaWZpZWQiLCJNZXRhcHJvb2ZDb250ZXh0IiwiZnJvbU1ldGFwcm9vZkNvbnRleHQiLCJwcmVtaXNlcyIsInByZW1pc2VOb2RlcyIsInByZW1pc2VzVmVyaWZpZWQiLCJwcmVtaXNlTm9kZSIsInByZW1pc2VWZXJpZmllZCIsInZlcmlmeVByZW1pc2UiLCJjaGlsZE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiUlVMRV9TVUJQUk9PRl9SVUxFX05BTUUiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsIlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwicXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIiwiVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJkZXJpdmVkIiwiYXNzZXJ0aW9ucyIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBd0JBOzs7OERBZEU7NERBQ0E7K0RBQ0c7OERBQ1k7Z0VBQ0U7cUJBRUw7eUJBQzBFOzs7Ozs7QUFFaEgsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLHdDQUM3QkMsb0JBQW9CRCxJQUFBQSxpQkFBVSxFQUFDLDBCQUMvQkUseUJBQXlCQyxJQUFBQSxnQkFBUyxFQUFDLG9FQUNuQ0MsNkJBQTZCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRTlCLFNBQVNMLHFCQUFxQk8sa0JBQWtCLEVBQUVDLGdCQUFnQixFQUFFO0lBQ2pGLElBQUlDO0lBRUpELGlCQUFpQkUsS0FBSyxDQUFDSDtJQUV2QixJQUFNSSxh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
@@ -16,7 +16,7 @@ function _interopRequireDefault(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
- var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), referenceNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/qualification!/reference!");
19
+ var referenceNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/qualification!/reference!"), statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!");
20
20
  function verifyQualifiedStatement(qualifiedStatementNode, proofContext) {
21
21
  var qualifiedStatementVerified = false;
22
22
  proofContext.begin(qualifiedStatementNode);
@@ -24,20 +24,21 @@ function verifyQualifiedStatement(qualifiedStatementNode, proofContext) {
24
24
  if (statementNode !== null) {
25
25
  var statementString = (0, _string.nodeAsString)(statementNode);
26
26
  proofContext.debug("Verifying the ".concat(statementString, " qualified statement..."));
27
+ var ruleMatchesStatement = true;
27
28
  var referenceNode = referenceNodeQuery(qualifiedStatementNode);
28
- if (referenceNode === null) {
29
- var qualified = true, statementVerified = (0, _statement.default)(statementNode, qualified, proofContext);
30
- qualifiedStatementVerified = statementVerified; ///
31
- } else {
29
+ if (referenceNode !== null) {
32
30
  var referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode), rule = proofContext.findRuleByReferenceName(referenceName);
33
31
  if (rule !== null) {
34
- var ruleMatchesStatement = rule.matchStatement(statementNode, proofContext);
35
- qualifiedStatementVerified = ruleMatchesStatement; ///
32
+ ruleMatchesStatement = rule.matchStatement(statementNode, proofContext);
36
33
  }
37
34
  }
35
+ if (ruleMatchesStatement) {
36
+ var assertions = [], statementVerified = (0, _statement.default)(statementNode, assertions, proofContext);
37
+ qualifiedStatementVerified = statementVerified; ///
38
+ }
38
39
  }
39
40
  qualifiedStatementVerified ? proofContext.complete(qualifiedStatementNode) : proofContext.halt(qualifiedStatementNode);
40
41
  return qualifiedStatementVerified;
41
42
  }
42
43
 
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHJlZmVyZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvcmVmZXJlbmNlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAke3N0YXRlbWVudFN0cmluZ30gcXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlTm9kZSA9IHJlZmVyZW5jZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChyZWZlcmVuY2VOb2RlID09PSBudWxsKSB7XG4gICAgICBjb25zdCBxdWFsaWZpZWQgPSB0cnVlLFxuICAgICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgcXVhbGlmaWVkLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHN0YXRlbWVudFZlcmlmaWVkOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVmZXJlbmNlTmFtZSA9IHJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKSxcbiAgICAgICAgICAgIHJ1bGUgPSBwcm9vZkNvbnRleHQuZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICAgIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHJ1bGVNYXRjaGVzU3RhdGVtZW50ID0gcnVsZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gcnVsZU1hdGNoZXNTdGF0ZW1lbnQ7ICAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpIDpcbiAgICAgIHByb29mQ29udGV4dC5oYWx0KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJyZWZlcmVuY2VOb2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicHJvb2ZDb250ZXh0IiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJiZWdpbiIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInJlZmVyZW5jZU5vZGUiLCJxdWFsaWZpZWQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsInJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUiLCJydWxlTWF0Y2hlc1N0YXRlbWVudCIsIm1hdGNoU3RhdGVtZW50IiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7OzhEQVJJO3NCQUVDO3FCQUM2Qjs7Ozs7O0FBRTFELElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxtQ0FDL0JDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRix5QkFBeUJJLHNCQUFzQixFQUFFQyxZQUFZLEVBQUU7SUFDckYsSUFBSUMsNkJBQTZCLEtBQUs7SUFFdENELGFBQWFFLEtBQUssQ0FBQ0g7SUFFbkIsSUFBTUksZ0JBQWdCUCxtQkFBbUJHO0lBRXpDLElBQUlJLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTUMsa0JBQWtCQyxJQUFBQSxvQkFBWSxFQUFDRjtRQUVyQ0gsYUFBYU0sS0FBSyxDQUFDLEFBQUMsaUJBQWdDLE9BQWhCRixpQkFBZ0I7UUFFcEQsSUFBTUcsZ0JBQWdCVCxtQkFBbUJDO1FBRXpDLElBQUlRLGtCQUFrQixJQUFJLEVBQUU7WUFDMUIsSUFBTUMsWUFBWSxJQUFJLEVBQ2hCQyxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNQLGVBQWVLLFdBQVdSO1lBRXBFQyw2QkFBNkJRLG1CQUFtQixHQUFHO1FBQ3JELE9BQU87WUFDTCxJQUFNRSxnQkFBZ0JDLElBQUFBLHFDQUE4QixFQUFDTCxnQkFDL0NNLE9BQU9iLGFBQWFjLHVCQUF1QixDQUFDSDtZQUVsRCxJQUFJRSxTQUFTLElBQUksRUFBRTtnQkFDakIsSUFBTUUsdUJBQXVCRixLQUFLRyxjQUFjLENBQUNiLGVBQWVIO2dCQUVoRUMsNkJBQTZCYyxzQkFBdUIsR0FBRztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRGQsNkJBQ0VELGFBQWFpQixRQUFRLENBQUNsQiwwQkFDcEJDLGFBQWFrQixJQUFJLENBQUNuQix1QkFBdUI7SUFFN0MsT0FBT0U7QUFDVCJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJlZmVyZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvcmVmZXJlbmNlIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAke3N0YXRlbWVudFN0cmluZ30gcXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gICAgbGV0IHJ1bGVNYXRjaGVzU3RhdGVtZW50ID0gdHJ1ZTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSByZWZlcmVuY2VOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAocmVmZXJlbmNlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcmVmZXJlbmNlTmFtZSA9IHJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKSxcbiAgICAgICAgICAgIHJ1bGUgPSBwcm9vZkNvbnRleHQuZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICAgIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgICAgIHJ1bGVNYXRjaGVzU3RhdGVtZW50ID0gcnVsZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChydWxlTWF0Y2hlc1N0YXRlbWVudCkge1xuICAgICAgY29uc3QgYXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgfVxuICB9XG5cbiAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50IiwicmVmZXJlbmNlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInByb29mQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJydWxlTWF0Y2hlc1N0YXRlbWVudCIsInJlZmVyZW5jZU5vZGUiLCJyZWZlcmVuY2VOYW1lIiwicmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlIiwicnVsZSIsImZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lIiwibWF0Y2hTdGF0ZW1lbnQiLCJhc3NlcnRpb25zIiwic3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBd0JBOzs7OERBUkk7c0JBRUM7cUJBQzZCOzs7Ozs7QUFFMUQsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLGtEQUMvQkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXRCLFNBQVNGLHlCQUF5Qkksc0JBQXNCLEVBQUVDLFlBQVksRUFBRTtJQUNyRixJQUFJQyw2QkFBNkIsS0FBSztJQUV0Q0QsYUFBYUUsS0FBSyxDQUFDSDtJQUVuQixJQUFNSSxnQkFBZ0JMLG1CQUFtQkM7SUFFekMsSUFBSUksa0JBQWtCLElBQUksRUFBRTtRQUMxQixJQUFNQyxrQkFBa0JDLElBQUFBLG9CQUFZLEVBQUNGO1FBRXJDSCxhQUFhTSxLQUFLLENBQUMsQUFBQyxpQkFBZ0MsT0FBaEJGLGlCQUFnQjtRQUVwRCxJQUFJRyx1QkFBdUIsSUFBSTtRQUUvQixJQUFNQyxnQkFBZ0JaLG1CQUFtQkc7UUFFekMsSUFBSVMsa0JBQWtCLElBQUksRUFBRTtZQUMxQixJQUFNQyxnQkFBZ0JDLElBQUFBLHFDQUE4QixFQUFDRixnQkFDL0NHLE9BQU9YLGFBQWFZLHVCQUF1QixDQUFDSDtZQUVsRCxJQUFJRSxTQUFTLElBQUksRUFBRTtnQkFDakJKLHVCQUF1QkksS0FBS0UsY0FBYyxDQUFDVixlQUFlSDtZQUM1RCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUlPLHNCQUFzQjtZQUN4QixJQUFNTyxhQUFhLEVBQUUsRUFDZkMsb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDYixlQUFlVyxZQUFZZDtZQUVyRUMsNkJBQTZCYyxtQkFBbUIsR0FBRztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVEZCw2QkFDRUQsYUFBYWlCLFFBQVEsQ0FBQ2xCLDBCQUNwQkMsYUFBYWtCLElBQUksQ0FBQ25CLHVCQUF1QjtJQUU3QyxPQUFPRTtBQUNUIn0=
@@ -8,21 +8,33 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyUnqualifiedStatement;
9
9
  }
10
10
  });
11
+ var _statement = /*#__PURE__*/ _interopRequireDefault(require("../statement"));
11
12
  var _query = require("../../utilities/query");
12
13
  var _string = require("../../utilities/string");
14
+ function _interopRequireDefault(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
13
19
  var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!");
14
- function verifyUnqualifiedStatement(unqualifiedStatementNode, proofContext) {
20
+ function verifyUnqualifiedStatement(unqualifiedStatementNode, assertions, derived, proofContext) {
15
21
  var unqualifiedStatementVerified = false;
16
22
  proofContext.begin(unqualifiedStatementNode);
17
23
  var statementNode = statementNodeQuery(unqualifiedStatementNode);
18
24
  if (statementNode !== null) {
19
25
  var statementString = (0, _string.nodeAsString)(statementNode);
20
26
  proofContext.debug("Verifying the ".concat(statementString, " unqualified statement..."));
21
- var assertionMatches = proofContext.matchStatement(statementNode);
22
- unqualifiedStatementVerified = assertionMatches; ///
27
+ var statementMatches = true;
28
+ if (derived) {
29
+ statementMatches = proofContext.matchStatement(statementNode);
30
+ }
31
+ if (statementMatches) {
32
+ var statementVerified = (0, _statement.default)(statementNode, assertions, proofContext);
33
+ unqualifiedStatementVerified = statementVerified; ///
34
+ }
23
35
  }
24
36
  unqualifiedStatementVerified ? proofContext.complete(unqualifiedStatementNode) : proofContext.halt(unqualifiedStatementNode);
25
37
  return unqualifiedStatementVerified;
26
38
  }
27
39
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4odW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJHtzdGF0ZW1lbnRTdHJpbmd9IHVucXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3QgYXNzZXJ0aW9uTWF0Y2hlcyA9IHByb29mQ29udGV4dC5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlKTtcblxuICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBhc3NlcnRpb25NYXRjaGVzOyAgLy8vXG4gIH1cblxuICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicHJvb2ZDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwiYXNzZXJ0aW9uTWF0Y2hlcyIsIm1hdGNoU3RhdGVtZW50IiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7O3FCQUxFO3NCQUNHO0FBRTdCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRiwyQkFBMkJHLHdCQUF3QixFQUFFQyxZQUFZLEVBQUU7SUFDekYsSUFBSUMsK0JBQStCLEtBQUs7SUFFeENELGFBQWFFLEtBQUssQ0FBQ0g7SUFFbkIsSUFBTUksZ0JBQWdCTixtQkFBbUJFO0lBRXpDLElBQUlJLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTUMsa0JBQWtCQyxJQUFBQSxvQkFBWSxFQUFDRjtRQUVyQ0gsYUFBYU0sS0FBSyxDQUFDLEFBQUMsaUJBQWdDLE9BQWhCRixpQkFBZ0I7UUFFcEQsSUFBTUcsbUJBQW1CUCxhQUFhUSxjQUFjLENBQUNMO1FBRXJERiwrQkFBK0JNLGtCQUFtQixHQUFHO0lBQ3ZELENBQUM7SUFFRE4sK0JBQ0VELGFBQWFTLFFBQVEsQ0FBQ1YsNEJBQ3BCQyxhQUFhVSxJQUFJLENBQUNYLHlCQUF5QjtJQUUvQyxPQUFPRTtBQUNUIn0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi9zdGF0ZW1lbnRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcHJvb2ZDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICR7c3RhdGVtZW50U3RyaW5nfSB1bnF1YWxpZmllZCBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGxldCBzdGF0ZW1lbnRNYXRjaGVzID0gdHJ1ZTtcblxuICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICBzdGF0ZW1lbnRNYXRjaGVzID0gcHJvb2ZDb250ZXh0Lm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUpO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRNYXRjaGVzKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NlcnRpb25zLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gc3RhdGVtZW50VmVyaWZpZWQ7ICAvLy9cbiAgICB9XG4gIH1cblxuICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiYXNzZXJ0aW9ucyIsImRlcml2ZWQiLCJwcm9vZkNvbnRleHQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJzdGF0ZW1lbnRNYXRjaGVzIiwibWF0Y2hTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7Ozs4REFQSTtxQkFFRjtzQkFDRzs7Ozs7O0FBRTdCLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixTQUFTRiwyQkFBMkJHLHdCQUF3QixFQUFFQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFO0lBQzlHLElBQUlDLCtCQUErQixLQUFLO0lBRXhDRCxhQUFhRSxLQUFLLENBQUNMO0lBRW5CLElBQU1NLGdCQUFnQlIsbUJBQW1CRTtJQUV6QyxJQUFJTSxrQkFBa0IsSUFBSSxFQUFFO1FBQzFCLElBQU1DLGtCQUFrQkMsSUFBQUEsb0JBQVksRUFBQ0Y7UUFFckNILGFBQWFNLEtBQUssQ0FBQyxBQUFDLGlCQUFnQyxPQUFoQkYsaUJBQWdCO1FBRXBELElBQUlHLG1CQUFtQixJQUFJO1FBRTNCLElBQUlSLFNBQVM7WUFDWFEsbUJBQW1CUCxhQUFhUSxjQUFjLENBQUNMO1FBQ2pELENBQUM7UUFFRCxJQUFJSSxrQkFBa0I7WUFDcEIsSUFBTUUsb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDUCxlQUFlTCxZQUFZRTtZQUVyRUMsK0JBQStCUSxtQkFBb0IsR0FBRztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVEUiwrQkFDRUQsYUFBYVcsUUFBUSxDQUFDZCw0QkFDcEJHLGFBQWFZLElBQUksQ0FBQ2YseUJBQXlCO0lBRS9DLE9BQU9JO0FBQ1QifQ==
@@ -8,26 +8,123 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyStatement;
9
9
  }
10
10
  });
11
+ var _term = /*#__PURE__*/ _interopRequireDefault(require("../verify/term"));
11
12
  var _type = /*#__PURE__*/ _interopRequireDefault(require("../verify/assertion/type"));
13
+ var _array = require("../utilities/array");
14
+ var _string = require("../utilities/string");
15
+ var _ruleNames = require("../ruleNames");
12
16
  var _query = require("../utilities/query");
13
17
  function _interopRequireDefault(obj) {
14
18
  return obj && obj.__esModule ? obj : {
15
19
  default: obj
16
20
  };
17
21
  }
18
- var typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!");
19
- function verifyStatement(statementNode, qualified, proofContext) {
22
+ var termNodeQuery = (0, _query.nodeQuery)("/argument/term!"), typeNodeQuery = (0, _query.nodeQuery)("/argument/type!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!");
23
+ function verifyStatement(statementNode, assertions, proofContext) {
20
24
  var statementVerified = false;
21
25
  proofContext.begin(statementNode);
22
- if (!statementVerified) {
23
- var typeAssertionNode = typeAssertionNodeQuery(statementNode);
24
- if (typeAssertionNode !== null) {
25
- var typeAssertionVerified = (0, _type.default)(typeAssertionNode, qualified, proofContext);
26
- statementVerified = typeAssertionVerified; ///
27
- }
26
+ var typeAssertionNode = typeAssertionNodeQuery(statementNode);
27
+ if (typeAssertionNode !== null) {
28
+ var typeAssertionVerified = (0, _type.default)(typeAssertionNode, assertions, proofContext);
29
+ statementVerified = typeAssertionVerified; ///
30
+ } else {
31
+ var context = proofContext, statementVerifiedAgainstCombinators = verifyStatementAgainstCombinators(statementNode, context);
32
+ statementVerified = statementVerifiedAgainstCombinators; ///
28
33
  }
29
34
  statementVerified ? proofContext.complete(statementNode) : proofContext.halt(statementNode);
30
35
  return statementVerified;
31
36
  }
37
+ function verifyStatementAgainstCombinators(statementNode, context) {
38
+ var statementVerifiedAgainstCombinators = false;
39
+ context.begin(statementNode);
40
+ var combinators = context.getCombinators(), combinator = combinators.find(function(combinator) {
41
+ var statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, context);
42
+ if (statementVerifiedAgainstCombinator) {
43
+ return true;
44
+ }
45
+ }) || null;
46
+ if (combinator !== null) {
47
+ statementVerifiedAgainstCombinators = true;
48
+ }
49
+ statementVerifiedAgainstCombinators ? context.complete(statementNode) : context.halt(statementNode);
50
+ return statementVerifiedAgainstCombinators;
51
+ }
52
+ function verifyStatementAgainstCombinator(statementNode, combinator, context) {
53
+ var combinatorStatementNode = combinator.getStatementNode(), node = statementNode, combinatorNode = combinatorStatementNode, nodeVerified = verifyNode(node, combinatorNode, context), statementVerifiedAgainstCombinator = nodeVerified; ///
54
+ return statementVerifiedAgainstCombinator;
55
+ }
56
+ function verifyNode(node, combinatorNode, context) {
57
+ var nodeVerified;
58
+ var nodeTerminalNode = node.isTerminalNode(), combinatorNodeTerminalNode = combinatorNode.isTerminalNode();
59
+ if (nodeTerminalNode === combinatorNodeTerminalNode) {
60
+ if (nodeTerminalNode) {
61
+ var terminalNode = node, combinatorTerminalNode = combinatorNode, terminalNodeVerified = verifyTerminalNode(terminalNode, combinatorTerminalNode, context);
62
+ nodeVerified = terminalNodeVerified; ///
63
+ } else {
64
+ var nonTerminalNode = node, combinatorNonTerminalNode = combinatorNode, nonTerminalNodeVerified = verifyNonTerminalNode(nonTerminalNode, combinatorNonTerminalNode, context);
65
+ nodeVerified = nonTerminalNodeVerified; ///
66
+ }
67
+ }
68
+ return nodeVerified;
69
+ }
70
+ function verifyNodes(nodes, combinatorNodes, context) {
71
+ var nodesVerified = false;
72
+ var nodesLength = nodes.length, combinatorNodesLength = combinatorNodes.length;
73
+ if (nodesLength === combinatorNodesLength) {
74
+ nodesVerified = nodes.every(function(node, index) {
75
+ var combinatorNode = combinatorNodes[index], nodeVerified = verifyNode(node, combinatorNode, context);
76
+ if (nodeVerified) {
77
+ return true;
78
+ }
79
+ });
80
+ }
81
+ return nodesVerified;
82
+ }
83
+ function verifyTerminalNode(terminalNode, combinatorTerminalNode, context) {
84
+ var terminalNodeVerified = false;
85
+ var matches = terminalNode.match(combinatorTerminalNode);
86
+ if (matches) {
87
+ terminalNodeVerified = true;
88
+ }
89
+ return terminalNodeVerified;
90
+ }
91
+ function verifyNonTerminalNode(nonTerminalNode, combinatorNonTerminalNode, context) {
92
+ var nonTerminalNodeVerified = false;
93
+ var ruleName = nonTerminalNode.getRuleName(), combinatorRuleName = combinatorNonTerminalNode.getRuleName(); ///
94
+ if (ruleName === combinatorRuleName) {
95
+ switch(ruleName){
96
+ case _ruleNames.ARGUMENT_RULE_NAME:
97
+ {
98
+ var argumentNode = nonTerminalNode, combinatorArgumentNode = combinatorNonTerminalNode, argumentNodeVerified = verifyArgumentNode(argumentNode, combinatorArgumentNode, context);
99
+ nonTerminalNodeVerified = argumentNodeVerified; ///
100
+ break;
101
+ }
102
+ default:
103
+ {
104
+ var childNodes = nonTerminalNode.getChildNodes(), combinatorChildNodes = combinatorNonTerminalNode.getChildNodes(), nodes = childNodes, combinatorNodes = combinatorChildNodes, nodesVerified = verifyNodes(nodes, combinatorNodes, context);
105
+ nonTerminalNodeVerified = nodesVerified; ///
106
+ break;
107
+ }
108
+ }
109
+ }
110
+ return nonTerminalNodeVerified;
111
+ }
112
+ function verifyArgumentNode(argumentNode, combinatorArgumentNode, context) {
113
+ var argumentNodeVerified = false;
114
+ var termNode = termNodeQuery(argumentNode);
115
+ if (termNode === null) {
116
+ var argumentString = (0, _string.nodeAsString)(argumentNode);
117
+ context.error("The ".concat(argumentString, " argument should be a term, not a type"));
118
+ } else {
119
+ var types = [], termVerified = (0, _term.default)(termNode, types, context);
120
+ if (termVerified) {
121
+ var firstType = (0, _array.first)(types), termType = firstType, typeNode = typeNodeQuery(combinatorArgumentNode), typeName = (0, _query.typeNameFromTypeNode)(typeNode), type = context.findTypeByTypeName(typeName), statementTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(type);
122
+ if (statementTypeEqualToOrSubTypeOfType) {
123
+ argumentNodeVerified = true;
124
+ }
125
+ }
126
+ }
127
+ return argumentNodeVerified;
128
+ }
32
129
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2Fzc2VydGlvbi90eXBlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBxdWFsaWZpZWQsIHByb29mQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4oc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgcXVhbGlmaWVkLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG4gICAgfVxuICB9XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZShzdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChzdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5U3RhdGVtZW50IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWQiLCJwcm9vZkNvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O3lEQU5RO3FCQUVOOzs7Ozs7QUFFMUIsSUFBTUMseUJBQXlCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRTFCLFNBQVNGLGdCQUFnQkcsYUFBYSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRTtJQUM5RSxJQUFJQyxvQkFBb0IsS0FBSztJQUU3QkQsYUFBYUUsS0FBSyxDQUFDSjtJQUVuQixJQUFJLENBQUNHLG1CQUFtQjtRQUN0QixJQUFNRSxvQkFBb0JQLHVCQUF1QkU7UUFFakQsSUFBSUssc0JBQXNCLElBQUksRUFBRTtZQUM5QixJQUFNQyx3QkFBd0JDLElBQUFBLGFBQW1CLEVBQUNGLG1CQUFtQkosV0FBV0M7WUFFaEZDLG9CQUFvQkcsdUJBQXVCLEdBQUc7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFREgsb0JBQ0VELGFBQWFNLFFBQVEsQ0FBQ1IsaUJBQ3BCRSxhQUFhTyxJQUFJLENBQUNULGNBQWM7SUFFcEMsT0FBT0c7QUFDVCJ9
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCB2ZXJpZnlUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL3R5cGVcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgQVJHVU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtIVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdHlwZSFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2VydGlvbnMsIHByb29mQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4oc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2VydGlvbnMsIHByb29mQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29udGV4dCA9IHByb29mQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzOyAgLy8vXG4gIH1cblxuICBzdGF0ZW1lbnRWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHN0YXRlbWVudE5vZGUpIDpcbiAgICAgIHByb29mQ29udGV4dC5oYWx0KHN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gZmFsc2U7XG5cbiAgY29udGV4dC5iZWdpbihzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKSxcbiAgICAgICAgY29tYmluYXRvciA9IGNvbWJpbmF0b3JzLmZpbmQoKGNvbWJpbmF0b3IpID0+IHtcbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChjb21iaW5hdG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSB0cnVlO1xuICB9XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgP1xuICAgIGNvbnRleHQuY29tcGxldGUoc3RhdGVtZW50Tm9kZSkgOlxuICAgICAgY29udGV4dC5oYWx0KHN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgY29udGV4dCkge1xuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub2RlID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBjb21iaW5hdG9yTm9kZSA9IGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgbm9kZVZlcmlmaWVkID0gdmVyaWZ5Tm9kZShub2RlLCBjb21iaW5hdG9yTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSBub2RlVmVyaWZpZWQ7ICAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9kZShub2RlLCBjb21iaW5hdG9yTm9kZSwgY29udGV4dCkge1xuICBsZXQgbm9kZVZlcmlmaWVkO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JOb2RlVGVybWluYWxOb2RlID0gY29tYmluYXRvck5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gY29tYmluYXRvck5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgY29tYmluYXRvclRlcm1pbmFsTm9kZSA9IGNvbWJpbmF0b3JOb2RlLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVWZXJpZmllZCA9IHZlcmlmeVRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIGNvbWJpbmF0b3JUZXJtaW5hbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBub2RlVmVyaWZpZWQgPSB0ZXJtaW5hbE5vZGVWZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUgPSBjb21iaW5hdG9yTm9kZSwgIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgbm9kZVZlcmlmaWVkID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU5vZGVzKG5vZGVzLCBjb21iaW5hdG9yTm9kZXMsIGNvbnRleHQpIHtcbiAgbGV0IG5vZGVzVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgY29tYmluYXRvck5vZGVzTGVuZ3RoID0gY29tYmluYXRvck5vZGVzLmxlbmd0aDtcblxuICBpZiAobm9kZXNMZW5ndGggPT09IGNvbWJpbmF0b3JOb2Rlc0xlbmd0aCkge1xuICAgIG5vZGVzVmVyaWZpZWQgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGNvbWJpbmF0b3JOb2RlID0gY29tYmluYXRvck5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIG5vZGVWZXJpZmllZCA9IHZlcmlmeU5vZGUobm9kZSwgY29tYmluYXRvck5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAobm9kZVZlcmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG5vZGVzVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIGNvbWJpbmF0b3JUZXJtaW5hbE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IHRlcm1pbmFsTm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IHRlcm1pbmFsTm9kZS5tYXRjaChjb21iaW5hdG9yVGVybWluYWxOb2RlKTtcblxuICBpZiAobWF0Y2hlcykge1xuICAgIHRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtaW5hbE5vZGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgY29tYmluYXRvck5vblRlcm1pbmFsTm9kZSwgY29udGV4dCkge1xuICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgY29tYmluYXRvclJ1bGVOYW1lID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IGNvbWJpbmF0b3JSdWxlTmFtZSkge1xuICAgIHN3aXRjaCAocnVsZU5hbWUpIHtcbiAgICAgIGNhc2UgQVJHVU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IGFyZ3VtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JBcmd1bWVudE5vZGUgPSBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB2ZXJpZnlBcmd1bWVudE5vZGUoYXJndW1lbnROb2RlLCBjb21iaW5hdG9yQXJndW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGFyZ3VtZW50Tm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgY29tYmluYXRvckNoaWxkTm9kZXMgPSBjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgY29tYmluYXRvck5vZGVzID0gY29tYmluYXRvckNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICBub2Rlc1ZlcmlmaWVkID0gdmVyaWZ5Tm9kZXMobm9kZXMsIGNvbWJpbmF0b3JOb2RlcywgY29udGV4dCk7XG5cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBub2Rlc1ZlcmlmaWVkOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGUsIGNvbWJpbmF0b3JBcmd1bWVudE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGFyZ3VtZW50Tm9kZSk7XG5cbiAgaWYgKHRlcm1Ob2RlID09PSBudWxsKSB7XG4gICAgY29uc3QgYXJndW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcoYXJndW1lbnROb2RlKTtcblxuICAgIGNvbnRleHQuZXJyb3IoYFRoZSAke2FyZ3VtZW50U3RyaW5nfSBhcmd1bWVudCBzaG91bGQgYmUgYSB0ZXJtLCBub3QgYSB0eXBlYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkoY29tYmluYXRvckFyZ3VtZW50Tm9kZSksXG4gICAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICAgIHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSksXG4gICAgICAgICAgICBzdGF0ZW1lbnRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSA9IHRlcm1UeXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VHlwZUVxdWFsVG9PclN1YlR5cGVPZlR5cGUpIHtcbiAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmd1bWVudE5vZGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGF0ZW1lbnQiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlIiwiYXNzZXJ0aW9ucyIsInByb29mQ29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkIiwiYmVnaW4iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMiLCJjb21wbGV0ZSIsImhhbHQiLCJjb21iaW5hdG9ycyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvciIsImZpbmQiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJub2RlIiwiY29tYmluYXRvck5vZGUiLCJub2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb2RlIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwiY29tYmluYXRvck5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb21iaW5hdG9yVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjb21iaW5hdG9yTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZnlOb2RlcyIsIm5vZGVzIiwiY29tYmluYXRvck5vZGVzIiwibm9kZXNWZXJpZmllZCIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiY29tYmluYXRvck5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJjb21iaW5hdG9yUnVsZU5hbWUiLCJBUkdVTUVOVF9SVUxFX05BTUUiLCJhcmd1bWVudE5vZGUiLCJjb21iaW5hdG9yQXJndW1lbnROb2RlIiwiYXJndW1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlBcmd1bWVudE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImNvbWJpbmF0b3JDaGlsZE5vZGVzIiwidGVybU5vZGUiLCJhcmd1bWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImVycm9yIiwidHlwZXMiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwiZmlyc3RUeXBlIiwiZmlyc3QiLCJ0ZXJtVHlwZSIsInR5cGVOb2RlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzdGF0ZW1lbnRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQXdCQTs7O3lEQVpEO3lEQUNTO3FCQUVWO3NCQUNPO3lCQUNNO3FCQUNhOzs7Ozs7QUFFaEQsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQkUseUJBQXlCRixJQUFBQSxnQkFBUyxFQUFDO0FBRTFCLFNBQVNGLGdCQUFnQkssYUFBYSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksRUFBRTtJQUMvRSxJQUFJQyxvQkFBb0IsS0FBSztJQUU3QkQsYUFBYUUsS0FBSyxDQUFDSjtJQUVuQixJQUFNSyxvQkFBb0JOLHVCQUF1QkM7SUFFakQsSUFBSUssc0JBQXNC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
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _proof = /*#__PURE__*/ _interopRequireDefault(require("../step/proof"));
12
12
  var _supposition = /*#__PURE__*/ _interopRequireDefault(require("../supposition"));
13
- var _statement = /*#__PURE__*/ _interopRequireDefault(require("./statement"));
13
+ var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("./statement/unqualified"));
14
14
  var _query = require("../utilities/query");
15
15
  var _string = require("../utilities/string");
16
16
  function _interopRequireDefault(obj) {
@@ -18,24 +18,24 @@ function _interopRequireDefault(obj) {
18
18
  default: obj
19
19
  };
20
20
  }
21
- var statementNodeQuery = (0, _query.nodeQuery)("/supposition/unqualifiedStatement!/statement!");
21
+ var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!"), unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/supposition/unqualifiedStatement!");
22
22
  function verifySupposition(suppositionNode, suppositions, proofContext) {
23
23
  var suppositionVerified;
24
24
  proofContext.begin(suppositionNode);
25
25
  var suppositionString = (0, _string.nodeAsString)(suppositionNode);
26
26
  proofContext.debug("Verifying the ".concat(suppositionString, " supposition..."));
27
- var statementNode = statementNodeQuery(suppositionNode);
28
- if (statementNode !== null) {
29
- var qualified = false, statementVerified = (0, _statement.default)(statementNode, qualified, proofContext);
30
- if (statementVerified) {
31
- var proofStep = _proof.default.fromStatementNode(statementNode), supposition = _supposition.default.fromStatementNode(statementNode);
32
- suppositions.push(supposition);
33
- proofContext.addProofStep(proofStep);
34
- }
27
+ var derived = false, assertions = [], unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode), unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assertions, derived, proofContext);
28
+ if (unqualifiedStatementVerified) {
29
+ var statementNode = statementNodeQuery(unqualifiedStatementNode), proofStep = _proof.default.fromStatementNode(statementNode), supposition = _supposition.default.fromStatementNode(statementNode);
30
+ suppositions.push(supposition);
31
+ proofContext.addProofStep(proofStep);
32
+ assertions.every(function(assertion) {
33
+ assertion.assert(proofContext);
34
+ });
35
35
  suppositionVerified = true;
36
36
  }
37
37
  suppositionVerified ? proofContext.complete(suppositionNode) : proofContext.halt(suppositionNode);
38
38
  return suppositionVerified;
39
39
  }
40
40
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3N0ZXAvcHJvb2ZcIjtcbmltcG9ydCBTdXBwb3NpdGlvbiBmcm9tIFwiLi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlTdGF0ZW1lbnQgZnJvbSBcIi4vc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdXBwb3NpdGlvbi91bnF1YWxpZmllZFN0YXRlbWVudCEvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIHByb29mQ29udGV4dCkge1xuICBsZXQgc3VwcG9zaXRpb25WZXJpZmllZDtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4oc3VwcG9zaXRpb25Ob2RlKTtcblxuICBjb25zdCBzdXBwb3NpdGlvblN0cmluZyA9IG5vZGVBc1N0cmluZyhzdXBwb3NpdGlvbk5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAke3N1cHBvc2l0aW9uU3RyaW5nfSBzdXBwb3NpdGlvbi4uLmApO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoc3VwcG9zaXRpb25Ob2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1YWxpZmllZCA9IGZhbHNlLFxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHF1YWxpZmllZCwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgcHJvb2ZTdGVwID0gUHJvb2ZTdGVwLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgc3VwcG9zaXRpb25zLnB1c2goc3VwcG9zaXRpb24pO1xuXG4gICAgICBwcm9vZkNvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG4gICAgfVxuXG4gICAgc3VwcG9zaXRpb25WZXJpZmllZCA9IHRydWU7XG4gIH1cblxuICBzdXBwb3NpdGlvblZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUoc3VwcG9zaXRpb25Ob2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChzdXBwb3NpdGlvbk5vZGUpO1xuXG4gIHJldHVybiBzdXBwb3NpdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN1cHBvc2l0aW9uIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25Ob2RlIiwic3VwcG9zaXRpb25zIiwicHJvb2ZDb250ZXh0Iiwic3VwcG9zaXRpb25WZXJpZmllZCIsImJlZ2luIiwic3VwcG9zaXRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsInByb29mU3RlcCIsIlByb29mU3RlcCIsImZyb21TdGF0ZW1lbnROb2RlIiwic3VwcG9zaXRpb24iLCJTdXBwb3NpdGlvbiIsInB1c2giLCJhZGRQcm9vZlN0ZXAiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEY7Z0VBQ0U7OERBQ0k7cUJBRUY7c0JBQ0c7Ozs7OztBQUU3QixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0Ysa0JBQWtCRyxlQUFlLEVBQUVDLFlBQVksRUFBRUMsWUFBWSxFQUFFO0lBQ3JGLElBQUlDO0lBRUpELGFBQWFFLEtBQUssQ0FBQ0o7SUFFbkIsSUFBTUssb0JBQW9CQyxJQUFBQSxvQkFBWSxFQUFDTjtJQUV2Q0UsYUFBYUssS0FBSyxDQUFDLEFBQUMsaUJBQWtDLE9BQWxCRixtQkFBa0I7SUFFdEQsSUFBTUcsZ0JBQWdCVixtQkFBbUJFO0lBRXpDLElBQUlRLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTUMsWUFBWSxLQUFLLEVBQ2pCQyxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNILGVBQWVDLFdBQVdQO1FBRXBFLElBQUlRLG1CQUFtQjtZQUNyQixJQUFNRSxZQUFZQyxjQUFTLENBQUNDLGlCQUFpQixDQUFDTixnQkFDeENPLGNBQWNDLG9CQUFXLENBQUNGLGlCQUFpQixDQUFDTjtZQUVsRFAsYUFBYWdCLElBQUksQ0FBQ0Y7WUFFbEJiLGFBQWFnQixZQUFZLENBQUNOO1FBQzVCLENBQUM7UUFFRFQsc0JBQXNCLElBQUk7SUFDNUIsQ0FBQztJQUVEQSxzQkFDRUQsYUFBYWlCLFFBQVEsQ0FBQ25CLG1CQUNwQkUsYUFBYWtCLElBQUksQ0FBQ3BCLGdCQUFnQjtJQUV0QyxPQUFPRztBQUNUIn0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3N0ZXAvcHJvb2ZcIjtcbmltcG9ydCBTdXBwb3NpdGlvbiBmcm9tIFwiLi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi9zdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdXBwb3NpdGlvbi91bnF1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uTm9kZSwgc3VwcG9zaXRpb25zLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHN1cHBvc2l0aW9uVmVyaWZpZWQ7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKHN1cHBvc2l0aW9uTm9kZSk7XG5cbiAgY29uc3Qgc3VwcG9zaXRpb25TdHJpbmcgPSBub2RlQXNTdHJpbmcoc3VwcG9zaXRpb25Ob2RlKTtcblxuICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJHtzdXBwb3NpdGlvblN0cmluZ30gc3VwcG9zaXRpb24uLi5gKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkoc3VwcG9zaXRpb25Ob2RlKSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzZXJ0aW9ucywgZGVyaXZlZCwgcHJvb2ZDb250ZXh0KTtcblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIHN1cHBvc2l0aW9ucy5wdXNoKHN1cHBvc2l0aW9uKTtcblxuICAgIHByb29mQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgIGFzc2VydGlvbnMuZXZlcnkoKGFzc2VydGlvbikgPT4ge1xuICAgICAgYXNzZXJ0aW9uLmFzc2VydChwcm9vZkNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgc3VwcG9zaXRpb25WZXJpZmllZCA9IHRydWU7XG4gIH1cblxuICBzdXBwb3NpdGlvblZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUoc3VwcG9zaXRpb25Ob2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChzdXBwb3NpdGlvbk5vZGUpO1xuXG4gIHJldHVybiBzdXBwb3NpdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN1cHBvc2l0aW9uIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvbnMiLCJwcm9vZkNvbnRleHQiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwiYmVnaW4iLCJzdXBwb3NpdGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwiZGVyaXZlZCIsImFzc2VydGlvbnMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJzdXBwb3NpdGlvbiIsIlN1cHBvc2l0aW9uIiwicHVzaCIsImFkZFByb29mU3RlcCIsImV2ZXJ5IiwiYXNzZXJ0aW9uIiwiYXNzZXJ0IiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OzBEQVZGO2dFQUNFO2dFQUNlO3FCQUViO3NCQUNHOzs7Ozs7QUFFN0IsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHFDQUMvQkMsZ0NBQWdDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpDLFNBQVNGLGtCQUFrQkksZUFBZSxFQUFFQyxZQUFZLEVBQUVDLFlBQVksRUFBRTtJQUNyRixJQUFJQztJQUVKRCxhQUFhRSxLQUFLLENBQUNKO0lBRW5CLElBQU1LLG9CQUFvQkMsSUFBQUEsb0JBQVksRUFBQ047SUFFdkNFLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGlCQUFrQyxPQUFsQkYsbUJBQWtCO0lBRXRELElBQU1HLFVBQVUsS0FBSyxFQUNmQyxhQUFhLEVBQUUsRUFDZkMsMkJBQTJCWCw4QkFBOEJDLGtCQUN6RFcsK0JBQStCQyxJQUFBQSxvQkFBMEIsRUFBQ0YsMEJBQTBCRCxZQUFZRCxTQUFTTjtJQUUvRyxJQUFJUyw4QkFBOEI7UUFDaEMsSUFBTUUsZ0JBQWdCaEIsbUJBQW1CYSwyQkFDbkNJLFlBQVlDLGNBQVMsQ0FBQ0MsaUJBQWlCLENBQUNILGdCQUN4Q0ksY0FBY0Msb0JBQVcsQ0FBQ0YsaUJBQWlCLENBQUNIO1FBRWxEWixhQUFha0IsSUFBSSxDQUFDRjtRQUVsQmYsYUFBYWtCLFlBQVksQ0FBQ047UUFFMUJMLFdBQVdZLEtBQUssQ0FBQyxTQUFDQyxXQUFjO1lBQzlCQSxVQUFVQyxNQUFNLENBQUNyQjtRQUNuQjtRQUVBQyxzQkFBc0IsSUFBSTtJQUM1QixDQUFDO0lBRURBLHNCQUNFRCxhQUFhc0IsUUFBUSxDQUFDeEIsbUJBQ3BCRSxhQUFhdUIsSUFBSSxDQUFDekIsZ0JBQWdCO0lBRXRDLE9BQU9HO0FBQ1QifQ==
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.508",
4
+ "version": "0.0.509",
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.388",
15
+ "occam-custom-grammars": "^5.0.389",
16
16
  "occam-dom": "^3.1.1",
17
- "occam-file-system": "^5.0.148",
17
+ "occam-file-system": "^5.0.150",
18
18
  "occam-grammar-utilities": "^7.0.66"
19
19
  },
20
20
  "devDependencies": {
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import Variable from "../variable";
4
+
5
+ export default class TypeAssertion {
6
+ constructor(type, termNode, variableName) {
7
+ this.type = type;
8
+ this.termNode = termNode;
9
+ this.variableName = variableName;
10
+ }
11
+
12
+ getType() {
13
+ return this.type;
14
+ }
15
+
16
+ getTermNode() {
17
+ return this.termNode;
18
+ }
19
+
20
+ getVariableName() {
21
+ return this.variableName;
22
+ }
23
+
24
+ assert(proofContext) {
25
+ if (this.variableName !== null) {
26
+ const name = this.variableName, ///
27
+ variable = Variable.fromTypeAndName(this.type, name);
28
+
29
+ proofContext.addVariable(variable);
30
+ }
31
+ }
32
+
33
+ static fromTypeAndTermNode(type, termNode) {
34
+ const variableName = null,
35
+ typeAssertion = new TypeAssertion(type, termNode, variableName);
36
+
37
+ return typeAssertion;
38
+ }
39
+
40
+ static fromTypeAndVariableName(type, variableName) {
41
+ const termNode = null,
42
+ typeAssertion = new TypeAssertion(type, termNode, variableName);
43
+
44
+ return typeAssertion;
45
+ }
46
+ }
package/src/combinator.js CHANGED
@@ -9,6 +9,10 @@ export default class Combinator {
9
9
  this.statementNode = statementNode;
10
10
  }
11
11
 
12
+ getStatementNode() {
13
+ return this.statementNode;
14
+ }
15
+
12
16
  asString() {
13
17
  let string;
14
18
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import Variable from "../../variable";
3
+ import TypeAssertion from "../../assertion/type";
4
4
 
5
5
  import { first } from "../../utilities/array";
6
6
  import { nodeAsString } from "../../utilities/string";
@@ -10,14 +10,14 @@ import { verifyTermAsVariable, verifyTermAgainstConstructors } from "../../verif
10
10
  const termNodeQuery = nodeQuery("/typeAssertion/term"),
11
11
  typeNodeQuery = nodeQuery("/typeAssertion/type");
12
12
 
13
- export default function verifyStatementTypeAssertion(typeAssertionNode, qualified, proofContext) {
13
+ export default function verifyTypeAssertion(typeAssertionNode, assertions, proofContext) {
14
14
  let typeAssertionVerified = false;
15
15
 
16
16
  proofContext.begin(typeAssertionNode);
17
17
 
18
- const statementString = nodeAsString(typeAssertionNode);
18
+ const typsAssertionString = nodeAsString(typeAssertionNode);
19
19
 
20
- proofContext.debug(`Verifying the '${statementString}' type assertion...`);
20
+ proofContext.debug(`Verifying the '${typsAssertionString}' type assertion...`);
21
21
 
22
22
  const typeNode = typeNodeQuery(typeAssertionNode),
23
23
  typeName = typeNameFromTypeNode(typeNode),
@@ -27,20 +27,20 @@ export default function verifyStatementTypeAssertion(typeAssertionNode, qualifie
27
27
  proofContext.error(`The ${typeName} type is not present.`);
28
28
  } else {
29
29
  if (!typeAssertionVerified) {
30
- const variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode, qualified, proofContext);
30
+ const variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode, assertions, proofContext);
31
31
 
32
32
  typeAssertionVerified = variableTypeAssertionVerified; ///
33
33
  }
34
34
 
35
35
  if (!typeAssertionVerified) {
36
- const termTypeAssertionVerified = verifyTermTypeAssertion(typeAssertionNode, qualified, proofContext);
36
+ const termTypeAssertionVerified = verifyTermTypeAssertion(typeAssertionNode, assertions, proofContext);
37
37
 
38
38
  typeAssertionVerified = termTypeAssertionVerified; ///
39
39
  }
40
40
  }
41
41
 
42
42
  if (typeAssertionVerified) {
43
- proofContext.info(`Verified the '${statementString}' statement type assertion.`);
43
+ proofContext.info(`Verified the '${typsAssertionString}' statement type assertion.`);
44
44
  }
45
45
 
46
46
  typeAssertionVerified ?
@@ -50,7 +50,7 @@ export default function verifyStatementTypeAssertion(typeAssertionNode, qualifie
50
50
  return typeAssertionVerified;
51
51
  }
52
52
 
53
- function verifyVariableTypeAssertion(typeAssertionNode, qualified, proofContext) {
53
+ function verifyVariableTypeAssertion(typeAssertionNode, assertions, proofContext) {
54
54
  let variableTypeAssertionVerified = false;
55
55
 
56
56
  const context = proofContext, ///
@@ -66,22 +66,19 @@ function verifyVariableTypeAssertion(typeAssertionNode, qualified, proofContext)
66
66
  firstVariable = first(variables),
67
67
  variable = firstVariable, ///
68
68
  variableName = variable.getName(),
69
- variableType = variable.getType();
70
-
71
- const assertedTypeEqualToOrSubTypeOfVariableType = (variableType === null) ?
69
+ variableType = variable.getType(),
70
+ assertedTypeEqualToOrSubTypeOfVariableType = (variableType === null) ?
72
71
  true : ///
73
72
  assertedType.isEqualToOrSubTypeOf(variableType);
74
73
 
75
74
  if (!assertedTypeEqualToOrSubTypeOfVariableType) {
76
75
  proofContext.error(`The asserted type is not equal to or a sub-type of the '${variableName}' variable type.`);
77
76
  } else {
78
- if (!qualified) {
79
- const type = assertedType, ///
80
- name = variableName, ///
81
- variable = Variable.fromTypeAndName(type, name);
77
+ const type = assertedType, ///
78
+ typeAssertion = TypeAssertion.fromTypeAndVariableName(type, variableName),
79
+ assertion = typeAssertion; ///
82
80
 
83
- proofContext.addVariable(variable);
84
- }
81
+ assertions.push(assertion);
85
82
 
86
83
  variableTypeAssertionVerified = true;
87
84
  }
@@ -90,7 +87,7 @@ function verifyVariableTypeAssertion(typeAssertionNode, qualified, proofContext)
90
87
  return variableTypeAssertionVerified;
91
88
  }
92
89
 
93
- function verifyTermTypeAssertion(typeAssertionNode, qualified, proofContext) {
90
+ function verifyTermTypeAssertion(typeAssertionNode, assertions, proofContext) {
94
91
  let termTypeAssertionVerified = false;
95
92
 
96
93
  const types = [],
@@ -106,16 +103,18 @@ function verifyTermTypeAssertion(typeAssertionNode, qualified, proofContext) {
106
103
  firstType = first(types),
107
104
  termType = firstType,
108
105
  termString = nodeAsString(termNode),
109
- assertedTypeEqualToOrSubTypeOfTermType = (termType === null) ?
106
+ assertedTypeEqualToTermType = (termType === null) ?
110
107
  true : ///
111
- assertedType.isEqualToOrSubTypeOf(termType);
108
+ assertedType.isEqualTo(termType);
112
109
 
113
- if (!assertedTypeEqualToOrSubTypeOfTermType) {
114
- proofContext.error(`The asserted type is not equal to or a sub-type of the '${termString}' term type.`);
110
+ if (!assertedTypeEqualToTermType) {
111
+ proofContext.error(`The asserted type is not equal to the '${termString}' term type.`);
115
112
  } else {
116
- if (!qualified) {
117
- debugger
118
- }
113
+ const type = assertedType, ///
114
+ typeAssertion = TypeAssertion.fromTypeAndTermNode(type, termNode),
115
+ assertion = typeAssertion; ///
116
+
117
+ assertions.push(assertion);
119
118
 
120
119
  termTypeAssertionVerified = true;
121
120
  }
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  import Conclusion from "../conclusion";
4
+ import verifyUnqualifiedMetastatement from "./metastatement/unqualified";
4
5
 
5
6
  import { nodeQuery } from "../utilities/query";
6
- import {nodeAsString} from "../utilities/string";
7
+ import { nodeAsString } from "../utilities/string";
7
8
 
8
- const metastatementNodeQuery = nodeQuery("/conclusion/unqualifiedMetastatement!/metastatement!");
9
+ const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
10
+ unqualifiedMetastatementNodeQuery = nodeQuery("/conclusion/unqualifiedMetastatement!");
9
11
 
10
12
  export default function verifyConclusion(conclusionNode, conclusions, metaproofContext) {
11
13
  let conclusionVerified = false;
@@ -16,10 +18,14 @@ export default function verifyConclusion(conclusionNode, conclusions, metaproofC
16
18
 
17
19
  metaproofContext.debug(`Verifying the '${conclusionString}' conclusion...`);
18
20
 
19
- const metastatementNode = metastatementNodeQuery(conclusionNode);
21
+ const derived = false,
22
+ assertions = [],
23
+ unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(conclusionNode),
24
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assertions, derived, metaproofContext);
20
25
 
21
- if (metastatementNode !== null) {
22
- const conclusion = Conclusion.fromMetastatementNode(metastatementNode);
26
+ if (unqualifiedMetastatementVerified) {
27
+ const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
28
+ conclusion = Conclusion.fromMetastatementNode(metastatementNode);
23
29
 
24
30
  conclusions.push(conclusion);
25
31