occam-verify-cli 0.0.870 → 0.0.871

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 (45) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +13 -13
  2. package/lib/context/file.js +77 -73
  3. package/lib/label.js +5 -6
  4. package/lib/metaLemmaMetatheorem.js +13 -13
  5. package/lib/mixins/context.js +28 -28
  6. package/lib/rule.js +13 -13
  7. package/lib/ruleNames.js +4 -4
  8. package/lib/utilities/name.js +8 -8
  9. package/lib/utilities/node.js +14 -14
  10. package/lib/utilities/query.js +4 -9
  11. package/lib/utilities/tokens.js +6 -6
  12. package/lib/verify/axiom.js +4 -4
  13. package/lib/verify/conjecture.js +4 -4
  14. package/lib/verify/label.js +8 -9
  15. package/lib/verify/labels.js +15 -8
  16. package/lib/verify/lemma.js +4 -4
  17. package/lib/verify/metaLemma.js +4 -4
  18. package/lib/verify/metastatement/qualified.js +3 -3
  19. package/lib/verify/metatheorem.js +4 -4
  20. package/lib/verify/rule.js +4 -4
  21. package/lib/verify/statement/qualified.js +29 -29
  22. package/lib/verify/theorem.js +4 -4
  23. package/package.json +1 -1
  24. package/src/axiomLemmaTheoremConjecture.js +13 -13
  25. package/src/context/file.js +79 -73
  26. package/src/label.js +6 -7
  27. package/src/metaLemmaMetatheorem.js +13 -13
  28. package/src/mixins/context.js +17 -17
  29. package/src/rule.js +13 -13
  30. package/src/ruleNames.js +1 -1
  31. package/src/utilities/name.js +7 -7
  32. package/src/utilities/node.js +13 -13
  33. package/src/utilities/query.js +3 -9
  34. package/src/utilities/tokens.js +4 -4
  35. package/src/verify/axiom.js +4 -4
  36. package/src/verify/conjecture.js +4 -4
  37. package/src/verify/label.js +8 -9
  38. package/src/verify/labels.js +17 -7
  39. package/src/verify/lemma.js +4 -4
  40. package/src/verify/metaLemma.js +4 -4
  41. package/src/verify/metastatement/qualified.js +5 -4
  42. package/src/verify/metatheorem.js +4 -4
  43. package/src/verify/rule.js +4 -4
  44. package/src/verify/statement/qualified.js +35 -30
  45. package/src/verify/theorem.js +4 -4
@@ -32,19 +32,6 @@ export default class MetaLemmaMetatheorem {
32
32
  return this.localContext;
33
33
  }
34
34
 
35
- matchLabelNode(labelNode) {
36
- const labelNodeMatches = this.labels.some((label) => {
37
- const node = labelNode, ///
38
- labelMatchesNode = label.matchNode(node);
39
-
40
- if (labelMatchesNode) {
41
- return true;
42
- }
43
- });
44
-
45
- return labelNodeMatches;
46
- }
47
-
48
35
  matchMetastatement(metastatementNode, metastatementLocalContext) {
49
36
  let metastatementNatches;
50
37
 
@@ -79,6 +66,19 @@ export default class MetaLemmaMetatheorem {
79
66
  return metastatementNatches;
80
67
  }
81
68
 
69
+ matchLabelMetavariableNode(labelMetavariableNode) {
70
+ const labelMetavariableNodeMatches = this.labels.some((label) => {
71
+ const node = labelMetavariableNode, ///
72
+ labelMatchesNode = label.matchNode(node);
73
+
74
+ if (labelMatchesNode) {
75
+ return true;
76
+ }
77
+ });
78
+
79
+ return labelMetavariableNodeMatches;
80
+ }
81
+
82
82
  toJSON(tokens) {
83
83
  const labelsJSON = this.labels.map((label) => {
84
84
  const labelJSON = label.toJSON(tokens);
@@ -26,25 +26,25 @@ function getConstructors() { return this.context.getConstructors(); }
26
26
 
27
27
  function findTypeByTypeName(typeName) { return this.context.findTypeByTypeName(typeName); }
28
28
 
29
- function findTypeByTypeNode(labelNode) { return this.context.findTypeByTypeNode(labelNode); }
29
+ function findTypeByTypeNode(labelMetavariableNode) { return this.context.findTypeByTypeNode(labelMetavariableNode); }
30
30
 
31
- function findLabelByLabelNode(labelNode) { return this.context.findLabelByLabelNode(labelNode); }
31
+ function isTypePresentByTypeName(typeName) { return this.context.isTypePresentByTypeName(typeName); }
32
32
 
33
- function findRuleByLabelNode(labelNode) { return this.context.findRuleByLabelNode(labelNode); }
33
+ function isTypePresentByTypeNode(typeNode) { return this.context.isTypePresentByTypeNode(typeNode); }
34
34
 
35
- function findAxiomByLabelNode(labelNode) { return this.context.findAxiomByLabelNode(labelNode); }
35
+ function findLabelByLabelMetavariableNode(labelMetavariableNode) { return this.context.findLabelByLabelMetavariableNode(labelMetavariableNode); }
36
36
 
37
- function findLemmaByLabelNode(labelNode) { return this.context.findLemmaByLabelNode(labelNode); }
37
+ function findRuleByLabelMetavariableNode(labelMetavariableNode) { return this.context.findRuleByLabelMetavariableNode(labelMetavariableNode); }
38
38
 
39
- function findTheoremByLabelNode(labelNode) { return this.context.findTheoremByLabelNode(labelNode); }
39
+ function findAxiomByLabelMetavariableNode(labelMetavariableNode) { return this.context.findAxiomByLabelMetavariableNode(labelMetavariableNode); }
40
40
 
41
- function findConjectureByLabelNode(labelNode) { return this.context.findConjectureByLabelNode(labelNode); }
41
+ function findLemmaByLabelMetavariableNode(labelMetavariableNode) { return this.context.findLemmaByLabelMetavariableNode(labelMetavariableNode); }
42
42
 
43
- function isTypePresentByTypeName(typeName) { return this.context.isTypePresentByTypeName(typeName); }
43
+ function findTheoremByLabelMetavariableNode(labelMetavariableNode) { return this.context.findTheoremByLabelMetavariableNode(labelMetavariableNode); }
44
44
 
45
- function isTypePresentByTypeNode(typeNode) { return this.context.isTypePresentByTypeNode(typeNode); }
45
+ function findConjectureByLabelMetavariableNode(labelMetavariableNode) { return this.context.findConjectureByLabelMetavariableNode(labelMetavariableNode); }
46
46
 
47
- function isLabelPresentByLabelNode(labelNode) { return this.context.isLabelPresentByLabelNode(labelNode); }
47
+ function isLabelPresentByLabelMetavariableNode(labelMetavariableNode) { return this.context.isLabelPresentByLabelMetavariableNode(labelMetavariableNode); }
48
48
 
49
49
  function nodeAsString(node) { return this.context.nodeAsString(node); }
50
50
 
@@ -65,15 +65,15 @@ const contextMixins = {
65
65
  getConstructors,
66
66
  findTypeByTypeName,
67
67
  findTypeByTypeNode,
68
- findLabelByLabelNode,
69
- findRuleByLabelNode,
70
- findAxiomByLabelNode,
71
- findLemmaByLabelNode,
72
- findTheoremByLabelNode,
73
- findConjectureByLabelNode,
74
68
  isTypePresentByTypeName,
75
69
  isTypePresentByTypeNode,
76
- isLabelPresentByLabelNode,
70
+ findLabelByLabelMetavariableNode,
71
+ findRuleByLabelMetavariableNode,
72
+ findAxiomByLabelMetavariableNode,
73
+ findLemmaByLabelMetavariableNode,
74
+ findTheoremByLabelMetavariableNode,
75
+ findConjectureByLabelMetavariableNode,
76
+ isLabelPresentByLabelMetavariableNode,
77
77
  nodeAsString,
78
78
  nodesAsString
79
79
  };
package/src/rule.js CHANGED
@@ -31,19 +31,6 @@ export default class Rule {
31
31
  return this.fileContext;
32
32
  }
33
33
 
34
- matchLabelNode(labelNode) {
35
- const labelNodeMatches = this.labels.some((label) => {
36
- const node = labelNode, ///
37
- labelMatchesNode = label.matchNode(node);
38
-
39
- if (labelMatchesNode) {
40
- return true;
41
- }
42
- });
43
-
44
- return labelNodeMatches;
45
- }
46
-
47
34
  matchStatement(statementNode, statementLocalContext) {
48
35
  let statementNatches;
49
36
 
@@ -112,6 +99,19 @@ export default class Rule {
112
99
  return metastatementNatches;
113
100
  }
114
101
 
102
+ matchLabelMetavariableNode(labelMetavariableNode) {
103
+ const labelMetavariableNodeMatches = this.labels.some((label) => {
104
+ const node = labelMetavariableNode, ///
105
+ labelMatchesNode = label.matchNode(node);
106
+
107
+ if (labelMatchesNode) {
108
+ return true;
109
+ }
110
+ });
111
+
112
+ return labelMetavariableNodeMatches;
113
+ }
114
+
115
115
  toJSON(tokens) {
116
116
  const labelsJSON = this.labels.map((label) => {
117
117
  const labelJSON = label.toJSON(tokens);
package/src/ruleNames.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- export const LABEL_RULE_NAME = "label";
4
3
  export const SUBPROOF_RULE_NAME = "subproof";
4
+ export const METAVARIABLE_RULE_NAME = "metavariable";
5
5
  export const RULE_SUBPROOF_RULE_NAME = "ruleSubproof";
6
6
  export const META_SUBPROOF_RULE_NAME = "metaSubproof";
7
7
  export const META_ARGUMENT_RULE_NAME = "metaArgument";
@@ -3,8 +3,8 @@
3
3
  import { nodeQuery } from "../utilities/query";
4
4
 
5
5
  const typeTerminalNodeQuery = nodeQuery("/type/@type"),
6
- metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type"),
7
- labelNameTerminalNodeQuery = nodeQuery("/label/@name");
6
+ nameTerminalNodeQuery = nodeQuery("/metavariable/@name"),
7
+ metaTypeTerminalNodeQuery = nodeQuery("/metaType/@meta-type");
8
8
 
9
9
  export function typeNameFromTypeNode(typeNode) {
10
10
  let typeName = null;
@@ -19,12 +19,12 @@ export function typeNameFromTypeNode(typeNode) {
19
19
  return typeName;
20
20
  }
21
21
 
22
- export function labelNameFromLabelNode(labelNode) {
23
- const labelNameTerminalNode = labelNameTerminalNodeQuery(labelNode),
24
- labelNameTerminalNodeContent = labelNameTerminalNode.getContent(),
25
- labelName = labelNameTerminalNodeContent; ///
22
+ export function nameFromMetavariableNode(metavariableNode) {
23
+ const nameTerminalNode = nameTerminalNodeQuery(metavariableNode),
24
+ nameTerminalNodeContent = nameTerminalNode.getContent(),
25
+ name = nameTerminalNodeContent; ///
26
26
 
27
- return labelName;
27
+ return name;
28
28
  }
29
29
 
30
30
  export function metaTypeNameFromMetaTypeNode(metaTypeNode) {
@@ -4,12 +4,12 @@ import { parsersUtilities } from "occam-custom-grammars";
4
4
 
5
5
  import { nodeQuery } from "../utilities/query";
6
6
  import { combinedCustomGrammarFromNothing } from "./customGrammar";
7
- import { LABEL_RULE_NAME,
7
+ import { METAVARIABLE_RULE_NAME,
8
8
  VARIABLE_DECLARATION_RULE_NAME,
9
9
  UNQUALIFIED_STATEMENT_RULE_NAME,
10
10
  CONSTRUCTOR_DECLARATION_RULE_NAME,
11
11
  UNQUALIFIED_METASTATEMENT_RULE_NAME } from "../ruleNames";
12
- import { labelTokensFromLabelString,
12
+ import { metavariableTokensFromMetavariableString,
13
13
  variableDeclarationTokensFromVariableString,
14
14
  unqualifiedStatementTokensFromStatementString,
15
15
  unqualifiedMetastatementTokensFromMetastatementString } from "../utilities/tokens";
@@ -24,13 +24,6 @@ const termNodeQuery = nodeQuery("/constructorDeclaration/term!"),
24
24
  statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
25
25
  metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
26
26
 
27
- export function labelNodeFromLabelString(labelString, lexer, parser) {
28
- const labelTokens = labelTokensFromLabelString(labelString, lexer),
29
- labelNode = labelNodeFromLabelTokens(labelTokens, parser);
30
-
31
- return labelNode;
32
- }
33
-
34
27
  export function variableNodeFromVariableString(variableString, lexer, parser) {
35
28
  const variableTDeclarationTokens = variableDeclarationTokensFromVariableString(variableString, lexer),
36
29
  variableNode = variableNodeFromVariableVariableTDeclarationTokens(variableTDeclarationTokens, parser);
@@ -45,6 +38,13 @@ export function statementNodeFromStatementString(statementString, lexer, parser)
45
38
  return statementNode;
46
39
  }
47
40
 
41
+ export function metavariableNodeFromMetavariableString(metavariableString, lexer, parser) {
42
+ const metavariableTokens = metavariableTokensFromMetavariableString(metavariableString, lexer),
43
+ metavariableNode = metavariableNodeFromMetavariableTokens(metavariableTokens, parser);
44
+
45
+ return metavariableNode;
46
+ }
47
+
48
48
  export function metastatementNodeFromMetastatementString(metastatementString, lexer, parser) {
49
49
  const unqualifiedMetastatementTokens = unqualifiedMetastatementTokensFromMetastatementString(metastatementString, lexer),
50
50
  metastatementNode = metastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser);
@@ -80,11 +80,11 @@ export function metastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedM
80
80
  return metastatementNode;
81
81
  }
82
82
 
83
- export function labelNodeFromLabelTokens(labelTokens, parser) {
84
- const ruleName = LABEL_RULE_NAME,
85
- labelNode = nodeFromTokensRuleNameAndParser(labelTokens, ruleName, parser);
83
+ export function metavariableNodeFromMetavariableTokens(metavariableTokens, parser) {
84
+ const ruleName = METAVARIABLE_RULE_NAME,
85
+ metavariableNode = nodeFromTokensRuleNameAndParser(metavariableTokens, ruleName, parser);
86
86
 
87
- return labelNode;
87
+ return metavariableNode;
88
88
  }
89
89
 
90
90
  export function variableDeclarationNodeFromVariableTDeclarationTokens(variableTDeclarationTokens, parser) {
@@ -6,11 +6,9 @@ export function nodeQuery(expression) {
6
6
  const query = Query.fromExpression(expression);
7
7
 
8
8
  return function(node) {
9
- if (node !== null) {
10
- const nodes = query.execute(node);
9
+ const nodes = query.execute(node);
11
10
 
12
- node = nodes.shift() || null; ///
13
- }
11
+ node = nodes.shift() || null; ///
14
12
 
15
13
  return node;
16
14
  };
@@ -20,11 +18,7 @@ export function nodesQuery(expression) {
20
18
  const query = Query.fromExpression(expression);
21
19
 
22
20
  return function(node) {
23
- let nodes = null;
24
-
25
- if (node !== null) {
26
- nodes = query.execute(node);
27
- }
21
+ const nodes = query.execute(node);
28
22
 
29
23
  return nodes;
30
24
  };
@@ -9,11 +9,11 @@ const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities;
9
9
  const combinedCustomGrammar = combinedCustomGrammarFromNothing(),
10
10
  florenceLexer = florenceLexerFromCombinedCustomGrammar(combinedCustomGrammar);
11
11
 
12
- export function labelTokensFromLabelString(labelString, lexer) {
13
- const labelContent = `${labelString}`,
14
- labelTokens = tokensFromContentAndLexer(labelContent, lexer);
12
+ export function metavariableTokensFromMetavariableString(metavariableString, lexer) {
13
+ const metavariableContent = `${metavariableString}`,
14
+ metavariableTokens = tokensFromContentAndLexer(metavariableContent, lexer);
15
15
 
16
- return labelTokens;
16
+ return metavariableTokens;
17
17
  }
18
18
 
19
19
  export function constructorDeclarationTokensFromTermString(termString, lexer) {
@@ -9,21 +9,21 @@ import verifySuppositions from "../verify/suppositions";
9
9
  import { first } from "../utilities/array";
10
10
  import { nodeQuery, nodesQuery } from "../utilities/query";
11
11
 
12
- const labelNodesQuery = nodesQuery("/axiom//reference/label"),
12
+ const labelsNodeQuery = nodeQuery("/axiom/labels!"),
13
13
  consequentNodeQuery = nodeQuery("/axiom/consequent!"),
14
14
  suppositionsNodeQuery = nodesQuery("/axiom/supposition");
15
15
 
16
16
  export default function verifyAxiom(axiomNode, fileContext) {
17
17
  let axiomVerified = false;
18
18
 
19
- const labelNodes = labelNodesQuery(axiomNode),
20
- labelsString = fileContext.nodesAsString(labelNodes),
19
+ const labelsNode = labelsNodeQuery(axiomNode),
20
+ labelsString = fileContext.nodeAsString(labelsNode),
21
21
  localContext = LocalContext.fromFileContext(fileContext);
22
22
 
23
23
  fileContext.trace(`Verifying the '${labelsString}' axiom...`, axiomNode);
24
24
 
25
25
  const labels = [],
26
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
26
+ labelsVerified = verifyLabels(labelsNode, labels, fileContext);
27
27
 
28
28
  if (labelsVerified) {
29
29
  const suppositions = [],
@@ -11,21 +11,21 @@ import { first } from "../utilities/array";
11
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
12
12
 
13
13
  const proofNodeQuery = nodeQuery("/conjecture/proof!"),
14
- labelNodesQuery = nodesQuery("/conjecture//reference/label"),
14
+ labelsNodeQuery = nodeQuery("/conjecture/labels!"),
15
15
  consequentNodeQuery = nodeQuery("/conjecture/consequent!"),
16
16
  suppositionsNodeQuery = nodesQuery("/conjecture/supposition");
17
17
 
18
18
  export default function verifyConjecture(conjectureNode, fileContext) {
19
19
  let conjectureVerified = false;
20
20
 
21
- const labelNodes = labelNodesQuery(conjectureNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
21
+ const labelsNode = labelsNodeQuery(conjectureNode),
22
+ labelsString = fileContext.nodeAsString(labelsNode),
23
23
  localContext = LocalContext.fromFileContext(fileContext);
24
24
 
25
25
  fileContext.trace(`Verifying the '${labelsString}' conjecture...`, conjectureNode);
26
26
 
27
27
  const labels = [],
28
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
28
+ labelsVerified = verifyLabels(labelsNode, labels, fileContext);
29
29
 
30
30
  if (labelsVerified) {
31
31
  const suppositions = [],
@@ -2,21 +2,20 @@
2
2
 
3
3
  import Label from "../label";
4
4
 
5
- export default function verifyLabel(labelNode, labels, fileContext) {
5
+ export default function verifyLabel(labelsMetavariableNode, labels, fileContext) {
6
6
  let labelVerified = false;
7
7
 
8
- const labelString = fileContext.nodeAsString(labelNode);
8
+ const labelMetavariableString = fileContext.nodeAsString(labelsMetavariableNode);
9
9
 
10
- fileContext.trace(`Verifying the '${labelString}' label...`, labelNode);
10
+ fileContext.trace(`Verifying the '${labelMetavariableString}' label...`, labelsMetavariableNode);
11
11
 
12
- const labelPresent = fileContext.isLabelPresentByLabelNode(labelNode);
12
+ const labelPresent = fileContext.isLabelPresentByLabelMetavariableNode(labelsMetavariableNode);
13
13
 
14
14
  if (labelPresent) {
15
- const labelString = fileContext.nodeAsString(labelNode);
16
-
17
- fileContext.debug(`The '${labelString}' label is already present.`, labelNode);
15
+ fileContext.debug(`The '${labelMetavariableString}' label is already present.`, labelsMetavariableNode);
18
16
  } else {
19
- const label = Label.fromLabelNode(labelNode);
17
+ const metavariableNode = labelsMetavariableNode, ///
18
+ label = Label.fromMetavariableNode(metavariableNode);
20
19
 
21
20
  labels.push(label);
22
21
 
@@ -24,7 +23,7 @@ export default function verifyLabel(labelNode, labels, fileContext) {
24
23
  }
25
24
 
26
25
  if (labelVerified) {
27
- fileContext.debug(`...verified the '${labelString}' label.`, labelNode);
26
+ fileContext.debug(`...verified the '${labelMetavariableString}' label.`, labelsMetavariableNode);
28
27
  }
29
28
 
30
29
  return labelVerified;
@@ -2,16 +2,26 @@
2
2
 
3
3
  import verifyLabel from "../verify/label";
4
4
 
5
- export default function verifyLabels(labelNodes, labels, fileContext) {
5
+ import { nodesQuery } from "../utilities/query";
6
+
7
+ const labelsMetavariableNodesQuery = nodesQuery("/labels/metavariable");
8
+
9
+ export default function verifyLabels(labelsNode, labels, fileContext) {
6
10
  let labelsVerified;
7
11
 
8
- labelsVerified = labelNodes.every((labelNode) => {
9
- const labelVerified = verifyLabel(labelNode, labels, fileContext);
12
+ if (labelsNode === null) {
13
+ labelsVerified = true;
14
+ } else {
15
+ const labelsMetavariableNodes = labelsMetavariableNodesQuery(labelsNode);
16
+
17
+ labelsVerified = labelsMetavariableNodes.every((labelsMetavariableNode) => {
18
+ const labelVerified = verifyLabel(labelsMetavariableNode, labels, fileContext);
10
19
 
11
- if (labelVerified) {
12
- return true;
13
- }
14
- });
20
+ if (labelVerified) {
21
+ return true;
22
+ }
23
+ });
24
+ }
15
25
 
16
26
  return labelsVerified;
17
27
  }
@@ -12,15 +12,15 @@ import { EMPTY_STRING } from "../constants";
12
12
  import { nodeQuery, nodesQuery } from "../utilities/query";
13
13
 
14
14
  const proofNodeQuery = nodeQuery("/lemma/proof!"),
15
- labelNodesQuery = nodesQuery("/lemma//reference/label"),
15
+ labelsNodeQuery = nodeQuery("/lemma/labels!"),
16
16
  consequentNodeQuery = nodeQuery("/lemma/consequent!"),
17
17
  suppositionsNodeQuery = nodesQuery("/lemma/supposition");
18
18
 
19
19
  export default function verifyLemma(lemmaNode, fileContext) {
20
20
  let lemmaVerified = false;
21
21
 
22
- const labelNodes = labelNodesQuery(lemmaNode),
23
- labelsString = fileContext.nodesAsString(labelNodes),
22
+ const labelsNode = labelsNodeQuery(lemmaNode),
23
+ labelsString = fileContext.nodeAsString(labelsNode),
24
24
  localContext = LocalContext.fromFileContext(fileContext);
25
25
 
26
26
  (labelsString === EMPTY_STRING) ?
@@ -28,7 +28,7 @@ export default function verifyLemma(lemmaNode, fileContext) {
28
28
  fileContext.trace(`Verifying the '${labelsString}' lemma...`, lemmaNode);
29
29
 
30
30
  const labels = [],
31
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
31
+ labelsVerified = verifyLabels(labelsNode, labels, fileContext);
32
32
 
33
33
  if (labelsVerified) {
34
34
  const suppositions = [],
@@ -11,7 +11,7 @@ import { first } from "../utilities/array";
11
11
  import { EMPTY_STRING } from "../constants";
12
12
  import { nodeQuery, nodesQuery } from "../utilities/query";
13
13
 
14
- const labelNodesQuery = nodesQuery("/metaLemma//reference/label"),
14
+ const labelsNodeQuery = nodeQuery("/metaLemma/labels!"),
15
15
  metaproofNodeQuery = nodeQuery("/metaLemma/metaproof!"),
16
16
  metaConsequentNodeQuery = nodeQuery("/metaLemma/metaConsequent!"),
17
17
  metaSuppositionsNodeQuery = nodesQuery("/metaLemma/metaSupposition");
@@ -19,8 +19,8 @@ const labelNodesQuery = nodesQuery("/metaLemma//reference/label"),
19
19
  export default function verifyMetaLemma(metaLemmaNode, fileContext) {
20
20
  let metaLemmaVerified = false;
21
21
 
22
- const labelNodes = labelNodesQuery(metaLemmaNode),
23
- labelsString = fileContext.nodesAsString(labelNodes),
22
+ const labelsNode = labelsNodeQuery(metaLemmaNode),
23
+ labelsString = fileContext.nodeAsString(labelsNode),
24
24
  localMetaContext = LocalMetaContext.fromFileContext(fileContext);
25
25
 
26
26
  (labelsString === EMPTY_STRING) ?
@@ -28,7 +28,7 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
28
28
  fileContext.trace(`Verifying the '${labelsString}' meta-lLemma...`, metaLemmaNode);
29
29
 
30
30
  const labels = [],
31
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
31
+ labelsVerified = verifyLabels(labelsNode, labels, fileContext);
32
32
 
33
33
  if (labelsVerified) {
34
34
  const metaSuppositions = [],
@@ -2,8 +2,8 @@
2
2
 
3
3
  import { nodeQuery } from "../../utilities/query";
4
4
 
5
- const labelNodeQuery = nodeQuery("/qualifiedMetastatement/qualification!/label!"),
6
- metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!");
5
+ const metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!"),
6
+ referenceMetavariableNodeQuery = nodeQuery("/qualifiedMetastatement/reference!/metavariable!");
7
7
 
8
8
  export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, derived, localMetaContext) {
9
9
  let qualifiedMetastatementVerified = false;
@@ -16,8 +16,9 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
16
16
 
17
17
  localMetaContext.trace(`Verifying the '${metastatementString}' qualified metastatement...`, qualifiedMetastatementNode);
18
18
 
19
- const labelNode = labelNodeQuery(qualifiedMetastatementNode),
20
- rule = localMetaContext.findRuleByLabelNode(labelNode);
19
+ const referenceMetavariableNode = referenceMetavariableNodeQuery(qualifiedMetastatementNode),
20
+ labelMetavariableNode = referenceMetavariableNode, ///
21
+ rule = localMetaContext.findRuleByLabelMetavariableNode(labelMetavariableNode);
21
22
 
22
23
  if (rule !== null) {
23
24
  const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, metastatementLocalMetaContext);
@@ -10,7 +10,7 @@ import verifyMetaSuppositions from "../verify/metaSuppositions";
10
10
  import { first } from "../utilities/array";
11
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
12
12
 
13
- const labelNodesQuery = nodesQuery("/metatheorem//reference/label"),
13
+ const labelsNodeQuery = nodeQuery("/metatheorem/labels!"),
14
14
  metaproofNodeQuery = nodeQuery("/metatheorem/metaproof!"),
15
15
  metaConsequentNodeQuery = nodeQuery("/metatheorem/metaConsequent!"),
16
16
  metaSuppositionsNodeQuery = nodesQuery("/metatheorem/metaSupposition");
@@ -18,14 +18,14 @@ const labelNodesQuery = nodesQuery("/metatheorem//reference/label"),
18
18
  export default function verifyMetatheorem(metatheoremNode, fileContext) {
19
19
  let metatheoremVerified = false;
20
20
 
21
- const labelNodes = labelNodesQuery(metatheoremNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
21
+ const labelsNode = labelsNodeQuery(metatheoremNode),
22
+ labelsString = fileContext.nodeAsString(labelsNode),
23
23
  localMetaContext = LocalMetaContext.fromFileContext(fileContext);
24
24
 
25
25
  fileContext.trace(`Verifying the '${labelsString}' metatheorem...`, metatheoremNode);
26
26
 
27
27
  const labels = [],
28
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
28
+ labelsVerified = verifyLabels(labelsNode, labels, fileContext);
29
29
 
30
30
  if (labelsVerified) {
31
31
  const metaSuppositions = [],
@@ -10,7 +10,7 @@ import verifyConclusion from "../verify/conclusion";
10
10
  import { first } from "../utilities/array";
11
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
12
12
 
13
- const labelNodesQuery = nodesQuery("/rule//reference/label"),
13
+ const labelsNodeQuery = nodeQuery("/rule/labels!"),
14
14
  premisesNodeQuery = nodesQuery("/rule/premise"),
15
15
  ruleProofNodeQuery = nodeQuery("/rule/ruleProof!"),
16
16
  conclusionNodeQuery = nodeQuery("/rule/conclusion!");
@@ -18,14 +18,14 @@ const labelNodesQuery = nodesQuery("/rule//reference/label"),
18
18
  export default function verifyRule(ruleNode, fileContext) {
19
19
  let ruleVerified = false;
20
20
 
21
- const labelNodes = labelNodesQuery(ruleNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
21
+ const labelsNode = labelsNodeQuery(ruleNode),
22
+ labelsString = fileContext.nodeAsString(labelsNode),
23
23
  localMetaContext = LocalMetaContext.fromFileContext(fileContext);
24
24
 
25
25
  fileContext.trace(`Verifying the '${labelsString}' rule...`, ruleNode);
26
26
 
27
27
  const labels = [],
28
- labelsVerified = verifyLabels(labelNodes, labels, fileContext);
28
+ labelsVerified = verifyLabels(labelsNode, labels, fileContext);
29
29
 
30
30
  if (labelsVerified) {
31
31
  const premises = [],