occam-verify-cli 0.0.527 → 0.0.529
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/README.md +4 -0
- package/bin/abbreviations.js +5 -1
- package/bin/action/help.js +4 -0
- package/bin/action/verify.js +35 -13
- package/bin/actions.js +11 -6
- package/bin/defaults.js +4 -0
- package/bin/options.js +4 -0
- package/bin/utilities/releaseContext.js +5 -7
- package/lib/axiom.js +3 -3
- package/lib/axiomLemmaTheoremConjecture.js +5 -5
- package/lib/combinator.js +4 -3
- package/lib/conclusion.js +8 -7
- package/lib/conjecture.js +3 -3
- package/lib/consequence.js +6 -5
- package/lib/constants.js +8 -12
- package/lib/constructor.js +5 -4
- package/lib/context/file.js +13 -35
- package/lib/context/metaproof.js +12 -11
- package/lib/context/proof.js +11 -10
- package/lib/context/release/directory.js +6 -6
- package/lib/context/release/file.js +15 -26
- package/lib/context/release.js +32 -51
- package/lib/equality.js +5 -4
- package/lib/index.js +4 -4
- package/lib/label.js +4 -3
- package/lib/lemma.js +3 -3
- package/lib/log.js +146 -0
- package/lib/matcher.js +14 -23
- package/lib/metaTypeNames.js +13 -0
- package/lib/mixins/logging.js +13 -13
- package/lib/node/metastatement/bracketed.js +16 -0
- package/lib/node/statement/bracketed.js +16 -0
- package/lib/node/statement/combinator/bracketed.js +17 -0
- package/lib/node/statement/combinator/equality.js +17 -0
- package/lib/node/statement/equality.js +16 -0
- package/lib/ocmbinator/bracketed.js +3 -4
- package/lib/ocmbinator/equality.js +3 -4
- package/lib/premise.js +10 -9
- package/lib/rule.js +5 -5
- package/lib/step/metaproof.js +28 -25
- package/lib/step/proof.js +15 -14
- package/lib/substitution/metastatementForMetavariable.js +16 -13
- package/lib/substitution/statementForMetavariable.js +17 -18
- package/lib/substitution/termForVariable.js +8 -18
- package/lib/supposition.js +7 -6
- package/lib/theorem.js +3 -3
- package/lib/type.js +5 -5
- package/lib/utilities/metaproof.js +60 -0
- package/lib/utilities/node.js +56 -0
- package/lib/utilities/proof.js +60 -0
- package/lib/utilities/releaseContext.js +24 -12
- package/lib/utilities/string.js +1 -32
- package/lib/{matcher → verifier}/metastatementForMetavariable/conclusion.js +12 -12
- package/lib/{matcher → verifier}/metastatementForMetavariable/premise.js +12 -12
- package/lib/verifier/metastatementForMetavariable.js +198 -0
- package/lib/{matcher → verifier}/statementForMetavariable/conclusion.js +12 -12
- package/lib/{matcher → verifier}/statementForMetavariable/premise.js +12 -12
- package/lib/verifier/statementForMetavariable.js +203 -0
- package/lib/{matcher → verifier}/termForVariable/consequence.js +12 -12
- package/lib/{matcher → verifier}/termForVariable/supposition.js +12 -12
- package/lib/verifier/termForVariable.js +198 -0
- package/lib/verifier.js +92 -0
- package/lib/verify/assertion/type.js +6 -8
- package/lib/verify/axiom.js +3 -5
- package/lib/verify/conclusion.js +2 -4
- package/lib/verify/conjecture.js +3 -5
- package/lib/verify/consequence.js +2 -4
- package/lib/verify/declaration/combinator.js +1 -3
- package/lib/verify/declaration/constructor.js +1 -3
- package/lib/verify/declaration/topLevel.js +1 -3
- package/lib/verify/declaration/type.js +1 -3
- package/lib/verify/declaration/variable.js +1 -3
- package/lib/verify/derivation.js +1 -5
- package/lib/verify/label.js +1 -3
- package/lib/verify/lemma.js +3 -5
- package/lib/verify/metastatement/qualified.js +2 -4
- package/lib/verify/metastatement/unqualified.js +2 -4
- package/lib/verify/metastatement.js +1 -3
- package/lib/verify/premise.js +2 -4
- package/lib/verify/proof.js +3 -5
- package/lib/verify/rule.js +3 -5
- package/lib/verify/ruleDerivation.js +1 -5
- package/lib/verify/ruleProof.js +3 -5
- package/lib/verify/statement/qualified.js +2 -4
- package/lib/verify/statement/unqualified.js +2 -4
- package/lib/verify/statement.js +14 -17
- package/lib/verify/statementAsCombinator.js +4 -6
- package/lib/verify/supposition.js +2 -4
- package/lib/verify/term.js +4 -10
- package/lib/verify/termAsConstructor.js +6 -9
- package/lib/verify/theorem.js +3 -5
- package/lib/verify/type.js +5 -9
- package/lib/verify/variable.js +5 -9
- package/package.json +1 -1
- package/src/axiom.js +1 -1
- package/src/axiomLemmaTheoremConjecture.js +4 -4
- package/src/combinator.js +3 -3
- package/src/conclusion.js +7 -7
- package/src/conjecture.js +1 -1
- package/src/consequence.js +5 -5
- package/src/constants.js +2 -3
- package/src/constructor.js +4 -4
- package/src/context/file.js +6 -30
- package/src/context/metaproof.js +13 -10
- package/src/context/proof.js +11 -9
- package/src/context/release/directory.js +7 -7
- package/src/context/release/file.js +17 -32
- package/src/context/release.js +23 -32
- package/src/equality.js +6 -8
- package/src/index.js +2 -1
- package/src/label.js +3 -3
- package/src/lemma.js +1 -1
- package/src/log.js +116 -0
- package/src/matcher.js +11 -9
- package/src/metaTypeNames.js +3 -0
- package/src/mixins/logging.js +6 -6
- package/src/node/metastatement/bracketed.js +9 -0
- package/src/node/statement/bracketed.js +9 -0
- package/src/node/statement/combinator/bracketed.js +10 -0
- package/src/node/statement/combinator/equality.js +11 -0
- package/src/node/statement/equality.js +10 -0
- package/src/ocmbinator/bracketed.js +2 -5
- package/src/ocmbinator/equality.js +2 -5
- package/src/premise.js +9 -9
- package/src/rule.js +4 -4
- package/src/step/metaproof.js +32 -29
- package/src/step/proof.js +15 -14
- package/src/substitution/metastatementForMetavariable.js +10 -15
- package/src/substitution/statementForMetavariable.js +12 -24
- package/src/substitution/termForVariable.js +2 -30
- package/src/supposition.js +6 -6
- package/src/theorem.js +1 -1
- package/src/type.js +4 -4
- package/src/utilities/metaproof.js +62 -0
- package/src/utilities/node.js +73 -0
- package/src/utilities/proof.js +62 -0
- package/src/utilities/releaseContext.js +30 -12
- package/src/utilities/string.js +0 -47
- package/src/verifier/metastatementForMetavariable/conclusion.js +9 -0
- package/src/verifier/metastatementForMetavariable/premise.js +9 -0
- package/src/{matcher → verifier}/metastatementForMetavariable.js +2 -2
- package/src/verifier/statementForMetavariable/conclusion.js +9 -0
- package/src/verifier/statementForMetavariable/premise.js +9 -0
- package/src/{matcher → verifier}/statementForMetavariable.js +2 -2
- package/src/verifier/termForVariable/consequence.js +9 -0
- package/src/verifier/termForVariable/supposition.js +9 -0
- package/src/{matcher → verifier}/termForVariable.js +2 -2
- package/src/verifier.js +74 -0
- package/src/verify/assertion/type.js +5 -11
- package/src/verify/axiom.js +2 -8
- package/src/verify/conclusion.js +1 -7
- package/src/verify/conjecture.js +2 -8
- package/src/verify/consequence.js +1 -7
- package/src/verify/declaration/combinator.js +0 -6
- package/src/verify/declaration/constructor.js +0 -6
- package/src/verify/declaration/topLevel.js +0 -6
- package/src/verify/declaration/type.js +0 -6
- package/src/verify/declaration/variable.js +0 -6
- package/src/verify/derivation.js +0 -12
- package/src/verify/label.js +0 -6
- package/src/verify/lemma.js +4 -10
- package/src/verify/metastatement/qualified.js +1 -7
- package/src/verify/metastatement/unqualified.js +1 -7
- package/src/verify/metastatement.js +0 -6
- package/src/verify/premise.js +1 -7
- package/src/verify/proof.js +1 -7
- package/src/verify/rule.js +2 -8
- package/src/verify/ruleDerivation.js +0 -12
- package/src/verify/ruleProof.js +1 -7
- package/src/verify/statement/qualified.js +1 -7
- package/src/verify/statement/unqualified.js +1 -7
- package/src/verify/statement.js +24 -34
- package/src/verify/statementAsCombinator.js +3 -9
- package/src/verify/supposition.js +1 -7
- package/src/verify/term.js +3 -21
- package/src/verify/termAsConstructor.js +5 -13
- package/src/verify/theorem.js +2 -8
- package/src/verify/type.js +4 -13
- package/src/verify/variable.js +4 -13
- package/bin/callbacks.js +0 -48
- package/lib/callbacks.js +0 -75
- package/lib/context/release/combinator.js +0 -64
- package/lib/matcher/metastatementForMetavariable.js +0 -198
- package/lib/matcher/statementForMetavariable.js +0 -203
- package/lib/matcher/termForVariable.js +0 -198
- package/lib/mixins/callbacks.js +0 -27
- package/lib/utilities/substitution.js +0 -60
- package/src/callbacks.js +0 -39
- package/src/context/release/combinator.js +0 -39
- package/src/matcher/metastatementForMetavariable/conclusion.js +0 -9
- package/src/matcher/metastatementForMetavariable/premise.js +0 -9
- package/src/matcher/statementForMetavariable/conclusion.js +0 -9
- package/src/matcher/statementForMetavariable/premise.js +0 -9
- package/src/matcher/termForVariable/consequence.js +0 -9
- package/src/matcher/termForVariable/supposition.js +0 -9
- package/src/mixins/callbacks.js +0 -15
- package/src/utilities/substitution.js +0 -81
package/lib/verify/type.js
CHANGED
|
@@ -17,12 +17,9 @@ function _interopRequireDefault(obj) {
|
|
|
17
17
|
}
|
|
18
18
|
function verifyType(typeNode, superTypeNode, fileContext) {
|
|
19
19
|
var typeVerified = false;
|
|
20
|
-
fileContext.
|
|
21
|
-
var typeString = fileContext.nodeAsString(typeNode);
|
|
22
|
-
fileContext.debug("Verifying the '".concat(typeString, "' type..."));
|
|
23
|
-
var typeName = (0, _query.typeNameFromTypeNode)(typeNode), typePresent = fileContext.isTypePresentByTypeName(typeName);
|
|
20
|
+
var typeName = (0, _query.typeNameFromTypeNode)(typeNode), typeString = fileContext.nodeAsString(typeNode), typePresent = fileContext.isTypePresentByTypeName(typeName);
|
|
24
21
|
if (typePresent) {
|
|
25
|
-
fileContext.error("The type '".concat(typeName, "' is already present."));
|
|
22
|
+
fileContext.error("The type '".concat(typeName, "' is already present."), typeNode);
|
|
26
23
|
} else {
|
|
27
24
|
var type;
|
|
28
25
|
var superTypeName = (0, _query.typeNameFromTypeNode)(superTypeNode);
|
|
@@ -31,7 +28,7 @@ function verifyType(typeNode, superTypeNode, fileContext) {
|
|
|
31
28
|
} else {
|
|
32
29
|
var superType = fileContext.findTypeByTypeName(superTypeName);
|
|
33
30
|
if (superType === null) {
|
|
34
|
-
fileContext.error("The super-type '".concat(superTypeName, "' is
|
|
31
|
+
fileContext.error("The super-type '".concat(superTypeName, "' is not present."), typeNode);
|
|
35
32
|
} else {
|
|
36
33
|
type = _type.default.fromTypeNameAndSuperType(typeName, superType);
|
|
37
34
|
}
|
|
@@ -42,10 +39,9 @@ function verifyType(typeNode, superTypeNode, fileContext) {
|
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
if (typeVerified) {
|
|
45
|
-
fileContext.info("Verified the '".concat(typeString, "' type."));
|
|
42
|
+
fileContext.info("Verified the '".concat(typeString, "' type."), typeNode);
|
|
46
43
|
}
|
|
47
|
-
typeVerified ? fileContext.complete(typeNode) : fileContext.halt(typeNode);
|
|
48
44
|
return typeVerified;
|
|
49
45
|
}
|
|
50
46
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4uL3R5cGVcIjtcblxuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGUodHlwZU5vZGUsIHN1cGVyVHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSksXG4gICAgICAgIHR5cGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICh0eXBlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgdHlwZSAnJHt0eXBlTmFtZX0nIGlzIGFscmVhZHkgcHJlc2VudC5gLCB0eXBlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBjb25zdCBzdXBlclR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUoc3VwZXJUeXBlTm9kZSk7XG5cbiAgICBpZiAoc3VwZXJUeXBlTmFtZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lKHR5cGVOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHN1cGVyVHlwZU5hbWUpO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgc3VwZXItdHlwZSAnJHtzdXBlclR5cGVOYW1lfScgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlKHR5cGVOYW1lLCBzdXBlclR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICBmaWxlQ29udGV4dC5hZGRUeXBlKHR5cGUpO1xuXG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCwgdHlwZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlIiwidHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJlcnJvciIsInR5cGUiLCJzdXBlclR5cGVOYW1lIiwiVHlwZSIsImZyb21UeXBlTmFtZSIsInN1cGVyVHlwZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsImZyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSIsImFkZFR5cGUiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7O3lEQUpQO3FCQUVvQjs7Ozs7O0FBRXRCLFNBQVNBLFdBQVdDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxXQUFXLEVBQUU7SUFDdkUsSUFBSUMsZUFBZSxLQUFLO0lBRXhCLElBQU1DLFdBQVdDLElBQUFBLDJCQUFvQixFQUFDTCxXQUNoQ00sYUFBYUosWUFBWUssWUFBWSxDQUFDUCxXQUN0Q1EsY0FBY04sWUFBWU8sdUJBQXVCLENBQUNMO0lBRXhELElBQUlJLGFBQWE7UUFDZk4sWUFBWVEsS0FBSyxDQUFDLEFBQUMsYUFBcUIsT0FBVE4sVUFBUywwQkFBd0JKO0lBQ2xFLE9BQU87UUFDTCxJQUFJVztRQUVKLElBQU1DLGdCQUFnQlAsSUFBQUEsMkJBQW9CLEVBQUNKO1FBRTNDLElBQUlXLGtCQUFrQixJQUFJLEVBQUU7WUFDMUJELE9BQU9FLGFBQUksQ0FBQ0MsWUFBWSxDQUFDVjtRQUMzQixPQUFPO1lBQ0wsSUFBTVcsWUFBWWIsWUFBWWMsa0JBQWtCLENBQUNKO1lBRWpELElBQUlHLGNBQWMsSUFBSSxFQUFFO2dCQUN0QmIsWUFBWVEsS0FBSyxDQUFDLEFBQUMsbUJBQWdDLE9BQWRFLGVBQWMsc0JBQW9CWjtZQUN6RSxPQUFPO2dCQUNMVyxPQUFPRSxhQUFJLENBQUNJLHdCQUF3QixDQUFDYixVQUFVVztZQUNqRCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUlKLFNBQVMsSUFBSSxFQUFFO1lBQ2pCVCxZQUFZZ0IsT0FBTyxDQUFDUDtZQUVwQlIsZUFBZSxJQUFJO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsY0FBYztRQUNoQkQsWUFBWWlCLElBQUksQ0FBQyxBQUFDLGlCQUEyQixPQUFYYixZQUFXLFlBQVVOO0lBQ3pELENBQUM7SUFFRCxPQUFPRztBQUNUIn0=
|
package/lib/verify/variable.js
CHANGED
|
@@ -18,12 +18,9 @@ function _interopRequireDefault(obj) {
|
|
|
18
18
|
}
|
|
19
19
|
function verifyVariable(variableNode, typeNode, fileContext) {
|
|
20
20
|
var variableVerified = false;
|
|
21
|
-
fileContext.
|
|
22
|
-
var variableString = fileContext.nodeAsString(variableNode);
|
|
23
|
-
fileContext.debug("Verifying the '".concat(variableString, "' variable..."));
|
|
24
|
-
var variableName = (0, _query.variableNameFromVariableNode)(variableNode), variablePresent = fileContext.isVariablePresentByVariableName(variableName);
|
|
21
|
+
var variableName = (0, _query.variableNameFromVariableNode)(variableNode), variableString = fileContext.nodeAsString(variableNode), variablePresent = fileContext.isVariablePresentByVariableName(variableName);
|
|
25
22
|
if (variablePresent) {
|
|
26
|
-
fileContext.error("The variable '".concat(variableName, "' is already present."));
|
|
23
|
+
fileContext.error("The variable '".concat(variableName, "' is already present."), variableNode);
|
|
27
24
|
} else {
|
|
28
25
|
var variable;
|
|
29
26
|
var typeName = (0, _query.typeNameFromTypeNode)(typeNode);
|
|
@@ -33,7 +30,7 @@ function verifyVariable(variableNode, typeNode, fileContext) {
|
|
|
33
30
|
} else {
|
|
34
31
|
var type1 = fileContext.findTypeByTypeName(typeName);
|
|
35
32
|
if (type1 === null) {
|
|
36
|
-
fileContext.error("The '".concat(variableName, "' variable's '").concat(typeName, "' type is
|
|
33
|
+
fileContext.error("The '".concat(variableName, "' variable's '").concat(typeName, "' type is not present."), variableNode);
|
|
37
34
|
} else {
|
|
38
35
|
var name1 = variableName; ///
|
|
39
36
|
variable = _variable.default.fromTypeAndName(type1, name1);
|
|
@@ -45,10 +42,9 @@ function verifyVariable(variableNode, typeNode, fileContext) {
|
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
if (variableVerified) {
|
|
48
|
-
fileContext.info("Verified the '".concat(variableString, "' variable."));
|
|
45
|
+
fileContext.info("Verified the '".concat(variableString, "' variable."), variableNode);
|
|
49
46
|
}
|
|
50
|
-
variableVerified ? fileContext.complete(variableNode) : fileContext.halt(variableNode);
|
|
51
47
|
return variableVerified;
|
|
52
48
|
}
|
|
53
49
|
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSwgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSB2YXJpYWJsZSAnJHt2YXJpYWJsZU5hbWV9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgdmFyaWFibGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcbiAgICBcbiAgICBpZiAodHlwZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBvYmplY3RUeXBlLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZTsgIC8vL1xuXG4gICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gLCB2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VmFyaWFibGUiLCJ2YXJpYWJsZU5vZGUiLCJ0eXBlTm9kZSIsImZpbGVDb250ZXh0IiwidmFyaWFibGVWZXJpZmllZCIsInZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJlcnJvciIsInZhcmlhYmxlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJvYmplY3RUeXBlIiwibmFtZSIsIlZhcmlhYmxlIiwiZnJvbVR5cGVBbmROYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwiYWRkVmFyaWFibGUiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7OzZEQUxIO29CQUVNO3FCQUN3Qzs7Ozs7O0FBRXBELFNBQVNBLGVBQWVDLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUU7SUFDMUUsSUFBSUMsbUJBQW1CLEtBQUs7SUFFNUIsSUFBTUMsZUFBZUMsSUFBQUEsbUNBQTRCLEVBQUNMLGVBQzVDTSxpQkFBaUJKLFlBQVlLLFlBQVksQ0FBQ1AsZUFDMUNRLGtCQUFrQk4sWUFBWU8sK0JBQStCLENBQUNMO0lBRXBFLElBQUlJLGlCQUFpQjtRQUNuQk4sWUFBWVEsS0FBSyxDQUFDLEFBQUMsaUJBQTZCLE9BQWJOLGNBQWEsMEJBQXdCSjtJQUMxRSxPQUFPO1FBQ0wsSUFBSVc7UUFFSixJQUFNQyxXQUFXQyxJQUFBQSwyQkFBb0IsRUFBQ1o7UUFFdEMsSUFBSVcsYUFBYSxJQUFJLEVBQUU7WUFDckIsSUFBTUUsT0FBT0MsZ0JBQVUsRUFDakJDLE9BQU9aLGNBQWUsR0FBRztZQUUvQk8sV0FBV00saUJBQVEsQ0FBQ0MsZUFBZSxDQUFDSixNQUFNRTtRQUM1QyxPQUFPO1lBQ0wsSUFBTUYsUUFBT1osWUFBWWlCLGtCQUFrQixDQUFDUDtZQUU1QyxJQUFJRSxVQUFTLElBQUksRUFBRTtnQkFDakJaLFlBQVlRLEtBQUssQ0FBQyxBQUFDLFFBQW9DRSxPQUE3QlIsY0FBYSxrQkFBeUIsT0FBVFEsVUFBUywyQkFBeUJaO1lBQzNGLE9BQU87Z0JBQ0wsSUFBTWdCLFFBQU9aLGNBQWUsR0FBRztnQkFFL0JPLFdBQVdNLGlCQUFRLENBQUNDLGVBQWUsQ0FBQ0osT0FBTUU7WUFDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJTCxhQUFhLElBQUksRUFBRTtZQUNyQlQsWUFBWWtCLFdBQVcsQ0FBQ1Q7WUFFeEJSLG1CQUFtQixJQUFJO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsa0JBQWtCO1FBQ3BCRCxZQUFZbUIsSUFBSSxDQUFDLEFBQUMsaUJBQStCLE9BQWZmLGdCQUFlLGdCQUFjTjtJQUNqRSxDQUFDO0lBRUQsT0FBT0c7QUFDVCJ9
|
package/package.json
CHANGED
package/src/axiom.js
CHANGED
|
@@ -7,7 +7,7 @@ import { AXIOM_KIND } from "./kinds";
|
|
|
7
7
|
export default class Axiom extends AxiomLemmaTheoremConjecture {
|
|
8
8
|
static kind = AXIOM_KIND;
|
|
9
9
|
|
|
10
|
-
static fromJSON(json,
|
|
10
|
+
static fromJSON(json, lexer, parser) { return AxiomLemmaTheoremConjecture.fromJSON(Axiom, json, lexer, parser); }
|
|
11
11
|
|
|
12
12
|
static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Axiom, labels, suppositions, consequence); }
|
|
13
13
|
}
|
|
@@ -90,14 +90,14 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
90
90
|
return json;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
static fromJSON(Class, json,
|
|
93
|
+
static fromJSON(Class, json, lexer, parser) {
|
|
94
94
|
let { labels } = json;
|
|
95
95
|
|
|
96
96
|
const labelsJSON = labels; ///
|
|
97
97
|
|
|
98
98
|
labels = labelsJSON.map((labelJSON) => {
|
|
99
99
|
const json = labelJSON, ///
|
|
100
|
-
label = Label.fromJSON(json,
|
|
100
|
+
label = Label.fromJSON(json, lexer, parser);
|
|
101
101
|
|
|
102
102
|
return label;
|
|
103
103
|
});
|
|
@@ -108,7 +108,7 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
108
108
|
|
|
109
109
|
suppositions = suppositionsJSON.map((suppositionJSON) => {
|
|
110
110
|
const json = suppositionJSON, ///
|
|
111
|
-
supposition = Supposition.fromJSON(json,
|
|
111
|
+
supposition = Supposition.fromJSON(json, lexer, parser);
|
|
112
112
|
|
|
113
113
|
return supposition;
|
|
114
114
|
});
|
|
@@ -119,7 +119,7 @@ export default class AxiomLemmaTheoremConjecture {
|
|
|
119
119
|
|
|
120
120
|
json = consequenceJSON; ///
|
|
121
121
|
|
|
122
|
-
consequence = Consequence.fromJSON(json,
|
|
122
|
+
consequence = Consequence.fromJSON(json, lexer, parser);
|
|
123
123
|
|
|
124
124
|
return new Class(labels, suppositions, consequence); ///
|
|
125
125
|
}
|
package/src/combinator.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { nodeAsString } from "./utilities/string";
|
|
4
4
|
import { COMBINATOR_KIND } from "./kinds";
|
|
5
|
-
import { statementNodeFromStatementString } from "./utilities/
|
|
5
|
+
import { statementNodeFromStatementString } from "./utilities/node";
|
|
6
6
|
|
|
7
7
|
export default class Combinator {
|
|
8
8
|
constructor(statementNode) {
|
|
@@ -35,10 +35,10 @@ export default class Combinator {
|
|
|
35
35
|
return json;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
static fromJSON(json,
|
|
38
|
+
static fromJSON(json, lexer, parser) {
|
|
39
39
|
const { statement } = json,
|
|
40
40
|
statementString = statement, ///
|
|
41
|
-
statementNode = statementNodeFromStatementString(statementString,
|
|
41
|
+
statementNode = statementNodeFromStatementString(statementString, lexer, parser),
|
|
42
42
|
combinator = new Combinator(statementNode);
|
|
43
43
|
|
|
44
44
|
return combinator;
|
package/src/conclusion.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { nodeAsString } from "./utilities/string";
|
|
4
|
-
import { metastatementNodeFromMetastatementString } from "./utilities/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { metastatementNodeFromMetastatementString } from "./utilities/node";
|
|
5
|
+
import { conclusionStatementForMetavariableVerifier } from "./verifier/statementForMetavariable/conclusion";
|
|
6
|
+
import { conclusionMetastatementForMetavariableVerifier } from "./verifier/metastatementForMetavariable/conclusion";
|
|
7
7
|
|
|
8
8
|
export default class Conclusion {
|
|
9
9
|
constructor(metastatementNode) {
|
|
@@ -17,7 +17,7 @@ export default class Conclusion {
|
|
|
17
17
|
matchStatementNode(statementNode, substitutions) {
|
|
18
18
|
const nonTerminalNodeA = this.metastatementNode, ///
|
|
19
19
|
nonTerminalNodeB = statementNode, ///
|
|
20
|
-
nonTerminalNodeMatches =
|
|
20
|
+
nonTerminalNodeMatches = conclusionStatementForMetavariableVerifier.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
|
|
21
21
|
statementNodeMatches = nonTerminalNodeMatches; ///
|
|
22
22
|
|
|
23
23
|
return statementNodeMatches;
|
|
@@ -26,7 +26,7 @@ export default class Conclusion {
|
|
|
26
26
|
matchMetastatementNode(metastatementNode, substitutions) {
|
|
27
27
|
const nonTerminalNodeA = this.metastatementNode, ///
|
|
28
28
|
nonTerminalNodeB = metastatementNode, ///
|
|
29
|
-
nonTerminalNodeMatches =
|
|
29
|
+
nonTerminalNodeMatches = conclusionMetastatementForMetavariableVerifier.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
|
|
30
30
|
metastatementNodeMatches = nonTerminalNodeMatches; ///
|
|
31
31
|
|
|
32
32
|
return metastatementNodeMatches;
|
|
@@ -42,10 +42,10 @@ export default class Conclusion {
|
|
|
42
42
|
return json;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
static fromJSON(json,
|
|
45
|
+
static fromJSON(json, lexer, parser) {
|
|
46
46
|
const { metastatement } = json,
|
|
47
47
|
metastatementString = metastatement, ///
|
|
48
|
-
metastatementNode = metastatementNodeFromMetastatementString(metastatementString,
|
|
48
|
+
metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
|
|
49
49
|
conclusion = new Conclusion(metastatementNode);
|
|
50
50
|
|
|
51
51
|
return conclusion;
|
package/src/conjecture.js
CHANGED
|
@@ -7,7 +7,7 @@ import { CONJECTURE_KIND } from "./kinds";
|
|
|
7
7
|
export default class Conjecture extends AxiomLemmaTheoremConjecture {
|
|
8
8
|
static kind = CONJECTURE_KIND;
|
|
9
9
|
|
|
10
|
-
static fromJSON(json,
|
|
10
|
+
static fromJSON(json, lexer, parser) { return AxiomLemmaTheoremConjecture.fromJSON(Conjecture, json, lexer, parser); }
|
|
11
11
|
|
|
12
12
|
static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Conjecture, labels, suppositions, consequence); }
|
|
13
13
|
}
|
package/src/consequence.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { nodeAsString } from "./utilities/string";
|
|
4
|
-
import { statementNodeFromStatementString } from "./utilities/
|
|
5
|
-
import {
|
|
4
|
+
import { statementNodeFromStatementString } from "./utilities/node";
|
|
5
|
+
import { consequenceTermForVariableVerifier } from "./verifier/termForVariable/consequence";
|
|
6
6
|
|
|
7
7
|
export default class Consequence {
|
|
8
8
|
constructor(statementNode) {
|
|
@@ -16,7 +16,7 @@ export default class Consequence {
|
|
|
16
16
|
matchStatementNode(statementNode, substitutions) {
|
|
17
17
|
const nonTerminalNodeA = this.statementNode, ///
|
|
18
18
|
nonTerminalNodeB = statementNode, ///
|
|
19
|
-
nonTerminalNodeMatches =
|
|
19
|
+
nonTerminalNodeMatches = consequenceTermForVariableVerifier.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
|
|
20
20
|
statementNodeMatches = nonTerminalNodeMatches; ///
|
|
21
21
|
|
|
22
22
|
return statementNodeMatches;
|
|
@@ -32,10 +32,10 @@ export default class Consequence {
|
|
|
32
32
|
return json;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
static fromJSON(json,
|
|
35
|
+
static fromJSON(json, lexer, parser) {
|
|
36
36
|
const { statement } = json,
|
|
37
37
|
statementString = statement, ///
|
|
38
|
-
statementNode = statementNodeFromStatementString(statementString,
|
|
38
|
+
statementNode = statementNodeFromStatementString(statementString, lexer, parser),
|
|
39
39
|
consequence = new Consequence(statementNode);
|
|
40
40
|
|
|
41
41
|
return consequence;
|
package/src/constants.js
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
export const COMMA = ',';
|
|
4
4
|
export const EMPTY_STRING = "";
|
|
5
|
-
export const LEFT_BRACKET = "(";
|
|
6
|
-
export const RIGHT_BRACKET = ")";
|
|
7
5
|
export const EQUALITY_DEPTH = 2;
|
|
8
6
|
export const MAXIMUM_INDEXES_LENGTH = 10;
|
|
7
|
+
export const BRACKETED_STATEMENT_DEPTH = 2;
|
|
9
8
|
export const MAXIMUM_PERMUTATION_LENGTH = 5;
|
|
10
|
-
export const
|
|
9
|
+
export const BRACKETED_METASTATEMENT_DEPTH = 1;
|
package/src/constructor.js
CHANGED
|
@@ -4,7 +4,7 @@ import Type from "./type";
|
|
|
4
4
|
|
|
5
5
|
import { nodeAsString } from "./utilities/string";
|
|
6
6
|
import { CONSTRUCTOR_KIND } from "./kinds";
|
|
7
|
-
import { termNodeFromTermString } from "./utilities/
|
|
7
|
+
import { termNodeFromTermString } from "./utilities/node";
|
|
8
8
|
|
|
9
9
|
export default class Constructor {
|
|
10
10
|
constructor(termNode, type) {
|
|
@@ -54,10 +54,10 @@ export default class Constructor {
|
|
|
54
54
|
return json;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
static fromJSON(json,
|
|
57
|
+
static fromJSON(json, lexer, parser) {
|
|
58
58
|
const { term } = json,
|
|
59
59
|
termString = term, ///
|
|
60
|
-
termNode = termNodeFromTermString(termString,
|
|
60
|
+
termNode = termNodeFromTermString(termString, lexer, parser);
|
|
61
61
|
|
|
62
62
|
let { type } = json;
|
|
63
63
|
|
|
@@ -66,7 +66,7 @@ export default class Constructor {
|
|
|
66
66
|
|
|
67
67
|
json = typeJSON; ///
|
|
68
68
|
|
|
69
|
-
type = Type.fromJSON(json,
|
|
69
|
+
type = Type.fromJSON(json, lexer, parser);
|
|
70
70
|
|
|
71
71
|
const typeName = type.getName();
|
|
72
72
|
|
package/src/context/file.js
CHANGED
|
@@ -4,7 +4,6 @@ import { rewriteNodes } from "occam-grammar-utilities";
|
|
|
4
4
|
|
|
5
5
|
import { push } from "../utilities/array";
|
|
6
6
|
import { nodeAsString, nodesAsString } from "../utilities/string";
|
|
7
|
-
import { leastLineIndexFromNodeAndTokens, greatestLineIndexFromNodeAndTokens } from "../utilities/tokens";
|
|
8
7
|
|
|
9
8
|
export default class FileContext {
|
|
10
9
|
constructor(releaseContext, filePath, tokens, node, types, rules, axioms, lemmas, theorems, conjectures, combinators, constructors, variables, metavariables) {
|
|
@@ -12,7 +11,6 @@ export default class FileContext {
|
|
|
12
11
|
this.filePath = filePath;
|
|
13
12
|
this.tokens = tokens;
|
|
14
13
|
this.node = node;
|
|
15
|
-
|
|
16
14
|
this.types = types;
|
|
17
15
|
this.rules = rules;
|
|
18
16
|
this.axioms = axioms;
|
|
@@ -21,7 +19,6 @@ export default class FileContext {
|
|
|
21
19
|
this.conjectures = conjectures;
|
|
22
20
|
this.combinators = combinators;
|
|
23
21
|
this.constructors = constructors;
|
|
24
|
-
|
|
25
22
|
this.variables = variables;
|
|
26
23
|
this.metavariables = metavariables;
|
|
27
24
|
}
|
|
@@ -392,38 +389,17 @@ export default class FileContext {
|
|
|
392
389
|
this.constructors.push(constructor);
|
|
393
390
|
}
|
|
394
391
|
|
|
395
|
-
trace(message) { this.releaseContext.trace(message); }
|
|
396
|
-
|
|
397
|
-
debug(message) { this.releaseContext.debug(message); }
|
|
392
|
+
trace(message, node) { this.releaseContext.trace(message, node, this.tokens, this.filePath); }
|
|
398
393
|
|
|
399
|
-
|
|
394
|
+
debug(message, node) { this.releaseContext.debug(message, node, this.tokens, this.filePath); }
|
|
400
395
|
|
|
401
|
-
|
|
396
|
+
info(message, node) { this.releaseContext.info(message, node, this.tokens, this.filePath); }
|
|
402
397
|
|
|
403
|
-
|
|
398
|
+
warning(message, node) { this.releaseContext.warning(message, node, this.tokens, this.filePath); }
|
|
404
399
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
halt(node) {
|
|
408
|
-
const leastLineIndex = leastLineIndexFromNodeAndTokens(node, this.tokens),
|
|
409
|
-
greatestLineIndex = greatestLineIndexFromNodeAndTokens(node, this.tokens);
|
|
410
|
-
|
|
411
|
-
this.releaseContext.halt(this.filePath, leastLineIndex, greatestLineIndex);
|
|
412
|
-
}
|
|
400
|
+
error(message, node) { this.releaseContext.error(message, node, this.tokens, this.filePath); }
|
|
413
401
|
|
|
414
|
-
|
|
415
|
-
const leastLineIndex = leastLineIndexFromNodeAndTokens(node, this.tokens),
|
|
416
|
-
greatestLineIndex = greatestLineIndexFromNodeAndTokens(node, this.tokens);
|
|
417
|
-
|
|
418
|
-
this.releaseContext.begin(this.filePath, leastLineIndex, greatestLineIndex);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
complete(node) {
|
|
422
|
-
const leastLineIndex = leastLineIndexFromNodeAndTokens(node, this.tokens),
|
|
423
|
-
greatestLineIndex = greatestLineIndexFromNodeAndTokens(node, this.tokens);
|
|
424
|
-
|
|
425
|
-
this.releaseContext.complete(this.filePath, leastLineIndex, greatestLineIndex);
|
|
426
|
-
}
|
|
402
|
+
fatal(message, node) { this.releaseContext.fatal(message, node, this.tokens, this.filePath); }
|
|
427
403
|
|
|
428
404
|
toJSON() {
|
|
429
405
|
const json = [];
|
package/src/context/metaproof.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import fileMixins from "../mixins/file";
|
|
4
4
|
import loggingMixins from "../mixins/logging";
|
|
5
|
-
import callbacksMixins from "../mixins/callbacks";
|
|
6
5
|
|
|
7
6
|
import { push, last } from "../utilities/array";
|
|
8
7
|
|
|
@@ -63,15 +62,19 @@ class MetaproofContext {
|
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
matchMetastatement(metastatementNode) {
|
|
66
|
-
let metastatementMatches;
|
|
65
|
+
let metastatementMatches = false;
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
if (!metastatementMatches) {
|
|
68
|
+
const proofStepMatchesMetastatement = this.metaproofSteps.some((metaproofStep) => {
|
|
69
|
+
const proofStepMatchesMetastatement = metaproofStep.match(metastatementNode);
|
|
70
|
+
|
|
71
|
+
if (proofStepMatchesMetastatement) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
70
75
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
});
|
|
76
|
+
metastatementMatches = proofStepMatchesMetastatement; ///
|
|
77
|
+
}
|
|
75
78
|
|
|
76
79
|
if (!metastatementMatches) {
|
|
77
80
|
metastatementMatches = this.context.matchMetastatement(metastatementNode);
|
|
@@ -103,8 +106,9 @@ class MetaproofContext {
|
|
|
103
106
|
|
|
104
107
|
static fromFileContext(fileContext) {
|
|
105
108
|
const context = fileContext, ///
|
|
109
|
+
metavariables = [],
|
|
106
110
|
metaproofSteps = [],
|
|
107
|
-
metaproofContext = new MetaproofContext(context, metaproofSteps);
|
|
111
|
+
metaproofContext = new MetaproofContext(context, metavariables, metaproofSteps);
|
|
108
112
|
|
|
109
113
|
return metaproofContext;
|
|
110
114
|
}
|
|
@@ -122,6 +126,5 @@ class MetaproofContext {
|
|
|
122
126
|
|
|
123
127
|
Object.assign(MetaproofContext.prototype, fileMixins);
|
|
124
128
|
Object.assign(MetaproofContext.prototype, loggingMixins);
|
|
125
|
-
Object.assign(MetaproofContext.prototype, callbacksMixins);
|
|
126
129
|
|
|
127
130
|
export default MetaproofContext;
|
package/src/context/proof.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import Equality from "../equality";
|
|
4
4
|
import fileMixins from "../mixins/file";
|
|
5
5
|
import loggingMixins from "../mixins/logging";
|
|
6
|
-
import callbacksMixins from "../mixins/callbacks";
|
|
7
6
|
|
|
8
7
|
import { push, last } from "../utilities/array";
|
|
9
8
|
import { MAXIMUM_INDEXES_LENGTH } from "../constants";
|
|
@@ -81,15 +80,19 @@ class ProofContext {
|
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
matchStatement(statementNode) {
|
|
84
|
-
let statementMatches;
|
|
83
|
+
let statementMatches = false;
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
if (!statementMatches) {
|
|
86
|
+
const proofStepMatchesStatement = this.proofSteps.some((proofStep) => {
|
|
87
|
+
const proofStepMatchesStatement = proofStep.match(statementNode);
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
if (proofStepMatchesStatement) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
statementMatches = proofStepMatchesStatement; ///
|
|
95
|
+
}
|
|
93
96
|
|
|
94
97
|
if (!statementMatches) {
|
|
95
98
|
statementMatches = this.context.matchStatement(statementNode);
|
|
@@ -141,7 +144,6 @@ class ProofContext {
|
|
|
141
144
|
|
|
142
145
|
Object.assign(ProofContext.prototype, fileMixins);
|
|
143
146
|
Object.assign(ProofContext.prototype, loggingMixins);
|
|
144
|
-
Object.assign(ProofContext.prototype, callbacksMixins);
|
|
145
147
|
|
|
146
148
|
export default ProofContext;
|
|
147
149
|
|
|
@@ -6,8 +6,8 @@ import { push } from "../../utilities/array";
|
|
|
6
6
|
import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
|
|
7
7
|
|
|
8
8
|
export default class DirectoryReleaseContext extends ReleaseContext {
|
|
9
|
-
constructor(log, name, entries,
|
|
10
|
-
super(log, name, entries,
|
|
9
|
+
constructor(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, fileContexts) {
|
|
10
|
+
super(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts);
|
|
11
11
|
|
|
12
12
|
this.fileContexts = fileContexts;
|
|
13
13
|
}
|
|
@@ -237,14 +237,14 @@ export default class DirectoryReleaseContext extends ReleaseContext {
|
|
|
237
237
|
return json;
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
static
|
|
241
|
-
const
|
|
240
|
+
static fromLogNameAndEntries(log, name, entries) {
|
|
241
|
+
const lexer = null,
|
|
242
|
+
parser = null,
|
|
243
|
+
verified = false,
|
|
242
244
|
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
243
|
-
florenceLexer = null,
|
|
244
|
-
florenceParser = null,
|
|
245
245
|
dependencyReleaseContexts = null,
|
|
246
246
|
fileContexts = [],
|
|
247
|
-
directoryReleaseContext = new DirectoryReleaseContext(log, name, entries,
|
|
247
|
+
directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, fileContexts);
|
|
248
248
|
|
|
249
249
|
return directoryReleaseContext;
|
|
250
250
|
}
|