occam-verify-cli 0.0.923 → 0.0.924
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.
- package/lib/axiom.js +9 -9
- package/lib/conjecture.js +9 -9
- package/lib/constants.js +1 -9
- package/lib/context/file.js +3 -3
- package/lib/context/local.js +5 -5
- package/lib/lemma.js +9 -9
- package/lib/metaLemma.js +7 -7
- package/lib/metatheorem.js +7 -7
- package/lib/metavariable.js +8 -1
- package/lib/theorem.js +9 -9
- package/lib/topLevelAssertion.js +186 -0
- package/lib/verify/axiom.js +4 -4
- package/lib/verify/conjecture.js +4 -4
- package/lib/verify/containedAssertion.js +91 -0
- package/lib/verify/declaration.js +2 -2
- package/lib/verify/definedAssertion.js +115 -0
- package/lib/verify/derivation.js +7 -7
- package/lib/verify/frame.js +2 -2
- package/lib/verify/judgement.js +2 -2
- package/lib/verify/lemma.js +5 -5
- package/lib/verify/metaLemma.js +4 -4
- package/lib/verify/metastatement.js +4 -23
- package/lib/verify/metatheorem.js +4 -4
- package/lib/verify/metavariable.js +2 -2
- package/lib/verify/proof.js +3 -3
- package/lib/verify/proofStep.js +4 -4
- package/lib/verify/rule.js +3 -3
- package/lib/verify/statement/qualified.js +18 -21
- package/lib/verify/statement/unqualified.js +38 -10
- package/lib/verify/statement.js +85 -92
- package/lib/verify/subDerivation.js +3 -3
- package/lib/verify/subproof.js +3 -3
- package/lib/verify/termAsConstructor.js +2 -2
- package/lib/verify/theorem.js +4 -4
- package/package.json +2 -2
- package/src/axiom.js +4 -4
- package/src/conjecture.js +4 -4
- package/src/constants.js +0 -2
- package/src/context/file.js +2 -2
- package/src/context/local.js +4 -3
- package/src/lemma.js +4 -4
- package/src/metaLemma.js +4 -4
- package/src/metatheorem.js +4 -4
- package/src/metavariable.js +6 -0
- package/src/theorem.js +4 -4
- package/src/{metaLemmaMetatheorem.js → topLevelAssertion.js} +16 -26
- package/src/verify/axiom.js +5 -4
- package/src/verify/conjecture.js +5 -4
- package/src/verify/{statementAsContainedAssertion.js → containedAssertion.js} +20 -36
- package/src/verify/declaration.js +1 -1
- package/src/verify/{statementAsDefinedAssertion.js → definedAssertion.js} +22 -37
- package/src/verify/derivation.js +6 -6
- package/src/verify/frame.js +1 -1
- package/src/verify/judgement.js +1 -1
- package/src/verify/lemma.js +8 -5
- package/src/verify/metaLemma.js +4 -4
- package/src/verify/metastatement.js +3 -31
- package/src/verify/metatheorem.js +4 -4
- package/src/verify/metavariable.js +1 -1
- package/src/verify/proof.js +2 -2
- package/src/verify/proofStep.js +3 -3
- package/src/verify/rule.js +4 -4
- package/src/verify/statement/qualified.js +33 -32
- package/src/verify/statement/unqualified.js +52 -10
- package/src/verify/statement.js +133 -39
- package/src/verify/subDerivation.js +2 -2
- package/src/verify/subproof.js +2 -2
- package/src/verify/termAsConstructor.js +2 -2
- package/src/verify/theorem.js +7 -4
- package/lib/axiomLemmaTheoremConjecture.js +0 -174
- package/lib/metaLemmaMetatheorem.js +0 -191
- package/lib/verify/statementAsContainedAssertion.js +0 -109
- package/lib/verify/statementAsDefinedAssertion.js +0 -132
- package/src/axiomLemmaTheoremConjecture.js +0 -165
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
default: function() {
|
|
13
|
-
return verifyStatementAsDefinedAssertion;
|
|
14
|
-
},
|
|
15
|
-
isStatementDefinedAssertion: function() {
|
|
16
|
-
return isStatementDefinedAssertion;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var _term = /*#__PURE__*/ _interop_require_default(require("./term"));
|
|
20
|
-
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/node/metaLevel"));
|
|
21
|
-
var _array = require("../utilities/array");
|
|
22
|
-
var _constants = require("../constants");
|
|
23
|
-
var _verify = require("../utilities/verify");
|
|
24
|
-
var _query = require("../utilities/query");
|
|
25
|
-
function _interop_require_default(obj) {
|
|
26
|
-
return obj && obj.__esModule ? obj : {
|
|
27
|
-
default: obj
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
var termNodeQuery = (0, _query.nodeQuery)("/statement/term!"), variableNodeQuery = (0, _query.nodeQuery)("/statement/term/variable!"), operatorTerminalNodesQuery = (0, _query.nodesQuery)("/statement/@operator");
|
|
31
|
-
function verifyStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
|
|
32
|
-
var statementVerifiedAsDefinedAssertion = false;
|
|
33
|
-
var statementDefinedAssertion = isStatementDefinedAssertion(statementNode);
|
|
34
|
-
if (statementDefinedAssertion) {
|
|
35
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
36
|
-
localContext.trace("Verifying the '".concat(statementString, "' statement as a defined assertion..."), statementNode);
|
|
37
|
-
var definedAssertionFunctions = [
|
|
38
|
-
verifyDerivedStatementAsDefinedAssertion,
|
|
39
|
-
verifyStatedStatementAsDefinedAssertion
|
|
40
|
-
];
|
|
41
|
-
statementVerifiedAsDefinedAssertion = definedAssertionFunctions.some(function(definedAssertionFunction) {
|
|
42
|
-
var statementVerifiedAsDefinedAssertion = definedAssertionFunction(statementNode, assignments, derived, localContext);
|
|
43
|
-
if (statementVerifiedAsDefinedAssertion) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
if (statementVerifiedAsDefinedAssertion) {
|
|
48
|
-
localContext.debug("...verified the '".concat(statementString, "' statement as a defined assertion."), statementNode);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return statementVerifiedAsDefinedAssertion;
|
|
52
|
-
}
|
|
53
|
-
function verifyDerivedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
|
|
54
|
-
var derivedStatementVerifiedAsDefeindAssertion = false;
|
|
55
|
-
if (derived) {
|
|
56
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
57
|
-
localContext.trace("Verifying the derived '".concat(statementString, "' statement as a defined assertion..."), statementNode);
|
|
58
|
-
var statementNegated = (0, _verify.isStatementNegated)(statementNode), variableNode = variableNodeQuery(statementNode), termNode = termNodeQuery(statementNode);
|
|
59
|
-
if (false) {
|
|
60
|
-
///
|
|
61
|
-
} else if (variableNode !== null) {
|
|
62
|
-
var variable = localContext.findVariableByVariableNode(variableNode);
|
|
63
|
-
if (variable !== null) {
|
|
64
|
-
var variableDefined = localContext.isVariableDefined(variable);
|
|
65
|
-
if (!statementNegated) {
|
|
66
|
-
if (variableDefined) {
|
|
67
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (statementNegated) {
|
|
71
|
-
if (!variableDefined) {
|
|
72
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
} else if (termNode !== null) {
|
|
77
|
-
var terms = [], termVerified = (0, _term.default)(termNode, terms, localContext, function() {
|
|
78
|
-
var verifiedAhead = true;
|
|
79
|
-
return verifiedAhead;
|
|
80
|
-
});
|
|
81
|
-
if (termVerified) {
|
|
82
|
-
var firstTerm = (0, _array.first)(terms), term = firstTerm, termGrounded = localContext.isTermGrounded(term);
|
|
83
|
-
if (!statementNegated) {
|
|
84
|
-
if (termGrounded) {
|
|
85
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (statementNegated) {
|
|
89
|
-
if (!termGrounded) {
|
|
90
|
-
derivedStatementVerifiedAsDefeindAssertion = true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (derivedStatementVerifiedAsDefeindAssertion) {
|
|
96
|
-
localContext.debug("...verified the derived '".concat(statementString, "' statement as a defined assertion."), statementNode);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return derivedStatementVerifiedAsDefeindAssertion;
|
|
100
|
-
}
|
|
101
|
-
function verifyStatedStatementAsDefinedAssertion(statementNode, assignments, derived, localContext) {
|
|
102
|
-
var statedStatementVerifiedAsDefinedAssertion = false;
|
|
103
|
-
if (!derived) {
|
|
104
|
-
var statementString = localContext.nodeAsString(statementNode);
|
|
105
|
-
localContext.trace("Verifying the stated '".concat(statementString, "' statement as a defined assertion..."), statementNode);
|
|
106
|
-
var intrinsicLevel = localContext.isIntrinsicLevel();
|
|
107
|
-
if (intrinsicLevel) {
|
|
108
|
-
localContext.debug("The stated '".concat(statementString, "' statement as a defined assertion cannot be verified at intrinsic level."), statementNode);
|
|
109
|
-
} else {
|
|
110
|
-
var nonTerminalNode = statementNode, nonTerminalNodeVerified = _metaLevel.default.verifyNonTerminalNode(nonTerminalNode, localContext, function() {
|
|
111
|
-
var verifiedAhead = true;
|
|
112
|
-
return verifiedAhead;
|
|
113
|
-
});
|
|
114
|
-
statedStatementVerifiedAsDefinedAssertion = nonTerminalNodeVerified; ///
|
|
115
|
-
}
|
|
116
|
-
if (statedStatementVerifiedAsDefinedAssertion) {
|
|
117
|
-
localContext.debug("...verified the stated '".concat(statementString, "' statement as a defined assertion."), statementNode);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return statedStatementVerifiedAsDefinedAssertion;
|
|
121
|
-
}
|
|
122
|
-
function isStatementDefinedAssertion(statementNode) {
|
|
123
|
-
var operatorTerminalNodes = operatorTerminalNodesQuery(statementNode), statementDefinedAssertion = operatorTerminalNodes.some(function(operatorTerminalNode) {
|
|
124
|
-
var content = operatorTerminalNode.getContent(), contentDefined = content === _constants.DEFINED;
|
|
125
|
-
if (contentDefined) {
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
return statementDefinedAssertion;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi90ZXJtXCI7XG5pbXBvcnQgbWV0YUxldmVsTm9kZVZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci9ub2RlL21ldGFMZXZlbFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRklORUQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpc1N0YXRlbWVudE5lZ2F0ZWQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90ZXJtIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIG9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9zdGF0ZW1lbnQvQG9wZXJhdG9yXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uID0gaXNTdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICAgIHZlcmlmeURlcml2ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgICB2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb25cbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKGRlZmluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBkZXJpdmVkICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROZWdhdGVkID0gaXNTdGF0ZW1lbnROZWdhdGVkKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZURlZmluZWQgPSBsb2NhbENvbnRleHQuaXNWYXJpYWJsZURlZmluZWQodmFyaWFibGUpO1xuXG4gICAgICAgIGlmICghc3RhdGVtZW50TmVnYXRlZCkge1xuICAgICAgICAgIGlmICh2YXJpYWJsZURlZmluZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudE5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoIXZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgICAgZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgICAgdGVybVZlcmlmaWVkID0gdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAodGVybVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgICAgdGVybSA9IGZpcnN0VGVybSwgLy8vXG4gICAgICAgICAgICAgIHRlcm1Hcm91bmRlZCA9IGxvY2FsQ29udGV4dC5pc1Rlcm1Hcm91bmRlZCh0ZXJtKTtcblxuICAgICAgICBpZiAoIXN0YXRlbWVudE5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAodGVybUdyb3VuZGVkKSB7XG4gICAgICAgICAgICBkZXJpdmVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmVpbmRBc3NlcnRpb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZW1lbnROZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKCF0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWRTdGF0ZW1lbnRWZXJpZmllZEFzRGVmZWluZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgZGVyaXZlZCAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlIHN0YXRlZCAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgaW50cmluc2ljTGV2ZWwgPSBsb2NhbENvbnRleHQuaXNJbnRyaW5zaWNMZXZlbCgpO1xuXG4gICAgaWYgKGludHJpbnNpY0xldmVsKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24gY2Fubm90IGJlIHZlcmlmaWVkIGF0IGludHJpbnNpYyBsZXZlbC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFMZXZlbE5vZGVWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgc3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3Qgb3BlcmF0b3JUZXJtaW5hbE5vZGVzID0gb3BlcmF0b3JUZXJtaW5hbE5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudERlZmluZWRBc3NlcnRpb24gPSBvcGVyYXRvclRlcm1pbmFsTm9kZXMuc29tZSgob3BlcmF0b3JUZXJtaW5hbE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gb3BlcmF0b3JUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICAgIGNvbnRlbnREZWZpbmVkID0gKGNvbnRlbnQgPT09IERFRklORUQpO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnREZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBzdGF0ZW1lbnREZWZpbmVkQXNzZXJ0aW9uO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsImlzU3RhdGVtZW50RGVmaW5lZEFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm9wZXJhdG9yVGVybWluYWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudERlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImRlZmluZWRBc3NlcnRpb25GdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwic29tZSIsImRlZmluZWRBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZFN0YXRlbWVudFZlcmlmaWVkQXNEZWZlaW5kQXNzZXJ0aW9uIiwic3RhdGVtZW50TmVnYXRlZCIsImlzU3RhdGVtZW50TmVnYXRlZCIsInZhcmlhYmxlTm9kZSIsInRlcm1Ob2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRGVmaW5lZCIsImlzVmFyaWFibGVEZWZpbmVkIiwidGVybXMiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwidmVyaWZpZWRBaGVhZCIsImZpcnN0VGVybSIsImZpcnN0IiwidGVybSIsInRlcm1Hcm91bmRlZCIsImlzVGVybUdyb3VuZGVkIiwic3RhdGVkU3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJpbnRyaW5zaWNMZXZlbCIsImlzSW50cmluc2ljTGV2ZWwiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm1ldGFMZXZlbE5vZGVWZXJpZmllciIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm9wZXJhdG9yVGVybWluYWxOb2RlcyIsIm9wZXJhdG9yVGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJjb250ZW50RGVmaW5lZCIsIkRFRklORUQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWNBLE9BNkJDO2VBN0J1QkE7O0lBaUlSQywyQkFBMkI7ZUFBM0JBOzs7MkRBN0lPO2dFQUNXO3FCQUVaO3lCQUNFO3NCQUNXO3FCQUNHOzs7Ozs7QUFFdEMsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHFCQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM5QkUsNkJBQTZCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRS9CLFNBQVNOLGtDQUFrQ08sYUFBYSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN6RyxJQUFJQyxzQ0FBc0M7SUFFMUMsSUFBTUMsNEJBQTRCWCw0QkFBNEJNO0lBRTlELElBQUlLLDJCQUEyQjtRQUM3QixJQUFNQyxrQkFBa0JILGFBQWFJLFlBQVksQ0FBQ1A7UUFFbERHLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLDBDQUF3Q047UUFFN0YsSUFBTVMsNEJBQTRCO1lBQ2hDQztZQUNBQztTQUNEO1FBRURQLHNDQUFzQ0ssMEJBQTBCRyxJQUFJLENBQUMsU0FBQ0M7WUFDcEUsSUFBTVQsc0NBQXNDUyx5QkFBeUJiLGVBQWVDLGFBQWFDLFNBQVNDO1lBRTFHLElBQUlDLHFDQUFxQztnQkFDdkMsT0FBTztZQUNUO1FBQ0Y7UUFFQSxJQUFJQSxxQ0FBcUM7WUFDdkNELGFBQWFXLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQlIsaUJBQWdCLHdDQUFzQ047UUFDL0Y7SUFDRjtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxTQUFTTSx5Q0FBeUNWLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDakcsSUFBSVksNkNBQTZDO0lBRWpELElBQUliLFNBQVM7UUFDWCxJQUFNSSxrQkFBa0JILGFBQWFJLFlBQVksQ0FBQ1A7UUFFbERHLGFBQWFLLEtBQUssQ0FBQyxBQUFDLDBCQUF5QyxPQUFoQkYsaUJBQWdCLDBDQUF3Q047UUFFckcsSUFBTWdCLG1CQUFtQkMsSUFBQUEsMEJBQWtCLEVBQUNqQixnQkFDdENrQixlQUFlckIsa0JBQWtCRyxnQkFDakNtQixXQUFXeEIsY0FBY0s7UUFFL0IsSUFBSSxPQUFPO1FBQ1QsR0FBRztRQUNMLE9BQU8sSUFBSWtCLGlCQUFpQixNQUFNO1lBQ2hDLElBQU1FLFdBQVdqQixhQUFha0IsMEJBQTBCLENBQUNIO1lBRXpELElBQUlFLGFBQWEsTUFBTTtnQkFDckIsSUFBTUUsa0JBQWtCbkIsYUFBYW9CLGlCQUFpQixDQUFDSDtnQkFFdkQsSUFBSSxDQUFDSixrQkFBa0I7b0JBQ3JCLElBQUlNLGlCQUFpQjt3QkFDbkJQLDZDQUE2QztvQkFDL0M7Z0JBQ0Y7Z0JBRUEsSUFBSUMsa0JBQWtCO29CQUNwQixJQUFJLENBQUNNLGlCQUFpQjt3QkFDcEJQLDZDQUE2QztvQkFDL0M7Z0JBQ0Y7WUFDRjtRQUNGLE9BQU8sSUFBSUksYUFBYSxNQUFNO1lBQzVCLElBQU1LLFFBQVEsRUFBRSxFQUNWQyxlQUFlQyxJQUFBQSxhQUFVLEVBQUNQLFVBQVVLLE9BQU9yQixjQUFjO2dCQUN2RCxJQUFNd0IsZ0JBQWdCO2dCQUV0QixPQUFPQTtZQUNUO1lBRU4sSUFBSUYsY0FBYztnQkFDaEIsSUFBTUcsWUFBWUMsSUFBQUEsWUFBSyxFQUFDTCxRQUNsQk0sT0FBT0YsV0FDUEcsZUFBZTVCLGFBQWE2QixjQUFjLENBQUNGO2dCQUVqRCxJQUFJLENBQUNkLGtCQUFrQjtvQkFDckIsSUFBSWUsY0FBYzt3QkFDaEJoQiw2Q0FBNkM7b0JBQy9DO2dCQUNGO2dCQUVBLElBQUlDLGtCQUFrQjtvQkFDcEIsSUFBSSxDQUFDZSxjQUFjO3dCQUNqQmhCLDZDQUE2QztvQkFDL0M7Z0JBQ0Y7WUFDRjtRQUNGO1FBRUEsSUFBSUEsNENBQTRDO1lBQzlDWixhQUFhVyxLQUFLLENBQUMsQUFBQyw0QkFBMkMsT0FBaEJSLGlCQUFnQix3Q0FBc0NOO1FBQ3ZHO0lBQ0Y7SUFFQSxPQUFPZTtBQUNUO0FBRUEsU0FBU0osd0NBQXdDWCxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ2hHLElBQUk4Qiw0Q0FBNEM7SUFFaEQsSUFBSSxDQUFDL0IsU0FBUztRQUNaLElBQU1JLGtCQUFrQkgsYUFBYUksWUFBWSxDQUFDUDtRQUVsREcsYUFBYUssS0FBSyxDQUFDLEFBQUMseUJBQXdDLE9BQWhCRixpQkFBZ0IsMENBQXdDTjtRQUVwRyxJQUFNa0MsaUJBQWlCL0IsYUFBYWdDLGdCQUFnQjtRQUVwRCxJQUFJRCxnQkFBZ0I7WUFDbEIvQixhQUFhVyxLQUFLLENBQUMsQUFBQyxlQUE4QixPQUFoQlIsaUJBQWdCLDhFQUE0RU47UUFDaEksT0FBTztZQUNMLElBQU1vQyxrQkFBa0JwQyxlQUNsQnFDLDBCQUEwQkMsa0JBQXFCLENBQUNDLHFCQUFxQixDQUFDSCxpQkFBaUJqQyxjQUFjO2dCQUNuRyxJQUFNd0IsZ0JBQWdCO2dCQUV0QixPQUFPQTtZQUNUO1lBRU5NLDRDQUE0Q0kseUJBQXlCLEdBQUc7UUFDMUU7UUFFQSxJQUFJSiwyQ0FBMkM7WUFDN0M5QixhQUFhVyxLQUFLLENBQUMsQUFBQywyQkFBMEMsT0FBaEJSLGlCQUFnQix3Q0FBc0NOO1FBQ3RHO0lBQ0Y7SUFFQSxPQUFPaUM7QUFDVDtBQUVPLFNBQVN2Qyw0QkFBNEJNLGFBQWE7SUFDdkQsSUFBTXdDLHdCQUF3QjFDLDJCQUEyQkUsZ0JBQ25ESyw0QkFBNEJtQyxzQkFBc0I1QixJQUFJLENBQUMsU0FBQzZCO1FBQ3RELElBQU1DLFVBQVVELHFCQUFxQkUsVUFBVSxJQUN6Q0MsaUJBQWtCRixZQUFZRyxrQkFBTztRQUUzQyxJQUFJRCxnQkFBZ0I7WUFDbEIsT0FBTztRQUNUO0lBQ0Y7SUFFTixPQUFPdkM7QUFDVCJ9
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import Label from "./label";
|
|
4
|
-
import Consequent from "./consequent";
|
|
5
|
-
import Supposition from "./supposition";
|
|
6
|
-
import LocalContext from "./context/local";
|
|
7
|
-
|
|
8
|
-
import { reverse, correlate } from "./utilities/array";
|
|
9
|
-
|
|
10
|
-
export default class AxiomLemmaTheoremConjecture {
|
|
11
|
-
constructor(labels, suppositions, consequent, localContext) {
|
|
12
|
-
this.labels = labels;
|
|
13
|
-
this.suppositions = suppositions;
|
|
14
|
-
this.consequent = consequent;
|
|
15
|
-
this.localContext = localContext;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getLabels() {
|
|
19
|
-
return this.labels;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getSuppositions() {
|
|
23
|
-
return this.suppositions;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
getConsequent() {
|
|
27
|
-
return this.consequent;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
getLocalContext() {
|
|
31
|
-
return this.localContext;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
matchStatement(statementNode, localContext) {
|
|
35
|
-
let statementNatches = false;
|
|
36
|
-
|
|
37
|
-
const proofSteps = localContext.getProofSteps(),
|
|
38
|
-
substitutions = [],
|
|
39
|
-
suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.localContext, localContext);
|
|
40
|
-
|
|
41
|
-
if (suppositionsMatch) {
|
|
42
|
-
const consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, localContext);
|
|
43
|
-
|
|
44
|
-
statementNatches = consequentMatches; ///
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return statementNatches;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
matchMetavariableNode(metavariableNode) {
|
|
51
|
-
const matchesMetavariableNode = this.labels.some((label) => {
|
|
52
|
-
const labelMatchesMetavariableNode = label.matchMetavariableNode(metavariableNode);
|
|
53
|
-
|
|
54
|
-
if (labelMatchesMetavariableNode) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
return matchesMetavariableNode;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
toJSON(tokens) {
|
|
63
|
-
const labelsJSON = this.labels.map((label) => {
|
|
64
|
-
const labelJSON = label.toJSON(tokens);
|
|
65
|
-
|
|
66
|
-
return labelJSON;
|
|
67
|
-
}),
|
|
68
|
-
suppositionsJSON = this.suppositions.map((supposition) => {
|
|
69
|
-
const suppositionJSON = supposition.toJSON(tokens);
|
|
70
|
-
|
|
71
|
-
return suppositionJSON;
|
|
72
|
-
}),
|
|
73
|
-
consequentJSON = this.consequent.toJSON(tokens),
|
|
74
|
-
localContextJSON = this.localContext.toJSON(tokens),
|
|
75
|
-
labels = labelsJSON, ///
|
|
76
|
-
suppositions = suppositionsJSON, ///
|
|
77
|
-
consequent = consequentJSON, ///
|
|
78
|
-
localContext = localContextJSON, ///
|
|
79
|
-
json = {
|
|
80
|
-
labels,
|
|
81
|
-
suppositions,
|
|
82
|
-
consequent,
|
|
83
|
-
localContext
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
return json;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
static fromJSONAndFileContext(Class, json, fileContext) {
|
|
90
|
-
let { labels } = json;
|
|
91
|
-
|
|
92
|
-
const labelsJSON = labels; ///
|
|
93
|
-
|
|
94
|
-
labels = labelsJSON.map((labelJSON) => {
|
|
95
|
-
const json = labelJSON, ///
|
|
96
|
-
label = Label.fromJSONAndFileContext(json, fileContext);
|
|
97
|
-
|
|
98
|
-
return label;
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
let { suppositions, consequent, localContext } = json;
|
|
102
|
-
|
|
103
|
-
const suppositionsJSON = suppositions; ///
|
|
104
|
-
|
|
105
|
-
suppositions = suppositionsJSON.map((suppositionJSON) => {
|
|
106
|
-
const json = suppositionJSON, ///
|
|
107
|
-
supposition = Supposition.fromJSONAndFileContext(json, fileContext);
|
|
108
|
-
|
|
109
|
-
return supposition;
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
const consequentJSON = consequent; ///
|
|
113
|
-
|
|
114
|
-
json = consequentJSON; ///
|
|
115
|
-
|
|
116
|
-
consequent = Consequent.fromJSONAndFileContext(json, fileContext);
|
|
117
|
-
|
|
118
|
-
const localContextJSON = localContext; ///
|
|
119
|
-
|
|
120
|
-
json = localContextJSON; ///
|
|
121
|
-
|
|
122
|
-
localContext = LocalContext.fromJSONAndFileContext(json, fileContext);
|
|
123
|
-
|
|
124
|
-
return new Class(labels, suppositions, consequent, localContext); ///
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
static fromLabelsSuppositionsConsequentAndLocalContext(Class, labels, suppositions, consequent, localContext) { return new Class(labels, suppositions, consequent, localContext); }
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function matchSuppositions(suppositions, proofSteps, substitutions, localContext, statementLocalContext) {
|
|
131
|
-
suppositions = reverse(suppositions); ///
|
|
132
|
-
|
|
133
|
-
proofSteps = reverse(proofSteps); ///
|
|
134
|
-
|
|
135
|
-
const suppositionsMatch = correlate(suppositions, proofSteps, (supposition, proofStep) => {
|
|
136
|
-
const suppositionMatches = matchSupposition(supposition, proofStep, substitutions, localContext, statementLocalContext);
|
|
137
|
-
|
|
138
|
-
if (suppositionMatches) {
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
return suppositionsMatch;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
function matchSupposition(supposition, proofStep, substitutions, localContext, statementLocalContext) {
|
|
147
|
-
let suppositionMatches = false;
|
|
148
|
-
|
|
149
|
-
const statementNode = proofStep.getStatementNode();
|
|
150
|
-
|
|
151
|
-
if (statementNode !== null) {
|
|
152
|
-
const suppositionMatchesStatementNode = supposition.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext);
|
|
153
|
-
|
|
154
|
-
suppositionMatches = suppositionMatchesStatementNode; ///
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return suppositionMatches;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function matchConsequent(consequent, statementNode, substitutions, localContext, statementLocalContext) {
|
|
161
|
-
const consequentMatchesStatementNode = consequent.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext),
|
|
162
|
-
consequentMatches = consequentMatchesStatementNode; ///
|
|
163
|
-
|
|
164
|
-
return consequentMatches;
|
|
165
|
-
}
|