occam-verify-cli 0.0.937 → 0.0.939
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/conclusion.js +6 -6
- package/lib/consequent.js +6 -6
- package/lib/premise.js +13 -13
- package/lib/rule.js +23 -23
- package/lib/supposition.js +13 -13
- package/lib/topLevelAssertion.js +27 -23
- package/lib/utilities/string.js +2 -2
- package/lib/verify/assertion/contained.js +3 -3
- package/lib/verify/assertion/defined.js +3 -3
- package/lib/verify/assertion/subproof.js +9 -14
- package/lib/verify/statement/qualified.js +6 -6
- package/lib/verify/statement.js +8 -62
- package/package.json +2 -2
- package/src/conclusion.js +4 -4
- package/src/consequent.js +4 -4
- package/src/premise.js +12 -12
- package/src/rule.js +22 -22
- package/src/supposition.js +12 -12
- package/src/topLevelAssertion.js +29 -22
- package/src/utilities/string.js +1 -1
- package/src/verify/assertion/contained.js +2 -3
- package/src/verify/assertion/defined.js +2 -3
- package/src/verify/assertion/subproof.js +3 -16
- package/src/verify/statement/qualified.js +5 -5
- package/src/verify/statement.js +8 -88
|
@@ -83,10 +83,9 @@ function verifyStatedContainedAssertion(containedAssertionNode, assignments, der
|
|
|
83
83
|
|
|
84
84
|
localContext.debug(`The '${containedAssertionString}' stated contained assertion cannot be verified.`, containedAssertionNode);
|
|
85
85
|
|
|
86
|
-
const
|
|
87
|
-
nonTerminalNodeVerified = metaLevelVerifier.verify(nonTerminalNode, localContext);
|
|
86
|
+
const verified = metaLevelVerifier.verify(containedAssertionNode, localContext);
|
|
88
87
|
|
|
89
|
-
statedContainedAssertionVerified =
|
|
88
|
+
statedContainedAssertionVerified = verified; ///
|
|
90
89
|
|
|
91
90
|
if (statedContainedAssertionVerified) {
|
|
92
91
|
localContext.debug(`...verified the '${containedAssertionString}' stated contained assertion.`, containedAssertionNode);
|
|
@@ -112,10 +112,9 @@ function verifyStatedDefinedAssertion(definedAssertionNode, assignments, derived
|
|
|
112
112
|
|
|
113
113
|
localContext.trace(`Verifying the '${definedAssertionString}' stated defined assertion...`, definedAssertionNode);
|
|
114
114
|
|
|
115
|
-
const
|
|
116
|
-
nonTerminalNodeVerified = metaLevelVerifier.verify(nonTerminalNode, localContext);
|
|
115
|
+
const verified = metaLevelVerifier.verify(definedAssertionNode, localContext);
|
|
117
116
|
|
|
118
|
-
statedDefinedAssertionVerified =
|
|
117
|
+
statedDefinedAssertionVerified = verified; ///
|
|
119
118
|
|
|
120
119
|
if (statedDefinedAssertionVerified) {
|
|
121
120
|
localContext.debug(`...verified the '${definedAssertionString}' stated defined assertion.`, definedAssertionNode);
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import { STATEMENT_META_TYPE_NAME } from "../../metaTypeNames";
|
|
5
|
-
|
|
6
|
-
const metavariableNodesQuery = nodesQuery("/subproofAssertion/statement/metavariable!");
|
|
3
|
+
import metaLevelVerifier from "../../verifier/metaLevel";
|
|
7
4
|
|
|
8
5
|
export default function verifySubproofAssertion(subproofAssertionNode, assignments, derived, localContext) {
|
|
9
6
|
let subproofAssertionVerified;
|
|
@@ -54,19 +51,9 @@ function verifyStatedSubproofAssertion(subproofAssertionNode, assignments, deriv
|
|
|
54
51
|
|
|
55
52
|
localContext.trace(`Verifying the '${subproofAssertionString}' stated subproof assertion...`, subproofAssertionNode);
|
|
56
53
|
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
statedSubproofAssertionVerified = metavariableNodes.every((metavariableNode) => {
|
|
60
|
-
const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
|
|
61
|
-
|
|
62
|
-
if (metavariable !== null) {
|
|
63
|
-
const metaTypeName = metavariable.getMetaTypeName();
|
|
54
|
+
const verified = metaLevelVerifier.verify(subproofAssertionNode, localContext);
|
|
64
55
|
|
|
65
|
-
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
56
|
+
statedSubproofAssertionVerified = verified; ///
|
|
70
57
|
|
|
71
58
|
if (statedSubproofAssertionVerified) {
|
|
72
59
|
localContext.debug(`...verified the '${subproofAssertionString}' stated subproof assertion.`, subproofAssertionNode);
|
|
@@ -65,7 +65,7 @@ function verifyQualifiedStatementAAgainstRule(qualifiedStatementNode, substituti
|
|
|
65
65
|
|
|
66
66
|
localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' rule...`, qualifiedStatementNode);
|
|
67
67
|
|
|
68
|
-
const ruleMatchesStatement = rule.
|
|
68
|
+
const ruleMatchesStatement = rule.unifyStatement(statementNode, localContext);
|
|
69
69
|
|
|
70
70
|
qualifiedStatementVerifiedAgainstRule = ruleMatchesStatement; ///
|
|
71
71
|
|
|
@@ -90,7 +90,7 @@ function verifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode, substitut
|
|
|
90
90
|
|
|
91
91
|
localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' axiom...`, qualifiedStatementNode);
|
|
92
92
|
|
|
93
|
-
const axiomMatchesStatement = axiom.
|
|
93
|
+
const axiomMatchesStatement = axiom.unifyStatement(statementNode, localContext);
|
|
94
94
|
|
|
95
95
|
qualifiedStatementVerifiedAgainstAxiom = axiomMatchesStatement; ///
|
|
96
96
|
|
|
@@ -115,7 +115,7 @@ function verifyQualifiedStatementAAgainstLemma(qualifiedStatementNode, substitut
|
|
|
115
115
|
|
|
116
116
|
localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' lemma...`, qualifiedStatementNode);
|
|
117
117
|
|
|
118
|
-
const lemmaMatchesStatement = lemma.
|
|
118
|
+
const lemmaMatchesStatement = lemma.unifyStatement(statementNode, localContext);
|
|
119
119
|
|
|
120
120
|
qualifiedStatementVerifiedAgainstLemma = lemmaMatchesStatement; ///
|
|
121
121
|
|
|
@@ -140,7 +140,7 @@ function verifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode, substit
|
|
|
140
140
|
|
|
141
141
|
localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' theorem...`, qualifiedStatementNode);
|
|
142
142
|
|
|
143
|
-
const theoremMatchesStatement = theorem.
|
|
143
|
+
const theoremMatchesStatement = theorem.unifyStatement(statementNode, localContext);
|
|
144
144
|
|
|
145
145
|
qualifiedStatementVerifiedAgainstTheorem = theoremMatchesStatement; ///
|
|
146
146
|
|
|
@@ -165,7 +165,7 @@ function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, subs
|
|
|
165
165
|
|
|
166
166
|
localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${metavariableString}' conjecture...`, qualifiedStatementNode);
|
|
167
167
|
|
|
168
|
-
const conjectureMatchesStatement = conjecture.
|
|
168
|
+
const conjectureMatchesStatement = conjecture.unifyStatement(statementNode, localContext);
|
|
169
169
|
|
|
170
170
|
qualifiedStatementVerifiedAgainstConjecture = conjectureMatchesStatement; ///
|
|
171
171
|
|
package/src/verify/statement.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import shim from "../shim";
|
|
4
4
|
import verifyEquality from "../verify/equality";
|
|
5
5
|
import verifyJudgement from "../verify/judgement";
|
|
6
|
+
import metaLevelVerifier from "../verifier/metaLevel";
|
|
6
7
|
import bracketedCombinator from "../ocmbinator/bracketed";
|
|
7
8
|
import verifyTypeAssertion from "../verify/assertion/type";
|
|
8
9
|
import verifyDefinedAssertion from "../verify/assertion/defined";
|
|
@@ -11,19 +12,14 @@ import verifyContainedAssertion from "../verify/assertion/contained";
|
|
|
11
12
|
import statementAgainstCombinatorUnifier from "../unifier/statementAgainstCombinator";
|
|
12
13
|
|
|
13
14
|
import { nodeQuery } from "../utilities/query";
|
|
14
|
-
import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
15
15
|
|
|
16
|
-
const
|
|
17
|
-
equalityNodeQuery = nodeQuery("/statement/equality!"),
|
|
16
|
+
const equalityNodeQuery = nodeQuery("/statement/equality!"),
|
|
18
17
|
judgementNodeQuery = nodeQuery("/statement/judgement!"),
|
|
19
18
|
metavariableNodeQuery = nodeQuery("/*/metavariable!"),
|
|
20
|
-
substitutionNodeQuery = nodeQuery("/statement/substitution!"),
|
|
21
|
-
termVariableNodeQuery = nodeQuery("/substitution/term/variable!"),
|
|
22
19
|
typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
|
|
23
20
|
definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
|
|
24
21
|
subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
|
|
25
|
-
containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!")
|
|
26
|
-
statementMetavariableNodeQuery = nodeQuery("/substitution/statement/metavariable!");
|
|
22
|
+
containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
|
|
27
23
|
|
|
28
24
|
function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
29
25
|
let statementVerified;
|
|
@@ -99,16 +95,9 @@ function verifyStatementAsMetavariable(statementNode, assignments, derived, loca
|
|
|
99
95
|
|
|
100
96
|
localContext.trace(`Verifying the '${statementString}' statement as a metavariable...`, statementNode);
|
|
101
97
|
|
|
102
|
-
const
|
|
98
|
+
const verified = metaLevelVerifier.verify(statementNode, localContext);
|
|
103
99
|
|
|
104
|
-
|
|
105
|
-
const substitutionNode = substitutionNodeQuery(statementNode),
|
|
106
|
-
substitutionVerified = verifySubstitution(substitutionNode, localContext);
|
|
107
|
-
|
|
108
|
-
if (substitutionVerified) {
|
|
109
|
-
statementVerifiedAsMetavariable = true;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
100
|
+
statementVerifiedAsMetavariable = verified; ///
|
|
112
101
|
|
|
113
102
|
if (statementVerifiedAsMetavariable) {
|
|
114
103
|
localContext.debug(`...verified the '${statementString}' statement as a metavariable.`, statementNode);
|
|
@@ -198,11 +187,7 @@ function verifyStatementAsDefinedAssertion(statementNode, assignments, derived,
|
|
|
198
187
|
|
|
199
188
|
localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, statementNode);
|
|
200
189
|
|
|
201
|
-
const definedAssertionVerified = verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext
|
|
202
|
-
const verifiedAhead = true;
|
|
203
|
-
|
|
204
|
-
return verifiedAhead;
|
|
205
|
-
});
|
|
190
|
+
const definedAssertionVerified = verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext);
|
|
206
191
|
|
|
207
192
|
statementVerifiedAsDefinedAssertion = definedAssertionVerified; ///
|
|
208
193
|
|
|
@@ -224,11 +209,7 @@ function verifyStatementAsSubproofAssertion(statementNode, assignments, derived,
|
|
|
224
209
|
|
|
225
210
|
localContext.trace(`Verifying the '${statementString}' statement as a subproof assertion...`, statementNode);
|
|
226
211
|
|
|
227
|
-
const subproofAssertionVerified = verifySubproofAssertion(subproofAssertionNode, assignments, derived, localContext
|
|
228
|
-
const verifiedAhead = true;
|
|
229
|
-
|
|
230
|
-
return verifiedAhead;
|
|
231
|
-
});
|
|
212
|
+
const subproofAssertionVerified = verifySubproofAssertion(subproofAssertionNode, assignments, derived, localContext);
|
|
232
213
|
|
|
233
214
|
statementVerifiedAsSubproofAssertion = subproofAssertionVerified; ///
|
|
234
215
|
|
|
@@ -250,11 +231,7 @@ function verifyStatementAsContainedAssertion(statementNode, assignments, derived
|
|
|
250
231
|
|
|
251
232
|
localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, statementNode);
|
|
252
233
|
|
|
253
|
-
const containedAssertionVerified = verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext
|
|
254
|
-
const verifiedAhead = true;
|
|
255
|
-
|
|
256
|
-
return verifiedAhead;
|
|
257
|
-
});
|
|
234
|
+
const containedAssertionVerified = verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext);
|
|
258
235
|
|
|
259
236
|
statementVerifiedAsContainedAssertion = containedAssertionVerified; ///
|
|
260
237
|
|
|
@@ -322,60 +299,3 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
|
|
|
322
299
|
|
|
323
300
|
return statementVerifiedAgainstCombinator;
|
|
324
301
|
}
|
|
325
|
-
|
|
326
|
-
function verifyMetavariable(metavariableNode, localContext) {
|
|
327
|
-
let metavariableVerified = false;
|
|
328
|
-
|
|
329
|
-
const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
|
|
330
|
-
|
|
331
|
-
if (metavariable !== null) {
|
|
332
|
-
const metaTypeName = metavariable.getMetaTypeName();
|
|
333
|
-
|
|
334
|
-
if (metaTypeName === STATEMENT_META_TYPE_NAME) {
|
|
335
|
-
metavariableVerified = true;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
return metavariableVerified;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
function verifySubstitution(substitutionNode, localContext) {
|
|
343
|
-
let substitutionVerified = false;
|
|
344
|
-
|
|
345
|
-
if (substitutionNode === null) {
|
|
346
|
-
substitutionVerified = true;
|
|
347
|
-
} else {
|
|
348
|
-
const variableNode = variableNodeQuery(substitutionNode),
|
|
349
|
-
metavariableNode = metavariableNodeQuery(substitutionNode);
|
|
350
|
-
|
|
351
|
-
if (variableNode !== null) {
|
|
352
|
-
const variablePresent = localContext.isVariablePresentByVariableNode(variableNode);
|
|
353
|
-
|
|
354
|
-
if (variablePresent) {
|
|
355
|
-
const termVariableNode = termVariableNodeQuery(substitutionNode);
|
|
356
|
-
|
|
357
|
-
if (termVariableNode !== null) {
|
|
358
|
-
const termVariablePresent = localContext.isVariablePresentByVariableNode(termVariableNode);
|
|
359
|
-
|
|
360
|
-
substitutionVerified = termVariablePresent; ///
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
if (metavariableNode !== null) {
|
|
366
|
-
const metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode);
|
|
367
|
-
|
|
368
|
-
if (metavariablePresent) {
|
|
369
|
-
const statementMetavariableNode = statementMetavariableNodeQuery(substitutionNode);
|
|
370
|
-
|
|
371
|
-
if (statementMetavariableNode !== null) {
|
|
372
|
-
const statementMetavariablePresent = localContext.isMetavariablePresentByMetavariableNode(statementMetavariableNode);
|
|
373
|
-
|
|
374
|
-
substitutionVerified = statementMetavariablePresent; ///
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
return substitutionVerified;
|
|
381
|
-
}
|