occam-verify-cli 0.0.698 → 0.0.700

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 (68) hide show
  1. package/lib/assignment/equality.js +4 -4
  2. package/lib/assignment/metavariable.js +4 -4
  3. package/lib/assignment/variable.js +4 -4
  4. package/lib/constructor.js +3 -10
  5. package/lib/context/file.js +4 -72
  6. package/lib/context/local.js +5 -7
  7. package/lib/context/localMeta.js +5 -9
  8. package/lib/context/release.js +2 -4
  9. package/lib/equality.js +3 -3
  10. package/lib/metaType.js +10 -10
  11. package/lib/metavariable.js +3 -10
  12. package/lib/mixins/context.js +107 -0
  13. package/lib/ruleNames.js +9 -1
  14. package/lib/type.js +23 -27
  15. package/lib/utilities/node.js +3 -73
  16. package/lib/utilities/tokens.js +1 -8
  17. package/lib/variable.js +11 -10
  18. package/lib/verifier/node/statementAsCombinator.js +1 -1
  19. package/lib/verify/axiom.js +3 -8
  20. package/lib/verify/conclusion.js +2 -2
  21. package/lib/verify/conjecture.js +4 -9
  22. package/lib/verify/derivation.js +3 -8
  23. package/lib/verify/equality.js +9 -9
  24. package/lib/verify/lemma.js +4 -9
  25. package/lib/verify/premises.js +28 -0
  26. package/lib/verify/rule.js +3 -8
  27. package/lib/verify/ruleDerivation.js +6 -8
  28. package/lib/verify/supposition.js +3 -9
  29. package/lib/verify/suppositions.js +37 -0
  30. package/lib/verify/term.js +3 -4
  31. package/lib/verify/theorem.js +3 -8
  32. package/lib/verify/typeAssertion.js +16 -12
  33. package/package.json +1 -1
  34. package/src/assignment/equality.js +5 -5
  35. package/src/assignment/metavariable.js +5 -5
  36. package/src/assignment/variable.js +7 -5
  37. package/src/constructor.js +2 -7
  38. package/src/context/file.js +9 -12
  39. package/src/context/local.js +6 -8
  40. package/src/context/localMeta.js +5 -7
  41. package/src/context/release.js +6 -9
  42. package/src/equality.js +2 -2
  43. package/src/metaType.js +10 -10
  44. package/src/metavariable.js +2 -7
  45. package/src/mixins/{file.js → context.js} +20 -2
  46. package/src/ruleNames.js +2 -0
  47. package/src/type.js +27 -39
  48. package/src/utilities/node.js +3 -81
  49. package/src/utilities/tokens.js +0 -8
  50. package/src/variable.js +9 -6
  51. package/src/verifier/node/statementAsCombinator.js +1 -1
  52. package/src/verify/axiom.js +2 -8
  53. package/src/verify/conclusion.js +1 -1
  54. package/src/verify/conjecture.js +3 -9
  55. package/src/verify/derivation.js +2 -8
  56. package/src/verify/equality.js +8 -8
  57. package/src/verify/lemma.js +3 -9
  58. package/src/verify/premises.js +17 -0
  59. package/src/verify/rule.js +2 -8
  60. package/src/verify/ruleDerivation.js +5 -7
  61. package/src/verify/supposition.js +1 -10
  62. package/src/verify/suppositions.js +29 -0
  63. package/src/verify/term.js +2 -4
  64. package/src/verify/theorem.js +2 -8
  65. package/src/verify/typeAssertion.js +16 -11
  66. package/lib/mixins/file.js +0 -83
  67. package/lib/mixins/logging.js +0 -39
  68. package/src/mixins/logging.js +0 -24
@@ -69,10 +69,9 @@ function verifyTermAsVariable(termNode, variables, context, verifyAhead) {
69
69
  if (variableNode !== null) {
70
70
  var termString = context.nodeAsString(termNode);
71
71
  context.trace("Verifying the '".concat(termString, "' term as a variable..."), termNode);
72
- var variablePresent = context.isVariablePresentByVariableNode(variableNode);
73
- if (variablePresent) {
72
+ var variable = context.findVariableByVariableNode(variableNode);
73
+ if (variable !== null) {
74
74
  var verifiedAhead;
75
- var variable = context.findVariableByVariableNode(variableNode);
76
75
  variables.push(variable);
77
76
  verifiedAhead = verifyAhead();
78
77
  if (!verifiedAhead) {
@@ -127,4 +126,4 @@ function verifyTermAgainstConstructor(termNode, terms, constructor, context, ver
127
126
  return termVerifiedAgainstConstructor;
128
127
  }
129
128
 
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRlcm0gZnJvbSBcIi4uL3Rlcm1cIjtcbmltcG9ydCB0ZXJtTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvdGVybVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlUZXJtRnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeVRlcm1Bc1N0YW5kYWxvbmVWYXJpYWJsZSxcbiAgICB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9yc1xuICBdO1xuXG4gIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm1GdW5jdGlvbnMuc29tZSgodmVyaWZ5VGVybUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybUZ1bmN0aW9uKHRlcm1Ob2RlLCB0ZXJtcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24odGVybU5vZGVzVmVyaWZpZXIsIHtcbiAgdmVyaWZ5VGVybVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVRlcm07XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyh0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3JzO1xuXG4gIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKCk7XG5cbiAgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGNvbnN0IHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvciA9IHZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHZhcmlhYmxlLi4uYCwgdGVybU5vZGUpO1xuXG4gICAgY29uc3QgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIHZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcblxuICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICB2YXJpYWJsZXMucG9wKCk7XG4gICAgICB9XG5cbiAgICAgIHRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZmllZEFoZWFkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuYCwgdGVybU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtQXNTdGFuZGFsb25lVmFyaWFibGUodGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQXNTdGFuZGFsb25lVmFyaWFibGU7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgc3RhbmRhbG9uZSB2YXJpYWJsZS4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgdGVybVZlcmlmaWVkQXNWYXJpYWJsZSA9IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICAgIGNvbnN0IGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlID0gZmlyc3RWYXJpYWJsZSwgLy8vXG4gICAgICAgICAgICAgICAgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlKTtcblxuICAgICAgICAgIHRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgdGVybXMucG9wKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHRlcm1WZXJpZmllZEFzU3RhbmRhbG9uZVZhcmlhYmxlID0gdGVybVZlcmlmaWVkQXNWYXJpYWJsZTsgIC8vL1xuXG4gIGlmICh0ZXJtVmVyaWZpZWRBc1N0YW5kYWxvbmVWYXJpYWJsZSkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHN0YW5kYWxvbmUgdmFyaWFibGUuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFzU3RhbmRhbG9uZVZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9yKHRlcm1Ob2RlLCB0ZXJtcywgY29uc3RydWN0b3IsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKSxcbiAgICAgICAgY29uc3RydWN0b3JTdHJpbmcgPSBjb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgY29uc3RydWN0b3JUZXJtTm9kZSA9IGNvbnN0cnVjdG9yLmdldFRlcm1Ob2RlKCksXG4gICAgICAgIG5vblRlcm1pbmFsTk5kZUEgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29uc3RydWN0b3JUZXJtTm9kZSwgIC8vL1xuICAgICAgICBub2RlVmVyaWZpZWQgPSB0ZXJtTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOTmRlQSwgbm9uVGVybWluYWxOb2RlQiwgY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICAgICAgY29uc3QgdHlwZSA9IGNvbnN0cnVjdG9yLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlKTtcblxuICAgICAgICAgIHRlcm1zLnB1c2godGVybSk7XG5cbiAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgICAgIGlmICghdmVyaWZpZWRBaGVhZCkge1xuICAgICAgICAgICAgdGVybXMucG9wKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgIH0pO1xuXG4gIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvciA9IG5vZGVWZXJpZmllZDsgIC8vL1xuXG4gIGlmICh0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IpIHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYWdhaW5zdCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3JzIiwidmVyaWZ5VGVybUFzVmFyaWFibGUiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcmlmeVRlcm0iLCJ0ZXJtTm9kZSIsInRlcm1zIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVZlcmlmaWVkIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5VGVybUZ1bmN0aW9ucyIsInZlcmlmeVRlcm1Bc1N0YW5kYWxvbmVWYXJpYWJsZSIsInNvbWUiLCJ2ZXJpZnlUZXJtRnVuY3Rpb24iLCJkZWJ1ZyIsIk9iamVjdCIsImFzc2lnbiIsInRlcm1Ob2Rlc1ZlcmlmaWVyIiwidGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9yIiwidGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yIiwidmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3RvciIsInZhcmlhYmxlcyIsInRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOb2RlIiwidmVyaWZpZWRBaGVhZCIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJwdXNoIiwicG9wIiwidGVybVZlcmlmaWVkQXNTdGFuZGFsb25lVmFyaWFibGUiLCJmaXJzdFZhcmlhYmxlIiwiZmlyc3QiLCJ0eXBlIiwiZ2V0VHlwZSIsInRlcm0iLCJUZXJtIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsImNvbnN0cnVjdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29uc3RydWN0b3JUZXJtTm9kZSIsImdldFRlcm1Ob2RlIiwibm9uVGVybWluYWxOTmRlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXlDQSxPQUEwQjtlQUExQjs7SUFFZ0JBLDZCQUE2QjtlQUE3QkE7O0lBZ0JBQyxvQkFBb0I7ZUFBcEJBOzs7MkRBekRDOzREQUNhO3FCQUVSO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXBDLFNBQVNDLFdBQVdDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFdBQVc7SUFDdkQsSUFBSUM7SUFFSixJQUFNQyxhQUFhSCxRQUFRSSxZQUFZLENBQUNOO0lBRXhDRSxRQUFRSyxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVyxjQUFZTDtJQUV2RCxJQUFNUSxzQkFBc0I7UUFDMUJDO1FBQ0FkO0tBQ0Q7SUFFRFMsZUFBZUksb0JBQW9CRSxJQUFJLENBQUMsU0FBQ0M7UUFDdkMsSUFBTVAsZUFBZU8sbUJBQW1CWCxVQUFVQyxPQUFPQyxTQUFTQztRQUVsRSxJQUFJQyxjQUFjO1lBQ2hCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEsY0FB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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRlcm0gZnJvbSBcIi4uL3Rlcm1cIjtcbmltcG9ydCB0ZXJtTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvdGVybVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmAsIHRlcm1Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlUZXJtRnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeVRlcm1Bc1N0YW5kYWxvbmVWYXJpYWJsZSxcbiAgICB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9yc1xuICBdO1xuXG4gIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm1GdW5jdGlvbnMuc29tZSgodmVyaWZ5VGVybUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybUZ1bmN0aW9uKHRlcm1Ob2RlLCB0ZXJtcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24odGVybU5vZGVzVmVyaWZpZXIsIHtcbiAgdmVyaWZ5VGVybVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVRlcm07XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyh0ZXJtTm9kZSwgdGVybXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3JzO1xuXG4gIGNvbnN0IGNvbnN0cnVjdG9ycyA9IGNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKCk7XG5cbiAgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGNvbnN0IHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvciA9IHZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IodGVybU5vZGUsIHRlcm1zLCBjb25zdHJ1Y3RvciwgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9ycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlKHRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHZhcmlhYmxlLi4uYCwgdGVybU5vZGUpO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG5cbiAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICBpZiAoIXZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgdmFyaWFibGVzLnBvcCgpO1xuICAgICAgfVxuXG4gICAgICB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzVmFyaWFibGUpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHZhcmlhYmxlLmAsIHRlcm1Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGVybVZlcmlmaWVkQXNWYXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VGVybUFzU3RhbmRhbG9uZVZhcmlhYmxlKHRlcm1Ob2RlLCB0ZXJtcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHRlcm1WZXJpZmllZEFzU3RhbmRhbG9uZVZhcmlhYmxlO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhcyBhIHN0YW5kYWxvbmUgdmFyaWFibGUuLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdmFyaWFibGVzID0gW10sXG4gICAgICAgIHRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZSh0ZXJtTm9kZSwgdmFyaWFibGVzLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgICBjb25zdCBmaXJzdFZhcmlhYmxlID0gZmlyc3QodmFyaWFibGVzKSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICAgIHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICAgICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICBpZiAoIXZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgICAgIHRlcm1zLnBvcCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICB0ZXJtVmVyaWZpZWRBc1N0YW5kYWxvbmVWYXJpYWJsZSA9IHRlcm1WZXJpZmllZEFzVmFyaWFibGU7ICAvLy9cblxuICBpZiAodGVybVZlcmlmaWVkQXNTdGFuZGFsb25lVmFyaWFibGUpIHtcbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSBzdGFuZGFsb25lIHZhcmlhYmxlLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBc1N0YW5kYWxvbmVWYXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VGVybUFnYWluc3RDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdGVybXMsIGNvbnN0cnVjdG9yLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSksXG4gICAgICAgIGNvbnN0cnVjdG9yU3RyaW5nID0gY29uc3RydWN0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3Rvci5nZXRUZXJtTm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5OZGVBID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IGNvbnN0cnVjdG9yVGVybU5vZGUsICAvLy9cbiAgICAgICAgbm9kZVZlcmlmaWVkID0gdGVybU5vZGVzVmVyaWZpZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTk5kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICAgIGNvbnN0IHR5cGUgPSBjb25zdHJ1Y3Rvci5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICAgICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICBpZiAoIXZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgICAgIHRlcm1zLnBvcCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICB0ZXJtVmVyaWZpZWRBZ2FpbnN0Q29uc3RydWN0b3IgPSBub2RlVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAodGVybVZlcmlmaWVkQWdhaW5zdENvbnN0cnVjdG9yKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuYCwgdGVybU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3Rvcjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUZXJtQWdhaW5zdENvbnN0cnVjdG9ycyIsInZlcmlmeVRlcm1Bc1ZhcmlhYmxlIiwidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2ZXJpZnlUZXJtIiwidGVybU5vZGUiLCJ0ZXJtcyIsImNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInRlcm1WZXJpZmllZCIsInRlcm1TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVRlcm1GdW5jdGlvbnMiLCJ2ZXJpZnlUZXJtQXNTdGFuZGFsb25lVmFyaWFibGUiLCJzb21lIiwidmVyaWZ5VGVybUZ1bmN0aW9uIiwiZGVidWciLCJPYmplY3QiLCJhc3NpZ24iLCJ0ZXJtTm9kZXNWZXJpZmllciIsInRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvciIsInRlcm1WZXJpZmllZEFnYWluc3RDb25zdHJ1Y3RvciIsInZlcmlmeVRlcm1BZ2FpbnN0Q29uc3RydWN0b3IiLCJ2YXJpYWJsZXMiLCJ0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsInZlcmlmaWVkQWhlYWQiLCJwdXNoIiwicG9wIiwidGVybVZlcmlmaWVkQXNTdGFuZGFsb25lVmFyaWFibGUiLCJmaXJzdFZhcmlhYmxlIiwiZmlyc3QiLCJ0eXBlIiwiZ2V0VHlwZSIsInRlcm0iLCJUZXJtIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsImNvbnN0cnVjdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29uc3RydWN0b3JUZXJtTm9kZSIsImdldFRlcm1Ob2RlIiwibm9uVGVybWluYWxOTmRlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub2RlVmVyaWZpZWQiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXlDQSxPQUEwQjtlQUExQjs7SUFFZ0JBLDZCQUE2QjtlQUE3QkE7O0lBZ0JBQyxvQkFBb0I7ZUFBcEJBOzs7MkRBekRDOzREQUNhO3FCQUVSO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXBDLFNBQVNDLFdBQVdDLFFBQVEsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFdBQVc7SUFDdkQsSUFBSUM7SUFFSixJQUFNQyxhQUFhSCxRQUFRSSxZQUFZLENBQUNOO0lBRXhDRSxRQUFRSyxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVyxjQUFZTDtJQUV2RCxJQUFNUSxzQkFBc0I7UUFDMUJDO1FBQ0FkO0tBQ0Q7SUFFRFMsZUFBZUksb0JBQW9CRSxJQUFJLENBQUMsU0FBQ0M7UUFDdkMsSUFBTVAsZUFBZU8sbUJBQW1CWCxVQUFVQyxPQUFPQyxTQUFTQztRQUVsRSxJQUFJQyxjQUFjO1lBQ2hCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEsY0FBYztRQUNoQkYsUUFBUVUsS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhQLFlBQVcsWUFBVUw7SUFDekQ7SUFFQSxPQUFPSTtBQUNUO0FBRUFTLE9BQU9DLE1BQU0sQ0FBQ0MsY0FBaUIsRUFBRTtJQUMvQmhCLFlBQUFBO0FBQ0Y7SUFFQSxXQUFl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
@@ -13,7 +13,7 @@ var _proof = /*#__PURE__*/ _interop_require_default(require("../verify/proof"));
13
13
  var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
14
14
  var _labels = /*#__PURE__*/ _interop_require_default(require("../verify/labels"));
15
15
  var _consequent = /*#__PURE__*/ _interop_require_default(require("../verify/consequent"));
16
- var _supposition = /*#__PURE__*/ _interop_require_default(require("../verify/supposition"));
16
+ var _suppositions = /*#__PURE__*/ _interop_require_default(require("../verify/suppositions"));
17
17
  var _array = require("../utilities/array");
18
18
  var _query = require("../utilities/query");
19
19
  function _interop_require_default(obj) {
@@ -28,12 +28,7 @@ function verifyTheorem(theoremNode, fileContext) {
28
28
  fileContext.trace("Verifying the '".concat(labelsString, "' theorem..."), theoremNode);
29
29
  var labels = [], labelsVerified = (0, _labels.default)(labelNodes, labels, fileContext);
30
30
  if (labelsVerified) {
31
- var suppositions = [], suppositionNodes = suppositionsNodeQuery(theoremNode), suppositionsVerified = suppositionNodes.every(function(suppositionNode) {
32
- var suppositionVerified = (0, _supposition.default)(suppositionNode, suppositions, localContext);
33
- if (suppositionVerified) {
34
- return true;
35
- }
36
- });
31
+ var suppositions = [], suppositionNodes = suppositionsNodeQuery(theoremNode), suppositionsVerified = (0, _suppositions.default)(suppositionNodes, suppositions, localContext);
37
32
  if (suppositionsVerified) {
38
33
  var consequents = [], consequentNode = consequentNodeQuery(theoremNode), consequentVerified = (0, _consequent.default)(consequentNode, consequents, localContext);
39
34
  if (consequentVerified) {
@@ -52,4 +47,4 @@ function verifyTheorem(theoremNode, fileContext) {
52
47
  return theoremVerified;
53
48
  }
54
49
 
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi4vdmVyaWZ5L2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3N1cHBvc2l0aW9uXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtL3Byb29mIVwiKSxcbiAgICAgIGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9sYWJlbHMvbGFiZWxcIiksXG4gICAgICBjb25zZXF1ZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vY29uc2VxdWVudCFcIiksXG4gICAgICBzdXBwb3NpdGlvbnNOb2RlUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3RoZW9yZW0vc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVRoZW9yZW0odGhlb3JlbU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0aGVvcmVtVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZXNBc1N0cmluZyhsYWJlbE5vZGVzKSxcbiAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgdGhlb3JlbS4uLmAsIHRoZW9yZW1Ob2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25zID0gW10sXG4gICAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHN1cHBvc2l0aW9uc05vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSBzdXBwb3NpdGlvbk5vZGVzLmV2ZXJ5KChzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZWQgPSB2ZXJpZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbk5vZGUsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbnNlcXVlbnRzID0gW10sXG4gICAgICAgICAgICBjb25zZXF1ZW50Tm9kZSA9IGNvbnNlcXVlbnROb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgICAgY29uc2VxdWVudFZlcmlmaWVkID0gdmVyaWZ5Q29uc2VxdWVudChjb25zZXF1ZW50Tm9kZSwgY29uc2VxdWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChjb25zZXF1ZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgICAgICBmaXJzdENvbnNlcXVlbnQgPSBmaXJzdChjb25zZXF1ZW50cyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbnQgPSBmaXJzdENvbnNlcXVlbnQsIC8vL1xuICAgICAgICAgICAgICBwcm9vZlZlcmlmaWVkID0gdmVyaWZ5UHJvb2YocHJvb2ZOb2RlLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbnRBbmRMb2NhbENvbnRleHQobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5hZGRUaGVvcmVtKHRoZW9yZW0pO1xuXG4gICAgICAgICAgdGhlb3JlbVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh0aGVvcmVtVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uYCwgdGhlb3JlbU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRoZW9yZW1WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUaGVvcmVtIiwicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsYWJlbE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29uc2VxdWVudE5vZGVRdWVyeSIsInN1cHBvc2l0aW9uc05vZGVRdWVyeSIsInRoZW9yZW1Ob2RlIiwiZmlsZUNvbnRleHQiLCJ0aGVvcmVtVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInRyYWNlIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25zVmVyaWZpZWQiLCJldmVyeSIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbiIsImNvbnNlcXVlbnRzIiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW50IiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50IiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudEFuZExvY2FsQ29udGV4dCIsImFkZFRoZW9yZW0iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7OERBZko7NERBQ0k7NERBQ0M7NkRBQ0E7aUVBQ0k7a0VBQ0M7cUJBRVI7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLDBCQUM3QkMsc0JBQXNCSCxJQUFBQSxnQkFBUyxFQUFDLHlCQUNoQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGNBQWNPLFdBQVcsRUFBRUMsV0FBVztJQUM1RCxJQUFJQyxrQkFBa0I7SUFFdEIsSUFBTUMsYUFBYVAsZ0JBQWdCSSxjQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRixhQUN6Q0csZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNQO0lBRWxEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxpQkFBZUo7SUFFaEUsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJmLHNCQUFzQkMsY0FDekNlLHVCQUF1QkQsaUJBQWlCRSxLQUFLLENBQUMsU0FBQ0M7WUFDN0MsSUFBTUMsc0JBQXNCQyxJQUFBQSxvQkFBaUIsRUFBQ0YsaUJBQWlCSixjQUFjUDtZQUU3RSxJQUFJWSxxQkFBcUI7Z0JBQ3ZCLE9BQU87WUFDVDtRQUNGO1FBRU4sSUFBSUgsc0JBQXNCO1lBQ3hCLElBQU1LLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCdkIsb0JBQW9CRSxjQUNyQ3NCLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYWQ7WUFFekUsSUFBSWdCLG9CQUFvQjtnQkFDdEIsSUFBTUUsWUFBWTlCLGVBQWVNLGNBQzNCeUIsa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFDYkcsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNMLFdBQVdHLFlBQVlyQjtnQkFFekQsSUFBSXNCLGVBQWU7b0JBQ2pCLElBQU1FLFVBQVVDLGdCQUFPLENBQUNDLCtDQUErQyxDQUFDdEIsUUFBUUcsY0FBY2MsWUFBWXJCO29CQUUxR0wsWUFBWWdDLFVBQVUsQ0FBQ0g7b0JBRXZCNUIsa0JBQWtCO2dCQUNwQjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGlCQUFpQjtRQUNuQkQsWUFBWWlDLEtBQUssQ0FBQyxBQUFDLG9CQUFnQyxPQUFiOUIsY0FBYSxlQUFhSjtJQUNsRTtJQUVBLE9BQU9FO0FBQ1QifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc2VxdWVudCBmcm9tIFwiLi4vdmVyaWZ5L2NvbnNlcXVlbnRcIjtcbmltcG9ydCB2ZXJpZnlTdXBwb3NpdGlvbnMgZnJvbSBcIi4uL3ZlcmlmeS9zdXBwb3NpdGlvbnNcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHByb29mTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL2xhYmVscy9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9zdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VGhlb3JlbSh0aGVvcmVtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHRoZW9yZW1WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLi4uYCwgdGhlb3JlbU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNWZXJpZmllZCA9IHZlcmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbk5vZGVzLCBzdXBwb3NpdGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbnNlcXVlbnRzID0gW10sXG4gICAgICAgICAgICBjb25zZXF1ZW50Tm9kZSA9IGNvbnNlcXVlbnROb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgICAgY29uc2VxdWVudFZlcmlmaWVkID0gdmVyaWZ5Q29uc2VxdWVudChjb25zZXF1ZW50Tm9kZSwgY29uc2VxdWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChjb25zZXF1ZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgICAgICBmaXJzdENvbnNlcXVlbnQgPSBmaXJzdChjb25zZXF1ZW50cyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbnQgPSBmaXJzdENvbnNlcXVlbnQsIC8vL1xuICAgICAgICAgICAgICBwcm9vZlZlcmlmaWVkID0gdmVyaWZ5UHJvb2YocHJvb2ZOb2RlLCBjb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbnRBbmRMb2NhbENvbnRleHQobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5hZGRUaGVvcmVtKHRoZW9yZW0pO1xuXG4gICAgICAgICAgdGhlb3JlbVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh0aGVvcmVtVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uYCwgdGhlb3JlbU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRoZW9yZW1WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUaGVvcmVtIiwicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsYWJlbE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29uc2VxdWVudE5vZGVRdWVyeSIsInN1cHBvc2l0aW9uc05vZGVRdWVyeSIsInRoZW9yZW1Ob2RlIiwiZmlsZUNvbnRleHQiLCJ0aGVvcmVtVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInRyYWNlIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25zVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbnMiLCJjb25zZXF1ZW50cyIsImNvbnNlcXVlbnROb2RlIiwiY29uc2VxdWVudFZlcmlmaWVkIiwidmVyaWZ5Q29uc2VxdWVudCIsInByb29mTm9kZSIsImZpcnN0Q29uc2VxdWVudCIsImZpcnN0IiwiY29uc2VxdWVudCIsInByb29mVmVyaWZpZWQiLCJ2ZXJpZnlQcm9vZiIsInRoZW9yZW0iLCJUaGVvcmVtIiwiZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbnRBbmRMb2NhbENvbnRleHQiLCJhZGRUaGVvcmVtIiwiZGVidWciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQXdCQTs7OzhEQWZKOzREQUNJOzREQUNDOzZEQUNBO2lFQUNJO21FQUNFO3FCQUVUO3FCQUNnQjs7Ozs7O0FBRXRDLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQywwQkFDN0JDLHNCQUFzQkgsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDaENJLHdCQUF3QkYsSUFBQUEsaUJBQVUsRUFBQztBQUUxQixTQUFTSixjQUFjTyxXQUFXLEVBQUVDLFdBQVc7SUFDNUQsSUFBSUMsa0JBQWtCO0lBRXRCLElBQU1DLGFBQWFQLGdCQUFnQkksY0FDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0YsYUFDekNHLGVBQWVDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDUDtJQUVsREEsWUFBWVEsS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJMLGNBQWEsaUJBQWVKO0lBRWhFLElBQU1VLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVQ7SUFFeEQsSUFBSVUsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CZixzQkFBc0JDLGNBQ3pDZSx1QkFBdUJDLElBQUFBLHFCQUFrQixFQUFDRixrQkFBa0JELGNBQWNQO1FBRWhGLElBQUlTLHNCQUFzQjtZQUN4QixJQUFNRSxjQUFjLEVBQUUsRUFDaEJDLGlCQUFpQnBCLG9CQUFvQkUsY0FDckNtQixxQkFBcUJDLElBQUFBLG1CQUFnQixFQUFDRixnQkFBZ0JELGFBQWFYO1lBRXpFLElBQUlhLG9CQUFvQjtnQkFDdEIsSUFBTUUsWUFBWTNCLGVBQWVNLGNBQzNCc0Isa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFDYkcsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNMLFdBQVdHLFlBQVlsQjtnQkFFekQsSUFBSW1CLGVBQWU7b0JBQ2pCLElBQU1FLFVBQVVDLGdCQUFPLENBQUNDLCtDQUErQyxDQUFDbkIsUUFBUUcsY0FBY1csWUFBWWxCO29CQUUxR0wsWUFBWTZCLFVBQVUsQ0FBQ0g7b0JBRXZCekIsa0JBQWtCO2dCQUNwQjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGlCQUFpQjtRQUNuQkQsWUFBWThCLEtBQUssQ0FBQyxBQUFDLG9CQUFnQyxPQUFiM0IsY0FBYSxlQUFhSjtJQUNsRTtJQUVBLE9BQU9FO0FBQ1QifQ==
@@ -8,7 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyTypeAssertion;
9
9
  }
10
10
  });
11
- var _variable = /*#__PURE__*/ _interop_require_default(require("../assignment/variable"));
11
+ var _variable = /*#__PURE__*/ _interop_require_default(require("../variable"));
12
+ var _variable1 = /*#__PURE__*/ _interop_require_default(require("../assignment/variable"));
12
13
  var _termAndStandaloneType = /*#__PURE__*/ _interop_require_default(require("../verify/termAndStandaloneType"));
13
14
  var _termAsVariableAndStandaloneType = /*#__PURE__*/ _interop_require_default(require("../verify/termAsVariableAndStandaloneType"));
14
15
  var _array = require("../utilities/array");
@@ -25,7 +26,7 @@ function verifyTypeAssertion(typeAssertionNode, assignments, derived, context, v
25
26
  context.trace("Verifying the '".concat(typeAssertionString, "' type assertion..."), typeAssertionNode);
26
27
  var verifyTypeAssertionFunctions = [
27
28
  verifyDerivedTypeAssertion,
28
- verifyStandaloneTypeAssertion
29
+ verifyGivenTypeAssertion
29
30
  ];
30
31
  typeAssertionVerified = verifyTypeAssertionFunctions.some(function(verifyTypeAssertionFunction) {
31
32
  var typeAssertionVerified = verifyTypeAssertionFunction(typeAssertionNode, assignments, derived, context, verifyAhead);
@@ -61,16 +62,19 @@ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, con
61
62
  }
62
63
  return derivedTypeAssertionVerified;
63
64
  }
64
- function verifyStandaloneTypeAssertion(typeAssertionNode, assignments, derived, context, verifyAhead) {
65
- var standaloneTypeAssertionVerified = false;
65
+ function verifyGivenTypeAssertion(typeAssertionNode, assignments, derived, context, verifyAhead) {
66
+ var givenTypeAssertionVerified = false;
66
67
  if (!derived) {
67
68
  var typeAssertionString = context.nodeAsString(typeAssertionNode);
68
- context.trace("Verifying the '".concat(typeAssertionString, "' standalone type assertion..."), typeAssertionNode);
69
+ context.trace("Verifying the '".concat(typeAssertionString, "' given type assertion..."), typeAssertionNode);
69
70
  var types = [], variables = [], termNode = termNodeQuery(typeAssertionNode), typeNode = typeNodeQuery(typeAssertionNode), termAsVariableAndStandaloneTypeVerified = (0, _termAsVariableAndStandaloneType.default)(termNode, typeNode, variables, types, context, function() {
70
71
  var verifiedAhead = false;
71
- var firstVariable = (0, _array.first)(variables), firstType = (0, _array.first)(types), variable = firstVariable, type = firstType, variableType = variable.getType(), variableTypeEqualToOrSuperTypeOfType = variableType.isEqualToOrSuperTypeOf(type);
72
+ var firstVariable = (0, _array.first)(variables);
73
+ var variable = firstVariable; ///
74
+ var firstType = (0, _array.first)(types), type = firstType, variableType = variable.getType(), variableTypeEqualToOrSuperTypeOfType = variableType.isEqualToOrSuperTypeOf(type);
72
75
  if (variableTypeEqualToOrSuperTypeOfType) {
73
- var variableAssignment = _variable.default.fromVariable(variable), assignment = variableAssignment; ///
76
+ variable = _variable.default.fromVariableAndType(variable, type); ///
77
+ var variableAssignment = _variable1.default.fromVariable(variable), assignment = variableAssignment; ///
74
78
  assignments.push(assignment);
75
79
  verifiedAhead = verifyAhead();
76
80
  if (!verifiedAhead) {
@@ -79,12 +83,12 @@ function verifyStandaloneTypeAssertion(typeAssertionNode, assignments, derived,
79
83
  }
80
84
  return verifiedAhead;
81
85
  });
82
- standaloneTypeAssertionVerified = termAsVariableAndStandaloneTypeVerified; ///
83
- if (standaloneTypeAssertionVerified) {
84
- context.trace("...verified the '".concat(typeAssertionString, "' standalone type assertion."), typeAssertionNode);
86
+ givenTypeAssertionVerified = termAsVariableAndStandaloneTypeVerified; ///
87
+ if (givenTypeAssertionVerified) {
88
+ context.trace("...verified the '".concat(typeAssertionString, "' given type assertion."), typeAssertionNode);
85
89
  }
86
90
  }
87
- return standaloneTypeAssertionVerified;
91
+ return givenTypeAssertionVerified;
88
92
  }
89
93
 
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZUFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudCBmcm9tIFwiLi4vYXNzaWdubWVudC92YXJpYWJsZVwiO1xuaW1wb3J0IHZlcmlmeVRlcm1BbmRTdGFuZGFsb25lVHlwZSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1BbmRTdGFuZGFsb25lVHlwZVwiO1xuaW1wb3J0IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlQW5kU3RhbmRhbG9uZVR5cGUgZnJvbSBcIi4uL3ZlcmlmeS90ZXJtQXNWYXJpYWJsZUFuZFN0YW5kYWxvbmVUeXBlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdHlwZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdHlwZUFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5VHlwZUFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlEZXJpdmVkVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGFuZGFsb25lVHlwZUFzc2VydGlvblxuICBdO1xuXG4gIHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbnMuc29tZSgodmVyaWZ5VHlwZUFzc2VydGlvbkZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbkZ1bmN0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgaWYgKHR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAodHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkVHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgdHlwZXMgPSBbXSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdGVybUFuZFN0YW5kYWxvbmVUeXBlVmVyaWZpZWQgPSB2ZXJpZnlUZXJtQW5kU3RhbmRhbG9uZVR5cGUodGVybU5vZGUsIHR5cGVOb2RlLCB0ZXJtcywgdHlwZXMsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgICAgIGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgICAgICAgIHRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgdHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgdGVybVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlR5cGUgPSB0ZXJtVHlwZS5pc0VxdWFsVG9PclN1cGVyVHlwZU9mKHR5cGUpO1xuXG4gICAgICAgICAgICBpZiAodGVybVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlR5cGUpIHtcbiAgICAgICAgICAgICAgZGVidWdnZXJcblxuICAgICAgICAgICAgICBpZiAoZmFsc2UpIHsgIC8vL1xuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRlcm1BbmRTdGFuZGFsb25lVHlwZVZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBjb250ZXh0LnRyYWNlKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGFuZGFsb25lVHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lVHlwZUFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHN0YW5kYWxvbmUgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IFtdLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0ZXJtQXNWYXJpYWJsZUFuZFN0YW5kYWxvbmVUeXBlVmVyaWZpZWQgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZUFuZFN0YW5kYWxvbmVUeXBlKHRlcm1Ob2RlLCB0eXBlTm9kZSwgdmFyaWFibGVzLCB0eXBlcywgY29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgZmlyc3RWYXJpYWJsZSA9IGZpcnN0KHZhcmlhYmxlcyksXG4gICAgICAgICAgICAgICAgICBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICAgICAgdHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZVR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlR5cGUgPSB2YXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVHlwZSkge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudCA9IHZhcmlhYmxlQXNzaWdubWVudDsgLy8vXG5cbiAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgICAgICAgICAgICBpZiAoIXZlcmlmaWVkQWhlYWQpIHtcbiAgICAgICAgICAgICAgICBhc3NpZ25tZW50cy5wb3AoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIHN0YW5kYWxvbmVUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB0ZXJtQXNWYXJpYWJsZUFuZFN0YW5kYWxvbmVUeXBlVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YW5kYWxvbmVUeXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgc3RhbmRhbG9uZSB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVUeXBlQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VHlwZUFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJjb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0eXBlQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24iLCJ2ZXJpZnlTdGFuZGFsb25lVHlwZUFzc2VydGlvbiIsInNvbWUiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0ZXJtcyIsInR5cGVzIiwidGVybU5vZGUiLCJ0eXBlTm9kZSIsInRlcm1BbmRTdGFuZGFsb25lVHlwZVZlcmlmaWVkIiwidmVyaWZ5VGVybUFuZFN0YW5kYWxvbmVUeXBlIiwidmVyaWZpZWRBaGVhZCIsImZpcnN0VGVybSIsImZpcnN0IiwiZmlyc3RUeXBlIiwidGVybSIsInR5cGUiLCJ0ZXJtVHlwZSIsImdldFR5cGUiLCJ0ZXJtVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJzdGFuZGFsb25lVHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmFyaWFibGVzIiwidGVybUFzVmFyaWFibGVBbmRTdGFuZGFsb25lVHlwZVZlcmlmaWVkIiwidmVyaWZ5VGVybUFzVmFyaWFibGVBbmRTdGFuZGFsb25lVHlwZSIsImZpcnN0VmFyaWFibGUiLCJ2YXJpYWJsZSIsInZhcmlhYmxlVHlwZSIsInZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVHlwZSIsInZhcmlhYmxlQXNzaWdubWVudCIsIlZhcmlhYmxlQXNzaWdubWVudCIsImZyb21WYXJpYWJsZSIsImFzc2lnbm1lbnQiLCJwdXNoIiwicG9wIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OytEQVZPOzRFQUNTO3NGQUNVO3FCQUU1QjtxQkFDSTs7Ozs7O0FBRTFCLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQixTQUFTRixvQkFBb0JJLGlCQUFpQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsT0FBTyxFQUFFQyxXQUFXO0lBQ3ZHLElBQUlDO0lBRUosSUFBTUMsc0JBQXNCSCxRQUFRSSxZQUFZLENBQUNQO0lBRWpERyxRQUFRSyxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQix3QkFBc0JOO0lBRTFFLElBQU1TLCtCQUErQjtRQUNuQ0M7UUFDQUM7S0FDRDtJQUVETix3QkFBd0JJLDZCQUE2QkcsSUFBSSxDQUFDLFNBQUNDO1FBQ3pELElBQU1SLHdCQUF3QlEsNEJBQTRCYixtQkFBbUJDLGFBQWFDLFNBQVNDLFNBQVNDO1FBRTVHLElBQUlDLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlBLHVCQUF1QjtRQUN6QkYsUUFBUVcsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUixxQkFBb0Isc0JBQW9CTjtJQUM1RTtJQUVBLE9BQU9LO0FBQ1Q7QUFF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
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZUFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFZhcmlhYmxlIGZyb20gXCIuLi92YXJpYWJsZVwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudCBmcm9tIFwiLi4vYXNzaWdubWVudC92YXJpYWJsZVwiO1xuaW1wb3J0IHZlcmlmeVRlcm1BbmRTdGFuZGFsb25lVHlwZSBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1BbmRTdGFuZGFsb25lVHlwZVwiO1xuaW1wb3J0IHZlcmlmeVRlcm1Bc1ZhcmlhYmxlQW5kU3RhbmRhbG9uZVR5cGUgZnJvbSBcIi4uL3ZlcmlmeS90ZXJtQXNWYXJpYWJsZUFuZFN0YW5kYWxvbmVUeXBlXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdHlwZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdHlwZUFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5VHlwZUFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlEZXJpdmVkVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlHaXZlblR5cGVBc3NlcnRpb25cbiAgXTtcblxuICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIGlmICh0eXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmVkKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgIHR5cGVzID0gW10sXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHRlcm1BbmRTdGFuZGFsb25lVHlwZVZlcmlmaWVkID0gdmVyaWZ5VGVybUFuZFN0YW5kYWxvbmVUeXBlKHRlcm1Ob2RlLCB0eXBlTm9kZSwgdGVybXMsIHR5cGVzLCBjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHR5cGUgPSBmaXJzdFR5cGUsIC8vL1xuICAgICAgICAgICAgICAgICAgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICAgIHRlcm1UeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUeXBlID0gdGVybVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKTtcblxuICAgICAgICAgICAgaWYgKHRlcm1UeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgICAgIGRlYnVnZ2VyXG5cbiAgICAgICAgICAgICAgaWYgKGZhbHNlKSB7ICAvLy9cbiAgICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIGRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB0ZXJtQW5kU3RhbmRhbG9uZVR5cGVWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5R2l2ZW5UeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IGdpdmVuVHlwZUFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFkZXJpdmVkKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIGdpdmVuIHR5cGUgYXNzZXJ0aW9uLi4uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgdHlwZXMgPSBbXSxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdGVybUFzVmFyaWFibGVBbmRTdGFuZGFsb25lVHlwZVZlcmlmaWVkID0gdmVyaWZ5VGVybUFzVmFyaWFibGVBbmRTdGFuZGFsb25lVHlwZSh0ZXJtTm9kZSwgdHlwZU5vZGUsIHZhcmlhYmxlcywgdHlwZXMsIGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpO1xuXG4gICAgICAgICAgICBsZXQgdmFyaWFibGUgPSBmaXJzdFZhcmlhYmxlOyAvLy9cblxuICAgICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgICAgICAgICAgdHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZVR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlR5cGUgPSB2YXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVHlwZSkge1xuICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZUFuZFR5cGUodmFyaWFibGUsIHR5cGUpOyAgLy8vXG5cbiAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50ID0gVmFyaWFibGVBc3NpZ25tZW50LmZyb21WYXJpYWJsZSh2YXJpYWJsZSksXG4gICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSB2YXJpYWJsZUFzc2lnbm1lbnQ7IC8vL1xuXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzLnB1c2goYXNzaWdubWVudCk7XG5cbiAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgICAgICAgaWYgKCF2ZXJpZmllZEFoZWFkKSB7XG4gICAgICAgICAgICAgICAgYXNzaWdubWVudHMucG9wKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBnaXZlblR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRlcm1Bc1ZhcmlhYmxlQW5kU3RhbmRhbG9uZVR5cGVWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoZ2l2ZW5UeXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgZ2l2ZW4gdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBnaXZlblR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInR5cGVBc3NlcnRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkVHlwZUFzc2VydGlvbiIsInZlcmlmeUdpdmVuVHlwZUFzc2VydGlvbiIsInNvbWUiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0ZXJtcyIsInR5cGVzIiwidGVybU5vZGUiLCJ0eXBlTm9kZSIsInRlcm1BbmRTdGFuZGFsb25lVHlwZVZlcmlmaWVkIiwidmVyaWZ5VGVybUFuZFN0YW5kYWxvbmVUeXBlIiwidmVyaWZpZWRBaGVhZCIsImZpcnN0VGVybSIsImZpcnN0IiwiZmlyc3RUeXBlIiwidGVybSIsInR5cGUiLCJ0ZXJtVHlwZSIsImdldFR5cGUiLCJ0ZXJtVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJnaXZlblR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZhcmlhYmxlcyIsInRlcm1Bc1ZhcmlhYmxlQW5kU3RhbmRhbG9uZVR5cGVWZXJpZmllZCIsInZlcmlmeVRlcm1Bc1ZhcmlhYmxlQW5kU3RhbmRhbG9uZVR5cGUiLCJmaXJzdFZhcmlhYmxlIiwidmFyaWFibGUiLCJ2YXJpYWJsZVR5cGUiLCJ2YXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlR5cGUiLCJWYXJpYWJsZSIsImZyb21WYXJpYWJsZUFuZFR5cGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJWYXJpYWJsZUFzc2lnbm1lbnQiLCJmcm9tVmFyaWFibGUiLCJhc3NpZ25tZW50IiwicHVzaCIsInBvcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUF3QkE7OzsrREFYSDtnRUFDVTs0RUFDUztzRkFDVTtxQkFFNUI7cUJBQ0k7Ozs7OztBQUUxQixJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMseUJBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUM7QUFFakIsU0FBU0Ysb0JBQW9CSSxpQkFBaUIsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRUMsV0FBVztJQUN2RyxJQUFJQztJQUVKLElBQU1DLHNCQUFzQkgsUUFBUUksWUFBWSxDQUFDUDtJQUVqREcsUUFBUUssS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0Isd0JBQXNCTjtJQUUxRSxJQUFNUywrQkFBK0I7UUFDbkNDO1FBQ0FDO0tBQ0Q7SUFFRE4sd0JBQXdCSSw2QkFBNkJHLElBQUksQ0FBQyxTQUFDQztRQUN6RCxJQUFNUix3QkFBd0JRLDRCQUE0QmIsbUJBQW1CQyxhQUFhQyxTQUFTQyxTQUFTQztRQUU1RyxJQUFJQyx1QkFBdUI7WUFDekIsT0FBTztR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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.698",
4
+ "version": "0.0.700",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -9,15 +9,15 @@ export default class EqualityAssignment {
9
9
  return this.equality;
10
10
  }
11
11
 
12
- assign(localContext) {
13
- const equalityAdded = localContext.addEquality(this.equality),
12
+ assign(context) {
13
+ const equalityAdded = context.addEquality(this.equality),
14
14
  equalityNode = this.equality.getNode(),
15
- equalityString = localContext.nodeAsString(equalityNode),
15
+ equalityString = context.nodeAsString(equalityNode),
16
16
  equalityAssigned = equalityAdded; ///
17
17
 
18
18
  equalityAssigned ?
19
- localContext.debug(`Able to assign the '${equalityString}' equality.`, equalityNode) :
20
- localContext.trace(`Unable to assign the '${equalityString}' equality.`, equalityNode);
19
+ context.debug(`Able to assign the '${equalityString}' equality.`, equalityNode) :
20
+ context.trace(`Unable to assign the '${equalityString}' equality.`, equalityNode);
21
21
 
22
22
  return equalityAssigned;
23
23
  }
@@ -9,15 +9,15 @@ export default class MetavariableAssignment {
9
9
  return this.metavariable;
10
10
  }
11
11
 
12
- assign(localContext) {
13
- const metavariableAdded = localContext.addMetavariable(this.metavariable),
12
+ assign(fileContext) {
13
+ const metavariableAdded = fileContext.addMetavariable(this.metavariable),
14
14
  metavariableNode = this.metavariable.getNode(),
15
- metavariableString = localContext.nodeAsString(metavariableNode),
15
+ metavariableString = fileContext.nodeAsString(metavariableNode),
16
16
  metavariableAssigned = metavariableAdded; ///
17
17
 
18
18
  metavariableAssigned ?
19
- localContext.debug(`Able to assign the '${metavariableString}' metavariable.`, metavariableNode) :
20
- localContext.trace(`Unable to assign the '${metavariableString}' metavariable.`, metavariableNode);
19
+ fileContext.debug(`Able to assign the '${metavariableString}' metavariable.`, metavariableNode) :
20
+ fileContext.trace(`Unable to assign the '${metavariableString}' metavariable.`, metavariableNode);
21
21
 
22
22
  return metavariableAssigned;
23
23
  }
@@ -9,15 +9,17 @@ export default class VariableAssignment {
9
9
  return this.variable;
10
10
  }
11
11
 
12
- assign(localContext) {
13
- const variableAdded = localContext.addVariable(this.variable),
12
+ assign(context) {
13
+ const variableAdded = context.addVariable(this.variable),
14
14
  variableNode = this.variable.getNode(),
15
- variableString = localContext.nodeAsString(variableNode),
15
+ variableType = this.variable.getType(),
16
+ variableString = context.nodeAsString(variableNode),
17
+ variableTypeName = variableType.getName(),
16
18
  variableAssigned = variableAdded; ///
17
19
 
18
20
  variableAssigned ?
19
- localContext.debug(`Able to assign the '${variableString}' variable.`, variableNode) :
20
- localContext.trace(`Unable to assign the '${variableString}' variable.`, variableNode);
21
+ context.debug(`Able to assign the '${variableString}' variable with type '${variableTypeName}'.`, variableNode) :
22
+ context.trace(`Unable to assign the '${variableString}' variable with type '${variableTypeName}'.`, variableNode);
21
23
 
22
24
  return variableAssigned;
23
25
  }
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import Type from "./type";
4
-
5
3
  import { nodeAsString } from "./utilities/string";
4
+ import { typeFromJSONAndFileContext } from "./type";
6
5
  import { termNodeFromConstructorDeclarationTokens } from "./utilities/node";
7
6
  import { constructorDeclarationTokensFromTermString } from "./utilities/tokens";
8
7
 
@@ -62,11 +61,7 @@ export default class Constructor {
62
61
 
63
62
  json = typeJSON; ///
64
63
 
65
- type = Type.fromJSONAndFileContext(json, fileContext);
66
-
67
- const typeName = type.getName();
68
-
69
- type = fileContext.findTypeByTypeName(typeName); ///
64
+ type = typeFromJSONAndFileContext(json, fileContext);
70
65
  }
71
66
 
72
67
  const tokens = constructorDeclarationTokens, ///
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import Type from "../type";
4
3
  import Rule from "../rule";
5
4
  import Axiom from "../axiom";
6
5
  import Lemma from "../lemma";
@@ -11,9 +10,10 @@ import Combinator from "../combinator";
11
10
  import Constructor from "../constructor";
12
11
  import Metavariable from "../metavariable";
13
12
 
13
+ import { push } from "../utilities/array";
14
14
  import { objectType } from "../type";
15
- import { push, filter } from "../utilities/array";
16
15
  import { statementMetaType } from "../metaType";
16
+ import { typeFromJSONAndFileContext } from "../type";
17
17
  import { nodeAsString, nodesAsString } from "../utilities/string";
18
18
 
19
19
  const metaTypes = [
@@ -259,18 +259,15 @@ export default class FileContext {
259
259
  findTypeByTypeName(typeName) {
260
260
  let types = this.getTypes();
261
261
 
262
- types = [ ///
263
- ...types,
264
- objectType
265
- ];
262
+ types.push(objectType);
266
263
 
267
264
  const type = types.find((type) => {
268
- const matches = type.matchTypeName(typeName);
265
+ const matches = type.matchTypeName(typeName);
269
266
 
270
- if (matches) {
271
- return true;
272
- }
273
- }) || null;
267
+ if (matches) {
268
+ return true;
269
+ }
270
+ }) || null;
274
271
 
275
272
  return type;
276
273
  }
@@ -632,7 +629,7 @@ export default class FileContext {
632
629
 
633
630
  typesJSON.forEach((typeJSON) => {
634
631
  const json = typeJSON, ///
635
- type = Type.fromJSONAndFileContext(json, fileContext);
632
+ type = typeFromJSONAndFileContext(json, fileContext);
636
633
 
637
634
  this.types.push(type);
638
635
  });
@@ -2,8 +2,7 @@
2
2
 
3
3
  import Variable from "../variable";
4
4
  import Collection from "../collection";
5
- import fileMixins from "../mixins/file";
6
- import loggingMixins from "../mixins/logging";
5
+ import contextMixins from "../mixins/context";
7
6
 
8
7
  import { last } from "../utilities/array";
9
8
  import { mergeCollections, findCollectionByType, findCollectionByTerm, findCollectionByTerms } from "../utilities/collection";
@@ -24,8 +23,8 @@ class LocalContext {
24
23
  let variables = this.context.getVariables();
25
24
 
26
25
  variables = [ ///
27
- ...variables,
28
- ...this.variables
26
+ ...this.variables,
27
+ ...variables
29
28
  ];
30
29
 
31
30
  return variables;
@@ -35,8 +34,8 @@ class LocalContext {
35
34
  let proofSteps = this.context.getProofSteps();
36
35
 
37
36
  proofSteps = [ ///
38
- ...proofSteps,
39
- ...this.proofSteps
37
+ ...this.proofSteps,
38
+ ...proofSteps
40
39
  ];
41
40
 
42
41
  return proofSteps;
@@ -306,7 +305,6 @@ class LocalContext {
306
305
  }
307
306
  }
308
307
 
309
- Object.assign(LocalContext.prototype, fileMixins);
310
- Object.assign(LocalContext.prototype, loggingMixins);
308
+ Object.assign(LocalContext.prototype, contextMixins);
311
309
 
312
310
  export default LocalContext;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import fileMixins from "../mixins/file";
4
- import loggingMixins from "../mixins/logging";
3
+ import contextMixins from "../mixins/context";
5
4
 
6
5
  import { last } from "../utilities/array";
7
6
 
@@ -20,8 +19,8 @@ class LocalMetaContext {
20
19
  let metavariables = this.context.getMetavariables();
21
20
 
22
21
  metavariables = [ ///
22
+ ...this.metavariables,
23
23
  ...metavariables,
24
- this.metavariables
25
24
  ]
26
25
 
27
26
  return metavariables;
@@ -31,8 +30,8 @@ class LocalMetaContext {
31
30
  let metaproofSteps = this.context.getMetaproofSteps();
32
31
 
33
32
  metaproofSteps = [ ///
34
- ...metaproofSteps,
35
- ...this.metaproofSteps
33
+ ...this.metaproofSteps,
34
+ ...metaproofSteps
36
35
  ];
37
36
 
38
37
  return metaproofSteps;
@@ -140,7 +139,6 @@ class LocalMetaContext {
140
139
  }
141
140
  }
142
141
 
143
- Object.assign(LocalMetaContext.prototype, fileMixins);
144
- Object.assign(LocalMetaContext.prototype, loggingMixins);
142
+ Object.assign(LocalMetaContext.prototype, contextMixins);
145
143
 
146
144
  export default LocalMetaContext;
@@ -277,18 +277,15 @@ export default class ReleaseContext {
277
277
  findTypeByTypeName(typeName) {
278
278
  let types = this.getTypes();
279
279
 
280
- types = [ ///
281
- ...types,
282
- objectType
283
- ];
280
+ types.push(objectType);
284
281
 
285
282
  const type = types.find((type) => {
286
- const matches = type.matchTypeName(typeName);
283
+ const matches = type.matchTypeName(typeName);
287
284
 
288
- if (matches) {
289
- return true;
290
- }
291
- }) || null;
285
+ if (matches) {
286
+ return true;
287
+ }
288
+ }) || null;
292
289
 
293
290
  return type;
294
291
  }
package/src/equality.js CHANGED
@@ -31,9 +31,9 @@ export default class Equality {
31
31
 
32
32
  const leftTermType = leftTerm.getType(),
33
33
  rightTermType = rightTerm.getType(),
34
- leftTermTypeEqualToSubTypeOfOrSuperTypeOfRightTermType = leftTermType.isEqualToSubTypeOfOrSuperTypeOf(rightTermType);
34
+ leftTermTypeComparableToRightTermType = leftTermType.isComparableTo(rightTermType);
35
35
 
36
- if (leftTermTypeEqualToSubTypeOfOrSuperTypeOfRightTermType) {
36
+ if (leftTermTypeComparableToRightTermType) {
37
37
  const node = equalityNode; ///
38
38
 
39
39
  equality = new Equality(node, leftTerm, rightTerm);
package/src/metaType.js CHANGED
@@ -57,16 +57,6 @@ export default class MetaType {
57
57
 
58
58
  return metaType;
59
59
  }
60
-
61
- static fromJSONAndFileContext(json, fileContext) {
62
- let metaType;
63
-
64
- const { name } = json;
65
-
66
- metaType = new MetaType(name);
67
-
68
- return metaType;
69
- }
70
60
  }
71
61
 
72
62
  class StatementMetaType extends MetaType {
@@ -79,3 +69,13 @@ class StatementMetaType extends MetaType {
79
69
  }
80
70
 
81
71
  export const statementMetaType = StatementMetaType.fromNothing();
72
+
73
+ export function metaTypeFromJSONAndFileContext(json, fileContext) {
74
+ let metaType;
75
+
76
+ const { name } = json;
77
+
78
+ metaType = new MetaType(name);
79
+
80
+ return metaType;
81
+ }
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import MetaType from "./metaType";
4
-
5
3
  import { nodeAsString } from "./utilities/string";
4
+ import { metaTypeFromJSONAndFileContext } from "./metaType";
6
5
 
7
6
  export default class Metavariable {
8
7
  constructor(node, metaType) {
@@ -54,11 +53,7 @@ export default class Metavariable {
54
53
 
55
54
  json = metaType; ///
56
55
 
57
- metaType = MetaType.fromJSONAndFileContext(json, fileContext);
58
-
59
- const metaTypeName = metaType.getName();
60
-
61
- metaType = fileContext.findMetaTypeByMetaTypeName(metaTypeName); ///
56
+ metaType = metaTypeFromJSONAndFileContext(json, fileContext);
62
57
 
63
58
  const metavariable = new Metavariable(node, metaType);
64
59
 
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ function trace(node, message) { this.context.trace(node, message); }
4
+
5
+ function debug(node, message) { this.context.debug(node, message); }
6
+
7
+ function info(node, message) { this.context.info(node, message); }
8
+
9
+ function warning(node, message) { this.context.warning(node, message); }
10
+
11
+ function error(node, message) { this.context.error(node, message); }
12
+
13
+ function fatal(node, message) { this.context.fatal(node, message); }
14
+
3
15
  function getAxioms() { return this.context.getAxioms(); }
4
16
 
5
17
  function getLemmas() { return this.context.getLemmas(); }
@@ -34,7 +46,13 @@ function nodeAsString(node) { return this.context.nodeAsString(node); }
34
46
 
35
47
  function nodesAsString(node) { return this.context.nodesAsString(node); }
36
48
 
37
- const fileMixins = {
49
+ const contextMixins = {
50
+ trace,
51
+ debug,
52
+ info,
53
+ warning,
54
+ error,
55
+ fatal,
38
56
  getAxioms,
39
57
  getLemmas,
40
58
  getTheorems,
@@ -54,4 +72,4 @@ const fileMixins = {
54
72
  nodesAsString
55
73
  };
56
74
 
57
- export default fileMixins;
75
+ export default contextMixins;
package/src/ruleNames.js CHANGED
@@ -13,7 +13,9 @@ export const METASTATEMENT_RULE_NAME = "metastatement";
13
13
  export const RULE_SUBPROOF_RULE_NAME = "ruleSubproof";
14
14
  export const META_ARGUMENT_RULE_NAME = "metaArgument";
15
15
  export const QUALIFIED_STATEMENT_RULE_NAME = "qualifiedStatement";
16
+ export const VARIABLE_DECLARATION_RULE_NAME = "variableDeclaration";
16
17
  export const UNQUALIFIED_STATEMENT_RULE_NAME = "unqualifiedStatement";
17
18
  export const CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
18
19
  export const QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
20
+ export const METAVARIABLE_DECLARATION_RULE_NAME = "metavariableDeclaration";
19
21
  export const UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";