occam-verify-cli 0.0.317 → 0.0.319

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 (94) hide show
  1. package/bin/callbacks.js +27 -0
  2. package/bin/main.js +2 -5
  3. package/bin/messages.js +11 -0
  4. package/bin/utilities/logging.js +2 -10
  5. package/bin/utilities/release.js +47 -46
  6. package/lib/callbacks.js +68 -0
  7. package/lib/context/file.js +58 -81
  8. package/lib/context/metaproof.js +30 -118
  9. package/lib/context/proof.js +73 -137
  10. package/lib/context/release.js +81 -15
  11. package/lib/index.js +9 -1
  12. package/lib/mixins/callbacks.js +27 -0
  13. package/lib/mixins/file.js +23 -0
  14. package/lib/mixins/logging.js +39 -0
  15. package/lib/rule.js +3 -3
  16. package/lib/utilities/verification.js +45 -0
  17. package/lib/verify/IndicativeConditional.js +9 -5
  18. package/lib/verify/assertion/type.js +12 -10
  19. package/lib/verify/axiom.js +10 -14
  20. package/lib/verify/conclusion.js +5 -3
  21. package/lib/verify/conditinalInference.js +7 -5
  22. package/lib/verify/declaration/combinator.js +7 -3
  23. package/lib/verify/declaration/constructor.js +7 -3
  24. package/lib/verify/declaration/topLevel.js +11 -9
  25. package/lib/verify/declaration/type.js +8 -3
  26. package/lib/verify/declaration/variable.js +7 -3
  27. package/lib/verify/equality.js +8 -6
  28. package/lib/verify/file.js +7 -9
  29. package/lib/verify/label.js +6 -4
  30. package/lib/verify/labels.js +5 -4
  31. package/lib/verify/metaDerivation.js +21 -18
  32. package/lib/verify/metaproof.js +6 -4
  33. package/lib/verify/metastatement/qualified.js +7 -5
  34. package/lib/verify/metastatement/unqualified.js +7 -5
  35. package/lib/verify/premiseOrPremises.js +11 -12
  36. package/lib/verify/release.js +28 -18
  37. package/lib/verify/rule.js +11 -14
  38. package/lib/verify/statement/qualified.js +7 -3
  39. package/lib/verify/statement/unqualified.js +6 -4
  40. package/lib/verify/statement.js +8 -10
  41. package/lib/verify/statementAsCombinator.js +33 -36
  42. package/lib/verify/term.js +4 -2
  43. package/lib/verify/termAsConstructor.js +38 -39
  44. package/lib/verify/termAsVariable.js +4 -2
  45. package/lib/verify/type.js +18 -14
  46. package/lib/verify/unconditionalInference.js +5 -3
  47. package/lib/verify/variable.js +13 -10
  48. package/package.json +1 -1
  49. package/src/callbacks.js +27 -0
  50. package/src/context/file.js +62 -61
  51. package/src/context/metaproof.js +29 -44
  52. package/src/context/proof.js +51 -64
  53. package/src/context/release.js +33 -11
  54. package/src/index.js +3 -0
  55. package/src/mixins/callbacks.js +15 -0
  56. package/src/mixins/file.js +12 -0
  57. package/src/mixins/logging.js +24 -0
  58. package/src/rule.js +2 -2
  59. package/src/utilities/verification.js +41 -0
  60. package/src/verify/IndicativeConditional.js +18 -9
  61. package/src/verify/assertion/type.js +15 -8
  62. package/src/verify/axiom.js +15 -17
  63. package/src/verify/conclusion.js +8 -2
  64. package/src/verify/conditinalInference.js +10 -4
  65. package/src/verify/declaration/combinator.js +12 -3
  66. package/src/verify/declaration/constructor.js +12 -3
  67. package/src/verify/declaration/topLevel.js +15 -9
  68. package/src/verify/declaration/type.js +14 -4
  69. package/src/verify/declaration/variable.js +12 -3
  70. package/src/verify/equality.js +11 -4
  71. package/src/verify/file.js +6 -8
  72. package/src/verify/label.js +9 -3
  73. package/src/verify/labels.js +5 -3
  74. package/src/verify/metaDerivation.js +26 -19
  75. package/src/verify/metaproof.js +9 -3
  76. package/src/verify/metastatement/qualified.js +10 -4
  77. package/src/verify/metastatement/unqualified.js +10 -4
  78. package/src/verify/premiseOrPremises.js +18 -14
  79. package/src/verify/release.js +45 -27
  80. package/src/verify/rule.js +15 -16
  81. package/src/verify/statement/qualified.js +12 -3
  82. package/src/verify/statement/unqualified.js +9 -3
  83. package/src/verify/statement.js +10 -9
  84. package/src/verify/statementAsCombinator.js +45 -46
  85. package/src/verify/term.js +7 -1
  86. package/src/verify/termAsConstructor.js +48 -45
  87. package/src/verify/termAsVariable.js +7 -1
  88. package/src/verify/type.js +25 -21
  89. package/src/verify/unconditionalInference.js +8 -2
  90. package/src/verify/variable.js +18 -11
  91. package/lib/mixins/log.js +0 -41
  92. package/lib/verify/supposition.js +0 -29
  93. package/src/mixins/log.js +0 -28
  94. package/src/verify/supposition.js +0 -22
@@ -8,12 +8,14 @@ import { nodeQuery } from "../utilities/query";
8
8
  const metastatementNodeQuery = nodeQuery("/unconditionalInference/unqualifiedMetastatement!/metastatement!"),
9
9
  unqualifiedMetastatementNodeQuery = nodeQuery("/unconditionalInference/unqualifiedMetastatement!");
10
10
 
11
- export default function verifyUnconditionalInference(unconditionalInferenceNode, premises, conclusions, context) {
11
+ export default function verifyUnconditionalInference(unconditionalInferenceNode, premises, conclusions, metaproofContext) {
12
12
  let unconditionalInferenceVerified = false;
13
13
 
14
+ metaproofContext.begin(unconditionalInferenceNode);
15
+
14
16
  const metastatementNode = metastatementNodeQuery(unconditionalInferenceNode),
15
17
  unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(unconditionalInferenceNode),
16
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, context);
18
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, metaproofContext);
17
19
 
18
20
  if (unqualifiedMetastatementVerified) {
19
21
  const conclusion = Conclusion.fromMetastatementNode(metastatementNode);
@@ -23,5 +25,9 @@ export default function verifyUnconditionalInference(unconditionalInferenceNode,
23
25
  unconditionalInferenceVerified = true;
24
26
  }
25
27
 
28
+ unconditionalInferenceVerified ?
29
+ metaproofContext.complete(unconditionalInferenceNode) :
30
+ metaproofContext.halt(unconditionalInferenceNode);
31
+
26
32
  return unconditionalInferenceVerified;
27
33
  }
@@ -2,19 +2,22 @@
2
2
 
3
3
  import Variable from "../variable";
4
4
 
5
+ import { nodeAsString } from "../utilities/string";
5
6
  import { typeNameFromTypeNode, variableNameFromVariableNode } from "../utilities/query";
6
7
 
7
- export default function verifyVariable(variableNode, typeNode, context) {
8
+ export default function verifyVariable(variableNode, typeNode, fileContext) {
8
9
  let variableVerified = false;
9
10
 
11
+ fileContext.begin(variableNode);
12
+
13
+ let variable = null;
14
+
10
15
  const variableName = variableNameFromVariableNode(variableNode),
11
- variablePresent = context.isVariablePresentByVariableName(variableName);
16
+ variablePresent = fileContext.isVariablePresentByVariableName(variableName);
12
17
 
13
18
  if (variablePresent) {
14
- context.error(`The variable '${variableName}' is already present.`, variableNode);
19
+ fileContext.error(`The variable '${variableName}' is already present.`);
15
20
  } else {
16
- let variable = null;
17
-
18
21
  const typeName = typeNameFromTypeNode(typeNode);
19
22
 
20
23
  if (typeName === null) {
@@ -23,10 +26,10 @@ export default function verifyVariable(variableNode, typeNode, context) {
23
26
 
24
27
  variable = Variable.fromTypeAndName(type, name);
25
28
  } else {
26
- const type = context.findTypeByTypeName(typeName);
29
+ const type = fileContext.findTypeByTypeName(typeName);
27
30
 
28
31
  if (type === null) {
29
- context.error(`The '${variableName}' variable's '${typeName}' type is missing.`, variableNode);
32
+ fileContext.error(`The '${variableName}' variable's '${typeName}' type is missing.`);
30
33
  } else {
31
34
  const name = variableName; ///
32
35
 
@@ -35,15 +38,19 @@ export default function verifyVariable(variableNode, typeNode, context) {
35
38
  }
36
39
 
37
40
  if (variable !== null) {
38
- const variableString = variable.asString();
41
+ const variableString = nodeAsString(variableName);
39
42
 
40
- context.addVariable(variable);
43
+ fileContext.info(`Verified the '${variableString}' variable.`);
41
44
 
42
- variableVerified = true;
45
+ fileContext.addVariable(variable);
43
46
 
44
- context.info(`Verified the '${variableString}' variable.`, variableNode);
47
+ variableVerified = true;
45
48
  }
46
49
  }
47
50
 
51
+ variableVerified ?
52
+ fileContext.complete(variableNode) :
53
+ fileContext.halt(variableNode);
54
+
48
55
  return variableVerified;
49
56
  }
package/lib/mixins/log.js DELETED
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var TRACE_LEVEL = _necessary.levels.TRACE_LEVEL, DEBUG_LEVEL = _necessary.levels.DEBUG_LEVEL, INFO_LEVEL = _necessary.levels.INFO_LEVEL, WARNING_LEVEL = _necessary.levels.WARNING_LEVEL, ERROR_LEVEL = _necessary.levels.ERROR_LEVEL, FATAL_LEVEL = _necessary.levels.FATAL_LEVEL;
13
- function trace(message) {
14
- this.log(TRACE_LEVEL, message);
15
- }
16
- function debug(message) {
17
- this.log(DEBUG_LEVEL, message);
18
- }
19
- function info(message) {
20
- this.log(INFO_LEVEL, message);
21
- }
22
- function warning(message) {
23
- this.log(WARNING_LEVEL, message);
24
- }
25
- function error(message) {
26
- this.log(ERROR_LEVEL, message);
27
- }
28
- function fatal(message) {
29
- this.log(FATAL_LEVEL, message);
30
- }
31
- var logMixins = {
32
- trace: trace,
33
- debug: debug,
34
- info: info,
35
- warning: warning,
36
- error: error,
37
- fatal: fatal
38
- };
39
- var _default = logMixins;
40
-
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvbG9nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXZlbHMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgVFJBQ0VfTEVWRUwsIERFQlVHX0xFVkVMLCBJTkZPX0xFVkVMLCBXQVJOSU5HX0xFVkVMLCBFUlJPUl9MRVZFTCwgRkFUQUxfTEVWRUwgfSA9IGxldmVscztcblxuZnVuY3Rpb24gdHJhY2UobWVzc2FnZSkgeyB0aGlzLmxvZyhUUkFDRV9MRVZFTCwgbWVzc2FnZSk7IH1cblxuZnVuY3Rpb24gZGVidWcobWVzc2FnZSkgeyB0aGlzLmxvZyhERUJVR19MRVZFTCwgbWVzc2FnZSk7IH1cblxuZnVuY3Rpb24gaW5mbyhtZXNzYWdlKSB7IHRoaXMubG9nKElORk9fTEVWRUwsIG1lc3NhZ2UpOyB9XG5cbmZ1bmN0aW9uIHdhcm5pbmcobWVzc2FnZSkgeyB0aGlzLmxvZyhXQVJOSU5HX0xFVkVMLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBlcnJvcihtZXNzYWdlKSB7IHRoaXMubG9nKEVSUk9SX0xFVkVMLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBmYXRhbChtZXNzYWdlKSB7IHRoaXMubG9nKEZBVEFMX0xFVkVMLCBtZXNzYWdlKTsgfVxuXG5jb25zdCBsb2dNaXhpbnMgPSB7XG4gIHRyYWNlLFxuICBkZWJ1ZyxcbiAgaW5mbyxcbiAgd2FybmluZyxcbiAgZXJyb3IsXG4gIGZhdGFsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dNaXhpbnM7XG4iXSwibmFtZXMiOlsiVFJBQ0VfTEVWRUwiLCJsZXZlbHMiLCJERUJVR19MRVZFTCIsIklORk9fTEVWRUwiLCJXQVJOSU5HX0xFVkVMIiwiRVJST1JfTEVWRUwiLCJGQVRBTF9MRVZFTCIsInRyYWNlIiwibWVzc2FnZSIsImxvZyIsImRlYnVnIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImZhdGFsIiwibG9nTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEyQkE7OztlQUFBOzs7eUJBekJ1QjtBQUV2QixJQUFRQSxjQUFrRkMsaUJBQU0sQ0FBeEZELGFBQWFFLGNBQXFFRCxpQkFBTSxDQUEzRUMsYUFBYUMsYUFBd0RGLGlCQUFNLENBQTlERSxZQUFZQyxnQkFBNENILGlCQUFNLENBQWxERyxlQUFlQyxjQUE2QkosaUJBQU0sQ0FBbkNJLGFBQWFDLGNBQWdCTCxpQkFBTSxDQUF0Qks7QUFFMUUsU0FBU0MsTUFBTUMsT0FBTyxFQUFFO0lBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUNULGFBQWFRO0FBQVU7QUFFMUQsU0FBU0UsTUFBTUYsT0FBTyxFQUFFO0lBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUNQLGFBQWFNO0FBQVU7QUFFMUQsU0FBU0csS0FBS0gsT0FBTyxFQUFFO0lBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUNOLFlBQVlLO0FBQVU7QUFFeEQsU0FBU0ksUUFBUUosT0FBTyxFQUFFO0lBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUNMLGVBQWVJO0FBQVU7QUFFOUQsU0FBU0ssTUFBTUwsT0FBTyxFQUFFO0lBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUNKLGFBQWFHO0FBQVU7QUFFMUQsU0FBU00sTUFBTU4sT0FBTyxFQUFFO0lBQUUsSUFBSSxDQUFDQyxHQUFHLENBQUNILGFBQWFFO0FBQVU7QUFFMUQsSUFBTU8sWUFBWTtJQUNoQlIsT0FBQUE7SUFDQUcsT0FBQUE7SUFDQUMsTUFBQUE7SUFDQUMsU0FBQUE7SUFDQUMsT0FBQUE7SUFDQUMsT0FBQUE7QUFDRjtJQUVBLFdBQWVDIn0=
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifySupposition;
9
- }
10
- });
11
- var _assertion = /*#__PURE__*/ _interopRequireDefault(require("../assertion"));
12
- var _unqualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/unqualified"));
13
- var _query = require("../utilities/query");
14
- function _interopRequireDefault(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- var unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/supposition/unqualifiedStatement!");
20
- function verifySupposition(suppositionNode, suppositions, context) {
21
- var unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode), unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, context), suppositionVerified = unqualifiedStatementVerified;
22
- if (suppositionVerified) {
23
- var supposition = _assertion.default.fromUnqualifiedStatementNode(unqualifiedStatementNode);
24
- suppositions.push(supposition);
25
- }
26
- return suppositionVerified;
27
- }
28
-
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3VwcG9zaXRpb24vdW5xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbk5vZGUsIHN1cHBvc2l0aW9ucywgY29udGV4dCkge1xuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShzdXBwb3NpdGlvbk5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3VwcG9zaXRpb25WZXJpZmllZCA9IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbiA9IEFzc2VydGlvbi5mcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBzdXBwb3NpdGlvbnMucHVzaChzdXBwb3NpdGlvbik7XG4gIH1cblxuICByZXR1cm4gc3VwcG9zaXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdXBwb3NpdGlvbiIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25Ob2RlIiwic3VwcG9zaXRpb25zIiwiY29udGV4dCIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJzdXBwb3NpdGlvbiIsIkFzc2VydGlvbiIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7OzhEQVBGO2dFQUNpQjtxQkFFYjs7Ozs7O0FBRTFCLElBQU1DLGdDQUFnQ0MsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixrQkFBa0JHLGVBQWUsRUFBRUMsWUFBWSxFQUFFQyxPQUFPLEVBQUU7SUFDaEYsSUFBTUMsMkJBQTJCTCw4QkFBOEJFLGtCQUN6REksK0JBQStCQyxJQUFBQSxvQkFBMEIsRUFBQ0YsMEJBQTBCRCxVQUNwRkksc0JBQXNCRjtJQUU1QixJQUFJRSxxQkFBcUI7UUFDdkIsSUFBTUMsY0FBY0Msa0JBQVMsQ0FBQ0MsNEJBQTRCLENBQUNOO1FBRTNERixhQUFhUyxJQUFJLENBQUNIO0lBQ3BCLENBQUM7SUFFRCxPQUFPRDtBQUNUIn0=
package/src/mixins/log.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- import { levels } from "necessary";
4
-
5
- const { TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL, FATAL_LEVEL } = levels;
6
-
7
- function trace(message) { this.log(TRACE_LEVEL, message); }
8
-
9
- function debug(message) { this.log(DEBUG_LEVEL, message); }
10
-
11
- function info(message) { this.log(INFO_LEVEL, message); }
12
-
13
- function warning(message) { this.log(WARNING_LEVEL, message); }
14
-
15
- function error(message) { this.log(ERROR_LEVEL, message); }
16
-
17
- function fatal(message) { this.log(FATAL_LEVEL, message); }
18
-
19
- const logMixins = {
20
- trace,
21
- debug,
22
- info,
23
- warning,
24
- error,
25
- fatal
26
- };
27
-
28
- export default logMixins;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- import Assertion from "../assertion";
4
- import verifyUnqualifiedStatement from "../verify/statement/unqualified";
5
-
6
- import { nodeQuery } from "../utilities/query";
7
-
8
- const unqualifiedStatementNodeQuery = nodeQuery("/supposition/unqualifiedStatement!");
9
-
10
- export default function verifySupposition(suppositionNode, suppositions, context) {
11
- const unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode),
12
- unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, context),
13
- suppositionVerified = unqualifiedStatementVerified;
14
-
15
- if (suppositionVerified) {
16
- const supposition = Assertion.fromUnqualifiedStatementNode(unqualifiedStatementNode);
17
-
18
- suppositions.push(supposition);
19
- }
20
-
21
- return suppositionVerified;
22
- }