occam-verify-cli 0.0.923 → 0.0.925
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/axiom.js +9 -9
- package/lib/conjecture.js +9 -9
- package/lib/constants.js +1 -9
- package/lib/context/file.js +3 -3
- package/lib/context/local.js +5 -5
- package/lib/lemma.js +9 -9
- package/lib/metaLemma.js +7 -7
- package/lib/metatheorem.js +7 -7
- package/lib/metavariable.js +8 -1
- package/lib/mixins/nodesVerifier/metaLevel.js +2 -2
- package/lib/premise.js +6 -6
- package/lib/theorem.js +9 -9
- package/lib/topLevelAssertion.js +186 -0
- package/lib/verifier/nodes/intrinsicLevel.js +3 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +3 -3
- package/lib/verifier/nodes/metaLevel.js +16 -16
- package/lib/verify/assertion/contained.js +91 -0
- package/lib/verify/assertion/defined.js +114 -0
- package/lib/verify/assertion/subproof.js +65 -0
- package/lib/verify/assertion/type.js +112 -0
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/declaration.js +3 -6
- package/lib/verify/derivation.js +7 -7
- package/lib/verify/equality.js +3 -3
- package/lib/verify/frame.js +2 -2
- package/lib/verify/judgement.js +2 -2
- package/lib/verify/lemma.js +5 -5
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metastatement.js +4 -24
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/metavariable.js +2 -2
- package/lib/verify/proof.js +3 -3
- package/lib/verify/proofStep.js +4 -4
- package/lib/verify/rule.js +3 -3
- package/lib/verify/statement/qualified.js +19 -25
- package/lib/verify/statement/unqualified.js +38 -10
- package/lib/verify/statement.js +106 -97
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +3 -3
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/axiom.js +4 -4
- package/src/conjecture.js +4 -4
- package/src/constants.js +0 -2
- package/src/context/file.js +2 -2
- package/src/context/local.js +4 -3
- package/src/lemma.js +4 -4
- package/src/metaLemma.js +4 -4
- package/src/metatheorem.js +4 -4
- package/src/metavariable.js +6 -0
- package/src/mixins/nodesVerifier/metaLevel.js +1 -1
- package/src/premise.js +6 -6
- package/src/theorem.js +4 -4
- package/src/{metaLemmaMetatheorem.js → topLevelAssertion.js} +16 -26
- package/src/verifier/nodes/intrinsicLevel.js +2 -2
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +3 -3
- package/src/verifier/nodes/metaLevel.js +18 -19
- package/src/verify/assertion/contained.js +111 -0
- package/src/verify/{statementAsDefinedAssertion.js → assertion/defined.js} +25 -41
- package/src/verify/assertion/subproof.js +77 -0
- package/src/verify/{typeAssertion.js → assertion/type.js} +15 -15
- package/src/verify/axiom.js +5 -4
- package/src/verify/conjecture.js +5 -4
- package/src/verify/declaration.js +2 -6
- package/src/verify/derivation.js +6 -6
- package/src/verify/equality.js +2 -2
- package/src/verify/frame.js +1 -1
- package/src/verify/judgement.js +1 -1
- package/src/verify/lemma.js +8 -5
- package/src/verify/metaLemma.js +4 -4
- package/src/verify/metastatement.js +3 -32
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/metavariable.js +1 -1
- package/src/verify/proof.js +2 -2
- package/src/verify/proofStep.js +3 -3
- package/src/verify/rule.js +4 -4
- package/src/verify/statement/qualified.js +30 -33
- package/src/verify/statement/unqualified.js +52 -10
- package/src/verify/statement.js +168 -47
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +2 -2
- package/src/verify/termAsConstructor.js +2 -2
- package/src/verify/theorem.js +7 -4
- package/lib/axiomLemmaTheoremConjecture.js +0 -174
- package/lib/metaLemmaMetatheorem.js +0 -191
- package/lib/verify/statementAsContainedAssertion.js +0 -109
- package/lib/verify/statementAsDefinedAssertion.js +0 -132
- package/lib/verify/typeAssertion.js +0 -112
- package/src/axiomLemmaTheoremConjecture.js +0 -165
- package/src/verify/statementAsContainedAssertion.js +0 -127
|
@@ -1,174 +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 AxiomLemmaTheoremConjecture;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _label = /*#__PURE__*/ _interop_require_default(require("./label"));
|
|
12
|
-
var _consequent = /*#__PURE__*/ _interop_require_default(require("./consequent"));
|
|
13
|
-
var _supposition = /*#__PURE__*/ _interop_require_default(require("./supposition"));
|
|
14
|
-
var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
|
|
15
|
-
var _array = require("./utilities/array");
|
|
16
|
-
function _class_call_check(instance, Constructor) {
|
|
17
|
-
if (!(instance instanceof Constructor)) {
|
|
18
|
-
throw new TypeError("Cannot call a class as a function");
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function _defineProperties(target, props) {
|
|
22
|
-
for(var i = 0; i < props.length; i++){
|
|
23
|
-
var descriptor = props[i];
|
|
24
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
25
|
-
descriptor.configurable = true;
|
|
26
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
27
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
31
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
32
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
33
|
-
return Constructor;
|
|
34
|
-
}
|
|
35
|
-
function _interop_require_default(obj) {
|
|
36
|
-
return obj && obj.__esModule ? obj : {
|
|
37
|
-
default: obj
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
var AxiomLemmaTheoremConjecture = /*#__PURE__*/ function() {
|
|
41
|
-
function AxiomLemmaTheoremConjecture(labels, suppositions, consequent, localContext) {
|
|
42
|
-
_class_call_check(this, AxiomLemmaTheoremConjecture);
|
|
43
|
-
this.labels = labels;
|
|
44
|
-
this.suppositions = suppositions;
|
|
45
|
-
this.consequent = consequent;
|
|
46
|
-
this.localContext = localContext;
|
|
47
|
-
}
|
|
48
|
-
_create_class(AxiomLemmaTheoremConjecture, [
|
|
49
|
-
{
|
|
50
|
-
key: "getLabels",
|
|
51
|
-
value: function getLabels() {
|
|
52
|
-
return this.labels;
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
key: "getSuppositions",
|
|
57
|
-
value: function getSuppositions() {
|
|
58
|
-
return this.suppositions;
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
key: "getConsequent",
|
|
63
|
-
value: function getConsequent() {
|
|
64
|
-
return this.consequent;
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
key: "getLocalContext",
|
|
69
|
-
value: function getLocalContext() {
|
|
70
|
-
return this.localContext;
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
key: "matchStatement",
|
|
75
|
-
value: function matchStatement(statementNode, localContext) {
|
|
76
|
-
var statementNatches = false;
|
|
77
|
-
var proofSteps = localContext.getProofSteps(), substitutions = [], suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.localContext, localContext);
|
|
78
|
-
if (suppositionsMatch) {
|
|
79
|
-
var consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, localContext);
|
|
80
|
-
statementNatches = consequentMatches; ///
|
|
81
|
-
}
|
|
82
|
-
return statementNatches;
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
key: "matchMetavariableNode",
|
|
87
|
-
value: function matchMetavariableNode(metavariableNode) {
|
|
88
|
-
var matchesMetavariableNode = this.labels.some(function(label) {
|
|
89
|
-
var labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
90
|
-
if (labelMatchesMetavariableNode) {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
return matchesMetavariableNode;
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
key: "toJSON",
|
|
99
|
-
value: function toJSON(tokens) {
|
|
100
|
-
var labelsJSON = this.labels.map(function(label) {
|
|
101
|
-
var labelJSON = label.toJSON(tokens);
|
|
102
|
-
return labelJSON;
|
|
103
|
-
}), suppositionsJSON = this.suppositions.map(function(supposition) {
|
|
104
|
-
var suppositionJSON = supposition.toJSON(tokens);
|
|
105
|
-
return suppositionJSON;
|
|
106
|
-
}), consequentJSON = this.consequent.toJSON(tokens), localContextJSON = this.localContext.toJSON(tokens), labels = labelsJSON, suppositions = suppositionsJSON, consequent = consequentJSON, localContext = localContextJSON, json = {
|
|
107
|
-
labels: labels,
|
|
108
|
-
suppositions: suppositions,
|
|
109
|
-
consequent: consequent,
|
|
110
|
-
localContext: localContext
|
|
111
|
-
};
|
|
112
|
-
return json;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
], [
|
|
116
|
-
{
|
|
117
|
-
key: "fromJSONAndFileContext",
|
|
118
|
-
value: function fromJSONAndFileContext(Class, json, fileContext) {
|
|
119
|
-
var labels = json.labels;
|
|
120
|
-
var labelsJSON = labels; ///
|
|
121
|
-
labels = labelsJSON.map(function(labelJSON) {
|
|
122
|
-
var _$json = labelJSON, label = _label.default.fromJSONAndFileContext(_$json, fileContext);
|
|
123
|
-
return label;
|
|
124
|
-
});
|
|
125
|
-
var suppositions = json.suppositions, consequent = json.consequent, localContext = json.localContext;
|
|
126
|
-
var suppositionsJSON = suppositions; ///
|
|
127
|
-
suppositions = suppositionsJSON.map(function(suppositionJSON) {
|
|
128
|
-
var _$json = suppositionJSON, supposition = _supposition.default.fromJSONAndFileContext(_$json, fileContext);
|
|
129
|
-
return supposition;
|
|
130
|
-
});
|
|
131
|
-
var consequentJSON = consequent; ///
|
|
132
|
-
json = consequentJSON; ///
|
|
133
|
-
consequent = _consequent.default.fromJSONAndFileContext(json, fileContext);
|
|
134
|
-
var localContextJSON = localContext; ///
|
|
135
|
-
json = localContextJSON; ///
|
|
136
|
-
localContext = _local.default.fromJSONAndFileContext(json, fileContext);
|
|
137
|
-
return new Class(labels, suppositions, consequent, localContext); ///
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
key: "fromLabelsSuppositionsConsequentAndLocalContext",
|
|
142
|
-
value: function fromLabelsSuppositionsConsequentAndLocalContext(Class, labels, suppositions, consequent, localContext) {
|
|
143
|
-
return new Class(labels, suppositions, consequent, localContext);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
]);
|
|
147
|
-
return AxiomLemmaTheoremConjecture;
|
|
148
|
-
}();
|
|
149
|
-
function matchSuppositions(suppositions, proofSteps, substitutions, localContext, statementLocalContext) {
|
|
150
|
-
suppositions = (0, _array.reverse)(suppositions); ///
|
|
151
|
-
proofSteps = (0, _array.reverse)(proofSteps); ///
|
|
152
|
-
var suppositionsMatch = (0, _array.correlate)(suppositions, proofSteps, function(supposition, proofStep) {
|
|
153
|
-
var suppositionMatches = matchSupposition(supposition, proofStep, substitutions, localContext, statementLocalContext);
|
|
154
|
-
if (suppositionMatches) {
|
|
155
|
-
return true;
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
return suppositionsMatch;
|
|
159
|
-
}
|
|
160
|
-
function matchSupposition(supposition, proofStep, substitutions, localContext, statementLocalContext) {
|
|
161
|
-
var suppositionMatches = false;
|
|
162
|
-
var statementNode = proofStep.getStatementNode();
|
|
163
|
-
if (statementNode !== null) {
|
|
164
|
-
var suppositionMatchesStatementNode = supposition.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext);
|
|
165
|
-
suppositionMatches = suppositionMatchesStatementNode; ///
|
|
166
|
-
}
|
|
167
|
-
return suppositionMatches;
|
|
168
|
-
}
|
|
169
|
-
function matchConsequent(consequent, statementNode, substitutions, localContext, statementLocalContext) {
|
|
170
|
-
var consequentMatchesStatementNode = consequent.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext), consequentMatches = consequentMatchesStatementNode; ///
|
|
171
|
-
return consequentMatches;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMYWJlbCBmcm9tIFwiLi9sYWJlbFwiO1xuaW1wb3J0IENvbnNlcXVlbnQgZnJvbSBcIi4vY29uc2VxdWVudFwiO1xuaW1wb3J0IFN1cHBvc2l0aW9uIGZyb20gXCIuL3N1cHBvc2l0aW9uXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuL2NvbnRleHQvbG9jYWxcIjtcblxuaW1wb3J0IHsgcmV2ZXJzZSwgY29ycmVsYXRlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9ucztcbiAgICB0aGlzLmNvbnNlcXVlbnQgPSBjb25zZXF1ZW50O1xuICAgIHRoaXMubG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0O1xuICB9XG5cbiAgZ2V0TGFiZWxzKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVscztcbiAgfVxuXG4gIGdldFN1cHBvc2l0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3NpdGlvbnM7XG4gIH1cblxuICBnZXRDb25zZXF1ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnNlcXVlbnQ7XG4gIH1cblxuICBnZXRMb2NhbENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxDb250ZXh0O1xuICB9XG5cbiAgbWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudE5hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByb29mU3RlcHMgPSBsb2NhbENvbnRleHQuZ2V0UHJvb2ZTdGVwcygpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNNYXRjaCA9IG1hdGNoU3VwcG9zaXRpb25zKHRoaXMuc3VwcG9zaXRpb25zLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCB0aGlzLmxvY2FsQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNNYXRjaCkge1xuICAgICAgY29uc3QgY29uc2VxdWVudE1hdGNoZXMgPSBtYXRjaENvbnNlcXVlbnQodGhpcy5jb25zZXF1ZW50LCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCB0aGlzLmxvY2FsQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgc3RhdGVtZW50TmF0Y2hlcyA9IGNvbnNlcXVlbnRNYXRjaGVzOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IG1hdGNoZXNNZXRhdmFyaWFibGVOb2RlID0gdGhpcy5sYWJlbHMuc29tZSgobGFiZWwpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUgPSBsYWJlbC5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmIChsYWJlbE1hdGNoZXNNZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNNZXRhdmFyaWFibGVOb2RlO1xuICB9XG5cbiAgdG9KU09OKHRva2Vucykge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04odG9rZW5zKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNKU09OID0gdGhpcy5zdXBwb3NpdGlvbnMubWFwKChzdXBwb3NpdGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25KU09OID0gc3VwcG9zaXRpb24udG9KU09OKHRva2Vucyk7XG5cbiAgICAgICAgICAgIHJldHVybiBzdXBwb3NpdGlvbkpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uc2VxdWVudEpTT04gPSB0aGlzLmNvbnNlcXVlbnQudG9KU09OKHRva2VucyksXG4gICAgICAgICAgbG9jYWxDb250ZXh0SlNPTiA9IHRoaXMubG9jYWxDb250ZXh0LnRvSlNPTih0b2tlbnMpLFxuICAgICAgICAgIGxhYmVscyA9IGxhYmVsc0pTT04sICAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNKU09OLCAgLy8vXG4gICAgICAgICAgY29uc2VxdWVudCA9IGNvbnNlcXVlbnRKU09OLCAgLy8vXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBsYWJlbHMsXG4gICAgICAgICAgICBzdXBwb3NpdGlvbnMsXG4gICAgICAgICAgICBjb25zZXF1ZW50LFxuICAgICAgICAgICAgbG9jYWxDb250ZXh0XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OQW5kRmlsZUNvbnRleHQoQ2xhc3MsIGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVsczsgIC8vL1xuXG4gICAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IGxhYmVsSlNPTiwgLy8vXG4gICAgICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCB9ID0ganNvbjtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uc0pTT04gPSBzdXBwb3NpdGlvbnM7ICAvLy9cblxuICAgIHN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uc0pTT04ubWFwKChzdXBwb3NpdGlvbkpTT04pID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBzdXBwb3NpdGlvbkpTT04sIC8vL1xuICAgICAgICAgICAgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29uc2VxdWVudEpTT04gPSBjb25zZXF1ZW50OyAgLy8vXG5cbiAgICBqc29uID0gY29uc2VxdWVudEpTT047ICAvLy9cblxuICAgIGNvbnNlcXVlbnQgPSBDb25zZXF1ZW50LmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgY29uc3QgbG9jYWxDb250ZXh0SlNPTiA9IGxvY2FsQ29udGV4dDsgIC8vL1xuXG4gICAganNvbiA9IGxvY2FsQ29udGV4dEpTT047ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBuZXcgQ2xhc3MobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7ICAvLy9cbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dChDbGFzcywgbGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCkgeyByZXR1cm4gbmV3IENsYXNzKGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpOyB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucywgcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpIHtcbiAgc3VwcG9zaXRpb25zID0gcmV2ZXJzZShzdXBwb3NpdGlvbnMpOyAvLy9cblxuICBwcm9vZlN0ZXBzID0gcmV2ZXJzZShwcm9vZlN0ZXBzKTsgLy8vXG5cbiAgY29uc3Qgc3VwcG9zaXRpb25zTWF0Y2ggPSBjb3JyZWxhdGUoc3VwcG9zaXRpb25zLCBwcm9vZlN0ZXBzLCAoc3VwcG9zaXRpb24sIHByb29mU3RlcCkgPT4ge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9uTWF0Y2hlcyA9IG1hdGNoU3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIHByb29mU3RlcCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zTWF0Y2g7XG59XG5cbmZ1bmN0aW9uIG1hdGNoU3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIHByb29mU3RlcCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpIHtcbiAgbGV0IHN1cHBvc2l0aW9uTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25NYXRjaGVzU3RhdGVtZW50Tm9kZSA9IHN1cHBvc2l0aW9uLm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICBzdXBwb3NpdGlvbk1hdGNoZXMgPSBzdXBwb3NpdGlvbk1hdGNoZXNTdGF0ZW1lbnROb2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gc3VwcG9zaXRpb25NYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbnNlcXVlbnQoY29uc2VxdWVudCwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpIHtcbiAgY29uc3QgY29uc2VxdWVudE1hdGNoZXNTdGF0ZW1lbnROb2RlID0gY29uc2VxdWVudC5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpLFxuICAgICAgICBjb25zZXF1ZW50TWF0Y2hlcyA9IGNvbnNlcXVlbnRNYXRjaGVzU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIkF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZSIsImxhYmVscyIsInN1cHBvc2l0aW9ucyIsImNvbnNlcXVlbnQiLCJsb2NhbENvbnRleHQiLCJnZXRMYWJlbHMiLCJnZXRTdXBwb3NpdGlvbnMiLCJnZXRDb25zZXF1ZW50IiwiZ2V0TG9jYWxDb250ZXh0IiwibWF0Y2hTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50TmF0Y2hlcyIsInByb29mU3RlcHMiLCJnZXRQcm9vZlN0ZXBzIiwic3Vic3RpdHV0aW9ucyIsInN1cHBvc2l0aW9uc01hdGNoIiwibWF0Y2hTdXBwb3NpdGlvbnMiLCJjb25zZXF1ZW50TWF0Y2hlcyIsIm1hdGNoQ29uc2VxdWVudCIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSIsInNvbWUiLCJsYWJlbCIsImxhYmVsTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGUiLCJ0b0pTT04iLCJ0b2tlbnMiLCJsYWJlbHNKU09OIiwibWFwIiwibGFiZWxKU09OIiwic3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25KU09OIiwiY29uc2VxdWVudEpTT04iLCJsb2NhbENvbnRleHRKU09OIiwianNvbiIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJDbGFzcyIsImZpbGVDb250ZXh0IiwiTGFiZWwiLCJTdXBwb3NpdGlvbiIsIkNvbnNlcXVlbnQiLCJMb2NhbENvbnRleHQiLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsInN0YXRlbWVudExvY2FsQ29udGV4dCIsInJldmVyc2UiLCJjb3JyZWxhdGUiLCJwcm9vZlN0ZXAiLCJzdXBwb3NpdGlvbk1hdGNoZXMiLCJtYXRjaFN1cHBvc2l0aW9uIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN1cHBvc2l0aW9uTWF0Y2hlc1N0YXRlbWVudE5vZGUiLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJjb25zZXF1ZW50TWF0Y2hlc1N0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBU3FCQTs7OzREQVBIO2lFQUNLO2tFQUNDOzREQUNDO3FCQUVVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBCLElBQUEsQUFBTUEsNENBQUQsQUFBTDthQUFNQSw0QkFDUEMsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLFVBQVUsRUFBRUMsWUFBWTtnQ0FEdkNKO1FBRWpCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxZQUFZLEdBQUdBOztrQkFMSEo7O1lBUW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFlBQVk7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFVBQVU7WUFDeEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFlBQVk7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsYUFBYSxFQUFFTixZQUFZO2dCQUN4QyxJQUFJTyxtQkFBbUI7Z0JBRXZCLElBQU1DLGFBQWFSLGFBQWFTLGFBQWEsSUFDdkNDLGdCQUFnQixFQUFFLEVBQ2xCQyxvQkFBb0JDLGtCQUFrQixJQUFJLENBQUNkLFlBQVksRUFBRVUsWUFBWUUsZUFBZSxJQUFJLENBQUNWLFlBQVksRUFBRUE7Z0JBRTdHLElBQUlXLG1CQUFtQjtvQkFDckIsSUFBTUUsb0JBQW9CQyxnQkFBZ0IsSUFBSSxDQUFDZixVQUFVLEVBQUVPLGVBQWVJLGVBQWUsSUFBSSxDQUFDVixZQUFZLEVBQUVBO29CQUU1R08sbUJBQW1CTSxtQkFBb0IsR0FBRztnQkFDNUM7Z0JBRUEsT0FBT047WUFDVDs7O1lBRUFRLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLGdCQUFnQjtnQkFDcEMsSUFBTUMsMEJBQTBCLElBQUksQ0FBQ3BCLE1BQU0sQ0FBQ3FCLElBQUksQ0FBQyxTQUFDQztvQkFDaEQsSUFBTUMsK0JBQStCRCxNQUFNSixxQkFBcUIsQ0FBQ0M7b0JBRWpFLElBQUlJLDhCQUE4Qjt3QkFDaEMsT0FBTztvQkFDVDtnQkFDRjtnQkFFQSxPQUFPSDtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLE1BQU07Z0JBQ1gsSUFBTUMsYUFBYSxJQUFJLENBQUMxQixNQUFNLENBQUMyQixHQUFHLENBQUMsU0FBQ0w7b0JBQzVCLElBQU1NLFlBQVlOLE1BQU1FLE1BQU0sQ0FBQ0M7b0JBRS9CLE9BQU9HO2dCQUNULElBQ0FDLG1CQUFtQixJQUFJLENBQUM1QixZQUFZLENBQUMwQixHQUFHLENBQUMsU0FBQ0c7b0JBQ3hDLElBQU1DLGtCQUFrQkQsWUFBWU4sTUFBTSxDQUFDQztvQkFFM0MsT0FBT007Z0JBQ1QsSUFDQUMsaUJBQWlCLElBQUksQ0FBQzlCLFVBQVUsQ0FBQ3NCLE1BQU0sQ0FBQ0MsU0FDeENRLG1CQUFtQixJQUFJLENBQUM5QixZQUFZLENBQUNxQixNQUFNLENBQUNDLFNBQzVDekIsU0FBUzBCLFlBQ1R6QixlQUFlNEIsa0JBQ2YzQixhQUFhOEIsZ0JBQ2I3QixlQUFlOEIsa0JBQ2ZDLE9BQU87b0JBQ0xsQyxRQUFBQTtvQkFDQUMsY0FBQUE7b0JBQ0FDLFlBQUFBO29CQUNBQyxjQUFBQTtnQkFDRjtnQkFFTixPQUFPK0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSx1QkFBdUJDLEtBQUssRUFBRUYsSUFBSSxFQUFFRyxXQUFXO2dCQUNwRCxJQUFJLEFBQUVyQyxTQUFXa0MsS0FBWGxDO2dCQUVOLElBQU0wQixhQUFhMUIsUUFBUyxHQUFHO2dCQUUvQkEsU0FBUzBCLFdBQVdDLEdBQUcsQ0FBQyxTQUFDQztvQkFDdkIsSUFBTU0sU0FBT04sV0FDUE4sUUFBUWdCLGNBQUssQ0FBQ0gsc0JBQXNCLENBQUNELFFBQU1HO29CQUVqRCxPQUFPZjtnQkFDVDtnQkFFQSxJQUFNckIsZUFBMkNpQyxLQUEzQ2pDLGNBQWNDLGFBQTZCZ0MsS0FBN0JoQyxZQUFZQyxlQUFpQitCLEtBQWpCL0I7Z0JBRWhDLElBQU0wQixtQkFBbUI1QixjQUFlLEdBQUc7Z0JBRTNDQSxlQUFlNEIsaUJBQWlCRixHQUFHLENBQUMsU0FBQ0k7b0JBQ25DLElBQU1HLFNBQU9ILGlCQUNQRCxjQUFjUyxvQkFBVyxDQUFDSixzQkFBc0IsQ0FBQ0QsUUFBTUc7b0JBRTdELE9BQU9QO2dCQUNUO2dCQUVBLElBQU1FLGlCQUFpQjlCLFlBQWEsR0FBRztnQkFFdkNnQyxPQUFPRixnQkFBaUIsR0FBRztnQkFFM0I5QixhQUFhc0MsbUJBQVUsQ0FBQ0wsc0JBQXNCLENBQUNELE1BQU1HO2dCQUVyRCxJQUFNSixtQkFBbUI5QixjQUFlLEdBQUc7Z0JBRTNDK0IsT0FBT0Qsa0JBQW1CLEdBQUc7Z0JBRTdCOUIsZUFBZXNDLGNBQVksQ0FBQ04sc0JBQXNCLENBQUNELE1BQU1HO2dCQUV6RCxPQUFPLElBQUlELE1BQU1wQyxRQUFRQyxjQUFjQyxZQUFZQyxlQUFnQixHQUFHO1lBQ3hFOzs7WUFFT3VDLEtBQUFBO21CQUFQLFNBQU9BLGdEQUFnRE4sS0FBSyxFQUFFcEMsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLFVBQVUsRUFBRUMsWUFBWTtnQkFBSSxPQUFPLElBQUlpQyxNQUFNcEMsUUFBUUMsY0FBY0MsWUFBWUM7WUFBZTs7O1dBckgvSko7O0FBd0hyQixTQUFTZ0Isa0JBQWtCZCxZQUFZLEVBQUVVLFVBQVUsRUFBRUUsYUFBYSxFQUFFVixZQUFZLEVBQUV3QyxxQkFBcUI7SUFDckcxQyxlQUFlMkMsSUFBQUEsY0FBTyxFQUFDM0MsZUFBZSxHQUFHO0lBRXpDVSxhQUFhaUMsSUFBQUEsY0FBTyxFQUFDakMsYUFBYSxHQUFHO0lBRXJDLElBQU1HLG9CQUFvQitCLElBQUFBLGdCQUFTLEVBQUM1QyxjQUFjVSxZQUFZLFNBQUNtQixhQUFhZ0I7UUFDMUUsSUFBTUMscUJBQXFCQyxpQkFBaUJsQixhQUFhZ0IsV0FBV2pDLGVBQWVWLGNBQWN3QztRQUVqRyxJQUFJSSxvQkFBb0I7WUFDdEIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPakM7QUFDVDtBQUVBLFNBQVNrQyxpQkFBaUJsQixXQUFXLEVBQUVnQixTQUFTLEVBQUVqQyxhQUFhLEVBQUVWLFlBQVksRUFBRXdDLHFCQUFxQjtJQUNsRyxJQUFJSSxxQkFBcUI7SUFFekIsSUFBTXRDLGdCQUFnQnFDLFVBQVVHLGdCQUFnQjtJQUVoRCxJQUFJeEMsa0JBQWtCLE1BQU07UUFDMUIsSUFBTXlDLGtDQUFrQ3BCLFlBQVlxQixrQkFBa0IsQ0FBQzFDLGVBQWVJLGVBQWVWLGNBQWN3QztRQUVuSEkscUJBQXFCRyxpQ0FBa0MsR0FBRztJQUM1RDtJQUVBLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTOUIsZ0JBQWdCZixVQUFVLEVBQUVPLGFBQWEsRUFBRUksYUFBYSxFQUFFVixZQUFZLEVBQUV3QyxxQkFBcUI7SUFDcEcsSUFBTVMsaUNBQWlDbEQsV0FBV2lELGtCQUFrQixDQUFDMUMsZUFBZUksZUFBZVYsY0FBY3dDLHdCQUMzRzNCLG9CQUFvQm9DLGdDQUFnQyxHQUFHO0lBRTdELE9BQU9wQztBQUNUIn0=
|
|
@@ -1,191 +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 MetaLemmaMetatheorem;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _label = /*#__PURE__*/ _interop_require_default(require("./label"));
|
|
12
|
-
var _consequent = /*#__PURE__*/ _interop_require_default(require("./consequent"));
|
|
13
|
-
var _supposition = /*#__PURE__*/ _interop_require_default(require("./supposition"));
|
|
14
|
-
var _statementForMetavariable = /*#__PURE__*/ _interop_require_default(require("./substitution/statementForMetavariable"));
|
|
15
|
-
var _array = require("./utilities/array");
|
|
16
|
-
function _class_call_check(instance, Constructor) {
|
|
17
|
-
if (!(instance instanceof Constructor)) {
|
|
18
|
-
throw new TypeError("Cannot call a class as a function");
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function _defineProperties(target, props) {
|
|
22
|
-
for(var i = 0; i < props.length; i++){
|
|
23
|
-
var descriptor = props[i];
|
|
24
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
25
|
-
descriptor.configurable = true;
|
|
26
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
27
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
31
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
32
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
33
|
-
return Constructor;
|
|
34
|
-
}
|
|
35
|
-
function _interop_require_default(obj) {
|
|
36
|
-
return obj && obj.__esModule ? obj : {
|
|
37
|
-
default: obj
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
var MetaLemmaMetatheorem = /*#__PURE__*/ function() {
|
|
41
|
-
function MetaLemmaMetatheorem(labels, suppositions, consequent, substitutions, fileContext) {
|
|
42
|
-
_class_call_check(this, MetaLemmaMetatheorem);
|
|
43
|
-
this.labels = labels;
|
|
44
|
-
this.suppositions = suppositions;
|
|
45
|
-
this.consequent = consequent;
|
|
46
|
-
this.substitutions = substitutions;
|
|
47
|
-
this.fileContext = fileContext;
|
|
48
|
-
}
|
|
49
|
-
_create_class(MetaLemmaMetatheorem, [
|
|
50
|
-
{
|
|
51
|
-
key: "getLabels",
|
|
52
|
-
value: function getLabels() {
|
|
53
|
-
return this.labels;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
key: "getSuppositions",
|
|
58
|
-
value: function getSuppositions() {
|
|
59
|
-
return this.suppositions;
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
key: "getConsequent",
|
|
64
|
-
value: function getConsequent() {
|
|
65
|
-
return this.consequent;
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
key: "getSubstitutions",
|
|
70
|
-
value: function getSubstitutions() {
|
|
71
|
-
return this.substitutions;
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
key: "getFileContext",
|
|
76
|
-
value: function getFileContext() {
|
|
77
|
-
return this.fileContext;
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
key: "matchStatement",
|
|
82
|
-
value: function matchStatement(statementNode, localContext) {
|
|
83
|
-
var statementNatches = false;
|
|
84
|
-
var metaproofSteps = localContext.getProofSteps(), substitutions = [], suppositionsMatch = matchSuppositions(this.suppositions, metaproofSteps, substitutions, this.fileContext, localContext);
|
|
85
|
-
if (suppositionsMatch) {
|
|
86
|
-
var consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.fileContext, localContext);
|
|
87
|
-
statementNatches = consequentMatches; ///
|
|
88
|
-
}
|
|
89
|
-
return statementNatches;
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
key: "matchMetavariableNode",
|
|
94
|
-
value: function matchMetavariableNode(metavariableNode) {
|
|
95
|
-
var matchesMetavariableNode = this.labels.some(function(label) {
|
|
96
|
-
var labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
97
|
-
if (labelMatchesMetavariableNode) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
return matchesMetavariableNode;
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
key: "toJSON",
|
|
106
|
-
value: function toJSON(tokens) {
|
|
107
|
-
var labelsJSON = this.labels.map(function(label) {
|
|
108
|
-
var labelJSON = label.toJSON(tokens);
|
|
109
|
-
return labelJSON;
|
|
110
|
-
}), suppositionsJSON = this.suppositions.map(function(supposition) {
|
|
111
|
-
var suppositionJSON = supposition.toJSON(tokens);
|
|
112
|
-
return suppositionJSON;
|
|
113
|
-
}), consequentJSON = this.consequent.toJSON(tokens), substitutionsJSON = this.substitutions.map(function(substitution) {
|
|
114
|
-
var substitutionJSON = substitution.toJSON();
|
|
115
|
-
return substitutionJSON;
|
|
116
|
-
}), localContextJSON = this.fileContext.toJSON(tokens), labels = labelsJSON, suppositions = suppositionsJSON, consequent = consequentJSON, substitutions = substitutionsJSON, fileContext = localContextJSON, json = {
|
|
117
|
-
labels: labels,
|
|
118
|
-
suppositions: suppositions,
|
|
119
|
-
consequent: consequent,
|
|
120
|
-
substitutions: substitutions,
|
|
121
|
-
fileContext: fileContext
|
|
122
|
-
};
|
|
123
|
-
return json;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
], [
|
|
127
|
-
{
|
|
128
|
-
key: "fromJSONAndFileContext",
|
|
129
|
-
value: function fromJSONAndFileContext(Class, json, fileContext) {
|
|
130
|
-
var labels = json.labels;
|
|
131
|
-
var labelsJSON = labels; ///
|
|
132
|
-
labels = labelsJSON.map(function(labelJSON) {
|
|
133
|
-
var _$json = labelJSON, label = _label.default.fromJSONAndFileContext(_$json, fileContext);
|
|
134
|
-
return label;
|
|
135
|
-
});
|
|
136
|
-
var suppositions = json.suppositions, consequent = json.consequent, substitutions = json.substitutions;
|
|
137
|
-
var suppositionsJSON = suppositions; ///
|
|
138
|
-
suppositions = suppositionsJSON.map(function(suppositionJSON) {
|
|
139
|
-
var _$json = suppositionJSON, supposition = _supposition.default.fromJSONAndFileContext(_$json, fileContext);
|
|
140
|
-
return supposition;
|
|
141
|
-
});
|
|
142
|
-
var consequentJSON = consequent; ///
|
|
143
|
-
json = consequentJSON; ///
|
|
144
|
-
consequent = _consequent.default.fromJSONAndFileContext(json, fileContext);
|
|
145
|
-
var substitutionsJSON = substitutions; ///
|
|
146
|
-
substitutions = substitutionsJSON.map(function(substitutionJSON) {
|
|
147
|
-
var _$json = substitutionJSON, statementForMetavariableSubstitution = _statementForMetavariable.default.fromJSONAndFileContext(_$json, fileContext), substitution = statementForMetavariableSubstitution; ///
|
|
148
|
-
return substitution;
|
|
149
|
-
});
|
|
150
|
-
return new Class(labels, suppositions, consequent, substitutions, fileContext); ///
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
key: "fromLabelsSuppositionsConsequentSubstitutionsAndFileContext",
|
|
155
|
-
value: function fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(Class, labels, suppositions, consequent, substitutions, fileContext) {
|
|
156
|
-
return new Class(labels, suppositions, consequent, substitutions, fileContext);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
]);
|
|
160
|
-
return MetaLemmaMetatheorem;
|
|
161
|
-
}();
|
|
162
|
-
function matchSuppositions(suppositions, metaproofSteps, substitutions, fileContext, localContext) {
|
|
163
|
-
suppositions = (0, _array.reverse)(suppositions); ///
|
|
164
|
-
metaproofSteps = (0, _array.reverse)(metaproofSteps); ///
|
|
165
|
-
var suppositionsMatch = (0, _array.correlate)(suppositions, metaproofSteps, function(supposition, metaproofStep) {
|
|
166
|
-
var suppositionMatches = matchSupposition(supposition, metaproofStep, substitutions, fileContext, localContext);
|
|
167
|
-
if (suppositionMatches) {
|
|
168
|
-
return true;
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
return suppositionsMatch;
|
|
172
|
-
}
|
|
173
|
-
function matchSupposition(supposition, metaproofStep, substitutions, fileContext, localContext) {
|
|
174
|
-
var matchesSupposition = false;
|
|
175
|
-
var metaSubproofNode = metaproofStep.getSubproofNode(), statementNode = metaproofStep.getStatementNode();
|
|
176
|
-
if (metaSubproofNode !== null) {
|
|
177
|
-
var suppositionMatchesSubproofNode = supposition.matchSubproofNode(metaSubproofNode, substitutions, fileContext, localContext);
|
|
178
|
-
matchesSupposition - suppositionMatchesSubproofNode; ///
|
|
179
|
-
}
|
|
180
|
-
if (statementNode !== null) {
|
|
181
|
-
var suppositionMatchesStatementNode = supposition.matchStatementNode(statementNode, substitutions, fileContext, localContext);
|
|
182
|
-
matchesSupposition - suppositionMatchesStatementNode; ///
|
|
183
|
-
}
|
|
184
|
-
return matchesSupposition;
|
|
185
|
-
}
|
|
186
|
-
function matchConsequent(consequent, statementNode, substitutions, fileContext, localContext) {
|
|
187
|
-
var consequentMatchesStatementNode = consequent.matchStatementNode(statementNode, substitutions, fileContext, localContext), consequentMatches = consequentMatchesStatementNode; ///
|
|
188
|
-
return consequentMatches;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhTGVtbWFNZXRhdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5pbXBvcnQgQ29uc2VxdWVudCBmcm9tIFwiLi9jb25zZXF1ZW50XCI7XG5pbXBvcnQgU3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCBTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gZnJvbSBcIi4vc3Vic3RpdHV0aW9uL3N0YXRlbWVudEZvck1ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyByZXZlcnNlLCBjb3JyZWxhdGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YUxlbW1hTWV0YXRoZW9yZW0ge1xuICBjb25zdHJ1Y3RvcihsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQpIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9ucztcbiAgICB0aGlzLmNvbnNlcXVlbnQgPSBjb25zZXF1ZW50O1xuICAgIHRoaXMuc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnM7XG4gICAgdGhpcy5maWxlQ29udGV4dCA9IGZpbGVDb250ZXh0O1xuICB9XG5cbiAgZ2V0TGFiZWxzKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVscztcbiAgfVxuXG4gIGdldFN1cHBvc2l0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3NpdGlvbnM7XG4gIH1cblxuICBnZXRDb25zZXF1ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnNlcXVlbnQ7XG4gIH1cblxuICBnZXRTdWJzdGl0dXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnROYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBtZXRhcHJvb2ZTdGVwcyA9IGxvY2FsQ29udGV4dC5nZXRQcm9vZlN0ZXBzKCksXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc01hdGNoID0gbWF0Y2hTdXBwb3NpdGlvbnModGhpcy5zdXBwb3NpdGlvbnMsIG1ldGFwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc01hdGNoKSB7XG4gICAgICBjb25zdCBjb25zZXF1ZW50TWF0Y2hlcyA9IG1hdGNoQ29uc2VxdWVudCh0aGlzLmNvbnNlcXVlbnQsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHN0YXRlbWVudE5hdGNoZXMgPSBjb25zZXF1ZW50TWF0Y2hlczsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnROYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBtYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSA9IHRoaXMubGFiZWxzLnNvbWUoKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbE1hdGNoZXNNZXRhdmFyaWFibGVOb2RlID0gbGFiZWwubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTWV0YXZhcmlhYmxlTm9kZTtcbiAgfVxuXG4gIHRvSlNPTih0b2tlbnMpIHtcbiAgICBjb25zdCBsYWJlbHNKU09OID0gdGhpcy5sYWJlbHMubWFwKChsYWJlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFiZWxKU09OID0gbGFiZWwudG9KU09OKHRva2Vucyk7XG5cbiAgICAgICAgICAgIHJldHVybiBsYWJlbEpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zSlNPTiA9IHRoaXMuc3VwcG9zaXRpb25zLm1hcCgoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uSlNPTiA9IHN1cHBvc2l0aW9uLnRvSlNPTih0b2tlbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gc3VwcG9zaXRpb25KU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNvbnNlcXVlbnRKU09OID0gdGhpcy5jb25zZXF1ZW50LnRvSlNPTih0b2tlbnMpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnNKU09OID0gdGhpcy5zdWJzdGl0dXRpb25zLm1hcCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25KU09OID0gc3Vic3RpdHV0aW9uLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0aW9uSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBsb2NhbENvbnRleHRKU09OID0gdGhpcy5maWxlQ29udGV4dC50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zSlNPTiwgIC8vL1xuICAgICAgICAgIGNvbnNlcXVlbnQgPSBjb25zZXF1ZW50SlNPTiwgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zSlNPTiwgIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbG9jYWxDb250ZXh0SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBsYWJlbHMsXG4gICAgICAgICAgICBzdXBwb3NpdGlvbnMsXG4gICAgICAgICAgICBjb25zZXF1ZW50LFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OQW5kRmlsZUNvbnRleHQoQ2xhc3MsIGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVsczsgIC8vL1xuXG4gICAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IGxhYmVsSlNPTiwgLy8vXG4gICAgICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIHN1YnN0aXR1dGlvbnMgfSA9IGpzb247XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbnNKU09OID0gc3VwcG9zaXRpb25zOyAgLy8vXG5cbiAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNKU09OLm1hcCgoc3VwcG9zaXRpb25KU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gc3VwcG9zaXRpb25KU09OLCAvLy9cbiAgICAgICAgICAgIHN1cHBvc2l0aW9uID0gU3VwcG9zaXRpb24uZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgIHJldHVybiBzdXBwb3NpdGlvbjtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnNlcXVlbnRKU09OID0gY29uc2VxdWVudDsgIC8vL1xuXG4gICAganNvbiA9IGNvbnNlcXVlbnRKU09OOyAgLy8vXG5cbiAgICBjb25zZXF1ZW50ID0gQ29uc2VxdWVudC5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnNKU09OID0gc3Vic3RpdHV0aW9uczsgIC8vL1xuXG4gICAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNKU09OLm1hcCgoc3Vic3RpdHV0aW9uSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IHN1YnN0aXR1dGlvbkpTT04sICAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiA9IFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBDbGFzcyhsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQpOyAgLy8vXG4gIH1cblxuICBzdGF0aWMgZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbnRTdWJzdGl0dXRpb25zQW5kRmlsZUNvbnRleHQoQ2xhc3MsIGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCkgeyByZXR1cm4gbmV3IENsYXNzKGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCk7IH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zLCBtZXRhcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCkge1xuICBzdXBwb3NpdGlvbnMgPSByZXZlcnNlKHN1cHBvc2l0aW9ucyk7IC8vL1xuXG4gIG1ldGFwcm9vZlN0ZXBzID0gcmV2ZXJzZShtZXRhcHJvb2ZTdGVwcyk7IC8vL1xuXG4gIGNvbnN0IHN1cHBvc2l0aW9uc01hdGNoID0gY29ycmVsYXRlKHN1cHBvc2l0aW9ucywgbWV0YXByb29mU3RlcHMsIChzdXBwb3NpdGlvbiwgbWV0YXByb29mU3RlcCkgPT4ge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9uTWF0Y2hlcyA9IG1hdGNoU3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIG1ldGFwcm9vZlN0ZXAsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zTWF0Y2g7XG59XG5cbmZ1bmN0aW9uIG1hdGNoU3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIG1ldGFwcm9vZlN0ZXAsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1hdGNoZXNTdXBwb3NpdGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFTdWJwcm9vZk5vZGUgPSBtZXRhcHJvb2ZTdGVwLmdldFN1YnByb29mTm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gbWV0YXByb29mU3RlcC5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgaWYgKG1ldGFTdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbk1hdGNoZXNTdWJwcm9vZk5vZGUgPSBzdXBwb3NpdGlvbi5tYXRjaFN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgIG1hdGNoZXNTdXBwb3NpdGlvbiAtIHN1cHBvc2l0aW9uTWF0Y2hlc1N1YnByb29mTm9kZTsgLy8vXG4gIH1cblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9uTWF0Y2hlc1N0YXRlbWVudE5vZGUgPSBzdXBwb3NpdGlvbi5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBtYXRjaGVzU3VwcG9zaXRpb24gLSBzdXBwb3NpdGlvbk1hdGNoZXNTdGF0ZW1lbnROb2RlOyAvLy9cbiAgfVxuXG4gIHJldHVybiBtYXRjaGVzU3VwcG9zaXRpb247XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uc2VxdWVudChjb25zZXF1ZW50LCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IGNvbnNlcXVlbnRNYXRjaGVzU3RhdGVtZW50Tm9kZSA9IGNvbnNlcXVlbnQubWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpLFxuICAgICAgICBjb25zZXF1ZW50TWF0Y2hlcyA9IGNvbnNlcXVlbnRNYXRjaGVzU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIk1ldGFMZW1tYU1ldGF0aGVvcmVtIiwibGFiZWxzIiwic3VwcG9zaXRpb25zIiwiY29uc2VxdWVudCIsInN1YnN0aXR1dGlvbnMiLCJmaWxlQ29udGV4dCIsImdldExhYmVscyIsImdldFN1cHBvc2l0aW9ucyIsImdldENvbnNlcXVlbnQiLCJnZXRTdWJzdGl0dXRpb25zIiwiZ2V0RmlsZUNvbnRleHQiLCJtYXRjaFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnROYXRjaGVzIiwibWV0YXByb29mU3RlcHMiLCJnZXRQcm9vZlN0ZXBzIiwic3VwcG9zaXRpb25zTWF0Y2giLCJtYXRjaFN1cHBvc2l0aW9ucyIsImNvbnNlcXVlbnRNYXRjaGVzIiwibWF0Y2hDb25zZXF1ZW50IiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1hdGNoZXNNZXRhdmFyaWFibGVOb2RlIiwic29tZSIsImxhYmVsIiwibGFiZWxNYXRjaGVzTWV0YXZhcmlhYmxlTm9kZSIsInRvSlNPTiIsInRva2VucyIsImxhYmVsc0pTT04iLCJtYXAiLCJsYWJlbEpTT04iLCJzdXBwb3NpdGlvbnNKU09OIiwic3VwcG9zaXRpb24iLCJzdXBwb3NpdGlvbkpTT04iLCJjb25zZXF1ZW50SlNPTiIsInN1YnN0aXR1dGlvbnNKU09OIiwic3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uSlNPTiIsImxvY2FsQ29udGV4dEpTT04iLCJqc29uIiwiZnJvbUpTT05BbmRGaWxlQ29udGV4dCIsIkNsYXNzIiwiTGFiZWwiLCJTdXBwb3NpdGlvbiIsIkNvbnNlcXVlbnQiLCJzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudFN1YnN0aXR1dGlvbnNBbmRGaWxlQ29udGV4dCIsInJldmVyc2UiLCJjb3JyZWxhdGUiLCJtZXRhcHJvb2ZTdGVwIiwic3VwcG9zaXRpb25NYXRjaGVzIiwibWF0Y2hTdXBwb3NpdGlvbiIsIm1hdGNoZXNTdXBwb3NpdGlvbiIsIm1ldGFTdWJwcm9vZk5vZGUiLCJnZXRTdWJwcm9vZk5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwic3VwcG9zaXRpb25NYXRjaGVzU3VicHJvb2ZOb2RlIiwibWF0Y2hTdWJwcm9vZk5vZGUiLCJzdXBwb3NpdGlvbk1hdGNoZXNTdGF0ZW1lbnROb2RlIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwiY29uc2VxdWVudE1hdGNoZXNTdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7Ozs0REFQSDtpRUFDSztrRUFDQzsrRUFDeUI7cUJBRWQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEIsSUFBQSxBQUFNQSxxQ0FBRCxBQUFMO2FBQU1BLHFCQUNQQyxNQUFNLEVBQUVDLFlBQVksRUFBRUMsVUFBVSxFQUFFQyxhQUFhLEVBQUVDLFdBQVc7Z0NBRHJETDtRQUVqQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtRQUNyQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7O2tCQU5GTDs7WUFTbkJNLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0wsTUFBTTtZQUNwQjs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0wsWUFBWTtZQUMxQjs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0wsVUFBVTtZQUN4Qjs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0wsYUFBYTtZQUMzQjs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0wsV0FBVztZQUN6Qjs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlQyxhQUFhLEVBQUVDLFlBQVk7Z0JBQ3hDLElBQUlDLG1CQUFtQjtnQkFFdkIsSUFBTUMsaUJBQWlCRixhQUFhRyxhQUFhLElBQzNDWixnQkFBZ0IsRUFBRSxFQUNsQmEsb0JBQW9CQyxrQkFBa0IsSUFBSSxDQUFDaEIs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
|
|
@@ -1,109 +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: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
default: function() {
|
|
13
|
-
return verifyStatementAsContainedAssertion;
|
|
14
|
-
},
|
|
15
|
-
isStatementContainedAssertion: function() {
|
|
16
|
-
return isStatementContainedAssertion;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
|
|
20
|
-
var _constants = require("../constants");
|
|
21
|
-
var _verify = require("../utilities/verify");
|
|
22
|
-
var _query = require("../utilities/query");
|
|
23
|
-
function _interop_require_default(obj) {
|
|
24
|
-
return obj && obj.__esModule ? obj : {
|
|
25
|
-
default: obj
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
var termNodeQuery = (0, _query.nodeQuery)("/statement/term!"), statementTermNodesQuery = (0, _query.nodesQuery)("/statement/metaArgument/statement//term"), operatorTerminalNodesQuery = (0, _query.nodesQuery)("/statement/@operator");
|
|
29
|
-
function verifyStatementAsContainedAssertion(statementNode, assignments, derived, localContext) {
|
|
30
|
-
var statementVerifiedAsContainedAssertion;
|
|
31
|
-
var statementContainedAssertion = isStatementContainedAssertion(statementNode);
|
|
32
|
-
if (statementContainedAssertion) {
|
|
33
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
34
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement as a contained assertion..."), statementNode);
|
|
35
|
-
var statementFunctions = [
|
|
36
|
-
verifyStatementAsDerivedContainedAssertion,
|
|
37
|
-
verifyStatementAsStatedContainedAssertion
|
|
38
|
-
];
|
|
39
|
-
statementVerifiedAsContainedAssertion = statementFunctions.some(function(statementFunction) {
|
|
40
|
-
var statementVerifiedAsContainedAssertion = statementFunction(statementNode, assignments, derived, localContext);
|
|
41
|
-
if (statementVerifiedAsContainedAssertion) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
if (statementVerifiedAsContainedAssertion) {
|
|
46
|
-
localContext.debug("...verified the '".concat(statementString, "' statement as a contained assertion."), statementNode);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return statementVerifiedAsContainedAssertion;
|
|
50
|
-
}
|
|
51
|
-
function verifyStatementAsDerivedContainedAssertion(statementNode, assignments, derived, localContext) {
|
|
52
|
-
var statementVerifiedAsDefinedContainedAssertion = false;
|
|
53
|
-
if (derived) {
|
|
54
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
55
|
-
localContext.trace("Verifying the derived '".concat(statementString, "' statement as a contained assertion..."), statementNode);
|
|
56
|
-
var statementNegated = (0, _verify.isStatementNegated)(statementNode), termNode = termNodeQuery(statementNode), negated = statementNegated, statementTermNodes = statementTermNodesQuery(statementNode), termNodeMatchesMetaArgumentVariableNode = statementTermNodes.some(function(statementTermNode) {
|
|
57
|
-
var termNodeMatchesMetaArgumentVariableNode = termNode.match(statementTermNode);
|
|
58
|
-
if (termNodeMatchesMetaArgumentVariableNode) {
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
if (!negated) {
|
|
63
|
-
if (termNodeMatchesMetaArgumentVariableNode) {
|
|
64
|
-
statementVerifiedAsDefinedContainedAssertion = true;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (negated) {
|
|
68
|
-
if (!termNodeMatchesMetaArgumentVariableNode) {
|
|
69
|
-
statementVerifiedAsDefinedContainedAssertion = true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (statementVerifiedAsDefinedContainedAssertion) {
|
|
73
|
-
localContext.debug("...verified the derived '".concat(statementString, "' statement as a contained assertion."), statementNode);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return statementVerifiedAsDefinedContainedAssertion;
|
|
77
|
-
}
|
|
78
|
-
function verifyStatementAsStatedContainedAssertion(statementNode, assignments, derived, localContext) {
|
|
79
|
-
var statementVerifiedAsStatedContainedAssertion = false;
|
|
80
|
-
if (!derived) {
|
|
81
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
82
|
-
localContext.trace("Verifying the stated '".concat(statementString, "' statement as a contained assertion..."), statementNode);
|
|
83
|
-
var intrinsicLevel = localContext.isIntrinsicLevel();
|
|
84
|
-
if (intrinsicLevel) {
|
|
85
|
-
localContext.debug("The stated '".concat(statementString, "' statement as a contained assertion cannot be verified at intrinsic level."), statementNode);
|
|
86
|
-
} else {
|
|
87
|
-
var nonTerminalNode = statementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
|
|
88
|
-
var verifiedAhead = true;
|
|
89
|
-
return verifiedAhead;
|
|
90
|
-
});
|
|
91
|
-
statementVerifiedAsStatedContainedAssertion = nonTerminalNodeVerified; ///
|
|
92
|
-
}
|
|
93
|
-
if (statementVerifiedAsStatedContainedAssertion) {
|
|
94
|
-
localContext.debug("...verified the stated '".concat(statementString, "' statement as a contained assertion."), statementNode);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return statementVerifiedAsStatedContainedAssertion;
|
|
98
|
-
}
|
|
99
|
-
function isStatementContainedAssertion(statementNode) {
|
|
100
|
-
var operatorTerminalNodes = operatorTerminalNodesQuery(statementNode), statementContainedAssertion = operatorTerminalNodes.some(function(operatorTerminalNode) {
|
|
101
|
-
var content = operatorTerminalNode.getContent(), contentContained = content === _constants.CONTAINED;
|
|
102
|
-
if (contentContained) {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
return statementContainedAssertion;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBtZXRhTGV2ZWxOb2RlVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyL25vZGUvbWV0YUxldmVsXCI7XG5cbmltcG9ydCB7IENPTlRBSU5FRCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGlzU3RhdGVtZW50TmVnYXRlZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3Rlcm0hXCIpLFxuICAgICAgc3RhdGVtZW50VGVybU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhQXJndW1lbnQvc3RhdGVtZW50Ly90ZXJtXCIpLFxuICAgICAgb3BlcmF0b3JUZXJtaW5hbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3N0YXRlbWVudC9Ab3BlcmF0b3JcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb247XG5cbiAgY29uc3Qgc3RhdGVtZW50Q29udGFpbmVkQXNzZXJ0aW9uID0gaXNTdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbikge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgICAgdmVyaWZ5U3RhdGVtZW50QXNEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uLFxuICAgICAgdmVyaWZ5U3RhdGVtZW50QXNTdGF0ZWRDb250YWluZWRBc3NlcnRpb25cbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKChzdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0Rlcml2ZWRDb250YWluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgZGVyaXZlZCAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROZWdhdGVkID0gaXNTdGF0ZW1lbnROZWdhdGVkKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBuZWdhdGVkID0gc3RhdGVtZW50TmVnYXRlZCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50VGVybU5vZGVzID0gc3RhdGVtZW50VGVybU5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgdGVybU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gc3RhdGVtZW50VGVybU5vZGVzLnNvbWUoKHN0YXRlbWVudFRlcm1Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUgPSB0ZXJtTm9kZS5tYXRjaChzdGF0ZW1lbnRUZXJtTm9kZSk7XG5cbiAgICAgICAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRDb250YWluZWRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICBpZiAoIXRlcm1Ob2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZENvbnRhaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBkZXJpdmVkICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbiBjYW5ub3QgYmUgdmVyaWZpZWQgYXQgaW50cmluc2ljIGxldmVsLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbWV0YUxldmVsTm9kZVZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGVtZW50Q29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3Qgb3BlcmF0b3JUZXJtaW5hbE5vZGVzID0gb3BlcmF0b3JUZXJtaW5hbE5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbiA9IG9wZXJhdG9yVGVybWluYWxOb2Rlcy5zb21lKChvcGVyYXRvclRlcm1pbmFsTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBvcGVyYXRvclRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICAgICAgY29udGVudENvbnRhaW5lZCA9IChjb250ZW50ID09PSBDT05UQUlORUQpO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnRDb250YWluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudENvbnRhaW5lZEFzc2VydGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiIsImlzU3RhdGVtZW50Q29udGFpbmVkQXNzZXJ0aW9uIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudFRlcm1Ob2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5Iiwic3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRDb250YWluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRGVyaXZlZENvbnRhaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzU3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uIiwic29tZSIsInN0YXRlbWVudEZ1bmN0aW9uIiwiZGVidWciLCJzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZENvbnRhaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudE5lZ2F0ZWQiLCJpc1N0YXRlbWVudE5lZ2F0ZWQiLCJ0ZXJtTm9kZSIsIm5lZ2F0ZWQiLCJzdGF0ZW1lbnRUZXJtTm9kZXMiLCJ0ZXJtTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRUZXJtTm9kZSIsIm1hdGNoIiwic3RhdGVtZW50VmVyaWZpZWRBc1N0YXRlZENvbnRhaW5lZEFzc2VydGlvbiIsImludHJpbnNpY0xldmVsIiwiaXNJbnRyaW5zaWNMZXZlbCIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwibWV0YUxldmVsTm9kZVZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwidmVyaWZpZWRBaGVhZCIsIm9wZXJhdG9yVGVybWluYWxOb2RlcyIsIm9wZXJhdG9yVGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJjb250ZW50Q29udGFpbmVkIiwiQ09OVEFJTkVEIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFZQSxPQTZCQztlQTdCdUJBOztJQXNHUkMsNkJBQTZCO2VBQTdCQTs7O2dFQWhIa0I7eUJBRVI7c0JBQ1M7cUJBQ0c7Ozs7OztBQUV0QyxJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMscUJBQzFCQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUMsNENBQ3JDQyw2QkFBNkJELElBQUFBLGlCQUFVLEVBQUM7QUFFL0IsU0FBU0wsb0NBQW9DTyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzNHLElBQUlDO0lBRUosSUFBTUMsOEJBQThCWCw4QkFBOEJNO0lBRWxFLElBQUlLLDZCQUE2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
|