occam-verify-cli 1.0.220 → 1.0.224

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 (161) hide show
  1. package/lib/context/file.js +19 -19
  2. package/lib/context/local.js +5 -43
  3. package/lib/context/release.js +11 -11
  4. package/lib/dom/assertion/contained.js +44 -44
  5. package/lib/dom/assertion/defined.js +40 -40
  6. package/lib/dom/assertion/property.js +37 -35
  7. package/lib/dom/assertion/satisfies.js +26 -25
  8. package/lib/dom/assertion/subproof.js +16 -16
  9. package/lib/dom/assertion/type.js +34 -32
  10. package/lib/dom/axiom.js +52 -52
  11. package/lib/dom/combinator/bracketed.js +5 -5
  12. package/lib/dom/combinator.js +6 -6
  13. package/lib/dom/conclusion.js +10 -10
  14. package/lib/dom/conjecture.js +5 -5
  15. package/lib/dom/constructor/bracketed.js +12 -12
  16. package/lib/dom/constructor.js +9 -9
  17. package/lib/dom/declaration/combinator.js +11 -11
  18. package/lib/dom/declaration/complexType.js +133 -63
  19. package/lib/dom/declaration/constructor.js +17 -17
  20. package/lib/dom/declaration/metavariable.js +17 -17
  21. package/lib/dom/declaration/simpleType.js +229 -0
  22. package/lib/dom/declaration/variable.js +17 -17
  23. package/lib/dom/declaration.js +54 -52
  24. package/lib/dom/deduction.js +15 -15
  25. package/lib/dom/derivation.js +8 -8
  26. package/lib/dom/equality.js +49 -34
  27. package/lib/dom/error.js +3 -3
  28. package/lib/dom/frame.js +38 -38
  29. package/lib/dom/judgement.js +31 -29
  30. package/lib/dom/label.js +5 -5
  31. package/lib/dom/lemma.js +5 -5
  32. package/lib/dom/metaLemma.js +5 -5
  33. package/lib/dom/metatheorem.js +5 -5
  34. package/lib/dom/metavariable.js +55 -55
  35. package/lib/dom/premise.js +36 -34
  36. package/lib/dom/procedureCall.js +9 -9
  37. package/lib/dom/proof.js +6 -6
  38. package/lib/dom/propertyRelation.js +18 -18
  39. package/lib/dom/reference.js +28 -28
  40. package/lib/dom/rule.js +63 -48
  41. package/lib/dom/signature.js +17 -17
  42. package/lib/dom/statement.js +36 -36
  43. package/lib/dom/step.js +32 -35
  44. package/lib/dom/subDerivation.js +8 -8
  45. package/lib/dom/subproof.js +27 -30
  46. package/lib/dom/substitution/statement.js +7 -7
  47. package/lib/dom/substitution/term.js +2 -16
  48. package/lib/dom/substitution.js +1 -15
  49. package/lib/dom/supposition.js +39 -39
  50. package/lib/dom/term.js +15 -15
  51. package/lib/dom/theorem.js +5 -5
  52. package/lib/dom/topLevelAssertion.js +60 -71
  53. package/lib/dom/topLevelMetaAssertion.js +28 -20
  54. package/lib/dom/type.js +18 -24
  55. package/lib/dom/variable.js +16 -16
  56. package/lib/equivalence.js +54 -33
  57. package/lib/equivalences.js +57 -101
  58. package/lib/index.js +2 -2
  59. package/lib/mixins/statement/verify.js +52 -52
  60. package/lib/mixins/step/unify.js +79 -61
  61. package/lib/mixins/term/verify.js +17 -17
  62. package/lib/substitutions.js +7 -7
  63. package/lib/unifier/equantional.js +170 -0
  64. package/lib/unifier/intrinsicLevel.js +8 -8
  65. package/lib/unifier/metaLevel.js +21 -21
  66. package/lib/unifier/metavariable.js +9 -9
  67. package/lib/unifier/statementWithCombinator.js +18 -18
  68. package/lib/unifier/termWithConstructor.js +10 -10
  69. package/lib/unifier.js +41 -41
  70. package/lib/utilities/brackets.js +2 -2
  71. package/lib/utilities/release.js +18 -17
  72. package/lib/utilities/subproof.js +2 -2
  73. package/lib/utilities/type.js +2 -2
  74. package/lib/utilities/unification.js +28 -34
  75. package/lib/verifier/combinator.js +14 -14
  76. package/lib/verifier/constructor.js +18 -18
  77. package/lib/verifier/topLevel.js +38 -38
  78. package/lib/verifier.js +30 -30
  79. package/package.json +1 -1
  80. package/src/context/file.js +18 -18
  81. package/src/context/local.js +5 -48
  82. package/src/context/release.js +11 -11
  83. package/src/dom/assertion/contained.js +46 -46
  84. package/src/dom/assertion/defined.js +41 -41
  85. package/src/dom/assertion/property.js +37 -35
  86. package/src/dom/assertion/satisfies.js +26 -25
  87. package/src/dom/assertion/subproof.js +15 -15
  88. package/src/dom/assertion/type.js +34 -32
  89. package/src/dom/axiom.js +56 -54
  90. package/src/dom/combinator/bracketed.js +4 -4
  91. package/src/dom/combinator.js +5 -5
  92. package/src/dom/conclusion.js +9 -9
  93. package/src/dom/conjecture.js +4 -4
  94. package/src/dom/constructor/bracketed.js +11 -11
  95. package/src/dom/constructor.js +8 -8
  96. package/src/dom/declaration/combinator.js +10 -10
  97. package/src/dom/declaration/complexType.js +129 -64
  98. package/src/dom/declaration/constructor.js +16 -16
  99. package/src/dom/declaration/metavariable.js +16 -16
  100. package/src/dom/declaration/simpleType.js +179 -0
  101. package/src/dom/declaration/variable.js +16 -16
  102. package/src/dom/declaration.js +54 -52
  103. package/src/dom/deduction.js +14 -14
  104. package/src/dom/derivation.js +7 -7
  105. package/src/dom/equality.js +55 -38
  106. package/src/dom/error.js +2 -2
  107. package/src/dom/frame.js +38 -38
  108. package/src/dom/judgement.js +31 -29
  109. package/src/dom/label.js +4 -4
  110. package/src/dom/lemma.js +4 -4
  111. package/src/dom/metaLemma.js +4 -4
  112. package/src/dom/metatheorem.js +4 -4
  113. package/src/dom/metavariable.js +54 -54
  114. package/src/dom/premise.js +35 -33
  115. package/src/dom/procedureCall.js +8 -8
  116. package/src/dom/proof.js +5 -5
  117. package/src/dom/propertyRelation.js +17 -17
  118. package/src/dom/reference.js +27 -27
  119. package/src/dom/rule.js +72 -49
  120. package/src/dom/signature.js +15 -15
  121. package/src/dom/statement.js +34 -34
  122. package/src/dom/step.js +42 -48
  123. package/src/dom/subDerivation.js +7 -7
  124. package/src/dom/subproof.js +30 -40
  125. package/src/dom/substitution/statement.js +6 -6
  126. package/src/dom/substitution/term.js +1 -19
  127. package/src/dom/substitution.js +0 -13
  128. package/src/dom/supposition.js +38 -38
  129. package/src/dom/term.js +14 -14
  130. package/src/dom/theorem.js +4 -4
  131. package/src/dom/topLevelAssertion.js +62 -81
  132. package/src/dom/topLevelMetaAssertion.js +35 -20
  133. package/src/dom/type.js +23 -33
  134. package/src/dom/variable.js +16 -15
  135. package/src/equivalence.js +69 -46
  136. package/src/equivalences.js +53 -115
  137. package/src/index.js +1 -1
  138. package/src/mixins/statement/verify.js +51 -51
  139. package/src/mixins/step/unify.js +88 -67
  140. package/src/mixins/term/verify.js +16 -16
  141. package/src/substitutions.js +5 -6
  142. package/src/unifier/equantional.js +90 -0
  143. package/src/unifier/intrinsicLevel.js +7 -7
  144. package/src/unifier/metaLevel.js +20 -21
  145. package/src/unifier/metavariable.js +8 -8
  146. package/src/unifier/statementWithCombinator.js +17 -17
  147. package/src/unifier/termWithConstructor.js +9 -9
  148. package/src/unifier.js +40 -40
  149. package/src/utilities/brackets.js +1 -1
  150. package/src/utilities/release.js +18 -18
  151. package/src/utilities/subproof.js +1 -1
  152. package/src/utilities/type.js +1 -1
  153. package/src/utilities/unification.js +27 -37
  154. package/src/verifier/combinator.js +13 -13
  155. package/src/verifier/constructor.js +17 -17
  156. package/src/verifier/topLevel.js +41 -41
  157. package/src/verifier.js +29 -29
  158. package/lib/dom/declaration/type.js +0 -209
  159. package/lib/unifier/equality.js +0 -155
  160. package/src/dom/declaration/type.js +0 -150
  161. package/src/unifier/equality.js +0 -70
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ import { arrayUtilities } from "necessary";
4
+
3
5
  import { stripBracketsFromTermNode } from "./utilities/brackets";
4
6
 
7
+ const { compress } = arrayUtilities;
8
+
5
9
  export default class Equivalence {
6
10
  constructor(terms) {
7
11
  this.terms = terms;
@@ -15,9 +19,23 @@ export default class Equivalence {
15
19
  const termString = term.getString(),
16
20
  equivalenceString = this.asString(); ///
17
21
 
18
- context.trace(`Adding the '${termString}' term to the '${equivalenceString}' equivalence.`);
22
+ context.trace(`Adding the '${termString}' term to the '${equivalenceString}' equivalence....`);
19
23
 
20
- this.terms.push(term);
24
+ const termA = term, ///
25
+ termPresent = this.someTerm((term) => {
26
+ const termB = term, ///
27
+ termAEqualToTermB = termA.isEqualTo(termB);
28
+
29
+ if (termAEqualToTermB) {
30
+ return true;
31
+ }
32
+ });
33
+
34
+ if (!termPresent) {
35
+ this.terms.push(term);
36
+
37
+ context.debug(`...added the '${termString}' term to the '${equivalenceString}' equivalence.`);
38
+ }
21
39
  }
22
40
 
23
41
  getType() {
@@ -40,19 +58,6 @@ export default class Equivalence {
40
58
  return type;
41
59
  }
42
60
 
43
- matchType(type) {
44
- const typeA = type; ///
45
-
46
- type = this.getType();
47
-
48
- const typeB = type; ///
49
-
50
- const typeAEqualToTypeB = typeA.isEqualTo(typeB),
51
- typeMatches = typeAEqualToTypeB; ///
52
-
53
- return typeMatches;
54
- }
55
-
56
61
  equateTerm(term) {
57
62
  const termA = term, ///
58
63
  termEquates = this.someTerm((term) => {
@@ -112,8 +117,45 @@ export default class Equivalence {
112
117
  return variableNodeMatches;
113
118
  }
114
119
 
120
+ isDisjointFrom(equivalence) {
121
+ const disjointFrom = equivalence.everyTerm((term) => {
122
+ const termEquates = this.equateTerm(term);
123
+
124
+ if (!termEquates) {
125
+ return true;
126
+ }
127
+ });
128
+
129
+ return disjointFrom;
130
+ }
131
+
132
+ mergedWith(equivalence) {
133
+ const equivalenceA = this,
134
+ equivalenceB = equivalence, ///
135
+ equivalenceATerms = equivalenceA.getTerms(),
136
+ equivalenceTermsB = equivalenceB.getTerms(),
137
+ terms = [
138
+ ...equivalenceATerms,
139
+ ...equivalenceTermsB
140
+ ];
141
+
142
+ compress(terms, (termA, termB) => {
143
+ const termAEqualToTermB = termA.isEqualTo(termB);
144
+
145
+ if (termAEqualToTermB) {
146
+ return true;
147
+ }
148
+ });
149
+
150
+ equivalence = new Equivalence(terms);
151
+
152
+ return equivalence;
153
+ }
154
+
115
155
  someTerm(callback) { return this.terms.some(callback); }
116
156
 
157
+ everyTerm(callback) { return this.terms.every(callback); }
158
+
117
159
  someOtherTerm(term, callback) {
118
160
  const termA = term, ///
119
161
  terms = this.terms.filter((term) => {
@@ -201,43 +243,24 @@ export default class Equivalence {
201
243
  }
202
244
 
203
245
  asString() {
204
- let string;
205
-
206
- string = this.terms.reduce((string, term) => {
207
- const termString = term.getString();
208
-
209
- string = (string === null) ?
210
- termString :
211
- `${string} = ${termString}`;
212
-
213
- return string;
214
- }, null);
215
-
216
246
  const type = this.getType(),
217
- typeString = type.getString();
218
-
219
- string = `${string}:${typeString}`;
247
+ typeString = type.getString(),
248
+ termsString = this.terms.reduce((termsString, term) => {
249
+ const termString = term.getString();
220
250
 
221
- return string;
222
- }
251
+ termsString = (termsString === null) ?
252
+ termString :
253
+ `${termsString} = ${termString}`;
223
254
 
224
- static merge(leftEquivalence, rightEquivalence) {
225
- const leftEquivalenceTerms = leftEquivalence.getTerms(),
226
- rightEquivalenceTerms = rightEquivalence.getTerms(),
227
- terms = [
228
- ...leftEquivalenceTerms,
229
- ...rightEquivalenceTerms
230
- ],
231
- equivalence = new Equivalence(terms);
255
+ return termsString;
256
+ }, null),
257
+ string = `${termsString}:${typeString}`;
232
258
 
233
- return equivalence;
259
+ return string;
234
260
  }
235
261
 
236
- static fromLeftTermAndRightTerm(leftTerm, rightTerm) {
237
- const terms = [
238
- leftTerm,
239
- rightTerm
240
- ],
262
+ static fromEquality(equality) {
263
+ const terms = equality.getTerms(),
241
264
  equivalence = new Equivalence(terms);
242
265
 
243
266
  return equivalence;
@@ -2,9 +2,7 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
- import Equivalence from "./equivalence";
6
-
7
- const { push, compress, separate } = arrayUtilities;
5
+ const { push, separate } = arrayUtilities;
8
6
 
9
7
  export default class Equivalences {
10
8
  constructor(array) {
@@ -27,51 +25,21 @@ export default class Equivalences {
27
25
  return types;
28
26
  }
29
27
 
30
- pushEquivalences(equivalences) {
31
- const array = equivalences.getArray();
32
-
33
- push(this.array, array);
34
- }
35
-
36
- forEachEquivalence(callback) { this.array.forEach(callback); }
37
-
38
- separateEquivalences(equivalencesA, equivalencesB, callback) {
39
- const arrayA = equivalencesA.getArray(),
40
- arrayB = equivalencesB.getArray();
41
-
42
- separate(this.array, arrayA, arrayB, callback);
43
- }
44
-
45
- addEquivalence(equivalence, context) {
46
- const equivalenceString = equivalence.asString();
47
-
48
- context.trace(`Added the '${equivalenceString}' equivalence.`);
49
-
28
+ addEquivalence(equivalence) {
50
29
  this.array.push(equivalence);
51
30
  }
52
31
 
53
- removeEquivalence(equivalence, context) {
54
- const index = this.array.indexOf(equivalence),
55
- start = index, ///
56
- deleteCount = 1,
57
- equivalenceString = equivalence.asString();
58
-
59
- context.trace(`Removed the '${equivalenceString}' equivalence.`);
32
+ addEquivalences(equivalences) {
33
+ const array = equivalences.getArray();
60
34
 
61
- this.array.splice(start, deleteCount);
35
+ push(this.array, array);
62
36
  }
63
37
 
64
- findEquivalenceByType(type) {
65
- const equivalence = this.array.find((equivalence) => {
66
- const equivalenceMatchesType = equivalence.matchType(type);
38
+ someEquivalence(callback) { return this.array.some(callback); }
67
39
 
68
- if (equivalenceMatchesType) {
69
- return true;
70
- }
71
- }) || null;
40
+ everyEquivalence(callback) { return this.array.every(callback); }
72
41
 
73
- return equivalence;
74
- }
42
+ forEachEquivalence(callback) { this.array.forEach(callback); }
75
43
 
76
44
  findEquivalenceByTerm(term) {
77
45
  const equivalence = this.array.find((equivalence) => {
@@ -97,6 +65,45 @@ export default class Equivalences {
97
65
  return equivalence;
98
66
  }
99
67
 
68
+ mergedWith(equivalences) {
69
+ let mergedEquivalences = this.clone(); ///
70
+
71
+ equivalences.forEachEquivalence((equivalence) => {
72
+ mergedEquivalences = mergedEquivalences.mergedWithEquivalence(equivalence);
73
+ });
74
+
75
+ return mergedEquivalences;
76
+ }
77
+
78
+ mergedWithEquivalence(equivalence) {
79
+ const equivalences = Equivalences.fromNothing();
80
+
81
+ let mergedEquivalence = equivalence; ///
82
+
83
+ this.forEachEquivalence((equivalence) => {
84
+ const mergedEquivalenceDisjointFromEquivalence = mergedEquivalence.isDisjointFrom(equivalence);
85
+
86
+ if (mergedEquivalenceDisjointFromEquivalence) {
87
+ equivalences.addEquivalence(equivalence);
88
+ } else {
89
+ mergedEquivalence = mergedEquivalence.mergedWith(equivalence);
90
+ }
91
+ });
92
+
93
+ equivalence = mergedEquivalence; ///
94
+
95
+ equivalences.addEquivalence(equivalence);
96
+
97
+ return equivalences;
98
+ }
99
+
100
+ separateEquivalences(equivalencesA, equivalencesB, callback) {
101
+ const equivalencesAArray = equivalencesA.getArray(),
102
+ equivalencesBArray = equivalencesB.getArray();
103
+
104
+ separate(this.array, equivalencesAArray, equivalencesBArray, callback);
105
+ }
106
+
100
107
  separateInitiallyGroundedEquivalences(remainingEquivalences, initiallyGroundedEquivalences, context) {
101
108
  this.separateEquivalences(remainingEquivalences, initiallyGroundedEquivalences, (equivalence) => {
102
109
  const equivalenceInitiallyGrounded = equivalence.isInitiallyGrounded(context);
@@ -159,48 +166,18 @@ export default class Equivalences {
159
166
 
160
167
  equivalences.separateImplicitlyGroundedEquivalences(remainingEquivalences, implicitlyGroundedEquivalences, definedVariables, context);
161
168
 
162
- groundedEquivalences.pushEquivalences(implicitlyGroundedEquivalences);
169
+ groundedEquivalences.addEquivalences(implicitlyGroundedEquivalences);
163
170
 
164
171
  implicitlyGroundedEquivalencesLength = implicitlyGroundedEquivalences.getLength(); ///
165
172
  }
166
173
  }
167
174
  }
168
175
 
169
- unifySubstitutions(substitutions) {
170
- const substitutionsUnified = substitutions.everySubstitution((substitution) => {
171
- const substitutionUnified = this.unifySubstitution(substitution);
172
-
173
- if (substitutionUnified) {
174
- return true;
175
- }
176
- });
177
-
178
- return substitutionsUnified;
179
- }
180
-
181
- unifySubstitution(substitution) {
182
- const substitutionUnified = this.array.some((equivalence) => {
183
- const substitutionUnifiedWithEquivalence = substitution.unifyWithEquivalence(equivalence);
184
-
185
- if (substitutionUnifiedWithEquivalence) {
186
- return true;
187
- }
188
- });
189
-
190
- return substitutionUnified;
191
- }
192
-
193
- mergedWith(equivalences) {
194
- const equivalencesA = this, ///
195
- equivalencesB = equivalences;
196
-
197
- equivalences = mergeEquivalences(equivalencesA, equivalencesB); ///
198
-
199
- return equivalences;
200
- }
201
-
202
- static fromArray(array) {
203
- const equivalences = new Equivalences(array);
176
+ clone() {
177
+ const array = [
178
+ ...this.array
179
+ ],
180
+ equivalences = new Equivalences(array);
204
181
 
205
182
  return equivalences;
206
183
  }
@@ -213,45 +190,6 @@ export default class Equivalences {
213
190
  }
214
191
  }
215
192
 
216
- function mergeEquivalences(equivalencesA, equivalencesB) {
217
- const typesA = equivalencesA.getTypes(),
218
- typesB = equivalencesB.getTypes(),
219
- types = [
220
- ...typesA,
221
- ...typesB
222
- ];
223
-
224
- compress(types, (typeA, typeB) => {
225
- if (typeA === typeB) {
226
- return true;
227
- }
228
- });
229
-
230
- const array = types.map((type) => {
231
- let equivalence;
232
-
233
- const equivalenceA = equivalencesA.findEquivalenceByType(type), ///
234
- equivalenceB = equivalencesB.findEquivalenceByType(type); ///
235
-
236
- if ((equivalenceA !== null) && (equivalenceB !== null)) {
237
- const leftEquivalence = equivalenceA, ///
238
- rightEquivalence = equivalenceB; ///
239
-
240
- equivalence = Equivalence.merge(leftEquivalence, rightEquivalence);
241
- } else if (equivalenceA !== null) {
242
- equivalence = equivalenceA; ///
243
- } else if (equivalenceB !== null) {
244
- equivalence = equivalenceB; ///
245
- }
246
-
247
- return equivalence;
248
- });
249
-
250
- const equivalences = Equivalences.fromArray(array);
251
-
252
- return equivalences;
253
- }
254
-
255
193
  function definedVariablesFromGroundedTerms(groundedTerms, definedVariables, context) {
256
194
  const terms = groundedTerms, ///
257
195
  variables = definedVariables; ///
package/src/index.js CHANGED
@@ -36,7 +36,6 @@ import Metavariable from "./dom/metavariable";
36
36
  import ProcedureCall from "./dom/procedureCall";
37
37
  import SubDerivation from "./dom/subDerivation";
38
38
  import TypeAssertion from "./dom/assertion/type";
39
- import TypeDeclaration from "./dom/declaration/type";
40
39
  import DefinedAssertion from "./dom/assertion/defined";
41
40
  import PropertyRelation from "./dom/propertyRelation";
42
41
  import TermSubstitution from "./dom/substitution/term";
@@ -48,6 +47,7 @@ import SatisfiesAssertion from "./dom/assertion/satisfies";
48
47
  import VariableDeclaration from "./dom/declaration/variable";
49
48
  import BracketedCombinator from "./dom/combinator/bracketed";
50
49
  import BracketedConstructor from "./dom/constructor/bracketed";
50
+ import SimpleTypeDeclaration from "./dom/declaration/simpleType";
51
51
  import ReferenceSubstitution from "./dom/substitution/reference";
52
52
  import StatementSubstitution from "./dom/substitution/statement";
53
53
  import CombinatorDeclaration from "./dom/declaration/combinator";
@@ -19,9 +19,9 @@ function unifyWithBracketedCombinator(statement, assignments, stated, context) {
19
19
 
20
20
  const { BracketedCombinator } = dom,
21
21
  bracketedCombinator = BracketedCombinator.fromNothing(),
22
- unifiedWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, assignments, stated, context);
22
+ unifiesWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, assignments, stated, context);
23
23
 
24
- return unifiedWithBracketedCombinator;
24
+ return unifiesWithBracketedCombinator;
25
25
  }
26
26
 
27
27
  function unifyWithCombinators(statement, assignments, stated, context) {
@@ -30,19 +30,19 @@ function unifyWithCombinators(statement, assignments, stated, context) {
30
30
  assignments = null; ///
31
31
 
32
32
  const combinators = context.getCombinators(),
33
- unifiedWithCombinators = combinators.some((combinator) => {
34
- const unifiedWithCombinator = combinator.unifyStatement(statement, assignments, stated, context);
33
+ unifiesWithCombinators = combinators.some((combinator) => {
34
+ const unifiesWithCombinator = combinator.unifyStatement(statement, assignments, stated, context);
35
35
 
36
- if (unifiedWithCombinator) {
36
+ if (unifiesWithCombinator) {
37
37
  return true;
38
38
  }
39
39
  });
40
40
 
41
- return unifiedWithCombinators;
41
+ return unifiesWithCombinators;
42
42
  }
43
43
 
44
44
  function verifyAsMetavariable(statement, assignments, stated, context) {
45
- let verifiedAsMetavariable = false;
45
+ let verifiesAsMetavariable = false;
46
46
 
47
47
  const metavariable = metavariableFromStatement(statement, context);
48
48
 
@@ -51,20 +51,20 @@ function verifyAsMetavariable(statement, assignments, stated, context) {
51
51
 
52
52
  context.trace(`Verifying the '${statementString}' statement as a metavariable...`);
53
53
 
54
- const metavariableVerified = metavariable.verify(context);
54
+ const metavariableVerifies = metavariable.verify(context);
55
55
 
56
- verifiedAsMetavariable = metavariableVerified; ///
56
+ verifiesAsMetavariable = metavariableVerifies; ///
57
57
 
58
- if (verifiedAsMetavariable) {
58
+ if (verifiesAsMetavariable) {
59
59
  context.debug(`...verified the '${statementString}' statement as a metavariable.`);
60
60
  }
61
61
  }
62
62
 
63
- return verifiedAsMetavariable;
63
+ return verifiesAsMetavariable;
64
64
  }
65
65
 
66
66
  function verifyAsEquality(statement, assignments, stated, context) {
67
- let verifiedAsEquality = false;
67
+ let verifiesAsEquality = false;
68
68
 
69
69
  const equality = equalityFromStatement(statement, context);
70
70
 
@@ -73,20 +73,20 @@ function verifyAsEquality(statement, assignments, stated, context) {
73
73
 
74
74
  context.trace(`Verifying the '${statementString}' statement as an equality...`);
75
75
 
76
- const equalityVerified = equality.verify(assignments, stated, context);
76
+ const equalityVerifies = equality.verify(assignments, stated, context);
77
77
 
78
- verifiedAsEquality = equalityVerified; ///
78
+ verifiesAsEquality = equalityVerifies; ///
79
79
 
80
- if (verifiedAsEquality) {
80
+ if (verifiesAsEquality) {
81
81
  context.debug(`...verified the '${statementString}' statement as an equality.`);
82
82
  }
83
83
  }
84
84
 
85
- return verifiedAsEquality;
85
+ return verifiesAsEquality;
86
86
  }
87
87
 
88
88
  function verifyAsJudgement(statement, assignments, stated, context) {
89
- let verifiedAsJudgement = false;
89
+ let verifiesAsJudgement = false;
90
90
 
91
91
  const judgement = judgementFromStatement(statement, context);
92
92
 
@@ -95,20 +95,20 @@ function verifyAsJudgement(statement, assignments, stated, context) {
95
95
 
96
96
  context.trace(`Verifying the '${statementString}' statement as a judgement...`);
97
97
 
98
- const judgementVerified = judgement.verify(assignments, stated, context);
98
+ const judgementVerifies = judgement.verify(assignments, stated, context);
99
99
 
100
- verifiedAsJudgement = judgementVerified; ///
100
+ verifiesAsJudgement = judgementVerifies; ///
101
101
 
102
- if (verifiedAsJudgement) {
102
+ if (verifiesAsJudgement) {
103
103
  context.debug(`...verified the '${statementString}' statement as a judgement.`);
104
104
  }
105
105
  }
106
106
 
107
- return verifiedAsJudgement;
107
+ return verifiesAsJudgement;
108
108
  }
109
109
 
110
110
  function verifyAsTypeAssertion(statement, assignments, stated, context) {
111
- let verifiedAsTypeAssertion = false;
111
+ let verifiesAsTypeAssertion = false;
112
112
 
113
113
  const typeAssertion = typeAssertionFromStatement(statement, context);
114
114
 
@@ -117,20 +117,20 @@ function verifyAsTypeAssertion(statement, assignments, stated, context) {
117
117
 
118
118
  context.trace(`Verifying the '${statementString}' statement as a type assertion...`);
119
119
 
120
- const typeAssertionVerified = typeAssertion.verify(assignments, stated, context);
120
+ const typeAssertionVerifies = typeAssertion.verify(assignments, stated, context);
121
121
 
122
- verifiedAsTypeAssertion = typeAssertionVerified; ///
122
+ verifiesAsTypeAssertion = typeAssertionVerifies; ///
123
123
 
124
- if (verifiedAsTypeAssertion) {
124
+ if (verifiesAsTypeAssertion) {
125
125
  context.debug(`...verified the '${statementString}' statement as a type assertion.`);
126
126
  }
127
127
  }
128
128
 
129
- return verifiedAsTypeAssertion;
129
+ return verifiesAsTypeAssertion;
130
130
  }
131
131
 
132
132
  function verifyAsDefinedAssertion(statement, assignments, stated, context) {
133
- let verifiedAsDefinedAssertion = false;
133
+ let verifiesAsDefinedAssertion = false;
134
134
 
135
135
  const definedAssertion = definedAssertionFromStatement(statement, context);
136
136
 
@@ -139,20 +139,20 @@ function verifyAsDefinedAssertion(statement, assignments, stated, context) {
139
139
 
140
140
  context.trace(`Verifying the '${statementString}' statement as a defined assertion...`);
141
141
 
142
- const definedAssertionVerified = definedAssertion.verify(assignments, stated, context);
142
+ const definedAssertionVerifies = definedAssertion.verify(assignments, stated, context);
143
143
 
144
- verifiedAsDefinedAssertion = definedAssertionVerified; ///
144
+ verifiesAsDefinedAssertion = definedAssertionVerifies; ///
145
145
 
146
- if (verifiedAsDefinedAssertion) {
146
+ if (verifiesAsDefinedAssertion) {
147
147
  context.debug(`...verified the '${statementString}' statement as a defined assertion.`);
148
148
  }
149
149
  }
150
150
 
151
- return verifiedAsDefinedAssertion;
151
+ return verifiesAsDefinedAssertion;
152
152
  }
153
153
 
154
154
  function verifyAsPropertyAssertion(statement, assignments, stated, context) {
155
- let verifiedAsPropertyAssertion = false;
155
+ let verifiesAsPropertyAssertion = false;
156
156
 
157
157
  const propertyAssertion = propertyAssertionFromStatement(statement, context);
158
158
 
@@ -161,20 +161,20 @@ function verifyAsPropertyAssertion(statement, assignments, stated, context) {
161
161
 
162
162
  context.trace(`Verifying the '${statementString}' statement as a property assertion...`);
163
163
 
164
- const propertyAssertionVerified = propertyAssertion.verify(assignments, stated, context);
164
+ const propertyAssertionVerifies = propertyAssertion.verify(assignments, stated, context);
165
165
 
166
- verifiedAsPropertyAssertion = propertyAssertionVerified; ///
166
+ verifiesAsPropertyAssertion = propertyAssertionVerifies; ///
167
167
 
168
- if (verifiedAsPropertyAssertion) {
168
+ if (verifiesAsPropertyAssertion) {
169
169
  context.debug(`...verified the '${statementString}' statement as a property assertion.`);
170
170
  }
171
171
  }
172
172
 
173
- return verifiedAsPropertyAssertion;
173
+ return verifiesAsPropertyAssertion;
174
174
  }
175
175
 
176
176
  function verifyAsSubproofAssertion(statement, assignments, stated, context) {
177
- let verifiedAsSubproofAssertion = false;
177
+ let verifiesAsSubproofAssertion = false;
178
178
 
179
179
  const subproofAssertion = subproofAssertionFromStatement(statement, context);
180
180
 
@@ -183,20 +183,20 @@ function verifyAsSubproofAssertion(statement, assignments, stated, context) {
183
183
 
184
184
  context.trace(`Verifying the '${statementString}' statement as a subproof assertion...`);
185
185
 
186
- const subproofAssertionVerified = subproofAssertion.verify(assignments, stated, context);
186
+ const subproofAssertionVerifies = subproofAssertion.verify(assignments, stated, context);
187
187
 
188
- verifiedAsSubproofAssertion = subproofAssertionVerified; ///
188
+ verifiesAsSubproofAssertion = subproofAssertionVerifies; ///
189
189
 
190
- if (verifiedAsSubproofAssertion) {
190
+ if (verifiesAsSubproofAssertion) {
191
191
  context.debug(`...verified the '${statementString}' statement as a subproof assertion.`);
192
192
  }
193
193
  }
194
194
 
195
- return verifiedAsSubproofAssertion;
195
+ return verifiesAsSubproofAssertion;
196
196
  }
197
197
 
198
198
  function verifyAsContainedAssertion(statement, assignments, stated, context) {
199
- let verifiedAsContainedAssertion = false;
199
+ let verifiesAsContainedAssertion = false;
200
200
 
201
201
  const containedAssertion = containedAssertionFromStatement(statement, context);
202
202
 
@@ -205,20 +205,20 @@ function verifyAsContainedAssertion(statement, assignments, stated, context) {
205
205
 
206
206
  context.trace(`Verifying the '${statementString}' statement as a contained assertion...`);
207
207
 
208
- const containedAssertionVerified = containedAssertion.verify(assignments, stated, context);
208
+ const containedAssertionVerifies = containedAssertion.verify(assignments, stated, context);
209
209
 
210
- verifiedAsContainedAssertion = containedAssertionVerified; ///
210
+ verifiesAsContainedAssertion = containedAssertionVerifies; ///
211
211
 
212
- if (verifiedAsContainedAssertion) {
212
+ if (verifiesAsContainedAssertion) {
213
213
  context.debug(`...verified the '${statementString}' statement as a contained assertion.`);
214
214
  }
215
215
  }
216
216
 
217
- return verifiedAsContainedAssertion;
217
+ return verifiesAsContainedAssertion;
218
218
  }
219
219
 
220
220
  function verifyAsSatisfiesAssertion(statement, assignments, stated, context) {
221
- let verifiedAsSatisfiesAssertion = false;
221
+ let verifiesAsSatisfiesAssertion = false;
222
222
 
223
223
  const satisfiesAssertion = satisfiesAssertionFromStatement(statement, context);
224
224
 
@@ -227,16 +227,16 @@ function verifyAsSatisfiesAssertion(statement, assignments, stated, context) {
227
227
 
228
228
  context.trace(`Verifying the '${statementString}' statement as a satisfies assertion...`);
229
229
 
230
- const satisfiesAssertionVerified = satisfiesAssertion.verify(assignments, stated, context);
230
+ const satisfiesAssertionVerifies = satisfiesAssertion.verify(assignments, stated, context);
231
231
 
232
- verifiedAsSatisfiesAssertion = satisfiesAssertionVerified; ///
232
+ verifiesAsSatisfiesAssertion = satisfiesAssertionVerifies; ///
233
233
 
234
- if (verifiedAsSatisfiesAssertion) {
234
+ if (verifiesAsSatisfiesAssertion) {
235
235
  context.debug(`...verified the '${statementString}' statement as a satisfies assertion.`);
236
236
  }
237
237
  }
238
238
 
239
- return verifiedAsSatisfiesAssertion;
239
+ return verifiesAsSatisfiesAssertion;
240
240
  }
241
241
 
242
242
  const verifyMixins = [