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.
@@ -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 equivalenceMatchesTerm = equivalence.matchTerm(term);
95
- if (equivalenceMatchesTerm) {
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+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlc0luY2x1ZGVzVGVybVZhcmlhYmxlID0gdmFyaWFibGVzLmluY2x1ZGVzKHRlcm1WYXJpYWJsZSk7XG5cbiAgICAgIGlmICghdmFyaWFibGVzSW5jbHVkZXNUZXJtVmFyaWFibGUpIHtcbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSB0ZXJtVmFyaWFibGU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXBhcmF0ZUluaXRpYWxseUdyb3VuZGVkRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcywgKGVxdWl2YWxlbmNlKSA9PiB7XG4gICAgY29uc3QgZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCA9IGVxdWl2YWxlbmNlLmlzSW5pdGlhbGx5R3JvdW5kZWQobG9jYWxDb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbml0aWFsbHlHcm91bmRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VwYXJhdGVJbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCByZW1haW5pbmdFcXVpdmFsZW5jZXMsIGltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcywgZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KSB7XG4gIHNlcGFyYXRlKGVxdWl2YWxlbmNlcywgcmVtYWluaW5nRXF1aXZhbGVuY2VzLCBpbXBsaWNpdGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMsIChlcXVpdmFsZW5jZSkgPT4ge1xuICAgIGNvbnN0IGVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkID0gZXF1aXZhbGVuY2UuaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICghZXF1aXZhbGVuY2VJbXBsaWNpdGx5R3JvdW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdyb3VuZGVkVGVybXNGcm9tR3JvdW5kZWRFcXVpdmFsZW5jZXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkRXF1aXZhbGVuY2VzLCBkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBsb2NhbENvbnRleHQpIHtcbiAgZ3JvdW5kZWRFcXVpdmFsZW5jZXMuZm9yRWFjaCgoZ3JvdW5kZWRFcXVpdmFsZW5jZSkgPT4ge1xuICAgIGdyb3VuZGVkRXF1aXZhbGVuY2UuZ2V0R3JvdW5kZWRUZXJtcyhkZWZpbmVkVmFyaWFibGVzLCBncm91bmRlZFRlcm1zLCBsb2NhbENvbnRleHQpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJmaW5kRXF1aXZhbGVuY2VCeVRlcm0iLCJmaW5kRXF1aXZhbGVuY2VCeVRlcm1Ob2RlcyIsImZpbmRFcXVpdmFsZW5jZUJ5VHlwZSIsImdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzRnJvbUZyb21FcXVpdmFsZW5jZXMiLCJtZXJnZUVxdWl2YWxlbmNlcyIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsImNvbXByZXNzIiwic2VwYXJhdGUiLCJlcXVpdmFsZW5jZXNBIiwiZXF1aXZhbGVuY2VzQiIsInR5cGVzQSIsInR5cGVzRnJvbUVxdWl2YWxlbmNlcyIsInR5cGVzQiIsInR5cGVzIiwidHlwZUEiLCJ0eXBlQiIsImVxdWl2YWxlbmNlcyIsIm1hcCIsInR5cGUiLCJlcXVpdmFsZW5jZSIsImVxdWl2YWxlbmNlQSIsImVxdWl2YWxlbmNlQiIsImxlZnRFcXVpdmFsZW5jZSIsInJpZ2h0RXF1aXZhbGVuY2UiLCJFcXVpdmFsZW5jZSIsIm1lcmdlIiwiZmluZCIsImVxdWl2YWxlbmNlTWF0Y2hlc1R5cGUiLCJtYXRjaFR5cGUiLCJ0ZXJtIiwidGVybUVxdWF0ZXMiLCJlcXVhdGVUZXJtIiwidGVybU5vZGVzIiwiZXF1aXZhbGVuY2VNYXRjaGVzVGVybXMiLCJtYXRjaFRlcm1Ob2RlcyIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwibG9jYWxDb250ZXh0IiwiZ3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJyZW1haW5pbmdFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlcyIsInNlcGFyYXRlSW5pdGlhbGx5R3JvdW5kZWRFcXVpdmFsZW5jZXMiLCJpbml0aWFsbHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImxlbmd0aCIsImltcGxpY2l0bHlHcm91bmRlZEVxdWl2YWxlbmNlc0xlbmd0aCIsImRlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJwcmV2aW91c0RlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJncm91bmRlZFRlcm1zRnJvbUdyb3VuZGVkRXF1aXZhbGVuY2VzQW5kRGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNGcm9tR3JvdW5kZWRUZXJtcyIsInNlcGFyYXRlSW1wbGljaXRseUdyb3VuZGVkRXF1aXZhbGVuY2VzIiwiZ2V0VHlwZSIsInRlcm1zIiwidmFyaWFibGVzIiwiZm9yRWFjaCIsInRlcm1WYXJpYWJsZXMiLCJnZXRWYXJpYWJsZXMiLCJ0ZXJtVmFyaWFibGUiLCJ2YXJpYWJsZXNJbmNsdWRlc1Rlcm1WYXJpYWJsZSIsImluY2x1ZGVzIiwidmFyaWFibGUiLCJlcXVpdmFsZW5jZUluaXRpYWxseUdyb3VuZGVkIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsImVxdWl2YWxlbmNlSW1wbGljaXRseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJncm91bmRlZEVxdWl2YWxlbmNlIiwiZ2V0R3JvdW5kZWRUZXJtcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBeURnQkEscUJBQXFCO2VBQXJCQTs7SUFZQUMsMEJBQTBCO2VBQTFCQTs7SUF4QkFDLHFCQUFxQjtlQUFyQkE7O0lBb0NBQyxvREFBb0Q7ZUFBcERBOztJQXpFQUMsaUJBQWlCO2VBQWpCQTs7O3lCQU5lO2tFQUVQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhCLElBQVFDLE9BQTZCQyx5QkFBYyxDQUEzQ0QsTUFBTUUsV0FBdUJELHlCQUFjLENBQXJDQyxVQUFVQyxXQUFhRix5QkFBYyxDQUEzQkU7QUFFakIsU0FBU0osa0JBQWtCSyxhQUFhLEVBQUVDLGFBQWE7SUFDNUQsSUFBTUMsU0FBU0Msc0JBQXNCSCxnQkFDL0JJLFNBQVNELHNCQUFzQkYsZ0JBQy9CSSxRQUFRLEFBQ04scUJBQUdILGVBQ0gscUJBQUdFO0lBR1hOLFNBQVNPLE9BQU8sU0FBQ0MsT0FBT0M7UUFDdEIsSUFBSUQsVUFBVUMsT0FBTztZQUNuQixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQU1DLGVBQWVILE1BQU1JLEdBQUcsQ0FBQyxTQUFDQztRQUM5QixJQUFJQztRQUVKLElBQU1DLGVBQWVuQixzQkFBc0JPLGVBQWVVLE9BQ3BERyxlQUFlcEIsc0JBQXNCUSxlQUFlUztRQUUxRCxJQUFJLEFBQUNFLGlCQUFpQixRQUFVQyxpQkFBaUIsTUFBTztZQUN0RCxJQUFNQyxrQkFBa0JGLGNBQ2xCRyxtQkFBbUJGLGNBQWUsR0FBRztZQUUzQ0YsY0FBY0ssb0JBQVcsQ0FBQ0MsS0FBSyxDQUFDSCxpQkFBaUJDO1FBQ25ELE9BQU8sSUFBSUgsaUJBQWlCLE1BQU07WUFDaENELGNBQWNDLGNBQWMsR0FBRztRQUNqQyxPQUFPLElBQUlDLGlCQUFpQixNQUFNO1lBQ2hDRixjQUFjRSxjQUFjLEdBQUc7UUFDakM7UUFFQSxPQUFPRjtJQUNUO0lBRUEsT0FBT0g7QUFDVDtBQUVPLFNBQVNmLHNCQUFzQmUsWUFBWSxFQUFFRSxJQUFJO0lBQ3RELElBQU1DLGNBQWNILGFBQWFVLElBQUksQ0FBQyxTQUFDUDtRQUNyQyxJQUFNUSx5QkFBeUJSLFlBQVlTLFNBQVMsQ0FBQ1Y7UUFFckQsSUFBSVMsd0JBQXdCO1lBQzFCLE9BQU87UUFDVDtJQUNGLE1BQU07SUFFTixPQUFPUjtBQUNUO0FBRU8sU0FBU3BCLHNCQUFzQmlCLFlBQVksRUFBRWEsSUFBSTtJQUN0RCxJQUFNVixjQUFjSCxhQUFhVSxJQUFJLENBQUMsU0FBQ1A7UUFDckMsSUFBTVcsY0FBY1gsWUFBWVksVUFBVSxDQUFDRjtRQUUzQyxJQUFJQyxhQUFhO1lBQ2YsT0FBTztRQUNUO0lBQ0YsTUFBTTtJQUVOLE9BQU9YO0FBQ1Q7QUFFTyxTQUFTbkIsMkJBQTJCZ0IsWUFBWSxFQUFFZ0IsU0FBUztJQUNoRSxJQUFNYixjQUFjSCxhQUFhVSxJQUFJLENBQUMsU0FBQ1A7UUFDckMsSUFBTWMsMEJBQTBCZCxZQUFZZSxjQUFjLENBQUNGO1FBRTNELElBQUlDLHlCQUF5QjtZQUMzQixPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRU4sT0FBT2Q7QUFDVDtBQUVPLFNBQVNqQixxREFBcURjLFlBQVksRUFBRW1CLGFBQWEsRUFBRUMsZ0JBQWdCLEVBQUVDLFlBQVk7SUFDOUgsSUFBSUMsc0JBQ0FDLHVCQUNBQywrQkFDQUM7SUFFSkYsd0JBQXdCLEVBQUU7SUFFMUJDLGdDQUFnQyxFQUFFO0lBRWxDRSxzQ0FBc0MxQixjQUFjdUIsdUJBQXVCQywrQkFBK0JIO0lBRTFHLElBQU1NLHNDQUFzQ0gsOEJBQThCSSxNQUFNO0lBRWhGLElBQUlELHNDQUFzQyxHQUFHO1FBQzNDTCx1QkFBdUJFLCtCQUErQixHQUFHO1FBRXpELElBQUlLLHVDQUF1QztRQUUzQyxNQUFPQSx1Q0FBdUMsRUFBRztZQUMvQyxJQUFJQyx5QkFBeUIsR0FDekJDLGlDQUFpQyxDQUFDO1lBRXRDLE1BQU9ELHlCQUF5QkMsK0JBQWdDO2dCQUM5REEsaUNBQWlDRCx3QkFBeUIsR0FBRztnQkFFN0RFLHlEQUF5RFYsc0JBQXNCRixrQkFBa0JELGVBQWVFO2dCQUVoSFksa0NBQWtDZCxlQUFlQyxrQkFBa0JDO2dCQUVuRVMseUJBQXlCVixpQkFBaUJRLE1BQU07WUFDbEQ7WUFFQTVCLGVBQWV1Qix1QkFBdUIsR0FBRztZQUV6Q0Esd0JBQXdCLEVBQUU7WUFFMUJFLGlDQUFpQyxFQUFFO1lBRW5DUyx1Q0FBdUNsQyxjQUFjdUIsdUJBQXVCRSxnQ0FBZ0NMLGtCQUFrQkM7WUFFOUhqQyxLQUFLa0Msc0JBQXNCRztZQUUzQkksdUNBQXVDSiwrQkFBK0JHLE1BQU0sRUFBRyxHQUFHO1FBQ3BGO0lBQ0Y7QUFDRjtBQUVBLFNBQVNqQyxzQkFBc0JLLFlBQVk7SUFDekMsSUFBTUgsUUFBUUcsYUFBYUMsR0FBRyxDQUFDLFNBQUNFO1FBQzlCLElBQU1ELE9BQU9DLFlBQVlnQyxPQUFPO1FBRWhDLE9BQU9qQztJQUNUO0lBRUEsT0FBT0w7QUFDVDtBQUVBLFNBQVNvQyxrQ0FBa0NkLGFBQWEsRUFBRUMsZ0JBQWdCLEVBQUVDLFlBQVk7SUFDdEYsSUFBTWUsUUFBUWpCLGVBQ1JrQixZQUFZakIsa0JBQWtCLEdBQUc7SUFFdkNnQixNQUFNRSxPQUFPLENBQUMsU0FBQ3pCO1FBQ2IsSUFBTTBCLGdCQUFnQjFCLEtBQUsyQixZQUFZLENBQUNuQjtRQUV4Q2tCLGNBQWNELE9BQU8sQ0FBQyxTQUFDRztZQUNyQixJQUFNQyxnQ0FBZ0NMLFVBQVVNLFFBQVEsQ0FBQ0Y7WUFFekQsSUFBSSxDQUFDQywrQkFBK0I7Z0JBQ2xDLElBQU1FLFdBQVdILGNBQWUsR0FBRztnQkFFbkNKLFVBQVVqRCxJQUFJLENBQUN3RDtZQUNqQjtRQUNGO0lBQ0Y7QUFDRjtBQUVBLFNBQVNsQixzQ0FBc0MxQixZQUFZLEVBQUV1QixxQkFBcUIsRUFBRUMsNkJBQTZCLEVBQUVILFlBQVk7SUFDN0g5QixTQUFTUyxjQUFjdUIsdUJBQXVCQywrQkFBK0IsU0FBQ3JCO1FBQzVFLElBQU0wQywrQkFBK0IxQyxZQUFZMkMsbUJBQW1CLENBQUN6QjtRQUVyRSxJQUFJLENBQUN3Qiw4QkFBOEI7WUFDakMsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVBLFNBQVNYLHVDQUF1Q2xDLFlBQVksRUFBRXVCLHFCQUFxQixFQUFFRSw4QkFBOEIsRUFBRUwsZ0JBQWdCLEVBQUVDLFlBQVk7SUFDako5QixTQUFTUyxjQUFjdUIsdUJBQXVCRSxnQ0FBZ0MsU0FBQ3RCO1FBQzdFLElBQU00QyxnQ0FBZ0M1QyxZQUFZNkMsb0JBQW9CLENBQUM1QixrQkFBa0JDO1FBRXpGLElBQUksQ0FBQzBCLCtCQUErQjtZQUNsQyxPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRUEsU0FBU2YseURBQXlEVixvQkFBb0IsRUFBRUYsZ0JBQWdCLEVBQUVELGFBQWEsRUFBRUUsWUFBWTtJQUNuSUMscUJBQXFCZ0IsT0FBTyxDQUFDLFNBQUNXO1FBQzVCQSxvQkFBb0JDLGdCQUFnQixDQUFDOUIsa0JBQWtCRCxlQUFlRTtJQUN4RTtBQUNGIn0=
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.1077",
4
+ "version": "0.0.1079",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -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 = false;
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
- if (this.term !== null) {
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
+ }
@@ -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 = false;
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
- if (this.term !== null) {
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
+ }
@@ -250,7 +250,7 @@ class LocalContext {
250
250
  return termGrounded;
251
251
  }
252
252
 
253
- isVariableDefined(variable) {
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 variableMatchesDefinedVariable = variable.match(definedVariable);
262
+ const definedVariableName = definedVariable.getName();
263
263
 
264
- if (variableMatchesDefinedVariable) {
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 leftTermMatchesRightTerm = this.leftTerm.match(this.rightTerm),
54
- reflexive = leftTermMatchesRightTerm; ///
53
+ const rightTermNode = this.rightTerm.getNode(),
54
+ leftTermNodeMatchesRightTermNode = this.leftTerm.matchTermNode(rightTermNode),
55
+ reflexive = leftTermNodeMatchesRightTermNode; ///
55
56
 
56
57
  return reflexive;
57
58
  }
@@ -56,30 +56,18 @@ export default class Equivalence {
56
56
  return typeMatches;
57
57
  }
58
58
 
59
- matchTerm(term) {
59
+ equateTerm(term) {
60
60
  const termA = term, ///
61
- termMatches = this.terms.some((term) => {
61
+ termEquates = this.terms.some((term) => {
62
62
  const termB = term, ///
63
- termAMatchesTermB = termA.match(termB);
63
+ termAEqualToTermB = termA.isEqualTo(termB);
64
64
 
65
- if (termAMatchesTermB) {
65
+ if (termAEqualToTermB) {
66
66
  return true;
67
67
  }
68
68
  });
69
69
 
70
- return termMatches;
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
- localContext.trace(`Unifying the '${subproofString}' subproof with the premise's '${premiseStatementString}' statement...`);
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 subproofAssertion = SubproofAssertion.fromStatementNode(statementNode, localContext);
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, this.fileContext, localContext);
141
+ subproofUnified = subproofAssertion.unifySubproof(subproof, substitutions, localContextA, localContextB);
114
142
  }
115
143
 
116
144
  if (subproofUnified) {
117
- localContext.debug(`...unified the '${subproofString}' subproof with the premise's '${premiseStatementString}' statement.`);
145
+ localContextB.debug(`...unified the '${subproofString}' subproof with the premise's '${premiseStatementString}' statement.`);
118
146
  }
119
147
 
120
148
  return subproofUnified;