occam-verify-cli 1.0.768 → 1.0.781
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 +31 -0
- package/lib/context/proof.js +242 -0
- package/lib/context/thetic.js +28 -0
- package/lib/context.js +19 -21
- package/lib/element/assertion/contained.js +32 -24
- package/lib/element/assertion/defined.js +47 -40
- package/lib/element/assertion/property.js +18 -13
- package/lib/element/assertion/satisfies.js +12 -9
- package/lib/element/assertion/subproof.js +28 -26
- package/lib/element/assertion/type.js +14 -12
- package/lib/element/assumption.js +40 -50
- 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/equivalences.js +4 -2
- package/lib/element/frame.js +74 -53
- package/lib/element/hypothesis.js +7 -5
- package/lib/element/judgement.js +41 -74
- package/lib/element/label.js +22 -22
- package/lib/element/metavariable.js +31 -11
- package/lib/element/proofAssertion/premise.js +48 -35
- package/lib/element/proofAssertion/step.js +77 -22
- 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/string.js +12 -1
- package/lib/utilities/unification.js +14 -12
- package/lib/utilities/validation.js +55 -40
- package/package.json +4 -4
- package/src/context/file/nominal.js +14 -16
- package/src/context/illative.js +17 -0
- package/src/context/nested.js +21 -0
- package/src/context/{scoped.js → proof.js} +65 -51
- package/src/context/thetic.js +17 -0
- package/src/context.js +30 -36
- package/src/element/assertion/contained.js +44 -31
- package/src/element/assertion/defined.js +55 -46
- package/src/element/assertion/property.js +23 -15
- package/src/element/assertion/satisfies.js +15 -10
- package/src/element/assertion/subproof.js +34 -31
- package/src/element/assertion/type.js +18 -13
- package/src/element/assumption.js +40 -69
- 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/equivalences.js +5 -2
- package/src/element/frame.js +96 -65
- package/src/element/hypothesis.js +7 -6
- package/src/element/judgement.js +45 -45
- package/src/element/label.js +25 -31
- package/src/element/metavariable.js +48 -21
- package/src/element/proofAssertion/premise.js +63 -49
- package/src/element/proofAssertion/step.js +47 -26
- 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/string.js +16 -2
- package/src/utilities/unification.js +18 -16
- package/src/utilities/validation.js +73 -53
- package/lib/context/scoped.js +0 -232
- package/lib/utilities/statement.js +0 -78
- package/lib/utilities/term.js +0 -17
- package/src/utilities/statement.js +0 -74
- package/src/utilities/term.js +0 -10
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+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVzVG9UZXJtQW5kUHJvcGVydHlSZWxhdGlvbiA9IHByb29mQXNzZXJ0aW9uLmNvbXBhcmVUZXJtQW5kUHJvcGVydHlSZWxhdGlvbih0ZXJtLCBwcm9wZXJ0eVJlbGF0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKGNvbXBhcmVzVG9UZXJtQW5kUHJvcGVydHlSZWxhdGlvbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVGVybUFuZFByb3BlcnR5UmVsYXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFMZXZlbFN1YnN0aXR1dGlvbnMobWV0YUxldmVsU3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGNvbnN0IHsgRXF1aXZhbGVuY2VzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBqdWRnZW1lbnRzID0gW10sXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICBlcXVpdmFsZW5jZXMgPSBFcXVpdmFsZW5jZXMuZnJvbU5vdGhpbmcoY29udGV4dCksXG4gICAgICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgIHNjb3BlZENvbnRleHQgPSBuZXcgU2NvcGVkQ29udGV4dChjb250ZXh0LCB2YXJpYWJsZXMsIGp1ZGdlbWVudHMsIGFzc2lnbm1lbnRzLCBlcXVpdmFsZW5jZXMsIHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIG1ldGFMZXZlbFN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIHNjb3BlZENvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2NvcGVkQ29udGV4dDsiXSwibmFtZXMiOlsibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiU2NvcGVkQ29udGV4dCIsIkNvbnRleHQiLCJjb250ZXh0IiwidmFyaWFibGVzIiwianVkZ2VtZW50cyIsImFzc2lnbm1lbnRzIiwiZXF1aXZhbGVuY2VzIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMiLCJnZXRWYXJpYWJsZXMiLCJnZXRDb250ZXh0IiwiZ2V0SnVkZ2VtZW50cyIsImdldEFzc2lnbm1lbnRzIiwiZ2V0RXF1aXZhbGVuY2VzIiwibWVyZ2VkV2l0aCIsImdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMiLCJnZXRNZXRhTGV2ZWxTdWJzdGl0dXRpb25zIiwiZ2V0UHJvb2ZBc3NlcnRpb25zIiwicHJvb2ZBc3NlcnRpb25zIiwiZmlsdGVyIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucHJvb2ZBc3NlcnRpb24iLCJpc1Byb29mQXNzZXJ0aW9uIiwiZ2V0TGFzdFN0ZXAiLCJsYXN0U3RlcCIsInByb29mQXNzZXJ0aW9uc0xlbmd0aCIsImxlbmd0aCIsImxhc3RQcm9vZkFzc2VydGlvbiIsImhhc01ldGFMZXZlbFN1YnN0aXR1dGlvbnMiLCJhZGRFcXVhbGl0eSIsImVxdWFsaXR5IiwiZXF1YWxpdHlTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImVxdWFsaXR5UmVsZmV4aXZlIiwiaXNSZWZsZXhpdmUiLCJFcXVpdmFsZW5jZSIsImVsZW1lbnRzIiwiZXF1aXZhbGVuY2UiLCJmcm9tRXF1YWxpdHkiLCJtZXJnZWRXaXRoRXF1aXZhbGVuY2UiLCJkZWJ1ZyIsImFkZFZhcmlhYmxlIiwidmFyaWFibGUiLCJ2YXJpYWJsZVN0cmluZyIsInB1c2giLCJhZGRKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnRTdHJpbmciLCJhZGRBc3NpZ25tZW50IiwiYXNzaWdubWVudCIsImFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvblN0cmluZyIsImFkZE1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbkEiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmciLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25CIiwiZmluZCIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbkFFcXVhbFRvTWV0YUxldmVsU3Vic3RpdHV0aW9uQiIsImlzRXF1YWxUbyIsImFzc2lnbkFzc2lnbm1lbnRzIiwiZm9yRWFjaCIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybSIsInRlcm0iLCJmaW5kSnVkZ2VtZW50QnlNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZSIsImp1ZGdlbWVudE1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUiLCJjb21wYXJlTWV0YXZhcmlhYmxlTmFtZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVDb21wYXJlc1RvVmFyaWFibGVJZGVudGlmaWVyIiwiY29tcGFyZVZhcmlhYmxlSWRlbnRpZmllciIsImZpbmRNZXRhTGV2ZWxTdWJzdGl0dXRpb25CeU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIiwibWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJpc1Rlcm1Hcm91bmRlZCIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwic2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyIsInRlcm1NYXRjaGVzR3JvdW5kZWRUZXJtIiwic29tZSIsImdyb3VuZGVkVGVybSIsImdyb3VuZGVkVGVybU5vZGUiLCJnZXROb2RlIiwiZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlIiwidGVybUdyb3VuZGVkIiwiaXNKdWRnZW1lbnRQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lIiwianVkZ2VtZW50UHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ2YXJpYWJsZVByZXNlbnQiLCJjb21wYXJlVGVybUFuZFByb3BlcnR5UmVsYXRpb24iLCJwcm9wZXJ0eVJlbGF0aW9uIiwiY29tcGFyZXNUb1Rlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJmcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9ucyIsIkVxdWl2YWxlbmNlcyIsImZyb21Ob3RoaW5nIiwic2NvcGVkQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ1ZBOzs7ZUFBQTs7OzJCQTlVK0I7Z0VBRVg7aUVBQ0M7Ozs7OztBQUVyQixNQUFNLEVBQUVBLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUUv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
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get containedAssertionFromStatement () {
|
|
13
|
-
return containedAssertionFromStatement;
|
|
14
|
-
},
|
|
15
|
-
get definedAssertionFromStatement () {
|
|
16
|
-
return definedAssertionFromStatement;
|
|
17
|
-
},
|
|
18
|
-
get equalityFromStatement () {
|
|
19
|
-
return equalityFromStatement;
|
|
20
|
-
},
|
|
21
|
-
get judgementFromStatement () {
|
|
22
|
-
return judgementFromStatement;
|
|
23
|
-
},
|
|
24
|
-
get metavariableFromStatement () {
|
|
25
|
-
return metavariableFromStatement;
|
|
26
|
-
},
|
|
27
|
-
get propertyAssertionFromStatement () {
|
|
28
|
-
return propertyAssertionFromStatement;
|
|
29
|
-
},
|
|
30
|
-
get satisfiesAssertionFromStatement () {
|
|
31
|
-
return satisfiesAssertionFromStatement;
|
|
32
|
-
},
|
|
33
|
-
get subproofAssertionFromStatement () {
|
|
34
|
-
return subproofAssertionFromStatement;
|
|
35
|
-
},
|
|
36
|
-
get typeAssertionFromStatement () {
|
|
37
|
-
return typeAssertionFromStatement;
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
const _element = require("../utilities/element");
|
|
41
|
-
function equalityFromStatement(statement, context) {
|
|
42
|
-
const statementNode = statement.getNode(), equality = (0, _element.equalityFromStatementNode)(statementNode, context);
|
|
43
|
-
return equality;
|
|
44
|
-
}
|
|
45
|
-
function judgementFromStatement(statement, context) {
|
|
46
|
-
const statementNode = statement.getNode(), judgement = (0, _element.judgementFromStatementNode)(statementNode, context);
|
|
47
|
-
return judgement;
|
|
48
|
-
}
|
|
49
|
-
function metavariableFromStatement(statement, context) {
|
|
50
|
-
const statementNode = statement.getNode(), metavariable = (0, _element.metavariableFromStatementNode)(statementNode, context);
|
|
51
|
-
return metavariable;
|
|
52
|
-
}
|
|
53
|
-
function typeAssertionFromStatement(statement, context) {
|
|
54
|
-
const statementNode = statement.getNode(), typeAssertion = (0, _element.typeAssertionFromStatementNode)(statementNode, context);
|
|
55
|
-
return typeAssertion;
|
|
56
|
-
}
|
|
57
|
-
function definedAssertionFromStatement(statement, context) {
|
|
58
|
-
const statementNode = statement.getNode(), definedAssertion = (0, _element.definedAssertionFromStatementNode)(statementNode, context);
|
|
59
|
-
return definedAssertion;
|
|
60
|
-
}
|
|
61
|
-
function propertyAssertionFromStatement(statement, context) {
|
|
62
|
-
const statementNode = statement.getNode(), propertyAssertion = (0, _element.propertyAssertionFromStatementNode)(statementNode, context);
|
|
63
|
-
return propertyAssertion;
|
|
64
|
-
}
|
|
65
|
-
function subproofAssertionFromStatement(statement, context) {
|
|
66
|
-
const statementNode = statement.getNode(), subproofAssertion = (0, _element.subproofAssertionFromStatementNode)(statementNode, context);
|
|
67
|
-
return subproofAssertion;
|
|
68
|
-
}
|
|
69
|
-
function containedAssertionFromStatement(statement, context) {
|
|
70
|
-
const statementNode = statement.getNode(), containedAssertion = (0, _element.containedAssertionFromStatementNode)(statementNode, context);
|
|
71
|
-
return containedAssertion;
|
|
72
|
-
}
|
|
73
|
-
function satisfiesAssertionFromStatement(statement, context) {
|
|
74
|
-
const statementNode = statement.getNode(), satisfiesAssertion = (0, _element.satisfiesAssertionFromStatementNode)(statementNode, context);
|
|
75
|
-
return satisfiesAssertion;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBlcXVhbGl0eUZyb21TdGF0ZW1lbnROb2RlLFxuICAgICAgICAganVkZ2VtZW50RnJvbVN0YXRlbWVudE5vZGUsXG4gICAgICAgICBtZXRhdmFyaWFibGVGcm9tU3RhdGVtZW50Tm9kZSxcbiAgICAgICAgIHR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSxcbiAgICAgICAgIGRlZmluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSxcbiAgICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUsXG4gICAgICAgICBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlLFxuICAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUsXG4gICAgICAgICBzYXRpc2ZpZXNBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHlGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZXF1YWxpdHkgPSBlcXVhbGl0eUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiBlcXVhbGl0eTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGp1ZGdlbWVudEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBqdWRnZW1lbnQgPSBqdWRnZW1lbnRGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4ganVkZ2VtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHR5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHR5cGVBc3NlcnRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGRlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGRlZmluZWRBc3NlcnRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBwcm9wZXJ0eUFzc2VydGlvbiA9IHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHByb3BlcnR5QXNzZXJ0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5lZEFzc2VydGlvbkZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb24gPSBjb250YWluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gY29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F0aXNmaWVzQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNhdGlzZmllc0Fzc2VydGlvbiA9IHNhdGlzZmllc0Fzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiBzYXRpc2ZpZXNBc3NlcnRpb247XG59XG4iXSwibmFtZXMiOlsiY29udGFpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsImRlZmluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50IiwiZXF1YWxpdHlGcm9tU3RhdGVtZW50IiwianVkZ2VtZW50RnJvbVN0YXRlbWVudCIsIm1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnQiLCJwcm9wZXJ0eUFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJzYXRpc2ZpZXNBc3NlcnRpb25Gcm9tU3RhdGVtZW50Iiwic3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50IiwidHlwZUFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiLCJjb250ZXh0Iiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJlcXVhbGl0eSIsImVxdWFsaXR5RnJvbVN0YXRlbWVudE5vZGUiLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsIm1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnROb2RlIiwidHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSIsImRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJwcm9wZXJ0eUFzc2VydGlvbiIsInByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJzdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJjb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSIsInNhdGlzZmllc0Fzc2VydGlvbiIsInNhdGlzZmllc0Fzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE2RGdCQTtlQUFBQTs7UUFyQkFDO2VBQUFBOztRQTVCQUM7ZUFBQUE7O1FBT0FDO2VBQUFBOztRQU9BQztlQUFBQTs7UUFxQkFDO2VBQUFBOztRQXFCQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOztRQXJCQUM7ZUFBQUE7Ozt5QkF2Qm9DO0FBRTdDLFNBQVNOLHNCQUFzQk8sU0FBUyxFQUFFQyxPQUFPO0lBQ3RELE1BQU1DLGdCQUFnQkYsVUFBVUcsT0FBTyxJQUNqQ0MsV0FBV0MsSUFBQUEsa0NBQXlCLEVBQUNILGVBQWVEO0lBRTFELE9BQU9HO0FBQ1Q7QUFFTyxTQUFTVix1QkFBdUJNLFNBQVMsRUFBRUMsT0FBTztJQUN2RCxNQUFNQyxnQkFBZ0JGLFVBQVVHLE9BQU8sSUFDakNHLFlBQVlDLElBQUFBLG1DQUEwQixFQUFDTCxlQUFlRDtJQUU1RCxPQUFPSztBQUNUO0FBRU8sU0FBU1gsMEJBQTBCSyxTQUFTLEVBQUVDLE9BQU87SUFDMUQsTUFBTUMsZ0JBQWdCRixVQUFVRyxPQUFPLElBQ2pDSyxlQUFlQyxJQUFBQSxzQ0FBNkIsRUFBQ1AsZUFBZUQ7SUFFbEUsT0FBT087QUFDVDtBQUVPLFNBQVNULDJCQUEyQkMsU0FBUyxFQUFFQyxPQUFPO0lBQzNELE1BQU1DLGdCQUFnQkYsVUFBVUcsT0FBTyxJQUNqQ08sZ0JBQWdCQyxJQUFBQSx1Q0FBOEIsRUFBQ1QsZUFBZUQ7SUFFcEUsT0FBT1M7QUFDVDtBQUVPLFNBQVNsQiw4QkFBOEJRLFNBQVMsRUFBRUMsT0FBTztJQUM5RCxNQUFNQyxnQkFBZ0JGLFVBQVVHLE9BQU8sSUFDakNTLG1CQUFtQkMsSUFBQUEsMENBQWlDLEVBQUNYLGVBQWVEO0lBRTFFLE9BQU9XO0FBQ1Q7QUFFTyxTQUFTaEIsK0JBQStCSSxTQUFTLEVBQUVDLE9BQU87SUFDL0QsTUFBTUMsZ0JBQWdCRixVQUFVRyxPQUFPLElBQ2pDVyxvQkFBb0JDLElBQUFBLDJDQUFrQyxFQUFDYixlQUFlRDtJQUU1RSxPQUFPYTtBQUNUO0FBRU8sU0FBU2hCLCtCQUErQkUsU0FBUyxFQUFFQyxPQUFPO0lBQy9ELE1BQU1DLGdCQUFnQkYsVUFBVUcsT0FBTyxJQUNqQ2Esb0JBQW9CQyxJQUFBQSwyQ0FBa0MsRUFBQ2YsZUFBZUQ7SUFFNUUsT0FBT2U7QUFDVDtBQUVPLFNBQVN6QixnQ0FBZ0NTLFNBQVMsRUFBRUMsT0FBTztJQUNoRSxNQUFNQyxnQkFBZ0JGLFVBQVVHLE9BQU8sSUFDakNlLHFCQUFxQkMsSUFBQUEsNENBQW1DLEVBQUNqQixlQUFlRDtJQUU5RSxPQUFPaUI7QUFDVDtBQUVPLFNBQVNyQixnQ0FBZ0NHLFNBQVMsRUFBRUMsT0FBTztJQUNoRSxNQUFNQyxnQkFBZ0JGLFVBQVVHLE9BQU8sSUFDakNpQixxQkFBcUJDLElBQUFBLDRDQUFtQyxFQUFDbkIsZUFBZUQ7SUFFOUUsT0FBT21CO0FBQ1QifQ==
|
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=
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { equalityFromStatementNode,
|
|
4
|
-
judgementFromStatementNode,
|
|
5
|
-
metavariableFromStatementNode,
|
|
6
|
-
typeAssertionFromStatementNode,
|
|
7
|
-
definedAssertionFromStatementNode,
|
|
8
|
-
propertyAssertionFromStatementNode,
|
|
9
|
-
subproofAssertionFromStatementNode,
|
|
10
|
-
containedAssertionFromStatementNode,
|
|
11
|
-
satisfiesAssertionFromStatementNode } from "../utilities/element";
|
|
12
|
-
|
|
13
|
-
export function equalityFromStatement(statement, context) {
|
|
14
|
-
const statementNode = statement.getNode(),
|
|
15
|
-
equality = equalityFromStatementNode(statementNode, context);
|
|
16
|
-
|
|
17
|
-
return equality;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function judgementFromStatement(statement, context) {
|
|
21
|
-
const statementNode = statement.getNode(),
|
|
22
|
-
judgement = judgementFromStatementNode(statementNode, context);
|
|
23
|
-
|
|
24
|
-
return judgement;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function metavariableFromStatement(statement, context) {
|
|
28
|
-
const statementNode = statement.getNode(),
|
|
29
|
-
metavariable = metavariableFromStatementNode(statementNode, context);
|
|
30
|
-
|
|
31
|
-
return metavariable;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function typeAssertionFromStatement(statement, context) {
|
|
35
|
-
const statementNode = statement.getNode(),
|
|
36
|
-
typeAssertion = typeAssertionFromStatementNode(statementNode, context);
|
|
37
|
-
|
|
38
|
-
return typeAssertion;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function definedAssertionFromStatement(statement, context) {
|
|
42
|
-
const statementNode = statement.getNode(),
|
|
43
|
-
definedAssertion = definedAssertionFromStatementNode(statementNode, context);
|
|
44
|
-
|
|
45
|
-
return definedAssertion;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export function propertyAssertionFromStatement(statement, context) {
|
|
49
|
-
const statementNode = statement.getNode(),
|
|
50
|
-
propertyAssertion = propertyAssertionFromStatementNode(statementNode, context);
|
|
51
|
-
|
|
52
|
-
return propertyAssertion;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export function subproofAssertionFromStatement(statement, context) {
|
|
56
|
-
const statementNode = statement.getNode(),
|
|
57
|
-
subproofAssertion = subproofAssertionFromStatementNode(statementNode, context);
|
|
58
|
-
|
|
59
|
-
return subproofAssertion;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function containedAssertionFromStatement(statement, context) {
|
|
63
|
-
const statementNode = statement.getNode(),
|
|
64
|
-
containedAssertion = containedAssertionFromStatementNode(statementNode, context);
|
|
65
|
-
|
|
66
|
-
return containedAssertion;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export function satisfiesAssertionFromStatement(statement, context) {
|
|
70
|
-
const statementNode = statement.getNode(),
|
|
71
|
-
satisfiesAssertion = satisfiesAssertionFromStatementNode(statementNode, context);
|
|
72
|
-
|
|
73
|
-
return satisfiesAssertion;
|
|
74
|
-
}
|
package/src/utilities/term.js
DELETED