occam-verify-cli 0.0.545 → 0.0.547
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 +1 -5
- package/lib/axiomLemmaTheoremConjecture.js +10 -6
- package/lib/combinator.js +7 -7
- package/lib/conclusion.js +7 -7
- package/lib/consequence.js +7 -7
- package/lib/constructor.js +8 -8
- package/lib/context/proof.js +39 -1
- package/lib/context/release.js +8 -10
- package/lib/label.js +8 -8
- package/lib/supposition.js +7 -7
- package/lib/type.js +10 -8
- package/lib/verifier/termForVariable.js +5 -5
- package/lib/verify/metastatement/unqualified.js +3 -3
- package/lib/verify/metastatement.js +2 -2
- package/lib/verify/premise.js +2 -2
- package/lib/verify/rule.js +2 -2
- package/lib/verify/ruleProof.js +2 -2
- package/lib/verify/supposition.js +2 -2
- package/package.json +3 -3
- package/src/axiomLemmaTheoremConjecture.js +13 -5
- package/src/combinator.js +6 -6
- package/src/conclusion.js +6 -6
- package/src/consequence.js +9 -9
- package/src/constructor.js +6 -6
- package/src/context/proof.js +49 -0
- package/src/context/release.js +8 -12
- package/src/label.js +7 -7
- package/src/supposition.js +6 -6
- package/src/type.js +13 -11
- package/src/verifier/termForVariable.js +4 -4
- package/src/verify/metastatement/unqualified.js +2 -2
- package/src/verify/metastatement.js +1 -1
- package/src/verify/premise.js +1 -2
- package/src/verify/rule.js +1 -1
- package/src/verify/ruleProof.js +1 -1
- package/src/verify/supposition.js +1 -1
package/lib/verify/rule.js
CHANGED
|
@@ -40,7 +40,7 @@ function verifyRule(ruleNode, fileContext) {
|
|
|
40
40
|
var ruleProofNode = ruleProofNodeQuery(ruleNode), firstConclusion = (0, _array.first)(conclusions), conclusion = firstConclusion; ///
|
|
41
41
|
var ruleProofVerified = true; ///
|
|
42
42
|
if (ruleProofNode !== null) {
|
|
43
|
-
ruleProofVerified = (0, _ruleProof.default)(ruleProofNode, conclusion, metaProofContext);
|
|
43
|
+
ruleProofVerified = (0, _ruleProof.default)(ruleProofNode, conclusion, assignments, metaProofContext);
|
|
44
44
|
}
|
|
45
45
|
if (ruleProofVerified) {
|
|
46
46
|
var rule = _rule.default.fromLabelsPremisesConclusionAndFileContext(labels, premises, conclusion, fileContext);
|
|
@@ -56,4 +56,4 @@ function verifyRule(ruleNode, fileContext) {
|
|
|
56
56
|
return ruleVerified;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZVwiO1xuaW1wb3J0IHZlcmlmeVJ1bGVQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVQcm9vZlwiO1xuaW1wb3J0IE1ldGFwcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5Q29uY2x1c2lvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZS9sYWJlbFwiKSxcbiAgICAgIHByZW1pc2VzTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL3ByZW1pc2VcIiksXG4gICAgICBydWxlUHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZS9ydWxlUHJvb2YhXCIpLFxuICAgICAgY29uY2x1c2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL2NvbmNsdXNpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlKHJ1bGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcnVsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeShydWxlTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIG1ldGFQcm9vZkNvbnRleHQgPSBNZXRhcHJvb2ZDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgcnVsZS4uLmAsIHJ1bGVOb2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlc05vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHByZW1pc2VOb2Rlcy5ldmVyeSgocHJlbWlzZU5vZGUpID0+
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZVwiO1xuaW1wb3J0IHZlcmlmeVJ1bGVQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVQcm9vZlwiO1xuaW1wb3J0IE1ldGFwcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5Q29uY2x1c2lvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZS9sYWJlbFwiKSxcbiAgICAgIHByZW1pc2VzTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL3ByZW1pc2VcIiksXG4gICAgICBydWxlUHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZS9ydWxlUHJvb2YhXCIpLFxuICAgICAgY29uY2x1c2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL2NvbmNsdXNpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlKHJ1bGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcnVsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeShydWxlTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIG1ldGFQcm9vZkNvbnRleHQgPSBNZXRhcHJvb2ZDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgcnVsZS4uLmAsIHJ1bGVOb2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlc05vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHByZW1pc2VOb2Rlcy5ldmVyeSgocHJlbWlzZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZW1pc2VWZXJpZmllZCA9IHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHByZW1pc2VWZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChwcmVtaXNlc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25jbHVzaW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25WZXJpZmllZCA9IHZlcmlmeUNvbmNsdXNpb24oY29uY2x1c2lvbk5vZGUsIGNvbmNsdXNpb25zLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbmNsdXNpb25WZXJpZmllZCkge1xuICAgICAgICBjb25zdCBydWxlUHJvb2ZOb2RlID0gcnVsZVByb29mTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25jbHVzaW9uID0gZmlyc3QoY29uY2x1c2lvbnMpLFxuICAgICAgICAgICAgICBjb25jbHVzaW9uID0gZmlyc3RDb25jbHVzaW9uOyAvLy9cblxuICAgICAgICBsZXQgcnVsZVByb29mVmVyaWZpZWQgPSB0cnVlOyAvLy9cblxuICAgICAgICBpZiAocnVsZVByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJ1bGVQcm9vZlZlcmlmaWVkID0gdmVyaWZ5UnVsZVByb29mKHJ1bGVQcm9vZk5vZGUsIGNvbmNsdXNpb24sIGFzc2lnbm1lbnRzLCBtZXRhUHJvb2ZDb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChydWxlUHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHJ1bGUgPSBSdWxlLmZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dChsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5hZGRSdWxlKHJ1bGUpO1xuXG4gICAgICAgICAgcnVsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChydWxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgcnVsZS5gLCBydWxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gcnVsZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVJ1bGUiLCJsYWJlbE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicHJlbWlzZXNOb2RlUXVlcnkiLCJydWxlUHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJjb25jbHVzaW9uTm9kZVF1ZXJ5IiwicnVsZU5vZGUiLCJmaWxlQ29udGV4dCIsInJ1bGVWZXJpZmllZCIsImxhYmVsTm9kZXMiLCJsYWJlbHNTdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwibWV0YVByb29mQ29udGV4dCIsIk1ldGFwcm9vZkNvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJkZWJ1ZyIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwiZXZlcnkiLCJwcmVtaXNlTm9kZSIsInByZW1pc2VWZXJpZmllZCIsInZlcmlmeVByZW1pc2UiLCJjb25jbHVzaW9ucyIsImNvbmNsdXNpb25Ob2RlIiwiY29uY2x1c2lvblZlcmlmaWVkIiwidmVyaWZ5Q29uY2x1c2lvbiIsInJ1bGVQcm9vZk5vZGUiLCJmaXJzdENvbmNsdXNpb24iLCJmaXJzdCIsImNvbmNsdXNpb24iLCJydWxlUHJvb2ZWZXJpZmllZCIsInZlcmlmeVJ1bGVQcm9vZiIsImFzc2lnbm1lbnRzIiwicnVsZSIsIlJ1bGUiLCJmcm9tTGFiZWxzUHJlbWlzZXNDb25jbHVzaW9uQW5kRmlsZUNvbnRleHQiLCJhZGRSdWxlIiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7eURBZlA7MkRBQ1E7NERBQ0M7OERBQ0U7OERBQ0M7K0RBQ0E7cUJBRVA7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLGdCQUM3QkMsb0JBQW9CRCxJQUFBQSxpQkFBVSxFQUFDLGtCQUMvQkUscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHFCQUMvQkMsc0JBQXNCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXZCLFNBQVNMLFdBQVdPLFFBQVEsRUFBRUMsV0FBVyxFQUFFO0lBQ3hELElBQUlDLGVBQWUsS0FBSztJQUV4QixJQUFNQyxhQUFhVCxnQkFBZ0JNLFdBQzdCSSxlQUFlSCxZQUFZSSxhQUFhLENBQUNGLGFBQ3pDRyxtQkFBbUJDLGtCQUFnQixDQUFDQyxlQUFlLENBQUNQO0lBRTFEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxjQUFZSjtJQUU3RCxJQUFNVSxTQUFTLEVBQUUsRUFDWEMsaUJBQWlCQyxJQUFBQSxlQUFZLEVBQUNULFlBQVlPLFFBQVFUO0lBRXhELElBQUlVLGdCQUFnQjtRQUNsQixJQUFNRSxXQUFXLEVBQUUsRUFDYkMsZUFBZWxCLGtCQUFrQkksV0FDakNlLG1CQUFtQkQsYUFBYUUsS0FBSyxDQUFDLFNBQUNDLGFBQWdCO1lBQ3JELElBQU1DLGtCQUFrQkMsSUFBQUEsZ0JBQWEsRUFBQ0YsYUFBYUosVUFBVVA7WUFFN0QsSUFBSVksaUJBQWlCO2dCQUNuQixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7UUFFTixJQUFJSCxrQkFBa0I7WUFDcEIsSUFBTUssY0FBYyxFQUFFLEVBQ2hCQyxpQkFBaUJ0QixvQkFBb0JDLFdBQ3JDc0IscUJBQXFCQyxJQUFBQSxtQkFBZ0IsRUFBQ0YsZ0JBQWdCRCxhQUFhZDtZQUV6RSxJQUFJZ0Isb0JBQW9CO2dCQUN0QixJQUFNRSxnQkFBZ0IzQixtQkFBbUJHLFdBQ25DeUIsa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFBaUIsR0FBRztnQkFFdkMsSUFBSUcsb0JBQW9CLElBQUksRUFBRSxHQUFHO2dCQUVqQyxJQUFJSixrQkFBa0IsSUFBSSxFQUFFO29CQUMxQkksb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDTCxlQUFlRyxZQUFZRyxhQUFheEI7Z0JBQzlFLENBQUM7Z0JBRUQsSUFBSXNCLG1CQUFtQjtvQkFDckIsSUFBTUcsT0FBT0MsYUFBSSxDQUFDQywwQ0FBMEMsQ0FBQ3ZCLFFBQVFHLFVBQVVjLFlBQVkxQjtvQkFFM0ZBLFlBQVlpQyxPQUFPLENBQUNIO29CQUVwQjdCLGVBQWUsSUFBSTtnQkFDckIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGNBQWM7UUFDaEJELFlBQVlrQyxJQUFJLENBQUMsQUFBQyxpQkFBNkIsT0FBYi9CLGNBQWEsWUFBVUo7SUFDM0QsQ0FBQztJQUVELE9BQU9FO0FBQ1QifQ==
|
package/lib/verify/ruleProof.js
CHANGED
|
@@ -17,7 +17,7 @@ function _interopRequireDefault(obj) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
var ruleDerivationNodeQuery = (0, _query.nodeQuery)("/ruleProof/ruleDerivation!");
|
|
20
|
-
function verifyRuleProof(ruleProofNode, conclusion, metaproofContext) {
|
|
20
|
+
function verifyRuleProof(ruleProofNode, conclusion, assignments, metaproofContext) {
|
|
21
21
|
var ruleProofVerified = false;
|
|
22
22
|
var ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode), ruleDerivationVerified = (0, _ruleDerivation.default)(ruleDerivationNode, metaproofContext);
|
|
23
23
|
if (ruleDerivationVerified) {
|
|
@@ -27,4 +27,4 @@ function verifyRuleProof(ruleProofNode, conclusion, metaproofContext) {
|
|
|
27
27
|
return ruleProofVerified;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZVByb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbWF0Y2hlciBmcm9tIFwiLi4vbWF0Y2hlclwiO1xuaW1wb3J0IHZlcmlmeVJ1bGVEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvcnVsZURlcml2YXRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBydWxlRGVyaXZhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlUHJvb2YvcnVsZURlcml2YXRpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlUHJvb2YocnVsZVByb29mTm9kZSwgY29uY2x1c2lvbiwgYXNzaWdubWVudHMsIG1ldGFwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHJ1bGVQcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZURlcml2YXRpb25Ob2RlID0gcnVsZURlcml2YXRpb25Ob2RlUXVlcnkocnVsZVByb29mTm9kZSksXG4gICAgICAgIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIG1ldGFwcm9vZkNvbnRleHQpO1xuXG4gIGlmIChydWxlRGVyaXZhdGlvblZlcmlmaWVkKSB7XG4gICAgY29uc3QgbGFzdE1ldGFwcm9vZlN0ZXAgPSBtZXRhcHJvb2ZDb250ZXh0LmdldExhc3RNZXRhcHJvb2ZTdGVwKCksXG4gICAgICAgICAgbWV0YXByb29mU3RlcCA9IGxhc3RNZXRhcHJvb2ZTdGVwLCAvLy9cbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0TWV0YXN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUgPSBjb25jbHVzaW9uLmdldE1ldGFzdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgbm9kZUEgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIG5vZGVCID0gY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSBtYXRjaGVyLm1hdGNoTm9kZShub2RlQSwgbm9kZUIpO1xuXG4gICAgcnVsZVByb29mVmVyaWZpZWQgPSBub2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHJ1bGVQcm9vZlZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVJ1bGVQcm9vZiIsInJ1bGVEZXJpdmF0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicnVsZVByb29mTm9kZSIsImNvbmNsdXNpb24iLCJhc3NpZ25tZW50cyIsIm1ldGFwcm9vZkNvbnRleHQiLCJydWxlUHJvb2ZWZXJpZmllZCIsInJ1bGVEZXJpdmF0aW9uTm9kZSIsInJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlRGVyaXZhdGlvbiIsImxhc3RNZXRhcHJvb2ZTdGVwIiwiZ2V0TGFzdE1ldGFwcm9vZlN0ZXAiLCJtZXRhcHJvb2ZTdGVwIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsImNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJub2RlTWF0Y2hlcyIsIm1hdGNoZXIiLCJtYXRjaE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBd0JBOzs7NERBUEo7bUVBQ2E7cUJBRVA7Ozs7OztBQUUxQixJQUFNQywwQkFBMEJDLElBQUFBLGdCQUFTLEVBQUM7QUFFM0IsU0FBU0YsZ0JBQWdCRyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxFQUFFQyxnQkFBZ0IsRUFBRTtJQUNoRyxJQUFJQyxvQkFBb0IsS0FBSztJQUU3QixJQUFNQyxxQkFBcUJQLHdCQUF3QkUsZ0JBQzdDTSx5QkFBeUJDLElBQUFBLHVCQUFvQixFQUFDRixvQkFBb0JGO0lBRXhFLElBQUlHLHdCQUF3QjtRQUMxQixJQUFNRSxvQkFBb0JMLGlCQUFpQk0sb0JBQW9CLElBQ3pEQyxnQkFBZ0JGLG1CQUNoQkcsb0JBQW9CRCxjQUFjRSxvQkFBb0IsSUFDdERDLDhCQUE4QlosV0FBV1csb0JBQW9CLElBQzdERSxRQUFRSCxtQkFDUkksUUFBUUYsNkJBQ1JHLGNBQWNDLGdCQUFPLENBQUNDLFNBQVMsQ0FBQ0osT0FBT0M7UUFFN0NYLG9CQUFvQlksYUFBYyxHQUFHO0lBQ3ZDLENBQUM7SUFFRCxPQUFPWjtBQUNUIn0=
|
|
@@ -27,7 +27,7 @@ function verifySupposition(suppositionNode, suppositions, proofContext) {
|
|
|
27
27
|
var statementNode = statementNodeQuery(unqualifiedStatementNode), proofStep = _proof.default.fromStatementNode(statementNode), supposition = _supposition.default.fromStatementNode(statementNode);
|
|
28
28
|
suppositions.push(supposition);
|
|
29
29
|
proofContext.addProofStep(proofStep);
|
|
30
|
-
assignments.
|
|
30
|
+
assignments.forEach(function(assignment) {
|
|
31
31
|
assignment.assign(proofContext);
|
|
32
32
|
});
|
|
33
33
|
suppositionVerified = true;
|
|
@@ -35,4 +35,4 @@ function verifySupposition(suppositionNode, suppositions, proofContext) {
|
|
|
35
35
|
return suppositionVerified;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZlN0ZXAgZnJvbSBcIi4uL3N0ZXAvcHJvb2ZcIjtcbmltcG9ydCBTdXBwb3NpdGlvbiBmcm9tIFwiLi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi9zdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N1cHBvc2l0aW9uL3VucXVhbGlmaWVkU3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIHByb29mQ29udGV4dCkge1xuICBsZXQgc3VwcG9zaXRpb25WZXJpZmllZDtcblxuICBjb25zdCBzdXBwb3NpdGlvblN0cmluZyA9IHByb29mQ29udGV4dC5ub2RlQXNTdHJpbmcoc3VwcG9zaXRpb25Ob2RlKTtcblxuICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbi4uLmAsIHN1cHBvc2l0aW9uTm9kZSk7XG5cbiAgY29uc3QgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShzdXBwb3NpdGlvbk5vZGUpLFxuICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5VW5xdWFsaWZpZWRTdGF0ZW1lbnQodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgcHJvb2ZDb250ZXh0KTtcblxuICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIHN1cHBvc2l0aW9ucy5wdXNoKHN1cHBvc2l0aW9uKTtcblxuICAgIHByb29mQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgIGFzc2lnbm1lbnRzLmZvckVhY2goKGFzc2lnbm1lbnQpID0+IHtcbiAgICAgIGFzc2lnbm1lbnQuYXNzaWduKHByb29mQ29udGV4dCk7XG4gICAgfSk7XG5cbiAgICBzdXBwb3NpdGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdXBwb3NpdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN1cHBvc2l0aW9uIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvbnMiLCJwcm9vZkNvbnRleHQiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwic3VwcG9zaXRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlVbnF1YWxpZmllZFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJwcm9vZlN0ZXAiLCJQcm9vZlN0ZXAiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInN1cHBvc2l0aW9uIiwiU3VwcG9zaXRpb24iLCJwdXNoIiwiYWRkUHJvb2ZTdGVwIiwiZm9yRWFjaCIsImFzc2lnbm1lbnQiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEY7Z0VBQ0U7Z0VBQ2U7cUJBRWI7Ozs7OztBQUUxQixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMscUNBQy9CQyxnQ0FBZ0NELElBQUFBLGdCQUFTLEVBQUM7QUFFakMsU0FBU0Ysa0JBQWtCSSxlQUFlLEVBQUVDLFlBQVksRUFBRUMsWUFBWSxFQUFFO0lBQ3JGLElBQUlDO0lBRUosSUFBTUMsb0JBQW9CRixhQUFhRyxZQUFZLENBQUNMO0lBRXBERSxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBbUMsT0FBbEJGLG1CQUFrQixxQkFBbUJKO0lBRTFFLElBQU1PLFVBQVUsS0FBSyxFQUNmQyxjQUFjLEVBQUUsRUFDaEJDLDJCQUEyQlYsOEJBQThCQyxrQkFDekRVLCtCQUErQkMsSUFBQUEsb0JBQTBCLEVBQUNGLDBCQUEwQkQsYUFBYUQsU0FBU0w7SUFFaEgsSUFBSVEsOEJBQThCO1FBQ2hDLElBQU1FLGdCQUFnQmYsbUJBQW1CWSwyQkFDbkNJLFlBQVlDLGNBQVMsQ0FBQ0MsaUJBQWlCLENBQUNILGdCQUN4Q0ksY0FBY0Msb0JBQVcsQ0FBQ0YsaUJBQWlCLENBQUNIO1FBRWxEWCxhQUFhaUIsSUFBSSxDQUFDRjtRQUVsQmQsYUFBYWlCLFlBQVksQ0FBQ047UUFFMUJMLFlBQVlZLE9BQU8sQ0FBQyxTQUFDQyxZQUFlO1lBQ2xDQSxXQUFXQyxNQUFNLENBQUNwQjtRQUNwQjtRQUVBQyxzQkFBc0IsSUFBSTtJQUM1QixDQUFDO0lBRUQsT0FBT0E7QUFDVCJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.547",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.21",
|
|
14
14
|
"necessary": "^11.2.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.399",
|
|
16
16
|
"occam-dom": "^3.1.1",
|
|
17
|
-
"occam-file-system": "^5.0.
|
|
17
|
+
"occam-file-system": "^5.0.160",
|
|
18
18
|
"occam-grammar-utilities": "^7.0.66"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import Label from "./label";
|
|
4
4
|
import Supposition from "./supposition";
|
|
5
5
|
import Consequence from "./consequence";
|
|
6
|
+
import ProofContext from "./context/proof";
|
|
6
7
|
|
|
7
8
|
import { prune } from "./utilities/array";
|
|
8
9
|
import { someSubArray } from "./utilities/array";
|
|
@@ -90,13 +91,16 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
90
91
|
return suppositionJSON;
|
|
91
92
|
}),
|
|
92
93
|
consequenceJSON = this.consequence.toJSON(tokens),
|
|
94
|
+
proofContextJSON = this.proofContext.toJSON(tokens),
|
|
93
95
|
labels = labelsJSON, ///
|
|
94
96
|
suppositions = suppositionsJSON, ///
|
|
95
97
|
consequence = consequenceJSON, ///
|
|
98
|
+
proofContext = proofContextJSON, ///
|
|
96
99
|
json = {
|
|
97
100
|
labels,
|
|
98
101
|
suppositions,
|
|
99
|
-
consequence
|
|
102
|
+
consequence,
|
|
103
|
+
proofContext
|
|
100
104
|
};
|
|
101
105
|
|
|
102
106
|
return json;
|
|
@@ -114,7 +118,7 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
114
118
|
return label;
|
|
115
119
|
});
|
|
116
120
|
|
|
117
|
-
let { suppositions } = json;
|
|
121
|
+
let { suppositions, consequence, proofContext } = json;
|
|
118
122
|
|
|
119
123
|
const suppositionsJSON = suppositions; ///
|
|
120
124
|
|
|
@@ -125,15 +129,19 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
125
129
|
return supposition;
|
|
126
130
|
});
|
|
127
131
|
|
|
128
|
-
let { consequence } = json;
|
|
129
|
-
|
|
130
132
|
const consequenceJSON = consequence; ///
|
|
131
133
|
|
|
132
134
|
json = consequenceJSON; ///
|
|
133
135
|
|
|
134
136
|
consequence = Consequence.fromJSONAndFileContext(json, fileContext);
|
|
135
137
|
|
|
136
|
-
|
|
138
|
+
const proofContextJSON = proofContext; ///
|
|
139
|
+
|
|
140
|
+
json = proofContextJSON; ///
|
|
141
|
+
|
|
142
|
+
proofContext = ProofContext.fromJSONAndFileContext(json, fileContext);
|
|
143
|
+
|
|
144
|
+
return new Class(labels, suppositions, consequence, proofContext); ///
|
|
137
145
|
}
|
|
138
146
|
|
|
139
147
|
static fromLabelsSuppositionsConsequenceAndProofContext(Class, labels, suppositions, consequence, proofContext) { return new Class(labels, suppositions, consequence, proofContext); }
|
package/src/combinator.js
CHANGED
|
@@ -32,6 +32,12 @@ export default class Combinator {
|
|
|
32
32
|
return json;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
static fromStatementNode(statementNode) {
|
|
36
|
+
const combinator = new Combinator(statementNode);
|
|
37
|
+
|
|
38
|
+
return combinator;
|
|
39
|
+
}
|
|
40
|
+
|
|
35
41
|
static fromJSONAndFileContext(json, fileContext) {
|
|
36
42
|
const { statement } = json,
|
|
37
43
|
statementString = statement, ///
|
|
@@ -42,10 +48,4 @@ export default class Combinator {
|
|
|
42
48
|
|
|
43
49
|
return combinator;
|
|
44
50
|
}
|
|
45
|
-
|
|
46
|
-
static fromStatementNode(statementNode) {
|
|
47
|
-
const combinator = new Combinator(statementNode);
|
|
48
|
-
|
|
49
|
-
return combinator;
|
|
50
|
-
}
|
|
51
51
|
}
|
package/src/conclusion.js
CHANGED
|
@@ -46,6 +46,12 @@ export default class Conclusion {
|
|
|
46
46
|
return json;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
static fromMetastatementNode(metastatementNode) {
|
|
50
|
+
const conclusion = new Conclusion(metastatementNode);
|
|
51
|
+
|
|
52
|
+
return conclusion;
|
|
53
|
+
}
|
|
54
|
+
|
|
49
55
|
static fromJSONAndFileContext(json, fileContext) {
|
|
50
56
|
const { metastatement } = json,
|
|
51
57
|
metastatementString = metastatement, ///
|
|
@@ -56,10 +62,4 @@ export default class Conclusion {
|
|
|
56
62
|
|
|
57
63
|
return conclusion;
|
|
58
64
|
}
|
|
59
|
-
|
|
60
|
-
static fromMetastatementNode(metastatementNode) {
|
|
61
|
-
const conclusion = new Conclusion(metastatementNode);
|
|
62
|
-
|
|
63
|
-
return conclusion;
|
|
64
|
-
}
|
|
65
65
|
}
|
package/src/consequence.js
CHANGED
|
@@ -32,19 +32,19 @@ export default class Consequence {
|
|
|
32
32
|
return json;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
static
|
|
36
|
-
const
|
|
37
|
-
statementString = statement, ///
|
|
38
|
-
lexer = context.getLexer(),
|
|
39
|
-
parser = context.getParser(),
|
|
40
|
-
statementNode = statementNodeFromStatementString(statementString, lexer, parser),
|
|
41
|
-
consequence = new Consequence(statementNode);
|
|
35
|
+
static fromStatementNode(statementNode) {
|
|
36
|
+
const consequence = new Consequence(statementNode);
|
|
42
37
|
|
|
43
38
|
return consequence;
|
|
44
39
|
}
|
|
45
40
|
|
|
46
|
-
static
|
|
47
|
-
const
|
|
41
|
+
static fromJSONAndFileContext(json, fileContext) {
|
|
42
|
+
const { statement } = json,
|
|
43
|
+
statementString = statement, ///
|
|
44
|
+
lexer = fileContext.getLexer(),
|
|
45
|
+
parser = fileContext.getParser(),
|
|
46
|
+
statementNode = statementNodeFromStatementString(statementString, lexer, parser),
|
|
47
|
+
consequence = new Consequence(statementNode);
|
|
48
48
|
|
|
49
49
|
return consequence;
|
|
50
50
|
}
|
package/src/constructor.js
CHANGED
|
@@ -51,6 +51,12 @@ export default class Constructor {
|
|
|
51
51
|
return json;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
static fromTermNodeAndType(termNode, type) {
|
|
55
|
+
const constructor = new Constructor(termNode, type);
|
|
56
|
+
|
|
57
|
+
return constructor;
|
|
58
|
+
}
|
|
59
|
+
|
|
54
60
|
static fromJSONAndFileContext(json, fileContext) {
|
|
55
61
|
const { term } = json,
|
|
56
62
|
termString = term, ///
|
|
@@ -76,10 +82,4 @@ export default class Constructor {
|
|
|
76
82
|
|
|
77
83
|
return constructor;
|
|
78
84
|
}
|
|
79
|
-
|
|
80
|
-
static fromTermNodeAndType(termNode, type) {
|
|
81
|
-
const constructor = new Constructor(termNode, type);
|
|
82
|
-
|
|
83
|
-
return constructor;
|
|
84
|
-
}
|
|
85
85
|
}
|
package/src/context/proof.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Variable from "../variable";
|
|
3
4
|
import Equality from "../equality";
|
|
4
5
|
import fileMixins from "../mixins/file";
|
|
5
6
|
import loggingMixins from "../mixins/logging";
|
|
@@ -133,6 +134,21 @@ class ProofContext {
|
|
|
133
134
|
return variablePresent;
|
|
134
135
|
}
|
|
135
136
|
|
|
137
|
+
toJSON(tokens) {
|
|
138
|
+
const variables = this.variables.map((variable) => {
|
|
139
|
+
const variableJSON = variable.toJSON(tokens);
|
|
140
|
+
|
|
141
|
+
variable = variableJSON;
|
|
142
|
+
|
|
143
|
+
return variable;
|
|
144
|
+
}),
|
|
145
|
+
json = {
|
|
146
|
+
variables
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
return json;
|
|
150
|
+
}
|
|
151
|
+
|
|
136
152
|
static fromFileContext(fileContext) {
|
|
137
153
|
const context = fileContext, ///
|
|
138
154
|
variables = [],
|
|
@@ -151,6 +167,39 @@ class ProofContext {
|
|
|
151
167
|
|
|
152
168
|
return proofContext;
|
|
153
169
|
}
|
|
170
|
+
|
|
171
|
+
static fromJSONAndFileContext(json, fileContext) {
|
|
172
|
+
let { variables } = json;
|
|
173
|
+
|
|
174
|
+
const variablesJSON = variables;
|
|
175
|
+
|
|
176
|
+
variables = variablesJSON.map((variableJSON) => {
|
|
177
|
+
const json = variableJSON, ///
|
|
178
|
+
variable = Variable.fromJSONAndFileContext(json, fileContext);
|
|
179
|
+
|
|
180
|
+
return variable;
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
const context = fileContext, ///
|
|
184
|
+
proofSteps = [],
|
|
185
|
+
proofContext = new ProofContext(context, variables, proofSteps);
|
|
186
|
+
|
|
187
|
+
return proofContext;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
static fromProofContextAndAssignments(proofContext, assignments) {
|
|
191
|
+
const context = proofContext, ///
|
|
192
|
+
variables = assignments.map((assignment) => {
|
|
193
|
+
const variable = assignment.getVariable();
|
|
194
|
+
|
|
195
|
+
return variable;
|
|
196
|
+
}),
|
|
197
|
+
proofSteps = [];
|
|
198
|
+
|
|
199
|
+
proofContext = new ProofContext(context, variables, proofSteps);
|
|
200
|
+
|
|
201
|
+
return proofContext;
|
|
202
|
+
}
|
|
154
203
|
}
|
|
155
204
|
|
|
156
205
|
Object.assign(ProofContext.prototype, fileMixins);
|
package/src/context/release.js
CHANGED
|
@@ -349,27 +349,23 @@ export default class ReleaseContext {
|
|
|
349
349
|
|
|
350
350
|
this.parser = florenceParser; ///
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
this.verified = false;
|
|
352
|
+
this.dependencyReleaseContexts = dependencyReleaseContexts;
|
|
354
353
|
|
|
355
|
-
|
|
356
|
-
} else {
|
|
354
|
+
if (this.json !== null) {
|
|
357
355
|
const fileContextsJSON = this.json; ///
|
|
358
356
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
this.fileContexts = fileContextsJSON.map((fileContextJSON) => {
|
|
357
|
+
fileContextsJSON.forEach((fileContextJSON) => {
|
|
362
358
|
const json = fileContextJSON, ///
|
|
363
359
|
{ filePath } = json,
|
|
364
360
|
fileContext = FileContext.fromFilePathAndReleaseContext(filePath, releaseContext);
|
|
365
361
|
|
|
366
362
|
fileContext.initialise(json);
|
|
367
363
|
|
|
368
|
-
|
|
364
|
+
this.fileContexts.push(fileContext);
|
|
369
365
|
});
|
|
370
|
-
}
|
|
371
366
|
|
|
372
|
-
|
|
367
|
+
this.verified = true;
|
|
368
|
+
}
|
|
373
369
|
}
|
|
374
370
|
|
|
375
371
|
toJSON() {
|
|
@@ -386,9 +382,9 @@ export default class ReleaseContext {
|
|
|
386
382
|
static fromLogJSONNameAndEntries(log, json, name, entries) {
|
|
387
383
|
const lexer = null,
|
|
388
384
|
parser = null,
|
|
389
|
-
verified =
|
|
385
|
+
verified = false,
|
|
390
386
|
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
391
|
-
fileContexts =
|
|
387
|
+
fileContexts = [],
|
|
392
388
|
dependencyReleaseContexts = null,
|
|
393
389
|
releaseContext = new ReleaseContext(log, json, name, entries, lexer, parser, verified, customGrammar, fileContexts, dependencyReleaseContexts);
|
|
394
390
|
|
package/src/label.js
CHANGED
|
@@ -34,6 +34,13 @@ export default class Label {
|
|
|
34
34
|
return json;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
static fromLabelNode(labelNode) {
|
|
38
|
+
const node = labelNode, ///
|
|
39
|
+
variable = new Label(node);
|
|
40
|
+
|
|
41
|
+
return variable;
|
|
42
|
+
}
|
|
43
|
+
|
|
37
44
|
static fromJSONAndFileContext(json, fileContext) {
|
|
38
45
|
const labelString = json, ///
|
|
39
46
|
lexer = fileContext.getLexer(),
|
|
@@ -44,11 +51,4 @@ export default class Label {
|
|
|
44
51
|
|
|
45
52
|
return label;
|
|
46
53
|
}
|
|
47
|
-
|
|
48
|
-
static fromLabelNode(labelNode) {
|
|
49
|
-
const node = labelNode, ///
|
|
50
|
-
variable = new Label(node);
|
|
51
|
-
|
|
52
|
-
return variable;
|
|
53
|
-
}
|
|
54
54
|
}
|
package/src/supposition.js
CHANGED
|
@@ -75,6 +75,12 @@ export default class Supposition {
|
|
|
75
75
|
return json;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
static fromStatementNode(statementNode) {
|
|
79
|
+
const supposition = new Supposition(statementNode);
|
|
80
|
+
|
|
81
|
+
return supposition;
|
|
82
|
+
}
|
|
83
|
+
|
|
78
84
|
static fromJSONAndFileContext(json, fileContext) {
|
|
79
85
|
const { statement } = json,
|
|
80
86
|
statementString = statement, ///
|
|
@@ -85,10 +91,4 @@ export default class Supposition {
|
|
|
85
91
|
|
|
86
92
|
return supposition;
|
|
87
93
|
}
|
|
88
|
-
|
|
89
|
-
static fromStatementNode(statementNode) {
|
|
90
|
-
const supposition = new Supposition(statementNode);
|
|
91
|
-
|
|
92
|
-
return supposition;
|
|
93
|
-
}
|
|
94
94
|
}
|
package/src/type.js
CHANGED
|
@@ -186,20 +186,22 @@ class ObjectType extends Type {
|
|
|
186
186
|
export const objectType = ObjectType.fromNothing();
|
|
187
187
|
|
|
188
188
|
function superTypeFromSuperTypeJSONAndFileContext(superTypeJSON, fileContext) {
|
|
189
|
-
let superType;
|
|
189
|
+
let superType = null;
|
|
190
190
|
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
if (superTypeJSON !== null) {
|
|
192
|
+
const json = superTypeJSON, ///
|
|
193
|
+
{ name } = json;
|
|
193
194
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
if (name === OBJECT_TYPE_NAME) {
|
|
196
|
+
superType = objectType; ///
|
|
197
|
+
} else {
|
|
198
|
+
const typeName = name, ///
|
|
199
|
+
type = fileContext.findTypeByTypeName(typeName);
|
|
199
200
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
201
|
+
superType = (type !== null) ?
|
|
202
|
+
type : ///
|
|
203
|
+
Type.fromJSONAndFileContext(json, fileContext); ///
|
|
204
|
+
}
|
|
203
205
|
}
|
|
204
206
|
|
|
205
207
|
return superType;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Verifier from "../verifier";
|
|
4
|
+
import verifyTerm from "../verify/term";
|
|
4
5
|
import TermForVariableSubstitution from "../substitution/termForVariable";
|
|
5
6
|
|
|
6
7
|
import { first } from "../utilities/array";
|
|
7
8
|
import { nodeQuery } from "../utilities/query";
|
|
8
9
|
import { TERM_RULE_NAME } from "../ruleNames";
|
|
9
10
|
import { variableNameFromVariableNode } from "../utilities/query";
|
|
10
|
-
import { verifyTermAgainstConstructors } from "../verify/term";
|
|
11
11
|
|
|
12
12
|
const variableNodeQuery = nodeQuery('/term/variable!');
|
|
13
13
|
|
|
@@ -54,10 +54,10 @@ export default class TermForVariableVerifier extends Verifier {
|
|
|
54
54
|
return termNodeVerified;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
verifyVariableNode(
|
|
57
|
+
verifyVariableNode(variableNodeA, termNodeB, substitutions, proofContextA, proofContextB) {
|
|
58
58
|
let variableVerified;
|
|
59
59
|
|
|
60
|
-
const variableNameA = variableNameFromVariableNode(
|
|
60
|
+
const variableNameA = variableNameFromVariableNode(variableNodeA),
|
|
61
61
|
substitution = substitutions.find((substitution) => {
|
|
62
62
|
const variableName = substitution.getVariableName();
|
|
63
63
|
|
|
@@ -83,7 +83,7 @@ export default class TermForVariableVerifier extends Verifier {
|
|
|
83
83
|
const types = [],
|
|
84
84
|
context = proofContextB, ///
|
|
85
85
|
termNode = termNodeB, ///
|
|
86
|
-
termVerified =
|
|
86
|
+
termVerified = verifyTerm(termNode, types, context);
|
|
87
87
|
|
|
88
88
|
if (termVerified) {
|
|
89
89
|
const firstType = first(types),
|
|
@@ -6,7 +6,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
6
6
|
|
|
7
7
|
const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
|
|
8
8
|
|
|
9
|
-
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode,
|
|
9
|
+
export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, metaproofContext) {
|
|
10
10
|
let unqualifiedMetastatementVerified = false;
|
|
11
11
|
|
|
12
12
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
|
|
@@ -23,7 +23,7 @@ export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementN
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
if (!unqualifiedMetastatementVerified) {
|
|
26
|
-
const metastatementVerified = verifyMetastatement(metastatementNode,
|
|
26
|
+
const metastatementVerified = verifyMetastatement(metastatementNode, derived, metaproofContext);
|
|
27
27
|
|
|
28
28
|
unqualifiedMetastatementVerified = metastatementVerified; ///
|
|
29
29
|
}
|
|
@@ -57,7 +57,7 @@ class MetastatementVerifier extends Verifier {
|
|
|
57
57
|
|
|
58
58
|
const metastatementVerifier = new MetastatementVerifier();
|
|
59
59
|
|
|
60
|
-
export default function verifyMetastatement(metastatementNode,
|
|
60
|
+
export default function verifyMetastatement(metastatementNode, derived, metaproofContext) {
|
|
61
61
|
let metastatementVerified = false;
|
|
62
62
|
|
|
63
63
|
if (!metastatementVerified) {
|
package/src/verify/premise.js
CHANGED
|
@@ -17,9 +17,8 @@ export default function verifyPremise(premiseNode, premises, metaproofContext) {
|
|
|
17
17
|
metaproofContext.debug(`Verifying the '${premiseString}' premise...`, premiseNode);
|
|
18
18
|
|
|
19
19
|
const derived = false,
|
|
20
|
-
assignments = [],
|
|
21
20
|
unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(premiseNode),
|
|
22
|
-
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode,
|
|
21
|
+
unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, metaproofContext);
|
|
23
22
|
|
|
24
23
|
if (unqualifiedMetastatementVerified) {
|
|
25
24
|
const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
|
package/src/verify/rule.js
CHANGED
|
@@ -51,7 +51,7 @@ export default function verifyRule(ruleNode, fileContext) {
|
|
|
51
51
|
let ruleProofVerified = true; ///
|
|
52
52
|
|
|
53
53
|
if (ruleProofNode !== null) {
|
|
54
|
-
ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion, metaProofContext);
|
|
54
|
+
ruleProofVerified = verifyRuleProof(ruleProofNode, conclusion, assignments, metaProofContext);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
if (ruleProofVerified) {
|
package/src/verify/ruleProof.js
CHANGED
|
@@ -7,7 +7,7 @@ import { nodeQuery } from "../utilities/query";
|
|
|
7
7
|
|
|
8
8
|
const ruleDerivationNodeQuery = nodeQuery("/ruleProof/ruleDerivation!");
|
|
9
9
|
|
|
10
|
-
export default function verifyRuleProof(ruleProofNode, conclusion, metaproofContext) {
|
|
10
|
+
export default function verifyRuleProof(ruleProofNode, conclusion, assignments, metaproofContext) {
|
|
11
11
|
let ruleProofVerified = false;
|
|
12
12
|
|
|
13
13
|
const ruleDerivationNode = ruleDerivationNodeQuery(ruleProofNode),
|