occam-verify-cli 1.0.768 → 1.0.776
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/file/nominal.js +11 -11
- package/lib/context/illative.js +28 -0
- package/lib/context/nested.js +27 -0
- package/lib/context/proof.js +232 -0
- package/lib/context/thetic.js +28 -0
- package/lib/context.js +15 -21
- package/lib/element/assertion/contained.js +24 -22
- package/lib/element/assertion/defined.js +20 -19
- package/lib/element/assertion/property.js +14 -13
- package/lib/element/assertion/satisfies.js +8 -9
- package/lib/element/assertion/subproof.js +23 -26
- package/lib/element/assertion/type.js +9 -11
- package/lib/element/assumption.js +32 -39
- package/lib/element/combinator/bracketed.js +3 -3
- package/lib/element/combinator.js +20 -20
- package/lib/element/conclusion.js +33 -29
- package/lib/element/constructor.js +19 -18
- package/lib/element/deduction.js +33 -29
- package/lib/element/equality.js +13 -15
- package/lib/element/equivalence.js +59 -52
- package/lib/element/frame.js +41 -34
- package/lib/element/hypothesis.js +7 -5
- package/lib/element/judgement.js +32 -73
- package/lib/element/label.js +22 -22
- package/lib/element/metavariable.js +23 -7
- package/lib/element/proofAssertion/premise.js +48 -35
- package/lib/element/proofAssertion/step.js +35 -20
- package/lib/element/proofAssertion/supposition.js +48 -34
- package/lib/element/proofAssertion.js +1 -14
- package/lib/element/reference.js +80 -53
- package/lib/element/signature.js +44 -3
- package/lib/element/statement.js +28 -29
- package/lib/element/subproof.js +2 -2
- package/lib/element/substitution/frame.js +24 -19
- package/lib/element/substitution/metaLevel.js +31 -27
- package/lib/element/substitution/reference.js +11 -10
- package/lib/element/substitution/statement.js +30 -23
- package/lib/element/substitution/term.js +11 -10
- package/lib/element/term.js +24 -20
- package/lib/element/topLevelMetaAssertion.js +2 -2
- package/lib/element/variable.js +6 -2
- package/lib/process/assign.js +10 -4
- package/lib/process/unify.js +8 -8
- package/lib/process/validate.js +10 -8
- package/lib/utilities/context.js +68 -23
- package/lib/utilities/element.js +55 -27
- package/lib/utilities/json.js +8 -8
- package/lib/utilities/statement.js +1 -8
- package/lib/utilities/string.js +12 -1
- package/lib/utilities/unification.js +9 -7
- package/lib/utilities/validation.js +39 -31
- package/package.json +1 -1
- package/src/context/file/nominal.js +14 -16
- package/src/context/illative.js +17 -0
- package/src/context/nested.js +15 -0
- package/src/context/{scoped.js → proof.js} +73 -73
- package/src/context/thetic.js +17 -0
- package/src/context.js +23 -36
- package/src/element/assertion/contained.js +28 -28
- package/src/element/assertion/defined.js +23 -23
- package/src/element/assertion/property.js +15 -14
- package/src/element/assertion/satisfies.js +7 -9
- package/src/element/assertion/subproof.js +26 -31
- package/src/element/assertion/type.js +10 -12
- package/src/element/assumption.js +33 -54
- package/src/element/combinator/bracketed.js +2 -2
- package/src/element/combinator.js +23 -29
- package/src/element/conclusion.js +37 -40
- package/src/element/constructor.js +29 -34
- package/src/element/deduction.js +36 -39
- package/src/element/equality.js +16 -18
- package/src/element/equivalence.js +76 -67
- package/src/element/frame.js +42 -34
- package/src/element/hypothesis.js +7 -6
- package/src/element/judgement.js +34 -44
- package/src/element/label.js +25 -31
- package/src/element/metavariable.js +32 -12
- package/src/element/proofAssertion/premise.js +63 -49
- package/src/element/proofAssertion/step.js +43 -23
- package/src/element/proofAssertion/supposition.js +64 -50
- package/src/element/proofAssertion.js +0 -22
- package/src/element/reference.js +119 -80
- package/src/element/signature.js +5 -2
- package/src/element/statement.js +30 -35
- package/src/element/subproof.js +1 -1
- package/src/element/substitution/frame.js +27 -26
- package/src/element/substitution/metaLevel.js +38 -42
- package/src/element/substitution/reference.js +13 -14
- package/src/element/substitution/statement.js +35 -33
- package/src/element/substitution/term.js +13 -14
- package/src/element/term.js +42 -34
- package/src/element/topLevelMetaAssertion.js +1 -1
- package/src/element/variable.js +8 -1
- package/src/process/assign.js +9 -3
- package/src/process/unify.js +7 -7
- package/src/process/validate.js +9 -8
- package/src/utilities/context.js +82 -31
- package/src/utilities/element.js +68 -31
- package/src/utilities/json.js +13 -13
- package/src/utilities/statement.js +1 -9
- package/src/utilities/string.js +16 -2
- package/src/utilities/unification.js +10 -9
- package/src/utilities/validation.js +50 -38
- package/lib/context/scoped.js +0 -232
- package/lib/utilities/term.js +0 -17
- package/src/utilities/term.js +0 -10
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import elements from "../elements";
|
|
4
4
|
|
|
5
|
-
import { choose } from "./context";
|
|
6
|
-
import { variableFromTerm } from "../utilities/term";
|
|
5
|
+
import { choose, descend } from "./context";
|
|
7
6
|
import { bracketedConstructorFromNothing, bracketedCombinatorFromNothing } from "../utilities/instance";
|
|
8
|
-
import {
|
|
9
|
-
judgementFromStatement,
|
|
7
|
+
import { judgementFromStatement,
|
|
10
8
|
metavariableFromStatement,
|
|
11
9
|
typeAssertionFromStatement,
|
|
12
10
|
definedAssertionFromStatement,
|
|
@@ -18,9 +16,11 @@ import { equalityFromStatement,
|
|
|
18
16
|
function validateTermAsVariable(term, context, validateForwards) {
|
|
19
17
|
let termValidatesAsVariable = false;
|
|
20
18
|
|
|
19
|
+
const { Variable } = elements;
|
|
20
|
+
|
|
21
21
|
let variable;
|
|
22
22
|
|
|
23
|
-
variable =
|
|
23
|
+
variable = Variable.fromTerm(term, context);
|
|
24
24
|
|
|
25
25
|
if (variable !== null) {
|
|
26
26
|
const termString = term.getString();
|
|
@@ -53,11 +53,11 @@ function validateTermAsVariable(term, context, validateForwards) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
function unifyTermWithConstructors(term, context, validateForwards) {
|
|
56
|
-
let termUnifiesWithConstructors;
|
|
56
|
+
let termUnifiesWithConstructors = false;
|
|
57
57
|
|
|
58
58
|
const constructors = context.getConstructors();
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
constructors.some((constructor) => {
|
|
61
61
|
let termUnifies;
|
|
62
62
|
|
|
63
63
|
choose((context) => {
|
|
@@ -69,6 +69,8 @@ function unifyTermWithConstructors(term, context, validateForwards) {
|
|
|
69
69
|
}, context);
|
|
70
70
|
|
|
71
71
|
if (termUnifies) {
|
|
72
|
+
termUnifiesWithConstructors = true;
|
|
73
|
+
|
|
72
74
|
return true;
|
|
73
75
|
}
|
|
74
76
|
});
|
|
@@ -86,7 +88,7 @@ function unifyTermWithBracketedConstructor(term, context, validateForwards) {
|
|
|
86
88
|
return termUnifiesWithBracketedConstructor;
|
|
87
89
|
}
|
|
88
90
|
|
|
89
|
-
function validateStatementAsMetavariable(statement,
|
|
91
|
+
function validateStatementAsMetavariable(statement, context) {
|
|
90
92
|
let statementValidatesAsMetavariable = false;
|
|
91
93
|
|
|
92
94
|
let metavariable;
|
|
@@ -139,43 +141,53 @@ function validateStatementAsMetavariable(statement, stated, context) {
|
|
|
139
141
|
return statementValidatesAsMetavariable;
|
|
140
142
|
}
|
|
141
143
|
|
|
142
|
-
function unifyStatementWithCombinators(statement,
|
|
143
|
-
|
|
144
|
+
function unifyStatementWithCombinators(statement, context) {
|
|
145
|
+
let statementUnifiesWithCombinators = false;
|
|
146
|
+
|
|
147
|
+
const combinators = context.getCombinators();
|
|
144
148
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const unifiesWithCombinator = combinator.unifyStatement(statement, stated, context);
|
|
149
|
+
combinators.some((combinator) => {
|
|
150
|
+
let statementUnifies;
|
|
148
151
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
descend((context) => {
|
|
153
|
+
statementUnifies = combinator.unifyStatement(statement, context);
|
|
154
|
+
}, context);
|
|
155
|
+
|
|
156
|
+
if (statementUnifies) {
|
|
157
|
+
statementUnifiesWithCombinators = true;
|
|
158
|
+
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
153
162
|
|
|
154
163
|
return statementUnifiesWithCombinators;
|
|
155
164
|
}
|
|
156
165
|
|
|
157
|
-
function unifyStatementWithBracketedCombinator(statement,
|
|
158
|
-
|
|
166
|
+
function unifyStatementWithBracketedCombinator(statement, context) {
|
|
167
|
+
let statementUnifiesWithBracketedCombinator;
|
|
159
168
|
|
|
160
|
-
const bracketedCombinator = bracketedCombinatorFromNothing()
|
|
161
|
-
|
|
169
|
+
const bracketedCombinator = bracketedCombinatorFromNothing();
|
|
170
|
+
|
|
171
|
+
statementUnifiesWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, context);
|
|
162
172
|
|
|
163
173
|
return statementUnifiesWithBracketedCombinator;
|
|
164
174
|
}
|
|
165
175
|
|
|
166
|
-
function validateStatementAsEquality(statement,
|
|
176
|
+
function validateStatementAsEquality(statement, context) {
|
|
167
177
|
let statementValidatesAsEquality = false;
|
|
168
178
|
|
|
179
|
+
const { Equality } = elements;
|
|
180
|
+
|
|
169
181
|
let equality;
|
|
170
182
|
|
|
171
|
-
equality =
|
|
183
|
+
equality = Equality.fromStatement(statement, context);
|
|
172
184
|
|
|
173
185
|
if (equality !== null) {
|
|
174
186
|
const statementString = statement.getString();
|
|
175
187
|
|
|
176
188
|
context.trace(`Validating the '${statementString}' statement as an equality...`);
|
|
177
189
|
|
|
178
|
-
equality = equality.validate(
|
|
190
|
+
equality = equality.validate(context); ///
|
|
179
191
|
|
|
180
192
|
if (equality !== null) {
|
|
181
193
|
statementValidatesAsEquality = true;
|
|
@@ -189,7 +201,7 @@ function validateStatementAsEquality(statement, stated, context) {
|
|
|
189
201
|
return statementValidatesAsEquality;
|
|
190
202
|
}
|
|
191
203
|
|
|
192
|
-
function validateStatementAsJudgement(statement,
|
|
204
|
+
function validateStatementAsJudgement(statement, context) {
|
|
193
205
|
let validatesStatementAsJudgement = false;
|
|
194
206
|
|
|
195
207
|
let judgement;
|
|
@@ -201,7 +213,7 @@ function validateStatementAsJudgement(statement, stated, context) {
|
|
|
201
213
|
|
|
202
214
|
context.trace(`Validating the '${statementString}' statement as a judgement...`);
|
|
203
215
|
|
|
204
|
-
judgement = judgement.validate(
|
|
216
|
+
judgement = judgement.validate(context); ///
|
|
205
217
|
|
|
206
218
|
if (judgement !== null) {
|
|
207
219
|
validatesStatementAsJudgement = true;
|
|
@@ -215,7 +227,7 @@ function validateStatementAsJudgement(statement, stated, context) {
|
|
|
215
227
|
return validatesStatementAsJudgement;
|
|
216
228
|
}
|
|
217
229
|
|
|
218
|
-
function validateStatementAsTypeAssertion(statement,
|
|
230
|
+
function validateStatementAsTypeAssertion(statement, context) {
|
|
219
231
|
let validatesStatementAsTypeAssertion = false;
|
|
220
232
|
|
|
221
233
|
let typeAssertion;
|
|
@@ -227,7 +239,7 @@ function validateStatementAsTypeAssertion(statement, stated, context) {
|
|
|
227
239
|
|
|
228
240
|
context.trace(`Validating the '${statementString}' statement as a type assertion...`);
|
|
229
241
|
|
|
230
|
-
typeAssertion = typeAssertion.validate(
|
|
242
|
+
typeAssertion = typeAssertion.validate(context); ///
|
|
231
243
|
|
|
232
244
|
if (typeAssertion !== null) {
|
|
233
245
|
validatesStatementAsTypeAssertion = true;
|
|
@@ -241,7 +253,7 @@ function validateStatementAsTypeAssertion(statement, stated, context) {
|
|
|
241
253
|
return validatesStatementAsTypeAssertion;
|
|
242
254
|
}
|
|
243
255
|
|
|
244
|
-
function validateStatementAsDefinedAssertion(statement,
|
|
256
|
+
function validateStatementAsDefinedAssertion(statement, context) {
|
|
245
257
|
let validatesStatementAsDefinedAssertion = false;
|
|
246
258
|
|
|
247
259
|
let definedAssertion;
|
|
@@ -253,7 +265,7 @@ function validateStatementAsDefinedAssertion(statement, stated, context) {
|
|
|
253
265
|
|
|
254
266
|
context.trace(`Validating the '${statementString}' statement as a defined assertion...`);
|
|
255
267
|
|
|
256
|
-
definedAssertion = definedAssertion.validate(
|
|
268
|
+
definedAssertion = definedAssertion.validate(context); ///
|
|
257
269
|
|
|
258
270
|
if (definedAssertion !== null) {
|
|
259
271
|
validatesStatementAsDefinedAssertion = true;
|
|
@@ -267,7 +279,7 @@ function validateStatementAsDefinedAssertion(statement, stated, context) {
|
|
|
267
279
|
return validatesStatementAsDefinedAssertion;
|
|
268
280
|
}
|
|
269
281
|
|
|
270
|
-
function validateStatementAsPropertyAssertion(statement,
|
|
282
|
+
function validateStatementAsPropertyAssertion(statement, context) {
|
|
271
283
|
let statementValidatesAsPropertyAssertion = false;
|
|
272
284
|
|
|
273
285
|
let propertyAssertion;
|
|
@@ -279,7 +291,7 @@ function validateStatementAsPropertyAssertion(statement, stated, context) {
|
|
|
279
291
|
|
|
280
292
|
context.trace(`Validating the '${statementString}' statement as a property assertion...`);
|
|
281
293
|
|
|
282
|
-
propertyAssertion = propertyAssertion.validate(
|
|
294
|
+
propertyAssertion = propertyAssertion.validate(context); ///
|
|
283
295
|
|
|
284
296
|
if (propertyAssertion !== null) {
|
|
285
297
|
statementValidatesAsPropertyAssertion = true;
|
|
@@ -293,7 +305,7 @@ function validateStatementAsPropertyAssertion(statement, stated, context) {
|
|
|
293
305
|
return statementValidatesAsPropertyAssertion;
|
|
294
306
|
}
|
|
295
307
|
|
|
296
|
-
function validateStatementAsSubproofAssertion(statement,
|
|
308
|
+
function validateStatementAsSubproofAssertion(statement, context) {
|
|
297
309
|
let statementValidatesAsSubproofAssertion = false;
|
|
298
310
|
|
|
299
311
|
let subproofAssertion;
|
|
@@ -305,7 +317,7 @@ function validateStatementAsSubproofAssertion(statement, stated, context) {
|
|
|
305
317
|
|
|
306
318
|
context.trace(`Validating the '${statementString}' statement as a subproof assertion...`);
|
|
307
319
|
|
|
308
|
-
subproofAssertion = subproofAssertion.validate(
|
|
320
|
+
subproofAssertion = subproofAssertion.validate(context); ///
|
|
309
321
|
|
|
310
322
|
if (subproofAssertion !== null) {
|
|
311
323
|
statementValidatesAsSubproofAssertion = true;
|
|
@@ -319,7 +331,7 @@ function validateStatementAsSubproofAssertion(statement, stated, context) {
|
|
|
319
331
|
return statementValidatesAsSubproofAssertion;
|
|
320
332
|
}
|
|
321
333
|
|
|
322
|
-
function validateStatementAsContainedAssertion(statement,
|
|
334
|
+
function validateStatementAsContainedAssertion(statement, context) {
|
|
323
335
|
let validatesStatementAsContainedAssertion = false;
|
|
324
336
|
|
|
325
337
|
let containedAssertion;
|
|
@@ -331,7 +343,7 @@ function validateStatementAsContainedAssertion(statement, stated, context) {
|
|
|
331
343
|
|
|
332
344
|
context.trace(`Validating the '${statementString}' statement as a contained assertion...`);
|
|
333
345
|
|
|
334
|
-
containedAssertion = containedAssertion.validate(
|
|
346
|
+
containedAssertion = containedAssertion.validate(context); ///
|
|
335
347
|
|
|
336
348
|
if (containedAssertion !== null) {
|
|
337
349
|
validatesStatementAsContainedAssertion = true;
|
|
@@ -345,7 +357,7 @@ function validateStatementAsContainedAssertion(statement, stated, context) {
|
|
|
345
357
|
return validatesStatementAsContainedAssertion;
|
|
346
358
|
}
|
|
347
359
|
|
|
348
|
-
function validateStatementAsSatisfiesAssertion(statement,
|
|
360
|
+
function validateStatementAsSatisfiesAssertion(statement, context) {
|
|
349
361
|
let validatesAStatementsSatisfiesAssertion = false;
|
|
350
362
|
|
|
351
363
|
let satisfiesAssertion;
|
|
@@ -357,7 +369,7 @@ function validateStatementAsSatisfiesAssertion(statement, stated, context) {
|
|
|
357
369
|
|
|
358
370
|
context.trace(`Validating the '${statementString}' statement as a satisfies assertion...`);
|
|
359
371
|
|
|
360
|
-
satisfiesAssertion = satisfiesAssertion.validate(
|
|
372
|
+
satisfiesAssertion = satisfiesAssertion.validate(context); ///
|
|
361
373
|
|
|
362
374
|
if (satisfiesAssertion !== null) {
|
|
363
375
|
validatesAStatementsSatisfiesAssertion = true;
|
package/lib/context/scoped.js
DELETED
|
@@ -1,232 +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 _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _necessary = require("necessary");
|
|
12
|
-
const _context = /*#__PURE__*/ _interop_require_default(require("../context"));
|
|
13
|
-
const _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const { last } = _necessary.arrayUtilities;
|
|
20
|
-
class ScopedContext extends _context.default {
|
|
21
|
-
constructor(context, variables, judgements, assignments, equivalences, subproofOrProofAssertions, metaLevelSubstitutions){
|
|
22
|
-
super(context);
|
|
23
|
-
this.variables = variables;
|
|
24
|
-
this.judgements = judgements;
|
|
25
|
-
this.assignments = assignments;
|
|
26
|
-
this.equivalences = equivalences;
|
|
27
|
-
this.subproofOrProofAssertions = subproofOrProofAssertions;
|
|
28
|
-
this.metaLevelSubstitutions = metaLevelSubstitutions;
|
|
29
|
-
}
|
|
30
|
-
getVariables() {
|
|
31
|
-
let variables;
|
|
32
|
-
const context = this.getContext();
|
|
33
|
-
variables = context.getVariables();
|
|
34
|
-
variables = [
|
|
35
|
-
...this.variables,
|
|
36
|
-
...variables
|
|
37
|
-
];
|
|
38
|
-
return variables;
|
|
39
|
-
}
|
|
40
|
-
getJudgements() {
|
|
41
|
-
let judgements;
|
|
42
|
-
const context = this.getContext();
|
|
43
|
-
judgements = context.getJudgements();
|
|
44
|
-
judgements = [
|
|
45
|
-
...this.judgements,
|
|
46
|
-
...judgements
|
|
47
|
-
];
|
|
48
|
-
return judgements;
|
|
49
|
-
}
|
|
50
|
-
getAssignments() {
|
|
51
|
-
return this.assignments;
|
|
52
|
-
}
|
|
53
|
-
getEquivalences() {
|
|
54
|
-
let equivalences;
|
|
55
|
-
let context;
|
|
56
|
-
context = this.getContext();
|
|
57
|
-
equivalences = context.getEquivalences();
|
|
58
|
-
context = this; ///
|
|
59
|
-
equivalences = this.equivalences.mergedWith(equivalences, context); ///
|
|
60
|
-
return equivalences;
|
|
61
|
-
}
|
|
62
|
-
getSubproofOrProofAssertions() {
|
|
63
|
-
let subproofOrProofAssertions;
|
|
64
|
-
const context = this.getContext();
|
|
65
|
-
subproofOrProofAssertions = context.getSubproofOrProofAssertions();
|
|
66
|
-
subproofOrProofAssertions = [
|
|
67
|
-
...subproofOrProofAssertions,
|
|
68
|
-
...this.subproofOrProofAssertions
|
|
69
|
-
];
|
|
70
|
-
return subproofOrProofAssertions;
|
|
71
|
-
}
|
|
72
|
-
getMetaLevelSubstitutions() {
|
|
73
|
-
return this.metaLevelSubstitutions;
|
|
74
|
-
}
|
|
75
|
-
getProofAssertions() {
|
|
76
|
-
const subproofOrProofAssertions = this.getSubproofOrProofAssertions(), proofAssertions = subproofOrProofAssertions.filter((subproofOrProofAssertion)=>{
|
|
77
|
-
const subproofOrProofAssertionproofAssertion = subproofOrProofAssertion.isProofAssertion();
|
|
78
|
-
if (subproofOrProofAssertionproofAssertion) {
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
return proofAssertions;
|
|
83
|
-
}
|
|
84
|
-
getLastStep() {
|
|
85
|
-
let lastStep = null;
|
|
86
|
-
const proofAssertions = this.getProofAssertions(), proofAssertionsLength = proofAssertions.length;
|
|
87
|
-
if (proofAssertionsLength > 0) {
|
|
88
|
-
const lastProofAssertion = last(proofAssertions);
|
|
89
|
-
lastStep = lastProofAssertion; ///
|
|
90
|
-
}
|
|
91
|
-
return lastStep;
|
|
92
|
-
}
|
|
93
|
-
hasMetaLevelSubstitutions() {
|
|
94
|
-
let metaLevelSubstitutions;
|
|
95
|
-
if (this.metaLevelSubstitutions !== null) {
|
|
96
|
-
metaLevelSubstitutions = true;
|
|
97
|
-
} else {
|
|
98
|
-
const context = this.getContext();
|
|
99
|
-
metaLevelSubstitutions = context.hasMetaLevelSubstitutions();
|
|
100
|
-
}
|
|
101
|
-
return metaLevelSubstitutions;
|
|
102
|
-
}
|
|
103
|
-
addEquality(equality) {
|
|
104
|
-
const context = this, equalityString = equality.getString();
|
|
105
|
-
context.trace(`Adding the '${equalityString}' equality to the scoped context...`);
|
|
106
|
-
const equalityRelfexive = equality.isReflexive();
|
|
107
|
-
if (!equalityRelfexive) {
|
|
108
|
-
const { Equivalence } = _elements.default, equivalence = Equivalence.fromEquality(equality, context);
|
|
109
|
-
this.equivalences = this.equivalences.mergedWithEquivalence(equivalence, context);
|
|
110
|
-
context.debug(`...added the '${equalityString}' equality to the scoped context.`);
|
|
111
|
-
} else {
|
|
112
|
-
context.debug(`The '${equalityString}' equality is reflexive and will not added to the scoped context.`);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
addVariable(variable) {
|
|
116
|
-
const context = this, variableString = variable.getString();
|
|
117
|
-
context.trace(`Adding the '${variableString}' variable to the scoped context...`);
|
|
118
|
-
this.variables.push(variable);
|
|
119
|
-
context.debug(`...added the '${variableString}' variable to the scoped context.`);
|
|
120
|
-
}
|
|
121
|
-
addJudgement(judgement) {
|
|
122
|
-
const context = this, judgementString = judgement.getString();
|
|
123
|
-
context.trace(`Adding the '${judgementString}' judgement to the scoped context...`);
|
|
124
|
-
this.judgements.push(judgement);
|
|
125
|
-
context.debug(`...added the '${judgementString}' judgement to the scoped context.`);
|
|
126
|
-
}
|
|
127
|
-
addAssignment(assignment) {
|
|
128
|
-
this.assignments.push(assignment);
|
|
129
|
-
}
|
|
130
|
-
addSubproofOrProofAssertion(subproofOrProofAssertion) {
|
|
131
|
-
const context = this, subproofOrProofAssertionString = subproofOrProofAssertion.getString();
|
|
132
|
-
context.trace(`Adding the '${subproofOrProofAssertionString}' subproof or proof assertion to the scoped context...`);
|
|
133
|
-
this.subproofOrProofAssertions.push(subproofOrProofAssertion);
|
|
134
|
-
context.debug(`...added the '${subproofOrProofAssertionString}' subproof or proof assertion to the scoped context.`);
|
|
135
|
-
}
|
|
136
|
-
addMetaLevelSubstitution(metaLevelSubstitution) {
|
|
137
|
-
if (this.metaLevelSubstitutions === null) {
|
|
138
|
-
super.addMetaLevelSubstitution(metaLevelSubstitution);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const context = this, metaLevelSubstitutionA = metaLevelSubstitution, metaLevelSubstitutionString = metaLevelSubstitution.getString();
|
|
142
|
-
context.trace(`Adding the '${metaLevelSubstitutionString}' meta-level substitution to the scoped context...`);
|
|
143
|
-
const metaLevelSubstitutionB = this.metaLevelSubstitutions.find((metaLevelSubstitution)=>{
|
|
144
|
-
const metaLevelSubstitutionB = metaLevelSubstitution, metaLevelSubstitutionAEqualToMetaLevelSubstitutionB = metaLevelSubstitutionA.isEqualTo(metaLevelSubstitutionB);
|
|
145
|
-
if (metaLevelSubstitutionAEqualToMetaLevelSubstitutionB) {
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
}) || null;
|
|
149
|
-
if (metaLevelSubstitutionB !== null) {
|
|
150
|
-
context.debug(`The '${metaLevelSubstitutionString}' meta-level substitution has already been added to the scoped context.`);
|
|
151
|
-
} else {
|
|
152
|
-
this.metaLevelSubstitutions.push(metaLevelSubstitution);
|
|
153
|
-
context.debug(`...added the '${metaLevelSubstitutionString}' substitution to the scoped context.`);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
assignAssignments() {
|
|
157
|
-
const context = this; ///
|
|
158
|
-
this.assignments.forEach((assignment)=>{
|
|
159
|
-
assignment(context);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
findEquivalenceByTerm(term) {
|
|
163
|
-
return this.equivalences.findEquivalenceByTerm(term);
|
|
164
|
-
}
|
|
165
|
-
findJudgementByMetavariableName(metavariableName) {
|
|
166
|
-
const judgements = this.getJudgements(), judgement = judgements.find((judgement)=>{
|
|
167
|
-
const judgementMetavariableComparesToMetavariable = judgement.compareMetavariableName(metavariableName);
|
|
168
|
-
if (judgementMetavariableComparesToMetavariable) {
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
}) || null;
|
|
172
|
-
return judgement;
|
|
173
|
-
}
|
|
174
|
-
findVariableByVariableIdentifier(variableIdentifier) {
|
|
175
|
-
const variables = this.getVariables(), variable = variables.find((variable)=>{
|
|
176
|
-
const variableComparesToVariableIdentifier = variable.compareVariableIdentifier(variableIdentifier);
|
|
177
|
-
if (variableComparesToVariableIdentifier) {
|
|
178
|
-
return true;
|
|
179
|
-
}
|
|
180
|
-
}) || null;
|
|
181
|
-
return variable;
|
|
182
|
-
}
|
|
183
|
-
findMetaLevelSubstitutionByMetaLevelSubstitutionNode(metaLevelSubstitutionNode) {
|
|
184
|
-
let metaLevelSubstitution;
|
|
185
|
-
if (this.metaLevelSubstitutions === null) {
|
|
186
|
-
metaLevelSubstitution = super.findMetaLevelSubstitutionByMetaLevelSubstitutionNode(metaLevelSubstitutionNode);
|
|
187
|
-
} else {
|
|
188
|
-
metaLevelSubstitution = this.metaLevelSubstitutions.find((metaLevelSubstitution)=>{
|
|
189
|
-
const metaLevelSubstitutionNodeMatches = metaLevelSubstitution.matchMetaLevelSubstitutionNode(metaLevelSubstitutionNode);
|
|
190
|
-
if (metaLevelSubstitutionNodeMatches) {
|
|
191
|
-
return true;
|
|
192
|
-
}
|
|
193
|
-
}) || null;
|
|
194
|
-
}
|
|
195
|
-
return metaLevelSubstitution;
|
|
196
|
-
}
|
|
197
|
-
isTermGrounded(term) {
|
|
198
|
-
const context = this, equivalences = this.getEquivalences(), groundedTerms = [], definedVariables = [];
|
|
199
|
-
equivalences.separateGroundedTermsAndDefinedVariables(groundedTerms, definedVariables, context);
|
|
200
|
-
const termMatchesGroundedTerm = groundedTerms.some((groundedTerm)=>{
|
|
201
|
-
const groundedTermNode = groundedTerm.getNode(), groundedTermNodeMatches = term.matchTermNode(groundedTermNode);
|
|
202
|
-
if (groundedTermNodeMatches) {
|
|
203
|
-
return true;
|
|
204
|
-
}
|
|
205
|
-
}), termGrounded = termMatchesGroundedTerm; ///
|
|
206
|
-
return termGrounded;
|
|
207
|
-
}
|
|
208
|
-
isJudgementPresentByMetavariableName(metavariableName) {
|
|
209
|
-
const judgement = this.findJudgementByMetavariableName(metavariableName), judgementPresent = judgement !== null;
|
|
210
|
-
return judgementPresent;
|
|
211
|
-
}
|
|
212
|
-
isVariablePresentByVariableIdentifier(variableIdentifier) {
|
|
213
|
-
const variable = this.findVariableByVariableIdentifier(variableIdentifier), variablePresent = variable !== null;
|
|
214
|
-
return variablePresent;
|
|
215
|
-
}
|
|
216
|
-
compareTermAndPropertyRelation(term, propertyRelation) {
|
|
217
|
-
const context = this, proofAssertions = this.getProofAssertions(), comparesToTermAndPropertyRelation = proofAssertions.some((proofAssertion)=>{
|
|
218
|
-
const comparesToTermAndPropertyRelation = proofAssertion.compareTermAndPropertyRelation(term, propertyRelation, context);
|
|
219
|
-
if (comparesToTermAndPropertyRelation) {
|
|
220
|
-
return true;
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
return comparesToTermAndPropertyRelation;
|
|
224
|
-
}
|
|
225
|
-
static fromMetaLevelSubstitutions(metaLevelSubstitutions, context) {
|
|
226
|
-
const { Equivalences } = _elements.default, variables = [], judgements = [], assignments = [], equivalences = Equivalences.fromNothing(context), subproofOrProofAssertions = [], scopedContext = new ScopedContext(context, variables, judgements, assignments, equivalences, subproofOrProofAssertions, metaLevelSubstitutions);
|
|
227
|
-
return scopedContext;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
const _default = ScopedContext;
|
|
231
|
-
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3Njb3BlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0XCI7XG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNsYXNzIFNjb3BlZENvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzLCBqdWRnZW1lbnRzLCBhc3NpZ25tZW50cywgZXF1aXZhbGVuY2VzLCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgICB0aGlzLmp1ZGdlbWVudHMgPSBqdWRnZW1lbnRzO1xuICAgIHRoaXMuYXNzaWdubWVudHMgPSBhc3NpZ25tZW50cztcbiAgICB0aGlzLmVxdWl2YWxlbmNlcyA9IGVxdWl2YWxlbmNlcztcbiAgICB0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuICAgIHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBnZXRWYXJpYWJsZXMoKSB7XG4gICAgbGV0IHZhcmlhYmxlcztcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKCk7XG5cbiAgICB2YXJpYWJsZXMgPSBbXG4gICAgICAuLi50aGlzLnZhcmlhYmxlcyxcbiAgICAgIC4uLnZhcmlhYmxlc1xuICAgIF07XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0SnVkZ2VtZW50cygpIHtcbiAgICBsZXQganVkZ2VtZW50cztcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGp1ZGdlbWVudHMgPSBjb250ZXh0LmdldEp1ZGdlbWVudHMoKTtcblxuICAgIGp1ZGdlbWVudHMgPSBbIC8vL1xuICAgICAgLi4udGhpcy5qdWRnZW1lbnRzLFxuICAgICAgLi4uanVkZ2VtZW50c1xuICAgIF1cblxuICAgIHJldHVybiBqdWRnZW1lbnRzO1xuICB9XG5cbiAgZ2V0QXNzaWdubWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWdubWVudHM7XG4gIH1cblxuICBnZXRFcXVpdmFsZW5jZXMoKSB7XG4gICAgbGV0IGVxdWl2YWxlbmNlcztcblxuICAgIGxldCBjb250ZXh0O1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgZXF1aXZhbGVuY2VzID0gY29udGV4dC5nZXRFcXVpdmFsZW5jZXMoKTtcblxuICAgIGNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgIGVxdWl2YWxlbmNlcyA9IHRoaXMuZXF1aXZhbGVuY2VzLm1lcmdlZFdpdGgoZXF1aXZhbGVuY2VzLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlcztcbiAgfVxuXG4gIGdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMoKSB7XG4gICAgbGV0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnM7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zID0gY29udGV4dC5nZXRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKCk7XG5cbiAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zID0gWyAgLy8vXG4gICAgICAuLi5zdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLFxuICAgICAgLi4udGhpcy5zdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zXG4gICAgXTtcblxuICAgIHJldHVybiBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuICB9XG5cbiAgZ2V0TWV0YUxldmVsU3Vic3RpdHV0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhTGV2ZWxTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0UHJvb2ZBc3NlcnRpb25zKCkge1xuICAgIGNvbnN0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMgPSB0aGlzLmdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMoKSxcbiAgICAgICAgICBwcm9vZkFzc2VydGlvbnMgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLmZpbHRlcigoc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25wcm9vZkFzc2VydGlvbiA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbi5pc1Byb29mQXNzZXJ0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25wcm9vZkFzc2VydGlvbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBwcm9vZkFzc2VydGlvbnM7XG4gIH1cblxuICBnZXRMYXN0U3RlcCgpIHtcbiAgICBsZXQgbGFzdFN0ZXAgPSBudWxsO1xuXG4gICAgY29uc3QgcHJvb2ZBc3NlcnRpb25zID0gdGhpcy5nZXRQcm9vZkFzc2VydGlvbnMoKSxcbiAgICAgICAgICBwcm9vZkFzc2VydGlvbnNMZW5ndGggPSBwcm9vZkFzc2VydGlvbnMubGVuZ3RoO1xuXG4gICAgaWYgKHByb29mQXNzZXJ0aW9uc0xlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxhc3RQcm9vZkFzc2VydGlvbiA9IGxhc3QocHJvb2ZBc3NlcnRpb25zKTtcblxuICAgICAgbGFzdFN0ZXAgPSBsYXN0UHJvb2ZBc3NlcnRpb247ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gbGFzdFN0ZXA7XG4gIH1cblxuICBoYXNNZXRhTGV2ZWxTdWJzdGl0dXRpb25zKCkge1xuICAgIGxldCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zO1xuXG4gICAgaWYgKHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IGNvbnRleHQuaGFzTWV0YUxldmVsU3Vic3RpdHV0aW9ucygpO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgYWRkRXF1YWxpdHkoZXF1YWxpdHkpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgZXF1YWxpdHlTdHJpbmcgPSBlcXVhbGl0eS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eSB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5UmVsZmV4aXZlID0gZXF1YWxpdHkuaXNSZWZsZXhpdmUoKTtcblxuICAgIGlmICghZXF1YWxpdHlSZWxmZXhpdmUpIHtcbiAgICAgIGNvbnN0IHsgRXF1aXZhbGVuY2UgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgZXF1aXZhbGVuY2UgPSBFcXVpdmFsZW5jZS5mcm9tRXF1YWxpdHkoZXF1YWxpdHksIGNvbnRleHQpO1xuXG4gICAgICB0aGlzLmVxdWl2YWxlbmNlcyA9IHRoaXMuZXF1aXZhbGVuY2VzLm1lcmdlZFdpdGhFcXVpdmFsZW5jZShlcXVpdmFsZW5jZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmFkZGVkIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGVxdWFsaXR5IHRvIHRoZSBzY29wZWQgY29udGV4dC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkgaXMgcmVmbGV4aXZlIGFuZCB3aWxsIG5vdCBhZGRlZCB0byB0aGUgc2NvcGVkIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIHNjb3BlZCBjb250ZXh0LmApO1xuICB9XG5cbiAgYWRkSnVkZ2VtZW50KGp1ZGdlbWVudCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICBqdWRnZW1lbnRTdHJpbmcgPSBqdWRnZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBBZGRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIHRoaXMuanVkZ2VtZW50cy5wdXNoKGp1ZGdlbWVudCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5hZGRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IHRvIHRoZSBzY29wZWQgY29udGV4dC5gKTtcbiAgfVxuXG4gIGFkZEFzc2lnbm1lbnQoYXNzaWdubWVudCkge1xuICAgIHRoaXMuYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcbiAgfVxuXG4gIGFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbihzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uU3RyaW5nID0gc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkaW5nIHRoZSAnJHtzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBvciBwcm9vZiBhc3NlcnRpb24gdG8gdGhlIHNjb3BlZCBjb250ZXh0Li4uYCk7XG5cbiAgICB0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMucHVzaChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYWRkZWQgdGhlICcke3N1YnByb29mT3JQcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIG9yIHByb29mIGFzc2VydGlvbiB0byB0aGUgc2NvcGVkIGNvbnRleHQuYCk7XG4gIH1cblxuICBhZGRNZXRhTGV2ZWxTdWJzdGl0dXRpb24obWV0YUxldmVsU3Vic3RpdHV0aW9uKSB7XG4gICAgaWYgKHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9PT0gbnVsbCkge1xuICAgICAgc3VwZXIuYWRkTWV0YUxldmVsU3Vic3RpdHV0aW9uKG1ldGFMZXZlbFN1YnN0aXR1dGlvbik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uQSA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkaW5nIHRoZSAnJHttZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmd9JyBtZXRhLWxldmVsIHN1YnN0aXR1dGlvbiB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIGNvbnN0IG1ldGFMZXZlbFN1YnN0aXR1dGlvbkIgPSB0aGlzLm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMuZmluZCgobWV0YUxldmVsU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25CID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbkFFcXVhbFRvTWV0YUxldmVsU3Vic3RpdHV0aW9uQiA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbkEuaXNFcXVhbFRvKG1ldGFMZXZlbFN1YnN0aXR1dGlvbkIpO1xuXG4gICAgICBpZiAobWV0YUxldmVsU3Vic3RpdHV0aW9uQUVxdWFsVG9NZXRhTGV2ZWxTdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAobWV0YUxldmVsU3Vic3RpdHV0aW9uQiAhPT0gbnVsbCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ30nIG1ldGEtbGV2ZWwgc3Vic3RpdHV0aW9uIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIHNjb3BlZCBjb250ZXh0LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMucHVzaChtZXRhTGV2ZWxTdWJzdGl0dXRpb24pO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5hZGRlZCB0aGUgJyR7bWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uIHRvIHRoZSBzY29wZWQgY29udGV4dC5gKTtcbiAgICB9XG4gIH1cblxuICBhc3NpZ25Bc3NpZ25tZW50cygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICB0aGlzLmFzc2lnbm1lbnRzLmZvckVhY2goKGFzc2lnbm1lbnQpID0+IHtcbiAgICAgIGFzc2lnbm1lbnQoY29udGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBmaW5kRXF1aXZhbGVuY2VCeVRlcm0odGVybSkgeyByZXR1cm4gdGhpcy5lcXVpdmFsZW5jZXMuZmluZEVxdWl2YWxlbmNlQnlUZXJtKHRlcm0pOyB9XG5cbiAgZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QganVkZ2VtZW50cyA9IHRoaXMuZ2V0SnVkZ2VtZW50cygpLFxuICAgICAgICAgIGp1ZGdlbWVudCA9IGp1ZGdlbWVudHMuZmluZCgoanVkZ2VtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBqdWRnZW1lbnRNZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlID0ganVkZ2VtZW50LmNvbXBhcmVNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAoanVkZ2VtZW50TWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGp1ZGdlbWVudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlSWRlbnRpZmllciA9IHZhcmlhYmxlLmNvbXBhcmVWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgZmluZE1ldGFMZXZlbFN1YnN0aXR1dGlvbkJ5TWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZShtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgbGV0IG1ldGFMZXZlbFN1YnN0aXR1dGlvbjtcblxuICAgIGlmICh0aGlzLm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMgPT09IG51bGwpIHtcbiAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbiA9IHN1cGVyLmZpbmRNZXRhTGV2ZWxTdWJzdGl0dXRpb25CeU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUobWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbiA9IHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucy5maW5kKChtZXRhTGV2ZWxTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBtZXRhTGV2ZWxTdWJzdGl0dXRpb24ubWF0Y2hNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUpO1xuXG4gICAgICAgIGlmIChtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KSB8fCBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb247XG4gIH1cblxuICBpc1Rlcm1Hcm91bmRlZCh0ZXJtKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGVxdWl2YWxlbmNlcyA9IHRoaXMuZ2V0RXF1aXZhbGVuY2VzKCksXG4gICAgICAgICAgZ3JvdW5kZWRUZXJtcyA9IFtdLFxuICAgICAgICAgIGRlZmluZWRWYXJpYWJsZXMgPSBbXTtcblxuICAgIGVxdWl2YWxlbmNlcy5zZXBhcmF0ZUdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdGVybU1hdGNoZXNHcm91bmRlZFRlcm0gPSBncm91bmRlZFRlcm1zLnNvbWUoKGdyb3VuZGVkVGVybSkgPT4ge1xuICAgICAgICBjb25zdCBncm91bmRlZFRlcm1Ob2RlID0gZ3JvdW5kZWRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICAgICAgZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMgPSB0ZXJtLm1hdGNoVGVybU5vZGUoZ3JvdW5kZWRUZXJtTm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChncm91bmRlZFRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0ZXJtR3JvdW5kZWQgPSB0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybTsgLy8vXG5cbiAgICByZXR1cm4gdGVybUdyb3VuZGVkO1xuICB9XG5cbiAgaXNKdWRnZW1lbnRQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBqdWRnZW1lbnQgPSB0aGlzLmZpbmRKdWRnZW1lbnRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSksXG4gICAgICAgICAganVkZ2VtZW50UHJlc2VudCA9IChqdWRnZW1lbnQgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGp1ZGdlbWVudFByZXNlbnQ7XG4gIH1cblxuICBpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcy5maW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpLFxuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9ICh2YXJpYWJsZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVQcmVzZW50O1xuICB9XG5cbiAgY29tcGFyZVRlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uKHRlcm0sIHByb3BlcnR5UmVsYXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25zID0gdGhpcy5nZXRQcm9vZkFzc2VydGlvbnMoKSxcbiAgICAgICAgICBjb21wYXJlc1RvVGVybUFuZFByb3BlcnR5UmVsYXRpb24gPSBwcm9vZkFzc2VydGlvbnMuc29tZSgocHJvb2ZBc3NlcnRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVzVG9UZXJtQW5kUHJvcGVydHlSZWxhdGlvbiA9IHByb29mQXNzZXJ0aW9uLmNvbXBhcmVUZXJtQW5kUHJvcGVydHlSZWxhdGlvbih0ZXJtLCBwcm9wZXJ0eVJlbGF0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKGNvbXBhcmVzVG9UZXJtQW5kUHJvcGVydHlSZWxhdGlvbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVGVybUFuZFByb3BlcnR5UmVsYXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFMZXZlbFN1YnN0aXR1dGlvbnMobWV0YUxldmVsU3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGNvbnN0IHsgRXF1aXZhbGVuY2VzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBqdWRnZW1lbnRzID0gW10sXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICBlcXVpdmFsZW5jZXMgPSBFcXVpdmFsZW5jZXMuZnJvbU5vdGhpbmcoY29udGV4dCksXG4gICAgICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgIHNjb3BlZENvbnRleHQgPSBuZXcgU2NvcGVkQ29udGV4dChjb250ZXh0LCB2YXJpYWJsZXMsIGp1ZGdlbWVudHMsIGFzc2lnbm1lbnRzLCBlcXVpdmFsZW5jZXMsIHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIG1ldGFMZXZlbFN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIHNjb3BlZENvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2NvcGVkQ29udGV4dDsiXSwibmFtZXMiOlsibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiU2NvcGVkQ29udGV4dCIsIkNvbnRleHQiLCJjb250ZXh0IiwidmFyaWFibGVzIiwianVkZ2VtZW50cyIsImFzc2lnbm1lbnRzIiwiZXF1aXZhbGVuY2VzIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMiLCJnZXRWYXJpYWJsZXMiLCJnZXRDb250ZXh0IiwiZ2V0SnVkZ2VtZW50cyIsImdldEFzc2lnbm1lbnRzIiwiZ2V0RXF1aXZhbGVuY2VzIiwibWVyZ2VkV2l0aCIsImdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMiLCJnZXRNZXRhTGV2ZWxTdWJzdGl0dXRpb25zIiwiZ2V0UHJvb2ZBc3NlcnRpb25zIiwicHJvb2ZBc3NlcnRpb25zIiwiZmlsdGVyIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucHJvb2ZBc3NlcnRpb24iLCJpc1Byb29mQXNzZXJ0aW9uIiwiZ2V0TGFzdFN0ZXAiLCJsYXN0U3RlcCIsInByb29mQXNzZXJ0aW9uc0xlbmd0aCIsImxlbmd0aCIsImxhc3RQcm9vZkFzc2VydGlvbiIsImhhc01ldGFMZXZlbFN1YnN0aXR1dGlvbnMiLCJhZGRFcXVhbGl0eSIsImVxdWFsaXR5IiwiZXF1YWxpdHlTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImVxdWFsaXR5UmVsZmV4aXZlIiwiaXNSZWZsZXhpdmUiLCJFcXVpdmFsZW5jZSIsImVsZW1lbnRzIiwiZXF1aXZhbGVuY2UiLCJmcm9tRXF1YWxpdHkiLCJtZXJnZWRXaXRoRXF1aXZhbGVuY2UiLCJkZWJ1ZyIsImFkZFZhcmlhYmxlIiwidmFyaWFibGUiLCJ2YXJpYWJsZVN0cmluZyIsInB1c2giLCJhZGRKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnRTdHJpbmciLCJhZGRBc3NpZ25tZW50IiwiYXNzaWdubWVudCIsImFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvblN0cmluZyIsImFkZE1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbkEiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmciLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25CIiwiZmluZCIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbkFFcXVhbFRvTWV0YUxldmVsU3Vic3RpdHV0aW9uQiIsImlzRXF1YWxUbyIsImFzc2lnbkFzc2lnbm1lbnRzIiwiZm9yRWFjaCIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybSIsInRlcm0iLCJmaW5kSnVkZ2VtZW50QnlNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZSIsImp1ZGdlbWVudE1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUiLCJjb21wYXJlTWV0YXZhcmlhYmxlTmFtZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVDb21wYXJlc1RvVmFyaWFibGVJZGVudGlmaWVyIiwiY29tcGFyZVZhcmlhYmxlSWRlbnRpZmllciIsImZpbmRNZXRhTGV2ZWxTdWJzdGl0dXRpb25CeU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIiwibWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJpc1Rlcm1Hcm91bmRlZCIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwic2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyIsInRlcm1NYXRjaGVzR3JvdW5kZWRUZXJtIiwic29tZSIsImdyb3VuZGVkVGVybSIsImdyb3VuZGVkVGVybU5vZGUiLCJnZXROb2RlIiwiZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlIiwidGVybUdyb3VuZGVkIiwiaXNKdWRnZW1lbnRQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lIiwianVkZ2VtZW50UHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ2YXJpYWJsZVByZXNlbnQiLCJjb21wYXJlVGVybUFuZFByb3BlcnR5UmVsYXRpb24iLCJwcm9wZXJ0eVJlbGF0aW9uIiwiY29tcGFyZXNUb1Rlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJmcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9ucyIsIkVxdWl2YWxlbmNlcyIsImZyb21Ob3RoaW5nIiwic2NvcGVkQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ1ZBOzs7ZUFBQTs7OzJCQTlVK0I7Z0VBRVg7aUVBQ0M7Ozs7OztBQUVyQixNQUFNLEVBQUVBLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUUvQixNQUFNQyxzQkFBc0JDLGdCQUFPO0lBQ2pDLFlBQVlDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyx5QkFBeUIsRUFBRUMsc0JBQXNCLENBQUU7UUFDeEgsS0FBSyxDQUFDTjtRQUVOLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLHlCQUF5QixHQUFHQTtRQUNqQyxJQUFJLENBQUNDLHNCQUFzQixHQUFHQTtJQUNoQztJQUVBQyxlQUFlO1FBQ2IsSUFBSU47UUFFSixNQUFNRCxVQUFVLElBQUksQ0FBQ1EsVUFBVTtRQUUvQlAsWUFBWUQsUUFBUU8sWUFBWTtRQUVoQ04sWUFBWTtlQUNQLElBQUksQ0FBQ0EsU0FBUztlQUNkQTtTQUNKO1FBRUQsT0FBT0E7SUFDVDtJQUVBUSxnQkFBZ0I7UUFDZCxJQUFJUDtRQUVKLE1BQU1GLFVBQVUsSUFBSSxDQUFDUSxVQUFVO1FBRS9CTixhQUFhRixRQUFRUyxhQUFhO1FBRWxDUCxhQUFhO2VBQ1IsSUFBSSxDQUFDQSxVQUFVO2VBQ2ZBO1NBQ0o7UUFFRCxPQUFPQTtJQUNUO0lBRUFRLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDUCxXQUFXO0lBQ3pCO0lBRUFRLGtCQUFrQjtRQUNoQixJQUFJUDtRQUVKLElBQUlKO1FBRUpBLFVBQVUsSUFBSSxDQUFDUSxVQUFVO1FBRXpCSixlQUFlSixRQUFRVyxlQUFlO1FBRXRDWCxVQUFVLElBQUksRUFBRSxHQUFHO1FBRW5CSSxlQUFlLElBQUksQ0FBQ0EsWUFBWSxDQUFDUSxVQUFVLENBQUNSLGNBQWNKLFVBQVcsR0FBRztRQUV4RSxPQUFPSTtJQUNUO0lBRUFTLCtCQUErQjtRQUM3QixJQUFJUjtRQUVKLE1BQU1MLFVBQVUsSUFBSSxDQUFDUSxVQUFVO1FBRS9CSCw0QkFBNEJMLFFBQVFhLDRCQUE0QjtRQUVoRVIsNEJBQTRCO2VBQ3ZCQTtlQUNBLElBQUksQ0FBQ0EseUJBQXlCO1NBQ2xDO1FBRUQsT0FBT0E7SUFDVDtJQUVBUyw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLENBQUNSLHNCQUFzQjtJQUNwQztJQUVBUyxxQkFBcUI7UUFDbkIsTUFBTVYsNEJBQTRCLElBQUksQ0FBQ1EsNEJBQTRCLElBQzdERyxrQkFBa0JYLDBCQUEwQlksTUFBTSxDQUFDLENBQUNDO1lBQ2xELE1BQU1DLHlDQUF5Q0QseUJBQXlCRSxnQkFBZ0I7WUFFeEYsSUFBSUQsd0NBQXdDO2dCQUMxQyxPQUFPO1lBQ1Q7UUFDRjtRQUVOLE9BQU9IO0lBQ1Q7SUFFQUssY0FBYztRQUNaLElBQUlDLFdBQVc7UUFFZixNQUFNTixrQkFBa0IsSUFBSSxDQUFDRCxrQkFBa0IsSUFDekNRLHdCQUF3QlAsZ0JBQWdCUSxNQUFNO1FBRXBELElBQUlELHdCQUF3QixHQUFHO1lBQzdCLE1BQU1FLHFCQUFxQjdCLEtBQUtvQjtZQUVoQ00sV0FBV0csb0JBQXFCLEdBQUc7UUFDckM7UUFFQSxPQUFPSDtJQUNUO0lBRUFJLDRCQUE0QjtRQUMxQixJQUFJcEI7UUFFSixJQUFJLElBQUksQ0FBQ0Esc0JBQXNCLEtBQUssTUFBTTtZQUN4Q0EseUJBQXlCO1FBQzNCLE9BQU87WUFDTCxNQUFNTixVQUFVLElBQUksQ0FBQ1EsVUFBVTtZQUUvQkYseUJBQXlCTixRQUFRMEIseUJBQXlCO1FBQzVEO1FBRUEsT0FBT3BCO0lBQ1Q7SUFFQXFCLFlBQVlDLFFBQVEsRUFBRTtRQUNwQixNQUFNNUIsVUFBVSxJQUFJLEVBQ2Q2QixpQkFBaUJELFNBQVNFLFNBQVM7UUFFekM5QixRQUFRK0IsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFRixlQUFlLG1DQUFtQyxDQUFDO1FBRWhGLE1BQU1HLG9CQUFvQkosU0FBU0ssV0FBVztRQUU5QyxJQUFJLENBQUNELG1CQUFtQjtZQUN0QixNQUFNLEVBQUVFLFdBQVcsRUFBRSxHQUFHQyxpQkFBUSxFQUMxQkMsY0FBY0YsWUFBWUcsWUFBWSxDQUFDVCxVQUFVNUI7WUFFdkQsSUFBSSxDQUFDSSxZQUFZLEdBQUcsSUFBSSxDQUFDQSxZQUFZLENBQUNrQyxxQkFBcUIsQ0FBQ0YsYUFBYXBDO1lBRXpFQSxRQUFRdUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFVixlQUFlLGlDQUFpQyxDQUFDO1FBQ2xGLE9BQU87WUFDTDdCLFFBQVF1QyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUVWLGVBQWUsaUVBQWlFLENBQUM7UUFDekc7SUFDRjtJQUVBVyxZQUFZQyxRQUFRLEVBQUU7UUFDcEIsTUFBTXpDLFVBQVUsSUFBSSxFQUNkMEMsaUJBQWlCRCxTQUFTWCxTQUFTO1FBRXpDOUIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRVcsZUFBZSxtQ0FBbUMsQ0FBQztRQUVoRixJQUFJLENBQUN6QyxTQUFTLENBQUMwQyxJQUFJLENBQUNGO1FBRXBCekMsUUFBUXVDLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRUcsZUFBZSxpQ0FBaUMsQ0FBQztJQUNsRjtJQUVBRSxhQUFhQyxTQUFTLEVBQUU7UUFDdEIsTUFBTTdDLFVBQVUsSUFBSSxFQUNkOEMsa0JBQWtCRCxVQUFVZixTQUFTO1FBRTNDOUIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRWUsZ0JBQWdCLG9DQUFvQyxDQUFDO1FBRWxGLElBQUksQ0FBQzVDLFVBQVUsQ0FBQ3lDLElBQUksQ0FBQ0U7UUFFckI3QyxRQUFRdUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFTyxnQkFBZ0Isa0NBQWtDLENBQUM7SUFDcEY7SUFFQUMsY0FBY0MsVUFBVSxFQUFFO1FBQ3hCLElBQUksQ0FBQzdDLFdBQVcsQ0FBQ3dDLElBQUksQ0FBQ0s7SUFDeEI7SUFFQUMsNEJBQTRCL0Isd0JBQXdCLEVBQUU7UUFDcEQsTUFBTWxCLFVBQVUsSUFBSSxFQUNka0QsaUNBQWlDaEMseUJBQXlCWSxTQUFTO1FBRXpFOUIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRW1CLCtCQUErQixzREFBc0QsQ0FBQztRQUVuSCxJQUFJLENBQUM3Qyx5QkFBeUIsQ0FBQ3NDLElBQUksQ0FBQ3pCO1FBRXBDbEIsUUFBUXVDLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRVcsK0JBQStCLG9EQUFvRCxDQUFDO0lBQ3JIO0lBRUFDLHlCQUF5QkMscUJBQXFCLEVBQUU7UUFDOUMsSUFBSSxJQUFJLENBQUM5QyxzQkFBc0IsS0FBSyxNQUFNO1lBQ3hDLEtBQUssQ0FBQzZDLHlCQUF5QkM7WUFFL0I7UUFDRjtRQUVBLE1BQU1wRCxVQUFVLElBQUksRUFDZHFELHlCQUF5QkQsdUJBQ3pCRSw4QkFBOEJGLHNCQUFzQnRCLFNBQVM7UUFFbkU5QixRQUFRK0IsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFdUIsNEJBQTRCLGtEQUFrRCxDQUFDO1FBRTVHLE1BQU1DLHlCQUF5QixJQUFJLENBQUNqRCxzQkFBc0IsQ0FBQ2tELElBQUksQ0FBQyxDQUFDSjtZQUMvRCxNQUFNRyx5QkFBeUJILHVCQUN6Qkssc0RBQXNESix1QkFBdUJLLFNBQVMsQ0FBQ0g7WUFFN0YsSUFBSUUscURBQXFEO2dCQUN2RCxPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRU4sSUFBSUYsMkJBQTJCLE1BQU07WUFDbkN2RCxRQUFRdUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFZSw0QkFBNEIsdUVBQXVFLENBQUM7UUFDNUgsT0FBTztZQUNMLElBQUksQ0FBQ2hELHNCQUFzQixDQUFDcUMsSUFBSSxDQUFDUztZQUVqQ3BELFFBQVF1QyxLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUVlLDRCQUE0QixxQ0FBcUMsQ0FBQztRQUNuRztJQUNGO0lBRUFLLG9CQUFvQjtRQUNsQixNQUFNM0QsVUFBVSxJQUFJLEVBQUUsR0FBRztRQUV6QixJQUFJLENBQUNHLFdBQVcsQ0FBQ3lELE9BQU8sQ0FBQyxDQUFDWjtZQUN4QkEsV0FBV2hEO1FBQ2I7SUFDRjtJQUVBNkQsc0JBQXNCQyxJQUFJLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQzFELFlBQVksQ0FBQ3lELHFCQUFxQixDQUFDQztJQUFPO0lBRXBGQyxnQ0FBZ0NDLGdCQUFnQixFQUFFO1FBQ2hELE1BQU05RCxhQUFhLElBQUksQ0FBQ08sYUFBYSxJQUMvQm9DLFlBQVkzQyxXQUFXc0QsSUFBSSxDQUFDLENBQUNYO1lBQzNCLE1BQU1vQiw4Q0FBOENwQixVQUFVcUIsdUJBQXVCLENBQUNGO1lBRXRGLElBQUlDLDZDQUE2QztnQkFDL0MsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU9wQjtJQUNUO0lBRUFzQixpQ0FBaUNDLGtCQUFrQixFQUFFO1FBQ25ELE1BQU1uRSxZQUFZLElBQUksQ0FBQ00sWUFBWSxJQUM3QmtDLFdBQVd4QyxVQUFVdUQsSUFBSSxDQUFDLENBQUNmO1lBQ3pCLE1BQU00Qix1Q0FBdUM1QixTQUFTNkIseUJBQXlCLENBQUNGO1lBRWhGLElBQUlDLHNDQUFzQztnQkFDeEMsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU81QjtJQUNUO0lBRUE4QixxREFBcURDLHlCQUF5QixFQUFFO1FBQzlFLElBQUlwQjtRQUVKLElBQUksSUFBSSxDQUFDOUMsc0JBQXNCLEtBQUssTUFBTTtZQUN4QzhDLHdCQUF3QixLQUFLLENBQUNtQixxREFBcURDO1FBQ3JGLE9BQU87WUFDTHBCLHdCQUF3QixJQUFJLENBQUM5QyxzQkFBc0IsQ0FBQ2tELElBQUksQ0FBQyxDQUFDSjtnQkFDeEQsTUFBTXFCLG1DQUFtQ3JCLHNCQUFzQnNCLDhCQUE4QixDQUFDRjtnQkFFOUYsSUFBSUMsa0NBQWtDO29CQUNwQyxPQUFPO2dCQUNUO1lBQ0YsTUFBTTtRQUNSO1FBRUEsT0FBT3JCO0lBQ1Q7SUFFQXVCLGVBQWViLElBQUksRUFBRTtRQUNuQixNQUFNOUQsVUFBVSxJQUFJLEVBQ2RJLGVBQWUsSUFBSSxDQUFDTyxlQUFlLElBQ25DaUUsZ0JBQWdCLEVBQUUsRUFDbEJDLG1CQUFtQixFQUFFO1FBRTNCekUsYUFBYTBFLHdDQUF3QyxDQUFDRixlQUFlQyxrQkFBa0I3RTtRQUV2RixNQUFNK0UsMEJBQTBCSCxjQUFjSSxJQUFJLENBQUMsQ0FBQ0M7WUFDaEQsTUFBTUMsbUJBQW1CRCxhQUFhRSxPQUFPLElBQ3ZDQywwQkFBMEJ0QixLQUFLdUIsYUFBYSxDQUFDSDtZQUUvQyxJQUFJRSx5QkFBeUI7Z0JBQzNCLE9BQU87WUFDVDtRQUNGLElBQ0FFLGVBQWVQLHlCQUF5QixHQUFHO1FBRWpELE9BQU9PO0lBQ1Q7SUFFQUMscUNBQXFDdkIsZ0JBQWdCLEVBQUU7UUFDckQsTUFBTW5CLFlBQVksSUFBSSxDQUFDa0IsK0JBQStCLENBQUNDLG1CQUNqRHdCLG1CQUFvQjNDLGNBQWM7UUFFeEMsT0FBTzJDO0lBQ1Q7SUFFQUMsc0NBQXNDckIsa0JBQWtCLEVBQUU7UUFDeEQsTUFBTTNCLFdBQVcsSUFBSSxDQUFDMEIsZ0NBQWdDLENBQUNDLHFCQUNqRHNCLGtCQUFtQmpELGFBQWE7UUFFdEMsT0FBT2lEO0lBQ1Q7SUFFQUMsK0JBQStCN0IsSUFBSSxFQUFFOEIsZ0JBQWdCLEVBQUU7UUFDckQsTUFBTTVGLFVBQVUsSUFBSSxFQUNkZ0Isa0JBQWtCLElBQUksQ0FBQ0Qsa0JBQWtCLElBQ3pDOEUsb0NBQW9DN0UsZ0JBQWdCZ0UsSUFBSSxDQUFDLENBQUNjO1lBQ3hELE1BQU1ELG9DQUFvQ0MsZUFBZUgsOEJBQThCLENBQUM3QixNQUFNOEIsa0JBQWtCNUY7WUFFaEgsSUFBSTZGLG1DQUFtQztnQkFDckMsT0FBTztZQUNUO1FBQ0Y7UUFFTixPQUFPQTtJQUNUO0lBRUEsT0FBT0UsMkJBQTJCekYsc0JBQXNCLEVBQUVOLE9BQU8sRUFBRTtRQUNqRSxNQUFNLEVBQUVnRyxZQUFZLEVBQUUsR0FBRzdELGlCQUFRLEVBQzNCbEMsWUFBWSxFQUFFLEVBQ2RDLGFBQWEsRUFBRSxFQUNmQyxjQUFjLEVBQUUsRUFDaEJDLGVBQWU0RixhQUFhQyxXQUFXLENBQUNqRyxVQUN4Q0ssNEJBQTRCLEVBQUUsRUFDOUI2RixnQkFBZ0IsSUFBSXBHLGNBQWNFLFNBQVNDLFdBQVdDLFlBQVlDLGFBQWFDLGNBQWNDLDJCQUEyQkM7UUFFOUgsT0FBTzRGO0lBQ1Q7QUFDRjtNQUVBLFdBQWVwRyJ9
|
package/lib/utilities/term.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "variableFromTerm", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return variableFromTerm;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _element = require("../utilities/element");
|
|
12
|
-
function variableFromTerm(term, context) {
|
|
13
|
-
const termNode = term.getNode(), variable = (0, _element.variableFromTermNode)(termNode, context);
|
|
14
|
-
return variable;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgdmFyaWFibGVGcm9tVGVybU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlRnJvbVRlcm0odGVybSwgY29udGV4dCkge1xuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdmFyaWFibGU7XG59XG4iXSwibmFtZXMiOlsidmFyaWFibGVGcm9tVGVybSIsInRlcm0iLCJjb250ZXh0IiwidGVybU5vZGUiLCJnZXROb2RlIiwidmFyaWFibGUiLCJ2YXJpYWJsZUZyb21UZXJtTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSWdCQTs7O2VBQUFBOzs7eUJBRnFCO0FBRTlCLFNBQVNBLGlCQUFpQkMsSUFBSSxFQUFFQyxPQUFPO0lBQzVDLE1BQU1DLFdBQVdGLEtBQUtHLE9BQU8sSUFDdkJDLFdBQVdDLElBQUFBLDZCQUFvQixFQUFDSCxVQUFVRDtJQUVoRCxPQUFPRztBQUNUIn0=
|
package/src/utilities/term.js
DELETED