occam-verify-cli 0.0.869 → 0.0.871

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 (129) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +13 -13
  2. package/lib/conclusion.js +3 -3
  3. package/lib/context/file.js +77 -73
  4. package/lib/equality.js +2 -4
  5. package/lib/equivalence.js +1 -1
  6. package/lib/label.js +5 -6
  7. package/lib/metaLemmaMetatheorem.js +13 -13
  8. package/lib/mixins/context.js +28 -28
  9. package/lib/premise.js +4 -4
  10. package/lib/rule.js +13 -13
  11. package/lib/ruleNames.js +1 -29
  12. package/lib/substitution/metastatementForMetavariable.js +3 -2
  13. package/lib/substitution/statementForMetavariable.js +27 -64
  14. package/lib/substitution/termForVariable.js +5 -5
  15. package/lib/utilities/name.js +8 -8
  16. package/lib/utilities/node.js +14 -14
  17. package/lib/utilities/query.js +4 -9
  18. package/lib/utilities/tokens.js +6 -6
  19. package/lib/utilities/verifier.js +86 -0
  20. package/lib/verifier/node/metastatement.js +41 -28
  21. package/lib/verifier/node/statementAsCombinator.js +41 -28
  22. package/lib/verifier/node/termAsConstructor.js +30 -22
  23. package/lib/verifier/nodes/equality.js +27 -32
  24. package/lib/verifier/nodes/intrinsicLevel.js +25 -34
  25. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +270 -0
  26. package/lib/verifier/nodes/metaLevel.js +25 -34
  27. package/lib/verifier/nodes/statementAgainstCombinator.js +45 -49
  28. package/lib/verifier/nodes/termAgainstConstructor.js +24 -51
  29. package/lib/verify/argumentAgainstArgument.js +24 -0
  30. package/lib/verify/axiom.js +4 -4
  31. package/lib/verify/conjecture.js +4 -4
  32. package/lib/verify/containment.js +5 -5
  33. package/lib/verify/equality.js +9 -9
  34. package/lib/verify/label.js +8 -9
  35. package/lib/verify/labels.js +15 -8
  36. package/lib/verify/lemma.js +4 -4
  37. package/lib/verify/metaDerivation.js +19 -19
  38. package/lib/verify/metaLemma.js +4 -4
  39. package/lib/verify/metaproof.js +4 -6
  40. package/lib/verify/metastatement/qualified.js +3 -3
  41. package/lib/verify/metatheorem.js +4 -4
  42. package/lib/verify/metavariable.js +7 -5
  43. package/lib/verify/metavariableAgainstMetastatement.js +44 -0
  44. package/lib/verify/metavariableAgainstStatement.js +65 -0
  45. package/lib/verify/rule.js +4 -4
  46. package/lib/verify/statement/qualified.js +29 -29
  47. package/lib/verify/statement.js +4 -4
  48. package/lib/verify/statementAgainstMetaType.js +24 -0
  49. package/lib/verify/statementAtainstStatement.js +52 -0
  50. package/lib/verify/term.js +7 -8
  51. package/lib/verify/termAgainstTerm.js +22 -0
  52. package/lib/verify/termAgainstType.js +26 -0
  53. package/lib/verify/terms.js +2 -3
  54. package/lib/verify/theorem.js +4 -4
  55. package/lib/verify/type.js +7 -5
  56. package/lib/verify/typeAssertion.js +45 -40
  57. package/lib/verify/variable.js +7 -5
  58. package/lib/verify/variableAgainstTerm.js +70 -0
  59. package/package.json +4 -4
  60. package/src/axiomLemmaTheoremConjecture.js +13 -13
  61. package/src/conclusion.js +2 -2
  62. package/src/context/file.js +79 -73
  63. package/src/equality.js +3 -9
  64. package/src/equivalence.js +1 -1
  65. package/src/label.js +6 -7
  66. package/src/metaLemmaMetatheorem.js +13 -13
  67. package/src/mixins/context.js +17 -17
  68. package/src/premise.js +3 -3
  69. package/src/rule.js +13 -13
  70. package/src/ruleNames.js +0 -7
  71. package/src/substitution/metastatementForMetavariable.js +3 -1
  72. package/src/substitution/statementForMetavariable.js +32 -74
  73. package/src/substitution/termForVariable.js +3 -3
  74. package/src/utilities/name.js +7 -7
  75. package/src/utilities/node.js +13 -13
  76. package/src/utilities/query.js +3 -9
  77. package/src/utilities/tokens.js +4 -4
  78. package/src/utilities/verifier.js +46 -0
  79. package/src/verifier/node/metastatement.js +41 -34
  80. package/src/verifier/node/statementAsCombinator.js +39 -32
  81. package/src/verifier/node/termAsConstructor.js +30 -25
  82. package/src/verifier/nodes/equality.js +31 -36
  83. package/src/verifier/nodes/intrinsicLevel.js +30 -38
  84. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +222 -0
  85. package/src/verifier/nodes/metaLevel.js +30 -38
  86. package/src/verifier/nodes/statementAgainstCombinator.js +52 -55
  87. package/src/verifier/nodes/termAgainstConstructor.js +30 -71
  88. package/src/verify/argumentAgainstArgument.js +15 -0
  89. package/src/verify/axiom.js +4 -4
  90. package/src/verify/conjecture.js +4 -4
  91. package/src/verify/containment.js +4 -4
  92. package/src/verify/equality.js +8 -8
  93. package/src/verify/label.js +8 -9
  94. package/src/verify/labels.js +17 -7
  95. package/src/verify/lemma.js +4 -4
  96. package/src/verify/metaDerivation.js +18 -18
  97. package/src/verify/metaLemma.js +6 -6
  98. package/src/verify/metaproof.js +3 -6
  99. package/src/verify/metastatement/qualified.js +5 -4
  100. package/src/verify/metatheorem.js +4 -4
  101. package/src/verify/metavariable.js +7 -5
  102. package/src/verify/metavariableAgainstMetastatement.js +42 -0
  103. package/src/verify/metavariableAgainstStatement.js +77 -0
  104. package/src/verify/rule.js +4 -4
  105. package/src/verify/statement/qualified.js +35 -30
  106. package/src/verify/statement.js +5 -5
  107. package/src/verify/statementAgainstMetaType.js +21 -0
  108. package/src/verify/statementAtainstStatement.js +60 -0
  109. package/src/verify/term.js +13 -17
  110. package/src/verify/termAgainstTerm.js +20 -0
  111. package/src/verify/termAgainstType.js +28 -0
  112. package/src/verify/terms.js +1 -3
  113. package/src/verify/theorem.js +4 -4
  114. package/src/verify/type.js +7 -5
  115. package/src/verify/typeAssertion.js +56 -55
  116. package/src/verify/variable.js +7 -5
  117. package/src/verify/variableAgainstTerm.js +86 -0
  118. package/lib/verifier/nodes/metaLevelToIntrinsicLevel.js +0 -327
  119. package/lib/verifier/nodes/substitution.js +0 -223
  120. package/lib/verify/givenMetavariable.js +0 -31
  121. package/lib/verify/givenType.js +0 -31
  122. package/lib/verify/givenVariable.js +0 -31
  123. package/lib/verify/termAndGivenType.js +0 -39
  124. package/src/verifier/nodes/metaLevelToIntrinsicLevel.js +0 -219
  125. package/src/verifier/nodes/substitution.js +0 -125
  126. package/src/verify/givenMetavariable.js +0 -31
  127. package/src/verify/givenType.js +0 -31
  128. package/src/verify/givenVariable.js +0 -31
  129. package/src/verify/termAndGivenType.js +0 -37
@@ -0,0 +1,70 @@
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 verifyVariableAgainstTerm;
9
+ }
10
+ });
11
+ var _term = /*#__PURE__*/ _interop_require_default(require("../verify/term"));
12
+ var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
13
+ var _array = require("../utilities/array");
14
+ var _query = require("../utilities/query");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ var variableNodeQuery = (0, _query.nodeQuery)("/term/variable");
21
+ function verifyVariableAgainstTerm(variableNode, termNode, substitutions, localContextA, localContextB, verifyAhead) {
22
+ var variableVerifiedAgainstTerm = false;
23
+ var substitution = substitutions.find(function(substitution) {
24
+ var substitutionMatchesVariableNodeA = substitution.matchVariableNode(variableNode);
25
+ if (substitutionMatchesVariableNodeA) {
26
+ return true;
27
+ }
28
+ }) || null;
29
+ if (substitution !== null) {
30
+ var termNodeMatches = substitution.matchTermNode(termNode);
31
+ if (termNodeMatches) {
32
+ var verifiedAhead = verifyAhead();
33
+ variableVerifiedAgainstTerm = verifiedAhead; ///
34
+ }
35
+ } else {
36
+ var variableA = localContextA.findVariableByVariableNode(variableNode);
37
+ if (variableA !== null) {
38
+ var terms = [], termVerified = (0, _term.default)(termNode, terms, localContextB, function() {
39
+ var verifiedAhead = false;
40
+ var firstTerm = (0, _array.first)(terms), termB = firstTerm, variableB = variableFromTerm(termB, localContextB);
41
+ if (variableA === variableB) {
42
+ verifiedAhead = verifyAhead();
43
+ } else {
44
+ var term = termB, variable = variableA, termType = term.getType(), variableType = variable.getType(), variableTypeEqualToOrSuperTypeOfTermType = variableType.isEqualToOrSuperTypeOf(termType);
45
+ if (variableTypeEqualToOrSuperTypeOfTermType) {
46
+ var termForVariableSubstitution = _termForVariable.default.fromVariableNodeAndTermNode(variableNode, termNode), substitution = termForVariableSubstitution; ///
47
+ substitutions.push(substitution);
48
+ verifiedAhead = verifyAhead();
49
+ if (!verifiedAhead) {
50
+ substitutions.pop();
51
+ }
52
+ }
53
+ }
54
+ return verifiedAhead;
55
+ });
56
+ variableVerifiedAgainstTerm = termVerified; ///
57
+ }
58
+ }
59
+ return variableVerifiedAgainstTerm;
60
+ }
61
+ function variableFromTerm(term, localContext) {
62
+ var variable = null;
63
+ var termNode = term.getNode(), variableNode = variableNodeQuery(termNode);
64
+ if (variableNode !== null) {
65
+ variable = localContext.findVariableByVariableNode(variableNode);
66
+ }
67
+ return variable;
68
+ }
69
+
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdmFyaWFibGVBZ2FpbnN0VGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlWYXJpYWJsZUFnYWluc3RUZXJtKHZhcmlhYmxlTm9kZSwgdGVybU5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdFRlcm0gPSBmYWxzZTtcblxuICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmQoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNWYXJpYWJsZU5vZGVBID0gc3Vic3RpdHV0aW9uLm1hdGNoVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlc1ZhcmlhYmxlTm9kZUEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gc3Vic3RpdHV0aW9uLm1hdGNoVGVybU5vZGUodGVybU5vZGUpO1xuXG4gICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgIHZhcmlhYmxlVmVyaWZpZWRBZ2FpbnN0VGVybSA9IHZlcmlmaWVkQWhlYWQ7ICAvLy9cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmFyaWFibGVBID0gbG9jYWxDb250ZXh0QS5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgaWYgKHZhcmlhYmxlQSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHRCLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgICAgICB0ZXJtQiA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlQiA9IHZhcmlhYmxlRnJvbVRlcm0odGVybUIsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZUEgPT09IHZhcmlhYmxlQikge1xuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtQiwgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUEsIC8vL1xuICAgICAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVUeXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUgPSB2YXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uID0gVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLmZyb21WYXJpYWJsZU5vZGVBbmRUZXJtTm9kZSh2YXJpYWJsZU5vZGUsIHRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25zLnB1c2goc3Vic3RpdHV0aW9uKTtcblxuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25zLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIHZhcmlhYmxlVmVyaWZpZWRBZ2FpbnN0VGVybSA9IHRlcm1WZXJpZmllZDsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YXJpYWJsZVZlcmlmaWVkQWdhaW5zdFRlcm07XG59XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVRlcm0odGVybSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufSJdLCJuYW1lcyI6WyJ2ZXJpZnlWYXJpYWJsZUFnYWluc3RUZXJtIiwidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGUiLCJ0ZXJtTm9kZSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInZlcmlmeUFoZWFkIiwidmFyaWFibGVWZXJpZmllZEFnYWluc3RUZXJtIiwic3Vic3RpdHV0aW9uIiwiZmluZCIsInN1YnN0aXR1dGlvbk1hdGNoZXNWYXJpYWJsZU5vZGVBIiwibWF0Y2hWYXJpYWJsZU5vZGUiLCJ0ZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlIiwidmVyaWZpZWRBaGVhZCIsInZhcmlhYmxlQSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidGVybXMiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwiZmlyc3RUZXJtIiwiZmlyc3QiLCJ0ZXJtQiIsInZhcmlhYmxlQiIsInZhcmlhYmxlRnJvbVRlcm0iLCJ0ZXJtIiwidmFyaWFibGUiLCJ0ZXJtVHlwZSIsImdldFR5cGUiLCJ2YXJpYWJsZVR5cGUiLCJ2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsInRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsIlRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21WYXJpYWJsZU5vZGVBbmRUZXJtTm9kZSIsInB1c2giLCJwb3AiLCJsb2NhbENvbnRleHQiLCJnZXROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7OzJEQVJEO3NFQUNpQjtxQkFFbEI7cUJBQ0k7Ozs7OztBQUUxQixJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUM7QUFFckIsU0FBU0YsMEJBQTBCRyxZQUFZLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsV0FBVztJQUNoSSxJQUFJQyw4QkFBOEI7SUFFbEMsSUFBTUMsZUFBZUwsY0FBY00sSUFBSSxDQUFDLFNBQUNEO1FBQ3ZDLElBQU1FLG1DQUFtQ0YsYUFBYUcsaUJBQWlCLENBQUNWO1FBRXhFLElBQUlTLGtDQUFrQztZQUNwQyxPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRU4sSUFBSUYsaUJBQWlCLE1BQU07UUFDekIsSUFBTUksa0JBQWtCSixhQUFhSyxhQUFhLENBQUNYO1FBRW5ELElBQUlVLGlCQUFpQjtZQUNuQixJQUFNRSxnQkFBZ0JSO1lBRXRCQyw4QkFBOEJPLGVBQWdCLEdBQUc7UUFDbkQ7SUFDRixPQUFPO1FBQ0wsSUFBTUMsWUFBWVgsY0FBY1ksMEJBQTBCLENBQUNmO1FBRTNELElBQUljLGNBQWMsTUFBTTtZQUN0QixJQUFNRSxRQUFRLEVBQUUsRUFDVkMsZUFBZUMsSUFBQUEsYUFBVSxFQUFDakIsVUFBVWUsT0FBT1osZUFBZTtnQkFDeEQsSUFBSVMsZ0JBQWdCO2dCQUVwQixJQUFNTSxZQUFZQyxJQUFBQSxZQUFLLEVBQUNKLFFBQ2xCSyxRQUFRRixXQUNSRyxZQUFZQyxpQkFBaUJGLE9BQU9qQjtnQkFFMUMsSUFBSVUsY0FBY1EsV0FBVztvQkFDM0JULGdCQUFnQlI7Z0JBQ2xCLE9BQU87b0JBQ0wsSUFBTW1CLE9BQU9ILE9BQ1BJLFdBQVdYLFdBQ1hZLFdBQVdGLEtBQUtHLE9BQU8sSUFDdkJDLGVBQWVILFNBQVNFLE9BQU8sSUFDL0JFLDJDQUEyQ0QsYUFBYUUsc0JBQXNCLENBQUNKO29CQUVyRixJQUFJRywwQ0FBMEM7d0JBQzVDLElBQU1FLDhCQUE4QkMsd0JBQTJCLENBQUNDLDJCQUEyQixDQUFDakMsY0FBY0MsV0FDcEdNLGVBQWV3Qiw2QkFBOEIsR0FBRzt3QkFFdEQ3QixjQUFjZ0MsSUFBSSxDQUFDM0I7d0JBRW5CTSxnQkFBZ0JSO3dCQUVoQixJQUFJLENBQUNRLGVBQWU7NEJBQ2xCWCxjQUFjaUMsR0FBRzt3QkFDbkI7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEsT0FBT3RCO1lBQ1Q7WUFFTlAsOEJBQThCVyxjQUFlLEdBQUc7UUFDbEQ7SUFDRjtJQUVBLE9BQU9YO0FBQ1Q7QUFFQSxTQUFTaUIsaUJBQWlCQyxJQUFJLEVBQUVZLFlBQVk7SUFDMUMsSUFBSVgsV0FBVztJQUVmLElBQU14QixXQUFXdUIsS0FBS2EsT0FBTyxJQUN2QnJDLGVBQWVGLGtCQUFrQkc7SUFFdkMsSUFBSUQsaUJBQWlCLE1BQU07UUFDekJ5QixXQUFXVyxhQUFhckIsMEJBQTBCLENBQUNmO0lBQ3JEO0lBRUEsT0FBT3lCO0FBQ1QifQ==
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.869",
4
+ "version": "0.0.871",
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.28",
14
14
  "necessary": "^14.0.1",
15
- "occam-custom-grammars": "^5.0.776",
16
- "occam-entities": "^1.0.133",
17
- "occam-file-system": "^6.0.175",
15
+ "occam-custom-grammars": "^5.0.777",
16
+ "occam-entities": "^1.0.134",
17
+ "occam-file-system": "^6.0.176",
18
18
  "occam-grammar-utilities": "^8.0.205",
19
19
  "occam-query": "^3.1.174"
20
20
  },
@@ -32,19 +32,6 @@ export default class AxiomLemmaTheoremConjecture {
32
32
  return this.localContext;
33
33
  }
34
34
 
35
- matchLabelNode(labelNode) {
36
- const labelNodeMatches = this.labels.some((label) => {
37
- const node = labelNode, ///
38
- labelMatchesNode = label.matchNode(node);
39
-
40
- if (labelMatchesNode) {
41
- return true;
42
- }
43
- });
44
-
45
- return labelNodeMatches;
46
- }
47
-
48
35
  matchStatement(statementNode, statementLocalContext) {
49
36
  let statementNatches;
50
37
 
@@ -79,6 +66,19 @@ export default class AxiomLemmaTheoremConjecture {
79
66
  return statementNatches;
80
67
  }
81
68
 
69
+ matchLabelMetavariableNode(labelMetavariableNode) {
70
+ const labelMetavariableNodeMatches = this.labels.some((label) => {
71
+ const node = labelMetavariableNode, ///
72
+ labelMatchesNode = label.matchNode(node);
73
+
74
+ if (labelMatchesNode) {
75
+ return true;
76
+ }
77
+ });
78
+
79
+ return labelMetavariableNodeMatches;
80
+ }
81
+
82
82
  toJSON(tokens) {
83
83
  const labelsJSON = this.labels.map((label) => {
84
84
  const labelJSON = label.toJSON(tokens);
package/src/conclusion.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
4
- import metaLevelToIntrinsicLevelNodesVerifier from "./verifier/nodes/metaLevelToIntrinsicLevel";
4
+ import intrinsicLevelAgainstMetaLevelNodesVerifier from "./verifier/nodes/intrinsicLevelAgainstMetaLevel";
5
5
 
6
6
  import { nodeAsString } from "./utilities/string";
7
7
  import { metastatementNodeFromMetastatementString } from "./utilities/node";
@@ -20,7 +20,7 @@ export default class Conclusion {
20
20
  nonTerminalNodeB = statementNode, ///
21
21
  localContextA = localContext, ///
22
22
  localContextB = statementLocalContext, ///
23
- nonTerminalNodeVerified = metaLevelToIntrinsicLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
23
+ nonTerminalNodeVerified = intrinsicLevelAgainstMetaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
24
24
  const verifyAhead = true;
25
25
 
26
26
  return verifyAhead;
@@ -115,6 +115,12 @@ export default class FileContext {
115
115
  push(labels, conjectureLabels);
116
116
  });
117
117
 
118
+ this.metatheorems.forEach((metatheorem) => {
119
+ const metatheoremLabels = metatheorem.getLabels();
120
+
121
+ push(labels, metatheoremLabels);
122
+ });
123
+
118
124
  if (includeRelease) {
119
125
  const releaseContextLabels = this.releaseContext.getLabels();
120
126
 
@@ -308,8 +314,49 @@ export default class FileContext {
308
314
  return type;
309
315
  }
310
316
 
311
- findLabelByLabelNode(labelNode) {
312
- const name = labelNode, ///
317
+ findVariableByVariableNode(variableNode) {
318
+ const node = variableNode, ///
319
+ variables = this.getVariables(),
320
+ variable = variables.find((variable) => {
321
+ const nodeMatches = variable.matchNode(node);
322
+
323
+ if (nodeMatches) {
324
+ return true;
325
+ }
326
+ }) || null;
327
+
328
+ return variable;
329
+ }
330
+
331
+ findMetaTypeByMetaTypeNode(metaTypeNode) {
332
+ const metaTypes = this.getMetaTypes(),
333
+ metaType = metaTypes.find((metaType) => {
334
+ const matches = metaType.matchMetaTypeNode(metaTypeNode);
335
+
336
+ if (matches) {
337
+ return true;
338
+ }
339
+ }) || null;
340
+
341
+ return metaType;
342
+ }
343
+
344
+ findMetavariableByMetavariableNode(metavariableNode) {
345
+ const node = metavariableNode, ///
346
+ metavariables = this.getMetavariables(),
347
+ metavariable = metavariables.find((metavariable) => {
348
+ const matches = metavariable.matchNode(node);
349
+
350
+ if (matches) {
351
+ return true;
352
+ }
353
+ }) || null;
354
+
355
+ return metavariable;
356
+ }
357
+
358
+ findLabelByLabelMetavariableNode(labelMetavariableNode) {
359
+ const name = labelMetavariableNode, ///
313
360
  labels = this.getLabels(),
314
361
  label = labels.find((label) => {
315
362
  const matches = label.matchNode(name);
@@ -322,12 +369,12 @@ export default class FileContext {
322
369
  return label;
323
370
  }
324
371
 
325
- findRuleByLabelNode(labelNode) {
372
+ findRuleByLabelMetavariableNode(labelMetavariableNode) {
326
373
  const rules = this.getRules(),
327
374
  rule = rules.find((rule) => {
328
- const ruleMatchesLabelNode = rule.matchLabelNode(labelNode);
375
+ const ruleMatchesLabelMetavariableNode = rule.matchLabelMetavariableNode(labelMetavariableNode);
329
376
 
330
- if (ruleMatchesLabelNode) {
377
+ if (ruleMatchesLabelMetavariableNode) {
331
378
  return true;
332
379
  }
333
380
  }) || null;
@@ -335,12 +382,12 @@ export default class FileContext {
335
382
  return rule;
336
383
  }
337
384
 
338
- findAxiomByLabelNode(labelNode) {
385
+ findAxiomByLabelMetavariableNode(labelMetavariableNode) {
339
386
  const axioms = this.getAxioms(),
340
387
  axiom = axioms.find((axiom) => {
341
- const axiomMatchesLabelNode = axiom.matchLabelNode(labelNode);
388
+ const axiomMatchesLabelMetavariableNode = axiom.matchLabelMetavariableNode(labelMetavariableNode);
342
389
 
343
- if (axiomMatchesLabelNode) {
390
+ if (axiomMatchesLabelMetavariableNode) {
344
391
  return true;
345
392
  }
346
393
  }) || null;
@@ -348,12 +395,12 @@ export default class FileContext {
348
395
  return axiom;
349
396
  }
350
397
 
351
- findLemmaByLabelNode(labelNode) {
398
+ findLemmaByLabelMetavariableNode(labelMetavariableNode) {
352
399
  const lemmas = this.getLemmas(),
353
400
  lemma = lemmas.find((lemma) => {
354
- const lemmaMatchesLabelNode = lemma.matchLabelNode(labelNode);
401
+ const lemmaMatchesLabelMetavariableNode = lemma.matchLabelMetavariableNode(labelMetavariableNode);
355
402
 
356
- if (lemmaMatchesLabelNode) {
403
+ if (lemmaMatchesLabelMetavariableNode) {
357
404
  return true;
358
405
  }
359
406
  }) || null;
@@ -361,12 +408,12 @@ export default class FileContext {
361
408
  return lemma;
362
409
  }
363
410
 
364
- findTheoremByLabelNode(labelNode) {
411
+ findTheoremByLabelMetavariableNode(labelMetavariableNode) {
365
412
  const theorems = this.getTheorems(),
366
413
  theorem = theorems.find((theorem) => {
367
- const theoremMatchesLabelNode = theorem.matchLabelNode(labelNode);
414
+ const theoremMatchesLabelMetavariableNode = theorem.matchLabelMetavariableNode(labelMetavariableNode);
368
415
 
369
- if (theoremMatchesLabelNode) {
416
+ if (theoremMatchesLabelMetavariableNode) {
370
417
  return true;
371
418
  }
372
419
  }) || null;
@@ -374,12 +421,12 @@ export default class FileContext {
374
421
  return theorem;
375
422
  }
376
423
 
377
- findMetaLemmaByLabelNode(labelNode) {
424
+ findMetaLemmaByLabelMetavariableNode(labelMetavariableNode) {
378
425
  const metaLemmas = this.getMetaLemmas(),
379
426
  metaLemma = metaLemmas.find((metaLemma) => {
380
- const metaLemmaMatchesLabelNode = metaLemma.matchLabelNode(labelNode);
427
+ const metaLemmaMatchesLabelMetavariableNode = metaLemma.matchLabelMetavariableNode(labelMetavariableNode);
381
428
 
382
- if (metaLemmaMatchesLabelNode) {
429
+ if (metaLemmaMatchesLabelMetavariableNode) {
383
430
  return true;
384
431
  }
385
432
  }) || null;
@@ -387,39 +434,12 @@ export default class FileContext {
387
434
  return metaLemma;
388
435
  }
389
436
 
390
- findVariableByVariableNode(variableNode) {
391
- const node = variableNode, ///
392
- variables = this.getVariables(),
393
- variable = variables.find((variable) => {
394
- const nodeMatches = variable.matchNode(node);
395
-
396
- if (nodeMatches) {
397
- return true;
398
- }
399
- }) || null;
400
-
401
- return variable;
402
- }
403
-
404
- findMetaTypeByMetaTypeNode(metaTypeNode) {
405
- const metaTypes = this.getMetaTypes(),
406
- metaType = metaTypes.find((metaType) => {
407
- const matches = metaType.matchMetaTypeNode(metaTypeNode);
408
-
409
- if (matches) {
410
- return true;
411
- }
412
- }) || null;
413
-
414
- return metaType;
415
- }
416
-
417
- findConjectureByLabelNode(labelNode) {
437
+ findConjectureByLabelMetavariableNode(labelMetavariableNode) {
418
438
  const conjectures = this.getConjectures(),
419
439
  conjecture = conjectures.find((conjecture) => {
420
- const conjectureMatchesLabelNode = conjecture.matchLabelNode(labelNode);
440
+ const conjectureMatchesLabelMetavariableNode = conjecture.matchLabelMetavariableNode(labelMetavariableNode);
421
441
 
422
- if (conjectureMatchesLabelNode) {
442
+ if (conjectureMatchesLabelMetavariableNode) {
423
443
  return true;
424
444
  }
425
445
  }) || null;
@@ -427,26 +447,12 @@ export default class FileContext {
427
447
  return conjecture;
428
448
  }
429
449
 
430
- findMetavariableByMetavariableNode(metavariableNode) {
431
- const node = metavariableNode, ///
432
- metavariables = this.getMetavariables(),
433
- metavariable = metavariables.find((metavariable) => {
434
- const matches = metavariable.matchNode(node);
435
-
436
- if (matches) {
437
- return true;
438
- }
439
- }) || null;
440
-
441
- return metavariable;
442
- }
443
-
444
- findMetatheoremByLabelNode(labelNode) {
450
+ findMetatheoremByLabelMetavariableNode(labelMetavariableNode) {
445
451
  const metatheorems = this.getMetatheorems(),
446
452
  metatheorem = metatheorems.find((metatheorem) => {
447
- const metatheoremMatchesLabelNode = metatheorem.matchLabelNode(labelNode);
453
+ const metatheoremMatchesLabelMetavariableNode = metatheorem.matchLabelMetavariableNode(labelMetavariableNode);
448
454
 
449
- if (metatheoremMatchesLabelNode) {
455
+ if (metatheoremMatchesLabelMetavariableNode) {
450
456
  return true;
451
457
  }
452
458
  }) || null;
@@ -468,13 +474,6 @@ export default class FileContext {
468
474
  return typePresent;
469
475
  }
470
476
 
471
- isLabelPresentByLabelNode(labelNode) {
472
- const label = this.findLabelByLabelNode(labelNode),
473
- labelPresent = (label !== null);
474
-
475
- return labelPresent;
476
- }
477
-
478
477
  isVariablePresentByVariableNode(variableNode) {
479
478
  const variable = this.findVariableByVariableNode(variableNode),
480
479
  variablePresent = (variable !== null);
@@ -482,6 +481,13 @@ export default class FileContext {
482
481
  return variablePresent;
483
482
  }
484
483
 
484
+ isLabelPresentByLabelMetavariableNode(labelMetavariableNode) {
485
+ const label = this.findLabelByLabelMetavariableNode(labelMetavariableNode),
486
+ labelPresent = (label !== null);
487
+
488
+ return labelPresent;
489
+ }
490
+
485
491
  isMetavariablePresentByMetavariableNode(metavariableNode) {
486
492
  const metavariable = this.findMetavariableByMetavariableNode(metavariableNode),
487
493
  metavariablePresent = (metavariable !== null);
@@ -727,11 +733,11 @@ export default class FileContext {
727
733
  lemmasJSON = lemmas, ///
728
734
  theoremsJSON = theorems, ///
729
735
  variablesJSON = variables, ///
730
- metaLemmasJSON = metaLemmas || [], ///
736
+ metaLemmasJSON = metaLemmas, ///
731
737
  conjecturesJSON = conjectures, ///
732
738
  combinatorsJSON = combinators, ///
733
739
  constructorsJSON = constructors, ///
734
- metatheoremsJSON = metatheorems || [], ///
740
+ metatheoremsJSON = metatheorems, ///
735
741
  metavariablesJSON = metavariables; ///
736
742
 
737
743
  typesJSON.forEach((typeJSON) => {
package/src/equality.js CHANGED
@@ -29,17 +29,11 @@ export default class Equality {
29
29
  }
30
30
 
31
31
  isEqual(localContext) {
32
- const leftTerm = this.getLeftTerm(),
33
- rightTerm = this.getRightTerm(),
34
- leftTermNode = leftTerm.getNode(),
35
- rightTermNode = rightTerm.getNode(),
32
+ const leftTermNode = this.leftTerm.getNode(),
33
+ rightTermNode = this.rightTerm.getNode(),
36
34
  nonTerminalNodeA = leftTermNode, ///
37
35
  nonTerminalNodeB = rightTermNode, ///
38
- equivalences = localContext.getEquivalences();
39
-
40
- localContext = this; ///
41
-
42
- const nonTerminalNodeVerified = equalityNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, equivalences, localContext, () => {
36
+ nonTerminalNodeVerified = equalityNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, () => {
43
37
  const verifiedAhead = true;
44
38
 
45
39
  return verifiedAhead;
@@ -102,7 +102,7 @@ export default class Equivalence {
102
102
  if (termNodeMatches) {
103
103
  return true;
104
104
  }
105
- })
105
+ });
106
106
 
107
107
  return termNodesMatch;
108
108
  }
package/src/label.js CHANGED
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { nodeAsString } from "./utilities/string";
4
- import { labelNameFromLabelNode } from "./utilities/name";
5
- import { labelNodeFromLabelString } from "./utilities/node";
4
+ import { metavariableNodeFromMetavariableString } from "./utilities/node";
6
5
 
7
6
  export default class Label {
8
7
  constructor(node) {
@@ -32,19 +31,19 @@ export default class Label {
32
31
  return json;
33
32
  }
34
33
 
35
- static fromLabelNode(labelNode) {
36
- const node = labelNode, ///
34
+ static fromMetavariableNode(metavariableNode) {
35
+ const node = metavariableNode, ///
37
36
  variable = new Label(node);
38
37
 
39
38
  return variable;
40
39
  }
41
40
 
42
41
  static fromJSONAndFileContext(json, fileContext) {
43
- const labelString = json, ///
42
+ const metavariableString = json, ///
44
43
  lexer = fileContext.getLexer(),
45
44
  parser = fileContext.getParser(),
46
- labelNode = labelNodeFromLabelString(labelString, lexer, parser),
47
- node = labelNode, ///
45
+ metavariableNode = metavariableNodeFromMetavariableString(metavariableString, lexer, parser),
46
+ node = metavariableNode, ///
48
47
  label = new Label(node);
49
48
 
50
49
  return label;
@@ -32,19 +32,6 @@ export default class MetaLemmaMetatheorem {
32
32
  return this.localContext;
33
33
  }
34
34
 
35
- matchLabelNode(labelNode) {
36
- const labelNodeMatches = this.labels.some((label) => {
37
- const node = labelNode, ///
38
- labelMatchesNode = label.matchNode(node);
39
-
40
- if (labelMatchesNode) {
41
- return true;
42
- }
43
- });
44
-
45
- return labelNodeMatches;
46
- }
47
-
48
35
  matchMetastatement(metastatementNode, metastatementLocalContext) {
49
36
  let metastatementNatches;
50
37
 
@@ -79,6 +66,19 @@ export default class MetaLemmaMetatheorem {
79
66
  return metastatementNatches;
80
67
  }
81
68
 
69
+ matchLabelMetavariableNode(labelMetavariableNode) {
70
+ const labelMetavariableNodeMatches = this.labels.some((label) => {
71
+ const node = labelMetavariableNode, ///
72
+ labelMatchesNode = label.matchNode(node);
73
+
74
+ if (labelMatchesNode) {
75
+ return true;
76
+ }
77
+ });
78
+
79
+ return labelMetavariableNodeMatches;
80
+ }
81
+
82
82
  toJSON(tokens) {
83
83
  const labelsJSON = this.labels.map((label) => {
84
84
  const labelJSON = label.toJSON(tokens);
@@ -26,25 +26,25 @@ function getConstructors() { return this.context.getConstructors(); }
26
26
 
27
27
  function findTypeByTypeName(typeName) { return this.context.findTypeByTypeName(typeName); }
28
28
 
29
- function findTypeByTypeNode(labelNode) { return this.context.findTypeByTypeNode(labelNode); }
29
+ function findTypeByTypeNode(labelMetavariableNode) { return this.context.findTypeByTypeNode(labelMetavariableNode); }
30
30
 
31
- function findLabelByLabelNode(labelNode) { return this.context.findLabelByLabelNode(labelNode); }
31
+ function isTypePresentByTypeName(typeName) { return this.context.isTypePresentByTypeName(typeName); }
32
32
 
33
- function findRuleByLabelNode(labelNode) { return this.context.findRuleByLabelNode(labelNode); }
33
+ function isTypePresentByTypeNode(typeNode) { return this.context.isTypePresentByTypeNode(typeNode); }
34
34
 
35
- function findAxiomByLabelNode(labelNode) { return this.context.findAxiomByLabelNode(labelNode); }
35
+ function findLabelByLabelMetavariableNode(labelMetavariableNode) { return this.context.findLabelByLabelMetavariableNode(labelMetavariableNode); }
36
36
 
37
- function findLemmaByLabelNode(labelNode) { return this.context.findLemmaByLabelNode(labelNode); }
37
+ function findRuleByLabelMetavariableNode(labelMetavariableNode) { return this.context.findRuleByLabelMetavariableNode(labelMetavariableNode); }
38
38
 
39
- function findTheoremByLabelNode(labelNode) { return this.context.findTheoremByLabelNode(labelNode); }
39
+ function findAxiomByLabelMetavariableNode(labelMetavariableNode) { return this.context.findAxiomByLabelMetavariableNode(labelMetavariableNode); }
40
40
 
41
- function findConjectureByLabelNode(labelNode) { return this.context.findConjectureByLabelNode(labelNode); }
41
+ function findLemmaByLabelMetavariableNode(labelMetavariableNode) { return this.context.findLemmaByLabelMetavariableNode(labelMetavariableNode); }
42
42
 
43
- function isTypePresentByTypeName(typeName) { return this.context.isTypePresentByTypeName(typeName); }
43
+ function findTheoremByLabelMetavariableNode(labelMetavariableNode) { return this.context.findTheoremByLabelMetavariableNode(labelMetavariableNode); }
44
44
 
45
- function isTypePresentByTypeNode(typeNode) { return this.context.isTypePresentByTypeNode(typeNode); }
45
+ function findConjectureByLabelMetavariableNode(labelMetavariableNode) { return this.context.findConjectureByLabelMetavariableNode(labelMetavariableNode); }
46
46
 
47
- function isLabelPresentByLabelNode(labelNode) { return this.context.isLabelPresentByLabelNode(labelNode); }
47
+ function isLabelPresentByLabelMetavariableNode(labelMetavariableNode) { return this.context.isLabelPresentByLabelMetavariableNode(labelMetavariableNode); }
48
48
 
49
49
  function nodeAsString(node) { return this.context.nodeAsString(node); }
50
50
 
@@ -65,15 +65,15 @@ const contextMixins = {
65
65
  getConstructors,
66
66
  findTypeByTypeName,
67
67
  findTypeByTypeNode,
68
- findLabelByLabelNode,
69
- findRuleByLabelNode,
70
- findAxiomByLabelNode,
71
- findLemmaByLabelNode,
72
- findTheoremByLabelNode,
73
- findConjectureByLabelNode,
74
68
  isTypePresentByTypeName,
75
69
  isTypePresentByTypeNode,
76
- isLabelPresentByLabelNode,
70
+ findLabelByLabelMetavariableNode,
71
+ findRuleByLabelMetavariableNode,
72
+ findAxiomByLabelMetavariableNode,
73
+ findLemmaByLabelMetavariableNode,
74
+ findTheoremByLabelMetavariableNode,
75
+ findConjectureByLabelMetavariableNode,
76
+ isLabelPresentByLabelMetavariableNode,
77
77
  nodeAsString,
78
78
  nodesAsString
79
79
  };
package/src/premise.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  import LocalContext from "./context/local";
4
4
  import metaLevelNodesVerifier from "./verifier/nodes/metaLevel";
5
- import metaLevelToIntrinsicLevelNodesVerifier from "./verifier/nodes/metaLevelToIntrinsicLevel";
5
+ import intrinsicLevelAgainstMetaLevelNodesVerifier from "./verifier/nodes/intrinsicLevelAgainstMetaLevel";
6
6
 
7
7
  import { match } from "./utilities/array";
8
8
  import { nodeAsString } from "./utilities/string";
@@ -48,7 +48,7 @@ export default class Premise {
48
48
  fileContextA = fileContext, ///
49
49
  localContextA = LocalContext.fromFileContext(fileContextA),
50
50
  localContextB = statementLocalContext, ///
51
- nonTerminalNodeVerified = metaLevelToIntrinsicLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
51
+ nonTerminalNodeVerified = intrinsicLevelAgainstMetaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
52
52
  const verifiedAhead = true;
53
53
 
54
54
  return verifiedAhead;
@@ -70,7 +70,7 @@ export default class Premise {
70
70
  fileContextA = fileContext, ///
71
71
  localContextA = LocalContext.fromFileContext(fileContextA),
72
72
  localContextB = statementLocalContext, ///
73
- nonTerminalNodeVerified = metaLevelToIntrinsicLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
73
+ nonTerminalNodeVerified = intrinsicLevelAgainstMetaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
74
74
  const verifiedAhead = true;
75
75
 
76
76
  return verifiedAhead;
package/src/rule.js CHANGED
@@ -31,19 +31,6 @@ export default class Rule {
31
31
  return this.fileContext;
32
32
  }
33
33
 
34
- matchLabelNode(labelNode) {
35
- const labelNodeMatches = this.labels.some((label) => {
36
- const node = labelNode, ///
37
- labelMatchesNode = label.matchNode(node);
38
-
39
- if (labelMatchesNode) {
40
- return true;
41
- }
42
- });
43
-
44
- return labelNodeMatches;
45
- }
46
-
47
34
  matchStatement(statementNode, statementLocalContext) {
48
35
  let statementNatches;
49
36
 
@@ -112,6 +99,19 @@ export default class Rule {
112
99
  return metastatementNatches;
113
100
  }
114
101
 
102
+ matchLabelMetavariableNode(labelMetavariableNode) {
103
+ const labelMetavariableNodeMatches = this.labels.some((label) => {
104
+ const node = labelMetavariableNode, ///
105
+ labelMatchesNode = label.matchNode(node);
106
+
107
+ if (labelMatchesNode) {
108
+ return true;
109
+ }
110
+ });
111
+
112
+ return labelMetavariableNodeMatches;
113
+ }
114
+
115
115
  toJSON(tokens) {
116
116
  const labelsJSON = this.labels.map((label) => {
117
117
  const labelJSON = label.toJSON(tokens);
package/src/ruleNames.js CHANGED
@@ -1,14 +1,7 @@
1
1
  "use strict";
2
2
 
3
- export const TERM_RULE_NAME = "term";
4
- export const TYPE_RULE_NAME = "type";
5
- export const LABEL_RULE_NAME = "label";
6
- export const VARIABLE_RULE_NAME = "variable";
7
- export const ARGUMENT_RULE_NAME = "argument";
8
3
  export const SUBPROOF_RULE_NAME = "subproof";
9
- export const STATEMENT_RULE_NAME = "statement";
10
4
  export const METAVARIABLE_RULE_NAME = "metavariable";
11
- export const METASTATEMENT_RULE_NAME = "metastatement";
12
5
  export const RULE_SUBPROOF_RULE_NAME = "ruleSubproof";
13
6
  export const META_SUBPROOF_RULE_NAME = "metaSubproof";
14
7
  export const META_ARGUMENT_RULE_NAME = "metaArgument";