occam-verify-cli 0.0.893 → 0.0.895
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 +3 -3
- package/lib/conclusion.js +37 -14
- package/lib/metaConsequent.js +29 -10
- package/lib/metaLemmaMetatheorem.js +4 -4
- package/lib/metaSupposition.js +38 -19
- package/lib/premise.js +93 -22
- package/lib/rule.js +31 -20
- package/lib/step/metaproof.js +19 -5
- package/lib/utilities/array.js +5 -2
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +2 -40
- package/lib/verify/metaProofStep.js +2 -2
- package/lib/verify/metaSubDerivation.js +3 -3
- package/lib/verify/metaSubproof.js +3 -3
- package/lib/verify/metastatement/qualified.js +32 -15
- package/lib/verify/ruleProofStep.js +27 -15
- package/lib/verify/statement/qualified.js +39 -23
- package/lib/verify/statement.js +7 -1
- package/package.json +4 -4
- package/src/axiomLemmaTheoremConjecture.js +3 -4
- package/src/conclusion.js +54 -26
- package/src/metaConsequent.js +40 -17
- package/src/metaLemmaMetatheorem.js +4 -4
- package/src/metaSupposition.js +58 -37
- package/src/premise.js +145 -41
- package/src/rule.js +36 -20
- package/src/step/metaproof.js +24 -7
- package/src/utilities/array.js +1 -1
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +0 -61
- package/src/verify/metaProofStep.js +1 -1
- package/src/verify/metaSubDerivation.js +2 -2
- package/src/verify/metaSubproof.js +2 -2
- package/src/verify/metastatement/qualified.js +51 -21
- package/src/verify/ruleProofStep.js +24 -2
- package/src/verify/statement/qualified.js +55 -25
- package/src/verify/statement.js +2 -2
|
@@ -13,7 +13,6 @@ const termNodeQuery = nodeQuery("/term!"),
|
|
|
13
13
|
termVariableNodeQuery = nodeQuery("/term/variable!"),
|
|
14
14
|
metastatementNodeQuery = nodeQuery("/metastatement!"),
|
|
15
15
|
metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!"),
|
|
16
|
-
metastatementStatementNodeQuery = nodeQuery("/metastatement/statement!"),
|
|
17
16
|
metastatementMetavariableNodeQuery = nodeQuery("/metastatement/metavariable!"),
|
|
18
17
|
metastatementSubstitutionNodeQuery = nodeQuery("/metastatement/substitution");
|
|
19
18
|
|
|
@@ -22,24 +21,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
22
21
|
let nonTerminalNodeVerified;
|
|
23
22
|
|
|
24
23
|
const nodeQueryMaps = [
|
|
25
|
-
{
|
|
26
|
-
nodeQueryA: metastatementMetavariableNodeQuery,
|
|
27
|
-
nodeQueryB: metastatementStatementNodeQuery,
|
|
28
|
-
verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
|
|
29
|
-
let nonTerminalNodeVerified;
|
|
30
|
-
|
|
31
|
-
const metastatementStatementNodeB = nodeB, ///
|
|
32
|
-
metastatementMetavariableNodeA = nodeA, ///
|
|
33
|
-
metastatementSubstitutionNodeA = metastatementSubstitutionNodeQuery(nonTerminalNodeA),
|
|
34
|
-
metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode =
|
|
35
|
-
|
|
36
|
-
this.verifyMetastatementMetavariableNodeAgainstMetastatementStatementNode(metastatementMetavariableNodeA, metastatementStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead);
|
|
37
|
-
|
|
38
|
-
nonTerminalNodeVerified = metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode; ///
|
|
39
|
-
|
|
40
|
-
return nonTerminalNodeVerified;
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
24
|
{
|
|
44
25
|
nodeQueryA: metastatementMetavariableNodeQuery,
|
|
45
26
|
nodeQueryB: metaArgumentStatementNodeQuery,
|
|
@@ -76,23 +57,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
76
57
|
return nonTerminalNodeVerified;
|
|
77
58
|
}
|
|
78
59
|
},
|
|
79
|
-
{
|
|
80
|
-
nodeQueryA: metastatementStatementNodeQuery,
|
|
81
|
-
nodeQueryB: statementNodeQuery,
|
|
82
|
-
verifyNodes: (nodeA, nodeB, substitutions, localContextA, localContextB, verifyAhead) => {
|
|
83
|
-
let nonTerminalNodeVerified;
|
|
84
|
-
|
|
85
|
-
const statementNodeB = nodeB, ///
|
|
86
|
-
metastatementStatementNodeA = nodeA, ///
|
|
87
|
-
metastatementStatementNodeVerifiedAgainstStatementNode =
|
|
88
|
-
|
|
89
|
-
this.verifyMetastatementStatementNodeAgainstStatementNode(metastatementStatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
90
|
-
|
|
91
|
-
nonTerminalNodeVerified = metastatementStatementNodeVerifiedAgainstStatementNode; ///
|
|
92
|
-
|
|
93
|
-
return nonTerminalNodeVerified;
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
60
|
{
|
|
97
61
|
nodeQueryA: metastatementNodeQuery,
|
|
98
62
|
nodeQueryB: statementNodeQuery,
|
|
@@ -138,19 +102,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
138
102
|
return nonTerminalNodeVerified;
|
|
139
103
|
}
|
|
140
104
|
|
|
141
|
-
verifyMetastatementMetavariableNodeAgainstMetastatementStatementNode(metastatementMetavariableNodeA, metastatementStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
|
|
142
|
-
let metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode;
|
|
143
|
-
|
|
144
|
-
const statementNode = metastatementStatementNodeB, ///
|
|
145
|
-
metavariableNode = metastatementMetavariableNodeA, ///
|
|
146
|
-
substitutionNode = metastatementSubstitutionNodeA, ///
|
|
147
|
-
metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNode, statementNode, substitutionNode, substitutions, localContextA, localContextB, verifyAhead)
|
|
148
|
-
|
|
149
|
-
metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode = metavariableVerifiedAgainstStatement; ///
|
|
150
|
-
|
|
151
|
-
return metastatementMetavariableNodeVerifiedAgainstMetastatementStatementNode;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
105
|
verifyMetastatementMetavariableNodeAgainstMetaArgumentStatementNode(metastatementMetavariableNodeA, metaArgumentStatementNodeB, metastatementSubstitutionNodeA, substitutions, localContextA, localContextB, verifyAhead) {
|
|
155
106
|
let metastatementMetavariableNodeVerifiedAgainstMetaArgumentStatementNode;
|
|
156
107
|
|
|
@@ -177,18 +128,6 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
177
128
|
return metastatementMetavariableNodeVerifiedAgainstStatementNode;
|
|
178
129
|
}
|
|
179
130
|
|
|
180
|
-
verifyMetastatementStatementNodeAgainstStatementNode(metastatementStatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
181
|
-
let metastatementStatementNodeVerifiedAgainstStatementNode;
|
|
182
|
-
|
|
183
|
-
const nonTerminalNodeA = metastatementStatementNodeA, ///
|
|
184
|
-
nonTerminalNodeB = statementNodeB, ///
|
|
185
|
-
nonTerminalNodeVerified = super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
186
|
-
|
|
187
|
-
metastatementStatementNodeVerifiedAgainstStatementNode = nonTerminalNodeVerified; ///
|
|
188
|
-
|
|
189
|
-
return metastatementStatementNodeVerifiedAgainstStatementNode;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
131
|
verifyMetastatementNodeAgainstStatementNode(metastatementNodeA, statementNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
193
132
|
let metastatementNodeVerifiedAgainstStatementNode;
|
|
194
133
|
|
|
@@ -32,7 +32,7 @@ export default function verifyMetaProofStep(metaProofStepNode, substitutions, lo
|
|
|
32
32
|
} else if (metaSubproofNode !== null) {
|
|
33
33
|
let metaSubproofVerified;
|
|
34
34
|
|
|
35
|
-
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, localMetaContext);
|
|
35
|
+
metaSubproofVerified = verifyMetaSubproof(metaSubproofNode, substitutions, localMetaContext);
|
|
36
36
|
|
|
37
37
|
if (metaSubproofVerified) {
|
|
38
38
|
const metaproofStep = MetaproofStep.fromMetaSubproofNode(metaSubproofNode);
|
|
@@ -4,14 +4,14 @@ import { nodesQuery } from "../utilities/query";
|
|
|
4
4
|
|
|
5
5
|
const metaProofStepNodesQuery = nodesQuery("/metaSubDerivation/metaProofStep|lastMetaProofStep");
|
|
6
6
|
|
|
7
|
-
export default function verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext) {
|
|
7
|
+
export default function verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext) {
|
|
8
8
|
let metaSubDerivationVerified;
|
|
9
9
|
|
|
10
10
|
const metaProofStepNodes = metaProofStepNodesQuery(metaSubDerivationNode);
|
|
11
11
|
|
|
12
12
|
metaSubDerivationVerified = metaProofStepNodes.every((metaProofStepNode) => {
|
|
13
13
|
const { verifyMetaProofStep } = verifyMetaSubDerivation,
|
|
14
|
-
metaProofStepVerified = verifyMetaProofStep(metaProofStepNode, localMetaContext);
|
|
14
|
+
metaProofStepVerified = verifyMetaProofStep(metaProofStepNode, substitutions, localMetaContext);
|
|
15
15
|
|
|
16
16
|
if (metaProofStepVerified) {
|
|
17
17
|
return true;
|
|
@@ -9,7 +9,7 @@ import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
|
9
9
|
const suppositionNodesQuery = nodesQuery("/metaSubproof/supposition"),
|
|
10
10
|
metaSubDerivationNodeQuery = nodeQuery("/metaSubproof/metaSubDerivation");
|
|
11
11
|
|
|
12
|
-
export default function verifyMetaSubproof(metaSubproofNode, localMetaContext) {
|
|
12
|
+
export default function verifyMetaSubproof(metaSubproofNode, substitutions, localMetaContext) {
|
|
13
13
|
let metaSubproofVerified = false;
|
|
14
14
|
|
|
15
15
|
localMetaContext = LocalMetaContext.fromLocalMetaContext(localMetaContext); ///
|
|
@@ -20,7 +20,7 @@ export default function verifyMetaSubproof(metaSubproofNode, localMetaContext) {
|
|
|
20
20
|
|
|
21
21
|
if (metaSuppositionsVerified) {
|
|
22
22
|
const metaSubDerivationNode = metaSubDerivationNodeQuery(metaSubproofNode),
|
|
23
|
-
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, localMetaContext);
|
|
23
|
+
metaSubDerivationVerified = verifyMetaSubDerivation(metaSubDerivationNode, substitutions, localMetaContext);
|
|
24
24
|
|
|
25
25
|
if (metaSubDerivationVerified) {
|
|
26
26
|
metaSubproofVerified = true;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import verifyMetastatement from "../../verify/metastatement";
|
|
4
3
|
import verifyMetavariableAgainstMetastatement from "../../verify/metavariableAgainstMetastatement";
|
|
5
4
|
|
|
6
5
|
import { nodeQuery } from "../../utilities/query";
|
|
@@ -15,28 +14,30 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
|
|
|
15
14
|
|
|
16
15
|
localMetaContext.trace(`Verifying the '${qualifiedMetastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
|
|
17
16
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
const metavariableNode = metavariableNodeQuery(qualifiedMetastatementNode),
|
|
18
|
+
verifyQualifiedMetastatementFunctions = [
|
|
19
|
+
verifyQualifiedMetastatementAAgainstRule,
|
|
20
|
+
verifyQualifiedMetastatementAAgainstReference
|
|
21
|
+
];
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
qualifiedMetastatementVerified = verifyQualifiedMetastatementFunctions.some((verifyQualifiedMetastatementFunction) => { ///
|
|
24
|
+
const qualifiedMetastatementVerified = verifyQualifiedMetastatementFunction(qualifiedMetastatementNode, metavariableNode, substitutions, localMetaContext);
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
if (qualifiedMetastatementVerified) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
if (qualifiedMetastatementVerified) {
|
|
32
|
+
const derived = false,
|
|
33
|
+
metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
|
|
34
|
+
metastatementVerified = verifyMetastatement(metastatementNode, assignments, derived, localMetaContext, () => {
|
|
35
|
+
const verifiedAhead = true;
|
|
36
|
+
|
|
37
|
+
return verifiedAhead;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
qualifiedMetastatementVerified = metastatementVerified; ///
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
if (qualifiedMetastatementVerified) {
|
|
@@ -98,3 +99,32 @@ function verifyQualifiedMetastatementAAgainstReference(qualifiedMetastatementNod
|
|
|
98
99
|
|
|
99
100
|
return qualifiedMetastatementVerifiedAgainstReference;
|
|
100
101
|
}
|
|
102
|
+
|
|
103
|
+
function verifyMetastatement(metastatementNode, assignments, derived, localMetaContext) {
|
|
104
|
+
let metastatementVerified;
|
|
105
|
+
|
|
106
|
+
const metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
107
|
+
|
|
108
|
+
localMetaContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
109
|
+
|
|
110
|
+
const verifyMetaStatementFunctions = [
|
|
111
|
+
///
|
|
112
|
+
];
|
|
113
|
+
|
|
114
|
+
verifyMetaStatementFunctions.some((verifyStatementFunction) => {
|
|
115
|
+
const metastatementVerified = verifyStatementFunction(metastatementNode, assignments, derived, localMetaContext);
|
|
116
|
+
|
|
117
|
+
if (metastatementVerified) {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
metastatementVerified = true; ///
|
|
123
|
+
|
|
124
|
+
if (metastatementVerified) {
|
|
125
|
+
localMetaContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return metastatementVerified;
|
|
129
|
+
}
|
|
130
|
+
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import LocalContext from "../context/local";
|
|
3
4
|
import MetaproofStep from "../step/metaproof";
|
|
4
5
|
import verifyRuleSubproof from "../verify/ruleSubproof";
|
|
5
6
|
import verifyRuleSubDerivation from "../verify/ruleSubDerivation";
|
|
@@ -11,7 +12,8 @@ import verifyUnqualifiedMetastatement from "../verify/metastatement/unqualified"
|
|
|
11
12
|
import { nodeQuery } from "../utilities/query";
|
|
12
13
|
import { assignAssignment } from "../utilities/assignments";
|
|
13
14
|
|
|
14
|
-
const
|
|
15
|
+
const statementNodeQuery = nodeQuery("/qualifiedStatement|unqualifiedStatement/statement!"),
|
|
16
|
+
ruleSubproofNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/ruleSubproof!"),
|
|
15
17
|
metastatementNodeQuery = nodeQuery("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"),
|
|
16
18
|
qualifiedStatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/qualifiedStatement!"),
|
|
17
19
|
unqualifiedStatementNodeQuery = nodeQuery("/ruleProofStep|lastRuleProofStep/unqualifiedStatement!"),
|
|
@@ -42,7 +44,27 @@ export default function verifyRuleProofStep(ruleProofStepNode, localMetaContext)
|
|
|
42
44
|
ruleProofStepVerified = true;
|
|
43
45
|
}
|
|
44
46
|
} else if (qualifiedStatementNode !== null) {
|
|
45
|
-
|
|
47
|
+
let qualifiedStatementVerified;
|
|
48
|
+
|
|
49
|
+
const assignments = [],
|
|
50
|
+
localContext = LocalContext.fromLocalMetaContext(localMetaContext);
|
|
51
|
+
|
|
52
|
+
qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, localContext);
|
|
53
|
+
|
|
54
|
+
if (qualifiedStatementVerified) {
|
|
55
|
+
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
56
|
+
|
|
57
|
+
qualifiedStatementVerified = assignmentAssigned; ///
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (qualifiedStatementVerified) {
|
|
61
|
+
const statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
62
|
+
metaproofStep = MetaproofStep.fromStatementNode(statementNode);
|
|
63
|
+
|
|
64
|
+
localMetaContext.addMetaproofStep(metaproofStep);
|
|
65
|
+
|
|
66
|
+
ruleProofStepVerified = true;
|
|
67
|
+
}
|
|
46
68
|
} else if (unqualifiedStatementNode !== null) {
|
|
47
69
|
debugger
|
|
48
70
|
} else if (qualifiedMetastatementNode !== null) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import verifyStatement from "../../verify/statement";
|
|
4
|
-
|
|
5
3
|
import { nodeQuery } from "../../utilities/query";
|
|
4
|
+
import { verifyStatementAsEquality, verifyStatementAsTypeAssertion } from "../../verify/statement";
|
|
6
5
|
|
|
7
6
|
const statementNodeQuery = nodeQuery("/qualifiedStatement/statement!"),
|
|
8
7
|
metavariableNodeQuery = nodeQuery("/qualifiedStatement/reference!/metavariable!");
|
|
@@ -14,31 +13,33 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, assignm
|
|
|
14
13
|
|
|
15
14
|
localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement...`, qualifiedStatementNode);
|
|
16
15
|
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
const metavariableNode = metavariableNodeQuery(qualifiedStatementNode),
|
|
17
|
+
verifyQualifiedStatementFunctions = [
|
|
18
|
+
verifyQualifiedStatementAAgainstRule,
|
|
19
|
+
verifyQualifiedStatementAAgainstAxiom,
|
|
20
|
+
verifyQualifiedStatementAAgainstLemma,
|
|
21
|
+
verifyQualifiedStatementAAgainstTheorem,
|
|
22
|
+
verifyQualifiedStatementAAgainstConjecture
|
|
23
|
+
];
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
qualifiedStatementVerified = verifyQualifiedStatementFunctions.some((verifyQualifiedStatementFunction) => { ///
|
|
26
|
+
const qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode, metavariableNode, localContext);
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
});
|
|
28
|
+
if (qualifiedStatementVerified) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
if (qualifiedStatementVerified) {
|
|
34
|
+
const derived = false,
|
|
35
|
+
statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
36
|
+
statementVerified = verifyStatement(statementNode, assignments, derived, localContext, () => {
|
|
37
|
+
const verifiedAhead = true;
|
|
38
|
+
|
|
39
|
+
return verifiedAhead;
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
qualifiedStatementVerified = statementVerified; ///
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
if (qualifiedStatementVerified) {
|
|
@@ -167,3 +168,32 @@ function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, meta
|
|
|
167
168
|
|
|
168
169
|
return qualifiedStatementVerifiedAgainstConjecture;
|
|
169
170
|
}
|
|
171
|
+
|
|
172
|
+
function verifyStatement(statementNode, assignments, derived, localContext, verifyAhead) {
|
|
173
|
+
let statementVerified;
|
|
174
|
+
|
|
175
|
+
const statementString = localContext.nodeAsString(statementNode);
|
|
176
|
+
|
|
177
|
+
localContext.trace(`Verifying the '${statementString}' statement...`, statementNode);
|
|
178
|
+
|
|
179
|
+
const verifyStatementFunctions = [
|
|
180
|
+
verifyStatementAsEquality,
|
|
181
|
+
verifyStatementAsTypeAssertion
|
|
182
|
+
];
|
|
183
|
+
|
|
184
|
+
verifyStatementFunctions.some((verifyStatementFunction) => {
|
|
185
|
+
const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext, verifyAhead);
|
|
186
|
+
|
|
187
|
+
if (statementVerified) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
statementVerified = true; ///
|
|
193
|
+
|
|
194
|
+
if (statementVerified) {
|
|
195
|
+
localContext.debug(`...verified the '${statementString}' statement.`, statementNode);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return statementVerified;
|
|
199
|
+
}
|
package/src/verify/statement.js
CHANGED
|
@@ -71,7 +71,7 @@ Object.assign(statementAgainstCombinatorNodesVerifier, {
|
|
|
71
71
|
|
|
72
72
|
export default verifyStatement;
|
|
73
73
|
|
|
74
|
-
function verifyStatementAsEquality(statementNode, assignments, derived, localContext, verifyAhead) {
|
|
74
|
+
export function verifyStatementAsEquality(statementNode, assignments, derived, localContext, verifyAhead) {
|
|
75
75
|
let statementVerifiedAsEquality = false;
|
|
76
76
|
|
|
77
77
|
const equalityNode = equalityNodeQuery(statementNode);
|
|
@@ -93,7 +93,7 @@ function verifyStatementAsEquality(statementNode, assignments, derived, localCon
|
|
|
93
93
|
return statementVerifiedAsEquality;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
|
|
96
|
+
export function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext, verifyAhead) {
|
|
97
97
|
let statementVerifiedAsTypeAssertion = false;
|
|
98
98
|
|
|
99
99
|
const typeAssertionNode = typeAssertionNodeQuery(statementNode);
|