occam-verify-cli 0.0.1077 → 0.0.1079
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/assertion/contained.js +47 -27
- package/lib/assertion/defined.js +44 -22
- package/lib/context/local.js +5 -5
- package/lib/equality.js +2 -2
- package/lib/equivalence.js +8 -21
- package/lib/mixins/statement/resolve.js +54 -0
- package/lib/premise.js +25 -6
- package/lib/rule.js +54 -16
- package/lib/statement/unqualified.js +15 -1
- package/lib/statement.js +23 -1
- package/lib/substitution/frameForMetavariable.js +7 -1
- package/lib/substitution/statementForMetavariable.js +2 -2
- package/lib/term.js +15 -8
- package/lib/type.js +1 -8
- package/lib/utilities/equivalences.js +3 -3
- package/lib/utilities/substitutions.js +83 -0
- package/package.json +1 -1
- package/src/assertion/contained.js +62 -32
- package/src/assertion/defined.js +63 -32
- package/src/context/local.js +3 -3
- package/src/equality.js +3 -2
- package/src/equivalence.js +6 -18
- package/src/mixins/statement/resolve.js +68 -0
- package/src/premise.js +33 -5
- package/src/rule.js +60 -16
- package/src/statement/unqualified.js +18 -0
- package/src/statement.js +30 -0
- package/src/substitution/frameForMetavariable.js +2 -0
- package/src/substitution/statementForMetavariable.js +2 -2
- package/src/term.js +17 -7
- package/src/type.js +0 -6
- package/src/utilities/equivalences.js +2 -2
- package/src/utilities/substitutions.js +86 -0
|
@@ -91,8 +91,8 @@ function findEquivalenceByType(equivalences, type) {
|
|
|
91
91
|
}
|
|
92
92
|
function findEquivalenceByTerm(equivalences, term) {
|
|
93
93
|
var equivalence = equivalences.find(function(equivalence) {
|
|
94
|
-
var
|
|
95
|
-
if (
|
|
94
|
+
var termEquates = equivalence.equateTerm(term);
|
|
95
|
+
if (termEquates) {
|
|
96
96
|
return true;
|
|
97
97
|
}
|
|
98
98
|
}) || null;
|
|
@@ -175,4 +175,4 @@ function groundedTermsFromGroundedEquivalencesAndDefinedVariables(groundedEquiva
|
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZXF1aXZhbGVuY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEVxdWl2YWxlbmNlIGZyb20gXCIuLi9lcXVpdmFsZW5jZVwiO1xuXG5jb25zdCB7IHB1c2gsIGNvbXByZXNzLCBzZXBhcmF0ZSB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCKSB7XG4gIGNvbnN0IHR5cGVzQSA9IHR5cGVzRnJvbUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBKSxcbiAgICAgICAgdHlwZXNCID0gdHlwZXNGcm9tRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlc0IpLFxuICAgICAgICB0eXBlcyA9IFtcbiAgICAgICAgICAuLi50eXBlc0EsXG4gICAgICAgICAgLi4udHlwZXNCXG4gICAgICAgIF07XG5cbiAgY29tcHJlc3ModHlwZXMsICh0eXBlQSwgdHlwZUIpID0+IHtcbiAgICBpZiAodHlwZUEgPT09IHR5cGVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGVxdWl2YWxlbmNlcyA9IHR5cGVzLm1hcCgodHlwZSkgPT4ge1xuICAgIGxldCBlcXVpdmFsZW5jZTtcblxuICAgIGNvbnN0IGVxdWl2YWxlbmNlQSA9IGZpbmRFcXVpdmFsZW5jZUJ5VHlwZShlcXVpdmFsZW5jZXNBLCB0eXBlKSxcbiAgICAgICAgICBlcXVpdmFsZW5jZUIgPSBmaW5kRXF1aXZhbGVuY2VCeVR5cGUoZXF1aXZhbGVuY2VzQiwgdHlwZSk7XG5cbiAgICBpZiAoKGVxdWl2YWxlbmNlQSAhPT0gbnVsbCkgJiYgKGVxdWl2YWxlbmNlQiAhPT0gbnVsbCkpIHtcbiAgICAgIGNvbnN0IGxlZnRFcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlQSwgLy8vXG4gICAgICAgICAgICByaWdodEVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VCOyAgLy8vXG5cbiAgICAgIGVxdWl2YWxlbmNlID0gRXF1aXZhbGVuY2UubWVyZ2UobGVmdEVxdWl2YWxlbmNlLCByaWdodEVxdWl2YWxlbmNlKTtcbiAgICB9IGVsc2UgaWYgKGVxdWl2YWxlbmNlQSAhPT0gbnVsbCkge1xuICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUE7IC8vL1xuICAgIH0gZWxzZSBpZiAoZXF1aXZhbGVuY2VCICE9PSBudWxsKSB7XG4gICAgICBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlQjsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlO1xuICB9KTtcblxuICByZXR1cm4gZXF1aXZhbGVuY2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEVxdWl2YWxlbmNlQnlUeXBlKGVxdWl2YWxlbmNlcywgdHlwZSkge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlTWF0Y2hlc1R5cGUgPSBlcXVpdmFsZW5jZS5tYXRjaFR5cGUodHlwZSk7XG5cbiAgICBpZiAoZXF1aXZhbGVuY2VNYXRjaGVzVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRFcXVpdmFsZW5jZUJ5VGVybShlcXVpdmFsZW5jZXMsIHRlcm0pIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCBlcXVpdmFsZW5jZU1hdGNoZXNUZXJtID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtKHRlcm0pO1xuXG4gICAgaWYgKGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gZXF1aXZhbGVuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcykge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm1zID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgIGlmIChlcXVpdmFsZW5jZU1hdGNoZXNUZXJtcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzRnJvbUZyb21FcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCBncm91bmRlZFRlcm1zLCBkZWZpbmVkVmFyaWFibGVzLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGdyb3VuZGVkRXF1aXZhbGVuY2VzLFxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzLFxuICAgICAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXM7XG5cbiAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0KTtcblxuICBjb25zdCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDtcblxuICBpZiAoaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlczsgLy8vXG5cbiAgICBsZXQgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gMTtcblxuICAgIHdoaWxlIChpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IDAsXG4gICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gLTE7XG5cbiAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXNMZW5ndGg7ICAvLy9cblxuICAgICAgICBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMoZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gZGVmaW5lZFZhcmlhYmxlcy5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGVxdWl2YWxlbmNlcyA9IHJlbWFpbmluZ0VxdWl2YWxlbmNlczsgLy8vXG5cbiAgICAgIHJlbWFpbmluZ0VxdWl2YWxlbmNlcyA9IFtdO1xuXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICAgICAgc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgcHVzaChncm91bmRlZEVxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzKTtcblxuICAgICAgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDsgIC8vL1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0eXBlc0Zyb21FcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzKSB7XG4gIGNvbnN0IHR5cGVzID0gZXF1aXZhbGVuY2VzLm1hcCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCB0eXBlID0gZXF1aXZhbGVuY2UuZ2V0VHlwZSgpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlcztcbn1cblxuZnVuY3Rpb24gZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGxvY2FsQ29udGV4dCkge1xuICBjb25zdCB0ZXJtcyA9IGdyb3VuZGVkVGVybXMsICAvLy9cbiAgICAgICAgdmFyaWFibGVzID0gZGVmaW5lZFZhcmlhYmxlczsgLy8vXG5cbiAgdGVybXMuZm9yRWFjaCgodGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1WYXJpYWJsZXMgPSB0ZXJtLmdldFZhcmlhYmxlcyhsb2NhbENvbnRleHQpO1xuXG4gICAgdGVybVZhcmlhYmxlcy5mb3JFYWNoKCh0ZXJtVmFyaWFibGUpID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlID0gdmFyaWFibGVzLmluY2x1ZGVzKHRlcm1WYXJpYWJsZSk7XG5cbiAgICAgIGlmICghdmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUpIHtcbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSB0ZXJtVmFyaWFibGU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCA9IGVxdWl2YWxlbmNlLmlzSW5pdGlhbGx5R3JvdW5kZWQobG9jYWxDb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBsb2NhbENvbnRleHQpIHtcbiAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMuZm9yRWFjaCgoZ3JvdW5kZWRFcXVpdmFsZW5jZSkgPT4ge1xuICAgIGdyb3VuZGVkRXF1aXZhbGVuY2UuZ2V0R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBsb2NhbENvbnRleHQpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJmaW5kRXF1aXZhbGVuY2VCeVRlcm0iLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyIsImZpbmRFcXVpdmFsZW5jZUJ5VHlwZSIsImdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzRnJvbUZyb21FcXVpdmFsZW5jZXMiLCJtZXJnZUVxdWl2YWxlbmNlcyIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsImNvbXByZXNzIiwic2VwYXJhdGUiLCJlcXVpdmFsZW5jZXNBIiwiZXF1aXZhbGVuY2VzQiIsInR5cGVzQSIsInR5cGVzRnJvbUVxdWl2YWxlbmNlcyIsInR5cGVzQiIsInR5cGVzIiwidHlwZUEiLCJ0eXBlQiIsImVxdWl2YWxlbmNlcyIsIm1hcCIsInR5cGUiLCJlcXVpdmFsZW5jZSIsImVxdWl2YWxlbmNlQSIsImVxdWl2YWxlbmNlQiIsImxlZnRFcXVpdmFsZW5jZSIsInJpZ2h0RXF1aXZhbGVuY2UiLCJFcXVpdmFsZW5jZSIsIm1lcmdlIiwiZmluZCIsImVxdWl2YWxlbmNlTWF0Y2hlc1R5cGUiLCJtYXRjaFR5cGUiLCJ0ZXJtIiwiZXF1aXZhbGVuY2VNYXRjaGVzVGVybSIsIm1hdGNoVGVybSIsInRlcm1Ob2RlcyIsImVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm1zIiwibWF0Y2hUZXJtTm9kZXMiLCJncm91bmRlZFRlcm1zIiwiZGVmaW5lZFZhcmlhYmxlcyIsImxvY2FsQ29udGV4dCIsImdyb3VuZGVkRXF1aXZhbGVuY2VzIiwicmVtYWluaW5nRXF1aXZhbGVuY2VzIiwiaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGgiLCJsZW5ndGgiLCJpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGgiLCJkZWZpbmVkVmFyaWFibGVzTGVuZ3RoIiwicHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoIiwiZ3JvdW5kZWRUZXJtc0Zyb21Hcm91bmRlZEVxdWl2YWxlbmNlc0FuZERlZmluZWRWYXJpYWJsZXMiLCJkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMiLCJzZXBhcmF0ZUltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImdldFR5cGUiLCJ0ZXJtcyIsInZhcmlhYmxlcyIsImZvckVhY2giLCJ0ZXJtVmFyaWFibGVzIiwiZ2V0VmFyaWFibGVzIiwidGVybVZhcmlhYmxlIiwidmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUiLCJpbmNsdWRlcyIsInZhcmlhYmxlIiwiZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCIsImlzSW5pdGlhbGx5R3JvdW5kZWQiLCJlcXVpdmFsZW5jZUltcGxpY2l0bHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwiZ3JvdW5kZWRFcXVpdmFsZW5j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
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZXF1aXZhbGVuY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEVxdWl2YWxlbmNlIGZyb20gXCIuLi9lcXVpdmFsZW5jZVwiO1xuXG5jb25zdCB7IHB1c2gsIGNvbXByZXNzLCBzZXBhcmF0ZSB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBLCBlcXVpdmFsZW5jZXNCKSB7XG4gIGNvbnN0IHR5cGVzQSA9IHR5cGVzRnJvbUVxdWl2YWxlbmNlcyhlcXVpdmFsZW5jZXNBKSxcbiAgICAgICAgdHlwZXNCID0gdHlwZXNGcm9tRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlc0IpLFxuICAgICAgICB0eXBlcyA9IFtcbiAgICAgICAgICAuLi50eXBlc0EsXG4gICAgICAgICAgLi4udHlwZXNCXG4gICAgICAgIF07XG5cbiAgY29tcHJlc3ModHlwZXMsICh0eXBlQSwgdHlwZUIpID0+IHtcbiAgICBpZiAodHlwZUEgPT09IHR5cGVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGVxdWl2YWxlbmNlcyA9IHR5cGVzLm1hcCgodHlwZSkgPT4ge1xuICAgIGxldCBlcXVpdmFsZW5jZTtcblxuICAgIGNvbnN0IGVxdWl2YWxlbmNlQSA9IGZpbmRFcXVpdmFsZW5jZUJ5VHlwZShlcXVpdmFsZW5jZXNBLCB0eXBlKSxcbiAgICAgICAgICBlcXVpdmFsZW5jZUIgPSBmaW5kRXF1aXZhbGVuY2VCeVR5cGUoZXF1aXZhbGVuY2VzQiwgdHlwZSk7XG5cbiAgICBpZiAoKGVxdWl2YWxlbmNlQSAhPT0gbnVsbCkgJiYgKGVxdWl2YWxlbmNlQiAhPT0gbnVsbCkpIHtcbiAgICAgIGNvbnN0IGxlZnRFcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlQSwgLy8vXG4gICAgICAgICAgICByaWdodEVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VCOyAgLy8vXG5cbiAgICAgIGVxdWl2YWxlbmNlID0gRXF1aXZhbGVuY2UubWVyZ2UobGVmdEVxdWl2YWxlbmNlLCByaWdodEVxdWl2YWxlbmNlKTtcbiAgICB9IGVsc2UgaWYgKGVxdWl2YWxlbmNlQSAhPT0gbnVsbCkge1xuICAgICAgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZUE7IC8vL1xuICAgIH0gZWxzZSBpZiAoZXF1aXZhbGVuY2VCICE9PSBudWxsKSB7XG4gICAgICBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlQjsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlO1xuICB9KTtcblxuICByZXR1cm4gZXF1aXZhbGVuY2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEVxdWl2YWxlbmNlQnlUeXBlKGVxdWl2YWxlbmNlcywgdHlwZSkge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlTWF0Y2hlc1R5cGUgPSBlcXVpdmFsZW5jZS5tYXRjaFR5cGUodHlwZSk7XG5cbiAgICBpZiAoZXF1aXZhbGVuY2VNYXRjaGVzVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRFcXVpdmFsZW5jZUJ5VGVybShlcXVpdmFsZW5jZXMsIHRlcm0pIHtcbiAgY29uc3QgZXF1aXZhbGVuY2UgPSBlcXVpdmFsZW5jZXMuZmluZCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCB0ZXJtRXF1YXRlcyA9IGVxdWl2YWxlbmNlLmVxdWF0ZVRlcm0odGVybSk7XG5cbiAgICBpZiAodGVybUVxdWF0ZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gZXF1aXZhbGVuY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyhlcXVpdmFsZW5jZXMsIHRlcm1Ob2Rlcykge1xuICBjb25zdCBlcXVpdmFsZW5jZSA9IGVxdWl2YWxlbmNlcy5maW5kKChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlTWF0Y2hlc1Rlcm1zID0gZXF1aXZhbGVuY2UubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgIGlmIChlcXVpdmFsZW5jZU1hdGNoZXNUZXJtcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBlcXVpdmFsZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzRnJvbUZyb21FcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCBncm91bmRlZFRlcm1zLCBkZWZpbmVkVmFyaWFibGVzLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGdyb3VuZGVkRXF1aXZhbGVuY2VzLFxuICAgICAgcmVtYWluaW5nRXF1aXZhbGVuY2VzLFxuICAgICAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXM7XG5cbiAgcmVtYWluaW5nRXF1aXZhbGVuY2VzID0gW107XG5cbiAgaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0KTtcblxuICBjb25zdCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCA9IGluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDtcblxuICBpZiAoaW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlczsgLy8vXG5cbiAgICBsZXQgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gMTtcblxuICAgIHdoaWxlIChpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXNMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IDAsXG4gICAgICAgICAgcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gLTE7XG5cbiAgICAgIHdoaWxlIChkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID4gcHJldmlvdXNEZWZpbmVkVmFyaWFibGVzTGVuZ3RoKSB7XG4gICAgICAgIHByZXZpb3VzRGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IGRlZmluZWRWYXJpYWJsZXNMZW5ndGg7ICAvLy9cblxuICAgICAgICBncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyhncm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgZ3JvdW5kZWRUZXJtcywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBkZWZpbmVkVmFyaWFibGVzRnJvbUdyb3VuZGVkVGVybXMoZ3JvdW5kZWRUZXJtcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBkZWZpbmVkVmFyaWFibGVzTGVuZ3RoID0gZGVmaW5lZFZhcmlhYmxlcy5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGVxdWl2YWxlbmNlcyA9IHJlbWFpbmluZ0VxdWl2YWxlbmNlczsgLy8vXG5cbiAgICAgIHJlbWFpbmluZ0VxdWl2YWxlbmNlcyA9IFtdO1xuXG4gICAgICBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMgPSBbXTtcblxuICAgICAgc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgcHVzaChncm91bmRlZEVxdWl2YWxlbmNlcywgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzKTtcblxuICAgICAgaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzTGVuZ3RoID0gaW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzLmxlbmd0aDsgIC8vL1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB0eXBlc0Zyb21FcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzKSB7XG4gIGNvbnN0IHR5cGVzID0gZXF1aXZhbGVuY2VzLm1hcCgoZXF1aXZhbGVuY2UpID0+IHtcbiAgICBjb25zdCB0eXBlID0gZXF1aXZhbGVuY2UuZ2V0VHlwZSgpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlcztcbn1cblxuZnVuY3Rpb24gZGVmaW5lZFZhcmlhYmxlc0Zyb21Hcm91bmRlZFRlcm1zKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGxvY2FsQ29udGV4dCkge1xuICBjb25zdCB0ZXJtcyA9IGdyb3VuZGVkVGVybXMsICAvLy9cbiAgICAgICAgdmFyaWFibGVzID0gZGVmaW5lZFZhcmlhYmxlczsgLy8vXG5cbiAgdGVybXMuZm9yRWFjaCgodGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1WYXJpYWJsZXMgPSB0ZXJtLmdldFZhcmlhYmxlcyhsb2NhbENvbnRleHQpO1xuXG4gICAgdGVybVZhcmlhYmxlcy5mb3JFYWNoKCh0ZXJtVmFyaWFibGUpID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlID0gdmFyaWFibGVzLmluY2x1ZGVzKHRlcm1WYXJpYWJsZSk7XG5cbiAgICAgIGlmICghdmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUpIHtcbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSB0ZXJtVmFyaWFibGU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCA9IGVxdWl2YWxlbmNlLmlzSW5pdGlhbGx5R3JvdW5kZWQobG9jYWxDb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBsb2NhbENvbnRleHQpIHtcbiAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMuZm9yRWFjaCgoZ3JvdW5kZWRFcXVpdmFsZW5jZSkgPT4ge1xuICAgIGdyb3VuZGVkRXF1aXZhbGVuY2UuZ2V0R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBsb2NhbENvbnRleHQpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJmaW5kRXF1aXZhbGVuY2VCeVRlcm0iLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyIsImZpbmRFcXVpdmFsZW5jZUJ5VHlwZSIsImdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzRnJvbUZyb21FcXVpdmFsZW5jZXMiLCJtZXJnZUVxdWl2YWxlbmNlcyIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsImNvbXByZXNzIiwic2VwYXJhdGUiLCJlcXVpdmFsZW5jZXNBIiwiZXF1aXZhbGVuY2VzQiIsInR5cGVzQSIsInR5cGVzRnJvbUVxdWl2YWxlbmNlcyIsInR5cGVzQiIsInR5cGVzIiwidHlwZUEiLCJ0eXBlQiIsImVxdWl2YWxlbmNlcyIsIm1hcCIsInR5cGUiLCJlcXVpdmFsZW5jZSIsImVxdWl2YWxlbmNlQSIsImVxdWl2YWxlbmNlQiIsImxlZnRFcXVpdmFsZW5jZSIsInJpZ2h0RXF1aXZhbGVuY2UiLCJFcXVpdmFsZW5jZSIsIm1lcmdlIiwiZmluZCIsImVxdWl2YWxlbmNlTWF0Y2hlc1R5cGUiLCJtYXRjaFR5cGUiLCJ0ZXJtIiwidGVybUVxdWF0ZXMiLCJlcXVhdGVUZXJtIiwidGVybU5vZGVzIiwiZXF1aXZhbGVuY2VNYXRjaGVzVGVybXMiLCJtYXRjaFRlcm1Ob2RlcyIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwibG9jYWxDb250ZXh0IiwiZ3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJyZW1haW5pbmdFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsInNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImxlbmd0aCIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImRlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJwcmV2aW91c0RlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNGcm9tR3JvdW5kZWRUZXJtcyIsInNlcGFyYXRlSW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiZ2V0VHlwZSIsInRlcm1zIiwidmFyaWFibGVzIiwiZm9yRWFjaCIsInRlcm1WYXJpYWJsZXMiLCJnZXRWYXJpYWJsZXMiLCJ0ZXJtVmFyaWFibGUiLCJ2YXJpYWJsZXNJbmNsdWRlc1Rlcm1WYXJpYWJsZSIsImluY2x1ZGVzIiwidmFyaWFibGUiLCJlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsImVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJncm91bmRlZEVxdWl2YWxlbmNlIiwiZ2V0R3JvdW5kZWRUZXJtcyJdLCJtYXBwaW5n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
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
frameFromFrameAndSubstitutions: function() {
|
|
13
|
+
return frameFromFrameAndSubstitutions;
|
|
14
|
+
},
|
|
15
|
+
statementFromStatementAndSubstitutions: function() {
|
|
16
|
+
return statementFromStatementAndSubstitutions;
|
|
17
|
+
},
|
|
18
|
+
termFromTermAndSubstitutions: function() {
|
|
19
|
+
return termFromTermAndSubstitutions;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _query = require("../utilities/query");
|
|
23
|
+
var _name = require("../utilities/name");
|
|
24
|
+
var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!"), metavariableNodeQuery = (0, _query.nodeQuery)("/*/metavariable!");
|
|
25
|
+
function termFromTermAndSubstitutions(term, substitutions) {
|
|
26
|
+
if (term !== null) {
|
|
27
|
+
var termNode = term.getNode();
|
|
28
|
+
term = null;
|
|
29
|
+
var variableNode = variableNodeQuery(termNode);
|
|
30
|
+
if (variableNode !== null) {
|
|
31
|
+
var variableName = (0, _name.variableNameFromVariableNode)(variableNode), substitution = substitutions.findSubstitution(function(substitution) {
|
|
32
|
+
var variableNameMatches = substitution.matchVariableName(variableName);
|
|
33
|
+
if (variableNameMatches) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
if (substitution !== null) {
|
|
38
|
+
term = substitution.getTerm();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return term;
|
|
43
|
+
}
|
|
44
|
+
function frameFromFrameAndSubstitutions(frame, substitutions) {
|
|
45
|
+
if (frame !== null) {
|
|
46
|
+
var frameNode = frame.getNode();
|
|
47
|
+
frame = null;
|
|
48
|
+
var metavariableNode = metavariableNodeQuery(frameNode);
|
|
49
|
+
if (metavariableNode !== null) {
|
|
50
|
+
var substitution = substitutions.findSubstitution(function(substitution) {
|
|
51
|
+
var metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
|
|
52
|
+
if (metavariableNodeMatches) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
if (substitution !== null) {
|
|
57
|
+
frame = substitution.getFrame();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return frame;
|
|
62
|
+
}
|
|
63
|
+
function statementFromStatementAndSubstitutions(statement, substitutions) {
|
|
64
|
+
if (statement !== null) {
|
|
65
|
+
var statementNode = statement.getNode();
|
|
66
|
+
statement = null;
|
|
67
|
+
var metavariableNode = metavariableNodeQuery(statementNode);
|
|
68
|
+
if (metavariableNode !== null) {
|
|
69
|
+
var substitution = substitutions.findSubstitution(function(substitution) {
|
|
70
|
+
var metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
|
|
71
|
+
if (metavariableNodeMatches) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (substitution !== null) {
|
|
76
|
+
statement = substitution.getStatement();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return statement;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3Vic3RpdHV0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8qL21ldGF2YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtRnJvbVRlcm1BbmRTdWJzdGl0dXRpb25zKHRlcm0sIHN1YnN0aXR1dGlvbnMpIHtcbiAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpO1xuXG4gICAgdGVybSA9IG51bGw7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmRTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWVNYXRjaGVzID0gc3Vic3RpdHV0aW9uLm1hdGNoVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTmFtZU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgdGVybSA9IHN1YnN0aXR1dGlvbi5nZXRUZXJtKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnMoZnJhbWUsIHN1YnN0aXR1dGlvbnMpIHtcbiAgaWYgKGZyYW1lICE9PSBudWxsKSB7XG4gICAgY29uc3QgZnJhbWVOb2RlID0gZnJhbWUuZ2V0Tm9kZSgpO1xuXG4gICAgZnJhbWUgPSBudWxsO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShmcmFtZU5vZGUpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzID0gc3Vic3RpdHV0aW9uLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgICBpZiAobWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgZnJhbWUgPSBzdWJzdGl0dXRpb24uZ2V0RnJhbWUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50QW5kU3Vic3RpdHV0aW9ucyhzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMpIHtcbiAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpO1xuXG4gICAgc3RhdGVtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnQgPSBzdWJzdGl0dXRpb24uZ2V0U3RhdGVtZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnMiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50QW5kU3Vic3RpdHV0aW9ucyIsInRlcm1Gcm9tVGVybUFuZFN1YnN0aXR1dGlvbnMiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInRlcm0iLCJzdWJzdGl0dXRpb25zIiwidGVybU5vZGUiLCJnZXROb2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSIsInN1YnN0aXR1dGlvbiIsImZpbmRTdWJzdGl0dXRpb24iLCJ2YXJpYWJsZU5hbWVNYXRjaGVzIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJnZXRUZXJtIiwiZnJhbWUiLCJmcmFtZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJnZXRGcmFtZSIsInN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW1DZ0JBLDhCQUE4QjtlQUE5QkE7O0lBMEJBQyxzQ0FBc0M7ZUFBdENBOztJQXJEQUMsNEJBQTRCO2VBQTVCQTs7O3FCQU5VO29CQUNtQjtBQUU3QyxJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUMsb0JBQzlCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFakMsU0FBU0YsNkJBQTZCSSxJQUFJLEVBQUVDLGFBQWE7SUFDOUQsSUFBSUQsU0FBUyxNQUFNO1FBQ2pCLElBQU1FLFdBQVdGLEtBQUtHLE9BQU87UUFFN0JILE9BQU87UUFFUCxJQUFNSSxlQUFlUCxrQkFBa0JLO1FBRXZDLElBQUlFLGlCQUFpQixNQUFNO1lBQ3pCLElBQU1DLGVBQWVDLElBQUFBLGtDQUE0QixFQUFDRixlQUM1Q0csZUFBZU4sY0FBY08sZ0JBQWdCLENBQUMsU0FBQ0Q7Z0JBQzdDLElBQU1FLHNCQUFzQkYsYUFBYUcsaUJBQWlCLENBQUNMO2dCQUUzRCxJQUFJSSxxQkFBcUI7b0JBQ3ZCLE9BQU87Z0JBQ1Q7WUFDRjtZQUVOLElBQUlGLGlCQUFpQixNQUFNO2dCQUN6QlAsT0FBT08sYUFBYUksT0FBTztZQUM3QjtRQUNGO0lBQ0Y7SUFFQSxPQUFPWDtBQUNUO0FBRU8sU0FBU04sK0JBQStCa0IsS0FBSyxFQUFFWCxhQUFhO0lBQ2pFLElBQUlXLFVBQVUsTUFBTTtRQUNsQixJQUFNQyxZQUFZRCxNQUFNVCxPQUFPO1FBRS9CUyxRQUFRO1FBRVIsSUFBTUUsbUJBQW1CZixzQkFBc0JjO1FBRS9DLElBQUlDLHFCQUFxQixNQUFNO1lBQzdCLElBQU1QLGVBQWVOLGNBQWNPLGdCQUFnQixDQUFDLFNBQUNEO2dCQUNuRCxJQUFNUSwwQkFBMEJSLGFBQWFTLHFCQUFxQixDQUFDRjtnQkFFbkUsSUFBSUMseUJBQXlCO29CQUMzQixPQUFPO2dCQUNUO1lBQ0Y7WUFFQSxJQUFJUixpQkFBaUIsTUFBTTtnQkFDekJLLFFBQVFMLGFBQWFVLFFBQVE7WUFDL0I7UUFDRjtJQUNGO0lBRUEsT0FBT0w7QUFDVDtBQUVPLFNBQVNqQix1Q0FBdUN1QixTQUFTLEVBQUVqQixhQUFhO0lBQzdFLElBQUlpQixjQUFjLE1BQU07UUFDdEIsSUFBTUMsZ0JBQWdCRCxVQUFVZixPQUFPO1FBRXZDZSxZQUFZO1FBRVosSUFBTUosbUJBQW1CZixzQkFBc0JvQjtRQUUvQyxJQUFJTCxxQkFBcUIsTUFBTTtZQUM3QixJQUFNUCxlQUFlTixjQUFjTyxnQkFBZ0IsQ0FBQyxTQUFDRDtnQkFDbkQsSUFBTVEsMEJBQTBCUixhQUFhUyxxQkFBcUIsQ0FBQ0Y7Z0JBRW5FLElBQUlDLHlCQUF5QjtvQkFDM0IsT0FBTztnQkFDVDtZQUNGO1lBRUEsSUFBSVIsaUJBQWlCLE1BQU07Z0JBQ3pCVyxZQUFZWCxhQUFhYSxZQUFZO1lBQ3ZDO1FBQ0Y7SUFDRjtJQUVBLE9BQU9GO0FBQ1QifQ==
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import shim from "../shim";
|
|
4
4
|
|
|
5
5
|
import { isAssertionNegated } from "../utilities/assertion";
|
|
6
|
+
import { termFromTermAndSubstitutions, frameFromFrameAndSubstitutions, statementFromStatementAndSubstitutions } from "../utilities/substitutions";
|
|
6
7
|
|
|
7
8
|
export default class ContainedAssertion {
|
|
8
9
|
constructor(string, node, term, frame, negated, statement) {
|
|
@@ -38,6 +39,27 @@ export default class ContainedAssertion {
|
|
|
38
39
|
return this.statement;
|
|
39
40
|
}
|
|
40
41
|
|
|
42
|
+
resolve(substitutions, localContext) {
|
|
43
|
+
let resolved;
|
|
44
|
+
|
|
45
|
+
const containedAssertionString = this.string; ///
|
|
46
|
+
|
|
47
|
+
localContext.trace(`Resolving the '${containedAssertionString}' contained assertion...`);
|
|
48
|
+
|
|
49
|
+
const term = termFromTermAndSubstitutions(this.term, substitutions),
|
|
50
|
+
frame = frameFromFrameAndSubstitutions(this.frame, substitutions),
|
|
51
|
+
statement = statementFromStatementAndSubstitutions(this.statement, substitutions),
|
|
52
|
+
verifiedWhenDerived = verifyWhenDerived(term, frame, statement, this.negated, localContext);
|
|
53
|
+
|
|
54
|
+
resolved = verifiedWhenDerived; ///
|
|
55
|
+
|
|
56
|
+
if (resolved) {
|
|
57
|
+
localContext.debug(`...resolved the '${containedAssertionString}' contained assertion.`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return resolved;
|
|
61
|
+
}
|
|
62
|
+
|
|
41
63
|
verify(assignments, stated, localContext) {
|
|
42
64
|
let verified = false;
|
|
43
65
|
|
|
@@ -108,43 +130,13 @@ export default class ContainedAssertion {
|
|
|
108
130
|
}
|
|
109
131
|
|
|
110
132
|
verifyWhenDerived(localContext) {
|
|
111
|
-
let verifiedWhenDerived
|
|
133
|
+
let verifiedWhenDerived;
|
|
112
134
|
|
|
113
135
|
const containedAssertionString = this.string; ///
|
|
114
136
|
|
|
115
137
|
localContext.trace(`Verifying the '${containedAssertionString}' derived contained assertion...`);
|
|
116
138
|
|
|
117
|
-
|
|
118
|
-
const variable = this.term.getVariable(localContext);
|
|
119
|
-
|
|
120
|
-
if (variable !== null) {
|
|
121
|
-
const variableContained = this.statement.isVariableContained(variable, localContext);
|
|
122
|
-
|
|
123
|
-
if (!this.negated && variableContained) {
|
|
124
|
-
verifiedWhenDerived = true;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (this.negated && !variableContained) {
|
|
128
|
-
verifiedWhenDerived = true;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
if (this.frame !== null) {
|
|
134
|
-
const metavariable = this.frame.getVariable(localContext);
|
|
135
|
-
|
|
136
|
-
if (metavariable !== null) {
|
|
137
|
-
const metavariableContained = this.statement.isMetavariableContained(metavariable, localContext);
|
|
138
|
-
|
|
139
|
-
if (!this.negated && metavariableContained) {
|
|
140
|
-
verifiedWhenDerived = true;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if (this.negated && !metavariableContained) {
|
|
144
|
-
verifiedWhenDerived = true;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
139
|
+
verifiedWhenDerived = verifyWhenDerived(this.term, this.frame, this.statement, this.negated, localContext);
|
|
148
140
|
|
|
149
141
|
if (verifiedWhenDerived) {
|
|
150
142
|
localContext.debug(`...verified the '${containedAssertionString}' derived contained assertion.`);
|
|
@@ -172,3 +164,41 @@ export default class ContainedAssertion {
|
|
|
172
164
|
return containedAssertion;
|
|
173
165
|
}
|
|
174
166
|
}
|
|
167
|
+
|
|
168
|
+
function verifyWhenDerived(term, frame, statement, negated, localContext) {
|
|
169
|
+
let verifiedWhenDerived = false;
|
|
170
|
+
|
|
171
|
+
if (term !== null) {
|
|
172
|
+
const variable = term.getVariable(localContext);
|
|
173
|
+
|
|
174
|
+
if (variable !== null) {
|
|
175
|
+
const variableContained = statement.isVariableContained(variable, localContext);
|
|
176
|
+
|
|
177
|
+
if (!negated && variableContained) {
|
|
178
|
+
verifiedWhenDerived = true;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (negated && !variableContained) {
|
|
182
|
+
verifiedWhenDerived = true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (frame !== null) {
|
|
188
|
+
const metavariable = frame.getMetavariable(localContext);
|
|
189
|
+
|
|
190
|
+
if (metavariable !== null) {
|
|
191
|
+
const metavariableContained = statement.isMetavariableContained(metavariable, localContext);
|
|
192
|
+
|
|
193
|
+
if (!negated && metavariableContained) {
|
|
194
|
+
verifiedWhenDerived = true;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (negated && !metavariableContained) {
|
|
198
|
+
verifiedWhenDerived = true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return verifiedWhenDerived;
|
|
204
|
+
}
|
package/src/assertion/defined.js
CHANGED
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import shim from "../shim";
|
|
4
4
|
|
|
5
|
+
import { nodeQuery } from "../utilities/query";
|
|
5
6
|
import { isAssertionNegated } from "../utilities/assertion";
|
|
7
|
+
import { variableNameFromVariableNode } from "../utilities/name";
|
|
8
|
+
import { termFromTermAndSubstitutions, frameFromFrameAndSubstitutions } from "../utilities/substitutions";
|
|
9
|
+
|
|
10
|
+
const variableNodeQuery = nodeQuery("/term/variable!"),
|
|
11
|
+
metavariableNodeQuery = nodeQuery("/frame/metavariable!");
|
|
6
12
|
|
|
7
13
|
export default class DefinedAssertion {
|
|
8
14
|
constructor(string, node, term, frame, negated) {
|
|
@@ -33,6 +39,26 @@ export default class DefinedAssertion {
|
|
|
33
39
|
return this.negated;
|
|
34
40
|
}
|
|
35
41
|
|
|
42
|
+
resolve(substitutions, localContext) {
|
|
43
|
+
let resolved;
|
|
44
|
+
|
|
45
|
+
const definedAssertionString = this.string; ///
|
|
46
|
+
|
|
47
|
+
localContext.trace(`Resolving the '${definedAssertionString}' defined assertion...`);
|
|
48
|
+
|
|
49
|
+
const term = termFromTermAndSubstitutions(this.term, substitutions),
|
|
50
|
+
frame = frameFromFrameAndSubstitutions(this.frame, substitutions),
|
|
51
|
+
verifiedWhenDerived = verifyWhenDerived(term, frame, this.negated, localContext);
|
|
52
|
+
|
|
53
|
+
resolved = verifiedWhenDerived; ///
|
|
54
|
+
|
|
55
|
+
if (resolved) {
|
|
56
|
+
localContext.debug(`...resolved the '${definedAssertionString}' defined assertion.`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return resolved;
|
|
60
|
+
}
|
|
61
|
+
|
|
36
62
|
verify(assignments, stated, localContext) {
|
|
37
63
|
let verified = false;
|
|
38
64
|
|
|
@@ -98,43 +124,13 @@ export default class DefinedAssertion {
|
|
|
98
124
|
}
|
|
99
125
|
|
|
100
126
|
verifyWhenDerived(localContext) {
|
|
101
|
-
let verifiedWhenDerived
|
|
127
|
+
let verifiedWhenDerived;
|
|
102
128
|
|
|
103
129
|
const definedAssertionString = this.string; ///
|
|
104
130
|
|
|
105
131
|
localContext.trace(`Verifying the '${definedAssertionString}' derived defined assertion...`);
|
|
106
132
|
|
|
107
|
-
|
|
108
|
-
const { Variable } = shim,
|
|
109
|
-
termNode = this.term.getNode(),
|
|
110
|
-
variable = Variable.fromTermNode(termNode, localContext),
|
|
111
|
-
variableDefined = localContext.isVariableDefined(variable);
|
|
112
|
-
|
|
113
|
-
if (!this.negated && variableDefined) {
|
|
114
|
-
verifiedWhenDerived = true;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (this.negated && !variableDefined) {
|
|
118
|
-
verifiedWhenDerived = true;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (this.frame!== null) {
|
|
123
|
-
debugger
|
|
124
|
-
|
|
125
|
-
const { Metavariable } = shim,
|
|
126
|
-
frameNode = this.frame.getNode(),
|
|
127
|
-
metavariable = Metavariable.fromTermNode(frameNode, localContext),
|
|
128
|
-
metavariableDefined = localContext.isMetametavariableDefined(metavariable);
|
|
129
|
-
|
|
130
|
-
if (!this.negated && metavariableDefined) {
|
|
131
|
-
verifiedWhenDerived = true;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (this.negated && !metavariableDefined) {
|
|
135
|
-
verifiedWhenDerived = true;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
133
|
+
verifiedWhenDerived = verifyWhenDerived(this.term, this.frame, this.negated, localContext);
|
|
138
134
|
|
|
139
135
|
if (verifiedWhenDerived) {
|
|
140
136
|
localContext.debug(`...verified the '${definedAssertionString}' derived defined assertion.`);
|
|
@@ -161,3 +157,38 @@ export default class DefinedAssertion {
|
|
|
161
157
|
return definedAssertion;
|
|
162
158
|
}
|
|
163
159
|
}
|
|
160
|
+
|
|
161
|
+
function verifyWhenDerived(term, frame, negated, localContext) {
|
|
162
|
+
let verifiedWhenDerived = false;
|
|
163
|
+
|
|
164
|
+
if (term !== null) {
|
|
165
|
+
const termNode = term.getNode(),
|
|
166
|
+
variableNode = variableNodeQuery(termNode),
|
|
167
|
+
variableName = variableNameFromVariableNode(variableNode),
|
|
168
|
+
variableDefined = localContext.isVariableDefinedByVariableName(variableName);
|
|
169
|
+
|
|
170
|
+
if (!negated && variableDefined) {
|
|
171
|
+
verifiedWhenDerived = true;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (negated && !variableDefined) {
|
|
175
|
+
verifiedWhenDerived = true;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (frame!== null) {
|
|
180
|
+
const frameNode = frame.getNode(),
|
|
181
|
+
metavariableNode = metavariableNodeQuery(frameNode),
|
|
182
|
+
metavariableDefined = localContext.isJudgementPresentByMetavariableNode(metavariableNode);
|
|
183
|
+
|
|
184
|
+
if (!negated && metavariableDefined) {
|
|
185
|
+
verifiedWhenDerived = true;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (negated && !metavariableDefined) {
|
|
189
|
+
verifiedWhenDerived = true;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return verifiedWhenDerived;
|
|
194
|
+
}
|
package/src/context/local.js
CHANGED
|
@@ -250,7 +250,7 @@ class LocalContext {
|
|
|
250
250
|
return termGrounded;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
|
|
253
|
+
isVariableDefinedByVariableName(variableName) {
|
|
254
254
|
const context = this,
|
|
255
255
|
equivalences = this.getEquivalences(),
|
|
256
256
|
groundedTerms = [],
|
|
@@ -259,9 +259,9 @@ class LocalContext {
|
|
|
259
259
|
groundedTermsAndDefinedVariablesFromFromEquivalences(equivalences, groundedTerms, definedVariables, context);
|
|
260
260
|
|
|
261
261
|
const variableMatchesDefinedVariable = definedVariables.some((definedVariable) => {
|
|
262
|
-
const
|
|
262
|
+
const definedVariableName = definedVariable.getName();
|
|
263
263
|
|
|
264
|
-
if (
|
|
264
|
+
if (definedVariableName === variableName) {
|
|
265
265
|
return true;
|
|
266
266
|
}
|
|
267
267
|
}),
|
package/src/equality.js
CHANGED
|
@@ -50,8 +50,9 @@ class Equality {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
isReflexive() {
|
|
53
|
-
const
|
|
54
|
-
|
|
53
|
+
const rightTermNode = this.rightTerm.getNode(),
|
|
54
|
+
leftTermNodeMatchesRightTermNode = this.leftTerm.matchTermNode(rightTermNode),
|
|
55
|
+
reflexive = leftTermNodeMatchesRightTermNode; ///
|
|
55
56
|
|
|
56
57
|
return reflexive;
|
|
57
58
|
}
|
package/src/equivalence.js
CHANGED
|
@@ -56,30 +56,18 @@ export default class Equivalence {
|
|
|
56
56
|
return typeMatches;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
equateTerm(term) {
|
|
60
60
|
const termA = term, ///
|
|
61
|
-
|
|
61
|
+
termEquates = this.terms.some((term) => {
|
|
62
62
|
const termB = term, ///
|
|
63
|
-
|
|
63
|
+
termAEqualToTermB = termA.isEqualTo(termB);
|
|
64
64
|
|
|
65
|
-
if (
|
|
65
|
+
if (termAEqualToTermB) {
|
|
66
66
|
return true;
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
|
|
70
|
-
return
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
matchTerms(terms) {
|
|
74
|
-
const termsMatch = terms.every((term) => {
|
|
75
|
-
const termMatches = this.matchTerm(term);
|
|
76
|
-
|
|
77
|
-
if (termMatches) {
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
return termsMatch;
|
|
70
|
+
return termEquates;
|
|
83
71
|
}
|
|
84
72
|
|
|
85
73
|
matchTermNode(termNode) {
|
|
@@ -206,7 +194,7 @@ export default class Equivalence {
|
|
|
206
194
|
|
|
207
195
|
string = (string === null) ?
|
|
208
196
|
termString :
|
|
209
|
-
`${string} ${termString}`;
|
|
197
|
+
`${string} = ${termString}`;
|
|
210
198
|
|
|
211
199
|
return string;
|
|
212
200
|
}, null);
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import DefinedAssertion from "../../assertion/defined";
|
|
4
|
+
import ContainedAssertion from "../../assertion/contained";
|
|
5
|
+
|
|
6
|
+
import { nodeQuery } from "../../utilities/query";
|
|
7
|
+
|
|
8
|
+
const definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion"),
|
|
9
|
+
containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion");
|
|
10
|
+
|
|
11
|
+
function resolveAsDefinedAssertion(statement, substitutions, localContextA, localContextB) {
|
|
12
|
+
let resolvedAsDefinedAssertion = false;
|
|
13
|
+
|
|
14
|
+
const localContext = localContextA, ///
|
|
15
|
+
statementNode = statement.getNode(),
|
|
16
|
+
definedAssertionNode = definedAssertionNodeQuery(statementNode),
|
|
17
|
+
definedAssertion = DefinedAssertion.fromDefinedAssertionNode(definedAssertionNode, localContext);
|
|
18
|
+
|
|
19
|
+
if (definedAssertion !== null) {
|
|
20
|
+
const statementString = statement.getString();
|
|
21
|
+
|
|
22
|
+
localContextB.trace(`Resolving the '${statementString}' statement as a defined assertion...`);
|
|
23
|
+
|
|
24
|
+
const localContext = localContextB, ///
|
|
25
|
+
definedAssertionVerified = definedAssertion.resolve(substitutions, localContext);
|
|
26
|
+
|
|
27
|
+
resolvedAsDefinedAssertion = definedAssertionVerified; ///
|
|
28
|
+
|
|
29
|
+
if (resolvedAsDefinedAssertion) {
|
|
30
|
+
localContextB.debug(`...resolved the '${statementString}' statement as a defined assertion.`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return resolvedAsDefinedAssertion;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function resolveAsContainedAssertion(statement, substitutions, localContextA, localContextB) {
|
|
38
|
+
let resolvedAsContainedAssertion = false;
|
|
39
|
+
|
|
40
|
+
const localContext = localContextA, ///
|
|
41
|
+
statementNode = statement.getNode(),
|
|
42
|
+
containedAssertionNode = containedAssertionNodeQuery(statementNode),
|
|
43
|
+
containedAssertion = ContainedAssertion.fromContainedAssertionNode(containedAssertionNode, localContext);
|
|
44
|
+
|
|
45
|
+
if (containedAssertion !== null) {
|
|
46
|
+
const statementString = statement.getString();
|
|
47
|
+
|
|
48
|
+
localContextB.trace(`Resolving the '${statementString}' statement as a contained assertion...`);
|
|
49
|
+
|
|
50
|
+
const localContext = localContextB, ///
|
|
51
|
+
containedAssertionVerified = containedAssertion.resolve(substitutions, localContext);
|
|
52
|
+
|
|
53
|
+
resolvedAsContainedAssertion = containedAssertionVerified; ///
|
|
54
|
+
|
|
55
|
+
if (resolvedAsContainedAssertion) {
|
|
56
|
+
localContextB.debug(`...resolved the '${statementString}' statement as a contained assertion.`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return resolvedAsContainedAssertion;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const resolveMixins = [
|
|
64
|
+
resolveAsDefinedAssertion,
|
|
65
|
+
resolveAsContainedAssertion
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
export default resolveMixins;
|
package/src/premise.js
CHANGED
|
@@ -28,6 +28,30 @@ class Premise {
|
|
|
28
28
|
|
|
29
29
|
getStatement() { return this.unqualifiedStatement.getStatement(); }
|
|
30
30
|
|
|
31
|
+
resolveIndependently(substitutions, localContext) {
|
|
32
|
+
let resolvedIndependently;
|
|
33
|
+
|
|
34
|
+
const premiseString = this.getString();
|
|
35
|
+
|
|
36
|
+
const localContextB = localContext; ///
|
|
37
|
+
|
|
38
|
+
localContext = LocalContext.fromFileContext(this.fileContext);
|
|
39
|
+
|
|
40
|
+
const localContextA = localContext; ///
|
|
41
|
+
|
|
42
|
+
localContextB.trace(`Resolving the '${premiseString}' premise independently...`);
|
|
43
|
+
|
|
44
|
+
const unqualifiedStatementResolvedIndependently = this.unqualifiedStatement.resolveIndependently(substitutions, localContextA, localContextB);
|
|
45
|
+
|
|
46
|
+
resolvedIndependently = unqualifiedStatementResolvedIndependently; ///
|
|
47
|
+
|
|
48
|
+
if (resolvedIndependently) {
|
|
49
|
+
localContextB.trace(`...resolved the '${premiseString}' premise independently.`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return resolvedIndependently;
|
|
53
|
+
}
|
|
54
|
+
|
|
31
55
|
unifyProofStep(proofStep, substitutions, localContext) {
|
|
32
56
|
let proofStepUnified = false;
|
|
33
57
|
|
|
@@ -97,24 +121,28 @@ class Premise {
|
|
|
97
121
|
premiseStatement = premise.getStatement(),
|
|
98
122
|
premiseStatementString = premiseStatement.getString();
|
|
99
123
|
|
|
100
|
-
|
|
124
|
+
const localContextB = localContext; ///
|
|
101
125
|
|
|
102
126
|
const statement = this.unqualifiedStatement.getStatement(),
|
|
103
|
-
statementNode = statement.getNode(),
|
|
104
127
|
statementTokens = statement.getTokens(),
|
|
105
128
|
context = this.fileContext, ///
|
|
106
129
|
tokens = statementTokens; ///
|
|
107
130
|
|
|
108
131
|
localContext = LocalContext.fromContextAndTokens(context, tokens); ///
|
|
109
132
|
|
|
110
|
-
const
|
|
133
|
+
const localContextA = localContext; ///
|
|
134
|
+
|
|
135
|
+
localContextB.trace(`Unifying the '${subproofString}' subproof with the premise's '${premiseStatementString}' statement...`);
|
|
136
|
+
|
|
137
|
+
const statementNode = statement.getNode(),
|
|
138
|
+
subproofAssertion = SubproofAssertion.fromStatementNode(statementNode, localContext);
|
|
111
139
|
|
|
112
140
|
if (subproofAssertion !== null) {
|
|
113
|
-
subproofUnified = subproofAssertion.unifySubproof(subproof, substitutions,
|
|
141
|
+
subproofUnified = subproofAssertion.unifySubproof(subproof, substitutions, localContextA, localContextB);
|
|
114
142
|
}
|
|
115
143
|
|
|
116
144
|
if (subproofUnified) {
|
|
117
|
-
|
|
145
|
+
localContextB.debug(`...unified the '${subproofString}' subproof with the premise's '${premiseStatementString}' statement.`);
|
|
118
146
|
}
|
|
119
147
|
|
|
120
148
|
return subproofUnified;
|