occam-verify-cli 0.0.506 → 0.0.508

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 (58) hide show
  1. package/lib/axiomLemmaTheorem.js +2 -2
  2. package/lib/conclusion.js +6 -161
  3. package/lib/consequence.js +4 -82
  4. package/lib/matcher/metastatementForMetavariable/conclusion.js +113 -0
  5. package/lib/matcher/metastatementForMetavariable/premise.js +113 -0
  6. package/lib/matcher/metastatementForMetavariable.js +201 -0
  7. package/lib/matcher/statementForMetavariable/conclusion.js +113 -0
  8. package/lib/matcher/statementForMetavariable/premise.js +113 -0
  9. package/lib/matcher/statementForMetavariable.js +201 -0
  10. package/lib/matcher/statementForVariable/consequence.js +113 -0
  11. package/lib/matcher/statementForVariable/supposition.js +113 -0
  12. package/lib/matcher/statementForVariable.js +201 -0
  13. package/lib/matcher.js +150 -0
  14. package/lib/premise.js +21 -190
  15. package/lib/rule.js +11 -11
  16. package/lib/ruleNames.js +5 -1
  17. package/lib/step/metaproof.js +5 -5
  18. package/lib/substitution/metastatementForMetavariable.js +86 -0
  19. package/lib/substitution/statementForMetavariable.js +86 -0
  20. package/lib/substitution/statementForVariable.js +86 -0
  21. package/lib/supposition.js +10 -97
  22. package/lib/utilities/substitution.js +61 -0
  23. package/lib/verify/metaproof.js +3 -3
  24. package/lib/verify/proof.js +3 -3
  25. package/lib/verify/ruleProof.js +3 -3
  26. package/package.json +1 -1
  27. package/src/axiomLemmaTheorem.js +1 -1
  28. package/src/conclusion.js +11 -282
  29. package/src/consequence.js +6 -144
  30. package/src/matcher/metastatementForMetavariable/conclusion.js +9 -0
  31. package/src/matcher/metastatementForMetavariable/premise.js +9 -0
  32. package/src/matcher/metastatementForMetavariable.js +99 -0
  33. package/src/matcher/statementForMetavariable/conclusion.js +9 -0
  34. package/src/matcher/statementForMetavariable/premise.js +9 -0
  35. package/src/matcher/statementForMetavariable.js +99 -0
  36. package/src/matcher/statementForVariable/consequence.js +9 -0
  37. package/src/matcher/statementForVariable/supposition.js +9 -0
  38. package/src/matcher/statementForVariable.js +99 -0
  39. package/src/matcher.js +76 -0
  40. package/src/premise.js +48 -336
  41. package/src/rule.js +12 -12
  42. package/src/ruleNames.js +1 -0
  43. package/src/step/metaproof.js +1 -1
  44. package/src/{metaSubstitution.js → substitution/metastatementForMetavariable.js} +9 -8
  45. package/src/{substitution.js → substitution/statementForMetavariable.js} +8 -7
  46. package/src/substitution/statementForVariable.js +64 -0
  47. package/src/supposition.js +26 -173
  48. package/src/utilities/{node.js → substitution.js} +4 -74
  49. package/src/verify/metaproof.js +2 -2
  50. package/src/verify/proof.js +2 -2
  51. package/src/verify/ruleProof.js +2 -2
  52. package/lib/metaSubstitution.js +0 -85
  53. package/lib/metaSupposition.js +0 -167
  54. package/lib/substitution.js +0 -85
  55. package/lib/utilities/node.js +0 -106
  56. package/lib/verify/metaSupposition.js +0 -41
  57. package/src/metaSupposition.js +0 -196
  58. package/src/verify/metaSupposition.js +0 -44
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ import { matcher } from "../matcher";
4
+ import { STATEMENT_RULE_NAME } from "../ruleNames";
5
+ import { bracketedNonTerminalChildNodeFromChildNodes } from "../utilities/substitution";
6
+
7
+ export default class StatementForVariableSubstitution {
8
+ constructor(variableName, statementNode) {
9
+ this.variableName = variableName;
10
+ this.statementNode = statementNode;
11
+ }
12
+
13
+ getVariableName() {
14
+ return this.variableName;
15
+ }
16
+
17
+ getStatementNode() {
18
+ return this.statementNode;
19
+ }
20
+
21
+ matchStatementNode(statementNode) {
22
+ let matchesStatementNode;
23
+
24
+ const nodeA = this.statementNode, ///
25
+ nodeB = statementNode,
26
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
27
+
28
+ matchesStatementNode = nodeMatches; ///
29
+
30
+ if (!matchesStatementNode) {
31
+ const nonTerminalNode = statementNode, ///
32
+ childNodes = nonTerminalNode.getChildNodes(), ///
33
+ ruleName = STATEMENT_RULE_NAME;
34
+
35
+ statementNode = bracketedNonTerminalChildNodeFromChildNodes(childNodes, ruleName); ///
36
+
37
+ if (statementNode !== null) {
38
+ const nodeA = this.statementNode, ///
39
+ nodeB = statementNode,
40
+ nodeMatches = matchNode(nodeA, nodeB);
41
+
42
+ matchesStatementNode = nodeMatches; ///
43
+ }
44
+ }
45
+
46
+ return matchesStatementNode;
47
+ }
48
+
49
+ static fromVariableNameAndStatementNode(variableName, statementNode) {
50
+ let statementForVariableSubstitution = new StatementForVariableSubstitution(variableName, statementNode);
51
+
52
+ const nonTerminalNode = statementNode, ///
53
+ childNodes = nonTerminalNode.getChildNodes(),
54
+ ruleName = STATEMENT_RULE_NAME;
55
+
56
+ statementNode = bracketedNonTerminalChildNodeFromChildNodes(childNodes, ruleName); ///
57
+
58
+ if (statementNode !== null) {
59
+ statementForVariableSubstitution = new StatementForVariableSubstitution(variableName, statementNode);
60
+ }
61
+
62
+ return statementForVariableSubstitution;
63
+ }
64
+ }
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import Substitution from "./substitution";
4
-
5
- import { first } from "./utilities/array";
6
3
  import { nodeAsString } from "./utilities/string";
7
4
  import { nodeQuery, nodesQuery } from "./utilities/query";
8
- import { variableNameFromVariableNode } from "./utilities/query";
9
5
  import { statementNodeFromStatementString } from "./utilities/string";
10
- import { VARIABLE_RULE_NAME, STATEMENT_RULE_NAME } from "./ruleNames";
6
+ import { suppositionStatementForVariableMatcher } from "./matcher/statementForVariable/supposition";
11
7
 
12
- const statementNodesQuery = nodesQuery("/subproofAssertion/statement"),
13
- subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
14
- unqualifiedStatementStatementNodesQuery = nodesQuery("/subproof/unqualifiedStatement/statement!"),
15
- qualifiedOrUnqualifiedStatementStatementNodeQuery = nodeQuery("/subproof/subDerivation/qualifiedStatement|unqualifiedStatement[-1]/statement!");
8
+ const subproofAssertionNodeQuery = nodeQuery("/statement/subproofAssertion!"),
9
+ subproofAssertionStatementNodesQuery = nodesQuery("/subproofAssertion/statement"),
10
+ subproofSuppositionStatementNodesQuery = nodesQuery("/subproof/supposition/unqualifiedStatement/statement!"),
11
+ subproofSubDerivationLastStatementNodeQuery = nodeQuery("/subproof/subDerivation/qualifiedStatement|unqualifiedStatement[-1]/statement!");
16
12
 
17
13
  export default class Supposition {
18
14
  constructor(statementNode) {
@@ -29,27 +25,27 @@ export default class Supposition {
29
25
  const subproofAssertionNode = subproofAssertionNodeQuery(this.statementNode);
30
26
 
31
27
  if (subproofAssertionNode !== null) {
32
- const subproofAssertionStatementNodes = statementNodesQuery(subproofAssertionNode),
33
- unqualifiedStatementStatementNodes = unqualifiedStatementStatementNodesQuery(subproofNode),
34
- qualifiedOrUnqualifiedStatementStatementNode = qualifiedOrUnqualifiedStatementStatementNodeQuery(subproofNode),
35
- statementNodes = [
36
- ...unqualifiedStatementStatementNodes,
37
- qualifiedOrUnqualifiedStatementStatementNode
28
+ const subproofSuppositionStatementNodes = subproofSuppositionStatementNodesQuery(subproofNode),
29
+ subproofSubDerivationLastStatementNode = subproofSubDerivationLastStatementNodeQuery(subproofNode),
30
+ subproofStatementNodes = [
31
+ ...subproofSuppositionStatementNodes,
32
+ subproofSubDerivationLastStatementNode
38
33
  ],
39
- statementNodesLength = statementNodes.length,
34
+ subproofAssertionStatementNodes = subproofAssertionStatementNodesQuery(subproofAssertionNode),
35
+ subproofStatementNodesLength = subproofStatementNodes.length,
40
36
  subproofAssertionStatementNodesLength = subproofAssertionStatementNodes.length;
41
37
 
42
- if (statementNodesLength === subproofAssertionStatementNodesLength) {
38
+ if (subproofStatementNodesLength === subproofAssertionStatementNodesLength) {
43
39
  subproofNodeMatches = subproofAssertionStatementNodes.every((subproofAssertionStatementNode, index) => {
44
- const statementNode = statementNodes[index],
45
- nonTerminalNode = statementNode, ///
46
- suppositionNonTerminalNode = subproofAssertionStatementNode, ///
47
- suppositionNonTerminalNodeMatches = matchSuppositionNonTerminalNode(suppositionNonTerminalNode, nonTerminalNode, substitutions);
48
-
49
- if (suppositionNonTerminalNodeMatches) {
50
- return true;
51
- }
52
- });
40
+ const subproofStatementNode = subproofStatementNodes[index],
41
+ nonTerminalNodeA = subproofAssertionStatementNode, ///
42
+ nonTerminalNodeB = subproofStatementNode, ///
43
+ nonTerminalNodeMatches = suppositionStatementForVariableMatcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
44
+
45
+ if (nonTerminalNodeMatches) {
46
+ return true;
47
+ }
48
+ });
53
49
  }
54
50
  }
55
51
 
@@ -57,10 +53,10 @@ export default class Supposition {
57
53
  }
58
54
 
59
55
  matchStatementNode(statementNode, substitutions) {
60
- const nonTerminalNode = statementNode, ///
61
- suppositionNonTerminalNode = this.statementNode, ///
62
- suppositionNonTerminalNodeMatches = matchSuppositionNonTerminalNode(suppositionNonTerminalNode, nonTerminalNode, substitutions),
63
- statementNodeMatches = suppositionNonTerminalNodeMatches; ///
56
+ const nonTerminalNodeA = this.statementNode, ///
57
+ nonTerminalNodeB = statementNode, ///
58
+ nonTerminalNodeMatches = suppositionStatementForVariableMatcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
59
+ statementNodeMatches = nonTerminalNodeMatches; ///
64
60
 
65
61
  return statementNodeMatches;
66
62
  }
@@ -90,146 +86,3 @@ export default class Supposition {
90
86
  return supposition;
91
87
  }
92
88
  }
93
-
94
- function matchSuppositionNode(suppositionNode, node, substitutions) {
95
- let suppositionNodeMatches = false;
96
-
97
- const nodeTerminalNode = node.isTerminalNode(),
98
- ruleNodeTerminalNode = suppositionNode.isTerminalNode();
99
-
100
- if (nodeTerminalNode === ruleNodeTerminalNode) {
101
- if (nodeTerminalNode) {
102
- const terminalNode = node, ///
103
- suppositionTerminalNode = suppositionNode, ///
104
- suppositionTerminalNodeMatches = matchSuppositionTerminalNode(suppositionTerminalNode, terminalNode, substitutions);
105
-
106
- suppositionNodeMatches = suppositionTerminalNodeMatches; ///
107
- } else {
108
- const nonTerminalNode = node, ///
109
- suppositionNonTerminalNode = suppositionNode, ///
110
- suppositionNonTerminalNodeMatches = matchSuppositionNonTerminalNode(suppositionNonTerminalNode, nonTerminalNode, substitutions);
111
-
112
- suppositionNodeMatches = suppositionNonTerminalNodeMatches; ///
113
- }
114
- }
115
-
116
- return suppositionNodeMatches;
117
- }
118
-
119
- function matchSuppositionNodes(suppositionNodes, nodes, substitutions) {
120
- let suppositionNodesMatches = false;
121
-
122
- const nodesLength = nodes.length,
123
- suppositionNodesLength = suppositionNodes.length;
124
-
125
- if (nodesLength === suppositionNodesLength) {
126
- suppositionNodesMatches = nodes.every((node, index) => {
127
- const suppositionNode = suppositionNodes[index],
128
- suppositionNodeMatches = matchSuppositionNode(suppositionNode, node, substitutions);
129
-
130
- if (suppositionNodeMatches) {
131
- return true;
132
- }
133
- });
134
- }
135
-
136
- return suppositionNodesMatches;
137
- }
138
-
139
- function matchSuppositionVariable(suppositionVariableNode, nodes, substitutions) {
140
- let suppositionVariableMatches;
141
-
142
- const suppositionVariableName = variableNameFromVariableNode(suppositionVariableNode),
143
- substitution = substitutions.find((substitution) => {
144
- const variableName = substitution.getVariableName();
145
-
146
- if (variableName === suppositionVariableName) {
147
- return true;
148
- }
149
- }) || null;
150
-
151
- if (substitution !== null) {
152
- const substitutionNodesMatch = substitution.matchNodes(nodes);
153
-
154
- suppositionVariableMatches = substitutionNodesMatch; ///
155
- } else {
156
- const variableName = suppositionVariableName, ///
157
- substitution = Substitution.fromVariableNameAndNodes(variableName, nodes);
158
-
159
- substitutions.push(substitution);
160
-
161
- suppositionVariableMatches = true;
162
- }
163
-
164
- return suppositionVariableMatches;
165
- }
166
-
167
- function matchSuppositionTerminalNode(suppositionTerminalNode, terminalNode, substitutions) {
168
- const matches = suppositionTerminalNode.match(terminalNode),
169
- suppositionTerminalNodeMatches = matches;
170
-
171
- return suppositionTerminalNodeMatches;
172
- }
173
-
174
- function matchSuppositionNonTerminalNode(suppositionNonTerminalNode, nonTerminalNode, substitutions) {
175
- let suppositionNonTerminalNodeMatches = false;
176
-
177
- const ruleName = nonTerminalNode.getRuleName(),
178
- suppositionRuleName = suppositionNonTerminalNode.getRuleName(); ///
179
-
180
- if (ruleName === suppositionRuleName) {
181
- const childNodes = nonTerminalNode.getChildNodes(),
182
- suppositionChildNodes = suppositionNonTerminalNode.getChildNodes(),
183
- nodes = childNodes, ///
184
- suppositionNodes = suppositionChildNodes, ///
185
- suppositionChildNodesMatches = matchSuppositionNodes(suppositionNodes, nodes, substitutions);
186
-
187
- suppositionNonTerminalNodeMatches = suppositionChildNodesMatches; ///
188
-
189
- if (!suppositionNonTerminalNodeMatches) {
190
- const ruleNameStatementRuleName = (ruleName === STATEMENT_RULE_NAME);
191
-
192
- if (ruleNameStatementRuleName) {
193
- const statementNode = nonTerminalNode, ///
194
- suppositionStatementNode = suppositionNonTerminalNode, ///
195
- suppositionStatementNodeMatches = matchSuppositionStatementNode(suppositionStatementNode, statementNode, substitutions);
196
-
197
- suppositionNonTerminalNodeMatches = suppositionStatementNodeMatches; ///
198
- }
199
- }
200
- }
201
-
202
- return suppositionNonTerminalNodeMatches;
203
- }
204
-
205
- function matchSuppositionStatementNode(suppositionStatementNode, statementNode, substitutions) {
206
- let suppositionStatementNodeMatches = false;
207
-
208
- const suppositionNonTerminalNode = suppositionStatementNode, ///
209
- suppositionChildNodes = suppositionNonTerminalNode.getChildNodes(),
210
- suppositionChildNodesLength = suppositionChildNodes.length;
211
-
212
- if (suppositionChildNodesLength === 1) {
213
- const firstSuppositionChildNode = first(suppositionChildNodes),
214
- suppositionChildNode = firstSuppositionChildNode, ///
215
- suppositionChildNodeNonTerminalNode = suppositionChildNode.isNonTerminalNode();
216
-
217
- if (suppositionChildNodeNonTerminalNode) {
218
- const suppositionNonTerminalChildNode = suppositionChildNode, ///
219
- suppositionNonTerminalChildNodeRuleName = suppositionNonTerminalChildNode.getRuleName(),
220
- suppositionNonTerminalChildNodeRuleNameVariableRuleName = (suppositionNonTerminalChildNodeRuleName === VARIABLE_RULE_NAME);
221
-
222
- if (suppositionNonTerminalChildNodeRuleNameVariableRuleName) {
223
- const suppositionVariableNode = suppositionNonTerminalChildNode, ///
224
- nonTerminalNode = statementNode, ///
225
- childNodes = nonTerminalNode.getChildNodes(),
226
- nodes = childNodes, ///
227
- suppositionVariableMatches = matchSuppositionVariable(suppositionVariableNode, nodes, substitutions);
228
-
229
- suppositionStatementNodeMatches = suppositionVariableMatches; ///
230
- }
231
- }
232
- }
233
-
234
- return suppositionStatementNodeMatches;
235
- }
@@ -1,59 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import { first, second, third } from "./array";
3
+ import { matcher } from "../matcher";
4
+ import { first, second, third } from "../utilities/array";
4
5
  import { METASTATEMENT_RULE_NAME } from "../ruleNames";
5
6
  import { BRACKETED_CHILD_NODES_LENGTH, LEFT_BRACKET, RIGHT_BRACKET } from "../constants";
6
7
 
7
- export function matchNode(nodeA, nodeB) {
8
- let nodeMatches = false;
9
-
10
- const nodeATerminalNode = nodeA.isTerminalNode(),
11
- nodeBTerminalNode = nodeB.isTerminalNode();
12
-
13
- if (nodeATerminalNode === nodeBTerminalNode) {
14
- if (nodeATerminalNode) {
15
- const terminalNodeA = nodeA, ///
16
- terminalNodeB = nodeB, ///
17
- terminalNodeMatches = matchTerminalNode(terminalNodeA, terminalNodeB);
18
-
19
- nodeMatches = terminalNodeMatches; ///
20
- } else {
21
- const nonTerminalNodeA = nodeA, ///
22
- nonTerminalNodeB = nodeB, ///
23
- nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
24
-
25
- nodeMatches = nonTerminalNodeMatches; ///
26
- }
27
- }
28
-
29
- return nodeMatches;
30
- }
31
-
32
- export function matchNodes(nodesA, nodesB) {
33
- let nodesMatch = false;
34
-
35
- const nodesALength = nodesA.length,
36
- nodesBLength = nodesB.length;
37
-
38
- if (nodesALength === nodesBLength) {
39
- nodesMatch = nodesA.every((nodeA, index) => {
40
- const nodeB = nodesB[index],
41
- nodeMatches = matchNode(nodeA, nodeB);
42
-
43
- if (nodeMatches) {
44
- return true;
45
- }
46
- })
47
- }
48
-
49
- return nodesMatch;
50
- }
51
-
52
8
  export function matchBracketedNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
53
9
  let bracketedNodeMatches = false;
54
10
 
55
11
  if (!bracketedNodeMatches) {
56
- const nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
12
+ const nonTerminalNodeMatches = matcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
57
13
 
58
14
  bracketedNodeMatches = nonTerminalNodeMatches; ///
59
15
  }
@@ -66,7 +22,7 @@ export function matchBracketedNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB
66
22
  if (bracketedNonTerminalChildNodeA !== null) {
67
23
  const nodeA = bracketedNonTerminalChildNodeA, ///
68
24
  nodeB = nonTerminalNodeB, ///
69
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
70
26
 
71
27
  bracketedNodeMatches = nodeMatches; ///
72
28
  }
@@ -121,29 +77,3 @@ export function bracketedNonTerminalChildNodeFromChildNodes(childNodes, ruleName
121
77
 
122
78
  return bracketedNonTerminalChildNode;
123
79
  }
124
-
125
- function matchTerminalNode(terminalNodeA, terminalNodeB) {
126
- const matches = terminalNodeA.match(terminalNodeB),
127
- terminalNodeMatches = matches; ///
128
-
129
- return terminalNodeMatches;
130
- }
131
-
132
- function matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
133
- let nonTerminalNodeMatches = false;
134
-
135
- const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), ///
136
- nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
137
-
138
- if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
139
- const nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
140
- nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(),
141
- nodesA = nonTerminalNodeAChildNodes, ///
142
- nodesB = nonTerminalNodeBChildNodes, ///
143
- nodesMatch = matchNodes(nodesA, nodesB);
144
-
145
- nonTerminalNodeMatches = nodesMatch; ///
146
- }
147
-
148
- return nonTerminalNodeMatches;
149
- }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import verifyMetaDerivation from "../verify/metaDerivation";
4
4
 
5
- import { matchNode } from "../utilities/node";
5
+ import { matcher } from "../matcher";
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const metaDerivationNodeQuery = nodeQuery("/metaproof/metaDerivation!");
@@ -22,7 +22,7 @@ export default function verifyMetaproof(metaproofNode, conclusion, metaproofCont
22
22
  conclusionMetastatementNode = conclusion.getMetastatementNode(),
23
23
  nodeA = metastatementNode, ///
24
24
  nodeB = conclusionMetastatementNode, ///
25
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
26
26
 
27
27
  metaproofVerified = nodeMatches; ///
28
28
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import verifyDerivation from "../verify/derivation";
4
4
 
5
- import { matchNode } from "../utilities/node";
5
+ import { matcher } from "../matcher";
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const derivationNodeQuery = nodeQuery("/proof/derivation!");
@@ -22,7 +22,7 @@ export default function verifyProof(proofNode, conclusion, proofContext) {
22
22
  conclusionStatementNode = conclusion.getStatementNode(),
23
23
  nodeA = statementNode, ///
24
24
  nodeB = conclusionStatementNode, ///
25
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
26
26
 
27
27
  proofVerified = nodeMatches; ///
28
28
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import verifyRuleDerivation from "../verify/ruleDerivation";
4
4
 
5
- import { matchNode } from "../utilities/node";
5
+ import { matcher } from "../matcher";
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const ruleDerivationNodeQuery = nodeQuery("/ruleProof/ruleDerivation!");
@@ -22,7 +22,7 @@ export default function verifyRuleProof(ruleProofNode, conclusion, metaproofCont
22
22
  conclusionMetastatementNode = conclusion.getMetastatementNode(),
23
23
  nodeA = metastatementNode, ///
24
24
  nodeB = conclusionMetastatementNode, ///
25
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
26
26
 
27
27
  ruleProofVerified = nodeMatches; ///
28
28
  }
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return MetaSubstitution;
9
- }
10
- });
11
- var _ruleNames = require("./ruleNames");
12
- var _node = require("./utilities/node");
13
- function _classCallCheck(instance, Constructor) {
14
- if (!(instance instanceof Constructor)) {
15
- throw new TypeError("Cannot call a class as a function");
16
- }
17
- }
18
- function _defineProperties(target, props) {
19
- for(var i = 0; i < props.length; i++){
20
- var descriptor = props[i];
21
- descriptor.enumerable = descriptor.enumerable || false;
22
- descriptor.configurable = true;
23
- if ("value" in descriptor) descriptor.writable = true;
24
- Object.defineProperty(target, descriptor.key, descriptor);
25
- }
26
- }
27
- function _createClass(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- return Constructor;
31
- }
32
- var MetaSubstitution = /*#__PURE__*/ function() {
33
- function MetaSubstitution(metavariableName, metastatementNode) {
34
- _classCallCheck(this, MetaSubstitution);
35
- this.metavariableName = metavariableName;
36
- this.metastatementNode = metastatementNode;
37
- }
38
- _createClass(MetaSubstitution, [
39
- {
40
- key: "getMetavariableName",
41
- value: function getMetavariableName() {
42
- return this.metavariableName;
43
- }
44
- },
45
- {
46
- key: "getMetastatementNode",
47
- value: function getMetastatementNode() {
48
- return this.metastatementNode;
49
- }
50
- },
51
- {
52
- key: "matchMetastatementNode",
53
- value: function matchMetastatementNode(metastatementNode) {
54
- var matchesMetastatementNode;
55
- var nodeA = this.metastatementNode, nodeB = metastatementNode, nodeMatches = (0, _node.matchNode)(nodeA, nodeB);
56
- matchesMetastatementNode = nodeMatches; ///
57
- if (!matchesMetastatementNode) {
58
- var nonTerminalNode = metastatementNode, childNodes = nonTerminalNode.getChildNodes(), ruleName = _ruleNames.METASTATEMENT_RULE_NAME;
59
- metastatementNode = (0, _node.bracketedNonTerminalChildNodeFromChildNodes)(childNodes, ruleName); ///
60
- if (metastatementNode !== null) {
61
- var nodeA1 = this.metastatementNode, nodeB1 = metastatementNode, nodeMatches1 = (0, _node.matchNode)(nodeA1, nodeB1);
62
- matchesMetastatementNode = nodeMatches1; ///
63
- }
64
- }
65
- return matchesMetastatementNode;
66
- }
67
- }
68
- ], [
69
- {
70
- key: "fromMetavariableNameAndMetastatementNode",
71
- value: function fromMetavariableNameAndMetastatementNode(metavariableName, metastatementNode) {
72
- var metaSubstitution = new MetaSubstitution(metavariableName, metastatementNode);
73
- var nonTerminalNode = metastatementNode, childNodes = nonTerminalNode.getChildNodes(), ruleName = _ruleNames.METASTATEMENT_RULE_NAME;
74
- metastatementNode = (0, _node.bracketedNonTerminalChildNodeFromChildNodes)(childNodes, ruleName); ///
75
- if (metastatementNode !== null) {
76
- metaSubstitution = new MetaSubstitution(metavariableName, metastatementNode);
77
- }
78
- return metaSubstitution;
79
- }
80
- }
81
- ]);
82
- return MetaSubstitution;
83
- }();
84
-
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhU3Vic3RpdHV0aW9uLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgbWF0Y2hOb2RlLCBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZUZyb21DaGlsZE5vZGVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YVN1YnN0aXR1dGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1ldGF2YXJpYWJsZU5hbWUsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5tZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZTtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZU5hbWU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBsZXQgbWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlO1xuXG4gICAgY29uc3Qgbm9kZUEgPSB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgbm9kZUIgPSBtZXRhc3RhdGVtZW50Tm9kZSxcbiAgICAgICAgICBub2RlTWF0Y2hlcyA9IG1hdGNoTm9kZShub2RlQSwgbm9kZUIpO1xuXG4gICAgbWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlID0gbm9kZU1hdGNoZXM7ICAvLy9cblxuICAgIGlmICghbWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksIC8vL1xuICAgICAgICAgICAgcnVsZU5hbWUgPSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZUZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMsIHJ1bGVOYW1lKTsgIC8vL1xuXG4gICAgICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9kZUEgPSB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG5vZGVCID0gbWV0YXN0YXRlbWVudE5vZGUsXG4gICAgICAgICAgICAgIG5vZGVNYXRjaGVzID0gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQik7XG5cbiAgICAgICAgbWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlID0gbm9kZU1hdGNoZXM7ICAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhdmFyaWFibGVOYW1lQW5kTWV0YXN0YXRlbWVudE5vZGUobWV0YXZhcmlhYmxlTmFtZSwgbWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBsZXQgbWV0YVN1YnN0aXR1dGlvbiA9IG5ldyBNZXRhU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZU5hbWUsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgcnVsZU5hbWUgPSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRTtcblxuICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzLCBydWxlTmFtZSk7ICAvLy9cblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgbWV0YVN1YnN0aXR1dGlvbiA9IG5ldyBNZXRhU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZU5hbWUsIG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YVN1YnN0aXR1dGlvbjtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJNZXRhU3Vic3RpdHV0aW9uIiwibWV0YXZhcmlhYmxlTmFtZSIsIm1ldGFzdGF0ZW1lbnROb2RlIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoZXNNZXRhc3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwicnVsZU5hbWUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsImJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMiLCJmcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YVN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFLcUJBOzs7eUJBSG1CO29CQUMrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEQsSUFBQSxBQUFNQSxpQ0FBTjthQUFNQSxpQkFDUEMsZ0JBQWdCLEVBQUVDLGlCQUFpQjs4QkFENUJGO1FBRWpCLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdBO1FBQ3hCLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBOztpQkFIUkY7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCO2dCQUNwQixPQUFPLElBQUksQ0FBQ0YsZ0JBQWdCO1lBQzlCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QjtnQkFDckIsT0FBTyxJQUFJLENBQUNGLGlCQUFpQjtZQUMvQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUJILGlCQUFpQixFQUFFO2dCQUN4QyxJQUFJSTtnQkFFSixJQUFNQyxRQUFRLElBQUksQ0FBQ0wsaUJBQWlCLEVBQzlCTSxRQUFRTixtQkFDUk8sY0FBY0MsSUFBQUEsZUFBUyxFQUFDSCxPQUFPQztnQkFFckNGLDJCQUEyQkcsYUFBYyxHQUFHO2dCQUU1QyxJQUFJLENBQUNILDBCQUEwQjtvQkFDN0IsSUFBTUssa0JBQWtCVCxtQkFDbEJVLGFBQWFELGdCQUFnQkUsYUFBYSxJQUMxQ0MsV0FBV0Msa0NBQXVCO29CQUV4Q2Isb0JBQW9CYyxJQUFBQSxpREFBMkMsRUFBQ0osWUFBWUUsV0FBWSxHQUFHO29CQUUzRixJQUFJWixzQkFBc0IsSUFBSSxFQUFFO3dCQUM5QixJQUFNSyxTQUFRLElBQUksQ0FBQ0wsaUJBQWlCLEVBQzlCTSxTQUFRTixtQkFDUk8sZUFBY0MsSUFBQUEsZUFBUyxFQUFDSCxRQUFPQzt3QkFFckNGLDJCQUEyQkcsY0FBYyxHQUFHO29CQUM5QyxDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBT0g7WUFDVDs7OztZQUVPVyxLQUFBQTttQkFBUCxTQUFPQSx5Q0FBeUNoQixnQkFBZ0IsRUFBRUMsaUJBQWlCLEVBQUU7Z0JBQ25GLElBQUlnQixtQkFBbUIsSUEzQ05sQixpQkEyQzJCQyxrQkFBa0JDO2dCQUU5RCxJQUFNUyxrQkFBa0JULG1CQUNsQlUsYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxXQUFXQyxrQ0FBdUI7Z0JBRXhDYixvQkFBb0JjLElBQUFBLGlEQUEyQyxFQUFDSixZQUFZRSxXQUFZLEdBQUc7Z0JBRTNGLElBQUlaLHNCQUFzQixJQUFJLEVBQUU7b0JBQzlCZ0IsbUJBQW1CLElBcERKbEIsaUJBb0R5QkMsa0JBQWtCQztnQkFDNUQsQ0FBQztnQkFFRCxPQUFPZ0I7WUFDVDs7O1dBeERtQmxCIn0=