occam-verify-cli 0.0.1247 → 0.0.1248

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.
@@ -84,7 +84,7 @@ function unifyMetavariable(generalMetavariable, specificMetavariable, generalCon
84
84
  metavariableUnified = _metavariable.default.unify(generalMetavariableNode, specificMetavariableNode, generalContext, specificContext);
85
85
  return metavariableUnified;
86
86
  }
87
- function unifyLabelWithReference(label, reference, substitutions, context) {
87
+ function unifyLabelWithReference(label, reference, context) {
88
88
  var labelUnifiedWithReference;
89
89
  var generalContext, specificContext;
90
90
  var fileContext = label.getFileContext(), labelMetavariable = label.getMetavariable(), referenceMetavariable = reference.getMetavariable(), labelMetavariableNode = labelMetavariable.getNode(), labelMetavariableTokens = labelMetavariable.getTokens(), referenceMetavariableNode = referenceMetavariable.getNode(), referenceMetavariableTokens = referenceMetavariable.getTokens();
@@ -92,7 +92,7 @@ function unifyLabelWithReference(label, reference, substitutions, context) {
92
92
  specificContext = fileContext; ///
93
93
  generalContext = contextFromTokens(labelMetavariableTokens, generalContext); ///
94
94
  specificContext = contextFromTokens(referenceMetavariableTokens, specificContext); ///
95
- var referenceUnified = _reference.default.unify(labelMetavariableNode, referenceMetavariableNode, substitutions, generalContext, specificContext);
95
+ var substitutions = _substitutions.default.fromNothing(), referenceUnified = _reference.default.unify(labelMetavariableNode, referenceMetavariableNode, substitutions, generalContext, specificContext);
96
96
  labelUnifiedWithReference = referenceUnified; ///
97
97
  return labelUnifiedWithReference;
98
98
  }
@@ -137,4 +137,4 @@ function contextFromTokens(tokens, context) {
137
137
  return context;
138
138
  }
139
139
 
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmljYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaW5nXCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBTdWJzdGl0dXRpb25zIGZyb20gXCIuLi9zdWJzdGl0dXRpb25zXCI7XG5pbXBvcnQgZXF1YWxpdHlVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2VxdWFsaXR5XCI7XG5pbXBvcnQgcmVmZXJlbmNlVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9yZWZlcmVuY2VcIjtcbmltcG9ydCBtZXRhTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuaW1wb3J0IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlFcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICBsZXQgZXF1YWxpdHlVbmlmaWVkO1xuXG4gIGNvbnN0IGxlZnRUZXJtID0gZXF1YWxpdHkuZ2V0TGVmdFRlcm0oKSxcbiAgICAgICAgcmlnaHRUZXJtID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtKCksXG4gICAgICAgIGxlZnRUZXJtTm9kZSA9IGxlZnRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgcmlnaHRUZXJtTm9kZSA9IHJpZ2h0VGVybS5nZXROb2RlKCk7XG5cbiAgZXF1YWxpdHlVbmlmaWVkID0gZXF1YWxpdHlVbmlmaWVyLnVuaWZ5KGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGVxdWFsaXR5VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50KGdlbmVyYWxTdGF0ZW1lbnQsIHNwZWNpZmljU3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZSxcbiAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdGF0ZW1lbnRVbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3Vic3RpdHV0aW9uKGdlbmVyYWxTdWJzdGl0dXRpb24sIHNwZWNpZmljU3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdWJzdGl0dXRpb25VbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlID0gZ2VuZXJhbFN1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucyA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3Vic3RpdHV0aW9uVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSxcbiAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdWJzdGl0dXRpb25VbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBtZXRhdmFyaWFibGVVbmlmaWVkID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TGFiZWxXaXRoUmVmZXJlbmNlKGxhYmVsLCByZWZlcmVuY2UsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpIHtcbiAgbGV0IGxhYmVsVW5pZmllZFdpdGhSZWZlcmVuY2U7XG5cbiAgbGV0IGdlbmVyYWxDb250ZXh0LFxuICAgICAgc3BlY2lmaWNDb250ZXh0O1xuXG4gIGNvbnN0IGZpbGVDb250ZXh0ID0gbGFiZWwuZ2V0RmlsZUNvbnRleHQoKSxcbiAgICAgICAgbGFiZWxNZXRhdmFyaWFibGUgPSBsYWJlbC5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgcmVmZXJlbmNlTWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSBsYWJlbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGxhYmVsTWV0YXZhcmlhYmxlVG9rZW5zID0gbGFiZWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICByZWZlcmVuY2VNZXRhdmFyaWFibGVUb2tlbnMgPSByZWZlcmVuY2VNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBmaWxlQ29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMobGFiZWxNZXRhdmFyaWFibGVUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgIC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IHJlZmVyZW5jZVVuaWZpZWQgPSByZWZlcmVuY2VVbmlmaWVyLnVuaWZ5KGxhYmVsTWV0YXZhcmlhYmxlTm9kZSwgcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgbGFiZWxVbmlmaWVkV2l0aFJlZmVyZW5jZSA9IHJlZmVyZW5jZVVuaWZpZWQ7IC8vL1xuXG4gIHJldHVybiBsYWJlbFVuaWZpZWRXaXRoUmVmZXJlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVXaXRoUmVmZXJlbmNlKG1ldGF2YXJpYWJsZSwgcmVmZXJlbmNlLCBjb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFJlZmVyZW5jZTtcblxuICBsZXQgZ2VuZXJhbENvbnRleHQsXG4gICAgICBzcGVjaWZpY0NvbnRleHQ7XG5cbiAgY29uc3QgZmlsZUNvbnRleHQgPSBjb250ZXh0LmdldEZpbGVDb250ZXh0KCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBtZXRhdmFyaWFibGVUb2tlbnMgPSBtZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSA9IHJlZmVyZW5jZU1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2VucyA9IHJlZmVyZW5jZU1ldGF2YXJpYWJsZS5nZXRUb2tlbnMoKTtcblxuICBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGZpbGVDb250ZXh0OyAgLy8vXG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhtZXRhdmFyaWFibGVUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgIC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZVVuaWZpZWQgPSByZWZlcmVuY2VVbmlmaWVyLnVuaWZ5KG1ldGF2YXJpYWJsZU5vZGUsIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoUmVmZXJlbmNlID0gcmVmZXJlbmNlVW5pZmllZDsgLy8vXG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoUmVmZXJlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBjb250ZXh0KSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcjtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpO1xuXG4gIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIudW5pZnkoY29uc3RydWN0b3JUZXJtTm9kZSwgdGVybU5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3I7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudCA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMgPSBjb21iaW5hdG9yU3RhdGVtZW50LmdldFRva2VucygpO1xuXG4gIGxldCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoY29tYmluYXRvclN0YXRlbWVudFRva2VucywgZ2VuZXJhbENvbnRleHQpOyAgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yID0gc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcblxuICBjb25zdCBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY01ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHkgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5O1xufVxuXG5mdW5jdGlvbiBjb250ZXh0RnJvbVRva2Vucyh0b2tlbnMsIGNvbnRleHQpIHtcbiAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Db250ZXh0QW5kVG9rZW5zKGNvbnRleHQsIHRva2Vucyk7XG5cbiAgY29udGV4dCA9IGxvY2FsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBjb250ZXh0O1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5RXF1YWxpdHkiLCJ1bmlmeUxhYmVsV2l0aFJlZmVyZW5jZSIsInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlNZXRhdmFyaWFibGVXaXRoUmVmZXJlbmNlIiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJlcXVhbGl0eSIsImNvbnRleHQiLCJlcXVhbGl0eVVuaWZpZWQiLCJsZWZ0VGVybSIsImdldExlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwibGVmdFRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInJpZ2h0VGVybU5vZGUiLCJlcXVhbGl0eVVuaWZpZXIiLCJ1bmlmeSIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsInNwZWNpZmljU3RhdGVtZW50Tm9kZSIsImdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMiLCJnZXRUb2tlbnMiLCJzcGVjaWZpY1N0YXRlbWVudFRva2VucyIsImNvbnRleHRGcm9tVG9rZW5zIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJ1bmlmaWVkQXRNZXRhTGV2ZWwiLCJtZXRhTGV2ZWxVbmlmaWVyIiwiZ2VuZXJhbFN1YnN0aXR1dGlvbiIsInNwZWNpZmljU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uVW5pZmllZCIsImdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlIiwic3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlIiwiZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucyIsInNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllZCIsImdlbmVyYWxNZXRhdmFyaWFibGVOb2RlIiwic3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyIsInNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zIiwibWV0YXZhcmlhYmxlVW5pZmllciIsImxhYmVsIiwicmVmZXJlbmNlIiwibGFiZWxVbmlmaWVkV2l0aFJlZmVyZW5jZSIsImZpbGVDb250ZXh0IiwiZ2V0RmlsZUNvbnRleHQiLCJsYWJlbE1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZSIsImxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsImxhYmVsTWV0YXZhcmlhYmxlVG9rZW5zIiwicmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2VucyIsInJlZmVyZW5jZVVuaWZpZWQiLCJyZWZlcmVuY2VVbmlmaWVyIiwibWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllZFdpdGhSZWZlcmVuY2UiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlVG9rZW5zIiwiU3Vic3RpdHV0aW9ucyIsImZyb21Ob3RoaW5nIiwidGVybSIsImNvbnN0cnVjdG9yIiwidGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsImNvbnN0cnVjdG9yVGVybSIsImdldFRlcm0iLCJjb25zdHJ1Y3RvclRlcm1Ob2RlIiwidGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIiLCJzdGF0ZW1lbnQiLCJjb21iaW5hdG9yIiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3IiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VG9rZW5zIiwiY29tYmluYXRvclN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiY29tYmluYXRvclN0YXRlbWVudFRva2VucyIsInN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciIsIm1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5IiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIiwidG9rZW5zIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUNvbnRleHRBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFZZ0JBLGFBQWE7ZUFBYkE7O0lBd0VBQyx1QkFBdUI7ZUFBdkJBOztJQWpCQUMsaUJBQWlCO2VBQWpCQTs7SUE0R0FDLDhCQUE4QjtlQUE5QkE7O0lBOURBQyw4QkFBOEI7ZUFBOUJBOztJQXhGQUMsY0FBYztlQUFkQTs7SUFpSUFDLDRCQUE0QjtlQUE1QkE7O0lBNUdBQyxpQkFBaUI7ZUFBakJBOztJQWdHQUMsd0JBQXdCO2VBQXhCQTs7OzREQTVJUztvRUFDQzsrREFDRTtnRUFDQztnRUFDQTttRUFDRztxRUFDRTswRUFDSzs4RUFDSTs7Ozs7O0FBRXBDLFNBQVNSLGNBQWNTLFFBQVEsRUFBRUMsT0FBTztJQUM3QyxJQUFJQztJQUVKLElBQU1DLFdBQVdILFNBQVNJLFdBQVcsSUFDL0JDLFlBQVlMLFNBQVNNLFlBQVksSUFDakNDLGVBQWVKLFNBQVNLLE9BQU8sSUFDL0JDLGdCQUFnQkosVUFBVUcsT0FBTztJQUV2Q04sa0JBQWtCUSxpQkFBZSxDQUFDQyxLQUFLLENBQUNKLGNBQWNFLGVBQWVSO0lBRXJFLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTTixlQUFlZ0IsZ0JBQWdCLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLGNBQWMsRUFBRUMsZUFBZTtJQUNoSCxJQUFJQztJQUVKLElBQU1DLHVCQUF1Qk4saUJBQWlCSixPQUFPLElBQy9DVyx3QkFBd0JOLGtCQUFrQkws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
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmljYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaW5nXCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBTdWJzdGl0dXRpb25zIGZyb20gXCIuLi9zdWJzdGl0dXRpb25zXCI7XG5pbXBvcnQgZXF1YWxpdHlVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2VxdWFsaXR5XCI7XG5pbXBvcnQgcmVmZXJlbmNlVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9yZWZlcmVuY2VcIjtcbmltcG9ydCBtZXRhTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuaW1wb3J0IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlFcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICBsZXQgZXF1YWxpdHlVbmlmaWVkO1xuXG4gIGNvbnN0IGxlZnRUZXJtID0gZXF1YWxpdHkuZ2V0TGVmdFRlcm0oKSxcbiAgICAgICAgcmlnaHRUZXJtID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtKCksXG4gICAgICAgIGxlZnRUZXJtTm9kZSA9IGxlZnRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgcmlnaHRUZXJtTm9kZSA9IHJpZ2h0VGVybS5nZXROb2RlKCk7XG5cbiAgZXF1YWxpdHlVbmlmaWVkID0gZXF1YWxpdHlVbmlmaWVyLnVuaWZ5KGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGVxdWFsaXR5VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50KGdlbmVyYWxTdGF0ZW1lbnQsIHNwZWNpZmljU3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZSxcbiAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdGF0ZW1lbnRVbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3Vic3RpdHV0aW9uKGdlbmVyYWxTdWJzdGl0dXRpb24sIHNwZWNpZmljU3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdWJzdGl0dXRpb25VbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlID0gZ2VuZXJhbFN1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucyA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3Vic3RpdHV0aW9uVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSxcbiAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdWJzdGl0dXRpb25VbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBtZXRhdmFyaWFibGVVbmlmaWVkID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TGFiZWxXaXRoUmVmZXJlbmNlKGxhYmVsLCByZWZlcmVuY2UsIGNvbnRleHQpIHtcbiAgbGV0IGxhYmVsVW5pZmllZFdpdGhSZWZlcmVuY2U7XG5cbiAgbGV0IGdlbmVyYWxDb250ZXh0LFxuICAgICAgc3BlY2lmaWNDb250ZXh0O1xuXG4gIGNvbnN0IGZpbGVDb250ZXh0ID0gbGFiZWwuZ2V0RmlsZUNvbnRleHQoKSxcbiAgICAgICAgbGFiZWxNZXRhdmFyaWFibGUgPSBsYWJlbC5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgcmVmZXJlbmNlTWV0YXZhcmlhYmxlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZSgpLFxuICAgICAgICBsYWJlbE1ldGF2YXJpYWJsZU5vZGUgPSBsYWJlbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGxhYmVsTWV0YXZhcmlhYmxlVG9rZW5zID0gbGFiZWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUgPSByZWZlcmVuY2VNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICByZWZlcmVuY2VNZXRhdmFyaWFibGVUb2tlbnMgPSByZWZlcmVuY2VNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0OyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBmaWxlQ29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMobGFiZWxNZXRhdmFyaWFibGVUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgIC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZVVuaWZpZWQgPSByZWZlcmVuY2VVbmlmaWVyLnVuaWZ5KGxhYmVsTWV0YXZhcmlhYmxlTm9kZSwgcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgbGFiZWxVbmlmaWVkV2l0aFJlZmVyZW5jZSA9IHJlZmVyZW5jZVVuaWZpZWQ7IC8vL1xuXG4gIHJldHVybiBsYWJlbFVuaWZpZWRXaXRoUmVmZXJlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVXaXRoUmVmZXJlbmNlKG1ldGF2YXJpYWJsZSwgcmVmZXJlbmNlLCBjb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFJlZmVyZW5jZTtcblxuICBsZXQgZ2VuZXJhbENvbnRleHQsXG4gICAgICBzcGVjaWZpY0NvbnRleHQ7XG5cbiAgY29uc3QgZmlsZUNvbnRleHQgPSBjb250ZXh0LmdldEZpbGVDb250ZXh0KCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBtZXRhdmFyaWFibGVUb2tlbnMgPSBtZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGUoKSxcbiAgICAgICAgcmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSA9IHJlZmVyZW5jZU1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2VucyA9IHJlZmVyZW5jZU1ldGF2YXJpYWJsZS5nZXRUb2tlbnMoKTtcblxuICBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGZpbGVDb250ZXh0OyAgLy8vXG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhtZXRhdmFyaWFibGVUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgIC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZVVuaWZpZWQgPSByZWZlcmVuY2VVbmlmaWVyLnVuaWZ5KG1ldGF2YXJpYWJsZU5vZGUsIHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoUmVmZXJlbmNlID0gcmVmZXJlbmNlVW5pZmllZDsgLy8vXG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoUmVmZXJlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBjb250ZXh0KSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcjtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpO1xuXG4gIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIudW5pZnkoY29uc3RydWN0b3JUZXJtTm9kZSwgdGVybU5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3I7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudCA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMgPSBjb21iaW5hdG9yU3RhdGVtZW50LmdldFRva2VucygpO1xuXG4gIGxldCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoY29tYmluYXRvclN0YXRlbWVudFRva2VucywgZ2VuZXJhbENvbnRleHQpOyAgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yID0gc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcblxuICBjb25zdCBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY01ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHkgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5O1xufVxuXG5mdW5jdGlvbiBjb250ZXh0RnJvbVRva2Vucyh0b2tlbnMsIGNvbnRleHQpIHtcbiAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Db250ZXh0QW5kVG9rZW5zKGNvbnRleHQsIHRva2Vucyk7XG5cbiAgY29udGV4dCA9IGxvY2FsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBjb250ZXh0O1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5RXF1YWxpdHkiLCJ1bmlmeUxhYmVsV2l0aFJlZmVyZW5jZSIsInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlNZXRhdmFyaWFibGVXaXRoUmVmZXJlbmNlIiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJlcXVhbGl0eSIsImNvbnRleHQiLCJlcXVhbGl0eVVuaWZpZWQiLCJsZWZ0VGVybSIsImdldExlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwibGVmdFRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInJpZ2h0VGVybU5vZGUiLCJlcXVhbGl0eVVuaWZpZXIiLCJ1bmlmeSIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsInNwZWNpZmljU3RhdGVtZW50Tm9kZSIsImdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMiLCJnZXRUb2tlbnMiLCJzcGVjaWZpY1N0YXRlbWVudFRva2VucyIsImNvbnRleHRGcm9tVG9rZW5zIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJ1bmlmaWVkQXRNZXRhTGV2ZWwiLCJtZXRhTGV2ZWxVbmlmaWVyIiwiZ2VuZXJhbFN1YnN0aXR1dGlvbiIsInNwZWNpZmljU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uVW5pZmllZCIsImdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlIiwic3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlIiwiZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucyIsInNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllZCIsImdlbmVyYWxNZXRhdmFyaWFibGVOb2RlIiwic3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyIsInNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zIiwibWV0YXZhcmlhYmxlVW5pZmllciIsImxhYmVsIiwicmVmZXJlbmNlIiwibGFiZWxVbmlmaWVkV2l0aFJlZmVyZW5jZSIsImZpbGVDb250ZXh0IiwiZ2V0RmlsZUNvbnRleHQiLCJsYWJlbE1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZSIsImxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsImxhYmVsTWV0YXZhcmlhYmxlVG9rZW5zIiwicmVmZXJlbmNlTWV0YXZhcmlhYmxlTm9kZSIsInJlZmVyZW5jZU1ldGF2YXJpYWJsZVRva2VucyIsIlN1YnN0aXR1dGlvbnMiLCJmcm9tTm90aGluZyIsInJlZmVyZW5jZVVuaWZpZWQiLCJyZWZlcmVuY2VVbmlmaWVyIiwibWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllZFdpdGhSZWZlcmVuY2UiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlVG9rZW5zIiwidGVybSIsImNvbnN0cnVjdG9yIiwidGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsImNvbnN0cnVjdG9yVGVybSIsImdldFRlcm0iLCJjb25zdHJ1Y3RvclRlcm1Ob2RlIiwidGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIiLCJzdGF0ZW1lbnQiLCJjb21iaW5hdG9yIiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3IiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VG9rZW5zIiwiY29tYmluYXRvclN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiY29tYmluYXRvclN0YXRlbWVudFRva2VucyIsInN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciIsIm1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5IiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIiwidG9rZW5zIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUNvbnRleHRBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFZZ0JBLGFBQWE7ZUFBYkE7O0lBd0VBQyx1QkFBdUI7ZUFBdkJBOztJQWpCQUMsaUJBQWlCO2VBQWpCQTs7SUE2R0FDLDhCQUE4QjtlQUE5QkE7O0lBOURBQyw4QkFBOEI7ZUFBOUJBOztJQXpGQUMsY0FBYztlQUFkQTs7SUFrSUFDLDRCQUE0QjtlQUE1QkE7O0lBN0dBQyxpQkFBaUI7ZUFBakJBOztJQWlHQUMsd0JBQXdCO2VBQXhCQTs7OzREQTdJUztvRUFDQzsrREFDRTtnRUFDQztnRUFDQTttRUFDRztxRUFDRTswRUFDSzs4RUFDSTs7Ozs7O0FBRXBDLFNBQVNSLGNBQWNTLFFBQVEsRUFBRUMsT0FBTztJQUM3QyxJQUFJQztJQUVKLElBQU1DLFdBQVdILFNBQVNJLFdBQVcsSUFDL0JDLFlBQVlMLFNBQVNNLFlBQVksSUFDakNDLGVBQWVKLFNBQVNLLE9BQU8sSUFDL0JDLGdCQUFnQkosVUFBVUcsT0FBTztJQUV2Q04sa0JBQWtCUSxpQkFBZSxDQUFDQyxLQUFLLENBQUNKLGNBQWNFLGVBQWVSO0lBRXJFLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTTixlQUFlZ0IsZ0JBQWdCLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLGNBQWMsRUFBRUMsZUFBZTtJQUNoSCxJQUFJQztJQUVKLElBQU1DLHVCQUF1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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.1247",
4
+ "version": "0.0.1248",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -12,10 +12,10 @@
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.32",
14
14
  "necessary": "^14.2.1",
15
- "occam-custom-grammars": "^5.0.1017",
16
- "occam-entities": "^1.0.260",
17
- "occam-file-system": "^6.0.284",
18
- "occam-furtle": "^2.0.24",
15
+ "occam-custom-grammars": "^5.0.1018",
16
+ "occam-entities": "^1.0.261",
17
+ "occam-file-system": "^6.0.285",
18
+ "occam-furtle": "^2.0.25",
19
19
  "occam-grammar-utilities": "^8.0.239",
20
20
  "occam-lexers": "^23.0.11",
21
21
  "occam-parsers": "^23.0.21",
@@ -3,7 +3,6 @@
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
5
  import Equivalences from "../equivalences";
6
- import Substitutions from "../substitutions";
7
6
  import topLevelVerifier from "../verifier/topLevel";
8
7
 
9
8
  import { objectType } from "../dom/type";
@@ -459,12 +458,11 @@ export default class FileContext {
459
458
  }
460
459
 
461
460
  findMetaLemmasByReference(reference) {
462
- const metaLemmas = this.getMetaLemmas(),
463
- substitutions = Substitutions.fromNothing();
461
+ const metaLemmas = this.getMetaLemmas();
464
462
 
465
463
  filter(metaLemmas, (metaLemma) => {
466
464
  const context = this, ///
467
- metaLemmaUnified = reference.unifyMetaLemma(metaLemma, substitutions, context);
465
+ metaLemmaUnified = reference.unifyMetaLemma(metaLemma, context);
468
466
 
469
467
  if (metaLemmaUnified) {
470
468
  return true;
@@ -475,12 +473,11 @@ export default class FileContext {
475
473
  }
476
474
 
477
475
  findMetatheoremsByReference(reference) {
478
- const metatheorems = this.getMetatheorems(),
479
- substitutions = Substitutions.fromNothing();
476
+ const metatheorems = this.getMetatheorems();
480
477
 
481
478
  filter(metatheorems, (metatheorem) => {
482
479
  const context = this, ///
483
- metatheoremUnified = reference.unifyMetatheorem(metatheorem, substitutions, context);
480
+ metatheoremUnified = reference.unifyMetatheorem(metatheorem, context);
484
481
 
485
482
  if (metatheoremUnified) {
486
483
  return true;
@@ -664,8 +661,7 @@ export default class FileContext {
664
661
  const labels = this.getLabels(),
665
662
  labelPresent = labels.some((label) => {
666
663
  const context = this, ///
667
- substitutions = Substitutions.fromNothing(),
668
- labelUnified = reference.unifyLabel(label, substitutions, context);
664
+ labelUnified = reference.unifyLabel(label, context);
669
665
 
670
666
  if (labelUnified) {
671
667
  return true;
@@ -27,6 +27,26 @@ export default domAssigned(class Constructor {
27
27
 
28
28
  getType() { return this.term.getType(); }
29
29
 
30
+ verifyWhenDeclared(fileContext) {
31
+ let verifiedWhenDeclared;
32
+
33
+ const constructorString = this.string; ///
34
+
35
+ fileContext.trace(`Verifying the '${constructorString}' constructor when declared...`);
36
+
37
+ const termVerifiedAtTopLevel = this.term.verifyWhenDeclared(fileContext);
38
+
39
+ if (termVerifiedAtTopLevel) {
40
+ verifiedWhenDeclared = true; ///
41
+ }
42
+
43
+ if (verifiedWhenDeclared) {
44
+ fileContext.debug(`...verified the '${constructorString}' constructor when declared.`);
45
+ }
46
+
47
+ return verifiedWhenDeclared;
48
+ }
49
+
30
50
  unifyTerm(term, context, verifyAhead) {
31
51
  let termUnified = false;
32
52
 
@@ -57,26 +77,6 @@ export default domAssigned(class Constructor {
57
77
  return termUnified;
58
78
  }
59
79
 
60
- verifyWhenDeclared(fileContext) {
61
- let verifiedWhenDeclared;
62
-
63
- const constructorString = this.string; ///
64
-
65
- fileContext.trace(`Verifying the '${constructorString}' constructor when declared...`);
66
-
67
- const termVerifiedAtTopLevel = this.term.verifyWhenDeclared(fileContext);
68
-
69
- if (termVerifiedAtTopLevel) {
70
- verifiedWhenDeclared = true; ///
71
- }
72
-
73
- if (verifiedWhenDeclared) {
74
- fileContext.debug(`...verified the '${constructorString}' constructor when declared.`);
75
- }
76
-
77
- return verifiedWhenDeclared;
78
- }
79
-
80
80
  toJSON() {
81
81
  const termJSON = termToTermJSON(this.term),
82
82
  term = termJSON, ///
@@ -5,6 +5,7 @@ import dom from "../dom";
5
5
  import { nodeQuery } from "../utilities/query";
6
6
  import { domAssigned } from "../dom";
7
7
  import { stripBracketsFromStatementNode } from "../utilities/brackets";
8
+ import metaLemma from "./metaLemma";
8
9
 
9
10
  const statementNodeQuery = nodeQuery("/declaration/statement");
10
11
 
@@ -27,122 +28,6 @@ export default domAssigned(class Declaration {
27
28
  return this.statement;
28
29
  }
29
30
 
30
- unifyStatement(statement, context) {
31
- let statementUnified;
32
-
33
- const statementString = statement.getString(),
34
- declarationStatementString = this.statement.getString(); ///
35
-
36
- context.trace(`Unifying the '${statementString}' statement with the '${declarationStatementString}' statement...`);
37
-
38
- let statementNode = statement.getNode();
39
-
40
- statementNode = stripBracketsFromStatementNode(statementNode); ///
41
-
42
- const statementNodeMatches = this.statement.matchStatementNode(statementNode);
43
-
44
- statementUnified = statementNodeMatches; ///
45
-
46
- if (statementUnified) {
47
- context.debug(`...unified the '${statementString}' statement with the '${declarationStatementString}' statement.`);
48
- }
49
-
50
- return statementUnified;
51
- }
52
-
53
- unifyMetavariable(metavariable, context) {
54
- let metavariableUnified;
55
-
56
- const referenceString = this.reference.getString(),
57
- metavariableString = metavariable.getString();
58
-
59
- context.trace(`Unifying the '${metavariableString}' metavariable with the '${referenceString}' reference...`);
60
-
61
- const metavariableNode = metavariable.getNode(),
62
- metavariableNodeMatches = this.reference.matchMetavariableNode(metavariableNode);
63
-
64
- metavariableUnified = metavariableNodeMatches; ///
65
-
66
- if (metavariableUnified) {
67
- context.debug(`...unified the '${metavariableString}' metavariable with the '${referenceString}' reference.`);
68
- }
69
-
70
- return metavariableUnified;
71
- }
72
-
73
- unifySubstitution(substitution, context) {
74
- let substitutionUnified;
75
-
76
- const declarationString = this.string, ///
77
- substitutionString = substitution.getString();
78
-
79
- context.trace(`Unifying the '${substitutionString}' substitution with the '${declarationString}' declaration...`);
80
-
81
- const statement = substitution.getStatement(),
82
- metavariable = substitution.getMetavariable(),
83
- statementUnified = this.unifyStatement(statement, context),
84
- metavariableUnified = this.unifyMetavariable(metavariable, context);
85
-
86
- substitutionUnified = (metavariableUnified && statementUnified);
87
-
88
- if (substitutionUnified) {
89
- context.debug(`...unified the '${declarationString}' substitution with the '${substitutionString}' declaration.`);
90
- }
91
-
92
- return substitutionUnified;
93
- }
94
-
95
- unifyMetaLemmaMetatheorem(metaLemmaMetatheorem, context) {
96
- let metaLemmaMetatheoremUnified = false;
97
-
98
- const declarationString = this.string, ///
99
- metalemmaMetatheoremString = metaLemmaMetatheorem.getString();
100
-
101
- context.trace(`Unifying the '${metalemmaMetatheoremString}' meta-lemma or metatheorem with the '${declarationString}' declaration...`);
102
-
103
- const substitutions = Substitutions.fromNothing(),
104
- referenceUnified = metaLemmaMetatheorem.unifyReference(this.reference, substitutions, context);
105
-
106
- if (referenceUnified) {
107
- const statementUnified = metaLemmaMetatheorem.unifyStatement(this.statement, substitutions, context);
108
-
109
- if (statementUnified) {
110
- metaLemmaMetatheoremUnified = true;
111
- }
112
- }
113
-
114
- if (metaLemmaMetatheoremUnified) {
115
- context.debug(`...unified the '${metalemmaMetatheoremString}' meta-lemma or metatheorem with the '${declarationString}' declaration.`);
116
- }
117
-
118
- return metaLemmaMetatheoremUnified;
119
- }
120
-
121
- unifyAxiomLemmaTheoremConjecture(axiomLemmaTheoremConjecture, context) {
122
- let axiomLemmaTheoremConjectureUnified = false;
123
-
124
- const declarationString = this.string, ///
125
- axiomLemmaTheoremConjectureString = axiomLemmaTheoremConjecture.getString();
126
-
127
- context.trace(`Unifying the '${axiomLemmaTheoremConjectureString}' axiom, lemma, theorem or conjecture with the '${declarationString}' declaration...`);
128
-
129
- const referenceUnified = axiomLemmaTheoremConjecture.unifyReference(this.reference, context);
130
-
131
- if (referenceUnified) {
132
- const statementUnified = axiomLemmaTheoremConjecture.unifyStatement(this.statement, context);
133
-
134
- if (statementUnified) {
135
- axiomLemmaTheoremConjectureUnified = true;
136
- }
137
- }
138
-
139
- if (axiomLemmaTheoremConjectureUnified) {
140
- context.debug(`...unified the '${axiomLemmaTheoremConjectureString}' axiom, lemma, theorem or conjecture with the '${declarationString}' declaration.`);
141
- }
142
-
143
- return axiomLemmaTheoremConjectureUnified;
144
- }
145
-
146
31
  verify(frame, assignments, stated, context) {
147
32
  let verified = false;
148
33
 
@@ -237,35 +122,17 @@ export default domAssigned(class Declaration {
237
122
  metaLemmaMetatheorems = [
238
123
  ...metaLemmas,
239
124
  ...metatheorems
240
- ];
241
- }
125
+ ],
126
+ metaLemmaMetatheoremsVerifiedWhenStated = metaLemmaMetatheorems.every((metaLemmaMetatheorem) => {
127
+ const metaLemmaMetatheoremVerifiedWhenStated = metaLemmaMetatheorem.verifyWhenStated(this.statement, this.reference, context);
242
128
 
129
+ if (metaLemmaMetatheoremVerifiedWhenStated) {
130
+ return true;
131
+ }
132
+ });
243
133
 
244
- // metaLemmaMetatheoremUnified = metaLemmaMetatheorems.some((metaLemmaMetatheorem) => {
245
- // const metaLemmaMetatheoremUnified = this.unifyMetaLemmaMetatheorem(metaLemmaMetatheorem, context);
246
- //
247
- // if (metaLemmaMetatheoremUnified) {
248
- // return true;
249
- // }
250
- // });
251
- //
252
- // if (metaLemmaMetatheoremUnified) {
253
- // verifiedWhenStated = true;
254
- // } else {
255
- // const axiom = context.findAxiomByReference(this.reference),
256
- // lemma = context.findLemmaByReference(this.reference),
257
- // theorem = context.findTheoremByReference(this.reference),
258
- // conjecture = context.findConjectureByReference(this.reference),
259
- // axiomLemmaTheoremConjecture = (axiom || lemma || theorem || conjecture);
260
- //
261
- // if (axiomLemmaTheoremConjecture !== null) {
262
- // const axiomLemmaTheoremConjectureUnified = this.unifyAxiomLemmaTheoremConjecture(axiomLemmaTheoremConjecture, context);
263
- //
264
- // if (axiomLemmaTheoremConjectureUnified) {
265
- // verifiedWhenStated = true;
266
- // }
267
- // }
268
- // }
134
+ verifiedWhenStated = metaLemmaMetatheoremsVerifiedWhenStated; ///
135
+ }
269
136
 
270
137
  if (verifiedWhenStated) {
271
138
  context.trace(`...verified the '${declarationString}' stated declaration.`);
@@ -330,6 +197,71 @@ export default domAssigned(class Declaration {
330
197
  return verifiedWhenDerived;
331
198
  }
332
199
 
200
+ unifyStatement(statement, context) {
201
+ let statementUnified;
202
+
203
+ const statementString = statement.getString(),
204
+ declarationStatementString = this.statement.getString(); ///
205
+
206
+ context.trace(`Unifying the '${statementString}' statement with the '${declarationStatementString}' statement...`);
207
+
208
+ let statementNode = statement.getNode();
209
+
210
+ statementNode = stripBracketsFromStatementNode(statementNode); ///
211
+
212
+ const statementNodeMatches = this.statement.matchStatementNode(statementNode);
213
+
214
+ statementUnified = statementNodeMatches; ///
215
+
216
+ if (statementUnified) {
217
+ context.debug(`...unified the '${statementString}' statement with the '${declarationStatementString}' statement.`);
218
+ }
219
+
220
+ return statementUnified;
221
+ }
222
+
223
+ unifyMetavariable(metavariable, context) {
224
+ let metavariableUnified;
225
+
226
+ const referenceString = this.reference.getString(),
227
+ metavariableString = metavariable.getString();
228
+
229
+ context.trace(`Unifying the '${metavariableString}' metavariable with the '${referenceString}' reference...`);
230
+
231
+ const metavariableNode = metavariable.getNode(),
232
+ metavariableNodeMatches = this.reference.matchMetavariableNode(metavariableNode);
233
+
234
+ metavariableUnified = metavariableNodeMatches; ///
235
+
236
+ if (metavariableUnified) {
237
+ context.debug(`...unified the '${metavariableString}' metavariable with the '${referenceString}' reference.`);
238
+ }
239
+
240
+ return metavariableUnified;
241
+ }
242
+
243
+ unifySubstitution(substitution, context) {
244
+ let substitutionUnified;
245
+
246
+ const declarationString = this.string, ///
247
+ substitutionString = substitution.getString();
248
+
249
+ context.trace(`Unifying the '${substitutionString}' substitution with the '${declarationString}' declaration...`);
250
+
251
+ const statement = substitution.getStatement(),
252
+ metavariable = substitution.getMetavariable(),
253
+ statementUnified = this.unifyStatement(statement, context),
254
+ metavariableUnified = this.unifyMetavariable(metavariable, context);
255
+
256
+ substitutionUnified = (metavariableUnified && statementUnified);
257
+
258
+ if (substitutionUnified) {
259
+ context.debug(`...unified the '${declarationString}' substitution with the '${substitutionString}' declaration.`);
260
+ }
261
+
262
+ return substitutionUnified;
263
+ }
264
+
333
265
  static name = "Declaration";
334
266
 
335
267
  static fromDeclarationNode(declarationNode, context) {
package/src/dom/label.js CHANGED
@@ -43,7 +43,7 @@ export default domAssigned(class Label {
43
43
 
44
44
  const labelString = this.getString(); ///
45
45
 
46
- this.fileContext.trace(`Verifying the '${labelString}' label when declared...`);
46
+ this.fileContext.trace(`Verifying the '${labelString}' label...`);
47
47
 
48
48
  let labelPresent;
49
49
 
@@ -64,7 +64,7 @@ export default domAssigned(class Label {
64
64
  }
65
65
 
66
66
  if (verified) {
67
- this.fileContext.debug(`...verified the '${labelString}' label when declared.`);
67
+ this.fileContext.debug(`...verified the '${labelString}' label.`);
68
68
  }
69
69
 
70
70
  return verified;
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import LocalContext from "../context/local";
4
- import TopLevelAssertion from "./topLevelAssertion";
3
+ import TopLevelMetaAssertion from "./topLevelMetaAssertion";
5
4
 
6
5
  import { domAssigned } from "../dom";
7
6
 
8
- export default domAssigned(class MetaLemma extends TopLevelAssertion {
7
+ export default domAssigned(class MetaLemma extends TopLevelMetaAssertion {
9
8
  verify() {
10
9
  let verified;
11
10
 
@@ -28,49 +27,9 @@ export default domAssigned(class MetaLemma extends TopLevelAssertion {
28
27
  return verified;
29
28
  }
30
29
 
31
- verifyLabels() {
32
- const labelsVerified = this.labels.every((label) => {
33
- const nameOnly = false,
34
- labelVerified = label.verify(nameOnly);
35
-
36
- if (labelVerified) {
37
- return true;
38
- }
39
- });
40
-
41
- return labelsVerified;
42
- }
43
-
44
- unifyStatement(statement, substitutions, context) {
45
- let statementUnified;
46
-
47
- const metaLemma = this, ///
48
- statementString = statement.getString(),
49
- metaLemmaString = metaLemma.getString();
50
-
51
- context.trace(`Unifying the '${statementString}' statement with the '${metaLemmaString}' meta-lemma...`);
52
-
53
- const suppositions = this.getSuppositions(),
54
- suppositionsLength = suppositions.length;
55
-
56
- if (suppositionsLength === 0) {
57
- const fileContext = this.getFileContext(),
58
- localContext = LocalContext.fromFileContext(fileContext),
59
- generalContext = localContext, ///
60
- specificContext = context, ///
61
- statementUnifiedWithConsequent = this.unifyStatementWithConsequent(statement, substitutions, generalContext, specificContext);
62
-
63
- statementUnified = statementUnifiedWithConsequent; ///
64
- }
65
-
66
- if (statementUnified) {
67
- context.debug(`...unified the '${statementString}' statement with the '${metaLemmaString}' meta-lemma.`);
68
- }
69
-
70
- return statementUnified;
71
- }
72
-
73
30
  static name = "MetaLemma";
74
31
 
75
- static fromMetaLemmaNode(metaLemmaNode, fileContext) { return TopLevelAssertion.fromNode(MetaLemma, metaLemmaNode, fileContext); }
32
+ static fromJSON(json, fileContext) { return TopLevelMetaAssertion.fromJSON(MetaLemma, json, fileContext); }
33
+
34
+ static fromMetaLemmaNode(axiomNode, fileContext) { return TopLevelMetaAssertion.fromNode(MetaLemma, axiomNode, fileContext); }
76
35
  });