occam-verify-cli 0.0.879 → 0.0.881

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.
Files changed (73) hide show
  1. package/lib/assignment/judgement.js +62 -0
  2. package/lib/context/file.js +8 -8
  3. package/lib/context/local.js +16 -10
  4. package/lib/context/localMeta.js +33 -33
  5. package/lib/frame.js +66 -0
  6. package/lib/judgement.js +68 -0
  7. package/lib/metaLemma.js +4 -4
  8. package/lib/metaLemmaMetatheorem.js +25 -9
  9. package/lib/metaType/{label.js → frame.js} +12 -12
  10. package/lib/metaType/{context.js → reference.js} +12 -12
  11. package/lib/metaTypeNames.js +7 -7
  12. package/lib/metaTypes.js +5 -5
  13. package/lib/metatheorem.js +4 -4
  14. package/lib/substitution/metastatementForMetavariable.js +20 -1
  15. package/lib/utilities/name.js +3 -11
  16. package/lib/verifier/nodes/metaLevel.js +2 -2
  17. package/lib/verify/declaration.js +5 -5
  18. package/lib/verify/frame.js +34 -0
  19. package/lib/verify/judgement.js +80 -21
  20. package/lib/verify/metaConsequent.js +2 -2
  21. package/lib/verify/metaDerivation.js +12 -12
  22. package/lib/verify/metaLemma.js +5 -5
  23. package/lib/verify/metaSuppositions.js +2 -2
  24. package/lib/verify/metaproof.js +3 -3
  25. package/lib/verify/metastatement/qualified.js +11 -4
  26. package/lib/verify/metastatement.js +5 -21
  27. package/lib/verify/metatheorem.js +5 -5
  28. package/lib/verify/metavariable.js +3 -3
  29. package/lib/verify/metavariableAgainstMetastatement.js +2 -2
  30. package/lib/verify/ruleDerivation.js +3 -3
  31. package/package.json +4 -4
  32. package/src/assignment/judgement.js +30 -0
  33. package/src/context/file.js +6 -6
  34. package/src/context/local.js +5 -3
  35. package/src/context/localMeta.js +33 -37
  36. package/src/frame.js +27 -0
  37. package/src/judgement.js +28 -0
  38. package/src/metaLemma.js +1 -1
  39. package/src/metaLemmaMetatheorem.js +27 -5
  40. package/src/metaType/frame.js +18 -0
  41. package/src/metaType/reference.js +18 -0
  42. package/src/metaTypeNames.js +2 -2
  43. package/src/metaTypes.js +4 -4
  44. package/src/metatheorem.js +1 -1
  45. package/src/substitution/metastatementForMetavariable.js +28 -0
  46. package/src/utilities/name.js +5 -15
  47. package/src/verifier/nodes/metaLevel.js +1 -1
  48. package/src/verify/declaration.js +5 -5
  49. package/src/verify/frame.js +30 -0
  50. package/src/verify/judgement.js +96 -26
  51. package/src/verify/metaConsequent.js +1 -1
  52. package/src/verify/metaDerivation.js +10 -11
  53. package/src/verify/metaLemma.js +6 -5
  54. package/src/verify/metaSuppositions.js +1 -1
  55. package/src/verify/metaproof.js +2 -2
  56. package/src/verify/metastatement/qualified.js +15 -6
  57. package/src/verify/metastatement.js +4 -30
  58. package/src/verify/metatheorem.js +6 -5
  59. package/src/verify/metavariable.js +2 -2
  60. package/src/verify/metavariableAgainstMetastatement.js +1 -1
  61. package/src/verify/ruleDerivation.js +2 -2
  62. package/lib/assignment/metaEquality.js +0 -62
  63. package/lib/metaEquality.js +0 -101
  64. package/lib/utilities/metaEquivalences.js +0 -15
  65. package/lib/verify/context.js +0 -34
  66. package/lib/verify/metaEquality.js +0 -69
  67. package/src/assignment/metaEquality.js +0 -30
  68. package/src/metaEquality.js +0 -84
  69. package/src/metaType/context.js +0 -18
  70. package/src/metaType/label.js +0 -18
  71. package/src/utilities/metaEquivalences.js +0 -5
  72. package/src/verify/context.js +0 -30
  73. package/src/verify/metaEquality.js +0 -83
@@ -73,8 +73,8 @@ function verifyChild(childNode, localMetaContext) {
73
73
  case _ruleNames.QUALIFIED_METASTATEMENT_RULE_NAME:
74
74
  {
75
75
  var qualifiedMetastatementVerified;
76
- var derived = true, assignments = [], metavariableReferences = true, qualifiedMetastatementNode = childNode; ///
77
- qualifiedMetastatementVerified = (0, _qualified.default)(qualifiedMetastatementNode, metavariableReferences, assignments, derived, localMetaContext);
76
+ var derived = true, assignments = [], substitutions = null, qualifiedMetastatementNode = childNode; ///
77
+ qualifiedMetastatementVerified = (0, _qualified.default)(qualifiedMetastatementNode, substitutions, assignments, derived, localMetaContext);
78
78
  if (qualifiedMetastatementVerified) {
79
79
  var assignmentAssigned = (0, _assignments.assignAssignment)(assignments, localMetaContext);
80
80
  qualifiedMetastatementVerified = assignmentAssigned; ///
@@ -106,4 +106,4 @@ function verifyChild(childNode, localMetaContext) {
106
106
  return childVerified;
107
107
  }
108
108
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVByZW1pc2VzIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZXNcIjtcbmltcG9ydCBMb2NhbE1ldGFDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsTWV0YVwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBjaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVEZXJpdmF0aW9ufHJ1bGVTdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBwcmVtaXNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZVN1YnByb29mL3ByZW1pc2VcIiksXG4gICAgICBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YnByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBsb2NhbE1ldGFDb250ZXh0ID0gTG9jYWxNZXRhQ29udGV4dC5mcm9tTG9jYWxNZXRhQ29udGV4dChsb2NhbE1ldGFDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgcHJlbWlzZU5vZGVzID0gcHJlbWlzZU5vZGVzUXVlcnkocnVsZVN1YnByb29mTm9kZSksXG4gICAgICAgIHByZW1pc2VzVmVyaWZpZWQgPSB2ZXJpZnlQcmVtaXNlcyhwcmVtaXNlTm9kZXMsIHByZW1pc2VzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICBpZiAocHJlbWlzZXNWZXJpZmllZCkge1xuICAgIGNvbnN0IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSA9IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcnVsZVN1YnByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgY2hpbGRWZXJpZmllZDtcblxuICBjb25zdCBjaGlsZE5vZGVSdWxlTmFtZSA9IGNoaWxkTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHN3aXRjaCAoY2hpbGROb2RlUnVsZU5hbWUpIHtcbiAgICBjYXNlIFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHZlcmlmeVJ1bGVTdWJwcm9vZihydWxlU3VicHJvb2ZOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKHJ1bGVTdWJwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21SdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUpO1xuXG4gICAgICAgIGxvY2FsTWV0YUNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgICAgICBjaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZVJlZmVyZW5jZXMgPSB0cnVlLFxuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBjaGlsZE5vZGU7ICAvLy9cblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXZhcmlhYmxlUmVmZXJlbmNlcywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmIChxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBsb2NhbE1ldGFDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgICAgY29uc3QgZGVyaXZlZCA9IHRydWUsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZTsgIC8vL1xuXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIGNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlRGVyaXZhdGlvbiIsImNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsInJ1bGVEZXJpdmF0aW9uTm9kZSIsImxvY2FsTWV0YUNvbnRleHQiLCJydWxlRGVyaXZhdGlvblZlcmlmaWVkIiwiY2hpbGROb2RlcyIsImV2ZXJ5IiwiY2hpbGROb2RlIiwiY2hpbGRWZXJpZmllZCIsInZlcmlmeUNoaWxkIiwidmVyaWZ5UnVsZVN1YkRlcml2YXRpb24iLCJydWxlU3ViRGVyaXZhdGlvbk5vZGUiLCJydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5UnVsZVN1YnByb29mIiwicnVsZVN1YnByb29mTm9kZSIsInJ1bGVTdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxNZXRhQ29udGV4dCIsImZyb21Mb2NhbE1ldGFDb250ZXh0IiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZXMiLCJjaGlsZE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiUlVMRV9TVUJQUk9PRl9SVUxFX05BTUUiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsIlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsIm1ldGF2YXJpYWJsZVJlZmVyZW5jZXMiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7Z0VBZkU7K0RBQ0M7Z0VBQ0U7Z0VBQ1k7a0VBQ0U7MkJBRVY7cUJBQ0s7eUJBQzBFOzs7Ozs7QUFFaEgsSUFBTUMsa0JBQWtCQyxJQUFBQSxp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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZURlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhcHJvb2ZTdGVwIGZyb20gXCIuLi9zdGVwL21ldGFwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeVByZW1pc2VzIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZXNcIjtcbmltcG9ydCBMb2NhbE1ldGFDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsTWV0YVwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9tZXRhc3RhdGVtZW50L3F1YWxpZmllZFwiO1xuaW1wb3J0IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L21ldGFzdGF0ZW1lbnQvdW5xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgYXNzaWduQXNzaWdubWVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXNzaWdubWVudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FLCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBjaGlsZE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3J1bGVEZXJpdmF0aW9ufHJ1bGVTdWJEZXJpdmF0aW9uLypcIiksXG4gICAgICBwcmVtaXNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZVN1YnByb29mL3ByZW1pc2VcIiksXG4gICAgICBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpLFxuICAgICAgcnVsZVN1YkRlcml2YXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZVN1YnByb29mL3J1bGVTdWJEZXJpdmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlRGVyaXZhdGlvbihydWxlRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNRdWVyeShydWxlU3ViRGVyaXZhdGlvbk5vZGUpO1xuXG4gIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSBjaGlsZE5vZGVzLmV2ZXJ5KChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBjaGlsZFZlcmlmaWVkID0gdmVyaWZ5Q2hpbGQoY2hpbGROb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChjaGlsZFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSdWxlU3VicHJvb2YocnVsZVN1YnByb29mTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgcnVsZVN1YnByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBsb2NhbE1ldGFDb250ZXh0ID0gTG9jYWxNZXRhQ29udGV4dC5mcm9tTG9jYWxNZXRhQ29udGV4dChsb2NhbE1ldGFDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgcHJlbWlzZU5vZGVzID0gcHJlbWlzZU5vZGVzUXVlcnkocnVsZVN1YnByb29mTm9kZSksXG4gICAgICAgIHByZW1pc2VzVmVyaWZpZWQgPSB2ZXJpZnlQcmVtaXNlcyhwcmVtaXNlTm9kZXMsIHByZW1pc2VzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICBpZiAocHJlbWlzZXNWZXJpZmllZCkge1xuICAgIGNvbnN0IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZSA9IHJ1bGVTdWJEZXJpdmF0aW9uTm9kZVF1ZXJ5KHJ1bGVTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlSdWxlU3ViRGVyaXZhdGlvbihydWxlU3ViRGVyaXZhdGlvbk5vZGUsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHJ1bGVTdWJEZXJpdmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJ1bGVTdWJwcm9vZlZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcnVsZVN1YnByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUNoaWxkKGNoaWxkTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgY2hpbGRWZXJpZmllZDtcblxuICBjb25zdCBjaGlsZE5vZGVSdWxlTmFtZSA9IGNoaWxkTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gIHN3aXRjaCAoY2hpbGROb2RlUnVsZU5hbWUpIHtcbiAgICBjYXNlIFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FOiB7XG4gICAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gY2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBydWxlU3VicHJvb2ZWZXJpZmllZCA9IHZlcmlmeVJ1bGVTdWJwcm9vZihydWxlU3VicHJvb2ZOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKHJ1bGVTdWJwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21SdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUpO1xuXG4gICAgICAgIGxvY2FsTWV0YUNvbnRleHQuYWRkTWV0YXByb29mU3RlcChtZXRhcHJvb2ZTdGVwKTtcblxuICAgICAgICBjaGlsZFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgICAgIGNvbnN0IGRlcml2ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBudWxsLFxuICAgICAgICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBjaGlsZE5vZGU7ICAvLy9cblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkTWV0YXN0YXRlbWVudChxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICBpZiAocXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnQoYXNzaWdubWVudHMsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmIChxdWFsaWZpZWRNZXRhc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXByb29mU3RlcCA9IE1ldGFwcm9vZlN0ZXAuZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBsb2NhbE1ldGFDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG5cbiAgICAgICAgY2hpbGRWZXJpZmllZCA9IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNhc2UgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgIGxldCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgICAgY29uc3QgZGVyaXZlZCA9IHRydWUsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IGNoaWxkTm9kZTsgIC8vL1xuXG4gICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50QXNzaWduZWQgPSBhc3NpZ25Bc3NpZ25tZW50KGFzc2lnbm1lbnRzLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IGFzc2lnbm1lbnRBc3NpZ25lZDsgLy8vXG4gICAgICB9XG5cbiAgICAgIGlmICh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgIG1ldGFwcm9vZlN0ZXAgPSBNZXRhcHJvb2ZTdGVwLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5hZGRNZXRhcHJvb2ZTdGVwKG1ldGFwcm9vZlN0ZXApO1xuXG4gICAgICAgIGNoaWxkVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hpbGRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSdWxlRGVyaXZhdGlvbiIsImNoaWxkTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlTm9kZXNRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlU3ViRGVyaXZhdGlvbk5vZGVRdWVyeSIsInJ1bGVEZXJpdmF0aW9uTm9kZSIsImxvY2FsTWV0YUNvbnRleHQiLCJydWxlRGVyaXZhdGlvblZlcmlmaWVkIiwiY2hpbGROb2RlcyIsImV2ZXJ5IiwiY2hpbGROb2RlIiwiY2hpbGRWZXJpZmllZCIsInZlcmlmeUNoaWxkIiwidmVyaWZ5UnVsZVN1YkRlcml2YXRpb24iLCJydWxlU3ViRGVyaXZhdGlvbk5vZGUiLCJydWxlU3ViRGVyaXZhdGlvblZlcmlmaWVkIiwidmVyaWZ5UnVsZVN1YnByb29mIiwicnVsZVN1YnByb29mTm9kZSIsInJ1bGVTdWJwcm9vZlZlcmlmaWVkIiwiTG9jYWxNZXRhQ29udGV4dCIsImZyb21Mb2NhbE1ldGFDb250ZXh0IiwicHJlbWlzZXMiLCJwcmVtaXNlTm9kZXMiLCJwcmVtaXNlc1ZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZXMiLCJjaGlsZE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiUlVMRV9TVUJQUk9PRl9SVUxFX05BTUUiLCJtZXRhcHJvb2ZTdGVwIiwiTWV0YXByb29mU3RlcCIsImZyb21SdWxlU3VicHJvb2ZOb2RlIiwiYWRkTWV0YXByb29mU3RlcCIsIlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsImRlcml2ZWQiLCJhc3NpZ25tZW50cyIsInN1YnN0aXR1dGlvbnMiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVF1YWxpZmllZE1ldGFzdGF0ZW1lbnQiLCJhc3NpZ25tZW50QXNzaWduZWQiLCJhc3NpZ25Bc3NpZ25tZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsInZlcmlmeVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7Z0VBZkU7K0RBQ0M7Z0VBQ0U7Z0VBQ1k7a0VBQ0U7MkJBRVY7cUJBQ0s7eUJBQzBFOzs7Ozs7QUFFaEgsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLHdDQUM3QkMsb0JBQW9CRCxJ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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.879",
4
+ "version": "0.0.881",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -12,9 +12,9 @@
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.28",
14
14
  "necessary": "^14.0.1",
15
- "occam-custom-grammars": "^5.0.785",
16
- "occam-entities": "^1.0.134",
17
- "occam-file-system": "^6.0.176",
15
+ "occam-custom-grammars": "^5.0.787",
16
+ "occam-entities": "^1.0.135",
17
+ "occam-file-system": "^6.0.177",
18
18
  "occam-grammar-utilities": "^8.0.205",
19
19
  "occam-query": "^3.1.174"
20
20
  },
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ export default class JudgementAssignment {
4
+ constructor(judgement) {
5
+ this.judgement = judgement;
6
+ }
7
+
8
+ getJudgement() {
9
+ return this.judgement;
10
+ }
11
+
12
+ assign(localMetaContext) {
13
+ const judgementAdded = localMetaContext.addJudgement(this.judgement),
14
+ judgementNode = this.judgement.getNode(),
15
+ judgementString = localMetaContext.nodeAsString(judgementNode),
16
+ judgementAssigned = judgementAdded; ///
17
+
18
+ judgementAssigned ?
19
+ localMetaContext.trace(`Assigned the '${judgementString}' judgement.`, judgementNode) :
20
+ localMetaContext.debug(`Unable to assign the '${judgementString}' judgement.`, judgementNode);
21
+
22
+ return judgementAssigned;
23
+ }
24
+
25
+ static fromJudgement(judgement) {
26
+ const judgementAssignment = new JudgementAssignment(judgement);
27
+
28
+ return judgementAssignment;
29
+ }
30
+ }
@@ -71,6 +71,12 @@ export default class FileContext {
71
71
  return proofSteps;
72
72
  }
73
73
 
74
+ getJudgements() {
75
+ const judgements = [];
76
+
77
+ return judgements;
78
+ }
79
+
74
80
  getEquivalences() {
75
81
  const equivalences = []; ///
76
82
 
@@ -83,12 +89,6 @@ export default class FileContext {
83
89
  return metaproofSteps;
84
90
  }
85
91
 
86
- getMetaEquivalences() {
87
- const metaEquivalences = []; ///
88
-
89
- return metaEquivalences;
90
- }
91
-
92
92
  getLabels(includeRelease = true) {
93
93
  const labels = [];
94
94
 
@@ -53,7 +53,11 @@ class LocalContext {
53
53
  return equivalences;
54
54
  }
55
55
 
56
- getMetaEquivalences() { return this.context.getMetaEquivalences(); }
56
+ getJudgements() { return this.context.getJudgements(); }
57
+
58
+ getMetavariables() { return this.context.getMetavariables(); }
59
+
60
+ getMetaproofSteps() { return this.context.getMetaproofSteps(); }
57
61
 
58
62
  getLastProofStep() {
59
63
  let lastProofStep = null;
@@ -67,8 +71,6 @@ class LocalContext {
67
71
  return lastProofStep;
68
72
  }
69
73
 
70
- getMetavariables() { return this.context.getMetavariables(); }
71
-
72
74
  getTermType(term) {
73
75
  let termType;
74
76
 
@@ -3,24 +3,39 @@
3
3
  import contextMixins from "../mixins/context";
4
4
 
5
5
  import { last } from "../utilities/array";
6
- import { mergeMetaEquivalences } from "../utilities/metaEquivalences";
7
6
 
8
7
  class LocalMetaContext {
9
- constructor(context, metavariables, metaproofSteps, metaEquivalences) {
8
+ constructor(context, judgements, metavariables, metaproofSteps) {
10
9
  this.context = context;
10
+ this.judgements = judgements;
11
11
  this.metavariables = metavariables;
12
12
  this.metaproofSteps = metaproofSteps;
13
- this.metaEquivalences = metaEquivalences;
14
13
  }
15
14
 
16
15
  getContext() {
17
16
  return this.context;
18
17
  }
19
18
 
20
- getTermType(term) {
21
- const termType = term.getType();
19
+ getJudgements() {
20
+ let judgements = this.context.getJudgements();
22
21
 
23
- return termType;
22
+ judgements = [ ///
23
+ ...this.judgements,
24
+ ...judgements
25
+ ]
26
+
27
+ return judgements;
28
+ }
29
+
30
+ getMetavariables() {
31
+ let metavariables = this.context.getMetavariables();
32
+
33
+ metavariables = [ ///
34
+ ...this.metavariables,
35
+ ...metavariables
36
+ ]
37
+
38
+ return metavariables;
24
39
  }
25
40
 
26
41
  getMetaproofSteps() {
@@ -34,31 +49,16 @@ class LocalMetaContext {
34
49
  return metaproofSteps;
35
50
  }
36
51
 
37
- getMetaEquivalences() {
38
- let metaEquivalences = this.context.getMetaEquivalences();
39
-
40
- const metaEquivalencesA = this.metaEquivalences, ///
41
- metaEquivalencesB = metaEquivalences,
42
- localMetaContext = this; ///
43
-
44
- metaEquivalences = mergeMetaEquivalences(metaEquivalencesA, metaEquivalencesB, localMetaContext); ///
45
-
46
- return metaEquivalences;
47
- }
48
-
49
52
  getVariables() { return this.context.getVariables(); }
50
53
 
51
- getEquivalences() { return this.context.getEquivalences(); }
54
+ getProofSteps() { return this.context.getProofSteps(); }
52
55
 
53
- getMetavariables() {
54
- let metavariables = this.context.getMetavariables();
56
+ getEquivalences() { return this.context.getEquivalences(); }
55
57
 
56
- metavariables = [ ///
57
- ...this.metavariables,
58
- ...metavariables
59
- ]
58
+ getTermType(term) {
59
+ const termType = term.getType();
60
60
 
61
- return metavariables;
61
+ return termType;
62
62
  }
63
63
 
64
64
  getLastMetaproofStep() {
@@ -73,8 +73,8 @@ class LocalMetaContext {
73
73
  return lastMetaproofStep;
74
74
  }
75
75
 
76
- addMetaEquality(metaEquality) {
77
-
76
+ addJudgement(judgement) {
77
+ this.judgements.push(judgement);
78
78
  }
79
79
 
80
80
  addMetavariable(metavariable) {
@@ -102,10 +102,6 @@ class LocalMetaContext {
102
102
  this.metaproofSteps.push(metaproofStep);
103
103
  }
104
104
 
105
- addMetaEquivalence(metaEquivalence) {
106
- this.metaEquivalences.push(metaEquivalence);
107
- }
108
-
109
105
  matchMetastatement(metastatementNode) {
110
106
  let metastatementMatches = false;
111
107
 
@@ -172,21 +168,21 @@ class LocalMetaContext {
172
168
 
173
169
  static fromFileContext(fileContext) {
174
170
  const context = fileContext, ///
171
+ judgements = [],
175
172
  metavariables = [],
176
173
  metaproofSteps = [],
177
- metaEquivalences = [],
178
- localMetaContext = new LocalMetaContext(context, metavariables, metaproofSteps, metaEquivalences);
174
+ localMetaContext = new LocalMetaContext(context, judgements, metavariables, metaproofSteps);
179
175
 
180
176
  return localMetaContext;
181
177
  }
182
178
 
183
179
  static fromLocalMetaContext(localMetaContext) {
184
180
  const context = localMetaContext, ///
181
+ judgements = [],
185
182
  metavariables = [],
186
- metaproofSteps = [],
187
- metaEquivalences = [];
183
+ metaproofSteps = [];
188
184
 
189
- localMetaContext = new LocalMetaContext(context, metavariables, metaproofSteps, metaEquivalences); ///
185
+ localMetaContext = new LocalMetaContext(context, judgements, metavariables, metaproofSteps); ///
190
186
 
191
187
  return localMetaContext;
192
188
  }
package/src/frame.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ export default class Frame {
4
+ constructor(node, declarations) {
5
+ this.node = node;
6
+ this.declarations = declarations;
7
+ }
8
+
9
+ getNode() {
10
+ return this.node;
11
+ }
12
+
13
+ getDeclarations() {
14
+ return this.declarations;
15
+ }
16
+
17
+ addDeclarations(declarations) {
18
+ push(this.declarations, declarations);
19
+ }
20
+
21
+ fromFrameNodeAndDeclarations(frameNode, declarations) {
22
+ const node = frameNode, ///
23
+ frame = new Frame(node, declarations);
24
+
25
+ return frame;
26
+ }
27
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ export default class Judgement {
4
+ constructor(node, frame, metavariable) {
5
+ this.node = node;
6
+ this.frame = frame;
7
+ this.metavariable = metavariable;
8
+ }
9
+
10
+ getNode() {
11
+ return this.node;
12
+ }
13
+
14
+ getFrame() {
15
+ return this.frame;
16
+ }
17
+
18
+ getMetavariable() {
19
+ return this.metavariable;
20
+ }
21
+
22
+ static fromJudgementNodeFrameAndMetavariable(judgementNode, frame, metavariable) {
23
+ const node = judgementNode,
24
+ judgement = new Judgement(node, frame, metavariable);
25
+
26
+ return judgement;
27
+ }
28
+ }
package/src/metaLemma.js CHANGED
@@ -5,5 +5,5 @@ import MetalemmaMetatheorem from "./metalemmaMetatheorem";
5
5
  export default class MetaLemma extends MetalemmaMetatheorem {
6
6
  static fromJSONAndFileContext(json, fileContext) { return MetalemmaMetatheorem.fromJSONAndFileContext(MetaLemma, json, fileContext); }
7
7
 
8
- static fromLabelsMetaSuppositionsMetaConsequentAndFileContext(labels, metaSuppositions, metaConsequent, fileContext) { return MetalemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentAndFileContext(MetaLemma, labels, metaSuppositions, metaConsequent, fileContext); }
8
+ static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return MetalemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(MetaLemma, labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
9
9
  }
@@ -3,16 +3,17 @@
3
3
  import Label from "./label";
4
4
  import MetaConsequent from "./metaConsequent";
5
5
  import MetaSupposition from "./metaSupposition";
6
- import LocalMetaContext from "./context/localMeta";
7
6
 
8
7
  import { prune } from "./utilities/array";
9
8
  import { someSubArray } from "./utilities/array";
9
+ import MetastatementForMetavariableSubstitution from "./substitution/metastatementForMetavariable";
10
10
 
11
11
  export default class MetaLemmaMetatheorem {
12
- constructor(labels, metaSuppositions, metaConsequent, fileContext) {
12
+ constructor(labels, metaSuppositions, metaConsequent, substitutions, fileContext) {
13
13
  this.labels = labels;
14
14
  this.metaSuppositions = metaSuppositions;
15
15
  this.metaConsequent = metaConsequent;
16
+ this.substitutions = substitutions;
16
17
  this.fileContext = fileContext;
17
18
  }
18
19
 
@@ -28,6 +29,10 @@ export default class MetaLemmaMetatheorem {
28
29
  return this.metaConsequent;
29
30
  }
30
31
 
32
+ getSubstitutions() {
33
+ return this.substitutions;
34
+ }
35
+
31
36
  getFileContext() {
32
37
  return this.fileContext;
33
38
  }
@@ -91,15 +96,22 @@ export default class MetaLemmaMetatheorem {
91
96
  return metaSuppositionJSON;
92
97
  }),
93
98
  metaConsequentJSON = this.metaConsequent.toJSON(tokens),
99
+ substitutionsJSON = this.substitutions.map((substitution) => {
100
+ const substitutionJSON = substitution.toJSON();
101
+
102
+ return substitutionJSON;
103
+ }),
94
104
  localContextJSON = this.fileContext.toJSON(tokens),
95
105
  labels = labelsJSON, ///
96
106
  metaSuppositions = metaSuppositionsJSON, ///
97
107
  metaConsequent = metaConsequentJSON, ///
108
+ substitutions = substitutionsJSON, ///
98
109
  fileContext = localContextJSON, ///
99
110
  json = {
100
111
  labels,
101
112
  metaSuppositions,
102
113
  metaConsequent,
114
+ substitutions,
103
115
  fileContext
104
116
  };
105
117
 
@@ -118,7 +130,7 @@ export default class MetaLemmaMetatheorem {
118
130
  return label;
119
131
  });
120
132
 
121
- let { metaSuppositions, metaConsequent } = json;
133
+ let { metaSuppositions, metaConsequent, substitutions } = json;
122
134
 
123
135
  const metaSuppositionsJSON = metaSuppositions; ///
124
136
 
@@ -135,10 +147,20 @@ export default class MetaLemmaMetatheorem {
135
147
 
136
148
  metaConsequent = MetaConsequent.fromJSONAndFileContext(json, fileContext);
137
149
 
138
- return new Class(labels, metaSuppositions, metaConsequent, fileContext); ///
150
+ const substitutionsJSON = substitutions; ///
151
+
152
+ substitutions = substitutionsJSON.map((substitutionJSON) => {
153
+ const json = substitutionJSON, ///
154
+ metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromJSONAndFileContext(json, fileContext),
155
+ substitution = metastatementForMetavariableSubstitution; ///
156
+
157
+ return substitution;
158
+ });
159
+
160
+ return new Class(labels, metaSuppositions, metaConsequent, substitutions, fileContext); ///
139
161
  }
140
162
 
141
- static fromLabelsMetaSuppositionsMetaConsequentAndFileContext(Class, labels, metaSuppositions, metaConsequent, fileContext) { return new Class(labels, metaSuppositions, metaConsequent, fileContext); }
163
+ static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Class, labels, metaSuppositions, metaConsequent, substitutions, fileContext) { return new Class(labels, metaSuppositions, metaConsequent, substitutions, fileContext); }
142
164
  }
143
165
 
144
166
  function matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, fileContext, metastatementLocalContext) {
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ import MetaType from "../metaType";
4
+
5
+ import { FRAME_META_TYPE_NAME } from "../metaTypeNames";
6
+
7
+ class FrameMetaType extends MetaType {
8
+ static fromNothing() {
9
+ const name = FRAME_META_TYPE_NAME,
10
+ frameMetaType = new FrameMetaType(name);
11
+
12
+ return frameMetaType;
13
+ }
14
+ }
15
+
16
+ const frameMetaType = FrameMetaType.fromNothing();
17
+
18
+ export default frameMetaType;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ import MetaType from "../metaType";
4
+
5
+ import { REFERENCE_META_TYPE_NAME } from "../metaTypeNames";
6
+
7
+ class ReferenceMetaType extends MetaType {
8
+ static fromNothing() {
9
+ const name = REFERENCE_META_TYPE_NAME,
10
+ referenceMetaType = new ReferenceMetaType(name);
11
+
12
+ return referenceMetaType;
13
+ }
14
+ }
15
+
16
+ const referenceMetaType = ReferenceMetaType.fromNothing();
17
+
18
+ export default referenceMetaType;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
+ export const FRAME_META_TYPE_NAME = "Frame";
4
+ export const REFERENCE_META_TYPE_NAME = "Reference";
3
5
  export const STATEMENT_META_TYPE_NAME = "Statement";
4
- export const CONTEXT_META_TYPE_NAME = "Context";
5
- export const LABEL_META_TYPE_NAME = "Label";
package/src/metaTypes.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import labelMetaType from "./metaType/label";
4
- import contextMetaType from "./metaType/context";
3
+ import frameMetaType from "./metaType/frame";
4
+ import referenceMetaType from "./metaType/reference";
5
5
  import statementMetaType from "./metaType/statement";
6
6
 
7
7
  const metaTypes = [
8
- labelMetaType,
9
- contextMetaType,
8
+ frameMetaType,
9
+ referenceMetaType,
10
10
  statementMetaType
11
11
  ];
12
12
 
@@ -5,5 +5,5 @@ import MetaLemmaMetatheorem from "./metaLemmaMetatheorem";
5
5
  export default class Metatheorem extends MetaLemmaMetatheorem {
6
6
  static fromJSONAndFileContext(json, fileContext) { return MetaLemmaMetatheorem.fromJSONAndFileContext(Metatheorem, json, fileContext); }
7
7
 
8
- static fromLabelsMetaSuppositionsMetaConsequentAndFileContext(labels, suppositions, consequent, fileContext) { return MetaLemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
8
+ static fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, fileContext) { return MetaLemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentSubstitutionsAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
9
9
  }
@@ -3,6 +3,8 @@
3
3
  import Substitution from "../substitution";
4
4
 
5
5
  import { bracketedMetastatementChildNodeFromMetastatementNode } from "../utilities/metaproof";
6
+ import {nodeAsString} from "../utilities/string";
7
+ import {metastatementNodeFromMetastatementString, metavariableNodeFromMetavariableString} from "../utilities/node";
6
8
 
7
9
  export default class MetastatementForMetavariableSubstitution extends Substitution {
8
10
  constructor(metavariableNode, metastatementNode) {
@@ -44,6 +46,32 @@ export default class MetastatementForMetavariableSubstitution extends Substituti
44
46
  return metastatementNodeMatches;
45
47
  }
46
48
 
49
+ toJSON(tokens) {
50
+ const metavariableString = nodeAsString(this.metavariableNode, tokens),
51
+ metastatementString = nodeAsString(this.metastatementNode, tokens),
52
+ metavariable = metavariableString, ///
53
+ metastatement = metastatementString, ///
54
+ json = {
55
+ metavariable,
56
+ metastatement
57
+ };
58
+
59
+ return json;
60
+ }
61
+
62
+ static fromJSONAndFileContext(json, fileContext) {
63
+ const { metavariable, metastatement } = json,
64
+ metavariableString = metavariable, ///
65
+ metastatementString = metastatement, ///
66
+ lexer = fileContext.getLexer(),
67
+ parser = fileContext.getParser(),
68
+ metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
69
+ metavariableNode = metavariableNodeFromMetavariableString(metavariableString, lexer, parser),
70
+ metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metastatementNode, metavariableNode);
71
+
72
+ return metastatementForMetavariableSubstitution;
73
+ }
74
+
47
75
  static fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode) {
48
76
  let metastatementForMetavariableSubstitution;
49
77
 
@@ -7,14 +7,9 @@ const typeTerminalNodeQuery = nodeQuery("/type/@type"),
7
7
  metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type");
8
8
 
9
9
  export function typeNameFromTypeNode(typeNode) {
10
- let typeName = null;
11
-
12
- if (typeNode !== null) {
13
- const typeTerminalNode = typeTerminalNodeQuery(typeNode),
14
- typeTerminalNodeContent = typeTerminalNode.getContent();
15
-
16
- typeName = typeTerminalNodeContent; ///
17
- }
10
+ const typeTerminalNode = typeTerminalNodeQuery(typeNode),
11
+ typeTerminalNodeContent = typeTerminalNode.getContent(),
12
+ typeName = typeTerminalNodeContent; ///
18
13
 
19
14
  return typeName;
20
15
  }
@@ -28,14 +23,9 @@ export function nameFromMetavariableNode(metavariableNode) {
28
23
  }
29
24
 
30
25
  export function metaTypeNameFromMetaTypeNode(metaTypeNode) {
31
- let metaTypeName = null;
32
-
33
- if (metaTypeNode !== null) {
34
26
  const metaTypeTerminalNode = metaTypeTerminalNodeQuery(metaTypeNode),
35
- metaTypeTerminalNodeContent = metaTypeTerminalNode.getContent();
36
-
37
- metaTypeName = metaTypeTerminalNodeContent; ///
38
- }
27
+ metaTypeTerminalNodeContent = metaTypeTerminalNode.getContent(),
28
+ metaTypeName = metaTypeTerminalNodeContent; ///
39
29
 
40
30
  return metaTypeName;
41
31
  }
@@ -47,7 +47,7 @@ class MetaLevelNodesVerifier extends NodesVerifier {
47
47
 
48
48
  const metavariableNode = metastatementMetavariableNodeA, ///
49
49
  metastatementNode = metastatementNodeB, ///
50
- metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, localContextA, localMetaContextB, verifyAhead);
50
+ metavariableVerifiedAgainstMetastatement = verifyMetavariableAgainstMetastatement(metavariableNode, metastatementNode, substitutions, verifyAhead);
51
51
 
52
52
  metastatementMetavariableNodeVerifiedAgainstMetastatementNode = metavariableVerifiedAgainstMetastatement; ///
53
53
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import labelMetaType from "../metaType/label";
3
+ import referenceMetaType from "../metaType/reference";
4
4
  import metastatementNodeVerifier from "../verifier/node/metastatement";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
@@ -21,7 +21,7 @@ export default function verifyDeclaration(declarationNode, derived, localMetaCon
21
21
  if (metavariable !== null) {
22
22
  const metaType = metavariable.getMetaType();
23
23
 
24
- if (metaType === labelMetaType) {
24
+ if (metaType === referenceMetaType) {
25
25
  const metastatementNode = metastatementNodeQuery(declarationNode);
26
26
 
27
27
  if (metastatementNode !== null) {
@@ -36,11 +36,11 @@ export default function verifyDeclaration(declarationNode, derived, localMetaCon
36
36
  declarationVerified = metastatementVerified; ///
37
37
  }
38
38
  } else {
39
- const metavariableString = localMetaContext.nodeAsString(metavariableNode),
40
- labelMetaTypeName = labelMetaType.getName(),
39
+ const referenceMetaTypeName = referenceMetaType.getName(),
40
+ metavariableString = localMetaContext.nodeAsString(metavariableNode),
41
41
  metaTypeString = metaType.asString();
42
42
 
43
- localMetaContext.debug(`The '${metavariableString}' metavariable's meta-type is '${metaTypeString}' when it should be '${labelMetaTypeName}'.`, declarationNode);
43
+ localMetaContext.debug(`The '${metavariableString}' metavariable's meta-type is '${metaTypeString}' when it should be '${referenceMetaTypeName}'.`, declarationNode);
44
44
  }
45
45
  }
46
46