occam-verify-cli 0.0.959 → 0.0.961

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/bin/action/verify.js +16 -5
  2. package/bin/utilities/releaseContext.js +5 -8
  3. package/lib/context/file.js +38 -14
  4. package/lib/context/local.js +3 -9
  5. package/lib/context/release.js +82 -52
  6. package/lib/frame.js +3 -3
  7. package/lib/index.js +5 -5
  8. package/lib/metavariable.js +9 -9
  9. package/lib/proofStep.js +21 -18
  10. package/lib/releaseContext/create.js +8 -9
  11. package/lib/releaseContext/initialise.js +67 -0
  12. package/lib/rule.js +5 -5
  13. package/lib/substitution/statementForMetavariable.js +8 -8
  14. package/lib/substitution/termForVariable.js +29 -30
  15. package/lib/substitution.js +7 -7
  16. package/lib/substitutions.js +7 -7
  17. package/lib/topLevelAssertion.js +5 -5
  18. package/lib/unifier/equality.js +7 -7
  19. package/lib/unifier/intrinsicLevel.js +4 -4
  20. package/lib/unifier/metaLevel.js +10 -10
  21. package/lib/unifier/statementWithCombinator.js +147 -0
  22. package/lib/unifier/{termAgainstConstructor.js → termWithConstructor.js} +17 -17
  23. package/lib/unify/conclusionWithStatement.js +34 -0
  24. package/lib/unify/consequentWithStatement.js +34 -0
  25. package/lib/unify/metavariableWithStatement.js +74 -0
  26. package/lib/unify/premiseWithProofStep.js +41 -0
  27. package/lib/unify/premisesWithProofSteps.js +31 -0
  28. package/lib/unify/statementAtainstStatement.js +18 -18
  29. package/lib/unify/statementWithBracketedCombinator.js +30 -0
  30. package/lib/unify/statementWithCombinators.js +40 -0
  31. package/lib/unify/statementWithMetaType.js +24 -0
  32. package/lib/unify/suppositionWithProffStep.js +41 -0
  33. package/lib/unify/suppositionsWithProofSteps.js +31 -0
  34. package/lib/unify/termWithBracketedConstructor.js +37 -0
  35. package/lib/unify/termWithConstructors.js +53 -0
  36. package/lib/unify/termWithTerm.js +21 -0
  37. package/lib/unify/termWithType.js +24 -0
  38. package/lib/unify/variableWithTerm.js +54 -0
  39. package/lib/utilities/assignments.js +9 -12
  40. package/lib/verifier/intrinsicLevel.js +140 -0
  41. package/lib/verifier/metaLevel.js +11 -20
  42. package/lib/verifier/statementAsCombinator.js +9 -9
  43. package/lib/verifier/termAsConstructor.js +5 -5
  44. package/lib/verify/assertion/contained.js +2 -3
  45. package/lib/verify/assertion/defined.js +2 -4
  46. package/lib/verify/assertion/subproof.js +20 -18
  47. package/lib/verify/assertion/type.js +1 -2
  48. package/lib/verify/declaration.js +27 -9
  49. package/lib/verify/error.js +2 -2
  50. package/lib/verify/frame.js +25 -6
  51. package/lib/verify/judgement.js +3 -3
  52. package/lib/verify/metavariable.js +4 -4
  53. package/lib/verify/premise.js +3 -3
  54. package/lib/verify/proofStep.js +23 -30
  55. package/lib/verify/statement/qualified.js +93 -137
  56. package/lib/verify/statement/unqualified.js +18 -104
  57. package/lib/verify/statement.js +95 -76
  58. package/lib/verify/statementAsCombinator.js +3 -3
  59. package/lib/verify/statementGivenMetaType.js +41 -0
  60. package/lib/verify/supposition.js +3 -3
  61. package/lib/verify/term.js +36 -64
  62. package/lib/verify/termAsConstructor.js +2 -2
  63. package/lib/verify/termGivenType.js +34 -0
  64. package/package.json +1 -1
  65. package/src/context/file.js +42 -17
  66. package/src/context/local.js +4 -13
  67. package/src/context/release.js +84 -45
  68. package/src/frame.js +2 -2
  69. package/src/index.js +1 -1
  70. package/src/metavariable.js +6 -6
  71. package/src/proofStep.js +24 -19
  72. package/src/releaseContext/create.js +8 -16
  73. package/src/releaseContext/{verify.js → initialise.js} +32 -23
  74. package/src/rule.js +4 -4
  75. package/src/substitution/statementForMetavariable.js +7 -7
  76. package/src/substitution/termForVariable.js +37 -34
  77. package/src/substitution.js +5 -5
  78. package/src/substitutions.js +5 -5
  79. package/src/topLevelAssertion.js +4 -4
  80. package/src/unifier/equality.js +6 -6
  81. package/src/unifier/intrinsicLevel.js +3 -3
  82. package/src/unifier/metaLevel.js +9 -9
  83. package/src/unifier/statementWithCombinator.js +55 -0
  84. package/src/unifier/{termAgainstConstructor.js → termWithConstructor.js} +9 -9
  85. package/src/unify/{conclusionAgainstStatement.js → conclusionWithStatement.js} +3 -3
  86. package/src/unify/{consequentAgainstStatement.js → consequentWithStatement.js} +3 -3
  87. package/src/unify/{metavariableAgainstStatement.js → metavariableWithStatement.js} +12 -12
  88. package/src/unify/{premiseAgainstProofStep.js → premiseWithProofStep.js} +5 -5
  89. package/src/unify/{premisesAgainstProofSteps.js → premisesWithProofSteps.js} +3 -3
  90. package/src/unify/statementAtainstStatement.js +14 -14
  91. package/src/unify/statementWithBracketedCombinator.js +22 -0
  92. package/src/unify/statementWithCombinators.js +38 -0
  93. package/src/unify/statementWithMetaType.js +14 -0
  94. package/src/unify/{suppositionAgainstProofStep.js → suppositionWithProffStep.js} +5 -5
  95. package/src/unify/{suppositionsAgainstProofSteps.js → suppositionsWithProofSteps.js} +3 -3
  96. package/src/unify/termWithBracketedConstructor.js +36 -0
  97. package/src/unify/termWithConstructors.js +63 -0
  98. package/src/unify/{termAgainstTerm.js → termWithTerm.js} +4 -4
  99. package/src/unify/termWithType.js +15 -0
  100. package/src/unify/{variableAgainstTerm.js → variableWithTerm.js} +5 -5
  101. package/src/utilities/assignments.js +6 -13
  102. package/src/verifier/intrinsicLevel.js +42 -0
  103. package/src/verifier/metaLevel.js +13 -21
  104. package/src/verifier/statementAsCombinator.js +11 -7
  105. package/src/verifier/termAsConstructor.js +4 -3
  106. package/src/verify/assertion/contained.js +1 -3
  107. package/src/verify/assertion/defined.js +1 -4
  108. package/src/verify/assertion/subproof.js +22 -18
  109. package/src/verify/assertion/type.js +0 -1
  110. package/src/verify/declaration.js +34 -11
  111. package/src/verify/error.js +1 -1
  112. package/src/verify/frame.js +32 -5
  113. package/src/verify/judgement.js +3 -3
  114. package/src/verify/metavariable.js +3 -3
  115. package/src/verify/premise.js +3 -3
  116. package/src/verify/proofStep.js +26 -38
  117. package/src/verify/statement/qualified.js +104 -184
  118. package/src/verify/statement/unqualified.js +19 -149
  119. package/src/verify/statement.js +126 -72
  120. package/src/verify/statementAsCombinator.js +2 -2
  121. package/src/verify/statementGivenMetaType.js +37 -0
  122. package/src/verify/supposition.js +3 -3
  123. package/src/verify/term.js +38 -93
  124. package/src/verify/termAsConstructor.js +1 -1
  125. package/src/verify/termGivenType.js +32 -0
  126. package/lib/releaseContext/verify.js +0 -66
  127. package/lib/unifier/statementAgainstCombinator.js +0 -147
  128. package/lib/unify/conclusionAgainstStatement.js +0 -34
  129. package/lib/unify/consequentAgainstStatement.js +0 -34
  130. package/lib/unify/metavariableAgainstStatement.js +0 -74
  131. package/lib/unify/premiseAgainstProofStep.js +0 -41
  132. package/lib/unify/premisesAgainstProofSteps.js +0 -31
  133. package/lib/unify/statementAgainstMetaType.js +0 -48
  134. package/lib/unify/suppositionAgainstProofStep.js +0 -41
  135. package/lib/unify/suppositionsAgainstProofSteps.js +0 -31
  136. package/lib/unify/termAgainstTerm.js +0 -21
  137. package/lib/unify/termAgainstType.js +0 -32
  138. package/lib/unify/variableAgainstTerm.js +0 -54
  139. package/src/unifier/statementAgainstCombinator.js +0 -55
  140. package/src/unify/statementAgainstMetaType.js +0 -50
  141. package/src/unify/termAgainstType.js +0 -31
@@ -0,0 +1,34 @@
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 unifyConsequentWithStatement;
9
+ }
10
+ });
11
+ var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function unifyConsequentWithStatement(consequentA, statementNodeB, substitutions, fileContextA, localContextB) {
18
+ var consequentUnified = false;
19
+ var consequentAStatementNode = consequentA.getStatementNode();
20
+ if (consequentAStatementNode !== null) {
21
+ var localContextA = _local.default.fromFileContext(fileContextA), statementNodeA = consequentAStatementNode, statementStringA = localContextA.nodeAsString(statementNodeA), statementStringB = localContextB.nodeAsString(statementNodeB);
22
+ substitutions.snapshot();
23
+ localContextB.trace("Unifying the '".concat(statementStringB, "' statement with the consequent's '").concat(statementStringA, "' statement..."), statementNodeB);
24
+ var statementUnified = consequentA.unifyStatement(statementNodeB, substitutions, localContextA, localContextB);
25
+ consequentUnified = statementUnified; ///
26
+ consequentUnified ? substitutions.continue() : substitutions.rollback(localContextA, localContextB);
27
+ if (consequentUnified) {
28
+ localContextB.debug("...unified the '".concat(statementStringB, "' statement with the consequent's '").concat(statementStringA, "' statement."), statementNodeB);
29
+ }
30
+ }
31
+ return consequentUnified;
32
+ }
33
+
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9jb25zZXF1ZW50V2l0aFN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlmeUNvbnNlcXVlbnRXaXRoU3RhdGVtZW50KGNvbnNlcXVlbnRBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBjb25zZXF1ZW50VW5pZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnNlcXVlbnRBU3RhdGVtZW50Tm9kZSA9IGNvbnNlcXVlbnRBLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBpZiAoY29uc2VxdWVudEFTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbG9jYWxDb250ZXh0QSA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHRBKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlQSA9IGNvbnNlcXVlbnRBU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN0cmluZ0EgPSBsb2NhbENvbnRleHRBLm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlQSksXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nQiA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVCKTtcblxuICAgIHN1YnN0aXR1dGlvbnMuc25hcHNob3QoKTtcblxuICAgIGxvY2FsQ29udGV4dEIudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmdCfScgc3RhdGVtZW50IHdpdGggdGhlIGNvbnNlcXVlbnQncyAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IGNvbnNlcXVlbnRBLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIGNvbnNlcXVlbnRVbmlmaWVkID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBjb25zZXF1ZW50VW5pZmllZCA/XG4gICAgICBzdWJzdGl0dXRpb25zLmNvbnRpbnVlKCkgOlxuICAgICAgICBzdWJzdGl0dXRpb25zLnJvbGxiYWNrKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgaWYgKGNvbnNlcXVlbnRVbmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHRCLmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmdCfScgc3RhdGVtZW50IHdpdGggdGhlIGNvbnNlcXVlbnQncyAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGVCKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uc2VxdWVudFVuaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlDb25zZXF1ZW50V2l0aFN0YXRlbWVudCIsImNvbnNlcXVlbnRBIiwic3RhdGVtZW50Tm9kZUIiLCJzdWJzdGl0dXRpb25zIiwiZmlsZUNvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsImNvbnNlcXVlbnRVbmlmaWVkIiwiY29uc2VxdWVudEFTdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImxvY2FsQ29udGV4dEEiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJzdGF0ZW1lbnROb2RlQSIsInN0YXRlbWVudFN0cmluZ0EiLCJub2RlQXNTdHJpbmciLCJzdGF0ZW1lbnRTdHJpbmdCIiwic25hcHNob3QiLCJ0cmFjZSIsInN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVN0YXRlbWVudCIsImNvbnRpbnVlIiwicm9sbGJhY2siLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7Ozs0REFGQzs7Ozs7O0FBRVYsU0FBU0EsNkJBQTZCQyxXQUFXLEVBQUVDLGNBQWMsRUFBRUMsYUFBYSxFQUFFQyxZQUFZLEVBQUVDLGFBQWE7SUFDMUgsSUFBSUMsb0JBQW9CO0lBRXhCLElBQU1DLDJCQUEyQk4sWUFBWU8sZ0JBQWdCO0lBRTdELElBQUlELDZCQUE2QixNQUFNO1FBQ3JDLElBQU1FLGdCQUFnQkMsY0FBWSxDQUFDQyxlQUFlLENBQUNQLGVBQzdDUSxpQkFBaUJMLDBCQUNqQk0sbUJBQW1CSixjQUFjSyxZQUFZLENBQUNGLGlCQUM5Q0csbUJBQW1CVixjQUFjUyxZQUFZLENBQUNaO1FBRXBEQyxjQUFjYSxRQUFRO1FBRXRCWCxjQUFjWSxLQUFLLENBQUMsQUFBQyxpQkFBc0VKLE9BQXRERSxrQkFBaUIsdUNBQXNELE9BQWpCRixrQkFBaUIsbUJBQWlCWDtRQUU3SCxJQUFNZ0IsbUJBQW1CakIsWUFBWWtCLGNBQWMsQ0FBQ2pCLGdCQUFnQkMsZUFBZU0sZUFBZUo7UUFFbEdDLG9CQUFvQlksa0JBQWtCLEdBQUc7UUFFekNaLG9CQUNFSCxjQUFjaUIsUUFBUSxLQUNwQmpCLGNBQWNrQixRQUFRLENBQUNaLGVBQWVKO1FBRTFDLElBQUlDLG1CQUFtQjtZQUNyQkQsY0FBY2lCLEtBQUssQ0FBQyxBQUFDLG1CQUF3RVQsT0FBdERFLGtCQUFpQix1Q0FBc0QsT0FBakJGLGtCQUFpQixpQkFBZVg7UUFDL0g7SUFDRjtJQUVBLE9BQU9JO0FBQ1QifQ==
@@ -0,0 +1,74 @@
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 unifyMetavariableWithStatement;
9
+ }
10
+ });
11
+ var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
12
+ var _statementAtainstStatement = /*#__PURE__*/ _interop_require_default(require("../unify/statementAtainstStatement"));
13
+ var _statementForMetavariable = /*#__PURE__*/ _interop_require_default(require("../substitution/statementForMetavariable"));
14
+ var _query = require("../utilities/query");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ var metavariableNodeQuery = (0, _query.nodeQuery)("/statement/metavariable");
21
+ function unifyMetavariableWithStatement(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB) {
22
+ var metavariableUnifiedWithStatement = false;
23
+ var substitution = substitutions.findSubstitution(function(substitution) {
24
+ var substitutionMatchesMetavariableNodeA = substitution.matchMetavariableNode(metavariableNodeA);
25
+ if (substitutionMatchesMetavariableNodeA) {
26
+ return true;
27
+ }
28
+ }) || null;
29
+ if (substitution !== null) {
30
+ var substitutionStatementNode = substitution.getStatementNode();
31
+ if (substitutionNodeA !== null) {
32
+ var substitutionNode = substitutionNodeA, termForVariableSubstitution = _termForVariable.default.fromSubstitutionNode(substitutionNode), localContext = localContextB, substitution1 = termForVariableSubstitution, statementNodeA = substitutionStatementNode, statementUnifiedWithStatement = (0, _statementAtainstStatement.default)(statementNodeA, statementNodeB, substitution1, substitutions, localContext, localContext);
33
+ if (statementUnifiedWithStatement) {
34
+ metavariableUnifiedWithStatement = true;
35
+ }
36
+ } else {
37
+ var substitutionSubstitution = substitution.getSubstitution();
38
+ if (substitutionSubstitution !== null) {
39
+ var statementNodeA1 = statementNodeB; ///
40
+ statementNodeB = substitutionStatementNode; ///
41
+ var localContext1 = localContextB, substitution2 = substitutionSubstitution, statementUnifiedWithStatement1 = (0, _statementAtainstStatement.default)(statementNodeA1, statementNodeB, substitution2, substitutions, localContext1, localContext1);
42
+ if (statementUnifiedWithStatement1) {
43
+ metavariableUnifiedWithStatement = true;
44
+ }
45
+ } else {
46
+ var substitutionMatchesStatementNodeB = substitution.matchStatementNode(statementNodeB);
47
+ if (substitutionMatchesStatementNodeB) {
48
+ metavariableUnifiedWithStatement = true;
49
+ }
50
+ }
51
+ }
52
+ } else {
53
+ var metavariableA = localContextA.findMetavariableByMetavariableNode(metavariableNodeA);
54
+ if (metavariableA !== null) {
55
+ var metavariableB = metavariableFromStatementNode(statementNodeB, localContextB);
56
+ if (metavariableA !== metavariableB) {
57
+ var statementNode = statementNodeB, substitutionNode1 = substitutionNodeA, metavariableNode = metavariableNodeA, statementForMetavariableSubstitution = _statementForMetavariable.default.fromMetavariableNodeStatementNodeAndSubstitutionNode(metavariableNode, statementNode, substitutionNode1), substitution3 = statementForMetavariableSubstitution; ///
58
+ substitutions.addSubstitution(substitution3, localContextA, localContextB);
59
+ }
60
+ metavariableUnifiedWithStatement = true;
61
+ }
62
+ }
63
+ return metavariableUnifiedWithStatement;
64
+ }
65
+ function metavariableFromStatementNode(statementNode, localContext) {
66
+ var metavariable = null;
67
+ var metavariableNode = metavariableNodeQuery(statementNode);
68
+ if (metavariableNode !== null) {
69
+ metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
70
+ }
71
+ return metavariable;
72
+ }
73
+
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9tZXRhdmFyaWFibGVXaXRoU3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5pbXBvcnQgdW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50IGZyb20gXCIuLi91bmlmeS9zdGF0ZW1lbnRBdGFpbnN0U3RhdGVtZW50XCI7XG5pbXBvcnQgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlV2l0aFN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbk5vZGVBLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBID0gc3Vic3RpdHV0aW9uLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlQSk7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUgPSBzdWJzdGl0dXRpb24uZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gICAgaWYgKHN1YnN0aXR1dGlvbk5vZGVBICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlID0gc3Vic3RpdHV0aW9uTm9kZUEsIC8vL1xuICAgICAgICAgICAgdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uID0gVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLmZyb21TdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgICAgbG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0QiwgIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGVBID0gc3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnQpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25TdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24uZ2V0U3Vic3RpdHV0aW9uKCk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25TdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZUEgPSBzdGF0ZW1lbnROb2RlQjsgLy8vXG5cbiAgICAgICAgc3RhdGVtZW50Tm9kZUIgPSBzdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlOyAvLy9cblxuICAgICAgICBjb25zdCBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRCLCAgLy8vXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvblN1YnN0aXR1dGlvbixcbiAgICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnQgPSB1bmlmeVN0YXRlbWVudFdpdGhTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAoc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnQpIHtcbiAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1hdGNoZXNTdGF0ZW1lbnROb2RlQiA9IHN1YnN0aXR1dGlvbi5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb25NYXRjaGVzU3RhdGVtZW50Tm9kZUIpIHtcbiAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlQSA9IGxvY2FsQ29udGV4dEEuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlQSk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlQSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlQiA9IG1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGVCLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZUEgIT09IG1ldGF2YXJpYWJsZUIpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVCLCAvLy9cbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbk5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uLmZyb21NZXRhdmFyaWFibGVOb2RlU3RhdGVtZW50Tm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9uTm9kZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICAgIHN1YnN0aXR1dGlvbnMuYWRkU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgICB9XG5cbiAgICAgIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoU3RhdGVtZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIG1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlID0gbnVsbDtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpXG5cbiAgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBtZXRhdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGU7XG59XG4iXSwibmFtZXMiOlsidW5pZnlNZXRhdmFyaWFibGVXaXRoU3RhdGVtZW50IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZUEiLCJzdGF0ZW1lbnROb2RlQiIsInN1YnN0aXR1dGlvbk5vZGVBIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwibWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnQiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlIiwidGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVN1YnN0aXR1dGlvbk5vZGUiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnROb2RlQSIsInN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50IiwidW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50Iiwic3Vic3RpdHV0aW9uU3Vic3RpdHV0aW9uIiwiZ2V0U3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uTWF0Y2hlc1N0YXRlbWVudE5vZGVCIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlQSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVCIiwibWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsInN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsIlN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21NZXRhdmFyaWFibGVOb2RlU3RhdGVtZW50Tm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJhZGRTdWJzdGl0dXRpb24iLCJtZXRhdmFyaWFibGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBd0JBOzs7c0VBUmdCO2dGQUNBOytFQUNTO3FCQUV2Qjs7Ozs7O0FBRTFCLElBQU1DLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV6QixTQUFTRiwrQkFBK0JHLGlCQUFpQixFQUFFQyxjQUFjLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUN0SixJQUFJQyxtQ0FBbUM7SUFFdkMsSUFBTUMsZUFBZUosY0FBY0ssZ0JBQWdCLENBQUMsU0FBQ0Q7UUFDbkQsSUFBTUUsdUNBQXVDRixhQUFhRyxxQkFBcUIsQ0FBQ1Y7UUFFaEYsSUFBSVMsc0NBQXNDO1lBQ3hDLE9BQU87UUFDVDtJQUNGLE1BQU07SUFFTixJQUFJRixpQkFBaUIsTUFBTTtRQUN6QixJQUFNSSw0QkFBNEJKLGFBQWFLLGdCQUFnQjtRQUUvRCxJQUFJVixzQkFBc0IsTUFBTTtZQUM5QixJQUFNVyxtQkFBbUJYLG1CQUNuQlksOEJBQThCQyx3QkFBMkIsQ0FBQ0Msb0JBQW9CLENBQUNILG1CQUMvRUksZUFBZVosZUFDZkUsZ0JBQWVPLDZCQUNmSSxpQkFBaUJQLDJCQUNqQlEsZ0NBQWdDQyxJQUFBQSxrQ0FBMkIsRUFBQ0YsZ0JBQWdCakIsZ0JBQWdCTSxlQUFjSixlQUFlYyxjQUFjQTtZQUU3SSxJQUFJRSwrQkFBK0I7Z0JBQ2pDYixtQ0FBbUM7WUFDckM7UUFDRixPQUFPO1lBQ0wsSUFBTWUsMkJBQTJCZCxhQUFhZSxlQUFlO1lBRTdELElBQUlELDZCQUE2QixNQUFNO2dCQUNyQyxJQUFNSCxrQkFBaUJqQixnQkFBZ0IsR0FBRztnQkFFMUNBLGlCQUFpQlUsMkJBQTJCLEdBQUc7Z0JBRS9DLElBQU1NLGdCQUFlWixlQUNmRSxnQkFBZWMsMEJBQ2ZGLGlDQUFnQ0MsSUFBQUEsa0NBQTJCLEVBQUNGLGlCQUFnQmpCLGdCQUFnQk0sZUFBY0osZUFBZWMsZUFBY0E7Z0JBRTdJLElBQUlFLGdDQUErQjtvQkFDakNiLG1DQUFtQztnQkFDckM7WUFDRixPQUFPO2dCQUNMLElBQU1pQixvQ0FBb0NoQixhQUFhaUIsa0JBQWtCLENBQUN2QjtnQkFFMUUsSUFBSXNCLG1DQUFtQztvQkFDckNqQixtQ0FBbUM7Z0JBQ3JDO1lBQ0Y7UUFDRjtJQUNGLE9BQU87UUFDTCxJQUFNbUIsZ0JBQWdCckIsY0FBY3NCLGtDQUFrQyxDQUFDMUI7UUFFdkUsSUFBSXlCLGtCQUFrQixNQUFNO1lBQzFCLElBQU1FLGdCQUFnQkMsOEJBQThCM0IsZ0JBQWdCSTtZQUVwRSxJQUFJb0Isa0JBQWtCRSxlQUFlO2dCQUNuQyxJQUFNRSxnQkFBZ0I1QixnQkFDaEJZLG9CQUFtQlgsbUJBQ25CNEIsbUJBQW1COUIsbUJBQ25CK0IsdUNBQXVDQyxpQ0FBb0MsQ0FBQ0Msb0RBQW9ELENBQUNILGtCQUFrQkQsZUFBZWhCLG9CQUNsS04sZ0JBQWV3QixzQ0FBdUMsR0FBRztnQkFFL0Q1QixjQUFjK0IsZUFBZSxDQUFDM0IsZUFBY0gsZUFBZUM7WUFDN0Q7WUFFQUMsbUNBQW1DO1FBQ3JDO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU3NCLDhCQUE4QkMsYUFBYSxFQUFFWixZQUFZO0lBQ2hFLElBQUlrQixlQUFlO0lBRW5CLElBQU1MLG1CQUFtQmhDLHNCQUFzQitCO0lBRS9DLElBQUlDLHFCQUFxQixNQUFNO1FBQzdCSyxlQUFlbEIsYUFBYVMsa0NBQWtDLENBQUNJO0lBQ2pFO0lBRUEsT0FBT0s7QUFDVCJ9
@@ -0,0 +1,41 @@
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 unifyPremiseWithProofStep;
9
+ }
10
+ });
11
+ var _unify = require("../utilities/unify");
12
+ function unifyPremiseWithProofStep(premiseA, proofStepB, substitutions, localContextA, localContextB) {
13
+ var premiseUnified = false;
14
+ var premiseAStatementNode = premiseA.getStatementNode();
15
+ if (premiseAStatementNode !== null) {
16
+ var proofStepBSubproofNode = proofStepB.getSubproofNode(), proofStepBStatementNode = proofStepB.getStatementNode(), subproofNodeB = proofStepBSubproofNode, statementNodeB = proofStepBStatementNode, statementNodeA = premiseAStatementNode, statementStringA = localContextA.nodeAsString(statementNodeA);
17
+ substitutions.snapshot();
18
+ if (subproofNodeB !== null) {
19
+ var subproofStringB = (0, _unify.subproofNodeAsSubproofString)(subproofNodeB, localContextB);
20
+ localContextB.trace("Unifying the '".concat(subproofStringB, "' subproof with the premise's '").concat(statementStringA, "' statement..."), subproofNodeB);
21
+ var subproofUnified = premiseA.unifySubproof(subproofNodeB, substitutions, localContextA, localContextB);
22
+ if (subproofUnified) {
23
+ localContextB.debug("...unified the '".concat(subproofStringB, "' subproof with the premise's '").concat(statementStringA, "' statement."), subproofNodeB);
24
+ premiseUnified = true;
25
+ }
26
+ }
27
+ if (statementNodeB !== null) {
28
+ var statementStringB = localContextB.nodeAsString(statementNodeB);
29
+ localContextB.trace("Unifying the '".concat(statementStringB, "' statement with the premise's '").concat(statementStringA, "' statement..."), statementNodeB);
30
+ var statementUnified = premiseA.unifyStatement(statementNodeB, substitutions, localContextA, localContextB);
31
+ if (statementUnified) {
32
+ localContextB.debug("...unified the '".concat(statementStringB, "' statement with the premise's '").concat(statementStringA, "' statement."), statementNodeB);
33
+ premiseUnified = true;
34
+ }
35
+ }
36
+ premiseUnified ? substitutions.continue() : substitutions.rollback(localContextA, localContextB);
37
+ }
38
+ return premiseUnified;
39
+ }
40
+
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9wcmVtaXNlV2l0aFByb29mU3RlcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3VicHJvb2ZOb2RlQXNTdWJwcm9vZlN0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdW5pZnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlQcmVtaXNlV2l0aFByb29mU3RlcChwcmVtaXNlQSwgcHJvb2ZTdGVwQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBsZXQgcHJlbWlzZVVuaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBwcmVtaXNlQVN0YXRlbWVudE5vZGUgPSBwcmVtaXNlQS5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgaWYgKHByZW1pc2VBU3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHByb29mU3RlcEJTdWJwcm9vZk5vZGUgPSBwcm9vZlN0ZXBCLmdldFN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIHByb29mU3RlcEJTdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGVwQi5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZOb2RlQiA9IHByb29mU3RlcEJTdWJwcm9vZk5vZGUsIC8vL1xuICAgICAgICAgIHN0YXRlbWVudE5vZGVCID0gcHJvb2ZTdGVwQlN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgIHN0YXRlbWVudE5vZGVBID0gcHJlbWlzZUFTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmdBID0gbG9jYWxDb250ZXh0QS5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZUEpXG5cbiAgICBzdWJzdGl0dXRpb25zLnNuYXBzaG90KCk7XG5cbiAgICBpZiAoc3VicHJvb2ZOb2RlQiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZTdHJpbmdCID0gc3VicHJvb2ZOb2RlQXNTdWJwcm9vZlN0cmluZyhzdWJwcm9vZk5vZGVCLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgbG9jYWxDb250ZXh0Qi50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1YnByb29mU3RyaW5nQn0nIHN1YnByb29mIHdpdGggdGhlIHByZW1pc2UncyAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50Li4uYCwgc3VicHJvb2ZOb2RlQik7XG5cbiAgICAgIGNvbnN0IHN1YnByb29mVW5pZmllZCA9IHByZW1pc2VBLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2ZOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIGlmIChzdWJwcm9vZlVuaWZpZWQpIHtcbiAgICAgICAgbG9jYWxDb250ZXh0Qi5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VicHJvb2ZTdHJpbmdCfScgc3VicHJvb2Ygd2l0aCB0aGUgcHJlbWlzZSdzICcke3N0YXRlbWVudFN0cmluZ0F9JyBzdGF0ZW1lbnQuYCwgc3VicHJvb2ZOb2RlQik7XG5cbiAgICAgICAgcHJlbWlzZVVuaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnROb2RlQiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nQiA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVCKTtcblxuICAgICAgbG9jYWxDb250ZXh0Qi50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ0J9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgcHJlbWlzZSdzICcke3N0YXRlbWVudFN0cmluZ0F9JyBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlQik7XG5cbiAgICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZWQgPSBwcmVtaXNlQS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgICAgIGxvY2FsQ29udGV4dEIuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ0J9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgcHJlbWlzZSdzICcke3N0YXRlbWVudFN0cmluZ0F9JyBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgICAgIHByZW1pc2VVbmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcmVtaXNlVW5pZmllZCA/XG4gICAgICBzdWJzdGl0dXRpb25zLmNvbnRpbnVlKCkgOlxuICAgICAgICBzdWJzdGl0dXRpb25zLnJvbGxiYWNrKGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VVbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5UHJlbWlzZVdpdGhQcm9vZlN0ZXAiLCJwcmVtaXNlQSIsInByb29mU3RlcEIiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJwcmVtaXNlVW5pZmllZCIsInByZW1pc2VBU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJwcm9vZlN0ZXBCU3VicHJvb2ZOb2RlIiwiZ2V0U3VicHJvb2ZOb2RlIiwicHJvb2ZTdGVwQlN0YXRlbWVudE5vZGUiLCJzdWJwcm9vZk5vZGVCIiwic3RhdGVtZW50Tm9kZUIiLCJzdGF0ZW1lbnROb2RlQSIsInN0YXRlbWVudFN0cmluZ0EiLCJub2RlQXNTdHJpbmciLCJzbmFwc2hvdCIsInN1YnByb29mU3RyaW5nQiIsInN1YnByb29mTm9kZUFzU3VicHJvb2ZTdHJpbmciLCJ0cmFjZSIsInN1YnByb29mVW5pZmllZCIsInVuaWZ5U3VicHJvb2YiLCJkZWJ1ZyIsInN0YXRlbWVudFN0cmluZ0IiLCJzdGF0ZW1lbnRVbmlmaWVkIiwidW5pZnlTdGF0ZW1lbnQiLCJjb250aW51ZSIsInJvbGxiYWNrIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O3FCQUZxQjtBQUU5QixTQUFTQSwwQkFBMEJDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUNqSCxJQUFJQyxpQkFBaUI7SUFFckIsSUFBTUMsd0JBQXdCTixTQUFTTyxnQkFBZ0I7SUFFdkQsSUFBSUQsMEJBQTBCLE1BQU07UUFDbEMsSUFBTUUseUJBQXlCUCxXQUFXUSxlQUFlLElBQ25EQywwQkFBMEJULFdBQVdNLGdCQUFnQixJQUNyREksZ0JBQWdCSCx3QkFDaEJJLGlCQUFpQkYseUJBQ2pCRyxpQkFBaUJQLHVCQUNqQlEsbUJBQW1CWCxjQUFjWSxZQUFZLENBQUNGO1FBRXBEWCxjQUFjYyxRQUFRO1FBRXRCLElBQUlMLGtCQUFrQixNQUFNO1lBQzFCLElBQU1NLGtCQUFrQkMsSUFBQUEsbUNBQTRCLEVBQUNQLGVBQWVQO1lBRXBFQSxjQUFjZSxLQUFLLENBQUMsQUFBQyxpQkFBaUVMLE9BQWpERyxpQkFBZ0IsbUNBQWtELE9BQWpCSCxrQkFBaUIsbUJBQWlCSDtZQUV4SCxJQUFNUyxrQkFBa0JwQixTQUFTcUIsYUFBYSxDQUFDVixlQUFlVCxlQUFlQyxlQUFlQztZQUU1RixJQUFJZ0IsaUJBQWlCO2dCQUNuQmhCLGNBQWNrQixLQUFLLENBQUMsQUFBQyxtQkFBbUVSLE9BQWpERyxpQkFBZ0IsbUNBQWtELE9BQWpCSCxrQkFBaUIsaUJBQWVIO2dCQUV4SE4saUJBQWlCO1lBQ25CO1FBQ0Y7UUFFQSxJQUFJTyxtQkFBbUIsTUFBTTtZQUMzQixJQUFNVyxtQkFBbUJuQixjQUFjVyxZQUFZLENBQUNIO1lBRXBEUixjQUFjZSxLQUFLLENBQUMsQUFBQyxpQkFBbUVMLE9BQW5EUyxrQkFBaUIsb0NBQW1ELE9BQWpCVCxrQkFBaUIsbUJBQWlCRjtZQUUxSCxJQUFNWSxtQkFBbUJ4QixTQUFTeUIsY0FBYyxDQUFDYixnQkFBZ0JWLGVBQWVDLGVBQWVDO1lBRS9GLElBQUlvQixrQkFBa0I7Z0JBQ3BCcEIsY0FBY2tCLEtBQUssQ0FBQyxBQUFDLG1CQUFxRVIsT0FBbkRTLGtCQUFpQixvQ0FBbUQsT0FBakJULGtCQUFpQixpQkFBZUY7Z0JBRTFIUCxpQkFBaUI7WUFDbkI7UUFDRjtRQUVBQSxpQkFDRUgsY0FBY3dCLFFBQVEsS0FDcEJ4QixjQUFjeUIsUUFBUSxDQUFDeEIsZUFBZUM7SUFDNUM7SUFFQSxPQUFPQztBQUNUIn0=
@@ -0,0 +1,31 @@
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 unifyPremisesWithProofSteps;
9
+ }
10
+ });
11
+ var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
12
+ var _premiseWithProofStep = /*#__PURE__*/ _interop_require_default(require("../unify/premiseWithProofStep"));
13
+ var _array = require("../utilities/array");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function unifyPremisesWithProofSteps(premisesA, proofStepsB, substitutions, fileContextA, localContextB) {
20
+ premisesA = (0, _array.reverse)(premisesA); ///
21
+ proofStepsB = (0, _array.reverse)(proofStepsB); ///
22
+ var premisesUnified = (0, _array.correlate)(premisesA, proofStepsB, function(premiseA, proofStepB) {
23
+ var localContextA = _local.default.fromFileContext(fileContextA), premiseUnified = (0, _premiseWithProofStep.default)(premiseA, proofStepB, substitutions, localContextA, localContextB);
24
+ if (premiseUnified) {
25
+ return true;
26
+ }
27
+ });
28
+ return premisesUnified;
29
+ }
30
+
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9wcmVtaXNlc1dpdGhQcm9vZlN0ZXBzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdW5pZnlQcmVtaXNlV2l0aFByb29mU3RlcCBmcm9tIFwiLi4vdW5pZnkvcHJlbWlzZVdpdGhQcm9vZlN0ZXBcIjtcblxuaW1wb3J0IHsgcmV2ZXJzZSwgY29ycmVsYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlmeVByZW1pc2VzV2l0aFByb29mU3RlcHMocHJlbWlzZXNBLCBwcm9vZlN0ZXBzQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIHByZW1pc2VzQSA9IHJldmVyc2UocHJlbWlzZXNBKTsgLy8vXG5cbiAgcHJvb2ZTdGVwc0IgPSByZXZlcnNlKHByb29mU3RlcHNCKTsgLy8vXG5cbiAgY29uc3QgcHJlbWlzZXNVbmlmaWVkID0gY29ycmVsYXRlKHByZW1pc2VzQSwgcHJvb2ZTdGVwc0IsIChwcmVtaXNlQSwgcHJvb2ZTdGVwQikgPT4ge1xuICAgIGNvbnN0IGxvY2FsQ29udGV4dEEgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0QSksXG4gICAgICAgICAgcHJlbWlzZVVuaWZpZWQgPSB1bmlmeVByZW1pc2VXaXRoUHJvb2ZTdGVwKHByZW1pc2VBLCBwcm9vZlN0ZXBCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIGlmIChwcmVtaXNlVW5pZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcHJlbWlzZXNVbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5UHJlbWlzZXNXaXRoUHJvb2ZTdGVwcyIsInByZW1pc2VzQSIsInByb29mU3RlcHNCIiwic3Vic3RpdHV0aW9ucyIsImZpbGVDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJyZXZlcnNlIiwicHJlbWlzZXNVbmlmaWVkIiwiY29ycmVsYXRlIiwicHJlbWlzZUEiLCJwcm9vZlN0ZXBCIiwibG9jYWxDb250ZXh0QSIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInByZW1pc2VVbmlmaWVkIiwidW5pZnlQcmVtaXNlV2l0aFByb29mU3RlcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUF3QkE7Ozs0REFMQzsyRUFDYTtxQkFFSDs7Ozs7O0FBRXBCLFNBQVNBLDRCQUE0QkMsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxhQUFhO0lBQ3BISixZQUFZSyxJQUFBQSxjQUFPLEVBQUNMLFlBQVksR0FBRztJQUVuQ0MsY0FBY0ksSUFBQUEsY0FBTyxFQUFDSixjQUFjLEdBQUc7SUFFdkMsSUFBTUssa0JBQWtCQyxJQUFBQSxnQkFBUyxFQUFDUCxXQUFXQyxhQUFhLFNBQUNPLFVBQVVDO1FBQ25FLElBQU1DLGdCQUFnQkMsY0FBWSxDQUFDQyxlQUFlLENBQUNULGVBQzdDVSxpQkFBaUJDLElBQUFBLDZCQUF5QixFQUFDTixVQUFVQyxZQUFZUCxlQUFlUSxlQUFlTjtRQUVyRyxJQUFJUyxnQkFBZ0I7WUFDbEIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPUDtBQUNUIn0=
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return unifyStatementAgainstStatement;
8
+ return unifyStatementWithStatement;
9
9
  }
10
10
  });
11
+ var _substitutions = /*#__PURE__*/ _interop_require_default(require("../substitutions"));
11
12
  var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
12
13
  var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
13
14
  var _array = require("../utilities/array");
@@ -16,34 +17,33 @@ function _interop_require_default(obj) {
16
17
  default: obj
17
18
  };
18
19
  }
19
- function unifyStatementAgainstStatement(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB) {
20
- var statementUnifiedAgainstStatement = false;
21
- var termForVariableSubstitution = _termForVariable.default.fromSubstitutionAndSubstitutions(substitution, substitutions), transformed = termForVariableSubstitution.isTransformed(substitution);
22
- var substitutionsA = []; ///
23
- if (transformed) {
24
- var substitutionA = termForVariableSubstitution; ///
25
- substitutionsA.push(substitutionA);
20
+ function unifyStatementWithStatement(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB) {
21
+ var statementUnifiedWithStatement = false;
22
+ var transformedSubstitutions = _substitutions.default.fromNothing(), transformedSubstitution = substitution.transformed(substitutions);
23
+ if (transformedSubstitution !== null) {
24
+ transformedSubstitutions.addSubstitution(transformedSubstitution, localContextA, localContextB);
26
25
  }
27
- var nodeA = statementNodeA, nodeB = statementNodeB, unified = _metaLevel.default.unify(nodeA, nodeB, substitutionsA, localContextA, localContextB);
26
+ var nodeA = statementNodeA, nodeB = statementNodeB, unified = _metaLevel.default.unify(nodeA, nodeB, transformedSubstitutions, localContextA, localContextB);
28
27
  if (unified) {
29
- if (!transformed) {
28
+ if (transformedSubstitution === null) {
29
+ debugger;
30
30
  var substitutionB = termForVariableSubstitution, substitutionsB = [
31
31
  substitutionB
32
32
  ];
33
33
  substitutionsA = transformSubstitutions(substitutionsA, substitutionsB);
34
34
  (0, _array.push)(substitutions, substitutionsA);
35
35
  }
36
- statementUnifiedAgainstStatement = true;
36
+ statementUnifiedWithStatement = true;
37
37
  }
38
- return statementUnifiedAgainstStatement;
38
+ return statementUnifiedWithStatement;
39
39
  }
40
- function transformSubstitutions(substitutionsA, substitutionsB) {
41
- substitutionsA = substitutionsA.map(function(substitutionA) {
42
- var substitution = substitutionA, substitutions = substitutionsB, termForVariableSubstitution = _termForVariable.default.fromSubstitutionAndSubstitutions(substitution, substitutions);
43
- substitutionA = termForVariableSubstitution; ///
40
+ function transformSubstitutions(substitutionsA1, substitutionsB) {
41
+ substitutionsA1 = substitutionsA1.map(function(substitutionA) {
42
+ var substitution = substitutionA, substitutions = substitutionsB, termForVariableSubstitution1 = _termForVariable.default.fromSubstitutionAndSubstitutions(substitution, substitutions);
43
+ substitutionA = termForVariableSubstitution1; ///
44
44
  return substitutionA;
45
45
  });
46
- return substitutionsA;
46
+ return substitutionsA1;
47
47
  }
48
48
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRBdGFpbnN0U3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9tZXRhTGV2ZWxcIjtcbmltcG9ydCBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtRm9yVmFyaWFibGVcIjtcblxuaW1wb3J0IHsgcHVzaCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRBZ2FpbnN0U3RhdGVtZW50KHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3Vic3RpdHV0aW9uQW5kU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMpLFxuICAgICAgICB0cmFuc2Zvcm1lZCA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5pc1RyYW5zZm9ybWVkKHN1YnN0aXR1dGlvbik7XG5cbiAgbGV0IHN1YnN0aXR1dGlvbnNBID0gW107IC8vL1xuXG4gIGlmICh0cmFuc2Zvcm1lZCkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbkEgPSB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb247ICAvLy9cblxuICAgIHN1YnN0aXR1dGlvbnNBLnB1c2goc3Vic3RpdHV0aW9uQSk7XG4gIH1cblxuICBjb25zdCBub2RlQSA9IHN0YXRlbWVudE5vZGVBLCAgLy8vXG4gICAgICAgIG5vZGVCID0gc3RhdGVtZW50Tm9kZUIsICAvLy9cbiAgICAgICAgdW5pZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zQSwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgaWYgKHVuaWZpZWQpIHtcbiAgICBpZiAoIXRyYW5zZm9ybWVkKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25zQiA9IFtcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uQlxuICAgICAgICAgICAgXTtcblxuICAgICAgc3Vic3RpdHV0aW9uc0EgPSB0cmFuc2Zvcm1TdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnNBLCBzdWJzdGl0dXRpb25zQik7XG5cbiAgICAgIHB1c2goc3Vic3RpdHV0aW9ucywgc3Vic3RpdHV0aW9uc0EpO1xuICAgIH1cblxuICAgIHN0YXRlbWVudFVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zQSwgc3Vic3RpdHV0aW9uc0IpIHtcbiAgc3Vic3RpdHV0aW9uc0EgPSBzdWJzdGl0dXRpb25zQS5tYXAoKHN1YnN0aXR1dGlvbkEpID0+IHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25BLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNCLFxuICAgICAgICAgIHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3Vic3RpdHV0aW9uQW5kU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgc3Vic3RpdHV0aW9uQSA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uQTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvbnNBO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50QWdhaW5zdFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50Tm9kZUIiLCJzdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCIsInRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsIlRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21TdWJzdGl0dXRpb25BbmRTdWJzdGl0dXRpb25zIiwidHJhbnNmb3JtZWQiLCJpc1RyYW5zZm9ybWVkIiwic3Vic3RpdHV0aW9uc0EiLCJzdWJzdGl0dXRpb25BIiwicHVzaCIsIm5vZGVBIiwibm9kZUIiLCJ1bmlmaWVkIiwibWV0YUxldmVsVW5pZmllciIsInVuaWZ5Iiwic3Vic3RpdHV0aW9uQiIsInN1YnN0aXR1dGlvbnNCIiwidHJhbnNmb3JtU3Vic3RpdHV0aW9ucyIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUF3QkE7OztnRUFMSztzRUFDVztxQkFFbkI7Ozs7OztBQUVOLFNBQVNBLCtCQUErQkMsY0FBYyxFQUFFQyxjQUFjLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWE7SUFDOUksSUFBSUMsbUNBQW1DO0lBRXZDLElBQU1DLDhCQUE4QkMsd0JBQTJCLENBQUNDLGdDQUFnQyxDQUFDUCxjQUFjQyxnQkFDekdPLGNBQWNILDRCQUE0QkksYUFBYSxDQUFDVDtJQUU5RCxJQUFJVSxpQkFBaUIsRUFBRSxFQUFFLEdBQUc7SUFFNUIsSUFBSUYsYUFBYTtRQUNmLElBQU1HLGdCQUFnQk4sNkJBQThCLEdBQUc7UUFFdkRLLGVBQWVFLElBQUksQ0FBQ0Q7SUFDdEI7SUFFQSxJQUFNRSxRQUFRZixnQkFDUmdCLFFBQVFmLGdCQUNSZ0IsVUFBVUMsa0JBQWdCLENBQUNDLEtBQUssQ0FBQ0osT0FBT0MsT0FBT0osZ0JBQWdCUixlQUFlQztJQUVwRixJQUFJWSxTQUFTO1FBQ1gsSUFBSSxDQUFDUCxhQUFhO1lBQ2hCLElBQU1VLGdCQUFnQmIsNkJBQ2hCYyxpQkFBaUI7Z0JBQ2ZEO2FBQ0Q7WUFFUFIsaUJBQWlCVSx1QkFBdUJWLGdCQUFnQlM7WUFFeERQLElBQUFBLFdBQUksRUFBQ1gsZUFBZVM7UUFDdEI7UUFFQU4sbUNBQW1DO0lBQ3JDO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNnQix1QkFBdUJWLGNBQWMsRUFBRVMsY0FBYztJQUM1RFQsaUJBQWlCQSxlQUFlVyxHQUFHLENBQUMsU0FBQ1Y7UUFDbkMsSUFBTVgsZUFBZVcsZUFDZlYsZ0JBQWdCa0IsZ0JBQ2hCZCw4QkFBOEJDLHdCQUEyQixDQUFDQyxnQ0FBZ0MsQ0FBQ1AsY0FBY0M7UUFFL0dVLGdCQUFnQk4sNkJBQTZCLEdBQUc7UUFFaEQsT0FBT007SUFDVDtJQUVBLE9BQU9EO0FBQ1QifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRBdGFpbnN0U3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgU3Vic3RpdHV0aW9ucyBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uc1wiO1xuaW1wb3J0IG1ldGFMZXZlbFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YUxldmVsXCI7XG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IHB1c2ggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBsZXQgc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnQgPSBmYWxzZTtcblxuICBjb25zdCB0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIHRyYW5zZm9ybWVkU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLnRyYW5zZm9ybWVkKHN1YnN0aXR1dGlvbnMpO1xuXG4gIGlmICh0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIHRyYW5zZm9ybWVkU3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24odHJhbnNmb3JtZWRTdWJzdGl0dXRpb24sIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuICB9XG5cbiAgY29uc3Qgbm9kZUEgPSBzdGF0ZW1lbnROb2RlQSwgIC8vL1xuICAgICAgICBub2RlQiA9IHN0YXRlbWVudE5vZGVCLCAgLy8vXG4gICAgICAgIHVuaWZpZWQgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KG5vZGVBLCBub2RlQiwgdHJhbnNmb3JtZWRTdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICBpZiAodW5pZmllZCkge1xuICAgIGlmICh0cmFuc2Zvcm1lZFN1YnN0aXR1dGlvbiA9PT0gbnVsbCkge1xuXG4gICAgICBkZWJ1Z2dlclxuXG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25zQiA9IFtcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uQlxuICAgICAgICAgICAgXTtcblxuICAgICAgc3Vic3RpdHV0aW9uc0EgPSB0cmFuc2Zvcm1TdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnNBLCBzdWJzdGl0dXRpb25zQik7XG5cbiAgICAgIHB1c2goc3Vic3RpdHV0aW9ucywgc3Vic3RpdHV0aW9uc0EpO1xuICAgIH1cblxuICAgIHN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zQSwgc3Vic3RpdHV0aW9uc0IpIHtcbiAgc3Vic3RpdHV0aW9uc0EgPSBzdWJzdGl0dXRpb25zQS5tYXAoKHN1YnN0aXR1dGlvbkEpID0+IHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25BLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNCLFxuICAgICAgICAgIHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiA9IFRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3Vic3RpdHV0aW9uQW5kU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgc3Vic3RpdHV0aW9uQSA9IHRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uQTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvbnNBO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50Tm9kZUIiLCJzdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudCIsInRyYW5zZm9ybWVkU3Vic3RpdHV0aW9ucyIsIlN1YnN0aXR1dGlvbnMiLCJmcm9tTm90aGluZyIsInRyYW5zZm9ybWVkU3Vic3RpdHV0aW9uIiwidHJhbnNmb3JtZWQiLCJhZGRTdWJzdGl0dXRpb24iLCJub2RlQSIsIm5vZGVCIiwidW5pZmllZCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsInN1YnN0aXR1dGlvbkIiLCJ0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25zQiIsInN1YnN0aXR1dGlvbnNBIiwidHJhbnNmb3JtU3Vic3RpdHV0aW9ucyIsInB1c2giLCJtYXAiLCJzdWJzdGl0dXRpb25BIiwiVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVN1YnN0aXR1dGlvbkFuZFN1YnN0aXR1dGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBd0JBOzs7b0VBTkU7Z0VBQ0c7c0VBQ1c7cUJBRW5COzs7Ozs7QUFFTixTQUFTQSw0QkFBNEJDLGNBQWMsRUFBRUMsY0FBYyxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO0lBQzNJLElBQUlDLGdDQUFnQztJQUVwQyxJQUFNQywyQkFBMkJDLHNCQUFhLENBQUNDLFdBQVcsSUFDcERDLDBCQUEwQlIsYUFBYVMsV0FBVyxDQUFDUjtJQUV6RCxJQUFJTyw0QkFBNEIsTUFBTTtRQUNwQ0gseUJBQXlCSyxlQUFlLENBQUNGLHlCQUF5Qk4sZUFBZUM7SUFDbkY7SUFFQSxJQUFNUSxRQUFRYixnQkFDUmMsUUFBUWIsZ0JBQ1JjLFVBQVVDLGtCQUFnQixDQUFDQyxLQUFLLENBQUNKLE9BQU9DLE9BQU9QLDBCQUEwQkgsZUFBZUM7SUFFOUYsSUFBSVUsU0FBUztRQUNYLElBQUlMLDRCQUE0QixNQUFNO1lBRXBDLFFBQVE7WUFFUixJQUFNUSxnQkFBZ0JDLDZCQUNoQkMsaUJBQWlCO2dCQUNmRjthQUNEO1lBRVBHLGlCQUFpQkMsdUJBQXVCRCxnQkFBZ0JEO1lBRXhERyxJQUFBQSxXQUFJLEVBQUNwQixlQUFla0I7UUFDdEI7UUFFQWYsZ0NBQWdDO0lBQ2xDO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNnQix1QkFBdUJELGVBQWMsRUFBRUQsY0FBYztJQUM1REMsa0JBQWlCQSxnQkFBZUcsR0FBRyxDQUFDLFNBQUNDO1FBQ25DLElBQU12QixlQUFldUIsZUFDZnRCLGdCQUFnQmlCLGdCQUNoQkQsK0JBQThCTyx3QkFBMkIsQ0FBQ0MsZ0NBQWdDLENBQUN6QixjQUFjQztRQUUvR3NCLGdCQUFnQk4sOEJBQTZCLEdBQUc7UUFFaEQsT0FBT007SUFDVDtJQUVBLE9BQU9KO0FBQ1QifQ==
@@ -0,0 +1,30 @@
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 unifyStatementWithBracketedCombinator;
9
+ }
10
+ });
11
+ var _bracketed = /*#__PURE__*/ _interop_require_default(require("../ocmbinator/bracketed"));
12
+ var _statementWithCombinator = /*#__PURE__*/ _interop_require_default(require("../unifier/statementWithCombinator"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ function unifyStatementWithBracketedCombinator(statementNode, assignments, derived, localContext) {
19
+ var statementUnifiedWithBracketedCombinator;
20
+ var statementString = localContext.nodeAsString(statementNode);
21
+ localContext.trace("Unifying the '".concat(statementString, "' statement with the bracketed combinator..."), statementNode);
22
+ var bracketedCombinatorStatementNode = _bracketed.default.getStatementNode();
23
+ statementUnifiedWithBracketedCombinator = _statementWithCombinator.default.unify(statementNode, bracketedCombinatorStatementNode, assignments, derived, localContext);
24
+ if (statementUnifiedWithBracketedCombinator) {
25
+ localContext.debug("...unified the '".concat(statementString, "' statement with the bracketed combinator."), statementNode);
26
+ }
27
+ return statementUnifiedWithBracketedCombinator;
28
+ }
29
+
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL3N0YXRlbWVudFdpdGhDb21iaW5hdG9yXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aEJyYWNrZXRlZENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllZFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGJyYWNrZXRlZCBjb21iaW5hdG9yLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRDb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBzdGF0ZW1lbnRVbmlmaWVkV2l0aEJyYWNrZXRlZENvbWJpbmF0b3IgPSBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIudW5pZnkoc3RhdGVtZW50Tm9kZSwgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRVbmlmaWVkV2l0aEJyYWNrZXRlZENvbWJpbmF0b3IpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBicmFja2V0ZWQgY29tYmluYXRvci5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkV2l0aEJyYWNrZXRlZENvbWJpbmF0b3I7XG59XG4iXSwibmFtZXMiOlsidW5pZnlTdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvciIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRVbmlmaWVkV2l0aEJyYWNrZXRlZENvbWJpbmF0b3IiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImdldFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIiLCJ1bmlmeSIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXdCQTs7O2dFQUhROzhFQUNXOzs7Ozs7QUFFNUIsU0FBU0Esc0NBQXNDQyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzdHLElBQUlDO0lBRUosSUFBTUMsa0JBQWtCRixhQUFhRyxZQUFZLENBQUNOO0lBRWxERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxpQkFBZ0MsT0FBaEJGLGlCQUFnQixpREFBK0NMO0lBRW5HLElBQU1RLG1DQUFtQ0Msa0JBQW1CLENBQUNDLGdCQUFnQjtJQUU3RU4sMENBQTBDTyxnQ0FBOEIsQ0FBQ0MsS0FBSyxDQUFDWixlQUFlUSxrQ0FBa0NQLGFBQWFDLFNBQVNDO0lBRXRKLElBQUlDLHlDQUF5QztRQUMzQ0QsYUFBYVUsS0FBSyxDQUFDLEFBQUMsbUJBQWtDLE9BQWhCUixpQkFBZ0IsK0NBQTZDTDtJQUNyRztJQUVBLE9BQU9JO0FBQ1QifQ==
@@ -0,0 +1,40 @@
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 unifyStatementWithCombinators;
9
+ }
10
+ });
11
+ var _statementWithCombinator = /*#__PURE__*/ _interop_require_default(require("../unifier/statementWithCombinator"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function unifyStatementWithCombinators(statementNode, assignments, derived, localContext) {
18
+ var statementUnifiedWithCombinators;
19
+ var combinators = localContext.getCombinators();
20
+ statementUnifiedWithCombinators = combinators.some(function(combinator) {
21
+ var statementUnifiedWithCombinator = unifyStatementWithCombinator(statementNode, combinator, assignments, derived, localContext);
22
+ if (statementUnifiedWithCombinator) {
23
+ return true;
24
+ }
25
+ });
26
+ return statementUnifiedWithCombinators;
27
+ }
28
+ function unifyStatementWithCombinator(statementNode, combinator, assignments, derived, localContext) {
29
+ var statementUnifiedWithCombinator;
30
+ var statementString = localContext.nodeAsString(statementNode), combinatorString = combinator.getString();
31
+ localContext.trace("Unifying the '".concat(statementString, "' statement with the '").concat(combinatorString, "' combinator..."), statementNode);
32
+ var combinatorStatementNode = combinator.getStatementNode();
33
+ statementUnifiedWithCombinator = _statementWithCombinator.default.unify(statementNode, combinatorStatementNode, assignments, derived, localContext);
34
+ if (statementUnifiedWithCombinator) {
35
+ localContext.debug("...unified the '".concat(statementString, "' statement with the '").concat(combinatorString, "' combinator."), statementNode);
36
+ }
37
+ return statementUnifiedWithCombinator;
38
+ }
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvc3RhdGVtZW50V2l0aENvbWJpbmF0b3JcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9ycztcblxuICBjb25zdCBjb21iaW5hdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb21iaW5hdG9ycygpO1xuXG4gIHN0YXRlbWVudFVuaWZpZWRXaXRoQ29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yID0gdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWRXaXRoQ29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbWJpbmF0b3JTdHJpbmcgPSBjb21iaW5hdG9yLmdldFN0cmluZygpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvci5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yID0gc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAoc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzIiwic3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWRXaXRoQ29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImdldENvbWJpbmF0b3JzIiwic29tZSIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3IiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiY29tYmluYXRvclN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7Ozs4RUFGbUI7Ozs7OztBQUU1QixTQUFTQSw4QkFBOEJDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDckcsSUFBSUM7SUFFSixJQUFNQyxjQUFjRixhQUFhRyxjQUFjO0lBRS9DRixrQ0FBa0NDLFlBQVlFLElBQUksQ0FBQyxTQUFDQztRQUNsRCxJQUFNQyxpQ0FBaUNDLDZCQUE2QlYsZUFBZVEsWUFBWVAsYUFBYUMsU0FBU0M7UUFFckgsSUFBSU0sZ0NBQWdDO1lBQ2xDLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLDZCQUE2QlYsYUFBYSxFQUFFUSxVQUFVLEVBQUVQLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ2pHLElBQUlNO0lBRUosSUFBTUUsa0JBQWtCUixhQUFhUyxZQUFZLENBQUNaLGdCQUM1Q2EsbUJBQW1CTCxXQUFXTSxTQUFTO0lBRTdDWCxhQUFhWSxLQUFLLENBQUMsQUFBQyxpQkFBd0RGLE9BQXhDRixpQkFBZ0IsMEJBQXlDLE9BQWpCRSxrQkFBaUIsb0JBQWtCYjtJQUUvRyxJQUFNZ0IsMEJBQTBCUixXQUFXUyxnQkFBZ0I7SUFFM0RSLGlDQUFpQ1MsZ0NBQThCLENBQUNDLEtBQUssQ0FBQ25CLGVBQWVnQix5QkFBeUJmLGFBQWFDLFNBQVNDO0lBRXBJLElBQUlNLGdDQUFnQztRQUNsQ04sYUFBYWlCLEtBQUssQ0FBQyxBQUFDLG1CQUEwRFAsT0FBeENGLGlCQUFnQiwwQkFBeUMsT0FBakJFLGtCQUFpQixrQkFBZ0JiO0lBQ2pIO0lBRUEsT0FBT1M7QUFDVCJ9
@@ -0,0 +1,24 @@
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 unifyStatementWithMetaType;
9
+ }
10
+ });
11
+ var _statementGivenMetaType = /*#__PURE__*/ _interop_require_default(require("../verify/statementGivenMetaType"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function unifyStatementWithMetaType(statementNode, metaTypeNode, assignments, derived, localContext) {
18
+ var statementUnifiedWithMetaType;
19
+ var metaType = localContext.findMetaTypeByMetaTypeNode(metaTypeNode), statementVerifiedGivenMetaType = (0, _statementGivenMetaType.default)(statementNode, metaType, assignments, derived, localContext);
20
+ statementUnifiedWithMetaType = statementVerifiedGivenMetaType; ///
21
+ return statementUnifiedWithMetaType;
22
+ }
23
+
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRXaXRoTWV0YVR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlTdGF0ZW1lbnRHaXZlbk1ldGFUeXBlIGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50R2l2ZW5NZXRhVHlwZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudFdpdGhNZXRhVHlwZShzdGF0ZW1lbnROb2RlLCBtZXRhVHlwZU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZWRXaXRoTWV0YVR5cGU7XG5cbiAgY29uc3QgbWV0YVR5cGUgPSBsb2NhbENvbnRleHQuZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5vZGUobWV0YVR5cGVOb2RlKSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRHaXZlbk1ldGFUeXBlID0gdmVyaWZ5U3RhdGVtZW50R2l2ZW5NZXRhVHlwZShzdGF0ZW1lbnROb2RlLCBtZXRhVHlwZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgc3RhdGVtZW50VW5pZmllZFdpdGhNZXRhVHlwZSA9IHN0YXRlbWVudFZlcmlmaWVkR2l2ZW5NZXRhVHlwZTsgIC8vL1xuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkV2l0aE1ldGFUeXBlO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50V2l0aE1ldGFUeXBlIiwic3RhdGVtZW50Tm9kZSIsIm1ldGFUeXBlTm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWRXaXRoTWV0YVR5cGUiLCJtZXRhVHlwZSIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOb2RlIiwic3RhdGVtZW50VmVyaWZpZWRHaXZlbk1ldGFUeXBlIiwidmVyaWZ5U3RhdGVtZW50R2l2ZW5NZXRhVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7Ozs2RUFGaUI7Ozs7OztBQUUxQixTQUFTQSwyQkFBMkJDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUNoSCxJQUFJQztJQUVKLElBQU1DLFdBQVdGLGFBQWFHLDBCQUEwQixDQUFDTixlQUNuRE8saUNBQWlDQyxJQUFBQSwrQkFBNEIsRUFBQ1QsZUFBZU0sVUFBVUosYUFBYUMsU0FBU0M7SUFFbkhDLCtCQUErQkcsZ0NBQWlDLEdBQUc7SUFFbkUsT0FBT0g7QUFDVCJ9
@@ -0,0 +1,41 @@
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 unifySuppositionWithProofStep;
9
+ }
10
+ });
11
+ var _unify = require("../utilities/unify");
12
+ function unifySuppositionWithProofStep(suppositionA, proofStepB, substitutions, localContextA, localContextB) {
13
+ var suppositionUnified = false;
14
+ var suppositionAStatementNode = suppositionA.getStatementNode();
15
+ if (suppositionAStatementNode !== null) {
16
+ var proofStepBSubproofNode = proofStepB.getSubproofNode(), proofStepBStatementNode = proofStepB.getStatementNode(), subproofNodeB = proofStepBSubproofNode, statementNodeB = proofStepBStatementNode, statementNodeA = suppositionAStatementNode, statementStringA = localContextA.nodeAsString(statementNodeA);
17
+ substitutions.snapshot();
18
+ if (subproofNodeB !== null) {
19
+ var subproofStringB = (0, _unify.subproofNodeAsSubproofString)(subproofNodeB, localContextB);
20
+ localContextB.trace("Unifying the '".concat(subproofStringB, "' subproof with the supposition's '").concat(statementStringA, "' statement..."), subproofNodeB);
21
+ var subproofUnified = suppositionA.unifySubproof(subproofNodeB, substitutions, localContextA, localContextB);
22
+ if (subproofUnified) {
23
+ localContextB.debug("...unified the '".concat(subproofStringB, "' subproof with the supposition's '").concat(statementStringA, "' statement."), subproofNodeB);
24
+ suppositionUnified = true;
25
+ }
26
+ }
27
+ if (statementNodeB !== null) {
28
+ var statementStringB = localContextB.nodeAsString(statementNodeB);
29
+ localContextB.trace("Unifying the '".concat(statementStringB, "' statement with the supposition's '").concat(statementStringA, "' statement..."), statementNodeB);
30
+ var statementUnified = suppositionA.unifyStatement(statementNodeB, substitutions, localContextA, localContextB);
31
+ if (statementUnified) {
32
+ localContextB.debug("...unified the '".concat(statementStringB, "' statement with the supposition's '").concat(statementStringA, "' statement."), statementNodeB);
33
+ suppositionUnified = true;
34
+ }
35
+ }
36
+ suppositionUnified ? substitutions.continue() : substitutions.rollback(localContextA, localContextB);
37
+ }
38
+ return suppositionUnified;
39
+ }
40
+
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdXBwb3NpdGlvbldpdGhQcm9mZlN0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHN1YnByb29mTm9kZUFzU3VicHJvb2ZTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3VuaWZ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3VwcG9zaXRpb25XaXRoUHJvb2ZTdGVwKHN1cHBvc2l0aW9uQSwgcHJvb2ZTdGVwQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBsZXQgc3VwcG9zaXRpb25VbmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3VwcG9zaXRpb25BU3RhdGVtZW50Tm9kZSA9IHN1cHBvc2l0aW9uQS5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgaWYgKHN1cHBvc2l0aW9uQVN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBwcm9vZlN0ZXBCU3VicHJvb2ZOb2RlID0gcHJvb2ZTdGVwQi5nZXRTdWJwcm9vZk5vZGUoKSxcbiAgICAgICAgICBwcm9vZlN0ZXBCU3RhdGVtZW50Tm9kZSA9IHByb29mU3RlcEIuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICAgIHN1YnByb29mTm9kZUIgPSBwcm9vZlN0ZXBCU3VicHJvb2ZOb2RlLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnROb2RlQiA9IHByb29mU3RlcEJTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnROb2RlQSA9IHN1cHBvc2l0aW9uQVN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN0cmluZ0EgPSBsb2NhbENvbnRleHRBLm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlQSlcblxuICAgIHN1YnN0aXR1dGlvbnMuc25hcHNob3QoKTtcblxuICAgIGlmIChzdWJwcm9vZk5vZGVCICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJwcm9vZlN0cmluZ0IgPSBzdWJwcm9vZk5vZGVBc1N1YnByb29mU3RyaW5nKHN1YnByb29mTm9kZUIsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VicHJvb2ZTdHJpbmdCfScgc3VicHJvb2Ygd2l0aCB0aGUgc3VwcG9zaXRpb24ncyAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50Li4uYCwgc3VicHJvb2ZOb2RlQik7XG5cbiAgICAgIGNvbnN0IHN1YnByb29mVW5pZmllZCA9IHN1cHBvc2l0aW9uQS51bmlmeVN1YnByb29mKHN1YnByb29mTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICBpZiAoc3VicHJvb2ZVbmlmaWVkKSB7XG4gICAgICAgIGxvY2FsQ29udGV4dEIuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nQn0nIHN1YnByb29mIHdpdGggdGhlIHN1cHBvc2l0aW9uJ3MgJyR7c3RhdGVtZW50U3RyaW5nQX0nIHN0YXRlbWVudC5gLCBzdWJwcm9vZk5vZGVCKTtcblxuICAgICAgICBzdXBwb3NpdGlvblVuaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnROb2RlQiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nQiA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVCKTtcblxuICAgICAgbG9jYWxDb250ZXh0Qi50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ0J9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgc3VwcG9zaXRpb24ncyAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gc3VwcG9zaXRpb25BLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgICAgbG9jYWxDb250ZXh0Qi5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nQn0nIHN0YXRlbWVudCB3aXRoIHRoZSBzdXBwb3NpdGlvbidzICcke3N0YXRlbWVudFN0cmluZ0F9JyBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgICAgIHN1cHBvc2l0aW9uVW5pZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3VwcG9zaXRpb25VbmlmaWVkID9cbiAgICAgIHN1YnN0aXR1dGlvbnMuY29udGludWUoKSA6XG4gICAgICAgIHN1YnN0aXR1dGlvbnMucm9sbGJhY2sobG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gIH1cblxuICByZXR1cm4gc3VwcG9zaXRpb25VbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5U3VwcG9zaXRpb25XaXRoUHJvb2ZTdGVwIiwic3VwcG9zaXRpb25BIiwicHJvb2ZTdGVwQiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInN1cHBvc2l0aW9uVW5pZmllZCIsInN1cHBvc2l0aW9uQVN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwQlN1YnByb29mTm9kZSIsImdldFN1YnByb29mTm9kZSIsInByb29mU3RlcEJTdGF0ZW1lbnROb2RlIiwic3VicHJvb2ZOb2RlQiIsInN0YXRlbWVudE5vZGVCIiwic3RhdGVtZW50Tm9kZUEiLCJzdGF0ZW1lbnRTdHJpbmdBIiwibm9kZUFzU3RyaW5nIiwic25hcHNob3QiLCJzdWJwcm9vZlN0cmluZ0IiLCJzdWJwcm9vZk5vZGVBc1N1YnByb29mU3RyaW5nIiwidHJhY2UiLCJzdWJwcm9vZlVuaWZpZWQiLCJ1bmlmeVN1YnByb29mIiwiZGVidWciLCJzdGF0ZW1lbnRTdHJpbmdCIiwic3RhdGVtZW50VW5pZmllZCIsInVuaWZ5U3RhdGVtZW50IiwiY29udGludWUiLCJyb2xsYmFjayJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7OztxQkFGcUI7QUFFOUIsU0FBU0EsOEJBQThCQyxZQUFZLEVBQUVDLFVBQVUsRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWE7SUFDekgsSUFBSUMscUJBQXFCO0lBRXpCLElBQU1DLDRCQUE0Qk4sYUFBYU8sZ0JBQWdCO0lBRS9ELElBQUlELDhCQUE4QixNQUFNO1FBQ3RDLElBQU1FLHlCQUF5QlAsV0FBV1EsZUFBZSxJQUNuREMsMEJBQTBCVCxXQUFXTSxnQkFBZ0IsSUFDckRJLGdCQUFnQkgsd0JBQ2hCSSxpQkFBaUJGLHlCQUNqQkcsaUJBQWlCUCwyQkFDakJRLG1CQUFtQlgsY0FBY1ksWUFBWSxDQUFDRjtRQUVwRFgsY0FBY2MsUUFBUTtRQUV0QixJQUFJTCxrQkFBa0IsTUFBTTtZQUMxQixJQUFNTSxrQkFBa0JDLElBQUFBLG1DQUE0QixFQUFDUCxlQUFlUDtZQUVwRUEsY0FBY2UsS0FBSyxDQUFDLEFBQUMsaUJBQXFFTCxPQUFyREcsaUJBQWdCLHVDQUFzRCxPQUFqQkgsa0JBQWlCLG1CQUFpQkg7WUFFNUgsSUFBTVMsa0JBQWtCcEIsYUFBYXFCLGFBQWEsQ0FBQ1YsZUFBZVQsZUFBZUMsZUFBZUM7WUFFaEcsSUFBSWdCLGlCQUFpQjtnQkFDbkJoQixjQUFja0IsS0FBSyxDQUFDLEFBQUMsbUJBQXVFUixPQUFyREcsaUJBQWdCLHVDQUFzRCxPQUFqQkgsa0JBQWlCLGlCQUFlSDtnQkFFNUhOLHFCQUFxQjtZQUN2QjtRQUNGO1FBRUEsSUFBSU8sbUJBQW1CLE1BQU07WUFDM0IsSUFBTVcsbUJBQW1CbkIsY0FBY1csWUFBWSxDQUFDSDtZQUVwRFIsY0FBY2UsS0FBSyxDQUFDLEFBQUMsaUJBQXVFTCxPQUF2RFMsa0JBQWlCLHdDQUF1RCxPQUFqQlQsa0JBQWlCLG1CQUFpQkY7WUFFOUgsSUFBTVksbUJBQW1CeEIsYUFBYXlCLGNBQWMsQ0FBQ2IsZ0JBQWdCVixlQUFlQyxlQUFlQztZQUVuRyxJQUFJb0Isa0JBQWtCO2dCQUNwQnBCLGNBQWNrQixLQUFLLENBQUMsQUFBQyxtQkFBeUVSLE9BQXZEUyxrQkFBaUIsd0NBQXVELE9BQWpCVCxrQkFBaUIsaUJBQWVGO2dCQUU5SFAscUJBQXFCO1lBQ3ZCO1FBQ0Y7UUFFQUEscUJBQ0VILGNBQWN3QixRQUFRLEtBQ3BCeEIsY0FBY3lCLFFBQVEsQ0FBQ3hCLGVBQWVDO0lBQzVDO0lBRUEsT0FBT0M7QUFDVCJ9
@@ -0,0 +1,31 @@
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 unifySuppositionsWithProofSteps;
9
+ }
10
+ });
11
+ var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
12
+ var _suppositionWithProffStep = /*#__PURE__*/ _interop_require_default(require("./suppositionWithProffStep"));
13
+ var _array = require("../utilities/array");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function unifySuppositionsWithProofSteps(suppositionsA, proofStepsB, substitutions, fileContextA, localContextB) {
20
+ suppositionsA = (0, _array.reverse)(suppositionsA); ///
21
+ proofStepsB = (0, _array.reverse)(proofStepsB); ///
22
+ var suppositionsUnified = (0, _array.correlate)(suppositionsA, proofStepsB, function(suppositionA, proofStepB) {
23
+ var localContextA = _local.default.fromFileContext(fileContextA), suppositionUnified = (0, _suppositionWithProffStep.default)(suppositionA, proofStepB, substitutions, localContextA, localContextB);
24
+ if (suppositionUnified) {
25
+ return true;
26
+ }
27
+ });
28
+ return suppositionsUnified;
29
+ }
30
+
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdXBwb3NpdGlvbnNXaXRoUHJvb2ZTdGVwcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IHVuaWZ5U3VwcG9zaXRpb25XaXRoUHJvb2ZTdGVwIGZyb20gXCIuL3N1cHBvc2l0aW9uV2l0aFByb2ZmU3RlcFwiO1xuXG5pbXBvcnQgeyByZXZlcnNlLCBjb3JyZWxhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3VwcG9zaXRpb25zV2l0aFByb29mU3RlcHMoc3VwcG9zaXRpb25zQSwgcHJvb2ZTdGVwc0IsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBzdXBwb3NpdGlvbnNBID0gcmV2ZXJzZShzdXBwb3NpdGlvbnNBKTsgLy8vXG5cbiAgcHJvb2ZTdGVwc0IgPSByZXZlcnNlKHByb29mU3RlcHNCKTsgLy8vXG5cbiAgY29uc3Qgc3VwcG9zaXRpb25zVW5pZmllZCA9IGNvcnJlbGF0ZShzdXBwb3NpdGlvbnNBLCBwcm9vZlN0ZXBzQiwgKHN1cHBvc2l0aW9uQSwgcHJvb2ZTdGVwQikgPT4ge1xuICAgIGNvbnN0IGxvY2FsQ29udGV4dEEgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0QSksXG4gICAgICAgICAgc3VwcG9zaXRpb25VbmlmaWVkID0gdW5pZnlTdXBwb3NpdGlvbldpdGhQcm9vZlN0ZXAoc3VwcG9zaXRpb25BLCBwcm9vZlN0ZXBCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIGlmIChzdXBwb3NpdGlvblVuaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uc1VuaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlTdXBwb3NpdGlvbnNXaXRoUHJvb2ZTdGVwcyIsInN1cHBvc2l0aW9uc0EiLCJwcm9vZlN0ZXBzQiIsInN1YnN0aXR1dGlvbnMiLCJmaWxlQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwicmV2ZXJzZSIsInN1cHBvc2l0aW9uc1VuaWZpZWQiLCJjb3JyZWxhdGUiLCJzdXBwb3NpdGlvbkEiLCJwcm9vZlN0ZXBCIiwibG9jYWxDb250ZXh0QSIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInN1cHBvc2l0aW9uVW5pZmllZCIsInVuaWZ5U3VwcG9zaXRpb25XaXRoUHJvb2ZTdGVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7OzREQUxDOytFQUNpQjtxQkFFUDs7Ozs7O0FBRXBCLFNBQVNBLGdDQUFnQ0MsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxhQUFhO0lBQzVISixnQkFBZ0JLLElBQUFBLGNBQU8sRUFBQ0wsZ0JBQWdCLEdBQUc7SUFFM0NDLGNBQWNJLElBQUFBLGNBQU8sRUFBQ0osY0FBYyxHQUFHO0lBRXZDLElBQU1LLHNCQUFzQkMsSUFBQUEsZ0JBQVMsRUFBQ1AsZUFBZUMsYUFBYSxTQUFDTyxjQUFjQztRQUMvRSxJQUFNQyxnQkFBZ0JDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDVCxlQUM3Q1UscUJBQXFCQyxJQUFBQSxpQ0FBNkIsRUFBQ04sY0FBY0MsWUFBWVAsZUFBZVEsZUFBZU47UUFFakgsSUFBSVMsb0JBQW9CO1lBQ3RCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT1A7QUFDVCJ9
@@ -0,0 +1,37 @@
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 unifyTermWithBracketedConstructor;
9
+ }
10
+ });
11
+ var _bracketed = /*#__PURE__*/ _interop_require_default(require("../constructor/bracketed"));
12
+ var _query = require("../utilities/query");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ var termNodeQuery = (0, _query.nodeQuery)("/term/argument/term");
19
+ function unifyTermWithBracketedConstructor(termNode, terms, localContext, verifyAhead) {
20
+ var termUnifiedWithBracketedConstructor;
21
+ var termString = localContext.nodeAsString(termNode), bracketedTerms = [];
22
+ localContext.trace("Unifying the '".concat(termString, "' term with the bracketed constructor..."), termNode);
23
+ termUnifiedWithBracketedConstructor = unifyTermWithConstructor(termNode, bracketedTerms, _bracketed.default, localContext, function() {
24
+ var verifiedAhead;
25
+ var bracketedTermNode = termNode; ///
26
+ termNode = termNodeQuery(bracketedTermNode); ///
27
+ var termVVerified = verifyTerm(termNode, terms, localContext, verifyAhead);
28
+ verifiedAhead = termVVerified; ///
29
+ return verifiedAhead;
30
+ });
31
+ if (termUnifiedWithBracketedConstructor) {
32
+ localContext.debug("...unified the '".concat(termString, "' term with the bracketed constructor."), termNode);
33
+ }
34
+ return termUnifiedWithBracketedConstructor;
35
+ }
36
+
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS90ZXJtV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4uL2NvbnN0cnVjdG9yL2JyYWNrZXRlZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS9hcmd1bWVudC90ZXJtXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvcjtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSksXG4gICAgICAgIGJyYWNrZXRlZFRlcm1zID0gW107XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgYnJhY2tldGVkIGNvbnN0cnVjdG9yLi4uYCwgdGVybU5vZGUpO1xuXG4gIHRlcm1VbmlmaWVkV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yID0gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm1Ob2RlLCBicmFja2V0ZWRUZXJtcywgYnJhY2tldGVkQ29uc3RydWN0b3IsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgY29uc3QgYnJhY2tldGVkVGVybU5vZGUgPSB0ZXJtTm9kZTsgLy8vXG5cbiAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYnJhY2tldGVkVGVybU5vZGUpOyAvLy9cblxuICAgIGNvbnN0IHRlcm1WVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICB2ZXJpZmllZEFoZWFkID0gdGVybVZWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gIH0pO1xuXG4gIGlmICh0ZXJtVW5pZmllZFdpdGhCcmFja2V0ZWRDb25zdHJ1Y3Rvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgYnJhY2tldGVkIGNvbnN0cnVjdG9yLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhCcmFja2V0ZWRDb25zdHJ1Y3Rvcjtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidGVybU5vZGUiLCJ0ZXJtcyIsImxvY2FsQ29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVVuaWZpZWRXaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJ0ZXJtU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiYnJhY2tldGVkVGVybXMiLCJ0cmFjZSIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwidmVyaWZpZWRBaGVhZCIsImJyYWNrZXRlZFRlcm1Ob2RlIiwidGVybVZWZXJpZmllZCIsInZlcmlmeVRlcm0iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUF3QkE7OztnRUFOUztxQkFFUDs7Ozs7O0FBRTFCLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQixTQUFTRixrQ0FBa0NHLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxZQUFZLEVBQUVDLFdBQVc7SUFDbEcsSUFBSUM7SUFFSixJQUFNQyxhQUFhSCxhQUFhSSxZQUFZLENBQUNOLFdBQ3ZDTyxpQkFBaUIsRUFBRTtJQUV6QkwsYUFBYU0sS0FBSyxDQUFDLEFBQUMsaUJBQTJCLE9BQVhILFlBQVcsNkNBQTJDTDtJQUUxRkksc0NBQXNDSyx5QkFBeUJULFVBQVVPLGdCQUFnQkcsa0JBQW9CLEVBQUVSLGNBQWM7UUFDM0gsSUFBSVM7UUFFSixJQUFNQyxvQkFBb0JaLFVBQVUsR0FBRztRQUV2Q0EsV0FBV0YsY0FBY2Msb0JBQW9CLEdBQUc7UUFFaEQsSUFBTUMsZ0JBQWdCQyxXQUFXZCxVQUFVQyxPQUFPQyxjQUFjQztRQUVoRVEsZ0JBQWdCRSxlQUFnQixHQUFHO1FBRW5DLE9BQU9GO0lBQ1Q7SUFFQSxJQUFJUCxxQ0FBcUM7UUFDdkNGLGFBQWFhLEtBQUssQ0FBQyxBQUFDLG1CQUE2QixPQUFYVixZQUFXLDJDQUF5Q0w7SUFDNUY7SUFFQSxPQUFPSTtBQUNUIn0=
@@ -0,0 +1,53 @@
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 unifyTermWithConstructors;
9
+ }
10
+ });
11
+ var _term = /*#__PURE__*/ _interop_require_default(require("../term"));
12
+ var _termWithConstructor = /*#__PURE__*/ _interop_require_default(require("../unifier/termWithConstructor"));
13
+ var _query = require("../utilities/query");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
20
+ function unifyTermWithConstructors(termNode, terms, localContext, verifyAhead) {
21
+ var termUnifiedWithConstructors = false;
22
+ var variableNode = variableNodeQuery(termNode);
23
+ if (variableNode === null) {
24
+ var constructors = localContext.getConstructors();
25
+ termUnifiedWithConstructors = constructors.some(function(constructor) {
26
+ var termUnifiedWithConstructor = unifyTermWithConstructor(termNode, terms, constructor, localContext, verifyAhead);
27
+ if (termUnifiedWithConstructor) {
28
+ return true;
29
+ }
30
+ });
31
+ }
32
+ return termUnifiedWithConstructors;
33
+ }
34
+ function unifyTermWithConstructor(termNode, terms, constructor, localContext, verifyAhead) {
35
+ var termUnifiedWithConstructor = false;
36
+ var termString = localContext.nodeAsString(termNode), constructorString = constructor.getString(), constructorTermNode = constructor.getTermNode();
37
+ localContext.trace("Unifying the '".concat(termString, "' term with the '").concat(constructorString, "' constructor..."), termNode);
38
+ var termNodeA = termNode, constructorTermNodeB = constructorTermNode, unified = _termWithConstructor.default.unify(termNodeA, constructorTermNodeB, localContext);
39
+ if (unified) {
40
+ var verifiedAhead;
41
+ var type = constructor.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
42
+ terms.push(term);
43
+ verifiedAhead = verifyAhead();
44
+ terms.pop();
45
+ termUnifiedWithConstructor = verifiedAhead; ///
46
+ }
47
+ if (termUnifiedWithConstructor) {
48
+ localContext.debug("...unified the '".concat(termString, "' term with the '").concat(constructorString, "' constructor."), termNode);
49
+ }
50
+ return termUnifiedWithConstructor;
51
+ }
52
+
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS90ZXJtV2l0aENvbnN0cnVjdG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRlcm0gZnJvbSBcIi4uL3Rlcm1cIjtcbmltcG9ydCB0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci90ZXJtV2l0aENvbnN0cnVjdG9yXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnModGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnMgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgaWYgKHZhcmlhYmxlTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICAgIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgICAgY29uc3QgdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IgPSB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnM7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdGVybXMsIGNvbnN0cnVjdG9yLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgY29uc3RydWN0b3JTdHJpbmcgPSBjb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKSxcbiAgICAgICAgY29uc3RydWN0b3JUZXJtTm9kZSA9IGNvbnN0cnVjdG9yLmdldFRlcm1Ob2RlKCk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCB0ZXJtTm9kZUEgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICBjb25zdHJ1Y3RvclRlcm1Ob2RlQiA9IGNvbnN0cnVjdG9yVGVybU5vZGUsICAvLy9cbiAgICAgICAgdW5pZmllZCA9IHRlcm1XaXRoQ29uc3RydWN0b3JVbmlmaWVyLnVuaWZ5KHRlcm1Ob2RlQSwgY29uc3RydWN0b3JUZXJtTm9kZUIsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHVuaWZpZWQpIHtcbiAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgIGNvbnN0IHR5cGUgPSBjb25zdHJ1Y3Rvci5nZXRUeXBlKCksXG4gICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICB0ZXJtcy5wb3AoKTtcblxuICAgIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdmVyaWZpZWRBaGVhZDsgIC8vL1xuICB9XG5cbiAgaWYgKHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcjtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzIiwidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0ZXJtTm9kZSIsInRlcm1zIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnMiLCJ2YXJpYWJsZU5vZGUiLCJjb25zdHJ1Y3RvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJzb21lIiwiY29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciIsInRlcm1TdHJpbmciLCJub2RlQXNTdHJpbmciLCJjb25zdHJ1Y3RvclN0cmluZyIsImdldFN0cmluZyIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJnZXRUZXJtTm9kZSIsInRyYWNlIiwidGVybU5vZGVBIiwiY29uc3RydWN0b3JUZXJtTm9kZUIiLCJ1bmlmaWVkIiwidGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIiLCJ1bmlmeSIsInZlcmlmaWVkQWhlYWQiLCJ0eXBlIiwiZ2V0VHlwZSIsInRlcm0iLCJUZXJtIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsInB1c2giLCJwb3AiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7OzsyREFQUDswRUFDc0I7cUJBRWI7Ozs7OztBQUUxQixJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUM7QUFFckIsU0FBU0YsMEJBQTBCRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxXQUFXO0lBQzFGLElBQUlDLDhCQUE4QjtJQUVsQyxJQUFNQyxlQUFlUCxrQkFBa0JFO0lBRXZDLElBQUlLLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1DLGVBQWVKLGFBQWFLLGVBQWU7UUFFakRILDhCQUE4QkUsYUFBYUUsSUFBSSxDQUFDLFNBQUNDO1lBQy9DLElBQU1DLDZCQUE2QkMseUJBQXlCWCxVQUFVQyxPQUFPUSxhQUFhUCxjQUFjQztZQUV4RyxJQUFJTyw0QkFBNEI7Z0JBQzlCLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPTjtBQUNUO0FBRUEsU0FBU08seUJBQXlCWCxRQUFRLEVBQUVDLEtBQUssRUFBRVEsV0FBVyxFQUFFUCxZQUFZLEVBQUVDLFdBQVc7SUFDdkYsSUFBSU8sNkJBQTZCO0lBRWpDLElBQU1FLGFBQWFWLGFBQWFXLFlBQVksQ0FBQ2IsV0FDdkNjLG9CQUFvQkwsWUFBWU0sU0FBUyxJQUN6Q0Msc0JBQXNCUCxZQUFZUSxXQUFXO0lBRW5EZixhQUFhZ0IsS0FBSyxDQUFDLEFBQUMsaUJBQThDSixPQUE5QkYsWUFBVyxxQkFBcUMsT0FBbEJFLG1CQUFrQixxQkFBbUJkO0lBRXZHLElBQU1tQixZQUFZbkIsVUFDWm9CLHVCQUF1QkoscUJBQ3ZCSyxVQUFVQyw0QkFBMEIsQ0FBQ0MsS0FBSyxDQUFDSixXQUFXQyxzQkFBc0JsQjtJQUVsRixJQUFJbUIsU0FBUztRQUNYLElBQUlHO1FBRUosSUFBTUMsT0FBT2hCLFlBQVlpQixPQUFPLElBQzFCQyxPQUFPQyxhQUFJLENBQUNDLG1CQUFtQixDQUFDN0IsVUFBVXlCO1FBRWhEeEIsTUFBTTZCLElBQUksQ0FBQ0g7UUFFWEgsZ0JBQWdCckI7UUFFaEJGLE1BQU04QixHQUFHO1FBRVRyQiw2QkFBNkJjLGVBQWdCLEdBQUc7SUFDbEQ7SUFFQSxJQUFJZCw0QkFBNEI7UUFDOUJSLGFBQWE4QixLQUFLLENBQUMsQUFBQyxtQkFBZ0RsQixPQUE5QkYsWUFBVyxxQkFBcUMsT0FBbEJFLG1CQUFrQixtQkFBaUJkO0lBQ3pHO0lBRUEsT0FBT1U7QUFDVCJ9