occam-verify-cli 0.0.502 → 0.0.504

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/axiom.js +4 -4
  2. package/lib/axiomLemmaTheorem.js +58 -58
  3. package/lib/consequence.js +157 -0
  4. package/lib/lemma.js +4 -4
  5. package/lib/metaSupposition.js +214 -0
  6. package/lib/supposition.js +214 -0
  7. package/lib/theorem.js +4 -4
  8. package/lib/verify/axiom.js +11 -11
  9. package/lib/verify/consequence.js +35 -0
  10. package/lib/verify/derivation.js +7 -7
  11. package/lib/verify/lemma.js +12 -12
  12. package/lib/verify/metaDerivation.js +7 -7
  13. package/lib/verify/metaSupposition.js +41 -0
  14. package/lib/verify/supposition.js +41 -0
  15. package/lib/verify/theorem.js +12 -12
  16. package/package.json +3 -3
  17. package/src/axiom.js +1 -1
  18. package/src/axiomLemmaTheorem.js +57 -57
  19. package/src/consequence.js +187 -0
  20. package/src/lemma.js +1 -1
  21. package/src/metaSupposition.js +235 -0
  22. package/src/supposition.js +235 -0
  23. package/src/theorem.js +1 -1
  24. package/src/verify/axiom.js +17 -17
  25. package/src/verify/consequence.js +34 -0
  26. package/src/verify/derivation.js +8 -8
  27. package/src/verify/lemma.js +18 -18
  28. package/src/verify/metaDerivation.js +8 -8
  29. package/src/verify/metaSupposition.js +44 -0
  30. package/src/verify/supposition.js +44 -0
  31. package/src/verify/theorem.js +18 -18
  32. package/lib/antecedent.js +0 -214
  33. package/lib/consequent.js +0 -157
  34. package/lib/metaAntecedent.js +0 -214
  35. package/lib/verify/antecedent.js +0 -41
  36. package/lib/verify/consequent.js +0 -35
  37. package/lib/verify/metaAntecedent.js +0 -41
  38. package/src/antecedent.js +0 -235
  39. package/src/consequent.js +0 -187
  40. package/src/metaAntecedent.js +0 -235
  41. package/src/verify/antecedent.js +0 -44
  42. package/src/verify/consequent.js +0 -34
  43. package/src/verify/metaAntecedent.js +0 -44
@@ -1,214 +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 MetaAntecedent;
9
- }
10
- });
11
- var _metaSubstitution = /*#__PURE__*/ _interopRequireDefault(require("./metaSubstitution"));
12
- var _array = require("./utilities/array");
13
- var _string = require("./utilities/string");
14
- var _query = require("./utilities/query");
15
- var _ruleNames = require("./ruleNames");
16
- function _arrayLikeToArray(arr, len) {
17
- if (len == null || len > arr.length) len = arr.length;
18
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19
- return arr2;
20
- }
21
- function _arrayWithoutHoles(arr) {
22
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
23
- }
24
- function _classCallCheck(instance, Constructor) {
25
- if (!(instance instanceof Constructor)) {
26
- throw new TypeError("Cannot call a class as a function");
27
- }
28
- }
29
- function _defineProperties(target, props) {
30
- for(var i = 0; i < props.length; i++){
31
- var descriptor = props[i];
32
- descriptor.enumerable = descriptor.enumerable || false;
33
- descriptor.configurable = true;
34
- if ("value" in descriptor) descriptor.writable = true;
35
- Object.defineProperty(target, descriptor.key, descriptor);
36
- }
37
- }
38
- function _createClass(Constructor, protoProps, staticProps) {
39
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
40
- if (staticProps) _defineProperties(Constructor, staticProps);
41
- return Constructor;
42
- }
43
- function _interopRequireDefault(obj) {
44
- return obj && obj.__esModule ? obj : {
45
- default: obj
46
- };
47
- }
48
- function _iterableToArray(iter) {
49
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
50
- }
51
- function _nonIterableSpread() {
52
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
53
- }
54
- function _toConsumableArray(arr) {
55
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
56
- }
57
- function _unsupportedIterableToArray(o, minLen) {
58
- if (!o) return;
59
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
60
- var n = Object.prototype.toString.call(o).slice(8, -1);
61
- if (n === "Object" && o.constructor) n = o.constructor.name;
62
- if (n === "Map" || n === "Set") return Array.from(n);
63
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
64
- }
65
- var metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion!"), unqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/unqualifiedMetastatement/metastatement!"), qualifiedOrUnqualifiedMetastatementMetastatementNodeQuery = (0, _query.nodeQuery)("/metaSubproof/subDerivation/qualifiedMetastatement|unqualifiedMetastatement[-1]/metastatement!");
66
- var MetaAntecedent = /*#__PURE__*/ function() {
67
- function MetaAntecedent(metastatementNode) {
68
- _classCallCheck(this, MetaAntecedent);
69
- this.metastatementNode = metastatementNode;
70
- }
71
- _createClass(MetaAntecedent, [
72
- {
73
- key: "getMetastatementNode",
74
- value: function getMetastatementNode() {
75
- return this.metastatementNode;
76
- }
77
- },
78
- {
79
- key: "matchSubproofNode",
80
- value: function matchSubproofNode(metaSubproofNode, metaSubstitutions) {
81
- var metaSubproofNodeMatches = false;
82
- var metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(this.metastatementNode);
83
- if (metaSubproofAssertionNode !== null) {
84
- var metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode), unqualifiedMetastatementMetastatementNodes = unqualifiedMetastatementMetastatementNodesQuery(metaSubproofNode), qualifiedOrUnqualifiedMetastatementMetastatementNode = qualifiedOrUnqualifiedMetastatementMetastatementNodeQuery(metaSubproofNode), metastatementNodes = _toConsumableArray(unqualifiedMetastatementMetastatementNodes).concat([
85
- qualifiedOrUnqualifiedMetastatementMetastatementNode
86
- ]), metastatementNodesLength = metastatementNodes.length, metaSubproofAssertionMetastatementNodesLength = metaSubproofAssertionMetastatementNodes.length;
87
- if (metastatementNodesLength === metaSubproofAssertionMetastatementNodesLength) {
88
- metaSubproofNodeMatches = metaSubproofAssertionMetastatementNodes.every(function(metaSubproofAssertionMetastatementNode, index) {
89
- var metastatementNode = metastatementNodes[index], nonTerminalNode = metastatementNode, metaAntecedentNonTerminalNode = metaSubproofAssertionMetastatementNode, metaAntecedentNonTerminalNodeMatches = matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions);
90
- if (metaAntecedentNonTerminalNodeMatches) {
91
- return true;
92
- }
93
- });
94
- }
95
- }
96
- return metaSubproofNodeMatches;
97
- }
98
- },
99
- {
100
- key: "matchMetastatementNode",
101
- value: function matchMetastatementNode(metastatementNode, metaSubstitutions) {
102
- var nonTerminalNode = metastatementNode, metaAntecedentNonTerminalNode = this.metastatementNode, metaAntecedentNonTerminalNodeMatches = matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions), metastatementNodeMatches = metaAntecedentNonTerminalNodeMatches; ///
103
- return metastatementNodeMatches;
104
- }
105
- },
106
- {
107
- key: "toJSON",
108
- value: function toJSON() {
109
- var metastatementString = (0, _string.nodeAsString)(this.metastatementNode), metastatement = metastatementString, json = {
110
- metastatement: metastatement
111
- };
112
- return json;
113
- }
114
- }
115
- ], [
116
- {
117
- key: "fromJSON",
118
- value: function fromJSON(json, releaseContext) {
119
- var metastatement = json.metastatement, metastatementString = metastatement, metastatementNode = (0, _string.metastatementNodeFromMetastatementString)(metastatementString, releaseContext), metaAntecedent = new MetaAntecedent(metastatementNode);
120
- return metaAntecedent;
121
- }
122
- },
123
- {
124
- key: "fromMetastatementNode",
125
- value: function fromMetastatementNode(metastatementNode) {
126
- var metaAntecedent = new MetaAntecedent(metastatementNode);
127
- return metaAntecedent;
128
- }
129
- }
130
- ]);
131
- return MetaAntecedent;
132
- }();
133
- function matchMetaAntecedentNode(metaAntecedentNode, node, metaSubstitutions) {
134
- var metaAntecedentNodeMatches = false;
135
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = metaAntecedentNode.isTerminalNode();
136
- if (nodeTerminalNode === ruleNodeTerminalNode) {
137
- if (nodeTerminalNode) {
138
- var terminalNode = node, metaAntecedentTerminalNode = metaAntecedentNode, metaAntecedentTerminalNodeMatches = matchMetaAntecedentTerminalNode(metaAntecedentTerminalNode, terminalNode, metaSubstitutions);
139
- metaAntecedentNodeMatches = metaAntecedentTerminalNodeMatches; ///
140
- } else {
141
- var nonTerminalNode = node, metaAntecedentNonTerminalNode = metaAntecedentNode, metaAntecedentNonTerminalNodeMatches = matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions);
142
- metaAntecedentNodeMatches = metaAntecedentNonTerminalNodeMatches; ///
143
- }
144
- }
145
- return metaAntecedentNodeMatches;
146
- }
147
- function matchMetaAntecedentNodes(metaAntecedentNodes, nodes, metaSubstitutions) {
148
- var metaAntecedentNodesMatches = false;
149
- var nodesLength = nodes.length, metaAntecedentNodesLength = metaAntecedentNodes.length;
150
- if (nodesLength === metaAntecedentNodesLength) {
151
- metaAntecedentNodesMatches = nodes.every(function(node, index) {
152
- var metaAntecedentNode = metaAntecedentNodes[index], metaAntecedentNodeMatches = matchMetaAntecedentNode(metaAntecedentNode, node, metaSubstitutions);
153
- if (metaAntecedentNodeMatches) {
154
- return true;
155
- }
156
- });
157
- }
158
- return metaAntecedentNodesMatches;
159
- }
160
- function matchMetaAntecedentMetavariable(metaAntecedentMetavariableNode, nodes, metaSubstitutions) {
161
- var metaAntecedentMetavariableMatches;
162
- var metaAntecedentMetavariableName = (0, _query.metavariableNameFromMetavariableNode)(metaAntecedentMetavariableNode), metaSubstitution = metaSubstitutions.find(function(metaSubstitution) {
163
- var metavariableName = metaSubstitution.getMetavariableName();
164
- if (metavariableName === metaAntecedentMetavariableName) {
165
- return true;
166
- }
167
- }) || null;
168
- if (metaSubstitution !== null) {
169
- var metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
170
- metaAntecedentMetavariableMatches = metaSubstitutionNodesMatch; ///
171
- } else {
172
- var metavariableName = metaAntecedentMetavariableName, metaSubstitution1 = _metaSubstitution.default.fromMetavariableNameAndNodes(metavariableName, nodes);
173
- metaSubstitutions.push(metaSubstitution1);
174
- metaAntecedentMetavariableMatches = true;
175
- }
176
- return metaAntecedentMetavariableMatches;
177
- }
178
- function matchMetaAntecedentTerminalNode(metaAntecedentTerminalNode, terminalNode, metaSubstitutions) {
179
- var matches = metaAntecedentTerminalNode.match(terminalNode), metaAntecedentTerminalNodeMatches = matches;
180
- return metaAntecedentTerminalNodeMatches;
181
- }
182
- function matchMetaAntecedentNonTerminalNode(metaAntecedentNonTerminalNode, nonTerminalNode, metaSubstitutions) {
183
- var metaAntecedentNonTerminalNodeMatches = false;
184
- var ruleName = nonTerminalNode.getRuleName(), metaAntecedentRuleName = metaAntecedentNonTerminalNode.getRuleName(); ///
185
- if (ruleName === metaAntecedentRuleName) {
186
- var childNodes = nonTerminalNode.getChildNodes(), metaAntecedentChildNodes = metaAntecedentNonTerminalNode.getChildNodes(), nodes = childNodes, metaAntecedentNodes = metaAntecedentChildNodes, metaAntecedentChildNodesMatches = matchMetaAntecedentNodes(metaAntecedentNodes, nodes, metaSubstitutions);
187
- metaAntecedentNonTerminalNodeMatches = metaAntecedentChildNodesMatches; ///
188
- if (!metaAntecedentNonTerminalNodeMatches) {
189
- var ruleNameMetastatementRuleName = ruleName === _ruleNames.METASTATEMENT_RULE_NAME;
190
- if (ruleNameMetastatementRuleName) {
191
- var metastatementNode = nonTerminalNode, metaAntecedentMetastatementNode = metaAntecedentNonTerminalNode, metaAntecedentMetastatementNodeMatches = matchMetaAntecedentMetastatementNode(metaAntecedentMetastatementNode, metastatementNode, metaSubstitutions);
192
- metaAntecedentNonTerminalNodeMatches = metaAntecedentMetastatementNodeMatches; ///
193
- }
194
- }
195
- }
196
- return metaAntecedentNonTerminalNodeMatches;
197
- }
198
- function matchMetaAntecedentMetastatementNode(metaAntecedentMetastatementNode, metastatementNode, metaSubstitutions) {
199
- var metaAntecedentMetastatementNodeMatches = false;
200
- var metaAntecedentNonTerminalNode = metaAntecedentMetastatementNode, metaAntecedentChildNodes = metaAntecedentNonTerminalNode.getChildNodes(), metaAntecedentChildNodesLength = metaAntecedentChildNodes.length;
201
- if (metaAntecedentChildNodesLength === 1) {
202
- var firstMetaAntecedentChildNode = (0, _array.first)(metaAntecedentChildNodes), metaAntecedentChildNode = firstMetaAntecedentChildNode, metaAntecedentChildNodeNonTerminalNode = metaAntecedentChildNode.isNonTerminalNode();
203
- if (metaAntecedentChildNodeNonTerminalNode) {
204
- var metaAntecedentNonTerminalChildNode = metaAntecedentChildNode, metaAntecedentNonTerminalChildNodeRuleName = metaAntecedentNonTerminalChildNode.getRuleName(), metaAntecedentNonTerminalChildNodeRuleNameMetavariableRuleName = metaAntecedentNonTerminalChildNodeRuleName === _ruleNames.METAVARIABLE_RULE_NAME;
205
- if (metaAntecedentNonTerminalChildNodeRuleNameMetavariableRuleName) {
206
- var metaAntecedentMetavariableNode = metaAntecedentNonTerminalChildNode, nonTerminalNode = metastatementNode, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, metaAntecedentMetavariableMatches = matchMetaAntecedentMetavariable(metaAntecedentMetavariableNode, nodes, metaSubstitutions);
207
- metaAntecedentMetastatementNodeMatches = metaAntecedentMetavariableMatches; ///
208
- }
209
- }
210
- }
211
- return metaAntecedentMetastatementNodeMatches;
212
- }
213
-
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhQW50ZWNlZGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1ldGFTdWJzdGl0dXRpb24gZnJvbSBcIi4vbWV0YVN1YnN0aXR1dGlvblwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1ldGFzdGF0ZW1lbnROb2RlRnJvbU1ldGFzdGF0ZW1lbnRTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbWV0YVN1YnByb29mQXNzZXJ0aW9uL21ldGFzdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9tZXRhU3VicHJvb2ZBc3NlcnRpb24hXCIpLFxuICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGFTdWJwcm9vZi91bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQvbWV0YXN0YXRlbWVudCFcIiksXG4gICAgICBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YVN1YnByb29mL3N1YkRlcml2YXRpb24vcXVhbGlmaWVkTWV0YXN0YXRlbWVudHx1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRbLTFdL21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXRhQW50ZWNlZGVudCB7XG4gIGNvbnN0cnVjdG9yKG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0TWV0YXN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBtYXRjaFN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICAgIGxldCBtZXRhU3VicHJvb2ZOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMgPSBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeShtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlcyA9IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KG1ldGFTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSA9IHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVRdWVyeShtZXRhU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlcyA9IFtcbiAgICAgICAgICAgICAgLi4udW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzLFxuICAgICAgICAgICAgICBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVzTGVuZ3RoID0gbWV0YXN0YXRlbWVudE5vZGVzLmxlbmd0aCxcbiAgICAgICAgICAgIG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2Rlc0xlbmd0aCA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2Rlcy5sZW5ndGg7XG5cbiAgICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZXNMZW5ndGggPT09IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2Rlc0xlbmd0aCkge1xuICAgICAgICBtZXRhU3VicHJvb2ZOb2RlTWF0Y2hlcyA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2Rlcy5ldmVyeSgobWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZSA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlKG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YVN1YnByb29mTm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGUgPSB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZShtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50ID0gbWV0YXN0YXRlbWVudFN0cmluZywgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG1ldGFzdGF0ZW1lbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG1ldGFzdGF0ZW1lbnQgfSA9IGpzb24sXG4gICAgICAgICAgbWV0YXN0YXRlbWVudFN0cmluZyA9IG1ldGFzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlRnJvbU1ldGFzdGF0ZW1lbnRTdHJpbmcobWV0YXN0YXRlbWVudFN0cmluZywgcmVsZWFzZUNvbnRleHQpLFxuICAgICAgICAgIG1ldGFBbnRlY2VkZW50ID0gbmV3IE1ldGFBbnRlY2VkZW50KG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBtZXRhQW50ZWNlZGVudDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBtZXRhQW50ZWNlZGVudCA9IG5ldyBNZXRhQW50ZWNlZGVudChtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YUFudGVjZWRlbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQW50ZWNlZGVudE5vZGUobWV0YUFudGVjZWRlbnROb2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgbWV0YUFudGVjZWRlbnROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgIHJ1bGVOb2RlVGVybWluYWxOb2RlID0gbWV0YUFudGVjZWRlbnROb2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUgPT09IHJ1bGVOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFBbnRlY2VkZW50VGVybWluYWxOb2RlID0gbWV0YUFudGVjZWRlbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhQW50ZWNlZGVudFRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFBbnRlY2VkZW50VGVybWluYWxOb2RlKG1ldGFBbnRlY2VkZW50VGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YUFudGVjZWRlbnROb2RlTWF0Y2hlcyA9IG1ldGFBbnRlY2VkZW50VGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlID0gbWV0YUFudGVjZWRlbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlKG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YUFudGVjZWRlbnROb2RlTWF0Y2hlcyA9IG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFBbnRlY2VkZW50Tm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YUFudGVjZWRlbnROb2RlcyhtZXRhQW50ZWNlZGVudE5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IG1ldGFBbnRlY2VkZW50Tm9kZXNNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZXNMZW5ndGggPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIG1ldGFBbnRlY2VkZW50Tm9kZXNMZW5ndGggPSBtZXRhQW50ZWNlZGVudE5vZGVzLmxlbmd0aDtcblxuICBpZiAobm9kZXNMZW5ndGggPT09IG1ldGFBbnRlY2VkZW50Tm9kZXNMZW5ndGgpIHtcbiAgICBtZXRhQW50ZWNlZGVudE5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgbWV0YUFudGVjZWRlbnROb2RlID0gbWV0YUFudGVjZWRlbnROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBtZXRhQW50ZWNlZGVudE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQW50ZWNlZGVudE5vZGUobWV0YUFudGVjZWRlbnROb2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmIChtZXRhQW50ZWNlZGVudE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFBbnRlY2VkZW50Tm9kZXNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFBbnRlY2VkZW50TWV0YXZhcmlhYmxlKG1ldGFBbnRlY2VkZW50TWV0YXZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBtZXRhQW50ZWNlZGVudE1ldGF2YXJpYWJsZU1hdGNoZXM7XG5cbiAgY29uc3QgbWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGFBbnRlY2VkZW50TWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGFTdWJzdGl0dXRpb24gPSBtZXRhU3Vic3RpdHV0aW9ucy5maW5kKChtZXRhU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGFTdWJzdGl0dXRpb24uZ2V0TWV0YXZhcmlhYmxlTmFtZSgpO1xuXG4gICAgICAgICAgaWYgKG1ldGF2YXJpYWJsZU5hbWUgPT09IG1ldGFBbnRlY2VkZW50TWV0YXZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChtZXRhU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtZXRhU3Vic3RpdHV0aW9uLm1hdGNoTm9kZXMobm9kZXMpO1xuXG4gICAgbWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVNYXRjaGVzID0gbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2g7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gbWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVOYW1lLCAvLy9cbiAgICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gTWV0YVN1YnN0aXR1dGlvbi5mcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE5vZGVzKG1ldGF2YXJpYWJsZU5hbWUsIG5vZGVzKTtcblxuICAgIG1ldGFTdWJzdGl0dXRpb25zLnB1c2gobWV0YVN1YnN0aXR1dGlvbik7XG5cbiAgICBtZXRhQW50ZWNlZGVudE1ldGF2YXJpYWJsZU1hdGNoZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFBbnRlY2VkZW50TWV0YXZhcmlhYmxlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQW50ZWNlZGVudFRlcm1pbmFsTm9kZShtZXRhQW50ZWNlZGVudFRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtYXRjaGVzID0gbWV0YUFudGVjZWRlbnRUZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgbWV0YUFudGVjZWRlbnRUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlcztcblxuICByZXR1cm4gbWV0YUFudGVjZWRlbnRUZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlKG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICBtZXRhQW50ZWNlZGVudFJ1bGVOYW1lID0gbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBtZXRhQW50ZWNlZGVudFJ1bGVOYW1lKSB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbWV0YUFudGVjZWRlbnRDaGlsZE5vZGVzID0gbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbWV0YUFudGVjZWRlbnROb2RlcyA9IG1ldGFBbnRlY2VkZW50Q2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbWV0YUFudGVjZWRlbnRDaGlsZE5vZGVzTWF0Y2hlcyA9IG1hdGNoTWV0YUFudGVjZWRlbnROb2RlcyhtZXRhQW50ZWNlZGVudE5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWV0YUFudGVjZWRlbnRDaGlsZE5vZGVzTWF0Y2hlczsgLy8vXG5cbiAgICBpZiAoIW1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgcnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAocnVsZU5hbWUgPT09IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG1ldGFBbnRlY2VkZW50TWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBtZXRhQW50ZWNlZGVudE1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFudGVjZWRlbnRNZXRhc3RhdGVtZW50Tm9kZShtZXRhQW50ZWNlZGVudE1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1ldGFBbnRlY2VkZW50TWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFBbnRlY2VkZW50TWV0YXN0YXRlbWVudE5vZGUobWV0YUFudGVjZWRlbnRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBtZXRhQW50ZWNlZGVudE1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlID0gbWV0YUFudGVjZWRlbnRNZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBtZXRhQW50ZWNlZGVudENoaWxkTm9kZXMgPSBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIG1ldGFBbnRlY2VkZW50Q2hpbGROb2Rlc0xlbmd0aCA9IG1ldGFBbnRlY2VkZW50Q2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG1ldGFBbnRlY2VkZW50Q2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGZpcnN0TWV0YUFudGVjZWRlbnRDaGlsZE5vZGUgPSBmaXJzdChtZXRhQW50ZWNlZGVudENoaWxkTm9kZXMpLFxuICAgICAgICAgIG1ldGFBbnRlY2VkZW50Q2hpbGROb2RlID0gZmlyc3RNZXRhQW50ZWNlZGVudENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIG1ldGFBbnRlY2VkZW50Q2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gbWV0YUFudGVjZWRlbnRDaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChtZXRhQW50ZWNlZGVudENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbENoaWxkTm9kZSA9IG1ldGFBbnRlY2VkZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPSBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsQ2hpbGROb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgICBtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSA9IChtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPT09IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAobWV0YUFudGVjZWRlbnROb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgbWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVOb2RlID0gbWV0YUFudGVjZWRlbnROb25UZXJtaW5hbENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgbWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVNYXRjaGVzID0gbWF0Y2hNZXRhQW50ZWNlZGVudE1ldGF2YXJpYWJsZShtZXRhQW50ZWNlZGVudE1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgbWV0YUFudGVjZWRlbnRNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtZXRhQW50ZWNlZGVudE1ldGF2YXJpYWJsZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhQW50ZWNlZGVudE1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJNZXRhQW50ZWNlZGVudCIsIm1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5IiwicXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5IiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoU3VicHJvb2ZOb2RlIiwibWV0YVN1YnByb29mTm9kZSIsIm1ldGFTdWJzdGl0dXRpb25zIiwibWV0YVN1YnByb29mTm9kZU1hdGNoZXMiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwibWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVzIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzIiwicXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlcyIsIm1ldGFzdGF0ZW1lbnROb2Rlc0xlbmd0aCIsImxlbmd0aCIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2Rlc0xlbmd0aCIsImV2ZXJ5IiwibWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJpbmRleCIsIm5vblRlcm1pbmFsTm9kZSIsIm1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxOb2RlIiwibWV0YUFudGVjZWRlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsTm9kZSIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJ0b0pTT04iLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXN0YXRlbWVudCIsImpzb24iLCJmcm9tSlNPTiIsInJlbGVhc2VDb250ZXh0IiwibWV0YXN0YXRlbWVudE5vZGVGcm9tTWV0YXN0YXRlbWVudFN0cmluZyIsIm1ldGFBbnRlY2VkZW50IiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhQW50ZWNlZGVudE5vZGUiLCJtZXRhQW50ZWNlZGVudE5vZGUiLCJub2RlIiwibWV0YUFudGVjZWRlbnROb2RlTWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInJ1bGVOb2RlVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwibWV0YUFudGVjZWRlbnRUZXJtaW5hbE5vZGUiLCJtZXRhQW50ZWNlZGVudFRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFBbnRlY2VkZW50VGVybWluYWxOb2RlIiwibWF0Y2hNZXRhQW50ZWNlZGVudE5vZGVzIiwibWV0YUFudGVjZWRlbnROb2RlcyIsIm5vZGVzIiwibWV0YUFudGVjZWRlbnROb2Rlc01hdGNoZXMiLCJub2Rlc0xlbmd0aCIsIm1ldGFBbnRlY2VkZW50Tm9kZXNMZW5ndGgiLCJtYXRjaE1ldGFBbnRlY2VkZW50TWV0YXZhcmlhYmxlIiwibWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVOb2RlIiwibWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVNYXRjaGVzIiwibWV0YUFudGVjZWRlbnRNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YVN1YnN0aXR1dGlvbiIsImZpbmQiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIk1ldGFTdWJzdGl0dXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE5vZGVzIiwicHVzaCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJtZXRhQW50ZWNlZGVudFJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJtZXRhQW50ZWNlZGVudENoaWxkTm9kZXMiLCJtZXRhQW50ZWNlZGVudENoaWxkTm9kZXNNYXRjaGVzIiwicnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsIm1ldGFBbnRlY2VkZW50TWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhQW50ZWNlZGVudE1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YUFudGVjZWRlbnRNZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFBbnRlY2VkZW50Q2hpbGROb2Rlc0xlbmd0aCIsImZpcnN0TWV0YUFudGVjZWRlbnRDaGlsZE5vZGUiLCJmaXJzdCIsIm1ldGFBbnRlY2VkZW50Q2hpbGROb2RlIiwibWV0YUFudGVjZWRlbnRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm1ldGFBbnRlY2VkZW50Tm9uVGVybWluYWxDaGlsZE5vZGUiLCJtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUiLCJtZXRhQW50ZWNlZGVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBZ0JxQkE7OztxRUFkUTtxQkFFUDtzQkFDTztxQkFDUzt5QkFHMEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhFLElBQU1DLDBCQUEwQkMsSUFBQUEsaUJBQVUsRUFBQyx5Q0FDckNDLGlDQUFpQ0MsSUFBQUEsZ0JBQVMsRUFBQywwQ0FDM0NDLGtEQUFrREgsSUFBQUEsaUJBQVUsRUFBQywwREFDN0RJLDREQUE0REYsSUFBQUEsZ0JBQVMsRUFBQztBQUU3RCxJQUFBLEFBQU1KLCtCQTZFbEIsQUE3RVk7YUFBTUEsZUFDUE8saUJBQWlCOzhCQURWUDtRQUVqQixJQUFJLENBQUNPLGlCQUFpQixHQUFHQTs7aUJBRlJQOztZQUtuQlEsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QjtnQkFDckIsT0FBTyxJQUFJLENBQUNELGlCQUFpQjtZQUMv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
@@ -1,41 +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 verifyAntecedent;
9
- }
10
- });
11
- var _proof = /*#__PURE__*/ _interopRequireDefault(require("../step/proof"));
12
- var _antecedent = /*#__PURE__*/ _interopRequireDefault(require("../antecedent"));
13
- var _statement = /*#__PURE__*/ _interopRequireDefault(require("./statement"));
14
- var _query = require("../utilities/query");
15
- var _string = require("../utilities/string");
16
- function _interopRequireDefault(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- var statementNodeQuery = (0, _query.nodeQuery)("/antecedent/unqualifiedStatement!/statement!");
22
- function verifyAntecedent(antecedentNode, antecedents, proofContext) {
23
- var antecedentVerified;
24
- proofContext.begin(antecedentNode);
25
- var antecedentString = (0, _string.nodeAsString)(antecedentNode);
26
- proofContext.debug("Verifying the ".concat(antecedentString, " antecedent..."));
27
- var statementNode = statementNodeQuery(antecedentNode);
28
- if (statementNode !== null) {
29
- var qualified = false, statementVerified = (0, _statement.default)(statementNode, qualified, proofContext);
30
- if (statementVerified) {
31
- var proofStep = _proof.default.fromStatementNode(statementNode), antecedent = _antecedent.default.fromStatementNode(statementNode);
32
- antecedents.push(antecedent);
33
- proofContext.addProofStep(proofStep);
34
- }
35
- antecedentVerified = true;
36
- }
37
- antecedentVerified ? proofContext.complete(antecedentNode) : proofContext.halt(antecedentNode);
38
- return antecedentVerified;
39
- }
40
-
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvYW50ZWNlZGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByb29mU3RlcCBmcm9tIFwiLi4vc3RlcC9wcm9vZlwiO1xuaW1wb3J0IEFudGVjZWRlbnQgZnJvbSBcIi4uL2FudGVjZWRlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdGF0ZW1lbnQgZnJvbSBcIi4vc3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hbnRlY2VkZW50L3VucXVhbGlmaWVkU3RhdGVtZW50IS9zdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlBbnRlY2VkZW50KGFudGVjZWRlbnROb2RlLCBhbnRlY2VkZW50cywgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBhbnRlY2VkZW50VmVyaWZpZWQ7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKGFudGVjZWRlbnROb2RlKTtcblxuICBjb25zdCBhbnRlY2VkZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKGFudGVjZWRlbnROb2RlKTtcblxuICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJHthbnRlY2VkZW50U3RyaW5nfSBhbnRlY2VkZW50Li4uYCk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShhbnRlY2VkZW50Tm9kZSk7XG5cbiAgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBxdWFsaWZpZWQsIHByb29mQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IHByb29mU3RlcCA9IFByb29mU3RlcC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIGFudGVjZWRlbnQgPSBBbnRlY2VkZW50LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBhbnRlY2VkZW50cy5wdXNoKGFudGVjZWRlbnQpO1xuXG4gICAgICBwcm9vZkNvbnRleHQuYWRkUHJvb2ZTdGVwKHByb29mU3RlcCk7XG4gICAgfVxuXG4gICAgYW50ZWNlZGVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFudGVjZWRlbnRWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKGFudGVjZWRlbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChhbnRlY2VkZW50Tm9kZSk7XG5cbiAgcmV0dXJuIGFudGVjZWRlbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlBbnRlY2VkZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiYW50ZWNlZGVudE5vZGUiLCJhbnRlY2VkZW50cyIsInByb29mQ29udGV4dCIsImFudGVjZWRlbnRWZXJpZmllZCIsImJlZ2luIiwiYW50ZWNlZGVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwic3RhdGVtZW50Tm9kZSIsInF1YWxpZmllZCIsInN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5U3RhdGVtZW50IiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJhbnRlY2VkZW50IiwiQW50ZWNlZGVudCIsInB1c2giLCJhZGRQcm9vZlN0ZXAiLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEY7K0RBQ0M7OERBQ0s7cUJBRUY7c0JBQ0c7Ozs7OztBQUU3QixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0YsaUJBQWlCRyxjQUFjLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFO0lBQ2xGLElBQUlDO0lBRUpELGFBQWFFLEtBQUssQ0FBQ0o7SUFFbkIsSUFBTUssbUJBQW1CQyxJQUFBQSxvQkFBWSxFQUFDTjtJQUV0Q0UsYUFBYUssS0FBSyxDQUFDLEFBQUMsaUJBQWlDLE9BQWpCRixrQkFBaUI7SUFFckQsSUFBTUcsZ0JBQWdCVixtQkFBbUJFO0lBRXpDLElBQUlRLGtCQUFrQixJQUFJLEVBQUU7UUFDMUIsSUFBTUMsWUFBWSxLQUFLLEVBQ2pCQyxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNILGVBQWVDLFdBQVdQO1FBRXBFLElBQUlRLG1CQUFtQjtZQUNyQixJQUFNRSxZQUFZQyxjQUFTLENBQUNDLGlCQUFpQixDQUFDTixnQkFDeENPLGFBQWFDLG1CQUFVLENBQUNGLGlCQUFpQixDQUFDTjtZQUVoRFAsWUFBWWdCLElBQUksQ0FBQ0Y7WUFFakJiLGFBQWFnQixZQUFZLENBQUNOO1FBQzVCLENBQUM7UUFFRFQscUJBQXFCLElBQUk7SUFDM0IsQ0FBQztJQUVEQSxxQkFDRUQsYUFBYWlCLFFBQVEsQ0FBQ25CLGtCQUNwQkUsYUFBYWtCLElBQUksQ0FBQ3BCLGVBQWU7SUFFckMsT0FBT0c7QUFDVCJ9
@@ -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 verifyConsequent;
9
- }
10
- });
11
- var _consequent = /*#__PURE__*/ _interopRequireDefault(require("../consequent"));
12
- var _query = require("../utilities/query");
13
- var _string = require("../utilities/string");
14
- function _interopRequireDefault(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- var statementNodeQuery = (0, _query.nodeQuery)("/consequent/unqualifiedStatement!/statement!");
20
- function verifyConsequent(consequentNode, consequents, proofContext) {
21
- var consequentVerified = false;
22
- proofContext.begin(consequentNode);
23
- var consequentString = (0, _string.nodeAsString)(consequentNode);
24
- proofContext.debug("Verifying the ".concat(consequentString, " consequent..."));
25
- var statementNode = statementNodeQuery(consequentNode);
26
- if (statementNode !== null) {
27
- var consequent = _consequent.default.fromStatementNode(statementNode);
28
- consequents.push(consequent);
29
- consequentVerified = true;
30
- }
31
- consequentVerified ? proofContext.complete(consequentNode) : proofContext.halt(consequentNode);
32
- return consequentVerified;
33
- }
34
-
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29uc2VxdWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbnNlcXVlbnQgZnJvbSBcIi4uL2NvbnNlcXVlbnRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuY29uc3Qgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnNlcXVlbnQvdW5xdWFsaWZpZWRTdGF0ZW1lbnQhL3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUNvbnNlcXVlbnQoY29uc2VxdWVudE5vZGUsIGNvbnNlcXVlbnRzLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IGNvbnNlcXVlbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHByb29mQ29udGV4dC5iZWdpbihjb25zZXF1ZW50Tm9kZSk7XG5cbiAgY29uc3QgY29uc2VxdWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhjb25zZXF1ZW50Tm9kZSk7XG5cbiAgcHJvb2ZDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICR7Y29uc2VxdWVudFN0cmluZ30gY29uc2VxdWVudC4uLmApO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoY29uc2VxdWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29uc2VxdWVudCA9IENvbnNlcXVlbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zZXF1ZW50cy5wdXNoKGNvbnNlcXVlbnQpO1xuXG4gICAgY29uc2VxdWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnNlcXVlbnRWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKGNvbnNlcXVlbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdChjb25zZXF1ZW50Tm9kZSk7XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlDb25zZXF1ZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50cyIsInByb29mQ29udGV4dCIsImNvbnNlcXVlbnRWZXJpZmllZCIsImJlZ2luIiwiY29uc2VxdWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwic3RhdGVtZW50Tm9kZSIsImNvbnNlcXVlbnQiLCJDb25zZXF1ZW50IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJwdXNoIiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7OytEQVBEO3FCQUVHO3NCQUNHOzs7Ozs7QUFFN0IsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXRCLFNBQVNGLGlCQUFpQkcsY0FBYyxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRTtJQUNsRixJQUFJQyxxQkFBcUIsS0FBSztJQUU5QkQsYUFBYUUsS0FBSyxDQUFDSjtJQUVuQixJQUFNSyxtQkFBbUJDLElBQUFBLG9CQUFZLEVBQUNOO0lBRXRDRSxhQUFhSyxLQUFLLENBQUMsQUFBQyxpQkFBaUMsT0FBakJGLGtCQUFpQjtJQUVyRCxJQUFNRyxnQkFBZ0JWLG1CQUFtQkU7SUFFekMsSUFBSVEsa0JBQWtCLElBQUksRUFBRTtRQUMxQixJQUFNQyxhQUFhQyxtQkFBVSxDQUFDQyxpQkFBaUIsQ0FBQ0g7UUFFaERQLFlBQVlXLElBQUksQ0FBQ0g7UUFFakJOLHFCQUFxQixJQUFJO0lBQzNCLENBQUM7SUFFREEscUJBQ0VELGFBQWFXLFFBQVEsQ0FBQ2Isa0JBQ3BCRSxhQUFhWSxJQUFJLENBQUNkLGVBQWU7SUFFckMsT0FBT0c7QUFDVCJ9
@@ -1,41 +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 verifyMetaAntecedent;
9
- }
10
- });
11
- var _metaproof = /*#__PURE__*/ _interopRequireDefault(require("../step/metaproof"));
12
- var _metaAntecedent = /*#__PURE__*/ _interopRequireDefault(require("../metaAntecedent"));
13
- var _metastatement = /*#__PURE__*/ _interopRequireDefault(require("./metastatement"));
14
- var _query = require("../utilities/query");
15
- var _string = require("../utilities/string");
16
- function _interopRequireDefault(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- var metastatementNodeQuery = (0, _query.nodeQuery)("/metaAntecedent/unqualifiedMetastatement!/metastatement!");
22
- function verifyMetaAntecedent(metaAntecedentNode, metaAntecedents, metaproofContext) {
23
- var metaAntecedentVerified;
24
- metaproofContext.begin(metaAntecedentNode);
25
- var metaAntecedentString = (0, _string.nodeAsString)(metaAntecedentNode);
26
- metaproofContext.debug("Verifying the ".concat(metaAntecedentString, " metaAntecedent..."));
27
- var metastatementNode = metastatementNodeQuery(metaAntecedentNode);
28
- if (metastatementNode !== null) {
29
- var qualified = false, metastatementVerified = (0, _metastatement.default)(metastatementNode, qualified, metaproofContext);
30
- if (metastatementVerified) {
31
- var metaproofStep = _metaproof.default.fromMetastatementNode(metastatementNode), metaAntecedent = _metaAntecedent.default.fromMetastatementNode(metastatementNode);
32
- metaAntecedents.push(metaAntecedent);
33
- metaproofContext.addMetaproofStep(metaproofStep);
34
- }
35
- metaAntecedentVerified = true;
36
- }
37
- metaAntecedentVerified ? metaproofContext.complete(metaAntecedentNode) : metaproofContext.halt(metaAntecedentNode);
38
- return metaAntecedentVerified;
39
- }
40
-
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YUFudGVjZWRlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IE1ldGFBbnRlY2VkZW50IGZyb20gXCIuLi9tZXRhQW50ZWNlZGVudFwiO1xuaW1wb3J0IHZlcmlmeU1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4vbWV0YXN0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFBbnRlY2VkZW50L3VucXVhbGlmaWVkTWV0YXN0YXRlbWVudCEvbWV0YXN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeU1ldGFBbnRlY2VkZW50KG1ldGFBbnRlY2VkZW50Tm9kZSwgbWV0YUFudGVjZWRlbnRzLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBtZXRhQW50ZWNlZGVudFZlcmlmaWVkO1xuXG4gIG1ldGFwcm9vZkNvbnRleHQuYmVnaW4obWV0YUFudGVjZWRlbnROb2RlKTtcblxuICBjb25zdCBtZXRhQW50ZWNlZGVudFN0cmluZyA9IG5vZGVBc1N0cmluZyhtZXRhQW50ZWNlZGVudE5vZGUpO1xuXG4gIG1ldGFwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJHttZXRhQW50ZWNlZGVudFN0cmluZ30gbWV0YUFudGVjZWRlbnQuLi5gKTtcblxuICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkobWV0YUFudGVjZWRlbnROb2RlKTtcblxuICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBxdWFsaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBxdWFsaWZpZWQsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIG1ldGFBbnRlY2VkZW50ID0gTWV0YUFudGVjZWRlbnQuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgbWV0YUFudGVjZWRlbnRzLnB1c2gobWV0YUFudGVjZWRlbnQpO1xuXG4gICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG4gICAgfVxuXG4gICAgbWV0YUFudGVjZWRlbnRWZXJpZmllZCA9IHRydWU7XG4gIH1cblxuICBtZXRhQW50ZWNlZGVudFZlcmlmaWVkID9cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmNvbXBsZXRlKG1ldGFBbnRlY2VkZW50Tm9kZSkgOlxuICAgICAgbWV0YXByb29mQ29udGV4dC5oYWx0KG1ldGFBbnRlY2VkZW50Tm9kZSk7XG5cbiAgcmV0dXJuIG1ldGFBbnRlY2VkZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YUFudGVjZWRlbnQiLCJtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YUFudGVjZWRlbnROb2RlIiwibWV0YUFudGVjZWRlbnRzIiwibWV0YXByb29mQ29udGV4dCIsIm1ldGFBbnRlY2VkZW50VmVyaWZpZWQiLCJiZWdpbiIsIm1ldGFBbnRlY2VkZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJtZXRhc3RhdGVtZW50Tm9kZSIsInF1YWxpZmllZCIsIm1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeU1ldGFzdGF0ZW1lbnQiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFBbnRlY2VkZW50IiwiTWV0YUFudGVjZWRlbnQiLCJwdXNoIiwiYWRkTWV0YXByb29mU3RlcCIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7Ozs4REFURTttRUFDQztrRUFDSztxQkFFTjtzQkFDRzs7Ozs7O0FBRTdCLElBQU1DLHlCQUF5QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUUxQixTQUFTRixxQkFBcUJHLGtCQUFrQixFQUFFQyxlQUFlLEVBQUVDLGdCQUFnQixFQUFFO0lBQ2xHLElBQUlDO0lBRUpELGlCQUFpQkUsS0FBSyxDQUFDSjtJQUV2QixJQUFNSyx1QkFBdUJDLElBQUFBLG9CQUFZLEVBQUNOO0lBRTFDRSxpQkFBaUJLLEtBQUssQ0FBQyxBQUFDLGlCQUFxQyxPQUFyQkYsc0JBQXFCO0lBRTdELElBQU1HLG9CQUFvQlYsdUJBQXVCRTtJQUVqRCxJQUFJUSxzQkFBc0IsSUFBSSxFQUFFO1FBQzlCLElBQU1DLFlBQVksS0FBSyxFQUNqQkMsd0JBQXdCQyxJQUFBQSxzQkFBbUIsRUFBQ0gsbUJBQW1CQyxXQUFXUDtRQUVoRixJQUFJUSx1QkFBdUI7WUFDekIsSUFBTUUsZ0JBQWdCQyxrQkFBYSxDQUFDQyxxQkFBcUIsQ0FBQ04sb0JBQ3BETyxpQkFBaUJDLHVCQUFjLENBQUNGLHFCQUFxQixDQUFDTjtZQUU1RFAsZ0JBQWdCZ0IsSUFBSSxDQUFDRjtZQUVyQmIsaUJBQWlCZ0IsZ0JBQWdCLENBQUNOO1FBQ3BDLENBQUM7UUFFRFQseUJBQXlCLElBQUk7SUFDL0IsQ0FBQztJQUVEQSx5QkFDRUQsaUJBQWlCaUIsUUFBUSxDQUFDbkIsc0JBQ3hCRSxpQkFBaUJrQixJQUFJLENBQUNwQixtQkFBbUI7SUFFN0MsT0FBT0c7QUFDVCJ9
package/src/antecedent.js DELETED
@@ -1,235 +0,0 @@
1
- "use strict";
2
-
3
- import Substitution from "./substitution";
4
-
5
- import { first } from "./utilities/array";
6
- import { nodeAsString } from "./utilities/string";
7
- import { nodeQuery, nodesQuery } from "./utilities/query";
8
- import { variableNameFromVariableNode } from "./utilities/query";
9
- import { statementNodeFromStatementString } from "./utilities/string";
10
- import { VARIABLE_RULE_NAME, STATEMENT_RULE_NAME } from "./ruleNames";
11
-
12
- const statementNodesQuery = nodesQuery("/subproofAssertion/statement"),
13
- subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
14
- unqualifiedStatementStatementNodesQuery = nodesQuery("/subproof/unqualifiedStatement/statement!"),
15
- qualifiedOrUnqualifiedStatementStatementNodeQuery = nodeQuery("/subproof/subDerivation/qualifiedStatement|unqualifiedStatement[-1]/statement!");
16
-
17
- export default class Antecedent {
18
- constructor(statementNode) {
19
- this.statementNode = statementNode;
20
- }
21
-
22
- getStatementNode() {
23
- return this.statementNode;
24
- }
25
-
26
- matchSubproofNode(subproofNode, substitutions) {
27
- let subproofNodeMatches = false;
28
-
29
- const subproofAssertionNode = subproofAssertionNodeQuery(this.statementNode);
30
-
31
- if (subproofAssertionNode !== null) {
32
- const subproofAssertionStatementNodes = statementNodesQuery(subproofAssertionNode),
33
- unqualifiedStatementStatementNodes = unqualifiedStatementStatementNodesQuery(subproofNode),
34
- qualifiedOrUnqualifiedStatementStatementNode = qualifiedOrUnqualifiedStatementStatementNodeQuery(subproofNode),
35
- statementNodes = [
36
- ...unqualifiedStatementStatementNodes,
37
- qualifiedOrUnqualifiedStatementStatementNode
38
- ],
39
- statementNodesLength = statementNodes.length,
40
- subproofAssertionStatementNodesLength = subproofAssertionStatementNodes.length;
41
-
42
- if (statementNodesLength === subproofAssertionStatementNodesLength) {
43
- subproofNodeMatches = subproofAssertionStatementNodes.every((subproofAssertionStatementNode, index) => {
44
- const statementNode = statementNodes[index],
45
- nonTerminalNode = statementNode, ///
46
- antecedentNonTerminalNode = subproofAssertionStatementNode, ///
47
- antecedentNonTerminalNodeMatches = matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions);
48
-
49
- if (antecedentNonTerminalNodeMatches) {
50
- return true;
51
- }
52
- });
53
- }
54
- }
55
-
56
- return subproofNodeMatches;
57
- }
58
-
59
- matchStatementNode(statementNode, substitutions) {
60
- const nonTerminalNode = statementNode, ///
61
- antecedentNonTerminalNode = this.statementNode, ///
62
- antecedentNonTerminalNodeMatches = matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions),
63
- statementNodeMatches = antecedentNonTerminalNodeMatches; ///
64
-
65
- return statementNodeMatches;
66
- }
67
-
68
- toJSON() {
69
- const statementString = nodeAsString(this.statementNode),
70
- statement = statementString, ///
71
- json = {
72
- statement
73
- };
74
-
75
- return json;
76
- }
77
-
78
- static fromJSON(json, releaseContext) {
79
- const { statement } = json,
80
- statementString = statement, ///
81
- statementNode = statementNodeFromStatementString(statementString, releaseContext),
82
- antecedent = new Antecedent(statementNode);
83
-
84
- return antecedent;
85
- }
86
-
87
- static fromStatementNode(statementNode) {
88
- const antecedent = new Antecedent(statementNode);
89
-
90
- return antecedent;
91
- }
92
- }
93
-
94
- function matchAntecedentNode(antecedentNode, node, substitutions) {
95
- let antecedentNodeMatches = false;
96
-
97
- const nodeTerminalNode = node.isTerminalNode(),
98
- ruleNodeTerminalNode = antecedentNode.isTerminalNode();
99
-
100
- if (nodeTerminalNode === ruleNodeTerminalNode) {
101
- if (nodeTerminalNode) {
102
- const terminalNode = node, ///
103
- antecedentTerminalNode = antecedentNode, ///
104
- antecedentTerminalNodeMatches = matchAntecedentTerminalNode(antecedentTerminalNode, terminalNode, substitutions);
105
-
106
- antecedentNodeMatches = antecedentTerminalNodeMatches; ///
107
- } else {
108
- const nonTerminalNode = node, ///
109
- antecedentNonTerminalNode = antecedentNode, ///
110
- antecedentNonTerminalNodeMatches = matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions);
111
-
112
- antecedentNodeMatches = antecedentNonTerminalNodeMatches; ///
113
- }
114
- }
115
-
116
- return antecedentNodeMatches;
117
- }
118
-
119
- function matchAntecedentNodes(antecedentNodes, nodes, substitutions) {
120
- let antecedentNodesMatches = false;
121
-
122
- const nodesLength = nodes.length,
123
- antecedentNodesLength = antecedentNodes.length;
124
-
125
- if (nodesLength === antecedentNodesLength) {
126
- antecedentNodesMatches = nodes.every((node, index) => {
127
- const antecedentNode = antecedentNodes[index],
128
- antecedentNodeMatches = matchAntecedentNode(antecedentNode, node, substitutions);
129
-
130
- if (antecedentNodeMatches) {
131
- return true;
132
- }
133
- });
134
- }
135
-
136
- return antecedentNodesMatches;
137
- }
138
-
139
- function matchAntecedentVariable(antecedentVariableNode, nodes, substitutions) {
140
- let antecedentVariableMatches;
141
-
142
- const antecedentVariableName = variableNameFromVariableNode(antecedentVariableNode),
143
- substitution = substitutions.find((substitution) => {
144
- const variableName = substitution.getVariableName();
145
-
146
- if (variableName === antecedentVariableName) {
147
- return true;
148
- }
149
- }) || null;
150
-
151
- if (substitution !== null) {
152
- const substitutionNodesMatch = substitution.matchNodes(nodes);
153
-
154
- antecedentVariableMatches = substitutionNodesMatch; ///
155
- } else {
156
- const variableName = antecedentVariableName, ///
157
- substitution = Substitution.fromVariableNameAndNodes(variableName, nodes);
158
-
159
- substitutions.push(substitution);
160
-
161
- antecedentVariableMatches = true;
162
- }
163
-
164
- return antecedentVariableMatches;
165
- }
166
-
167
- function matchAntecedentTerminalNode(antecedentTerminalNode, terminalNode, substitutions) {
168
- const matches = antecedentTerminalNode.match(terminalNode),
169
- antecedentTerminalNodeMatches = matches;
170
-
171
- return antecedentTerminalNodeMatches;
172
- }
173
-
174
- function matchAntecedentNonTerminalNode(antecedentNonTerminalNode, nonTerminalNode, substitutions) {
175
- let antecedentNonTerminalNodeMatches = false;
176
-
177
- const ruleName = nonTerminalNode.getRuleName(),
178
- antecedentRuleName = antecedentNonTerminalNode.getRuleName(); ///
179
-
180
- if (ruleName === antecedentRuleName) {
181
- const childNodes = nonTerminalNode.getChildNodes(),
182
- antecedentChildNodes = antecedentNonTerminalNode.getChildNodes(),
183
- nodes = childNodes, ///
184
- antecedentNodes = antecedentChildNodes, ///
185
- antecedentChildNodesMatches = matchAntecedentNodes(antecedentNodes, nodes, substitutions);
186
-
187
- antecedentNonTerminalNodeMatches = antecedentChildNodesMatches; ///
188
-
189
- if (!antecedentNonTerminalNodeMatches) {
190
- const ruleNameStatementRuleName = (ruleName === STATEMENT_RULE_NAME);
191
-
192
- if (ruleNameStatementRuleName) {
193
- const statementNode = nonTerminalNode, ///
194
- antecedentStatementNode = antecedentNonTerminalNode, ///
195
- antecedentStatementNodeMatches = matchAntecedentStatementNode(antecedentStatementNode, statementNode, substitutions);
196
-
197
- antecedentNonTerminalNodeMatches = antecedentStatementNodeMatches; ///
198
- }
199
- }
200
- }
201
-
202
- return antecedentNonTerminalNodeMatches;
203
- }
204
-
205
- function matchAntecedentStatementNode(antecedentStatementNode, statementNode, substitutions) {
206
- let antecedentStatementNodeMatches = false;
207
-
208
- const antecedentNonTerminalNode = antecedentStatementNode, ///
209
- antecedentChildNodes = antecedentNonTerminalNode.getChildNodes(),
210
- antecedentChildNodesLength = antecedentChildNodes.length;
211
-
212
- if (antecedentChildNodesLength === 1) {
213
- const firstAntecedentChildNode = first(antecedentChildNodes),
214
- antecedentChildNode = firstAntecedentChildNode, ///
215
- antecedentChildNodeNonTerminalNode = antecedentChildNode.isNonTerminalNode();
216
-
217
- if (antecedentChildNodeNonTerminalNode) {
218
- const antecedentNonTerminalChildNode = antecedentChildNode, ///
219
- antecedentNonTerminalChildNodeRuleName = antecedentNonTerminalChildNode.getRuleName(),
220
- antecedentNonTerminalChildNodeRuleNameVariableRuleName = (antecedentNonTerminalChildNodeRuleName === VARIABLE_RULE_NAME);
221
-
222
- if (antecedentNonTerminalChildNodeRuleNameVariableRuleName) {
223
- const antecedentVariableNode = antecedentNonTerminalChildNode, ///
224
- nonTerminalNode = statementNode, ///
225
- childNodes = nonTerminalNode.getChildNodes(),
226
- nodes = childNodes, ///
227
- antecedentVariableMatches = matchAntecedentVariable(antecedentVariableNode, nodes, substitutions);
228
-
229
- antecedentStatementNodeMatches = antecedentVariableMatches; ///
230
- }
231
- }
232
- }
233
-
234
- return antecedentStatementNodeMatches;
235
- }