occam-verify-cli 0.0.502 → 0.0.503

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 (43) hide show
  1. package/lib/axiom.js +4 -4
  2. package/lib/axiomLemmaTheorem.js +58 -58
  3. package/lib/consequence.js +157 -0
  4. package/lib/lemma.js +4 -4
  5. package/lib/metaSupposition.js +214 -0
  6. package/lib/supposition.js +214 -0
  7. package/lib/theorem.js +4 -4
  8. package/lib/verify/axiom.js +11 -11
  9. package/lib/verify/consequence.js +35 -0
  10. package/lib/verify/derivation.js +7 -7
  11. package/lib/verify/lemma.js +12 -12
  12. package/lib/verify/metaDerivation.js +7 -7
  13. package/lib/verify/metaSupposition.js +41 -0
  14. package/lib/verify/supposition.js +41 -0
  15. package/lib/verify/theorem.js +12 -12
  16. package/package.json +1 -1
  17. package/src/axiom.js +1 -1
  18. package/src/axiomLemmaTheorem.js +57 -57
  19. package/src/consequence.js +187 -0
  20. package/src/lemma.js +1 -1
  21. package/src/metaSupposition.js +235 -0
  22. package/src/supposition.js +235 -0
  23. package/src/theorem.js +1 -1
  24. package/src/verify/axiom.js +17 -17
  25. package/src/verify/consequence.js +34 -0
  26. package/src/verify/derivation.js +8 -8
  27. package/src/verify/lemma.js +18 -18
  28. package/src/verify/metaDerivation.js +8 -8
  29. package/src/verify/metaSupposition.js +44 -0
  30. package/src/verify/supposition.js +44 -0
  31. package/src/verify/theorem.js +18 -18
  32. package/lib/antecedent.js +0 -214
  33. package/lib/consequent.js +0 -157
  34. package/lib/metaAntecedent.js +0 -214
  35. package/lib/verify/antecedent.js +0 -41
  36. package/lib/verify/consequent.js +0 -35
  37. package/lib/verify/metaAntecedent.js +0 -41
  38. package/src/antecedent.js +0 -235
  39. package/src/consequent.js +0 -187
  40. package/src/metaAntecedent.js +0 -235
  41. package/src/verify/antecedent.js +0 -44
  42. package/src/verify/consequent.js +0 -34
  43. package/src/verify/metaAntecedent.js +0 -44
package/src/consequent.js DELETED
@@ -1,187 +0,0 @@
1
- "use strict";
2
-
3
- import { first } from "./utilities/array";
4
- import { nodeAsString } from "./utilities/string";
5
- import { variableNameFromVariableNode } from "./utilities/query";
6
- import { statementNodeFromStatementString } from "./utilities/string";
7
- import { VARIABLE_RULE_NAME, STATEMENT_RULE_NAME } from "./ruleNames";
8
-
9
- export default class Consequent {
10
- constructor(statementNode) {
11
- this.statementNode = statementNode;
12
- }
13
-
14
- getStatementNode() {
15
- return this.statementNode;
16
- }
17
-
18
- matchStatementNode(statementNode, metaSubstitutions) {
19
- const nonTerminalNode = statementNode, ///
20
- consequentNonTerminalNode = this.statementNode, ///
21
- consequentNonTerminalNodeMatches = matchConsequentNonTerminalNode(consequentNonTerminalNode, nonTerminalNode, metaSubstitutions),
22
- statementNodeMatches = consequentNonTerminalNodeMatches; ///
23
-
24
- return statementNodeMatches;
25
- }
26
-
27
- toJSON() {
28
- const statementString = nodeAsString(this.statementNode),
29
- statement = statementString, ///
30
- json = {
31
- statement
32
- };
33
-
34
- return json;
35
- }
36
-
37
- static fromJSON(json, releaseContext) {
38
- const { statement } = json,
39
- statementString = statement, ///
40
- statementNode = statementNodeFromStatementString(statementString, releaseContext),
41
- consequent = new Consequent(statementNode);
42
-
43
- return consequent;
44
- }
45
-
46
- static fromStatementNode(statementNode) {
47
- const consequent = new Consequent(statementNode);
48
-
49
- return consequent;
50
- }
51
- }
52
-
53
- function matchConsequentNode(consequentNode, node, metaSubstitutions) {
54
- let consequentNodeMatches = false;
55
-
56
- const nodeTerminalNode = node.isTerminalNode(),
57
- ruleNodeTerminalNode = consequentNode.isTerminalNode();
58
-
59
- if (nodeTerminalNode === ruleNodeTerminalNode) {
60
- if (nodeTerminalNode) {
61
- const terminalNode = node, ///
62
- consequentTerminalNode = consequentNode, ///
63
- consequentTerminalNodeMatches = matchConsequentTerminalNode(consequentTerminalNode, terminalNode, metaSubstitutions);
64
-
65
- consequentNodeMatches = consequentTerminalNodeMatches; ///
66
- } else {
67
- const nonTerminalNode = node, ///
68
- consequentNonTerminalNode = consequentNode, ///
69
- consequentNonTerminalNodeMatches = matchConsequentNonTerminalNode(consequentNonTerminalNode, nonTerminalNode, metaSubstitutions);
70
-
71
- consequentNodeMatches = consequentNonTerminalNodeMatches; ///
72
- }
73
- }
74
-
75
- return consequentNodeMatches;
76
- }
77
-
78
- function matchConsequentNodes(consequentNodes, nodes, metaSubstitutions) {
79
- let consequentNodesMatches = false;
80
-
81
- const nodesLength = nodes.length,
82
- consequentNodesLength = consequentNodes.length;
83
-
84
- if (nodesLength === consequentNodesLength) {
85
- consequentNodesMatches = nodes.every((node, index) => {
86
- const consequentNode = consequentNodes[index],
87
- consequentNodeMatches = matchConsequentNode(consequentNode, node, metaSubstitutions);
88
-
89
- if (consequentNodeMatches) {
90
- return true;
91
- }
92
- });
93
- }
94
-
95
- return consequentNodesMatches;
96
- }
97
-
98
- function matchConsequentVariable(consequentVariableNode, nodes, metaSubstitutions) {
99
- let consequentVariableMatches = true;
100
-
101
- const consequentVariableName = variableNameFromVariableNode(consequentVariableNode),
102
- metaSubstitution = metaSubstitutions.find((metaSubstitution) => {
103
- const variableName = metaSubstitution.getVariableName();
104
-
105
- if (variableName === consequentVariableName) {
106
- return true;
107
- }
108
- }) || null;
109
-
110
- if (metaSubstitution !== null) {
111
- const metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
112
-
113
- consequentVariableMatches = metaSubstitutionNodesMatch; ///
114
- }
115
-
116
- return consequentVariableMatches;
117
- }
118
-
119
- function matchConsequentTerminalNode(consequentTerminalNode, terminalNode, metaSubstitutions) {
120
- const matches = consequentTerminalNode.match(terminalNode),
121
- consequentTerminalNodeMatches = matches; ///
122
-
123
- return consequentTerminalNodeMatches;
124
- }
125
-
126
- function matchConsequentNonTerminalNode(consequentNonTerminalNode, nonTerminalNode, metaSubstitutions) {
127
- let consequentNonTerminalNodeMatches = false;
128
-
129
- const ruleName = nonTerminalNode.getRuleName(),
130
- consequentRuleName = consequentNonTerminalNode.getRuleName(); ///
131
-
132
- if (ruleName === consequentRuleName) {
133
- const childNodes = nonTerminalNode.getChildNodes(),
134
- consequentChildNodes = consequentNonTerminalNode.getChildNodes(),
135
- nodes = childNodes, ///
136
- consequentNodes = consequentChildNodes, ///
137
- consequentChildNodesMatches = matchConsequentNodes(consequentNodes, nodes, metaSubstitutions);
138
-
139
- consequentNonTerminalNodeMatches = consequentChildNodesMatches; ///
140
-
141
- if (!consequentNonTerminalNodeMatches) {
142
- const ruleNameStatementRuleName = (ruleName === STATEMENT_RULE_NAME);
143
-
144
- if (ruleNameStatementRuleName) {
145
- const statementNode = nonTerminalNode, ///
146
- consequentStatementNode = consequentNonTerminalNode, ///
147
- consequentStatementNodeMatches = matchConsequentStatementNode(consequentStatementNode, statementNode, metaSubstitutions);
148
-
149
- consequentNonTerminalNodeMatches = consequentStatementNodeMatches; ///
150
- }
151
- }
152
- }
153
-
154
- return consequentNonTerminalNodeMatches;
155
- }
156
-
157
- function matchConsequentStatementNode(consequentStatementNode, statementNode, metaSubstitutions) {
158
- let consequentStatementNodeMatches = false;
159
-
160
- const consequentNonTerminalNode = consequentStatementNode, ///
161
- consequentChildNodes = consequentNonTerminalNode.getChildNodes(),
162
- consequentChildNodesLength = consequentChildNodes.length;
163
-
164
- if (consequentChildNodesLength === 1) {
165
- const firstConsequentChildNode = first(consequentChildNodes),
166
- consequentChildNode = firstConsequentChildNode, ///
167
- consequentChildNodeNonTerminalNode = consequentChildNode.isNonTerminalNode();
168
-
169
- if (consequentChildNodeNonTerminalNode) {
170
- const consequentNonTerminalChildNode = consequentChildNode, ///
171
- consequentNonTerminalChildNodeRuleName = consequentNonTerminalChildNode.getRuleName(),
172
- consequentNonTerminalChildNodeRuleNameVariableRuleName = (consequentNonTerminalChildNodeRuleName === VARIABLE_RULE_NAME);
173
-
174
- if (consequentNonTerminalChildNodeRuleNameVariableRuleName) {
175
- const consequentVariableNode = consequentNonTerminalChildNode, ///
176
- nonTerminalNode = statementNode, ///
177
- childNodes = nonTerminalNode.getChildNodes(),
178
- nodes = childNodes, ///
179
- consequentMetaVariableMatches = matchConsequentVariable(consequentVariableNode, nodes, metaSubstitutions);
180
-
181
- consequentStatementNodeMatches = consequentMetaVariableMatches; ///
182
- }
183
- }
184
- }
185
-
186
- return consequentStatementNodeMatches;
187
- }
@@ -1,235 +0,0 @@
1
- "use strict";
2
-
3
- import MetaSubstitution from "./metaSubstitution";
4
-
5
- import { first } from "./utilities/array";
6
- import { nodeAsString } from "./utilities/string";
7
- import { nodeQuery, nodesQuery } from "./utilities/query";
8
- import { metavariableNameFromMetavariableNode } from "./utilities/query";
9
- import { metastatementNodeFromMetastatementString } from "./utilities/string";
10
- import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME } from "./ruleNames";
11
-
12
- const metastatementNodesQuery = nodesQuery("/metaSubproofAssertion/metastatement"),
13
- metaSubproofAssertionNodeQuery = nodeQuery("/metastatement/metaSubproofAssertion!"),
14
- unqualifiedMetastatementMetastatementNodesQuery = nodesQuery("/metaSubproof/unqualifiedMetastatement/metastatement!"),
15
- qualifiedOrUnqualifiedMetastatementMetastatementNodeQuery = nodeQuery("/metaSubproof/subDerivation/qualifiedMetastatement|unqualifiedMetastatement[-1]/metastatement!");
16
-
17
- export default class MetaAntecedent {
18
- constructor(metastatementNode) {
19
- this.metastatementNode = metastatementNode;
20
- }
21
-
22
- getMetastatementNode() {
23
- return this.metastatementNode;
24
- }
25
-
26
- matchSubproofNode(metaSubproofNode, metaSubstitutions) {
27
- let metaSubproofNodeMatches = false;
28
-
29
- const metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(this.metastatementNode);
30
-
31
- if (metaSubproofAssertionNode !== null) {
32
- const metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode),
33
- unqualifiedMetastatementMetastatementNodes = unqualifiedMetastatementMetastatementNodesQuery(metaSubproofNode),
34
- qualifiedOrUnqualifiedMetastatementMetastatementNode = qualifiedOrUnqualifiedMetastatementMetastatementNodeQuery(metaSubproofNode),
35
- metastatementNodes = [
36
- ...unqualifiedMetastatementMetastatementNodes,
37
- qualifiedOrUnqualifiedMetastatementMetastatementNode
38
- ],
39
- metastatementNodesLength = metastatementNodes.length,
40
- metaSubproofAssertionMetastatementNodesLength = metaSubproofAssertionMetastatementNodes.length;
41
-
42
- if (metastatementNodesLength === metaSubproofAssertionMetastatementNodesLength) {
43
- metaSubproofNodeMatches = metaSubproofAssertionMetastatementNodes.every((metaSubproofAssertionMetastatementNode, index) => {
44
- const metastatementNode = metastatementNodes[index],
45
- nonTerminalNode = metastatementNode, ///
46
- metaAntecedentNonTerminalNode = metaSubproofAssertionMetastatementNode, ///
47
- metaAntecedentNonTerminalNodeMatches = matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions);
48
-
49
- if (metaAntecedentNonTerminalNodeMatches) {
50
- return true;
51
- }
52
- });
53
- }
54
- }
55
-
56
- return metaSubproofNodeMatches;
57
- }
58
-
59
- matchMetastatementNode(metastatementNode, metaSubstitutions) {
60
- const nonTerminalNode = metastatementNode, ///
61
- metaAntecedentNonTerminalNode = this.metastatementNode, ///
62
- metaAntecedentNonTerminalNodeMatches = matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions),
63
- metastatementNodeMatches = metaAntecedentNonTerminalNodeMatches; ///
64
-
65
- return metastatementNodeMatches;
66
- }
67
-
68
- toJSON() {
69
- const metastatementString = nodeAsString(this.metastatementNode),
70
- metastatement = metastatementString, ///
71
- json = {
72
- metastatement
73
- };
74
-
75
- return json;
76
- }
77
-
78
- static fromJSON(json, releaseContext) {
79
- const { metastatement } = json,
80
- metastatementString = metastatement, ///
81
- metastatementNode = metastatementNodeFromMetastatementString(metastatementString, releaseContext),
82
- metaAntecedent = new MetaAntecedent(metastatementNode);
83
-
84
- return metaAntecedent;
85
- }
86
-
87
- static fromMetastatementNode(metastatementNode) {
88
- const metaAntecedent = new MetaAntecedent(metastatementNode);
89
-
90
- return metaAntecedent;
91
- }
92
- }
93
-
94
- function matchMetaAntecedentNode(metaAntecedentNode, node, metaSubstitutions) {
95
- let metaAntecedentNodeMatches = false;
96
-
97
- const nodeTerminalNode = node.isTerminalNode(),
98
- ruleNodeTerminalNode = metaAntecedentNode.isTerminalNode();
99
-
100
- if (nodeTerminalNode === ruleNodeTerminalNode) {
101
- if (nodeTerminalNode) {
102
- const terminalNode = node, ///
103
- metaAntecedentTerminalNode = metaAntecedentNode, ///
104
- metaAntecedentTerminalNodeMatches = matchMetaAntecedentTerminalNode(metaAntecedentTerminalNode, terminalNode, metaSubstitutions);
105
-
106
- metaAntecedentNodeMatches = metaAntecedentTerminalNodeMatches; ///
107
- } else {
108
- const nonTerminalNode = node, ///
109
- metaAntecedentNonTerminalNode = metaAntecedentNode, ///
110
- metaAntecedentNonTerminalNodeMatches = matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions);
111
-
112
- metaAntecedentNodeMatches = metaAntecedentNonTerminalNodeMatches; ///
113
- }
114
- }
115
-
116
- return metaAntecedentNodeMatches;
117
- }
118
-
119
- function matchMetaAntecedentNodes(metaAntecedentNodes, nodes, metaSubstitutions) {
120
- let metaAntecedentNodesMatches = false;
121
-
122
- const nodesLength = nodes.length,
123
- metaAntecedentNodesLength = metaAntecedentNodes.length;
124
-
125
- if (nodesLength === metaAntecedentNodesLength) {
126
- metaAntecedentNodesMatches = nodes.every((node, index) => {
127
- const metaAntecedentNode = metaAntecedentNodes[index],
128
- metaAntecedentNodeMatches = matchMetaAntecedentNode(metaAntecedentNode, node, metaSubstitutions);
129
-
130
- if (metaAntecedentNodeMatches) {
131
- return true;
132
- }
133
- });
134
- }
135
-
136
- return metaAntecedentNodesMatches;
137
- }
138
-
139
- function matchMetaAntecedentMetavariable(metaAntecedentMetavariableNode, nodes, metaSubstitutions) {
140
- let metaAntecedentMetavariableMatches;
141
-
142
- const metaAntecedentMetavariableName = metavariableNameFromMetavariableNode(metaAntecedentMetavariableNode),
143
- metaSubstitution = metaSubstitutions.find((metaSubstitution) => {
144
- const metavariableName = metaSubstitution.getMetavariableName();
145
-
146
- if (metavariableName === metaAntecedentMetavariableName) {
147
- return true;
148
- }
149
- }) || null;
150
-
151
- if (metaSubstitution !== null) {
152
- const metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
153
-
154
- metaAntecedentMetavariableMatches = metaSubstitutionNodesMatch; ///
155
- } else {
156
- const metavariableName = metaAntecedentMetavariableName, ///
157
- metaSubstitution = MetaSubstitution.fromMetavariableNameAndNodes(metavariableName, nodes);
158
-
159
- metaSubstitutions.push(metaSubstitution);
160
-
161
- metaAntecedentMetavariableMatches = true;
162
- }
163
-
164
- return metaAntecedentMetavariableMatches;
165
- }
166
-
167
- function matchMetaAntecedentTerminalNode(metaAntecedentTerminalNode, terminalNode, metaSubstitutions) {
168
- const matches = metaAntecedentTerminalNode.match(terminalNode),
169
- metaAntecedentTerminalNodeMatches = matches;
170
-
171
- return metaAntecedentTerminalNodeMatches;
172
- }
173
-
174
- function matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions) {
175
- let metaAntecedentNonTerminalNodeMatches = false;
176
-
177
- const ruleName = nonTerminalNode.getRuleName(),
178
- metaAntecedentRuleName = metaAntecedentNonTerminalNode.getRuleName(); ///
179
-
180
- if (ruleName === metaAntecedentRuleName) {
181
- const childNodes = nonTerminalNode.getChildNodes(),
182
- metaAntecedentChildNodes = metaAntecedentNonTerminalNode.getChildNodes(),
183
- nodes = childNodes, ///
184
- metaAntecedentNodes = metaAntecedentChildNodes, ///
185
- metaAntecedentChildNodesMatches = matchMetaAntecedentNodes(metaAntecedentNodes, nodes, metaSubstitutions);
186
-
187
- metaAntecedentNonTerminalNodeMatches = metaAntecedentChildNodesMatches; ///
188
-
189
- if (!metaAntecedentNonTerminalNodeMatches) {
190
- const ruleNameMetastatementRuleName = (ruleName === METASTATEMENT_RULE_NAME);
191
-
192
- if (ruleNameMetastatementRuleName) {
193
- const metastatementNode = nonTerminalNode, ///
194
- metaAntecedentMetastatementNode = metaAntecedentNonTerminalNode, ///
195
- metaAntecedentMetastatementNodeMatches = matchMetaAntecedentMetastatementNode(metaAntecedentMetastatementNode, metastatementNode, metaSubstitutions);
196
-
197
- metaAntecedentNonTerminalNodeMatches = metaAntecedentMetastatementNodeMatches; ///
198
- }
199
- }
200
- }
201
-
202
- return metaAntecedentNonTerminalNodeMatches;
203
- }
204
-
205
- function matchMetaAntecedentMetastatementNode(metaAntecedentMetastatementNode, metastatementNode, metaSubstitutions) {
206
- let metaAntecedentMetastatementNodeMatches = false;
207
-
208
- const metaAntecedentNonTerminalNode = metaAntecedentMetastatementNode, ///
209
- metaAntecedentChildNodes = metaAntecedentNonTerminalNode.getChildNodes(),
210
- metaAntecedentChildNodesLength = metaAntecedentChildNodes.length;
211
-
212
- if (metaAntecedentChildNodesLength === 1) {
213
- const firstMetaAntecedentChildNode = first(metaAntecedentChildNodes),
214
- metaAntecedentChildNode = firstMetaAntecedentChildNode, ///
215
- metaAntecedentChildNodeNonTerminalNode = metaAntecedentChildNode.isNonTerminalNode();
216
-
217
- if (metaAntecedentChildNodeNonTerminalNode) {
218
- const metaAntecedentNonTerminalChildNode = metaAntecedentChildNode, ///
219
- metaAntecedentNonTerminalChildNodeRuleName = metaAntecedentNonTerminalChildNode.getRuleName(),
220
- metaAntecedentNonTerminalChildNodeRuleNameMetavariableRuleName = (metaAntecedentNonTerminalChildNodeRuleName === METAVARIABLE_RULE_NAME);
221
-
222
- if (metaAntecedentNonTerminalChildNodeRuleNameMetavariableRuleName) {
223
- const metaAntecedentMetavariableNode = metaAntecedentNonTerminalChildNode, ///
224
- nonTerminalNode = metastatementNode, ///
225
- childNodes = nonTerminalNode.getChildNodes(),
226
- nodes = childNodes, ///
227
- metaAntecedentMetavariableMatches = matchMetaAntecedentMetavariable(metaAntecedentMetavariableNode, nodes, metaSubstitutions);
228
-
229
- metaAntecedentMetastatementNodeMatches = metaAntecedentMetavariableMatches; ///
230
- }
231
- }
232
- }
233
-
234
- return metaAntecedentMetastatementNodeMatches;
235
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- import ProofStep from "../step/proof";
4
- import Antecedent from "../antecedent";
5
- import verifyStatement from "./statement";
6
-
7
- import { nodeQuery } from "../utilities/query";
8
- import { nodeAsString } from "../utilities/string";
9
-
10
- const statementNodeQuery = nodeQuery("/antecedent/unqualifiedStatement!/statement!");
11
-
12
- export default function verifyAntecedent(antecedentNode, antecedents, proofContext) {
13
- let antecedentVerified;
14
-
15
- proofContext.begin(antecedentNode);
16
-
17
- const antecedentString = nodeAsString(antecedentNode);
18
-
19
- proofContext.debug(`Verifying the ${antecedentString} antecedent...`);
20
-
21
- const statementNode = statementNodeQuery(antecedentNode);
22
-
23
- if (statementNode !== null) {
24
- const qualified = false,
25
- statementVerified = verifyStatement(statementNode, qualified, proofContext);
26
-
27
- if (statementVerified) {
28
- const proofStep = ProofStep.fromStatementNode(statementNode),
29
- antecedent = Antecedent.fromStatementNode(statementNode);
30
-
31
- antecedents.push(antecedent);
32
-
33
- proofContext.addProofStep(proofStep);
34
- }
35
-
36
- antecedentVerified = true;
37
- }
38
-
39
- antecedentVerified ?
40
- proofContext.complete(antecedentNode) :
41
- proofContext.halt(antecedentNode);
42
-
43
- return antecedentVerified;
44
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- import Consequent from "../consequent";
4
-
5
- import { nodeQuery } from "../utilities/query";
6
- import { nodeAsString } from "../utilities/string";
7
-
8
- const statementNodeQuery = nodeQuery("/consequent/unqualifiedStatement!/statement!");
9
-
10
- export default function verifyConsequent(consequentNode, consequents, proofContext) {
11
- let consequentVerified = false;
12
-
13
- proofContext.begin(consequentNode);
14
-
15
- const consequentString = nodeAsString(consequentNode);
16
-
17
- proofContext.debug(`Verifying the ${consequentString} consequent...`);
18
-
19
- const statementNode = statementNodeQuery(consequentNode);
20
-
21
- if (statementNode !== null) {
22
- const consequent = Consequent.fromStatementNode(statementNode);
23
-
24
- consequents.push(consequent);
25
-
26
- consequentVerified = true;
27
- }
28
-
29
- consequentVerified ?
30
- proofContext.complete(consequentNode) :
31
- proofContext.halt(consequentNode);
32
-
33
- return consequentVerified;
34
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- import MetaproofStep from "../step/metaproof";
4
- import MetaAntecedent from "../metaAntecedent";
5
- import verifyMetastatement from "./metastatement";
6
-
7
- import { nodeQuery } from "../utilities/query";
8
- import { nodeAsString } from "../utilities/string";
9
-
10
- const metastatementNodeQuery = nodeQuery("/metaAntecedent/unqualifiedMetastatement!/metastatement!");
11
-
12
- export default function verifyMetaAntecedent(metaAntecedentNode, metaAntecedents, metaproofContext) {
13
- let metaAntecedentVerified;
14
-
15
- metaproofContext.begin(metaAntecedentNode);
16
-
17
- const metaAntecedentString = nodeAsString(metaAntecedentNode);
18
-
19
- metaproofContext.debug(`Verifying the ${metaAntecedentString} metaAntecedent...`);
20
-
21
- const metastatementNode = metastatementNodeQuery(metaAntecedentNode);
22
-
23
- if (metastatementNode !== null) {
24
- const qualified = false,
25
- metastatementVerified = verifyMetastatement(metastatementNode, qualified, metaproofContext);
26
-
27
- if (metastatementVerified) {
28
- const metaproofStep = MetaproofStep.fromMetastatementNode(metastatementNode),
29
- metaAntecedent = MetaAntecedent.fromMetastatementNode(metastatementNode);
30
-
31
- metaAntecedents.push(metaAntecedent);
32
-
33
- metaproofContext.addMetaproofStep(metaproofStep);
34
- }
35
-
36
- metaAntecedentVerified = true;
37
- }
38
-
39
- metaAntecedentVerified ?
40
- metaproofContext.complete(metaAntecedentNode) :
41
- metaproofContext.halt(metaAntecedentNode);
42
-
43
- return metaAntecedentVerified;
44
- }