occam-verify-cli 0.0.262 → 0.0.264

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.
package/bin/conclusion.js CHANGED
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
 
3
+ const { METAVARIABLE_RULE_NAME } = require("./ruleNames"),
4
+ { metavariableNameFromMetavariableNode } = require("./utilities/query");
5
+
3
6
  class Conclusion {
4
7
  constructor(metastatementNode) {
5
8
  this.metastatementNode = metastatementNode;
@@ -9,6 +12,15 @@ class Conclusion {
9
12
  return this.metastatementNode;
10
13
  }
11
14
 
15
+ matchNonTerminalNode(metastatementNode, metaSubstitutions) {
16
+ const nonTerminalNode = metastatementNode, ///
17
+ conclusionNonTerminalNode = this.metastatementNode, ///
18
+ conclusionNonTerminalNodeMatches = matchConclusionNonTerminalNode(conclusionNonTerminalNode, nonTerminalNode, metaSubstitutions),
19
+ nonTerminalNodeMatches = conclusionNonTerminalNodeMatches; ///
20
+
21
+ return nonTerminalNodeMatches;
22
+ }
23
+
12
24
  static fromMetastatementNode(metastatementNode) {
13
25
  const conclusion = new Conclusion(metastatementNode);
14
26
 
@@ -17,3 +29,114 @@ class Conclusion {
17
29
  }
18
30
 
19
31
  module.exports = Conclusion;
32
+
33
+ function matchConclusionNode(conclusionNode, node, metaSubstitutions) {
34
+ let conclusionNodeMatches = false;
35
+
36
+ const nodeTerminalNode = node.isTerminalNode(),
37
+ ruleNodeTerminalNode = conclusionNode.isTerminalNode();
38
+
39
+ if (nodeTerminalNode === ruleNodeTerminalNode) {
40
+ if (nodeTerminalNode) {
41
+ const terminalNode = node, ///
42
+ conclusionTerminalNode = conclusionNode, ///
43
+ conclusionTerminalNodeMatches = matchConclusionTerminalNode(conclusionTerminalNode, terminalNode, metaSubstitutions);
44
+
45
+ conclusionNodeMatches = conclusionTerminalNodeMatches; ///
46
+ } else {
47
+ const nonTerminalNode = node, ///
48
+ conclusionNonTerminalNode = conclusionNode, ///
49
+ conclusionNonTerminalNodeMatches = matchConclusionNonTerminalNode(conclusionNonTerminalNode, nonTerminalNode, metaSubstitutions);
50
+
51
+ conclusionNodeMatches = conclusionNonTerminalNodeMatches; ///
52
+ }
53
+ }
54
+
55
+ return conclusionNodeMatches;
56
+ }
57
+
58
+ function matchConclusionChildNodes(conclusionChildNodes, childNodes, metaSubstitutions) {
59
+ let conclusionChildNodesMatches = false;
60
+
61
+ const childNodesLength = childNodes.length,
62
+ conclusionChildNodesLength = conclusionChildNodes.length;
63
+
64
+ if (childNodesLength === conclusionChildNodesLength) {
65
+ conclusionChildNodesMatches = childNodes.every((childNode, index) => {
66
+ const conclusionChildNode = conclusionChildNodes[index],
67
+ conclusionNode = conclusionChildNode, ///
68
+ node = childNode, ///
69
+ conclusionNodeMatches = matchConclusionNode(conclusionNode, node, metaSubstitutions);
70
+
71
+ if (conclusionNodeMatches) {
72
+ return true;
73
+ }
74
+ })
75
+ }
76
+
77
+ return conclusionChildNodesMatches;
78
+ }
79
+
80
+ function matchConclusionMetavariable(conclusionMetavariableNode, nonTerminalNode, metaSubstitutions) {
81
+ let conclusionMetavariableMatches = true;
82
+
83
+ const conclusionMetavariableName = metavariableNameFromMetavariableNode(conclusionMetavariableNode),
84
+ metaSubstitution = metaSubstitutions.find((metaSubstitution) => {
85
+ const metavariableName = metaSubstitution.getMetavariableName();
86
+
87
+ if (metavariableName === conclusionMetavariableName) {
88
+ return true;
89
+ }
90
+ }) || null;
91
+
92
+ if (metaSubstitution !== null) {
93
+ const metaSubstitutionNonTerminalNodeMatches = metaSubstitution.matchNonTerminalNode(nonTerminalNode);
94
+
95
+ conclusionMetavariableMatches = metaSubstitutionNonTerminalNodeMatches; ///
96
+ }
97
+
98
+ return conclusionMetavariableMatches;
99
+ }
100
+
101
+ function matchConclusionTerminalNode(conclusionTerminalNode, terminalNode, metaSubstitutions) {
102
+ let conclusionTerminalNodeMatches = false;
103
+
104
+ const matches = conclusionTerminalNode.match(terminalNode);
105
+
106
+ if (matches) {
107
+ conclusionTerminalNodeMatches = true;
108
+ }
109
+
110
+ return conclusionTerminalNodeMatches;
111
+ }
112
+
113
+ function matchConclusionNonTerminalNode(conclusionNonTerminalNode, nonTerminalNode, metaSubstitutions) {
114
+ let conclusionNonTerminalNodeMatches = false;
115
+
116
+ const conclusionRuleName = conclusionNonTerminalNode.getRuleName(); ///
117
+
118
+ switch (conclusionRuleName) {
119
+ case METAVARIABLE_RULE_NAME: {
120
+ const conclusionMetavariableNode = conclusionNonTerminalNode, ///
121
+ conclusionMetavariableMatches = matchConclusionMetavariable(conclusionMetavariableNode, nonTerminalNode, metaSubstitutions);
122
+
123
+ conclusionNonTerminalNodeMatches = conclusionMetavariableMatches;
124
+
125
+ break;
126
+ }
127
+
128
+ default: {
129
+ const ruleName = nonTerminalNode.getRuleName();
130
+
131
+ if (ruleName === conclusionRuleName) {
132
+ const childNodes = nonTerminalNode.getChildNodes(),
133
+ conclusionChildNodes = conclusionNonTerminalNode.getChildNodes(),
134
+ conclusionChildNodesMatches = matchConclusionChildNodes(conclusionChildNodes, childNodes, metaSubstitutions);
135
+
136
+ conclusionNonTerminalNodeMatches = conclusionChildNodesMatches; ///
137
+ }
138
+ }
139
+ }
140
+
141
+ return conclusionNonTerminalNodeMatches;
142
+ }
@@ -14,6 +14,14 @@ class MetaSubstitution {
14
14
  return this.nonTerminalNode;
15
15
  }
16
16
 
17
+ matchNonTerminalNode(nonTerminalNode) {
18
+ const metaSubstitutionNonTerminalNode = this.nonTerminalNode,
19
+ metaSubstitutionNonTerminalNodeMatches = matchMetaSubstitutionNonTerminalNode(metaSubstitutionNonTerminalNode, nonTerminalNode),
20
+ nonTerminalNodeMatches = metaSubstitutionNonTerminalNodeMatches; ///
21
+
22
+ return nonTerminalNodeMatches;
23
+ }
24
+
17
25
  static fromMetavariableNameAndNonTerminalNode(metavariableName, nonTerminalNode) {
18
26
  const metaSubstitution = new MetaSubstitution(metavariableName, nonTerminalNode);
19
27
 
@@ -22,3 +30,79 @@ class MetaSubstitution {
22
30
  }
23
31
 
24
32
  module.exports = MetaSubstitution;
33
+
34
+ function matchMetaSubstitutionNode(metaSubstitutionNode, node) {
35
+ let metaSubstitutionNodeMatches = false;
36
+
37
+ const nodeTerminalNode = node.isTerminalNode(),
38
+ ruleNodeTerminalNode = metaSubstitutionNode.isTerminalNode();
39
+
40
+ if (nodeTerminalNode === ruleNodeTerminalNode) {
41
+ if (nodeTerminalNode) {
42
+ const terminalNode = node, ///
43
+ metaSubstitutionTerminalNode = metaSubstitutionNode, ///
44
+ metaSubstitutionTerminalNodeMatches = matchMetaSubstitutionTerminalNode(metaSubstitutionTerminalNode, terminalNode);
45
+
46
+ metaSubstitutionNodeMatches = metaSubstitutionTerminalNodeMatches; ///
47
+ } else {
48
+ const nonTerminalNode = node, ///
49
+ metaSubstitutionNonTerminalNode = metaSubstitutionNode, ///
50
+ metaSubstitutionNonTerminalNodeMatches = matchMetaSubstitutionNonTerminalNode(metaSubstitutionNonTerminalNode, nonTerminalNode);
51
+
52
+ metaSubstitutionNodeMatches = metaSubstitutionNonTerminalNodeMatches; ///
53
+ }
54
+ }
55
+
56
+ return metaSubstitutionNodeMatches;
57
+ }
58
+
59
+ function matchMetaSubstitutionChildNodes(metaSubstitutionChildNodes, childNodes) {
60
+ let metaSubstitutionChildNodesMatches = false;
61
+
62
+ const childNodesLength = childNodes.length,
63
+ metaSubstitutionChildNodesLength = metaSubstitutionChildNodes.length;
64
+
65
+ if (childNodesLength === metaSubstitutionChildNodesLength) {
66
+ metaSubstitutionChildNodesMatches = childNodes.every((childNode, index) => {
67
+ const metaSubstitutionChildNode = metaSubstitutionChildNodes[index],
68
+ metaSubstitutionNode = metaSubstitutionChildNode, ///
69
+ node = childNode, ///
70
+ metaSubstitutionNodeMatches = matchMetaSubstitutionNode(metaSubstitutionNode, node);
71
+
72
+ if (metaSubstitutionNodeMatches) {
73
+ return true;
74
+ }
75
+ })
76
+ }
77
+
78
+ return metaSubstitutionChildNodesMatches;
79
+ }
80
+
81
+ function matchMetaSubstitutionTerminalNode(metaSubstitutionTerminalNode, terminalNode) {
82
+ let metaSubstitutionTerminalNodeMatches = false;
83
+
84
+ const matches = metaSubstitutionTerminalNode.match(terminalNode);
85
+
86
+ if (matches) {
87
+ metaSubstitutionTerminalNodeMatches = true;
88
+ }
89
+
90
+ return metaSubstitutionTerminalNodeMatches;
91
+ }
92
+
93
+ function matchMetaSubstitutionNonTerminalNode(metaSubstitutionNonTerminalNode, nonTerminalNode) {
94
+ let metaSubstitutionNonTerminalNodeMatches = false;
95
+
96
+ const ruleName = nonTerminalNode.getRuleName(),
97
+ metaSubstitutionRuleName = metaSubstitutionNonTerminalNode.getRuleName(); ///
98
+
99
+ if (ruleName === metaSubstitutionRuleName) {
100
+ const childNodes = nonTerminalNode.getChildNodes(),
101
+ metaSubstitutionChildNodes = metaSubstitutionNonTerminalNode.getChildNodes(),
102
+ metaSubstitutionChildNodesMatches = matchMetaSubstitutionChildNodes(metaSubstitutionChildNodes, childNodes);
103
+
104
+ metaSubstitutionNonTerminalNodeMatches = metaSubstitutionChildNodesMatches; ///
105
+ }
106
+
107
+ return metaSubstitutionNonTerminalNodeMatches;
108
+ }
package/bin/premise.js CHANGED
@@ -1,19 +1,150 @@
1
1
  "use strict";
2
2
 
3
+ const MetaSubstitution = require("./metaSubstitution");
4
+
5
+ const { METAVARIABLE_RULE_NAME } = require("./ruleNames"),
6
+ { metavariableNameFromMetavariableNode } = require("./utilities/query");
7
+
3
8
  class Premise {
4
- constructor(metastatementNodes) {
5
- this.metastatementNodes = metastatementNodes;
9
+ constructor(metastatementNode) {
10
+ this.metastatementNode = metastatementNode;
11
+ }
12
+
13
+ getMetastatementNode() {
14
+ return this.metastatementNode;
6
15
  }
7
16
 
8
- getMetastatementNodes() {
9
- return this.metastatementNodes;
17
+ matchNonTerminalNode(nonTerminalNode, metaSubstitutions) {
18
+ const premiseNonTerminalNode = this.metastatementNode, ///
19
+ premiseNonTerminalNodeMatches = matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions),
20
+ nonTerminalNodeMatches = premiseNonTerminalNodeMatches; ///
21
+
22
+ return nonTerminalNodeMatches;
10
23
  }
11
24
 
12
- static fromMetastatementNodes(metastatementNodes) {
13
- const premise = new Premise(metastatementNodes);
25
+ static fromMetastatementNode(metastatementNode) {
26
+ const premise = new Premise(metastatementNode);
14
27
 
15
28
  return premise;
16
29
  }
17
30
  }
18
31
 
19
32
  module.exports = Premise;
33
+
34
+ function matchPremiseNode(premiseNode, node, metaSubstitutions) {
35
+ let premiseNodeMatches = false;
36
+
37
+ const nodeTerminalNode = node.isTerminalNode(),
38
+ ruleNodeTerminalNode = premiseNode.isTerminalNode();
39
+
40
+ if (nodeTerminalNode === ruleNodeTerminalNode) {
41
+ if (nodeTerminalNode) {
42
+ const terminalNode = node, ///
43
+ premiseTerminalNode = premiseNode, ///
44
+ premiseTerminalNodeMatches = matchPremiseTerminalNode(premiseTerminalNode, terminalNode, metaSubstitutions);
45
+
46
+ premiseNodeMatches = premiseTerminalNodeMatches; ///
47
+ } else {
48
+ const nonTerminalNode = node, ///
49
+ premiseNonTerminalNode = premiseNode, ///
50
+ premiseNonTerminalNodeMatches = matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions);
51
+
52
+ premiseNodeMatches = premiseNonTerminalNodeMatches; ///
53
+ }
54
+ }
55
+
56
+ return premiseNodeMatches;
57
+ }
58
+
59
+ function matchPremiseChildNodes(premiseChildNodes, childNodes, metaSubstitutions) {
60
+ let premiseChildNodesMatches = false;
61
+
62
+ const childNodesLength = childNodes.length,
63
+ premiseChildNodesLength = premiseChildNodes.length;
64
+
65
+ if (childNodesLength === premiseChildNodesLength) {
66
+ premiseChildNodesMatches = childNodes.every((childNode, index) => {
67
+ const premiseChildNode = premiseChildNodes[index],
68
+ premiseNode = premiseChildNode, ///
69
+ node = childNode, ///
70
+ premiseNodeMatches = matchPremiseNode(premiseNode, node, metaSubstitutions);
71
+
72
+ if (premiseNodeMatches) {
73
+ return true;
74
+ }
75
+ })
76
+ }
77
+
78
+ return premiseChildNodesMatches;
79
+ }
80
+
81
+ function matchPremiseMetavariable(premiseMetavariableNode, nonTerminalNode, metaSubstitutions) {
82
+ let premiseMetavariableMatches;
83
+
84
+ const premiseMetavariableName = metavariableNameFromMetavariableNode(premiseMetavariableNode),
85
+ metaSubstitution = metaSubstitutions.find((metaSubstitution) => {
86
+ const metavariableName = metaSubstitution.getMetavariableName();
87
+
88
+ if (metavariableName === premiseMetavariableName) {
89
+ return true;
90
+ }
91
+ }) || null;
92
+
93
+ if (metaSubstitution !== null) {
94
+ const nonTerminalNodeMatches = metaSubstitution.matchNonTerminalNode(nonTerminalNode);
95
+
96
+ premiseMetavariableMatches = nonTerminalNodeMatches; ///
97
+ } else {
98
+ const metavariableName = premiseMetavariableName, ///
99
+ metaSubstitution = MetaSubstitution.fromMetavariableNameAndNonTerminalNode(metavariableName, nonTerminalNode);
100
+
101
+ metaSubstitutions.push(metaSubstitution);
102
+
103
+ premiseMetavariableMatches = true;
104
+ }
105
+
106
+ return premiseMetavariableMatches;
107
+ }
108
+
109
+ function matchPremiseTerminalNode(premiseTerminalNode, terminalNode, metaSubstitutions) {
110
+ let premiseTerminalNodeMatches = false;
111
+
112
+ const matches = premiseTerminalNode.match(terminalNode);
113
+
114
+ if (matches) {
115
+ premiseTerminalNodeMatches = true;
116
+ }
117
+
118
+ return premiseTerminalNodeMatches;
119
+ }
120
+
121
+ function matchPremiseNonTerminalNode(premiseNonTerminalNode, nonTerminalNode, metaSubstitutions) {
122
+ let premiseNonTerminalNodeMatches = false;
123
+
124
+ const premiseRuleName = premiseNonTerminalNode.getRuleName(); ///
125
+
126
+ switch (premiseRuleName) {
127
+ case METAVARIABLE_RULE_NAME: {
128
+ const premiseMetavariableNode = premiseNonTerminalNode, ///
129
+ premiseMetavariableMatches = matchPremiseMetavariable(premiseMetavariableNode, nonTerminalNode, metaSubstitutions);
130
+
131
+ premiseNonTerminalNodeMatches = premiseMetavariableMatches;
132
+
133
+ break;
134
+ }
135
+
136
+ default: {
137
+ const ruleName = nonTerminalNode.getRuleName();
138
+
139
+ if (ruleName === premiseRuleName) {
140
+ const childNodes = nonTerminalNode.getChildNodes(),
141
+ premiseChildNodes = premiseNonTerminalNode.getChildNodes(),
142
+ premiseChildNodesMatches = matchPremiseChildNodes(premiseChildNodes, childNodes, metaSubstitutions);
143
+
144
+ premiseNonTerminalNodeMatches = premiseChildNodesMatches; ///
145
+ }
146
+ }
147
+ }
148
+
149
+ return premiseNonTerminalNodeMatches;
150
+ }
package/bin/rule.js CHANGED
@@ -1,41 +1,44 @@
1
1
  "use strict";
2
2
 
3
- const { labelsAsString } = require("./utilities/string");
3
+ const { labelsAsString } = require("./utilities/string"),
4
+ { prune, someCombination } = require("./utilities/array");
4
5
 
5
6
  class Rule {
6
- constructor(labels, premise, conclusion, metastatementNode) {
7
+ constructor(labels, premises, conclusion) {
7
8
  this.labels = labels;
8
- this.premise = premise;
9
+ this.premises = premises;
9
10
  this.conclusion = conclusion;
10
- this.metastatementNode = metastatementNode;
11
11
  }
12
12
 
13
13
  getLabels() {
14
14
  return this.labels;
15
15
  }
16
16
 
17
- getPremise() {
18
- return this.premise;
17
+ getPremises() {
18
+ return this.premises;
19
19
  }
20
20
 
21
21
  getConclusion() {
22
22
  return this.conclusion;
23
23
  }
24
24
 
25
- getPremiseMetastatementNodes() {
26
- const metastatementNodes = (this.premise !== null) ?
27
- this.premise.getMetastatementNodes() :
28
- [];
25
+ matchMetastatement(metastatementNode, context) {
26
+ let metastatementNodes = context.getMetastatementNodes();
29
27
 
30
- return metastatementNodes;
31
- }
28
+ const premisesLength = this.premises.length,
29
+ start = -premisesLength;
30
+
31
+ metastatementNodes = metastatementNodes.slice(start); ///
32
+
33
+ const matchesMetastatement = someCombination(metastatementNodes, (metastatementNodes) => {
34
+ const premisesMatchConclusion = matchPremisesAndConclusion(this.premises, this.conclusion, metastatementNodes, metastatementNode);
32
35
 
33
- getConclusionMetastatementNode() {
34
- const metastatementNode = (this.conclusion !== null) ?
35
- this.conclusion.getMetastatementNode() :
36
- this.metastatementNode;
36
+ if (premisesMatchConclusion) {
37
+ return true;
38
+ }
39
+ });
37
40
 
38
- return metastatementNode;
41
+ return matchesMetastatement;
39
42
  }
40
43
 
41
44
  asString() {
@@ -44,21 +47,61 @@ class Rule {
44
47
  return string;
45
48
  }
46
49
 
47
- static fromMetastatementNodeAndLabels(metastatementNode, labels) {
48
- const premise = null,
49
- conclusion = null,
50
- rule = new Rule(labels, premise, conclusion, metastatementNode);
50
+ static fromPremisesConclusionAndLabels(premises, conclusion, labels) {
51
+ const rule = new Rule(labels, premises, conclusion);
51
52
 
52
53
  return rule;
53
54
  }
55
+ }
54
56
 
55
- static fromPremiseConclusionAndLabels(premise, conclusion, labels) {
56
- const metastatementNode = null,
57
- rule = new Rule(labels, premise, conclusion, metastatementNode);
57
+ module.exports = Rule;
58
58
 
59
- return rule;
60
- }
59
+ function matchPremise(premise, metastatementNodes, metaSubstitutions) {
60
+ const metastatementNode = prune(metastatementNodes, (metastatementNode) => {
61
+ const nonTerminalNode = metastatementNode, ///
62
+ nonTerminalNodeMatches = premise.matchNonTerminalNode(nonTerminalNode, metaSubstitutions);
63
+
64
+ if (!nonTerminalNodeMatches) { ///
65
+ return true;
66
+ }
67
+ }) || null;
68
+
69
+ const premiseMatches = (metastatementNode !== null);
70
+
71
+ return premiseMatches;
61
72
  }
62
73
 
63
- module.exports = Rule;
74
+ function matchPremises(premise, metastatementNodes, metaSubstitutions) {
75
+ const premisesMatches = premise.every((premise) => {
76
+ const premiseMatches = matchPremise(premise, metastatementNodes, metaSubstitutions);
77
+
78
+ if (premiseMatches) {
79
+ return true;
80
+ }
81
+ });
64
82
 
83
+ return premisesMatches;
84
+ }
85
+
86
+ function matchConclusion(conclusion, metastatementNode, metaSubstitutions) {
87
+ const nonTerminalNode = metastatementNode, ///
88
+ nonTerminalNodeMatches = conclusion.matchNonTerminalNode(nonTerminalNode, metaSubstitutions),
89
+ conclusionMatches = nonTerminalNodeMatches; ///
90
+
91
+ return conclusionMatches;
92
+ }
93
+
94
+ function matchPremisesAndConclusion(premises, conclusion, metastatementNodes, metastatementNode) {
95
+ let premisesMatchConclusion = false;
96
+
97
+ const metaSubstitutions = [],
98
+ premisesMatches = matchPremises(premises, metastatementNodes, metaSubstitutions);
99
+
100
+ if (premisesMatches) {
101
+ const conclusionMatches = matchConclusion(conclusion, metastatementNode, metaSubstitutions);
102
+
103
+ premisesMatchConclusion = conclusionMatches; ///
104
+ }
105
+
106
+ return premisesMatchConclusion;
107
+ }
package/bin/ruleNames.js CHANGED
@@ -4,7 +4,7 @@ const TERM_RULE_NAME = "term",
4
4
  TYPE_RULE_NAME = "type",
5
5
  ARGUMENT_RULE_NAME = "argument",
6
6
  METAVARIABLE_RULE_NAME = "metavariable",
7
- META_SUBLEMMA_RULE_NAME = "metaSublemma",
7
+ META_CONDITIONAL_PROOF_RULE_NAME = "metaConditionalProof",
8
8
  QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement",
9
9
  UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
10
10
 
@@ -13,7 +13,7 @@ module.exports = {
13
13
  TYPE_RULE_NAME,
14
14
  ARGUMENT_RULE_NAME,
15
15
  METAVARIABLE_RULE_NAME,
16
- META_SUBLEMMA_RULE_NAME,
16
+ META_CONDITIONAL_PROOF_RULE_NAME,
17
17
  QUALIFIED_METASTATEMENT_RULE_NAME,
18
18
  UNQUALIFIED_METASTATEMENT_RULE_NAME
19
19
  };
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
 
3
- const MetaAntecedent = require("../metaAntecedent"),
4
- verifyUnqualifiedMetastatement = require("../verify/metastatement/unqualified");
3
+ const verifyUnqualifiedMetastatement = require("../verify/metastatement/unqualified");
5
4
 
6
- const { nodeQuery, nodesQuery } = require("../utilities/query");
5
+ const { nodesQuery } = require("../utilities/query");
7
6
 
8
- const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement"),
9
- unqualifiedMetastatementNodesQuery = nodesQuery("/metaAntecedent/unqualifiedMetastatement");
7
+ const unqualifiedMetastatementNodesQuery = nodesQuery("/metaAntecedent/unqualifiedMetastatement");
10
8
 
11
- function verifyMetaAntecedent(metaAntecedentNode, metaAntecedents, context) {
9
+ function verifyMetaAntecedent(metaAntecedentNode, context) {
12
10
  const unqualifiedMetastatementNodes = unqualifiedMetastatementNodesQuery(metaAntecedentNode),
13
11
  metaAntecedentVerified = unqualifiedMetastatementNodes.every((unqualifiedMetastatementNode) => {
14
12
  const unqualifiedMetastatementVerified = verifyUnqualifiedMetastatement(unqualifiedMetastatementNode, context);
@@ -18,17 +16,6 @@ function verifyMetaAntecedent(metaAntecedentNode, metaAntecedents, context) {
18
16
  }
19
17
  });
20
18
 
21
- if (metaAntecedentVerified) {
22
- const metastatementNodes = unqualifiedMetastatementNodes.map((unqualifiedMetastatementNode) => {
23
- const metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
24
-
25
- return metastatementNode;
26
- }),
27
- metaAntecedent = MetaAntecedent.fromMetastatementNodes(metastatementNodes);
28
-
29
- metaAntecedents.push(metaAntecedent);
30
- }
31
-
32
19
  return metaAntecedentVerified;
33
20
  }
34
21
 
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
 
3
- const MetaConsequent = require("../metaConsequent"),
4
- verifyUnqualifiedMetaStatement = require("../verify/metastatement/unqualified");
3
+ const verifyUnqualifiedMetaStatement = require("../verify/metastatement/unqualified");
5
4
 
6
5
  const { nodeQuery } = require("../utilities/query");
7
6
 
8
- const metastatementNodeQuery = nodeQuery("/unqualifiedMetaStatement/metastatement!"),
9
- unqualifiedMetaStatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedMetaStatement!");
7
+ const unqualifiedMetaStatementNodeQuery = nodeQuery("/metaConsequent/unqualifiedMetaStatement!");
10
8
 
11
9
  function verifyMetaConsequent(metaConsequentNode, metaConsequents, context) {
12
10
  let metaConsequentVerified = false;
@@ -16,14 +14,7 @@ function verifyMetaConsequent(metaConsequentNode, metaConsequents, context) {
16
14
  if (unqualifiedMetaStatementNode !== null) {
17
15
  const unqualifiedMetaStatementVerified = verifyUnqualifiedMetaStatement(unqualifiedMetaStatementNode, context);
18
16
 
19
- if (unqualifiedMetaStatementVerified) {
20
- const metastatementNode = metastatementNodeQuery(unqualifiedMetaStatementNode),
21
- metaConsequent = MetaConsequent.fromMetaStatementNode(metastatementNode);
22
-
23
- metaConsequents.push(metaConsequent);
24
-
25
- metaConsequentVerified = true;
26
- }
17
+ metaConsequentVerified = unqualifiedMetaStatementVerified;
27
18
  }
28
19
 
29
20
  return metaConsequentVerified;