occam-verify-cli 0.0.538 → 0.0.539

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 (67) hide show
  1. package/bin/action/verify.js +3 -24
  2. package/bin/actions.js +20 -6
  3. package/lib/axiom.js +4 -4
  4. package/lib/axiomLemmaTheoremConjecture.js +28 -25
  5. package/lib/conclusion.js +5 -5
  6. package/lib/conjecture.js +4 -4
  7. package/lib/consequence.js +3 -3
  8. package/lib/context/file.js +90 -28
  9. package/lib/kinds.js +5 -1
  10. package/lib/lemma.js +4 -4
  11. package/lib/metaType.js +201 -0
  12. package/lib/metavariable.js +75 -0
  13. package/lib/premise.js +9 -9
  14. package/lib/rule.js +36 -29
  15. package/lib/supposition.js +5 -5
  16. package/lib/theorem.js +4 -4
  17. package/lib/utilities/query.js +13 -2
  18. package/lib/variable.js +12 -12
  19. package/lib/verifier/metastatementForMetavariable.js +8 -8
  20. package/lib/verifier/statementForMetavariable.js +9 -9
  21. package/lib/verifier/termForVariable.js +22 -11
  22. package/lib/verify/assertion/type.js +2 -2
  23. package/lib/verify/axiom.js +2 -2
  24. package/lib/verify/conjecture.js +2 -2
  25. package/lib/verify/declaration/metavariable.js +26 -0
  26. package/lib/verify/declaration/topLevel.js +7 -3
  27. package/lib/verify/lemma.js +2 -2
  28. package/lib/verify/metastatement/qualified.js +3 -3
  29. package/lib/verify/metavariable.js +34 -0
  30. package/lib/verify/rule.js +2 -2
  31. package/lib/verify/statement/qualified.js +7 -7
  32. package/lib/verify/statement.js +5 -5
  33. package/lib/verify/theorem.js +2 -2
  34. package/lib/verify/variable.js +4 -4
  35. package/package.json +3 -3
  36. package/src/axiom.js +1 -1
  37. package/src/axiomLemmaTheoremConjecture.js +27 -28
  38. package/src/conclusion.js +8 -4
  39. package/src/conjecture.js +1 -1
  40. package/src/consequence.js +2 -2
  41. package/src/context/file.js +97 -28
  42. package/src/kinds.js +1 -0
  43. package/src/lemma.js +1 -1
  44. package/src/metaType.js +81 -0
  45. package/src/metavariable.js +35 -0
  46. package/src/premise.js +16 -8
  47. package/src/rule.js +32 -27
  48. package/src/supposition.js +8 -4
  49. package/src/theorem.js +1 -1
  50. package/src/utilities/query.js +14 -0
  51. package/src/variable.js +8 -8
  52. package/src/verifier/metastatementForMetavariable.js +7 -7
  53. package/src/verifier/statementForMetavariable.js +8 -8
  54. package/src/verifier/termForVariable.js +33 -13
  55. package/src/verify/assertion/type.js +3 -3
  56. package/src/verify/axiom.js +1 -1
  57. package/src/verify/conjecture.js +2 -1
  58. package/src/verify/declaration/metavariable.js +20 -0
  59. package/src/verify/declaration/topLevel.js +9 -2
  60. package/src/verify/lemma.js +1 -1
  61. package/src/verify/metastatement/qualified.js +3 -2
  62. package/src/verify/metavariable.js +32 -0
  63. package/src/verify/rule.js +1 -1
  64. package/src/verify/statement/qualified.js +7 -6
  65. package/src/verify/statement.js +12 -12
  66. package/src/verify/theorem.js +2 -1
  67. package/src/verify/variable.js +4 -4
@@ -39,7 +39,7 @@ function verifyTheorem(theoremNode, fileContext) {
39
39
  if (consequenceVerified) {
40
40
  var proofNode = proofNodeQuery(theoremNode), firstConsequence = (0, _array.first)(consequences), consequence = firstConsequence, proofVerified = (0, _proof.default)(proofNode, consequence, proofContext);
41
41
  if (proofVerified) {
42
- var theorem = _theorem.default.fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence);
42
+ var theorem = _theorem.default.fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext);
43
43
  fileContext.addTheorem(theorem);
44
44
  theoremVerified = true;
45
45
  }
@@ -52,4 +52,4 @@ function verifyTheorem(theoremNode, fileContext) {
52
52
  return theoremVerified;
53
53
  }
54
54
 
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW5jZSBmcm9tIFwiLi9jb25zZXF1ZW5jZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS9wcm9vZiFcIiksXG4gICAgICBsYWJlbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3RoZW9yZW0vbGFiZWxcIiksXG4gICAgICBjb25zZXF1ZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtL2NvbnNlcXVlbmNlIVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9zdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VGhlb3JlbSh0aGVvcmVtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHRoZW9yZW1WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyB0aGVvcmVtLi4uYCwgdGhlb3JlbU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNWZXJpZmllZCA9IHN1cHBvc2l0aW9uTm9kZXMuZXZlcnkoKHN1cHBvc2l0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25WZXJpZmllZCA9IHZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uTm9kZSwgc3VwcG9zaXRpb25zLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVuY2VzID0gW10sXG4gICAgICAgICAgICBjb25zZXF1ZW5jZU5vZGUgPSBjb25zZXF1ZW5jZU5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW5jZVZlcmlmaWVkID0gdmVyaWZ5Q29uc2VxdWVuY2UoY29uc2VxdWVuY2VOb2RlLCBjb25zZXF1ZW5jZXMsIHByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChjb25zZXF1ZW5jZVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25zZXF1ZW5jZSA9IGZpcnN0KGNvbnNlcXVlbmNlcyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbmNlID0gZmlyc3RDb25zZXF1ZW5jZSwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbmNlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0FuZENvbnNlcXVlbmNlKGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW5jZSk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC5hZGRUaGVvcmVtKHRoZW9yZW0pO1xuXG4gICAgICAgICAgdGhlb3JlbVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh0aGVvcmVtVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgdGhlb3JlbS5gLCB0aGVvcmVtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGhlb3JlbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRoZW9yZW0iLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW5jZU5vZGVRdWVyeSIsInN1cHBvc2l0aW9uc05vZGVRdWVyeSIsInRoZW9yZW1Ob2RlIiwiZmlsZUNvbnRleHQiLCJ0aGVvcmVtVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsInByb29mQ29udGV4dCIsIlByb29mQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImRlYnVnIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25zVmVyaWZpZWQiLCJldmVyeSIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbiIsImNvbnNlcXVlbmNlcyIsImNvbnNlcXVlbmNlTm9kZSIsImNvbnNlcXVlbmNlVmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW5jZSIsInByb29mTm9kZSIsImZpcnN0Q29uc2VxdWVuY2UiLCJmaXJzdCIsImNvbnNlcXVlbmNlIiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQW5kQ29uc2VxdWVuY2UiLCJhZGRUaGVvcmVtIiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7NERBZko7MERBQ0k7MkRBQ0M7MkRBQ0E7Z0VBQ0s7Z0VBQ0E7cUJBRVI7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLG1CQUM3QkMsdUJBQXVCSCxJQUFBQSxnQkFBUyxFQUFDLDBCQUNqQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGNBQWNPLFdBQVcsRUFBRUMsV0FBVyxFQUFFO0lBQzlELElBQUlDLGtCQUFrQixLQUFLO0lBRTNCLElBQU1DLGFBQWFQLGdCQUFnQkksY0FDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0YsYUFDekNHLGVBQWVDLGVBQVksQ0FBQ0MsZUFBZSxDQUFDUDtJQUVsREEsWUFBWVEsS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJMLGNBQWEsaUJBQWVKO0lBRWhFLElBQU1VLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1QsWUFBWU8sUUFBUVQ7SUFFeEQsSUFBSVUsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CZixzQkFBc0JDLGNBQ3pDZSx1QkFBdUJELGlCQUFpQkUsS0FBSyxDQUFDLFNBQUNDLGlCQUFvQjtZQUNqRSxJQUFNQyxzQkFBc0JDLElBQUFBLG9CQUFpQixFQUFDRixpQkFBaUJKLGNBQWNQO1lBRTdFLElBQUlZLHFCQUFxQjtnQkFDdkIsT0FBTyxJQUFJO1lBQ2IsQ0FBQztRQUNIO1FBRU4sSUFBSUgsc0JBQXNCO1lBQ3hCLElBQU1LLGVBQWUsRUFBRSxFQUNqQkMsa0JBQWtCdkIscUJBQXFCRSxjQUN2Q3NCLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkQsY0FBY2Q7WUFFN0UsSUFBSWdCLHFCQUFxQjtnQkFDdkIsSUFBTUUsWUFBWTlCLGVBQWVNLGNBQzNCeUIsbUJBQW1CQyxJQUFBQSxZQUFLLEVBQUNOLGVBQ3pCTyxjQUFjRixrQkFDZEcsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNMLFdBQVdHLGFBQWFyQjtnQkFFMUQsSUFBSXNCLGVBQWU7b0JBQ2pCLElBQU1FLFVBQVVDLGdCQUFPLENBQUNDLG9DQUFvQyxDQUFDdEIsUUFBUUcsY0FBY2M7b0JBRW5GMUIsWUFBWWdDLFVBQVUsQ0FBQ0g7b0JBRXZCNUIsa0JBQWtCLElBQUk7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJQSxpQkFBaUI7UUFDbkJELFlBQVlpQyxJQUFJLENBQUMsQUFBQyxpQkFBNkIsT0FBYjlCLGNBQWEsZUFBYUo7SUFDOUQsQ0FBQztJQUVELE9BQU9FO0FBQ1QifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW5jZSBmcm9tIFwiLi9jb25zZXF1ZW5jZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCBwcm9vZiBmcm9tIFwiLi4vY29udGV4dC9wcm9vZlwiO1xuXG5jb25zdCBwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtL3Byb29mIVwiKSxcbiAgICAgIGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbmNlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RoZW9yZW0vY29uc2VxdWVuY2UhXCIpLFxuICAgICAgc3VwcG9zaXRpb25zTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi90aGVvcmVtL3N1cHBvc2l0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUaGVvcmVtKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdGhlb3JlbVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIHByb29mQ29udGV4dCA9IFByb29mQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uLi5gLCB0aGVvcmVtTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gc3VwcG9zaXRpb25Ob2Rlcy5ldmVyeSgoc3VwcG9zaXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdXBwb3NpdGlvblZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChzdXBwb3NpdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25zZXF1ZW5jZXMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbmNlTm9kZSA9IGNvbnNlcXVlbmNlTm9kZVF1ZXJ5KHRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbmNlVmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW5jZShjb25zZXF1ZW5jZU5vZGUsIGNvbnNlcXVlbmNlcywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbmNlVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgICAgICBmaXJzdENvbnNlcXVlbmNlID0gZmlyc3QoY29uc2VxdWVuY2VzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVuY2UgPSBmaXJzdENvbnNlcXVlbmNlLCAvLy9cbiAgICAgICAgICAgICAgcHJvb2ZWZXJpZmllZCA9IHZlcmlmeVByb29mKHByb29mTm9kZSwgY29uc2VxdWVuY2UsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCB0aGVvcmVtID0gVGhlb3JlbS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVuY2VBbmRQcm9vZkNvbnRleHQobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbmNlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgZmlsZUNvbnRleHQuYWRkVGhlb3JlbSh0aGVvcmVtKTtcblxuICAgICAgICAgIHRoZW9yZW1WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodGhlb3JlbVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uYCwgdGhlb3JlbU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHRoZW9yZW1WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUaGVvcmVtIiwicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsYWJlbE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29uc2VxdWVuY2VOb2RlUXVlcnkiLCJzdXBwb3NpdGlvbnNOb2RlUXVlcnkiLCJ0aGVvcmVtTm9kZSIsImZpbGVDb250ZXh0IiwidGhlb3JlbVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJwcm9vZkNvbnRleHQiLCJQcm9vZkNvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJkZWJ1ZyIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwic3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwiZXZlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwidmVyaWZ5U3VwcG9zaXRpb24iLCJjb25zZXF1ZW5jZXMiLCJjb25zZXF1ZW5jZU5vZGUiLCJjb25zZXF1ZW5jZVZlcmlmaWVkIiwidmVyaWZ5Q29uc2VxdWVuY2UiLCJwcm9vZk5vZGUiLCJmaXJzdENvbnNlcXVlbmNlIiwiZmlyc3QiLCJjb25zZXF1ZW5jZSIsInByb29mVmVyaWZpZWQiLCJ2ZXJpZnlQcm9vZiIsInRoZW9yZW0iLCJUaGVvcmVtIiwiZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbmNlQW5kUHJvb2ZDb250ZXh0IiwiYWRkVGhlb3JlbSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtCQTs7O2VBQXdCQTs7OzREQWhCSjswREFDSTsyREFDQzsyREFDQTtnRUFDSztnRUFDQTtxQkFFUjtxQkFDZ0I7Ozs7OztBQUd0QyxJQUFNQyxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsb0JBQzNCQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsbUJBQzdCQyx1QkFBdUJILElBQUFBLGdCQUFTLEVBQUMsMEJBQ2pDSSx3QkFBd0JGLElBQUFBLGlCQUFVLEVBQUM7QUFFMUIsU0FBU0osY0FBY08sV0FBVyxFQUFFQyxXQUFXLEVBQUU7SUFDOUQsSUFBSUMsa0JBQWtCLEtBQUs7SUFFM0IsSUFBTUMsYUFBYVAsZ0JBQWdCSSxjQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRixhQUN6Q0csZUFBZUMsZUFBWSxDQUFDQyxlQUFlLENBQUNQO0lBRWxEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxpQkFBZUo7SUFFaEUsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJmLHNCQUFzQkMsY0FDekNlLHVCQUF1QkQsaUJBQWlCRSxLQUFLLENBQUMsU0FBQ0MsaUJBQW9CO1lBQ2pFLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkosY0FBY1A7WUFFN0UsSUFBSVkscUJBQXFCO2dCQUN2QixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7UUFFTixJQUFJSCxzQkFBc0I7WUFDeEIsSUFBTUssZUFBZSxFQUFFLEVBQ2pCQyxrQkFBa0J2QixxQkFBcUJFLGNBQ3ZDc0Isc0JBQXNCQyxJQUFBQSxvQkFBaUIsRUFBQ0YsaUJBQWlCRCxjQUFjZDtZQUU3RSxJQUFJZ0IscUJBQXFCO2dCQUN2QixJQUFNRSxZQUFZOUIsZUFBZU0sY0FDM0J5QixtQkFBbUJDLElBQUFBLFlBQUssRUFBQ04sZUFDekJPLGNBQWNGLGtCQUNkRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csYUFBYXJCO2dCQUUxRCxJQUFJc0IsZUFBZTtvQkFDakIsSUFBTUUsVUFBVUMsZ0JBQU8sQ0FBQ0MsZ0RBQWdELENBQUN0QixRQUFRRyxjQUFjYyxhQUFhckI7b0JBRTVHTCxZQUFZZ0MsVUFBVSxDQUFDSDtvQkFFdkI1QixrQkFBa0IsSUFBSTtnQkFDeEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGlCQUFpQjtRQUNuQkQsWUFBWWlDLElBQUksQ0FBQyxBQUFDLGlCQUE2QixPQUFiOUIsY0FBYSxlQUFhSjtJQUM5RCxDQUFDO0lBRUQsT0FBT0U7QUFDVCJ9
@@ -25,15 +25,15 @@ function verifyVariable(variableNode, typeNode, fileContext) {
25
25
  var variable;
26
26
  var typeName = (0, _query.typeNameFromTypeNode)(typeNode);
27
27
  if (typeName === null) {
28
- var type = _type.objectType, name = variableName; ///
29
- variable = _variable.default.fromTypeAndName(type, name);
28
+ var name = variableName, type = _type.objectType;
29
+ variable = _variable.default.fromNameAndType(name, type);
30
30
  } else {
31
31
  var type1 = fileContext.findTypeByTypeName(typeName);
32
32
  if (type1 === null) {
33
33
  fileContext.error("The '".concat(variableName, "' variable's '").concat(typeName, "' type is not present."), variableNode);
34
34
  } else {
35
35
  var name1 = variableName; ///
36
- variable = _variable.default.fromTypeAndName(type1, name1);
36
+ variable = _variable.default.fromNameAndType(name1, type1);
37
37
  }
38
38
  }
39
39
  if (variable !== null) {
@@ -47,4 +47,4 @@ function verifyVariable(variableNode, typeNode, fileContext) {
47
47
  return variableVerified;
48
48
  }
49
49
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSwgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSB2YXJpYWJsZSAnJHt2YXJpYWJsZU5hbWV9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgdmFyaWFibGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcbiAgICBcbiAgICBpZiAodHlwZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBvYmplY3RUeXBlLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZTsgIC8vL1xuXG4gICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gLCB2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VmFyaWFibGUiLCJ2YXJpYWJsZU5vZGUiLCJ0eXBlTm9kZSIsImZpbGVDb250ZXh0IiwidmFyaWFibGVWZXJpZmllZCIsInZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJlcnJvciIsInZhcmlhYmxlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJvYmplY3RUeXBlIiwibmFtZSIsIlZhcmlhYmxlIiwiZnJvbVR5cGVBbmROYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwiYWRkVmFyaWFibGUiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7OzZEQUxIO29CQUVNO3FCQUN3Qzs7Ozs7O0FBRXBELFNBQVNBLGVBQWVDLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUU7SUFDMUUsSUFBSUMsbUJBQW1CLEtBQUs7SUFFNUIsSUFBTUMsZUFBZUMsSUFBQUEsbUNBQTRCLEVBQUNMLGVBQzVDTSxpQkFBaUJKLFlBQVlLLFlBQVksQ0FBQ1AsZUFDMUNRLGtCQUFrQk4sWUFBWU8sK0JBQStCLENBQUNMO0lBRXBFLElBQUlJLGlCQUFpQjtRQUNuQk4sWUFBWVEsS0FBSyxDQUFDLEFBQUMsaUJBQTZCLE9BQWJOLGNBQWEsMEJBQXdCSjtJQUMxRSxPQUFPO1FBQ0wsSUFBSVc7UUFFSixJQUFNQyxXQUFXQyxJQUFBQSwyQkFBb0IsRUFBQ1o7UUFFdEMsSUFBSVcsYUFBYSxJQUFJLEVBQUU7WUFDckIsSUFBTUUsT0FBT0MsZ0JBQVUsRUFDakJDLE9BQU9aLGNBQWUsR0FBRztZQUUvQk8sV0FBV00saUJBQVEsQ0FBQ0MsZUFBZSxDQUFDSixNQUFNRTtRQUM1QyxPQUFPO1lBQ0wsSUFBTUYsUUFBT1osWUFBWWlCLGtCQUFrQixDQUFDUDtZQUU1QyxJQUFJRSxVQUFTLElBQUksRUFBRTtnQkFDakJaLFlBQVlRLEtBQUssQ0FBQyxBQUFDLFFBQW9DRSxPQUE3QlIsY0FBYSxrQkFBeUIsT0FBVFEsVUFBUywyQkFBeUJaO1lBQzNGLE9BQU87Z0JBQ0wsSUFBTWdCLFFBQU9aLGNBQWUsR0FBRztnQkFFL0JPLFdBQVdNLGlCQUFRLENBQUNDLGVBQWUsQ0FBQ0osT0FBTUU7WUFDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJTCxhQUFhLElBQUksRUFBRTtZQUNyQlQsWUFBWWtCLFdBQVcsQ0FBQ1Q7WUFFeEJSLG1CQUFtQixJQUFJO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsa0JBQWtCO1FBQ3BCRCxZQUFZbUIsSUFBSSxDQUFDLEFBQUMsaUJBQStCLE9BQWZmLGdCQUFlLGdCQUFjTjtJQUNqRSxDQUFDO0lBRUQsT0FBT0c7QUFDVCJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSwgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSB2YXJpYWJsZSAnJHt2YXJpYWJsZU5hbWV9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgdmFyaWFibGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcbiAgICBcbiAgICBpZiAodHlwZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHR5cGUgPSBvYmplY3RUeXBlO1xuXG4gICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSAnJHt2YXJpYWJsZU5hbWV9JyB2YXJpYWJsZSdzICcke3R5cGVOYW1lfScgdHlwZSBpcyBub3QgcHJlc2VudC5gLCB2YXJpYWJsZU5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IHZhcmlhYmxlTmFtZTsgIC8vL1xuXG4gICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgZmlsZUNvbnRleHQuYWRkVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICB2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAodmFyaWFibGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmAsIHZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdmFyaWFibGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlWYXJpYWJsZSIsInZhcmlhYmxlTm9kZSIsInR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ2YXJpYWJsZVZlcmlmaWVkIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsImVycm9yIiwidmFyaWFibGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwibmFtZSIsInR5cGUiLCJvYmplY3RUeXBlIiwiVmFyaWFibGUiLCJmcm9tTmFtZUFuZFR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJhZGRWYXJpYWJsZSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7NkRBTEg7b0JBRU07cUJBQ3dDOzs7Ozs7QUFFcEQsU0FBU0EsZUFBZUMsWUFBWSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRTtJQUMxRSxJQUFJQyxtQkFBbUIsS0FBSztJQUU1QixJQUFNQyxlQUFlQyxJQUFBQSxtQ0FBNEIsRUFBQ0wsZUFDNUNNLGlCQUFpQkosWUFBWUssWUFBWSxDQUFDUCxlQUMxQ1Esa0JBQWtCTixZQUFZTywrQkFBK0IsQ0FBQ0w7SUFFcEUsSUFBSUksaUJBQWlCO1FBQ25CTixZQUFZUSxLQUFLLENBQUMsQUFBQyxpQkFBNkIsT0FBYk4sY0FBYSwwQkFBd0JKO0lBQzFFLE9BQU87UUFDTCxJQUFJVztRQUVKLElBQU1DLFdBQVdDLElBQUFBLDJCQUFvQixFQUFDWjtRQUV0QyxJQUFJVyxhQUFhLElBQUksRUFBRTtZQUNyQixJQUFNRSxPQUFPVixjQUNQVyxPQUFPQyxnQkFBVTtZQUVyQkwsV0FBV00saUJBQVEsQ0FBQ0MsZUFBZSxDQUFDSixNQUFNQztRQUM5QyxPQUFPO1lBQ0wsSUFBTUEsUUFBT2IsWUFBWWlCLGtCQUFrQixDQUFDUDtZQUU1QyxJQUFJRyxVQUFTLElBQUksRUFBRTtnQkFDakJiLFlBQVlRLEtBQUssQ0FBQyxBQUFDLFFBQW9DRSxPQUE3QlIsY0FBYSxrQkFBeUIsT0FBVFEsVUFBUywyQkFBeUJaO1lBQzNGLE9BQU87Z0JBQ0wsSUFBTWMsUUFBT1YsY0FBZSxHQUFHO2dCQUUvQk8sV0FBV00saUJBQVEsQ0FBQ0MsZUFBZSxDQUFDSixPQUFNQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUlKLGFBQWEsSUFBSSxFQUFFO1lBQ3JCVCxZQUFZa0IsV0FBVyxDQUFDVDtZQUV4QlIsbUJBQW1CLElBQUk7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJQSxrQkFBa0I7UUFDcEJELFlBQVltQixJQUFJLENBQUMsQUFBQyxpQkFBK0IsT0FBZmYsZ0JBQWUsZ0JBQWNOO0lBQ2pFLENBQUM7SUFFRCxPQUFPRztBQUNUIn0=
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.538",
4
+ "version": "0.0.539",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -12,9 +12,9 @@
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.21",
14
14
  "necessary": "^11.2.1",
15
- "occam-custom-grammars": "^5.0.396",
15
+ "occam-custom-grammars": "^5.0.397",
16
16
  "occam-dom": "^3.1.1",
17
- "occam-file-system": "^5.0.157",
17
+ "occam-file-system": "^5.0.158",
18
18
  "occam-grammar-utilities": "^7.0.66"
19
19
  },
20
20
  "devDependencies": {
package/src/axiom.js CHANGED
@@ -9,5 +9,5 @@ export default class Axiom extends AxiomLemmaTheoremConjecture {
9
9
 
10
10
  static fromJSON(json, context) { return AxiomLemmaTheoremConjecture.fromJSON(Axiom, json, context); }
11
11
 
12
- static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Axiom, labels, suppositions, consequence); }
12
+ static fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequenceAndProofContext(Axiom, labels, suppositions, consequence, proofContext); }
13
13
  }
@@ -8,10 +8,11 @@ import { prune } from "./utilities/array";
8
8
  import { someSubArray } from "./utilities/array";
9
9
 
10
10
  export default class AxiomLemmaTheoremConjecture {
11
- constructor(labels, suppositions, consequence) {
11
+ constructor(labels, suppositions, consequence, proofContext) {
12
12
  this.labels = labels;
13
13
  this.suppositions = suppositions;
14
14
  this.consequence = consequence;
15
+ this.proofContext = proofContext;
15
16
  }
16
17
 
17
18
  getLabels() {
@@ -26,6 +27,10 @@ export default class AxiomLemmaTheoremConjecture {
26
27
  return this.consequence;
27
28
  }
28
29
 
30
+ getProofContext() {
31
+ return this.proofContext;
32
+ }
33
+
29
34
  matchLabelName(labelName) {
30
35
  const matchesLabelName = this.labels.some((label) => {
31
36
  const name = labelName, ///
@@ -39,21 +44,30 @@ export default class AxiomLemmaTheoremConjecture {
39
44
  return matchesLabelName;
40
45
  }
41
46
 
42
- matchStatement(statementNode, proofContext) {
47
+ matchStatement(statementNode, statementProofContext) {
43
48
  let statementNatches;
44
49
 
45
50
  const suppositionsLength = this.suppositions.length;
46
51
 
47
52
  if (suppositionsLength === 0) {
48
53
  const substitutions = [],
49
- consequenceMatches = matchConsequence(this.consequence, statementNode, substitutions);
54
+ consequenceMatches = matchConsequence(this.consequence, statementNode, substitutions, this.proofContext, statementProofContext);
50
55
 
51
56
  statementNatches = consequenceMatches; ///
52
57
  } else {
53
- const proofSteps = proofContext.getProofSteps();
58
+ const proofSteps = statementProofContext.getProofSteps();
54
59
 
55
60
  statementNatches = someSubArray(proofSteps, suppositionsLength, (proofSteps) => {
56
- const suppositionsMatchConsequence = matchSuppositionsAndConsequence(this.suppositions, this.consequence, proofSteps, statementNode);
61
+ let suppositionsMatchConsequence = false;
62
+
63
+ const substitutions = [],
64
+ suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.proofContext, statementProofContext);
65
+
66
+ if (suppositionsMatch) {
67
+ const consequenceMatches = matchConsequence(this.consequence, statementNode, substitutions, this.proofContext, statementProofContext);
68
+
69
+ suppositionsMatchConsequence = consequenceMatches; ///
70
+ }
57
71
 
58
72
  if (suppositionsMatchConsequence) {
59
73
  return true;
@@ -124,16 +138,16 @@ export default class AxiomLemmaTheoremConjecture {
124
138
  return new Class(labels, suppositions, consequence); ///
125
139
  }
126
140
 
127
- static fromLabelsSuppositionsAndConsequence(Class, labels, suppositions, consequence) { return new Class(labels, suppositions, consequence); }
141
+ static fromLabelsSuppositionsConsequenceAndProofContext(Class, labels, suppositions, consequence, proofContext) { return new Class(labels, suppositions, consequence, proofContext); }
128
142
  }
129
143
 
130
- function matchSupposition(supposition, proofSteps, substitutions) {
144
+ function matchSupposition(supposition, proofSteps, substitutions, proofContext, statementProofContext) {
131
145
  const proofStep = prune(proofSteps, (proofStep) => {
132
146
  const subproofNode = proofStep.getSubproofNode(),
133
147
  statementNode = proofStep.getStatementNode();
134
148
 
135
149
  if (subproofNode !== null) {
136
- const subProofMatches = supposition.matchSubproofNode(subproofNode, substitutions);
150
+ const subProofMatches = supposition.matchSubproofNode(subproofNode, substitutions, proofContext, statementProofContext);
137
151
 
138
152
  if (!subProofMatches) { ///
139
153
  return true;
@@ -141,7 +155,7 @@ function matchSupposition(supposition, proofSteps, substitutions) {
141
155
  }
142
156
 
143
157
  if (statementNode !== null) {
144
- const statementMatches = supposition.matchStatementNode(statementNode, substitutions);
158
+ const statementMatches = supposition.matchStatementNode(statementNode, substitutions, proofContext, statementProofContext);
145
159
 
146
160
  if (!statementMatches) { ///
147
161
  return true;
@@ -155,9 +169,9 @@ function matchSupposition(supposition, proofSteps, substitutions) {
155
169
  return suppositionMatches;
156
170
  }
157
171
 
158
- function matchSuppositions(supposition, proofSteps, substitutions) {
172
+ function matchSuppositions(supposition, proofSteps, substitutions, proofContext, statementProofContext) {
159
173
  const suppositionsMatch = supposition.every((supposition) => {
160
- const suppositionMatches = matchSupposition(supposition, proofSteps, substitutions);
174
+ const suppositionMatches = matchSupposition(supposition, proofSteps, substitutions, proofContext, statementProofContext);
161
175
 
162
176
  if (suppositionMatches) {
163
177
  return true;
@@ -167,24 +181,9 @@ function matchSuppositions(supposition, proofSteps, substitutions) {
167
181
  return suppositionsMatch;
168
182
  }
169
183
 
170
- function matchConsequence(consequence, statementNode, substitutions) {
171
- const nonTerminalNodeMatches = consequence.matchStatementNode(statementNode, substitutions),
184
+ function matchConsequence(consequence, statementNode, substitutions, proofContext, statementProofContext) {
185
+ const nonTerminalNodeMatches = consequence.matchStatementNode(statementNode, substitutions, proofContext, statementProofContext),
172
186
  consequenceMatches = nonTerminalNodeMatches; ///
173
187
 
174
188
  return consequenceMatches;
175
189
  }
176
-
177
- function matchSuppositionsAndConsequence(suppositions, consequence, proofSteps, statementNode) {
178
- let suppositionsMatchConsequence = false;
179
-
180
- const substitutions = [],
181
- suppositionsMatch = matchSuppositions(suppositions, proofSteps, substitutions);
182
-
183
- if (suppositionsMatch) {
184
- const consequenceMatches = matchConsequence(consequence, statementNode, substitutions);
185
-
186
- suppositionsMatchConsequence = consequenceMatches; ///
187
- }
188
-
189
- return suppositionsMatchConsequence;
190
- }
package/src/conclusion.js CHANGED
@@ -14,19 +14,23 @@ export default class Conclusion {
14
14
  return this.metastatementNode;
15
15
  }
16
16
 
17
- matchStatementNode(statementNode, substitutions) {
17
+ matchStatementNode(statementNode, substitutions, fileContext, statementProofContext) {
18
18
  const nonTerminalNodeA = this.metastatementNode, ///
19
19
  nonTerminalNodeB = statementNode, ///
20
- nonTerminalNodeVerified = conclusionStatementForMetavariableVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
20
+ fileContextA = fileContext, ///
21
+ proofContextB = statementProofContext, ///
22
+ nonTerminalNodeVerified = conclusionStatementForMetavariableVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, proofContextB),
21
23
  statementNodeMatches = nonTerminalNodeVerified; ///
22
24
 
23
25
  return statementNodeMatches;
24
26
  }
25
27
 
26
- matchMetastatementNode(metastatementNode, substitutions) {
28
+ matchMetastatementNode(metastatementNode, substitutions, fileContext, metastatementMetaproofContext) {
27
29
  const nonTerminalNodeA = this.metastatementNode, ///
28
30
  nonTerminalNodeB = metastatementNode, ///
29
- nonTerminalNodeVerified = conclusionMetastatementForMetavariableVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
31
+ fileContextA = fileContext, ///
32
+ metaproofContextB = metastatementMetaproofContext, ///
33
+ nonTerminalNodeVerified = conclusionMetastatementForMetavariableVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, metaproofContextB),
30
34
  metastatementNodeMatches = nonTerminalNodeVerified; ///
31
35
 
32
36
  return metastatementNodeMatches;
package/src/conjecture.js CHANGED
@@ -9,5 +9,5 @@ export default class Conjecture extends AxiomLemmaTheoremConjecture {
9
9
 
10
10
  static fromJSON(json, context) { return AxiomLemmaTheoremConjecture.fromJSON(Conjecture, json, context); }
11
11
 
12
- static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Conjecture, labels, suppositions, consequence); }
12
+ static fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequenceAndProofContext(Conjecture, labels, suppositions, consequence, proofContext); }
13
13
  }
@@ -13,10 +13,10 @@ export default class Consequence {
13
13
  return this.statementNode;
14
14
  }
15
15
 
16
- matchStatementNode(statementNode, substitutions) {
16
+ matchStatementNode(statementNode, substitutions, proofContext) {
17
17
  const nonTerminalNodeA = this.statementNode, ///
18
18
  nonTerminalNodeB = statementNode, ///
19
- nonTerminalNodeVerified = consequenceTermForVariableVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
19
+ nonTerminalNodeVerified = consequenceTermForVariableVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContext),
20
20
  statementNodeMatches = nonTerminalNodeVerified; ///
21
21
 
22
22
  return statementNodeMatches;
@@ -2,9 +2,14 @@
2
2
 
3
3
  import { rewriteNodes } from "occam-grammar-utilities";
4
4
 
5
- import { push } from "../utilities/array";
5
+ import { push, filter } from "../utilities/array";
6
+ import { statementMetaType } from "../metaType";
6
7
  import { nodeAsString, nodesAsString } from "../utilities/string";
7
8
 
9
+ const metaTypes = [
10
+ statementMetaType
11
+ ];
12
+
8
13
  export default class FileContext {
9
14
  constructor(releaseContext, filePath, tokens, node, types, rules, axioms, lemmas, theorems, conjectures, combinators, constructors, variables, metavariables) {
10
15
  this.releaseContext = releaseContext;
@@ -157,6 +162,10 @@ export default class FileContext {
157
162
  return theorems;
158
163
  }
159
164
 
165
+ getMetaTypes(includeRelease = true) {
166
+ return metaTypes;
167
+ }
168
+
160
169
  getConjectures(includeRelease = true) {
161
170
  const conjectures = [];
162
171
 
@@ -290,6 +299,33 @@ export default class FileContext {
290
299
  return theorem;
291
300
  }
292
301
 
302
+ findVariableByVariableName(variableName) {
303
+ const name = variableName, ///
304
+ variables = this.getVariables(),
305
+ variable = variables.find((variable) => {
306
+ const matches = variable.matchName(name);
307
+
308
+ if (matches) {
309
+ return true;
310
+ }
311
+ }) || null;
312
+
313
+ return variable;
314
+ }
315
+
316
+ findMetaTypeByMetaTypeName(metaTypeName) {
317
+ const metaTypes = this.getMetaTypes(),
318
+ metaType = metaTypes.find((metaType) => {
319
+ const matches = metaType.matchMetaTypeName(metaTypeName);
320
+
321
+ if (matches) {
322
+ return true;
323
+ }
324
+ }) || null;
325
+
326
+ return metaType;
327
+ }
328
+
293
329
  findConjectureByReferenceName(referenceName) {
294
330
  const labelName = referenceName, ///
295
331
  conjectures = this.getConjectures(),
@@ -304,11 +340,18 @@ export default class FileContext {
304
340
  return conjecture;
305
341
  }
306
342
 
307
- isLabelPresentByLabelName(labelName) {
308
- const label = this.findLabelByLabelName(labelName),
309
- labelPresent = (label !== null);
343
+ findMetavariableByMetavariableName(metavariableName) {
344
+ const name = metavariableName, ///
345
+ metavariables = this.getMetavariables(),
346
+ metavariable = metavariables.find((metavariable) => {
347
+ const matches = metavariable.matchName(name);
310
348
 
311
- return labelPresent;
349
+ if (matches) {
350
+ return true;
351
+ }
352
+ }) || null;
353
+
354
+ return metavariable;
312
355
  }
313
356
 
314
357
  isTypePresentByTypeName(typeName) {
@@ -318,30 +361,11 @@ export default class FileContext {
318
361
  return typePresent;
319
362
  }
320
363
 
321
- nodeAsString(node) {
322
- const string = nodeAsString(node, this.tokens);
323
-
324
- return string;
325
- }
326
-
327
- nodesAsString(node) {
328
- const string = nodesAsString(node, this.tokens);
329
-
330
- return string;
331
- }
332
-
333
- findVariableByVariableName(variableName) {
334
- const name = variableName, ///
335
- variables = this.getVariables(),
336
- variable = variables.find((variable) => {
337
- const matches = variable.matchName(name);
338
-
339
- if (matches) {
340
- return true;
341
- }
342
- }) || null;
364
+ isLabelPresentByLabelName(labelName) {
365
+ const label = this.findLabelByLabelName(labelName),
366
+ labelPresent = (label !== null);
343
367
 
344
- return variable;
368
+ return labelPresent;
345
369
  }
346
370
 
347
371
  isVariablePresentByVariableName(variableName) {
@@ -351,12 +375,31 @@ export default class FileContext {
351
375
  return variablePresent;
352
376
  }
353
377
 
378
+ isMetavariablePresentByMetavariableName(metavariableName) {
379
+ const metavariable = this.findMetavariableByMetavariableName(metavariableName),
380
+ metavariablePresent = (metavariable !== null);
381
+
382
+ return metavariablePresent;
383
+ }
384
+
354
385
  matchStatement(statementNode) {
355
386
  const statementMatches = false;
356
387
 
357
388
  return statementMatches;
358
389
  }
359
390
 
391
+ nodeAsString(node) {
392
+ const string = nodeAsString(node, this.tokens);
393
+
394
+ return string;
395
+ }
396
+
397
+ nodesAsString(node) {
398
+ const string = nodesAsString(node, this.tokens);
399
+
400
+ return string;
401
+ }
402
+
360
403
  addType(type) {
361
404
  this.types.push(type);
362
405
  }
@@ -378,6 +421,17 @@ export default class FileContext {
378
421
  }
379
422
 
380
423
  addVariable(variable) {
424
+ const variableName = variable.getName();
425
+
426
+ filter(this.variables, (variable) => {
427
+ const name = variable.getName(),
428
+ nameVariableName = (name === variableName);
429
+
430
+ if (!nameVariableName) {
431
+ return true;
432
+ }
433
+ });
434
+
381
435
  this.variables.push(variable);
382
436
  }
383
437
 
@@ -389,6 +443,21 @@ export default class FileContext {
389
443
  this.constructors.push(constructor);
390
444
  }
391
445
 
446
+ addMetavariable(metavariable) {
447
+ const metavariableName = metavariable.getName();
448
+
449
+ filter(this.metavariables, (metavariable) => {
450
+ const name = metavariable.getName(),
451
+ nameMetavariableName = (name === metavariableName);
452
+
453
+ if (!nameMetavariableName) {
454
+ return true;
455
+ }
456
+ });
457
+
458
+ this.metavariables.push(metavariable);
459
+ }
460
+
392
461
  trace(message, node) { this.releaseContext.trace(message, node, this.tokens, this.filePath); }
393
462
 
394
463
  debug(message, node) { this.releaseContext.debug(message, node, this.tokens, this.filePath); }
package/src/kinds.js CHANGED
@@ -5,6 +5,7 @@ export const RULE_KIND = "rule";
5
5
  export const AXIOM_KIND = "axiom";
6
6
  export const LEMMA_KIND = "lemma";
7
7
  export const THEOREM_KIND = "theorem";
8
+ export const META_TYPE_KIND = "meta-type";
8
9
  export const CONJECTURE_KIND = "conjecture";
9
10
  export const COMBINATOR_KIND = "combinator";
10
11
  export const CONSTRUCTOR_KIND = "constructor";
package/src/lemma.js CHANGED
@@ -9,5 +9,5 @@ export default class Lemma extends AxiomLemmaTheoremConjecture {
9
9
 
10
10
  static fromJSON(json, context) { return AxiomLemmaTheoremConjecture.fromJSON(Lemma, json, context); }
11
11
 
12
- static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Lemma, labels, suppositions, consequence); }
12
+ static fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequenceAndProofContext(Lemma, labels, suppositions, consequence, proofContext); }
13
13
  }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import { META_TYPE_KIND } from "./kinds";
4
+ import { STATEMENT_META_TYPE_NAME } from "./metaTypeNames";
5
+
6
+ export default class MetaType {
7
+ constructor(name) {
8
+ this.name = name;
9
+ }
10
+
11
+ getName() {
12
+ return this.name;
13
+ }
14
+
15
+ isEqualTo(metaType) {
16
+ const equalTo = (this === metaType);
17
+
18
+ return equalTo;
19
+ }
20
+
21
+ match(metaType) {
22
+ const equalToMetaType = this.isEqualTo(metaType),
23
+ matches = equalToMetaType; ///
24
+
25
+ return matches;
26
+ }
27
+
28
+ matchName(name) {
29
+ const matchesName = (this.name === name);
30
+
31
+ return matchesName;
32
+ }
33
+
34
+ matchMetaTypeName(metaTypeName) {
35
+ const matchesMetaTypeName = (this.name === metaTypeName);
36
+
37
+ return matchesMetaTypeName;
38
+ }
39
+
40
+ asString(tokens) {
41
+ const string = `${this.name}`;
42
+
43
+ return string;
44
+ }
45
+
46
+ toJSON(tokens) {
47
+ const kind = META_TYPE_KIND,
48
+ name = this.name,
49
+ json = {
50
+ kind,
51
+ name
52
+ };
53
+
54
+ return json;
55
+ }
56
+
57
+ static fromJSON(json, context) {
58
+ const { name } = json,
59
+ metaType = new MetaType(name);
60
+
61
+ return metaType;
62
+ }
63
+
64
+ static fromMetaTypeName(metaTypeName) {
65
+ const name = metaTypeName, ///
66
+ metaType = new MetaType(name);
67
+
68
+ return metaType;
69
+ }
70
+ }
71
+
72
+ class StatementMetaType extends MetaType {
73
+ static fromNothing() {
74
+ const name = STATEMENT_META_TYPE_NAME,
75
+ objectMetaType = new StatementMetaType(name);
76
+
77
+ return objectMetaType;
78
+ }
79
+ }
80
+
81
+ export const statementMetaType = StatementMetaType.fromNothing();
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ export default class Metavariable {
4
+ constructor(name, metaType) {
5
+ this.name = name;
6
+ this.metaType = metaType;
7
+ }
8
+
9
+ getName() {
10
+ return this.name;
11
+ }
12
+
13
+ getMetaType() {
14
+ return this.metaType;
15
+ }
16
+
17
+ matchName(name) {
18
+ const matchesName = (this.name === name);
19
+
20
+ return matchesName;
21
+ }
22
+
23
+ asString(tokens) {
24
+ const metaTypeName = this.metaType.getName(),
25
+ string = `${this.name}:${metaTypeName}`;
26
+
27
+ return string;
28
+ }
29
+
30
+ static fromNameAndMetaType(name, metaType) {
31
+ const metavariable = new Metavariable(name, metaType);
32
+
33
+ return metavariable;
34
+ }
35
+ }