occam-verify-cli 0.0.924 → 0.0.925

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 (32) hide show
  1. package/lib/mixins/nodesVerifier/metaLevel.js +2 -2
  2. package/lib/premise.js +6 -6
  3. package/lib/verifier/nodes/intrinsicLevel.js +3 -3
  4. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +3 -3
  5. package/lib/verifier/nodes/metaLevel.js +16 -16
  6. package/lib/verify/assertion/contained.js +91 -0
  7. package/lib/verify/assertion/defined.js +114 -0
  8. package/lib/verify/assertion/subproof.js +65 -0
  9. package/lib/verify/assertion/type.js +112 -0
  10. package/lib/verify/declaration.js +2 -5
  11. package/lib/verify/equality.js +3 -3
  12. package/lib/verify/metastatement.js +1 -2
  13. package/lib/verify/statement/qualified.js +2 -5
  14. package/lib/verify/statement.js +30 -14
  15. package/package.json +2 -2
  16. package/src/mixins/nodesVerifier/metaLevel.js +1 -1
  17. package/src/premise.js +6 -6
  18. package/src/verifier/nodes/intrinsicLevel.js +2 -2
  19. package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +3 -3
  20. package/src/verifier/nodes/metaLevel.js +18 -19
  21. package/src/verify/{containedAssertion.js → assertion/contained.js} +3 -3
  22. package/src/verify/{definedAssertion.js → assertion/defined.js} +5 -6
  23. package/src/verify/assertion/subproof.js +77 -0
  24. package/src/verify/{typeAssertion.js → assertion/type.js} +15 -15
  25. package/src/verify/declaration.js +1 -5
  26. package/src/verify/equality.js +2 -2
  27. package/src/verify/metastatement.js +0 -1
  28. package/src/verify/statement/qualified.js +1 -5
  29. package/src/verify/statement.js +36 -9
  30. package/lib/verify/containedAssertion.js +0 -91
  31. package/lib/verify/definedAssertion.js +0 -115
  32. package/lib/verify/typeAssertion.js +0 -112
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import { nodesQuery } from "../../utilities/query";
4
+ import { STATEMENT_META_TYPE_NAME } from "../../metaTypeNames";
5
+
6
+ const metavariableNodesQuery = nodesQuery("/subproofAssertion/statement/metavariable!");
7
+
8
+ export default function verifySubproofAssertion(subproofAssertionNode, assignments, derived, localContext) {
9
+ let subproofAssertionVerified;
10
+
11
+ const subproofAssertionString = localContext.nodeAsString(subproofAssertionNode);
12
+
13
+ localContext.trace(`Verifying the '${subproofAssertionString}' subproof assertion...`, subproofAssertionNode);
14
+
15
+ const verifySubproofAssertionFunctions = [
16
+ verifyDerivedSubproofAssertion,
17
+ verifyStatedSubproofAssertion
18
+ ];
19
+
20
+ subproofAssertionVerified = verifySubproofAssertionFunctions.some((verifySubproofAssertionFunction) => {
21
+ const subproofAssertionVerified = verifySubproofAssertionFunction(subproofAssertionNode, assignments, derived, localContext);
22
+
23
+ if (subproofAssertionVerified) {
24
+ return true;
25
+ }
26
+ });
27
+
28
+ if (subproofAssertionVerified) {
29
+ localContext.debug(`...verified the '${subproofAssertionString}' subproof assertion.`, subproofAssertionNode);
30
+ }
31
+
32
+ return subproofAssertionVerified;
33
+ }
34
+
35
+ function verifyDerivedSubproofAssertion(subproofAssertionNode, assignments, derived, localContext) {
36
+ let derivedSubproofAssertionVerified = false;
37
+
38
+ if (derived) {
39
+ const subproofAssertionString = localContext.nodeAsString(subproofAssertionNode);
40
+
41
+ if (derivedSubproofAssertionVerified) {
42
+ localContext.debug(`The '${subproofAssertionString}' derived subproof assertion cannot be verified.`, subproofAssertionNode);
43
+ }
44
+ }
45
+
46
+ return derivedSubproofAssertionVerified;
47
+ }
48
+
49
+ function verifyStatedSubproofAssertion(subproofAssertionNode, assignments, derived, localContext) {
50
+ let statedSubproofAssertionVerified = false;
51
+
52
+ if (!derived) {
53
+ const subproofAssertionString = localContext.nodeAsString(subproofAssertionNode);
54
+
55
+ localContext.trace(`Verifying the '${subproofAssertionString}' stated subproof assertion...`, subproofAssertionNode);
56
+
57
+ const metavariableNodes = metavariableNodesQuery(subproofAssertionNode);
58
+
59
+ statedSubproofAssertionVerified = metavariableNodes.every((metavariableNode) => {
60
+ const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
61
+
62
+ if (metavariable !== null) {
63
+ const metaTypeName = metavariable.getMetaTypeName();
64
+
65
+ if (metaTypeName === STATEMENT_META_TYPE_NAME) {
66
+ return true;
67
+ }
68
+ }
69
+ });
70
+
71
+ if (statedSubproofAssertionVerified) {
72
+ localContext.debug(`...verified the '${subproofAssertionString}' stated subproof assertion.`, subproofAssertionNode);
73
+ }
74
+ }
75
+
76
+ return statedSubproofAssertionVerified;
77
+ }
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
 
3
- import Variable from "../variable";
4
- import verifyTerm from "../verify/term";
5
- import VariableAssignment from "../assignment/variable";
3
+ import Variable from "../../variable";
4
+ import verifyTerm from "../../verify/term";
5
+ import VariableAssignment from "../../assignment/variable";
6
6
 
7
- import { first } from "../utilities/array";
8
- import { nodeQuery } from "../utilities/query";
7
+ import { first } from "../../utilities/array";
8
+ import { nodeQuery } from "../../utilities/query";
9
9
 
10
10
  const termNodeQuery = nodeQuery("/typeAssertion/term!"),
11
11
  typeNodeQuery = nodeQuery("/typeAssertion/type!"),
12
12
  variableNodeQuery = nodeQuery("/term/variable!");
13
13
 
14
- export default function verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead) {
14
+ export default function verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext) {
15
15
  let typeAssertionVerified;
16
16
 
17
17
  const typeAssertionString = localContext.nodeAsString(typeAssertionNode);
@@ -24,7 +24,7 @@ export default function verifyTypeAssertion(typeAssertionNode, assignments, deri
24
24
  ];
25
25
 
26
26
  typeAssertionVerified = verifyTypeAssertionFunctions.some((verifyTypeAssertionFunction) => {
27
- const typeAssertionVerified = verifyTypeAssertionFunction(typeAssertionNode, assignments, derived, localContext, verifyAhead);
27
+ const typeAssertionVerified = verifyTypeAssertionFunction(typeAssertionNode, assignments, derived, localContext);
28
28
 
29
29
  if (typeAssertionVerified) {
30
30
  return true;
@@ -38,7 +38,7 @@ export default function verifyTypeAssertion(typeAssertionNode, assignments, deri
38
38
  return typeAssertionVerified;
39
39
  }
40
40
 
41
- function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead) {
41
+ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, localContext) {
42
42
  let derivedTypeAssertionVerified = false;
43
43
 
44
44
  if (derived) {
@@ -64,7 +64,7 @@ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, loc
64
64
  const variableNode = variableNodeQuery(termNode);
65
65
 
66
66
  if (variableNode === null) {
67
- verifiedAhead = verifyAhead();
67
+ verifiedAhead = true;
68
68
  } else {
69
69
  let variable = localContext.findVariableByVariableNode(variableNode);
70
70
 
@@ -75,7 +75,7 @@ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, loc
75
75
 
76
76
  assignments.push(assignment);
77
77
 
78
- verifiedAhead = verifyAhead();
78
+ verifiedAhead = true;
79
79
 
80
80
  if (!verifiedAhead) {
81
81
  assignments.pop();
@@ -90,14 +90,14 @@ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, loc
90
90
  derivedTypeAssertionVerified = termVerified; ///
91
91
 
92
92
  if (derivedTypeAssertionVerified) {
93
- localContext.trace(`...verified the '${typeAssertionString}' derived type assertion.`, typeAssertionNode);
93
+ localContext.debug(`...verified the '${typeAssertionString}' derived type assertion.`, typeAssertionNode);
94
94
  }
95
95
  }
96
96
 
97
97
  return derivedTypeAssertionVerified;
98
98
  }
99
99
 
100
- function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, localContext, verifyAhead) {
100
+ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, localContext) {
101
101
  let statedTypeAssertionVerified = false;
102
102
 
103
103
  if (!derived) {
@@ -123,7 +123,7 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
123
123
  const variableNode = variableNodeQuery(termNode);
124
124
 
125
125
  if (variableNode === null) {
126
- verifiedAhead = verifyAhead();
126
+ verifiedAhead = true;
127
127
  } else {
128
128
  let variable = localContext.findVariableByVariableNode(variableNode);
129
129
 
@@ -134,7 +134,7 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
134
134
 
135
135
  assignments.push(assignment);
136
136
 
137
- verifiedAhead = verifyAhead();
137
+ verifiedAhead = true;
138
138
 
139
139
  if (!verifiedAhead) {
140
140
  assignments.pop();
@@ -149,7 +149,7 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
149
149
  statedTypeAssertionVerified = termVerified; ///
150
150
 
151
151
  if (statedTypeAssertionVerified) {
152
- localContext.trace(`...verified the '${typeAssertionString}' stated type assertion.`, typeAssertionNode);
152
+ localContext.debug(`...verified the '${typeAssertionString}' stated type assertion.`, typeAssertionNode);
153
153
  }
154
154
  }
155
155
 
@@ -26,11 +26,7 @@ export default function verifyDeclaration(declarationNode, declarations, localCo
26
26
  const { verifyStatement } = metaLevelNodeVerifier,
27
27
  derived = false,
28
28
  assignments = [],
29
- statementVerified = verifyStatement(statementNode, assignments, derived, localContext, () => {
30
- const verifiedAhead = true;
31
-
32
- return verifiedAhead;
33
- });
29
+ statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
34
30
 
35
31
  if (statementVerified) {
36
32
  const metavariableNode = metavariableNodeQuery(referenceNode),
@@ -84,7 +84,7 @@ function verifyDerivedEquality(equalityNode, assignments, derived, localContext,
84
84
  derivedEqualityVerified = termsVerified; ///
85
85
 
86
86
  if (derivedEqualityVerified) {
87
- localContext.trace(`...verified the '${equalityString}' derived equality.`, equalityNode);
87
+ localContext.debug(`...verified the '${equalityString}' derived equality.`, equalityNode);
88
88
  }
89
89
  }
90
90
 
@@ -134,7 +134,7 @@ function verifyStatedEquality(equalityNode, assignments, derived, localContext,
134
134
  statedEqualityVerified = termsVerified; ///
135
135
 
136
136
  if (statedEqualityVerified) {
137
- localContext.trace(`...verified the '${equalityString}' stated equality.`, equalityNode);
137
+ localContext.debug(`...verified the '${equalityString}' stated equality.`, equalityNode);
138
138
  }
139
139
  }
140
140
 
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import verifyJudgement from "../verify/judgement";
4
3
  import metaLevelNodeVerifier from "../verifier/node/metaLevel";
5
4
 
6
5
  import { nodeQuery } from "../utilities/query";
@@ -184,11 +184,7 @@ function verifyQualifiedStatementAAgainstReference(qualifiedStatementNode, subst
184
184
 
185
185
  if (metavariablePresent) {
186
186
  const statementNode = statementNodeQuery(qualifiedStatementNode),
187
- metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNode, statementNode, substitutions, () => {
188
- const verifiedAhead = true;
189
-
190
- return verifiedAhead;
191
- });
187
+ metavariableVerifiedAgainstStatement = verifyMetavariableAgainstStatement(metavariableNodeA, statementNodeB, substitutionNode, substitutions, localContextA, localContextB, verifyAhead);
192
188
 
193
189
  qualifiedStatementVerifiedAgainstReference = metavariableVerifiedAgainstStatement; ///
194
190
  }
@@ -2,9 +2,10 @@
2
2
 
3
3
  import verifyEquality from "../verify/equality";
4
4
  import verifyJudgement from "../verify/judgement";
5
- import verifyTypeAssertion from "../verify/typeAssertion";
6
- import verifyDefinedAssertion from "./definedAssertion";
7
- import verifyContainedAssertion from "./containedAssertion";
5
+ import verifyTypeAssertion from "../verify/assertion/type";
6
+ import verifyDefinedAssertion from "../verify/assertion/defined";
7
+ import verifySubproofAssertion from "../verify/assertion/subproof";
8
+ import verifyContainedAssertion from "../verify/assertion/contained";
8
9
  import statementAgainstCombinatorNodesVerifier from "../verifier/nodes/statementAgainstCombinator";
9
10
 
10
11
  import { nodeQuery } from "../utilities/query";
@@ -15,6 +16,7 @@ const equalityNodeQuery = nodeQuery("/statement/equality!"),
15
16
  metavariableNodeQuery = nodeQuery("/statement/metavariable!"),
16
17
  typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
17
18
  definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
19
+ subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
18
20
  containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
19
21
 
20
22
  function verifyStatement(statementNode, assignments, derived, localContext) {
@@ -30,6 +32,7 @@ function verifyStatement(statementNode, assignments, derived, localContext) {
30
32
  verifyStatementAsJudgement,
31
33
  verifyStatementAsTypeAssertion,
32
34
  verifyStatementAsDefinedAssertion,
35
+ verifyStatementAsSubproofAssertion,
33
36
  verifyStatementAsContainedAssertion,
34
37
  verifyStatementAgainstCombinators
35
38
  ];
@@ -58,7 +61,7 @@ export function verifyStandaloneStatement(statementNode, localContext, verifyAhe
58
61
 
59
62
  const derived = false,
60
63
  assignments = [],
61
- statementVerified = verifyStatement(statementNode, assignments, derived);
64
+ statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
62
65
 
63
66
  if (statementVerified) {
64
67
  const verifiedAhead = verifyAhead();
@@ -115,11 +118,7 @@ export function verifyStatementAsTypeAssertion(statementNode, assignments, deriv
115
118
 
116
119
  localContext.trace(`Verifying the '${statementString}' statement as a type assertion...`, statementNode);
117
120
 
118
- const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext, () => {
119
- const verifiedAhead = true;
120
-
121
- return verifiedAhead;
122
- });
121
+ const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assignments, derived, localContext);
123
122
 
124
123
  statementVerifiedAsTypeAssertion = typeAssertionVerified; ///
125
124
 
@@ -207,6 +206,32 @@ function verifyStatementAsDefinedAssertion(statementNode, assignments, derived,
207
206
  return statementVerifiedAsDefinedAssertion;
208
207
  }
209
208
 
209
+ function verifyStatementAsSubproofAssertion(statementNode, assignments, derived, localContext) {
210
+ let statementVerifiedAsSubproofAssertion = false;
211
+
212
+ const subproofAssertionNode = subproofAssertionNodeQuery(statementNode);
213
+
214
+ if (subproofAssertionNode !== null) {
215
+ const statementString = localContext.nodeAsString(statementNode);
216
+
217
+ localContext.trace(`Verifying the '${statementString}' statement as a subproof assertion...`, statementNode);
218
+
219
+ const subproofAssertionVerified = verifySubproofAssertion(subproofAssertionNode, assignments, derived, localContext, () => {
220
+ const verifiedAhead = true;
221
+
222
+ return verifiedAhead;
223
+ });
224
+
225
+ statementVerifiedAsSubproofAssertion = subproofAssertionVerified; ///
226
+
227
+ if (statementVerifiedAsSubproofAssertion) {
228
+ localContext.debug(`...verified the '${statementString}' statement as a defined assertion.`, statementNode);
229
+ }
230
+ }
231
+
232
+ return statementVerifiedAsSubproofAssertion;
233
+ }
234
+
210
235
  function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
211
236
  let statementVerifiedAsContainedAssertion = false;
212
237
 
@@ -241,6 +266,7 @@ function verifyStatementAgainstCombinators(statementNode, assignments, derived,
241
266
  metavariableNode = metavariableNodeQuery(statementNode),
242
267
  typeAssertionNode = typeAssertionNodeQuery(statementNode),
243
268
  definedAssertionNode = definedAssertionNodeQuery(statementNode),
269
+ subproofAssertionNode = subproofAssertionNodeQuery(statementNode),
244
270
  containedAssertionNode = containedAssertionNodeQuery(statementNode);
245
271
 
246
272
  if ( (equalityNode === null) &&
@@ -248,6 +274,7 @@ function verifyStatementAgainstCombinators(statementNode, assignments, derived,
248
274
  (metavariableNode === null) &&
249
275
  (typeAssertionNode === null) &&
250
276
  (definedAssertionNode === null) &&
277
+ (subproofAssertionNode === null) &&
251
278
  (containedAssertionNode === null) ) {
252
279
 
253
280
  const combinators = localContext.getCombinators();
@@ -1,91 +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 termNodeQuery = (0, _query.nodeQuery)("/statement/term!"), statementTermNodesQuery = (0, _query.nodesQuery)("/statement/metaArgument/statement//term");
20
- function verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
21
- var statementVerifiedAsContainedAssertion;
22
- var statementContainedAssertion = isStatementContainedAssertion(containedAssertionNode);
23
- if (statementContainedAssertion) {
24
- var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
25
- localContext.trace("Verifying the '".concat(containedAssertionString, "' statement as a contained assertion..."), containedAssertionNode);
26
- var statementFunctions = [
27
- verifyStatementAsDerivedContainedAssertion,
28
- verifyStatementAsStatedContainedAssertion
29
- ];
30
- statementVerifiedAsContainedAssertion = statementFunctions.some(function(statementFunction) {
31
- var statementVerifiedAsContainedAssertion = statementFunction(containedAssertionNode, assignments, derived, localContext);
32
- if (statementVerifiedAsContainedAssertion) {
33
- return true;
34
- }
35
- });
36
- if (statementVerifiedAsContainedAssertion) {
37
- localContext.debug("...verified the '".concat(containedAssertionString, "' statement as a contained assertion."), containedAssertionNode);
38
- }
39
- }
40
- return statementVerifiedAsContainedAssertion;
41
- }
42
- function verifyStatementAsDerivedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
43
- var statementVerifiedAsDefinedContainedAssertion = false;
44
- if (derived) {
45
- var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
46
- localContext.trace("Verifying the '".concat(containedAssertionString, "' derived statement as a contained assertion..."), containedAssertionNode);
47
- var statementNegated = (0, _verify.isStatementNegated)(containedAssertionNode), termNode = termNodeQuery(containedAssertionNode), negated = statementNegated, statementTermNodes = statementTermNodesQuery(containedAssertionNode), termNodeMatchesMetaArgumentVariableNode = statementTermNodes.some(function(statementTermNode) {
48
- var termNodeMatchesMetaArgumentVariableNode = termNode.match(statementTermNode);
49
- if (termNodeMatchesMetaArgumentVariableNode) {
50
- return true;
51
- }
52
- });
53
- if (!negated) {
54
- if (termNodeMatchesMetaArgumentVariableNode) {
55
- statementVerifiedAsDefinedContainedAssertion = true;
56
- }
57
- }
58
- if (negated) {
59
- if (!termNodeMatchesMetaArgumentVariableNode) {
60
- statementVerifiedAsDefinedContainedAssertion = true;
61
- }
62
- }
63
- if (statementVerifiedAsDefinedContainedAssertion) {
64
- localContext.debug("...verified the '".concat(containedAssertionString, "' derived statement as a contained assertion."), containedAssertionNode);
65
- }
66
- }
67
- return statementVerifiedAsDefinedContainedAssertion;
68
- }
69
- function verifyStatementAsStatedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
70
- var statementVerifiedAsStatedContainedAssertion = false;
71
- if (!derived) {
72
- var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
73
- localContext.trace("Verifying the '".concat(containedAssertionString, "' stated statement as a contained assertion..."), containedAssertionNode);
74
- var intrinsicLevel = localContext.isIntrinsicLevel();
75
- if (intrinsicLevel) {
76
- localContext.debug("The '".concat(containedAssertionString, "' stated statement as a contained assertion cannot be verified at intrinsic level."), containedAssertionNode);
77
- } else {
78
- var nonTerminalNode = containedAssertionNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
79
- var verifiedAhead = true;
80
- return verifiedAhead;
81
- });
82
- statementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
83
- }
84
- if (statementVerifiedAsStatedContainedAssertion) {
85
- localContext.debug("...verified the '".concat(containedAssertionString, "' stated statement as a contained assertion."), containedAssertionNode);
86
- }
87
- }
88
- return statementVerifiedAsStatedContainedAssertion;
89
- }
90
-
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29udGFpbmVkQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbWV0YUxldmVsTm9kZVZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2RlL21ldGFMZXZlbFwiO1xuXG5pbXBvcnQgeyBpc1N0YXRlbWVudE5lZ2F0ZWQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90ZXJtIVwiKSxcbiAgICAgIHN0YXRlbWVudFRlcm1Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdGF0ZW1lbnQvbWV0YUFyZ3VtZW50L3N0YXRlbWVudC8vdGVybVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb247XG5cbiAgY29uc3Qgc3RhdGVtZW50Q29udGFpbmVkQXNzZXJ0aW9uID0gaXNTdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbikge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgICAgdmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uLFxuICAgICAgdmVyaWZ5U3RhdGVtZW50QXNTdGF0ZWRDb250YWluZWRBc3NlcnRpb25cbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKChzdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHN0YXRlbWVudEZ1bmN0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0Rlcml2ZWRDb250YWluZWRBc3NlcnRpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROZWdhdGVkID0gaXNTdGF0ZW1lbnROZWdhdGVkKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICBuZWdhdGVkID0gc3RhdGVtZW50TmVnYXRlZCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50VGVybU5vZGVzID0gc3RhdGVtZW50VGVybU5vZGVzUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdGVybU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gc3RhdGVtZW50VGVybU5vZGVzLnNvbWUoKHN0YXRlbWVudFRlcm1Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUgPSB0ZXJtTm9kZS5tYXRjaChzdGF0ZW1lbnRUZXJtTm9kZSk7XG5cbiAgICAgICAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRDb250YWluZWRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICBpZiAoIXRlcm1Ob2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZENvbnRhaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbiBjYW5ub3QgYmUgdmVyaWZpZWQgYXQgaW50cmluc2ljIGxldmVsLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbWV0YUxldmVsTm9kZVZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50VGVybU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24iLCJpc1N0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbiIsImNvbnRhaW5lZEFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwic3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNTdGF0ZWRDb250YWluZWRBc3NlcnRpb24iLCJzb21lIiwic3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsInN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50TmVnYXRlZCIsImlzU3RhdGVtZW50TmVnYXRlZCIsInRlcm1Ob2RlIiwibmVnYXRlZCIsInN0YXRlbWVudFRlcm1Ob2RlcyIsInRlcm1Ob2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSIsInN0YXRlbWVudFRlcm1Ob2RlIiwibWF0Y2giLCJzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uIiwiaW50cmluc2ljTGV2ZWwiLCJpc0ludHJpbnNpY0xldmVsIiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJtZXRhTGV2ZWxOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJ2ZXJpZmllZEFoZWFkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O2dFQVJVO3NCQUVDO3FCQUNHOzs7Ozs7QUFFdEMsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHFCQUMxQkMsMEJBQTBCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRTVCLFNBQVNKLHlCQUF5Qkssc0JBQXNCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ3pHLElBQUlDO0lBRUosSUFBTUMsOEJBQThCQyw4QkFBOEJOO0lBRWxFLElBQUlLLDZCQUE2QjtRQUMvQixJQUFNRSwyQkFBMkJKLGFBQWFLLFlBQVksQ0FBQ1I7UUFFM0RHLGFBQWFNLEtBQUssQ0FBQyxBQUFDLGtCQUEwQyxPQUF6QkYsMEJBQXlCLDRDQUEwQ1A7UUFFeEcsSUFBTVUscUJBQXFCO1lBQ3pCQztZQUNBQztTQUNEO1FBRURSLHdDQUF3Q00sbUJBQW1CRyxJQUFJLENBQUMsU0FBQ0M7WUFDL0QsSUFBTVYsd0NBQXdDVSxrQkFBa0JkLHdCQUF3QkMsYUFBYUMsU0FBU0M7WUFFOUcsSUFBSUMsdUNBQXVDO2dCQUN6QyxPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQUlBLHVDQUF1QztZQUN6Q0QsYUFBYVksS0FBSyxDQUFDLEFBQUMsb0JBQTRDLE9BQXpCUiwwQkFBeUIsMENBQXdDUDtRQUMxRztJQUNGO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNPLDJDQUEyQ1gsc0JBQXNCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzVHLElBQUlhLCtDQUErQztJQUVuRCxJQUFJZCxTQUFTO1FBQ1gsSUFBTUssMkJBQTJCSixhQUFhSyxZQUFZLENBQUNSO1FBRTNERyxhQUFhTSxLQUFLLENBQUMsQUFBQyxrQkFBMEMsT0FBekJGLDBCQUF5QixvREFBa0RQO1FBRWhILElBQU1pQixtQkFBbUJDLElBQUFBLDBCQUFrQixFQUFDbEIseUJBQ3RDbUIsV0FBV3ZCLGNBQWNJLHlCQUN6Qm9CLFVBQVVILGtCQUNWSSxxQkFBcUJ2Qix3QkFBd0JFLHlCQUM3Q3NCLDBDQUEwQ0QsbUJBQW1CUixJQUFJLENBQUMsU0FBQ1U7WUFDakUsSUFBTUQsMENBQTBDSCxTQUFTSyxLQUFLLENBQUNEO1lBRS9ELElBQUlELHlDQUF5QztnQkFDM0MsT0FBTztZQUNUO1FBQ0Y7UUFFTixJQUFJLENBQUNGLFNBQVM7WUFDWixJQUFJRSx5Q0FBeUM7Z0JBQzNDTiwrQ0FBK0M7WUFDakQ7UUFDRjtRQUVBLElBQUlJLFNBQVM7WUFDWCxJQUFJLENBQUNFLHlDQUF5QztnQkFDNUNOLCtDQUErQztZQUNqRDtRQUNGO1FBRUEsSUFBSUEsOENBQThDO1lBQ2hEYixhQUFhWSxLQUFLLENBQUMsQUFBQyxvQkFBNEMsT0FBekJSLDBCQUF5QixrREFBZ0RQO1FBQ2xIO0lBQ0Y7SUFFQSxPQUFPZ0I7QUFDVDtBQUVBLFNBQVNKLDBDQUEwQ1osc0JBQXNCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzNHLElBQUlzQiw4Q0FBOEM7SUFFbEQsSUFBSSxDQUFDdkIsU0FBUztRQUNaLElBQU1LLDJCQUEyQkosYUFBYUssWUFBWSxDQUFDUjtRQUUzREcsYUFBYU0sS0FBSyxDQUFDLEFBQUMsa0JBQTBDLE9BQXpCRiwwQkFBeUIsbURBQWlEUDtRQUUvRyxJQUFNMEIsaUJBQWlCdkIsYUFBYXdCLGdCQUFnQjtRQUVwRCxJQUFJRCxnQkFBZ0I7WUFDbEJ2QixhQUFhWSxLQUFLLENBQUMsQUFBQyxRQUFnQyxPQUF6QlIsMEJBQXlCLHVGQUFxRlA7UUFDM0ksT0FBTztZQUNMLElBQU00QixrQkFBa0I1Qix3QkFDbEI2QiwwQkFBMEJDLGtCQUFxQixDQUFDQyxxQkFBcUIsQ0FBQ0gsaUJBQWlCekIsY0FBYztnQkFDbkcsSUFBTTZCLGdCQUFnQjtnQkFFdEIsT0FBT0E7WUFDVDtZQUVOUCw4Q0FBOENJLHlCQUF5QixHQUFHO1FBQzVFO1FBRUEsSUFBSUosNkNBQTZDO1lBQy9DdEIsYUFBYVksS0FBSyxDQUFDLEFBQUMsb0JBQTRDLE9BQXpCUiwwQkFBeUIsaURBQStDUDtRQUNqSDtJQUNGO0lBRUEsT0FBT3lCO0FBQ1QifQ==
@@ -1,115 +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 verifyDefinedAssertion;
9
- }
10
- });
11
- var _term = /*#__PURE__*/ _interop_require_default(require("./term"));
12
- var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
13
- var _array = require("../utilities/array");
14
- var _constants = require("../constants");
15
- var _query = require("../utilities/query");
16
- var _verify = require("../utilities/verify");
17
- function _interop_require_default(obj) {
18
- return obj && obj.__esModule ? obj : {
19
- default: obj
20
- };
21
- }
22
- var termNodeQuery = (0, _query.nodeQuery)("/statement/term!"), variableNodeQuery = (0, _query.nodeQuery)("/statement/term/variable!");
23
- function verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
24
- var statementVerifiedAsDefinedAssertion = false;
25
- var statementDefinedAssertion = isStatementDefinedAssertion(definedAssertionNode);
26
- if (statementDefinedAssertion) {
27
- var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
28
- localContext.trace("Verifying the '".concat(definedAssertionString, "' statement as a defined assertion..."), definedAssertionNode);
29
- var definedAssertionFunctions = [
30
- verifyDerivedStatementAsDefinedAssertion,
31
- verifyStatedStatementAsDefinedAssertion
32
- ];
33
- statementVerifiedAsDefinedAssertion = definedAssertionFunctions.some(function(definedAssertionFunction) {
34
- var statementVerifiedAsDefinedAssertion = definedAssertionFunction(definedAssertionNode, assignments, derived, localContext);
35
- if (statementVerifiedAsDefinedAssertion) {
36
- return true;
37
- }
38
- });
39
- if (statementVerifiedAsDefinedAssertion) {
40
- localContext.debug("...verified the '".concat(definedAssertionString, "' statement as a defined assertion."), definedAssertionNode);
41
- }
42
- }
43
- return statementVerifiedAsDefinedAssertion;
44
- }
45
- function verifyDerivedStatementAsDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
46
- var derivedStatementVerifiedAsDefeindAssertion = false;
47
- if (derived) {
48
- var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
49
- localContext.trace("Verifying the '".concat(definedAssertionString, "' derived statement as a defined assertion..."), definedAssertionNode);
50
- var statementNegated = (0, _verify.isAssertionNegated)(definedAssertionNode), variableNode = variableNodeQuery(definedAssertionNode), termNode = termNodeQuery(definedAssertionNode);
51
- if (false) {
52
- ///
53
- } else if (variableNode !== null) {
54
- var variable = localContext.findVariableByVariableNode(variableNode);
55
- if (variable !== null) {
56
- var variableDefined = localContext.isVariableDefined(variable);
57
- if (!statementNegated) {
58
- if (variableDefined) {
59
- derivedStatementVerifiedAsDefeindAssertion = true;
60
- }
61
- }
62
- if (statementNegated) {
63
- if (!variableDefined) {
64
- derivedStatementVerifiedAsDefeindAssertion = true;
65
- }
66
- }
67
- }
68
- } else if (termNode !== null) {
69
- var terms = [], termVerified = (0, _term.default)(termNode, terms, localContext, function() {
70
- var verifiedAhead = true;
71
- return verifiedAhead;
72
- });
73
- if (termVerified) {
74
- var firstTerm = (0, _array.first)(terms), term = firstTerm, termGrounded = localContext.isTermGrounded(term);
75
- if (!statementNegated) {
76
- if (termGrounded) {
77
- derivedStatementVerifiedAsDefeindAssertion = true;
78
- }
79
- }
80
- if (statementNegated) {
81
- if (!termGrounded) {
82
- derivedStatementVerifiedAsDefeindAssertion = true;
83
- }
84
- }
85
- }
86
- }
87
- if (derivedStatementVerifiedAsDefeindAssertion) {
88
- localContext.debug("...verified the '".concat(definedAssertionString, "' derived statement as a defined assertion."), definedAssertionNode);
89
- }
90
- }
91
- return derivedStatementVerifiedAsDefeindAssertion;
92
- }
93
- function verifyStatedStatementAsDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
94
- var statedStatementVerifiedAsDefinedAssertion = false;
95
- if (!derived) {
96
- var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
97
- localContext.trace("Verifying the '".concat(definedAssertionString, "' stated statement as a defined assertion..."), definedAssertionNode);
98
- var intrinsicLevel = localContext.isIntrinsicLevel();
99
- if (intrinsicLevel) {
100
- localContext.debug("The '".concat(definedAssertionString, "' stated statement as a defined assertion cannot be verified at intrinsic level."), definedAssertionNode);
101
- } else {
102
- var nonTerminalNode = definedAssertionNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
103
- var verifiedAhead = true;
104
- return verifiedAhead;
105
- });
106
- statedStatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
107
- }
108
- if (statedStatementVerifiedAsDefinedAssertion) {
109
- localContext.debug("...verified the '".concat(definedAssertionString, "' stated statement as a defined assertion."), definedAssertionNode);
110
- }
111
- }
112
- return statedStatementVerifiedAsDefinedAssertion;
113
- }
114
-
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVmaW5lZEFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4vdGVybVwiO1xuaW1wb3J0IG1ldGFMZXZlbE5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBERUZJTkVEIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgaXNBc3NlcnRpb25OZWdhdGVkIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92ZXJpZnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdGVybSFcIiksXG4gICAgICB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbiA9IGlzU3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudERlZmluZWRBc3NlcnRpb24pIHtcbiAgICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVmaW5lZEFzc2VydGlvblN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICAgIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgICB2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb25cbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKGRlZmluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5lZ2F0ZWQgPSBpc0Fzc2VydGlvbk5lZ2F0ZWQoZGVmaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KGRlZmluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5lZCA9IGxvY2FsQ29udGV4dC5pc1ZhcmlhYmxlRGVmaW5lZCh2YXJpYWJsZSk7XG5cbiAgICAgICAgaWYgKCFzdGF0ZW1lbnROZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKHZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgICAgZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdGVtZW50TmVnYXRlZCkge1xuICAgICAgICAgIGlmICghdmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgICAgICBkZXJpdmVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgdGVybUdyb3VuZGVkID0gbG9jYWxDb250ZXh0LmlzVGVybUdyb3VuZGVkKHRlcm0pO1xuXG4gICAgICAgIGlmICghc3RhdGVtZW50TmVnYXRlZCkge1xuICAgICAgICAgIGlmICh0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudE5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoIXRlcm1Hcm91bmRlZCkge1xuICAgICAgICAgICAgZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uIGNhbm5vdCBiZSB2ZXJpZmllZCBhdCBpbnRyaW5zaWMgbGV2ZWwuYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFMZXZlbE5vZGVWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uIiwiaXNTdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uIiwiZGVmaW5lZEFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwiZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24iLCJzb21lIiwiZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24iLCJzdGF0ZW1lbnROZWdhdGVkIiwiaXNBc3NlcnRpb25OZWdhdGVkIiwidmFyaWFibGVOb2RlIiwidGVybU5vZGUiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidmFyaWFibGVEZWZpbmVkIiwiaXNWYXJpYWJsZURlZmluZWQiLCJ0ZXJtcyIsInRlcm1WZXJpZmllZCIsInZlcmlmeVRlcm0iLCJ2ZXJpZmllZEFoZWFkIiwiZmlyc3RUZXJtIiwiZmlyc3QiLCJ0ZXJtIiwidGVybUdyb3VuZGVkIiwiaXNUZXJtR3JvdW5kZWQiLCJzdGF0ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsImludHJpbnNpY0xldmVsIiwiaXNJbnRyaW5zaWNMZXZlbCIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwibWV0YUxldmVsTm9kZVZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXdCQTs7OzJEQVhEO2dFQUNXO3FCQUVaO3lCQUNFO3FCQUNFO3NCQUNTOzs7Ozs7QUFFbkMsSUFBTUMsZ0JBQWdCQyxJ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