occam-verify-cli 0.0.952 → 0.0.956
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 +4 -7
- package/lib/context/release.js +16 -23
- package/lib/index.js +6 -6
- package/lib/proofStep.js +3 -3
- package/lib/releaseContext/verify.js +66 -0
- package/lib/substitution/statementForMetavariable.js +16 -9
- package/lib/unifier/intrinsicLevel.js +142 -0
- package/lib/verify/premise.js +12 -9
- package/lib/verify/supposition.js +13 -8
- package/package.json +1 -1
- package/src/context/release.js +11 -17
- package/src/index.js +2 -4
- package/src/proofStep.js +2 -2
- package/src/releaseContext/{initialise.js → verify.js} +12 -12
- package/src/substitution/statementForMetavariable.js +16 -7
- package/src/unifier/intrinsicLevel.js +45 -0
- package/src/verify/premise.js +16 -13
- package/src/verify/supposition.js +19 -14
- package/lib/releaseContext/initialise.js +0 -66
|
@@ -0,0 +1,142 @@
|
|
|
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 _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
+
var _unifier = /*#__PURE__*/ _interop_require_default(require("../unifier"));
|
|
13
|
+
var _variableAgainstTerm = /*#__PURE__*/ _interop_require_default(require("../unify/variableAgainstTerm"));
|
|
14
|
+
var _query = require("../utilities/query");
|
|
15
|
+
function _assert_this_initialized(self) {
|
|
16
|
+
if (self === void 0) {
|
|
17
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
18
|
+
}
|
|
19
|
+
return self;
|
|
20
|
+
}
|
|
21
|
+
function _call_super(_this, derived, args) {
|
|
22
|
+
derived = _get_prototype_of(derived);
|
|
23
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
24
|
+
}
|
|
25
|
+
function _class_call_check(instance, Constructor) {
|
|
26
|
+
if (!(instance instanceof Constructor)) {
|
|
27
|
+
throw new TypeError("Cannot call a class as a function");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function _defineProperties(target, props) {
|
|
31
|
+
for(var i = 0; i < props.length; i++){
|
|
32
|
+
var descriptor = props[i];
|
|
33
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
34
|
+
descriptor.configurable = true;
|
|
35
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
36
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
40
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
41
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
42
|
+
return Constructor;
|
|
43
|
+
}
|
|
44
|
+
function _define_property(obj, key, value) {
|
|
45
|
+
if (key in obj) {
|
|
46
|
+
Object.defineProperty(obj, key, {
|
|
47
|
+
value: value,
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
obj[key] = value;
|
|
54
|
+
}
|
|
55
|
+
return obj;
|
|
56
|
+
}
|
|
57
|
+
function _get_prototype_of(o) {
|
|
58
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
59
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
60
|
+
};
|
|
61
|
+
return _get_prototype_of(o);
|
|
62
|
+
}
|
|
63
|
+
function _inherits(subClass, superClass) {
|
|
64
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
65
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
66
|
+
}
|
|
67
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
68
|
+
constructor: {
|
|
69
|
+
value: subClass,
|
|
70
|
+
writable: true,
|
|
71
|
+
configurable: true
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
75
|
+
}
|
|
76
|
+
function _interop_require_default(obj) {
|
|
77
|
+
return obj && obj.__esModule ? obj : {
|
|
78
|
+
default: obj
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function _possible_constructor_return(self, call) {
|
|
82
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
83
|
+
return call;
|
|
84
|
+
}
|
|
85
|
+
return _assert_this_initialized(self);
|
|
86
|
+
}
|
|
87
|
+
function _set_prototype_of(o, p) {
|
|
88
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
89
|
+
o.__proto__ = p;
|
|
90
|
+
return o;
|
|
91
|
+
};
|
|
92
|
+
return _set_prototype_of(o, p);
|
|
93
|
+
}
|
|
94
|
+
function _type_of(obj) {
|
|
95
|
+
"@swc/helpers - typeof";
|
|
96
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
97
|
+
}
|
|
98
|
+
function _is_native_reflect_construct() {
|
|
99
|
+
try {
|
|
100
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
101
|
+
} catch (_) {}
|
|
102
|
+
return (_is_native_reflect_construct = function() {
|
|
103
|
+
return !!result;
|
|
104
|
+
})();
|
|
105
|
+
}
|
|
106
|
+
var termNodeQuery = (0, _query.nodeQuery)("/term!"), termVariableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
107
|
+
var IntrinsicLevelUnifier = /*#__PURE__*/ function(Unifier) {
|
|
108
|
+
_inherits(IntrinsicLevelUnifier, Unifier);
|
|
109
|
+
function IntrinsicLevelUnifier() {
|
|
110
|
+
_class_call_check(this, IntrinsicLevelUnifier);
|
|
111
|
+
return _call_super(this, IntrinsicLevelUnifier, arguments);
|
|
112
|
+
}
|
|
113
|
+
_create_class(IntrinsicLevelUnifier, [
|
|
114
|
+
{
|
|
115
|
+
key: "unify",
|
|
116
|
+
value: function unify(nodeA, nodeB, substitutions, localContextA, localContextB) {
|
|
117
|
+
var unified;
|
|
118
|
+
var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB);
|
|
119
|
+
unified = nonTerminalNodeUnified; ///
|
|
120
|
+
return unified;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
]);
|
|
124
|
+
return IntrinsicLevelUnifier;
|
|
125
|
+
}(_unifier.default);
|
|
126
|
+
_define_property(IntrinsicLevelUnifier, "maps", [
|
|
127
|
+
{
|
|
128
|
+
nodeQueryA: termVariableNodeQuery,
|
|
129
|
+
nodeQueryB: termNodeQuery,
|
|
130
|
+
unify: function(termVariableNodeA, termNodeB, substitutions, localContextA, localContextB) {
|
|
131
|
+
var variableNodeA = termVariableNodeA, variableUnifiedAgainstTerm = (0, _variableAgainstTerm.default)(variableNodeA, termNodeB, substitutions, localContextA, localContextB);
|
|
132
|
+
return variableUnifiedAgainstTerm;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
]);
|
|
136
|
+
var intrinsicLevelUnifier = new IntrinsicLevelUnifier();
|
|
137
|
+
Object.assign(_shim.default, {
|
|
138
|
+
intrinsicLevelUnifier: intrinsicLevelUnifier
|
|
139
|
+
});
|
|
140
|
+
var _default = intrinsicLevelUnifier;
|
|
141
|
+
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL2ludHJpbnNpY0xldmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXJcIjtcbmltcG9ydCB1bmlmeVZhcmlhYmxlQWdhaW5zdFRlcm0gZnJvbSBcIi4uL3VuaWZ5L3ZhcmlhYmxlQWdhaW5zdFRlcm1cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0hXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBJbnRyaW5zaWNMZXZlbFVuaWZpZXIgZXh0ZW5kcyBVbmlmaWVyIHtcbiAgdW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gICAgbGV0IHVuaWZpZWQ7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbm9kZUEsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBub2RlQiwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICB1bmlmaWVkID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG5cbiAgICByZXR1cm4gdW5pZmllZDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB1bmlmeTogKHRlcm1WYXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpID0+IHtcbiAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlQSA9IHRlcm1WYXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVVbmlmaWVkQWdhaW5zdFRlcm0gPSB1bmlmeVZhcmlhYmxlQWdhaW5zdFRlcm0odmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgICByZXR1cm4gdmFyaWFibGVVbmlmaWVkQWdhaW5zdFRlcm07XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCBpbnRyaW5zaWNMZXZlbFVuaWZpZXIgPSBuZXcgSW50cmluc2ljTGV2ZWxVbmlmaWVyKCk7XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBpbnRyaW5zaWNMZXZlbFVuaWZpZXJcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBpbnRyaW5zaWNMZXZlbFVuaWZpZXI7XG4iXSwibmFtZXMiOlsidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsIkludHJpbnNpY0xldmVsVW5pZmllciIsInVuaWZ5Iiwibm9kZUEiLCJub2RlQiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVVuaWZpZWQiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSIsIlVuaWZpZXIiLCJtYXBzIiwibm9kZVF1ZXJ5QSIsIm5vZGVRdWVyeUIiLCJ0ZXJtVmFyaWFibGVOb2RlQSIsInRlcm1Ob2RlQiIsInZhcmlhYmxlTm9kZUEiLCJ2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0VGVybSIsInVuaWZ5VmFyaWFibGVBZ2FpbnN0VGVybSIsImludHJpbnNpY0xldmVsVW5pZmllciIsIk9iamVjdCIsImFzc2lnbiIsInNoaW0iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTRDQTs7O2VBQUE7OzsyREExQ2lCOzhEQUNHOzBFQUNpQjtxQkFFWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLFdBQzFCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFeEMsSUFBQSxBQUFNRSxzQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWE7Z0JBQzdELElBQUlDO2dCQUVKLElBQU1DLG1CQUFtQk4sT0FDbkJPLG1CQUFtQk4sT0FDbkJPLHlCQUF5QixJQUFJLENBQUNDLG9CQUFvQixDQUFDSCxrQkFBa0JDLGtCQUFrQkwsZUFBZUMsZUFBZUM7Z0JBRTNIQyxVQUFVRyx3QkFBd0IsR0FBRztnQkFFckMsT0FBT0g7WUFDVDs7O1dBWElQO0VBQThCWSxnQkFBTztBQWF6QyxpQkFiSVosdUJBYUdhLFFBQU87SUFDWjtRQUNFQyxZQUFZZjtRQUNaZ0IsWUFBWWxCO1FBQ1pJLE9BQU8sU0FBQ2UsbUJBQW1CQyxXQUFXYixlQUFlQyxlQUFlQztZQUNsRSxJQUFNWSxnQkFBZ0JGLG1CQUNoQkcsNkJBQTZCQyxJQUFBQSw0QkFBd0IsRUFBQ0YsZUFBZUQsV0FBV2IsZUFBZUMsZUFBZUM7WUFFcEgsT0FBT2E7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNRSx3QkFBd0IsSUFBSXJCO0FBRWxDc0IsT0FBT0MsTUFBTSxDQUFDQyxhQUFJLEVBQUU7SUFDbEJILHVCQUFBQTtBQUNGO0lBRUEsV0FBZUEifQ==
|
package/lib/verify/premise.js
CHANGED
|
@@ -23,14 +23,17 @@ function verifyPremise(premiseNode, premises, localContext) {
|
|
|
23
23
|
var premiseVerified;
|
|
24
24
|
var premiseString = localContext.nodeAsString(premiseNode);
|
|
25
25
|
localContext.trace("Verifying the '".concat(premiseString, "' premise..."), premiseNode);
|
|
26
|
-
var unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode)
|
|
27
|
-
if (
|
|
28
|
-
var
|
|
29
|
-
if (
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
var unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode);
|
|
27
|
+
if (unqualifiedStatementNode !== null) {
|
|
28
|
+
var derived = false, assignments = [], unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments, derived, localContext);
|
|
29
|
+
if (unqualifiedStatementVerified) {
|
|
30
|
+
var assignmentAssigned = (0, _assignments.assignAssignment)(assignments, localContext);
|
|
31
|
+
if (assignmentAssigned) {
|
|
32
|
+
var statementNode = statementNodeQuery(unqualifiedStatementNode), metaproofStep = _proofStep.default.fromStatementNode(statementNode), premise = _premise.default.fromStatementNode(statementNode);
|
|
33
|
+
premises.push(premise);
|
|
34
|
+
localContext.addProofStep(metaproofStep);
|
|
35
|
+
premiseVerified = true;
|
|
36
|
+
}
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
if (premiseVerified) {
|
|
@@ -39,4 +42,4 @@ function verifyPremise(premiseNode, premises, localContext) {
|
|
|
39
42
|
return premiseVerified;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJlbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByZW1pc2UgZnJvbSBcIi4uL3ByZW1pc2VcIjtcbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3Byb29mU3RlcFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJlbWlzZS91bnF1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHByZW1pc2VWZXJpZmllZDtcblxuICBjb25zdCBwcmVtaXNlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhwcmVtaXNlTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlLi4uYCwgcHJlbWlzZU5vZGUpO1xuXG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByZW1pc2VOb2RlKTtcblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgYXNzaWdubWVudEFzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudChhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGFzc2lnbm1lbnRBc3NpZ25lZCkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIHByZW1pc2VzLnB1c2gocHJlbWlzZSk7XG5cbiAgICAgICAgbG9jYWxDb250ZXh0LmFkZFByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgICAgICBwcmVtaXNlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChwcmVtaXNlVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS5gLCBwcmVtaXNlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gcHJlbWlzZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVByZW1pc2UiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInByZW1pc2VOb2RlIiwicHJlbWlzZXMiLCJsb2NhbENvbnRleHQiLCJwcmVtaXNlVmVyaWZpZWQiLCJwcmVtaXNlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJkZXJpdmVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50Iiwic3RhdGVtZW50Tm9kZSIsIm1ldGFwcm9vZlN0ZXAiLCJQcm9vZlN0ZXAiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInByZW1pc2UiLCJQcmVtaXNlIiwicHVzaCIsImFkZFByb29mU3RlcCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OzhEQVZKO2dFQUNFO2tFQUNpQjtxQkFFYjsyQkFDTzs7Ozs7O0FBRWpDLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxxQ0FDL0JDLGdDQUFnQ0QsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxTQUFTRixjQUFjSSxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsWUFBWTtJQUN2RSxJQUFJQztJQUVKLElBQU1DLGdCQUFnQkYsYUFBYUcsWUFBWSxDQUFDTDtJQUVoREUsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQStCLE9BQWRGLGVBQWMsaUJBQWVKO0lBRWxFLElBQU1PLDJCQUEyQlIsOEJBQThCQztJQUUvRCxJQUFJTyw2QkFBNkIsTUFBTTtRQUNyQyxJQUFNQyxVQUFVLE9BQ1ZDLGNBQWMsRUFBRSxFQUNoQkMsK0JBQStCQyxJQUFBQSxvQkFBMEIsRUFBQ0osMEJBQTBCRSxhQUFhRCxTQUFTTjtRQUVoSCxJQUFJUSw4QkFBOEI7WUFDaEMsSUFBTUUscUJBQXFCQyxJQUFBQSw2QkFBZ0IsRUFBQ0osYUFBYVA7WUFFekQsSUFBSVUsb0JBQW9CO2dCQUN0QixJQUFNRSxnQkFBZ0JqQixtQkFBbUJVLDJCQUNuQ1EsZ0JBQWdCQyxrQkFBUyxDQUFDQyxpQkFBaUIsQ0FBQ0gsZ0JBQzVDSSxVQUFVQyxnQkFBTyxDQUFDRixpQkFBaUIsQ0FBQ0g7Z0JBRTFDYixTQUFTbUIsSUFBSSxDQUFDRjtnQkFFZGhCLGFBQWFtQixZQUFZLENBQUNOO2dCQUUxQlosa0JBQWtCO1lBQ3BCO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGlCQUFpQjtRQUNuQkQsYUFBYW9CLEtBQUssQ0FBQyxBQUFDLG9CQUFpQyxPQUFkbEIsZUFBYyxlQUFhSjtJQUNwRTtJQUVBLE9BQU9HO0FBQ1QifQ==
|
|
@@ -23,18 +23,23 @@ function verifySupposition(suppositionNode, suppositions, localContext) {
|
|
|
23
23
|
var suppositionVerified = false;
|
|
24
24
|
var suppositionString = localContext.nodeAsString(suppositionNode);
|
|
25
25
|
localContext.trace("Verifying the '".concat(suppositionString, "' supposition..."), suppositionNode);
|
|
26
|
-
var
|
|
27
|
-
if (
|
|
28
|
-
var
|
|
29
|
-
|
|
26
|
+
var unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode);
|
|
27
|
+
if (unqualifiedStatementNode !== null) {
|
|
28
|
+
var derived = false, assignments = [], unqualifiedStatementVerified = (0, _unqualified.default)(unqualifiedStatementNode, assignments, derived, localContext);
|
|
29
|
+
if (unqualifiedStatementVerified) {
|
|
30
|
+
var assignmentAssigned = (0, _assignments.assignAssignment)(assignments, localContext);
|
|
31
|
+
if (assignmentAssigned) {
|
|
32
|
+
var statementNode = statementNodeQuery(unqualifiedStatementNode), supposition = _supposition.default.fromStatementNode(statementNode), proofStep = _proofStep.default.fromStatementNode(statementNode);
|
|
33
|
+
suppositions.push(supposition);
|
|
34
|
+
localContext.addProofStep(proofStep);
|
|
35
|
+
suppositionVerified = true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
30
38
|
}
|
|
31
39
|
if (suppositionVerified) {
|
|
32
|
-
var statementNode = statementNodeQuery(unqualifiedStatementNode), supposition = _supposition.default.fromStatementNode(statementNode), proofStep = _proofStep.default.fromStatementNode(statementNode);
|
|
33
|
-
suppositions.push(supposition);
|
|
34
|
-
localContext.addProofStep(proofStep);
|
|
35
40
|
localContext.debug("...verified the '".concat(suppositionString, "' supposition."), suppositionNode);
|
|
36
41
|
}
|
|
37
42
|
return suppositionVerified;
|
|
38
43
|
}
|
|
39
44
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3Byb29mU3RlcFwiO1xuaW1wb3J0IFN1cHBvc2l0aW9uIGZyb20gXCIuLi9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuLi92ZXJpZnkvc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3VwcG9zaXRpb24vdW5xdWFsaWZpZWRTdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbk5vZGUsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdXBwb3NpdGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3VwcG9zaXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN1cHBvc2l0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gLCBzdXBwb3NpdGlvbk5vZGUpO1xuXG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHN1cHBvc2l0aW9uTm9kZSk7XG5cbiAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChhc3NpZ25tZW50QXNzaWduZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICBzdXBwb3NpdGlvbiA9IFN1cHBvc2l0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgc3VwcG9zaXRpb25zLnB1c2goc3VwcG9zaXRpb24pO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgICAgICBzdXBwb3NpdGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9zaXRpb25WZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uYCwgc3VwcG9zaXRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdXBwb3NpdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN1cHBvc2l0aW9uIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvbnMiLCJsb2NhbENvbnRleHQiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwic3VwcG9zaXRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsImFzc2lnbm1lbnRBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnQiLCJzdGF0ZW1lbnROb2RlIiwic3VwcG9zaXRpb24iLCJTdXBwb3NpdGlvbiIsImZyb21TdGF0ZW1lbnROb2RlIiwicHJvb2ZTdGVwIiwiUHJvb2ZTdGVwIiwicHVzaCIsImFkZFByb29mU3RlcCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7O2dFQVZGO2tFQUNFO2tFQUNlO3FCQUViOzJCQUNPOzs7Ozs7QUFFakMsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHFDQUMvQkMsZ0NBQWdDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpDLFNBQVNGLGtCQUFrQkksZUFBZSxFQUFFQyxZQUFZLEVBQUVDLFlBQVk7SUFDbkYsSUFBSUMsc0JBQXNCO0lBRTFCLElBQU1DLG9CQUFvQkYsYUFBYUcsWUFBWSxDQUFDTDtJQUVwREUsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0IscUJBQW1CSjtJQUUxRSxJQUFNTywyQkFBMkJSLDhCQUE4QkM7SUFFL0QsSUFBSU8sNkJBQTZCLE1BQU07UUFDckMsSUFBTUMsVUFBVSxPQUNWQyxjQUFjLEVBQUUsRUFDaEJDLCtCQUErQkMsSUFBQUEsb0JBQTBCLEVBQUNKLDBCQUEwQkUsYUFBYUQsU0FBU047UUFFaEgsSUFBSVEsOEJBQThCO1lBQ2hDLElBQU1FLHFCQUFxQkMsSUFBQUEsNkJBQWdCLEVBQUNKLGFBQWFQO1lBRXpELElBQUlVLG9CQUFvQjtnQkFDdEIsSUFBTUUsZ0JBQWdCakIsbUJBQW1CVSwyQkFDbkNRLGNBQWNDLG9CQUFXLENBQUNDLGlCQUFpQixDQUFDSCxnQkFDNUNJLFlBQVlDLGtCQUFTLENBQUNGLGlCQUFpQixDQUFDSDtnQkFFOUNiLGFBQWFtQixJQUFJLENBQUNMO2dCQUVsQmIsYUFBYW1CLFlBQVksQ0FBQ0g7Z0JBRTFCZixzQkFBc0I7WUFDeEI7UUFDRjtJQUNGO0lBRUEsSUFBSUEscUJBQXFCO1FBQ3ZCRCxhQUFhb0IsS0FBSyxDQUFDLEFBQUMsb0JBQXFDLE9BQWxCbEIsbUJBQWtCLG1CQUFpQko7SUFDNUU7SUFFQSxPQUFPRztBQUNUIn0=
|
package/package.json
CHANGED
package/src/context/release.js
CHANGED
|
@@ -12,13 +12,13 @@ const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
|
12
12
|
{ florenceParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
13
13
|
|
|
14
14
|
export default class ReleaseContext {
|
|
15
|
-
constructor(log, json, name,
|
|
15
|
+
constructor(log, json, name, lexer, parser, entries, verified, fileContexts, customGrammar, loggingDisabled, dependencyReleaseContexts) {
|
|
16
16
|
this.log = log;
|
|
17
17
|
this.json = json;
|
|
18
18
|
this.name = name;
|
|
19
|
-
this.entries = entries;
|
|
20
19
|
this.lexer = lexer;
|
|
21
20
|
this.parser = parser;
|
|
21
|
+
this.entries = entries;
|
|
22
22
|
this.verified = verified;
|
|
23
23
|
this.fileContexts = fileContexts;
|
|
24
24
|
this.customGrammar = customGrammar;
|
|
@@ -38,10 +38,6 @@ export default class ReleaseContext {
|
|
|
38
38
|
return this.name;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
getEntries() {
|
|
42
|
-
return this.entries;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
41
|
getLexer() {
|
|
46
42
|
return this.lexer;
|
|
47
43
|
}
|
|
@@ -50,6 +46,10 @@ export default class ReleaseContext {
|
|
|
50
46
|
return this.parser;
|
|
51
47
|
}
|
|
52
48
|
|
|
49
|
+
getEntries() {
|
|
50
|
+
return this.entries;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
53
|
isVerified() {
|
|
54
54
|
return this.verified;
|
|
55
55
|
}
|
|
@@ -82,10 +82,6 @@ export default class ReleaseContext {
|
|
|
82
82
|
this.name = name;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
setEntries(entries) {
|
|
86
|
-
this.entries = entries;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
85
|
setLexer(lexer) {
|
|
90
86
|
this.lexer = lexer;
|
|
91
87
|
}
|
|
@@ -94,6 +90,10 @@ export default class ReleaseContext {
|
|
|
94
90
|
this.parser = parser;
|
|
95
91
|
}
|
|
96
92
|
|
|
93
|
+
setEntries(entries) {
|
|
94
|
+
this.entries = entries;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
97
|
setVerified(verified) {
|
|
98
98
|
this.verified = verified;
|
|
99
99
|
}
|
|
@@ -382,12 +382,6 @@ export default class ReleaseContext {
|
|
|
382
382
|
return released;
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
isInitialised() {
|
|
386
|
-
const initialised = (this.dependencyReleaseContexts !== null); ///
|
|
387
|
-
|
|
388
|
-
return initialised;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
385
|
getReleaseName() {
|
|
392
386
|
const name = this.getName(),
|
|
393
387
|
releaseName = name; ///
|
|
@@ -510,7 +504,7 @@ export default class ReleaseContext {
|
|
|
510
504
|
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
511
505
|
loggingDisabled = false,
|
|
512
506
|
dependencyReleaseContexts = null,
|
|
513
|
-
releaseContext = new ReleaseContext(log, json, name,
|
|
507
|
+
releaseContext = new ReleaseContext(log, json, name, lexer, parser, entries, verified, fileContexts, customGrammar, loggingDisabled, dependencyReleaseContexts);
|
|
514
508
|
|
|
515
509
|
return releaseContext;
|
|
516
510
|
}
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export { default as Log } from "./log";
|
|
4
|
-
|
|
5
4
|
export { default as verifyRelease } from "./verify/release";
|
|
6
5
|
export { default as ReleaseContext } from "./context/release";
|
|
7
|
-
|
|
6
|
+
export { default as createReleaseContext } from "./releaseContext/create";
|
|
7
|
+
export { default as verifyReleaseContext } from "./releaseContext/verify";
|
|
8
8
|
export { default as customGrammarUtilities } from "./utilities/customGrammar";
|
|
9
9
|
|
|
10
|
-
export { default as createReleaseContext } from "./releaseContext/create";
|
|
11
|
-
export { default as initialiseReleaseContext } from "./releaseContext/initialise";
|
package/src/proofStep.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Substitutions from "./substitutions";
|
|
4
|
-
import
|
|
4
|
+
import intrinsicLevelUnifier from "./unifier/intrinsicLevel";
|
|
5
5
|
|
|
6
6
|
export default class ProofStep {
|
|
7
7
|
constructor(subproofNode, statementNode) {
|
|
@@ -69,7 +69,7 @@ function unifyStatementAgainstStatement(statementNodeA, statementNodeB, equivale
|
|
|
69
69
|
const substitutions = Substitutions.fromNothing(),
|
|
70
70
|
nodeA = statementNodeA, ///
|
|
71
71
|
nodeB = statementNodeB, ///
|
|
72
|
-
unified =
|
|
72
|
+
unified = intrinsicLevelUnifier.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
|
|
73
73
|
|
|
74
74
|
if (unified) {
|
|
75
75
|
const substitutionsUnifiedAgainstEquivalences = substitutions.unifyAgainstEquivalences(equivalences, localContextA, localContextB);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export default function
|
|
4
|
-
let
|
|
3
|
+
export default function verifyReleaseContext(dependency, dependentName, dependentReleased, context) {
|
|
4
|
+
let releaseContextVerified = false;
|
|
5
5
|
|
|
6
6
|
const { releaseContextMap } = context,
|
|
7
7
|
dependencyName = dependency.getName(),
|
|
@@ -11,19 +11,19 @@ export default function initialiseReleaseContext(dependency, dependentName, depe
|
|
|
11
11
|
if (releaseContext === null) {
|
|
12
12
|
const { log } = context;
|
|
13
13
|
|
|
14
|
-
log.error(`Unable to
|
|
14
|
+
log.error(`Unable to verify the '${dependencyName}' dependency's context because it has not been created.`);
|
|
15
15
|
} else {
|
|
16
|
-
const
|
|
16
|
+
const verified = releaseContext.isVerified();
|
|
17
17
|
|
|
18
|
-
if (
|
|
19
|
-
|
|
18
|
+
if (verified) {
|
|
19
|
+
releaseContextVerified = true;
|
|
20
20
|
} else {
|
|
21
21
|
const released = releaseContext.isReleased();
|
|
22
22
|
|
|
23
23
|
if (!released && dependentReleased) {
|
|
24
24
|
const { log } = context;
|
|
25
25
|
|
|
26
|
-
log.error(`Unable to
|
|
26
|
+
log.error(`Unable to verify the '${dependencyName}' dependency's context because its '${dependentName}' dependent is a package.`);
|
|
27
27
|
} else {
|
|
28
28
|
const dependencies = releaseContext.getDependencies();
|
|
29
29
|
|
|
@@ -31,15 +31,15 @@ export default function initialiseReleaseContext(dependency, dependentName, depe
|
|
|
31
31
|
|
|
32
32
|
dependentReleased = released; ///
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
const
|
|
34
|
+
releaseContextVerified = dependencies.everyDependency((dependency) => { ///
|
|
35
|
+
const releaseContextVerified = verifyReleaseContext(dependency, dependentName, dependentReleased, context);
|
|
36
36
|
|
|
37
|
-
if (
|
|
37
|
+
if (releaseContextVerified) {
|
|
38
38
|
return true;
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
if (
|
|
42
|
+
if (releaseContextVerified) {
|
|
43
43
|
const releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
44
44
|
|
|
45
45
|
releaseContext.verify(releaseContexts);
|
|
@@ -48,7 +48,7 @@ export default function initialiseReleaseContext(dependency, dependentName, depe
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
return
|
|
51
|
+
return releaseContextVerified;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
@@ -6,8 +6,8 @@ import TermForVariableSubstitution from "./termForVariable";
|
|
|
6
6
|
import unifyStatementAgainstStatement from "../unify/statementAtainstStatement";
|
|
7
7
|
|
|
8
8
|
import { nodeQuery } from "../utilities/query";
|
|
9
|
-
import { bracketedStatementChildNodeFromStatementNode } from "../utilities/match";
|
|
10
9
|
import { statementNodeFromStatementString, metavariableNodeFromMetavariableString } from "../utilities/node";
|
|
10
|
+
import { matchStatementModuloBrackets, bracketedStatementChildNodeFromStatementNode } from "../utilities/match";
|
|
11
11
|
|
|
12
12
|
const metavariableNodeQuery = nodeQuery("/statement/metavariable!");
|
|
13
13
|
|
|
@@ -38,6 +38,21 @@ export default class StatementForMetavariableSubstitution extends Substitution {
|
|
|
38
38
|
return node;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
matchStatementNode(statementNode) {
|
|
42
|
+
const statementNodeA = statementNode, ///
|
|
43
|
+
statementNodeB = this.statementNode, ///
|
|
44
|
+
statementNodesMatch = matchStatementModuloBrackets(statementNodeA, statementNodeB),
|
|
45
|
+
statementNodeMatches = statementNodesMatch; ///
|
|
46
|
+
|
|
47
|
+
return statementNodeMatches;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
matchMetavariableNode(metavariableNode) {
|
|
51
|
+
const metavariableNodeMatches = this.metavariableNode.match(metavariableNode);
|
|
52
|
+
|
|
53
|
+
return metavariableNodeMatches;
|
|
54
|
+
}
|
|
55
|
+
|
|
41
56
|
unifyStatement(statementNode, substitutions, localContextA, localContextB) {
|
|
42
57
|
let statementNodeMatches;
|
|
43
58
|
|
|
@@ -60,12 +75,6 @@ export default class StatementForMetavariableSubstitution extends Substitution {
|
|
|
60
75
|
return statementNodeMatches;
|
|
61
76
|
}
|
|
62
77
|
|
|
63
|
-
matchMetavariableNode(metavariableNode) {
|
|
64
|
-
const matchesMetavariableNode = this.metavariableNode.match(metavariableNode);
|
|
65
|
-
|
|
66
|
-
return matchesMetavariableNode;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
78
|
unifyAgainstEquivalence(equivalence, substitutions, localContextA, localContextB) {
|
|
70
79
|
let unifiedAgainstEquivalence = false; ///
|
|
71
80
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import shim from "../shim";
|
|
4
|
+
import Unifier from "../unifier";
|
|
5
|
+
import unifyVariableAgainstTerm from "../unify/variableAgainstTerm";
|
|
6
|
+
|
|
7
|
+
import { nodeQuery } from "../utilities/query";
|
|
8
|
+
|
|
9
|
+
const termNodeQuery = nodeQuery("/term!"),
|
|
10
|
+
termVariableNodeQuery = nodeQuery("/term/variable!");
|
|
11
|
+
|
|
12
|
+
class IntrinsicLevelUnifier extends Unifier {
|
|
13
|
+
unify(nodeA, nodeB, substitutions, localContextA, localContextB) {
|
|
14
|
+
let unified;
|
|
15
|
+
|
|
16
|
+
const nonTerminalNodeA = nodeA, ///
|
|
17
|
+
nonTerminalNodeB = nodeB, ///
|
|
18
|
+
nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB);
|
|
19
|
+
|
|
20
|
+
unified = nonTerminalNodeUnified; ///
|
|
21
|
+
|
|
22
|
+
return unified;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static maps = [
|
|
26
|
+
{
|
|
27
|
+
nodeQueryA: termVariableNodeQuery,
|
|
28
|
+
nodeQueryB: termNodeQuery,
|
|
29
|
+
unify: (termVariableNodeA, termNodeB, substitutions, localContextA, localContextB) => {
|
|
30
|
+
const variableNodeA = termVariableNodeA, ///
|
|
31
|
+
variableUnifiedAgainstTerm = unifyVariableAgainstTerm(variableNodeA, termNodeB, substitutions, localContextA, localContextB);
|
|
32
|
+
|
|
33
|
+
return variableUnifiedAgainstTerm;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const intrinsicLevelUnifier = new IntrinsicLevelUnifier();
|
|
40
|
+
|
|
41
|
+
Object.assign(shim, {
|
|
42
|
+
intrinsicLevelUnifier
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export default intrinsicLevelUnifier;
|
package/src/verify/premise.js
CHANGED
|
@@ -17,24 +17,27 @@ export default function verifyPremise(premiseNode, premises, localContext) {
|
|
|
17
17
|
|
|
18
18
|
localContext.trace(`Verifying the '${premiseString}' premise...`, premiseNode);
|
|
19
19
|
|
|
20
|
-
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode)
|
|
21
|
-
derived = false,
|
|
22
|
-
assignments = [],
|
|
23
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
20
|
+
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(premiseNode);
|
|
24
21
|
|
|
25
|
-
if (
|
|
26
|
-
const
|
|
22
|
+
if (unqualifiedStatementNode !== null) {
|
|
23
|
+
const derived = false,
|
|
24
|
+
assignments = [],
|
|
25
|
+
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
27
26
|
|
|
28
|
-
if (
|
|
29
|
-
const
|
|
30
|
-
metaproofStep = ProofStep.fromStatementNode(statementNode),
|
|
31
|
-
premise = Premise.fromStatementNode(statementNode);
|
|
27
|
+
if (unqualifiedStatementVerified) {
|
|
28
|
+
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
32
29
|
|
|
33
|
-
|
|
30
|
+
if (assignmentAssigned) {
|
|
31
|
+
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
|
32
|
+
metaproofStep = ProofStep.fromStatementNode(statementNode),
|
|
33
|
+
premise = Premise.fromStatementNode(statementNode);
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
premises.push(premise);
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
localContext.addProofStep(metaproofStep);
|
|
38
|
+
|
|
39
|
+
premiseVerified = true;
|
|
40
|
+
}
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
|
|
@@ -17,26 +17,31 @@ export default function verifySupposition(suppositionNode, suppositions, localCo
|
|
|
17
17
|
|
|
18
18
|
localContext.trace(`Verifying the '${suppositionString}' supposition...`, suppositionNode);
|
|
19
19
|
|
|
20
|
-
const
|
|
21
|
-
assignments = [],
|
|
22
|
-
unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode),
|
|
23
|
-
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
20
|
+
const unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode);
|
|
24
21
|
|
|
25
|
-
if (
|
|
26
|
-
const
|
|
22
|
+
if (unqualifiedStatementNode !== null) {
|
|
23
|
+
const derived = false,
|
|
24
|
+
assignments = [],
|
|
25
|
+
unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assignments, derived, localContext);
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
if (unqualifiedStatementVerified) {
|
|
28
|
+
const assignmentAssigned = assignAssignment(assignments, localContext);
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
if (assignmentAssigned) {
|
|
31
|
+
const statementNode = statementNodeQuery(unqualifiedStatementNode),
|
|
32
|
+
supposition = Supposition.fromStatementNode(statementNode),
|
|
33
|
+
proofStep = ProofStep.fromStatementNode(statementNode);
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
suppositions.push(supposition);
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
localContext.addProofStep(proofStep);
|
|
39
38
|
|
|
39
|
+
suppositionVerified = true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (suppositionVerified) {
|
|
40
45
|
localContext.debug(`...verified the '${suppositionString}' supposition.`, suppositionNode);
|
|
41
46
|
}
|
|
42
47
|
|