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
@@ -5,10 +5,10 @@ import verifyTypeAssertion from "../typeAssertion";
5
5
 
6
6
  import { nodeQuery } from "../../utilities/query";
7
7
 
8
- const labelNodeQuery = nodeQuery("/qualifiedStatement/qualification!/label!"),
9
- equalityNodeQuery = nodeQuery("/qualifiedStatement/statement/equality!"),
8
+ const equalityNodeQuery = nodeQuery("/qualifiedStatement/statement/equality!"),
10
9
  statementNodeQuery = nodeQuery("/qualifiedStatement/statement!"),
11
- typeAssertionNodeQuery = nodeQuery("/qualifiedStatement/statement/typeAssertion!");
10
+ typeAssertionNodeQuery = nodeQuery("/qualifiedStatement/statement/typeAssertion!"),
11
+ referenceMetavariableNodeQuery = nodeQuery("/qualifiedStatement/reference!/metavariable!");
12
12
 
13
13
  export default function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived, localContext) {
14
14
  let qualifiedStatementVerified = false;
@@ -20,7 +20,7 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, assignm
20
20
 
21
21
  localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement...`, qualifiedStatementNode);
22
22
 
23
- const labelNode = labelNodeQuery(qualifiedStatementNode),
23
+ const referenceMetavariableNode = referenceMetavariableNodeQuery(qualifiedStatementNode),
24
24
  verifyQualifiedStatementFunctions = [
25
25
  verifyQualifiedStatementAAgainstRule,
26
26
  verifyQualifiedStatementAAgainstAxiom,
@@ -30,7 +30,7 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, assignm
30
30
  ];
31
31
 
32
32
  qualifiedStatementVerified = verifyQualifiedStatementFunctions.some((verifyQualifiedStatementFunction) => { ///
33
- const qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode, labelNode, localContext);
33
+ const qualifiedStatementVerified = verifyQualifiedStatementFunction(qualifiedStatementNode, referenceMetavariableNode, localContext);
34
34
 
35
35
  if (qualifiedStatementVerified) {
36
36
  return true;
@@ -66,125 +66,130 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, assignm
66
66
  return qualifiedStatementVerified;
67
67
  }
68
68
 
69
- function verifyQualifiedStatementAAgainstRule(qualifiedStatementNode, labelNode, localContext) {
69
+ function verifyQualifiedStatementAAgainstRule(qualifiedStatementNode, referenceMetavariableNode, localContext) {
70
70
  let qualifiedStatementVerifiedAgainstRule = false;
71
71
 
72
- const rule = localContext.findRuleByLabelNode(labelNode);
72
+ const labelMetavariableNode = referenceMetavariableNode, ///
73
+ rule = localContext.findRuleByLabelMetavariableNode(labelMetavariableNode);
73
74
 
74
75
  if (rule !== null) {
75
- const labelString = localContext.nodeAsString(labelNode),
76
+ const referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode),
76
77
  statementNode = statementNodeQuery(qualifiedStatementNode),
77
78
  statementLocalContext = localContext, ///
78
79
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
79
80
 
80
- localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${labelString}' rule...`, statementNode);
81
+ localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' rule...`, statementNode);
81
82
 
82
83
  const ruleMatchesStatement = rule.matchStatement(statementNode, statementLocalContext);
83
84
 
84
85
  qualifiedStatementVerifiedAgainstRule = ruleMatchesStatement; ///
85
86
 
86
87
  if (qualifiedStatementVerifiedAgainstRule) {
87
- localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${labelString}' rule.`, statementNode);
88
+ localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' rule.`, statementNode);
88
89
  }
89
90
  }
90
91
 
91
92
  return qualifiedStatementVerifiedAgainstRule;
92
93
  }
93
94
 
94
- function verifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode, labelNode, localContext) {
95
+ function verifyQualifiedStatementAAgainstAxiom(qualifiedStatementNode, referenceMetavariableNode, localContext) {
95
96
  let qualifiedStatementVerifiedAgainstAxiom = false;
96
97
 
97
- const axiom = localContext.findAxiomByLabelNode(labelNode);
98
+ const labelMetavariableNode = referenceMetavariableNode, ///
99
+ axiom = localContext.findAxiomByLabelMetavariableNode(labelMetavariableNode);
98
100
 
99
101
  if (axiom !== null) {
100
- const labelString = localContext.nodeAsString(labelNode),
102
+ const referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode),
101
103
  statementNode = statementNodeQuery(qualifiedStatementNode),
102
104
  statementLocalContext = localContext, ///
103
105
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
104
106
 
105
- localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${labelString}' axiom...`, statementNode);
107
+ localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' axiom...`, statementNode);
106
108
 
107
109
  const axiomMatchesStatement = axiom.matchStatement(statementNode, statementLocalContext);
108
110
 
109
111
  qualifiedStatementVerifiedAgainstAxiom = axiomMatchesStatement; ///
110
112
 
111
113
  if (qualifiedStatementVerifiedAgainstAxiom) {
112
- localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${labelString}' axiom.`, statementNode);
114
+ localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' axiom.`, statementNode);
113
115
  }
114
116
  }
115
117
 
116
118
  return qualifiedStatementVerifiedAgainstAxiom;
117
119
  }
118
120
 
119
- function verifyQualifiedStatementAAgainstLemma(qualifiedStatementNode, labelNode, localContext) {
121
+ function verifyQualifiedStatementAAgainstLemma(qualifiedStatementNode, referenceMetavariableNode, localContext) {
120
122
  let qualifiedStatementVerifiedAgainstLemma = false;
121
123
 
122
- const lemma = localContext.findLemmaByLabelNode(labelNode);
124
+ const labelMetavariableNode = referenceMetavariableNode, ///
125
+ lemma = localContext.findLemmaByLabelMetavariableNode(labelMetavariableNode);
123
126
 
124
127
  if (lemma !== null) {
125
- const labelString = localContext.nodeAsString(labelNode),
128
+ const referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode),
126
129
  statementNode = statementNodeQuery(qualifiedStatementNode),
127
130
  statementLocalContext = localContext, ///
128
131
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
129
132
 
130
- localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${labelString}' lemma...`, statementNode);
133
+ localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' lemma...`, statementNode);
131
134
 
132
135
  const lemmaMatchesStatement = lemma.matchStatement(statementNode, statementLocalContext);
133
136
 
134
137
  qualifiedStatementVerifiedAgainstLemma = lemmaMatchesStatement; ///
135
138
 
136
139
  if (qualifiedStatementVerifiedAgainstLemma) {
137
- localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${labelString}' lemma.`, statementNode);
140
+ localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' lemma.`, statementNode);
138
141
  }
139
142
  }
140
143
 
141
144
  return qualifiedStatementVerifiedAgainstLemma;
142
145
  }
143
146
 
144
- function verifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode, labelNode, localContext) {
147
+ function verifyQualifiedStatementAAgainstTheorem(qualifiedStatementNode, referenceMetavariableNode, localContext) {
145
148
  let qualifiedStatementVerifiedAgainstTheorem = false;
146
149
 
147
- const theorem = localContext.findTheoremByLabelNode(labelNode);
150
+ const labelMetavariableNode = referenceMetavariableNode, ///
151
+ theorem = localContext.findTheoremByLabelMetavariableNode(labelMetavariableNode);
148
152
 
149
153
  if (theorem !== null) {
150
- const labelString = localContext.nodeAsString(labelNode),
154
+ const referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode),
151
155
  statementNode = statementNodeQuery(qualifiedStatementNode),
152
156
  statementLocalContext = localContext, ///
153
157
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
154
158
 
155
- localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${labelString}' theorem...`, statementNode);
159
+ localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' theorem...`, statementNode);
156
160
 
157
161
  const theoremMatchesStatement = theorem.matchStatement(statementNode, statementLocalContext);
158
162
 
159
163
  qualifiedStatementVerifiedAgainstTheorem = theoremMatchesStatement; ///
160
164
 
161
165
  if (qualifiedStatementVerifiedAgainstTheorem) {
162
- localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${labelString}' theorem.`, statementNode);
166
+ localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' theorem.`, statementNode);
163
167
  }
164
168
  }
165
169
 
166
170
  return qualifiedStatementVerifiedAgainstTheorem;
167
171
  }
168
172
 
169
- function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, labelNode, localContext) {
173
+ function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, referenceMetavariableNode, localContext) {
170
174
  let qualifiedStatementVerifiedAgainstConjecture = false;
171
175
 
172
- const conjecture = localContext.findConjectureByLabelNode(labelNode);
176
+ const labelMetavariableNode = referenceMetavariableNode, ///
177
+ conjecture = localContext.findConjectureByLabelMetavariableNode(labelMetavariableNode);
173
178
 
174
179
  if (conjecture !== null) {
175
- const labelString = localContext.nodeAsString(labelNode),
180
+ const referenceMetavariableString = localContext.nodeAsString(referenceMetavariableNode),
176
181
  statementNode = statementNodeQuery(qualifiedStatementNode),
177
182
  statementLocalContext = localContext, ///
178
183
  qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
179
184
 
180
- localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${labelString}' conjecture...`, statementNode);
185
+ localContext.trace(`Verifying the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' conjecture...`, statementNode);
181
186
 
182
187
  const conjectureMatchesStatement = conjecture.matchStatement(statementNode, statementLocalContext);
183
188
 
184
189
  qualifiedStatementVerifiedAgainstConjecture = conjectureMatchesStatement; ///
185
190
 
186
191
  if (qualifiedStatementVerifiedAgainstConjecture) {
187
- localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${labelString}' conjecture.`, statementNode);
192
+ localContext.debug(`...verified the '${qualifiedStatementString}' qualified statement against the '${referenceMetavariableString}' conjecture.`, statementNode);
188
193
  }
189
194
  }
190
195
 
@@ -11,21 +11,21 @@ import { first } from "../utilities/array";
11
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
12
12
 
13
13
  const proofNodeQuery = nodeQuery("/theorem/proof!"),
14
- labelNodesQuery = nodesQuery("/theorem//reference/label"),
14
+ labelsNodeQuery = nodeQuery("/theorem/labels!"),
15
15
  consequentNodeQuery = nodeQuery("/theorem/consequent!"),
16
16
  suppositionsNodeQuery = nodesQuery("/theorem/supposition");
17
17
 
18
18
  export default function verifyTheorem(theoremNode, fileContext) {
19
19
  let theoremVerified = false;
20
20
 
21
- const labelNodes = labelNodesQuery(theoremNode),
22
- labelsString = fileContext.nodesAsString(labelNodes),
21
+ const labelsNode = labelsNodeQuery(theoremNode),
22
+ labelsString = fileContext.nodeAsString(labelsNode),
23
23
  localContext = LocalContext.fromFileContext(fileContext);
24
24
 
25
25
  fileContext.trace(`Verifying the '${labelsString}' theorem...`, theoremNode);
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 = [],