occam-verify-cli 1.0.612 → 1.0.631

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 (141) hide show
  1. package/lib/context/ephemeral.js +210 -77
  2. package/lib/context/file/nominal.js +157 -135
  3. package/lib/context/liminal.js +34 -59
  4. package/lib/context/scoped.js +37 -58
  5. package/lib/context.js +103 -53
  6. package/lib/element/assertion/contained.js +3 -1
  7. package/lib/element/assertion/defined.js +3 -1
  8. package/lib/element/assertion/property.js +10 -58
  9. package/lib/element/assertion/satisfies.js +3 -1
  10. package/lib/element/assertion/subproof.js +3 -1
  11. package/lib/element/assertion/type.js +63 -109
  12. package/lib/element/assertion.js +5 -9
  13. package/lib/element/assumption.js +50 -19
  14. package/lib/element/combinator.js +8 -1
  15. package/lib/element/conclusion.js +8 -1
  16. package/lib/element/constructor.js +8 -1
  17. package/lib/element/declaration.js +3 -7
  18. package/lib/element/deduction.js +8 -1
  19. package/lib/element/derivation.js +15 -10
  20. package/lib/element/equality.js +109 -62
  21. package/lib/element/equivalence.js +13 -6
  22. package/lib/element/equivalences.js +11 -4
  23. package/lib/element/error.js +10 -7
  24. package/lib/element/frame.js +21 -21
  25. package/lib/element/hypothesis.js +12 -7
  26. package/lib/element/judgement.js +55 -26
  27. package/lib/element/label.js +8 -1
  28. package/lib/element/metaType.js +9 -2
  29. package/lib/element/metavariable.js +16 -10
  30. package/lib/element/parameter.js +8 -1
  31. package/lib/element/procedureCall.js +21 -29
  32. package/lib/element/procedureReference.js +15 -1
  33. package/lib/element/proof.js +8 -1
  34. package/lib/element/proofAssertion.js +8 -1
  35. package/lib/element/property.js +8 -1
  36. package/lib/element/propertyRelation.js +8 -1
  37. package/lib/element/reference.js +16 -28
  38. package/lib/element/rule.js +22 -21
  39. package/lib/element/section.js +8 -1
  40. package/lib/element/signature.js +8 -1
  41. package/lib/element/statement.js +34 -40
  42. package/lib/element/subDerivation.js +11 -6
  43. package/lib/element/subproof.js +8 -1
  44. package/lib/element/substitution/frame.js +6 -6
  45. package/lib/element/substitution/reference.js +6 -6
  46. package/lib/element/substitution/statement.js +6 -6
  47. package/lib/element/substitution/term.js +9 -3
  48. package/lib/element/substitution.js +73 -49
  49. package/lib/element/term.js +15 -1
  50. package/lib/element/topLevelAssertion/axiom.js +8 -1
  51. package/lib/element/topLevelAssertion/conjecture.js +8 -1
  52. package/lib/element/topLevelAssertion/lemma.js +8 -1
  53. package/lib/element/topLevelAssertion/theorem.js +8 -1
  54. package/lib/element/topLevelAssertion.js +11 -17
  55. package/lib/element/topLevelMetaAssertion/metaLemma.js +8 -1
  56. package/lib/element/topLevelMetaAssertion/metatheorem.js +8 -1
  57. package/lib/element/topLevelMetaAssertion.js +9 -11
  58. package/lib/element/type.js +8 -1
  59. package/lib/element/typePrefix.js +8 -1
  60. package/lib/element/variable.js +51 -5
  61. package/lib/preamble.js +1 -2
  62. package/lib/process/assign.js +96 -27
  63. package/lib/process/unify.js +3 -4
  64. package/lib/process/validate.js +2 -2
  65. package/lib/process/verify.js +2 -2
  66. package/lib/utilities/element.js +74 -12
  67. package/lib/utilities/json.js +2 -2
  68. package/lib/utilities/string.js +9 -24
  69. package/lib/utilities/substitutions.js +15 -23
  70. package/package.json +2 -2
  71. package/src/context/ephemeral.js +234 -82
  72. package/src/context/file/nominal.js +195 -135
  73. package/src/context/liminal.js +43 -80
  74. package/src/context/scoped.js +56 -81
  75. package/src/context.js +97 -46
  76. package/src/element/assertion/contained.js +4 -0
  77. package/src/element/assertion/defined.js +4 -0
  78. package/src/element/assertion/property.js +15 -26
  79. package/src/element/assertion/satisfies.js +4 -0
  80. package/src/element/assertion/subproof.js +4 -0
  81. package/src/element/assertion/type.js +67 -77
  82. package/src/element/assertion.js +4 -8
  83. package/src/element/assumption.js +57 -18
  84. package/src/element/combinator.js +7 -0
  85. package/src/element/conclusion.js +7 -0
  86. package/src/element/constructor.js +7 -0
  87. package/src/element/declaration.js +1 -3
  88. package/src/element/deduction.js +7 -0
  89. package/src/element/derivation.js +10 -5
  90. package/src/element/equality.js +116 -74
  91. package/src/element/equivalence.js +15 -7
  92. package/src/element/equivalences.js +14 -5
  93. package/src/element/error.js +5 -2
  94. package/src/element/frame.js +25 -25
  95. package/src/element/hypothesis.js +11 -6
  96. package/src/element/judgement.js +62 -26
  97. package/src/element/label.js +7 -0
  98. package/src/element/metaType.js +8 -1
  99. package/src/element/metavariable.js +20 -14
  100. package/src/element/parameter.js +7 -0
  101. package/src/element/procedureCall.js +21 -14
  102. package/src/element/procedureReference.js +13 -0
  103. package/src/element/proof.js +7 -0
  104. package/src/element/proofAssertion.js +7 -0
  105. package/src/element/property.js +7 -0
  106. package/src/element/propertyRelation.js +7 -0
  107. package/src/element/reference.js +20 -33
  108. package/src/element/rule.js +16 -19
  109. package/src/element/section.js +7 -0
  110. package/src/element/signature.js +7 -0
  111. package/src/element/statement.js +36 -44
  112. package/src/element/subDerivation.js +10 -5
  113. package/src/element/subproof.js +7 -0
  114. package/src/element/substitution/frame.js +3 -3
  115. package/src/element/substitution/reference.js +3 -3
  116. package/src/element/substitution/statement.js +3 -3
  117. package/src/element/substitution/term.js +4 -2
  118. package/src/element/substitution.js +60 -40
  119. package/src/element/term.js +20 -2
  120. package/src/element/topLevelAssertion/axiom.js +7 -0
  121. package/src/element/topLevelAssertion/conjecture.js +7 -0
  122. package/src/element/topLevelAssertion/lemma.js +7 -0
  123. package/src/element/topLevelAssertion/theorem.js +7 -0
  124. package/src/element/topLevelAssertion.js +5 -15
  125. package/src/element/topLevelMetaAssertion/metaLemma.js +7 -0
  126. package/src/element/topLevelMetaAssertion/metatheorem.js +7 -0
  127. package/src/element/topLevelMetaAssertion.js +4 -6
  128. package/src/element/type.js +7 -0
  129. package/src/element/typePrefix.js +7 -0
  130. package/src/element/variable.js +9 -4
  131. package/src/preamble.js +0 -1
  132. package/src/process/assign.js +113 -38
  133. package/src/process/unify.js +2 -3
  134. package/src/process/validate.js +1 -1
  135. package/src/process/verify.js +1 -1
  136. package/src/utilities/element.js +83 -26
  137. package/src/utilities/json.js +1 -1
  138. package/src/utilities/string.js +7 -29
  139. package/src/utilities/substitutions.js +19 -30
  140. package/lib/element/substitutions.js +0 -225
  141. package/src/element/substitutions.js +0 -84
@@ -10,6 +10,7 @@ import NominalParser from "../../nominal/parser";
10
10
 
11
11
  import { verifyFile } from "../../process/verify";
12
12
  import { baseTypeFromNothing } from "../../utilities/type";
13
+ import { findMetaTypeByMetaTypeName } from "../../metaTypes";
13
14
  import { typesFromJSON,
14
15
  rulesFromJSON,
15
16
  axiomsFromJSON,
@@ -94,6 +95,7 @@ export default class NominalFileContext extends FileContext {
94
95
 
95
96
  getEquivalences() {
96
97
  const { Equivalences } = elements,
98
+ context = this, ///
97
99
  equivalences = Equivalences.fromNothing(context);
98
100
 
99
101
  return equivalences;
@@ -259,93 +261,155 @@ export default class NominalFileContext extends FileContext {
259
261
 
260
262
  addType(type) {
261
263
  this.types.push(type);
264
+
265
+ const filePath = this.getFilePath(),
266
+ typeString = type.toString();
267
+
268
+ this.trace(`Added the '${typeString}' type to the '${filePath}' file context.`)
262
269
  }
263
270
 
264
271
  addRule(rule) {
265
272
  this.rules.push(rule);
273
+
274
+ const filePath = this.getFilePath(),
275
+ ruleString = rule.toString();
276
+
277
+ this.trace(`Added the '${ruleString}' rule to the '${filePath}' file context.`)
266
278
  }
267
279
 
268
280
  addAxiom(axiom) {
269
281
  this.axioms.push(axiom);
282
+
283
+ const filePath = this.getFilePath(),
284
+ axiomString = axiom.toString();
285
+
286
+ this.trace(`Added the '${axiomString}' axiom to the '${filePath}' file context.`)
270
287
  }
271
288
 
272
289
  addLemma(lemma) {
273
290
  this.lemmas.push(lemma);
291
+
292
+ const filePath = this.getFilePath(),
293
+ lemmaString = lemma.toString();
294
+
295
+ this.trace(`Added the '${lemmaString}' lemma to the '${filePath}' file context.`)
274
296
  }
275
297
 
276
298
  addTheorem(theorem) {
277
299
  this.theorems.push(theorem);
300
+
301
+ const filePath = this.getFilePath(),
302
+ theoremString = theorem.toString();
303
+
304
+ this.trace(`Added the '${theoremString}' theorem to the '${filePath}' file context.`)
278
305
  }
279
306
 
280
307
  addVariable(variable) {
281
308
  this.variables.push(variable);
309
+
310
+ const filePath = this.getFilePath(),
311
+ variableString = variable.toString();
312
+
313
+ this.trace(`Added the '${variableString}' variable to the '${filePath}' file context.`)
282
314
  }
283
315
 
284
316
  addMetaLemma(metaLemma) {
285
317
  this.metaLemmas.push(metaLemma);
318
+
319
+ const filePath = this.getFilePath(),
320
+ metaLemmaString = metaLemma.toString();
321
+
322
+ this.trace(`Added the '${metaLemmaString}' meta-lemma to the '${filePath}' file context.`)
286
323
  }
287
324
 
288
325
  addConjecture(conjecture) {
289
326
  this.conjectures.push(conjecture);
327
+
328
+ const filePath = this.getFilePath(),
329
+ ocnjectureString = ocnjecture.toString();
330
+
331
+ this.trace(`Added the '${ocnjectureString}' ocnjecture to the '${filePath}' file context.`)
290
332
  }
291
333
 
292
334
  addCombinator(combinator) {
293
335
  this.combinators.push(combinator);
336
+
337
+ const filePath = this.getFilePath(),
338
+ combinatorString = combinator.toString();
339
+
340
+ this.trace(`Added the '${combinatorString}' combinator to the '${filePath}' file context.`)
294
341
  }
295
342
 
296
343
  addTypePrefix(typePrefix) {
297
344
  this.typePrefixes.push(typePrefix);
345
+
346
+ const filePath = this.getFilePath(),
347
+ typePrefixString = typePrefix.toString();
348
+
349
+ this.trace(`Added the '${typePrefixString}' type-prefix to the '${filePath}' file context.`)
298
350
  }
299
351
 
300
352
  addConstructor(constructor) {
301
353
  this.constructors.push(constructor);
354
+
355
+ const filePath = this.getFilePath(),
356
+ constructorString = constructor.toString();
357
+
358
+ this.trace(`Added the '${constructorString}' constructor to the '${filePath}' file context.`)
302
359
  }
303
360
 
304
361
  addMetatheorem(metatheorem) {
305
362
  this.metatheorems.push(metatheorem);
363
+
364
+ const filePath = this.getFilePath(),
365
+ metatheoremString = metatheorem.toString();
366
+
367
+ this.trace(`Added the '${metatheoremString}' metatheorem to the '${filePath}' file context.`)
306
368
  }
307
369
 
308
370
  addMetavariable(metavariable) {
309
371
  this.metavariables.push(metavariable);
372
+
373
+ const filePath = this.getFilePath(),
374
+ metavariableString = metavariable.toString();
375
+
376
+ this.trace(`Added the '${metavariableString}' metavariable to the '${filePath}' file context.`)
310
377
  }
311
378
 
312
- findLabelByReference(reference, context) {
313
- const labels = this.getLabels(),
314
- label = labels.find((label) => {
315
- const metavariableUnifies = label.unifyReference(reference, context);
379
+ findMetavariable(metavariable) {
380
+ const metavariables = this.getMetavariables(),
381
+ specificMetavariable = metavariable; ///
316
382
 
317
- if (metavariableUnifies) {
318
- return true;
319
- }
320
- }) || null;
383
+ metavariable = metavariables.find((metavariable) => {
384
+ const context = this, ///
385
+ generalMetavariable = metavariable, ///
386
+ metavariableUnifies = generalMetavariable.unifyMetavariable(specificMetavariable, context);
321
387
 
322
- return label;
388
+ if (metavariableUnifies) {
389
+ return true;
390
+ }
391
+ }) || null;
392
+
393
+ return metavariable;
323
394
  }
324
395
 
325
- findMetaLemmaByReference(reference) {
326
- const metaLemmas = this.getMetaLemmas(),
327
- metaLemma = metaLemmas.find((metaLemma) => {
328
- const metaLemmaComparesToReference = metaLemma.compareReference(reference);
396
+ findLabelByMetavariable(metavariable) {
397
+ const labels = this.getLabels(),
398
+ label = labels.find((label) => {
399
+ const labelMetavariableComparesToMetavariable = label.compareMetavariable(metavariable);
329
400
 
330
- if (metaLemmaComparesToReference) {
401
+ if (labelMetavariableComparesToMetavariable) {
331
402
  return true;
332
403
  }
333
404
  }) || null;
334
405
 
335
- return metaLemma;
406
+ return label;
336
407
  }
337
408
 
338
- findMetatheoremByReference(reference) {
339
- const metatheorems = this.getMetatheorems(),
340
- metatheorem = metatheorems.find((metatheorem) => {
341
- const metatheoremComparesToReference = metatheorem.compareReference(reference);
342
-
343
- if (metatheoremComparesToReference) {
344
- return true;
345
- }
346
- }) || null;
409
+ findMetaTypeByMetaTypeName(metaTypeName) {
410
+ const metaType = findMetaTypeByMetaTypeName(metaTypeName);
347
411
 
348
- return metatheorem;
412
+ return metaType;
349
413
  }
350
414
 
351
415
  findRuleByReference(reference) {
@@ -404,17 +468,17 @@ export default class NominalFileContext extends FileContext {
404
468
  return theorem;
405
469
  }
406
470
 
407
- findProcedureByName(name) {
408
- const procedures = this.getProcedures(),
409
- procedure = procedures.find((procedure) => {
410
- const nameMatches = procedure.matchName(name);
471
+ findMetaLemmaByReference(reference) {
472
+ const metaLemmas = this.getMetaLemmas(),
473
+ metaLemma = metaLemmas.find((metaLemma) => {
474
+ const metaLemmaComparesToReference = metaLemma.compareReference(reference);
411
475
 
412
- if (nameMatches) {
476
+ if (metaLemmaComparesToReference) {
413
477
  return true;
414
478
  }
415
479
  }) || null;
416
480
 
417
- return procedure;
481
+ return metaLemma;
418
482
  }
419
483
 
420
484
  findConjectureByReference(reference) {
@@ -447,6 +511,19 @@ export default class NominalFileContext extends FileContext {
447
511
  return metaLemmas;
448
512
  }
449
513
 
514
+ findMetatheoremByReference(reference) {
515
+ const metatheorems = this.getMetatheorems(),
516
+ metatheorem = metatheorems.find((metatheorem) => {
517
+ const metatheoremComparesToReference = metatheorem.compareReference(reference);
518
+
519
+ if (metatheoremComparesToReference) {
520
+ return true;
521
+ }
522
+ }) || null;
523
+
524
+ return metatheorem;
525
+ }
526
+
450
527
  findMetatheoremsByReference(reference) {
451
528
  const metatheorems = this.getMetatheorems();
452
529
 
@@ -463,6 +540,16 @@ export default class NominalFileContext extends FileContext {
463
540
  return metatheorems;
464
541
  }
465
542
 
543
+ findTopLevelAssertionByReference(reference) {
544
+ const axiom = this.findAxiomByReference(reference),
545
+ lemma = this.findLemmaByReference(reference),
546
+ theorem = this.findTheoremByReference(reference),
547
+ conjecture = this.findConjectureByReference(reference),
548
+ topLevelAssertion = (axiom || lemma || theorem || conjecture);
549
+
550
+ return topLevelAssertion;
551
+ }
552
+
466
553
  findTopLevelMetaAssertionByReference(reference) {
467
554
  const metaLemma = this.findMetaLemmaByReference(reference),
468
555
  metatheorem = this.findMetatheoremByReference(reference),
@@ -482,33 +569,6 @@ export default class NominalFileContext extends FileContext {
482
569
  return topLevelMetaAssertions;
483
570
  }
484
571
 
485
- findTopLevelAssertionByReference(reference) {
486
- const axiom = this.findAxiomByReference(reference),
487
- lemma = this.findLemmaByReference(reference),
488
- theorem = this.findTheoremByReference(reference),
489
- conjecture = this.findConjectureByReference(reference),
490
- topLevelAssertion = (axiom || lemma || theorem || conjecture);
491
-
492
- return topLevelAssertion;
493
- }
494
-
495
- findMetavariable(metavariable) {
496
- const metavariables = this.getMetavariables(),
497
- specificMetavariable = metavariable; ///
498
-
499
- metavariable = metavariables.find((metavariable) => {
500
- const context = this, ///
501
- generalMetavariable = metavariable, ///
502
- metavariableUnifies = generalMetavariable.unifyMetavariable(specificMetavariable, context);
503
-
504
- if (metavariableUnifies) {
505
- return true;
506
- }
507
- }) || null;
508
-
509
- return metavariable;
510
- }
511
-
512
572
  findTypeByTypeName(typeName, includeRelease = true, includeDependencies = true) {
513
573
  let types = this.getTypes(includeRelease, includeDependencies);
514
574
 
@@ -585,19 +645,6 @@ export default class NominalFileContext extends FileContext {
585
645
  return typePrefix;
586
646
  }
587
647
 
588
- findVariableByVariableIdentifier(variableIdentifier) {
589
- const variables = this.getVariables(),
590
- variable = variables.find((variable) => {
591
- const variableComparesToVariableIdentifier = variable.compareVariableIdentifier(variableIdentifier);
592
-
593
- if (variableComparesToVariableIdentifier) {
594
- return true;
595
- }
596
- }) || null;
597
-
598
- return variable;
599
- }
600
-
601
648
  findLabelByMetavariableName(metavariableName) {
602
649
  const labels = this.getLabels(),
603
650
  label = labels.find((label) => {
@@ -611,30 +658,30 @@ export default class NominalFileContext extends FileContext {
611
658
  return label;
612
659
  }
613
660
 
614
- findLabelByMetavariable(metavariable) {
615
- const labels = this.getLabels(),
616
- label = labels.find((label) => {
617
- const labelMetavariableComparesToMetavariable = label.compareMetavariable(metavariable);
661
+ findJudgementByMetavariableName(metavariableName) {
662
+ const judgements = this.getJudgements(),
663
+ judgement = judgements.find((judgement) => {
664
+ const judgementMetavariableComparesToMetavariable = judgement.compareMetavariableName(metavariableName);
618
665
 
619
- if (labelMetavariableComparesToMetavariable) {
666
+ if (judgementMetavariableComparesToMetavariable) {
620
667
  return true;
621
668
  }
622
669
  }) || null;
623
670
 
624
- return label;
671
+ return judgement;
625
672
  }
626
673
 
627
- findJudgementByMetavariableName(metavariableName) {
628
- const judgements = this.getJudgements(),
629
- judgement = judgements.find((judgement) => {
630
- const judgementMetavariableComparesToMetavariable = judgement.matchMetavariableName(metavariableName);
674
+ findVariableByVariableIdentifier(variableIdentifier) {
675
+ const variables = this.getVariables(),
676
+ variable = variables.find((variable) => {
677
+ const variableComparesToVariableIdentifier = variable.compareVariableIdentifier(variableIdentifier);
631
678
 
632
- if (judgementMetavariableComparesToMetavariable) {
679
+ if (variableComparesToVariableIdentifier) {
633
680
  return true;
634
681
  }
635
682
  }) || null;
636
683
 
637
- return judgement;
684
+ return variable;
638
685
  }
639
686
 
640
687
  findMetavariableByMetavariableName(metavariableName) {
@@ -650,6 +697,19 @@ export default class NominalFileContext extends FileContext {
650
697
  return metavariable;
651
698
  }
652
699
 
700
+ findProcedureByProcedureName(procedureName) {
701
+ const procedures = this.getProcedures(),
702
+ procedure = procedures.find((procedure) => {
703
+ const procedureComparesToProcedureName = procedure.compareProcedureName(procedureName);
704
+
705
+ if (procedureComparesToProcedureName) {
706
+ return true;
707
+ }
708
+ }) || null;
709
+
710
+ return procedure;
711
+ }
712
+
653
713
  isMetavariablePresent(metavariable) {
654
714
  metavariable = this.findMetavariable(metavariable);
655
715
 
@@ -658,6 +718,48 @@ export default class NominalFileContext extends FileContext {
658
718
  return metavariablePresent;
659
719
  }
660
720
 
721
+ isLabelPresentByMetavariable(metavariable) {
722
+ const label = this.findLabelByMetavariable(metavariable),
723
+ labelPresent = (label !== null);
724
+
725
+ return labelPresent;
726
+ }
727
+
728
+ isLabelPresentByReference(reference) {
729
+ const labels = this.getLabels(),
730
+ labelPresent = labels.some((label) => {
731
+ const context = this, ///
732
+ labelUnifies = reference.unifyLabel(label, context);
733
+
734
+ if (labelUnifies) {
735
+ return true;
736
+ }
737
+ });
738
+
739
+ return labelPresent;
740
+ }
741
+
742
+ isMetavariablePresentByReference(reference) {
743
+ const metavariables = this.getMetavariables(),
744
+ metavariablePresent = metavariables.some((metavariable) => {
745
+ const context = this, ///
746
+ metavariableUnifies = reference.unifyMetavariable(metavariable, context);
747
+
748
+ if (metavariableUnifies) {
749
+ return true;
750
+ }
751
+ });
752
+
753
+ return metavariablePresent;
754
+ }
755
+
756
+ isTopLevelMetaAssertionPresentByReference(reference) {
757
+ const topLevelMetaAssertion = this.findTopLevelMetaAssertionByReference(reference),
758
+ topLevelMetaAssertionPresent = (topLevelMetaAssertion !== null);
759
+
760
+ return topLevelMetaAssertionPresent;
761
+ }
762
+
661
763
  isTypePresentByTypeName(typeName, includeRelease = true, includeDependencies = true) {
662
764
  const type = this.findTypeByTypeName(typeName, includeRelease, includeDependencies),
663
765
  typePresent = (type !== null);
@@ -679,6 +781,13 @@ export default class NominalFileContext extends FileContext {
679
781
  return typePresent;
680
782
  }
681
783
 
784
+ isLabelPresentByMetavariableName(metavariableName) {
785
+ const label = this.findLabelByMetavariableName(metavariableName),
786
+ labelPresent = (label !== null);
787
+
788
+ return labelPresent;
789
+ }
790
+
682
791
  isTypePrefixPresentByTypePrefixName(typePrefixName) {
683
792
  const typePrefix = this.findTypePrefixByTypePrefixName(typePrefixName),
684
793
  typePrefixPresent = (typePrefix !== null);
@@ -693,20 +802,6 @@ export default class NominalFileContext extends FileContext {
693
802
  return variablePresent;
694
803
  }
695
804
 
696
- isLabelPresentByMetavariableName(metavariableName) {
697
- const label = this.findLabelByMetavariableName(metavariableName),
698
- labelPresent = (label !== null);
699
-
700
- return labelPresent;
701
- }
702
-
703
- isLabelPresentByMetavariable(metavariable) {
704
- const label = this.findLabelByMetavariable(metavariable),
705
- labelPresent = (label !== null);
706
-
707
- return labelPresent;
708
- }
709
-
710
805
  isMetavariablePresentByMetavariableName(metavariableName) {
711
806
  const metavariable = this.findMetavariableByMetavariableName(metavariableName),
712
807
  metavariablePresent = (metavariable !== null);
@@ -714,48 +809,13 @@ export default class NominalFileContext extends FileContext {
714
809
  return metavariablePresent;
715
810
  }
716
811
 
717
- isLabelPresentByReference(reference) {
718
- const labels = this.getLabels(),
719
- labelPresent = labels.some((label) => {
720
- const context = this, ///
721
- labelUnifies = reference.unifyLabel(label, context);
722
-
723
- if (labelUnifies) {
724
- return true;
725
- }
726
- });
727
-
728
- return labelPresent;
729
- }
730
-
731
- isProcedurePresentByName(name) {
732
- const procedure = this.findProcedureByName(name),
812
+ isProcedurePresentByProcedureName(procedureName) {
813
+ const procedure = this.findProcedureByProcedureName(procedureName),
733
814
  procedurePresent = (procedure !== null);
734
815
 
735
816
  return procedurePresent;
736
817
  }
737
818
 
738
- isMetavariablePresentByReference(reference) {
739
- const metavariables = this.getMetavariables(),
740
- metavariablePresent = metavariables.some((metavariable) => {
741
- const context = this, ///
742
- metavariableUnifies = reference.unifyMetavariable(metavariable, context);
743
-
744
- if (metavariableUnifies) {
745
- return true;
746
- }
747
- });
748
-
749
- return metavariablePresent;
750
- }
751
-
752
- isTopLevelMetaAssertionPresentByReference(reference) {
753
- const topLevelMetaAssertion = this.findTopLevelMetaAssertionByReference(reference),
754
- topLevelMetaAssertionPresent = (topLevelMetaAssertion !== null);
755
-
756
- return topLevelMetaAssertionPresent;
757
- }
758
-
759
819
  clear() {
760
820
  this.types = [];
761
821
  this.rules = [];
@@ -810,7 +870,7 @@ export default class NominalFileContext extends FileContext {
810
870
 
811
871
  async verifyFile() {
812
872
  const node = this.getNode(),
813
- context = this,
873
+ context = this, ///
814
874
  fileNode = node, ///
815
875
  fileVerifies = await verifyFile(fileNode, context);
816
876