occam-verify-cli 0.0.874 → 0.0.875

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.
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  import Label from "./label";
4
- import LocalContext from "./context/local";
5
4
  import MetaConsequent from "./metaConsequent";
6
5
  import MetaSupposition from "./metaSupposition";
6
+ import LocalMetaContext from "./context/localMeta";
7
7
 
8
8
  import { prune } from "./utilities/array";
9
9
  import { someSubArray } from "./utilities/array";
10
10
 
11
11
  export default class MetaLemmaMetatheorem {
12
- constructor(labels, metaSuppositions, metaConsequent, localContext) {
12
+ constructor(labels, metaSuppositions, metaConsequent, fileContext) {
13
13
  this.labels = labels;
14
14
  this.metaSuppositions = metaSuppositions;
15
15
  this.metaConsequent = metaConsequent;
16
- this.localContext = localContext;
16
+ this.fileContext = fileContext;
17
17
  }
18
18
 
19
19
  getLabels() {
@@ -28,8 +28,8 @@ export default class MetaLemmaMetatheorem {
28
28
  return this.metaConsequent;
29
29
  }
30
30
 
31
- getLocalContext() {
32
- return this.localContext;
31
+ getFileContext() {
32
+ return this.fileContext;
33
33
  }
34
34
 
35
35
  matchMetastatement(metastatementNode, metastatementLocalContext) {
@@ -39,7 +39,7 @@ export default class MetaLemmaMetatheorem {
39
39
 
40
40
  if (metaSuppositionsLength === 0) {
41
41
  const substitutions = [],
42
- metaConsequentMatches = matchMetaConsequent(this.metaConsequent, metastatementNode, substitutions, this.localContext, metastatementLocalContext);
42
+ metaConsequentMatches = matchMetaConsequent(this.metaConsequent, metastatementNode, substitutions, this.fileContext, metastatementLocalContext);
43
43
 
44
44
  metastatementNatches = metaConsequentMatches; ///
45
45
  } else {
@@ -49,10 +49,10 @@ export default class MetaLemmaMetatheorem {
49
49
  let metaSuppositionsMatchMetaConsequent = false;
50
50
 
51
51
  const substitutions = [],
52
- metaSuppositionsMatch = matchMetaSuppositions(this.metaSuppositions, metaproofSteps, substitutions, this.localContext, metastatementLocalContext);
52
+ metaSuppositionsMatch = matchMetaSuppositions(this.metaSuppositions, metaproofSteps, substitutions, this.fileContext, metastatementLocalContext);
53
53
 
54
54
  if (metaSuppositionsMatch) {
55
- const metaConsequentMatches = matchMetaConsequent(this.metaConsequent, metastatementNode, substitutions, this.localContext, metastatementLocalContext);
55
+ const metaConsequentMatches = matchMetaConsequent(this.metaConsequent, metastatementNode, substitutions, this.fileContext, metastatementLocalContext);
56
56
 
57
57
  metaSuppositionsMatchMetaConsequent = metaConsequentMatches; ///
58
58
  }
@@ -91,16 +91,16 @@ export default class MetaLemmaMetatheorem {
91
91
  return metaSuppositionJSON;
92
92
  }),
93
93
  metaConsequentJSON = this.metaConsequent.toJSON(tokens),
94
- localContextJSON = this.localContext.toJSON(tokens),
94
+ localContextJSON = this.fileContext.toJSON(tokens),
95
95
  labels = labelsJSON, ///
96
96
  metaSuppositions = metaSuppositionsJSON, ///
97
97
  metaConsequent = metaConsequentJSON, ///
98
- localContext = localContextJSON, ///
98
+ fileContext = localContextJSON, ///
99
99
  json = {
100
100
  labels,
101
101
  metaSuppositions,
102
102
  metaConsequent,
103
- localContext
103
+ fileContext
104
104
  };
105
105
 
106
106
  return json;
@@ -118,7 +118,7 @@ export default class MetaLemmaMetatheorem {
118
118
  return label;
119
119
  });
120
120
 
121
- let { metaSuppositions, metaConsequent, localContext } = json;
121
+ let { metaSuppositions, metaConsequent } = json;
122
122
 
123
123
  const metaSuppositionsJSON = metaSuppositions; ///
124
124
 
@@ -135,25 +135,19 @@ export default class MetaLemmaMetatheorem {
135
135
 
136
136
  metaConsequent = MetaConsequent.fromJSONAndFileContext(json, fileContext);
137
137
 
138
- const localContextJSON = localContext; ///
139
-
140
- json = localContextJSON; ///
141
-
142
- localContext = LocalContext.fromJSONAndFileContext(json, fileContext);
143
-
144
- return new Class(labels, metaSuppositions, metaConsequent, localContext); ///
138
+ return new Class(labels, metaSuppositions, metaConsequent, fileContext); ///
145
139
  }
146
140
 
147
- static fromLabelsMetaSuppositionsMetaConsequentAndLocalContext(Class, labels, metaSuppositions, metaConsequent, localContext) { return new Class(labels, metaSuppositions, metaConsequent, localContext); }
141
+ static fromLabelsMetaSuppositionsMetaConsequentAndFileContext(Class, labels, metaSuppositions, metaConsequent, fileContext) { return new Class(labels, metaSuppositions, metaConsequent, fileContext); }
148
142
  }
149
143
 
150
- function matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, localContext, metastatementLocalContext) {
144
+ function matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, fileContext, metastatementLocalContext) {
151
145
  const metaproofStep = prune(metaproofSteps, (metaproofStep) => {
152
146
  const metaSubproofNode = metaproofStep.getMetaSubproofNode(),
153
147
  metastatementNode = metaproofStep.getMetastatementNode();
154
148
 
155
149
  if (metaSubproofNode !== null) {
156
- const metaSubProofMatches = metaSupposition.matchMetaSubproofNode(metaSubproofNode, substitutions, localContext, metastatementLocalContext);
150
+ const metaSubProofMatches = metaSupposition.matchMetaSubproofNode(metaSubproofNode, substitutions, fileContext, metastatementLocalContext);
157
151
 
158
152
  if (!metaSubProofMatches) { ///
159
153
  return true;
@@ -161,7 +155,7 @@ function matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, lo
161
155
  }
162
156
 
163
157
  if (metastatementNode !== null) {
164
- const metastatementMatches = metaSupposition.matchMetastatementNode(metastatementNode, substitutions, localContext, metastatementLocalContext);
158
+ const metastatementMatches = metaSupposition.matchMetastatementNode(metastatementNode, substitutions, fileContext, metastatementLocalContext);
165
159
 
166
160
  if (!metastatementMatches) { ///
167
161
  return true;
@@ -174,9 +168,9 @@ function matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, lo
174
168
  return metaSuppositionMatches;
175
169
  }
176
170
 
177
- function matchMetaSuppositions(metaSuppositions, metaproofSteps, substitutions, localContext, metastatementLocalContext) {
171
+ function matchMetaSuppositions(metaSuppositions, metaproofSteps, substitutions, fileContext, metastatementLocalContext) {
178
172
  const metaSuppositionsMatch = metaSuppositions.every((metaSupposition) => {
179
- const metaSuppositionMatches = matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, localContext, metastatementLocalContext);
173
+ const metaSuppositionMatches = matchMetaSupposition(metaSupposition, metaproofSteps, substitutions, fileContext, metastatementLocalContext);
180
174
 
181
175
  if (metaSuppositionMatches) {
182
176
  return true;
@@ -186,8 +180,8 @@ function matchMetaSuppositions(metaSuppositions, metaproofSteps, substitutions,
186
180
  return metaSuppositionsMatch;
187
181
  }
188
182
 
189
- function matchMetaConsequent(metaConsequent, metastatementNode, substitutions, localContext, metastatementLocalContext) {
190
- const nonTerminalNodeMatches = metaConsequent.matchMetastatementNode(metastatementNode, substitutions, localContext, metastatementLocalContext),
183
+ function matchMetaConsequent(metaConsequent, metastatementNode, substitutions, fileContext, metastatementLocalContext) {
184
+ const nonTerminalNodeMatches = metaConsequent.matchMetastatementNode(metastatementNode, substitutions, fileContext, metastatementLocalContext),
191
185
  metaConsequentMatches = nonTerminalNodeMatches; ///
192
186
 
193
187
  return metaConsequentMatches;
@@ -5,5 +5,5 @@ import MetaLemmaMetatheorem from "./metaLemmaMetatheorem";
5
5
  export default class Metatheorem extends MetaLemmaMetatheorem {
6
6
  static fromJSONAndFileContext(json, fileContext) { return MetaLemmaMetatheorem.fromJSONAndFileContext(Metatheorem, json, fileContext); }
7
7
 
8
- static fromLabelsMetaSuppositionsMetaConsequentAndLocalMetaContext(labels, suppositions, consequent, localMetaContext) { return MetaLemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentAndLocalMetaContext(Metatheorem, labels, suppositions, consequent, localMetaContext); }
8
+ static fromLabelsMetaSuppositionsMetaConsequentAndFileContext(labels, suppositions, consequent, fileContext) { return MetaLemmaMetatheorem.fromLabelsMetaSuppositionsMetaConsequentAndFileContext(Metatheorem, labels, suppositions, consequent, fileContext); }
9
9
  }
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ import verifyTerm from "./verify/term";
4
+ import LocalContext from "./context/local";
5
+
6
+ import { first } from "./utilities/array";
3
7
  import { nodeQuery } from "./utilities/query";
4
8
  import { nodeAsString } from "./utilities/string";
5
9
  import { nameFromMetavariableNode } from "./utilities/name";
6
10
  import { metaTypeFromJSONAndFileContext } from "./metaType";
7
11
  import { metavariableNodeFromMetavariableString } from "./utilities/node";
8
12
 
9
- const typeNodeQuery = nodeQuery("/metavariable/argument!/type!");
13
+ const termNodeQuery = nodeQuery("/metavariable/argument!/term!"),
14
+ typeNodeQuery = nodeQuery("/metavariable/argument!/type!");
10
15
 
11
16
  export default class Metavariable {
12
17
  constructor(node, name, termType, metaType) {
@@ -38,14 +43,28 @@ export default class Metavariable {
38
43
  return nameMatches;
39
44
  }
40
45
 
41
- matchNode(node) {
42
- let nodeMatches;
46
+ matchNode(node, localMetaContext) {
47
+ let nodeMatches = false;
43
48
 
44
49
  const metavariableNode = node, ///
45
- name = nameFromMetavariableNode(metavariableNode);
50
+ typeNode = typeNodeQuery(metavariableNode);
51
+
52
+ if (typeNode === null) {
53
+ const name = nameFromMetavariableNode(metavariableNode);
54
+
55
+ if (this.name === name) {
56
+ const termNode = termNodeQuery(metavariableNode);
57
+
58
+ if (false) {
59
+ ///
60
+ } else if ((termNode === null) && (this.termType === null)) {
61
+ nodeMatches = true;
62
+ } else if ((termNode !== null) && (this.termType !== null)) {
63
+ const termVerifiedAgainstTermType = verifyTermAgainstTermType(termNode, this.termType, localMetaContext);
46
64
 
47
- if (this.name === name) {
48
- nodeMatches = true;
65
+ nodeMatches = termVerifiedAgainstTermType; ///
66
+ }
67
+ }
49
68
  }
50
69
 
51
70
  return nodeMatches;
@@ -104,6 +123,31 @@ export default class Metavariable {
104
123
  }
105
124
  }
106
125
 
126
+ function verifyTermAgainstTermType(termNode, termType, localMetaContext) {
127
+ let termVerifiedAgainstTermType;
128
+
129
+ const type = termType, ///
130
+ terms = [],
131
+ localContext = LocalContext.fromLocalMetaContext(localMetaContext);
132
+
133
+ termVerifiedAgainstTermType = verifyTerm(termNode, terms, localContext, () => {
134
+ let verifiedAhead = false;
135
+
136
+ const firstTerm = first(terms),
137
+ term = firstTerm, ///
138
+ termType = term.getType(),
139
+ termTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(type);
140
+
141
+ if (termTypeEqualToOrSubTypeOfType) {
142
+ verifiedAhead = true;
143
+ }
144
+
145
+ return verifiedAhead;
146
+ });
147
+
148
+ return termVerifiedAgainstTermType;
149
+ }
150
+
107
151
  function termTypeFromMetavariableNode(metavariableNode, fileContext) {
108
152
  let termType = null;
109
153
 
@@ -16,8 +16,9 @@ export default function verifyConclusion(conclusionNode, conclusions, localMetaC
16
16
  localMetaContext.trace(`Verifying the '${conclusionString}' conclusion...`, conclusionNode);
17
17
 
18
18
  const derived = false,
19
+ assignments = [],
19
20
  unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(conclusionNode),
20
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, localMetaContext);
21
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localMetaContext);
21
22
 
22
23
  if (unqualifiedMetastatementVerified) {
23
24
  const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
@@ -8,16 +8,17 @@ import { nodeQuery } from "../utilities/query";
8
8
  const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
9
9
  unqualifiedMetastatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedMetastatement!");
10
10
 
11
- export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, localContext) {
11
+ export default function verifyMetaConsequent(metaConsequentNode, metaConsequents, localMetaContext) {
12
12
  let metaConsequentVerified = false;
13
13
 
14
- const metaConsequentString = localContext.nodeAsString(metaConsequentNode);
14
+ const metaConsequentString = localMetaContext.nodeAsString(metaConsequentNode);
15
15
 
16
- localContext.trace(`Verifying the '${metaConsequentString}' meta-consequent...`, metaConsequentNode);
16
+ localMetaContext.trace(`Verifying the '${metaConsequentString}' meta-consequent...`, metaConsequentNode);
17
17
 
18
18
  const derived = false,
19
+ assignments = [],
19
20
  unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaConsequentNode),
20
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, localContext);
21
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localMetaContext);
21
22
 
22
23
  if (unqualifiedMetastatementVerified) {
23
24
  metaConsequentVerified = true;
@@ -29,7 +30,7 @@ export default function verifyMetaConsequent(metaConsequentNode, metaConsequents
29
30
 
30
31
  metaConsequents.push(metaConsequent);
31
32
 
32
- localContext.debug(`...verified the '${metaConsequentString}' meta-consequent.`, metaConsequentNode);
33
+ localMetaContext.debug(`...verified the '${metaConsequentString}' meta-consequent.`, metaConsequentNode);
33
34
  }
34
35
 
35
36
  return metaConsequentVerified;
@@ -97,9 +97,10 @@ function verifyChild(childNode, localMetaContext) {
97
97
 
98
98
  const derived = true,
99
99
  assignments = [],
100
+ metavariableReferences = true,
100
101
  qualifiedMetastatementNode = childNode; ///
101
102
 
102
- qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, derived, localMetaContext);
103
+ qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, metavariableReferences, assignments, derived, localMetaContext);
103
104
 
104
105
  if (qualifiedMetastatementVerified) {
105
106
  const assignmentAssigned = assignAssignment(assignments, localMetaContext);
@@ -47,7 +47,7 @@ export default function verifyMetaLemma(metaLemmaNode, fileContext) {
47
47
  metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, localMetaContext);
48
48
 
49
49
  if (metaproofVerified) {
50
- const metaLemma = MetaLemma.fromLabelsMetaSuppositionsMetaConsequentAndLocalMetaContext(labels, metaSuppositions, metaConsequent, localMetaContext);
50
+ const metaLemma = MetaLemma.fromLabelsMetaSuppositionsMetaConsequentAndFileContext(labels, metaSuppositions, metaConsequent, fileContext);
51
51
 
52
52
  fileContext.addMetaLemma(metaLemma);
53
53
 
@@ -10,20 +10,20 @@ import { assignAssignment } from "../utilities/assignments";
10
10
  const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!"),
11
11
  unqualifiedMetastatementNodeQuery = nodeQuery("/metaSupposition/unqualifiedMetastatement!");
12
12
 
13
- export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext) {
13
+ export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localMetaContext) {
14
14
  let metaSuppositionVerified = false;
15
15
 
16
- const metaSuppositionString = localContext.nodeAsString(metaSuppositionNode);
16
+ const metaSuppositionString = localMetaContext.nodeAsString(metaSuppositionNode);
17
17
 
18
- localContext.trace(`Verifying the '${metaSuppositionString}' meta-supposition...`, metaSuppositionNode);
18
+ localMetaContext.trace(`Verifying the '${metaSuppositionString}' meta-supposition...`, metaSuppositionNode);
19
19
 
20
20
  const derived = false,
21
21
  assignments = [],
22
22
  unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(metaSuppositionNode),
23
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localContext);
23
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localMetaContext);
24
24
 
25
25
  if (unqualifiedMetastatementVerified) {
26
- const assignmentAssigned = assignAssignment(assignments, localContext);
26
+ const assignmentAssigned = assignAssignment(assignments, localMetaContext);
27
27
 
28
28
  metaSuppositionVerified = assignmentAssigned; ///
29
29
  }
@@ -35,9 +35,9 @@ export default function verifyMetaSupposition(metaSuppositionNode, metaSuppositi
35
35
 
36
36
  metaSuppositions.push(metaSupposition);
37
37
 
38
- localContext.addMetaproofStep(metaproofStep);
38
+ localMetaContext.addMetaproofStep(metaproofStep);
39
39
 
40
- localContext.debug(`...verified the '${metaSuppositionString}' meta-supposition.`, metaSuppositionNode);
40
+ localMetaContext.debug(`...verified the '${metaSuppositionString}' meta-supposition.`, metaSuppositionNode);
41
41
  }
42
42
 
43
43
  return metaSuppositionVerified;
@@ -2,11 +2,11 @@
2
2
 
3
3
  import verifyMetaSupposition from "../verify/metaSupposition";
4
4
 
5
- export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, localContext) {
5
+ export default function verifyMetaSuppositions(metaSuppositionNodes, metaSuppositions, localMetaContext) {
6
6
  let metaSuppositionsVerified;
7
7
 
8
8
  metaSuppositionsVerified = metaSuppositionNodes.every((metaSuppositionNode) => {
9
- const metaSuppositionVerified = verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localContext);
9
+ const metaSuppositionVerified = verifyMetaSupposition(metaSuppositionNode, metaSuppositions, localMetaContext);
10
10
 
11
11
  if (metaSuppositionVerified) {
12
12
  return true;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ import verifyMetastatement from "../metastatement";
4
+
3
5
  import { nodeQuery } from "../../utilities/query";
4
6
 
5
7
  const metastatementNodeQuery = nodeQuery("/qualifiedMetastatement/metastatement!"),
6
8
  referenceMetavariableNodeQuery = nodeQuery("/qualifiedMetastatement/reference!/metavariable!");
7
9
 
8
- export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, derived, localMetaContext) {
10
+ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode, metavariableReferences, assignments, derived, localMetaContext) {
9
11
  let qualifiedMetastatementVerified = false;
10
12
 
11
13
  const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode);
@@ -24,6 +26,21 @@ export default function verifyQualifiedMetastatement(qualifiedMetastatementNode,
24
26
  const ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, metastatementLocalMetaContext);
25
27
 
26
28
  qualifiedMetastatementVerified = ruleMatchesMetastatement; ///
29
+ } else {
30
+ if (metavariableReferences) {
31
+ const metavariableNode = referenceMetavariableNode, ///
32
+ metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode, localMetaContext);
33
+
34
+ if (metavariablePresent) {
35
+ const metastatementVerified = verifyMetastatement(metastatementNode, derived, localMetaContext, () => {
36
+ const verifiedAhead = true;
37
+
38
+ return verifiedAhead;
39
+ });
40
+
41
+ qualifiedMetastatementVerified = metastatementVerified; ///
42
+ }
43
+ }
27
44
  }
28
45
 
29
46
  if (qualifiedMetastatementVerified) {
@@ -6,7 +6,7 @@ import { nodeQuery } from "../../utilities/query";
6
6
 
7
7
  const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
8
8
 
9
- export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, localMetaContext) {
9
+ export default function verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localMetaContext) {
10
10
  let unqualifiedMetastatementVerified = false;
11
11
 
12
12
  const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
@@ -44,7 +44,7 @@ export default function verifyMetatheorem(metatheoremNode, fileContext) {
44
44
  metaproofVerified = verifyMetaproof(metaproofNode, metaConsequent, localMetaContext);
45
45
 
46
46
  if (metaproofVerified) {
47
- const metatheorem = Metatheorem.fromLabelsMetaSuppositionsMetaConsequentAndLocalMetaContext(labels, metaSuppositions, metaConsequent, localMetaContext);
47
+ const metatheorem = Metatheorem.fromLabelsMetaSuppositionsMetaConsequentAndFileContext(labels, metaSuppositions, metaConsequent, fileContext);
48
48
 
49
49
  fileContext.addMetatheorem(metatheorem);
50
50
 
@@ -73,7 +73,7 @@ export function verifyStandaloneMetavariable(metavariableNode, localMetaContext,
73
73
 
74
74
  localMetaContext.trace(`Verifying the '${metavariableString}' standalone metavariable...`, metavariableNode);
75
75
 
76
- const metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode);
76
+ const metavariablePresent = localMetaContext.isMetavariablePresentByMetavariableNode(metavariableNode, localMetaContext);
77
77
 
78
78
  if (metavariablePresent) {
79
79
  const verifiedAhead = verifyAhead();
@@ -17,8 +17,9 @@ export default function verifyPremise(premiseNode, premises, localMetaContext) {
17
17
  localMetaContext.trace(`Verifying the '${premiseString}' premise...`, premiseNode);
18
18
 
19
19
  const derived = false,
20
+ assignments = [],
20
21
  unqualifiedMetastatementNode = unqualifiedMetastatementNodeQuery(premiseNode),
21
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, localMetaContext);
22
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localMetaContext);
22
23
 
23
24
  if (unqualifiedMetastatementVerified) {
24
25
  const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
@@ -91,8 +91,9 @@ function verifyChild(childNode, localMetaContext) {
91
91
  case QUALIFIED_METASTATEMENT_RULE_NAME: {
92
92
  const derived = true,
93
93
  assignments = [],
94
+ metavariableReferences = true,
94
95
  qualifiedMetastatementNode = childNode, ///
95
- qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, derived, localMetaContext);
96
+ qualifiedMetastatementVerified = verifyQualifiedMetastatement(qualifiedMetastatementNode, metavariableReferences, assignments, derived, localMetaContext);
96
97
 
97
98
  if (qualifiedMetastatementVerified) {
98
99
  const metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode),
@@ -108,8 +109,9 @@ function verifyChild(childNode, localMetaContext) {
108
109
 
109
110
  case UNQUALIFIED_METASTATEMENT_RULE_NAME: {
110
111
  const derived = true,
112
+ assignments = false,
111
113
  unqualifiedMetastatementNode = childNode, ///
112
- unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, derived, localMetaContext);
114
+ unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, assignments, derived, localMetaContext);
113
115
 
114
116
  if (unqualifiedMetastatementVerified) {
115
117
  const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),