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.
- package/lib/context/file.js +6 -7
- package/lib/dom/constructor.js +17 -17
- package/lib/dom/declaration.js +59 -109
- package/lib/dom/label.js +3 -3
- package/lib/dom/metaLemma.js +12 -36
- package/lib/dom/metatheorem.js +11 -96
- package/lib/dom/reference.js +31 -3
- package/lib/dom/rule.js +4 -4
- package/lib/dom/topLevelAssertion.js +30 -30
- package/lib/dom/topLevelMetaAssertion.js +253 -0
- package/lib/utilities/string.js +3 -3
- package/lib/utilities/unification.js +3 -3
- package/package.json +5 -5
- package/src/context/file.js +5 -9
- package/src/dom/constructor.js +20 -20
- package/src/dom/declaration.js +75 -143
- package/src/dom/label.js +2 -2
- package/src/dom/metaLemma.js +5 -46
- package/src/dom/metatheorem.js +8 -89
- package/src/dom/reference.js +44 -2
- package/src/dom/rule.js +5 -3
- package/src/dom/topLevelAssertion.js +42 -51
- package/src/dom/topLevelMetaAssertion.js +154 -0
- package/src/utilities/string.js +2 -2
- package/src/utilities/unification.js +3 -2
|
@@ -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,
|
|
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.
|
|
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.
|
|
16
|
-
"occam-entities": "^1.0.
|
|
17
|
-
"occam-file-system": "^6.0.
|
|
18
|
-
"occam-furtle": "^2.0.
|
|
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",
|
package/src/context/file.js
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
-
|
|
668
|
-
labelUnified = reference.unifyLabel(label, substitutions, context);
|
|
664
|
+
labelUnified = reference.unifyLabel(label, context);
|
|
669
665
|
|
|
670
666
|
if (labelUnified) {
|
|
671
667
|
return true;
|
package/src/dom/constructor.js
CHANGED
|
@@ -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, ///
|
package/src/dom/declaration.js
CHANGED
|
@@ -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
|
-
|
|
245
|
-
|
|
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
|
|
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
|
|
67
|
+
this.fileContext.debug(`...verified the '${labelString}' label.`);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
return verified;
|
package/src/dom/metaLemma.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
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
|
|
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
|
|
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
|
});
|