occam-verify-cli 0.0.272 → 0.0.274

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 (141) hide show
  1. package/.swcrc +5 -0
  2. package/bin/abbreviations.js +4 -2
  3. package/bin/context/{package → release}/fileSystem.js +38 -25
  4. package/bin/fileNames.js +7 -7
  5. package/bin/loadReleaseContexts.js +52 -0
  6. package/bin/main.js +8 -9
  7. package/bin/options.js +2 -2
  8. package/bin/utilities/fileSystem.js +13 -15
  9. package/lib/assertion.js +140 -0
  10. package/lib/axiom.js +90 -0
  11. package/lib/browser.js +27 -0
  12. package/lib/combinator.js +58 -0
  13. package/lib/conclusion.js +140 -0
  14. package/lib/constants.js +42 -0
  15. package/lib/constructor.js +76 -0
  16. package/lib/context/file.js +342 -0
  17. package/lib/context/metaproof.js +232 -0
  18. package/lib/context/proof.js +211 -0
  19. package/lib/context/release.js +303 -0
  20. package/lib/main.js +27 -0
  21. package/lib/metaAssertion.js +200 -0
  22. package/lib/metaSubstitution.js +123 -0
  23. package/lib/permutationsMatrix.js +466136 -0
  24. package/lib/premise.js +168 -0
  25. package/lib/rule.js +139 -0
  26. package/lib/ruleNames.js +46 -0
  27. package/lib/type.js +153 -0
  28. package/lib/utilities/array.js +99 -0
  29. package/lib/utilities/metastatement.js +45 -0
  30. package/lib/utilities/permutations.js +114 -0
  31. package/lib/utilities/query.js +81 -0
  32. package/lib/utilities/string.js +54 -0
  33. package/lib/variable.js +94 -0
  34. package/lib/verify/IndicativeConditional.js +29 -0
  35. package/lib/verify/assertion/type.js +52 -0
  36. package/lib/verify/axiom.js +52 -0
  37. package/lib/verify/conclusion.js +34 -0
  38. package/lib/verify/conditinalInference.js +30 -0
  39. package/lib/verify/declaration/combinator.js +24 -0
  40. package/lib/verify/declaration/constructor.js +24 -0
  41. package/lib/verify/declaration/topLevel.js +51 -0
  42. package/lib/verify/declaration/type.js +24 -0
  43. package/lib/verify/declaration/variable.js +24 -0
  44. package/lib/verify/equality.js +45 -0
  45. package/lib/verify/file.js +39 -0
  46. package/lib/verify/files.js +48 -0
  47. package/lib/verify/label.js +24 -0
  48. package/lib/verify/labels.js +27 -0
  49. package/lib/verify/metaDerivation.js +94 -0
  50. package/lib/verify/metaproof.js +81 -0
  51. package/lib/verify/metastatement/qualified.js +31 -0
  52. package/lib/verify/metastatement/unqualified.js +39 -0
  53. package/lib/verify/premiseOrPremises.js +39 -0
  54. package/lib/verify/release.js +61 -0
  55. package/lib/verify/rule.js +61 -0
  56. package/lib/verify/statement/qualified.js +24 -0
  57. package/lib/verify/statement/unqualified.js +32 -0
  58. package/lib/verify/statement.js +43 -0
  59. package/lib/verify/statementAsCombinator.js +102 -0
  60. package/lib/verify/supposition.js +29 -0
  61. package/lib/verify/term.js +121 -0
  62. package/lib/verify/termAsConstructor.js +126 -0
  63. package/lib/verify/termAsVariable.js +31 -0
  64. package/lib/verify/type.js +45 -0
  65. package/lib/verify/unconditionalInference.js +31 -0
  66. package/lib/verify/variable.js +48 -0
  67. package/package.json +21 -5
  68. package/{bin → src}/assertion.js +2 -4
  69. package/src/axiom.js +49 -0
  70. package/src/browser.js +4 -0
  71. package/{bin → src}/combinator.js +2 -4
  72. package/{bin → src}/conclusion.js +4 -6
  73. package/src/constants.js +9 -0
  74. package/{bin → src}/constructor.js +2 -4
  75. package/{bin → src}/context/file.js +34 -24
  76. package/{bin → src}/context/metaproof.js +13 -3
  77. package/{bin → src}/context/proof.js +13 -3
  78. package/src/context/release.js +219 -0
  79. package/src/main.js +4 -0
  80. package/{bin → src}/metaAssertion.js +4 -6
  81. package/{bin → src}/metaSubstitution.js +11 -4
  82. package/{bin → src}/permutationsMatrix.js +1 -1
  83. package/{bin → src}/premise.js +6 -8
  84. package/{bin → src}/rule.js +24 -15
  85. package/src/ruleNames.js +10 -0
  86. package/{bin → src}/type.js +1 -3
  87. package/{bin → src}/utilities/array.js +19 -24
  88. package/{bin → src}/utilities/metastatement.js +18 -12
  89. package/{bin → src}/utilities/permutations.js +4 -4
  90. package/{bin → src}/utilities/query.js +8 -18
  91. package/{bin → src}/utilities/string.js +4 -10
  92. package/{bin → src}/variable.js +1 -3
  93. package/src/verify/IndicativeConditional.js +20 -0
  94. package/{bin → src}/verify/assertion/type.js +8 -14
  95. package/src/verify/axiom.js +68 -0
  96. package/{bin → src}/verify/conclusion.js +4 -6
  97. package/src/verify/conditinalInference.js +25 -0
  98. package/{bin → src}/verify/declaration/combinator.js +3 -5
  99. package/{bin → src}/verify/declaration/constructor.js +3 -5
  100. package/{bin → src}/verify/declaration/topLevel.js +8 -10
  101. package/{bin → src}/verify/declaration/type.js +3 -5
  102. package/{bin → src}/verify/declaration/variable.js +3 -5
  103. package/{bin → src}/verify/equality.js +4 -6
  104. package/{bin → src}/verify/file.js +9 -15
  105. package/{bin → src}/verify/files.js +5 -7
  106. package/{bin → src}/verify/label.js +3 -9
  107. package/{bin → src}/verify/labels.js +2 -4
  108. package/{bin → src}/verify/metaDerivation.js +25 -19
  109. package/{bin → src}/verify/metaproof.js +6 -7
  110. package/{bin → src}/verify/metastatement/qualified.js +4 -10
  111. package/{bin → src}/verify/metastatement/unqualified.js +5 -11
  112. package/{bin → src}/verify/premiseOrPremises.js +9 -10
  113. package/src/verify/release.js +70 -0
  114. package/{bin → src}/verify/rule.js +17 -20
  115. package/{bin → src}/verify/statement/qualified.js +3 -5
  116. package/{bin → src}/verify/statement/unqualified.js +3 -5
  117. package/{bin → src}/verify/statement.js +7 -13
  118. package/{bin → src}/verify/statementAsCombinator.js +8 -14
  119. package/{bin → src}/verify/supposition.js +4 -6
  120. package/{bin → src}/verify/term.js +7 -13
  121. package/{bin → src}/verify/termAsConstructor.js +13 -19
  122. package/{bin → src}/verify/termAsVariable.js +3 -9
  123. package/{bin → src}/verify/type.js +7 -13
  124. package/{bin → src}/verify/unconditionalInference.js +4 -11
  125. package/{bin → src}/verify/variable.js +6 -12
  126. package/bin/axiom.js +0 -52
  127. package/bin/consequent.js +0 -19
  128. package/bin/constants.js +0 -19
  129. package/bin/context/package.js +0 -221
  130. package/bin/loadPackageContexts.js +0 -53
  131. package/bin/permutations.js +0 -3
  132. package/bin/ruleNames.js +0 -23
  133. package/bin/verify/axiom/IndicativeConditional.js +0 -54
  134. package/bin/verify/axiom/unqualifiedStatement.js +0 -40
  135. package/bin/verify/axiom.js +0 -37
  136. package/bin/verify/conditinalInference.js +0 -42
  137. package/bin/verify/consequent.js +0 -32
  138. package/bin/verify/metaConsequent.js +0 -23
  139. package/bin/verify/metaSupposition.js +0 -24
  140. package/bin/verify/package.js +0 -81
  141. package/index.js +0 -9
package/lib/premise.js ADDED
@@ -0,0 +1,168 @@
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 Premise;
9
+ }
10
+ });
11
+ var _metaSubstitution = /*#__PURE__*/ _interopRequireDefault(require("./metaSubstitution"));
12
+ var _array = require("./utilities/array");
13
+ var _query = require("./utilities/query");
14
+ var _ruleNames = require("./ruleNames");
15
+ function _classCallCheck(instance, Constructor) {
16
+ if (!(instance instanceof Constructor)) {
17
+ throw new TypeError("Cannot call a class as a function");
18
+ }
19
+ }
20
+ function _defineProperties(target, props) {
21
+ for(var i = 0; i < props.length; i++){
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+ function _createClass(Constructor, protoProps, staticProps) {
30
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) _defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ }
34
+ function _interopRequireDefault(obj) {
35
+ return obj && obj.__esModule ? obj : {
36
+ default: obj
37
+ };
38
+ }
39
+ var metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion!"), qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
40
+ var Premise = /*#__PURE__*/ function() {
41
+ function Premise(metastatementNode) {
42
+ _classCallCheck(this, Premise);
43
+ this.metastatementNode = metastatementNode;
44
+ }
45
+ _createClass(Premise, [
46
+ {
47
+ key: "getMetastatementNode",
48
+ value: function getMetastatementNode() {
49
+ return this.metastatementNode;
50
+ }
51
+ },
52
+ {
53
+ key: "matchMetaSubproofNode",
54
+ value: function matchMetaSubproofNode(metaSubproofNode, metaSubstitutions) {
55
+ var metaSubproofNodeMatches = false;
56
+ var metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(this.metastatementNode);
57
+ if (metaSubproofAssertionNode !== null) {
58
+ var metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode), firstMetaSubproofAssertionMetastatementNode = (0, _array.first)(metaSubproofAssertionMetastatementNodes), qualifiedOrUnqualifiedMetastatementMetastatementNodes = qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery(metaSubproofNode), firstQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.first)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
59
+ var nonTerminalNode = firstQualifiedOrUnqualifiedMetastatementMetastatementNode, premiseNonTerminalNode = firstMetaSubproofAssertionMetastatementNode, premiseNonTerminalNodeMatches = matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions);
60
+ if (premiseNonTerminalNodeMatches) {
61
+ var secondMetaSubproofAssertionMetastatementNode = (0, _array.second)(metaSubproofAssertionMetastatementNodes), secondQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.second)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
62
+ var nonTerminalNode1 = secondQualifiedOrUnqualifiedMetastatementMetastatementNode, premiseNonTerminalNode1 = secondMetaSubproofAssertionMetastatementNode, premiseNonTerminalNodeMatches1 = matchPremiseNonTerminalNode(premiseNonTerminalNode1, nonTerminalNode1, metaSubstitutions);
63
+ metaSubproofNodeMatches = premiseNonTerminalNodeMatches1; ///
64
+ }
65
+ }
66
+ return metaSubproofNodeMatches;
67
+ }
68
+ },
69
+ {
70
+ key: "matchMetastatementNode",
71
+ value: function matchMetastatementNode(metastatementNode, metaSubstitutions) {
72
+ var nonTerminalNode = metastatementNode, premiseNonTerminalNode = this.metastatementNode, premiseNonTerminalNodeMatches = matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions), metastatementNodeMatches = premiseNonTerminalNodeMatches; ///
73
+ return metastatementNodeMatches;
74
+ }
75
+ }
76
+ ], [
77
+ {
78
+ key: "fromMetastatementNode",
79
+ value: function fromMetastatementNode(metastatementNode) {
80
+ var premise = new Premise(metastatementNode);
81
+ return premise;
82
+ }
83
+ }
84
+ ]);
85
+ return Premise;
86
+ }();
87
+ function matchPremiseNode(premiseNode, node, metaSubstitutions) {
88
+ var premiseNodeMatches = false;
89
+ var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = premiseNode.isTerminalNode();
90
+ if (nodeTerminalNode === ruleNodeTerminalNode) {
91
+ if (nodeTerminalNode) {
92
+ var terminalNode = node, premiseTerminalNode = premiseNode, premiseTerminalNodeMatches = matchPremiseTerminalNode(premiseTerminalNode, terminalNode, metaSubstitutions);
93
+ premiseNodeMatches = premiseTerminalNodeMatches; ///
94
+ } else {
95
+ var nonTerminalNode = node, premiseNonTerminalNode = premiseNode, premiseNonTerminalNodeMatches = matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions);
96
+ premiseNodeMatches = premiseNonTerminalNodeMatches; ///
97
+ }
98
+ }
99
+ return premiseNodeMatches;
100
+ }
101
+ function matchPremiseNodes(premiseNodes, nodes, metaSubstitutions) {
102
+ var premiseNodesMatches = false;
103
+ var nodesLength = nodes.length, premiseNodesLength = premiseNodes.length;
104
+ if (nodesLength === premiseNodesLength) {
105
+ premiseNodesMatches = nodes.every(function(node, index) {
106
+ var premiseNode = premiseNodes[index], premiseNodeMatches = matchPremiseNode(premiseNode, node, metaSubstitutions);
107
+ if (premiseNodeMatches) {
108
+ return true;
109
+ }
110
+ });
111
+ }
112
+ return premiseNodesMatches;
113
+ }
114
+ function matchPremiseMetavariable(premiseMetavariableNode, nodes, metaSubstitutions) {
115
+ var premiseMetavariableMatches;
116
+ var premiseMetavariableName = (0, _query.metavariableNameFromMetavariableNode)(premiseMetavariableNode), metaSubstitution = metaSubstitutions.find(function(metaSubstitution) {
117
+ var metavariableName = metaSubstitution.getMetavariableName();
118
+ if (metavariableName === premiseMetavariableName) {
119
+ return true;
120
+ }
121
+ }) || null;
122
+ if (metaSubstitution !== null) {
123
+ var metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
124
+ premiseMetavariableMatches = metaSubstitutionNodesMatch; ///
125
+ } else {
126
+ var metavariableName = premiseMetavariableName, metaSubstitution1 = _metaSubstitution.default.fromMetavariableNameAndNodes(metavariableName, nodes);
127
+ metaSubstitutions.push(metaSubstitution1);
128
+ premiseMetavariableMatches = true;
129
+ }
130
+ return premiseMetavariableMatches;
131
+ }
132
+ function matchPremiseTerminalNode(premiseTerminalNode, terminalNode, metaSubstitutions) {
133
+ var matches = premiseTerminalNode.match(terminalNode), premiseTerminalNodeMatches = matches;
134
+ return premiseTerminalNodeMatches;
135
+ }
136
+ function matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions) {
137
+ var premiseNonTerminalNodeMatches = false;
138
+ var ruleName = nonTerminalNode.getRuleName(), premiseRuleName = premiseNonTerminalNode.getRuleName(); ///
139
+ if (ruleName === premiseRuleName) {
140
+ var childNodes = nonTerminalNode.getChildNodes(), premiseChildNodes = premiseNonTerminalNode.getChildNodes(), nodes = childNodes, premiseNodes = premiseChildNodes, premiseChildNodesMatches = matchPremiseNodes(premiseNodes, nodes, metaSubstitutions);
141
+ premiseNonTerminalNodeMatches = premiseChildNodesMatches; ///
142
+ if (!premiseNonTerminalNodeMatches) {
143
+ var ruleNameMetastatementRuleName = ruleName === _ruleNames.METASTATEMENT_RULE_NAME;
144
+ if (ruleNameMetastatementRuleName) {
145
+ var metastatementNode = nonTerminalNode, premiseMetastatementNode = premiseNonTerminalNode, premiseMetastatementNodeMatches = matchPremiseMetastatementNode(premiseMetastatementNode, metastatementNode, metaSubstitutions);
146
+ premiseNonTerminalNodeMatches = premiseMetastatementNodeMatches; ///
147
+ }
148
+ }
149
+ }
150
+ return premiseNonTerminalNodeMatches;
151
+ }
152
+ function matchPremiseMetastatementNode(premiseMetastatementNode, metastatementNode, metaSubstitutions) {
153
+ var premiseMetastatementNodeMatches = false;
154
+ var premiseNonTerminalNode = premiseMetastatementNode, premiseChildNodes = premiseNonTerminalNode.getChildNodes(), premiseChildNodesLength = premiseChildNodes.length;
155
+ if (premiseChildNodesLength === 1) {
156
+ var firstPremiseChildNode = (0, _array.first)(premiseChildNodes), premiseChildNode = firstPremiseChildNode, premiseChildNodeNonTerminalNode = premiseChildNode.isNonTerminalNode();
157
+ if (premiseChildNodeNonTerminalNode) {
158
+ var premiseNonTerminalChildNode = premiseChildNode, premiseNonTerminalChildNodeRuleName = premiseNonTerminalChildNode.getRuleName(), premiseNonTerminalChildNodeRuleNameMetavariableRuleName = premiseNonTerminalChildNodeRuleName === _ruleNames.METAVARIABLE_RULE_NAME;
159
+ if (premiseNonTerminalChildNodeRuleNameMetavariableRuleName) {
160
+ var premiseMetavariableNode = premiseNonTerminalChildNode, nonTerminalNode = metastatementNode, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, premiseMetaVariableMatches = matchPremiseMetavariable(premiseMetavariableNode, nodes, metaSubstitutions);
161
+ premiseMetastatementNodeMatches = premiseMetaVariableMatches; ///
162
+ }
163
+ }
164
+ }
165
+ return premiseMetastatementNodeMatches;
166
+ }
167
+
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YVN1YnN0aXR1dGlvbiBmcm9tIFwiLi9tZXRhU3Vic3RpdHV0aW9uXCI7XG5cbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbWV0YVN1YnByb29mQXNzZXJ0aW9uL21ldGFzdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9tZXRhU3VicHJvb2ZBc3NlcnRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbWV0YVN1YnByb29mL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmVtaXNlIHtcbiAgY29uc3RydWN0b3IobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICAgIGxldCBtZXRhU3VicHJvb2ZOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMgPSBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeShtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMpLFxuICAgICAgICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMgPSBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KG1ldGFTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgICAgZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlID0gZmlyc3QocXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMpO1xuXG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZSA9IGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAocHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBzZWNvbmQobWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVzKSxcbiAgICAgICAgICAgICAgc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZChxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlcyk7XG5cbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGUgPSBzZWNvbmRNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIG1ldGFTdWJwcm9vZk5vZGVNYXRjaGVzID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXRhU3VicHJvb2ZOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgY29uc3QgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBwcmVtaXNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZU5vZGUocHJlbWlzZU5vZGUsIG5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBwcmVtaXNlTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IHByZW1pc2VOb2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUgPT09IHJ1bGVOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VUZXJtaW5hbE5vZGUgPSBwcmVtaXNlTm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJlbWlzZVRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByZW1pc2VUZXJtaW5hbE5vZGUocHJlbWlzZVRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIHByZW1pc2VOb2RlTWF0Y2hlcyA9IHByZW1pc2VUZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZSA9IHByZW1pc2VOb2RlLCAgLy8vXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZU5vblRlcm1pbmFsTm9kZShwcmVtaXNlTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgcHJlbWlzZU5vZGVNYXRjaGVzID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXM7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZU5vZGVzKHByZW1pc2VOb2Rlcywgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBwcmVtaXNlTm9kZXNNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZXNMZW5ndGggPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIHByZW1pc2VOb2Rlc0xlbmd0aCA9IHByZW1pc2VOb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBwcmVtaXNlTm9kZXNMZW5ndGgpIHtcbiAgICBwcmVtaXNlTm9kZXNNYXRjaGVzID0gbm9kZXMuZXZlcnkoKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBwcmVtaXNlTm9kZSA9IHByZW1pc2VOb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBwcmVtaXNlTm9kZU1hdGNoZXMgPSBtYXRjaFByZW1pc2VOb2RlKHByZW1pc2VOb2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmIChwcmVtaXNlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcHJlbWlzZU5vZGVzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTWV0YXZhcmlhYmxlKHByZW1pc2VNZXRhdmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VNZXRhdmFyaWFibGVNYXRjaGVzO1xuXG4gIGNvbnN0IHByZW1pc2VNZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKHByZW1pc2VNZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YVN1YnN0aXR1dGlvbiA9IG1ldGFTdWJzdGl0dXRpb25zLmZpbmQoKG1ldGFTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gbWV0YVN1YnN0aXR1dGlvbi5nZXRNZXRhdmFyaWFibGVOYW1lKCk7XG5cbiAgICAgICAgICBpZiAobWV0YXZhcmlhYmxlTmFtZSA9PT0gcHJlbWlzZU1ldGF2YXJpYWJsZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICBpZiAobWV0YVN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoID0gbWV0YVN1YnN0aXR1dGlvbi5tYXRjaE5vZGVzKG5vZGVzKTtcblxuICAgIHByZW1pc2VNZXRhdmFyaWFibGVNYXRjaGVzID0gbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2g7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gcHJlbWlzZU1ldGF2YXJpYWJsZU5hbWUsIC8vL1xuICAgICAgICAgIG1ldGFTdWJzdGl0dXRpb24gPSBNZXRhU3Vic3RpdHV0aW9uLmZyb21NZXRhdmFyaWFibGVOYW1lQW5kTm9kZXMobWV0YXZhcmlhYmxlTmFtZSwgbm9kZXMpO1xuXG4gICAgbWV0YVN1YnN0aXR1dGlvbnMucHVzaChtZXRhU3Vic3RpdHV0aW9uKTtcblxuICAgIHByZW1pc2VNZXRhdmFyaWFibGVNYXRjaGVzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlTWV0YXZhcmlhYmxlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlVGVybWluYWxOb2RlKHByZW1pc2VUZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHByZW1pc2VUZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJlbWlzZVRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaGVzO1xuXG4gIHJldHVybiBwcmVtaXNlVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgcHJlbWlzZVJ1bGVOYW1lID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IHByZW1pc2VSdWxlTmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByZW1pc2VDaGlsZE5vZGVzID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXNNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9kZXMocHJlbWlzZU5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBwcmVtaXNlQ2hpbGROb2Rlc01hdGNoZXM7IC8vL1xuXG4gICAgaWYgKCFwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgcnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAocnVsZU5hbWUgPT09IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZSA9IHByZW1pc2VOb25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlKHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUocHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBwcmVtaXNlTm9uVGVybWluYWxOb2RlID0gcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIHByZW1pc2VDaGlsZE5vZGVzID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZW1pc2VDaGlsZE5vZGVzTGVuZ3RoID0gcHJlbWlzZUNoaWxkTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChwcmVtaXNlQ2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGZpcnN0UHJlbWlzZUNoaWxkTm9kZSA9IGZpcnN0KHByZW1pc2VDaGlsZE5vZGVzKSxcbiAgICAgICAgICBwcmVtaXNlQ2hpbGROb2RlID0gZmlyc3RQcmVtaXNlQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgcHJlbWlzZUNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IHByZW1pc2VDaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChwcmVtaXNlQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGUgPSBwcmVtaXNlQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSA9IHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSA9IChwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSA9PT0gTUVUQVZBUklBQkxFX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IHByZW1pc2VNZXRhdmFyaWFibGVOb2RlID0gcHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICBwcmVtaXNlTWV0YVZhcmlhYmxlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZU1ldGF2YXJpYWJsZShwcmVtaXNlTWV0YXZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICBwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gcHJlbWlzZU1ldGFWYXJpYWJsZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIlByZW1pc2UiLCJtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5IiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YVN1YnByb29mTm9kZSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhU3Vic3RpdHV0aW9ucyIsIm1ldGFTdWJwcm9vZk5vZGVNYXRjaGVzIiwibWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyIsImZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJmaXJzdCIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzIiwiZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwibm9uVGVybWluYWxOb2RlIiwicHJlbWlzZU5vblRlcm1pbmFsTm9kZSIsInByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlIiwic2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJzZWNvbmQiLCJzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsImZyb21NZXRhc3RhdGVtZW50Tm9kZSIsInByZW1pc2UiLCJtYXRjaFByZW1pc2VOb2RlIiwicHJlbWlzZU5vZGUiLCJub2RlIiwicHJlbWlzZU5vZGVNYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwicnVsZU5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJwcmVtaXNlVGVybWluYWxOb2RlIiwicHJlbWlzZVRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaFByZW1pc2VUZXJtaW5hbE5vZGUiLCJtYXRjaFByZW1pc2VOb2RlcyIsInByZW1pc2VOb2RlcyIsIm5vZGVzIiwicHJlbWlzZU5vZGVzTWF0Y2hlcyIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwicHJlbWlzZU5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoUHJlbWlzZU1ldGF2YXJpYWJsZSIsInByZW1pc2VNZXRhdmFyaWFibGVOb2RlIiwicHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXMiLCJwcmVtaXNlTWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFTdWJzdGl0dXRpb24iLCJmaW5kIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCIsIm1hdGNoTm9kZXMiLCJNZXRhU3Vic3RpdHV0aW9uIiwiZnJvbU1ldGF2YXJpYWJsZU5hbWVBbmROb2RlcyIsInB1c2giLCJtYXRjaGVzIiwibWF0Y2giLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwicHJlbWlzZVJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJwcmVtaXNlQ2hpbGROb2RlcyIsInByZW1pc2VDaGlsZE5vZGVzTWF0Y2hlcyIsInJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lIiwiTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUiLCJwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hQcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUiLCJwcmVtaXNlQ2hpbGROb2Rlc0xlbmd0aCIsImZpcnN0UHJlbWlzZUNoaWxkTm9kZSIsInByZW1pc2VDaGlsZE5vZGUiLCJwcmVtaXNlQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGUiLCJwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSIsInByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwicHJlbWlzZU1ldGFWYXJpYWJsZU1hdGNoZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBYXFCQTs7O3FFQVhRO3FCQUVDO3FCQUNRO3lCQUUwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoRSxJQUFNQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUMseUNBQ3JDQyxpQ0FBaUNDLElBQUFBLGdCQUFTLEVBQUMsMENBQzNDQyw2REFBNkRILElBQUFBLGlCQUFVLEVBQUM7QUFFL0QsSUFBQSxBQUFNRix3QkF1RGxCLEFBdkRZO2FBQU1BLFFBQ1BNLGlCQUFpQjs4QkFEVk47UUFFakIsSUFBSSxDQUFDTSxpQkFBaUIsR0FBR0E7O2lCQUZSTjs7WUFLbkJPLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUI7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDRCxpQkFBaUI7WUFDL0I7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxnQkFBZ0IsRUFBRUMsaUJBQWlCLEVBQUU7Z0JBQ3pELElBQUlDLDBCQUEwQixLQUFLO2dCQUVuQyxJQUFNQyw0QkFBNEJULCtCQUErQixJQUFJLENBQUNHLGlCQUFpQjtnQkFFdkYsSUFBSU0sOEJBQThCLElBQUksRUFBRTtvQkFDdEMsSUFBTUMsMENBQTBDWix3QkFBd0JXLDRCQUNsRUUsOENBQThDQyxJQUFBQSxZQUFLLEVBQUNGLDBDQUNwREcsd0RBQXdEWCwyREFBMkRJLG1CQUNuSFEsNERBQTRERixJQUFBQSxZQUFLLEVBQUNDO29CQUV4RSxJQUFNRSxrQkFBa0JELDJEQUNsQkUseUJBQXlCTCw2Q0FDekJNLGdDQUFnQ0MsNEJBQTRCRix3QkFBd0JELGlCQUFpQlI7b0JBRTNHLElBQUlVLCtCQUErQjt3QkFDakMs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
package/lib/rule.js ADDED
@@ -0,0 +1,139 @@
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 Rule;
9
+ }
10
+ });
11
+ var _array = require("./utilities/array");
12
+ var _string = require("./utilities/string");
13
+ function _classCallCheck(instance, Constructor) {
14
+ if (!(instance instanceof Constructor)) {
15
+ throw new TypeError("Cannot call a class as a function");
16
+ }
17
+ }
18
+ function _defineProperties(target, props) {
19
+ for(var i = 0; i < props.length; i++){
20
+ var descriptor = props[i];
21
+ descriptor.enumerable = descriptor.enumerable || false;
22
+ descriptor.configurable = true;
23
+ if ("value" in descriptor) descriptor.writable = true;
24
+ Object.defineProperty(target, descriptor.key, descriptor);
25
+ }
26
+ }
27
+ function _createClass(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+ var Rule = /*#__PURE__*/ function() {
33
+ function Rule(labels, premises, conclusion) {
34
+ _classCallCheck(this, Rule);
35
+ this.labels = labels;
36
+ this.premises = premises;
37
+ this.conclusion = conclusion;
38
+ }
39
+ _createClass(Rule, [
40
+ {
41
+ key: "getLabels",
42
+ value: function getLabels() {
43
+ return this.labels;
44
+ }
45
+ },
46
+ {
47
+ key: "getPremises",
48
+ value: function getPremises() {
49
+ return this.premises;
50
+ }
51
+ },
52
+ {
53
+ key: "getConclusion",
54
+ value: function getConclusion() {
55
+ return this.conclusion;
56
+ }
57
+ },
58
+ {
59
+ key: "matchMetastatement",
60
+ value: function matchMetastatement(metastatementNode, context) {
61
+ var _this = this;
62
+ var metastatementNatches;
63
+ var premisesLength = this.premises.length;
64
+ if (premisesLength === 0) {
65
+ var metaSubstitutions = [], conclusionMatches = matchConclusion(this.conclusion, metastatementNode, metaSubstitutions);
66
+ metastatementNatches = conclusionMatches; ///
67
+ } else {
68
+ var metaAssertions = context.getMetaAssertions();
69
+ metastatementNatches = (0, _array.someSubArray)(metaAssertions, premisesLength, function(metaAssertions) {
70
+ var premisesMatchConclusion = matchPremisesAndConclusion(_this.premises, _this.conclusion, metaAssertions, metastatementNode);
71
+ if (premisesMatchConclusion) {
72
+ return true;
73
+ }
74
+ });
75
+ }
76
+ return metastatementNatches;
77
+ }
78
+ },
79
+ {
80
+ key: "asString",
81
+ value: function asString() {
82
+ var string = (0, _string.labelsAsString)(this.labels);
83
+ return string;
84
+ }
85
+ }
86
+ ], [
87
+ {
88
+ key: "fromPremisesConclusionAndLabels",
89
+ value: function fromPremisesConclusionAndLabels(premises, conclusion, labels) {
90
+ var rule = new Rule(labels, premises, conclusion);
91
+ return rule;
92
+ }
93
+ }
94
+ ]);
95
+ return Rule;
96
+ }();
97
+ function matchPremise(premise, metaAssertions, metaSubstitutions) {
98
+ var metaAssertion = (0, _array.prune)(metaAssertions, function(metaAssertion) {
99
+ var metaSubproofNode = metaAssertion.getMetaSubproofNode(), metastatementNode = metaAssertion.getMetastatementNode();
100
+ if (metaSubproofNode !== null) {
101
+ var metaSubProofMatches = premise.matchMetaSubproofNode(metaSubproofNode, metaSubstitutions);
102
+ if (!metaSubProofMatches) {
103
+ return true;
104
+ }
105
+ }
106
+ if (metastatementNode !== null) {
107
+ var metastatementMatches = premise.matchMetastatementNode(metastatementNode, metaSubstitutions);
108
+ if (!metastatementMatches) {
109
+ return true;
110
+ }
111
+ }
112
+ }) || null;
113
+ var premiseMatches = metaAssertion !== null;
114
+ return premiseMatches;
115
+ }
116
+ function matchPremises(premise, metaAssertions, metaSubstitutions) {
117
+ var premisesMatches = premise.every(function(premise) {
118
+ var premiseMatches = matchPremise(premise, metaAssertions, metaSubstitutions);
119
+ if (premiseMatches) {
120
+ return true;
121
+ }
122
+ });
123
+ return premisesMatches;
124
+ }
125
+ function matchConclusion(conclusion, metastatementNode, metaSubstitutions) {
126
+ var nonTerminalNodeMatches = conclusion.matchMetastatementNode(metastatementNode, metaSubstitutions), conclusionMatches = nonTerminalNodeMatches; ///
127
+ return conclusionMatches;
128
+ }
129
+ function matchPremisesAndConclusion(premises, conclusion, metaAssertions, metastatementNode) {
130
+ var premisesMatchConclusion = false;
131
+ var metaSubstitutions = [], premisesMatches = matchPremises(premises, metaAssertions, metaSubstitutions);
132
+ if (premisesMatches) {
133
+ var conclusionMatches = matchConclusion(conclusion, metastatementNode, metaSubstitutions);
134
+ premisesMatchConclusion = conclusionMatches; ///
135
+ }
136
+ return premisesMatchConclusion;
137
+ }
138
+
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBwcnVuZSB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgc29tZVN1YkFycmF5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBsYWJlbHNBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVsZSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudChtZXRhc3RhdGVtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGxldCBtZXRhc3RhdGVtZW50TmF0Y2hlcztcblxuICAgIGNvbnN0IHByZW1pc2VzTGVuZ3RoID0gdGhpcy5wcmVtaXNlcy5sZW5ndGg7XG5cbiAgICBpZiAocHJlbWlzZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnROYXRjaGVzID0gY29uY2x1c2lvbk1hdGNoZXM7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtZXRhQXNzZXJ0aW9ucyA9IGNvbnRleHQuZ2V0TWV0YUFzc2VydGlvbnMoKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBzb21lU3ViQXJyYXkobWV0YUFzc2VydGlvbnMsIHByZW1pc2VzTGVuZ3RoLCAobWV0YUFzc2VydGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBtYXRjaFByZW1pc2VzQW5kQ29uY2x1c2lvbih0aGlzLnByZW1pc2VzLCB0aGlzLmNvbmNsdXNpb24sIG1ldGFBc3NlcnRpb25zLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50TmF0Y2hlcztcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IGxhYmVsc0FzU3RyaW5nKHRoaXMubGFiZWxzKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByZW1pc2VzQ29uY2x1c2lvbkFuZExhYmVscyhwcmVtaXNlcywgY29uY2x1c2lvbiwgbGFiZWxzKSB7XG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFBc3NlcnRpb25zLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtZXRhQXNzZXJ0aW9uID0gcHJ1bmUobWV0YUFzc2VydGlvbnMsIChtZXRhQXNzZXJ0aW9uKSA9PiB7XG4gICAgY29uc3QgbWV0YVN1YnByb29mTm9kZSA9IG1ldGFBc3NlcnRpb24uZ2V0TWV0YVN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YUFzc2VydGlvbi5nZXRNZXRhc3RhdGVtZW50Tm9kZSgpXG5cbiAgICBpZiAobWV0YVN1YnByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YVN1YlByb29mTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhU3VicHJvb2ZOb2RlKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFtZXRhU3ViUHJvb2ZNYXRjaGVzKSB7ICAvLy9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoIW1ldGFzdGF0ZW1lbnRNYXRjaGVzKSB7ICAvLy9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gIH0pIHx8IG51bGw7XG5cbiAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSAobWV0YUFzc2VydGlvbiAhPT0gbnVsbCk7XG5cbiAgcmV0dXJuIHByZW1pc2VNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VzKHByZW1pc2UsIG1ldGFBc3NlcnRpb25zLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBwcmVtaXNlc01hdGNoZXMgPSBwcmVtaXNlLmV2ZXJ5KChwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSBtYXRjaFByZW1pc2UocHJlbWlzZSwgbWV0YUFzc2VydGlvbnMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgIGlmIChwcmVtaXNlTWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcHJlbWlzZXNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb24oY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uLm1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSxcbiAgICAgICAgY29uY2x1c2lvbk1hdGNoZXMgPSBub25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gY29uY2x1c2lvbk1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZXNBbmRDb25jbHVzaW9uKHByZW1pc2VzLCBjb25jbHVzaW9uLCBtZXRhQXNzZXJ0aW9ucywgbWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgcHJlbWlzZXNNYXRjaGVzID0gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlcywgbWV0YUFzc2VydGlvbnMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICBpZiAocHJlbWlzZXNNYXRjaGVzKSB7XG4gICAgY29uc3QgY29uY2x1c2lvbk1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb24oY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgIHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gY29uY2x1c2lvbk1hdGNoZXM7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbjtcbn1cbiJdLCJuYW1lcyI6WyJSdWxlIiwibGFiZWxzIiwicHJlbWlzZXMiLCJjb25jbHVzaW9uIiwiZ2V0TGFiZWxzIiwiZ2V0UHJlbWlzZXMiLCJnZXRDb25jbHVzaW9uIiwibWF0Y2hNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJjb250ZXh0IiwibWV0YXN0YXRlbWVudE5hdGNoZXMiLCJwcmVtaXNlc0xlbmd0aCIsImxlbmd0aCIsIm1ldGFTdWJzdGl0dXRpb25zIiwiY29uY2x1c2lvbk1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb24iLCJtZXRhQXNzZXJ0aW9ucyIsImdldE1ldGFBc3NlcnRpb25zIiwic29tZVN1YkFycmF5IiwicHJlbWlzZXNNYXRjaENvbmNsdXNpb24iLCJtYXRjaFByZW1pc2VzQW5kQ29uY2x1c2lvbiIsImFzU3RyaW5nIiwic3RyaW5nIiwibGFiZWxzQXNTdHJpbmciLCJmcm9tUHJlbWlzZXNDb25jbHVzaW9uQW5kTGFiZWxzIiwicnVsZSIsIm1hdGNoUHJlbWlzZSIsInByZW1pc2UiLCJtZXRhQXNzZXJ0aW9uIiwicHJ1bmUiLCJtZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YVN1YnByb29mTm9kZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YVN1YlByb29mTWF0Y2hlcyIsIm1hdGNoTWV0YVN1YnByb29mTm9kZSIsIm1ldGFzdGF0ZW1lbnRNYXRjaGVzIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsInByZW1pc2VNYXRjaGVzIiwibWF0Y2hQcmVtaXNlcyIsInByZW1pc2VzTWF0Y2hlcyIsImV2ZXJ5Iiwibm9uVGVybWluYWxOb2RlTWF0Y2hlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7cUJBSkM7c0JBRVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhCLElBQUEsQUFBTUEscUJBeURsQixBQXpEWTthQUFNQSxLQUNQQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsVUFBVTs4QkFEckJIO1FBRWpCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7O2lCQUpE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
@@ -0,0 +1,46 @@
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
+ TERM_RULE_NAME: function() {
13
+ return TERM_RULE_NAME;
14
+ },
15
+ TYPE_RULE_NAME: function() {
16
+ return TYPE_RULE_NAME;
17
+ },
18
+ ARGUMENT_RULE_NAME: function() {
19
+ return ARGUMENT_RULE_NAME;
20
+ },
21
+ METAVARIABLE_RULE_NAME: function() {
22
+ return METAVARIABLE_RULE_NAME;
23
+ },
24
+ METASTATEMENT_RULE_NAME: function() {
25
+ return METASTATEMENT_RULE_NAME;
26
+ },
27
+ META_SUBPROOF_RULE_NAME: function() {
28
+ return META_SUBPROOF_RULE_NAME;
29
+ },
30
+ QUALIFIED_METASTATEMENT_RULE_NAME: function() {
31
+ return QUALIFIED_METASTATEMENT_RULE_NAME;
32
+ },
33
+ UNQUALIFIED_METASTATEMENT_RULE_NAME: function() {
34
+ return UNQUALIFIED_METASTATEMENT_RULE_NAME;
35
+ }
36
+ });
37
+ var TERM_RULE_NAME = "term";
38
+ var TYPE_RULE_NAME = "type";
39
+ var ARGUMENT_RULE_NAME = "argument";
40
+ var METAVARIABLE_RULE_NAME = "metavariable";
41
+ var METASTATEMENT_RULE_NAME = "metastatement";
42
+ var META_SUBPROOF_RULE_NAME = "metaSubproof";
43
+ var QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
44
+ var UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
45
+
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBURVJNX1JVTEVfTkFNRSA9IFwidGVybVwiO1xuZXhwb3J0IGNvbnN0IFRZUEVfUlVMRV9OQU1FID0gXCJ0eXBlXCI7XG5leHBvcnQgY29uc3QgQVJHVU1FTlRfUlVMRV9OQU1FID0gXCJhcmd1bWVudFwiO1xuZXhwb3J0IGNvbnN0IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUgPSBcIm1ldGF2YXJpYWJsZVwiO1xuZXhwb3J0IGNvbnN0IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FID0gXCJtZXRhc3RhdGVtZW50XCI7XG5leHBvcnQgY29uc3QgTUVUQV9TVUJQUk9PRl9SVUxFX05BTUUgPSBcIm1ldGFTdWJwcm9vZlwiO1xuZXhwb3J0IGNvbnN0IFFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwicXVhbGlmaWVkTWV0YXN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FID0gXCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRcIjtcbiJdLCJuYW1lcyI6WyJURVJNX1JVTEVfTkFNRSIsIlRZUEVfUlVMRV9OQU1FIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiTUVUQV9TVUJQUk9PRl9SVUxFX05BTUUiLCJRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRWFBLGNBQWM7ZUFBZEE7O0lBQ0FDLGNBQWM7ZUFBZEE7O0lBQ0FDLGtCQUFrQjtlQUFsQkE7O0lBQ0FDLHNCQUFzQjtlQUF0QkE7O0lBQ0FDLHVCQUF1QjtlQUF2QkE7O0lBQ0FDLHVCQUF1QjtlQUF2QkE7O0lBQ0FDLGlDQUFpQztlQUFqQ0E7O0lBQ0FDLG1DQUFtQztlQUFuQ0E7OztBQVBOLElBQU1QLGlCQUFpQjtBQUN2QixJQUFNQyxpQkFBaUI7QUFDdkIsSUFBTUMscUJBQXFCO0FBQzNCLElBQU1DLHlCQUF5QjtBQUMvQixJQUFNQywwQkFBMEI7QUFDaEMsSUFBTUMsMEJBQTBCO0FBQ2hDLElBQU1DLG9DQUFvQztBQUMxQyxJQUFNQyxzQ0FBc0MifQ==
package/lib/type.js ADDED
@@ -0,0 +1,153 @@
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 Type;
9
+ }
10
+ });
11
+ function _classCallCheck(instance, Constructor) {
12
+ if (!(instance instanceof Constructor)) {
13
+ throw new TypeError("Cannot call a class as a function");
14
+ }
15
+ }
16
+ function _defineProperties(target, props) {
17
+ for(var i = 0; i < props.length; i++){
18
+ var descriptor = props[i];
19
+ descriptor.enumerable = descriptor.enumerable || false;
20
+ descriptor.configurable = true;
21
+ if ("value" in descriptor) descriptor.writable = true;
22
+ Object.defineProperty(target, descriptor.key, descriptor);
23
+ }
24
+ }
25
+ function _createClass(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+ var Type = /*#__PURE__*/ function() {
31
+ function Type(name, superType) {
32
+ _classCallCheck(this, Type);
33
+ this.name = name;
34
+ this.superType = superType;
35
+ }
36
+ _createClass(Type, [
37
+ {
38
+ key: "getName",
39
+ value: function getName() {
40
+ return this.name;
41
+ }
42
+ },
43
+ {
44
+ key: "getSuperType",
45
+ value: function getSuperType() {
46
+ return this.superType;
47
+ }
48
+ },
49
+ {
50
+ key: "isEqualTo",
51
+ value: function isEqualTo(type) {
52
+ var equalToType = this === type;
53
+ return equalToType;
54
+ }
55
+ },
56
+ {
57
+ key: "isSubTypeOf",
58
+ value: function isSubTypeOf(type) {
59
+ var subTypeOfType = false;
60
+ if (this.superType === type) {
61
+ subTypeOfType = true;
62
+ } else {
63
+ if (this.superType !== null) {
64
+ subTypeOfType = this.superType.isSubTypeOf(type);
65
+ }
66
+ }
67
+ return subTypeOfType;
68
+ }
69
+ },
70
+ {
71
+ key: "isSuperTypeOf",
72
+ value: function isSuperTypeOf(type) {
73
+ var superTypeOfType = false;
74
+ var superType = type.getSuperType();
75
+ if (superType === this) {
76
+ superTypeOfType = true;
77
+ } else {
78
+ if (superType !== null) {
79
+ superTypeOfType = superType.isSuperTypeOf(this);
80
+ }
81
+ }
82
+ return superTypeOfType;
83
+ }
84
+ },
85
+ {
86
+ key: "isEqualToOrSubTypeOf",
87
+ value: function isEqualToOrSubTypeOf(type) {
88
+ var equalToType = this.isEqualTo(type), subTypeOfType = this.isSubTypeOf(type), equalToTypeOrSubTypeOf = equalToType || subTypeOfType;
89
+ return equalToTypeOrSubTypeOf;
90
+ }
91
+ },
92
+ {
93
+ key: "isEqualToOrSuperTypeOf",
94
+ value: function isEqualToOrSuperTypeOf(type) {
95
+ var equalToType = this.isEqualTo(type), superTypeOfType = this.isSuperTypeOf(type), equalToTypeOrSuperTypeOf = equalToType || superTypeOfType;
96
+ return equalToTypeOrSuperTypeOf;
97
+ }
98
+ },
99
+ {
100
+ key: "isEqualToSubTypeOfOrSuperTypeOf",
101
+ value: function isEqualToSubTypeOfOrSuperTypeOf(type) {
102
+ var equalToType = this.isEqualTo(type), subTypeOfType = this.isSubTypeOf(type), superTypeOfType = this.isSuperTypeOf(type), equalToTypeSubTypeOfOrSuperTypeOf = equalToType || subTypeOfType || superTypeOfType;
103
+ return equalToTypeSubTypeOfOrSuperTypeOf;
104
+ }
105
+ },
106
+ {
107
+ key: "matchName",
108
+ value: function matchName(name) {
109
+ var matchesName = this.name === name;
110
+ return matchesName;
111
+ }
112
+ },
113
+ {
114
+ key: "matchTypeName",
115
+ value: function matchTypeName(typeName) {
116
+ var matchesTypeName = this.name === typeName;
117
+ return matchesTypeName;
118
+ }
119
+ },
120
+ {
121
+ key: "asString",
122
+ value: function asString() {
123
+ var noSuperType = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.superType === null;
124
+ var string;
125
+ if (noSuperType) {
126
+ string = "".concat(this.name);
127
+ } else {
128
+ var superTypeName = this.superType.getName();
129
+ string = "".concat(this.name, ":").concat(superTypeName);
130
+ }
131
+ return string;
132
+ }
133
+ }
134
+ ], [
135
+ {
136
+ key: "fromTypeName",
137
+ value: function fromTypeName(typeName) {
138
+ var name = typeName, superType = null, type = new Type(name, superType);
139
+ return type;
140
+ }
141
+ },
142
+ {
143
+ key: "fromTypeNameAndSuperType",
144
+ value: function fromTypeNameAndSuperType(typeName, superType) {
145
+ var name = typeName, type = new Type(name, superType);
146
+ return type;
147
+ }
148
+ }
149
+ ]);
150
+ return Type;
151
+ }();
152
+
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUeXBlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgc3VwZXJUeXBlKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFN1cGVyVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGU7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG9UeXBlID0gKHRoaXMgPT09IHR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9UeXBlO1xuICB9XG5cbiAgaXNTdWJUeXBlT2YodHlwZSkge1xuICAgIGxldCBzdWJUeXBlT2ZUeXBlID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5zdXBlclR5cGUgPT09IHR5cGUpIHtcbiAgICAgIHN1YlR5cGVPZlR5cGUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zdXBlclR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgc3ViVHlwZU9mVHlwZSA9IHRoaXMuc3VwZXJUeXBlLmlzU3ViVHlwZU9mKHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdWJUeXBlT2ZUeXBlO1xuICB9XG5cbiAgaXNTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgbGV0IHN1cGVyVHlwZU9mVHlwZSA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlID0gdHlwZS5nZXRTdXBlclR5cGUoKTtcblxuICAgIGlmIChzdXBlclR5cGUgPT09IHRoaXMpIHtcbiAgICAgIHN1cGVyVHlwZU9mVHlwZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzdXBlclR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgc3VwZXJUeXBlT2ZUeXBlID0gc3VwZXJUeXBlLmlzU3VwZXJUeXBlT2YodGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZU9mVHlwZTtcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvVHlwZSA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1YlR5cGVPZlR5cGUgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9UeXBlT3JTdWJUeXBlT2YgPSAoZXF1YWxUb1R5cGUgfHwgc3ViVHlwZU9mVHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUb1R5cGVPclN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG9UeXBlID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3VwZXJUeXBlT2ZUeXBlID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9UeXBlT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvVHlwZSB8fCBzdXBlclR5cGVPZlR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9UeXBlT3JTdXBlclR5cGVPZjtcbiAgfVxuXG4gIGlzRXF1YWxUb1N1YlR5cGVPZk9yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG9UeXBlID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mVHlwZSA9IHRoaXMuaXNTdWJUeXBlT2YodHlwZSksXG4gICAgICAgICAgc3VwZXJUeXBlT2ZUeXBlID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9UeXBlU3ViVHlwZU9mT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvVHlwZSB8fCBzdWJUeXBlT2ZUeXBlIHx8IHN1cGVyVHlwZU9mVHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUb1R5cGVTdWJUeXBlT2ZPclN1cGVyVHlwZU9mO1xuICB9XG5cbiAgbWF0Y2hOYW1lKG5hbWUpIHtcbiAgICBjb25zdCBtYXRjaGVzTmFtZSA9ICh0aGlzLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNOYW1lO1xuICB9XG5cbiAgbWF0Y2hUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNUeXBlTmFtZSA9ICh0aGlzLm5hbWUgPT09IHR5cGVOYW1lKTtcblxuICAgIHJldHVybiBtYXRjaGVzVHlwZU5hbWU7XG4gIH1cblxuICBhc1N0cmluZyhub1N1cGVyVHlwZSA9ICh0aGlzLnN1cGVyVHlwZSA9PT0gbnVsbCkpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgaWYgKG5vU3VwZXJUeXBlKSB7XG4gICAgICBzdHJpbmcgPSBgJHt0aGlzLm5hbWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlTmFtZSA9IHRoaXMuc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgICAgc3RyaW5nID0gYCR7dGhpcy5uYW1lfToke3N1cGVyVHlwZU5hbWV9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIHN1cGVyVHlwZSA9IG51bGwsXG4gICAgICAgICAgdHlwZSA9IG5ldyBUeXBlKG5hbWUsIHN1cGVyVHlwZSk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUodHlwZU5hbWUsIHN1cGVyVHlwZSkge1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShuYW1lLCBzdXBlclR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiVHlwZSIsIm5hbWUiLCJzdXBlclR5cGUiLCJnZXROYW1lIiwiZ2V0U3VwZXJUeXBlIiwiaXNFcXVhbFRvIiwidHlwZSIsImVxdWFsVG9UeXBlIiwiaXNTdWJUeXBlT2YiLCJzdWJUeXBlT2ZUeXBlIiwiaXNTdXBlclR5cGVPZiIsInN1cGVyVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiZXF1YWxUb1R5cGVPclN1YlR5cGVPZiIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJlcXVhbFRvVHlwZU9yU3VwZXJUeXBlT2YiLCJpc0VxdWFsVG9TdWJUeXBlT2ZPclN1cGVyVHlwZU9mIiwiZXF1YWxUb1R5cGVTdWJUeXBlT2ZPclN1cGVyVHlwZU9mIiwibWF0Y2hOYW1lIiwibWF0Y2hlc05hbWUiLCJtYXRjaFR5cGVOYW1lIiwidHlwZU5hbWUiLCJtYXRjaGVzVHlwZU5hbWUiLCJhc1N0cmluZyIsIm5vU3VwZXJUeXBlIiwic3RyaW5nIiwic3VwZXJUeXBlTmFtZSIsImZyb21UeXBlTmFtZSIsImZyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFFcUJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU4sSUFBQSxBQUFNQSxxQkFBTjthQUFNQSxLQUNQQyxJQUFJLEVBQUVDLFNBQVM7OEJBRFJGO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTs7aUJBSEFGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVU7Z0JBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZTtnQkFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztZQUN2Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxJQUFJLEVBQUU7Z0JBQ2Qs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