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.
- package/lib/axiomLemmaTheoremConjecture.js +18 -34
- package/lib/conclusion.js +3 -3
- package/lib/constants.js +1 -9
- package/lib/metaLemmaMetatheorem.js +22 -40
- package/lib/rule.js +45 -83
- package/lib/ruleNames.js +1 -21
- package/lib/utilities/array.js +49 -42
- package/lib/utilities/verifier.js +4 -10
- package/lib/verifier/node/metastatement.js +31 -6
- package/lib/verifier/node/statementAsCombinator.js +31 -6
- package/lib/verifier/node/termAsConstructor.js +25 -5
- package/lib/verifier/nodes/equality.js +13 -3
- package/lib/verifier/nodes/intrinsicLevel.js +13 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +13 -3
- package/lib/verifier/nodes/metaLevel.js +13 -3
- package/lib/verifier/nodes/statementAgainstCombinator.js +13 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +13 -3
- package/lib/verify/containedAssertion.js +2 -2
- package/lib/verify/premise.js +1 -3
- package/lib/verify/statement/qualified.js +4 -7
- package/lib/verify/statement/unqualified.js +2 -5
- package/lib/verify/statement.js +34 -19
- package/lib/verify/statementAsCombinator.js +1 -2
- package/package.json +1 -1
- package/src/axiomLemmaTheoremConjecture.js +27 -47
- package/src/conclusion.js +2 -2
- package/src/constants.js +0 -2
- package/src/metaLemmaMetatheorem.js +33 -54
- package/src/rule.js +58 -101
- package/src/ruleNames.js +0 -5
- package/src/utilities/array.js +22 -42
- package/src/utilities/verifier.js +3 -11
- package/src/verifier/node/metastatement.js +46 -6
- package/src/verifier/node/statementAsCombinator.js +50 -10
- package/src/verifier/node/termAsConstructor.js +37 -6
- package/src/verifier/nodes/equality.js +19 -4
- package/src/verifier/nodes/intrinsicLevel.js +18 -3
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +18 -3
- package/src/verifier/nodes/metaLevel.js +19 -4
- package/src/verifier/nodes/statementAgainstCombinator.js +18 -3
- package/src/verifier/nodes/termAgainstConstructor.js +19 -4
- package/src/verify/containedAssertion.js +1 -1
- package/src/verify/premise.js +0 -2
- package/src/verify/statement/qualified.js +3 -7
- package/src/verify/statement/unqualified.js +1 -5
- package/src/verify/statement.js +38 -18
- package/src/verify/statementAsCombinator.js +0 -1
- package/lib/permutationsMatrix.js +0 -466136
- package/lib/utilities/permutations.js +0 -114
- package/src/permutationsMatrix.js +0 -6
- package/src/utilities/permutations.js +0 -148
package/src/verify/statement.js
CHANGED
|
@@ -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/
|
|
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
|
|
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
|
|
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
|
|
57
|
+
statementVerified = verifyStatement(statementNode, assignments, derived);
|
|
58
58
|
|
|
59
|
-
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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) {
|