occam-verify-cli 0.0.524 → 0.0.526
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/axiomLemmaTheorem.js +5 -5
- package/lib/combinator.js +5 -5
- package/lib/conclusion.js +3 -3
- package/lib/consequence.js +3 -3
- package/lib/constructor.js +6 -6
- package/lib/context/file.js +24 -8
- package/lib/context/metaproof.js +13 -1
- package/lib/context/proof.js +13 -1
- package/lib/equality.js +130 -7
- package/lib/label.js +5 -5
- package/lib/premise.js +3 -3
- package/lib/rule.js +5 -5
- package/lib/supposition.js +3 -3
- package/lib/type.js +5 -5
- package/lib/utilities/string.js +15 -10
- package/lib/variable.js +2 -2
- package/lib/verify/assertion/type.js +3 -3
- package/lib/verify/axiom.js +2 -2
- package/lib/verify/conclusion.js +2 -3
- package/lib/verify/consequence.js +3 -4
- package/lib/verify/derivation.js +3 -3
- package/lib/verify/label.js +2 -3
- package/lib/verify/lemma.js +2 -2
- package/lib/verify/metastatement/qualified.js +8 -9
- package/lib/verify/metastatement/unqualified.js +4 -4
- package/lib/verify/metastatement.js +2 -2
- package/lib/verify/premise.js +3 -4
- package/lib/verify/rule.js +2 -2
- package/lib/verify/ruleDerivation.js +3 -3
- package/lib/verify/statement/qualified.js +5 -5
- package/lib/verify/statement/unqualified.js +4 -4
- package/lib/verify/statement.js +56 -39
- package/lib/verify/statementAsCombinator.js +28 -18
- package/lib/verify/supposition.js +3 -4
- package/lib/verify/term.js +3 -4
- package/lib/verify/termAsConstructor.js +19 -20
- package/lib/verify/theorem.js +2 -2
- package/lib/verify/type.js +2 -3
- package/lib/verify/variable.js +2 -3
- package/package.json +1 -1
- package/src/axiomLemmaTheorem.js +4 -4
- package/src/combinator.js +4 -4
- package/src/conclusion.js +2 -2
- package/src/consequence.js +2 -2
- package/src/constructor.js +6 -6
- package/src/context/file.js +20 -7
- package/src/context/metaproof.js +4 -0
- package/src/context/proof.js +4 -0
- package/src/equality.js +202 -5
- package/src/label.js +4 -4
- package/src/premise.js +2 -2
- package/src/rule.js +4 -4
- package/src/supposition.js +2 -2
- package/src/type.js +4 -4
- package/src/utilities/string.js +23 -15
- package/src/variable.js +1 -1
- package/src/verify/assertion/type.js +2 -2
- package/src/verify/axiom.js +1 -1
- package/src/verify/conclusion.js +1 -2
- package/src/verify/consequence.js +2 -3
- package/src/verify/derivation.js +4 -2
- package/src/verify/label.js +1 -2
- package/src/verify/lemma.js +1 -1
- package/src/verify/metastatement/qualified.js +7 -10
- package/src/verify/metastatement/unqualified.js +3 -3
- package/src/verify/metastatement.js +1 -1
- package/src/verify/premise.js +2 -3
- package/src/verify/rule.js +1 -1
- package/src/verify/ruleDerivation.js +4 -2
- package/src/verify/statement/qualified.js +5 -5
- package/src/verify/statement/unqualified.js +4 -3
- package/src/verify/statement.js +67 -39
- package/src/verify/statementAsCombinator.js +48 -26
- package/src/verify/supposition.js +2 -3
- package/src/verify/term.js +2 -3
- package/src/verify/termAsConstructor.js +24 -26
- package/src/verify/theorem.js +1 -1
- package/src/verify/type.js +1 -2
- package/src/verify/variable.js +1 -2
|
@@ -4,7 +4,6 @@ import verifyTerm from "../verify/term";
|
|
|
4
4
|
import Constructor from "../constructor";
|
|
5
5
|
|
|
6
6
|
import { first } from "../utilities/array";
|
|
7
|
-
import { nodeAsString } from "../utilities/string";
|
|
8
7
|
import { nodeQuery, typeNameFromTypeNode } from "../utilities/query";
|
|
9
8
|
import { TERM_RULE_NAME, ARGUMENT_RULE_NAME } from "../ruleNames";
|
|
10
9
|
|
|
@@ -18,7 +17,7 @@ export default function verifyTermAsConstructor(termNode, typeNode, fileContext)
|
|
|
18
17
|
let type = null;
|
|
19
18
|
|
|
20
19
|
const nonTerminalNode = termNode, ///
|
|
21
|
-
termString = nodeAsString(termNode);
|
|
20
|
+
termString = fileContext.nodeAsString(termNode);
|
|
22
21
|
|
|
23
22
|
fileContext.debug(`Verifying the '${termString}' constructor...`);
|
|
24
23
|
|
|
@@ -97,29 +96,6 @@ function verifyTerminalNode(terminalNode, fileContext) {
|
|
|
97
96
|
return terminalNodeVerified;
|
|
98
97
|
}
|
|
99
98
|
|
|
100
|
-
function verifyArgumentNode(argumentNode, fileContext) {
|
|
101
|
-
let typeNodeVerified = false;
|
|
102
|
-
|
|
103
|
-
const typeNode = typeNodeQuery(argumentNode);
|
|
104
|
-
|
|
105
|
-
if (typeNode === null) {
|
|
106
|
-
const argumentString = nodeAsString(argumentNode);
|
|
107
|
-
|
|
108
|
-
fileContext.error(`The ${argumentString} argument should be a type.`);
|
|
109
|
-
} else {
|
|
110
|
-
const typeName = typeNameFromTypeNode(typeNode),
|
|
111
|
-
typePresent = fileContext.isTypePresentByTypeName(typeName);
|
|
112
|
-
|
|
113
|
-
if (!typePresent) {
|
|
114
|
-
fileContext.error(`The type '${typeName}' is missing.`);
|
|
115
|
-
} else {
|
|
116
|
-
typeNodeVerified = true;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return typeNodeVerified;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
99
|
function verifyNonTerminalNode(nonTerminalNode, fileContext) {
|
|
124
100
|
let nonTerminalNodeVerified;
|
|
125
101
|
|
|
@@ -146,7 +122,7 @@ function verifyNonTerminalNode(nonTerminalNode, fileContext) {
|
|
|
146
122
|
type = firstType; ///
|
|
147
123
|
|
|
148
124
|
if (type !== null) {
|
|
149
|
-
const termString = nodeAsString(termNode);
|
|
125
|
+
const termString = fileContext.nodeAsString(termNode);
|
|
150
126
|
|
|
151
127
|
fileContext.error(`The type of the constructor's compound '${termString}' term node is not null.`);
|
|
152
128
|
} else {
|
|
@@ -170,3 +146,25 @@ function verifyNonTerminalNode(nonTerminalNode, fileContext) {
|
|
|
170
146
|
return nonTerminalNodeVerified;
|
|
171
147
|
}
|
|
172
148
|
|
|
149
|
+
function verifyArgumentNode(argumentNode, fileContext) {
|
|
150
|
+
let typeNodeVerified = false;
|
|
151
|
+
|
|
152
|
+
const typeNode = typeNodeQuery(argumentNode);
|
|
153
|
+
|
|
154
|
+
if (typeNode === null) {
|
|
155
|
+
const argumentString = fileContext.nodeAsString(argumentNode);
|
|
156
|
+
|
|
157
|
+
fileContext.error(`The ${argumentString} argument should be a type.`);
|
|
158
|
+
} else {
|
|
159
|
+
const typeName = typeNameFromTypeNode(typeNode),
|
|
160
|
+
typePresent = fileContext.isTypePresentByTypeName(typeName);
|
|
161
|
+
|
|
162
|
+
if (!typePresent) {
|
|
163
|
+
fileContext.error(`The type '${typeName}' is missing.`);
|
|
164
|
+
} else {
|
|
165
|
+
typeNodeVerified = true;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return typeNodeVerified;
|
|
170
|
+
}
|
package/src/verify/theorem.js
CHANGED
|
@@ -22,7 +22,7 @@ export default function verifyTheorem(theoremNode, fileContext) {
|
|
|
22
22
|
fileContext.begin(theoremNode);
|
|
23
23
|
|
|
24
24
|
const labelNodes = labelNodesQuery(theoremNode),
|
|
25
|
-
labelsString = nodesAsString(labelNodes),
|
|
25
|
+
labelsString = fileContext.nodesAsString(labelNodes),
|
|
26
26
|
proofContext = ProofContext.fromFileContext(fileContext);
|
|
27
27
|
|
|
28
28
|
fileContext.debug(`Verifying the '${labelsString}' theorem...`);
|
package/src/verify/type.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import Type from "../type";
|
|
4
4
|
|
|
5
|
-
import { nodeAsString } from "../utilities/string";
|
|
6
5
|
import { typeNameFromTypeNode } from "../utilities/query";
|
|
7
6
|
|
|
8
7
|
export default function verifyType(typeNode, superTypeNode, fileContext) {
|
|
@@ -10,7 +9,7 @@ export default function verifyType(typeNode, superTypeNode, fileContext) {
|
|
|
10
9
|
|
|
11
10
|
fileContext.begin(typeNode);
|
|
12
11
|
|
|
13
|
-
const typeString = nodeAsString(typeNode);
|
|
12
|
+
const typeString = fileContext.nodeAsString(typeNode);
|
|
14
13
|
|
|
15
14
|
fileContext.debug(`Verifying the '${typeString}' type...`);
|
|
16
15
|
|
package/src/verify/variable.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import Variable from "../variable";
|
|
4
4
|
|
|
5
5
|
import { objectType } from "../type";
|
|
6
|
-
import { nodeAsString } from "../utilities/string";
|
|
7
6
|
import { typeNameFromTypeNode, variableNameFromVariableNode } from "../utilities/query";
|
|
8
7
|
|
|
9
8
|
export default function verifyVariable(variableNode, typeNode, fileContext) {
|
|
@@ -11,7 +10,7 @@ export default function verifyVariable(variableNode, typeNode, fileContext) {
|
|
|
11
10
|
|
|
12
11
|
fileContext.begin(variableNode);
|
|
13
12
|
|
|
14
|
-
const variableString = nodeAsString(variableNode);
|
|
13
|
+
const variableString = fileContext.nodeAsString(variableNode);
|
|
15
14
|
|
|
16
15
|
fileContext.debug(`Verifying the '${variableString}' variable...`);
|
|
17
16
|
|