occam-verify-cli 1.0.852 → 1.0.857

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 (78) hide show
  1. package/lib/context/file/nominal.js +18 -3
  2. package/lib/context/liminal.js +101 -102
  3. package/lib/context/mnemic.js +511 -0
  4. package/lib/context.js +23 -11
  5. package/lib/element/assertion/contained.js +8 -8
  6. package/lib/element/assertion/defined.js +6 -6
  7. package/lib/element/assertion/satisfies.js +4 -4
  8. package/lib/element/assertion/type.js +5 -4
  9. package/lib/element/assumption/metaLevel.js +7 -7
  10. package/lib/element/assumption.js +23 -15
  11. package/lib/element/combinator.js +4 -4
  12. package/lib/element/conclusion.js +4 -4
  13. package/lib/element/constructor.js +4 -4
  14. package/lib/element/declaration/combinator.js +4 -4
  15. package/lib/element/declaration/complexType.js +3 -3
  16. package/lib/element/declaration/constructor.js +6 -4
  17. package/lib/element/declaration/metavariable.js +7 -7
  18. package/lib/element/declaration/variable.js +6 -4
  19. package/lib/element/deduction.js +4 -4
  20. package/lib/element/frame.js +60 -48
  21. package/lib/element/judgement.js +16 -29
  22. package/lib/element/label.js +4 -4
  23. package/lib/element/metavariable.js +59 -58
  24. package/lib/element/proofAssertion/premise.js +4 -4
  25. package/lib/element/reference.js +20 -20
  26. package/lib/element/rule.js +4 -4
  27. package/lib/element/substitution/frame.js +9 -8
  28. package/lib/element/substitution/reference.js +7 -7
  29. package/lib/element/substitution/statement.js +12 -11
  30. package/lib/element/substitution/term.js +9 -8
  31. package/lib/element/topLevelAssertion.js +4 -4
  32. package/lib/element/topLevelMetaAssertion.js +2 -2
  33. package/lib/element/variable.js +8 -8
  34. package/lib/utilities/context.js +6 -6
  35. package/lib/utilities/element.js +3 -3
  36. package/lib/utilities/json.js +16 -16
  37. package/lib/utilities/string.js +7 -29
  38. package/lib/utilities/substitutions.js +6 -6
  39. package/package.json +1 -1
  40. package/src/context/file/nominal.js +24 -2
  41. package/src/context/liminal.js +116 -117
  42. package/src/context/{ephemeral.js → mnemic.js} +38 -40
  43. package/src/context.js +32 -12
  44. package/src/element/assertion/contained.js +7 -7
  45. package/src/element/assertion/defined.js +5 -5
  46. package/src/element/assertion/satisfies.js +3 -4
  47. package/src/element/assertion/type.js +5 -4
  48. package/src/element/assumption/metaLevel.js +6 -8
  49. package/src/element/assumption.js +28 -17
  50. package/src/element/combinator.js +3 -4
  51. package/src/element/conclusion.js +3 -4
  52. package/src/element/constructor.js +3 -4
  53. package/src/element/declaration/combinator.js +3 -4
  54. package/src/element/declaration/complexType.js +2 -2
  55. package/src/element/declaration/constructor.js +7 -4
  56. package/src/element/declaration/metavariable.js +6 -8
  57. package/src/element/declaration/variable.js +7 -4
  58. package/src/element/deduction.js +3 -4
  59. package/src/element/frame.js +81 -64
  60. package/src/element/judgement.js +21 -43
  61. package/src/element/label.js +3 -4
  62. package/src/element/metavariable.js +66 -73
  63. package/src/element/proofAssertion/premise.js +3 -4
  64. package/src/element/reference.js +21 -25
  65. package/src/element/rule.js +3 -3
  66. package/src/element/substitution/frame.js +7 -7
  67. package/src/element/substitution/reference.js +4 -6
  68. package/src/element/substitution/statement.js +9 -10
  69. package/src/element/substitution/term.js +7 -7
  70. package/src/element/topLevelAssertion.js +3 -3
  71. package/src/element/topLevelMetaAssertion.js +2 -2
  72. package/src/element/variable.js +7 -8
  73. package/src/utilities/context.js +9 -9
  74. package/src/utilities/element.js +3 -3
  75. package/src/utilities/json.js +9 -9
  76. package/src/utilities/string.js +11 -40
  77. package/src/utilities/substitutions.js +3 -3
  78. package/lib/context/ephemeral.js +0 -513
@@ -12,8 +12,8 @@ _export(exports, {
12
12
  get frameFromFrameAndSubstitutions () {
13
13
  return frameFromFrameAndSubstitutions;
14
14
  },
15
- get metavariableNodesFromSubstitutions () {
16
- return metavariableNodesFromSubstitutions;
15
+ get metavariableNodesFromDerivedSubstitutions () {
16
+ return metavariableNodesFromDerivedSubstitutions;
17
17
  },
18
18
  get statementFromStatementAndSubstitutions () {
19
19
  return statementFromStatementAndSubstitutions;
@@ -78,10 +78,10 @@ function statementFromStatementAndSubstitutions(statement, generalContext, speci
78
78
  }
79
79
  return statement;
80
80
  }
81
- function metavariableNodesFromSubstitutions(substitutions) {
81
+ function metavariableNodesFromDerivedSubstitutions(derivedSubstitutions) {
82
82
  const metavariableNodes = [];
83
- substitutions.forEach((substitution)=>{
84
- const metavariableNode = substitution.getMetavariableNode();
83
+ derivedSubstitutions.forEach((derivedSubstitution)=>{
84
+ const metavariableNode = derivedSubstitution.getMetavariableNode();
85
85
  if (metavariableNode !== null) {
86
86
  metavariableNodes.push(metavariableNode);
87
87
  }
@@ -95,4 +95,4 @@ function metavariableNodesFromSubstitutions(substitutions) {
95
95
  return metavariableNodes;
96
96
  }
97
97
 
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3Vic3RpdHV0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21UZXJtQW5kU3Vic3RpdHV0aW9ucyh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGlmICh0ZXJtICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICB0ZXJtU2luZ3VsYXIgPSB0ZXJtLmlzU2luZ3VsYXIoKTtcblxuICAgIHRlcm0gPSBudWxsOyAgLy8vXG5cbiAgICBpZiAodGVybVNpbmd1bGFyKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0ZXJtTm9kZS5nZXRWYXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICAgIHJlcGxhY2VtZW50VGVybSA9IHRlcm1TdWJzdGl0dXRpb24uZ2V0UmVwbGFjZW1lbnRUZXJtKCk7XG5cbiAgICAgICAgdGVybSA9IHJlcGxhY2VtZW50VGVybTsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnMoZnJhbWUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgaWYgKGZyYW1lICE9PSBudWxsKSB7XG4gICAgY29uc3QgZnJhbWVOb2RlID0gZnJhbWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGZyYW1lU2luZ3VsYXIgPSBmcmFtZS5pc1Npbmd1bGFyKCk7XG5cbiAgICBmcmFtZSA9IG51bGw7ICAvLy9cblxuICAgIGlmIChmcmFtZVNpbmd1bGFyKSB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gZnJhbWVOb2RlLmdldE1ldGF2YXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgICAgcmVwbGFjZW1lbnRGcmFtZSA9IGZyYW1lU3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50RnJhbWUoKTtcblxuICAgICAgICBmcmFtZSA9IHJlcGxhY2VtZW50RnJhbWU7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudEZyb21TdGF0ZW1lbnRBbmRTdWJzdGl0dXRpb25zKHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3RhdGVtZW50U2luZ3VsYXIgPSBzdGF0ZW1lbnQuaXNTaW5ndWxhcigpO1xuXG4gICAgc3RhdGVtZW50ID0gbnVsbDtcblxuICAgIGlmIChzdGF0ZW1lbnRTaW5ndWxhcikge1xuICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldFN1YnN0aXR1dGlvbk5vZGUoKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgbGV0IGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7IC8vL1xuXG4gICAgICAgIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQ7ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb24gPSBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5U3Vic3RpdHV0aW9uTm9kZShzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGdlbmVyYWxDb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAvLy9cblxuICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldE1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgICAgc3Vic3RpdHV0aW9uID0gKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb24pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnRTdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgICByZXBsYWNlbWVudFN0YXRlbWVudCA9IHN0YXRlbWVudFN1YnN0aXR1dGlvbi5nZXRSZXBsYWNlbWVudFN0YXRlbWVudCgpO1xuXG4gICAgICAgIHN0YXRlbWVudCA9IHJlcGxhY2VtZW50U3RhdGVtZW50OyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTm9kZXNGcm9tU3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVzID0gW107XG5cbiAgc3Vic3RpdHV0aW9ucy5mb3JFYWNoKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gc3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBtZXRhdmFyaWFibGVOb2Rlcy5wdXNoKG1ldGF2YXJpYWJsZU5vZGUpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29tcHJlc3MobWV0YXZhcmlhYmxlTm9kZXMsIChtZXRhdmFyaWFibGVOb2RlQSwgbWV0YXZhcmlhYmxlTm9kZUIpID0+IHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlQU1hdGNoZXNldGF2YXJpYWJsZU5vZGVCID0gbWV0YXZhcmlhYmxlTm9kZUEubWF0Y2gobWV0YXZhcmlhYmxlTm9kZUIpO1xuXG4gICAgaWYgKCFtZXRhdmFyaWFibGVOb2RlQU1hdGNoZXNldGF2YXJpYWJsZU5vZGVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVOb2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnMiLCJtZXRhdmFyaWFibGVOb2Rlc0Zyb21TdWJzdGl0dXRpb25zIiwic3RhdGVtZW50RnJvbVN0YXRlbWVudEFuZFN1YnN0aXR1dGlvbnMiLCJ0ZXJtRnJvbVRlcm1BbmRTdWJzdGl0dXRpb25zIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsInRlcm0iLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInRlcm1TaW5ndWxhciIsImlzU2luZ3VsYXIiLCJ2YXJpYWJsZU5vZGUiLCJnZXRWYXJpYWJsZU5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUiLCJ0ZXJtU3Vic3RpdHV0aW9uIiwicmVwbGFjZW1lbnRUZXJtIiwiZ2V0UmVwbGFjZW1lbnRUZXJtIiwiZnJhbWUiLCJmcmFtZU5vZGUiLCJmcmFtZVNpbmd1bGFyIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwiZnJhbWVTdWJzdGl0dXRpb24iLCJyZXBsYWNlbWVudEZyYW1lIiwiZ2V0UmVwbGFjZW1lbnRGcmFtZSIsInN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRTaW5ndWxhciIsInN1YnN0aXR1dGlvbk5vZGUiLCJnZXRTdWJzdGl0dXRpb25Ob2RlIiwiY29udGV4dCIsImZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uIiwicmVwbGFjZW1lbnRTdGF0ZW1lbnQiLCJnZXRSZXBsYWNlbWVudFN0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJtZXRhdmFyaWFibGVOb2RlcyIsImZvckVhY2giLCJwdXNoIiwibWV0YXZhcmlhYmxlTm9kZUEiLCJtZXRhdmFyaWFibGVOb2RlQiIsIm1ldGF2YXJpYWJs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
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3Vic3RpdHV0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybUZyb21UZXJtQW5kU3Vic3RpdHV0aW9ucyh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGlmICh0ZXJtICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICB0ZXJtU2luZ3VsYXIgPSB0ZXJtLmlzU2luZ3VsYXIoKTtcblxuICAgIHRlcm0gPSBudWxsOyAgLy8vXG5cbiAgICBpZiAodGVybVNpbmd1bGFyKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB0ZXJtTm9kZS5nZXRWYXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICAgIHJlcGxhY2VtZW50VGVybSA9IHRlcm1TdWJzdGl0dXRpb24uZ2V0UmVwbGFjZW1lbnRUZXJtKCk7XG5cbiAgICAgICAgdGVybSA9IHJlcGxhY2VtZW50VGVybTsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnMoZnJhbWUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgaWYgKGZyYW1lICE9PSBudWxsKSB7XG4gICAgY29uc3QgZnJhbWVOb2RlID0gZnJhbWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGZyYW1lU2luZ3VsYXIgPSBmcmFtZS5pc1Npbmd1bGFyKCk7XG5cbiAgICBmcmFtZSA9IG51bGw7ICAvLy9cblxuICAgIGlmIChmcmFtZVNpbmd1bGFyKSB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gZnJhbWVOb2RlLmdldE1ldGF2YXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHNwZWNpZmljQ29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgICAgcmVwbGFjZW1lbnRGcmFtZSA9IGZyYW1lU3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50RnJhbWUoKTtcblxuICAgICAgICBmcmFtZSA9IHJlcGxhY2VtZW50RnJhbWU7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudEZyb21TdGF0ZW1lbnRBbmRTdWJzdGl0dXRpb25zKHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3RhdGVtZW50U2luZ3VsYXIgPSBzdGF0ZW1lbnQuaXNTaW5ndWxhcigpO1xuXG4gICAgc3RhdGVtZW50ID0gbnVsbDtcblxuICAgIGlmIChzdGF0ZW1lbnRTaW5ndWxhcikge1xuICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldFN1YnN0aXR1dGlvbk5vZGUoKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgbGV0IGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7IC8vL1xuXG4gICAgICAgIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHQ7ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb24gPSBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5U3Vic3RpdHV0aW9uTm9kZShzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGdlbmVyYWxDb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAvLy9cblxuICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldE1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgICAgc3Vic3RpdHV0aW9uID0gKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbihtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb24pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnRTdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgICByZXBsYWNlbWVudFN0YXRlbWVudCA9IHN0YXRlbWVudFN1YnN0aXR1dGlvbi5nZXRSZXBsYWNlbWVudFN0YXRlbWVudCgpO1xuXG4gICAgICAgIHN0YXRlbWVudCA9IHJlcGxhY2VtZW50U3RhdGVtZW50OyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlTm9kZXNGcm9tRGVyaXZlZFN1YnN0aXR1dGlvbnMoZGVyaXZlZFN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZXMgPSBbXTtcblxuICBkZXJpdmVkU3Vic3RpdHV0aW9ucy5mb3JFYWNoKChkZXJpdmVkU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IGRlcml2ZWRTdWJzdGl0dXRpb24uZ2V0TWV0YXZhcmlhYmxlTm9kZSgpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVzLnB1c2gobWV0YXZhcmlhYmxlTm9kZSk7XG4gICAgfVxuICB9KTtcblxuICBjb21wcmVzcyhtZXRhdmFyaWFibGVOb2RlcywgKG1ldGF2YXJpYWJsZU5vZGVBLCBtZXRhdmFyaWFibGVOb2RlQikgPT4ge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVBTWF0Y2hlc2V0YXZhcmlhYmxlTm9kZUIgPSBtZXRhdmFyaWFibGVOb2RlQS5tYXRjaChtZXRhdmFyaWFibGVOb2RlQik7XG5cbiAgICBpZiAoIW1ldGF2YXJpYWJsZU5vZGVBTWF0Y2hlc2V0YXZhcmlhYmxlTm9kZUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGVzO1xufVxuIl0sIm5hbWVzIjpbImZyYW1lRnJvbUZyYW1lQW5kU3Vic3RpdHV0aW9ucyIsIm1ldGF2YXJpYWJsZU5vZGVzRnJvbURlcml2ZWRTdWJzdGl0dXRpb25zIiwic3RhdGVtZW50RnJvbVN0YXRlbWVudEFuZFN1YnN0aXR1dGlvbnMiLCJ0ZXJtRnJvbVRlcm1BbmRTdWJzdGl0dXRpb25zIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsInRlcm0iLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInRlcm1TaW5ndWxhciIsImlzU2luZ3VsYXIiLCJ2YXJpYWJsZU5vZGUiLCJnZXRWYXJpYWJsZU5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUiLCJ0ZXJtU3Vic3RpdHV0aW9uIiwicmVwbGFjZW1lbnRUZXJtIiwiZ2V0UmVwbGFjZW1lbnRUZXJtIiwiZnJhbWUiLCJmcmFtZU5vZGUiLCJmcmFtZVNpbmd1bGFyIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwiZnJhbWVTdWJzdGl0dXRpb24iLCJyZXBsYWNlbWVudEZyYW1lIiwiZ2V0UmVwbGFjZW1lbnRGcmFtZSIsInN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRTaW5ndWxhciIsInN1YnN0aXR1dGlvbk5vZGUiLCJnZXRTdWJzdGl0dXRpb25Ob2RlIiwiY29udGV4dCIsImZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uIiwicmVwbGFjZW1lbnRTdGF0ZW1lbnQiLCJnZXRSZXBsYWNlbWVudFN0YXRlbWVudCIsImRlcml2ZWRTdWJzdGl0dXRpb25zIiwibWV0YXZhcmlhYmxlTm9kZXMiLCJmb3JFYWNoIiwiZGVyaXZlZFN1YnN0aXR1dGlvbiIsInB1c2giLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZU5vZGVCIiwibWV0YXZhcmlhYmxlTm9kZUFNYXRjaGVzZXRhdmFyaWFibGVOb2RlQiIsIm1hdGNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE2QmdCQTtlQUFBQTs7UUFxRUFDO2VBQUFBOztRQTlDQUM7ZUFBQUE7O1FBOUNBQztlQUFBQTs7OzJCQUplO0FBRS9CLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLHlCQUFjO0FBRTVCLFNBQVNGLDZCQUE2QkcsSUFBSSxFQUFFQyxjQUFjLEVBQUVDLGVBQWU7SUFDaEYsSUFBSUYsU0FBUyxNQUFNO1FBQ2pCLE1BQU1HLFdBQVdILEtBQUtJLE9BQU8sSUFDdkJDLGVBQWVMLEtBQUtNLFVBQVU7UUFFcENOLE9BQU8sTUFBTyxHQUFHO1FBRWpCLElBQUlLLGNBQWM7WUFDaEIsTUFBTUUsZUFBZUosU0FBU0ssZUFBZSxJQUN2Q0MsZUFBZVAsZ0JBQWdCUSw4QkFBOEIsQ0FBQ0g7WUFFcEUsSUFBSUUsaUJBQWlCLE1BQU07Z0JBQ3pCLE1BQU1FLG1CQUFtQkYsY0FDbkJHLGtCQUFrQkQsaUJBQWlCRSxrQkFBa0I7Z0JBRTNEYixPQUFPWSxpQkFBaUIsR0FBRztZQUM3QjtRQUNGO0lBQ0Y7SUFFQSxPQUFPWjtBQUNUO0FBRU8sU0FBU04sK0JBQStCb0IsS0FBSyxFQUFFYixjQUFjLEVBQUVDLGVBQWU7SUFDbkYsSUFBSVksVUFBVSxNQUFNO1FBQ2xCLE1BQU1DLFlBQVlELE1BQU1WLE9BQU8sSUFDekJZLGdCQUFnQkYsTUFBTVIsVUFBVTtRQUV0Q1EsUUFBUSxNQUFPLEdBQUc7UUFFbEIsSUFBSUUsZUFBZTtZQUNqQixNQUFNQyxtQkFBbUJGLFVBQVVHLG1CQUFtQixJQUNoRFQsZUFBZVAsZ0JBQWdCaUIsa0NBQWtDLENBQUNGO1lBRXhFLElBQUlSLGlCQUFpQixNQUFNO2dCQUN6QixNQUFNVyxvQkFBb0JYLGNBQ3BCWSxtQkFBbUJELGtCQUFrQkUsbUJBQW1CO2dCQUU5RFIsUUFBUU8sa0JBQWtCLEdBQUc7WUFDL0I7UUFDRjtJQUNGO0lBRUEsT0FBT1A7QUFDVDtBQUVPLFNBQVNsQix1Q0FBdUMyQixTQUFTLEVBQUV0QixjQUFjLEVBQUVDLGVBQWU7SUFDL0YsSUFBSXFCLGNBQWMsTUFBTTtRQUN0QixNQUFNQyxnQkFBZ0JELFVBQVVuQixPQUFPLElBQ2pDcUIsb0JBQW9CRixVQUFVakIsVUFBVTtRQUU5Q2lCLFlBQVk7UUFFWixJQUFJRSxtQkFBbUI7WUFDckIsSUFBSWhCLGVBQWU7WUFFbkIsTUFBTWlCLG1CQUFtQkYsY0FBY0csbUJBQW1CO1lBRTFELElBQUlELHFCQUFxQixNQUFNO2dCQUM3QixJQUFJRSxVQUFVM0IsZ0JBQWdCLEdBQUc7Z0JBRWpDQSxpQkFBaUJDLGlCQUFpQixHQUFHO2dCQUVyQ0Esa0JBQWtCMEIsU0FBVSxHQUFHO2dCQUUvQm5CLGVBQWVQLGdCQUFnQjJCLGtDQUFrQyxDQUFDSDtnQkFFbEVFLFVBQVUzQixnQkFBZ0IsR0FBRztnQkFFN0JBLGlCQUFpQkMsaUJBQWlCLEdBQUc7Z0JBRXJDQSxrQkFBa0IwQixTQUFVLEdBQUc7WUFDakM7WUFFQSxNQUFNWCxtQkFBbUJPLGNBQWNOLG1CQUFtQjtZQUUxRFQsZUFBZSxBQUFDQSxpQkFBaUIsT0FDaEJQLGdCQUFnQjRCLGlEQUFpRCxDQUFDYixrQkFBa0JSLGdCQUNsRlAsZ0JBQWdCaUIsa0NBQWtDLENBQUNGO1lBRXRFLElBQUlSLGlCQUFpQixNQUFNO2dCQUN6QixNQUFNc0Isd0JBQXdCdEIsY0FDeEJ1Qix1QkFBdUJELHNCQUFzQkUsdUJBQXVCO2dCQUUxRVYsWUFBWVMsc0JBQXNCLEdBQUc7WUFDdkM7UUFDRjtJQUNGO0lBRUEsT0FBT1Q7QUFDVDtBQUVPLFNBQVM1QiwwQ0FBMEN1QyxvQkFBb0I7SUFDNUUsTUFBTUMsb0JBQW9CLEVBQUU7SUFFNUJELHFCQUFxQkUsT0FBTyxDQUFDLENBQUNDO1FBQzVCLE1BQU1wQixtQkFBbUJvQixvQkFBb0JuQixtQkFBbUI7UUFFaEUsSUFBSUQscUJBQXFCLE1BQU07WUFDN0JrQixrQkFBa0JHLElBQUksQ0FBQ3JCO1FBQ3pCO0lBQ0Y7SUFFQW5CLFNBQVNxQyxtQkFBbUIsQ0FBQ0ksbUJBQW1CQztRQUM5QyxNQUFNQywyQ0FBMkNGLGtCQUFrQkcsS0FBSyxDQUFDRjtRQUV6RSxJQUFJLENBQUNDLDBDQUEwQztZQUM3QyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9OO0FBQ1QifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "1.0.852",
4
+ "version": "1.0.857",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -280,6 +280,10 @@ export default class NominalFileContext extends FileContext {
280
280
  return substitutions;
281
281
  }
282
282
 
283
+ getDerivedSubstitutions(derivedSubstitutions = []) {
284
+ return derivedSubstitutions;
285
+ }
286
+
283
287
  addType(type) {
284
288
  this.types.push(type);
285
289
 
@@ -642,6 +646,24 @@ export default class NominalFileContext extends FileContext {
642
646
  return declaredMetavariable;
643
647
  }
644
648
 
649
+ findSubstitutionByVariableNode(variableNode) {
650
+ const substitution = null;
651
+
652
+ return substitution;
653
+ }
654
+
655
+ findSubstitutionByMetavariableNode(metavariableNode) {
656
+ const substitution = null;
657
+
658
+ return substitution;
659
+ }
660
+
661
+ findSubstitutionBySubstitutionNode(substitutionNode) {
662
+ const substitution = null;
663
+
664
+ return substitution;
665
+ }
666
+
645
667
  findMetaLevelAssumptionByMetaLevelAssumptionNode(metaLevelAssumptionNode) {
646
668
  const metaLevelAssumption = null;
647
669
 
@@ -671,10 +693,10 @@ export default class NominalFileContext extends FileContext {
671
693
  return metavariablePresent;
672
694
  }
673
695
 
674
- isLabelPresentByReference(reference) {
696
+ isLabelPresentByReference(reference, context = null) {
675
697
  const labels = this.getLabels(),
676
698
  labelPresent = labels.some((label) => {
677
- const labelUnifies = reference.unifyLabel(label);
699
+ const labelUnifies = reference.unifyLabel(label, context);
678
700
 
679
701
  if (labelUnifies) {
680
702
  return true;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
- import { metavariableNodesFromSubstitutions } from "../utilities/substitutions";
4
+ import { metavariableNodesFromDerivedSubstitutions } from "../utilities/substitutions";
5
5
 
6
6
  import Context from "../context";
7
7
  import elements from "../elements";
@@ -9,126 +9,126 @@ import elements from "../elements";
9
9
  const { find, first } = arrayUtilities;
10
10
 
11
11
  export default class LiminalContext extends Context {
12
- constructor(context, substitutions) {
12
+ constructor(context, derivedSubstitutions) {
13
13
  super(context);
14
14
 
15
- this.substitutions = substitutions;
15
+ this.derivedSubstitutions = derivedSubstitutions;
16
16
  }
17
17
 
18
- getSubstitutions(nested = true) {
19
- let substitutions;
18
+ getDerivedSubstitutions(nested = true) {
19
+ let derivedSubstitutions;
20
20
 
21
21
  if (nested) {
22
22
  const context = this.getContext();
23
23
 
24
- substitutions = context.getSubstitutions();
24
+ derivedSubstitutions = context.getDerivedSubstitutions();
25
25
 
26
- substitutions = [ ///
27
- ...this.substitutions,
28
- ...substitutions
26
+ derivedSubstitutions = [ ///
27
+ ...this.derivedSubstitutions,
28
+ ...derivedSubstitutions
29
29
  ]
30
30
  } else {
31
- substitutions = this.substitutions;
31
+ derivedSubstitutions = this.derivedSubstitutions;
32
32
  }
33
33
 
34
- return substitutions;
34
+ return derivedSubstitutions;
35
35
  }
36
36
 
37
- getSoleSubstitution(nested = true) {
38
- let soleSubstitution = null;
37
+ getSoleDerivedSubstitution(nested = true) {
38
+ let soleDerivedSubstitution = null;
39
39
 
40
- const substitutions = this.getSubstitutions(nested),
41
- substitutionsLength = substitutions.length;
40
+ const derivedSubstitutions = this.getDerivedSubstitutions(nested),
41
+ derivedSubstitutionsLength = derivedSubstitutions.length;
42
42
 
43
- if (substitutionsLength === 1) {
44
- const firstSubstitution = first(substitutions);
43
+ if (derivedSubstitutionsLength === 1) {
44
+ const firstDerivedSubstitution = first(derivedSubstitutions);
45
45
 
46
- soleSubstitution = firstSubstitution; ///
46
+ soleDerivedSubstitution = firstDerivedSubstitution; ///
47
47
  }
48
48
 
49
- return soleSubstitution;
49
+ return soleDerivedSubstitution;
50
50
  }
51
51
 
52
- getSoleNonTrivialSubstitution(nested = true) {
53
- let soleNonTrivialSubstitution = null;
52
+ getSoleNonTrivialDerivedSubstitution(nested = true) {
53
+ let soleNonTrivialDerivedSubstitution = null;
54
54
 
55
- const soleSubstitution = this.getSoleSubstitution(nested);
55
+ const soleDerivedSubstitution = this.getSoleDerivedSubstitution(nested);
56
56
 
57
- if (soleSubstitution !== null) {
58
- const soleSubstitutionNonTrivial = soleSubstitution.isNonTrivial();
57
+ if (soleDerivedSubstitution !== null) {
58
+ const soleDerivedSubstitutionNonTrivial = soleDerivedSubstitution.isNonTrivial();
59
59
 
60
- if (soleSubstitutionNonTrivial) {
61
- soleNonTrivialSubstitution = soleSubstitution; ///
60
+ if (soleDerivedSubstitutionNonTrivial) {
61
+ soleNonTrivialDerivedSubstitution = soleDerivedSubstitution; ///
62
62
  }
63
63
  }
64
64
 
65
- return soleNonTrivialSubstitution;
65
+ return soleNonTrivialDerivedSubstitution;
66
66
  }
67
67
 
68
- addSubstitution(substitution) {
68
+ addDerivedSubstitution(derivedSubstitution) {
69
69
  const context = this, ///
70
- substitutionA = substitution, ///
71
- substitutionString = substitution.getString();
70
+ derivedSubstitutionA = derivedSubstitution, ///
71
+ derivedSubstitutionString = derivedSubstitution.getString();
72
72
 
73
- context.trace(`Adding the '${substitutionString}' substitution to the liminal context...`);
73
+ context.trace(`Adding the '${derivedSubstitutionString}' derivedSubstitution to the liminal context...`);
74
74
 
75
- const substitutionB = this.substitutions.find((substitution) => {
76
- const substitutionB = substitution, ///
77
- substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
75
+ const derivedSubstitutionB = this.derivedSubstitutions.find((derivedSubstitution) => {
76
+ const derivedSubstitutionB = derivedSubstitution, ///
77
+ derivedSubstitutionAEqualToDerivedSubstitutionB = derivedSubstitutionA.isEqualTo(derivedSubstitutionB);
78
78
 
79
- if (substitutionAEqualToSubstitutionB) {
79
+ if (derivedSubstitutionAEqualToDerivedSubstitutionB) {
80
80
  return true;
81
81
  }
82
82
  }) || null;
83
83
 
84
- if (substitutionB !== null) {
85
- context.debug(`The '${substitutionString}' substitution has already been added to the liminal context.`);
84
+ if (derivedSubstitutionB !== null) {
85
+ context.debug(`The '${derivedSubstitutionString}' derivedSubstitution has already been added to the liminal context.`);
86
86
  } else {
87
- this.substitutions.push(substitution);
87
+ this.derivedSubstitutions.push(derivedSubstitution);
88
88
  }
89
89
 
90
- context.debug(`...added the '${substitutionString}' substitution to the liminal context.`);
90
+ context.debug(`...added the '${derivedSubstitutionString}' derivedSubstitution to the liminal context.`);
91
91
  }
92
92
 
93
- addSubstitutions(substitutions) {
94
- substitutions.forEach((substitution) => {
95
- this.addSubstitution(substitution);
93
+ addDerivedSubstitutions(derivedSubstitutions) {
94
+ derivedSubstitutions.forEach((derivedSubstitution) => {
95
+ this.addDerivedSubstitution(derivedSubstitution);
96
96
  });
97
97
  }
98
98
 
99
- resolveSubstitutions() {
99
+ resolveDerivedSubstitutions() {
100
100
  const context = this, ///
101
- substitutions = this.getSubstitutions(),
102
- metavariableNodes = metavariableNodesFromSubstitutions(substitutions);
101
+ derivedSubstitutions = this.getDerivedSubstitutions(),
102
+ metavariableNodes = metavariableNodesFromDerivedSubstitutions(derivedSubstitutions);
103
103
 
104
104
  metavariableNodes.forEach((metavariableNode) => {
105
- const complexSubstitutions = this.findComplexSubstitutionsByMetavariableNode(metavariableNode);
105
+ const complexDerivedSubstitutions = this.findComplexDerivedSubstitutionsByMetavariableNode(metavariableNode);
106
106
 
107
- complexSubstitutions.forEach((complexSubstitution) => {
108
- const substitution = complexSubstitution, ///
109
- resolved = substitution.isResolved();
107
+ complexDerivedSubstitutions.forEach((complexDerivedSubstitution) => {
108
+ const derivedSubstitution = complexDerivedSubstitution, ///
109
+ resolved = derivedSubstitution.isResolved();
110
110
 
111
111
  if (!resolved) {
112
- substitution.resolve(context);
112
+ derivedSubstitution.resolve(context);
113
113
  }
114
114
  });
115
115
  });
116
116
  }
117
117
 
118
- areSubstitutionsResolved() {
119
- const substitutions = this.getSubstitutions(),
120
- metavariableNodes = metavariableNodesFromSubstitutions(substitutions),
118
+ areDerivedSubstitutionsResolved() {
119
+ const derivedSubstitutions = this.getDerivedSubstitutions(),
120
+ metavariableNodes = metavariableNodesFromDerivedSubstitutions(derivedSubstitutions),
121
121
  resolved = metavariableNodes.every((metavariableNode) => {
122
- const complexSubstitutions = this.findComplexSubstitutionsByMetavariableNode(metavariableNode),
123
- complexSubstitutionsResolved = complexSubstitutions.every((complexSubstitution) => {
124
- const complexSubstitutionResolved = complexSubstitution.isResolved();
122
+ const complexDerivedSubstitutions = this.findComplexDerivedSubstitutionsByMetavariableNode(metavariableNode),
123
+ complexDerivedSubstitutionsResolved = complexDerivedSubstitutions.every((complexDerivedSubstitution) => {
124
+ const complexDerivedSubstitutionResolved = complexDerivedSubstitution.isResolved();
125
125
 
126
- if (complexSubstitutionResolved) {
126
+ if (complexDerivedSubstitutionResolved) {
127
127
  return true;
128
128
  }
129
129
  });
130
130
 
131
- if (complexSubstitutionsResolved) {
131
+ if (complexDerivedSubstitutionsResolved) {
132
132
  return true;
133
133
  }
134
134
  });
@@ -137,8 +137,8 @@ export default class LiminalContext extends Context {
137
137
  }
138
138
 
139
139
  isEmpty() {
140
- const substitutionsLength = this.substitutions.length,
141
- empty = (substitutionsLength === 0);
140
+ const derivedSubstitutionsLength = this.derivedSubstitutions.length,
141
+ empty = (derivedSubstitutionsLength === 0);
142
142
 
143
143
  return empty;
144
144
  }
@@ -152,15 +152,15 @@ export default class LiminalContext extends Context {
152
152
  qualifies = true;
153
153
  } else {
154
154
  const nested = false,
155
- soleSubstitution = this.getSoleSubstitution(nested);
155
+ soleDerivedSubstitution = this.getSoleDerivedSubstitution(nested);
156
156
 
157
- if (soleSubstitution !== null) {
158
- const { ReferenceSubstitution } = elements,
157
+ if (soleDerivedSubstitution !== null) {
158
+ const { ReferenceDerivedSubstitution } = elements,
159
159
  context = this,
160
- referenceSubstitution = ReferenceSubstitution.fromAssumptionAndMetaLevelAssumption(assumption, metaLevelAssumption, context),
161
- soleSubstitutionCompares = referenceSubstitution.compareSubstitution(soleSubstitution);
160
+ referenceDerivedSubstitution = ReferenceDerivedSubstitution.fromAssumptionAndMetaLevelAssumption(assumption, metaLevelAssumption, context),
161
+ soleDerivedSubstitutionCompares = referenceDerivedSubstitution.compareDerivedSubstitution(soleDerivedSubstitution);
162
162
 
163
- if (soleSubstitutionCompares) {
163
+ if (soleDerivedSubstitutionCompares) {
164
164
  qualifies = true;
165
165
  }
166
166
  }
@@ -176,52 +176,52 @@ export default class LiminalContext extends Context {
176
176
 
177
177
  context.debug(`Committing the limiinal context`);
178
178
 
179
- context.addSubstitutions(this.substitutions);
179
+ context.addDerivedSubstitutions(this.derivedSubstitutions);
180
180
  }
181
181
 
182
- findSubstitution(callback) {
183
- const substitutions = this.getSubstitutions(),
184
- substitution = substitutions.find(callback);
182
+ findDerivedSubstitution(callback) {
183
+ const derivedSubstitutions = this.getDerivedSubstitutions(),
184
+ derivedSubstitution = derivedSubstitutions.find(callback);
185
185
 
186
- return substitution;
186
+ return derivedSubstitution;
187
187
  }
188
188
 
189
- findSubstitutions(callback, nested = true) {
190
- let substitutions;
189
+ findDerivedSubstitutions(callback, nested = true) {
190
+ let derivedSubstitutions;
191
191
 
192
- substitutions = this.getSubstitutions(nested);
192
+ derivedSubstitutions = this.getDerivedSubstitutions(nested);
193
193
 
194
- substitutions = find(substitutions, callback); ///
194
+ derivedSubstitutions = find(derivedSubstitutions, callback); ///
195
195
 
196
- return substitutions;
196
+ return derivedSubstitutions;
197
197
  }
198
198
 
199
- findSubstitutionByVariableNode(variableNode) {
200
- const substitution = this.findSubstitution((substitution) => {
201
- const variableNodeMatches = substitution.matchVariableNode(variableNode);
199
+ findDerivedSubstitutionByVariableNode(variableNode) {
200
+ const derivedSubstitution = this.findDerivedSubstitution((derivedSubstitution) => {
201
+ const variableNodeMatches = derivedSubstitution.matchVariableNode(variableNode);
202
202
 
203
203
  if (variableNodeMatches) {
204
204
  return true;
205
205
  }
206
206
  }) || null;
207
207
 
208
- return substitution;
208
+ return derivedSubstitution;
209
209
  }
210
210
 
211
- findSubstitutionByMetavariableNode(metavariableNode) {
212
- const simpleSubstitution = this.findSimpleSubstitutionByMetavariableNode(metavariableNode),
213
- substitution = simpleSubstitution; ///
211
+ findDerivedSubstitutionByMetavariableNode(metavariableNode) {
212
+ const simpleDerivedSubstitution = this.findSimpleDerivedSubstitutionByMetavariableNode(metavariableNode),
213
+ derivedSubstitution = simpleDerivedSubstitution; ///
214
214
 
215
- return substitution;
215
+ return derivedSubstitution;
216
216
  }
217
217
 
218
- findSimpleSubstitutionByMetavariableNode(metavariableNode) {
219
- const simpleSubstitution = this.findSubstitution((substitution) => {
220
- const substitutionSimple = substitution.isSimple();
218
+ findSimpleDerivedSubstitutionByMetavariableNode(metavariableNode) {
219
+ const simpleDerivedSubstitution = this.findDerivedSubstitution((derivedSubstitution) => {
220
+ const derivedSubstitutionSimple = derivedSubstitution.isSimple();
221
221
 
222
- if (substitutionSimple) {
223
- const simpleSubstitution = substitution, ///
224
- metavariableNodeMatches = simpleSubstitution.matchMetavariableNode(metavariableNode);
222
+ if (derivedSubstitutionSimple) {
223
+ const simpleDerivedSubstitution = derivedSubstitution, ///
224
+ metavariableNodeMatches = simpleDerivedSubstitution.matchMetavariableNode(metavariableNode);
225
225
 
226
226
  if (metavariableNodeMatches) {
227
227
  return true;
@@ -229,16 +229,16 @@ export default class LiminalContext extends Context {
229
229
  }
230
230
  }) || null;
231
231
 
232
- return simpleSubstitution;
232
+ return simpleDerivedSubstitution;
233
233
  }
234
234
 
235
- findComplexSubstitutionsByMetavariableNode(metavariableNode) {
236
- const complexSubstitution = this.findSubstitutions((substitution) => {
237
- const substitutionComplex = substitution.isComplex();
235
+ findComplexDerivedSubstitutionsByMetavariableNode(metavariableNode) {
236
+ const complexDerivedSubstitution = this.findDerivedSubstitutions((derivedSubstitution) => {
237
+ const derivedSubstitutionComplex = derivedSubstitution.isComplex();
238
238
 
239
- if (substitutionComplex) {
240
- const complexSubstitution = substitution, ///
241
- metavariableNodeMatches = complexSubstitution.matchMetavariableNode(metavariableNode);
239
+ if (derivedSubstitutionComplex) {
240
+ const complexDerivedSubstitution = derivedSubstitution, ///
241
+ metavariableNodeMatches = complexDerivedSubstitution.matchMetavariableNode(metavariableNode);
242
242
 
243
243
  if (metavariableNodeMatches) {
244
244
  return true;
@@ -246,46 +246,45 @@ export default class LiminalContext extends Context {
246
246
  }
247
247
  }) || null;
248
248
 
249
- return complexSubstitution;
249
+ return complexDerivedSubstitution;
250
250
  }
251
251
 
252
- findSubstitutionByMetavariableNodeAndSubstitution(metavariableNode, substitution) {
253
- const substitutionA = substitution; ///
252
+ findDerivedSubstitutionByMetavariableNodeAndSubstitution(metavariableNode, derivedSubstitution) {
253
+ const derivedSubstitutionA = derivedSubstitution; ///
254
254
 
255
- substitution = this.findSubstitution((substitution) => { ///
256
- const metavariableNodeMatches = substitution.matchMetavariableNode(metavariableNode);
255
+ derivedSubstitution = this.findDerivedSubstitution((derivedSubstitution) => { ///
256
+ const metavariableNodeMatches = derivedSubstitution.matchMetavariableNode(metavariableNode);
257
257
 
258
258
  if (metavariableNodeMatches) {
259
- const substitutionB = substitution, ///
260
- substitutionBEqualToSubstitutionA = substitutionB.isEqualTo(substitutionA);
259
+ const derivedSubstitutionB = derivedSubstitution, ///
260
+ derivedSubstitutionBEqualToDerivedSubstitutionA = derivedSubstitutionB.isEqualTo(derivedSubstitutionA);
261
261
 
262
- if (substitutionBEqualToSubstitutionA) {
262
+ if (derivedSubstitutionBEqualToDerivedSubstitutionA) {
263
263
  return true;
264
264
  }
265
265
  }
266
266
  }) || null;
267
267
 
268
- return substitution;
268
+ return derivedSubstitution;
269
269
  }
270
270
 
271
- isSubstitutionPresentByMetavariableNode(metavariableNode) {
272
- const substitution = this.findSubstitutionByMetavariableNode(metavariableNode),
273
- substitutionPresent = (substitution !== null);
271
+ isDerivedSubstitutionPresentByMetavariableNode(metavariableNode) {
272
+ const derivedSubstitution = this.findDerivedSubstitutionByMetavariableNode(metavariableNode),
273
+ derivedSubstitutionPresent = (derivedSubstitution !== null);
274
274
 
275
- return substitutionPresent;
275
+ return derivedSubstitutionPresent;
276
276
  }
277
277
 
278
- isSubstitutionPresentByMetavariableNodeAndSubstitution(metavariableNode, substitution) {
279
- substitution = this.findSubstitutionByMetavariableNodeAndSubstitution(metavariableNode, substitution); ///
278
+ isDerivedSubstitutionPresentByMetavariableNodeAndSubstitution(metavariableNode, substitution) {
279
+ const derivedSubstitution = this.findDerivedSubstitutionByMetavariableNodeAndSubstitution(metavariableNode, substitution),
280
+ derivedSubstitutionPresent = (derivedSubstitution !== null);
280
281
 
281
- const substitutionPresent = (substitution !== null);
282
-
283
- return substitutionPresent;
282
+ return derivedSubstitutionPresent;
284
283
  }
285
284
 
286
285
  static fromNothing(context) {
287
- const substitutions = [],
288
- liminalContext = new LiminalContext(context, substitutions);
286
+ const derivedSubstitutions = [],
287
+ liminalContext = new LiminalContext(context, derivedSubstitutions);
289
288
 
290
289
  return liminalContext;
291
290
  }