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.
Files changed (103) hide show
  1. package/lib/conclusion.js +4 -4
  2. package/lib/consequent.js +4 -4
  3. package/lib/context/local.js +181 -3
  4. package/lib/equality.js +4 -4
  5. package/lib/metaLemma.js +4 -4
  6. package/lib/metatheorem.js +4 -4
  7. package/lib/premise.js +6 -6
  8. package/lib/substitution/statementForMetavariable.js +2 -2
  9. package/lib/supposition.js +6 -6
  10. package/lib/unifier/equality.js +216 -0
  11. package/lib/unifier/metaLevel.js +231 -0
  12. package/lib/unifier/statementAgainstCombinator.js +231 -0
  13. package/lib/unifier/termAgainstConstructor.js +211 -0
  14. package/lib/unifier.js +201 -0
  15. package/lib/unify/argumentAgainstArgument.js +24 -0
  16. package/lib/unify/metavariableAgainstStatement.js +66 -0
  17. package/lib/unify/statementAgainstMetaType.js +28 -0
  18. package/lib/unify/statementAtainstStatement.js +52 -0
  19. package/lib/unify/termAgainstTerm.js +22 -0
  20. package/lib/unify/termAgainstType.js +26 -0
  21. package/lib/unify/variableAgainstTerm.js +70 -0
  22. package/lib/verifier/metaLevel.js +236 -0
  23. package/lib/verifier/statementAsCombinator.js +236 -0
  24. package/lib/verifier/termAsConstructor.js +219 -0
  25. package/lib/verifier.js +182 -0
  26. package/lib/verify/assertion/contained.js +2 -2
  27. package/lib/verify/assertion/defined.js +2 -2
  28. package/lib/verify/declaration.js +3 -3
  29. package/lib/verify/frame.js +9 -12
  30. package/lib/verify/judgement.js +2 -2
  31. package/lib/verify/statement/qualified.js +6 -3
  32. package/lib/verify/statement/unqualified.js +2 -1
  33. package/lib/verify/statement.js +26 -19
  34. package/lib/verify/statementAsCombinator.js +2 -2
  35. package/lib/verify/term.js +6 -6
  36. package/lib/verify/termAsConstructor.js +2 -2
  37. package/package.json +2 -2
  38. package/src/conclusion.js +3 -3
  39. package/src/consequent.js +3 -3
  40. package/src/context/local.js +60 -3
  41. package/src/equality.js +3 -3
  42. package/src/metaLemma.js +1 -1
  43. package/src/metatheorem.js +1 -1
  44. package/src/premise.js +5 -5
  45. package/src/substitution/statementForMetavariable.js +2 -2
  46. package/src/supposition.js +5 -5
  47. package/src/unifier/equality.js +84 -0
  48. package/src/unifier/metaLevel.js +109 -0
  49. package/src/unifier/statementAgainstCombinator.js +104 -0
  50. package/src/unifier/termAgainstConstructor.js +76 -0
  51. package/src/unifier.js +133 -0
  52. package/src/unify/argumentAgainstArgument.js +15 -0
  53. package/src/{verify → unify}/metavariableAgainstStatement.js +18 -18
  54. package/src/{verify → unify}/statementAgainstMetaType.js +4 -4
  55. package/src/{verify → unify}/statementAtainstStatement.js +7 -7
  56. package/src/{verify → unify}/termAgainstTerm.js +5 -5
  57. package/src/{verify → unify}/termAgainstType.js +7 -7
  58. package/src/{verify → unify}/variableAgainstTerm.js +6 -6
  59. package/src/verifier/{node/metaLevel.js → metaLevel.js} +14 -14
  60. package/src/verifier/{node/statementAsCombinator.js → statementAsCombinator.js} +14 -14
  61. package/src/verifier/{node/termAsConstructor.js → termAsConstructor.js} +12 -12
  62. package/src/{verifier/node.js → verifier.js} +19 -1
  63. package/src/verify/assertion/contained.js +2 -2
  64. package/src/verify/assertion/defined.js +2 -2
  65. package/src/verify/declaration.js +3 -3
  66. package/src/verify/frame.js +10 -13
  67. package/src/verify/judgement.js +1 -1
  68. package/src/verify/statement/qualified.js +12 -3
  69. package/src/verify/statement/unqualified.js +2 -1
  70. package/src/verify/statement.js +30 -25
  71. package/src/verify/statementAsCombinator.js +2 -2
  72. package/src/verify/term.js +6 -6
  73. package/src/verify/termAsConstructor.js +2 -2
  74. package/lib/mixins/context.js +0 -135
  75. package/lib/mixins/nodesVerifier/intrinsiclevel.js +0 -59
  76. package/lib/mixins/nodesVerifier/metaLevel.js +0 -40
  77. package/lib/utilities/verifier.js +0 -80
  78. package/lib/verifier/node/metaLevel.js +0 -201
  79. package/lib/verifier/node/statementAsCombinator.js +0 -201
  80. package/lib/verifier/node/termAsConstructor.js +0 -184
  81. package/lib/verifier/node.js +0 -157
  82. package/lib/verifier/nodes/equality.js +0 -176
  83. package/lib/verifier/nodes/metaLevel.js +0 -191
  84. package/lib/verifier/nodes/statementAgainstCombinator.js +0 -191
  85. package/lib/verifier/nodes/termAgainstConstructor.js +0 -171
  86. package/lib/verifier/nodes.js +0 -175
  87. package/lib/verify/argumentAgainstArgument.js +0 -24
  88. package/lib/verify/metavariableAgainstStatement.js +0 -66
  89. package/lib/verify/statementAgainstMetaType.js +0 -28
  90. package/lib/verify/statementAtainstStatement.js +0 -52
  91. package/lib/verify/termAgainstTerm.js +0 -22
  92. package/lib/verify/termAgainstType.js +0 -26
  93. package/lib/verify/variableAgainstTerm.js +0 -70
  94. package/src/mixins/context.js +0 -96
  95. package/src/mixins/nodesVerifier/intrinsiclevel.js +0 -73
  96. package/src/mixins/nodesVerifier/metaLevel.js +0 -39
  97. package/src/utilities/verifier.js +0 -38
  98. package/src/verifier/nodes/equality.js +0 -84
  99. package/src/verifier/nodes/metaLevel.js +0 -109
  100. package/src/verifier/nodes/statementAgainstCombinator.js +0 -105
  101. package/src/verifier/nodes/termAgainstConstructor.js +0 -76
  102. package/src/verifier/nodes.js +0 -114
  103. 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;
@@ -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
- }