occam-verify-cli 0.0.915 → 0.0.917

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 (57) hide show
  1. package/lib/assignment/judgement.js +62 -0
  2. package/lib/axiom.js +11 -24
  3. package/lib/conjecture.js +11 -24
  4. package/lib/constants.js +9 -1
  5. package/lib/constructor/bracketed.js +11 -24
  6. package/lib/context/file.js +5 -5
  7. package/lib/context/local/metaLevel.js +46 -54
  8. package/lib/judgement.js +87 -0
  9. package/lib/lemma.js +11 -24
  10. package/lib/metaLemma.js +11 -24
  11. package/lib/metaType/frame.js +11 -24
  12. package/lib/metaType/reference.js +11 -24
  13. package/lib/metaType/statement.js +11 -24
  14. package/lib/metatheorem.js +11 -24
  15. package/lib/ocmbinator/bracketed.js +11 -24
  16. package/lib/substitution/metastatementForMetavariable.js +11 -24
  17. package/lib/substitution/statementForMetavariable.js +11 -24
  18. package/lib/substitution/termForVariable.js +11 -24
  19. package/lib/theorem.js +11 -24
  20. package/lib/type.js +11 -24
  21. package/lib/utilities/verify.js +7 -7
  22. package/lib/verifier/node/metaLevel.js +11 -24
  23. package/lib/verifier/node/statementAsCombinator.js +11 -24
  24. package/lib/verifier/node/termAsConstructor.js +11 -24
  25. package/lib/verifier/nodes/equality.js +11 -24
  26. package/lib/verifier/nodes/intrinsicLevel.js +11 -24
  27. package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +11 -24
  28. package/lib/verifier/nodes/metaLevel.js +11 -24
  29. package/lib/verifier/nodes/statementAgainstCombinator.js +11 -24
  30. package/lib/verifier/nodes/termAgainstConstructor.js +11 -24
  31. package/lib/verify/frame.js +6 -6
  32. package/lib/verify/judgement.js +121 -0
  33. package/lib/verify/metastatement.js +20 -16
  34. package/lib/verify/statement.js +45 -46
  35. package/lib/verify/statementAsContainedAssertion.js +93 -0
  36. package/lib/verify/statementAsDefinedAssertion.js +111 -0
  37. package/package.json +2 -2
  38. package/src/assignment/judgement.js +30 -0
  39. package/src/constants.js +2 -0
  40. package/src/context/file.js +3 -3
  41. package/src/context/local/metaLevel.js +35 -35
  42. package/src/{frameAssertion.js → judgement.js} +5 -5
  43. package/src/utilities/verify.js +5 -5
  44. package/src/verify/frame.js +5 -5
  45. package/src/verify/{frameAssertion.js → judgement.js} +46 -46
  46. package/src/verify/metastatement.js +23 -15
  47. package/src/verify/statement.js +70 -70
  48. package/src/verify/statementAsContainedAssertion.js +112 -0
  49. package/src/verify/statementAsDefinedAssertion.js +136 -0
  50. package/lib/assignment/frameAssertion.js +0 -62
  51. package/lib/frameAssertion.js +0 -87
  52. package/lib/verify/containedAssertion.js +0 -93
  53. package/lib/verify/definedAssertion.js +0 -111
  54. package/lib/verify/frameAssertion.js +0 -121
  55. package/src/assignment/frameAssertion.js +0 -30
  56. package/src/verify/containedAssertion.js +0 -112
  57. package/src/verify/definedAssertion.js +0 -137
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import verifyFrameAssertion from "../verify/frameAssertion";
3
+ import verifyJudgement from "../verify/judgement";
4
4
  import metaLevelNodeVerifier from "../verifier/node/metaLevel";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
- const frameAssertionNodeQuery = nodeQuery("/metastatement/frameAssertion!");
8
+ const judgementNodeQuery = nodeQuery("/metastatement/judgement!");
9
9
 
10
10
  function verifyMetastatement(metastatementNode, assignments, derived, localContext) {
11
11
  let metastatementVerified;
@@ -15,7 +15,7 @@ function verifyMetastatement(metastatementNode, assignments, derived, localConte
15
15
  localContext.trace(`Verifying the '${metastatementString}' metastatement...`, metastatementNode);
16
16
 
17
17
  const verifyMetaStatementFunctions = [
18
- verifyMetastatementAsFrameAssertion,
18
+ verifyMetastatementAsJudgement,
19
19
  verifyMetastatementAsIs
20
20
  ];
21
21
 
@@ -40,34 +40,35 @@ Object.assign(metaLevelNodeVerifier, {
40
40
 
41
41
  export default verifyMetastatement;
42
42
 
43
- function verifyMetastatementAsFrameAssertion(metastatementNode, assignments, derived, localContext) {
44
- let metastatementVerifiedAsFrameAssertion = false;
43
+ function verifyMetastatementAsJudgement(metastatementNode, assignments, derived, localContext) {
44
+ let metastatementVerifiedAsJudgement = false;
45
45
 
46
- const frameAssertionNode = frameAssertionNodeQuery(metastatementNode);
46
+ const metastatementJudgement = isMetastatementJudgement(metastatementNode);
47
47
 
48
- if (frameAssertionNode !== null) {
48
+ if (metastatementJudgement) {
49
49
  const metastatementString = localContext.nodeAsString(metastatementNode);
50
50
 
51
- localContext.trace(`Verifying the '${metastatementString}' metastatement as a frame assertion...`, metastatementNode);
51
+ localContext.trace(`Verifying the '${metastatementString}' metastatement as a judgement...`, metastatementNode);
52
52
 
53
- const frameAssertionVerified = verifyFrameAssertion(frameAssertionNode, assignments, derived, localContext);
53
+ const judgementNode = judgementNodeQuery(metastatementNode),
54
+ judgementVerified = verifyJudgement(judgementNode, assignments, derived, localContext);
54
55
 
55
- metastatementVerifiedAsFrameAssertion = frameAssertionVerified; ///
56
+ metastatementVerifiedAsJudgement = judgementVerified; ///
56
57
 
57
- if (metastatementVerifiedAsFrameAssertion) {
58
- localContext.debug(`...verified the '${metastatementString}' metastatement as a frame assertion.`, metastatementNode);
58
+ if (metastatementVerifiedAsJudgement) {
59
+ localContext.debug(`...verified the '${metastatementString}' metastatement as a judgement.`, metastatementNode);
59
60
  }
60
61
  }
61
62
 
62
- return metastatementVerifiedAsFrameAssertion;
63
+ return metastatementVerifiedAsJudgement;
63
64
  }
64
65
 
65
66
  function verifyMetastatementAsIs(metastatementNode, assignments, derived, localContext) {
66
67
  let metastatementVerifiedAsIs;
67
68
 
68
- const frameAssertionNode = frameAssertionNodeQuery(metastatementNode);
69
+ const metastatementJudgement = isMetastatementJudgement(metastatementNode);
69
70
 
70
- if (frameAssertionNode === null) {
71
+ if (!metastatementJudgement) {
71
72
  const metastatementString = localContext.nodeAsString(metastatementNode);
72
73
 
73
74
  localContext.trace(`Verifying the '${metastatementString}' metastatement as is...`, metastatementNode);
@@ -129,3 +130,10 @@ function verifyStatedMetastatementAsIs(metastatementNode, assignments, derived,
129
130
 
130
131
  return statedMetastatementVerifiedAsIs;
131
132
  }
133
+
134
+ function isMetastatementJudgement(metastatementNode) {
135
+ const judgementNode = judgementNodeQuery(metastatementNode),
136
+ metastatementJudgement = (judgementNode !== null);
137
+
138
+ return metastatementJudgement;
139
+ }
@@ -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,62 +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 FrameAssertionAssignment;
9
- }
10
- });
11
- function _class_call_check(instance, Constructor) {
12
- if (!(instance instanceof Constructor)) {
13
- throw new TypeError("Cannot call a class as a function");
14
- }
15
- }
16
- function _defineProperties(target, props) {
17
- for(var i = 0; i < props.length; i++){
18
- var descriptor = props[i];
19
- descriptor.enumerable = descriptor.enumerable || false;
20
- descriptor.configurable = true;
21
- if ("value" in descriptor) descriptor.writable = true;
22
- Object.defineProperty(target, descriptor.key, descriptor);
23
- }
24
- }
25
- function _create_class(Constructor, protoProps, staticProps) {
26
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
- if (staticProps) _defineProperties(Constructor, staticProps);
28
- return Constructor;
29
- }
30
- var FrameAssertionAssignment = /*#__PURE__*/ function() {
31
- function FrameAssertionAssignment(frameAssertion) {
32
- _class_call_check(this, FrameAssertionAssignment);
33
- this.frameAssertion = frameAssertion;
34
- }
35
- _create_class(FrameAssertionAssignment, [
36
- {
37
- key: "getFrameAssertion",
38
- value: function getFrameAssertion() {
39
- return this.frameAssertion;
40
- }
41
- },
42
- {
43
- key: "assign",
44
- value: function assign(localContext) {
45
- var frameAssertionAdded = localContext.addFrameAssertion(this.frameAssertion), frameAssertionNode = this.frameAssertion.getNode(), frameAssertionString = localContext.nodeAsString(frameAssertionNode), frameAssertionAssigned = frameAssertionAdded; ///
46
- frameAssertionAssigned ? localContext.trace("Assigned the '".concat(frameAssertionString, "' frame assertion."), frameAssertionNode) : localContext.debug("Unable to assign the '".concat(frameAssertionString, "' frame assertion."), frameAssertionNode);
47
- return frameAssertionAssigned;
48
- }
49
- }
50
- ], [
51
- {
52
- key: "fromFrameAssertion",
53
- value: function fromFrameAssertion(frameAssertion) {
54
- var frameAssertionAssignment = new FrameAssertionAssignment(frameAssertion);
55
- return frameAssertionAssignment;
56
- }
57
- }
58
- ]);
59
- return FrameAssertionAssignment;
60
- }();
61
-
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NpZ25tZW50L2ZyYW1lQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQge1xuICBjb25zdHJ1Y3RvcihmcmFtZUFzc2VydGlvbikge1xuICAgIHRoaXMuZnJhbWVBc3NlcnRpb24gPSBmcmFtZUFzc2VydGlvbjtcbiAgfVxuXG4gIGdldEZyYW1lQXNzZXJ0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmZyYW1lQXNzZXJ0aW9uO1xuICB9XG5cbiAgYXNzaWduKGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uQWRkZWQgPSBsb2NhbENvbnRleHQuYWRkRnJhbWVBc3NlcnRpb24odGhpcy5mcmFtZUFzc2VydGlvbiksXG4gICAgICAgICAgZnJhbWVBc3NlcnRpb25Ob2RlID0gdGhpcy5mcmFtZUFzc2VydGlvbi5nZXROb2RlKCksXG4gICAgICAgICAgZnJhbWVBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGZyYW1lQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgZnJhbWVBc3NlcnRpb25Bc3NpZ25lZCA9IGZyYW1lQXNzZXJ0aW9uQWRkZWQ7IC8vL1xuXG4gICAgZnJhbWVBc3NlcnRpb25Bc3NpZ25lZCA/XG4gICAgICBsb2NhbENvbnRleHQudHJhY2UoYEFzc2lnbmVkIHRoZSAnJHtmcmFtZUFzc2VydGlvblN0cmluZ30nIGZyYW1lIGFzc2VydGlvbi5gLCBmcmFtZUFzc2VydGlvbk5vZGUpIDpcbiAgICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gYXNzaWduIHRoZSAnJHtmcmFtZUFzc2VydGlvblN0cmluZ30nIGZyYW1lIGFzc2VydGlvbi5gLCBmcmFtZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgcmV0dXJuIGZyYW1lQXNzZXJ0aW9uQXNzaWduZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZyYW1lQXNzZXJ0aW9uKGZyYW1lQXNzZXJ0aW9uKSB7XG4gICAgY29uc3QgZnJhbWVBc3NlcnRpb25Bc3NpZ25tZW50ID0gbmV3IEZyYW1lQXNzZXJ0aW9uQXNzaWdubWVudChmcmFtZUFzc2VydGlvbik7XG5cbiAgICByZXR1cm4gZnJhbWVBc3NlcnRpb25Bc3NpZ25tZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRnJhbWVBc3NlcnRpb25Bc3NpZ25tZW50IiwiZnJhbWVBc3NlcnRpb24iLCJnZXRGcmFtZUFzc2VydGlvbiIsImFzc2lnbiIsImxvY2FsQ29udGV4dCIsImZyYW1lQXNzZXJ0aW9uQWRkZWQiLCJhZGRGcmFtZUFzc2VydGlvbiIsImZyYW1lQXNzZXJ0aW9uTm9kZSIsImdldE5vZGUiLCJmcmFtZUFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsImZyYW1lQXNzZXJ0aW9uQXNzaWduZWQiLCJ0cmFjZSIsImRlYnVnIiwiZnJvbUZyYW1lQXNzZXJ0aW9uIiwiZnJhbWVBc3NlcnRpb25Bc3NpZ25tZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUVxQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLHlDQUFELEFBQUw7YUFBTUEseUJBQ1BDLGNBQWM7Z0NBRFBEO1FBRWpCLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTs7a0JBRkxEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxjQUFjO1lBQzVCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLFlBQVk7Z0JBQ2pCLElBQU1DLHNCQUFzQkQsYUFBYUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDTCxjQUFjLEdBQ3hFTSxxQkFBcUIsSUFBSSxDQUFDTixjQUFjLENBQUNPLE9BQU8sSUFDaERDLHVCQUF1QkwsYUFBYU0sWUFBWSxDQUFDSCxxQkFDakRJLHlCQUF5Qk4scUJBQXFCLEdBQUc7Z0JBRXZETSx5QkFDRVAsYUFBYVEsS0FBSyxDQUFDLEFBQUMsaUJBQXFDLE9BQXJCSCxzQkFBcUIsdUJBQXFCRixzQkFDNUVILGFBQWFTLEtBQUssQ0FBQyxBQUFDLHlCQUE2QyxPQUFyQkosc0JBQXFCLHVCQUFxQkY7Z0JBRTFGLE9BQU9JO1lBQ1Q7Ozs7WUFFT0csS0FBQUE7bUJBQVAsU0FBT0EsbUJBQW1CYixjQUFjO2dCQUN0QyxJQUFNYywyQkFBMkIsSUF2QmhCZix5QkF1QjZDQztnQkFFOUQsT0FBT2M7WUFDVDs7O1dBMUJtQmYifQ==