occam-verify-cli 0.0.916 → 0.0.918

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 (42) hide show
  1. package/lib/axiom.js +11 -24
  2. package/lib/conjecture.js +11 -24
  3. package/lib/constants.js +9 -1
  4. package/lib/constructor/bracketed.js +11 -24
  5. package/lib/context/local/metaLevel.js +16 -24
  6. package/lib/lemma.js +11 -24
  7. package/lib/metaLemma.js +11 -24
  8. package/lib/metaType/frame.js +11 -24
  9. package/lib/metaType/reference.js +11 -24
  10. package/lib/metaType/statement.js +11 -24
  11. package/lib/metatheorem.js +11 -24
  12. package/lib/ocmbinator/bracketed.js +11 -24
  13. package/lib/substitution/metastatementForMetavariable.js +11 -24
  14. package/lib/substitution/statementForMetavariable.js +11 -24
  15. package/lib/substitution/termForVariable.js +11 -24
  16. package/lib/theorem.js +11 -24
  17. package/lib/type.js +11 -24
  18. package/lib/utilities/verify.js +7 -7
  19. package/lib/verifier/node/metaLevel.js +11 -24
  20. package/lib/verifier/node/statementAsCombinator.js +11 -24
  21. package/lib/verifier/node/termAsConstructor.js +11 -24
  22. package/lib/verifier/nodes/equality.js +11 -24
  23. package/lib/verifier/nodes/intrinsicLevel.js +11 -24
  24. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +11 -24
  25. package/lib/verifier/nodes/metaLevel.js +11 -24
  26. package/lib/verifier/nodes/statementAgainstCombinator.js +11 -24
  27. package/lib/verifier/nodes/termAgainstConstructor.js +11 -24
  28. package/lib/verify/metastatement.js +10 -6
  29. package/lib/verify/statement.js +45 -46
  30. package/lib/verify/statementAsContainedAssertion.js +93 -0
  31. package/lib/verify/statementAsDefinedAssertion.js +111 -0
  32. package/package.json +2 -2
  33. package/src/constants.js +2 -0
  34. package/src/utilities/verify.js +5 -5
  35. package/src/verify/metastatement.js +13 -5
  36. package/src/verify/statement.js +70 -70
  37. package/src/verify/statementAsContainedAssertion.js +112 -0
  38. package/src/verify/statementAsDefinedAssertion.js +136 -0
  39. package/lib/verify/containedAssertion.js +0 -93
  40. package/lib/verify/definedAssertion.js +0 -111
  41. package/src/verify/containedAssertion.js +0 -112
  42. package/src/verify/definedAssertion.js +0 -137
@@ -3,16 +3,16 @@
3
3
  import verifyEquality from "../verify/equality";
4
4
  import bracketedCombinator from "../ocmbinator/bracketed";
5
5
  import verifyTypeAssertion from "../verify/typeAssertion";
6
- import verifyDefinedAssertion from "../verify/definedAssertion";
7
- import verifyContainedAssertion from "../verify/containedAssertion";
6
+ import verifyStatementAsDefinedAssertion from "../verify/statementAsDefinedAssertion";
7
+ import verifyStatementAsContainedAssertion from "../verify/statementAsContainedAssertion";
8
8
  import statementAgainstCombinatorNodesVerifier from "../verifier/nodes/statementAgainstCombinator";
9
9
 
10
- import { nodeQuery } from "../utilities/query";
10
+ import { DEFINED, CONTAINED } from "../constants";
11
+ import { nodeQuery, nodesQuery } from "../utilities/query";
11
12
 
12
13
  const equalityNodeQuery = nodeQuery("/statement/equality!"),
13
14
  typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
14
- definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
15
- containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
15
+ operatorTerminalNodesQuery = nodesQuery("/statement/@operator");
16
16
 
17
17
  function verifyStatement(statementNode, assignments, derived, localContext) {
18
18
  let statementVerified;
@@ -77,23 +77,24 @@ export default verifyStatement;
77
77
  export function verifyStatementAsEquality(statementNode, assignments, derived, localContext) {
78
78
  let statementVerifiedAsEquality = false;
79
79
 
80
- const equalityNode = equalityNodeQuery(statementNode);
80
+ const statementEquality = isStatementEquality(statementNode);
81
81
 
82
- if (equalityNode !== null) {
82
+ if (statementEquality) {
83
83
  const statementString = localContext.nodeAsString(statementNode);
84
84
 
85
- localContext.trace(`Verifying the '${statementString}' statement as an equality...`, equalityNode);
85
+ localContext.trace(`Verifying the '${statementString}' statement as an equality...`, statementNode);
86
86
 
87
- const equalityVerified = verifyEquality(equalityNode, assignments, derived, localContext, () => {
88
- const verifiedAhead = true;
87
+ const equalityNode = equalityNodeQuery(statementNode),
88
+ equalityVerified = verifyEquality(equalityNode, assignments, derived, localContext, () => {
89
+ const verifiedAhead = true;
89
90
 
90
- return verifiedAhead;
91
- });
91
+ return verifiedAhead;
92
+ });
92
93
 
93
94
  statementVerifiedAsEquality = equalityVerified; ///
94
95
 
95
96
  if (statementVerifiedAsEquality) {
96
- localContext.debug(`...verified the '${statementString}' statement as an equality.`, equalityNode);
97
+ localContext.debug(`...verified the '${statementString}' statement as an equality.`, statementNode);
97
98
  }
98
99
  }
99
100
 
@@ -103,82 +104,39 @@ export function verifyStatementAsEquality(statementNode, assignments, derived, l
103
104
  export function verifyStatementAsTypeAssertion(statementNode, assignments, derived, localContext) {
104
105
  let statementVerifiedAsTypeAssertion = false;
105
106
 
106
- const typeAssertionNode = typeAssertionNodeQuery(statementNode);
107
+ const statementTypeAssertion = isStatementTypeAssertion(statementNode);
107
108
 
108
- if (typeAssertionNode !== null) {
109
+ if (statementTypeAssertion) {
109
110
  const statementString = localContext.nodeAsString(statementNode);
110
111
 
111
- localContext.trace(`Verifying the '${statementString}' statement as a type assertion...`, typeAssertionNode);
112
+ localContext.trace(`Verifying the '${statementString}' statement as a type assertion...`, statementNode);
112
113
 
113
- const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, () => {
114
- const verifiedAhead = true;
114
+ const typeAssertionNode = typeAssertionNodeQuery(statementNode),
115
+ typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, () => {
116
+ const verifiedAhead = true;
115
117
 
116
- return verifiedAhead;
117
- });
118
+ return verifiedAhead;
119
+ });
118
120
 
119
121
  statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
120
122
 
121
123
  if (statementVerifiedAsTypeAssertion) {
122
- localContext.debug(`...verified the '${statementString}' statement as a type assertion.`, typeAssertionNode);
124
+ localContext.debug(`...verified the '${statementString}' statement as a type assertion.`, statementNode);
123
125
  }
124
126
  }
125
127
 
126
128
  return statementVerifiedAsTypeAssertion;
127
129
  }
128
130
 
129
- function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
130
- let statementVerifiedAsDefinedAssertion = false;
131
-
132
- const definedAssertionNode = definedAssertionNodeQuery(statementNode);
133
-
134
- if (definedAssertionNode !== null) {
135
- const statementString = localContext.nodeAsString(statementNode);
136
-
137
- localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, definedAssertionNode);
138
-
139
- const definedAssertionVerified = verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext);
140
-
141
- statementVerifiedAsDefinedAssertion = definedAssertionVerified; ///
142
-
143
- if (statementVerifiedAsDefinedAssertion) {
144
- localContext.debug(`...verified the '${statementString}' statement as a defined assertion.`, definedAssertionNode);
145
- }
146
- }
147
-
148
- return statementVerifiedAsDefinedAssertion;
149
- }
150
-
151
- function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
152
- let statementVerifiedAsContainedAssertion = false;
153
-
154
- const containedAssertionNode = containedAssertionNodeQuery(statementNode);
155
-
156
- if (containedAssertionNode !== null) {
157
- const statementString = localContext.nodeAsString(statementNode);
158
-
159
- localContext.trace(`Verifying the '${statementString}' statement as a contained assertion...`, containedAssertionNode);
160
-
161
- const containedAssertionVerified = verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext);
162
-
163
- statementVerifiedAsContainedAssertion = containedAssertionVerified; ///
164
-
165
- if (statementVerifiedAsContainedAssertion) {
166
- localContext.debug(`...verified the '${statementString}' statement as a contained assertion.`, containedAssertionNode);
167
- }
168
- }
169
-
170
- return statementVerifiedAsContainedAssertion;
171
- }
172
-
173
131
  function verifyStatementAgainstCombinators(statementNode, assignments, derived, localContext) {
174
132
  let statementVerifiedAgainstCombinators = false;
175
133
 
176
- const equalityNode = equalityNodeQuery(statementNode),
177
- typeAssertionNode = typeAssertionNodeQuery(statementNode),
178
- definedAssertionNode = definedAssertionNodeQuery(statementNode),
179
- containedAssertionNode = containedAssertionNodeQuery(statementNode);
134
+ const statementEquality = isStatementEquality(statementNode),
135
+ statementTypeAssertion = isStatementTypeAssertion(statementNode),
136
+ statementDefinedAssertion = isStatementDefinedAssertion(statementNode),
137
+ statementContainedAssertion = isStatementContainedAssertion(statementNode);
180
138
 
181
- if ((equalityNode === null) && (typeAssertionNode === null) && (definedAssertionNode === null) && (containedAssertionNode === null)) {
139
+ if (!statementEquality && !statementTypeAssertion && !statementDefinedAssertion && !statementContainedAssertion) {
182
140
  let combinators = localContext.getCombinators();
183
141
 
184
142
  combinators = [ ///
@@ -223,3 +181,45 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
223
181
 
224
182
  return statementVerifiedAgainstCombinator;
225
183
  }
184
+
185
+ function isStatementEquality(statementNode) {
186
+ const equalityNode = equalityNodeQuery(statementNode),
187
+ statementEquality = (equalityNode !== null);
188
+
189
+ return statementEquality;
190
+ }
191
+
192
+ function isStatementTypeAssertion(statementNode) {
193
+ const typeAssertionNode = typeAssertionNodeQuery(statementNode),
194
+ statementTypeAssertion = (typeAssertionNode === null);
195
+
196
+ return statementTypeAssertion;
197
+ }
198
+
199
+ function isStatementDefinedAssertion(statementNode) {
200
+ const operatorTerminalNodes = operatorTerminalNodesQuery(statementNode),
201
+ statementDefinedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
202
+ const content = operatorTerminalNode.getContent(),
203
+ contentDefined = (content === DEFINED);
204
+
205
+ if (contentDefined) {
206
+ return true;
207
+ }
208
+ });
209
+
210
+ return statementDefinedAssertion;
211
+ }
212
+
213
+ function isStatementContainedAssertion(statementNode) {
214
+ const operatorTerminalNodes = operatorTerminalNodesQuery(statementNode),
215
+ statementContainedAssertion = operatorTerminalNodes.some((operatorTerminalNode) => {
216
+ const content = operatorTerminalNode.getContent(),
217
+ contentContained = (content === CONTAINED);
218
+
219
+ if (contentContained) {
220
+ return true;
221
+ }
222
+ });
223
+
224
+ return statementContainedAssertion;
225
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ import metaLevelNodeVerifier from "../verifier/node/metaLevel";
4
+
5
+ import { isAssertionNegated } from "../utilities/verify";
6
+ import { nodeQuery, nodesQuery } from "../utilities/query";
7
+
8
+ const variableNodeQuery = nodeQuery("/statement/term/variable!"),
9
+ metastatementVariableNodesQuery = nodesQuery("/statement/statement//variable");
10
+
11
+ export default function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
12
+ let statementVerifiedAsContainedAssertion;
13
+
14
+ const statementString = localContext.nodeAsString(statementNode);
15
+
16
+ localContext.trace(`Verifying the '${statementString}' statement as a contained assertion...`, statementNode);
17
+
18
+ const statementFunctions = [
19
+ verifyStatementAsDerivedContainedAssertion,
20
+ verifyStatementAsStatedContainedAssertion
21
+ ];
22
+
23
+ statementVerifiedAsContainedAssertion = statementFunctions.some((statementFunction) => {
24
+ const statementVerifiedAsContainedAssertion = statementFunction(statementNode, assignments, derived, localContext);
25
+
26
+ if (statementVerifiedAsContainedAssertion) {
27
+ return true;
28
+ }
29
+ });
30
+
31
+ if (statementVerifiedAsContainedAssertion) {
32
+ localContext.debug(`...verified the '${statementString}' statement as a contained assertion.`, statementNode);
33
+ }
34
+
35
+ return statementVerifiedAsContainedAssertion;
36
+ }
37
+
38
+ function verifyStatementAsDerivedContainedAssertion(statementNode, assignments, derived, localContext) {
39
+ let statementVerifiedAsDefinedContainedAssertion = false;
40
+
41
+ if (derived) {
42
+ const statementString = localContext.nodeAsString(statementNode);
43
+
44
+ localContext.trace(`Verifying the derived '${statementString}' statement as a contained assertion...`, statementNode);
45
+
46
+ const statementNegated = isAssertionNegated(statementNode),
47
+ variableNode = variableNodeQuery(statementNode),
48
+ negated = statementNegated; ///
49
+
50
+ if (false) {
51
+ ///
52
+ } else if (variableNode !== null) {
53
+ const metastatementVariableNodes = metastatementVariableNodesQuery(statementNode),
54
+ variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some((metastatementVariableNode) => {
55
+ const variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
56
+
57
+ if (variableNodeMatchesMetaArgumentVariableNode) {
58
+ return true;
59
+ }
60
+ });
61
+
62
+ if (!negated) {
63
+ if (variableNodeMatchesMetaArgumentVariableNode) {
64
+ statementVerifiedAsDefinedContainedAssertion = true;
65
+ }
66
+ }
67
+
68
+ if (negated) {
69
+ if (!variableNodeMatchesMetaArgumentVariableNode) {
70
+ statementVerifiedAsDefinedContainedAssertion = true;
71
+ }
72
+ }
73
+ }
74
+
75
+ if (statementVerifiedAsDefinedContainedAssertion) {
76
+ localContext.debug(`...verified the derived '${statementString}' statement as a contained assertion.`, statementNode);
77
+ }
78
+ }
79
+
80
+ return statementVerifiedAsDefinedContainedAssertion;
81
+ }
82
+
83
+ function verifyStatementAsStatedContainedAssertion(statementNode, assignments, derived, localContext) {
84
+ let statementVerifiedAsStatedContainedAssertion = false;
85
+
86
+ if (!derived) {
87
+ const statementString = localContext.nodeAsString(statementNode);
88
+
89
+ localContext.trace(`Verifying the stated '${statementString}' statement as a contained assertion...`, statementNode);
90
+
91
+ const intrinsicLevel = localContext.isIntrinsicLevel();
92
+
93
+ if (intrinsicLevel) {
94
+ localContext.debug(`The stated '${statementString}' statement as a contained assertion cannot be verified at intrinsic level.`, statementNode);
95
+ } else {
96
+ const nonTerminalNode = statementNode, ///
97
+ nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
98
+ const verifiedAhead = true;
99
+
100
+ return verifiedAhead;
101
+ });
102
+
103
+ statementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
104
+ }
105
+
106
+ if (statementVerifiedAsStatedContainedAssertion) {
107
+ localContext.debug(`...verified the stated '${statementString}' statement as a contained assertion.`, statementNode);
108
+ }
109
+ }
110
+
111
+ return statementVerifiedAsStatedContainedAssertion;
112
+ }
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ import verifyTerm from "./term";
4
+ import metaLevelNodeVerifier from "../verifier/node/metaLevel";
5
+
6
+ import { first } from "../utilities/array";
7
+ import { nodeQuery } from "../utilities/query";
8
+ import { isStatementNegated } from "../utilities/verify";
9
+
10
+ const termNodeQuery = nodeQuery("/statement/term!"),
11
+ variableNodeQuery = nodeQuery("/statement/term/variable!");
12
+
13
+ export default function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
14
+ let statementVerifiedAsDefinedAssertion;
15
+
16
+ const statementString = localContext.nodeAsString(statementNode);
17
+
18
+ localContext.trace(`Verifying the '${statementString}' statement as a defined assertion...`, statementNode);
19
+
20
+ const definedAssertionFunctions = [
21
+ verifyDerivedStatementAsDefinedAssertion,
22
+ verifyStatedStatementAsDefinedAssertion
23
+ ];
24
+
25
+ statementVerifiedAsDefinedAssertion = definedAssertionFunctions.some((definedAssertionFunction) => {
26
+ const statementVerifiedAsDefinedAssertion = definedAssertionFunction(statementNode, assignments, derived, localContext);
27
+
28
+ if (statementVerifiedAsDefinedAssertion) {
29
+ return true;
30
+ }
31
+ });
32
+
33
+ if (statementVerifiedAsDefinedAssertion) {
34
+ localContext.debug(`...verified the '${statementString}' statement as a defined assertion.`, statementNode);
35
+ }
36
+
37
+ return statementVerifiedAsDefinedAssertion;
38
+ }
39
+
40
+ function verifyDerivedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
41
+ let derivedStatementVerifiedAsDefeindAssertion = false;
42
+
43
+ if (derived) {
44
+ const statementString = localContext.nodeAsString(statementNode);
45
+
46
+ localContext.trace(`Verifying the derived '${statementString}' statement as a defined assertion...`, statementNode);
47
+
48
+ const statementNegated = isStatementNegated(statementNode),
49
+ variableNode = variableNodeQuery(statementNode),
50
+ termNode = termNodeQuery(statementNode);
51
+
52
+ if (false) {
53
+ ///
54
+ } else if (variableNode !== null) {
55
+ const variable = localContext.findVariableByVariableNode(variableNode);
56
+
57
+ if (variable !== null) {
58
+ const variableDefined = localContext.isVariableDefined(variable);
59
+
60
+ if (!statementNegated) {
61
+ if (variableDefined) {
62
+ derivedStatementVerifiedAsDefeindAssertion = true;
63
+ }
64
+ }
65
+
66
+ if (statementNegated) {
67
+ if (!variableDefined) {
68
+ derivedStatementVerifiedAsDefeindAssertion = true;
69
+ }
70
+ }
71
+ }
72
+ } else if (termNode !== null) {
73
+ const terms = [],
74
+ termVerified = verifyTerm(termNode, terms, localContext, () => {
75
+ const verifiedAhead = true;
76
+
77
+ return verifiedAhead;
78
+ });
79
+
80
+ if (termVerified) {
81
+ const firstTerm = first(terms),
82
+ term = firstTerm, ///
83
+ termGrounded = localContext.isTermGrounded(term);
84
+
85
+ if (!statementNegated) {
86
+ if (termGrounded) {
87
+ derivedStatementVerifiedAsDefeindAssertion = true;
88
+ }
89
+ }
90
+
91
+ if (statementNegated) {
92
+ if (!termGrounded) {
93
+ derivedStatementVerifiedAsDefeindAssertion = true;
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ if (derivedStatementVerifiedAsDefeindAssertion) {
100
+ localContext.debug(`...verified the derived '${statementString}' statement as a defined assertion.`, statementNode);
101
+ }
102
+ }
103
+
104
+ return derivedStatementVerifiedAsDefeindAssertion;
105
+ }
106
+
107
+ function verifyStatedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
108
+ let statedStatementVerifiedAsDefinedAssertion = false;
109
+
110
+ if (!derived) {
111
+ const statementString = localContext.nodeAsString(statementNode);
112
+
113
+ localContext.trace(`Verifying the stated '${statementString}' statement as a defined assertion...`, statementNode);
114
+
115
+ const intrinsicLevel = localContext.isIntrinsicLevel();
116
+
117
+ if (intrinsicLevel) {
118
+ localContext.debug(`The stated '${statementString}' statement as a defined assertion cannot be verified at intrinsic level.`, statementNode);
119
+ } else {
120
+ const nonTerminalNode = statementNode, ///
121
+ nonTerminalNodeVerified = metaLevelNodeVerifier.verifyNonTerminalNode(nonTerminalNode, localContext, () => {
122
+ const verifiedAhead = true;
123
+
124
+ return verifiedAhead;
125
+ });
126
+
127
+ statedStatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
128
+ }
129
+
130
+ if (statedStatementVerifiedAsDefinedAssertion) {
131
+ localContext.debug(`...verified the stated '${statementString}' statement as a defined assertion.`, statementNode);
132
+ }
133
+ }
134
+
135
+ return statedStatementVerifiedAsDefinedAssertion;
136
+ }
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyContainedAssertion;
9
- }
10
- });
11
- var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
12
- var _verify = require("../utilities/verify");
13
- var _query = require("../utilities/query");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- var variableNodeQuery = (0, _query.nodeQuery)("/containedAssertion/term/variable!"), metastatementVariableNodesQuery = (0, _query.nodesQuery)("/containedAssertion/statement//variable");
20
- function verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
21
- var containedAssertionVerified;
22
- var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
23
- localContext.trace("Verifying the '".concat(containedAssertionString, "' contained assertion..."), containedAssertionNode);
24
- var containedAssertionFunctions = [
25
- verifyDerivedContainedAssertion,
26
- verifyStatedContainedAssertion
27
- ];
28
- containedAssertionVerified = containedAssertionFunctions.some(function(containedAssertionFunction) {
29
- var containedAssertionVerified = containedAssertionFunction(containedAssertionNode, assignments, derived, localContext);
30
- if (containedAssertionVerified) {
31
- return true;
32
- }
33
- });
34
- if (containedAssertionVerified) {
35
- localContext.debug("...verified the '".concat(containedAssertionString, "' contained assertion."), containedAssertionNode);
36
- }
37
- return containedAssertionVerified;
38
- }
39
- function verifyDerivedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
40
- var derivedContainedAssertionVerified = false;
41
- if (derived) {
42
- var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
43
- localContext.trace("Verifying the derived '".concat(containedAssertionString, "' contained assertion..."), containedAssertionNode);
44
- var containedAssertionNegated = (0, _verify.isAssertionNegated)(containedAssertionNode), variableNode = variableNodeQuery(containedAssertionNode), negated = containedAssertionNegated; ///
45
- if (false) {
46
- ///
47
- } else if (variableNode !== null) {
48
- var metastatementVariableNodes = metastatementVariableNodesQuery(containedAssertionNode), variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some(function(metastatementVariableNode) {
49
- var variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
50
- if (variableNodeMatchesMetaArgumentVariableNode) {
51
- return true;
52
- }
53
- });
54
- if (!negated) {
55
- if (variableNodeMatchesMetaArgumentVariableNode) {
56
- derivedContainedAssertionVerified = true;
57
- }
58
- }
59
- if (negated) {
60
- if (!variableNodeMatchesMetaArgumentVariableNode) {
61
- derivedContainedAssertionVerified = true;
62
- }
63
- }
64
- }
65
- if (derivedContainedAssertionVerified) {
66
- localContext.debug("...verified the derived '".concat(containedAssertionString, "' contained assertion."), containedAssertionNode);
67
- }
68
- }
69
- return derivedContainedAssertionVerified;
70
- }
71
- function verifyStatedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
72
- var statedContainedAssertionVerified = false;
73
- if (!derived) {
74
- var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
75
- localContext.trace("Verifying the stated '".concat(containedAssertionString, "' contained assertion..."), containedAssertionNode);
76
- var intrinsicLevel = localContext.isIntrinsicLevel();
77
- if (intrinsicLevel) {
78
- localContext.debug("The stated '".concat(containedAssertionString, "' contained assertion cannot be verified at intrinsic level."), containedAssertionNode);
79
- } else {
80
- var nonTerminalNode = containedAssertionNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
81
- var verifiedAhead = true;
82
- return verifiedAhead;
83
- });
84
- statedContainedAssertionVerified = nonTerminalNodeVerified; ///
85
- }
86
- if (statedContainedAssertionVerified) {
87
- localContext.debug("...verified the stated '".concat(containedAssertionString, "' contained assertion."), containedAssertionNode);
88
- }
89
- }
90
- return statedContainedAssertionVerified;
91
- }
92
-
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29udGFpbmVkQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbWV0YUxldmVsTm9kZVZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2RlL21ldGFMZXZlbFwiO1xuXG5pbXBvcnQgeyBpc0Fzc2VydGlvbk5lZ2F0ZWQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vdGVybS92YXJpYWJsZSFcIiksXG4gICAgICBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vc3RhdGVtZW50Ly92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25GdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5RGVyaXZlZENvbnRhaW5lZEFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZWRDb250YWluZWRBc3NlcnRpb25cbiAgXTtcblxuICBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IGNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9ucy5zb21lKChjb250YWluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gY29udGFpbmVkQXNzZXJ0aW9uRnVuY3Rpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZENvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgZGVyaXZlZCAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25OZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIG5lZ2F0ZWQgPSBjb250YWluZWRBc3NlcnRpb25OZWdhdGVkOyAgLy8vXG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlcyA9IG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gbWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXMuc29tZSgobWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlLm1hdGNoKG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICBkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICAgIGlmICghdmFyaWFibGVOb2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVyaXZlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBkZXJpdmVkICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBzdGF0ZWQgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSBzdGF0ZWQgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgY29udGFpbmVkIGFzc2VydGlvbiBjYW5ub3QgYmUgdmVyaWZpZWQgYXQgaW50cmluc2ljIGxldmVsLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbWV0YUxldmVsTm9kZVZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBzdGF0ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlIHN0YXRlZCAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsImNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIiwiY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJjb250YWluZWRBc3NlcnRpb25GdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uIiwic29tZSIsImNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJjb250YWluZWRBc3NlcnRpb25OZWdhdGVkIiwiaXNBc3NlcnRpb25OZWdhdGVkIiwidmFyaWFibGVOb2RlIiwibmVnYXRlZCIsIm1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzIiwidmFyaWFibGVOb2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSIsIm1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGUiLCJtYXRjaCIsInN0YXRlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIiwiaW50cmluc2ljTGV2ZWwiLCJpc0ludHJpbnNpY0xldmVsIiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJtZXRhTGV2ZWxOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZmllZEFoZWFkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O2dFQVJVO3NCQUVDO3FCQUNHOzs7Ozs7QUFFdEMsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLHVDQUM5QkMsa0NBQWtDQyxJQUFBQSxpQkFBVSxFQUFDO0FBRXBDLFNBQVNKLHlCQUF5Qkssc0JBQXNCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxF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