occam-verify-cli 0.0.902 → 0.0.904

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 (51) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +18 -34
  2. package/lib/conclusion.js +3 -3
  3. package/lib/constants.js +1 -9
  4. package/lib/metaLemmaMetatheorem.js +22 -40
  5. package/lib/rule.js +45 -83
  6. package/lib/ruleNames.js +1 -21
  7. package/lib/utilities/array.js +49 -42
  8. package/lib/utilities/verifier.js +4 -10
  9. package/lib/verifier/node/metastatement.js +31 -6
  10. package/lib/verifier/node/statementAsCombinator.js +31 -6
  11. package/lib/verifier/node/termAsConstructor.js +25 -5
  12. package/lib/verifier/nodes/equality.js +13 -3
  13. package/lib/verifier/nodes/intrinsicLevel.js +13 -3
  14. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +13 -3
  15. package/lib/verifier/nodes/metaLevel.js +13 -3
  16. package/lib/verifier/nodes/statementAgainstCombinator.js +13 -3
  17. package/lib/verifier/nodes/termAgainstConstructor.js +13 -3
  18. package/lib/verify/containedAssertion.js +2 -2
  19. package/lib/verify/premise.js +1 -3
  20. package/lib/verify/statement/qualified.js +4 -7
  21. package/lib/verify/statement/unqualified.js +2 -5
  22. package/lib/verify/statement.js +34 -19
  23. package/lib/verify/statementAsCombinator.js +1 -2
  24. package/package.json +1 -1
  25. package/src/axiomLemmaTheoremConjecture.js +27 -47
  26. package/src/conclusion.js +2 -2
  27. package/src/constants.js +0 -2
  28. package/src/metaLemmaMetatheorem.js +33 -54
  29. package/src/rule.js +58 -101
  30. package/src/ruleNames.js +0 -5
  31. package/src/utilities/array.js +22 -42
  32. package/src/utilities/verifier.js +3 -11
  33. package/src/verifier/node/metastatement.js +46 -6
  34. package/src/verifier/node/statementAsCombinator.js +50 -10
  35. package/src/verifier/node/termAsConstructor.js +37 -6
  36. package/src/verifier/nodes/equality.js +19 -4
  37. package/src/verifier/nodes/intrinsicLevel.js +18 -3
  38. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +18 -3
  39. package/src/verifier/nodes/metaLevel.js +19 -4
  40. package/src/verifier/nodes/statementAgainstCombinator.js +18 -3
  41. package/src/verifier/nodes/termAgainstConstructor.js +19 -4
  42. package/src/verify/containedAssertion.js +1 -1
  43. package/src/verify/premise.js +0 -2
  44. package/src/verify/statement/qualified.js +3 -7
  45. package/src/verify/statement/unqualified.js +1 -5
  46. package/src/verify/statement.js +38 -18
  47. package/src/verify/statementAsCombinator.js +0 -1
  48. package/lib/permutationsMatrix.js +0 -466136
  49. package/lib/utilities/permutations.js +0 -114
  50. package/src/permutationsMatrix.js +0 -6
  51. package/src/utilities/permutations.js +0 -148
@@ -10,12 +10,12 @@ import statementAgainstCombinatorNodesVerifier from "../verifier/nodes/statement
10
10
  import { nodeQuery } from "../utilities/query";
11
11
 
12
12
  const equalityNodeQuery = nodeQuery("/statement/equality!"),
13
- statementNodeQuery = nodeQuery("/containedAssertion/metastatement/statement!"),
13
+ statementNodeQuery = nodeQuery("/containedAssertion/statement!"),
14
14
  typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
15
15
  definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
16
16
  containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
17
17
 
18
- function verifyStatement(statementNode, assignments, derived, localContext, verifyAhead) {
18
+ function verifyStatement(statementNode, assignments, derived, localContext) {
19
19
  let statementVerified;
20
20
 
21
21
  const statementString = localContext.nodeAsString(statementNode);
@@ -31,7 +31,7 @@ function verifyStatement(statementNode, assignments, derived, localContext, veri
31
31
  ];
32
32
 
33
33
  statementVerified = verifyStatementFunctions.some((verifyStatementFunction) => {
34
- const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext, verifyAhead);
34
+ const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
35
35
 
36
36
  if (statementVerified) {
37
37
  return true;
@@ -46,7 +46,7 @@ function verifyStatement(statementNode, assignments, derived, localContext, veri
46
46
  }
47
47
 
48
48
  export function verifyStandaloneStatement(statementNode, localContext, verifyAhead) {
49
- let standaloneStatementVerified;
49
+ let standaloneStatementVerified = false;
50
50
 
51
51
  const statementString = localContext.nodeAsString(statementNode);
52
52
 
@@ -54,9 +54,13 @@ export function verifyStandaloneStatement(statementNode, localContext, verifyAhe
54
54
 
55
55
  const derived = false,
56
56
  assignments = [],
57
- statementVerified = verifyStatement(statementNode, assignments, derived, localContext, verifyAhead);
57
+ statementVerified = verifyStatement(statementNode, assignments, derived);
58
58
 
59
- standaloneStatementVerified = statementVerified; ///
59
+ if (statementVerified) {
60
+ const verifiedAhead = verifyAhead();
61
+
62
+ standaloneStatementVerified = verifiedAhead; ///
63
+ }
60
64
 
61
65
  if (standaloneStatementVerified) {
62
66
  localContext.debug(`...verified the '${statementString}' standalone statement.`, statementNode);
@@ -71,7 +75,7 @@ Object.assign(statementAgainstCombinatorNodesVerifier, {
71
75
 
72
76
  export default verifyStatement;
73
77
 
74
- export function verifyStatementAsEquality(statementNode, assignments, derived, localContext, verifyAhead) {
78
+ export function verifyStatementAsEquality(statementNode, assignments, derived, localContext) {
75
79
  let statementVerifiedAsEquality = false;
76
80
 
77
81
  const equalityNode = equalityNodeQuery(statementNode);
@@ -81,7 +85,11 @@ export function verifyStatementAsEquality(statementNode, assignments, derived, l
81
85
 
82
86
  localContext.trace(`Verifying the '${statementString}' statement as an equality...`, equalityNode);
83
87
 
84
- const equalityVerified = verifyEquality(equalityNode, assignments, derived, localContext, verifyAhead);
88
+ const equalityVerified = verifyEquality(equalityNode, assignments, derived, localContext, () => {
89
+ const verifiedAhead = true;
90
+
91
+ return verifiedAhead;
92
+ });
85
93
 
86
94
  statementVerifiedAsEquality = equalityVerified; ///
87
95
 
@@ -93,7 +101,7 @@ export function verifyStatementAsEquality(statementNode, assignments, derived, l
93
101
  return statementVerifiedAsEquality;
94
102
  }
95
103
 
96
- export function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
104
+ export function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext) {
97
105
  let statementVerifiedAsTypeAssertion = false;
98
106
 
99
107
  const typeAssertionNode = typeAssertionNodeQuery(statementNode);
@@ -103,7 +111,11 @@ export function verifyStatementAsTypeAssertion(statementNode, assignments, deriv
103
111
 
104
112
  localContext.trace(`Verifying the '${statementString}' statement as a type assertion...`, typeAssertionNode);
105
113
 
106
- const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead);
114
+ const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, () => {
115
+ const verifiedAhead = true;
116
+
117
+ return verifiedAhead;
118
+ });
107
119
 
108
120
  statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
109
121
 
@@ -115,7 +127,7 @@ export function verifyStatementAsTypeAssertion(statementNode, assignments, deriv
115
127
  return statementVerifiedAsTypeAssertion;
116
128
  }
117
129
 
118
- function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
130
+ function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
119
131
  let statementVerifiedAsDefinedAssertion = false;
120
132
 
121
133
  const definedAssertionNode = definedAssertionNodeQuery(statementNode);
@@ -125,7 +137,11 @@ function verifyStatementAsDefinedAssertion(statementNode, assignments, derived,
125
137
 
126
138
  localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, definedAssertionNode);
127
139
 
128
- const definedAssertionVerified = verifyDefinedAssertion(definedAssertionNode, localContext, verifyAhead);
140
+ const definedAssertionVerified = verifyDefinedAssertion(definedAssertionNode, localContext, () => {
141
+ const verifiedAhead = true;
142
+
143
+ return verifiedAhead;
144
+ });
129
145
 
130
146
  statementVerifiedAsDefinedAssertion = definedAssertionVerified; ///
131
147
 
@@ -137,7 +153,7 @@ function verifyStatementAsDefinedAssertion(statementNode, assignments, derived,
137
153
  return statementVerifiedAsDefinedAssertion;
138
154
  }
139
155
 
140
- function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
156
+ function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
141
157
  let statementVerifiedAsContainedAssertion = false;
142
158
 
143
159
  const containedAssertionNode = containedAssertionNodeQuery(statementNode);
@@ -160,7 +176,7 @@ function verifyStatementAsContainedAssertion(statementNode, assignments, derived
160
176
  const statementVerified = verifyStatementFunctions.some((verifyStatementFunction) => {
161
177
  const derived = false,
162
178
  assignments = [],
163
- statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext, verifyAhead);
179
+ statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
164
180
 
165
181
  if (statementVerified) {
166
182
  return true;
@@ -178,7 +194,7 @@ function verifyStatementAsContainedAssertion(statementNode, assignments, derived
178
194
  return statementVerifiedAsContainedAssertion;
179
195
  }
180
196
 
181
- function verifyStatementAgainstCombinators(statementNode, assignments, derived, localContext, verifyAhead) {
197
+ function verifyStatementAgainstCombinators(statementNode, assignments, derived, localContext) {
182
198
  let statementVerifiedAgainstCombinators = false;
183
199
 
184
200
  const equalityNode = equalityNodeQuery(statementNode),
@@ -195,7 +211,7 @@ function verifyStatementAgainstCombinators(statementNode, assignments, derived,
195
211
  ];
196
212
 
197
213
  statementVerifiedAgainstCombinators = combinators.some((combinator) => {
198
- const statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, localContext, verifyAhead);
214
+ const statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, localContext);
199
215
 
200
216
  if (statementVerifiedAgainstCombinator) {
201
217
  return true;
@@ -206,7 +222,7 @@ function verifyStatementAgainstCombinators(statementNode, assignments, derived,
206
222
  return statementVerifiedAgainstCombinators;
207
223
  }
208
224
 
209
- function verifyStatementAgainstCombinator(statementNode, combinator, localContext, verifyAhead) {
225
+ function verifyStatementAgainstCombinator(statementNode, combinator, localContext) {
210
226
  let statementVerifiedAgainstCombinator;
211
227
 
212
228
  const statementString = localContext.nodeAsString(statementNode),
@@ -217,7 +233,11 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
217
233
  const combinatorStatementNode = combinator.getStatementNode(),
218
234
  nonTerminalNodeA = statementNode, ///
219
235
  nonTerminalNodeB = combinatorStatementNode, ///
220
- nonTerminalNodeVerified = statementAgainstCombinatorNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
236
+ nonTerminalNodeVerified = statementAgainstCombinatorNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, () => {
237
+ const verifiedAhead = true;
238
+
239
+ return verifiedAhead;
240
+ });
221
241
 
222
242
  statementVerifiedAgainstCombinator = nonTerminalNodeVerified; ///
223
243
 
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  import Combinator from "../combinator";
4
- import LocalContext from "../context/local";
5
4
  import statementAsCombinatorNodeVerifier from "../verifier/node/statementAsCombinator";
6
5
 
7
6
  export default function verifyStatementAsCombinator(statementNode, fileContext) {