occam-verify-cli 0.0.527 → 0.0.529

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 (197) hide show
  1. package/README.md +4 -0
  2. package/bin/abbreviations.js +5 -1
  3. package/bin/action/help.js +4 -0
  4. package/bin/action/verify.js +35 -13
  5. package/bin/actions.js +11 -6
  6. package/bin/defaults.js +4 -0
  7. package/bin/options.js +4 -0
  8. package/bin/utilities/releaseContext.js +5 -7
  9. package/lib/axiom.js +3 -3
  10. package/lib/axiomLemmaTheoremConjecture.js +5 -5
  11. package/lib/combinator.js +4 -3
  12. package/lib/conclusion.js +8 -7
  13. package/lib/conjecture.js +3 -3
  14. package/lib/consequence.js +6 -5
  15. package/lib/constants.js +8 -12
  16. package/lib/constructor.js +5 -4
  17. package/lib/context/file.js +13 -35
  18. package/lib/context/metaproof.js +12 -11
  19. package/lib/context/proof.js +11 -10
  20. package/lib/context/release/directory.js +6 -6
  21. package/lib/context/release/file.js +15 -26
  22. package/lib/context/release.js +32 -51
  23. package/lib/equality.js +5 -4
  24. package/lib/index.js +4 -4
  25. package/lib/label.js +4 -3
  26. package/lib/lemma.js +3 -3
  27. package/lib/log.js +146 -0
  28. package/lib/matcher.js +14 -23
  29. package/lib/metaTypeNames.js +13 -0
  30. package/lib/mixins/logging.js +13 -13
  31. package/lib/node/metastatement/bracketed.js +16 -0
  32. package/lib/node/statement/bracketed.js +16 -0
  33. package/lib/node/statement/combinator/bracketed.js +17 -0
  34. package/lib/node/statement/combinator/equality.js +17 -0
  35. package/lib/node/statement/equality.js +16 -0
  36. package/lib/ocmbinator/bracketed.js +3 -4
  37. package/lib/ocmbinator/equality.js +3 -4
  38. package/lib/premise.js +10 -9
  39. package/lib/rule.js +5 -5
  40. package/lib/step/metaproof.js +28 -25
  41. package/lib/step/proof.js +15 -14
  42. package/lib/substitution/metastatementForMetavariable.js +16 -13
  43. package/lib/substitution/statementForMetavariable.js +17 -18
  44. package/lib/substitution/termForVariable.js +8 -18
  45. package/lib/supposition.js +7 -6
  46. package/lib/theorem.js +3 -3
  47. package/lib/type.js +5 -5
  48. package/lib/utilities/metaproof.js +60 -0
  49. package/lib/utilities/node.js +56 -0
  50. package/lib/utilities/proof.js +60 -0
  51. package/lib/utilities/releaseContext.js +24 -12
  52. package/lib/utilities/string.js +1 -32
  53. package/lib/{matcher → verifier}/metastatementForMetavariable/conclusion.js +12 -12
  54. package/lib/{matcher → verifier}/metastatementForMetavariable/premise.js +12 -12
  55. package/lib/verifier/metastatementForMetavariable.js +198 -0
  56. package/lib/{matcher → verifier}/statementForMetavariable/conclusion.js +12 -12
  57. package/lib/{matcher → verifier}/statementForMetavariable/premise.js +12 -12
  58. package/lib/verifier/statementForMetavariable.js +203 -0
  59. package/lib/{matcher → verifier}/termForVariable/consequence.js +12 -12
  60. package/lib/{matcher → verifier}/termForVariable/supposition.js +12 -12
  61. package/lib/verifier/termForVariable.js +198 -0
  62. package/lib/verifier.js +92 -0
  63. package/lib/verify/assertion/type.js +6 -8
  64. package/lib/verify/axiom.js +3 -5
  65. package/lib/verify/conclusion.js +2 -4
  66. package/lib/verify/conjecture.js +3 -5
  67. package/lib/verify/consequence.js +2 -4
  68. package/lib/verify/declaration/combinator.js +1 -3
  69. package/lib/verify/declaration/constructor.js +1 -3
  70. package/lib/verify/declaration/topLevel.js +1 -3
  71. package/lib/verify/declaration/type.js +1 -3
  72. package/lib/verify/declaration/variable.js +1 -3
  73. package/lib/verify/derivation.js +1 -5
  74. package/lib/verify/label.js +1 -3
  75. package/lib/verify/lemma.js +3 -5
  76. package/lib/verify/metastatement/qualified.js +2 -4
  77. package/lib/verify/metastatement/unqualified.js +2 -4
  78. package/lib/verify/metastatement.js +1 -3
  79. package/lib/verify/premise.js +2 -4
  80. package/lib/verify/proof.js +3 -5
  81. package/lib/verify/rule.js +3 -5
  82. package/lib/verify/ruleDerivation.js +1 -5
  83. package/lib/verify/ruleProof.js +3 -5
  84. package/lib/verify/statement/qualified.js +2 -4
  85. package/lib/verify/statement/unqualified.js +2 -4
  86. package/lib/verify/statement.js +14 -17
  87. package/lib/verify/statementAsCombinator.js +4 -6
  88. package/lib/verify/supposition.js +2 -4
  89. package/lib/verify/term.js +4 -10
  90. package/lib/verify/termAsConstructor.js +6 -9
  91. package/lib/verify/theorem.js +3 -5
  92. package/lib/verify/type.js +5 -9
  93. package/lib/verify/variable.js +5 -9
  94. package/package.json +1 -1
  95. package/src/axiom.js +1 -1
  96. package/src/axiomLemmaTheoremConjecture.js +4 -4
  97. package/src/combinator.js +3 -3
  98. package/src/conclusion.js +7 -7
  99. package/src/conjecture.js +1 -1
  100. package/src/consequence.js +5 -5
  101. package/src/constants.js +2 -3
  102. package/src/constructor.js +4 -4
  103. package/src/context/file.js +6 -30
  104. package/src/context/metaproof.js +13 -10
  105. package/src/context/proof.js +11 -9
  106. package/src/context/release/directory.js +7 -7
  107. package/src/context/release/file.js +17 -32
  108. package/src/context/release.js +23 -32
  109. package/src/equality.js +6 -8
  110. package/src/index.js +2 -1
  111. package/src/label.js +3 -3
  112. package/src/lemma.js +1 -1
  113. package/src/log.js +116 -0
  114. package/src/matcher.js +11 -9
  115. package/src/metaTypeNames.js +3 -0
  116. package/src/mixins/logging.js +6 -6
  117. package/src/node/metastatement/bracketed.js +9 -0
  118. package/src/node/statement/bracketed.js +9 -0
  119. package/src/node/statement/combinator/bracketed.js +10 -0
  120. package/src/node/statement/combinator/equality.js +11 -0
  121. package/src/node/statement/equality.js +10 -0
  122. package/src/ocmbinator/bracketed.js +2 -5
  123. package/src/ocmbinator/equality.js +2 -5
  124. package/src/premise.js +9 -9
  125. package/src/rule.js +4 -4
  126. package/src/step/metaproof.js +32 -29
  127. package/src/step/proof.js +15 -14
  128. package/src/substitution/metastatementForMetavariable.js +10 -15
  129. package/src/substitution/statementForMetavariable.js +12 -24
  130. package/src/substitution/termForVariable.js +2 -30
  131. package/src/supposition.js +6 -6
  132. package/src/theorem.js +1 -1
  133. package/src/type.js +4 -4
  134. package/src/utilities/metaproof.js +62 -0
  135. package/src/utilities/node.js +73 -0
  136. package/src/utilities/proof.js +62 -0
  137. package/src/utilities/releaseContext.js +30 -12
  138. package/src/utilities/string.js +0 -47
  139. package/src/verifier/metastatementForMetavariable/conclusion.js +9 -0
  140. package/src/verifier/metastatementForMetavariable/premise.js +9 -0
  141. package/src/{matcher → verifier}/metastatementForMetavariable.js +2 -2
  142. package/src/verifier/statementForMetavariable/conclusion.js +9 -0
  143. package/src/verifier/statementForMetavariable/premise.js +9 -0
  144. package/src/{matcher → verifier}/statementForMetavariable.js +2 -2
  145. package/src/verifier/termForVariable/consequence.js +9 -0
  146. package/src/verifier/termForVariable/supposition.js +9 -0
  147. package/src/{matcher → verifier}/termForVariable.js +2 -2
  148. package/src/verifier.js +74 -0
  149. package/src/verify/assertion/type.js +5 -11
  150. package/src/verify/axiom.js +2 -8
  151. package/src/verify/conclusion.js +1 -7
  152. package/src/verify/conjecture.js +2 -8
  153. package/src/verify/consequence.js +1 -7
  154. package/src/verify/declaration/combinator.js +0 -6
  155. package/src/verify/declaration/constructor.js +0 -6
  156. package/src/verify/declaration/topLevel.js +0 -6
  157. package/src/verify/declaration/type.js +0 -6
  158. package/src/verify/declaration/variable.js +0 -6
  159. package/src/verify/derivation.js +0 -12
  160. package/src/verify/label.js +0 -6
  161. package/src/verify/lemma.js +4 -10
  162. package/src/verify/metastatement/qualified.js +1 -7
  163. package/src/verify/metastatement/unqualified.js +1 -7
  164. package/src/verify/metastatement.js +0 -6
  165. package/src/verify/premise.js +1 -7
  166. package/src/verify/proof.js +1 -7
  167. package/src/verify/rule.js +2 -8
  168. package/src/verify/ruleDerivation.js +0 -12
  169. package/src/verify/ruleProof.js +1 -7
  170. package/src/verify/statement/qualified.js +1 -7
  171. package/src/verify/statement/unqualified.js +1 -7
  172. package/src/verify/statement.js +24 -34
  173. package/src/verify/statementAsCombinator.js +3 -9
  174. package/src/verify/supposition.js +1 -7
  175. package/src/verify/term.js +3 -21
  176. package/src/verify/termAsConstructor.js +5 -13
  177. package/src/verify/theorem.js +2 -8
  178. package/src/verify/type.js +4 -13
  179. package/src/verify/variable.js +4 -13
  180. package/bin/callbacks.js +0 -48
  181. package/lib/callbacks.js +0 -75
  182. package/lib/context/release/combinator.js +0 -64
  183. package/lib/matcher/metastatementForMetavariable.js +0 -198
  184. package/lib/matcher/statementForMetavariable.js +0 -203
  185. package/lib/matcher/termForVariable.js +0 -198
  186. package/lib/mixins/callbacks.js +0 -27
  187. package/lib/utilities/substitution.js +0 -60
  188. package/src/callbacks.js +0 -39
  189. package/src/context/release/combinator.js +0 -39
  190. package/src/matcher/metastatementForMetavariable/conclusion.js +0 -9
  191. package/src/matcher/metastatementForMetavariable/premise.js +0 -9
  192. package/src/matcher/statementForMetavariable/conclusion.js +0 -9
  193. package/src/matcher/statementForMetavariable/premise.js +0 -9
  194. package/src/matcher/termForVariable/consequence.js +0 -9
  195. package/src/matcher/termForVariable/supposition.js +0 -9
  196. package/src/mixins/callbacks.js +0 -15
  197. package/src/utilities/substitution.js +0 -81
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import StatementForMetavariableMatcher from "../../matcher/statementForMetavariable";
4
-
5
- class PremiseStatementForMetavariableMatcher extends StatementForMetavariableMatcher {
6
- static createSubstitutions = true;
7
- }
8
-
9
- export const premiseStatementForMetavariableMatcher = new PremiseStatementForMetavariableMatcher();
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import TermForVariableMatcher from "../../matcher/termForVariable";
4
-
5
- class ConsequenceTermForVariableMatcher extends TermForVariableMatcher {
6
- static createSubstitutions = false;
7
- }
8
-
9
- export const consequenceTermForVariableMatcher = new ConsequenceTermForVariableMatcher();
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import TermForVariableMatcher from "../../matcher/termForVariable";
4
-
5
- class SuppositionTermForVariableMatcher extends TermForVariableMatcher {
6
- static createSubstitutions = true;
7
- }
8
-
9
- export const suppositionTermForVariableMatcher = new SuppositionTermForVariableMatcher();
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- function halt(node) { this.context.halt(node); }
4
-
5
- function begin(node) { this.context.begin(node); }
6
-
7
- function complete(node) { this.context.complete(node); }
8
-
9
- const callbacksMixins = {
10
- halt,
11
- begin,
12
- complete
13
- };
14
-
15
- export default callbacksMixins;
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- import { matcher } from "../matcher";
4
- import { first, second, third } from "../utilities/array";
5
- import { METASTATEMENT_RULE_NAME } from "../ruleNames";
6
- import { BRACKETED_CHILD_NODES_LENGTH, LEFT_BRACKET, RIGHT_BRACKET } from "../constants";
7
-
8
- export function matchBracketedNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
9
- let bracketedNodeMatches = false;
10
-
11
- if (!bracketedNodeMatches) {
12
- const nonTerminalNodeMatches = matcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
13
-
14
- bracketedNodeMatches = nonTerminalNodeMatches; ///
15
- }
16
-
17
- if (!bracketedNodeMatches) {
18
- const nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
19
- childNodesA = nonTerminalNodeAChildNodes, ///
20
- ruleName = METASTATEMENT_RULE_NAME,
21
- bracketedNonTerminalChildNodeA = bracketedNonTerminalChildNodeFromChildNodes(childNodesA, ruleName);
22
-
23
- if (bracketedNonTerminalChildNodeA !== null) {
24
- const nodeA = bracketedNonTerminalChildNodeA, ///
25
- nodeB = nonTerminalNodeB, ///
26
- nodeMatches = matcher.matchNode(nodeA, nodeB);
27
-
28
- bracketedNodeMatches = nodeMatches; ///
29
- }
30
- }
31
-
32
- if (!bracketedNodeMatches) {
33
- const nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
34
- childNodesB = nonTerminalNodeBChildNodes, ///
35
- ruleName = METASTATEMENT_RULE_NAME,
36
- bracketedNonTerminalChildNodeB = bracketedNonTerminalChildNodeFromChildNodes(childNodesB, ruleName);
37
-
38
- if (bracketedNonTerminalChildNodeB !== null) {
39
- const nodeB = bracketedNonTerminalChildNodeB, ///
40
- nodeA = nonTerminalNodeA, ///
41
- nodeMatches = matchNode(nodeA, nodeB);
42
-
43
- bracketedNodeMatches = nodeMatches; ///
44
- }
45
- }
46
-
47
- return bracketedNodeMatches;
48
- }
49
-
50
- export function bracketedNonTerminalChildNodeFromChildNodes(childNodes, ruleName) {
51
- let bracketedNonTerminalChildNode = null;
52
-
53
- const childNodesLength = childNodes.length;
54
-
55
- if (childNodesLength === BRACKETED_CHILD_NODES_LENGTH) {
56
- const firstChildNode = first(childNodes),
57
- thirdChildNode = third(childNodes),
58
- secondChildNode = second(childNodes),
59
- firstChildNodeTerminalNode = firstChildNode.isTerminalNode(),
60
- thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(),
61
- secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
62
-
63
- if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
64
- const nonTerminalNode = secondChildNode, ///
65
- firstTerminalNode = firstChildNode, ///
66
- secondTerminalNode = thirdChildNode, ///
67
- nonTerminalNodeRuleName = nonTerminalNode.getRuleName(),
68
- firstTerminalNodeContent = firstTerminalNode.getContent(),
69
- secondTerminalNodeContent = secondTerminalNode.getContent(),
70
- nonTerminalNodeRuleNameRuleName = (nonTerminalNodeRuleName === ruleName),
71
- firstTerminalNodeContentLeftBracket = (firstTerminalNodeContent === LEFT_BRACKET),
72
- secondTerminalNodeContentRightBracket = (secondTerminalNodeContent === RIGHT_BRACKET);
73
-
74
- if (nonTerminalNodeRuleNameRuleName && firstTerminalNodeContentLeftBracket && secondTerminalNodeContentRightBracket) {
75
- bracketedNonTerminalChildNode = nonTerminalNode; ///
76
- }
77
- }
78
- }
79
-
80
- return bracketedNonTerminalChildNode;
81
- }