occam-verify-cli 0.0.1032 → 0.0.1035

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 (51) hide show
  1. package/lib/argument.js +2 -3
  2. package/lib/assertion/subproof.js +50 -11
  3. package/lib/assertion/type.js +180 -0
  4. package/lib/constructor.js +3 -2
  5. package/lib/context/file.js +32 -13
  6. package/lib/context/local.js +15 -15
  7. package/lib/context/release.js +9 -24
  8. package/lib/equality.js +5 -5
  9. package/lib/mixins/statement/verify.js +3 -3
  10. package/lib/premise.js +21 -12
  11. package/lib/substitution/termForVariable.js +15 -18
  12. package/lib/supposition.js +19 -10
  13. package/lib/term.js +21 -16
  14. package/lib/theorem.js +107 -6
  15. package/lib/unifier/intrinsicLevel.js +9 -4
  16. package/lib/unifier/metaLevel.js +10 -4
  17. package/lib/unifier/statementWithCombinator.js +2 -2
  18. package/lib/utilities/array.js +5 -2
  19. package/lib/utilities/unify.js +2 -14
  20. package/lib/variable.js +65 -13
  21. package/lib/verifier/topLevel.js +3 -3
  22. package/package.json +1 -1
  23. package/src/argument.js +1 -3
  24. package/src/assertion/subproof.js +74 -15
  25. package/src/assertion/type.js +176 -0
  26. package/src/constructor.js +3 -1
  27. package/src/context/file.js +48 -14
  28. package/src/context/local.js +17 -7
  29. package/src/context/release.js +11 -35
  30. package/src/equality.js +4 -4
  31. package/src/mixins/statement/verify.js +3 -2
  32. package/src/premise.js +29 -16
  33. package/src/substitution/termForVariable.js +21 -21
  34. package/src/supposition.js +24 -11
  35. package/src/term.js +22 -17
  36. package/src/theorem.js +87 -1
  37. package/src/unifier/intrinsicLevel.js +16 -3
  38. package/src/unifier/metaLevel.js +18 -3
  39. package/src/unifier/statementWithCombinator.js +1 -1
  40. package/src/utilities/array.js +1 -1
  41. package/src/utilities/unify.js +1 -16
  42. package/src/variable.js +88 -18
  43. package/src/verifier/topLevel.js +3 -2
  44. package/lib/unify/variableWithTerm.js +0 -39
  45. package/lib/verify/assertion/type.js +0 -99
  46. package/lib/verify/lemma.js +0 -48
  47. package/lib/verify/theorem.js +0 -47
  48. package/src/unify/variableWithTerm.js +0 -37
  49. package/src/verify/assertion/type.js +0 -139
  50. package/src/verify/lemma.js +0 -70
  51. package/src/verify/theorem.js +0 -65
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return unifyVariableWithTerm;
9
- }
10
- });
11
- var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../substitution/termForVariable"));
12
- var _unify = require("../utilities/unify");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- function unifyVariableWithTerm(variableNodeA, termNodeB, substitutions, localContextA, localContextB) {
19
- var variableUnifiedWithTerm = false;
20
- var substitution = substitutions.findSubstitutionByVariableNode(variableNodeA);
21
- if (substitution !== null) {
22
- var termNodeMatches = substitution.matchTermNode(termNodeB);
23
- if (termNodeMatches) {
24
- variableUnifiedWithTerm = true;
25
- }
26
- } else {
27
- var variableA = localContextA.findVariableByVariableNode(variableNodeA), variableB = (0, _unify.variableFromTermNode)(termNodeB, localContextB);
28
- if (variableA === variableB) {
29
- variableUnifiedWithTerm = true;
30
- } else {
31
- var termNode = termNodeB, variableNode = variableNodeA, termForVariableSubstitution = _termForVariable.default.fromTernNodeAndVariableNode(termNode, variableNode, localContextA, localContextB), substitution1 = termForVariableSubstitution; ///
32
- substitutions.addSubstitution(substitution1, localContextA, localContextB);
33
- variableUnifiedWithTerm = true;
34
- }
35
- }
36
- return variableUnifiedWithTerm;
37
- }
38
-
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS92YXJpYWJsZVdpdGhUZXJtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vdGVybUZvclZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IHZhcmlhYmxlRnJvbVRlcm1Ob2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy91bmlmeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1bmlmeVZhcmlhYmxlV2l0aFRlcm0odmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCB2YXJpYWJsZVVuaWZpZWRXaXRoVGVybSA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZUEpO1xuXG4gIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZUIpO1xuXG4gICAgaWYgKHRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgdmFyaWFibGVVbmlmaWVkV2l0aFRlcm0gPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2YXJpYWJsZUEgPSBsb2NhbENvbnRleHRBLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZUEpLFxuICAgICAgICAgIHZhcmlhYmxlQiA9IHZhcmlhYmxlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlQiwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBpZiAodmFyaWFibGVBID09PSB2YXJpYWJsZUIpIHtcbiAgICAgIHZhcmlhYmxlVW5pZmllZFdpdGhUZXJtID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgICB0ZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gPSBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbVRlcm5Ob2RlQW5kVmFyaWFibGVOb2RlKHRlcm1Ob2RlLCB2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpLFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gdGVybUZvclZhcmlhYmxlU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICAgIHN1YnN0aXR1dGlvbnMuYWRkU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIHZhcmlhYmxlVW5pZmllZFdpdGhUZXJtID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFyaWFibGVVbmlmaWVkV2l0aFRlcm07XG59XG4iXSwibmFtZXMiOlsidW5pZnlWYXJpYWJsZVdpdGhUZXJtIiwidmFyaWFibGVOb2RlQSIsInRlcm1Ob2RlQiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInZhcmlhYmxlVW5pZmllZFdpdGhUZXJtIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGVOb2RlIiwidGVybU5vZGVNYXRjaGVzIiwibWF0Y2hUZXJtTm9kZSIsInZhcmlhYmxlQSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidmFyaWFibGVCIiwidmFyaWFibGVGcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlTm9kZSIsInRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsIlRlcm1Gb3JWYXJpYWJsZVN1YnN0aXR1dGlvbiIsImZyb21UZXJuTm9kZUFuZFZhcmlhYmxlTm9kZSIsImFkZFN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7OztzRUFKZ0I7cUJBRUg7Ozs7OztBQUV0QixTQUFTQSxzQkFBc0JDLGFBQWEsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUNqSCxJQUFJQywwQkFBMEI7SUFFOUIsSUFBTUMsZUFBZUosY0FBY0ssOEJBQThCLENBQUNQO0lBRWxFLElBQUlNLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1FLGtCQUFrQkYsYUFBYUcsYUFBYSxDQUFDUjtRQUVuRCxJQUFJTyxpQkFBaUI7WUFDbkJILDBCQUEwQjtRQUM1QjtJQUNGLE9BQU87UUFDTCxJQUFNSyxZQUFZUCxjQUFjUSwwQkFBMEIsQ0FBQ1gsZ0JBQ3JEWSxZQUFZQyxJQUFBQSwyQkFBb0IsRUFBQ1osV0FBV0c7UUFFbEQsSUFBSU0sY0FBY0UsV0FBVztZQUMzQlAsMEJBQTBCO1FBQzVCLE9BQU87WUFDTCxJQUFNUyxXQUFXYixXQUNYYyxlQUFlZixlQUNmZ0IsOEJBQThCQyx3QkFBMkIsQ0FBQ0MsMkJBQTJCLENBQUNKLFVBQVVDLGNBQWNaLGVBQWVDLGdCQUM3SEUsZ0JBQWVVLDZCQUE4QixHQUFHO1lBRXREZCxjQUFjaUIsZUFBZSxDQUFDYixlQUFjSCxlQUFlQztZQUUzREMsMEJBQTBCO1FBQzVCO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUIn0=
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyTypeAssertion;
9
- }
10
- });
11
- var _variable = /*#__PURE__*/ _interop_require_default(require("../../variable"));
12
- var _variable1 = /*#__PURE__*/ _interop_require_default(require("../../assignment/variable"));
13
- var _array = require("../../utilities/array");
14
- var _query = require("../../utilities/query");
15
- function _interop_require_default(obj) {
16
- return obj && obj.__esModule ? obj : {
17
- default: obj
18
- };
19
- }
20
- var termNodeQuery = (0, _query.nodeQuery)("/typeAssertion/term!"), typeNodeQuery = (0, _query.nodeQuery)("/typeAssertion/type!"), variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
21
- var verifyTypeAssertionFunctions = [
22
- verifyDerivedTypeAssertion,
23
- verifyStatedTypeAssertion
24
- ];
25
- function verifyTypeAssertion(typeAssertionNode, assignments, stated, localContext) {
26
- var typeAssertionVerified;
27
- var typeAssertionString = localContext.nodeAsString(typeAssertionNode);
28
- localContext.trace("Verifying the '".concat(typeAssertionString, "' type assertion..."), typeAssertionNode);
29
- typeAssertionVerified = verifyTypeAssertionFunctions.some(function(verifyTypeAssertionFunction) {
30
- var typeAssertionVerified = verifyTypeAssertionFunction(typeAssertionNode, assignments, stated, localContext);
31
- if (typeAssertionVerified) {
32
- return true;
33
- }
34
- });
35
- if (typeAssertionVerified) {
36
- localContext.debug("...verified the '".concat(typeAssertionString, "' type assertion."), typeAssertionNode);
37
- }
38
- return typeAssertionVerified;
39
- }
40
- function verifyDerivedTypeAssertion(typeAssertionNode, assignments, stated, localContext) {
41
- var derivedTypeAssertionVerified = false;
42
- if (!stated) {
43
- var typeAssertionString = localContext.nodeAsString(typeAssertionNode);
44
- localContext.trace("Verifying the '".concat(typeAssertionString, "' derived type assertion..."), typeAssertionNode);
45
- var typeNode = typeNodeQuery(typeAssertionNode), type = localContext.findTypeByTypeNode(typeNode);
46
- if (type === null) {
47
- var typeString = localContext.nodeAsString(typeNode);
48
- localContext.debug("The '".concat(typeString, "' type is not present."), typeNode);
49
- }
50
- var terms = [], termNode = termNodeQuery(typeAssertionNode), termVerified = verifyTerm(termNode, terms, localContext, function() {
51
- var verifiedAhead = false;
52
- var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = localContext.getTermType(term), typeEqualToOrSuperTypeOfTermType = type.isEqualToOrSuperTypeOf(termType);
53
- if (typeEqualToOrSuperTypeOfTermType) {
54
- verifiedAhead = true;
55
- }
56
- return verifiedAhead;
57
- });
58
- derivedTypeAssertionVerified = termVerified; ///
59
- if (derivedTypeAssertionVerified) {
60
- localContext.debug("...verified the '".concat(typeAssertionString, "' derived type assertion."), typeAssertionNode);
61
- }
62
- }
63
- return derivedTypeAssertionVerified;
64
- }
65
- function verifyStatedTypeAssertion(typeAssertionNode, assignments, stated, localContext) {
66
- var statedTypeAssertionVerified = false;
67
- if (stated) {
68
- var typeAssertionString = localContext.nodeAsString(typeAssertionNode);
69
- localContext.trace("Verifying the '".concat(typeAssertionString, "' stated type assertion..."), typeAssertionNode);
70
- var typeNode = typeNodeQuery(typeAssertionNode), type = localContext.findTypeByTypeNode(typeNode);
71
- if (type === null) {
72
- var typeString = localContext.nodeAsString(typeNode);
73
- localContext.debug("The '".concat(typeString, "' type is not present."), typeNode);
74
- } else {
75
- var terms = [], termNode = termNodeQuery(typeAssertionNode), termVerified = verifyTerm(termNode, terms, localContext, function() {
76
- var verifiedAhead = false;
77
- var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = term.getType(), typeEqualToOrSubTypeOfTermType = type.isEqualToOrSubTypeOf(termType);
78
- if (typeEqualToOrSubTypeOfTermType) {
79
- var variableNode = variableNodeQuery(termNode);
80
- if (variableNode !== null) {
81
- if (assignments !== null) {
82
- var variable = _variable.default.fromVariableNodeAndType(variableNode, type), variableAssignment = _variable1.default.fromVariable(variable), assignment = variableAssignment; ///
83
- assignments.push(assignment);
84
- }
85
- }
86
- verifiedAhead = true;
87
- }
88
- return verifiedAhead;
89
- });
90
- statedTypeAssertionVerified = termVerified; ///
91
- }
92
- if (statedTypeAssertionVerified) {
93
- localContext.debug("...verified the '".concat(typeAssertionString, "' stated type assertion."), typeAssertionNode);
94
- }
95
- }
96
- return statedTypeAssertionVerified;
97
- }
98
-
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcbi8vIGltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudCBmcm9tIFwiLi4vLi4vYXNzaWdubWVudC92YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3Rlcm0hXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3R5cGUhXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmNvbnN0IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbnMgPSBbXG4gIHZlcmlmeURlcml2ZWRUeXBlQXNzZXJ0aW9uLFxuICB2ZXJpZnlTdGF0ZWRUeXBlQXNzZXJ0aW9uXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHR5cGVBc3NlcnRpb25WZXJpZmllZDtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh0eXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkVHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZWQpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGUgPSBsb2NhbENvbnRleHQuZmluZFR5cGVCeVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmAsIHR5cGVOb2RlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IGxvY2FsQ29udGV4dC5nZXRUZXJtVHlwZSh0ZXJtKSxcbiAgICAgICAgICAgICAgICAgIHR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlID0gdHlwZS5pc0VxdWFsVG9PclN1cGVyVHlwZU9mKHRlcm1UeXBlKTtcblxuICAgICAgICAgICAgaWYgKHR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIGRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB0ZXJtVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKGRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkVHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoc3RhdGVkKSB7XG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGUgPSBsb2NhbENvbnRleHQuZmluZFR5cGVCeVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmAsIHR5cGVOb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZUVxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlID0gdHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUZXJtVHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChhc3NpZ25tZW50cyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZU5vZGVBbmRUeXBlKHZhcmlhYmxlTm9kZSwgdHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlQXNzaWdubWVudCA9IFZhcmlhYmxlQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gdmFyaWFibGVBc3NpZ25tZW50OyAgLy8vXG5cbiAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIHN0YXRlZFR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZFR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHN0YXRlZCB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZFR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsInZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkVHlwZUFzc2VydGlvbiIsInZlcmlmeVN0YXRlZFR5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwibG9jYWxDb250ZXh0IiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidHlwZUFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwic29tZSIsInZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCIsInR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciLCJ0ZXJtcyIsInRlcm1Ob2RlIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtVHlwZSIsImdldFRlcm1UeXBlIiwidHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwic3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkIiwiZ2V0VHlwZSIsInR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUZXJtVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJWYXJpYWJsZSIsImZyb21WYXJpYWJsZU5vZGVBbmRUeXBlIiwidmFyaWFibGVBc3NpZ25tZW50IiwiVmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbVZhcmlhYmxlIiwiYXNzaWdubWVudCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtCQTs7O2VBQXdCQTs7OytEQWhCSDtnRUFFVTtxQkFFVDtxQkFDSTs7Ozs7O0FBRTFCLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDMUJFLG9CQUFvQkYsSUFBQUEsZ0JBQVMsRUFBQztBQUVwQyxJQUFNRywrQkFBK0I7SUFDbkNDO0lBQ0FDO0NBQ0Q7QUFFYyxTQUFTUCxvQkFBb0JRLGlCQUFpQixFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUM5RixJQUFJQztJQUVKLElBQU1DLHNCQUFzQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUV0REcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0Isd0JBQXNCTDtJQUUvRUksd0JBQXdCUCw2QkFBNkJXLElBQUksQ0FBQyxTQUFDQztRQUN6RCxJQUFNTCx3QkFBd0JLLDRCQUE0QlQsbUJBQW1CQyxhQUFhQyxR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
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyLemma;
9
- }
10
- });
11
- var _lemma = /*#__PURE__*/ _interop_require_default(require("../lemma"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
13
- var _substitutions = /*#__PURE__*/ _interop_require_default(require("../substitutions"));
14
- var _array = require("../utilities/array");
15
- var _constants = require("../constants");
16
- var _query = require("../utilities/query");
17
- function _interop_require_default(obj) {
18
- return obj && obj.__esModule ? obj : {
19
- default: obj
20
- };
21
- }
22
- var proofNodeQuery = (0, _query.nodeQuery)("/lemma/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/lemma/label"), consequentNodeQuery = (0, _query.nodeQuery)("/lemma/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/lemma/supposition");
23
- function verifyLemma(lemmaNode, fileContext) {
24
- var lemmaVerified = false;
25
- var labelNodes = labelNodesQuery(lemmaNode), labelsString = fileContext.nodesAsString(labelNodes);
26
- labelsString === _constants.EMPTY_STRING ? fileContext.trace("Verifying a lemma...", lemmaNode) : fileContext.trace("Verifying the '".concat(labelsString, "' lemma..."), lemmaNode);
27
- var labels = [], labelsVerified = verifyLabels(labelNodes, labels, fileContext);
28
- if (labelsVerified) {
29
- var localContext = _local.default.fromFileContext(fileContext), suppositions = [], suppositionNodes = suppositionsNodeQuery(lemmaNode), suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
30
- if (suppositionsVerified) {
31
- var consequents = [], consequentNode = consequentNodeQuery(lemmaNode), consequentVerified = verifyConsequent(consequentNode, consequents, localContext);
32
- if (consequentVerified) {
33
- var proofNode = proofNodeQuery(lemmaNode), firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, statementNode = consequent.getStatementNode(), substitutions = _substitutions.default.fromNothing(), proofVerified = verifyProof(proofNode, statementNode, substitutions, localContext);
34
- if (proofVerified) {
35
- var substitutions1 = _substitutions.default.fromNothing(), lemma = _lemma.default.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions1, fileContext);
36
- fileContext.addLemma(lemma);
37
- lemmaVerified = true;
38
- }
39
- }
40
- }
41
- }
42
- if (lemmaVerified) {
43
- labelsString === _constants.EMPTY_STRING ? fileContext.debug("...verified the lemma.", lemmaNode) : fileContext.debug("...verified the '".concat(labelsString, "' lemma."), lemmaNode);
44
- }
45
- return lemmaVerified;
46
- }
47
-
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbGVtbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMZW1tYSBmcm9tIFwiLi4vbGVtbWFcIjtcbi8vIGltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgU3Vic3RpdHV0aW9ucyBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uc1wiO1xuLy8gaW1wb3J0IHZlcmlmeUNvbnNlcXVlbnQgZnJvbSBcIi4uL3ZlcmlmeS9jb25zZXF1ZW50XCI7XG4vLyBpbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb25zIGZyb20gXCIuLi92ZXJpZnkvc3VwcG9zaXRpb25zXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9sZW1tYS9wcm9vZiFcIiksXG4gICAgICBsYWJlbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2xlbW1hL2xhYmVsXCIpLFxuICAgICAgY29uc2VxdWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9sZW1tYS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbGVtbWEvc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUxlbW1hKGxlbW1hTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGxlbW1hVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2Rlcyk7XG5cbiAgKGxhYmVsc1N0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyBhIGxlbW1hLi4uYCwgbGVtbWFOb2RlKSA6XG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBsZW1tYS4uLmAsIGxlbW1hTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNWZXJpZmllZCA9IHZlcmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbk5vZGVzLCBzdXBwb3NpdGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbnNlcXVlbnRzID0gW10sXG4gICAgICAgICAgICBjb25zZXF1ZW50Tm9kZSA9IGNvbnNlcXVlbnROb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnRWZXJpZmllZCA9IHZlcmlmeUNvbnNlcXVlbnQoY29uc2VxdWVudE5vZGUsIGNvbnNlcXVlbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoY29uc2VxdWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZVF1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBjb25zZXF1ZW50LmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgICAgcHJvb2ZWZXJpZmllZCA9IHZlcmlmeVByb29mKHByb29mTm9kZSwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAocHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgICAgICAgbGVtbWEgPSBMZW1tYS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudFN1YnN0aXR1dGlvbnNBbmRGaWxlQ29udGV4dChsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgZmlsZUNvbnRleHQuYWRkTGVtbWEobGVtbWEpO1xuXG4gICAgICAgICAgbGVtbWFWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobGVtbWFWZXJpZmllZCkge1xuICAgIChsYWJlbHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBsZW1tYS5gLCBsZW1tYU5vZGUpIDpcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBsZW1tYS5gLCBsZW1tYU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGxlbW1hVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TGVtbWEiLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwibGVtbWFOb2RlIiwiZmlsZUNvbnRleHQiLCJsZW1tYVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJFTVBUWV9TVFJJTkciLCJ0cmFjZSIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0Iiwic3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwidmVyaWZ5U3VwcG9zaXRpb25zIiwiY29uc2VxdWVudHMiLCJjb25zZXF1ZW50Tm9kZSIsImNvbnNlcXVlbnRWZXJpZmllZCIsInZlcmlmeUNvbnNlcXVlbnQiLCJwcm9vZk5vZGUiLCJmaXJzdENvbnNlcXVlbnQiLCJmaXJzdCIsImNvbnNlcXVlbnQiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbnMiLCJTdWJzdGl0dXRpb25zIiwiZnJvbU5vdGhpbmciLCJwcm9vZlZlcmlmaWVkIiwidmVyaWZ5UHJvb2YiLCJsZW1tYSIsIkxlbW1hIiwiZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbnRTdWJzdGl0dXRpb25zQW5kRmlsZUNvbnRleHQiLCJhZGRMZW1tYSIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUF3QkE7Ozs0REFoQk47NERBRU87b0VBQ0M7cUJBSUo7eUJBQ087cUJBQ1M7Ozs7OztBQUV0QyxJQUFNQyxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsa0JBQzNCQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsaUJBQzdCQyxzQkFBc0JILElBQUFBLGdCQUFTLEVBQUMsdUJBQ2hDSSx3QkFBd0JGLElBQUFBLGlCQUFVLEVBQUM7QUFFMUIsU0FBU0osWUFBWU8sU0FBUyxFQUFFQyxXQUFXO0lBQ3hELElBQUlDLGdCQUFnQjtJQUVwQixJQUFNQyxhQUFhUCxnQkFBZ0JJLFlBQzdCSSxlQUFlSCxZQUFZSSxhQUFhLENBQUNGO0lBRTlDQyxpQkFBaUJFLHVCQUFZLEdBQzVCTCxZQUFZTSxLQUFLLENBQUUsd0JBQXVCUCxhQUN4Q0MsWUFBWU0sS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJILGNBQWEsZUFBYUo7SUFFbEUsSUFBTVEsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsYUFBYVAsWUFBWUssUUFBUVA7SUFFeEQsSUFBSVEsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWVDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDWixjQUM1Q2EsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJoQixzQkFBc0JDLFlBQ3pDZ0IsdUJBQXVCQyxtQkFBbUJGLGtCQUFrQkQsY0FBY0g7UUFFaEYsSUFBSUssc0JBQXNCO1lBQ3hCLElBQU1FLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCckIsb0JBQW9CRSxZQUNyQ29CLHFCQUFxQkMsaUJBQWlCRixnQkFBZ0JELGFBQWFQO1lBRXpFLElBQUlTLG9CQUFvQjtnQkFDdEIsSUFBTUUsWUFBWTVCLGVBQWVNLFlBQzNCdUIsa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFDYkcsZ0JBQWdCRCxXQUFXRSxnQkFBZ0IsSUFDM0NDLGdCQUFnQkMsc0JBQWEsQ0FBQ0MsV0FBVyxJQUN6Q0MsZ0JBQWdCQyxZQUFZVixXQUFXSSxlQUFlRSxlQUFlakI7Z0JBRTNFLElBQUlvQixlQUFlO29CQUNqQixJQUFNSCxpQkFBZ0JDLHNCQUFhLENBQUNDLFdBQVcsSUFDekNHLFFBQVFDLGNBQUssQ0FBQ0MsMkRBQTJELENBQUMzQixRQUFRTSxjQUFjVyxZQUFZRyxnQkFBZTNCO29CQUVqSUEsWUFBWW1DLFFBQVEsQ0FBQ0g7b0JBRXJCL0IsZ0JBQWdCO2dCQUNsQjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGVBQWU7UUFDaEJFLGlCQUFpQkUsdUJBQVksR0FDNUJMLFlBQVlvQyxLQUFLLENBQUUsMEJBQXlCckMsYUFDMUNDLFlBQVlvQyxLQUFLLENBQUMsQUFBQyxvQkFBZ0MsT0FBYmpDLGNBQWEsYUFBV0o7SUFDcEU7SUFFQSxPQUFPRTtBQUNUIn0=
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyTheorem;
9
- }
10
- });
11
- var _theorem = /*#__PURE__*/ _interop_require_default(require("../theorem"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
13
- var _substitutions = /*#__PURE__*/ _interop_require_default(require("../substitutions"));
14
- var _array = require("../utilities/array");
15
- var _query = require("../utilities/query");
16
- function _interop_require_default(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- var proofNodeQuery = (0, _query.nodeQuery)("/theorem/proof!"), labelNodesQuery = (0, _query.nodesQuery)("/theorem/label"), consequentNodeQuery = (0, _query.nodeQuery)("/theorem/consequent!"), suppositionsNodeQuery = (0, _query.nodesQuery)("/theorem/supposition");
22
- function verifyTheorem(theoremNode, fileContext) {
23
- var theoremVerified = false;
24
- var labelNodes = labelNodesQuery(theoremNode), labelsString = fileContext.nodesAsString(labelNodes);
25
- fileContext.trace("Verifying the '".concat(labelsString, "' theorem..."), theoremNode);
26
- var labels = [], labelsVerified = verifyLabels(labelNodes, labels, fileContext);
27
- if (labelsVerified) {
28
- var localContext = _local.default.fromFileContext(fileContext), suppositions = [], suppositionNodes = suppositionsNodeQuery(theoremNode), suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
29
- if (suppositionsVerified) {
30
- var consequents = [], consequentNode = consequentNodeQuery(theoremNode), consequentVerified = verifyConsequent(consequentNode, consequents, localContext);
31
- if (consequentVerified) {
32
- var proofNode = proofNodeQuery(theoremNode), firstConsequent = (0, _array.first)(consequents), consequent = firstConsequent, statementNode = consequent.getStatementNode(), substitutions = _substitutions.default.fromNothing(), proofVerified = verifyProof(proofNode, statementNode, substitutions, localContext);
33
- if (proofVerified) {
34
- var substitutions1 = _substitutions.default.fromNothing(), theorem = _theorem.default.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions1, fileContext);
35
- fileContext.addTheorem(theorem);
36
- theoremVerified = true;
37
- }
38
- }
39
- }
40
- }
41
- if (theoremVerified) {
42
- fileContext.debug("...verified the '".concat(labelsString, "' theorem."), theoremNode);
43
- }
44
- return theoremVerified;
45
- }
46
-
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFRoZW9yZW0gZnJvbSBcIi4uL3RoZW9yZW1cIjtcbi8vIGltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgU3Vic3RpdHV0aW9ucyBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uc1wiO1xuLy8gaW1wb3J0IHZlcmlmeUNvbnNlcXVlbnQgZnJvbSBcIi4uL3ZlcmlmeS9jb25zZXF1ZW50XCI7XG4vLyBpbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb25zIGZyb20gXCIuLi92ZXJpZnkvc3VwcG9zaXRpb25zXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtL3Byb29mIVwiKSxcbiAgICAgIGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGhlb3JlbS9jb25zZXF1ZW50IVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdGhlb3JlbS9zdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VGhlb3JlbSh0aGVvcmVtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHRoZW9yZW1WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIHRoZW9yZW0uLi5gLCB0aGVvcmVtTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkodGhlb3JlbU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb25zKHN1cHBvc2l0aW9uTm9kZXMsIHN1cHBvc2l0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVudHMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbnROb2RlID0gY29uc2VxdWVudE5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW50VmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW50KGNvbnNlcXVlbnROb2RlLCBjb25zZXF1ZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBwcm9vZk5vZGUgPSBwcm9vZk5vZGVRdWVyeSh0aGVvcmVtTm9kZSksXG4gICAgICAgICAgICAgIGZpcnN0Q29uc2VxdWVudCA9IGZpcnN0KGNvbnNlcXVlbnRzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVudCA9IGZpcnN0Q29uc2VxdWVudCwgLy8vXG4gICAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBjb25zZXF1ZW50LmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgICAgcHJvb2ZWZXJpZmllZCA9IHZlcmlmeVByb29mKHByb29mTm9kZSwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAocHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgICAgICAgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0NvbnNlcXVlbnRTdWJzdGl0dXRpb25zQW5kRmlsZUNvbnRleHQobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG5cbiAgICAgICAgICB0aGVvcmVtVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoZW9yZW1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgdGhlb3JlbS5gLCB0aGVvcmVtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdGhlb3JlbVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVRoZW9yZW0iLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGUiLCJmaWxlQ29udGV4dCIsInRoZW9yZW1WZXJpZmllZCIsImxhYmVsTm9kZXMiLCJsYWJlbHNTdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwidHJhY2UiLCJsYWJlbHMiLCJsYWJlbHNWZXJpZmllZCIsInZlcmlmeUxhYmVscyIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9ucyIsImNvbnNlcXVlbnRzIiwiY29uc2VxdWVudE5vZGUiLCJjb25zZXF1ZW50VmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW50IiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW50IiwiZmlyc3QiLCJjb25zZXF1ZW50Iiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzdWJzdGl0dXRpb25zIiwiU3Vic3RpdHV0aW9ucyIsImZyb21Ob3RoaW5nIiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwidGhlb3JlbSIsIlRoZW9yZW0iLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVudFN1YnN0aXR1dGlvbnNBbmRGaWxlQ29udGV4dCIsImFkZFRoZW9yZW0iLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7OERBZko7NERBRUs7b0VBQ0M7cUJBSUo7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLG1CQUM3QkMsc0JBQXNCSCxJQUFBQSxnQkFBUyxFQUFDLHlCQUNoQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGNBQWNPLFdBQVcsRUFBRUMsV0FBVztJQUM1RCxJQUFJQyxrQkFBa0I7SUFFdEIsSUFBTUMsYUFBYVAsZ0JBQWdCSSxjQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRjtJQUUvQ0YsWUFBWUssS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJGLGNBQWEsaUJBQWVKO0lBRWhFLElBQU1PLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLGFBQWFOLFlBQVlJLFFBQVFOO0lBRXhELElBQUlPLGdCQUFnQjtRQUNsQixJQUFNRSxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ1gsY0FDNUNZLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CZixzQkFBc0JDLGNBQ3pDZSx1QkFBdUJDLG1CQUFtQkYsa0JBQWtCRCxjQUFjSDtRQUVoRixJQUFJSyxzQkFBc0I7WUFDeEIsSUFBTUUsY0FBYyxFQUFFLEVBQ2hCQyxpQkFBaUJwQixvQkFBb0JFLGNBQ3JDbUIscUJBQXFCQyxpQkFBaUJGLGdCQUFnQkQsYUFBYVA7WUFFekUsSUFBSVMsb0JBQW9CO2dCQUN0QixJQUFNRSxZQUFZM0IsZUFBZU0sY0FDM0JzQixrQkFBa0JDLElBQUFBLFlBQUssRUFBQ04sY0FDeEJPLGFBQWFGLGlCQUNiRyxnQkFBZ0JELFdBQVdFLGdCQUFnQixJQUMzQ0MsZ0JBQWdCQyxzQkFBYSxDQUFDQyxXQUFXLElBQ3pDQyxnQkFBZ0JDLFlBQVlWLFdBQVdJLGVBQWVFLGVBQWVqQjtnQkFFM0UsSUFBSW9CLGVBQWU7b0JBQ2pCLElBQU1ILGlCQUFnQkMsc0JBQWEsQ0FBQ0MsV0FBVyxJQUN6Q0csVUFBVUMsZ0JBQU8sQ0FBQ0MsMkRBQTJELENBQUMzQixRQUFRTSxjQUFjVyxZQUFZRyxnQkFBZTFCO29CQUVySUEsWUFBWWtDLFVBQVUsQ0FBQ0g7b0JBRXZCOUIsa0JBQWtCO2dCQUNwQjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLGlCQUFpQjtRQUNuQkQsWUFBWW1DLEtBQUssQ0FBQyxBQUFDLG9CQUFnQyxPQUFiaEMsY0FBYSxlQUFhSjtJQUNsRTtJQUVBLE9BQU9FO0FBQ1QifQ==
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- import TermForVariableSubstitution from "../substitution/termForVariable";
4
-
5
- import { variableFromTermNode } from "../utilities/unify";
6
-
7
- export default function unifyVariableWithTerm(variableNodeA, termNodeB, substitutions, localContextA, localContextB) {
8
- let variableUnifiedWithTerm = false;
9
-
10
- const substitution = substitutions.findSubstitutionByVariableNode(variableNodeA);
11
-
12
- if (substitution !== null) {
13
- const termNodeMatches = substitution.matchTermNode(termNodeB);
14
-
15
- if (termNodeMatches) {
16
- variableUnifiedWithTerm = true;
17
- }
18
- } else {
19
- const variableA = localContextA.findVariableByVariableNode(variableNodeA),
20
- variableB = variableFromTermNode(termNodeB, localContextB);
21
-
22
- if (variableA === variableB) {
23
- variableUnifiedWithTerm = true;
24
- } else {
25
- const termNode = termNodeB, ///
26
- variableNode = variableNodeA, ///
27
- termForVariableSubstitution = TermForVariableSubstitution.fromTernNodeAndVariableNode(termNode, variableNode, localContextA, localContextB),
28
- substitution = termForVariableSubstitution; ///
29
-
30
- substitutions.addSubstitution(substitution, localContextA, localContextB);
31
-
32
- variableUnifiedWithTerm = true;
33
- }
34
- }
35
-
36
- return variableUnifiedWithTerm;
37
- }
@@ -1,139 +0,0 @@
1
- "use strict";
2
-
3
- import Variable from "../../variable";
4
- // import verifyTerm from "../../verify/term";
5
- import VariableAssignment from "../../assignment/variable";
6
-
7
- import { first } from "../../utilities/array";
8
- import { nodeQuery } from "../../utilities/query";
9
-
10
- const termNodeQuery = nodeQuery("/typeAssertion/term!"),
11
- typeNodeQuery = nodeQuery("/typeAssertion/type!"),
12
- variableNodeQuery = nodeQuery("/term/variable!");
13
-
14
- const verifyTypeAssertionFunctions = [
15
- verifyDerivedTypeAssertion,
16
- verifyStatedTypeAssertion
17
- ];
18
-
19
- export default function verifyTypeAssertion(typeAssertionNode, assignments, stated, localContext) {
20
- let typeAssertionVerified;
21
-
22
- const typeAssertionString = localContext.nodeAsString(typeAssertionNode);
23
-
24
- localContext.trace(`Verifying the '${typeAssertionString}' type assertion...`, typeAssertionNode);
25
-
26
- typeAssertionVerified = verifyTypeAssertionFunctions.some((verifyTypeAssertionFunction) => {
27
- const typeAssertionVerified = verifyTypeAssertionFunction(typeAssertionNode, assignments, stated, localContext);
28
-
29
- if (typeAssertionVerified) {
30
- return true;
31
- }
32
- });
33
-
34
- if (typeAssertionVerified) {
35
- localContext.debug(`...verified the '${typeAssertionString}' type assertion.`, typeAssertionNode);
36
- }
37
-
38
- return typeAssertionVerified;
39
- }
40
-
41
- function verifyDerivedTypeAssertion(typeAssertionNode, assignments, stated, localContext) {
42
- let derivedTypeAssertionVerified = false;
43
-
44
- if (!stated) {
45
- const typeAssertionString = localContext.nodeAsString(typeAssertionNode);
46
-
47
- localContext.trace(`Verifying the '${typeAssertionString}' derived type assertion...`, typeAssertionNode);
48
-
49
- const typeNode = typeNodeQuery(typeAssertionNode),
50
- type = localContext.findTypeByTypeNode(typeNode);
51
-
52
- if (type === null) {
53
- const typeString = localContext.nodeAsString(typeNode);
54
-
55
- localContext.debug(`The '${typeString}' type is not present.`, typeNode);
56
- }
57
-
58
- const terms = [],
59
- termNode = termNodeQuery(typeAssertionNode),
60
- termVerified = verifyTerm(termNode, terms, localContext, () => {
61
- let verifiedAhead = false;
62
-
63
- const firstTerm = first(terms),
64
- term = firstTerm, ///
65
- termType = localContext.getTermType(term),
66
- typeEqualToOrSuperTypeOfTermType = type.isEqualToOrSuperTypeOf(termType);
67
-
68
- if (typeEqualToOrSuperTypeOfTermType) {
69
- verifiedAhead = true;
70
- }
71
-
72
- return verifiedAhead;
73
- });
74
-
75
- derivedTypeAssertionVerified = termVerified; ///
76
-
77
- if (derivedTypeAssertionVerified) {
78
- localContext.debug(`...verified the '${typeAssertionString}' derived type assertion.`, typeAssertionNode);
79
- }
80
- }
81
-
82
- return derivedTypeAssertionVerified;
83
- }
84
-
85
- function verifyStatedTypeAssertion(typeAssertionNode, assignments, stated, localContext) {
86
- let statedTypeAssertionVerified = false;
87
-
88
- if (stated) {
89
- const typeAssertionString = localContext.nodeAsString(typeAssertionNode);
90
-
91
- localContext.trace(`Verifying the '${typeAssertionString}' stated type assertion...`, typeAssertionNode);
92
-
93
- const typeNode = typeNodeQuery(typeAssertionNode),
94
- type = localContext.findTypeByTypeNode(typeNode);
95
-
96
- if (type === null) {
97
- const typeString = localContext.nodeAsString(typeNode);
98
-
99
- localContext.debug(`The '${typeString}' type is not present.`, typeNode);
100
- } else {
101
- const terms = [],
102
- termNode = termNodeQuery(typeAssertionNode),
103
- termVerified = verifyTerm(termNode, terms, localContext, () => {
104
- let verifiedAhead = false;
105
-
106
- const firstTerm = first(terms),
107
- term = firstTerm, ///
108
- termType = term.getType(),
109
- typeEqualToOrSubTypeOfTermType = type.isEqualToOrSubTypeOf(termType);
110
-
111
- if (typeEqualToOrSubTypeOfTermType) {
112
- const variableNode = variableNodeQuery(termNode);
113
-
114
- if (variableNode !== null) {
115
- if (assignments !== null) {
116
- const variable = Variable.fromVariableNodeAndType(variableNode, type),
117
- variableAssignment = VariableAssignment.fromVariable(variable),
118
- assignment = variableAssignment; ///
119
-
120
- assignments.push(assignment);
121
- }
122
- }
123
-
124
- verifiedAhead = true;
125
- }
126
-
127
- return verifiedAhead;
128
- });
129
-
130
- statedTypeAssertionVerified = termVerified; ///
131
- }
132
-
133
- if (statedTypeAssertionVerified) {
134
- localContext.debug(`...verified the '${typeAssertionString}' stated type assertion.`, typeAssertionNode);
135
- }
136
- }
137
-
138
- return statedTypeAssertionVerified;
139
- }
@@ -1,70 +0,0 @@
1
- "use strict";
2
-
3
- import Lemma from "../lemma";
4
- // import verifyProof from "../verify/proof";
5
- import LocalContext from "../context/local";
6
- import Substitutions from "../substitutions";
7
- // import verifyConsequent from "../verify/consequent";
8
- // import verifySuppositions from "../verify/suppositions";
9
-
10
- import { first } from "../utilities/array";
11
- import { EMPTY_STRING } from "../constants";
12
- import { nodeQuery, nodesQuery } from "../utilities/query";
13
-
14
- const proofNodeQuery = nodeQuery("/lemma/proof!"),
15
- labelNodesQuery = nodesQuery("/lemma/label"),
16
- consequentNodeQuery = nodeQuery("/lemma/consequent!"),
17
- suppositionsNodeQuery = nodesQuery("/lemma/supposition");
18
-
19
- export default function verifyLemma(lemmaNode, fileContext) {
20
- let lemmaVerified = false;
21
-
22
- const labelNodes = labelNodesQuery(lemmaNode),
23
- labelsString = fileContext.nodesAsString(labelNodes);
24
-
25
- (labelsString === EMPTY_STRING) ?
26
- fileContext.trace(`Verifying a lemma...`, lemmaNode) :
27
- fileContext.trace(`Verifying the '${labelsString}' lemma...`, lemmaNode);
28
-
29
- const labels = [],
30
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
31
-
32
- if (labelsVerified) {
33
- const localContext = LocalContext.fromFileContext(fileContext),
34
- suppositions = [],
35
- suppositionNodes = suppositionsNodeQuery(lemmaNode),
36
- suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
37
-
38
- if (suppositionsVerified) {
39
- const consequents = [],
40
- consequentNode = consequentNodeQuery(lemmaNode),
41
- consequentVerified = verifyConsequent(consequentNode, consequents, localContext);
42
-
43
- if (consequentVerified) {
44
- const proofNode = proofNodeQuery(lemmaNode),
45
- firstConsequent = first(consequents),
46
- consequent = firstConsequent, ///
47
- statementNode = consequent.getStatementNode(),
48
- substitutions = Substitutions.fromNothing(),
49
- proofVerified = verifyProof(proofNode, statementNode, substitutions, localContext);
50
-
51
- if (proofVerified) {
52
- const substitutions = Substitutions.fromNothing(),
53
- lemma = Lemma.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext);
54
-
55
- fileContext.addLemma(lemma);
56
-
57
- lemmaVerified = true;
58
- }
59
- }
60
- }
61
- }
62
-
63
- if (lemmaVerified) {
64
- (labelsString === EMPTY_STRING) ?
65
- fileContext.debug(`...verified the lemma.`, lemmaNode) :
66
- fileContext.debug(`...verified the '${labelsString}' lemma.`, lemmaNode);
67
- }
68
-
69
- return lemmaVerified;
70
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- import Theorem from "../theorem";
4
- // import verifyProof from "../verify/proof";
5
- import LocalContext from "../context/local";
6
- import Substitutions from "../substitutions";
7
- // import verifyConsequent from "../verify/consequent";
8
- // import verifySuppositions from "../verify/suppositions";
9
-
10
- import { first } from "../utilities/array";
11
- import { nodeQuery, nodesQuery } from "../utilities/query";
12
-
13
- const proofNodeQuery = nodeQuery("/theorem/proof!"),
14
- labelNodesQuery = nodesQuery("/theorem/label"),
15
- consequentNodeQuery = nodeQuery("/theorem/consequent!"),
16
- suppositionsNodeQuery = nodesQuery("/theorem/supposition");
17
-
18
- export default function verifyTheorem(theoremNode, fileContext) {
19
- let theoremVerified = false;
20
-
21
- const labelNodes = labelNodesQuery(theoremNode),
22
- labelsString = fileContext.nodesAsString(labelNodes);
23
-
24
- fileContext.trace(`Verifying the '${labelsString}' theorem...`, theoremNode);
25
-
26
- const labels = [],
27
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
28
-
29
- if (labelsVerified) {
30
- const localContext = LocalContext.fromFileContext(fileContext),
31
- suppositions = [],
32
- suppositionNodes = suppositionsNodeQuery(theoremNode),
33
- suppositionsVerified = verifySuppositions(suppositionNodes, suppositions, localContext);
34
-
35
- if (suppositionsVerified) {
36
- const consequents = [],
37
- consequentNode = consequentNodeQuery(theoremNode),
38
- consequentVerified = verifyConsequent(consequentNode, consequents, localContext);
39
-
40
- if (consequentVerified) {
41
- const proofNode = proofNodeQuery(theoremNode),
42
- firstConsequent = first(consequents),
43
- consequent = firstConsequent, ///
44
- statementNode = consequent.getStatementNode(),
45
- substitutions = Substitutions.fromNothing(),
46
- proofVerified = verifyProof(proofNode, statementNode, substitutions, localContext);
47
-
48
- if (proofVerified) {
49
- const substitutions = Substitutions.fromNothing(),
50
- theorem = Theorem.fromLabelsSuppositionsConsequentSubstitutionsAndFileContext(labels, suppositions, consequent, substitutions, fileContext);
51
-
52
- fileContext.addTheorem(theorem);
53
-
54
- theoremVerified = true;
55
- }
56
- }
57
- }
58
- }
59
-
60
- if (theoremVerified) {
61
- fileContext.debug(`...verified the '${labelsString}' theorem.`, theoremNode);
62
- }
63
-
64
- return theoremVerified;
65
- }