occam-verify-cli 0.0.932 → 0.0.933
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/conclusion.js +4 -4
- package/lib/consequent.js +4 -4
- package/lib/context/local.js +181 -3
- package/lib/equality.js +4 -4
- package/lib/metaLemma.js +4 -4
- package/lib/metatheorem.js +4 -4
- package/lib/premise.js +6 -6
- package/lib/substitution/statementForMetavariable.js +2 -2
- package/lib/supposition.js +6 -6
- package/lib/unifier/equality.js +216 -0
- package/lib/unifier/metaLevel.js +231 -0
- package/lib/unifier/statementAgainstCombinator.js +231 -0
- package/lib/unifier/termAgainstConstructor.js +211 -0
- package/lib/unifier.js +201 -0
- package/lib/unify/argumentAgainstArgument.js +24 -0
- package/lib/unify/metavariableAgainstStatement.js +66 -0
- package/lib/unify/statementAgainstMetaType.js +28 -0
- package/lib/unify/statementAtainstStatement.js +52 -0
- package/lib/unify/termAgainstTerm.js +22 -0
- package/lib/unify/termAgainstType.js +26 -0
- package/lib/unify/variableAgainstTerm.js +70 -0
- package/lib/verifier/metaLevel.js +236 -0
- package/lib/verifier/statementAsCombinator.js +236 -0
- package/lib/verifier/termAsConstructor.js +219 -0
- package/lib/verifier.js +182 -0
- package/lib/verify/assertion/contained.js +2 -2
- package/lib/verify/assertion/defined.js +2 -2
- package/lib/verify/declaration.js +3 -3
- package/lib/verify/frame.js +9 -12
- package/lib/verify/judgement.js +2 -2
- package/lib/verify/statement/qualified.js +6 -3
- package/lib/verify/statement/unqualified.js +2 -1
- package/lib/verify/statement.js +26 -19
- package/lib/verify/statementAsCombinator.js +2 -2
- package/lib/verify/term.js +6 -6
- package/lib/verify/termAsConstructor.js +2 -2
- package/package.json +2 -2
- package/src/conclusion.js +3 -3
- package/src/consequent.js +3 -3
- package/src/context/local.js +60 -3
- package/src/equality.js +3 -3
- package/src/metaLemma.js +1 -1
- package/src/metatheorem.js +1 -1
- package/src/premise.js +5 -5
- package/src/substitution/statementForMetavariable.js +2 -2
- package/src/supposition.js +5 -5
- package/src/unifier/equality.js +84 -0
- package/src/unifier/metaLevel.js +109 -0
- package/src/unifier/statementAgainstCombinator.js +104 -0
- package/src/unifier/termAgainstConstructor.js +76 -0
- package/src/unifier.js +133 -0
- package/src/unify/argumentAgainstArgument.js +15 -0
- package/src/{verify → unify}/metavariableAgainstStatement.js +18 -18
- package/src/{verify → unify}/statementAgainstMetaType.js +4 -4
- package/src/{verify → unify}/statementAtainstStatement.js +7 -7
- package/src/{verify → unify}/termAgainstTerm.js +5 -5
- package/src/{verify → unify}/termAgainstType.js +7 -7
- package/src/{verify → unify}/variableAgainstTerm.js +6 -6
- package/src/verifier/{node/metaLevel.js → metaLevel.js} +14 -14
- package/src/verifier/{node/statementAsCombinator.js → statementAsCombinator.js} +14 -14
- package/src/verifier/{node/termAsConstructor.js → termAsConstructor.js} +12 -12
- package/src/{verifier/node.js → verifier.js} +19 -1
- package/src/verify/assertion/contained.js +2 -2
- package/src/verify/assertion/defined.js +2 -2
- package/src/verify/declaration.js +3 -3
- package/src/verify/frame.js +10 -13
- package/src/verify/judgement.js +1 -1
- package/src/verify/statement/qualified.js +12 -3
- package/src/verify/statement/unqualified.js +2 -1
- package/src/verify/statement.js +30 -25
- package/src/verify/statementAsCombinator.js +2 -2
- package/src/verify/term.js +6 -6
- package/src/verify/termAsConstructor.js +2 -2
- package/lib/mixins/context.js +0 -135
- package/lib/mixins/nodesVerifier/intrinsiclevel.js +0 -59
- package/lib/mixins/nodesVerifier/metaLevel.js +0 -40
- package/lib/utilities/verifier.js +0 -80
- package/lib/verifier/node/metaLevel.js +0 -201
- package/lib/verifier/node/statementAsCombinator.js +0 -201
- package/lib/verifier/node/termAsConstructor.js +0 -184
- package/lib/verifier/node.js +0 -157
- package/lib/verifier/nodes/equality.js +0 -176
- package/lib/verifier/nodes/metaLevel.js +0 -191
- package/lib/verifier/nodes/statementAgainstCombinator.js +0 -191
- package/lib/verifier/nodes/termAgainstConstructor.js +0 -171
- package/lib/verifier/nodes.js +0 -175
- package/lib/verify/argumentAgainstArgument.js +0 -24
- package/lib/verify/metavariableAgainstStatement.js +0 -66
- package/lib/verify/statementAgainstMetaType.js +0 -28
- package/lib/verify/statementAtainstStatement.js +0 -52
- package/lib/verify/termAgainstTerm.js +0 -22
- package/lib/verify/termAgainstType.js +0 -26
- package/lib/verify/variableAgainstTerm.js +0 -70
- package/src/mixins/context.js +0 -96
- package/src/mixins/nodesVerifier/intrinsiclevel.js +0 -73
- package/src/mixins/nodesVerifier/metaLevel.js +0 -39
- package/src/utilities/verifier.js +0 -38
- package/src/verifier/nodes/equality.js +0 -84
- package/src/verifier/nodes/metaLevel.js +0 -109
- package/src/verifier/nodes/statementAgainstCombinator.js +0 -105
- package/src/verifier/nodes/termAgainstConstructor.js +0 -76
- package/src/verifier/nodes.js +0 -114
- package/src/verify/argumentAgainstArgument.js +0 -15
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import NodesVerifier from "../../verifier/nodes";
|
|
4
|
-
import verifyTermAgainstType from "../../verify/termAgainstType";
|
|
5
|
-
|
|
6
|
-
import { nodeQuery } from "../../utilities/query";
|
|
7
|
-
import { verifyNodes } from "../../utilities/verifier";
|
|
8
|
-
|
|
9
|
-
const termNodeQuery = nodeQuery("/argument/term!"),
|
|
10
|
-
typeNodeQuery = nodeQuery("/argument/type!"),
|
|
11
|
-
nonTerminalNodeQuery = nodeQuery("/*");
|
|
12
|
-
|
|
13
|
-
class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
14
|
-
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
|
|
15
|
-
let nonTerminalNodeVerified;
|
|
16
|
-
|
|
17
|
-
const nodeQueryMaps = [
|
|
18
|
-
{
|
|
19
|
-
nodeQueryA: termNodeQuery,
|
|
20
|
-
nodeQueryB: typeNodeQuery,
|
|
21
|
-
verifyNodes: (nodeA, nodeB, localContext, verifyAhead) => {
|
|
22
|
-
let nonTerminalNodeVerified;
|
|
23
|
-
|
|
24
|
-
const termNodeA = nodeA, ///
|
|
25
|
-
typeNodeB = nodeB, ///
|
|
26
|
-
termNodeVerifiedAgainstTypeNode =
|
|
27
|
-
|
|
28
|
-
this.verifyTermNodeAgainstTypeNode(termNodeA, typeNodeB, localContext, verifyAhead);
|
|
29
|
-
|
|
30
|
-
nonTerminalNodeVerified = termNodeVerifiedAgainstTypeNode; ///
|
|
31
|
-
|
|
32
|
-
return nonTerminalNodeVerified;
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
nodeQueryA: nonTerminalNodeQuery,
|
|
37
|
-
nodeQueryB: nonTerminalNodeQuery,
|
|
38
|
-
verifyNodes: (nodeA, nodeB, localContext, verifyAhead) => {
|
|
39
|
-
let nonTerminalNodeVerified;
|
|
40
|
-
|
|
41
|
-
const nonTerminalNodeA = nodeA, ///
|
|
42
|
-
nonTerminalNodeB = nodeB; ///
|
|
43
|
-
|
|
44
|
-
nonTerminalNodeVerified =
|
|
45
|
-
|
|
46
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
47
|
-
|
|
48
|
-
return nonTerminalNodeVerified;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
54
|
-
|
|
55
|
-
nonTerminalNodeVerified = nodesVerified; ///
|
|
56
|
-
|
|
57
|
-
return nonTerminalNodeVerified;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
verifyTermNodeAgainstTypeNode(termNodeA, typeNodeB, localContext, verifyAhead) {
|
|
61
|
-
let termNodeVerifiedAgainstTypeNode;
|
|
62
|
-
|
|
63
|
-
const { verifyTerm } = this,
|
|
64
|
-
termNode = termNodeA, ///
|
|
65
|
-
typeNode = typeNodeB, ///
|
|
66
|
-
typeVerifiedAgainstTerm = verifyTermAgainstType(termNode, typeNode, localContext, verifyAhead, verifyTerm);
|
|
67
|
-
|
|
68
|
-
termNodeVerifiedAgainstTypeNode = typeVerifiedAgainstTerm; ///
|
|
69
|
-
|
|
70
|
-
return termNodeVerifiedAgainstTypeNode;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const termAgainstConstructorNodesVerifier = new TermAgainstConstructorNodesVerifier();
|
|
75
|
-
|
|
76
|
-
export default termAgainstConstructorNodesVerifier;
|
package/src/verifier/nodes.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { terminalNodeMapFromNodes, areTerminalNodeMapsEqual } from "../utilities/terminalNodes";
|
|
4
|
-
|
|
5
|
-
export default class NodesVerifier {
|
|
6
|
-
verifyNode(nodeA, nodeB, ...remainingArguments) {
|
|
7
|
-
let nodeVerified = false;
|
|
8
|
-
|
|
9
|
-
const nodeATerminalNode = nodeA.isTerminalNode(),
|
|
10
|
-
nodeBTerminalNode = nodeB.isTerminalNode(),
|
|
11
|
-
nodeANonTerminalNode = nodeA.isNonTerminalNode(),
|
|
12
|
-
nodeBNonTerminalNode = nodeB.isNonTerminalNode();
|
|
13
|
-
|
|
14
|
-
if (false) {
|
|
15
|
-
///
|
|
16
|
-
} else if (nodeATerminalNode && nodeBTerminalNode) {
|
|
17
|
-
const terminalNodeA = nodeA, ///
|
|
18
|
-
terminalNodeB = nodeB, ///
|
|
19
|
-
terminalNodeVerified = this.verifyTerminalNode(terminalNodeA, terminalNodeB, ...remainingArguments);
|
|
20
|
-
|
|
21
|
-
nodeVerified = terminalNodeVerified; ///
|
|
22
|
-
} else if (nodeANonTerminalNode && nodeBNonTerminalNode) {
|
|
23
|
-
const nonTerminalNodeA = nodeA, ///
|
|
24
|
-
nonTerminalNodeB = nodeB, ///
|
|
25
|
-
nonTerminalNodeVerified = this.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, ...remainingArguments);
|
|
26
|
-
|
|
27
|
-
nodeVerified = nonTerminalNodeVerified; ///
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return nodeVerified;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
verifyChildNodes(childNodesA, childNodesB, ...remainingArguments) {
|
|
34
|
-
let childNodesVerified = false;
|
|
35
|
-
|
|
36
|
-
const childNodesALength = childNodesA.length,
|
|
37
|
-
childNodesBLength = childNodesB.length;
|
|
38
|
-
|
|
39
|
-
if (childNodesALength === childNodesBLength) {
|
|
40
|
-
const childTerminalNodeMapA = terminalNodeMapFromNodes(childNodesA),
|
|
41
|
-
childTerminalNodeMapB = terminalNodeMapFromNodes(childNodesB),
|
|
42
|
-
terminalNodeMapsEqual = areTerminalNodeMapsEqual(childTerminalNodeMapA, childTerminalNodeMapB);
|
|
43
|
-
|
|
44
|
-
if (terminalNodeMapsEqual) {
|
|
45
|
-
const index = 0,
|
|
46
|
-
childNodesVerifyAhead = this.verifyChildNodesAhead(index, childNodesA, childNodesB, ...remainingArguments);
|
|
47
|
-
|
|
48
|
-
childNodesVerified = childNodesVerifyAhead; ///
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return childNodesVerified;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
verifyTerminalNode(terminalNodeA, terminalNodeB, ...remainingArguments) { ///
|
|
56
|
-
let terminalNodeVerified;
|
|
57
|
-
|
|
58
|
-
const verifyAhead = remainingArguments.pop(),
|
|
59
|
-
verifiedAhead = verifyAhead();
|
|
60
|
-
|
|
61
|
-
terminalNodeVerified = verifiedAhead; ///
|
|
62
|
-
|
|
63
|
-
return terminalNodeVerified;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, ...remainingArguments) {
|
|
67
|
-
let nonTerminalNodeVerified = false;
|
|
68
|
-
|
|
69
|
-
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), ///
|
|
70
|
-
nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
|
|
71
|
-
|
|
72
|
-
if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
|
|
73
|
-
const nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
|
|
74
|
-
nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
|
|
75
|
-
childNodesA = nonTerminalNodeAChildNodes, ///
|
|
76
|
-
childNodesB = nonTerminalNodeBChildNodes, ///
|
|
77
|
-
childNodesVerified = this.verifyChildNodes(childNodesA, childNodesB, ...remainingArguments);
|
|
78
|
-
|
|
79
|
-
nonTerminalNodeVerified = childNodesVerified; ///
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return nonTerminalNodeVerified;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
verifyChildNodesAhead(index, childNodesA, childNodesB, ...remainingArguments) {
|
|
86
|
-
let childNodesVerified;
|
|
87
|
-
|
|
88
|
-
const verifyAhead = remainingArguments.pop(), ///
|
|
89
|
-
childNodesALength = childNodesA.length;
|
|
90
|
-
|
|
91
|
-
if (index === childNodesALength) {
|
|
92
|
-
const verifiedAhead = verifyAhead();
|
|
93
|
-
|
|
94
|
-
childNodesVerified = verifiedAhead; ///
|
|
95
|
-
} else {
|
|
96
|
-
const childNodeA = childNodesA[index],
|
|
97
|
-
childNodeB = childNodesB[index],
|
|
98
|
-
nodeA = childNodeA, ///
|
|
99
|
-
nodeB = childNodeB, ///
|
|
100
|
-
nodeVerified = this.verifyNode(nodeA, nodeB, ...remainingArguments, () => {
|
|
101
|
-
remainingArguments.push(verifyAhead); ///
|
|
102
|
-
|
|
103
|
-
const aheadIndex = index + 1,
|
|
104
|
-
childNodesVerifyAhead = this.verifyChildNodesAhead(aheadIndex, childNodesA, childNodesB, ...remainingArguments);
|
|
105
|
-
|
|
106
|
-
return childNodesVerifyAhead;
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
childNodesVerified = nodeVerified; ///
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return childNodesVerified;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import termAgainstConstructorNodesVerifier from "../verifier/nodes/termAgainstConstructor";
|
|
4
|
-
|
|
5
|
-
export default function verifyArgumentAgainstArgument(argumentNodeA, argumentNodeB, localContext, verifyAhead) {
|
|
6
|
-
let argumentVerifiedAgainstArgument;
|
|
7
|
-
|
|
8
|
-
const nonTerminalNodeA = argumentNodeA, ///
|
|
9
|
-
nonTerminalNodeB = argumentNodeB, ///
|
|
10
|
-
nonTerminalNodeVerified = termAgainstConstructorNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
11
|
-
|
|
12
|
-
argumentVerifiedAgainstArgument = nonTerminalNodeVerified; ///
|
|
13
|
-
|
|
14
|
-
return argumentVerifiedAgainstArgument;
|
|
15
|
-
}
|