occam-verify-cli 0.0.683 → 0.0.684

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 (130) hide show
  1. package/lib/assignment/equality.js +60 -0
  2. package/lib/assignment/variable.js +60 -0
  3. package/lib/axiom.js +4 -4
  4. package/lib/axiomLemmaTheoremConjecture.js +29 -29
  5. package/lib/collection.js +154 -0
  6. package/lib/combinator.js +1 -1
  7. package/lib/conclusion.js +5 -5
  8. package/lib/conjecture.js +4 -4
  9. package/lib/consequent.js +3 -3
  10. package/lib/constructor.js +1 -1
  11. package/lib/context/file.js +9 -2
  12. package/lib/context/local.js +330 -0
  13. package/lib/context/localMeta.js +192 -0
  14. package/lib/context/release.js +1 -1
  15. package/lib/equality.js +19 -87
  16. package/lib/label.js +1 -1
  17. package/lib/lemma.js +4 -4
  18. package/lib/log.js +1 -1
  19. package/lib/metaType.js +1 -1
  20. package/lib/metavariable.js +1 -1
  21. package/lib/ocmbinator/bracketed.js +1 -1
  22. package/lib/premise.js +9 -9
  23. package/lib/rule.js +25 -25
  24. package/lib/step/metaproof.js +1 -1
  25. package/lib/step/proof.js +1 -1
  26. package/lib/substitution/metastatementForMetavariable.js +1 -1
  27. package/lib/substitution/statementForMetavariable.js +1 -1
  28. package/lib/substitution/termForVariable.js +1 -1
  29. package/lib/supposition.js +5 -5
  30. package/lib/term.js +68 -0
  31. package/lib/theorem.js +4 -4
  32. package/lib/type.js +5 -5
  33. package/lib/utilities/array.js +4 -4
  34. package/lib/utilities/collection.js +107 -0
  35. package/lib/variable.js +1 -1
  36. package/lib/verifier/node/metastatement.js +9 -9
  37. package/lib/verifier/node/statementAsCombinator.js +1 -1
  38. package/lib/verifier/node/termAsConstructor.js +2 -2
  39. package/lib/verifier/node.js +1 -1
  40. package/lib/verifier/nodes/metastatementForMetavariable/conclusion.js +1 -1
  41. package/lib/verifier/nodes/metastatementForMetavariable/premise.js +1 -1
  42. package/lib/verifier/nodes/metastatementForMetavariable.js +8 -8
  43. package/lib/verifier/nodes/statement.js +1 -1
  44. package/lib/verifier/nodes/statementForMetavariable/conclusion.js +1 -1
  45. package/lib/verifier/nodes/statementForMetavariable/premise.js +1 -1
  46. package/lib/verifier/nodes/statementForMetavariable.js +9 -9
  47. package/lib/verifier/nodes/term.js +3 -3
  48. package/lib/verifier/nodes/termForVariable/consequent.js +1 -1
  49. package/lib/verifier/nodes/termForVariable/supposition.js +1 -1
  50. package/lib/verifier/nodes/termForVariable.js +11 -11
  51. package/lib/verifier/nodes.js +1 -1
  52. package/lib/verify/axiom.js +6 -6
  53. package/lib/verify/conclusion.js +6 -6
  54. package/lib/verify/conjecture.js +7 -7
  55. package/lib/verify/consequent.js +6 -6
  56. package/lib/verify/derivation.js +17 -17
  57. package/lib/verify/equality.js +50 -18
  58. package/lib/verify/lemma.js +7 -7
  59. package/lib/verify/metastatement/qualified.js +7 -7
  60. package/lib/verify/metastatement/unqualified.js +7 -7
  61. package/lib/verify/metastatement.js +12 -12
  62. package/lib/verify/premise.js +7 -7
  63. package/lib/verify/proof.js +10 -7
  64. package/lib/verify/rule.js +6 -6
  65. package/lib/verify/ruleDerivation.js +17 -17
  66. package/lib/verify/ruleProof.js +6 -6
  67. package/lib/verify/statement/qualified.js +15 -15
  68. package/lib/verify/statement/unqualified.js +7 -7
  69. package/lib/verify/supposition.js +8 -8
  70. package/lib/verify/term.js +32 -31
  71. package/lib/verify/terms.js +11 -17
  72. package/lib/verify/theorem.js +7 -7
  73. package/lib/verify/typeAssertion.js +3 -3
  74. package/package.json +1 -1
  75. package/src/assignment/equality.js +21 -0
  76. package/src/assignment/variable.js +21 -0
  77. package/src/axiom.js +1 -1
  78. package/src/axiomLemmaTheoremConjecture.js +26 -26
  79. package/src/collection.js +101 -0
  80. package/src/conclusion.js +6 -6
  81. package/src/conjecture.js +1 -1
  82. package/src/consequent.js +4 -4
  83. package/src/context/file.js +9 -1
  84. package/src/context/local.js +311 -0
  85. package/src/context/{metaproof.js → localMeta.js} +16 -17
  86. package/src/equality.js +17 -111
  87. package/src/lemma.js +1 -1
  88. package/src/premise.js +12 -12
  89. package/src/rule.js +24 -24
  90. package/src/supposition.js +8 -8
  91. package/src/term.js +30 -0
  92. package/src/theorem.js +1 -1
  93. package/src/type.js +3 -3
  94. package/src/utilities/array.js +1 -1
  95. package/src/utilities/collection.js +83 -0
  96. package/src/verifier/node/metastatement.js +8 -8
  97. package/src/verifier/node/termAsConstructor.js +2 -2
  98. package/src/verifier/nodes/metastatementForMetavariable.js +7 -7
  99. package/src/verifier/nodes/statementForMetavariable.js +8 -8
  100. package/src/verifier/nodes/term.js +5 -4
  101. package/src/verifier/nodes/termForVariable.js +15 -14
  102. package/src/verify/axiom.js +5 -5
  103. package/src/verify/conclusion.js +5 -5
  104. package/src/verify/conjecture.js +6 -6
  105. package/src/verify/consequent.js +5 -5
  106. package/src/verify/derivation.js +16 -16
  107. package/src/verify/equality.js +81 -24
  108. package/src/verify/lemma.js +6 -6
  109. package/src/verify/metastatement/qualified.js +7 -7
  110. package/src/verify/metastatement/unqualified.js +6 -6
  111. package/src/verify/metastatement.js +11 -11
  112. package/src/verify/premise.js +6 -6
  113. package/src/verify/proof.js +13 -10
  114. package/src/verify/rule.js +5 -5
  115. package/src/verify/ruleDerivation.js +16 -16
  116. package/src/verify/ruleProof.js +5 -5
  117. package/src/verify/statement/qualified.js +15 -15
  118. package/src/verify/statement/unqualified.js +6 -6
  119. package/src/verify/supposition.js +7 -7
  120. package/src/verify/term.js +38 -35
  121. package/src/verify/terms.js +14 -28
  122. package/src/verify/theorem.js +6 -6
  123. package/src/verify/typeAssertion.js +3 -2
  124. package/lib/assignment.js +0 -74
  125. package/lib/context/metaproof.js +0 -192
  126. package/lib/context/proof.js +0 -245
  127. package/lib/verifier/nodes/equality.js +0 -155
  128. package/src/assignment.js +0 -36
  129. package/src/context/proof.js +0 -205
  130. package/src/verifier/nodes/equality.js +0 -68
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ export default class EqualityAssignment {
4
+ constructor(equality) {
5
+ this.equality = equality;
6
+ }
7
+
8
+ getEquality() {
9
+ return this.equality;
10
+ }
11
+
12
+ assign(localContext) {
13
+ localContext.addEquality(this.equality);
14
+ }
15
+
16
+ static fromEquality(equality) {
17
+ const assignmentAssignment = new EqualityAssignment(equality);
18
+
19
+ return assignmentAssignment;
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ export default class VariableAssignment {
4
+ constructor(variable) {
5
+ this.variable = variable;
6
+ }
7
+
8
+ getVariable() {
9
+ return this.variable;
10
+ }
11
+
12
+ assign(localContext) {
13
+ localContext.addVariable(this.variable);
14
+ }
15
+
16
+ static fromVariable(variable) {
17
+ const assignmentAssignment = new VariableAssignment(variable);
18
+
19
+ return assignmentAssignment;
20
+ }
21
+ }
package/src/axiom.js CHANGED
@@ -5,5 +5,5 @@ import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
5
5
  export default class Axiom extends AxiomLemmaTheoremConjecture {
6
6
  static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Axiom, json, fileContext); }
7
7
 
8
- static fromLabelsSuppositionsConsequentAndProofContext(labels, suppositions, consequent, proofContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndProofContext(Axiom, labels, suppositions, consequent, proofContext); }
8
+ static fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndLocalContext(Axiom, labels, suppositions, consequent, localContext); }
9
9
  }
@@ -3,17 +3,17 @@
3
3
  import Label from "./label";
4
4
  import Consequent from "./consequent";
5
5
  import Supposition from "./supposition";
6
- import ProofContext from "./context/proof";
6
+ import LocalContext from "./context/local";
7
7
 
8
8
  import { prune } from "./utilities/array";
9
9
  import { someSubArray } from "./utilities/array";
10
10
 
11
11
  export default class AxiomLemmaTheoremConjecture {
12
- constructor(labels, suppositions, consequent, proofContext) {
12
+ constructor(labels, suppositions, consequent, localContext) {
13
13
  this.labels = labels;
14
14
  this.suppositions = suppositions;
15
15
  this.consequent = consequent;
16
- this.proofContext = proofContext;
16
+ this.localContext = localContext;
17
17
  }
18
18
 
19
19
  getLabels() {
@@ -28,8 +28,8 @@ export default class AxiomLemmaTheoremConjecture {
28
28
  return this.consequent;
29
29
  }
30
30
 
31
- getProofContext() {
32
- return this.proofContext;
31
+ getLocalContext() {
32
+ return this.localContext;
33
33
  }
34
34
 
35
35
  matchLabelName(labelName) {
@@ -45,27 +45,27 @@ export default class AxiomLemmaTheoremConjecture {
45
45
  return labelNameMatches;
46
46
  }
47
47
 
48
- matchStatement(statementNode, statementProofContext) {
48
+ matchStatement(statementNode, statementLocalContext) {
49
49
  let statementNatches;
50
50
 
51
51
  const suppositionsLength = this.suppositions.length;
52
52
 
53
53
  if (suppositionsLength === 0) {
54
54
  const substitutions = [],
55
- consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.proofContext, statementProofContext);
55
+ consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, statementLocalContext);
56
56
 
57
57
  statementNatches = consequentMatches; ///
58
58
  } else {
59
- const proofSteps = statementProofContext.getProofSteps();
59
+ const proofSteps = statementLocalContext.getProofSteps();
60
60
 
61
61
  statementNatches = someSubArray(proofSteps, suppositionsLength, (proofSteps) => {
62
62
  let suppositionsMatchConsequent = false;
63
63
 
64
64
  const substitutions = [],
65
- suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.proofContext, statementProofContext);
65
+ suppositionsMatch = matchSuppositions(this.suppositions, proofSteps, substitutions, this.localContext, statementLocalContext);
66
66
 
67
67
  if (suppositionsMatch) {
68
- const consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.proofContext, statementProofContext);
68
+ const consequentMatches = matchConsequent(this.consequent, statementNode, substitutions, this.localContext, statementLocalContext);
69
69
 
70
70
  suppositionsMatchConsequent = consequentMatches; ///
71
71
  }
@@ -91,16 +91,16 @@ export default class AxiomLemmaTheoremConjecture {
91
91
  return suppositionJSON;
92
92
  }),
93
93
  consequentJSON = this.consequent.toJSON(tokens),
94
- proofContextJSON = this.proofContext.toJSON(tokens),
94
+ localContextJSON = this.localContext.toJSON(tokens),
95
95
  labels = labelsJSON, ///
96
96
  suppositions = suppositionsJSON, ///
97
97
  consequent = consequentJSON, ///
98
- proofContext = proofContextJSON, ///
98
+ localContext = localContextJSON, ///
99
99
  json = {
100
100
  labels,
101
101
  suppositions,
102
102
  consequent,
103
- proofContext
103
+ localContext
104
104
  };
105
105
 
106
106
  return json;
@@ -118,7 +118,7 @@ export default class AxiomLemmaTheoremConjecture {
118
118
  return label;
119
119
  });
120
120
 
121
- let { suppositions, consequent, proofContext } = json;
121
+ let { suppositions, consequent, localContext } = json;
122
122
 
123
123
  const suppositionsJSON = suppositions; ///
124
124
 
@@ -135,25 +135,25 @@ export default class AxiomLemmaTheoremConjecture {
135
135
 
136
136
  consequent = Consequent.fromJSONAndFileContext(json, fileContext);
137
137
 
138
- const proofContextJSON = proofContext; ///
138
+ const localContextJSON = localContext; ///
139
139
 
140
- json = proofContextJSON; ///
140
+ json = localContextJSON; ///
141
141
 
142
- proofContext = ProofContext.fromJSONAndFileContext(json, fileContext);
142
+ localContext = LocalContext.fromJSONAndFileContext(json, fileContext);
143
143
 
144
- return new Class(labels, suppositions, consequent, proofContext); ///
144
+ return new Class(labels, suppositions, consequent, localContext); ///
145
145
  }
146
146
 
147
- static fromLabelsSuppositionsConsequentAndProofContext(Class, labels, suppositions, consequent, proofContext) { return new Class(labels, suppositions, consequent, proofContext); }
147
+ static fromLabelsSuppositionsConsequentAndLocalContext(Class, labels, suppositions, consequent, localContext) { return new Class(labels, suppositions, consequent, localContext); }
148
148
  }
149
149
 
150
- function matchSupposition(supposition, proofSteps, substitutions, proofContext, statementProofContext) {
150
+ function matchSupposition(supposition, proofSteps, substitutions, localContext, statementLocalContext) {
151
151
  const proofStep = prune(proofSteps, (proofStep) => {
152
152
  const subproofNode = proofStep.getSubproofNode(),
153
153
  statementNode = proofStep.getStatementNode();
154
154
 
155
155
  if (subproofNode !== null) {
156
- const subProofMatches = supposition.matchSubproofNode(subproofNode, substitutions, proofContext, statementProofContext);
156
+ const subProofMatches = supposition.matchSubproofNode(subproofNode, substitutions, localContext, statementLocalContext);
157
157
 
158
158
  if (!subProofMatches) { ///
159
159
  return true;
@@ -161,7 +161,7 @@ function matchSupposition(supposition, proofSteps, substitutions, proofContext,
161
161
  }
162
162
 
163
163
  if (statementNode !== null) {
164
- const statementMatches = supposition.matchStatementNode(statementNode, substitutions, proofContext, statementProofContext);
164
+ const statementMatches = supposition.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext);
165
165
 
166
166
  if (!statementMatches) { ///
167
167
  return true;
@@ -175,9 +175,9 @@ function matchSupposition(supposition, proofSteps, substitutions, proofContext,
175
175
  return suppositionMatches;
176
176
  }
177
177
 
178
- function matchSuppositions(suppositions, proofSteps, substitutions, proofContext, statementProofContext) {
178
+ function matchSuppositions(suppositions, proofSteps, substitutions, localContext, statementLocalContext) {
179
179
  const suppositionsMatch = suppositions.every((supposition) => {
180
- const suppositionMatches = matchSupposition(supposition, proofSteps, substitutions, proofContext, statementProofContext);
180
+ const suppositionMatches = matchSupposition(supposition, proofSteps, substitutions, localContext, statementLocalContext);
181
181
 
182
182
  if (suppositionMatches) {
183
183
  return true;
@@ -187,8 +187,8 @@ function matchSuppositions(suppositions, proofSteps, substitutions, proofContext
187
187
  return suppositionsMatch;
188
188
  }
189
189
 
190
- function matchConsequent(consequent, statementNode, substitutions, proofContext, statementProofContext) {
191
- const nonTerminalNodeMatches = consequent.matchStatementNode(statementNode, substitutions, proofContext, statementProofContext),
190
+ function matchConsequent(consequent, statementNode, substitutions, localContext, statementLocalContext) {
191
+ const nonTerminalNodeMatches = consequent.matchStatementNode(statementNode, substitutions, localContext, statementLocalContext),
192
192
  consequentMatches = nonTerminalNodeMatches; ///
193
193
 
194
194
  return consequentMatches;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ export default class Collection {
4
+ constructor(terms) {
5
+ this.terms = terms;
6
+ }
7
+
8
+ getTerms() {
9
+ return this.terms;
10
+ }
11
+
12
+ setTerms(terms) {
13
+ this.terms = terms;
14
+ }
15
+
16
+ addTerm(term) {
17
+ this.terms.push(term);
18
+ }
19
+
20
+ getType() {
21
+ const type = this.terms.reduce((type, term) => {
22
+ const termType = term.getType();
23
+
24
+ if (type === null) {
25
+ type = termType; ///
26
+ } else {
27
+ const termTypeSubTypeOfType = termType.isSubTypeOf(type);
28
+
29
+ if (termTypeSubTypeOfType) {
30
+ type = termType; ///
31
+ }
32
+ }
33
+
34
+ return type;
35
+ }, null);
36
+
37
+ return type;
38
+ }
39
+
40
+ matchType(type) {
41
+ const typeA = type; ///
42
+
43
+ type = this.getType();
44
+
45
+ const typeB = type; ///
46
+
47
+ const typeMatches = (typeA === typeB); ///
48
+
49
+ return typeMatches;
50
+ }
51
+
52
+ matchTerm(term) {
53
+ const termA = term, ///
54
+ termMatches = this.terms.some((term) => {
55
+ const termB = term, ///
56
+ termAMatchesTermB = termA.match(termB);
57
+
58
+ if (termAMatchesTermB) {
59
+ return true;
60
+ }
61
+ });
62
+
63
+ return termMatches;
64
+ }
65
+
66
+ matchTerms(terms) {
67
+ const termsMatch = terms.every((term) => {
68
+ const termMatches = this.matchTerm(term);
69
+
70
+ if (termMatches) {
71
+ return true;
72
+ }
73
+ })
74
+
75
+ return termsMatch;
76
+ }
77
+
78
+ static fromEquality(equality) {
79
+ const leftTerm = equality.getLeftTerm(),
80
+ rightTerm = equality.getRightTerm(),
81
+ terms = [
82
+ leftTerm,
83
+ rightTerm
84
+ ],
85
+ collection = new Collection(terms);
86
+
87
+ return collection;
88
+ }
89
+
90
+ static fromCollections(collectionA, collectionB) {
91
+ const collectionATerms = collectionA.getTerms(),
92
+ collectionBTerms = collectionB.getTerms(),
93
+ terms = [
94
+ ...collectionATerms,
95
+ ...collectionBTerms
96
+ ],
97
+ collection = new Collection(terms);
98
+
99
+ return collection;
100
+ }
101
+ }
package/src/conclusion.js CHANGED
@@ -15,12 +15,12 @@ export default class Conclusion {
15
15
  return this.metastatementNode;
16
16
  }
17
17
 
18
- matchStatementNode(statementNode, substitutions, fileContext, statementProofContext) {
18
+ matchStatementNode(statementNode, substitutions, fileContext, statementLocalContext) {
19
19
  const nonTerminalNodeA = this.metastatementNode, ///
20
20
  nonTerminalNodeB = statementNode, ///
21
21
  fileContextA = fileContext, ///
22
- proofContextB = statementProofContext, ///
23
- nonTerminalNodeVerified = conclusionStatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, proofContextB, () => {
22
+ localContextB = statementLocalContext, ///
23
+ nonTerminalNodeVerified = conclusionStatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, localContextB, () => {
24
24
  const verifyAhead = true;
25
25
 
26
26
  return verifyAhead;
@@ -30,12 +30,12 @@ export default class Conclusion {
30
30
  return statementNodeMatches;
31
31
  }
32
32
 
33
- matchMetastatementNode(metastatementNode, substitutions, fileContext, metastatementMetaproofContext) {
33
+ matchMetastatementNode(metastatementNode, substitutions, fileContext, metastatementMetalocalContext) {
34
34
  const nonTerminalNodeA = this.metastatementNode, ///
35
35
  nonTerminalNodeB = metastatementNode, ///
36
36
  fileContextA = fileContext, ///
37
- metaproofContextB = metastatementMetaproofContext, ///
38
- nonTerminalNodeVerified = conclusionMetastatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, metaproofContextB, () => {
37
+ metalocalContextB = metastatementMetalocalContext, ///
38
+ nonTerminalNodeVerified = conclusionMetastatementForMetavariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, fileContextA, metalocalContextB, () => {
39
39
  const verifiedAhead = true;
40
40
 
41
41
  return verifiedAhead;
package/src/conjecture.js CHANGED
@@ -5,5 +5,5 @@ import AxiomLemmaTheoremConjecture from "./axiomLemmaTheoremConjecture";
5
5
  export default class Conjecture extends AxiomLemmaTheoremConjecture {
6
6
  static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Conjecture, json, fileContext); }
7
7
 
8
- static fromLabelsSuppositionsConsequentAndProofContext(labels, suppositions, consequent, proofContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndProofContext(Conjecture, labels, suppositions, consequent, proofContext); }
8
+ static fromLabelsSuppositionsConsequentAndLocalContext(labels, suppositions, consequent, localContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequentAndLocalContext(Conjecture, labels, suppositions, consequent, localContext); }
9
9
  }
package/src/consequent.js CHANGED
@@ -14,12 +14,12 @@ export default class Consequent {
14
14
  return this.statementNode;
15
15
  }
16
16
 
17
- matchStatementNode(statementNode, substitutions, proofContext) {
17
+ matchStatementNode(statementNode, substitutions, localContext) {
18
18
  const nonTerminalNodeA = this.statementNode, ///
19
19
  nonTerminalNodeB = statementNode, ///
20
- proofContextA = proofContext, ///
21
- proofContextB = null, ///
22
- nonTerminalNodeVerified = consequentTermForVariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, proofContextA, proofContextB, () => {
20
+ localContextA = localContext, ///
21
+ localContextB = null, ///
22
+ nonTerminalNodeVerified = consequentTermForVariableNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
23
23
  const verifiedAhead = true;
24
24
 
25
25
  return verifiedAhead;
@@ -58,7 +58,9 @@ export default class FileContext {
58
58
 
59
59
  getParser() { return this.releaseContext.getParser(); }
60
60
 
61
- getEqualities(equalities = []) {
61
+ getEqualities() {
62
+ const equalities = []; ///
63
+
62
64
  return equalities;
63
65
  }
64
66
 
@@ -68,6 +70,12 @@ export default class FileContext {
68
70
  return proofSteps;
69
71
  }
70
72
 
73
+ getCollections() {
74
+ const collections = []; ///
75
+
76
+ return collections;
77
+ }
78
+
71
79
  getMetaproofSteps() {
72
80
  const metaproofSteps = []; ///
73
81