occam-verify-cli 1.0.879 → 1.0.884
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/branching.js +3 -3
- package/lib/context/synoptic.js +1 -7
- package/lib/element/assumption/metaLevel.js +7 -3
- package/lib/element/equivalence.js +7 -7
- package/lib/element/signature.js +5 -5
- package/lib/element/statement.js +9 -5
- package/lib/element/substitution/term.js +3 -3
- package/lib/element/term.js +5 -1
- package/lib/process/assign.js +8 -37
- package/lib/utilities/assignment.js +31 -0
- package/lib/utilities/equivalences.js +3 -3
- package/lib/utilities/synoptic.js +3 -3
- package/package.json +1 -1
- package/src/context/branching.js +2 -2
- package/src/context/synoptic.js +0 -8
- package/src/element/assumption/metaLevel.js +10 -4
- package/src/element/equivalence.js +6 -6
- package/src/element/signature.js +4 -4
- package/src/element/statement.js +13 -7
- package/src/element/substitution/term.js +4 -4
- package/src/element/term.js +8 -0
- package/src/process/assign.js +6 -56
- package/src/utilities/assignment.js +31 -0
- package/src/utilities/equivalences.js +2 -2
- package/src/utilities/synoptic.js +2 -2
|
@@ -44,8 +44,8 @@ const _necessary = require("necessary");
|
|
|
44
44
|
const { compress } = _necessary.arrayUtilities;
|
|
45
45
|
function compressTerms(terms) {
|
|
46
46
|
compress(terms, (termA, termB)=>{
|
|
47
|
-
const
|
|
48
|
-
if (!
|
|
47
|
+
const termAEqualToTermB = termA.isEqualTo(termB);
|
|
48
|
+
if (!termAEqualToTermB) {
|
|
49
49
|
return true;
|
|
50
50
|
}
|
|
51
51
|
});
|
|
@@ -123,4 +123,4 @@ function compressSubstitutions(substitutions) {
|
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3lub3B0aWMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGNvbXByZXNzIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzVGVybXModGVybXMpIHtcbiAgY29tcHJlc3ModGVybXMsICh0ZXJtQSwgdGVybUIpID0+
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3lub3B0aWMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGNvbXByZXNzIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzVGVybXModGVybXMpIHtcbiAgY29tcHJlc3ModGVybXMsICh0ZXJtQSwgdGVybUIpID0+IHtcbiAgICBjb25zdCB0ZXJtQUVxdWFsVG9UZXJtQiA9IHRlcm1BLmlzRXF1YWxUbyh0ZXJtQik7XG5cbiAgICBpZiAoIXRlcm1BRXF1YWxUb1Rlcm1CKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHJlc3NGcmFtZXMoZnJhbWVzKSB7XG4gIGNvbXByZXNzKGZyYW1lcywgKGZyYW1lQSwgZnJhbWVCKSA9PiB7XG4gICAgY29uc3QgZnJhbWVBRXF1YWxUb0ZyYW1lQiA9IGZyYW1lQS5pc0VxdWFsVG8oZnJhbWVCKTtcblxuICAgIGlmICghZnJhbWVBRXF1YWxUb0ZyYW1lQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzRXF1YWxpdGllcyhlcXVhbGl0aWVzKSB7XG4gIGNvbXByZXNzKGVxdWFsaXRpZXMsIChlcXVhbGl0eUEsIGVxdWFsaXR5QikgPT4ge1xuICAgIGNvbnN0IGVxdWFsaXR5QUVxdWFsVG9FcXVhbGl0eUIgPSBlcXVhbGl0eUEuaXNFcXVhbFRvKGVxdWFsaXR5Qik7XG5cbiAgICBpZiAoIWVxdWFsaXR5QUVxdWFsVG9FcXVhbGl0eUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc0p1ZGdlbWVudHMoanVkZ2VtZW50cykge1xuICBjb21wcmVzcyhqdWRnZW1lbnRzLCAoanVkZ2VtZW50QSwganVkZ2VtZW50QikgPT4ge1xuICAgIGNvbnN0IGp1ZGdlbWVudEFFcXVhbFRvSnVkZ2VtZW50QiA9IGp1ZGdlbWVudEEuaXNFcXVhbFRvKGp1ZGdlbWVudEIpO1xuXG4gICAgaWYgKCFqdWRnZW1lbnRBRXF1YWxUb0p1ZGdlbWVudEIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc0Fzc2VydGlvbnMoYXNzZXJ0aW9ucykge1xuICBjb21wcmVzcyhhc3NlcnRpb25zLCAoYXNzZXJ0aW9uQSwgYXNzZXJ0aW9uQikgPT4ge1xuICAgIGNvbnN0IGFzc2VydGlvbkFFcXVhbFRvQXNzZXJ0aW9uQiA9IGFzc2VydGlvbkEuaXNFcXVhbFRvKGFzc2VydGlvbkIpO1xuXG4gICAgaWYgKCFhc3NlcnRpb25BRXF1YWxUb0Fzc2VydGlvbkIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc1N0YXRlbWVudHMoc3RhdGVtZW50cykge1xuICBjb21wcmVzcyhzdGF0ZW1lbnRzLCAoc3RhdGVtZW50QSwgc3RhdGVtZW50QikgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudEFFcXVhbFRvU3RhdGVtZW50QiA9IHN0YXRlbWVudEEuaXNFcXVhbFRvKHN0YXRlbWVudEIpO1xuXG4gICAgaWYgKCFzdGF0ZW1lbnRBRXF1YWxUb1N0YXRlbWVudEIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc1JlZmVyZW5jZXMocmVmZXJlbmNlcykge1xuICBjb21wcmVzcyhyZWZlcmVuY2VzLCAocmVmZXJlbmNlQSwgcmVmZXJlbmNlQikgPT4ge1xuICAgIGNvbnN0IHJlZmVyZW5jZUFFcXVhbFRvUmVmZXJlbmNlQiA9IHJlZmVyZW5jZUEuaXNFcXVhbFRvKHJlZmVyZW5jZUIpO1xuXG4gICAgaWYgKCFyZWZlcmVuY2VBRXF1YWxUb1JlZmVyZW5jZUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc0Fzc3VtcHRpb25zKGFzc3VtcHRpb25zKSB7XG4gIGNvbXByZXNzKGFzc3VtcHRpb25zLCAoYXNzdW1wdGlvbkEsIGFzc3VtcHRpb25CKSA9PiB7XG4gICAgY29uc3QgYXNzdW1wdGlvbkFFcXVhbFRvQXNzdW1wdGlvbkIgPSBhc3N1bXB0aW9uQS5pc0VxdWFsVG8oYXNzdW1wdGlvbkIpO1xuXG4gICAgaWYgKCFhc3N1bXB0aW9uQUVxdWFsVG9Bc3N1bXB0aW9uQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzTWV0YXZhcmlhYmxlcyhtZXRhdmFyaWFibGVzKSB7XG4gIGNvbXByZXNzKG1ldGF2YXJpYWJsZXMsIChtZXRhdmFyaWFibGVBLCBtZXRhdmFyaWFibGVCKSA9PiB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlQUVxdWFsVG9NZXRhdmFyaWFibGVCID0gbWV0YXZhcmlhYmxlQS5pc0VxdWFsVG8obWV0YXZhcmlhYmxlQik7XG5cbiAgICBpZiAoIW1ldGF2YXJpYWJsZUFFcXVhbFRvTWV0YXZhcmlhYmxlQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zKSB7XG4gIGNvbXByZXNzKHN1YnN0aXR1dGlvbnMsIChzdWJzdGl0dXRpb25BLCBzdWJzdGl0dXRpb25CKSA9PiB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uQUVxdWFsVG9TdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uQS5pc0VxdWFsVG8oc3Vic3RpdHV0aW9uQik7XG5cbiAgICBpZiAoIXN1YnN0aXR1dGlvbkFFcXVhbFRvU3Vic3RpdHV0aW9uQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn0iXSwibmFtZXMiOlsiY29tcHJlc3NBc3NlcnRpb25zIiwiY29tcHJlc3NBc3N1bXB0aW9ucyIsImNvbXByZXNzRXF1YWxpdGllcyIsImNvbXByZXNzRnJhbWVzIiwiY29tcHJlc3NKdWRnZW1lbnRzIiwiY29tcHJlc3NNZXRhdmFyaWFibGVzIiwiY29tcHJlc3NSZWZlcmVuY2VzIiwiY29tcHJlc3NTdGF0ZW1lbnRzIiwiY29tcHJlc3NTdWJzdGl0dXRpb25zIiwiY29tcHJlc3NUZXJtcyIsImNvbXByZXNzIiwiYXJyYXlVdGlsaXRpZXMiLCJ0ZXJtcyIsInRlcm1BIiwidGVybUIiLCJ0ZXJtQUVxdWFsVG9UZXJtQiIsImlzRXF1YWxUbyIsImZyYW1lcyIsImZyYW1lQSIsImZyYW1lQiIsImZyYW1lQUVxdWFsVG9GcmFtZUIiLCJlcXVhbGl0aWVzIiwiZXF1YWxpdHlBIiwiZXF1YWxpdHlCIiwiZXF1YWxpdHlBRXF1YWxUb0VxdWFsaXR5QiIsImp1ZGdlbWVudHMiLCJqdWRnZW1lbnRBIiwianVkZ2VtZW50QiIsImp1ZGdlbWVudEFFcXVhbFRvSnVkZ2VtZW50QiIsImFzc2VydGlvbnMiLCJhc3NlcnRpb25BIiwiYXNzZXJ0aW9uQiIsImFzc2VydGlvbkFFcXVhbFRvQXNzZXJ0aW9uQiIsInN0YXRlbWVudHMiLCJzdGF0ZW1lbnRBIiwic3RhdGVtZW50QiIsInN0YXRlbWVudEFFcXVhbFRvU3RhdGVtZW50QiIsInJlZmVyZW5jZXMiLCJyZWZlcmVuY2VBIiwicmVmZXJlbmNlQiIsInJlZmVyZW5jZUFFcXVhbFRvUmVmZXJlbmNlQiIsImFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbkEiLCJhc3N1bXB0aW9uQiIsImFzc3VtcHRpb25BRXF1YWxUb0Fzc3VtcHRpb25CIiwibWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZUEiLCJtZXRhdmFyaWFibGVCIiwibWV0YXZhcmlhYmxlQUVxdWFsVG9NZXRhdmFyaWFibGVCIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbkEiLCJzdWJzdGl0dXRpb25CIiwic3Vic3RpdHV0aW9uQUVxdWFsVG9TdWJzdGl0dXRpb25CIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE4Q2dCQTtlQUFBQTs7UUE4QkFDO2VBQUFBOztRQWxEQUM7ZUFBQUE7O1FBVkFDO2VBQUFBOztRQW9CQUM7ZUFBQUE7O1FBa0RBQztlQUFBQTs7UUFwQkFDO2VBQUFBOztRQVZBQztlQUFBQTs7UUF3Q0FDO2VBQUFBOztRQTFGQUM7ZUFBQUE7OzsyQkFKZTtBQUUvQixNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyx5QkFBYztBQUU1QixTQUFTRixjQUFjRyxLQUFLO0lBQ2pDRixTQUFTRSxPQUFPLENBQUNDLE9BQU9DO1FBQ3RCLE1BQU1DLG9CQUFvQkYsTUFBTUcsU0FBUyxDQUFDRjtRQUUxQyxJQUFJLENBQUNDLG1CQUFtQjtZQUN0QixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU1osZUFBZWMsTUFBTTtJQUNuQ1AsU0FBU08sUUFBUSxDQUFDQyxRQUFRQztRQUN4QixNQUFNQyxzQkFBc0JGLE9BQU9GLFNBQVMsQ0FBQ0c7UUFFN0MsSUFBSSxDQUFDQyxxQkFBcUI7WUFDeEIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVPLFNBQVNsQixtQkFBbUJtQixVQUFVO0lBQzNDWCxTQUFTVyxZQUFZLENBQUNDLFdBQVdDO1FBQy9CLE1BQU1DLDRCQUE0QkYsVUFBVU4sU0FBUyxDQUFDTztRQUV0RCxJQUFJLENBQUNDLDJCQUEyQjtZQUM5QixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU3BCLG1CQUFtQnFCLFVBQVU7SUFDM0NmLFNBQVNlLFlBQVksQ0FBQ0MsWUFBWUM7UUFDaEMsTUFBTUMsOEJBQThCRixXQUFXVixTQUFTLENBQUNXO1FBRXpELElBQUksQ0FBQ0MsNkJBQTZCO1lBQ2hDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTNUIsbUJBQW1CNkIsVUFBVTtJQUMzQ25CLFNBQVNtQixZQUFZLENBQUNDLFlBQVlDO1FBQ2hDLE1BQU1DLDhCQUE4QkYsV0FBV2QsU0FBUyxDQUFDZTtRQUV6RCxJQUFJLENBQUNDLDZCQUE2QjtZQUNoQyxPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU3pCLG1CQUFtQjBCLFVBQVU7SUFDM0N2QixTQUFTdUIsWUFBWSxDQUFDQyxZQUFZQztRQUNoQyxNQUFNQyw4QkFBOEJGLFdBQVdsQixTQUFTLENBQUNtQjtRQUV6RCxJQUFJLENBQUNDLDZCQUE2QjtZQUNoQyxPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBUzlCLG1CQUFtQitCLFVBQVU7SUFDM0MzQixTQUFTMkIsWUFBWSxDQUFDQyxZQUFZQztRQUNoQyxNQUFNQyw4QkFBOEJGLFdBQVd0QixTQUFTLENBQUN1QjtRQUV6RCxJQUFJLENBQUNDLDZCQUE2QjtZQUNoQyxPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU3ZDLG9CQUFvQndDLFdBQVc7SUFDN0MvQixTQUFTK0IsYUFBYSxDQUFDQyxhQUFhQztRQUNsQyxNQUFNQyxnQ0FBZ0NGLFlBQVkxQixTQUFTLENBQUMyQjtRQUU1RCxJQUFJLENBQUNDLCtCQUErQjtZQUNsQyxPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU3ZDLHNCQUFzQndDLGFBQWE7SUFDakRuQyxTQUFTbUMsZUFBZSxDQUFDQyxlQUFlQztRQUN0QyxNQUFNQyxvQ0FBb0NGLGNBQWM5QixTQUFTLENBQUMrQjtRQUVsRSxJQUFJLENBQUNDLG1DQUFtQztZQUN0QyxPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU3hDLHNCQUFzQnlDLGFBQWE7SUFDakR2QyxTQUFTdUMsZUFBZSxDQUFDQyxlQUFlQztRQUN0QyxNQUFNQyxvQ0FBb0NGLGNBQWNsQyxTQUFTLENBQUNtQztRQUVsRSxJQUFJLENBQUNDLG1DQUFtQztZQUN0QyxPQUFPO1FBQ1Q7SUFDRjtBQUNGIn0=
|
package/package.json
CHANGED
package/src/context/branching.js
CHANGED
|
@@ -32,9 +32,9 @@ export default class BranchingContext extends Context {
|
|
|
32
32
|
|
|
33
33
|
const termB = this.terms.find((term) => {
|
|
34
34
|
const termB = term, ///
|
|
35
|
-
|
|
35
|
+
termAEqualToTermB = termA.isEqualTo(termB);
|
|
36
36
|
|
|
37
|
-
if (
|
|
37
|
+
if (termAEqualToTermB) {
|
|
38
38
|
return true;
|
|
39
39
|
}
|
|
40
40
|
}) || null;
|
package/src/context/synoptic.js
CHANGED
|
@@ -128,14 +128,6 @@ export default class SynopticContext extends Context {
|
|
|
128
128
|
return substitutions;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
getDerivedSubstitutions(derivedSubstitutions = []) {
|
|
132
|
-
this.contexts.forEach((context) => {
|
|
133
|
-
context.getDerivedSubstitutions(derivedSubstitutions);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
return derivedSubstitutions;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
131
|
findTermByTermNode(termNode) {
|
|
140
132
|
const terms = this.getTerms(),
|
|
141
133
|
term = terms.find((term) => {
|
|
@@ -267,7 +267,7 @@ export default define(class MetaLevelAssumption extends Element {
|
|
|
267
267
|
|
|
268
268
|
context.trace(`Unifying the '${statementString}' statement with the '${metaLevelAssumptionString}' meta-level assumption's statement...`);
|
|
269
269
|
|
|
270
|
-
const generalStatement =
|
|
270
|
+
const generalStatement = this.statement, ///
|
|
271
271
|
specificStatement = stripBracketsFromStatement(statement, context); ///
|
|
272
272
|
|
|
273
273
|
statementUnifies = unifyStatement(generalStatement, specificStatement, generalContext, specificContext);
|
|
@@ -318,11 +318,17 @@ export default define(class MetaLevelAssumption extends Element {
|
|
|
318
318
|
static fromStep(step, context) {
|
|
319
319
|
let metaLevelAssumption;
|
|
320
320
|
|
|
321
|
+
let statement;
|
|
322
|
+
|
|
323
|
+
statement = step.getStatement();
|
|
324
|
+
|
|
325
|
+
statement = stripBracketsFromStatement(statement, context); ///
|
|
326
|
+
|
|
327
|
+
const reference = step.getReference();
|
|
328
|
+
|
|
321
329
|
ablate((context) => {
|
|
322
330
|
instantiate((context) => {
|
|
323
|
-
const
|
|
324
|
-
statement = step.getStatement(),
|
|
325
|
-
metaLevelAssumptionString = metaLevelAssumptionStringFromReferenceAndStatement(reference, statement),
|
|
331
|
+
const metaLevelAssumptionString = metaLevelAssumptionStringFromReferenceAndStatement(reference, statement),
|
|
326
332
|
string = metaLevelAssumptionString, ///
|
|
327
333
|
metaLevelAssumptionNode = instantiateMetaLevelAssumption(string, context);
|
|
328
334
|
|
|
@@ -160,9 +160,9 @@ export default define(class Equivalence extends Element {
|
|
|
160
160
|
const termA = term, ///
|
|
161
161
|
comparesToTerm = this.someTerm((term) => {
|
|
162
162
|
const termB = term, ///
|
|
163
|
-
|
|
163
|
+
termAEqualToTermB = termA.isEqualTo(termB);
|
|
164
164
|
|
|
165
|
-
if (
|
|
165
|
+
if (termAEqualToTermB) {
|
|
166
166
|
return true;
|
|
167
167
|
}
|
|
168
168
|
});
|
|
@@ -174,9 +174,9 @@ export default define(class Equivalence extends Element {
|
|
|
174
174
|
const termA = term, ///
|
|
175
175
|
terms = this.terms.filter((term) => {
|
|
176
176
|
const termB = term, ///
|
|
177
|
-
|
|
177
|
+
termAEqualToTermB = termA.isEqualTo(termB);
|
|
178
178
|
|
|
179
|
-
if (!
|
|
179
|
+
if (!termAEqualToTermB) {
|
|
180
180
|
return true;
|
|
181
181
|
}
|
|
182
182
|
}),
|
|
@@ -192,9 +192,9 @@ export default define(class Equivalence extends Element {
|
|
|
192
192
|
];
|
|
193
193
|
|
|
194
194
|
compress(combinedTerms, (combinedTermA, combinedTermB) => {
|
|
195
|
-
const
|
|
195
|
+
const combinedTermEqualToToCombinedTermB = combinedTermA.isEqualTo(combinedTermB);
|
|
196
196
|
|
|
197
|
-
if (!
|
|
197
|
+
if (!combinedTermEqualToToCombinedTermB) {
|
|
198
198
|
return true;
|
|
199
199
|
}
|
|
200
200
|
});
|
package/src/element/signature.js
CHANGED
|
@@ -169,9 +169,9 @@ export default define(class Signature extends Element {
|
|
|
169
169
|
const array = substitutions.getArray(),
|
|
170
170
|
compares = compare(this.terms, array, (term, substitution) => {
|
|
171
171
|
const substitutionTerm = substitution.getTerm(),
|
|
172
|
-
|
|
172
|
+
substitutionTermEqualToTerm = substitutionTerm.isEqualTo(term);
|
|
173
173
|
|
|
174
|
-
if (
|
|
174
|
+
if (substitutionTermEqualToTerm) {
|
|
175
175
|
return true;
|
|
176
176
|
}
|
|
177
177
|
});
|
|
@@ -198,9 +198,9 @@ export default define(class Signature extends Element {
|
|
|
198
198
|
const array = substitutions.getArray(),
|
|
199
199
|
correlates = correlate(this.terms, array, (term, substitution) => {
|
|
200
200
|
const substitutionTerm = substitution.getTerm(),
|
|
201
|
-
|
|
201
|
+
substitutionTermEqualToTerm = substitutionTerm.isEqualTo(term);
|
|
202
202
|
|
|
203
|
-
if (
|
|
203
|
+
if (substitutionTermEqualToTerm) {
|
|
204
204
|
return true;
|
|
205
205
|
}
|
|
206
206
|
});
|
package/src/element/statement.js
CHANGED
|
@@ -7,6 +7,7 @@ import { unifyStatement } from "../process/unify";
|
|
|
7
7
|
import { validateStatements } from "../utilities/validation";
|
|
8
8
|
import { instantiateStatement } from "../process/instantiate";
|
|
9
9
|
import { reconcile, instantiate } from "../utilities/context";
|
|
10
|
+
import {getEntryStats} from "necessary/lib/utilities/fileSystem";
|
|
10
11
|
|
|
11
12
|
export default define(class Statement extends Element {
|
|
12
13
|
getStatementNode() {
|
|
@@ -244,19 +245,16 @@ export default define(class Statement extends Element {
|
|
|
244
245
|
return subproofUnifies;
|
|
245
246
|
}
|
|
246
247
|
|
|
247
|
-
unifyDeduction(deduction,
|
|
248
|
+
unifyDeduction(deduction, generalContext, specificContext) {
|
|
248
249
|
let deductionUnifies = false;
|
|
249
250
|
|
|
250
|
-
const
|
|
251
|
+
const context = generalContext, ///
|
|
252
|
+
statementString = this.getString(), ///
|
|
251
253
|
deductionString = deduction.getString(),
|
|
252
|
-
deductionContext = deduction.getContext(),
|
|
253
254
|
deductionStatement = deduction.getStatement();
|
|
254
255
|
|
|
255
256
|
context.trace(`Unifying the '${deductionString}' deduction with the '${statementString}' statement...`);
|
|
256
257
|
|
|
257
|
-
const generalContext = context, ///
|
|
258
|
-
specificContext = deductionContext; ///
|
|
259
|
-
|
|
260
258
|
reconcile((specificContext) => {
|
|
261
259
|
const deductionStatementUnifies = this.unifyStatement(deductionStatement, generalContext, specificContext);
|
|
262
260
|
|
|
@@ -345,7 +343,15 @@ export default define(class Statement extends Element {
|
|
|
345
343
|
|
|
346
344
|
if (unconditional) {
|
|
347
345
|
const deduction = topLevelMetaAssertion.getDeduction(),
|
|
348
|
-
|
|
346
|
+
generalContext = context; ///
|
|
347
|
+
|
|
348
|
+
context = deduction.getContext();
|
|
349
|
+
|
|
350
|
+
const specificContext = context; ///
|
|
351
|
+
|
|
352
|
+
context = generalContext; ///
|
|
353
|
+
|
|
354
|
+
const deductionUnifies = this.unifyDeduction(deduction, generalContext, specificContext);
|
|
349
355
|
|
|
350
356
|
if (deductionUnifies) {
|
|
351
357
|
topLevelAssertionUnifies = true;
|
|
@@ -49,8 +49,8 @@ export default define(class TermSubstitution extends Substitution {
|
|
|
49
49
|
getVariableNode() { return this.targetTerm.getVariableNode(); }
|
|
50
50
|
|
|
51
51
|
isTrivial() {
|
|
52
|
-
const
|
|
53
|
-
trivial =
|
|
52
|
+
const targetTermEqualToReplacementTerm = this.targetTerm.isEqualTo(this.replacementTerm),
|
|
53
|
+
trivial = targetTermEqualToReplacementTerm; ///
|
|
54
54
|
|
|
55
55
|
return trivial;
|
|
56
56
|
}
|
|
@@ -60,8 +60,8 @@ export default define(class TermSubstitution extends Substitution {
|
|
|
60
60
|
compareTerm(term, context) {
|
|
61
61
|
term = stripBracketsFromTerm(term, context); ///
|
|
62
62
|
|
|
63
|
-
const
|
|
64
|
-
comparedToTerm =
|
|
63
|
+
const replacementTermEqualToTerm = this.replacementTerm.isEqualTo(term),
|
|
64
|
+
comparedToTerm = replacementTermEqualToTerm; ///
|
|
65
65
|
|
|
66
66
|
return comparedToTerm;
|
|
67
67
|
}
|
package/src/element/term.js
CHANGED
|
@@ -48,6 +48,14 @@ export default define(class Term extends Element {
|
|
|
48
48
|
return variableIdentifier;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
isEqualTo(term) {
|
|
52
|
+
const termNode = term.getNode(),
|
|
53
|
+
termNodeMatches = this.matchTermNode(termNode),
|
|
54
|
+
equalTo = termNodeMatches; ///
|
|
55
|
+
|
|
56
|
+
return equalTo;
|
|
57
|
+
}
|
|
58
|
+
|
|
51
59
|
isGrounded(definedVariables, context) {
|
|
52
60
|
const term = this, ///
|
|
53
61
|
variables = variablesFromTerm(term, context);
|
package/src/process/assign.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { variableAssignmentFromTermAndType } from "../utilities/assignment";
|
|
4
4
|
|
|
5
5
|
export function equalityAssignmentFromEquality(equality, context) {
|
|
6
6
|
const equalityAssignment = (context) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return equalityAdded;
|
|
7
|
+
context.addEquality(equality);
|
|
10
8
|
};
|
|
11
9
|
|
|
12
10
|
return equalityAssignment;
|
|
@@ -14,10 +12,9 @@ export function equalityAssignmentFromEquality(equality, context) {
|
|
|
14
12
|
|
|
15
13
|
export function judgementAssignmentFromJudgement(judgement, context) {
|
|
16
14
|
const judgementAssignment = (context) => {
|
|
17
|
-
const declaredJudgement = judgement
|
|
18
|
-
declaredJudgementAdded = context.addDeclaredJudgement(declaredJudgement);
|
|
15
|
+
const declaredJudgement = judgement; ///
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
context.addDeclaredJudgement(declaredJudgement);
|
|
21
18
|
};
|
|
22
19
|
|
|
23
20
|
return judgementAssignment;
|
|
@@ -40,18 +37,9 @@ export function rightVariableAssignmentFromEquality(equality, context) {
|
|
|
40
37
|
}
|
|
41
38
|
|
|
42
39
|
export function variableAssignmentFromTypeAssertion(typeAssertion, context) {
|
|
43
|
-
let variableAssignment = (context) => {
|
|
44
|
-
///
|
|
45
|
-
};
|
|
46
|
-
|
|
47
40
|
const term = typeAssertion.getTerm(),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (termSingular) {
|
|
51
|
-
const type = typeAssertion.getType();
|
|
52
|
-
|
|
53
|
-
variableAssignment = variableAssignmentFromTermAndType(term, type, context);
|
|
54
|
-
}
|
|
41
|
+
type = typeAssertion.getType(),
|
|
42
|
+
variableAssignment = variableAssignmentFromTermAndType(term, type, context);
|
|
55
43
|
|
|
56
44
|
return variableAssignment;
|
|
57
45
|
}
|
|
@@ -77,41 +65,3 @@ export function variableAssignmentFromPrepertyAssertion(propertyAssertion, conte
|
|
|
77
65
|
// const variableAssignment = variableAssignmentFromVariable(variable),
|
|
78
66
|
|
|
79
67
|
}
|
|
80
|
-
|
|
81
|
-
function variableAssignmentFromTermAndType(term, type, context) {
|
|
82
|
-
let variableAssignment = (context) => {
|
|
83
|
-
///
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
const termSingular = term.isSingular();
|
|
87
|
-
|
|
88
|
-
if (termSingular) {
|
|
89
|
-
const termType = term.getType(),
|
|
90
|
-
termTypeEqualToType = termType.isEqualTo(type);
|
|
91
|
-
|
|
92
|
-
if (!termTypeEqualToType) {
|
|
93
|
-
const variableNode = term.getVariableNode(),
|
|
94
|
-
variable = variableFromVariableNode(variableNode, context);
|
|
95
|
-
|
|
96
|
-
variable.setType(type);
|
|
97
|
-
|
|
98
|
-
variableAssignment = (context) => {
|
|
99
|
-
const declaredVariable = variable; ///
|
|
100
|
-
|
|
101
|
-
context.addDeclaredVariable(declaredVariable);
|
|
102
|
-
|
|
103
|
-
const declaredVariableTypeString = declaredVariable.getTypeString(),
|
|
104
|
-
declaredVariableString = declaredVariable.getString(),
|
|
105
|
-
assigned = true; ///
|
|
106
|
-
|
|
107
|
-
assigned ?
|
|
108
|
-
context.trace(`Assigned the '${declaredVariableString}' declared variable with type '${declaredVariableTypeString}'.`) :
|
|
109
|
-
context.debug(`Unable to assign the '${declaredVariableString}' declared variable with type '${declaredVariableTypeString}'.`);
|
|
110
|
-
|
|
111
|
-
return assigned;
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return variableAssignment;
|
|
117
|
-
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { variableFromVariableNode } from "../utilities/element";
|
|
4
|
+
|
|
5
|
+
export function variableAssignmentFromTermAndType(term, type, context) {
|
|
6
|
+
let variableAssignment = (context) => {
|
|
7
|
+
///
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const termSingular = term.isSingular();
|
|
11
|
+
|
|
12
|
+
if (termSingular) {
|
|
13
|
+
const termType = term.getType(),
|
|
14
|
+
termTypeEqualToType = termType.isEqualTo(type);
|
|
15
|
+
|
|
16
|
+
if (!termTypeEqualToType) {
|
|
17
|
+
const variableNode = term.getVariableNode(),
|
|
18
|
+
variable = variableFromVariableNode(variableNode, context);
|
|
19
|
+
|
|
20
|
+
variable.setType(type);
|
|
21
|
+
|
|
22
|
+
variableAssignment = (context) => {
|
|
23
|
+
const declaredVariable = variable; ///
|
|
24
|
+
|
|
25
|
+
context.addDeclaredVariable(declaredVariable);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return variableAssignment;
|
|
31
|
+
}
|
|
@@ -22,9 +22,9 @@ export function mergeEquivalences(equivalencesA, equivalencesB, context) {
|
|
|
22
22
|
|
|
23
23
|
export function findEquivalenceByTerm(equivalences, term) {
|
|
24
24
|
const equivalence = equivalences.find((equivalence) => {
|
|
25
|
-
const
|
|
25
|
+
const equivalenceEqualToTerm = equivalence.isEqualTo(term);
|
|
26
26
|
|
|
27
|
-
if (
|
|
27
|
+
if (equivalenceEqualToTerm) {
|
|
28
28
|
return true;
|
|
29
29
|
}
|
|
30
30
|
}) || null;
|
|
@@ -6,9 +6,9 @@ const { compress } = arrayUtilities;
|
|
|
6
6
|
|
|
7
7
|
export function compressTerms(terms) {
|
|
8
8
|
compress(terms, (termA, termB) => {
|
|
9
|
-
const
|
|
9
|
+
const termAEqualToTermB = termA.isEqualTo(termB);
|
|
10
10
|
|
|
11
|
-
if (!
|
|
11
|
+
if (!termAEqualToTermB) {
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
});
|