occam-verify-cli 0.0.462 → 0.0.464
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/bin/action/verify.js +2 -2
- package/bin/utilities/string.js +13 -0
- package/lib/axiom.js +2 -2
- package/lib/verify/assertion/type.js +43 -20
- package/lib/verify/statement/unqualified.js +2 -54
- package/package.json +1 -1
- package/src/axiom.js +1 -1
- package/src/verify/assertion/type.js +75 -31
- package/src/verify/statement/unqualified.js +0 -53
package/bin/action/verify.js
CHANGED
|
@@ -4,7 +4,7 @@ const { Dependency } = require("occam-file-system"),
|
|
|
4
4
|
{ loggingUtilities } = require("necessary"),
|
|
5
5
|
{ verifyRelease, releaseContextUtilities } = require("../../lib/index"); ///
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { trimTrailingSlash } = require("../utilities/string"),
|
|
8
8
|
{ releaseContextFromDependencyAndDependentNames } = require("../utilities/fileSystem");
|
|
9
9
|
|
|
10
10
|
const { log } = loggingUtilities,
|
|
@@ -12,7 +12,7 @@ const { log } = loggingUtilities,
|
|
|
12
12
|
{ createReleaseContext, initialiseReleaseContext } = releaseContextUtilities;
|
|
13
13
|
|
|
14
14
|
function verifyAction(argument, logLevel) {
|
|
15
|
-
const name = argument
|
|
15
|
+
const name = trimTrailingSlash(argument), ///
|
|
16
16
|
context = {},
|
|
17
17
|
dependency = Dependency.fromName(name),
|
|
18
18
|
dependentNames = [],
|
package/lib/axiom.js
CHANGED
|
@@ -79,7 +79,7 @@ var Axiom = /*#__PURE__*/ function() {
|
|
|
79
79
|
var labelsJSON = this.labels.map(function(label) {
|
|
80
80
|
var labelJSON = label.toJSON();
|
|
81
81
|
return labelJSON;
|
|
82
|
-
}), unqualifiedStatementString = (0, _string.nodeAsString)(this.
|
|
82
|
+
}), unqualifiedStatementString = (0, _string.nodeAsString)(this.unqualifiedStatementNode), indicativeConditionalString = (0, _string.nodeAsString)(this.indicativeConditionalNode), kind = _kinds.AXIOM_KIND, labels = labelsJSON, unqualifiedStatement = unqualifiedStatementString, indicativeConditional = indicativeConditionalString, json = {
|
|
83
83
|
kind: kind,
|
|
84
84
|
labels: labels,
|
|
85
85
|
unqualifiedStatement: unqualifiedStatement,
|
|
@@ -123,4 +123,4 @@ var Axiom = /*#__PURE__*/ function() {
|
|
|
123
123
|
return Axiom;
|
|
124
124
|
}();
|
|
125
125
|
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5cbmltcG9ydCB7IEFYSU9NX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5pbXBvcnQgeyB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcsIGluZGljYXRpdmVDb25kaXRpb25hbE5vZGVGcm9tSW5kaWNhdGl2ZUNvbmRpdGlvbmFsU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBeGlvbSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlKSB7XG4gICAgdGhpcy5sYWJlbHMgPSBsYWJlbHM7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGU7XG4gICAgdGhpcy5pbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlID0gaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZTtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRVbnF1YWxpZmllZFN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0SW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlO1xuICB9XG5cbiAgbWF0Y2hMYWJlbE5hbWUobGFiZWxOYW1lKSB7XG4gICAgY29uc3QgbWF0Y2hlc0xhYmVsTmFtZSA9IHRoaXMubGFiZWxzLnNvbWUoKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gbGFiZWxOYW1lLCAvLy9cbiAgICAgICAgICAgIGxhYmVsTWF0Y2hlc05hbWUgPSBsYWJlbC5tYXRjaE5hbWUobmFtZSk7XG5cbiAgICAgIGlmIChsYWJlbE1hdGNoZXNOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNMYWJlbE5hbWU7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5cbmltcG9ydCB7IEFYSU9NX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5pbXBvcnQgeyB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcsIGluZGljYXRpdmVDb25kaXRpb25hbE5vZGVGcm9tSW5kaWNhdGl2ZUNvbmRpdGlvbmFsU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBeGlvbSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlKSB7XG4gICAgdGhpcy5sYWJlbHMgPSBsYWJlbHM7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGU7XG4gICAgdGhpcy5pbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlID0gaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZTtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRVbnF1YWxpZmllZFN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0SW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlO1xuICB9XG5cbiAgbWF0Y2hMYWJlbE5hbWUobGFiZWxOYW1lKSB7XG4gICAgY29uc3QgbWF0Y2hlc0xhYmVsTmFtZSA9IHRoaXMubGFiZWxzLnNvbWUoKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gbGFiZWxOYW1lLCAvLy9cbiAgICAgICAgICAgIGxhYmVsTWF0Y2hlc05hbWUgPSBsYWJlbC5tYXRjaE5hbWUobmFtZSk7XG5cbiAgICAgIGlmIChsYWJlbE1hdGNoZXNOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNMYWJlbE5hbWU7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWxKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBpbmRpY2F0aXZlQ29uZGl0aW9uYWxTdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5pbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlKSxcbiAgICAgICAgICBraW5kID0gQVhJT01fS0lORCxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICAgIGluZGljYXRpdmVDb25kaXRpb25hbCA9IGluZGljYXRpdmVDb25kaXRpb25hbFN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQsXG4gICAgICAgICAgICBpbmRpY2F0aXZlQ29uZGl0aW9uYWxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpIHtcbiAgICBsZXQgeyBsYWJlbHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgICBsYWJlbHMgPSBsYWJlbHNKU09OLm1hcCgobGFiZWxKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gbGFiZWxKU09OLCAvLy9cbiAgICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfSk7XG5cbiAgICBsZXQgeyB1bnF1YWxpZmllZFN0YXRlbWVudCwgaW5kaWNhdGl2ZUNvbmRpdGlvbmFsIH0gPSBqc29uO1xuXG4gICAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IG51bGwsXG4gICAgICAgIGluZGljYXRpdmVDb25kaXRpb25hbE5vZGUgPSBudWxsO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IHVucXVhbGlmaWVkU3RhdGVtZW50OyAgLy8vXG5cbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyh1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZywgcmVsZWFzZUNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChpbmRpY2F0aXZlQ29uZGl0aW9uYWwgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGljYXRpdmVDb25kaXRpb25hbFN0cmluZyA9IGluZGljYXRpdmVDb25kaXRpb25hbDsgIC8vL1xuXG4gICAgICBpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlID0gaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZUZyb21JbmRpY2F0aXZlQ29uZGl0aW9uYWxTdHJpbmcoaW5kaWNhdGl2ZUNvbmRpdGlvbmFsU3RyaW5nLCByZWxlYXNlQ29udGV4dCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXhpb20gPSBuZXcgQXhpb20obGFiZWxzLCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGluZGljYXRpdmVDb25kaXRpb25hbE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG5cbiAgc3RhdGljIGZyb21MYWJlbHNVbnF1YWxpZmllZFN0YXRlbWVudE5vZGVBbmRJbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlKGxhYmVscywgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBpbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlKSB7XG4gICAgY29uc3QgYXhpb20gPSBuZXcgQXhpb20obGFiZWxzLCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGluZGljYXRpdmVDb25kaXRpb25hbE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkF4aW9tIiwibGFiZWxzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZSIsImdldExhYmVscyIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImdldEluZGljYXRpdmVDb25kaXRpb25hbE5vZGUiLCJtYXRjaExhYmVsTmFtZSIsImxhYmVsTmFtZSIsIm1hdGNoZXNMYWJlbE5hbWUiLCJzb21lIiwibGFiZWwiLCJuYW1lIiwibGFiZWxNYXRjaGVzTmFtZSIsIm1hdGNoTmFtZSIsInRvSlNPTiIsImxhYmVsc0pTT04iLCJtYXAiLCJsYWJlbEpTT04iLCJ1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImluZGljYXRpdmVDb25kaXRpb25hbFN0cmluZyIsImtpbmQiLCJBWElPTV9LSU5EIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJpbmRpY2F0aXZlQ29uZGl0aW9uYWwiLCJqc29uIiwiZnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dCIsIkxhYmVsIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIiwiaW5kaWNhdGl2ZUNvbmRpdGlvbmFsTm9kZUZyb21JbmRpY2F0aXZlQ29uZGl0aW9uYWxTdHJpbmciLCJheGlvbSIsImZyb21MYWJlbHNVbnF1YWxpZmllZFN0YXRlbWVudE5vZGVBbmRJbmRpY2F0aXZlQ29uZGl0aW9uYWxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7OzswREFQSDtxQkFFUztzQkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlkLElBQUEsQUFBTUEsc0JBQU47YUFBTUEsTUFDUEMsTUFBTSxFQUFFQyx3QkFBd0IsRUFBRUMseUJBQXlCOzhCQURwREg7UUFFakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyx3QkFBd0IsR0FBR0E7UUFDaEMsSUFBSSxDQUFDQyx5QkFBeUIsR0FBR0E7O2lCQUpoQkg7O1lBT25CSSxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTtnQkFDVixPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSw4QkFBOEI7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDSCx3QkFBd0I7WUFDdEM7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsK0JBQStCO2dCQUM3QixPQUFPLElBQUksQ0FBQ0gseUJBQXlCO1lBQ3ZDOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVDLFNBQVMsRUFBRTtnQkFDeEIsSUFBTUMsbUJBQW1CLElBQUksQ0FBQ1IsTUFBTSxDQUFDUyxJQUFJLENBQUMsU0FBQ0MsT0FBVTtvQkFDbkQsSUFBTUMsT0FBT0osV0FDUEssbUJBQW1CRixNQUFNRyxTQUFTLENBQUNGO29CQUV6QyxJQUFJQyxrQkFBa0I7d0JBQ3BCLE9BQU8sSUFBSTtvQkFDYixDQUFDO2dCQUNIO2dCQUVBLE9BQU9KO1lBQ1Q7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUEsU0FBUztnQkFDUCxJQUFNQyxhQUFhLElBQUksQ0FBQ2YsTUFBTSxDQUFDZ0IsR0FBRyxDQUFDLFNBQUNOLE9BQVU7b0JBQ3RDLElBQU1PLFlBQVlQLE1BQU1JLE1BQU07b0JBRTlCLE9BQU9HO2dCQUNULElBQ0FDLDZCQUE2QkMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNsQix3QkFBd0IsR0FDdkVtQiw4QkFBOEJELElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDakIseUJBQXlCLEdBQ3pFbUIsT0FBT0MsaUJBQVUsRUFDakJ0QixTQUFTZSxZQUNUUSx1QkFBdUJMLDRCQUN2Qk0sd0JBQXdCSiw2QkFDeEJLLE9BQU87b0JBQ0xKLE1BQUFBO29CQUNBckIsUUFBQUE7b0JBQ0F1QixzQkFBQUE7b0JBQ0FDLHVCQUFBQTtnQkFDRjtnQkFFTixPQUFPQztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRUUsY0FBYyxFQUFFO2dCQUNwQyxJQUFJLEFBQUUzQixTQUFXeUIsS0FBWHpCO2dCQUVOLElBQU1lLGFBQWFmLFFBQVMsR0FBRztnQkFFL0JBLFNBQVNlLFdBQVdDLEdBQUcsQ0FBQyxTQUFDQyxXQUFjO29CQUNyQyxJQUFNUSxTQUFPUixXQUNQUCxRQUFRa0IsY0FBSyxDQUFDRixRQUFRLENBQUNELFFBQU1FO29CQUVuQyxPQUFPakI7Z0JBQ1Q7Z0JBRUEsSUFBTWEsdUJBQWdERSxLQUFoREYsc0JBQXNCQyx3QkFBMEJDLEtBQTFCRDtnQkFFNUIsSUFBSXZCLDJCQUEyQixJQUFJLEVBQy9CQyw0QkFBNEIsSUFBSTtnQkFFcEMsSUFBSXFCLHlCQUF5QixJQUFJLEVBQUU7b0JBQ2pDLElBQU1MLDZCQUE2Qkssc0JBQXVCLEdBQUc7b0JBRTdEdEIsMkJBQTJCNEIsSUFBQUEsOERBQXNELEVBQUNYLDRCQUE0QlM7Z0JBQ2hILENBQUM7Z0JBRUQsSUFBSUgsMEJBQTBCLElBQUksRUFBRTtvQkFDbEMsSUFBTUosOEJBQThCSSx1QkFBd0IsR0FBRztvQkFFL0R0Qiw0QkFBNEI0QixJQUFBQSxnRUFBd0QsRUFBQ1YsNkJBQTZCTztnQkFDcEgsQ0FBQztnQkFFRCxJQUFNSSxRQUFRLElBbkZHaEMsTUFtRk9DLFFBQVFDLDBCQUEwQkM7Z0JBRTFELE9BQU82QjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsK0RBQStEaEMsTUFBTSxFQUFFQyx3QkFBd0IsRUFBRUMseUJBQXlCLEVBQUU7Z0JBQ2pJLElBQU02QixRQUFRLElBekZHaEMsTUF5Rk9DLFFBQVFDLDBCQUEwQkM7Z0JBRTFELE9BQU82QjtZQUNUOzs7V0E1Rm1CaEMifQ==
|
|
@@ -12,6 +12,12 @@ var _array = require("../../utilities/array");
|
|
|
12
12
|
var _string = require("../../utilities/string");
|
|
13
13
|
var _query = require("../../utilities/query");
|
|
14
14
|
var _term = require("../../verify/term");
|
|
15
|
+
var _variable = /*#__PURE__*/ _interopRequireDefault(require("../../variable"));
|
|
16
|
+
function _interopRequireDefault(obj) {
|
|
17
|
+
return obj && obj.__esModule ? obj : {
|
|
18
|
+
default: obj
|
|
19
|
+
};
|
|
20
|
+
}
|
|
15
21
|
var termNodeQuery = (0, _query.nodeQuery)("/typeAssertion/term"), typeNodeQuery = (0, _query.nodeQuery)("/typeAssertion/type");
|
|
16
22
|
function verifyTypeAssertion(typeAssertionNode, proofContext) {
|
|
17
23
|
var typeAssertionVerified = false;
|
|
@@ -22,27 +28,13 @@ function verifyTypeAssertion(typeAssertionNode, proofContext) {
|
|
|
22
28
|
if (!typePresent) {
|
|
23
29
|
proofContext.error("The ".concat(typeName, " type is not present."));
|
|
24
30
|
} else {
|
|
25
|
-
var
|
|
26
|
-
var type = proofContext.findTypeByTypeName(typeName), context = proofContext, termNode = termNodeQuery(typeAssertionNode);
|
|
27
|
-
var variables = [], termVerifiedAsVariable = (0, _term.verifyTermAsVariable)(termNode, variables, context);
|
|
31
|
+
var context = proofContext, termNode = termNodeQuery(typeAssertionNode), variables = [], termVerifiedAsVariable = (0, _term.verifyTermAsVariable)(termNode, variables, context);
|
|
28
32
|
if (termVerifiedAsVariable) {
|
|
29
|
-
var
|
|
30
|
-
|
|
33
|
+
var variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode, proofContext);
|
|
34
|
+
typeAssertionVerified = variableTypeAssertionVerified; ///
|
|
31
35
|
} else {
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var firstType = (0, _array.first)(types), termType = firstType; ///
|
|
35
|
-
assertedType = termType; ///
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (assertedType !== null) {
|
|
39
|
-
var typeEqualToOrSubTypeOfAssertedType = type.isEqualToOrSubTypeOf(assertedType);
|
|
40
|
-
if (!typeEqualToOrSubTypeOfAssertedType) {
|
|
41
|
-
var termString = (0, _string.nodeAsString)(termNode);
|
|
42
|
-
proofContext.error("The type of the '".concat(termString, "' term or variable is not equal to or a sub-type of the asserted type."));
|
|
43
|
-
} else {
|
|
44
|
-
typeAssertionVerified = true;
|
|
45
|
-
}
|
|
36
|
+
var termTypeAssertionVerified = verifyTermTypeAssertion(typeAssertionNode, proofContext);
|
|
37
|
+
typeAssertionVerified = termTypeAssertionVerified; ///
|
|
46
38
|
}
|
|
47
39
|
}
|
|
48
40
|
if (typeAssertionVerified) {
|
|
@@ -51,5 +43,36 @@ function verifyTypeAssertion(typeAssertionNode, proofContext) {
|
|
|
51
43
|
typeAssertionVerified ? proofContext.complete(typeAssertionNode) : proofContext.halt(typeAssertionNode);
|
|
52
44
|
return typeAssertionVerified;
|
|
53
45
|
}
|
|
46
|
+
function verifyTermTypeAssertion(typeAssertionNode, proofContext) {
|
|
47
|
+
var termTypeAssertionVerified = false;
|
|
48
|
+
var types = [], context = proofContext, termNode = termNodeQuery(typeAssertionNode), termVerifiedAgainstConstructors = (0, _term.verifyTermAgainstConstructors)(termNode, types, context);
|
|
49
|
+
if (termVerifiedAgainstConstructors) {
|
|
50
|
+
var typeNode = typeNodeQuery(typeAssertionNode), typeName = (0, _query.typeNameFromTypeNode)(typeNode), assertedTypeName = typeName, assertedType = proofContext.findTypeByTypeName(assertedTypeName), firstType = (0, _array.first)(types), termType = firstType, assertedTypeEqualToOrSubTypeOfTermType = assertedType.isEqualToOrSubTypeOf(termType);
|
|
51
|
+
if (!assertedTypeEqualToOrSubTypeOfTermType) {
|
|
52
|
+
var termString = (0, _string.nodeAsString)(termNode);
|
|
53
|
+
proofContext.error("The asserted type is not equal to or a sub-type of the '".concat(termString, "' term type."));
|
|
54
|
+
} else {
|
|
55
|
+
termTypeAssertionVerified = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return termTypeAssertionVerified;
|
|
59
|
+
}
|
|
60
|
+
function verifyVariableTypeAssertion(typeAssertionNode, proofContext) {
|
|
61
|
+
var variableTypeAssertionVerified = false;
|
|
62
|
+
var context = proofContext, variables = [], termNode = termNodeQuery(typeAssertionNode);
|
|
63
|
+
(0, _term.verifyTermAsVariable)(termNode, variables, context);
|
|
64
|
+
var typeNode = typeNodeQuery(typeAssertionNode), typeName = (0, _query.typeNameFromTypeNode)(typeNode), assertedTypeName = typeName, assertedType = proofContext.findTypeByTypeName(assertedTypeName), firstVariable = (0, _array.first)(variables), variable = firstVariable, variableName = variable.getName(), variableType = variable.getType(), assertedTypeEqualToOrSubTypeOfVariableType = assertedType.isEqualToOrSubTypeOf(variableType);
|
|
65
|
+
if (!assertedTypeEqualToOrSubTypeOfVariableType) {
|
|
66
|
+
proofContext.error("The asserted type is not equal to or a sub-type of the '".concat(variableName, "' variable type."));
|
|
67
|
+
} else {
|
|
68
|
+
var derived = proofContext.isDerived();
|
|
69
|
+
if (!derived) {
|
|
70
|
+
var type = assertedType, name = variableName, variable1 = _variable.default.fromTypeAndName(type, name);
|
|
71
|
+
proofContext.addVariable(variable1);
|
|
72
|
+
}
|
|
73
|
+
variableTypeAssertionVerified = true;
|
|
74
|
+
}
|
|
75
|
+
return variableTypeAssertionVerified;
|
|
76
|
+
}
|
|
54
77
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB2ZXJpZnlUZXJtQXNWYXJpYWJsZSwgdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnMgfSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3Rlcm1cIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdHlwZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4odHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25TdHJpbmcgPSBub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uLi5gKTtcblxuICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgdHlwZVByZXNlbnQgPSBwcm9vZkNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICBwcm9vZkNvbnRleHQuZXJyb3IoYFRoZSAke3R5cGVOYW1lfSB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICB9IGVsc2Uge1xuICAgIGxldCBhc3NlcnRlZFR5cGUgPSBudWxsO1xuXG4gICAgY29uc3QgdHlwZSA9IHByb29mQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpLFxuICAgICAgICAgIGNvbnRleHQgPSBwcm9vZkNvbnRleHQsIC8vL1xuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gdmVyaWZ5VGVybUFzVmFyaWFibGUodGVybU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgY29uc3QgZmlyc3RWYXJpYWJsZSA9IGZpcnN0KHZhcmlhYmxlcyksXG4gICAgICAgICAgICB2YXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgdmFyaWFibGVUeXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICBhc3NlcnRlZFR5cGUgPSB2YXJpYWJsZVR5cGU7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICAgIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMgPSB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyh0ZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycykge1xuICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgIHRlcm1UeXBlID0gZmlyc3RUeXBlOyAvLy9cblxuICAgICAgICBhc3NlcnRlZFR5cGUgPSB0ZXJtVHlwZTsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhc3NlcnRlZFR5cGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZBc3NlcnRlZFR5cGUgPSB0eXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKGFzc2VydGVkVHlwZSk7XG5cbiAgICAgIGlmICghdHlwZUVxdWFsVG9PclN1YlR5cGVPZkFzc2VydGVkVHlwZSkge1xuICAgICAgICBjb25zdCB0ZXJtU3RyaW5nID0gbm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICAgICAgICBwcm9vZkNvbnRleHQuZXJyb3IoYFRoZSB0eXBlIG9mIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBvciB2YXJpYWJsZSBpcyBub3QgZXF1YWwgdG8gb3IgYSBzdWItdHlwZSBvZiB0aGUgYXNzZXJ0ZWQgdHlwZS5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgIHByb29mQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHR5cGUgYXNzZXJ0aW9uLmApO1xuICB9XG5cbiAgdHlwZUFzc2VydGlvblZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUodHlwZUFzc2VydGlvbk5vZGUpIDpcbiAgICAgIHByb29mQ29udGV4dC5oYWx0KHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICByZXR1cm4gdHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVR5cGVBc3NlcnRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlIiwicHJvb2ZDb250ZXh0IiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwiYmVnaW4iLCJ0eXBlQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJ0eXBlTm9kZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiZXJyb3IiLCJhc3NlcnRlZFR5cGUiLCJ0eXBlIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwiY29udGV4dCIsInRlcm1Ob2RlIiwidmFyaWFibGVzIiwidGVybVZlcmlmaWVkQXNWYXJpYWJsZSIsInZlcmlmeVRlcm1Bc1ZhcmlhYmxlIiwiZmlyc3RWYXJpYWJsZSIsImZpcnN0IiwidmFyaWFibGUiLCJ2YXJpYWJsZVR5cGUiLCJnZXRUeXBlIiwidHlwZXMiLCJ0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3JzIiwidmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnMiLCJmaXJzdFR5cGUiLCJ0ZXJtVHlwZSIsInR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZBc3NlcnRlZFR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsInRlcm1TdHJpbmciLCJpbmZvIiwiY29tcGxldGUiLCJoYWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQXdCQTs7O3FCQVJGO3NCQUNPO3FCQUNtQjtvQkFDb0I7QUFFcEUsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHdCQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpCLFNBQVNGLG9CQUFvQkksaUJBQWlCLEVBQUVDLFlBQVksRUFBRTtJQUMzRSxJQUFJQyx3QkFBd0IsS0FBSztJQUVqQ0QsYUFBYUUsS0FBSyxDQUFDSDtJQUVuQixJQUFNSSxzQkFBc0JDLElBQUFBLG9CQUFZLEVBQUNMO0lBRXpDQyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQjtJQUV6RCxJQUFNRyxXQUFXUixjQUFjQyxvQkFDekJRLFdBQVdDLElBQUFBLDJCQUFvQixFQUFDRixXQUNoQ0csY0FBY1QsYUFBYVUsdUJBQXVCLENBQUNIO0lBRXpELElBQUksQ0FBQ0UsYUFBYTtRQUNoQlQsYUFBYVcsS0FBSyxDQUFDLEFBQUMsT0FBZSxPQUFUSixVQUFTO0lBQ3JDLE9BQU87UUFDTCxJQUFJSyxlQUFlLElBQUk7UUFFdkIsSUFBTUMsT0FBT2IsYUFBYWMsa0JBQWtCLENBQUNQLFdBQ3ZDUSxVQUFVZixjQUNWZ0IsV0FBV3BCLGNBQWNHO1FBRS9CLElBQU1rQixZQUFZLEVBQUUsRUFDZEMseUJBQXlCQyxJQUFBQSwwQkFBb0IsRUFBQ0gsVUFBVUMsV0FBV0Y7UUFFekUsSUFBSUcsd0JBQXdCO1lBQzFCLElBQU1FLGdCQUFnQkMsSUFBQUEsWUFBSyxFQUFDSixZQUN0QkssV0FBV0YsZUFDWEcsZUFBZUQsU0FBU0UsT0FBTztZQUVyQ1osZUFBZVcsY0FBZSxHQUFHO1FBQ25DLE9BQU87WUFDTCxJQUFNRSxRQUFRLEVBQUUsRUFDVkMsa0NBQWtDQyxJQUFBQSxtQ0FBNkIsRUFBQ1gsVUFBVVMsT0FBT1Y7WUFFdkYsSUFBSVcsaUNBQWlDO2dCQUNuQyxJQUFNRSxZQUFZUCxJQUFBQSxZQUFLLEVBQUNJLFFBQ2xCSSxXQUFXRCxXQUFXLEdBQUc7Z0JBRS9CaEIsZUFBZWlCLFVBQVcsR0FBRztZQUMvQixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUlqQixpQkFBaUIsSUFBSSxFQUFFO1lBQ3pCLElBQU1rQixxQ0FBcUNqQixLQUFLa0Isb0JBQW9CLENBQUNuQjtZQUVyRSxJQUFJLENBQUNrQixvQ0FBb0M7Z0JBQ3ZDLElBQU1FLGFBQWE1QixJQUFBQSxvQkFBWSxFQUFDWTtnQkFFaENoQixhQUFhVyxLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWHFCLFlBQVc7WUFDcEQsT0FBTztnQkFDTC9CLHdCQUF3QixJQUFJO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLHVCQUF1QjtRQUN6QkQsYUFBYWlDLElBQUksQ0FBQyxBQUFDLGlCQUFvQyxPQUFwQjlCLHFCQUFvQjtJQUN6RCxDQUFDO0lBRURGLHdCQUNFRCxhQUFha0MsUUFBUSxDQUFDbkMscUJBQ3BCQyxhQUFhbUMsSUFBSSxDQUFDcEMsa0JBQWtCO0lBRXhDLE9BQU9FO0FBQ1QifQ==
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB2ZXJpZnlUZXJtQXNWYXJpYWJsZSwgdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvcnMgfSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdHlwZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4odHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25TdHJpbmcgPSBub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uLi5gKTtcblxuICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgdHlwZVByZXNlbnQgPSBwcm9vZkNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICBwcm9vZkNvbnRleHQuZXJyb3IoYFRoZSAke3R5cGVOYW1lfSB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbnRleHQgPSBwcm9vZkNvbnRleHQsIC8vL1xuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzVmFyaWFibGUpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VmFyaWFibGVUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VGVybVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICAgIHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRlcm1UeXBlQXNzZXJ0aW9uVmVyaWZpZWQ7ICAvLy9cbiAgICB9XG4gIH1cblxuICBpZiAodHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uYCk7XG4gIH1cblxuICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgP1xuICAgIHByb29mQ29udGV4dC5jb21wbGV0ZSh0eXBlQXNzZXJ0aW9uTm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmhhbHQodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIHJldHVybiB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm1UeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHRlcm1UeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB0eXBlcyA9IFtdLFxuICAgICAgICBjb250ZXh0ID0gcHJvb2ZDb250ZXh0LCAvLy9cbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyA9IHZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3JzKHRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCk7XG5cbiAgaWYgKHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMpIHtcbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgIGFzc2VydGVkVHlwZU5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIGFzc2VydGVkVHlwZSA9IHByb29mQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUoYXNzZXJ0ZWRUeXBlTmFtZSksXG4gICAgICAgICAgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgIHRlcm1UeXBlID0gZmlyc3RUeXBlLFxuICAgICAgICAgIGFzc2VydGVkVHlwZUVxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlID0gYXNzZXJ0ZWRUeXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHRlcm1UeXBlKTtcblxuICAgIGlmICghYXNzZXJ0ZWRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVGVybVR5cGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICBwcm9vZkNvbnRleHQuZXJyb3IoYFRoZSBhc3NlcnRlZCB0eXBlIGlzIG5vdCBlcXVhbCB0byBvciBhIHN1Yi10eXBlIG9mIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB0eXBlLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0ZXJtVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGVybVR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGVUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGV4dCA9IHByb29mQ29udGV4dCwgLy8vXG4gICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICBhc3NlcnRlZFR5cGVOYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgYXNzZXJ0ZWRUeXBlID0gcHJvb2ZDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZShhc3NlcnRlZFR5cGVOYW1lKSxcbiAgICAgICAgZmlyc3RWYXJpYWJsZSA9IGZpcnN0KHZhcmlhYmxlcyksXG4gICAgICAgIHZhcmlhYmxlID0gZmlyc3RWYXJpYWJsZSwgLy8vXG4gICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgdmFyaWFibGVUeXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICBhc3NlcnRlZFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZWYXJpYWJsZVR5cGUgPSBhc3NlcnRlZFR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodmFyaWFibGVUeXBlKTtcblxuICBpZiAoIWFzc2VydGVkVHlwZUVxdWFsVG9PclN1YlR5cGVPZlZhcmlhYmxlVHlwZSkge1xuICAgIHByb29mQ29udGV4dC5lcnJvcihgVGhlIGFzc2VydGVkIHR5cGUgaXMgbm90IGVxdWFsIHRvIG9yIGEgc3ViLXR5cGUgb2YgdGhlICcke3ZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlIHR5cGUuYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGVyaXZlZCA9IHByb29mQ29udGV4dC5pc0Rlcml2ZWQoKTtcblxuICAgIGlmICghZGVyaXZlZCkge1xuICAgICAgY29uc3QgdHlwZSA9IGFzc2VydGVkVHlwZSwgIC8vL1xuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tVHlwZUFuZE5hbWUodHlwZSwgbmFtZSk7XG5cbiAgICAgIHByb29mQ29udGV4dC5hZGRWYXJpYWJsZSh2YXJpYWJsZSk7XG4gICAgfVxuXG4gICAgdmFyaWFibGVUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVR5cGVBc3NlcnRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlIiwicHJvb2ZDb250ZXh0IiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwiYmVnaW4iLCJ0eXBlQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJ0eXBlTm9kZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiZXJyb3IiLCJjb250ZXh0IiwidGVybU5vZGUiLCJ2YXJpYWJsZXMiLCJ0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmVyaWZ5VGVybUFzVmFyaWFibGUiLCJ2YXJpYWJsZVR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVZhcmlhYmxlVHlwZUFzc2VydGlvbiIsInRlcm1UeXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtVHlwZUFzc2VydGlvbiIsImluZm8iLCJjb21wbGV0ZSIsImhhbHQiLCJ0eXBlcyIsInRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMiLCJ2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyIsImFzc2VydGVkVHlwZU5hbWUiLCJhc3NlcnRlZFR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJmaXJzdFR5cGUiLCJmaXJzdCIsInRlcm1UeXBlIiwiYXNzZXJ0ZWRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVGVybVR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsInRlcm1TdHJpbmciLCJmaXJzdFZhcmlhYmxlIiwidmFyaWFibGUiLCJ2YXJpYWJsZU5hbWUiLCJnZXROYW1lIiwidmFyaWFibGVUeXBlIiwiZ2V0VHlwZSIsImFzc2VydGVkVHlwZUVxdWFsVG9PclN1YlR5cGVPZlZhcmlhYmxlVHlwZSIsImRlcml2ZWQiLCJpc0Rlcml2ZWQiLCJ0eXBlIiwibmFtZSIsIlZhcmlhYmxlIiwiZnJvbVR5cGVBbmROYW1lIiwiYWRkVmFy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
|
|
@@ -2,59 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "default"
|
|
6
|
-
// debugger
|
|
7
|
-
// } else {
|
|
8
|
-
// const types = [],
|
|
9
|
-
// context = proofContext, ///
|
|
10
|
-
// termNode = termNodeQuery(typeAssertionNode),
|
|
11
|
-
// variables = [],
|
|
12
|
-
// termString = nodeAsString(termNode),
|
|
13
|
-
// termVerifiedAsVariable = verifyTermAsVariable(termNode, variables, context);
|
|
14
|
-
//
|
|
15
|
-
// if (termVerifiedAsVariable) {
|
|
16
|
-
// const firstValue = first(values),
|
|
17
|
-
// variableName = termString, ///
|
|
18
|
-
// value = firstValue; ///
|
|
19
|
-
//
|
|
20
|
-
// if (value !== undefined) {
|
|
21
|
-
// proofContext.error(`The value of the ${variableName} variable is not undefined.`);
|
|
22
|
-
// } else {
|
|
23
|
-
// const type = proofContext.findTypeByTypeName(typeName),
|
|
24
|
-
// firstType = first(types),
|
|
25
|
-
// variableType = firstType, ///
|
|
26
|
-
// typeEqualToOrSubTypeOfVariableType = type.isEqualToOrSubTypeOf(variableType);
|
|
27
|
-
//
|
|
28
|
-
// if (!typeEqualToOrSubTypeOfVariableType) {
|
|
29
|
-
// proofContext.error(`The asserted type of the ${variableName} variable is not equal to or a sub-type of its declared type.`);
|
|
30
|
-
// } else {
|
|
31
|
-
// const name = variableName, ///
|
|
32
|
-
// variable = Variable.fromTypeAndName(type, name);
|
|
33
|
-
//
|
|
34
|
-
// proofContext.addVariable(variable);
|
|
35
|
-
//
|
|
36
|
-
// typeAssertionVerified = true;
|
|
37
|
-
// }
|
|
38
|
-
// }
|
|
39
|
-
// } else {
|
|
40
|
-
// const termVerifiedAgainstConstructors = verifyTermAgainstConstructors(termNode, types, values, context);
|
|
41
|
-
//
|
|
42
|
-
// if (termVerifiedAgainstConstructors) {
|
|
43
|
-
// const type = proofContext.findTypeByTypeName(typeName),
|
|
44
|
-
// firstType = first(types),
|
|
45
|
-
// termType = firstType, ///
|
|
46
|
-
// typeEqualToOrSubTypeOfTermType = type.isEqualToOrSubTypeOf(termType);
|
|
47
|
-
//
|
|
48
|
-
// if (!typeEqualToOrSubTypeOfTermType) {
|
|
49
|
-
// proofContext.error(`The asserted type of the '${termString}' term is not equal to or a sub-type of its declared type.`);
|
|
50
|
-
// } else {
|
|
51
|
-
//
|
|
52
|
-
// typeAssertionVerified = true;
|
|
53
|
-
// }
|
|
54
|
-
// }
|
|
55
|
-
// }
|
|
56
|
-
// }
|
|
57
|
-
, {
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
58
6
|
enumerable: true,
|
|
59
7
|
get: function() {
|
|
60
8
|
return verifyUnqualifiedStatement;
|
|
@@ -95,4 +43,4 @@ function verifyUnqualifiedStatement(unqualifiedStatementNode, proofContext) {
|
|
|
95
43
|
return unqualifiedStatementVerified;
|
|
96
44
|
}
|
|
97
45
|
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5U3RhdGVtZW50IGZyb20gXCIuLi8uLi92ZXJpZnkvc3RhdGVtZW50XCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uLy4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4odW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt1bnF1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHVucXVhbGlmaWVkIHN0YXRlbWVudC4uLmApO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWQgPSBwcm9vZkNvbnRleHQuaXNEZXJpdmVkKCk7XG5cbiAgICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGlvbiA9IEFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgYXNzZXJ0aW9uTWF0Y2hlcyA9IHByb29mQ29udGV4dC5tYXRjaEFzc2VydGlvbihhc3NlcnRpb24pO1xuXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBhc3NlcnRpb25NYXRjaGVzOyAgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIHByb29mQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyB1bnF1YWxpZmllZCBzdGF0ZW1lbnQuYCk7XG4gIH1cblxuICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuaGFsdCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwicHJvb2ZDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsImJlZ2luIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImRlcml2ZWQiLCJpc0Rlcml2ZWQiLCJhc3NlcnRpb24iLCJBc3NlcnRpb24iLCJmcm9tU3RhdGVtZW50Tm9kZSIsImFzc2VydGlvbk1hdGNoZXMiLCJtYXRjaEFzc2VydGlvbiIsImluZm8iLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7OERBVEk7OERBRU47cUJBRUk7c0JBQ0c7Ozs7OztBQUU3QixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0YsMkJBQTJCRyx3QkFBd0IsRUFBRUMsWUFBWSxFQUFFO0lBQ3pGLElBQUlDLCtCQUErQixLQUFLO0lBRXhDRCxhQUFhRSxLQUFLLENBQUNIO0lBRW5CLElBQU1JLDZCQUE2QkMsSUFBQUEsb0JBQVksRUFBQ0w7SUFFaERDLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUE0QyxPQUEzQkYsNEJBQTJCO0lBRWhFLElBQU1HLGdCQUFnQlQsbUJBQW1CRTtJQUV6QyxJQUFJTyxrQkFBa0IsSUFBSSxFQUFFO1FBQzFCLElBQU1DLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0YsZUFBZU47UUFFekQsSUFBSU8sbUJBQW1CO1lBQ3JCLElBQU1FLFVBQVVULGFBQWFVLFNBQVM7WUFFdEMsSUFBSUQsU0FBUztnQkFDWCxJQUFNRSxZQUFZQyxrQkFBUyxDQUFDQyxpQkFBaUIsQ0FBQ1AsZ0JBQ3hDUSxtQkFBbUJkLGFBQWFlLGNBQWMsQ0FBQ0o7Z0JBRXJEViwrQkFBK0JhLGtCQUFtQixHQUFHO1lBQ3ZELE9BQU87Z0JBQ0xiLCtCQUErQixJQUFJO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLDhCQUE4QjtRQUNoQ0QsYUFBYWdCLElBQUksQ0FBQyxBQUFDLGlCQUEyQyxPQUEzQmIsNEJBQTJCO0lBQ2hFLENBQUM7SUFFREYsK0JBQ0VELGFBQWFpQixRQUFRLENBQUNsQiw0QkFDcEJDLGFBQWFrQixJQUFJLENBQUNuQix5QkFBeUI7SUFFL0MsT0FBT0U7QUFDVCJ9
|
package/package.json
CHANGED
package/src/axiom.js
CHANGED
|
@@ -45,7 +45,7 @@ export default class Axiom {
|
|
|
45
45
|
|
|
46
46
|
return labelJSON;
|
|
47
47
|
}),
|
|
48
|
-
unqualifiedStatementString = nodeAsString(this.
|
|
48
|
+
unqualifiedStatementString = nodeAsString(this.unqualifiedStatementNode),
|
|
49
49
|
indicativeConditionalString = nodeAsString(this.indicativeConditionalNode),
|
|
50
50
|
kind = AXIOM_KIND,
|
|
51
51
|
labels = labelsJSON, ///
|
|
@@ -4,6 +4,7 @@ import { first } from "../../utilities/array";
|
|
|
4
4
|
import { nodeAsString } from "../../utilities/string";
|
|
5
5
|
import { nodeQuery, typeNameFromTypeNode } from "../../utilities/query";
|
|
6
6
|
import { verifyTermAsVariable, verifyTermAgainstConstructors } from "../../verify/term";
|
|
7
|
+
import Variable from "../../variable";
|
|
7
8
|
|
|
8
9
|
const termNodeQuery = nodeQuery("/typeAssertion/term"),
|
|
9
10
|
typeNodeQuery = nodeQuery("/typeAssertion/type");
|
|
@@ -24,43 +25,19 @@ export default function verifyTypeAssertion(typeAssertionNode, proofContext) {
|
|
|
24
25
|
if (!typePresent) {
|
|
25
26
|
proofContext.error(`The ${typeName} type is not present.`);
|
|
26
27
|
} else {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
context = proofContext, ///
|
|
31
|
-
termNode = termNodeQuery(typeAssertionNode);
|
|
32
|
-
|
|
33
|
-
const variables = [],
|
|
28
|
+
const context = proofContext, ///
|
|
29
|
+
termNode = termNodeQuery(typeAssertionNode),
|
|
30
|
+
variables = [],
|
|
34
31
|
termVerifiedAsVariable = verifyTermAsVariable(termNode, variables, context);
|
|
35
32
|
|
|
36
33
|
if (termVerifiedAsVariable) {
|
|
37
|
-
const
|
|
38
|
-
variable = firstVariable, ///
|
|
39
|
-
variableType = variable.getType();
|
|
34
|
+
const variableTypeAssertionVerified = verifyVariableTypeAssertion(typeAssertionNode, proofContext);
|
|
40
35
|
|
|
41
|
-
|
|
36
|
+
typeAssertionVerified = variableTypeAssertionVerified; ///
|
|
42
37
|
} else {
|
|
43
|
-
const
|
|
44
|
-
termVerifiedAgainstConstructors = verifyTermAgainstConstructors(termNode, types, context);
|
|
45
|
-
|
|
46
|
-
if (termVerifiedAgainstConstructors) {
|
|
47
|
-
const firstType = first(types),
|
|
48
|
-
termType = firstType; ///
|
|
49
|
-
|
|
50
|
-
assertedType = termType; ///
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (assertedType !== null) {
|
|
55
|
-
const typeEqualToOrSubTypeOfAssertedType = type.isEqualToOrSubTypeOf(assertedType);
|
|
38
|
+
const termTypeAssertionVerified = verifyTermTypeAssertion(typeAssertionNode, proofContext);
|
|
56
39
|
|
|
57
|
-
|
|
58
|
-
const termString = nodeAsString(termNode);
|
|
59
|
-
|
|
60
|
-
proofContext.error(`The type of the '${termString}' term or variable is not equal to or a sub-type of the asserted type.`);
|
|
61
|
-
} else {
|
|
62
|
-
typeAssertionVerified = true;
|
|
63
|
-
}
|
|
40
|
+
typeAssertionVerified = termTypeAssertionVerified; ///
|
|
64
41
|
}
|
|
65
42
|
}
|
|
66
43
|
|
|
@@ -74,3 +51,70 @@ export default function verifyTypeAssertion(typeAssertionNode, proofContext) {
|
|
|
74
51
|
|
|
75
52
|
return typeAssertionVerified;
|
|
76
53
|
}
|
|
54
|
+
|
|
55
|
+
function verifyTermTypeAssertion(typeAssertionNode, proofContext) {
|
|
56
|
+
let termTypeAssertionVerified = false;
|
|
57
|
+
|
|
58
|
+
const types = [],
|
|
59
|
+
context = proofContext, ///
|
|
60
|
+
termNode = termNodeQuery(typeAssertionNode),
|
|
61
|
+
termVerifiedAgainstConstructors = verifyTermAgainstConstructors(termNode, types, context);
|
|
62
|
+
|
|
63
|
+
if (termVerifiedAgainstConstructors) {
|
|
64
|
+
const typeNode = typeNodeQuery(typeAssertionNode),
|
|
65
|
+
typeName = typeNameFromTypeNode(typeNode),
|
|
66
|
+
assertedTypeName = typeName, ///
|
|
67
|
+
assertedType = proofContext.findTypeByTypeName(assertedTypeName),
|
|
68
|
+
firstType = first(types),
|
|
69
|
+
termType = firstType,
|
|
70
|
+
assertedTypeEqualToOrSubTypeOfTermType = assertedType.isEqualToOrSubTypeOf(termType);
|
|
71
|
+
|
|
72
|
+
if (!assertedTypeEqualToOrSubTypeOfTermType) {
|
|
73
|
+
const termString = nodeAsString(termNode);
|
|
74
|
+
|
|
75
|
+
proofContext.error(`The asserted type is not equal to or a sub-type of the '${termString}' term type.`);
|
|
76
|
+
} else {
|
|
77
|
+
termTypeAssertionVerified = true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return termTypeAssertionVerified;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function verifyVariableTypeAssertion(typeAssertionNode, proofContext) {
|
|
85
|
+
let variableTypeAssertionVerified = false;
|
|
86
|
+
|
|
87
|
+
const context = proofContext, ///
|
|
88
|
+
variables = [],
|
|
89
|
+
termNode = termNodeQuery(typeAssertionNode);
|
|
90
|
+
|
|
91
|
+
verifyTermAsVariable(termNode, variables, context);
|
|
92
|
+
|
|
93
|
+
const typeNode = typeNodeQuery(typeAssertionNode),
|
|
94
|
+
typeName = typeNameFromTypeNode(typeNode),
|
|
95
|
+
assertedTypeName = typeName, ///
|
|
96
|
+
assertedType = proofContext.findTypeByTypeName(assertedTypeName),
|
|
97
|
+
firstVariable = first(variables),
|
|
98
|
+
variable = firstVariable, ///
|
|
99
|
+
variableName = variable.getName(),
|
|
100
|
+
variableType = variable.getType(),
|
|
101
|
+
assertedTypeEqualToOrSubTypeOfVariableType = assertedType.isEqualToOrSubTypeOf(variableType);
|
|
102
|
+
|
|
103
|
+
if (!assertedTypeEqualToOrSubTypeOfVariableType) {
|
|
104
|
+
proofContext.error(`The asserted type is not equal to or a sub-type of the '${variableName}' variable type.`);
|
|
105
|
+
} else {
|
|
106
|
+
const derived = proofContext.isDerived();
|
|
107
|
+
|
|
108
|
+
if (!derived) {
|
|
109
|
+
const type = assertedType, ///
|
|
110
|
+
name = variableName, ///
|
|
111
|
+
variable = Variable.fromTypeAndName(type, name);
|
|
112
|
+
|
|
113
|
+
proofContext.addVariable(variable);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
variableTypeAssertionVerified = true;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return variableTypeAssertionVerified;
|
|
120
|
+
}
|
|
@@ -47,56 +47,3 @@ export default function verifyUnqualifiedStatement(unqualifiedStatementNode, pro
|
|
|
47
47
|
|
|
48
48
|
return unqualifiedStatementVerified;
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
// if (derived) {
|
|
52
|
-
// debugger
|
|
53
|
-
// } else {
|
|
54
|
-
// const types = [],
|
|
55
|
-
// context = proofContext, ///
|
|
56
|
-
// termNode = termNodeQuery(typeAssertionNode),
|
|
57
|
-
// variables = [],
|
|
58
|
-
// termString = nodeAsString(termNode),
|
|
59
|
-
// termVerifiedAsVariable = verifyTermAsVariable(termNode, variables, context);
|
|
60
|
-
//
|
|
61
|
-
// if (termVerifiedAsVariable) {
|
|
62
|
-
// const firstValue = first(values),
|
|
63
|
-
// variableName = termString, ///
|
|
64
|
-
// value = firstValue; ///
|
|
65
|
-
//
|
|
66
|
-
// if (value !== undefined) {
|
|
67
|
-
// proofContext.error(`The value of the ${variableName} variable is not undefined.`);
|
|
68
|
-
// } else {
|
|
69
|
-
// const type = proofContext.findTypeByTypeName(typeName),
|
|
70
|
-
// firstType = first(types),
|
|
71
|
-
// variableType = firstType, ///
|
|
72
|
-
// typeEqualToOrSubTypeOfVariableType = type.isEqualToOrSubTypeOf(variableType);
|
|
73
|
-
//
|
|
74
|
-
// if (!typeEqualToOrSubTypeOfVariableType) {
|
|
75
|
-
// proofContext.error(`The asserted type of the ${variableName} variable is not equal to or a sub-type of its declared type.`);
|
|
76
|
-
// } else {
|
|
77
|
-
// const name = variableName, ///
|
|
78
|
-
// variable = Variable.fromTypeAndName(type, name);
|
|
79
|
-
//
|
|
80
|
-
// proofContext.addVariable(variable);
|
|
81
|
-
//
|
|
82
|
-
// typeAssertionVerified = true;
|
|
83
|
-
// }
|
|
84
|
-
// }
|
|
85
|
-
// } else {
|
|
86
|
-
// const termVerifiedAgainstConstructors = verifyTermAgainstConstructors(termNode, types, values, context);
|
|
87
|
-
//
|
|
88
|
-
// if (termVerifiedAgainstConstructors) {
|
|
89
|
-
// const type = proofContext.findTypeByTypeName(typeName),
|
|
90
|
-
// firstType = first(types),
|
|
91
|
-
// termType = firstType, ///
|
|
92
|
-
// typeEqualToOrSubTypeOfTermType = type.isEqualToOrSubTypeOf(termType);
|
|
93
|
-
//
|
|
94
|
-
// if (!typeEqualToOrSubTypeOfTermType) {
|
|
95
|
-
// proofContext.error(`The asserted type of the '${termString}' term is not equal to or a sub-type of its declared type.`);
|
|
96
|
-
// } else {
|
|
97
|
-
//
|
|
98
|
-
// typeAssertionVerified = true;
|
|
99
|
-
// }
|
|
100
|
-
// }
|
|
101
|
-
// }
|
|
102
|
-
// }
|