occam-verify-cli 0.0.920 → 0.0.922
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/axiomLemmaTheoremConjecture.js +3 -4
- package/lib/conclusion.js +4 -4
- package/lib/context/local.js +426 -0
- package/lib/metaConsequent.js +3 -3
- package/lib/metaSupposition.js +5 -5
- package/lib/mixins/context.js +17 -13
- package/lib/premise.js +8 -9
- package/lib/verify/axiom.js +3 -3
- package/lib/verify/conjecture.js +3 -3
- package/lib/verify/lemma.js +3 -3
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metaSubproof.js +5 -6
- package/lib/verify/metaproof.js +6 -7
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/proof.js +3 -4
- package/lib/verify/rule.js +11 -10
- package/lib/verify/subproof.js +3 -4
- package/lib/verify/termAsConstructor.js +3 -3
- package/lib/verify/theorem.js +3 -3
- package/package.json +4 -4
- package/src/axiomLemmaTheoremConjecture.js +2 -4
- package/src/conclusion.js +3 -3
- package/src/context/{local/intrinsicLevel.js → local.js} +223 -91
- package/src/metaConsequent.js +3 -3
- package/src/metaSupposition.js +5 -5
- package/src/mixins/context.js +12 -9
- package/src/premise.js +11 -12
- package/src/verify/axiom.js +3 -4
- package/src/verify/conjecture.js +3 -4
- package/src/verify/lemma.js +3 -4
- package/src/verify/metaLemma.js +4 -4
- package/src/verify/metaSubproof.js +5 -7
- package/src/verify/metaproof.js +7 -10
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/proof.js +2 -4
- package/src/verify/rule.js +14 -12
- package/src/verify/subproof.js +2 -4
- package/src/verify/termAsConstructor.js +3 -4
- package/src/verify/theorem.js +3 -4
- package/lib/context/local/intrinsicLevel.js +0 -326
- package/lib/context/local/metaLevel.js +0 -282
- package/lib/verify/ruleDerivation.js +0 -31
- package/lib/verify/ruleProof.js +0 -32
- package/lib/verify/ruleProofStep.js +0 -98
- package/lib/verify/ruleSubDerivation.js +0 -25
- package/lib/verify/ruleSubproof.js +0 -35
- package/src/context/local/metaLevel.js +0 -191
- package/src/verify/ruleDerivation.js +0 -23
- package/src/verify/ruleProof.js +0 -31
- package/src/verify/ruleProofStep.js +0 -139
- package/src/verify/ruleSubDerivation.js +0 -22
- package/src/verify/ruleSubproof.js +0 -34
|
@@ -1,282 +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
|
-
var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../../context/local/intrinsicLevel"));
|
|
12
|
-
var _array = require("../../utilities/array");
|
|
13
|
-
function _array_like_to_array(arr, len) {
|
|
14
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
15
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
16
|
-
return arr2;
|
|
17
|
-
}
|
|
18
|
-
function _array_without_holes(arr) {
|
|
19
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
20
|
-
}
|
|
21
|
-
function _assert_this_initialized(self) {
|
|
22
|
-
if (self === void 0) {
|
|
23
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
24
|
-
}
|
|
25
|
-
return self;
|
|
26
|
-
}
|
|
27
|
-
function _call_super(_this, derived, args) {
|
|
28
|
-
derived = _get_prototype_of(derived);
|
|
29
|
-
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
30
|
-
}
|
|
31
|
-
function _class_call_check(instance, Constructor) {
|
|
32
|
-
if (!(instance instanceof Constructor)) {
|
|
33
|
-
throw new TypeError("Cannot call a class as a function");
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function _defineProperties(target, props) {
|
|
37
|
-
for(var i = 0; i < props.length; i++){
|
|
38
|
-
var descriptor = props[i];
|
|
39
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
40
|
-
descriptor.configurable = true;
|
|
41
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
42
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
46
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
47
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
48
|
-
return Constructor;
|
|
49
|
-
}
|
|
50
|
-
function _get_prototype_of(o) {
|
|
51
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
52
|
-
return o.__proto__ || Object.getPrototypeOf(o);
|
|
53
|
-
};
|
|
54
|
-
return _get_prototype_of(o);
|
|
55
|
-
}
|
|
56
|
-
function _inherits(subClass, superClass) {
|
|
57
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
58
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
59
|
-
}
|
|
60
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
61
|
-
constructor: {
|
|
62
|
-
value: subClass,
|
|
63
|
-
writable: true,
|
|
64
|
-
configurable: true
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
68
|
-
}
|
|
69
|
-
function _interop_require_default(obj) {
|
|
70
|
-
return obj && obj.__esModule ? obj : {
|
|
71
|
-
default: obj
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function _iterable_to_array(iter) {
|
|
75
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
76
|
-
}
|
|
77
|
-
function _non_iterable_spread() {
|
|
78
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
79
|
-
}
|
|
80
|
-
function _possible_constructor_return(self, call) {
|
|
81
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
82
|
-
return call;
|
|
83
|
-
}
|
|
84
|
-
return _assert_this_initialized(self);
|
|
85
|
-
}
|
|
86
|
-
function _set_prototype_of(o, p) {
|
|
87
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
88
|
-
o.__proto__ = p;
|
|
89
|
-
return o;
|
|
90
|
-
};
|
|
91
|
-
return _set_prototype_of(o, p);
|
|
92
|
-
}
|
|
93
|
-
function _to_consumable_array(arr) {
|
|
94
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
95
|
-
}
|
|
96
|
-
function _type_of(obj) {
|
|
97
|
-
"@swc/helpers - typeof";
|
|
98
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
99
|
-
}
|
|
100
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
101
|
-
if (!o) return;
|
|
102
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
103
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
104
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
105
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
106
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
107
|
-
}
|
|
108
|
-
function _is_native_reflect_construct() {
|
|
109
|
-
try {
|
|
110
|
-
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
111
|
-
} catch (_) {}
|
|
112
|
-
return (_is_native_reflect_construct = function() {
|
|
113
|
-
return !!result;
|
|
114
|
-
})();
|
|
115
|
-
}
|
|
116
|
-
var MetaLevelLocalContext = /*#__PURE__*/ function(IntrinsicLevelLocalContext) {
|
|
117
|
-
_inherits(MetaLevelLocalContext, IntrinsicLevelLocalContext);
|
|
118
|
-
function MetaLevelLocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps) {
|
|
119
|
-
_class_call_check(this, MetaLevelLocalContext);
|
|
120
|
-
var _this;
|
|
121
|
-
_this = _call_super(this, MetaLevelLocalContext, [
|
|
122
|
-
context,
|
|
123
|
-
variables,
|
|
124
|
-
proofSteps,
|
|
125
|
-
equivalences
|
|
126
|
-
]);
|
|
127
|
-
_this.judgements = judgements;
|
|
128
|
-
_this.metavariables = metavariables;
|
|
129
|
-
_this.metaproofSteps = metaproofSteps;
|
|
130
|
-
return _this;
|
|
131
|
-
}
|
|
132
|
-
_create_class(MetaLevelLocalContext, [
|
|
133
|
-
{
|
|
134
|
-
key: "getJudgements",
|
|
135
|
-
value: function getJudgements() {
|
|
136
|
-
var judgements = this.context.getJudgements();
|
|
137
|
-
judgements = _to_consumable_array(this.judgements).concat(_to_consumable_array(judgements));
|
|
138
|
-
return judgements;
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
key: "getMetavariables",
|
|
143
|
-
value: function getMetavariables() {
|
|
144
|
-
var metavariables = this.context.getMetavariables();
|
|
145
|
-
metavariables = _to_consumable_array(this.metavariables).concat(_to_consumable_array(metavariables));
|
|
146
|
-
return metavariables;
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
key: "getMetaproofSteps",
|
|
151
|
-
value: function getMetaproofSteps() {
|
|
152
|
-
var metaproofSteps = this.context.getMetaproofSteps();
|
|
153
|
-
metaproofSteps = _to_consumable_array(metaproofSteps).concat(_to_consumable_array(this.metaproofSteps));
|
|
154
|
-
return metaproofSteps;
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
key: "isIntrinsicLevel",
|
|
159
|
-
value: function isIntrinsicLevel() {
|
|
160
|
-
var intrinsicLevel = false;
|
|
161
|
-
return intrinsicLevel;
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
key: "getLastMetaproofStep",
|
|
166
|
-
value: function getLastMetaproofStep() {
|
|
167
|
-
var lastMetaproofStep = null;
|
|
168
|
-
var metaproofStepsLength = this.metaproofSteps.length;
|
|
169
|
-
if (metaproofStepsLength > 0) {
|
|
170
|
-
lastMetaproofStep = (0, _array.last)(this.metaproofSteps);
|
|
171
|
-
}
|
|
172
|
-
return lastMetaproofStep;
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
key: "addJudgement",
|
|
177
|
-
value: function addJudgement(judgement) {
|
|
178
|
-
var judgementAdded = false;
|
|
179
|
-
var metavariableNode = judgement.getMetavariableNode(), judgementPresent = this.isJudgementPresentByMetavariableNode(metavariableNode);
|
|
180
|
-
if (!judgementPresent) {
|
|
181
|
-
this.judgements.push(judgement);
|
|
182
|
-
judgementAdded = true;
|
|
183
|
-
}
|
|
184
|
-
return judgementAdded;
|
|
185
|
-
}
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
key: "addMetavariable",
|
|
189
|
-
value: function addMetavariable(metavariable) {
|
|
190
|
-
var metavariableAdded = false;
|
|
191
|
-
var node = metavariable.getName(), metavariablePresent = this.metavariables.some(function(metavariable) {
|
|
192
|
-
var metavariableMatchesNode = metavariable.matchNode(node);
|
|
193
|
-
if (metavariableMatchesNode) {
|
|
194
|
-
return true;
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
if (!metavariablePresent) {
|
|
198
|
-
this.metavariables.push(metavariable);
|
|
199
|
-
metavariableAdded = true;
|
|
200
|
-
}
|
|
201
|
-
return metavariableAdded;
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
key: "addMetaproofStep",
|
|
206
|
-
value: function addMetaproofStep(metaproofStep) {
|
|
207
|
-
this.metaproofSteps.push(metaproofStep);
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
key: "matchMetastatementNode",
|
|
212
|
-
value: function matchMetastatementNode(metastatementNode) {
|
|
213
|
-
var metaproofSteps = this.getMetaproofSteps();
|
|
214
|
-
metaproofSteps = (0, _array.reverse)(metaproofSteps); ///
|
|
215
|
-
var matchesMetastatementNode = metaproofSteps.some(function(metaproofStep) {
|
|
216
|
-
var metaproofStepMatchesMetastatementNode = metaproofStep.matchMetastatementNode(metastatementNode);
|
|
217
|
-
if (metaproofStepMatchesMetastatementNode) {
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
return matchesMetastatementNode;
|
|
222
|
-
}
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
key: "findMetavariableByMetavariableNode",
|
|
226
|
-
value: function findMetavariableByMetavariableNode(metavariableNode, metaLevelLocalContext) {
|
|
227
|
-
var node = metavariableNode, metavariables = this.getMetavariables(), metavariable = metavariables.find(function(metavariable) {
|
|
228
|
-
var matches = metavariable.matchNode(node, metaLevelLocalContext);
|
|
229
|
-
if (matches) {
|
|
230
|
-
return true;
|
|
231
|
-
}
|
|
232
|
-
}) || null;
|
|
233
|
-
return metavariable;
|
|
234
|
-
}
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
key: "findJudgementByMetavariableNode",
|
|
238
|
-
value: function findJudgementByMetavariableNode(metavariableNode) {
|
|
239
|
-
var judgements = this.getJudgements(), judgement = judgements.find(function(judgement) {
|
|
240
|
-
var judgementMatchesMetavariableNode = judgement.matchMetavariableNode(metavariableNode);
|
|
241
|
-
if (judgementMatchesMetavariableNode) {
|
|
242
|
-
return true;
|
|
243
|
-
}
|
|
244
|
-
}) || null;
|
|
245
|
-
return judgement;
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
key: "isMetavariablePresentByMetavariableNode",
|
|
250
|
-
value: function isMetavariablePresentByMetavariableNode(metavariableNode, metaLevelLocalContext) {
|
|
251
|
-
var metavariable = this.findMetavariableByMetavariableNode(metavariableNode, metaLevelLocalContext), metavariablePresent = metavariable !== null;
|
|
252
|
-
return metavariablePresent;
|
|
253
|
-
}
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
key: "isJudgementPresentByMetavariableNode",
|
|
257
|
-
value: function isJudgementPresentByMetavariableNode(metavariableNode) {
|
|
258
|
-
var judgement = this.findJudgementByMetavariableNode(metavariableNode), judgementPresent = judgement !== null;
|
|
259
|
-
return judgementPresent;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
], [
|
|
263
|
-
{
|
|
264
|
-
key: "fromFileContext",
|
|
265
|
-
value: function fromFileContext(fileContext) {
|
|
266
|
-
var context = fileContext, variables = [], proofSteps = [], equivalences = [], judgements = [], metavariables = [], metaproofSteps = [], metaLevelLocalContext = new MetaLevelLocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps);
|
|
267
|
-
return metaLevelLocalContext;
|
|
268
|
-
}
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
key: "fromLocalContext",
|
|
272
|
-
value: function fromLocalContext(localContext) {
|
|
273
|
-
var context = localContext, variables = [], proofSteps = [], equivalences = [], judgements = [], metavariables = [], metaproofSteps = [], metaLevelLocalContext = new MetaLevelLocalContext(context, variables, proofSteps, equivalences, judgements, metavariables, metaproofSteps); ///
|
|
274
|
-
return metaLevelLocalContext;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
]);
|
|
278
|
-
return MetaLevelLocalContext;
|
|
279
|
-
}(_intrinsicLevel.default);
|
|
280
|
-
var _default = MetaLevelLocalContext;
|
|
281
|
-
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2xvY2FsL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L2xvY2FsL2ludHJpbnNpY0xldmVsXCI7XG5cbmltcG9ydCB7IGxhc3QsIHJldmVyc2UgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmNsYXNzIE1ldGFMZXZlbExvY2FsQ29udGV4dCBleHRlbmRzIEludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzLCBwcm9vZlN0ZXBzLCBlcXVpdmFsZW5jZXMsIGp1ZGdlbWVudHMsIG1ldGF2YXJpYWJsZXMsIG1ldGFwcm9vZlN0ZXBzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgdmFyaWFibGVzLCBwcm9vZlN0ZXBzLCBlcXVpdmFsZW5jZXMpO1xuXG4gICAgdGhpcy5qdWRnZW1lbnRzID0ganVkZ2VtZW50cztcbiAgICB0aGlzLm1ldGF2YXJpYWJsZXMgPSBtZXRhdmFyaWFibGVzO1xuICAgIHRoaXMubWV0YXByb29mU3RlcHMgPSBtZXRhcHJvb2ZTdGVwcztcbiAgfVxuXG4gIGdldEp1ZGdlbWVudHMoKSB7XG4gICAgbGV0IGp1ZGdlbWVudHMgPSB0aGlzLmNvbnRleHQuZ2V0SnVkZ2VtZW50cygpO1xuXG4gICAganVkZ2VtZW50cyA9IFsgLy8vXG4gICAgICAuLi50aGlzLmp1ZGdlbWVudHMsXG4gICAgICAuLi5qdWRnZW1lbnRzXG4gICAgXVxuXG4gICAgcmV0dXJuIGp1ZGdlbWVudHM7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVzKCkge1xuICAgIGxldCBtZXRhdmFyaWFibGVzID0gdGhpcy5jb250ZXh0LmdldE1ldGF2YXJpYWJsZXMoKTtcblxuICAgIG1ldGF2YXJpYWJsZXMgPSBbIC8vL1xuICAgICAgLi4udGhpcy5tZXRhdmFyaWFibGVzLFxuICAgICAgLi4ubWV0YXZhcmlhYmxlc1xuICAgIF1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0TWV0YXByb29mU3RlcHMoKSB7XG4gICAgbGV0IG1ldGFwcm9vZlN0ZXBzID0gdGhpcy5jb250ZXh0LmdldE1ldGFwcm9vZlN0ZXBzKCk7XG5cbiAgICBtZXRhcHJvb2ZTdGVwcyA9IFsgIC8vL1xuICAgICAgLi4ubWV0YXByb29mU3RlcHMsXG4gICAgICAuLi50aGlzLm1ldGFwcm9vZlN0ZXBzXG4gICAgXTtcblxuICAgIHJldHVybiBtZXRhcHJvb2ZTdGVwcztcbiAgfVxuXG4gIGlzSW50cmluc2ljTGV2ZWwoKSB7XG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBmYWxzZTtcblxuICAgIHJldHVybiBpbnRyaW5zaWNMZXZlbDtcbiAgfVxuXG4gIGdldExhc3RNZXRhcHJvb2ZTdGVwKCkge1xuICAgIGxldCBsYXN0TWV0YXByb29mU3RlcCA9IG51bGw7XG5cbiAgICBjb25zdCBtZXRhcHJvb2ZTdGVwc0xlbmd0aCA9IHRoaXMubWV0YXByb29mU3RlcHMubGVuZ3RoO1xuXG4gICAgaWYgKG1ldGFwcm9vZlN0ZXBzTGVuZ3RoID4gMCkge1xuICAgICAgbGFzdE1ldGFwcm9vZlN0ZXAgPSBsYXN0KHRoaXMubWV0YXByb29mU3RlcHMpO1xuICAgIH1cblxuICAgIHJldHVybiBsYXN0TWV0YXByb29mU3RlcDtcbiAgfVxuXG4gIGFkZEp1ZGdlbWVudChqdWRnZW1lbnQpIHtcbiAgICBsZXQganVkZ2VtZW50QWRkZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBqdWRnZW1lbnQuZ2V0TWV0YXZhcmlhYmxlTm9kZSgpLFxuICAgICAgICAgIGp1ZGdlbWVudFByZXNlbnQgPSB0aGlzLmlzSnVkZ2VtZW50UHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIGlmICghanVkZ2VtZW50UHJlc2VudCkge1xuICAgICAgdGhpcy5qdWRnZW1lbnRzLnB1c2goanVkZ2VtZW50KTtcblxuICAgICAganVkZ2VtZW50QWRkZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBqdWRnZW1lbnRBZGRlZDtcbiAgfVxuXG4gIGFkZE1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlQWRkZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSBtZXRhdmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSB0aGlzLm1ldGF2YXJpYWJsZXMuc29tZSgobWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVNYXRjaGVzTm9kZSA9IG1ldGF2YXJpYWJsZS5tYXRjaE5vZGUobm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVNYXRjaGVzTm9kZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmICghbWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgdGhpcy5tZXRhdmFyaWFibGVzLnB1c2gobWV0YXZhcmlhYmxlKTtcblxuICAgICAgbWV0YXZhcmlhYmxlQWRkZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVBZGRlZDtcbiAgfVxuXG4gIGFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCkge1xuICAgIHRoaXMubWV0YXByb29mU3RlcHMucHVzaChtZXRhcHJvb2ZTdGVwKTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBsZXQgbWV0YXByb29mU3RlcHMgPSB0aGlzLmdldE1ldGFwcm9vZlN0ZXBzKCk7XG5cbiAgICBtZXRhcHJvb2ZTdGVwcyA9IHJldmVyc2UobWV0YXByb29mU3RlcHMpOyAvLy9cblxuICAgIGNvbnN0IG1hdGNoZXNNZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFwcm9vZlN0ZXBzLnNvbWUoKG1ldGFwcm9vZlN0ZXApID0+IHtcbiAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXBNYXRjaGVzTWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhcHJvb2ZTdGVwLm1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBpZiAobWV0YXByb29mU3RlcE1hdGNoZXNNZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFMZXZlbExvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSBtZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlcyA9IHRoaXMuZ2V0TWV0YXZhcmlhYmxlcygpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZXMuZmluZCgobWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gbWV0YXZhcmlhYmxlLm1hdGNoTm9kZShub2RlLCBtZXRhTGV2ZWxMb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGZpbmRKdWRnZW1lbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGp1ZGdlbWVudHMgPSB0aGlzLmdldEp1ZGdlbWVudHMoKSxcbiAgICAgICAgICBqdWRnZW1lbnQgPSBqdWRnZW1lbnRzLmZpbmQoKGp1ZGdlbWVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QganVkZ2VtZW50TWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUgPSBqdWRnZW1lbnQubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICBpZiAoanVkZ2VtZW50TWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBqdWRnZW1lbnQ7XG4gIH1cblxuICBpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YUxldmVsTG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlID0gdGhpcy5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFMZXZlbExvY2FsQ29udGV4dCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlUHJlc2VudCA9IChtZXRhdmFyaWFibGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZVByZXNlbnQ7XG4gIH1cblxuICBpc0p1ZGdlbWVudFByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGp1ZGdlbWVudCA9IHRoaXMuZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBqdWRnZW1lbnRQcmVzZW50ID0gKGp1ZGdlbWVudCAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4ganVkZ2VtZW50UHJlc2VudDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBwcm9vZlN0ZXBzID0gW10sXG4gICAgICAgICAgZXF1aXZhbGVuY2VzID0gW10sXG4gICAgICAgICAganVkZ2VtZW50cyA9IFtdLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBtZXRhcHJvb2ZTdGVwcyA9IFtdLFxuICAgICAgICAgIG1ldGFMZXZlbExvY2FsQ29udGV4dCA9IG5ldyBNZXRhTGV2ZWxMb2NhbENvbnRleHQoY29udGV4dCwgdmFyaWFibGVzLCBwcm9vZlN0ZXBzLCBlcXVpdmFsZW5jZXMsIGp1ZGdlbWVudHMsIG1ldGF2YXJpYWJsZXMsIG1ldGFwcm9vZlN0ZXBzKTtcblxuICAgIHJldHVybiBtZXRhTGV2ZWxMb2NhbENvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvY2FsQ29udGV4dChsb2NhbENvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAgLy8vXG4gICAgICAgICAgdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgcHJvb2ZTdGVwcyA9IFtdLFxuICAgICAgICAgIGVxdWl2YWxlbmNlcyA9IFtdLFxuICAgICAgICAgIGp1ZGdlbWVudHMgPSBbXSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgbWV0YXByb29mU3RlcHMgPSBbXSxcbiAgICAgICAgICBtZXRhTGV2ZWxMb2NhbENvbnRleHQgPSBuZXcgTWV0YUxldmVsTG9jYWxDb250ZXh0KGNvbnRleHQsIHZhcmlhYmxlcywgcHJvb2ZTdGVwcywgZXF1aXZhbGVuY2VzLCBqdWRnZW1lbnRzLCBtZXRhdmFyaWFibGVzLCBtZXRhcHJvb2ZTdGVwcyk7ICAvLy9cblxuICAgIHJldHVybiBtZXRhTGV2ZWxMb2NhbENvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWV0YUxldmVsTG9jYWxDb250ZXh0OyJdLCJuYW1lcyI6WyJNZXRhTGV2ZWxMb2NhbENvbnRleHQiLCJjb250ZXh0IiwidmFyaWFibGVzIiwicHJvb2ZTdGVwcyIsImVxdWl2YWxlbmNlcyIsImp1ZGdlbWVudHMiLCJtZXRhdmFyaWFibGVzIiwibWV0YXByb29mU3RlcHMiLCJnZXRKdWRnZW1lbnRzIiwiZ2V0TWV0YXZhcmlhYmxlcyIsImdldE1ldGFwcm9vZlN0ZXBzIiwiaXNJbnRyaW5zaWNMZXZlbCIsImludHJpbnNpY0xldmVsIiwiZ2V0TGFzdE1ldGFwcm9vZlN0ZXAiLCJsYXN0TWV0YXByb29mU3RlcCIsIm1ldGFwcm9vZlN0ZXBzTGVuZ3RoIiwibGVuZ3RoIiwibGFzdCIsImFkZEp1ZGdlbWVudCIsImp1ZGdlbWVudCIsImp1ZGdlbWVudEFkZGVkIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJqdWRnZW1lbnRQcmVzZW50IiwiaXNKdWRnZW1lbnRQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwicHVzaCIsImFkZE1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFkZGVkIiwibm9kZSIsImdldE5hbWUiLCJtZXRhdmFyaWFibGVQcmVzZW50Iiwic29tZSIsIm1ldGF2YXJpYWJsZU1hdGNoZXNOb2RlIiwibWF0Y2hOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsIm1ldGFwcm9vZlN0ZXAiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXN0YXRlbWVudE5vZGUiLCJyZXZlcnNlIiwibWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXByb29mU3RlcE1hdGNoZXNNZXRhc3RhdGVtZW50Tm9kZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhTGV2ZWxMb2NhbENvbnRleHQiLCJmaW5kIiwibWF0Y2hlcyIsImZpbmRKdWRnZW1lbnRCeU1ldGF2YXJpYWJsZU5vZGUiLCJqdWRnZW1lbnRNYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsImZyb21GaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwiZnJvbUxvY2FsQ29udGV4dCIsImxvY2FsQ29udGV4dCIsIkludHJpbnNpY0xldmVsTG9jYWxDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4TEE7OztlQUFBOzs7cUVBNUx1QztxQkFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOUIsSUFBQSxBQUFNQSxzQ0FBRCxBQUFMO2NBQU1BO2FBQUFBLHNCQUNRQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxZQUFZLEVBQUVDLFVBQVUsRUFBRUMsYUFBYSxFQUFFQyxjQUFjO2dDQUQvRlA7O2dCQUVGLGtCQUZFQTtZQUVJQztZQUFTQztZQUFXQztZQUFZQzs7UUFFdEMsTUFBS0MsVUFBVSxHQUFHQTtRQUNsQixNQUFLQyxhQUFhLEdBQUdBO1FBQ3JCLE1BQUtDLGNBQWMsR0FBR0E7OztrQkFOcEJQOztZQVNKUSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUgsYUFBYSxJQUFJLENBQUNKLE9BQU8sQ0FBQ08sYUFBYTtnQkFFM0NILGFBQWEsQUFDWCxxQkFBRyxJQUFJLENBQUNBLFVBQVUsU0FDbEIscUJBQUdBO2dCQUdMLE9BQU9BO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUgsZ0JBQWdCLElBQUksQ0FBQ0wsT0FBTyxDQUFDUSxnQkFBZ0I7Z0JBRWpESCxnQkFBZ0IsQUFDZCxxQkFBRyxJQUFJLENBQUNBLGFBQWEsU0FDckIscUJBQUdBO2dCQUdMLE9BQU9BO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUgsaUJBQWlCLElBQUksQ0FBQ04sT0FBTyxD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
|
|
@@ -1,31 +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 verifyRuleDerivation;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _ruleProofStep = /*#__PURE__*/ _interop_require_default(require("../verify/ruleProofStep"));
|
|
12
|
-
var _query = require("../utilities/query");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
var ruleProofStepNodesQuery = (0, _query.nodesQuery)("/ruleDerivation/ruleProofStep|lastRuleProofStep");
|
|
19
|
-
function verifyRuleDerivation(ruleDerivationNode, localContext) {
|
|
20
|
-
var ruleDerivationVerified;
|
|
21
|
-
var ruleProofStepNodes = ruleProofStepNodesQuery(ruleDerivationNode);
|
|
22
|
-
ruleDerivationVerified = ruleProofStepNodes.every(function(ruleProofStepNode) {
|
|
23
|
-
var ruleProofStepVerified = (0, _ruleProofStep.default)(ruleProofStepNode, localContext);
|
|
24
|
-
if (ruleProofStepVerified) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
return ruleDerivationVerified;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlSdWxlUHJvb2ZTdGVwIGZyb20gXCIuLi92ZXJpZnkvcnVsZVByb29mU3RlcFwiO1xuXG5pbXBvcnQgeyBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBydWxlUHJvb2ZTdGVwTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZURlcml2YXRpb24vcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UnVsZURlcml2YXRpb24ocnVsZURlcml2YXRpb25Ob2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgcnVsZVByb29mU3RlcE5vZGVzID0gcnVsZVByb29mU3RlcE5vZGVzUXVlcnkocnVsZURlcml2YXRpb25Ob2RlKTtcblxuICBydWxlRGVyaXZhdGlvblZlcmlmaWVkID0gcnVsZVByb29mU3RlcE5vZGVzLmV2ZXJ5KChydWxlUHJvb2ZTdGVwTm9kZSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCA9IHZlcmlmeVJ1bGVQcm9vZlN0ZXAocnVsZVByb29mU3RlcE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAocnVsZVByb29mU3RlcFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVJ1bGVEZXJpdmF0aW9uIiwicnVsZVByb29mU3RlcE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicnVsZURlcml2YXRpb25Ob2RlIiwibG9jYWxDb250ZXh0IiwicnVsZURlcml2YXRpb25WZXJpZmllZCIsInJ1bGVQcm9vZlN0ZXBOb2RlcyIsImV2ZXJ5IiwicnVsZVByb29mU3RlcE5vZGUiLCJydWxlUHJvb2ZTdGVwVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlUHJvb2ZTdGVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O29FQU5RO3FCQUVMOzs7Ozs7QUFFM0IsSUFBTUMsMEJBQTBCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRTVCLFNBQVNGLHFCQUFxQkcsa0JBQWtCLEVBQUVDLFlBQVk7SUFDM0UsSUFBSUM7SUFFSixJQUFNQyxxQkFBcUJMLHdCQUF3QkU7SUFFbkRFLHlCQUF5QkMsbUJBQW1CQyxLQUFLLENBQUMsU0FBQ0M7UUFDakQsSUFBTUMsd0JBQXdCQyxJQUFBQSxzQkFBbUIsRUFBQ0YsbUJBQW1CSjtRQUVyRSxJQUFJSyx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPSjtBQUNUIn0=
|
package/lib/verify/ruleProof.js
DELETED
|
@@ -1,32 +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 verifyRuleProof;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _ruleDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/ruleDerivation"));
|
|
12
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/metaLevel"));
|
|
13
|
-
var _query = require("../utilities/query");
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
var ruleDerivationNodeQuery = (0, _query.nodeQuery)("/ruleProof/ruleDerivation!");
|
|
20
|
-
function verifyRuleProof(ruleProofNode, conclusion, localContext) {
|
|
21
|
-
var ruleProofVerified = false;
|
|
22
|
-
var metaLevelLocalContext = _metaLevel.default.fromLocalContext(localContext);
|
|
23
|
-
localContext = metaLevelLocalContext; ///
|
|
24
|
-
var ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode), ruleDerivationVerified = (0, _ruleDerivation.default)(ruleDerivationNode, localContext);
|
|
25
|
-
if (ruleDerivationVerified) {
|
|
26
|
-
var lastMetaproofStep = localContext.getLastMetaproofStep(), metaproofStep = lastMetaproofStep, metastatementNode = metaproofStep.getMetastatementNode(), conclusionMetastatementNode = conclusion.getMetastatementNode(), metastatementNodeMatchConclusionMetastatementNode = metastatementNode.match(conclusionMetastatementNode);
|
|
27
|
-
ruleProofVerified = metastatementNodeMatchConclusionMetastatementNode; ///
|
|
28
|
-
}
|
|
29
|
-
return ruleProofVerified;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5UnVsZURlcml2YXRpb24gZnJvbSBcIi4uL3ZlcmlmeS9ydWxlRGVyaXZhdGlvblwiO1xuaW1wb3J0IE1ldGFMZXZlbExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbC9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBydWxlRGVyaXZhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlUHJvb2YvcnVsZURlcml2YXRpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlUHJvb2YocnVsZVByb29mTm9kZSwgY29uY2x1c2lvbiwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBydWxlUHJvb2ZWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFMZXZlbExvY2FsQ29udGV4dCA9IE1ldGFMZXZlbExvY2FsQ29udGV4dC5mcm9tTG9jYWxDb250ZXh0KGxvY2FsQ29udGV4dCk7XG5cbiAgbG9jYWxDb250ZXh0ID0gbWV0YUxldmVsTG9jYWxDb250ZXh0OyAvLy9cblxuICBjb25zdCBydWxlRGVyaXZhdGlvbk5vZGUgPSBydWxlRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlUHJvb2ZOb2RlKSxcbiAgICAgICAgcnVsZURlcml2YXRpb25WZXJpZmllZCA9IHZlcmlmeVJ1bGVEZXJpdmF0aW9uKHJ1bGVEZXJpdmF0aW9uTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAocnVsZURlcml2YXRpb25WZXJpZmllZCkge1xuICAgIGNvbnN0IGxhc3RNZXRhcHJvb2ZTdGVwID0gbG9jYWxDb250ZXh0LmdldExhc3RNZXRhcHJvb2ZTdGVwKCksXG4gICAgICAgICAgbWV0YXByb29mU3RlcCA9IGxhc3RNZXRhcHJvb2ZTdGVwLCAvLy9cbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0TWV0YXN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUgPSBjb25jbHVzaW9uLmdldE1ldGFzdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVNYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLm1hdGNoKGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBydWxlUHJvb2ZWZXJpZmllZCA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hDb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBydWxlUHJvb2ZWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlUHJvb2YiLCJydWxlRGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVQcm9vZk5vZGUiLCJjb25jbHVzaW9uIiwibG9jYWxDb250ZXh0IiwicnVsZVByb29mVmVyaWZpZWQiLCJtZXRhTGV2ZWxMb2NhbENvbnRleHQiLCJNZXRhTGV2ZWxMb2NhbENvbnRleHQiLCJmcm9tTG9jYWxDb250ZXh0IiwicnVsZURlcml2YXRpb25Ob2RlIiwicnVsZURlcml2YXRpb25WZXJpZmllZCIsInZlcmlmeVJ1bGVEZXJpdmF0aW9uIiwibGFzdE1ldGFwcm9vZlN0ZXAiLCJnZXRMYXN0TWV0YXByb29mU3RlcCIsIm1ldGFwcm9vZlN0ZXAiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwiY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7O3FFQVBTO2dFQUNDO3FCQUVSOzs7Ozs7QUFFMUIsSUFBTUMsMEJBQTBCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRTNCLFNBQVNGLGdCQUFnQkcsYUFBYSxFQUFFQyxVQUFVLEVBQUVDLFlBQVk7SUFDN0UsSUFBSUMsb0JBQW9CO0lBRXhCLElBQU1DLHdCQUF3QkMsa0JBQXFCLENBQUNDLGdCQUFnQixDQUFDSjtJQUVyRUEsZUFBZUUsdUJBQXVCLEdBQUc7SUFFekMsSUFBTUcscUJBQXFCVCx3QkFBd0JFLGdCQUM3Q1EseUJBQXlCQyxJQUFBQSx1QkFBb0IsRUFBQ0Ysb0JBQW9CTDtJQUV4RSxJQUFJTSx3QkFBd0I7UUFDMUIsSUFBTUUsb0JBQW9CUixhQUFhUyxvQkFBb0IsSUFDckRDLGdCQUFnQkYsbUJBQ2hCRyxvQkFBb0JELGNBQWNFLG9CQUFvQixJQUN0REMsOEJBQThCZCxXQUFXYSxvQkFBb0IsSUFDN0RFLG9EQUFvREgsa0JBQWtCSSxLQUFLLENBQUNGO1FBRWxGWixvQkFBb0JhLG1EQUFvRCxHQUFHO0lBQzdFO0lBRUEsT0FBT2I7QUFDVCJ9
|
|
@@ -1,98 +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 verifyRuleProofStep;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _metaproof = /*#__PURE__*/ _interop_require_default(require("../step/metaproof"));
|
|
12
|
-
var _ruleSubproof = /*#__PURE__*/ _interop_require_default(require("../verify/ruleSubproof"));
|
|
13
|
-
var _ruleSubDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/ruleSubDerivation"));
|
|
14
|
-
var _qualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/qualified"));
|
|
15
|
-
var _unqualified = /*#__PURE__*/ _interop_require_default(require("../verify/statement/unqualified"));
|
|
16
|
-
var _qualified1 = /*#__PURE__*/ _interop_require_default(require("../verify/metastatement/qualified"));
|
|
17
|
-
var _unqualified1 = /*#__PURE__*/ _interop_require_default(require("../verify/metastatement/unqualified"));
|
|
18
|
-
var _query = require("../utilities/query");
|
|
19
|
-
var _assignments = require("../utilities/assignments");
|
|
20
|
-
function _interop_require_default(obj) {
|
|
21
|
-
return obj && obj.__esModule ? obj : {
|
|
22
|
-
default: obj
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement|unqualifiedStatement/statement!"), ruleSubproofNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/ruleSubproof!"), metastatementNodeQuery = (0, _query.nodeQuery)("/qualifiedMetastatement|unqualifiedMetastatement/metastatement!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/qualifiedStatement!"), unqualifiedStatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/unqualifiedStatement!"), qualifiedMetastatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/qualifiedMetastatement!"), unqualifiedMetastatementNodeQuery = (0, _query.nodeQuery)("/ruleProofStep|lastRuleProofStep/unqualifiedMetastatement!");
|
|
26
|
-
function verifyRuleProofStep(ruleProofStepNode, localContext) {
|
|
27
|
-
var ruleProofStepVerified = false;
|
|
28
|
-
var ruleSubproofNode = ruleSubproofNodeQuery(ruleProofStepNode), qualifiedStatementNode = qualifiedStatementNodeQuery(ruleProofStepNode), unqualifiedStatementNode = unqualifiedStatementNodeQuery(ruleProofStepNode), qualifiedMetastatementNode = qualifiedMetastatementNodeQuery(ruleProofStepNode), unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(ruleProofStepNode);
|
|
29
|
-
if (false) {
|
|
30
|
-
///
|
|
31
|
-
} else if (ruleSubproofNode !== null) {
|
|
32
|
-
var ruleSubproofVerified;
|
|
33
|
-
ruleSubproofVerified = (0, _ruleSubproof.default)(ruleSubproofNode, localContext);
|
|
34
|
-
if (ruleSubproofVerified) {
|
|
35
|
-
var metaproofStep = _metaproof.default.fromRuleSubproofNode(ruleSubproofNode);
|
|
36
|
-
localContext.addMetaproofStep(metaproofStep);
|
|
37
|
-
ruleProofStepVerified = true;
|
|
38
|
-
}
|
|
39
|
-
} else if (qualifiedStatementNode !== null) {
|
|
40
|
-
var qualifiedStatementVerified;
|
|
41
|
-
var assignments = [];
|
|
42
|
-
qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, assignments, localContext);
|
|
43
|
-
if (qualifiedStatementVerified) {
|
|
44
|
-
var assignmentAssigned = (0, _assignments.assignAssignment)(assignments, localContext);
|
|
45
|
-
qualifiedStatementVerified = assignmentAssigned; ///
|
|
46
|
-
}
|
|
47
|
-
if (qualifiedStatementVerified) {
|
|
48
|
-
var statementNode = statementNodeQuery(qualifiedStatementNode), metaproofStep1 = _metaproof.default.fromStatementNode(statementNode);
|
|
49
|
-
localContext.addMetaproofStep(metaproofStep1);
|
|
50
|
-
ruleProofStepVerified = true;
|
|
51
|
-
}
|
|
52
|
-
} else if (unqualifiedStatementNode !== null) {
|
|
53
|
-
var unqualifiedStatementVerified;
|
|
54
|
-
var derived = true, assignments1 = [];
|
|
55
|
-
unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments1, derived, localContext);
|
|
56
|
-
if (unqualifiedStatementVerified) {
|
|
57
|
-
var assignmentAssigned1 = (0, _assignments.assignAssignment)(assignments1, localContext);
|
|
58
|
-
unqualifiedStatementVerified = assignmentAssigned1; ///
|
|
59
|
-
}
|
|
60
|
-
if (unqualifiedStatementVerified) {
|
|
61
|
-
var statementNode1 = statementNodeQuery(unqualifiedStatementNode), metaproofStep2 = _metaproof.default.fromStatementNode(statementNode1);
|
|
62
|
-
localContext.addMetaproofStep(metaproofStep2);
|
|
63
|
-
ruleProofStepVerified = unqualifiedStatementVerified; ///
|
|
64
|
-
}
|
|
65
|
-
} else if (qualifiedMetastatementNode !== null) {
|
|
66
|
-
var qualifiedMetastatementVerified;
|
|
67
|
-
var assignments2 = [], substitutions = null;
|
|
68
|
-
qualifiedMetastatementVerified = (0, _qualified1.default)(qualifiedMetastatementNode, substitutions, assignments2, localContext);
|
|
69
|
-
if (qualifiedMetastatementVerified) {
|
|
70
|
-
var assignmentAssigned2 = (0, _assignments.assignAssignment)(assignments2, localContext);
|
|
71
|
-
qualifiedMetastatementVerified = assignmentAssigned2; ///
|
|
72
|
-
}
|
|
73
|
-
if (qualifiedMetastatementVerified) {
|
|
74
|
-
var metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode), metaproofStep3 = _metaproof.default.fromMetastatementNode(metastatementNode);
|
|
75
|
-
localContext.addMetaproofStep(metaproofStep3);
|
|
76
|
-
ruleProofStepVerified = qualifiedMetastatementVerified; ///
|
|
77
|
-
}
|
|
78
|
-
} else if (unqualifiedMetastatementNode !== null) {
|
|
79
|
-
var unqualifiedMetastatementVerified;
|
|
80
|
-
var derived1 = true, assignments3 = [];
|
|
81
|
-
unqualifiedMetastatementVerified = (0, _unqualified1.default)(unqualifiedMetastatementNode, assignments3, derived1, localContext);
|
|
82
|
-
if (unqualifiedMetastatementVerified) {
|
|
83
|
-
var assignmentAssigned3 = (0, _assignments.assignAssignment)(assignments3, localContext);
|
|
84
|
-
unqualifiedMetastatementVerified = assignmentAssigned3; ///
|
|
85
|
-
}
|
|
86
|
-
if (unqualifiedMetastatementVerified) {
|
|
87
|
-
var metastatementNode1 = metastatementNodeQuery(unqualifiedMetastatementNode), metaproofStep4 = _metaproof.default.fromMetastatementNode(metastatementNode1);
|
|
88
|
-
localContext.addMetaproofStep(metaproofStep4);
|
|
89
|
-
ruleProofStepVerified = true;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return ruleProofStepVerified;
|
|
93
|
-
}
|
|
94
|
-
Object.assign(_ruleSubDerivation.default, {
|
|
95
|
-
verifyRuleProofStep: verifyRuleProofStep
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVByb29mU3RlcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1ldGFwcm9vZlN0ZXAgZnJvbSBcIi4uL3N0ZXAvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVN1YnByb29mIGZyb20gXCIuLi92ZXJpZnkvcnVsZVN1YnByb29mXCI7XG5pbXBvcnQgdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24gZnJvbSBcIi4uL3ZlcmlmeS9ydWxlU3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZFN0YXRlbWVudHx1bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YnByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVQcm9vZlN0ZXB8bGFzdFJ1bGVQcm9vZlN0ZXAvcnVsZVN1YnByb29mIVwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkTWV0YXN0YXRlbWVudHx1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQvbWV0YXN0YXRlbWVudCFcIiksXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudCFcIiksXG4gICAgICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVQcm9vZlN0ZXB8bGFzdFJ1bGVQcm9vZlN0ZXAvcXVhbGlmaWVkTWV0YXN0YXRlbWVudCFcIiksXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVByb29mU3RlcHxsYXN0UnVsZVByb29mU3RlcC91bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlUHJvb2ZTdGVwKHJ1bGVQcm9vZlN0ZXBOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVTdWJwcm9vZk5vZGUgPSBydWxlU3VicHJvb2ZOb2RlUXVlcnkocnVsZVByb29mU3RlcE5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHJ1bGVQcm9vZlN0ZXBOb2RlKSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocnVsZVByb29mU3RlcE5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkocnVsZVByb29mU3RlcE5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHJ1bGVQcm9vZlN0ZXBOb2RlKTtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChydWxlU3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IHJ1bGVTdWJwcm9vZlZlcmlmaWVkO1xuXG4gICAgcnVsZVN1YnByb29mVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChydWxlU3VicHJvb2ZWZXJpZmllZCkge1xuICAgICAgY29uc3QgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbVJ1bGVTdWJwcm9vZk5vZGUocnVsZVN1YnByb29mTm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbXTtcblxuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gW107XG5cbiAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudEFzc2lnbmVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkOyAvLy9cbiAgICB9XG4gIH0gZWxzZSBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gbnVsbDtcblxuICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgYXNzaWdubWVudEFzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudChhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudEFzc2lnbmVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgIHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgfVxuICB9IGVsc2UgaWYgKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBsZXQgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgICBjb25zdCBkZXJpdmVkID0gdHJ1ZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdO1xuXG4gICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gYXNzaWdubWVudEFzc2lnbmVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBydWxlUHJvb2ZTdGVwVmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24odmVyaWZ5UnVsZVN1YkRlcml2YXRpb24sIHtcbiAgdmVyaWZ5UnVsZVByb29mU3RlcFxufSk7XG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZVByb29mU3RlcCIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVTdWJwcm9vZk5vZGVRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJydWxlUHJvb2ZTdGVwTm9kZSIsImxvY2FsQ29udGV4dCIsInJ1bGVQcm9vZlN0ZXBWZXJpZmllZCIsInJ1bGVTdWJwcm9vZk5vZGUiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwicnVsZVN1YnByb29mVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlU3VicHJvb2YiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHMiLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50Iiwic3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImRlcml2ZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInN1YnN0aXR1dGlvbnMiLCJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInZlcmlmeVJ1bGVTdWJEZXJpdmF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFxQkE7OztlQUF3QkE7OztnRUFuQkU7bUVBQ0s7d0VBQ0s7Z0VBQ0M7a0VBQ0U7aUVBQ0U7bUVBQ0U7cUJBRWpCOzJCQUNPOzs7Ozs7QUFFakMsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHdEQUMvQkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDLG1EQUNsQ0UseUJBQXlCRixJQUFBQSxnQkFBUyxFQUFDLG9FQUNuQ0csOEJBQThCSCxJQUFBQSxnQkFBUyxFQUFDLHlEQUN4Q0ksZ0NBQWdDSixJQUFBQSxnQkFBUyxFQUFDLDJEQUMxQ0ssa0NBQWtDTCxJQUFBQSxnQkFBUyxFQUFDLDZEQUM1Q00sb0NBQW9DTixJQUFBQSxnQkFBUyxFQUFDO0FBRXJDLFNBQVNGLG9CQUFvQlMsaUJBQWlCLEVBQUVDLFlBQVk7SUFDekUsSUFBSUMsd0JBQXdCO0lBRTVCLElBQU1DLG1CQUFtQlQsc0JBQXNCTSxvQkFDekNJLHlCQUF5QlIsNEJBQTRCSSxvQkFDckRLLDJCQUEyQlIsOEJBQThCRyxvQkFDekRNLDZCQUE2QlIsZ0NBQWdDRSxvQkFDN0RPLCtCQUEr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
|
|
@@ -1,25 +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 verifyRuleSubDerivation;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _query = require("../utilities/query");
|
|
12
|
-
var ruleProofStepNodesQuery = (0, _query.nodesQuery)("/ruleSubDerivation/ruleProofStep|lastRuleProofStep");
|
|
13
|
-
function verifyRuleSubDerivation(ruleSubDerivationNode, localContext) {
|
|
14
|
-
var ruleSubDerivationVerified;
|
|
15
|
-
var ruleProofStepNodes = ruleProofStepNodesQuery(ruleSubDerivationNode);
|
|
16
|
-
ruleSubDerivationVerified = ruleProofStepNodes.every(function(ruleProofStepNode) {
|
|
17
|
-
var verifyRuleProofStep = verifyRuleSubDerivation.verifyRuleProofStep, ruleProofStepVerified = verifyRuleProofStep(ruleProofStepNode, localContext);
|
|
18
|
-
if (ruleProofStepVerified) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
return ruleSubDerivationVerified;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YkRlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlU3ViRGVyaXZhdGlvbi9ydWxlUHJvb2ZTdGVwfGxhc3RSdWxlUHJvb2ZTdGVwXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcblxuICBjb25zdCBydWxlUHJvb2ZTdGVwTm9kZXMgPSBydWxlUHJvb2ZTdGVwTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBydWxlUHJvb2ZTdGVwTm9kZXMuZXZlcnkoKHJ1bGVQcm9vZlN0ZXBOb2RlKSA9PiB7XG4gICAgY29uc3QgeyB2ZXJpZnlSdWxlUHJvb2ZTdGVwIH0gPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbixcbiAgICAgICAgICBydWxlUHJvb2ZTdGVwVmVyaWZpZWQgPSB2ZXJpZnlSdWxlUHJvb2ZTdGVwKHJ1bGVQcm9vZlN0ZXBOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVQcm9vZlN0ZXBWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcnVsZVN1YkRlcml2YXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiIsInJ1bGVQcm9vZlN0ZXBOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInJ1bGVTdWJEZXJpdmF0aW9uTm9kZSIsImxvY2FsQ29udGV4dCIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJydWxlUHJvb2ZTdGVwTm9kZXMiLCJldmVyeSIsInJ1bGVQcm9vZlN0ZXBOb2RlIiwidmVyaWZ5UnVsZVByb29mU3RlcCIsInJ1bGVQcm9vZlN0ZXBWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OztxQkFKRztBQUUzQixJQUFNQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUM7QUFFNUIsU0FBU0Ysd0JBQXdCRyxxQkFBcUIsRUFBRUMsWUFBWTtJQUNqRixJQUFJQztJQUVKLElBQU1DLHFCQUFxQkwsd0JBQXdCRTtJQUVuREUsNEJBQTRCQyxtQkFBbUJDLEtBQUssQ0FBQyxTQUFDQztRQUNwRCxJQUFNLEFBQUVDLHNCQUF3QlQsd0JBQXhCUyxxQkFDRkMsd0JBQXdCRCxvQkFBb0JELG1CQUFtQko7UUFFckUsSUFBSU0sdUJBQXVCO1lBQ3pCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9
|
|
@@ -1,35 +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 verifyRuleSubproof;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _premises = /*#__PURE__*/ _interop_require_default(require("../verify/premises"));
|
|
12
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../context/local/metaLevel"));
|
|
13
|
-
var _ruleSubDerivation = /*#__PURE__*/ _interop_require_default(require("../verify/ruleSubDerivation"));
|
|
14
|
-
var _query = require("../utilities/query");
|
|
15
|
-
function _interop_require_default(obj) {
|
|
16
|
-
return obj && obj.__esModule ? obj : {
|
|
17
|
-
default: obj
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
var premiseNodesQuery = (0, _query.nodesQuery)("/ruleSubproof/premise"), ruleSubDerivationNodeQuery = (0, _query.nodeQuery)("/ruleSubproof/ruleSubDerivation");
|
|
21
|
-
function verifyRuleSubproof(ruleSubproofNode, localContext) {
|
|
22
|
-
var ruleSubproofVerified = false;
|
|
23
|
-
var metaLevelLocalContext = _metaLevel.default.fromLocalContext(localContext);
|
|
24
|
-
localContext = metaLevelLocalContext; ///
|
|
25
|
-
var premises = [], premiseNodes = premiseNodesQuery(ruleSubproofNode), premisesVerified = (0, _premises.default)(premiseNodes, premises, localContext);
|
|
26
|
-
if (premisesVerified) {
|
|
27
|
-
var ruleSubDerivationNode = ruleSubDerivationNodeQuery(ruleSubproofNode), ruleSubDerivationVerified = (0, _ruleSubDerivation.default)(ruleSubDerivationNode, localContext);
|
|
28
|
-
if (ruleSubDerivationVerified) {
|
|
29
|
-
ruleSubproofVerified = true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return ruleSubproofVerified;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVN1YnByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5UHJlbWlzZXMgZnJvbSBcIi4uL3ZlcmlmeS9wcmVtaXNlc1wiO1xuaW1wb3J0IE1ldGFMZXZlbExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbC9tZXRhTGV2ZWxcIjtcbmltcG9ydCB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVTdWJEZXJpdmF0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJlbWlzZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVTdWJwcm9vZi9wcmVtaXNlXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBydWxlU3VicHJvb2ZWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFMZXZlbExvY2FsQ29udGV4dCA9IE1ldGFMZXZlbExvY2FsQ29udGV4dC5mcm9tTG9jYWxDb250ZXh0KGxvY2FsQ29udGV4dCk7XG5cbiAgbG9jYWxDb250ZXh0ID0gbWV0YUxldmVsTG9jYWxDb250ZXh0OyAvLy9cblxuICBjb25zdCBwcmVtaXNlcyA9IFtdLFxuICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlTm9kZXNRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHZlcmlmeVByZW1pc2VzKHByZW1pc2VOb2RlcywgcHJlbWlzZXMsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHByZW1pc2VzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBydWxlU3ViRGVyaXZhdGlvbk5vZGUgPSBydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeShydWxlU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5UnVsZVN1YkRlcml2YXRpb24ocnVsZVN1YkRlcml2YXRpb25Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcnVsZVN1YnByb29mVmVyaWZpZWQ7XG59XG5cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlU3VicHJvb2YiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVTdWJwcm9vZk5vZGUiLCJsb2NhbENvbnRleHQiLCJydWxlU3VicHJvb2ZWZXJpZmllZCIsIm1ldGFMZXZlbExvY2FsQ29udGV4dCIsIk1ldGFMZXZlbExvY2FsQ29udGV4dCIsImZyb21Mb2NhbENvbnRleHQiLCJwcmVtaXNlcyIsInByZW1pc2VOb2RlcyIsInByZW1pc2VzVmVyaWZpZWQiLCJ2ZXJpZnlQcmVtaXNlcyIsInJ1bGVTdWJEZXJpdmF0aW9uTm9kZSIsInJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7OzsrREFURztnRUFDTzt3RUFDRTtxQkFFRTs7Ozs7O0FBRXRDLElBQU1DLG9CQUFvQkMsSUFBQUEsaUJBQVUsRUFBQywwQkFDL0JDLDZCQUE2QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUU5QixTQUFTSixtQkFBbUJLLGdCQUFnQixFQUFFQyxZQUFZO0lBQ3ZFLElBQUlDLHVCQUF1QjtJQUUzQixJQUFNQyx3QkFBd0JDLGtCQUFxQixDQUFDQyxnQkFBZ0IsQ0FBQ0o7SUFFckVBLGVBQWVFLHVCQUF1QixHQUFHO0lBRXpDLElBQU1HLFdBQVcsRUFBRSxFQUNiQyxlQUFlWCxrQkFBa0JJLG1CQUNqQ1EsbUJBQW1CQyxJQUFBQSxpQkFBYyxFQUFDRixjQUFjRCxVQUFVTDtJQUVoRSxJQUFJTyxrQkFBa0I7UUFDcEIsSUFBTUUsd0JBQXdCWiwyQkFBMkJFLG1CQUNuRFcsNEJBQTRCQyxJQUFBQSwwQkFBdUIsRUFBQ0YsdUJBQXVCVDtRQUVqRixJQUFJVSwyQkFBMkI7WUFDN0JULHVCQUF1QjtRQUN6QjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
|