occam-verify-cli 1.0.444 → 1.0.457

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 (173) hide show
  1. package/lib/constants.js +1 -5
  2. package/lib/context/file.js +54 -82
  3. package/lib/context/fragment.js +77 -0
  4. package/lib/context/release.js +5 -9
  5. package/lib/context/scoped.js +314 -0
  6. package/lib/context/transient.js +371 -0
  7. package/lib/element/assumption.js +71 -84
  8. package/lib/element/combinator/bracketed.js +1 -10
  9. package/lib/element/conclusion.js +11 -8
  10. package/lib/element/constructor/bracketed.js +1 -10
  11. package/lib/element/declaration/combinator.js +1 -2
  12. package/lib/element/declaration/metavariable.js +3 -3
  13. package/lib/element/declaration/variable.js +3 -3
  14. package/lib/element/deduction.js +18 -13
  15. package/lib/element/derivation.js +14 -14
  16. package/lib/element/frame.js +40 -46
  17. package/lib/element/hypothesis.js +14 -55
  18. package/lib/element/judgement.js +35 -56
  19. package/lib/element/metaType.js +5 -4
  20. package/lib/element/metavariable.js +14 -10
  21. package/lib/element/proof.js +10 -10
  22. package/lib/element/proofAssertion/premise.js +308 -0
  23. package/lib/element/proofAssertion/step.js +305 -0
  24. package/lib/element/proofAssertion/supposition.js +322 -0
  25. package/lib/element/proofAssertion.js +199 -0
  26. package/lib/element/reference.js +28 -25
  27. package/lib/element/rule.js +29 -29
  28. package/lib/element/section.js +4 -4
  29. package/lib/element/statement.js +9 -14
  30. package/lib/element/subDerivation.js +14 -14
  31. package/lib/element/subproof.js +14 -14
  32. package/lib/element/substitution/frame.js +7 -7
  33. package/lib/element/substitution/statement.js +15 -39
  34. package/lib/element/substitution.js +5 -5
  35. package/lib/element/term.js +12 -10
  36. package/lib/element/topLevelAssertion/axiom.js +329 -0
  37. package/lib/element/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
  38. package/lib/element/{lemma.js → topLevelAssertion/lemma.js} +6 -6
  39. package/lib/element/{theorem.js → topLevelAssertion/theorem.js} +7 -7
  40. package/lib/element/topLevelAssertion.js +427 -0
  41. package/lib/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
  42. package/lib/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
  43. package/lib/element/topLevelMetaAssertion.js +289 -0
  44. package/lib/element/type.js +4 -4
  45. package/lib/element/variable.js +20 -20
  46. package/lib/metaTypes.js +33 -19
  47. package/lib/node/proofAssertion/premise.js +116 -0
  48. package/lib/node/proofAssertion/step.js +152 -0
  49. package/lib/node/proofAssertion/supposition.js +116 -0
  50. package/lib/node/{premise.js → proofAssertion.js} +11 -18
  51. package/lib/node/statement.js +2 -2
  52. package/lib/node/subDerivation.js +1 -8
  53. package/lib/node/subproof.js +1 -8
  54. package/lib/node/substitution/statement.js +2 -2
  55. package/lib/node/{axiom.js → topLevelAssertion/axiom.js} +7 -7
  56. package/lib/node/{conjecture.js → topLevelAssertion/conjecture.js} +7 -7
  57. package/lib/node/{lemma.js → topLevelAssertion/lemma.js} +7 -7
  58. package/lib/node/{theorem.js → topLevelAssertion/theorem.js} +7 -7
  59. package/lib/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +9 -9
  60. package/lib/node/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +7 -7
  61. package/lib/node/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +7 -7
  62. package/lib/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +9 -9
  63. package/lib/nonTerminalNodeMap.js +13 -13
  64. package/lib/preamble.js +10 -10
  65. package/lib/process/instantiate.js +6 -9
  66. package/lib/process/unify.js +7 -6
  67. package/lib/types.js +3 -3
  68. package/lib/utilities/bnf.js +5 -5
  69. package/lib/utilities/brackets.js +6 -11
  70. package/lib/utilities/context.js +28 -0
  71. package/lib/utilities/element.js +101 -99
  72. package/lib/utilities/fragment.js +23 -0
  73. package/lib/utilities/instance.js +12 -21
  74. package/lib/utilities/json.js +3 -2
  75. package/lib/utilities/string.js +44 -23
  76. package/lib/utilities/unification.js +36 -36
  77. package/lib/utilities/validation.js +22 -25
  78. package/package.json +6 -6
  79. package/src/constants.js +0 -1
  80. package/src/context/file.js +51 -58
  81. package/src/context/fragment.js +38 -0
  82. package/src/context/release.js +6 -11
  83. package/src/context/{local.js → scoped.js} +35 -127
  84. package/src/context/{temporary.js → transient.js} +9 -131
  85. package/src/element/assumption.js +69 -85
  86. package/src/element/combinator/bracketed.js +0 -7
  87. package/src/element/conclusion.js +14 -10
  88. package/src/element/constructor/bracketed.js +0 -7
  89. package/src/element/declaration/combinator.js +0 -1
  90. package/src/element/declaration/metavariable.js +2 -2
  91. package/src/element/declaration/variable.js +5 -5
  92. package/src/element/deduction.js +22 -15
  93. package/src/element/derivation.js +12 -12
  94. package/src/element/frame.js +36 -48
  95. package/src/element/hypothesis.js +14 -16
  96. package/src/element/judgement.js +33 -58
  97. package/src/element/metaType.js +4 -4
  98. package/src/element/metavariable.js +17 -10
  99. package/src/element/proof.js +9 -9
  100. package/src/element/{premise.js → proofAssertion/premise.js} +107 -75
  101. package/src/element/{step.js → proofAssertion/step.js} +43 -89
  102. package/src/element/{supposition.js → proofAssertion/supposition.js} +89 -88
  103. package/src/element/proofAssertion.js +69 -0
  104. package/src/element/reference.js +27 -23
  105. package/src/element/rule.js +25 -25
  106. package/src/element/section.js +4 -4
  107. package/src/element/statement.js +8 -15
  108. package/src/element/subDerivation.js +12 -12
  109. package/src/element/subproof.js +10 -10
  110. package/src/element/substitution/frame.js +10 -13
  111. package/src/element/substitution/statement.js +20 -52
  112. package/src/element/substitution.js +3 -3
  113. package/src/element/term.js +10 -9
  114. package/src/element/{axiom.js → topLevelAssertion/axiom.js} +41 -41
  115. package/src/element/{conjecture.js → topLevelAssertion/conjecture.js} +4 -4
  116. package/src/element/{lemma.js → topLevelAssertion/lemma.js} +3 -3
  117. package/src/element/{theorem.js → topLevelAssertion/theorem.js} +4 -4
  118. package/src/element/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +30 -49
  119. package/src/element/{metaLemma.js → topLevelMetaAssertion/metaLemma.js} +4 -4
  120. package/src/element/{metatheorem.js → topLevelMetaAssertion/metatheorem.js} +4 -4
  121. package/src/element/{metaLemmaMetatheorem.js → topLevelMetaAssertion.js} +7 -72
  122. package/src/element/type.js +2 -4
  123. package/src/element/variable.js +17 -17
  124. package/src/metaTypes.js +42 -13
  125. package/src/node/proofAssertion/premise.js +16 -0
  126. package/src/node/{step.js → proofAssertion/step.js} +4 -18
  127. package/src/node/proofAssertion/supposition.js +16 -0
  128. package/src/node/proofAssertion.js +23 -0
  129. package/src/node/statement.js +1 -1
  130. package/src/node/subDerivation.js +0 -7
  131. package/src/node/subproof.js +0 -7
  132. package/src/node/substitution/statement.js +1 -1
  133. package/src/node/topLevelAssertion/axiom.js +13 -0
  134. package/src/node/topLevelAssertion/conjecture.js +13 -0
  135. package/src/node/topLevelAssertion/lemma.js +13 -0
  136. package/src/node/topLevelAssertion/theorem.js +13 -0
  137. package/src/node/{axiomLemmaTheoremConjecture.js → topLevelAssertion.js} +1 -1
  138. package/src/node/topLevelMetaAssertion/metaLemma.js +13 -0
  139. package/src/node/topLevelMetaAssertion/metatheorem.js +13 -0
  140. package/src/node/{metaLemmaMetaTheorem.js → topLevelMetaAssertion.js} +1 -1
  141. package/src/nonTerminalNodeMap.js +12 -12
  142. package/src/preamble.js +9 -9
  143. package/src/process/instantiate.js +31 -32
  144. package/src/process/unify.js +6 -5
  145. package/src/types.js +4 -2
  146. package/src/utilities/bnf.js +3 -2
  147. package/src/utilities/brackets.js +5 -8
  148. package/src/utilities/context.js +20 -0
  149. package/src/utilities/element.js +169 -162
  150. package/src/utilities/fragment.js +11 -0
  151. package/src/utilities/instance.js +19 -24
  152. package/src/utilities/json.js +3 -1
  153. package/src/utilities/string.js +57 -32
  154. package/src/utilities/unification.js +39 -39
  155. package/src/utilities/validation.js +26 -35
  156. package/lib/context/local.js +0 -605
  157. package/lib/context/temporary.js +0 -752
  158. package/lib/element/axiom.js +0 -329
  159. package/lib/element/axiomLemmaTheoremConjecture.js +0 -434
  160. package/lib/element/metaLemmaMetatheorem.js +0 -322
  161. package/lib/element/premise.js +0 -380
  162. package/lib/element/step.js +0 -390
  163. package/lib/element/supposition.js +0 -410
  164. package/lib/node/step.js +0 -166
  165. package/lib/node/supposition.js +0 -130
  166. package/src/node/axiom.js +0 -13
  167. package/src/node/conjecture.js +0 -13
  168. package/src/node/lemma.js +0 -13
  169. package/src/node/metaLemma.js +0 -13
  170. package/src/node/metatheorem.js +0 -13
  171. package/src/node/premise.js +0 -30
  172. package/src/node/supposition.js +0 -30
  173. package/src/node/theorem.js +0 -13
@@ -2,9 +2,11 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import { chainContext } from "../utilities/context";
6
+
5
7
  const { extract, compress } = arrayUtilities;
6
8
 
7
- export default class TemporaryContext {
9
+ export default class TransientContext {
8
10
  constructor(context, terms, frames, statements, assertions, references, substitutions) {
9
11
  this.context = context;
10
12
  this.terms = terms;
@@ -13,6 +15,8 @@ export default class TemporaryContext {
13
15
  this.assertions = assertions;
14
16
  this.references = references;
15
17
  this.substitutions = substitutions;
18
+
19
+ return chainContext(this);
16
20
  }
17
21
 
18
22
  getContext() {
@@ -231,140 +235,14 @@ export default class TemporaryContext {
231
235
 
232
236
  getVariables(nested = true) { return this.context.getVariables(nested); }
233
237
 
234
- getJudgements() { return this.context.getJudgements(); }
235
-
236
- getEquivalences() { return this.context.getEquivalences(); }
237
-
238
- getSteps() { return this.context.getSteps(); }
239
-
240
- getLastStep() { return this.context.getLastStep(); }
241
-
242
- getStepsOrSubproofs() { return this.context.getStepsOrSubproofs(); }
243
-
244
- getFilePath() { return this.context.getFilePath(); }
245
-
246
- getLexer() { return this.context.getLexer(); }
247
-
248
- getParser() { return this.context.getParser(); }
249
-
250
- getAxioms() { return this.context.getAxioms(); }
251
-
252
- getLemmas() { return this.context.getLemmas(); }
253
-
254
- getTheorems() { return this.context.getTheorems(); }
255
-
256
- getConjectures() { return this.context.getConjectures(); }
257
-
258
- getCombinators() { return this.context.getCombinators(); }
259
-
260
- getConstructors() { return this.context.getConstructors(); }
261
-
262
- getTypePrefix() { return this.context.getTypePrefix(); }
263
-
264
- addAxiom(axiom) { this.context.addAxiom(axiom); }
265
-
266
- addLemma(lemma) { this.context.addLemma(lemma); }
267
-
268
- addTheorem(theorem) { this.context.addTheorem(theorem); }
269
-
270
- addEquality(equality) { return this.context.addEquality(equality); }
271
-
272
238
  addVariable(variable, nested = true) { return this.context.addVariable(variable, nested); }
273
239
 
274
- addJudgement(judgement) { return this.context.addJudgement(judgement); }
275
-
276
- addStepOrSubproof(stepOrSubproof) { this.context.addStepOrSubproof(stepOrSubproof); }
277
-
278
- findProcedureByName(name) { return this.context.findProcedureByName(name); }
279
-
280
- findLabelByReference(reference, context) { return this.context.findLabelByReference(reference, context); }
281
-
282
- findRuleByReference(reference) { return this.context.findRuleByReference(reference); }
283
-
284
- findAxiomByReference(reference) { return this.context.findAxiomByReference(reference); }
285
-
286
- findLemmaByReference(reference) { return this.context.findLemmaByReference(reference); }
287
-
288
- findTheoremByReference(reference) { return this.context.findTheoremByReference(reference); }
289
-
290
- findConjectureByReference(reference) { return this.context.findConjectureByReference(reference); }
291
-
292
- findMetaLemmasByReference(reference) { return this.context.findMetaLemmasByReference(reference); }
293
-
294
- findMetatheoremsByReference(reference) { return this.context.findMetatheoremsByReference(reference); }
295
-
296
- findMetaLemmaMetatheoremByReference(reference) { return this.context.findMetaLemmaMetatheoremByReference(reference); }
297
-
298
- findMetaLemmaMetatheoremsByReference(reference) { return this.context.findMetaLemmaMetatheoremsByReference(reference); }
299
-
300
240
  findVariableByVariableIdentifier(variableIdentifier, nested = true) { return this.context.findVariableByVariableIdentifier(variableIdentifier, nested); }
301
241
 
302
- findJudgementByMetavariable(metavariable) { return this.context.findJudgementByMetavariable(metavariable); }
303
-
304
- findEquivalenceByTerm(term) { return this.context.findEquivalenceByTerm(term); }
305
-
306
- findMetavariable(metavariable) { return this.context.findMetavariable(metavariable); }
307
-
308
- findLabelByMetavariable(metavariable) { return this.context.findLabelByMetavariable(metavariable); }
309
-
310
- findTypeByNominalTypeName(nominalTypeName) { return this.context.findTypeByNominalTypeName(nominalTypeName); }
311
-
312
- findMetaTypeByMetaTypeName(metaTypeName) { return this.context.findMetaTypeByMetaTypeName(metaTypeName); }
313
-
314
- findMetavariableByMetavariableName(metavariableName) { return this.context.findMetavariableByMetavariableName(metavariableName); }
315
-
316
- isProcedurePresentByName(name) { return this.context.isProcedurePresentByName(name); }
317
-
318
- isLabelPresentByReference(reference) { return this.context.isLabelPresentByReference(reference); }
319
-
320
- isMetavariablePresentByReference(reference) { return this.context.isMetavariablePresentByReference(reference); }
321
-
322
- isMetaLemmaMetatheoremPresentByReference(reference) { return this.context.isMetaLemmaMetatheoremPresentByReference(reference); }
323
-
324
- findAxiomLemmaTheoremOrConjectureByReference(reference) { return this.context.findAxiomLemmaTheoremOrConjectureByReference(reference); }
325
-
326
- isMetavariablePresent(metavariable) { return this.context.isMetavariablePresent(metavariable); }
327
-
328
242
  isTypePresentByTypeName(typeName, includeRelease = true, includeDependencies = true) { return this.context.isTypePresentByTypeName(typeName, includeRelease, includeDependencies); }
329
243
 
330
- isTypePresentByNominalTypeName(nominalTypeName) { return this.context.isTypePresentByNominalTypeName(nominalTypeName); }
331
-
332
- isTypePresentByPrefixedTypeName(prefixedTypeName) { return this.context.isTypePresentByPrefixedTypeName(prefixedTypeName); }
333
-
334
- isTypePrefixPresentByTypePrefixName(typePrefixName) { return this.context.isTypePrefixPresentByTypePrefixName(typePrefixName); }
335
-
336
244
  isVariablePresentByVariableIdentifier(variableIdentifier, nested = true) { return this.context.findVariableByVariableIdentifier(variableIdentifier, nested); }
337
245
 
338
- isLabelPresentByMetavariableName(metavariableName) { return this.context.isLabelPresentByMetavariableName(metavariableName); }
339
-
340
- isLabelPresentByMetavariable(metavariable) { return this.context.isLabelPresentByMetavariable(metavariable); }
341
-
342
- isMetavariablePresentByMetavariableName(metavariableNode) { return this.context.isMetavariablePresentByMetavariableName(metavariableNode); }
343
-
344
- isJudgementPresentByMetavariable(metavariable) { return this.context.isJudgementPresentByMetavariable(metavariable); }
345
-
346
- isTermGrounded(term) { return this.context.isTermGrounded(term); }
347
-
348
- isVariableDefined(variable) { return this.context.isVariableDefined(variable); }
349
-
350
- isMetavariableDefined(metavariable) { return this.context.isMetavariableDefined(metavariable); }
351
-
352
- compareTermAndPropertyRelation(term, propertyRelation) { return this.context.compareTermAndPropertyRelation(term, propertyRelation); }
353
-
354
- nodeAsString(node) { return this.context.nodeAsString(node); }
355
-
356
- nodesAsString(node) { return this.context.nodesAsString(node); }
357
-
358
- trace(message, node = null) { this.context.trace(message, node); }
359
-
360
- debug(message, node = null) { this.context.debug(message, node); }
361
-
362
- info(message, node = null) { this.context.info(message, node); }
363
-
364
- warning(message, node = null) { this.context.warning(message, node); }
365
-
366
- error(message, node = null) { this.context.error(message, node); }
367
-
368
246
  merge(context) {
369
247
  const terms = context.getTerms(),
370
248
  frames = context.getFrames(),
@@ -459,9 +337,9 @@ export default class TemporaryContext {
459
337
  assertions = [],
460
338
  references = [],
461
339
  substitutions = [],
462
- temporaryContext = new TemporaryContext(context, terms, frames, statements, assertions, references, substitutions);
340
+ transientContext = new TransientContext(context, terms, frames, statements, assertions, references, substitutions);
463
341
 
464
- return temporaryContext;
342
+ return transientContext;
465
343
  }
466
344
 
467
345
  static fromTermsAndFrames(terms, frames, context) {
@@ -469,8 +347,8 @@ export default class TemporaryContext {
469
347
  assertions = [],
470
348
  references = [],
471
349
  substitutions = [],
472
- temporaryContext = new TemporaryContext(context, terms, frames, statements, assertions, references, substitutions);
350
+ transientContext = new TransientContext(context, terms, frames, statements, assertions, references, substitutions);
473
351
 
474
- return temporaryContext;
352
+ return transientContext;
475
353
  }
476
354
  }
@@ -34,7 +34,7 @@ export default define(class Assumption extends Element {
34
34
  compareSubstitution(substitution, context) {
35
35
  let comparesToSubstituion = false;
36
36
 
37
- const assumptionString = this.string, ///
37
+ const assumptionString = this.getString(), ///
38
38
  substitutionString = substitution.getString();
39
39
 
40
40
  context.trace(`Comparing the '${assumptionString}' assumption to the '${substitutionString}' substitution...`);
@@ -71,75 +71,59 @@ export default define(class Assumption extends Element {
71
71
  return comparesToSubstituion;
72
72
  }
73
73
 
74
- verify(assignments, stated, context) {
75
- let verifies = false;
74
+ validate(assignments, stated, context) {
75
+ let validates = false;
76
76
 
77
- const assumptionString = this.string; ///
77
+ const assumptionString = this.getString(); ///
78
78
 
79
- context.trace(`Verifying the '${assumptionString}' assumption...`);
79
+ context.trace(`Validating the '${assumptionString}' assumption...`);
80
80
 
81
81
  const simple = this.isSimple();
82
82
 
83
83
  if (simple) {
84
- const referenceVerifiesAsMetavariable = this.verifyReferenceAsMetavariable(assignments, stated, context);
84
+ const referenceValidatesAsMetavariable = this.validateReferenceAsMetavariable(assignments, stated, context);
85
85
 
86
- verifies = referenceVerifiesAsMetavariable; ///
86
+ if (referenceValidatesAsMetavariable) {
87
+ validates = true;
88
+ }
87
89
  } else {
88
- const referenceVerified = this.verifyReference(assignments, stated, context);
90
+ const referenceValidates = this.reference.validate(context);
89
91
 
90
- if (referenceVerified) {
92
+ if (referenceValidates) {
91
93
  const statementValidates = this.validateStatement(assignments, stated, context);
92
94
 
93
95
  if (statementValidates) {
94
- let verifiesWhenStated = false,
95
- verifiesWhenDerived = false;
96
+ let validatesWhenStated = false,
97
+ validatesWhenDerived = false;
96
98
 
97
99
  if (stated) {
98
- verifiesWhenStated = this.verifyWhenStated(assignments, context);
100
+ validatesWhenStated = this.validateWhenStated(assignments, context);
99
101
  } else {
100
- verifiesWhenDerived = this.verifyWhenDerived(context);
102
+ validatesWhenDerived = this.validateWhenDerived(context);
101
103
  }
102
104
 
103
- if (verifiesWhenStated || verifiesWhenDerived) {
104
- verifies = true;
105
+ if (validatesWhenStated || validatesWhenDerived) {
106
+ validates = true;
105
107
  }
106
108
  }
107
109
  }
108
110
 
109
- if (verifies) {
110
- context.debug(`...verified the '${assumptionString}' assumption.`);
111
+ if (validates) {
112
+ context.debug(`...validated the '${assumptionString}' assumption.`);
111
113
  }
112
114
  }
113
115
 
114
- return verifies;
115
- }
116
-
117
- verifyReference(assignments, stated, context) {
118
- let referenceVerified;
119
-
120
- const referenceString = this.reference.getString(),
121
- assumptionString = this.string; ///
122
-
123
- context.trace(`Verifying the '${assumptionString}' assumption's '${referenceString}' reference...`);
124
-
125
- referenceVerified = this.reference.verify(context);
126
-
127
- if (referenceVerified) {
128
- context.debug(`...verified the '${assumptionString}' assumption's '${referenceString}' reference.`);
129
- }
130
-
131
- return referenceVerified;
116
+ return validates;
132
117
  }
133
118
 
134
119
  validateStatement(assignments, stated, context) {
135
- let statementValidates;
120
+ let statementValidates = true; ///
136
121
 
137
- if (this.statement === null) {
138
- statementValidates = true;
139
- } else {
140
- const statementString = this.statement.getString();
122
+ if (this.statement !== null) {
123
+ const assumptionString = this.getString(),
124
+ statementString = this.statement.getString();
141
125
 
142
- context.trace(`Validating the '${statementString}' statement...`);
126
+ context.trace(`Validating the '${assumptionString}' assumption's '${statementString}' statement...`);
143
127
 
144
128
  stated = true; ///
145
129
 
@@ -148,83 +132,83 @@ export default define(class Assumption extends Element {
148
132
  statementValidates = this.statement.validate(assignments, stated, context);
149
133
 
150
134
  if (statementValidates) {
151
- context.debug(`...validated the '${statementString}' statement.`);
135
+ context.debug(`...validated the '${assumptionString}' assumption's '${statementString}' statement.`);
152
136
  }
153
137
  }
154
138
 
155
139
  return statementValidates;
156
140
  }
157
141
 
158
- verifyReferenceAsMetavariable(assignments, stated, context) {
159
- let referenceVerifiesAsMetavariable = false;
142
+ validateReferenceAsMetavariable(assignments, stated, context) {
143
+ let referenceValidatesAsMetavariable = false;
160
144
 
161
145
  const referenceString = this.reference.getString(),
162
- assumptionString = this.string; ///
146
+ assumptionString = this.getString(); ///
163
147
 
164
- context.trace(`Verifying the '${assumptionString}' assumption's '${referenceString}' reference as s metavariable...`);
148
+ context.trace(`Validating the '${assumptionString}' assumption's '${referenceString}' reference as s metavariable...`);
165
149
 
166
150
  const metavariable = this.reference.getMetavariable(),
167
151
  metavariableName = metavariable.getName(),
168
152
  metavariablePresent = context.isMetavariablePresentByMetavariableName(metavariableName);
169
153
 
170
154
  if (metavariablePresent) {
171
- referenceVerifiesAsMetavariable = true;
155
+ referenceValidatesAsMetavariable = true;
172
156
  }
173
157
 
174
- if (referenceVerifiesAsMetavariable) {
175
- context.debug(`...verified the '${assumptionString}' assumption's '${referenceString}' reference as a metavariable.`);
158
+ if (referenceValidatesAsMetavariable) {
159
+ context.debug(`...validated the '${assumptionString}' assumption's '${referenceString}' reference as a metavariable.`);
176
160
  }
177
161
 
178
- return referenceVerifiesAsMetavariable;
162
+ return referenceValidatesAsMetavariable;
179
163
  }
180
164
 
181
- verifyWhenStated(assignments, context) {
182
- let verifiesWhenStated;
165
+ validateWhenStated(assignments, context) {
166
+ let validatesWhenStated;
183
167
 
184
- const assumptionString = this.string; ///
168
+ const assumptionString = this.getString(); ///
185
169
 
186
- context.trace(`Verifying the '${assumptionString}' stated assumption...`);
170
+ context.trace(`Validating the '${assumptionString}' stated assumption...`);
187
171
 
188
172
  const metavariablePresent = context.isMetavariablePresentByReference(this.reference);
189
173
 
190
174
  if (metavariablePresent) {
191
- verifiesWhenStated = true;
175
+ validatesWhenStated = true;
192
176
  } else {
193
- const metaLemmaMetatheorems = context.findMetaLemmaMetatheoremsByReference(this.reference),
194
- metaLemmaMetatheoremsUnify = metaLemmaMetatheorems.every((metaLemmaMetatheorem) => {
195
- const metaLemmaMetatheoremUnifies = this.unifyMetaLemmaMetatheorem(metaLemmaMetatheorem, context);
177
+ const topLevelMetaAssertions = context.findTopLevelMetaAssertionsByReference(this.reference),
178
+ topLevelMetaAssertionsUnify = topLevelMetaAssertions.every((topLevelMetaAssertion) => {
179
+ const topLevelMetaAssertionUnifies = this.unifyTopLevelMetaAssertion(topLevelMetaAssertion, context);
196
180
 
197
- if (metaLemmaMetatheoremUnifies) {
181
+ if (topLevelMetaAssertionUnifies) {
198
182
  return true;
199
183
  }
200
184
  });
201
185
 
202
- verifiesWhenStated = metaLemmaMetatheoremsUnify; ///
186
+ validatesWhenStated = topLevelMetaAssertionsUnify; ///
203
187
  }
204
188
 
205
- if (verifiesWhenStated) {
206
- context.debug(`...verified the '${assumptionString}' stated assumption.`);
189
+ if (validatesWhenStated) {
190
+ context.debug(`...validated the '${assumptionString}' stated assumption.`);
207
191
  }
208
192
 
209
- return verifiesWhenStated;
193
+ return validatesWhenStated;
210
194
  }
211
195
 
212
- verifyWhenDerived(context) {
213
- let verifiesWhenDerived;
196
+ validateWhenDerived(context) {
197
+ let validatesWhenDerived;
214
198
 
215
- const assumptionString = this.string; ///
199
+ const assumptionString = this.getString(); ///
216
200
 
217
- context.trace(`Verifying the '${assumptionString}' derived assumption...`);
201
+ context.trace(`Validating the '${assumptionString}' derived assumption...`);
218
202
 
219
- const metaLemmaMetatheoremPresent = context.isMetaLemmaMetatheoremPresentByReference(this.reference);
203
+ const topLevelMetaAssertionPresent = context.isTopLevelMetaAssertionPresentByReference(this.reference);
220
204
 
221
- verifiesWhenDerived = metaLemmaMetatheoremPresent; ///
205
+ validatesWhenDerived = topLevelMetaAssertionPresent; ///
222
206
 
223
- if (verifiesWhenDerived) {
224
- context.debug(`...verified the '${assumptionString}' derived assumption.`);
207
+ if (validatesWhenDerived) {
208
+ context.debug(`...validated the '${assumptionString}' derived assumption.`);
225
209
  }
226
210
 
227
- return verifiesWhenDerived;
211
+ return validatesWhenDerived;
228
212
  }
229
213
 
230
214
  unifyStatement(statement, substitutions, generalContext, specificContext) {
@@ -260,7 +244,7 @@ export default define(class Assumption extends Element {
260
244
 
261
245
  const context = generalContext, ///
262
246
  labelString = label.getString(),
263
- assumptionString = this.string; //;/
247
+ assumptionString = this.getString(); //;/
264
248
 
265
249
  context.trace(`Unifying the '${labelString}' label with the '${assumptionString}' assumption...`);
266
250
 
@@ -275,28 +259,28 @@ export default define(class Assumption extends Element {
275
259
  return labelUnifiesWithReference;
276
260
  }
277
261
 
278
- unifyMetaLemmaMetatheorem(metaLemmaMetatheorem, context) {
279
- let metaLemmaMetatheoremUnifies = false;
262
+ unifyTopLevelMetaAssertion(topLevelMetaAssertion, context) {
263
+ let topLevelMetaAssertionUnifies = false;
280
264
 
281
- const assumptionString = this.string, ///
282
- metaLemmaMetatheoremString = metaLemmaMetatheorem.getString();
265
+ const assumptionString = this.getString(), ///
266
+ topLevelMetaAssertionString = topLevelMetaAssertion.getString();
283
267
 
284
- context.trace(`Unifying the '${metaLemmaMetatheoremString}' meta-lemma or metatheorem with the '${assumptionString}' assumption...`);
268
+ context.trace(`Unifying the '${topLevelMetaAssertionString}' top level meta-assertion with the '${assumptionString}' assumption...`);
285
269
 
286
270
  const generalContext = context; ///
287
271
 
288
- context = metaLemmaMetatheorem.getContext(); ///
272
+ context = topLevelMetaAssertion.getContext(); ///
289
273
 
290
274
  const { Substitutions } = elements,
291
275
  specificContext = context, ///
292
276
  labelSubstitutions = Substitutions.fromNothing(),
293
- label = metaLemmaMetatheorem.getLabel(),
277
+ label = topLevelMetaAssertion.getLabel(),
294
278
  substitutions = labelSubstitutions, ///
295
279
  labelUnifies = this.unifyLabel(label, substitutions, generalContext, specificContext);
296
280
 
297
281
  if (labelUnifies) {
298
282
  const statementSubstitutions = Substitutions.fromNothing(),
299
- statement = metaLemmaMetatheorem.getStatement(),
283
+ statement = topLevelMetaAssertion.getStatement(),
300
284
  substitutions = statementSubstitutions, ///
301
285
  statementUUnifies = this.unifyStatement(statement, substitutions, generalContext, specificContext);
302
286
 
@@ -304,18 +288,18 @@ export default define(class Assumption extends Element {
304
288
  const labelSubstitutionsCorrelateStatementSubstitutions = labelSubstitutions.correlateSubstitutions(statementSubstitutions);
305
289
 
306
290
  if (labelSubstitutionsCorrelateStatementSubstitutions) {
307
- metaLemmaMetatheoremUnifies = true; ///
291
+ topLevelMetaAssertionUnifies = true; ///
308
292
  }
309
293
  }
310
294
  }
311
295
 
312
- if (metaLemmaMetatheoremUnifies) {
296
+ if (topLevelMetaAssertionUnifies) {
313
297
  context = generalContext; ///
314
298
 
315
- context.trace(`...unified the '${metaLemmaMetatheoremString}' meta-lemma or metatheorem with the '${assumptionString}' assumption...`);
299
+ context.trace(`...unified the '${topLevelMetaAssertionString}' top level meta-assertion with the '${assumptionString}' assumption...`);
316
300
  }
317
301
 
318
- return metaLemmaMetatheoremUnifies;
302
+ return topLevelMetaAssertionUnifies;
319
303
  }
320
304
 
321
305
  toJSON() {
@@ -3,7 +3,6 @@
3
3
  import Combinator from "../combinator";
4
4
 
5
5
  import { define } from "../../elements";
6
- import { bracketedCombinatorFromNothing } from "../../utilities/instance";
7
6
 
8
7
  export default define(class BracketedCombinator extends Combinator {
9
8
  unifyStatement(statement, assignments, stated, context) {
@@ -23,10 +22,4 @@ export default define(class BracketedCombinator extends Combinator {
23
22
  }
24
23
 
25
24
  static name = "BracketedCombinator";
26
-
27
- static fromNothing() {
28
- const bracketedCombinator = bracketedCombinatorFromNothing();
29
-
30
- return bracketedCombinator;
31
- }
32
25
  });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import Element from "../element";
4
- import TemporaryContext from "../context/temporary";
4
+ import TransientContext from "../context/transient";
5
5
 
6
6
  import { define } from "../elements";
7
7
  import { termsFromJSON, framesFromJSON, statementFromJSON, termsToTermsJSON, framesToFramesJSON, statementToStatementJSON } from "../utilities/json";
@@ -20,9 +20,9 @@ export default define(class Conclusion extends Element {
20
20
  verify(context) {
21
21
  let verifies = false;
22
22
 
23
- const temporaryContext = TemporaryContext.fromNothing(context);
23
+ const transientContext = TransientContext.fromNothing(context);
24
24
 
25
- context = temporaryContext; ///
25
+ context = transientContext; ///
26
26
 
27
27
  const node = this.getNode(),
28
28
  conclusionString = this.getString(); ///
@@ -53,14 +53,18 @@ export default define(class Conclusion extends Element {
53
53
  unifyStatement(statement, substitutions, context) {
54
54
  let statementUnifies;
55
55
 
56
- const conclusion = this, ///
57
- statementString = statement.getString(),
58
- conclusionString = conclusion.getString();
56
+ const statementString = statement.getString(),
57
+ conclusionString = this.getString(); ///
59
58
 
60
59
  context.trace(`Unifying the '${statementString}' statement with the '${conclusionString}' conclusion...`);
61
60
 
62
- const generalContext = this.context, ///
63
- specificContext = context; ///
61
+ const specificContext = context; ///
62
+
63
+ context = this.getContext();
64
+
65
+ const generalContext = context; ///
66
+
67
+ context = specificContext; ///
64
68
 
65
69
  statementUnifies = this.statement.unifyStatement(statement, substitutions, generalContext, specificContext);
66
70
 
@@ -105,9 +109,9 @@ export default define(class Conclusion extends Element {
105
109
  statement = statementFromJSON(json, context),
106
110
  node = null,
107
111
  string = statement.getString(),
108
- temporaryContext = TemporaryContext.fromTermsAndFrames(terms, frames, context);
112
+ transientContext = TransientContext.fromTermsAndFrames(terms, frames, context);
109
113
 
110
- context = temporaryContext; ///
114
+ context = transientContext; ///
111
115
 
112
116
  const conclusion = new Conclusion(context, string, node, statement);
113
117
 
@@ -4,7 +4,6 @@ import elements from "../../elements";
4
4
  import Constructor from "../constructor";
5
5
 
6
6
  import { define } from "../../elements";
7
- import { bracketedConstructorFromNothing } from "../../utilities/instance";
8
7
 
9
8
  export default define(class BracketedConstructor extends Constructor {
10
9
  unifyTerm(term, context, verifyAhead) {
@@ -53,10 +52,4 @@ export default define(class BracketedConstructor extends Constructor {
53
52
  }
54
53
 
55
54
  static name = "BracketedConstructor";
56
-
57
- static fromNothing() {
58
- const bracketedConstructor = bracketedConstructorFromNothing();
59
-
60
- return bracketedConstructor;
61
- }
62
55
  });
@@ -3,7 +3,6 @@
3
3
  import Declaration from "../declaration";
4
4
 
5
5
  import { define } from "../../elements";
6
- import { verifyStatement } from "../../process/verify";
7
6
 
8
7
  export default define(class CombinatorDeclaration extends Declaration {
9
8
  constructor(context, string, node, combinator) {
@@ -76,7 +76,7 @@ export default define(class MetavariableDeclaration extends Declaration {
76
76
  context = this.getContext(),
77
77
  metavariableString = metavariable.getString();
78
78
 
79
- context.trace(`Verifying the '${metavariableString}' metavariable when declared...`, node);
79
+ context.trace(`Verifying the '${metavariableString}' metavariable...`, node);
80
80
 
81
81
  const metavariableNode = metavariable.getNode(), ///
82
82
  termNode = metavariableNode.getTermNode();
@@ -98,7 +98,7 @@ export default define(class MetavariableDeclaration extends Declaration {
98
98
  }
99
99
 
100
100
  if (metavariableVerifies) {
101
- context.debug(`...verified the '${metavariableString}' metavariable when declared.`, node);
101
+ context.debug(`...verified the '${metavariableString}' metavariable.`, node);
102
102
  }
103
103
 
104
104
  return metavariableVerifies;
@@ -65,7 +65,7 @@ export default define(class VariableDeclaration extends Declaration {
65
65
  context.debug(`...verified the '${variableString}' variable.`, node);
66
66
  }
67
67
 
68
- return variableVerifies;
68
+ return variableVerifies;
69
69
  }
70
70
 
71
71
  verifyVariableType() {
@@ -82,7 +82,9 @@ export default define(class VariableDeclaration extends Declaration {
82
82
 
83
83
  context.trace(`Verifying the '${typeString}' type...`, node);
84
84
 
85
- const nominalTypeName = type.getNominalTypeName();
85
+ const includeSupertypes = false,
86
+ provisional = type.isProvisional(includeSupertypes),
87
+ nominalTypeName = type.getNominalTypeName();
86
88
 
87
89
  type = context.findTypeByNominalTypeName(nominalTypeName);
88
90
 
@@ -91,9 +93,7 @@ export default define(class VariableDeclaration extends Declaration {
91
93
  if (!typePresent) {
92
94
  context.debug(`The '${typeString}' type is not present.`, node);
93
95
  } else {
94
- const includeSupertypes = false,
95
- provisional = type.isProvisional(includeSupertypes),
96
- typeComparesToProvisional = type.compareProvisional(provisional);
96
+ const typeComparesToProvisional = type.compareProvisional(provisional);
97
97
 
98
98
  if (!typeComparesToProvisional) {
99
99
  provisional ?