occam-verify-cli 0.0.960 → 0.0.962
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/local.js +3 -9
- package/lib/proofStep.js +8 -5
- package/lib/substitution/termForVariable.js +24 -25
- package/lib/unifier/statementWithCombinator.js +6 -6
- package/lib/unify/statementAtainstStatement.js +16 -16
- package/lib/unify/statementWithBracketedCombinator.js +30 -0
- package/lib/unify/statementWithCombinators.js +40 -0
- package/lib/unify/statementWithMetaType.js +6 -30
- package/lib/unify/termWithBracketedConstructor.js +39 -0
- package/lib/unify/termWithConstructors.js +61 -0
- package/lib/unify/termWithType.js +4 -12
- package/lib/utilities/assignments.js +9 -12
- package/lib/verifier/intrinsicLevel.js +140 -0
- package/lib/verifier/metaLevel.js +11 -20
- package/lib/verifier/statementAsCombinator.js +9 -9
- package/lib/verifier/termAsConstructor.js +5 -5
- package/lib/verify/assertion/contained.js +2 -3
- package/lib/verify/assertion/defined.js +2 -4
- package/lib/verify/assertion/subproof.js +20 -18
- package/lib/verify/assertion/type.js +1 -2
- package/lib/verify/declaration.js +27 -9
- package/lib/verify/frame.js +25 -6
- package/lib/verify/premise.js +3 -3
- package/lib/verify/proofStep.js +23 -30
- package/lib/verify/statement/qualified.js +93 -137
- package/lib/verify/statement/unqualified.js +18 -104
- package/lib/verify/statement.js +95 -76
- package/lib/verify/statementAsCombinator.js +2 -2
- package/lib/verify/statementGivenMetaType.js +41 -0
- package/lib/verify/supposition.js +3 -3
- package/lib/verify/term.js +39 -65
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/termGivenType.js +34 -0
- package/package.json +1 -1
- package/src/context/local.js +4 -13
- package/src/proofStep.js +10 -5
- package/src/substitution/termForVariable.js +33 -30
- package/src/unifier/statementWithCombinator.js +5 -5
- package/src/unify/statementAtainstStatement.js +13 -13
- package/src/unify/statementWithBracketedCombinator.js +22 -0
- package/src/unify/statementWithCombinators.js +38 -0
- package/src/unify/statementWithMetaType.js +6 -42
- package/src/unify/termWithBracketedConstructor.js +39 -0
- package/src/unify/termWithConstructors.js +63 -0
- package/src/unify/termWithType.js +4 -20
- package/src/utilities/assignments.js +6 -13
- package/src/verifier/intrinsicLevel.js +42 -0
- package/src/verifier/metaLevel.js +13 -21
- package/src/verifier/statementAsCombinator.js +11 -7
- package/src/verifier/termAsConstructor.js +4 -3
- package/src/verify/assertion/contained.js +1 -3
- package/src/verify/assertion/defined.js +1 -4
- package/src/verify/assertion/subproof.js +22 -18
- package/src/verify/assertion/type.js +0 -1
- package/src/verify/declaration.js +34 -11
- package/src/verify/frame.js +32 -5
- package/src/verify/premise.js +3 -3
- package/src/verify/proofStep.js +26 -38
- package/src/verify/statement/qualified.js +104 -184
- package/src/verify/statement/unqualified.js +19 -149
- package/src/verify/statement.js +126 -72
- package/src/verify/statementAsCombinator.js +1 -1
- package/src/verify/statementGivenMetaType.js +37 -0
- package/src/verify/supposition.js +3 -3
- package/src/verify/term.js +44 -93
- package/src/verify/termAsConstructor.js +1 -1
- package/src/verify/termGivenType.js +32 -0
package/lib/verify/term.js
CHANGED
|
@@ -10,30 +10,37 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
12
|
var _term = /*#__PURE__*/ _interop_require_default(require("../term"));
|
|
13
|
-
var
|
|
14
|
-
var
|
|
13
|
+
var _termWithConstructors = /*#__PURE__*/ _interop_require_default(require("../unify/termWithConstructors"));
|
|
14
|
+
var _termWithBracketedConstructor = /*#__PURE__*/ _interop_require_default(require("../unify/termWithBracketedConstructor"));
|
|
15
|
+
var _array = require("../utilities/array");
|
|
15
16
|
var _query = require("../utilities/query");
|
|
16
17
|
function _interop_require_default(obj) {
|
|
17
18
|
return obj && obj.__esModule ? obj : {
|
|
18
19
|
default: obj
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
|
-
var
|
|
22
|
+
var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
23
|
+
var unifyTermFunctions = [
|
|
24
|
+
_termWithBracketedConstructor.default,
|
|
25
|
+
_termWithConstructors.default
|
|
26
|
+
];
|
|
22
27
|
function verifyTerm(termNode, terms, localContext, verifyAhead) {
|
|
23
|
-
var termVerified;
|
|
28
|
+
var termVerified = false;
|
|
24
29
|
var termString = localContext.nodeAsString(termNode);
|
|
25
30
|
localContext.trace("Verifying the '".concat(termString, "' term..."), termNode);
|
|
26
|
-
|
|
27
|
-
verifyTermAsVariable,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
if (!termVerified) {
|
|
32
|
+
var termVerifiedAsVariable = verifyTermAsVariable(termNode, terms, localContext, verifyAhead);
|
|
33
|
+
termVerified = termVerifiedAsVariable; ///
|
|
34
|
+
}
|
|
35
|
+
if (!termVerified) {
|
|
36
|
+
var termUnified = unifyTermFunctions.some(function(unifyTermFunction) {
|
|
37
|
+
var termUnified = unifyTermFunction(termNode, terms, localContext, verifyAhead);
|
|
38
|
+
if (termUnified) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
termVerified = termUnified; ///
|
|
43
|
+
}
|
|
37
44
|
if (termVerified) {
|
|
38
45
|
localContext.debug("...verified the '".concat(termString, "' term."), termNode);
|
|
39
46
|
}
|
|
@@ -49,10 +56,10 @@ function verifyTermAsVariable(termNode, terms, localContext, verifyAhead) {
|
|
|
49
56
|
if (variableNode !== null) {
|
|
50
57
|
var termString = localContext.nodeAsString(termNode);
|
|
51
58
|
localContext.trace("Verifying the '".concat(termString, "' term as a variable..."), termNode);
|
|
52
|
-
var
|
|
53
|
-
if (
|
|
59
|
+
var variables = [], variableVerified = verifyVariable(variableNode, variables, localContext);
|
|
60
|
+
if (variableVerified) {
|
|
54
61
|
var verifiedAhead;
|
|
55
|
-
var type = variable.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
|
|
62
|
+
var firstVariable = (0, _array.first)(variables), variable = firstVariable, type = variable.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
|
|
56
63
|
terms.push(term);
|
|
57
64
|
verifiedAhead = verifyAhead();
|
|
58
65
|
terms.pop();
|
|
@@ -64,54 +71,21 @@ function verifyTermAsVariable(termNode, terms, localContext, verifyAhead) {
|
|
|
64
71
|
}
|
|
65
72
|
return termVerifiedAsVariable;
|
|
66
73
|
}
|
|
67
|
-
function
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
return termUnifiedWithConstructors;
|
|
80
|
-
}
|
|
81
|
-
function unifyTermWithBracketedConstructor(termNode, terms, localContext, verifyAhead) {
|
|
82
|
-
var termUnifiedWithBracketedConstructor;
|
|
83
|
-
var termString = localContext.nodeAsString(termNode), bracketedTerms = [];
|
|
84
|
-
localContext.trace("Unifying the '".concat(termString, "' term with the bracketed constructor..."), termNode);
|
|
85
|
-
termUnifiedWithBracketedConstructor = unifyTermWithConstructor(termNode, bracketedTerms, _bracketed.default, localContext, function() {
|
|
86
|
-
var verifiedAhead;
|
|
87
|
-
var bracketedTermNode = termNode; ///
|
|
88
|
-
termNode = termNodeQuery(bracketedTermNode); ///
|
|
89
|
-
var termVVerified = verifyTerm(termNode, terms, localContext, verifyAhead);
|
|
90
|
-
verifiedAhead = termVVerified; ///
|
|
91
|
-
return verifiedAhead;
|
|
92
|
-
});
|
|
93
|
-
if (termUnifiedWithBracketedConstructor) {
|
|
94
|
-
localContext.debug("...unified the '".concat(termString, "' term with the bracketed constructor."), termNode);
|
|
95
|
-
}
|
|
96
|
-
return termUnifiedWithBracketedConstructor;
|
|
97
|
-
}
|
|
98
|
-
function unifyTermWithConstructor(termNode, terms, constructor, localContext, verifyAhead) {
|
|
99
|
-
var termUnifiedWithConstructor = false;
|
|
100
|
-
var termString = localContext.nodeAsString(termNode), constructorString = constructor.getString(), constructorTermNode = constructor.getTermNode();
|
|
101
|
-
localContext.trace("Unifying the '".concat(termString, "' term with the '").concat(constructorString, "' constructor..."), termNode);
|
|
102
|
-
var termNodeA = termNode, constructorTermNodeB = constructorTermNode, unified = _termWithConstructor.default.unify(termNodeA, constructorTermNodeB, localContext);
|
|
103
|
-
if (unified) {
|
|
104
|
-
var verifiedAhead;
|
|
105
|
-
var type = constructor.getType(), term = _term.default.fromTermNodeAndType(termNode, type);
|
|
106
|
-
terms.push(term);
|
|
107
|
-
verifiedAhead = verifyAhead();
|
|
108
|
-
terms.pop();
|
|
109
|
-
termUnifiedWithConstructor = verifiedAhead; ///
|
|
74
|
+
function verifyVariable(variableNode, variables, localContext) {
|
|
75
|
+
var variableVerified = false;
|
|
76
|
+
var variableString = localContext.nodeAsString(variableNode);
|
|
77
|
+
localContext.trace("Verifying the '".concat(variableString, "' variable..."), variableNode);
|
|
78
|
+
var variable = localContext.findVariableByVariableNode(variableNode);
|
|
79
|
+
if (variable === null) {
|
|
80
|
+
localContext.trace("The '".concat(variableString, "' variable is not present."), variableNode);
|
|
81
|
+
} else {
|
|
82
|
+
variables.push(variable);
|
|
83
|
+
variableVerified = true;
|
|
110
84
|
}
|
|
111
|
-
if (
|
|
112
|
-
localContext.debug("...
|
|
85
|
+
if (variableVerified) {
|
|
86
|
+
localContext.debug("...verified the '".concat(variableString, "' variable."), variableNode);
|
|
113
87
|
}
|
|
114
|
-
return
|
|
88
|
+
return variableVerified;
|
|
115
89
|
}
|
|
116
90
|
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBUZXJtIGZyb20gXCIuLi90ZXJtXCI7XG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4uL2NvbnN0cnVjdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IHRlcm1XaXRoQ29uc3RydWN0b3JVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL3Rlcm1XaXRoQ29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vYXJndW1lbnQvdGVybVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5VGVybUZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlUZXJtQXNWYXJpYWJsZSxcbiAgICB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzLFxuICAgIHVuaWZ5VGVybVdpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvclxuICBdO1xuXG4gIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm1GdW5jdGlvbnMuc29tZSgodmVyaWZ5VGVybUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybUZ1bmN0aW9uKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkO1xufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgdmVyaWZ5VGVybVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVRlcm07XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgdGVybXMucG9wKCk7XG5cbiAgICAgIHRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZmllZEFoZWFkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS5gLCB0ZXJtTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFzVmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnModGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnMgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgaWYgKHZhcmlhYmxlTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICAgIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgICAgY29uc3QgdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IgPSB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnM7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhCcmFja2V0ZWRDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHRlcm1VbmlmaWVkV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgYnJhY2tldGVkVGVybXMgPSBbXTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSBicmFja2V0ZWQgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgdGVybVVuaWZpZWRXaXRoQnJhY2tldGVkQ29uc3RydWN0b3IgPSB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IodGVybU5vZGUsIGJyYWNrZXRlZFRlcm1zLCBicmFja2V0ZWRDb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICBjb25zdCBicmFja2V0ZWRUZXJtTm9kZSA9IHRlcm1Ob2RlOyAvLy9cblxuICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShicmFja2V0ZWRUZXJtTm9kZSk7IC8vL1xuXG4gICAgY29uc3QgdGVybVZWZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIHZlcmlmaWVkQWhlYWQgPSB0ZXJtVlZlcmlmaWVkOyAgLy8vXG5cbiAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgfSk7XG5cbiAgaWYgKHRlcm1VbmlmaWVkV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSBicmFja2V0ZWQgY29uc3RydWN0b3IuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1VbmlmaWVkV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSksXG4gICAgICAgIGNvbnN0cnVjdG9yU3RyaW5nID0gY29uc3RydWN0b3IuZ2V0U3RyaW5nKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3Rvci5nZXRUZXJtTm9kZSgpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdGVybU5vZGVBID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgY29uc3RydWN0b3JUZXJtTm9kZUIgPSBjb25zdHJ1Y3RvclRlcm1Ob2RlLCAgLy8vXG4gICAgICAgIHVuaWZpZWQgPSB0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllci51bmlmeSh0ZXJtTm9kZUEsIGNvbnN0cnVjdG9yVGVybU5vZGVCLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmICh1bmlmaWVkKSB7XG4gICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICBjb25zdCB0eXBlID0gY29uc3RydWN0b3IuZ2V0VHlwZSgpLFxuICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgdGVybXMucHVzaCh0ZXJtKTtcblxuICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgdGVybXMucG9wKCk7XG5cbiAgICB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciA9IHZlcmlmaWVkQWhlYWQ7ICAvLy9cbiAgfVxuXG4gIGlmICh0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3I7XG59XG5cbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJ2ZXJpZnlUZXJtIiwidGVybU5vZGUiLCJ0ZXJtcyIsImxvY2FsQ29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVZlcmlmaWVkIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5VGVybUZ1bmN0aW9ucyIsInZlcmlmeVRlcm1Bc1ZhcmlhYmxlIiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyIsInVuaWZ5VGVybVdpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvciIsInNvbWUiLCJ2ZXJpZnlUZXJtRnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsInNoaW0iLCJ0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsInZlcmlmaWVkQWhlYWQiLCJ0eXBlIiwiZ2V0VHlwZSIsInRlcm0iLCJUZXJtIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsInB1c2giLCJwb3AiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvciIsInRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yIiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yIiwidGVybVVuaWZpZWRXaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJicmFja2V0ZWRUZXJtcyIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiYnJhY2tldGVkVGVybU5vZGUiLCJ0ZXJtVlZlcmlmaWVkIiwiY29uc3RydWN0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJjb25zdHJ1Y3RvclRlcm1Ob2RlIiwiZ2V0VGVybU5vZGUiLCJ0ZXJtTm9kZUEiLCJjb25zdHJ1Y3RvclRlcm1Ob2RlQiIsInVuaWZpZWQiLCJ0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllciIsInVuaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE0Q0E7OztlQUFBOzs7MkRBMUNpQjsyREFDQTtnRUFDZ0I7MEVBQ007cUJBRWI7Ozs7OztBQUUxQixJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsd0JBQzFCQyxvQkFBb0JELElBQUFBLGdCQUFTLEVBQUM7QUFFcEMsU0FBU0UsV0FBV0MsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUM1RCxJQUFJQztJQUVKLElBQU1DLGFBQWFILGFBQWFJLFlBQVksQ0FBQ047SUFFN0NFLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYRixZQUFXLGNBQVlMO0lBRTVELElBQU1RLHNCQUFzQjtRQUMxQkM7UUFDQUM7UUFDQUM7S0FDRDtJQUVEUCxlQUFlSSxvQkFBb0JJLElBQUksQ0FBQyxTQUFDQztRQUN2QyxJQUFNVCxlQUFlUyxtQkFBbUJiLFVBQVVDLE9BQU9DLGNBQWNDO1FBRXZFLElBQUlDLGNBQWM7WUFDaEIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSxjQUFjO1FBQ2hCRixhQUFhWSxLQUFLLENBQUMsQUFB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
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBUZXJtIGZyb20gXCIuLi90ZXJtXCI7XG5pbXBvcnQgdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyBmcm9tIFwiLi4vdW5pZnkvdGVybVdpdGhDb25zdHJ1Y3RvcnNcIjtcbmltcG9ydCB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4uL3VuaWZ5L3Rlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5jb25zdCB1bmlmeVRlcm1GdW5jdGlvbnMgPSBbXG4gICAgICAgIHVuaWZ5VGVybVdpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvcixcbiAgICAgICAgdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyxcbiAgICAgIF07XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCwgdGVybU5vZGUpO1xuXG4gIGlmICghdGVybVZlcmlmaWVkKSB7XG4gICAgY29uc3QgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICB0ZXJtVmVyaWZpZWQgPSB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlOyAvLy9cbiAgfVxuXG4gIGlmICghdGVybVZlcmlmaWVkKSB7XG4gICAgY29uc3QgdGVybVVuaWZpZWQgPSB1bmlmeVRlcm1GdW5jdGlvbnMuc29tZSgodW5pZnlUZXJtRnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1VbmlmaWVkID0gdW5pZnlUZXJtRnVuY3Rpb24odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgaWYgKHRlcm1VbmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGVybVZlcmlmaWVkID0gdGVybVVuaWZpZWQ7IC8vL1xuICB9XG5cbiAgaWYgKHRlcm1WZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICB2ZXJpZnlUZXJtXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5VGVybTtcblxuZnVuY3Rpb24gdmVyaWZ5VGVybUFzVmFyaWFibGUodGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS4uLmAsIHRlcm1Ob2RlKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIHZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZnlWYXJpYWJsZSh2YXJpYWJsZU5vZGUsIHZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgY29uc3QgZmlyc3RWYXJpYWJsZSA9IGZpcnN0KHZhcmlhYmxlcyksXG4gICAgICAgICAgICB2YXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgdGVybXMucG9wKCk7XG5cbiAgICAgIHRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZmllZEFoZWFkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS5gLCB0ZXJtTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFzVmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVZhcmlhYmxlKHZhcmlhYmxlTm9kZSwgdmFyaWFibGVzLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodmFyaWFibGVOb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmAsIHZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICBpZiAodmFyaWFibGUgPT09IG51bGwpIHtcbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmAsIHZhcmlhYmxlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuXG4gICAgdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gIH1cblxuICBpZiAodmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCwgdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiB2YXJpYWJsZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5pZnlUZXJtRnVuY3Rpb25zIiwidW5pZnlUZXJtV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yIiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyIsInZlcmlmeVRlcm0iLCJ0ZXJtTm9kZSIsInRlcm1zIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJ0ZXJtVmVyaWZpZWQiLCJ0ZXJtU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmVyaWZ5VGVybUFzVmFyaWFibGUiLCJ0ZXJtVW5pZmllZCIsInNvbWUiLCJ1bmlmeVRlcm1GdW5jdGlvbiIsImRlYnVnIiwiT2JqZWN0IiwiYXNzaWduIiwic2hpbSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlcyIsInZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlWYXJpYWJsZSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFZhcmlhYmxlIiwiZmlyc3QiLCJ2YXJpYWJsZSIsInR5cGUiLCJnZXRUeXBlIiwidGVybSIsIlRlcm0iLCJmcm9tVGVybU5vZGVBbmRUeXBlIiwicHVzaCIsInBvcCIsInZhcmlhYmxlU3RyaW5nIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXFEQTs7O2VBQUE7OzsyREFuRGlCOzJEQUNBOzJFQUNxQjttRkFDUTtxQkFFeEI7cUJBQ0k7Ozs7OztBQUUxQixJQUFNQSxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUM7QUFFcEMsSUFBTUMscUJBQXFCO0lBQ25CQyxxQ0FBaUM7SUFDakNDLDZCQUF5QjtDQUMxQjtBQUVQLFNBQVNDLFdBQVdDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxZQUFZLEVBQUVDLFdBQVc7SUFDNUQsSUFBSUMsZUFBZTtJQUVuQixJQUFNQyxhQUFhSCxhQUFhSSxZQUFZLENBQUNOO0lBRTdDRSxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVyxjQUFZTDtJQUU1RCxJQUFJLENBQUNJLGNBQWM7UUFDakIsSUFBTUkseUJBQXlCQyxxQkFBcUJULFVBQVVDLE9BQU9DLGNBQWNDO1FBRW5GQyxlQUFlSSx3QkFBd0IsR0FBRztJQUM1QztJQUVBLElBQUksQ0FBQ0osY0FBYztRQUNqQixJQUFNTSxjQUFjZCxtQkFBbUJlLElBQUksQ0FBQyxTQUFDQztZQUMzQyxJQUFNRixjQUFjRSxrQkFBa0JaLFVBQVVDLE9BQU9DLGNBQWNDO1lBRXJFLElBQUlPLGFBQWE7Z0JBQ2YsT0FBTztZQUNUO1FBQ0Y7UUFFQU4sZUFBZU0sYUFBYSxHQUFHO0lBQ2pDO0lBRUEsSUFBSU4sY0FBYztRQUNoQkYsYUFBYVcsS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhSLFlBQVcsWUFBVUw7SUFDOUQ7SUFFQSxPQUFPSTtBQUNUO0FBRUFVLE9BQU9DLE1BQU0sQ0FBQ0MsYUFBSSxFQUFFO0lBQ2xCakIsWUFBQUE7QUFDRjtJQUVBLFdBQWVBO0FBRWYsU0FBU1UscUJBQXFCVCxRQUFRLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFQyxXQUFXO0lBQ3RFLElBQUlLLHlCQUF5QjtJQUU3QixJQUFNUyxlQUFldkIsa0JBQWtCTTtJQUV2QyxJQUFJaUIsaUJBQWlCLE1BQU07UUFDekIsSUFBTVosYUFBYUgsYUFBYUksWUFBWSxDQUFDTjtRQUU3Q0UsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQTRCLE9BQVhGLFlBQVcsNEJBQTBCTDtRQUUxRSxJQUFNa0IsWUFBWSxFQUFFLEVBQ2RDLG1CQUFtQkMsZUFBZUgsY0FBY0MsV0FBV2hCO1FBRWpFLElBQUlpQixrQkFBa0I7WUFDcEIsSUFBSUU7WUFFSixJQUFNQyxnQkFBZ0JDLElBQUFBLFlBQUssRUFBQ0wsWUFDdEJNLFdBQVdGLGVBQ1hHLE9BQU9ELFNBQVNFLE9BQU8sSUFDdkJDLE9BQU9DLGFBQUksQ0FBQ0MsbUJBQW1CLENBQUM3QixVQUFVeUI7WUFFaER4QixNQUFNNkIsSUFBSSxDQUFDSDtZQUVYTixnQkFBZ0JsQjtZQUVoQkYsTUFBTThCLEdBQUc7WUFFVHZCLHlCQUF5QmEsZUFBZSxHQUFHO1FBQzdDO1FBRUEsSUFBSWIsd0JBQXdCO1lBQzFCTixhQUFhVyxLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWFIsWUFBVywwQkFBd0JMO1FBQzVFO0lBQ0Y7SUFFQSxPQUFPUTtBQUNUO0FBRUEsU0FBU1ksZUFBZUgsWUFBWSxFQUFFQyxTQUFTLEVBQUVoQixZQUFZO0lBQzNELElBQUlpQixtQkFBbUI7SUFFdkIsSUFBTWEsaUJBQWlCOUIsYUFBYUksWUFBWSxDQUFDVztJQUVqRGYsYUFBYUssS0FBSyxDQUFDLEFBQUMsa0JBQWdDLE9BQWZ5QixnQkFBZSxrQkFBZ0JmO0lBRXBFLElBQU1PLFdBQVd0QixhQUFhK0IsMEJBQTBCLENBQUNoQjtJQUV6RCxJQUFJTyxhQUFhLE1BQU07UUFDckJ0QixhQUFhSyxLQUFLLENBQUMsQUFBQyxRQUFzQixPQUFmeUIsZ0JBQWUsK0JBQTZCZjtJQUN6RSxPQUFPO1FBQ0xDLFVBQVVZLElBQUksQ0FBQ047UUFFZkwsbUJBQW1CO0lBQ3JCO0lBRUEsSUFBSUEsa0JBQWtCO1FBQ3BCakIsYUFBYVcsS0FBSyxDQUFDLEFBQUMsb0JBQWtDLE9BQWZtQixnQkFBZSxnQkFBY2Y7SUFDdEU7SUFFQSxPQUFPRTtBQUNUIn0=
|
|
@@ -25,7 +25,7 @@ function verifyTermAsConstructor(termNode, typeNode, fileContext) {
|
|
|
25
25
|
if (typeVerified) {
|
|
26
26
|
var firstType = (0, _array.first)(types);
|
|
27
27
|
type = firstType; ///
|
|
28
|
-
termVerifiedAsConstructor = _termAsConstructor.default.
|
|
28
|
+
termVerifiedAsConstructor = _termAsConstructor.default.verifyTerm(termNode, fileContext);
|
|
29
29
|
}
|
|
30
30
|
if (termVerifiedAsConstructor) {
|
|
31
31
|
var tokens = fileContext.getTokens(), constructor = _constructor.default.fromTermNodeTypeAndTokens(termNode, type, tokens);
|
|
@@ -55,4 +55,4 @@ function verifyType(typeNode, types, fileContext) {
|
|
|
55
55
|
return typeVerified;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUFzQ29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb25zdHJ1Y3RvciBmcm9tIFwiLi4vY29uc3RydWN0b3JcIjtcbmltcG9ydCB0ZXJtQXNDb25zdHJ1Y3RvclZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci90ZXJtQXNDb25zdHJ1Y3RvclwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VGVybUFzQ29uc3RydWN0b3IodGVybU5vZGUsIHR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNDb25zdHJ1Y3RvciA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgdHlwZVZlcmlmaWVkID0gdmVyaWZ5VHlwZSh0eXBlTm9kZSwgdHlwZXMsIGZpbGVDb250ZXh0KTtcblxuICBsZXQgdHlwZTtcblxuICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpO1xuXG4gICAgdHlwZSA9IGZpcnN0VHlwZTsgLy8vXG5cbiAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gdGVybUFzQ29uc3RydWN0b3JWZXJpZmllci52ZXJpZnlUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCk7XG4gIH1cblxuICBpZiAodGVybVZlcmlmaWVkQXNDb25zdHJ1Y3Rvcikge1xuICAgIGNvbnN0IHRva2VucyA9IGZpbGVDb250ZXh0LmdldFRva2VucygpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3IuZnJvbVRlcm1Ob2RlVHlwZUFuZFRva2Vucyh0ZXJtTm9kZSwgdHlwZSwgdG9rZW5zKTtcblxuICAgIGZpbGVDb250ZXh0LmFkZENvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIGlmICh0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIGNvbnN0cnVjdG9yLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUeXBlKHR5cGVOb2RlLCB0eXBlcywgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHR5cGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICh0eXBlTm9kZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGUgPSBudWxsO1xuXG4gICAgdHlwZXMucHVzaCh0eXBlKTtcblxuICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZXMucHVzaCh0eXBlKTtcblxuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0eXBlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VGVybUFzQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwidHlwZXMiLCJ0eXBlVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlIiwidHlwZSIsImZpcnN0VHlwZSIsImZpcnN0IiwidGVybUFzQ29uc3RydWN0b3JWZXJpZmllciIsInZlcmlmeVRlcm0iLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJjb25zdHJ1Y3RvciIsIkNvbnN0cnVjdG9yIiwiZnJvbVRlcm1Ob2RlVHlwZUFuZFRva2VucyIsImFkZENvbnN0cnVjdG9yIiwicHVzaCIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7a0VBTEE7d0VBQ2M7cUJBRWhCOzs7Ozs7QUFFUCxTQUFTQSx3QkFBd0JDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxXQUFXO0lBQzdFLElBQUlDLDRCQUE0QjtJQUVoQyxJQUFNQyxhQUFhRixZQUFZRyxZQUFZLENBQUNMO0lBRTVDRSxZQUFZSSxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVywrQkFBNkJKO0lBRTVFLElBQU1PLFFBQVEsRUFBRSxFQUNWQyxlQUFlQyxXQUFXUixVQUFVTSxPQUFPTDtJQUVqRCxJQUFJUTtJQUVKLElBQUlGLGNBQWM7UUFDaEIsSUFBTUcsWUFBWUMsSUFBQUEsWUFBSyxFQUFDTDtRQUV4QkcsT0FBT0MsV0FBVyxHQUFHO1FBRXJCUiw0QkFBNEJVLDBCQUF5QixDQUFDQyxVQUFVLENBQUNkLFVBQVVFO0lBQzdFO0lBRUEsSUFBSUMsMkJBQTJCO1FBQzdCLElBQU1ZLFNBQVNiLFlBQVljLFNBQVMsSUFDOUJDLGNBQWNDLG9CQUFXLENBQUNDLHlCQUF5QixDQUFDbkIsVUFBVVUsTUFBTUs7UUFFMUViLFlBQVlrQixjQUFjLENBQUNIO0lBQzdCO0lBRUEsSUFBSWQsMkJBQTJCO1FBQzdCRCxZQUFZSSxLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWEYsWUFBVyw2QkFBMkJKO0lBQzlFO0lBRUEsT0FBT0c7QUFDVDtBQUVBLFNBQVNNLFdBQVdSLFFBQVEsRUFBRU0sS0FBSyxFQUFFTCxXQUFXO0lBQzlDLElBQUlNLGVBQWU7SUFFbkIsSUFBSVAsYUFBYSxNQUFNO1FBQ3JCLElBQU1TLE9BQU87UUFFYkgsTUFBTWMsSUFBSSxDQUFDWDtRQUVYRixlQUFlO0lBQ2pCLE9BQU87UUFDTCxJQUFNRSxRQUFPUixZQUFZb0Isa0JBQWtCLENBQUNyQjtRQUU1QyxJQUFJUyxVQUFTLE1BQU07WUFDakJILE1BQU1jLElBQUksQ0FBQ1g7WUFFWEYsZUFBZTtRQUNqQixPQUFPO1lBQ0wsSUFBTWUsYUFBYXJCLFlBQVlHLFlBQVksQ0FBQ0o7WUFFNUNDLFlBQVlJLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVhpQixZQUFXLDJCQUF5QnRCO1FBQ2hFO0lBQ0Y7SUFFQSxPQUFPTztBQUNUIn0=
|
|
@@ -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 verifyTermGivenType;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
+
var _array = require("../utilities/array");
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function verifyTermGivenType(termNode, type, localContext) {
|
|
19
|
+
var termVerifiedGivenType = false;
|
|
20
|
+
if (type !== null) {
|
|
21
|
+
var verifyTerm = _shim.default.verifyTerm, terms = [], termVerified = verifyTerm(termNode, terms, localContext, function() {
|
|
22
|
+
var verifiedAhead = false;
|
|
23
|
+
var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = term.getType(), termTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(type);
|
|
24
|
+
if (termTypeEqualToOrSubTypeOfType) {
|
|
25
|
+
verifiedAhead = true;
|
|
26
|
+
}
|
|
27
|
+
return verifiedAhead;
|
|
28
|
+
});
|
|
29
|
+
termVerifiedGivenType = termVerified; ///
|
|
30
|
+
}
|
|
31
|
+
return termVerifiedGivenType;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybUdpdmVuVHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVRlcm1HaXZlblR5cGUodGVybU5vZGUsIHR5cGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdGVybVZlcmlmaWVkR2l2ZW5UeXBlID0gZmFsc2U7XG5cbiAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IHZlcmlmeVRlcm0gfSA9IHNoaW0sXG4gICAgICAgICAgdGVybXMgPSBbXSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICB0ZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZlR5cGUgPSB0ZXJtVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0eXBlKTtcblxuICAgICAgICAgICAgaWYgKHRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSkge1xuICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB0ZXJtVmVyaWZpZWRHaXZlblR5cGUgPSB0ZXJtVmVyaWZpZWQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEdpdmVuVHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUZXJtR2l2ZW5UeXBlIiwidGVybU5vZGUiLCJ0eXBlIiwibG9jYWxDb250ZXh0IiwidGVybVZlcmlmaWVkR2l2ZW5UeXBlIiwidmVyaWZ5VGVybSIsInNoaW0iLCJ0ZXJtcyIsInRlcm1WZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtVHlwZSIsImdldFR5cGUiLCJ0ZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZlR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OzsyREFKUDtxQkFFSzs7Ozs7O0FBRVAsU0FBU0Esb0JBQW9CQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsWUFBWTtJQUN0RSxJQUFJQyx3QkFBd0I7SUFFNUIsSUFBSUYsU0FBUyxNQUFNO1FBQ2pCLElBQU0sQUFBRUcsYUFBZUMsYUFBSSxDQUFuQkQsWUFDRkUsUUFBUSxFQUFFLEVBQ1ZDLGVBQWVILFdBQVdKLFVBQVVNLE9BQU9KLGNBQWM7WUFDdkQsSUFBSU0sZ0JBQWdCO1lBRXBCLElBQU1DLFlBQVlDLElBQUFBLFlBQUssRUFBQ0osUUFDbEJLLE9BQU9GLFdBQ1BHLFdBQVdELEtBQUtFLE9BQU8sSUFDdkJDLGlDQUFpQ0YsU0FBU0csb0JBQW9CLENBQUNkO1lBRXJFLElBQUlhLGdDQUFnQztnQkFDbENOLGdCQUFnQjtZQUNsQjtZQUVBLE9BQU9BO1FBQ1Q7UUFFTkwsd0JBQXdCSSxjQUFjLEdBQUc7SUFDM0M7SUFFQSxPQUFPSjtBQUNUIn0=
|
package/package.json
CHANGED
package/src/context/local.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import Variable from "../variable";
|
|
4
3
|
import Equivalence from "../equivalence";
|
|
5
4
|
|
|
6
5
|
import { last, reverse } from "../utilities/array";
|
|
@@ -235,26 +234,18 @@ class LocalContext {
|
|
|
235
234
|
|
|
236
235
|
proofSteps = reverse(proofSteps); ///
|
|
237
236
|
|
|
238
|
-
const localContextA = this, ///
|
|
239
|
-
localContextB = localContext, ///
|
|
240
|
-
statementNodeAB = statementNode, ///
|
|
241
|
-
statementStringB = localContextA.nodeAsString(statementNodeAB);
|
|
242
|
-
|
|
243
|
-
localContextB.trace(`Unifying the '${statementStringB}' statement...`, statementNodeAB);
|
|
244
|
-
|
|
245
237
|
const equivalences = this.getEquivalences(),
|
|
238
|
+
localContextA = this, ///
|
|
239
|
+
localContextB = localContext, ///
|
|
240
|
+
statementNodeB = statementNode, ///
|
|
246
241
|
statementUnified = proofSteps.some((proofStep) => {
|
|
247
|
-
const statementUnified = proofStep.unifyStatement(
|
|
242
|
+
const statementUnified = proofStep.unifyStatement(statementNodeB, equivalences, localContextA, localContextB);
|
|
248
243
|
|
|
249
244
|
if (statementUnified) {
|
|
250
245
|
return true;
|
|
251
246
|
}
|
|
252
247
|
});
|
|
253
248
|
|
|
254
|
-
if (statementUnified) {
|
|
255
|
-
localContextB.debug(`...unified the '${statementStringB}' statement.`, statementNodeAB);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
249
|
return statementUnified;
|
|
259
250
|
}
|
|
260
251
|
|
package/src/proofStep.js
CHANGED
|
@@ -17,22 +17,27 @@ export default class ProofStep {
|
|
|
17
17
|
return this.statementNode;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
unifyStatement(
|
|
20
|
+
unifyStatement(statementNodeB, equivalences, localContextA, localContextB) {
|
|
21
21
|
let statementUnified = false;
|
|
22
22
|
|
|
23
23
|
if (this.statementNode !== null) {
|
|
24
24
|
let statementUnifiedWithStatement = false;
|
|
25
25
|
|
|
26
26
|
if (!statementUnifiedWithStatement) {
|
|
27
|
-
const statementNodeA = statementNode
|
|
28
|
-
statementNodeB = this.statementNode; ///
|
|
27
|
+
const statementNodeA = this.statementNode; ///
|
|
29
28
|
|
|
30
29
|
statementUnifiedWithStatement = unifyStatementWithStatement(statementNodeA, statementNodeB, equivalences, localContextA, localContextB);
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
if (!statementUnifiedWithStatement) {
|
|
34
|
-
const statementNodeA =
|
|
35
|
-
|
|
33
|
+
const statementNodeA = statementNodeB, ///
|
|
34
|
+
localContext = localContextA; ///
|
|
35
|
+
|
|
36
|
+
statementNodeB = this.statementNode; ///
|
|
37
|
+
|
|
38
|
+
localContextA = localContextB; ///
|
|
39
|
+
|
|
40
|
+
localContextB = localContext; ///
|
|
36
41
|
|
|
37
42
|
statementUnifiedWithStatement = unifyStatementWithStatement(statementNodeA, statementNodeB, equivalences, localContextA, localContextB);
|
|
38
43
|
}
|
|
@@ -29,14 +29,21 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
29
29
|
return node;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
transformed(substitutions) {
|
|
33
|
+
let transformedSubstitution = null;
|
|
34
|
+
|
|
35
|
+
const transformedTermNode = transformTermNode(this.termNode, substitutions),
|
|
36
|
+
transformedVariableNode = transformVariableNode(this.variableNode, substitutions);
|
|
37
|
+
|
|
38
|
+
if ((transformedTermNode !== null) && (transformedVariableNode !== null)) {
|
|
39
|
+
const termNode = transformedTermNode, ///
|
|
40
|
+
variableNode = transformedVariableNode,
|
|
41
|
+
termForVariableSubstitution = new TermForVariableSubstitution(termNode, variableNode);
|
|
42
|
+
|
|
43
|
+
transformedSubstitution = termForVariableSubstitution; ///
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return transformedSubstitution;
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
matchTermNode(termNode) {
|
|
@@ -95,22 +102,12 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
95
102
|
let termNode = substitution.getTermNode(),
|
|
96
103
|
variableNode = substitution.getVariableNode();
|
|
97
104
|
|
|
98
|
-
|
|
105
|
+
const transformedTermNode = transformTermNode(termNode, substitutions),
|
|
106
|
+
transformedVariableNode = transformVariableNode(variableNode, substitutions); ///
|
|
99
107
|
|
|
100
|
-
|
|
108
|
+
termNode = transformedTermNode; ///
|
|
101
109
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return termForVariableSubstitution;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
static fromSubstitutionNodeAndSubstitutions(substitutionNode, substitutions) {
|
|
108
|
-
let termNode = termNodeQuery(substitutionNode),
|
|
109
|
-
variableNode = variableNodeQuery(substitutionNode);
|
|
110
|
-
|
|
111
|
-
termNode = substituteTermNode(termNode, substitutions); ///
|
|
112
|
-
|
|
113
|
-
variableNode = substituteVariableNode(variableNode, substitutions); ///
|
|
110
|
+
variableNode = transformedVariableNode; ///
|
|
114
111
|
|
|
115
112
|
const termForVariableSubstitution = new TermForVariableSubstitution(variableNode, termNode);
|
|
116
113
|
|
|
@@ -118,7 +115,9 @@ export default class TermForVariableSubstitution extends Substitution {
|
|
|
118
115
|
}
|
|
119
116
|
}
|
|
120
117
|
|
|
121
|
-
function
|
|
118
|
+
function transformTermNode(termNode, substitutions) {
|
|
119
|
+
let transformedTermNode = null;
|
|
120
|
+
|
|
122
121
|
const termVariableNode = variableNodeQuery(termNode);
|
|
123
122
|
|
|
124
123
|
if (termVariableNode !== null) {
|
|
@@ -126,31 +125,35 @@ function substituteTermNode(termNode, substitutions) {
|
|
|
126
125
|
const substitutionMatchesVariableNode = substitution.matchVariableNode(termVariableNode);
|
|
127
126
|
|
|
128
127
|
if (substitutionMatchesVariableNode) {
|
|
129
|
-
termNode = substitution.getTermNode();
|
|
128
|
+
const termNode = substitution.getTermNode();
|
|
129
|
+
|
|
130
|
+
transformedTermNode = termNode; ////
|
|
130
131
|
|
|
131
132
|
return true;
|
|
132
133
|
}
|
|
133
134
|
});
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
return
|
|
137
|
+
return transformedTermNode;
|
|
137
138
|
}
|
|
138
139
|
|
|
139
|
-
function
|
|
140
|
+
function transformVariableNode(variableNode, substitutions) {
|
|
141
|
+
let transformedVariableNode = null;
|
|
142
|
+
|
|
140
143
|
substitutions.someSubstitution((substitution) => {
|
|
141
144
|
const substitutionMatchesVariableNode = substitution.matchVariableNode(variableNode);
|
|
142
145
|
|
|
143
146
|
if (substitutionMatchesVariableNode) {
|
|
144
147
|
const termNode = substitution.getTermNode(),
|
|
145
|
-
|
|
148
|
+
variableNode = variableNodeQuery(termNode);
|
|
146
149
|
|
|
147
|
-
if (
|
|
148
|
-
|
|
150
|
+
if (variableNode !== null) {
|
|
151
|
+
transformedVariableNode = variableNode; ///
|
|
149
152
|
|
|
150
153
|
return true;
|
|
151
154
|
}
|
|
152
155
|
}
|
|
153
156
|
});
|
|
154
157
|
|
|
155
|
-
return
|
|
158
|
+
return transformedVariableNode;
|
|
156
159
|
}
|
|
@@ -12,12 +12,12 @@ const termNodeQuery = nodeQuery("/term!"),
|
|
|
12
12
|
statementNodeQuery = nodeQuery("/statement!");
|
|
13
13
|
|
|
14
14
|
class StatementWithCombinatorUnifier extends Unifier {
|
|
15
|
-
unify(statementNode, combinatorStatementNode, localContext) {
|
|
15
|
+
unify(statementNode, combinatorStatementNode, assignments, derived, localContext) {
|
|
16
16
|
let statementUnifiedWithCombinator;
|
|
17
17
|
|
|
18
18
|
const nonTerminalNodeA = statementNode, ///
|
|
19
19
|
nonTerminalNodeB = combinatorStatementNode, ///
|
|
20
|
-
nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext);
|
|
20
|
+
nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, assignments, derived, localContext);
|
|
21
21
|
|
|
22
22
|
statementUnifiedWithCombinator = nonTerminalNodeUnified; ///
|
|
23
23
|
|
|
@@ -28,10 +28,10 @@ class StatementWithCombinatorUnifier extends Unifier {
|
|
|
28
28
|
{
|
|
29
29
|
nodeQueryA: statementNodeQuery,
|
|
30
30
|
nodeQueryB: metaTypeNodeQuery,
|
|
31
|
-
unify: (statementNodeA, metaTypeNodeB, localContext) => {
|
|
31
|
+
unify: (statementNodeA, metaTypeNodeB, assignments, derived, localContext) => {
|
|
32
32
|
const metaTypeNode = metaTypeNodeB, ///
|
|
33
33
|
statementNode = statementNodeA, ///
|
|
34
|
-
statementUnifiedWithMetaType = unifyStatementWithMetaType(statementNode, metaTypeNode, localContext);
|
|
34
|
+
statementUnifiedWithMetaType = unifyStatementWithMetaType(statementNode, metaTypeNode, assignments, derived, localContext);
|
|
35
35
|
|
|
36
36
|
return statementUnifiedWithMetaType;
|
|
37
37
|
}
|
|
@@ -39,7 +39,7 @@ class StatementWithCombinatorUnifier extends Unifier {
|
|
|
39
39
|
{
|
|
40
40
|
nodeQueryA: termNodeQuery,
|
|
41
41
|
nodeQueryB: typeNodeQuery,
|
|
42
|
-
unify: (termNodeA, typeNodeB, localContext) => {
|
|
42
|
+
unify: (termNodeA, typeNodeB, assignments, derived, localContext) => {
|
|
43
43
|
const termNode = termNodeA, ///
|
|
44
44
|
typeNode = typeNodeB, ///
|
|
45
45
|
termUnifiedWithType = unifyTermWithType(termNode, typeNode, localContext);
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Substitutions from "../substitutions";
|
|
3
4
|
import metaLevelUnifier from "../unifier/metaLevel";
|
|
4
5
|
import TermForVariableSubstitution from "../substitution/termForVariable";
|
|
5
6
|
|
|
6
7
|
import { push } from "../utilities/array";
|
|
7
8
|
|
|
8
9
|
export default function unifyStatementWithStatement(statementNodeA, statementNodeB, substitution, substitutions, localContextA, localContextB) {
|
|
9
|
-
let
|
|
10
|
+
let statementUnifiedWithStatement = false;
|
|
10
11
|
|
|
11
|
-
const
|
|
12
|
-
|
|
12
|
+
const transformedSubstitutions = Substitutions.fromNothing(),
|
|
13
|
+
transformedSubstitution = substitution.transformed(substitutions);
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (transformed) {
|
|
17
|
-
const substitutionA = termForVariableSubstitution; ///
|
|
18
|
-
|
|
19
|
-
substitutionsA.push(substitutionA);
|
|
15
|
+
if (transformedSubstitution !== null) {
|
|
16
|
+
transformedSubstitutions.addSubstitution(transformedSubstitution, localContextA, localContextB);
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
const nodeA = statementNodeA, ///
|
|
23
20
|
nodeB = statementNodeB, ///
|
|
24
|
-
unified = metaLevelUnifier.unify(nodeA, nodeB,
|
|
21
|
+
unified = metaLevelUnifier.unify(nodeA, nodeB, transformedSubstitutions, localContextA, localContextB);
|
|
25
22
|
|
|
26
23
|
if (unified) {
|
|
27
|
-
if (
|
|
24
|
+
if (transformedSubstitution === null) {
|
|
25
|
+
|
|
26
|
+
debugger
|
|
27
|
+
|
|
28
28
|
const substitutionB = termForVariableSubstitution, ///
|
|
29
29
|
substitutionsB = [
|
|
30
30
|
substitutionB
|
|
@@ -35,10 +35,10 @@ export default function unifyStatementWithStatement(statementNodeA, statementNod
|
|
|
35
35
|
push(substitutions, substitutionsA);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
statementUnifiedWithStatement = true;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
return
|
|
41
|
+
return statementUnifiedWithStatement;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
function transformSubstitutions(substitutionsA, substitutionsB) {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import bracketedCombinator from "../ocmbinator/bracketed";
|
|
4
|
+
import statementWithCombinatorUnifier from "../unifier/statementWithCombinator";
|
|
5
|
+
|
|
6
|
+
export default function unifyStatementWithBracketedCombinator(statementNode, assignments, derived, localContext) {
|
|
7
|
+
let statementUnifiedWithBracketedCombinator;
|
|
8
|
+
|
|
9
|
+
const statementString = localContext.nodeAsString(statementNode);
|
|
10
|
+
|
|
11
|
+
localContext.trace(`Unifying the '${statementString}' statement with the bracketed combinator...`, statementNode);
|
|
12
|
+
|
|
13
|
+
const bracketedCombinatorStatementNode = bracketedCombinator.getStatementNode();
|
|
14
|
+
|
|
15
|
+
statementUnifiedWithBracketedCombinator = statementWithCombinatorUnifier.unify(statementNode, bracketedCombinatorStatementNode, assignments, derived, localContext);
|
|
16
|
+
|
|
17
|
+
if (statementUnifiedWithBracketedCombinator) {
|
|
18
|
+
localContext.debug(`...unified the '${statementString}' statement with the bracketed combinator.`, statementNode);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return statementUnifiedWithBracketedCombinator;
|
|
22
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import statementWithCombinatorUnifier from "../unifier/statementWithCombinator";
|
|
4
|
+
|
|
5
|
+
export default function unifyStatementWithCombinators(statementNode, assignments, derived, localContext) {
|
|
6
|
+
let statementUnifiedWithCombinators;
|
|
7
|
+
|
|
8
|
+
const combinators = localContext.getCombinators();
|
|
9
|
+
|
|
10
|
+
statementUnifiedWithCombinators = combinators.some((combinator) => {
|
|
11
|
+
const statementUnifiedWithCombinator = unifyStatementWithCombinator(statementNode, combinator, assignments, derived, localContext);
|
|
12
|
+
|
|
13
|
+
if (statementUnifiedWithCombinator) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return statementUnifiedWithCombinators;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function unifyStatementWithCombinator(statementNode, combinator, assignments, derived, localContext) {
|
|
22
|
+
let statementUnifiedWithCombinator;
|
|
23
|
+
|
|
24
|
+
const statementString = localContext.nodeAsString(statementNode),
|
|
25
|
+
combinatorString = combinator.getString();
|
|
26
|
+
|
|
27
|
+
localContext.trace(`Unifying the '${statementString}' statement with the '${combinatorString}' combinator...`, statementNode);
|
|
28
|
+
|
|
29
|
+
const combinatorStatementNode = combinator.getStatementNode();
|
|
30
|
+
|
|
31
|
+
statementUnifiedWithCombinator = statementWithCombinatorUnifier.unify(statementNode, combinatorStatementNode, assignments, derived, localContext);
|
|
32
|
+
|
|
33
|
+
if (statementUnifiedWithCombinator) {
|
|
34
|
+
localContext.debug(`...unified the '${statementString}' statement with the '${combinatorString}' combinator.`, statementNode);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return statementUnifiedWithCombinator;
|
|
38
|
+
}
|