occam-verify-cli 0.0.700 → 0.0.704
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/assignment/equality.js +2 -2
- package/lib/assignment/metavariable.js +2 -2
- package/lib/assignment/variable.js +2 -2
- package/lib/collection.js +44 -6
- package/lib/conclusion.js +6 -6
- package/lib/consequent.js +4 -4
- package/lib/context/file.js +9 -2
- package/lib/context/local.js +27 -64
- package/lib/context/localMeta.js +8 -1
- package/lib/equality.js +20 -4
- package/lib/premise.js +9 -9
- package/lib/supposition.js +4 -4
- package/lib/utilities/collection.js +27 -13
- package/lib/verifier/node/statementAsCombinator.js +7 -17
- package/lib/verifier/node/termAsConstructor.js +10 -45
- package/lib/verifier/nodes/equality.js +169 -0
- package/lib/verifier/nodes/metastatementForMetavariable.js +6 -7
- package/lib/verifier/nodes/statement.js +12 -4
- package/lib/verifier/nodes/statementForMetavariable.js +6 -7
- package/lib/verifier/nodes/termForVariable.js +19 -20
- package/lib/verify/consequent.js +3 -3
- package/lib/verify/derivation.js +28 -6
- package/lib/verify/equality.js +9 -4
- package/lib/verify/givenType.js +32 -0
- package/lib/verify/metastatement.js +7 -25
- package/lib/verify/statement/qualified.js +135 -37
- package/lib/verify/statement.js +44 -33
- package/lib/verify/supposition.js +13 -8
- package/lib/verify/suppositions.js +2 -11
- package/lib/verify/term.js +35 -50
- package/lib/verify/termAndGivenType.js +39 -0
- package/lib/verify/termAsGivenVariable.js +36 -0
- package/lib/verify/type.js +28 -4
- package/lib/verify/typeAssertion.js +35 -22
- package/package.json +1 -1
- package/src/assignment/equality.js +2 -2
- package/src/assignment/metavariable.js +2 -2
- package/src/assignment/variable.js +2 -2
- package/src/collection.js +55 -5
- package/src/conclusion.js +6 -6
- package/src/consequent.js +4 -4
- package/src/context/file.js +7 -1
- package/src/context/local.js +33 -78
- package/src/context/localMeta.js +6 -0
- package/src/equality.js +23 -2
- package/src/premise.js +10 -10
- package/src/supposition.js +3 -3
- package/src/utilities/collection.js +31 -11
- package/src/verifier/node/statementAsCombinator.js +5 -24
- package/src/verifier/node/termAsConstructor.js +6 -47
- package/src/verifier/nodes/equality.js +47 -0
- package/src/verifier/nodes/metastatementForMetavariable.js +10 -10
- package/src/verifier/nodes/statement.js +1 -1
- package/src/verifier/nodes/statementForMetavariable.js +10 -10
- package/src/verifier/nodes/termForVariable.js +30 -30
- package/src/verify/consequent.js +4 -4
- package/src/verify/derivation.js +37 -8
- package/src/verify/equality.js +12 -3
- package/src/verify/{standaloneType.js → givenType.js} +7 -7
- package/src/verify/metastatement.js +8 -35
- package/src/verify/statement/qualified.js +194 -39
- package/src/verify/statement.js +65 -44
- package/src/verify/supposition.js +15 -8
- package/src/verify/suppositions.js +1 -13
- package/src/verify/term.js +42 -58
- package/src/verify/termAndGivenType.js +37 -0
- package/src/verify/termAsGivenVariable.js +39 -0
- package/src/verify/type.js +26 -0
- package/src/verify/typeAssertion.js +50 -28
- package/lib/verifier/nodes/metastatementForMetavariable/conclusion.js +0 -114
- package/lib/verifier/nodes/metastatementForMetavariable/premise.js +0 -114
- package/lib/verifier/nodes/statementForMetavariable/conclusion.js +0 -114
- package/lib/verifier/nodes/statementForMetavariable/premise.js +0 -114
- package/lib/verifier/nodes/termForVariable/consequent.js +0 -114
- package/lib/verifier/nodes/termForVariable/supposition.js +0 -114
- package/lib/verify/standaloneType.js +0 -32
- package/lib/verify/termAndStandaloneType.js +0 -39
- package/lib/verify/termAsVariableAndStandaloneType.js +0 -39
- package/src/verifier/nodes/metastatementForMetavariable/conclusion.js +0 -11
- package/src/verifier/nodes/metastatementForMetavariable/premise.js +0 -11
- package/src/verifier/nodes/statementForMetavariable/conclusion.js +0 -11
- package/src/verifier/nodes/statementForMetavariable/premise.js +0 -11
- package/src/verifier/nodes/termForVariable/consequent.js +0 -11
- package/src/verifier/nodes/termForVariable/supposition.js +0 -11
- package/src/verify/termAndStandaloneType.js +0 -37
- package/src/verify/termAsVariableAndStandaloneType.js +0 -38
|
@@ -8,7 +8,7 @@ import { METASTATEMENT_RULE_NAME } from "../../ruleNames";
|
|
|
8
8
|
|
|
9
9
|
const metavariableNodeQuery = nodeQuery('/metastatement/metavariable!');
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
class MetastatementForMetavariableNodesVerifier extends NodesVerifier {
|
|
12
12
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localMetaContextB, verifyAhead) {
|
|
13
13
|
let nonTerminalNodeVerified = false;
|
|
14
14
|
|
|
@@ -68,16 +68,12 @@ export default class MetastatementForMetavariableNodesVerifier extends NodesVeri
|
|
|
68
68
|
|
|
69
69
|
metavariableNodeVerified = metastatementNodeMatches; ///
|
|
70
70
|
} else {
|
|
71
|
-
const
|
|
71
|
+
const metavariableNode = metavariableNodeA, ///
|
|
72
|
+
metastatementNode = metastatementNodeB, ///
|
|
73
|
+
metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode),
|
|
74
|
+
substitution = metastatementForMetavariableSubstitution; ///
|
|
72
75
|
|
|
73
|
-
|
|
74
|
-
const metavariableNode = metavariableNodeA, ///
|
|
75
|
-
metastatementNode = metastatementNodeB, ///
|
|
76
|
-
metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode),
|
|
77
|
-
substitution = metastatementForMetavariableSubstitution; ///
|
|
78
|
-
|
|
79
|
-
substitutions.push(substitution);
|
|
80
|
-
}
|
|
76
|
+
substitutions.push(substitution);
|
|
81
77
|
|
|
82
78
|
metavariableNodeVerified = true;
|
|
83
79
|
}
|
|
@@ -85,3 +81,7 @@ export default class MetastatementForMetavariableNodesVerifier extends NodesVeri
|
|
|
85
81
|
return metavariableNodeVerified;
|
|
86
82
|
}
|
|
87
83
|
}
|
|
84
|
+
|
|
85
|
+
const metastatementForMetavariableNodesVerifier = new MetastatementForMetavariableNodesVerifier();
|
|
86
|
+
|
|
87
|
+
export default metastatementForMetavariableNodesVerifier;
|
|
@@ -60,7 +60,7 @@ const statementNodesVerifier = new StatementNodesVerifier();
|
|
|
60
60
|
|
|
61
61
|
export default statementNodesVerifier;
|
|
62
62
|
|
|
63
|
-
function verifyMetaargument(metaArgumentNode, combinatorMetaargumentNode, context, verifyAhead) {
|
|
63
|
+
export function verifyMetaargument(metaArgumentNode, combinatorMetaargumentNode, context, verifyAhead) {
|
|
64
64
|
let metaArgumentVerified = false;
|
|
65
65
|
|
|
66
66
|
const metaArgumentString = context.nodeAsString(metaArgumentNode);
|
|
@@ -9,7 +9,7 @@ import { STATEMENT_RULE_NAME, METASTATEMENT_RULE_NAME, META_ARGUMENT_RULE_NAME }
|
|
|
9
9
|
const metavariableNodeQuery = nodeQuery('/metastatement/metavariable!'),
|
|
10
10
|
metaArgumentChildNodeNodeQuery = nodeQuery('/metaArgument/*!');
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
class StatementForMetavariableNodesVerifier extends NodesVerifier {
|
|
13
13
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localContext) {
|
|
14
14
|
let nonTerminalNodeVerified = false;
|
|
15
15
|
|
|
@@ -84,16 +84,12 @@ export default class StatementForMetavariableNodesVerifier extends NodesVerifier
|
|
|
84
84
|
|
|
85
85
|
metavariableNodeVerified = statementNodeMatches; ///
|
|
86
86
|
} else {
|
|
87
|
-
const
|
|
87
|
+
const metavariableNode = metavariableNodeA, ///
|
|
88
|
+
statementNode = statementNodeB, ///
|
|
89
|
+
statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromMetavariableNodeAndStatementNode(metavariableNode, statementNode),
|
|
90
|
+
substitution = statementForMetavariableSubstitution; ///
|
|
88
91
|
|
|
89
|
-
|
|
90
|
-
const metavariableNode = metavariableNodeA, ///
|
|
91
|
-
statementNode = statementNodeB, ///
|
|
92
|
-
statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromMetavariableNodeAndStatementNode(metavariableNode, statementNode),
|
|
93
|
-
substitution = statementForMetavariableSubstitution; ///
|
|
94
|
-
|
|
95
|
-
substitutions.push(substitution);
|
|
96
|
-
}
|
|
92
|
+
substitutions.push(substitution);
|
|
97
93
|
|
|
98
94
|
metavariableNodeVerified = true;
|
|
99
95
|
}
|
|
@@ -101,3 +97,7 @@ export default class StatementForMetavariableNodesVerifier extends NodesVerifier
|
|
|
101
97
|
return metavariableNodeVerified;
|
|
102
98
|
}
|
|
103
99
|
}
|
|
100
|
+
|
|
101
|
+
const statementForMetavariableNodesVerifier = new StatementForMetavariableNodesVerifier();
|
|
102
|
+
|
|
103
|
+
export default statementForMetavariableNodesVerifier;
|
|
@@ -10,7 +10,7 @@ import { TERM_RULE_NAME } from "../../ruleNames";
|
|
|
10
10
|
|
|
11
11
|
const variableNodeQuery = nodeQuery('/term/variable!');
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
class TermForVariableNodesVerifier extends NodesVerifier {
|
|
14
14
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead) {
|
|
15
15
|
let nonTerminalNodeVerified = false;
|
|
16
16
|
|
|
@@ -74,47 +74,47 @@ export default class TermForVariableNodesVerifier extends NodesVerifier {
|
|
|
74
74
|
variableVerified = verifiedAhead; ///
|
|
75
75
|
}
|
|
76
76
|
} else {
|
|
77
|
-
const
|
|
77
|
+
const variableNode = variableNodeA, ///
|
|
78
|
+
localContext = localContextA, ///
|
|
79
|
+
variable = localContext.findVariableByVariableNode(variableNode);
|
|
78
80
|
|
|
79
|
-
if (
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
if (variable !== null) {
|
|
82
|
+
const terms = [],
|
|
83
|
+
context = localContextB, ///
|
|
84
|
+
termNode = termNodeB, ///
|
|
85
|
+
termVerified = verifyTerm(termNode, terms, context, () => {
|
|
86
|
+
let verifiedAhead = false;
|
|
83
87
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
let verifiedAhead = false;
|
|
88
|
+
const firstTerm = first(terms),
|
|
89
|
+
term = firstTerm, ///
|
|
90
|
+
termType = term.getType(),
|
|
91
|
+
variableType = variable.getType(),
|
|
92
|
+
variableTypeEqualToOrSuperTypeOfTermType = variableType.isEqualToOrSuperTypeOf(termType);
|
|
90
93
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
variableType = variable.getType(),
|
|
95
|
-
variableTypeEqualToOrSuperTypeOfTermType = variableType.isEqualToOrSuperTypeOf(termType);
|
|
94
|
+
if (variableTypeEqualToOrSuperTypeOfTermType) {
|
|
95
|
+
const termForVariableSubstitution = TermForVariableSubstitution.fromVariableNodeAndTermNode(variableNode, termNode),
|
|
96
|
+
substitution = termForVariableSubstitution; ///
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
const termForVariableSubstitution = TermForVariableSubstitution.fromVariableNodeAndTermNode(variableNode, termNode),
|
|
99
|
-
substitution = termForVariableSubstitution; ///
|
|
98
|
+
substitutions.push(substitution);
|
|
100
99
|
|
|
101
|
-
|
|
100
|
+
verifiedAhead = verifyAhead();
|
|
102
101
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (!verifiedAhead) {
|
|
106
|
-
substitutions.pop();
|
|
107
|
-
}
|
|
102
|
+
if (!verifiedAhead) {
|
|
103
|
+
substitutions.pop();
|
|
108
104
|
}
|
|
105
|
+
}
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
return verifiedAhead;
|
|
108
|
+
});
|
|
112
109
|
|
|
113
|
-
|
|
114
|
-
}
|
|
110
|
+
variableVerified = termVerified; ///
|
|
115
111
|
}
|
|
116
112
|
}
|
|
117
113
|
|
|
118
114
|
return variableVerified;
|
|
119
115
|
}
|
|
120
116
|
}
|
|
117
|
+
|
|
118
|
+
const termForVariableNodesVerifier = new TermForVariableNodesVerifier();
|
|
119
|
+
|
|
120
|
+
export default termForVariableNodesVerifier;
|
package/src/verify/consequent.js
CHANGED
|
@@ -21,15 +21,15 @@ export default function verifyConsequent(consequentNode, consequents, localConte
|
|
|
21
21
|
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
22
22
|
|
|
23
23
|
if (unqualifiedStatementVerified) {
|
|
24
|
+
consequentVerified = true;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (consequentVerified) {
|
|
24
28
|
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
|
25
29
|
consequent = Consequent.fromStatementNode(statementNode);
|
|
26
30
|
|
|
27
31
|
consequents.push(consequent);
|
|
28
32
|
|
|
29
|
-
consequentVerified = true;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (consequentVerified) {
|
|
33
33
|
localContext.debug(`...verified the '${consequentString}' consequent.`, consequentNode);
|
|
34
34
|
}
|
|
35
35
|
|
package/src/verify/derivation.js
CHANGED
|
@@ -68,14 +68,17 @@ function verifySubproof(subproofNode, localContext) {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
function verifyChild(childNode, localContext) {
|
|
71
|
-
let childVerified;
|
|
71
|
+
let childVerified = false;
|
|
72
72
|
|
|
73
73
|
const childNodeRuleName = childNode.getRuleName();
|
|
74
74
|
|
|
75
75
|
switch (childNodeRuleName) {
|
|
76
76
|
case SUBPROOF_RULE_NAME: {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
let subproofVerified;
|
|
78
|
+
|
|
79
|
+
const subproofNode = childNode; ///
|
|
80
|
+
|
|
81
|
+
subproofVerified = verifySubproof(subproofNode, localContext);
|
|
79
82
|
|
|
80
83
|
if (subproofVerified) {
|
|
81
84
|
const proofStep = ProofStep.fromSubproofNode(subproofNode);
|
|
@@ -89,10 +92,23 @@ function verifyChild(childNode, localContext) {
|
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
case QUALIFIED_STATEMENT_RULE_NAME: {
|
|
95
|
+
let qualifiedStatementVerified;
|
|
96
|
+
|
|
92
97
|
const derived = true,
|
|
93
98
|
assignments = [],
|
|
94
|
-
qualifiedStatementNode = childNode
|
|
95
|
-
|
|
99
|
+
qualifiedStatementNode = childNode; ///
|
|
100
|
+
|
|
101
|
+
qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, assignments, derived, localContext);
|
|
102
|
+
|
|
103
|
+
if (qualifiedStatementVerified) {
|
|
104
|
+
qualifiedStatementVerified = assignments.every((assignment) => { ///
|
|
105
|
+
const assigned = assignment.assign(localContext);
|
|
106
|
+
|
|
107
|
+
if (assigned) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
96
112
|
|
|
97
113
|
if (qualifiedStatementVerified) {
|
|
98
114
|
const statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
@@ -100,17 +116,30 @@ function verifyChild(childNode, localContext) {
|
|
|
100
116
|
|
|
101
117
|
localContext.addProofStep(proofStep);
|
|
102
118
|
|
|
103
|
-
childVerified =
|
|
119
|
+
childVerified = true; ///
|
|
104
120
|
}
|
|
105
121
|
|
|
106
122
|
break;
|
|
107
123
|
}
|
|
108
124
|
|
|
109
125
|
case UNQUALIFIED_STATEMENT_RULE_NAME: {
|
|
126
|
+
let unqualifiedStatementVerified;
|
|
127
|
+
|
|
110
128
|
const derived = true,
|
|
111
129
|
assignments = [],
|
|
112
|
-
unqualifiedStatementNode = childNode
|
|
113
|
-
|
|
130
|
+
unqualifiedStatementNode = childNode; ///
|
|
131
|
+
|
|
132
|
+
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
133
|
+
|
|
134
|
+
if (unqualifiedStatementVerified) {
|
|
135
|
+
unqualifiedStatementVerified = assignments.every((assignment) => { ///
|
|
136
|
+
const assigned = assignment.assign(localContext);
|
|
137
|
+
|
|
138
|
+
if (assigned) {
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
114
143
|
|
|
115
144
|
if (unqualifiedStatementVerified) {
|
|
116
145
|
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
package/src/verify/equality.js
CHANGED
|
@@ -59,13 +59,22 @@ function verifyDerivedEquality(equalityNode, assignments, derived, context, veri
|
|
|
59
59
|
secondTerm = second(terms),
|
|
60
60
|
leftTerm = firstTerm, ///
|
|
61
61
|
rightTerm = secondTerm, ///
|
|
62
|
-
equality = Equality.
|
|
62
|
+
equality = Equality.fromLeftTermRightTermAndEqualityNode(leftTerm, rightTerm, equalityNode);
|
|
63
63
|
|
|
64
64
|
if (equality !== null) {
|
|
65
|
-
const equalityEqual =
|
|
65
|
+
const equalityEqual = equality.isEqual(context);
|
|
66
66
|
|
|
67
67
|
if (equalityEqual) {
|
|
68
|
+
const equalityAssignment = EqualityAssignment.fromEquality(equality),
|
|
69
|
+
assignment = equalityAssignment; ///
|
|
70
|
+
|
|
71
|
+
assignments.push(assignment);
|
|
72
|
+
|
|
68
73
|
verifiedAhead = verifyAhead();
|
|
74
|
+
|
|
75
|
+
if (!verifiedAhead) {
|
|
76
|
+
assignments.pop();
|
|
77
|
+
}
|
|
69
78
|
}
|
|
70
79
|
}
|
|
71
80
|
|
|
@@ -104,7 +113,7 @@ function verifyGivenEquality(equalityNode, assignments, derived, context, verify
|
|
|
104
113
|
secondTerm = second(terms),
|
|
105
114
|
leftTerm = firstTerm, ///
|
|
106
115
|
rightTerm = secondTerm, ///
|
|
107
|
-
equality = Equality.
|
|
116
|
+
equality = Equality.fromLeftTermRightTermAndEqualityNode(leftTerm, rightTerm, equalityNode);
|
|
108
117
|
|
|
109
118
|
if (equality !== null) {
|
|
110
119
|
const equalityAssignment = EqualityAssignment.fromEquality(equality),
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import { typeNameFromTypeNode } from "../utilities/query";
|
|
4
4
|
|
|
5
|
-
export default function
|
|
6
|
-
let
|
|
5
|
+
export default function verifyGivenType(typeNode, types, context, verifyAhead) {
|
|
6
|
+
let givenTypeVerified = false;
|
|
7
7
|
|
|
8
8
|
const typeString = context.nodeAsString(typeNode);
|
|
9
9
|
|
|
10
|
-
context.trace(`Verifying the
|
|
10
|
+
context.trace(`Verifying the given '${typeString}' type...`, typeNode);
|
|
11
11
|
|
|
12
12
|
const typeName = typeNameFromTypeNode(typeNode),
|
|
13
13
|
type = context.findTypeByTypeName(typeName);
|
|
@@ -23,12 +23,12 @@ export default function verifyStandaloneType(typeNode, types, context, verifyAhe
|
|
|
23
23
|
types.pop();
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
givenTypeVerified = verifiedAhead; ///
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
if (
|
|
30
|
-
context.debug(`...verified the
|
|
29
|
+
if (givenTypeVerified) {
|
|
30
|
+
context.debug(`...verified the given '${typeString}' type.`, typeNode);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
return
|
|
33
|
+
return givenTypeVerified;
|
|
34
34
|
}
|
|
@@ -9,17 +9,14 @@ function verifyMetastatement(metastatementNode, derived, localMetaContext) {
|
|
|
9
9
|
|
|
10
10
|
localMetaContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const nonTerminalNode = metastatementNode, ///
|
|
13
|
+
nonTerminalNodeVerified = metastatementNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localMetaContext, () => {
|
|
14
|
+
const verifiedAhead = true;
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
return verifiedAhead;
|
|
17
|
+
});
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
19
|
+
metastatementVerified = nonTerminalNodeVerified; ///
|
|
23
20
|
|
|
24
21
|
if (metastatementVerified) {
|
|
25
22
|
localMetaContext.debug(`...verified the '${metastatementString}' metastatement.`, metastatementNode);
|
|
@@ -28,32 +25,8 @@ function verifyMetastatement(metastatementNode, derived, localMetaContext) {
|
|
|
28
25
|
return metastatementVerified;
|
|
29
26
|
}
|
|
30
27
|
|
|
31
|
-
Object.assign(
|
|
32
|
-
|
|
28
|
+
Object.assign(metastatementNodeVerifier, {
|
|
29
|
+
verifyMetastatement
|
|
33
30
|
});
|
|
34
31
|
|
|
35
32
|
export default verifyMetastatement;
|
|
36
|
-
|
|
37
|
-
function verifyStandaloneMetastatement(metastatementNode, derived, localMetaContext) {
|
|
38
|
-
let standaloneMetastatementVerified;
|
|
39
|
-
|
|
40
|
-
const metastatementString = localMetaContext.nodeAsString(metastatementNode);
|
|
41
|
-
|
|
42
|
-
localMetaContext.trace(`Verifying the '${metastatementString}' standalone metastatement...`, metastatementNode);
|
|
43
|
-
|
|
44
|
-
const nonTerminalNode = metastatementNode, ///
|
|
45
|
-
nonTerminalNodeVerified = metastatementNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localMetaContext, () => {
|
|
46
|
-
const verifiedAhead = true;
|
|
47
|
-
|
|
48
|
-
return verifiedAhead;
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
standaloneMetastatementVerified = nonTerminalNodeVerified; ///
|
|
52
|
-
|
|
53
|
-
if (standaloneMetastatementVerified) {
|
|
54
|
-
localMetaContext.debug(`...verified the '${metastatementString}' standalone metastatement.`, metastatementNode);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return standaloneMetastatementVerified;
|
|
58
|
-
|
|
59
|
-
}
|