occam-verify-cli 0.0.697 → 0.0.698

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 (65) hide show
  1. package/lib/assignment/equality.js +6 -4
  2. package/lib/assignment/metavariable.js +62 -0
  3. package/lib/assignment/variable.js +6 -4
  4. package/lib/context/file.js +34 -26
  5. package/lib/context/local.js +24 -16
  6. package/lib/context/localMeta.js +17 -13
  7. package/lib/equality.js +13 -5
  8. package/lib/metavariable.js +25 -22
  9. package/lib/substitution/metastatementForMetavariable.js +17 -10
  10. package/lib/substitution/statementForMetavariable.js +17 -10
  11. package/lib/substitution/termForVariable.js +17 -11
  12. package/lib/utilities/query.js +2 -16
  13. package/lib/variable.js +33 -27
  14. package/lib/verifier/node/metastatement.js +2 -3
  15. package/lib/verifier/node.js +2 -2
  16. package/lib/verifier/nodes/metastatementForMetavariable.js +5 -5
  17. package/lib/verifier/nodes/statementForMetavariable.js +5 -5
  18. package/lib/verifier/nodes/termForVariable.js +6 -6
  19. package/lib/verifier/nodes.js +2 -2
  20. package/lib/verify/derivation.js +2 -2
  21. package/lib/verify/equality.js +3 -3
  22. package/lib/verify/file.js +2 -2
  23. package/lib/verify/metavariable.js +8 -6
  24. package/lib/verify/standaloneType.js +32 -0
  25. package/lib/verify/statement/unqualified.js +2 -2
  26. package/lib/verify/supposition.js +7 -4
  27. package/lib/verify/term.js +3 -3
  28. package/lib/verify/termAndStandaloneType.js +39 -0
  29. package/lib/verify/termAsVariableAndStandaloneType.js +39 -0
  30. package/lib/verify/theorem.js +3 -3
  31. package/lib/verify/type.js +2 -2
  32. package/lib/verify/typeAssertion.js +57 -91
  33. package/lib/verify/variable.js +12 -10
  34. package/package.json +1 -1
  35. package/src/assignment/equality.js +12 -3
  36. package/src/assignment/metavariable.js +30 -0
  37. package/src/assignment/variable.js +12 -3
  38. package/src/context/file.js +41 -29
  39. package/src/context/local.js +34 -19
  40. package/src/context/localMeta.js +21 -15
  41. package/src/equality.js +10 -3
  42. package/src/metavariable.js +25 -18
  43. package/src/substitution/metastatementForMetavariable.js +13 -7
  44. package/src/substitution/statementForMetavariable.js +13 -7
  45. package/src/substitution/termForVariable.js +13 -9
  46. package/src/utilities/query.js +1 -19
  47. package/src/variable.js +41 -26
  48. package/src/verifier/node/metastatement.js +1 -3
  49. package/src/verifier/nodes/metastatementForMetavariable.js +5 -7
  50. package/src/verifier/nodes/statementForMetavariable.js +5 -7
  51. package/src/verifier/nodes/termForVariable.js +6 -8
  52. package/src/verify/derivation.js +1 -1
  53. package/src/verify/equality.js +2 -2
  54. package/src/verify/file.js +1 -1
  55. package/src/verify/metavariable.js +10 -9
  56. package/src/verify/standaloneType.js +34 -0
  57. package/src/verify/statement/unqualified.js +1 -1
  58. package/src/verify/supposition.js +7 -3
  59. package/src/verify/term.js +3 -4
  60. package/src/verify/termAndStandaloneType.js +37 -0
  61. package/src/verify/termAsVariableAndStandaloneType.js +38 -0
  62. package/src/verify/theorem.js +2 -2
  63. package/src/verify/type.js +1 -1
  64. package/src/verify/typeAssertion.js +76 -112
  65. package/src/verify/variable.js +13 -13
@@ -331,13 +331,13 @@ export default class FileContext {
331
331
  return theorem;
332
332
  }
333
333
 
334
- findVariableByVariableName(variableName) {
335
- const name = variableName, ///
334
+ findVariableByVariableNode(variableNode) {
335
+ const node = variableNode, ///
336
336
  variables = this.getVariables(),
337
337
  variable = variables.find((variable) => {
338
- const matches = variable.matchName(name);
338
+ const nodeMatches = variable.matchNode(node);
339
339
 
340
- if (matches) {
340
+ if (nodeMatches) {
341
341
  return true;
342
342
  }
343
343
  }) || null;
@@ -372,11 +372,11 @@ export default class FileContext {
372
372
  return conjecture;
373
373
  }
374
374
 
375
- findMetavariableByMetavariableName(metavariableName) {
376
- const name = metavariableName, ///
375
+ findMetavariableByMetavariableNode(metavariableNode) {
376
+ const node = metavariableNode, ///
377
377
  metavariables = this.getMetavariables(),
378
378
  metavariable = metavariables.find((metavariable) => {
379
- const matches = metavariable.matchName(name);
379
+ const matches = metavariable.matchNode(node);
380
380
 
381
381
  if (matches) {
382
382
  return true;
@@ -400,15 +400,15 @@ export default class FileContext {
400
400
  return typePresent;
401
401
  }
402
402
 
403
- isVariablePresentByVariableName(variableName) {
404
- const variable = this.findVariableByVariableName(variableName),
403
+ isVariablePresentByVariableNode(variableNode) {
404
+ const variable = this.findVariableByVariableNode(variableNode),
405
405
  variablePresent = (variable !== null);
406
406
 
407
407
  return variablePresent;
408
408
  }
409
409
 
410
- isMetavariablePresentByMetavariableName(metavariableName) {
411
- const metavariable = this.findMetavariableByMetavariableName(metavariableName),
410
+ isMetavariablePresentByMetavariableNode(metavariableNode) {
411
+ const metavariable = this.findMetavariableByMetavariableNode(metavariableNode),
412
412
  metavariablePresent = (metavariable !== null);
413
413
 
414
414
  return metavariablePresent;
@@ -453,18 +453,24 @@ export default class FileContext {
453
453
  }
454
454
 
455
455
  addVariable(variable) {
456
- const variableName = variable.getName();
456
+ let variableAdded = false;
457
457
 
458
- filter(this.variables, (variable) => {
459
- const name = variable.getName(),
460
- nameVariableName = (name === variableName);
458
+ const node = variable.getNode(),
459
+ variablePresent = this.variables.some((variable) => {
460
+ const nodeMatches = variable.matchNode(node);
461
461
 
462
- if (!nameVariableName) {
463
- return true;
464
- }
465
- });
462
+ if (nodeMatches) {
463
+ return true;
464
+ }
465
+ });
466
+
467
+ if (!variablePresent) {
468
+ this.variables.push(variable);
469
+
470
+ variableAdded = true;
471
+ }
466
472
 
467
- this.variables.push(variable);
473
+ return variableAdded;
468
474
  }
469
475
 
470
476
  addConjecture(conjecture) {
@@ -480,18 +486,24 @@ export default class FileContext {
480
486
  }
481
487
 
482
488
  addMetavariable(metavariable) {
483
- const metavariableName = metavariable.getName();
489
+ let metavariableAdded = false;
484
490
 
485
- filter(this.metavariables, (metavariable) => {
486
- const name = metavariable.getName(),
487
- nameMetavariableName = (name === metavariableName);
491
+ const node = metavariable.getNode(),
492
+ metavariablePresent = this.metavariables.some((metavariable) => {
493
+ const nodeMatches = metavariable.matchNode(node);
488
494
 
489
- if (!nameMetavariableName) {
490
- return true;
491
- }
492
- });
495
+ if (nodeMatches) {
496
+ return true;
497
+ }
498
+ });
499
+
500
+ if (!metavariablePresent) {
501
+ this.metavariables.push(metavariable);
502
+
503
+ metavariableAdded = true;
504
+ }
493
505
 
494
- this.metavariables.push(metavariable);
506
+ return metavariableAdded;
495
507
  }
496
508
 
497
509
  trace(message, node) { this.releaseContext.trace(message, node, this.tokens, this.filePath); }
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  import Variable from "../variable";
4
- import Equality from "../equality";
5
4
  import Collection from "../collection";
6
5
  import fileMixins from "../mixins/file";
7
6
  import loggingMixins from "../mixins/logging";
8
7
 
9
- import { last, filter } from "../utilities/array";
8
+ import { last } from "../utilities/array";
10
9
  import { mergeCollections, findCollectionByType, findCollectionByTerm, findCollectionByTerms } from "../utilities/collection";
11
10
 
12
11
  class LocalContext {
@@ -69,15 +68,17 @@ class LocalContext {
69
68
  getMetavariables() { return this.context.getMetavariables(); }
70
69
 
71
70
  addEquality(equality) {
71
+ let equalityAdded;
72
+
72
73
  const equalityReflexive = equality.isReflexive();
73
74
 
74
75
  if (equalityReflexive) {
75
- ///
76
+ equalityAdded = true; ///
76
77
  } else {
77
78
  const leftTerm = equality.getLeftTerm(),
78
79
  rightTerm = equality.getRightTerm(),
79
- leftCollection = this.findCollectionByTerm(leftTerm),
80
- rightCollection = this.findCollectionByTerm(rightTerm);
80
+ leftCollection = findCollectionByTerm(this.collections, leftTerm),
81
+ rightCollection = findCollectionByTerm(this.collections, rightTerm);
81
82
 
82
83
  if (false) {
83
84
  ///
@@ -85,37 +86,51 @@ class LocalContext {
85
86
  const collection = Collection.fromEquality(equality);
86
87
 
87
88
  this.addCollection(collection);
89
+
90
+ equalityAdded = true;
88
91
  } else if ((leftCollection !== null) && (rightCollection === null)) {
89
92
  const term = rightTerm, ///
90
93
  collection = leftCollection; ///
91
94
 
92
95
  collection.addTerm(term);
96
+
97
+ equalityAdded = true;
93
98
  } else if ((leftCollection === null) && (rightCollection !== null)) {
94
99
  const term = leftTerm, ///
95
100
  collection = rightCollection; ///
96
101
 
97
102
  collection.addTerm(term);
103
+
104
+ equalityAdded = true;
98
105
  } else if ((leftCollection !== null) && (rightCollection !== null)) {
99
106
 
100
107
  debugger
101
108
 
102
109
  }
103
110
  }
111
+
112
+ return equalityAdded;
104
113
  }
105
114
 
106
115
  addVariable(variable) {
107
- const variableName = variable.getName();
116
+ let variableAdded = false;
108
117
 
109
- filter(this.variables, (variable) => {
110
- const name = variable.getName(),
111
- nameVariableName = (name === variableName);
118
+ const node = variable.getNode(),
119
+ variablePresent = this.variables.some((variable) => {
120
+ const nodeMatches = variable.matchNode(node);
112
121
 
113
- if (!nameVariableName) {
114
- return true;
115
- }
116
- });
122
+ if (nodeMatches) {
123
+ return true;
124
+ }
125
+ });
126
+
127
+ if (!variablePresent) {
128
+ this.variables.push(variable);
129
+
130
+ variableAdded = true;
131
+ }
117
132
 
118
- this.variables.push(variable);
133
+ return variableAdded;
119
134
  }
120
135
 
121
136
  addProofStep(proofStep) {
@@ -169,11 +184,11 @@ class LocalContext {
169
184
  return collection;
170
185
  }
171
186
 
172
- findVariableByVariableName(variableName) {
173
- const name = variableName, ///
187
+ findVariableByVariableNode(variableNode) {
188
+ const node = variableNode, ///
174
189
  variables = this.getVariables(),
175
190
  variable = variables.find((variable) => {
176
- const matches = variable.matchName(name);
191
+ const matches = variable.matchNode(node);
177
192
 
178
193
  if (matches) {
179
194
  return true;
@@ -183,8 +198,8 @@ class LocalContext {
183
198
  return variable;
184
199
  }
185
200
 
186
- isVariablePresentByVariableName(variableName) {
187
- const variable = this.findVariableByVariableName(variableName),
201
+ isVariablePresentByVariableNode(variableNode) {
202
+ const variable = this.findVariableByVariableNode(variableNode),
188
203
  variablePresent = (variable !== null);
189
204
 
190
205
  return variablePresent;
@@ -3,7 +3,7 @@
3
3
  import fileMixins from "../mixins/file";
4
4
  import loggingMixins from "../mixins/logging";
5
5
 
6
- import { last, filter } from "../utilities/array";
6
+ import { last } from "../utilities/array";
7
7
 
8
8
  class LocalMetaContext {
9
9
  constructor(context, metavariables, metaproofSteps) {
@@ -53,18 +53,24 @@ class LocalMetaContext {
53
53
  }
54
54
 
55
55
  addMetavariable(metavariable) {
56
- const metavariableName = metavariable.getName();
56
+ let metavariableAdded = false;
57
57
 
58
- filter(this.metavariables, (metavariable) => {
59
- const name = metavariable.getName(),
60
- nameMetavariableName = (name === metavariableName);
58
+ const node = metavariable.getName(),
59
+ metavariablePresent = this.metavariables.some((metavariable) => {
60
+ const nodeMatches = metavariable.matchNode(node);
61
61
 
62
- if (!nameMetavariableName) {
63
- return true;
64
- }
65
- });
62
+ if (nodeMatches) {
63
+ return true;
64
+ }
65
+ });
66
+
67
+ if (!metavariablePresent) {
68
+ this.metavariables.push(metavariable);
69
+
70
+ metavariableAdded = true;
71
+ }
66
72
 
67
- this.metavariables.push(metavariable);
73
+ return metavariableAdded;
68
74
  }
69
75
 
70
76
  addMetaproofStep(metaproofStep) {
@@ -93,11 +99,11 @@ class LocalMetaContext {
93
99
  return metastatementMatches;
94
100
  }
95
101
 
96
- findMetavariableByMetavariableName(metavariableName) {
97
- const name = metavariableName, ///
102
+ findMetavariableByMetavariableNode(metavariableNode) {
103
+ const node = metavariableNode, ///
98
104
  metavariables = this.getMetavariables(),
99
105
  metavariable = metavariables.find((metavariable) => {
100
- const matches = metavariable.matchName(name);
106
+ const matches = metavariable.matchNode(node);
101
107
 
102
108
  if (matches) {
103
109
  return true;
@@ -107,8 +113,8 @@ class LocalMetaContext {
107
113
  return metavariable;
108
114
  }
109
115
 
110
- isMetavariablePresentByMetavariableName(metavariableName) {
111
- const metavariable = this.findMetavariableByMetavariableName(metavariableName),
116
+ isMetavariablePresentByMetavariableNode(metavariableNode) {
117
+ const metavariable = this.findMetavariableByMetavariableNode(metavariableNode),
112
118
  metavariablePresent = (metavariable !== null);
113
119
 
114
120
  return metavariablePresent;
package/src/equality.js CHANGED
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  export default class Equality {
4
- constructor(leftTerm, rightTerm) {
4
+ constructor(node, leftTerm, rightTerm) {
5
+ this.node = node;
5
6
  this.leftTerm = leftTerm;
6
7
  this.rightTerm = rightTerm;
7
8
  }
8
9
 
10
+ getNode() {
11
+ return this.node;
12
+ }
13
+
9
14
  getLeftTerm() {
10
15
  return this.leftTerm;
11
16
  }
@@ -21,7 +26,7 @@ export default class Equality {
21
26
  return reflexive;
22
27
  }
23
28
 
24
- static fromLeftTermAndRightTerm(leftTerm, rightTerm) {
29
+ static fromEqualityNodeLeftTermAndRightTerm(equalityNode, leftTerm, rightTerm) {
25
30
  let equality = null;
26
31
 
27
32
  const leftTermType = leftTerm.getType(),
@@ -29,7 +34,9 @@ export default class Equality {
29
34
  leftTermTypeEqualToSubTypeOfOrSuperTypeOfRightTermType = leftTermType.isEqualToSubTypeOfOrSuperTypeOf(rightTermType);
30
35
 
31
36
  if (leftTermTypeEqualToSubTypeOfOrSuperTypeOfRightTermType) {
32
- equality = new Equality(leftTerm, rightTerm);
37
+ const node = equalityNode; ///
38
+
39
+ equality = new Equality(node, leftTerm, rightTerm);
33
40
  }
34
41
 
35
42
  return equality;
@@ -2,32 +2,35 @@
2
2
 
3
3
  import MetaType from "./metaType";
4
4
 
5
+ import { nodeAsString } from "./utilities/string";
6
+
5
7
  export default class Metavariable {
6
- constructor(name, metaType) {
7
- this.name = name;
8
+ constructor(node, metaType) {
9
+ this.node = node;
8
10
  this.metaType = metaType;
9
11
  }
10
12
 
11
- getName() {
12
- return this.name;
13
+ getNode() {
14
+ return this.node;
13
15
  }
14
16
 
15
17
  getMetaType() {
16
18
  return this.metaType;
17
19
  }
18
20
 
19
- matchName(name) {
20
- const nameMatches = (this.name === name);
21
+ matchNode(node) {
22
+ const nodeMatches = this.node.match(node);
21
23
 
22
- return nameMatches;
24
+ return nodeMatches;
23
25
  }
24
26
 
25
27
  toJSON(tokens) {
26
28
  const metaTypeJSON = this.metaType.toJSON(tokens),
27
- name = this.name, ///
28
29
  metaType = metaTypeJSON, ///
30
+ string = nodeAsString(this.node, tokens),
31
+ node = string, ///
29
32
  json = {
30
- name,
33
+ node,
31
34
  metaType
32
35
  };
33
36
 
@@ -35,20 +38,17 @@ export default class Metavariable {
35
38
  }
36
39
 
37
40
  asString(tokens) {
38
- const metaTypeName = this.metaType.getName(),
39
- string = `${this.name}:${metaTypeName}`;
41
+ const metaTypeName = this.metaType.getName();
40
42
 
41
- return string;
42
- }
43
+ let string = nodeAsString(this.node, tokens);
43
44
 
44
- static fromNameAndMetaType(name, metaType) {
45
- const metavariable = new Metavariable(name, metaType);
45
+ string = `${string}:${metaTypeName}`;
46
46
 
47
- return metavariable;
47
+ return string;
48
48
  }
49
49
 
50
50
  static fromJSONAndFileContext(json, fileContext) {
51
- const { name } = json;
51
+ const { node } = json;
52
52
 
53
53
  let { metaType } = json;
54
54
 
@@ -60,7 +60,14 @@ export default class Metavariable {
60
60
 
61
61
  metaType = fileContext.findMetaTypeByMetaTypeName(metaTypeName); ///
62
62
 
63
- const metavariable = new Metavariable(name, metaType);
63
+ const metavariable = new Metavariable(node, metaType);
64
+
65
+ return metavariable;
66
+ }
67
+
68
+ static fromMetavariableNodeAndMetaType(metavariableNode, metaType) {
69
+ const node = metavariableNode, ///
70
+ metavariable = new Metavariable(node, metaType);
64
71
 
65
72
  return metavariable;
66
73
  }
@@ -3,19 +3,25 @@
3
3
  import { bracketedMetastatementChildNodeFromMetastatementNode } from "../utilities/metaproof";
4
4
 
5
5
  export default class MetastatementForMetavariableSubstitution {
6
- constructor(metavariableName, metastatementNode) {
7
- this.metavariableName = metavariableName;
6
+ constructor(metavariableNode, metastatementNode) {
7
+ this.metavariableNode = metavariableNode;
8
8
  this.metastatementNode = metastatementNode;
9
9
  }
10
10
 
11
- getMetavariableName() {
12
- return this.metavariableName;
11
+ getMetavariableNode() {
12
+ return this.metavariableNode;
13
13
  }
14
14
 
15
15
  getMetastatementNode() {
16
16
  return this.metastatementNode;
17
17
  }
18
18
 
19
+ matchMetavariableNode(metavariableNode) {
20
+ const metavariableNodeMatches = this.metavariableNode.match(metavariableNode);
21
+
22
+ return metavariableNodeMatches;
23
+ }
24
+
19
25
  matchMetastatementNode(metastatementNode) {
20
26
  let metastatementNodeMatches;
21
27
 
@@ -34,15 +40,15 @@ export default class MetastatementForMetavariableSubstitution {
34
40
  return metastatementNodeMatches;
35
41
  }
36
42
 
37
- static fromMetavariableNameAndMetastatementNode(metavariableName, metastatementNode) {
38
- let metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metavariableName, metastatementNode);
43
+ static fromMetavariableNodeAndMetastatementNode(metavariableNode, metastatementNode) {
44
+ let metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metavariableNode, metastatementNode);
39
45
 
40
46
  const bracketedMetastatementChildNode = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNode);
41
47
 
42
48
  if (bracketedMetastatementChildNode !== null) {
43
49
  const metastatementNode = bracketedMetastatementChildNode; ///
44
50
 
45
- metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metavariableName, metastatementNode);
51
+ metastatementForMetavariableSubstitution = new MetastatementForMetavariableSubstitution(metavariableNode, metastatementNode);
46
52
  }
47
53
 
48
54
  return metastatementForMetavariableSubstitution;
@@ -3,13 +3,13 @@
3
3
  import { bracketedStatementChildNodeFromStatementNode } from "../utilities/proof";
4
4
 
5
5
  export default class StatementForMetavariableSubstitution {
6
- constructor(metavariableName, statementNode) {
7
- this.metavariableName = metavariableName;
6
+ constructor(metavariableNode, statementNode) {
7
+ this.metavariableNode = metavariableNode;
8
8
  this.statementNode = statementNode;
9
9
  }
10
10
 
11
- getMetavariableName() {
12
- return this.metavariableName;
11
+ getMetavariableNode() {
12
+ return this.metavariableNode;
13
13
  }
14
14
 
15
15
  getStatementNode() {
@@ -34,15 +34,21 @@ export default class StatementForMetavariableSubstitution {
34
34
  return statementNodeMatches;
35
35
  }
36
36
 
37
- static fromMetavariableNameAndStatementNode(metavariableName, statementNode) {
38
- let statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableName, statementNode);
37
+ matchMetavariableNode(metavariableNode) {
38
+ const metavariableNodeMatches = this.metavariableNode.match(metavariableNode);
39
+
40
+ return metavariableNodeMatches;
41
+ }
42
+
43
+ static fromMetavariableNodeAndStatementNode(metavariableNode, statementNode) {
44
+ let statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, statementNode);
39
45
 
40
46
  const bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
41
47
 
42
48
  if (bracketedStatementChildNode !== null) {
43
49
  const statementNode = bracketedStatementChildNode; ///
44
50
 
45
- statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableName, statementNode);
51
+ statementForMetavariableSubstitution = new StatementForMetavariableSubstitution(metavariableNode, statementNode);
46
52
  }
47
53
 
48
54
  return statementForMetavariableSubstitution;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  export default class TermForVariableSubstitution {
4
- constructor(variableName, termNode) {
5
- this.variableName = variableName;
4
+ constructor(variableNode, termNode) {
5
+ this.variableNode = variableNode;
6
6
  this.termNode = termNode;
7
7
  }
8
8
 
9
- getVariableName() {
10
- return this.variableName;
9
+ getVariableNode() {
10
+ return this.variableNode;
11
11
  }
12
12
 
13
13
  getTermNode() {
@@ -15,15 +15,19 @@ export default class TermForVariableSubstitution {
15
15
  }
16
16
 
17
17
  matchTermNode(termNode) {
18
- let termNodeMatches;
19
-
20
- termNodeMatches = this.termNode.match(termNode);
18
+ const termNodeMatches = this.termNode.match(termNode);
21
19
 
22
20
  return termNodeMatches;
23
21
  }
24
22
 
25
- static fromVariableNameAndTermNode(variableName, termNode) {
26
- const termForVariableSubstitution = new TermForVariableSubstitution(variableName, termNode);
23
+ matchVariableNode(variableNode) {
24
+ const variableNodeMatches = this.variableNode.match(variableNode);
25
+
26
+ return variableNodeMatches;
27
+ }
28
+
29
+ static fromVariableNodeAndTermNode(variableNode, termNode) {
30
+ const termForVariableSubstitution = new TermForVariableSubstitution(variableNode, termNode);
27
31
 
28
32
  return termForVariableSubstitution;
29
33
  }
@@ -5,9 +5,7 @@ import { Query } from "occam-dom";
5
5
  const typeTerminalNodeQuery = nodeQuery("/type/@type"),
6
6
  metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type"),
7
7
  labelNameTerminalNodeQuery = nodeQuery("/label/@name"),
8
- variableNameTerminalNodeQuery = nodeQuery("/variable/@name"),
9
- referenceNameTerminalNodeQuery = nodeQuery("/reference/@name"),
10
- metavariableNameTerminalNodeQuery = nodeQuery("/metavariable/@name");
8
+ referenceNameTerminalNodeQuery = nodeQuery("/reference/@name");
11
9
 
12
10
  export function nodeQuery(expression) {
13
11
  const query = Query.fromExpression(expression);
@@ -71,14 +69,6 @@ export function metaTypeNameFromMetaTypeNode(metaTypeNode) {
71
69
  return metaTypeName;
72
70
  }
73
71
 
74
- export function variableNameFromVariableNode(variableNode) {
75
- const variableNameTerminalNode = variableNameTerminalNodeQuery(variableNode),
76
- variableNameTerminalNodeContent = variableNameTerminalNode.getContent(),
77
- variableName = variableNameTerminalNodeContent; ///
78
-
79
- return variableName;
80
- }
81
-
82
72
  export function referenceNameFromReferenceNode(referenceNode) {
83
73
  const referenceNameTerminalNode = referenceNameTerminalNodeQuery(referenceNode),
84
74
  referenceNameTerminalNodeContent = referenceNameTerminalNode.getContent(),
@@ -86,11 +76,3 @@ export function referenceNameFromReferenceNode(referenceNode) {
86
76
 
87
77
  return referenceName;
88
78
  }
89
-
90
- export function metavariableNameFromMetavariableNode(metavariableNode) {
91
- const metavariableNameTerminalNode = metavariableNameTerminalNodeQuery(metavariableNode),
92
- metavariableNameTerminalNodeContent = metavariableNameTerminalNode.getContent(),
93
- metavariableName = metavariableNameTerminalNodeContent; ///
94
-
95
- return metavariableName;
96
- }