occam-verify-cli 1.0.612 → 1.0.617
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/ephemeral.js +59 -31
- package/lib/context/file/nominal.js +45 -19
- package/lib/context/liminal.js +19 -34
- package/lib/context/scoped.js +34 -26
- package/lib/context.js +7 -7
- package/lib/element/assertion.js +5 -9
- package/lib/element/assumption.js +11 -4
- package/lib/element/combinator.js +8 -1
- package/lib/element/conclusion.js +8 -1
- package/lib/element/constructor.js +8 -1
- package/lib/element/declaration.js +3 -7
- package/lib/element/deduction.js +8 -1
- package/lib/element/derivation.js +8 -1
- package/lib/element/equality.js +8 -1
- package/lib/element/equivalence.js +8 -1
- package/lib/element/equivalences.js +8 -1
- package/lib/element/error.js +10 -7
- package/lib/element/hypothesis.js +8 -1
- package/lib/element/judgement.js +9 -2
- package/lib/element/label.js +8 -1
- package/lib/element/metaType.js +8 -1
- package/lib/element/metavariable.js +5 -8
- package/lib/element/parameter.js +8 -1
- package/lib/element/procedureCall.js +21 -29
- package/lib/element/procedureReference.js +15 -1
- package/lib/element/proof.js +8 -1
- package/lib/element/proofAssertion.js +8 -1
- package/lib/element/property.js +8 -1
- package/lib/element/propertyRelation.js +8 -1
- package/lib/element/reference.js +8 -8
- package/lib/element/rule.js +10 -7
- package/lib/element/section.js +8 -1
- package/lib/element/signature.js +8 -1
- package/lib/element/statement.js +12 -16
- package/lib/element/subDerivation.js +8 -1
- package/lib/element/subproof.js +8 -1
- package/lib/element/substitution/frame.js +3 -3
- package/lib/element/substitution/reference.js +3 -3
- package/lib/element/substitution/statement.js +3 -3
- package/lib/element/substitution/term.js +3 -3
- package/lib/element/substitution.js +3 -7
- package/lib/element/topLevelAssertion/axiom.js +8 -1
- package/lib/element/topLevelAssertion/conjecture.js +8 -1
- package/lib/element/topLevelAssertion/lemma.js +8 -1
- package/lib/element/topLevelAssertion/theorem.js +8 -1
- package/lib/element/topLevelAssertion.js +3 -7
- package/lib/element/topLevelMetaAssertion/metaLemma.js +8 -1
- package/lib/element/topLevelMetaAssertion/metatheorem.js +8 -1
- package/lib/element/type.js +8 -1
- package/lib/element/typePrefix.js +8 -1
- package/lib/element/variable.js +8 -3
- package/lib/preamble.js +1 -2
- package/lib/process/assign.js +2 -3
- package/lib/utilities/substitutions.js +2 -2
- package/package.json +2 -2
- package/src/context/ephemeral.js +64 -32
- package/src/context/file/nominal.js +82 -17
- package/src/context/liminal.js +21 -46
- package/src/context/scoped.js +47 -31
- package/src/context.js +4 -4
- package/src/element/assertion.js +4 -8
- package/src/element/assumption.js +9 -2
- package/src/element/combinator.js +7 -0
- package/src/element/conclusion.js +7 -0
- package/src/element/constructor.js +7 -0
- package/src/element/declaration.js +1 -3
- package/src/element/deduction.js +7 -0
- package/src/element/derivation.js +7 -0
- package/src/element/equality.js +7 -0
- package/src/element/equivalence.js +8 -0
- package/src/element/equivalences.js +7 -0
- package/src/element/error.js +5 -2
- package/src/element/hypothesis.js +7 -0
- package/src/element/judgement.js +8 -2
- package/src/element/label.js +7 -0
- package/src/element/metaType.js +7 -0
- package/src/element/metavariable.js +4 -11
- package/src/element/parameter.js +7 -0
- package/src/element/procedureCall.js +21 -14
- package/src/element/procedureReference.js +13 -0
- package/src/element/proof.js +7 -0
- package/src/element/proofAssertion.js +7 -0
- package/src/element/property.js +7 -0
- package/src/element/propertyRelation.js +7 -0
- package/src/element/reference.js +8 -7
- package/src/element/rule.js +8 -9
- package/src/element/section.js +7 -0
- package/src/element/signature.js +7 -0
- package/src/element/statement.js +9 -14
- package/src/element/subDerivation.js +7 -0
- package/src/element/subproof.js +7 -0
- package/src/element/substitution/frame.js +2 -2
- package/src/element/substitution/reference.js +2 -2
- package/src/element/substitution/statement.js +2 -2
- package/src/element/substitution/term.js +2 -2
- package/src/element/substitution.js +0 -4
- package/src/element/topLevelAssertion/axiom.js +7 -0
- package/src/element/topLevelAssertion/conjecture.js +7 -0
- package/src/element/topLevelAssertion/lemma.js +7 -0
- package/src/element/topLevelAssertion/theorem.js +7 -0
- package/src/element/topLevelAssertion.js +1 -9
- package/src/element/topLevelMetaAssertion/metaLemma.js +7 -0
- package/src/element/topLevelMetaAssertion/metatheorem.js +7 -0
- package/src/element/type.js +7 -0
- package/src/element/typePrefix.js +7 -0
- package/src/element/variable.js +7 -4
- package/src/preamble.js +0 -1
- package/src/process/assign.js +1 -3
- package/src/utilities/substitutions.js +1 -1
- package/lib/element/substitutions.js +0 -225
- package/src/element/substitutions.js +0 -84
package/lib/process/assign.js
CHANGED
|
@@ -24,8 +24,7 @@ _export(exports, {
|
|
|
24
24
|
});
|
|
25
25
|
function variableAssignmentFromVariable(variable) {
|
|
26
26
|
return function(context) {
|
|
27
|
-
|
|
28
|
-
context.addVariable(variable, nested);
|
|
27
|
+
context.addVariable(variable);
|
|
29
28
|
var variableTypeString = variable.getTypeString(), variableString = variable.getString(), assigned = true;
|
|
30
29
|
assigned ? context.trace("Assigned the '".concat(variableString, "' variable with type '").concat(variableTypeString, "'.")) : context.debug("Unable to assign the '".concat(variableString, "' variable with type '").concat(variableTypeString, "'."));
|
|
31
30
|
return assigned;
|
|
@@ -55,4 +54,4 @@ function assignAssignments(assignments, context) {
|
|
|
55
54
|
return assignmentsAssigned;
|
|
56
55
|
}
|
|
57
56
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2Fzc2lnbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudEZyb21WYXJpYWJsZSh2YXJpYWJsZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlVHlwZVN0cmluZyA9IHZhcmlhYmxlLmdldFR5cGVTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICAgIGFzc2lnbmVkID0gdHJ1ZTtcblxuICAgIGFzc2lnbmVkID9cbiAgICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIHdpdGggdHlwZSAnJHt2YXJpYWJsZVR5cGVTdHJpbmd9Jy5gKSA6XG4gICAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byBhc3NpZ24gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgd2l0aCB0eXBlICcke3ZhcmlhYmxlVHlwZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGFzc2lnbmVkO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHlBc3NpZ25tZW50RnJvbUVxdWFsaXR5KGVxdWFsaXR5KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IGVxdWFsaXR5U3RyaW5nID0gZXF1YWxpdHkuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZXF1YWxpdHlBZGRlZCA9IGNvbnRleHQuYWRkRXF1YWxpdHkoZXF1YWxpdHkpLFxuICAgICAgICAgIGFzc2lnbmVkID0gZXF1YWxpdHlBZGRlZDsgLy8vXG5cbiAgICBhc3NpZ25lZCA/XG4gICAgICBjb250ZXh0LnRyYWNlKGBBc3NpZ25lZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS5gKSA6XG4gICAgICAgIGNvbnRleHQuZGVidWcoYFVuYWJsZSB0byBhc3NpZ24gdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkuYCk7XG5cbiAgICByZXR1cm4gYXNzaWduZWQ7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqdWRnZW1lbnRBc3NpZ25tZW50RnJvbUp1ZGdlbWVudChqdWRnZW1lbnQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3QganVkZ2VtZW50U3RyaW5nID0ganVkZ2VtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIGp1ZGdlbWVudEFkZGVkID0gY29udGV4dC5hZGRKdWRnZW1lbnQoanVkZ2VtZW50KSxcbiAgICAgICAgICBhc3NpZ25lZCA9IGp1ZGdlbWVudEFkZGVkOyAvLy9cblxuICAgIGFzc2lnbmVkID9cbiAgICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmVkIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuYCkgOlxuICAgICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gYXNzaWduIHRoZSAnJHtqdWRnZW1lbnRTdHJpbmd9JyBqdWRnZW1lbnQuYCk7XG5cbiAgICByZXR1cm4gYXNzaWduZWQ7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFzc2lnbkFzc2lnbm1lbnRzKGFzc2lnbm1lbnRzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGFzc2lnbm1lbnRzQXNzaWduZWQgPSBhc3NpZ25tZW50cy5ldmVyeSgoYXNzaWdtZW50KSA9PiB7XG4gICAgY29uc3QgYXNzaWduZWQgPSBhc3NpZ21lbnQoY29udGV4dCk7XG5cbiAgICBpZiAoYXNzaWduZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGFzc2lnbm1lbnRzQXNzaWduZWQ7XG59XG4iXSwibmFtZXMiOlsiYXNzaWduQXNzaWdubWVudHMiLCJlcXVhbGl0eUFzc2lnbm1lbnRGcm9tRXF1YWxpdHkiLCJqdWRnZW1lbnRBc3NpZ25tZW50RnJvbUp1ZGdlbWVudCIsInZhcmlhYmxlQXNzaWdubWVudEZyb21WYXJpYWJsZSIsInZhcmlhYmxlIiwiY29udGV4dCIsImFkZFZhcmlhYmxlIiwidmFyaWFibGVUeXBlU3RyaW5nIiwiZ2V0VHlwZVN0cmluZyIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwiYXNzaWduZWQiLCJ0cmFjZSIsImRlYnVnIiwiZXF1YWxpdHkiLCJlcXVhbGl0eVN0cmluZyIsImVxdWFsaXR5QWRkZWQiLCJhZGRFcXVhbGl0eSIsImp1ZGdlbWVudCIsImp1ZGdlbWVudFN0cmluZyIsImp1ZGdlbWVudEFkZGVkIiwiYWRkSnVkZ2VtZW50IiwiYXNzaWdubWVudHMiLCJhc3NpZ25tZW50c0Fzc2lnbmVkIiwiZXZlcnkiLCJhc3NpZ21lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQThDQTtlQUF3QkE7O1FBNUJSQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBOUJBQztlQUFBQTs7O0FBQVQsU0FBU0EsK0JBQStCQyxRQUFRO0lBQ3JELE9BQU8sU0FBVUMsT0FBTztRQUN0QkEsUUFBUUMsV0FBVyxDQUFDRjtRQUVwQixJQUFNRyxxQkFBcUJILFNBQVNJLGFBQWEsSUFDM0NDLGlCQUFpQkwsU0FBU00sU0FBUyxJQUNuQ0MsV0FBVztRQUVqQkEsV0FDRU4sUUFBUU8sS0FBSyxDQUFDLEFBQUMsaUJBQXVETCxPQUF2Q0UsZ0JBQWUsMEJBQTJDLE9BQW5CRixvQkFBbUIsU0FDdkZGLFFBQVFRLEtBQUssQ0FBQyxBQUFDLHlCQUErRE4sT0FBdkNFLGdCQUFlLDBCQUEyQyxPQUFuQkYsb0JBQW1CO1FBRXJHLE9BQU9JO0lBQ1Q7QUFDRjtBQUVPLFNBQVNWLCtCQUErQmEsUUFBUTtJQUNyRCxPQUFPLFNBQVVULE9BQU87UUFDdEIsSUFBTVUsaUJBQWlCRCxTQUFTSixTQUFTLElBQ25DTSxnQkFBZ0JYLFFBQVFZLFdBQVcsQ0FBQ0gsV0FDcENILFdBQVdLLGVBQWUsR0FBRztRQUVuQ0wsV0FDRU4sUUFBUU8sS0FBSyxDQUFDLEFBQUMsaUJBQStCLE9BQWZHLGdCQUFlLGtCQUM1Q1YsUUFBUVEsS0FBSyxDQUFDLEFBQUMseUJBQXVDLE9BQWZFLGdCQUFlO1FBRTFELE9BQU9KO0lBQ1Q7QUFDRjtBQUVPLFNBQVNULGlDQUFpQ2dCLFNBQVM7SUFDeEQsT0FBTyxTQUFVYixPQUFPO1FBQ3RCLElBQU1jLGtCQUFrQkQsVUFBVVIsU0FBUyxJQUNyQ1UsaUJBQWlCZixRQUFRZ0IsWUFBWSxDQUFDSCxZQUN0Q1AsV0FBV1MsZ0JBQWdCLEdBQUc7UUFFcENULFdBQ0VOLFFBQVFPLEtBQUssQ0FBQyxBQUFDLGlCQUFnQyxPQUFoQk8saUJBQWdCLG1CQUM3Q2QsUUFBUVEsS0FBSyxDQUFDLEFBQUMseUJBQXdDLE9BQWhCTSxpQkFBZ0I7UUFFM0QsT0FBT1I7SUFDVDtBQUNGO0FBRWUsU0FBU1gsa0JBQWtCc0IsV0FBVyxFQUFFakIsT0FBTztJQUM1RCxJQUFNa0Isc0JBQXNCRCxZQUFZRSxLQUFLLENBQUMsU0FBQ0M7UUFDN0MsSUFBTWQsV0FBV2MsVUFBVXBCO1FBRTNCLElBQUlNLFVBQVU7WUFDWixPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9ZO0FBQ1QifQ==
|
|
@@ -95,11 +95,11 @@ function metavariableNamesFromSubstitutions(substitutions) {
|
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
compress(metavariableNames, function(metavariableNameA, metavariableNameB) {
|
|
98
|
-
if (
|
|
98
|
+
if (metavariableNameA !== metavariableNameB) {
|
|
99
99
|
return true;
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
102
|
return metavariableNames;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3Vic3RpdHV0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21UZXJtQW5kU3Vic3RpdHV0aW9ucyh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGlmICh0ZXJtICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICB0ZXJtU2luZ3VsYXIgPSB0ZXJtLmlzU2luZ3VsYXIoKTtcblxuICAgIHRlcm0gPSBudWxsOyAgLy8vXG5cbiAgICBpZiAodGVybVNpbmd1bGFyKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB0ZXJtTm9kZS5nZXRWYXJpYWJsZUlkZW50aWZpZXIoKSxcbiAgICAgICAgICAgIHZhcmlhYmxlID0gZ2VuZXJhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdGVybVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgIC8vL1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50VGVybSA9IHRlcm1TdWJzdGl0dXRpb24uZ2V0UmVwbGFjZW1lbnRUZXJtKCk7XG5cbiAgICAgICAgICB0ZXJtID0gcmVwbGFjZW1lbnRUZXJtOyAvLy9cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVGcm9tRnJhbWVBbmRTdWJzdGl0dXRpb25zKGZyYW1lLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGlmIChmcmFtZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGZyYW1lTm9kZSA9IGZyYW1lLmdldE5vZGUoKSxcbiAgICAgICAgICBmcmFtZVNpbmd1bGFyID0gZnJhbWUuaXNTaW5ndWxhcigpO1xuXG4gICAgZnJhbWUgPSBudWxsOyAgLy8vXG5cbiAgICBpZiAoZnJhbWVTaW5ndWxhcikge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IGZyYW1lTm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBnZW5lcmFsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBmcmFtZVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRGcmFtZSA9IGZyYW1lU3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50RnJhbWUoKTtcblxuICAgICAgICAgIGZyYW1lID0gcmVwbGFjZW1lbnRGcmFtZTsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50QW5kU3Vic3RpdHV0aW9ucyhzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN0YXRlbWVudFNpbmd1bGFyID0gc3RhdGVtZW50LmlzU2luZ3VsYXIoKTtcblxuICAgIHN0YXRlbWVudCA9IG51bGw7XG5cbiAgICBpZiAoc3RhdGVtZW50U2luZ3VsYXIpIHtcbiAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsO1xuXG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTdWJzdGl0dXRpb25Ob2RlKCk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICAgIGxldCBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGdlbmVyYWxDb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAvLy9cblxuICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICAgICAgc3Vic3RpdHV0aW9uID0gc3BlY2lmaWNDb250ZXh0LmZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBnZW5lcmFsQ29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgLy8vXG5cbiAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gc3RhdGVtZW50Tm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBnZW5lcmFsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIHN1YnN0aXR1dGlvbiA9IChzdWJzdGl0dXRpb24gIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTmFtZUFuZFN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOYW1lLCBzdWJzdGl0dXRpb24pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRTdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50U3RhdGVtZW50ID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50U3RhdGVtZW50KCk7XG5cbiAgICAgICAgICBzdGF0ZW1lbnQgPSByZXBsYWNlbWVudFN0YXRlbWVudDsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTmFtZXNGcm9tU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWVzID0gW107XG5cbiAgc3Vic3RpdHV0aW9ucy5mb3JFYWNoKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gc3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVOYW1lICE9PSBudWxsKSB7XG4gICAgICBtZXRhdmFyaWFibGVOYW1lcy5wdXNoKG1ldGF2YXJpYWJsZU5hbWUpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29tcHJlc3MobWV0YXZhcmlhYmxlTmFtZXMsIChtZXRhdmFyaWFibGVOYW1lQSwgbWV0YXZhcmlhYmxlTmFtZUIpID0+
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3Vic3RpdHV0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21UZXJtQW5kU3Vic3RpdHV0aW9ucyh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGlmICh0ZXJtICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICB0ZXJtU2luZ3VsYXIgPSB0ZXJtLmlzU2luZ3VsYXIoKTtcblxuICAgIHRlcm0gPSBudWxsOyAgLy8vXG5cbiAgICBpZiAodGVybVNpbmd1bGFyKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB0ZXJtTm9kZS5nZXRWYXJpYWJsZUlkZW50aWZpZXIoKSxcbiAgICAgICAgICAgIHZhcmlhYmxlID0gZ2VuZXJhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdGVybVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgIC8vL1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50VGVybSA9IHRlcm1TdWJzdGl0dXRpb24uZ2V0UmVwbGFjZW1lbnRUZXJtKCk7XG5cbiAgICAgICAgICB0ZXJtID0gcmVwbGFjZW1lbnRUZXJtOyAvLy9cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVGcm9tRnJhbWVBbmRTdWJzdGl0dXRpb25zKGZyYW1lLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGlmIChmcmFtZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGZyYW1lTm9kZSA9IGZyYW1lLmdldE5vZGUoKSxcbiAgICAgICAgICBmcmFtZVNpbmd1bGFyID0gZnJhbWUuaXNTaW5ndWxhcigpO1xuXG4gICAgZnJhbWUgPSBudWxsOyAgLy8vXG5cbiAgICBpZiAoZnJhbWVTaW5ndWxhcikge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IGZyYW1lTm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBnZW5lcmFsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBmcmFtZVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRGcmFtZSA9IGZyYW1lU3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50RnJhbWUoKTtcblxuICAgICAgICAgIGZyYW1lID0gcmVwbGFjZW1lbnRGcmFtZTsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50QW5kU3Vic3RpdHV0aW9ucyhzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHN0YXRlbWVudFNpbmd1bGFyID0gc3RhdGVtZW50LmlzU2luZ3VsYXIoKTtcblxuICAgIHN0YXRlbWVudCA9IG51bGw7XG5cbiAgICBpZiAoc3RhdGVtZW50U2luZ3VsYXIpIHtcbiAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsO1xuXG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTdWJzdGl0dXRpb25Ob2RlKCk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICAgIGxldCBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGdlbmVyYWxDb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAvLy9cblxuICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgICAgICAgc3Vic3RpdHV0aW9uID0gc3BlY2lmaWNDb250ZXh0LmZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBnZW5lcmFsQ29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgLy8vXG5cbiAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gc3RhdGVtZW50Tm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBnZW5lcmFsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICAgIHN1YnN0aXR1dGlvbiA9IChzdWJzdGl0dXRpb24gIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTmFtZUFuZFN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOYW1lLCBzdWJzdGl0dXRpb24pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRTdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50U3RhdGVtZW50ID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50U3RhdGVtZW50KCk7XG5cbiAgICAgICAgICBzdGF0ZW1lbnQgPSByZXBsYWNlbWVudFN0YXRlbWVudDsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTmFtZXNGcm9tU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWVzID0gW107XG5cbiAgc3Vic3RpdHV0aW9ucy5mb3JFYWNoKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gc3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVOYW1lICE9PSBudWxsKSB7XG4gICAgICBtZXRhdmFyaWFibGVOYW1lcy5wdXNoKG1ldGF2YXJpYWJsZU5hbWUpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29tcHJlc3MobWV0YXZhcmlhYmxlTmFtZXMsIChtZXRhdmFyaWFibGVOYW1lQSwgbWV0YXZhcmlhYmxlTmFtZUIpID0+IHtcbiAgICBpZiAobWV0YXZhcmlhYmxlTmFtZUEgIT09IG1ldGF2YXJpYWJsZU5hbWVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVOYW1lcztcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnMiLCJtZXRhdmFyaWFibGVOYW1lc0Zyb21TdWJzdGl0dXRpb25zIiwic3RhdGVtZW50RnJvbVN0YXRlbWVudEFuZFN1YnN0aXR1dGlvbnMiLCJ0ZXJtRnJvbVRlcm1BbmRTdWJzdGl0dXRpb25zIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsInRlcm0iLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInRlcm1TaW5ndWxhciIsImlzU2luZ3VsYXIiLCJ2YXJpYWJsZUlkZW50aWZpZXIiLCJnZXRWYXJpYWJsZUlkZW50aWZpZXIiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGVJZGVudGlmaWVyIiwidGVybVN1YnN0aXR1dGlvbiIsInJlcGxhY2VtZW50VGVybSIsImdldFJlcGxhY2VtZW50VGVybSIsImZyYW1lIiwiZnJhbWVOb2RlIiwiZnJhbWVTaW5ndWxhciIsIm1ldGF2YXJpYWJsZU5hbWUiLCJnZXRNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsImZpbmRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5hbWUiLCJmcmFtZVN1YnN0aXR1dGlvbiIsInJlcGxhY2VtZW50RnJhbWUiLCJnZXRSZXBsYWNlbWVudEZyYW1lIiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFNpbmd1bGFyIiwic3Vic3RpdHV0aW9uTm9kZSIsImdldFN1YnN0aXR1dGlvbk5vZGUiLCJjb250ZXh0IiwiZmluZFN1YnN0aXR1dGlvbkJ5U3Vic3RpdHV0aW9uTm9kZSIsImZpbmRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5hbWVBbmRTdWJzdGl0dXRpb24iLCJzdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJyZXBsYWNlbWVudFN0YXRlbWVudCIsImdldFJlcGxhY2VtZW50U3RhdGVtZW50Iiwic3Vic3RpdHV0aW9ucyIsIm1ldGF2YXJpYWJsZU5hbWVzIiwiZm9yRWFjaCIsInB1c2giLCJtZXRhdmFyaWFibGVOYW1lQSIsIm1ldGF2YXJpYWJsZU5hbWVCIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFpQ2dCQTtlQUFBQTs7UUE0RUFDO2VBQUFBOztRQWpEQUM7ZUFBQUE7O1FBdERBQztlQUFBQTs7O3lCQUplO0FBRS9CLElBQU0sQUFBRUMsV0FBYUMseUJBQWMsQ0FBM0JEO0FBRUQsU0FBU0QsNkJBQTZCRyxJQUFJLEVBQUVDLGNBQWMsRUFBRUMsZUFBZTtJQUNoRixJQUFJRixTQUFTLE1BQU07UUFDakIsSUFBTUcsV0FBV0gsS0FBS0ksT0FBTyxJQUN2QkMsZUFBZUwsS0FBS00sVUFBVTtRQUVwQ04sT0FBTyxNQUFPLEdBQUc7UUFFakIsSUFBSUssY0FBYztZQUNoQixJQUFNRSxxQkFBcUJKLFNBQVNLLHFCQUFxQixJQUNuREMsV0FBV1IsZUFBZVMsZ0NBQWdDLENBQUNIO1lBRWpFLElBQUlFLGFBQWEsTUFBTTtnQkFDckIsSUFBTUUsZUFBZVQsZ0JBQWdCVSxvQ0FBb0MsQ0FB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.617",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"argumentative": "^2.0.36",
|
|
14
14
|
"necessary": "^17.0.9",
|
|
15
15
|
"occam-file-system": "^6.0.505",
|
|
16
|
-
"occam-furtle": "^3.0.
|
|
16
|
+
"occam-furtle": "^3.0.111",
|
|
17
17
|
"occam-grammars": "^1.3.510",
|
|
18
18
|
"occam-languages": "^0.0.79",
|
|
19
19
|
"occam-lexers": "^23.1.34",
|
package/src/context/ephemeral.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
3
|
import Context from "../context";
|
|
6
4
|
|
|
7
|
-
const { extract } = arrayUtilities;
|
|
8
|
-
|
|
9
5
|
export default class EphemeralContext extends Context {
|
|
10
6
|
constructor(context, terms, frames, statements, assertions, references, substitutions) {
|
|
11
7
|
super(context);
|
|
@@ -47,18 +43,24 @@ export default class EphemeralContext extends Context {
|
|
|
47
43
|
context = this, ///
|
|
48
44
|
termString = term.getString();
|
|
49
45
|
|
|
50
|
-
|
|
46
|
+
context.trace(`Adding the '${termString}' term to the ephemeral context...`);
|
|
47
|
+
|
|
48
|
+
const termB = this.terms.find((term) => {
|
|
51
49
|
const termB = term, ///
|
|
52
50
|
termAEqualToTermB = termA.isEqualTo(termB);
|
|
53
51
|
|
|
54
52
|
if (termAEqualToTermB) {
|
|
55
53
|
return true;
|
|
56
54
|
}
|
|
57
|
-
});
|
|
55
|
+
}) || null;
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
if (termB !== null) {
|
|
58
|
+
context.trace(`The '${termString}' term has already been added to the ephemeral context.`);
|
|
59
|
+
} else {
|
|
60
|
+
this.terms.push(term);
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
context.debug(`...added the '${termString}' term to the ephemeral context.`);
|
|
63
|
+
}
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
addFrame(frame) {
|
|
@@ -66,18 +68,24 @@ export default class EphemeralContext extends Context {
|
|
|
66
68
|
context = this, ///
|
|
67
69
|
frameString = frame.getString();
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
context.trace(`Adding the '${frameString}' frame to the ephemeral context...`);
|
|
72
|
+
|
|
73
|
+
const frameB = this.frames.find((frame) => {
|
|
70
74
|
const frameB = frame, ///
|
|
71
75
|
frameAEqualToFrameB = frameA.isEqualTo(frameB);
|
|
72
76
|
|
|
73
77
|
if (frameAEqualToFrameB) {
|
|
74
78
|
return true;
|
|
75
79
|
}
|
|
76
|
-
});
|
|
80
|
+
}) || null;
|
|
77
81
|
|
|
78
|
-
|
|
82
|
+
if (frameB !== null) {
|
|
83
|
+
context.trace(`The '${frameString}' frame has already been added to the ephemeral context.`);
|
|
84
|
+
} else {
|
|
85
|
+
this.frames.push(frame);
|
|
79
86
|
|
|
80
|
-
|
|
87
|
+
context.debug(`...added the '${frameString}' frame to the ephemeral context.`);
|
|
88
|
+
}
|
|
81
89
|
}
|
|
82
90
|
|
|
83
91
|
addStatement(statement) {
|
|
@@ -85,18 +93,24 @@ export default class EphemeralContext extends Context {
|
|
|
85
93
|
statementA = statement, ///
|
|
86
94
|
statementString = statement.getString();
|
|
87
95
|
|
|
88
|
-
|
|
96
|
+
context.trace(`Adding the '${statementString}' statement to the ephemeral context...`);
|
|
97
|
+
|
|
98
|
+
const statementB = this.statements.find((statement) => {
|
|
89
99
|
const statementB = statement, ///
|
|
90
|
-
|
|
100
|
+
statementAEqualToStatementB = statementA.isEqualTo(statementB);
|
|
91
101
|
|
|
92
|
-
if (
|
|
102
|
+
if (statementAEqualToStatementB) {
|
|
93
103
|
return true;
|
|
94
104
|
}
|
|
95
|
-
});
|
|
105
|
+
}) || null;
|
|
96
106
|
|
|
97
|
-
|
|
107
|
+
if (statementB !== null) {
|
|
108
|
+
context.trace(`The '${statementString}' statement has already been added to the ephemeral context.`);
|
|
109
|
+
} else {
|
|
110
|
+
this.statements.push(statement);
|
|
98
111
|
|
|
99
|
-
|
|
112
|
+
context.debug(`...added the '${statementString}' statement to the ephemeral context.`);
|
|
113
|
+
}
|
|
100
114
|
}
|
|
101
115
|
|
|
102
116
|
addAssertion(assertion) {
|
|
@@ -104,18 +118,24 @@ export default class EphemeralContext extends Context {
|
|
|
104
118
|
assertionA = assertion, ///
|
|
105
119
|
assertionString = assertion.getString();
|
|
106
120
|
|
|
107
|
-
|
|
121
|
+
context.trace(`Adding the '${assertionString}' assertion to the ephemeral context...`);
|
|
122
|
+
|
|
123
|
+
const assertionB = this.assertions.find((assertion) => {
|
|
108
124
|
const assertionB = assertion, ///
|
|
109
125
|
assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
|
|
110
126
|
|
|
111
127
|
if (assertionAEqualToAssertionB) {
|
|
112
128
|
return true;
|
|
113
129
|
}
|
|
114
|
-
});
|
|
130
|
+
}) || null;
|
|
115
131
|
|
|
116
|
-
|
|
132
|
+
if (assertionB !== null) {
|
|
133
|
+
context.trace(`The '${assertionString}' assertion has already been added to the ephemeral context.`);
|
|
134
|
+
} else {
|
|
135
|
+
this.assertions.push(assertion);
|
|
117
136
|
|
|
118
|
-
|
|
137
|
+
context.debug(`...added the '${assertionString}' assertion to the ephemeral context.`);
|
|
138
|
+
}
|
|
119
139
|
}
|
|
120
140
|
|
|
121
141
|
addReference(reference) {
|
|
@@ -123,18 +143,24 @@ export default class EphemeralContext extends Context {
|
|
|
123
143
|
referenceA = reference, ///
|
|
124
144
|
referenceString = reference.getString();
|
|
125
145
|
|
|
126
|
-
|
|
146
|
+
context.trace(`Adding the '${referenceString}' reference to the ephemeral context...`);
|
|
147
|
+
|
|
148
|
+
const referenceB = this.references.find((reference) => {
|
|
127
149
|
const referenceB = reference, ///
|
|
128
150
|
referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
|
|
129
151
|
|
|
130
152
|
if (referenceAEqualToReferenceB) {
|
|
131
153
|
return true;
|
|
132
154
|
}
|
|
133
|
-
});
|
|
155
|
+
}) || null;
|
|
134
156
|
|
|
135
|
-
|
|
157
|
+
if (referenceB !== null) {
|
|
158
|
+
context.trace(`The '${referenceString}' reference has already been added to the ephemeral context.`);
|
|
159
|
+
} else {
|
|
160
|
+
this.references.push(reference);
|
|
136
161
|
|
|
137
|
-
|
|
162
|
+
context.debug(`...added the '${referenceString}' reference to the ephemeral context.`);
|
|
163
|
+
}
|
|
138
164
|
}
|
|
139
165
|
|
|
140
166
|
addSubstitution(substitution) {
|
|
@@ -142,18 +168,24 @@ export default class EphemeralContext extends Context {
|
|
|
142
168
|
substitutionA = substitution, ///
|
|
143
169
|
substitutionString = substitution.getString();
|
|
144
170
|
|
|
145
|
-
|
|
171
|
+
context.trace(`Adding the '${substitutionString}' substitution to the ephemeral context...`);
|
|
172
|
+
|
|
173
|
+
const substitutionB = this.substitutions.find((substitution) => {
|
|
146
174
|
const substitutionB = substitution, ///
|
|
147
|
-
|
|
175
|
+
substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
148
176
|
|
|
149
|
-
if (
|
|
177
|
+
if (substitutionAEqualToSubstitutionB) {
|
|
150
178
|
return true;
|
|
151
179
|
}
|
|
152
|
-
});
|
|
180
|
+
}) || null;
|
|
153
181
|
|
|
154
|
-
|
|
182
|
+
if (substitutionB !== null) {
|
|
183
|
+
context.trace(`The '${substitutionString}' substitution has already been added to the ephemeral context.`);
|
|
184
|
+
} else {
|
|
185
|
+
this.substitutions.push(substitution);
|
|
155
186
|
|
|
156
|
-
|
|
187
|
+
context.debug(`...added the '${substitutionString}' substitution to the ephemeral context.`);
|
|
188
|
+
}
|
|
157
189
|
}
|
|
158
190
|
|
|
159
191
|
findTermByTermNode(termNode) {
|
|
@@ -259,54 +259,119 @@ export default class NominalFileContext extends FileContext {
|
|
|
259
259
|
|
|
260
260
|
addType(type) {
|
|
261
261
|
this.types.push(type);
|
|
262
|
+
|
|
263
|
+
const filePath = this.getFilePath(),
|
|
264
|
+
typeString = type.toString();
|
|
265
|
+
|
|
266
|
+
this.trace(`Added the '${typeString}' type to the '${filePath}' file context.`)
|
|
262
267
|
}
|
|
263
268
|
|
|
264
269
|
addRule(rule) {
|
|
265
270
|
this.rules.push(rule);
|
|
271
|
+
|
|
272
|
+
const filePath = this.getFilePath(),
|
|
273
|
+
ruleString = rule.toString();
|
|
274
|
+
|
|
275
|
+
this.trace(`Added the '${ruleString}' rule to the '${filePath}' file context.`)
|
|
266
276
|
}
|
|
267
277
|
|
|
268
278
|
addAxiom(axiom) {
|
|
269
279
|
this.axioms.push(axiom);
|
|
280
|
+
|
|
281
|
+
const filePath = this.getFilePath(),
|
|
282
|
+
axiomString = axiom.toString();
|
|
283
|
+
|
|
284
|
+
this.trace(`Added the '${axiomString}' axiom to the '${filePath}' file context.`)
|
|
270
285
|
}
|
|
271
286
|
|
|
272
287
|
addLemma(lemma) {
|
|
273
288
|
this.lemmas.push(lemma);
|
|
289
|
+
|
|
290
|
+
const filePath = this.getFilePath(),
|
|
291
|
+
lemmaString = lemma.toString();
|
|
292
|
+
|
|
293
|
+
this.trace(`Added the '${lemmaString}' lemma to the '${filePath}' file context.`)
|
|
274
294
|
}
|
|
275
295
|
|
|
276
296
|
addTheorem(theorem) {
|
|
277
297
|
this.theorems.push(theorem);
|
|
298
|
+
|
|
299
|
+
const filePath = this.getFilePath(),
|
|
300
|
+
theoremString = theorem.toString();
|
|
301
|
+
|
|
302
|
+
this.trace(`Added the '${theoremString}' theorem to the '${filePath}' file context.`)
|
|
278
303
|
}
|
|
279
304
|
|
|
280
305
|
addVariable(variable) {
|
|
281
306
|
this.variables.push(variable);
|
|
307
|
+
|
|
308
|
+
const filePath = this.getFilePath(),
|
|
309
|
+
variableString = variable.toString();
|
|
310
|
+
|
|
311
|
+
this.trace(`Added the '${variableString}' variable to the '${filePath}' file context.`)
|
|
282
312
|
}
|
|
283
313
|
|
|
284
314
|
addMetaLemma(metaLemma) {
|
|
285
315
|
this.metaLemmas.push(metaLemma);
|
|
316
|
+
|
|
317
|
+
const filePath = this.getFilePath(),
|
|
318
|
+
metaLemmaString = metaLemma.toString();
|
|
319
|
+
|
|
320
|
+
this.trace(`Added the '${metaLemmaString}' meta-lemma to the '${filePath}' file context.`)
|
|
286
321
|
}
|
|
287
322
|
|
|
288
323
|
addConjecture(conjecture) {
|
|
289
324
|
this.conjectures.push(conjecture);
|
|
325
|
+
|
|
326
|
+
const filePath = this.getFilePath(),
|
|
327
|
+
ocnjectureString = ocnjecture.toString();
|
|
328
|
+
|
|
329
|
+
this.trace(`Added the '${ocnjectureString}' ocnjecture to the '${filePath}' file context.`)
|
|
290
330
|
}
|
|
291
331
|
|
|
292
332
|
addCombinator(combinator) {
|
|
293
333
|
this.combinators.push(combinator);
|
|
334
|
+
|
|
335
|
+
const filePath = this.getFilePath(),
|
|
336
|
+
combinatorString = combinator.toString();
|
|
337
|
+
|
|
338
|
+
this.trace(`Added the '${combinatorString}' combinator to the '${filePath}' file context.`)
|
|
294
339
|
}
|
|
295
340
|
|
|
296
341
|
addTypePrefix(typePrefix) {
|
|
297
342
|
this.typePrefixes.push(typePrefix);
|
|
343
|
+
|
|
344
|
+
const filePath = this.getFilePath(),
|
|
345
|
+
typePrefixString = typePrefix.toString();
|
|
346
|
+
|
|
347
|
+
this.trace(`Added the '${typePrefixString}' type-prefix to the '${filePath}' file context.`)
|
|
298
348
|
}
|
|
299
349
|
|
|
300
350
|
addConstructor(constructor) {
|
|
301
351
|
this.constructors.push(constructor);
|
|
352
|
+
|
|
353
|
+
const filePath = this.getFilePath(),
|
|
354
|
+
constructorString = constructor.toString();
|
|
355
|
+
|
|
356
|
+
this.trace(`Added the '${constructorString}' constructor to the '${filePath}' file context.`)
|
|
302
357
|
}
|
|
303
358
|
|
|
304
359
|
addMetatheorem(metatheorem) {
|
|
305
360
|
this.metatheorems.push(metatheorem);
|
|
361
|
+
|
|
362
|
+
const filePath = this.getFilePath(),
|
|
363
|
+
metatheoremString = metatheorem.toString();
|
|
364
|
+
|
|
365
|
+
this.trace(`Added the '${metatheoremString}' metatheorem to the '${filePath}' file context.`)
|
|
306
366
|
}
|
|
307
367
|
|
|
308
368
|
addMetavariable(metavariable) {
|
|
309
369
|
this.metavariables.push(metavariable);
|
|
370
|
+
|
|
371
|
+
const filePath = this.getFilePath(),
|
|
372
|
+
metavariableString = metavariable.toString();
|
|
373
|
+
|
|
374
|
+
this.trace(`Added the '${metavariableString}' metavariable to the '${filePath}' file context.`)
|
|
310
375
|
}
|
|
311
376
|
|
|
312
377
|
findLabelByReference(reference, context) {
|
|
@@ -404,10 +469,10 @@ export default class NominalFileContext extends FileContext {
|
|
|
404
469
|
return theorem;
|
|
405
470
|
}
|
|
406
471
|
|
|
407
|
-
|
|
472
|
+
findProcedureByProcedureName(procedureName) {
|
|
408
473
|
const procedures = this.getProcedures(),
|
|
409
474
|
procedure = procedures.find((procedure) => {
|
|
410
|
-
const nameMatches = procedure.matchName(
|
|
475
|
+
const nameMatches = procedure.matchName(procedureName);
|
|
411
476
|
|
|
412
477
|
if (nameMatches) {
|
|
413
478
|
return true;
|
|
@@ -650,14 +715,6 @@ export default class NominalFileContext extends FileContext {
|
|
|
650
715
|
return metavariable;
|
|
651
716
|
}
|
|
652
717
|
|
|
653
|
-
isMetavariablePresent(metavariable) {
|
|
654
|
-
metavariable = this.findMetavariable(metavariable);
|
|
655
|
-
|
|
656
|
-
const metavariablePresent = (metavariable !== null);
|
|
657
|
-
|
|
658
|
-
return metavariablePresent;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
718
|
isTypePresentByTypeName(typeName, includeRelease = true, includeDependencies = true) {
|
|
662
719
|
const type = this.findTypeByTypeName(typeName, includeRelease, includeDependencies),
|
|
663
720
|
typePresent = (type !== null);
|
|
@@ -714,6 +771,21 @@ export default class NominalFileContext extends FileContext {
|
|
|
714
771
|
return metavariablePresent;
|
|
715
772
|
}
|
|
716
773
|
|
|
774
|
+
isMetavariablePresent(metavariable) {
|
|
775
|
+
metavariable = this.findMetavariable(metavariable);
|
|
776
|
+
|
|
777
|
+
const metavariablePresent = (metavariable !== null);
|
|
778
|
+
|
|
779
|
+
return metavariablePresent;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
isProcedurePresentByProcedureName(procedureName) {
|
|
783
|
+
const procedure = this.findProcedureByProcedureName(procedureName),
|
|
784
|
+
procedurePresent = (procedure !== null);
|
|
785
|
+
|
|
786
|
+
return procedurePresent;
|
|
787
|
+
}
|
|
788
|
+
|
|
717
789
|
isLabelPresentByReference(reference) {
|
|
718
790
|
const labels = this.getLabels(),
|
|
719
791
|
labelPresent = labels.some((label) => {
|
|
@@ -728,13 +800,6 @@ export default class NominalFileContext extends FileContext {
|
|
|
728
800
|
return labelPresent;
|
|
729
801
|
}
|
|
730
802
|
|
|
731
|
-
isProcedurePresentByName(name) {
|
|
732
|
-
const procedure = this.findProcedureByName(name),
|
|
733
|
-
procedurePresent = (procedure !== null);
|
|
734
|
-
|
|
735
|
-
return procedurePresent;
|
|
736
|
-
}
|
|
737
|
-
|
|
738
803
|
isMetavariablePresentByReference(reference) {
|
|
739
804
|
const metavariables = this.getMetavariables(),
|
|
740
805
|
metavariablePresent = metavariables.some((metavariable) => {
|
package/src/context/liminal.js
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
import { metavariableNamesFromSubstitutions } from "../utilities/substitutions";
|
|
5
|
-
import { substitutionsStringFromSubstitutions } from "../utilities/string";
|
|
6
5
|
|
|
7
6
|
import Context from "../context";
|
|
8
7
|
|
|
9
|
-
const { find, first
|
|
8
|
+
const { find, first } = arrayUtilities;
|
|
10
9
|
|
|
11
10
|
export default class LiminalContext extends Context {
|
|
12
11
|
constructor(context, substitutions) {
|
|
@@ -62,60 +61,34 @@ export default class LiminalContext extends Context {
|
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
addSubstitution(substitution) {
|
|
65
|
-
const context = this,
|
|
64
|
+
const context = this, ///
|
|
65
|
+
substitutionA = substitution, ///
|
|
66
66
|
substitutionString = substitution.getString();
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
...this.substitutions,
|
|
70
|
-
substitution
|
|
71
|
-
];
|
|
68
|
+
context.trace(`Adding the '${substitutionString}' substitution to the liminal context...`);
|
|
72
69
|
|
|
73
|
-
|
|
74
|
-
const
|
|
70
|
+
const substitutionB = this.substitutions.find((substitution) => {
|
|
71
|
+
const substitutionB = substitution, ///
|
|
72
|
+
substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
75
73
|
|
|
76
|
-
if (
|
|
74
|
+
if (substitutionAEqualToSubstitutionB) {
|
|
77
75
|
return true;
|
|
78
76
|
}
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
context.trace(`Added the '${substitutionString}' substitution to the context.`);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
addSubstitutions(substitutions) {
|
|
85
|
-
const context = this,
|
|
86
|
-
substitutionsString = substitutionsStringFromSubstitutions(substitutions);
|
|
87
|
-
|
|
88
|
-
this.substitutions = [ ///
|
|
89
|
-
...this.substitutions,
|
|
90
|
-
...substitutions
|
|
91
|
-
];
|
|
92
|
-
|
|
93
|
-
compress(this.substitutions, (substitutionA, substitutionB) => {
|
|
94
|
-
const substitutionAEqualToAssertionB = substitutionA.isEqualTo(substitutionB);
|
|
77
|
+
}) || null;
|
|
95
78
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
79
|
+
if (substitutionB !== null) {
|
|
80
|
+
context.trace(`The '${substitutionString}' substitution has already been added to the liminal context.`);
|
|
81
|
+
} else {
|
|
82
|
+
this.substitutions.push(substitution);
|
|
100
83
|
|
|
101
|
-
|
|
84
|
+
context.debug(`...added the '${substitutionString}' substitution to the liminal context.`);
|
|
85
|
+
}
|
|
102
86
|
}
|
|
103
87
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
substitutionString = substitution.getString();
|
|
108
|
-
|
|
109
|
-
prune(this.substitutions, (substitution) => {
|
|
110
|
-
const substitutionB = substitution,
|
|
111
|
-
substitutionAEqualTosubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
112
|
-
|
|
113
|
-
if (!substitutionAEqualTosubstitutionB) {
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
88
|
+
addSubstitutions(substitutions) {
|
|
89
|
+
substitutions.forEach((substitution) => {
|
|
90
|
+
this.addSubstitution(substitution);
|
|
116
91
|
});
|
|
117
|
-
|
|
118
|
-
context.trace(`Removed the '${substitutionString}' substitution to the context.`);
|
|
119
92
|
}
|
|
120
93
|
|
|
121
94
|
resolveSubstitutions(generalContext, specificContext) {
|
|
@@ -139,7 +112,7 @@ export default class LiminalContext extends Context {
|
|
|
139
112
|
});
|
|
140
113
|
}
|
|
141
114
|
|
|
142
|
-
areSubstitutionsResolved(
|
|
115
|
+
areSubstitutionsResolved() {
|
|
143
116
|
const substitutions = this.getSubstitutions(),
|
|
144
117
|
metavariableNames = metavariableNamesFromSubstitutions(substitutions),
|
|
145
118
|
resolved = metavariableNames.every((metavariableName) => {
|
|
@@ -165,6 +138,8 @@ export default class LiminalContext extends Context {
|
|
|
165
138
|
context = this.getContext();
|
|
166
139
|
}
|
|
167
140
|
|
|
141
|
+
context.debug(`Commiting the limiinal context`);
|
|
142
|
+
|
|
168
143
|
context.addSubstitutions(this.substitutions);
|
|
169
144
|
}
|
|
170
145
|
|