occam-verify-cli 1.0.438 → 1.0.444

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 (216) hide show
  1. package/lib/context/file.js +38 -35
  2. package/lib/context/local.js +10 -10
  3. package/lib/context/release.js +6 -6
  4. package/lib/context/temporary.js +14 -14
  5. package/lib/element/assertion/contained.js +45 -45
  6. package/lib/element/assertion/defined.js +13 -13
  7. package/lib/element/assertion/property.js +23 -22
  8. package/lib/element/assertion/satisfies.js +7 -6
  9. package/lib/element/assertion/subproof.js +20 -17
  10. package/lib/element/assertion/type.js +3 -2
  11. package/lib/element/assertion.js +1 -23
  12. package/lib/element/assumption.js +24 -22
  13. package/lib/element/axiom.js +9 -12
  14. package/lib/element/axiomLemmaTheoremConjecture.js +32 -32
  15. package/lib/element/{statement/combinator → combinator}/bracketed.js +16 -16
  16. package/lib/element/combinator.js +229 -0
  17. package/lib/element/conclusion.js +11 -9
  18. package/lib/element/{term/constructor → constructor}/bracketed.js +5 -5
  19. package/lib/element/constructor.js +232 -0
  20. package/lib/element/declaration/combinator.js +2 -16
  21. package/lib/element/declaration/complexType.js +12 -12
  22. package/lib/element/declaration/constructor.js +13 -11
  23. package/lib/element/declaration/simpleType.js +4 -4
  24. package/lib/element/declaration/typePrefix.js +2 -2
  25. package/lib/element/declaration/variable.js +3 -3
  26. package/lib/element/deduction.js +11 -9
  27. package/lib/element/derivation.js +7 -10
  28. package/lib/element/equivalence.js +10 -10
  29. package/lib/element/equivalences.js +5 -5
  30. package/lib/element/frame.js +32 -38
  31. package/lib/element/hypothesis.js +3 -3
  32. package/lib/element/judgement.js +6 -4
  33. package/lib/element/label.js +8 -8
  34. package/lib/element/metaLemmaMetatheorem.js +5 -5
  35. package/lib/element/metaType.js +17 -80
  36. package/lib/element/metavariable.js +34 -34
  37. package/lib/element/parameter.js +3 -3
  38. package/lib/element/premise.js +49 -58
  39. package/lib/element/property.js +9 -9
  40. package/lib/element/propertyRelation.js +13 -13
  41. package/lib/element/reference.js +14 -17
  42. package/lib/element/rule.js +21 -21
  43. package/lib/element/signature.js +11 -11
  44. package/lib/element/statement.js +18 -18
  45. package/lib/element/step.js +83 -55
  46. package/lib/element/subDerivation.js +7 -10
  47. package/lib/element/subproof.js +6 -14
  48. package/lib/element/substitution/frame.js +1 -7
  49. package/lib/element/substitution/reference.js +2 -3
  50. package/lib/element/substitution/statement.js +44 -15
  51. package/lib/element/substitution/term.js +10 -57
  52. package/lib/element/substitution.js +5 -11
  53. package/lib/element/substitutions.js +29 -29
  54. package/lib/element/supposition.js +63 -55
  55. package/lib/element/term.js +21 -34
  56. package/lib/element/type.js +47 -60
  57. package/lib/element/typePrefix.js +5 -5
  58. package/lib/element/variable.js +9 -9
  59. package/lib/element.js +9 -3
  60. package/lib/metaTypes.js +52 -0
  61. package/lib/node/axiomLemmaTheoremConjecture.js +9 -9
  62. package/lib/node/body/axiom.js +2 -25
  63. package/lib/node/body/conjecture.js +2 -25
  64. package/lib/node/body/lemma.js +2 -25
  65. package/lib/node/body/metaLemma.js +2 -25
  66. package/lib/node/body/metatheorem.js +2 -25
  67. package/lib/node/body/rule.js +15 -1
  68. package/lib/node/body/theorem.js +2 -25
  69. package/lib/node/body.js +25 -2
  70. package/lib/node/combinator.js +11 -2
  71. package/lib/node/constructor.js +11 -2
  72. package/lib/node/declaration/combinator.js +5 -5
  73. package/lib/node/declaration/constructor.js +8 -8
  74. package/lib/node/declaration/property.js +15 -15
  75. package/lib/node/declaration/simpleType.js +31 -31
  76. package/lib/node/declaration/variable.js +8 -8
  77. package/lib/node/equality.js +8 -8
  78. package/lib/node/frame.js +20 -20
  79. package/lib/node/header.js +22 -22
  80. package/lib/node/metaLemmaMetaTheorem.js +16 -16
  81. package/lib/node/metavariable.js +15 -15
  82. package/lib/node/property.js +8 -8
  83. package/lib/node/propertyRelation.js +8 -8
  84. package/lib/node/rule.js +16 -16
  85. package/lib/node/statement.js +12 -12
  86. package/lib/node/step.js +22 -22
  87. package/lib/node/subproof.js +8 -8
  88. package/lib/node/substitution/frame.js +19 -19
  89. package/lib/node/substitution/statement.js +19 -19
  90. package/lib/node/substitution/term.js +19 -19
  91. package/lib/node/term.js +35 -35
  92. package/lib/preamble.js +5 -5
  93. package/lib/process/instantiate.js +20 -2
  94. package/lib/process/unify.js +39 -42
  95. package/lib/process/validate.js +431 -0
  96. package/lib/process/verify.js +44 -135
  97. package/lib/types.js +27 -0
  98. package/lib/utilities/brackets.js +4 -4
  99. package/lib/utilities/element.js +91 -55
  100. package/lib/utilities/instance.js +18 -18
  101. package/lib/utilities/statement.js +2 -2
  102. package/lib/utilities/string.js +21 -10
  103. package/lib/utilities/unification.js +237 -0
  104. package/lib/utilities/validation.js +251 -0
  105. package/package.json +6 -6
  106. package/src/context/file.js +37 -31
  107. package/src/context/local.js +8 -8
  108. package/src/context/release.js +9 -6
  109. package/src/context/temporary.js +11 -11
  110. package/src/element/assertion/contained.js +19 -20
  111. package/src/element/assertion/defined.js +11 -12
  112. package/src/element/assertion/property.js +20 -20
  113. package/src/element/assertion/satisfies.js +6 -6
  114. package/src/element/assertion/subproof.js +17 -15
  115. package/src/element/assertion/type.js +2 -2
  116. package/src/element/assertion.js +0 -2
  117. package/src/element/assumption.js +22 -19
  118. package/src/element/axiom.js +7 -11
  119. package/src/element/axiomLemmaTheoremConjecture.js +36 -36
  120. package/src/element/{statement/combinator → combinator}/bracketed.js +7 -7
  121. package/src/element/combinator.js +90 -0
  122. package/src/element/conclusion.js +12 -10
  123. package/src/element/{term/constructor → constructor}/bracketed.js +5 -5
  124. package/src/element/{term/constructor.js → constructor.js} +17 -25
  125. package/src/element/declaration/combinator.js +1 -22
  126. package/src/element/declaration/complexType.js +11 -11
  127. package/src/element/declaration/constructor.js +13 -10
  128. package/src/element/declaration/simpleType.js +3 -3
  129. package/src/element/declaration/typePrefix.js +1 -1
  130. package/src/element/declaration/variable.js +2 -2
  131. package/src/element/deduction.js +12 -9
  132. package/src/element/derivation.js +6 -10
  133. package/src/element/equivalence.js +8 -8
  134. package/src/element/equivalences.js +4 -4
  135. package/src/element/frame.js +28 -30
  136. package/src/element/hypothesis.js +2 -2
  137. package/src/element/judgement.js +6 -3
  138. package/src/element/label.js +4 -4
  139. package/src/element/metaLemmaMetatheorem.js +4 -3
  140. package/src/element/metaType.js +9 -45
  141. package/src/element/metavariable.js +29 -31
  142. package/src/element/parameter.js +2 -2
  143. package/src/element/premise.js +55 -62
  144. package/src/element/property.js +6 -6
  145. package/src/element/propertyRelation.js +11 -11
  146. package/src/element/reference.js +12 -21
  147. package/src/element/rule.js +17 -16
  148. package/src/element/signature.js +10 -9
  149. package/src/element/statement.js +16 -18
  150. package/src/element/step.js +93 -55
  151. package/src/element/subDerivation.js +6 -10
  152. package/src/element/subproof.js +4 -12
  153. package/src/element/substitution/frame.js +0 -2
  154. package/src/element/substitution/reference.js +1 -5
  155. package/src/element/substitution/statement.js +44 -14
  156. package/src/element/substitution/term.js +10 -13
  157. package/src/element/substitution.js +3 -5
  158. package/src/element/substitutions.js +48 -30
  159. package/src/element/supposition.js +88 -70
  160. package/src/element/term.js +18 -28
  161. package/src/element/type.js +42 -36
  162. package/src/element/typePrefix.js +3 -3
  163. package/src/element/variable.js +7 -7
  164. package/src/element.js +3 -1
  165. package/src/metaTypes.js +42 -0
  166. package/src/node/axiomLemmaTheoremConjecture.js +6 -6
  167. package/src/node/body/axiom.js +0 -21
  168. package/src/node/body/conjecture.js +0 -23
  169. package/src/node/body/lemma.js +0 -23
  170. package/src/node/body/metaLemma.js +0 -23
  171. package/src/node/body/metatheorem.js +0 -23
  172. package/src/node/body/rule.js +12 -0
  173. package/src/node/body/theorem.js +0 -23
  174. package/src/node/body.js +23 -0
  175. package/src/node/combinator.js +9 -0
  176. package/src/node/constructor.js +9 -0
  177. package/src/node/declaration/combinator.js +5 -5
  178. package/src/node/declaration/constructor.js +8 -8
  179. package/src/node/declaration/property.js +14 -14
  180. package/src/node/declaration/simpleType.js +31 -31
  181. package/src/node/declaration/variable.js +7 -7
  182. package/src/node/equality.js +7 -7
  183. package/src/node/frame.js +21 -21
  184. package/src/node/header.js +22 -22
  185. package/src/node/metaLemmaMetaTheorem.js +14 -14
  186. package/src/node/metavariable.js +14 -14
  187. package/src/node/property.js +7 -7
  188. package/src/node/propertyRelation.js +7 -7
  189. package/src/node/rule.js +15 -15
  190. package/src/node/statement.js +12 -12
  191. package/src/node/step.js +21 -21
  192. package/src/node/subproof.js +7 -7
  193. package/src/node/substitution/frame.js +18 -18
  194. package/src/node/substitution/statement.js +18 -18
  195. package/src/node/substitution/term.js +18 -18
  196. package/src/node/term.js +34 -34
  197. package/src/preamble.js +4 -4
  198. package/src/process/instantiate.js +12 -0
  199. package/src/process/unify.js +53 -57
  200. package/src/process/validate.js +316 -0
  201. package/src/process/verify.js +50 -138
  202. package/src/types.js +18 -0
  203. package/src/utilities/brackets.js +10 -6
  204. package/src/utilities/element.js +125 -82
  205. package/src/utilities/instance.js +18 -18
  206. package/src/utilities/statement.js +2 -2
  207. package/src/utilities/string.js +34 -20
  208. package/src/{mixins/step/unify.js → utilities/unification.js} +82 -68
  209. package/src/{mixins/statement/validate.js → utilities/validation.js} +143 -69
  210. package/lib/element/statement/combinator.js +0 -105
  211. package/lib/element/term/constructor.js +0 -172
  212. package/lib/mixins/statement/validate.js +0 -198
  213. package/lib/mixins/step/unify.js +0 -228
  214. package/lib/mixins/term/verify.js +0 -65
  215. package/src/element/statement/combinator.js +0 -59
  216. package/src/mixins/term/verify.js +0 -81
@@ -26,7 +26,7 @@ export default define(class Equivalence extends Element {
26
26
  const termString = term.getString(),
27
27
  equivalenceString = this.asString(); ///
28
28
 
29
- context.trace(`Adding the '${termString}' term to the '${equivalenceString}' equivalence....`);
29
+ context.trace(`Adding the '${termString}' term to the '${equivalenceString}' equivalence...`);
30
30
 
31
31
  const termA = term, ///
32
32
  termPresent = this.someTerm((term) => {
@@ -76,9 +76,9 @@ export default define(class Equivalence extends Element {
76
76
  return type;
77
77
  }
78
78
 
79
- equateTerm(term) {
79
+ compareTerm(term) {
80
80
  const termA = term, ///
81
- termEquates = this.someTerm((term) => {
81
+ comparesToTerm = this.someTerm((term) => {
82
82
  const termB = term, ///
83
83
  termAEqualToTermB = termA.isEqualTo(termB);
84
84
 
@@ -87,14 +87,14 @@ export default define(class Equivalence extends Element {
87
87
  }
88
88
  });
89
89
 
90
- return termEquates;
90
+ return comparesToTerm;
91
91
  }
92
92
 
93
93
  matchTermNode(termNode) {
94
94
  termNode = stripBracketsFromTermNode(termNode); ///
95
95
 
96
96
  const termNodeMatches = this.someTerm((term) => {
97
- const termNodeMatches = term.matchTermNode(termNode);
97
+ const termNodeMatches = term.matchNode(termNode);
98
98
 
99
99
  if (termNodeMatches) {
100
100
  return true;
@@ -137,9 +137,9 @@ export default define(class Equivalence extends Element {
137
137
 
138
138
  isDisjointFrom(equivalence) {
139
139
  const disjointFrom = equivalence.everyTerm((term) => {
140
- const termEquates = this.equateTerm(term);
140
+ const comparesToTerm = this.compareTerm(term);
141
141
 
142
- if (!termEquates) {
142
+ if (!comparesToTerm) {
143
143
  return true;
144
144
  }
145
145
  });
@@ -196,7 +196,7 @@ export default define(class Equivalence extends Element {
196
196
  if (termGrounded) {
197
197
  const termMatchesGroundedTerm = groundedTerms.some((groundedTerm) => {
198
198
  const groundedTermNode = groundedTerm.getNode(),
199
- groundedTermNodeMatches = term.matchTermNode(groundedTermNode);
199
+ groundedTermNodeMatches = term.matchNode(groundedTermNode);
200
200
 
201
201
  if (groundedTermNodeMatches) {
202
202
  return true;
@@ -51,9 +51,9 @@ export default define(class Equivalences extends Element {
51
51
 
52
52
  findEquivalenceByTerm(term) {
53
53
  const equivalence = this.array.find((equivalence) => {
54
- const termEquates = equivalence.equateTerm(term);
54
+ const equivalenceComparesToTerm = equivalence.compareTerm(term);
55
55
 
56
- if (termEquates) {
56
+ if (equivalenceComparesToTerm) {
57
57
  return true;
58
58
  }
59
59
  }) || null;
@@ -63,9 +63,9 @@ export default define(class Equivalences extends Element {
63
63
 
64
64
  findEquivalenceByTermNodes(termNodes) {
65
65
  const equivalence = this.array.find((equivalence) => {
66
- const equivalenceMatchesTerms = equivalence.matchTermNodes(termNodes);
66
+ const termNodeMatches = equivalence.matchTermNodes(termNodes);
67
67
 
68
- if (equivalenceMatchesTerms) {
68
+ if (termNodeMatches) {
69
69
  return true;
70
70
  }
71
71
  }) || null;
@@ -87,54 +87,52 @@ export default define(class Frame extends Element {
87
87
  return metavariableEqualToMetavariable;
88
88
  }
89
89
 
90
- matchFrameNode(frameNode) { return this.node.match(frameNode); }
90
+ compareSubstitution(substitution, context) {
91
+ let comparesToSubstitution = false;
91
92
 
92
- matchSubstitution(substitution, context) {
93
- let substitutionMatches = false;
94
-
95
- const frameString = this.string, ///
93
+ const frameString = this.getString(), ///
96
94
  substitutionString = substitution.getString();
97
95
 
98
- context.trace(`Matching the '${substitutionString}' substitution against the '${frameString}' frame...`);
96
+ context.trace(`Comparing the '${frameString}' frame to the '${substitutionString}' substitution...`);
99
97
 
100
- if (!substitutionMatches) {
101
- substitutionMatches = this.assumptions.some((assumption) => {
102
- const substitutionMatchesAssumption = assumption.matchSubstitution(substitution, context);
98
+ if (!comparesToSubstitution) {
99
+ comparesToSubstitution = this.assumptions.some((assumption) => {
100
+ const assumptionComparesToSubstitution = assumption.compareSubstitution(substitution, context);
103
101
 
104
- if (substitutionMatchesAssumption) {
102
+ if (assumptionComparesToSubstitution) {
105
103
  return true;
106
104
  }
107
105
  });
108
106
  }
109
107
 
110
- if (substitutionMatches) {
111
- context.debug(`...matched the '${substitutionString}' substitutions against the '${frameString}' frame.`);
108
+ if (comparesToSubstitution) {
109
+ context.debug(`...compared the the '${frameString}' frame to the '${substitutionString}' substitutions.`);
112
110
  }
113
111
 
114
- return substitutionMatches;
112
+ return comparesToSubstitution;
115
113
  }
116
114
 
117
- matchSubstitutions(substitutions, context) {
118
- let substitutionsMatch;
115
+ compareSubstitutions(substitutions, context) {
116
+ let comparesToSubstitutions;
119
117
 
120
118
  const frameString = this.string, ///
121
119
  substitutionsString = substitutions.asString();
122
120
 
123
- context.trace(`Matching the '${substitutionsString}' substitutions against the '${frameString}' frame...`);
121
+ context.trace(`Comparing the '${frameString}' frame to the '${substitutionsString}' substitutions...`);
124
122
 
125
- substitutionsMatch = substitutions.everySubstitution((substitution) => {
126
- const substitutionMatches = this.matchSubstitution(substitution, context);
123
+ comparesToSubstitutions = substitutions.everySubstitution((substitution) => {
124
+ const compaaresToSubstitution = this.compareSubstitution(substitution, context);
127
125
 
128
- if (substitutionMatches) {
126
+ if (compaaresToSubstitution) {
129
127
  return true;
130
128
  }
131
129
  });
132
130
 
133
- if (substitutionsMatch) {
134
- context.debug(`...matched the '${substitutionsString}' substitutions against the '${frameString}' frame.`);
131
+ if (comparesToSubstitutions) {
132
+ context.debug(`...compared the '${frameString}' frame to the '${substitutionsString}' substitutions.`);
135
133
  }
136
134
 
137
- return substitutionsMatch;
135
+ return comparesToSubstitutions;
138
136
  }
139
137
 
140
138
  verify(assignments, stated, context) {
@@ -241,27 +239,27 @@ export default define(class Frame extends Element {
241
239
  return assumptionsVerify;
242
240
  }
243
241
 
244
- verifyGivenMetaType(metaType, assignments, stated, context) {
245
- let verifiesGivenMetaType = false;
242
+ validateGivenMetaType(metaType, assignments, stated, context) {
243
+ let validatesGivenMetaType = false;
246
244
 
247
245
  const frameString = this.string, ///
248
246
  metaTypeString = metaType.getString();
249
247
 
250
- context.trace(`Verifying the '${frameString}' frame given the '${metaTypeString}' meta-type...`);
248
+ context.trace(`Validatin the '${frameString}' frame given the '${metaTypeString}' meta-type...`);
251
249
 
252
250
  const metaTypeName = metaType.getName();
253
251
 
254
252
  if (metaTypeName === FRAME_META_TYPE_NAME) {
255
- const verifies = this.verify(assignments, stated, context)
253
+ const validates = this.validate(assignments, stated, context)
256
254
 
257
- verifiesGivenMetaType = verifies; ///
255
+ validatesGivenMetaType = validates; ///
258
256
  }
259
257
 
260
- if (verifiesGivenMetaType) {
261
- context.debug(`...verified the '${frameString}' frame given the '${metaTypeString}' meta-type.`);
258
+ if (validatesGivenMetaType) {
259
+ context.debug(`...validated the '${frameString}' frame given the '${metaTypeString}' meta-type.`);
262
260
  }
263
261
 
264
- return verifiesGivenMetaType;
262
+ return validatesGivenMetaType;
265
263
  }
266
264
 
267
265
  toJSON() {
@@ -30,9 +30,9 @@ export default define(class Hypothesis extends Element {
30
30
  } else if (this.statement !== null) {
31
31
  const stated = true,
32
32
  assignments = [],
33
- statementVerifies = this.statement.verify(assignments, stated, context);
33
+ statementValidates = this.statement.validate(assignments, stated, context);
34
34
 
35
- if (statementVerifies) {
35
+ if (statementValidates) {
36
36
  const assignmentsAssigned = assignAssignments(assignments, context);
37
37
 
38
38
  if (assignmentsAssigned) {
@@ -108,7 +108,7 @@ export default define(class Judgement extends Element {
108
108
  }
109
109
 
110
110
  verifyWhenDerived(context) {
111
- let verifiesWhenDerived;
111
+ let verifiesWhenDerived = false;
112
112
 
113
113
  const judgementString = this.string; ///
114
114
 
@@ -118,9 +118,12 @@ export default define(class Judgement extends Element {
118
118
  reference = referenceFromMetavariable(metavariable, context),
119
119
  metaLemmaMetatheorem = context.findMetaLemmaMetatheoremByReference(reference),
120
120
  substitutions = metaLemmaMetatheorem.getSubstitutions(),
121
- substitutionsMatch = this.frame.matchSubstitutions(substitutions, context);
121
+ frameComparesToSubstitutions = this.frame.compareSubstitutions(substitutions, context);
122
122
 
123
- verifiesWhenDerived = substitutionsMatch;
123
+ if (frameComparesToSubstitutions) {
124
+ verifiesWhenDerived = true;
125
+
126
+ }
124
127
 
125
128
  if (verifiesWhenDerived) {
126
129
  context.debug(`...verified the '${judgementString}' derived judgement.`);
@@ -20,16 +20,16 @@ export default define(class Label extends Element {
20
20
 
21
21
  getMetavariableNode() { return this.metavariable.getNode(); }
22
22
 
23
- matchMetavariableName(metavariableName) { return this.metavariable.matchMetavariableName(metavariableName); }
23
+ compareMetavariableName(metavariableName) { return this.metavariable.compareMetavariableName(metavariableName); }
24
24
 
25
25
  isMetavariableEqualToMetavariable(metavariable) { return this.metavariable.isEqualTo(metavariable); }
26
26
 
27
- matchReference(reference) {
27
+ compareReference(reference) {
28
28
  const metavariable = reference.getMetavariable(),
29
29
  metavariableEqualToMetavariable = this.isMetavariableEqualToMetavariable(metavariable),
30
- referenceMatches = metavariableEqualToMetavariable; ///
30
+ comparesToReference = metavariableEqualToMetavariable; ///
31
31
 
32
- return referenceMatches;
32
+ return comparesToReference;
33
33
  }
34
34
 
35
35
  verify(nameOnly) {
@@ -47,11 +47,12 @@ export default class MetaLemmaMetatheorem extends Element {
47
47
 
48
48
  getStatement() { return this.deduction.getStatement(); }
49
49
 
50
- matchReference(reference) {
50
+ compareReference(reference) {
51
51
  const label = this.getLabel(),
52
- referenceMatches = label.matchReference(reference);
52
+ labelComparesToRefference = label.compareReference(reference),
53
+ comparesToReference = labelComparesToRefference; ///
53
54
 
54
- return referenceMatches;
55
+ return comparesToReference;
55
56
  }
56
57
 
57
58
  verify() {
@@ -3,9 +3,8 @@
3
3
  import Element from "../element";
4
4
 
5
5
  import { define } from "../elements";
6
- import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
7
6
 
8
- class MetaType extends Element {
7
+ export default define(class MetaType extends Element {
9
8
  constructor(context, string, node, name) {
10
9
  super(context, string, node);
11
10
 
@@ -22,10 +21,10 @@ class MetaType extends Element {
22
21
  return equalTo;
23
22
  }
24
23
 
25
- matchMetaTypeName(metaTypeName) {
26
- const metaTypeNameMatches = (metaTypeName === this.name);
24
+ compareMetaTypeName(metaTypeName) {
25
+ const comparesToMetaTypeName = (metaTypeName === this.name);
27
26
 
28
- return metaTypeNameMatches;
27
+ return comparesToMetaTypeName;
29
28
  }
30
29
 
31
30
  toJSON() {
@@ -46,48 +45,13 @@ class MetaType extends Element {
46
45
 
47
46
  return metaType;
48
47
  }
49
- }
50
48
 
51
- export default define(MetaType);
52
-
53
- class FrameMetaType extends MetaType {
54
- static fromNothing() {
55
- const context = null,
56
- string = null,
57
- node = null,
58
- name = FRAME_META_TYPE_NAME,
59
- frameMetaType = new FrameMetaType(context, string, node, name);
60
-
61
- return frameMetaType;
62
- }
63
- }
64
-
65
- class ReferenceMetaType extends MetaType {
66
- static fromNothing() {
49
+ static fromName(name) {
67
50
  const context = null,
68
- string = null,
51
+ string = name,
69
52
  node = null,
70
- name = REFERENCE_META_TYPE_NAME,
71
- referenceMetaType = new ReferenceMetaType(context, string, node, name);
72
-
73
- return referenceMetaType;
74
- }
75
- }
53
+ metaType = new MetaType(context, string, node, name);
76
54
 
77
- class StatementMetaType extends MetaType {
78
- static fromNothing() {
79
- const context = null,
80
- string = null,
81
- node = null,
82
- name = STATEMENT_META_TYPE_NAME,
83
- statementMetaType = new StatementMetaType(context, string, node, name);
84
-
85
- return statementMetaType;
55
+ return metaType;
86
56
  }
87
- }
88
-
89
- export const frameMetaType = FrameMetaType.fromNothing();
90
-
91
- export const referenceMetaType = ReferenceMetaType.fromNothing();
92
-
93
- export const statementMetaType = StatementMetaType.fromNothing();
57
+ });
@@ -39,48 +39,46 @@ export default define(class Metavariable extends Element {
39
39
  this.metaType = metaType;
40
40
  }
41
41
 
42
- matchParameter(parameter) {
43
- const name = parameter.getName(),
44
- nameMatches = (name === this.name),
45
- parameterMatches = nameMatches; ///
42
+ isNameEqualTo(name) {
43
+ const nameEqualTo = (name === this.name);
46
44
 
47
- return parameterMatches;
45
+ return nameEqualTo;
48
46
  }
49
47
 
50
- matchMetavariableName(metavariableName) {
51
- const metavariableNameMatches = (metavariableName === this.name);
48
+ compareMetavariableName(metavariableName) {
49
+ const comparesToMetavariableName = (metavariableName === this.name);
52
50
 
53
- return metavariableNameMatches;
51
+ return comparesToMetavariableName;
54
52
  }
55
53
 
56
54
  isMetaTypeEqualTo(metaType) { return this.metaType.isEqualTo(metaType); }
57
55
 
58
- verify(context) {
59
- let verifies;
56
+ validate(context) {
57
+ let validates;
60
58
 
61
- const metavariableString = this.string; ///
59
+ const metavariableString = this.getString(); ///
62
60
 
63
- context.trace(`Verifying the '${metavariableString}' metavariable...`);
61
+ context.trace(`Validating the '${metavariableString}' metavariable...`);
64
62
 
65
63
  const metavariable = this, ///
66
64
  metavariablePresent = context.isMetavariablePresent(metavariable);
67
65
 
68
- verifies = metavariablePresent; ///
66
+ validates = metavariablePresent; ///
69
67
 
70
- if (verifies) {
71
- context.debug(`...verified the '${metavariableString}' metavariable.`);
68
+ if (validates) {
69
+ context.debug(`...va;idated the '${metavariableString}' metavariable.`);
72
70
  }
73
71
 
74
- return verifies;
72
+ return validates;
75
73
  }
76
74
 
77
- verifyGivenMetaType(metaType, context) {
78
- let verifiesGivenMetaType = false;
75
+ validateGivenMetaType(metaType, context) {
76
+ let validatesGivenMetaType = false;
79
77
 
80
- const metavariableString = this.string, ///
78
+ const metavariableString = this.getString(), ///
81
79
  metaTypeString = metaType.getString();
82
80
 
83
- context.trace(`Verifying the '${metavariableString}' metavariable given the '${metaTypeString}' meta-type...`);
81
+ context.trace(`Validating the '${metavariableString}' metavariable given the '${metaTypeString}' meta-type...`);
84
82
 
85
83
  let metavariable = this; ///
86
84
 
@@ -89,21 +87,21 @@ export default define(class Metavariable extends Element {
89
87
  if (metavariable !== null) {
90
88
  const metavariableMetaTypeEqualToMetaType = metavariable.isMetaTypeEqualTo(metaType);
91
89
 
92
- verifiesGivenMetaType = metavariableMetaTypeEqualToMetaType; ///
90
+ validatesGivenMetaType = metavariableMetaTypeEqualToMetaType; ///
93
91
  }
94
92
 
95
- if (verifiesGivenMetaType) {
96
- context.debug(`...verified the '${metavariableString}' metavariable given the '${metaTypeString}' meta-type.`);
93
+ if (validatesGivenMetaType) {
94
+ context.debug(`...validated the '${metavariableString}' metavariable given the '${metaTypeString}' meta-type.`);
97
95
  }
98
96
 
99
- return verifiesGivenMetaType;
97
+ return validatesGivenMetaType;
100
98
  }
101
99
 
102
100
  unifyFrame(frame, substitutions, generalContext, specificContext) {
103
101
  let frameUnifies = false;
104
102
 
105
103
  const frameString = frame.getString(),
106
- metavariableString = this.string; ///
104
+ metavariableString = this.getString(); ///
107
105
 
108
106
  specificContext.trace(`Unifying the '${frameString}' frame with the '${metavariableString}' metavariable...`);
109
107
 
@@ -147,7 +145,7 @@ export default define(class Metavariable extends Element {
147
145
  let statementUnifies = false;
148
146
 
149
147
  const statementString = statement.getString(),
150
- metavariableString = this.string, ///
148
+ metavariableString = this.getString(), ///
151
149
  substitutionString = (substitution !== null) ?
152
150
  substitution.getString() :
153
151
  EMPTY_STRING;
@@ -195,7 +193,7 @@ export default define(class Metavariable extends Element {
195
193
  let referenceUnifies = false;
196
194
 
197
195
  const referenceString = reference.getString(),
198
- metavariableString = this.string; ///
196
+ metavariableString = this.getString(); ///
199
197
 
200
198
  specificContext.trace(`Unifying the '${referenceString}' reference with the '${metavariableString}' metavariable...`);
201
199
 
@@ -265,7 +263,7 @@ export default define(class Metavariable extends Element {
265
263
 
266
264
  if (generalContextFilePath === specificContextFilePath) {
267
265
  const metavariable = this,
268
- metavariableString = this.string, ///
266
+ metavariableString = this.getString(), ///
269
267
  frameMetavariableEqualToMetvariable = frame.isMetavariableEqualToMetavariable(metavariable, context);
270
268
 
271
269
  if (frameMetavariableEqualToMetvariable) {
@@ -305,7 +303,7 @@ export default define(class Metavariable extends Element {
305
303
 
306
304
  if (generalContextFilePath === specificContextFilePath) {
307
305
  const metavariable = this, ///
308
- metavariableString = this.string, ///
306
+ metavariableString = this.getString(), ///
309
307
  statementMetavariableEqualToMetvariable = statement.isMetavariableEqualToMetavariable(metavariable, context);
310
308
 
311
309
  if (statementMetavariableEqualToMetvariable) {
@@ -345,7 +343,7 @@ export default define(class Metavariable extends Element {
345
343
 
346
344
  if (generalContextFilePath === specificContextFilePath) {
347
345
  const metavariable = this, ///
348
- metavariableString = this.string, ///
346
+ metavariableString = this.getString(), ///
349
347
  referenceMetavariableEqualToMetvariable = reference.isMetavariableEqualToMetavariable(metavariable);
350
348
 
351
349
  if (referenceMetavariableEqualToMetvariable) {
@@ -376,7 +374,7 @@ export default define(class Metavariable extends Element {
376
374
  typeJSON = typeToTypeJSON(this.type),
377
375
  type = typeJSON, ///
378
376
  metaType = metaTypeJSON, ///
379
- string = this.string, ///
377
+ string = this.getString(), ///
380
378
  json = {
381
379
  string,
382
380
  type,
@@ -20,9 +20,9 @@ export default define(class Parameter extends Element {
20
20
 
21
21
  const parameter = this, ///
22
22
  substitution = substitutions.findSubstitution((substitution) => {
23
- const nameMatches = substitution.matchParameter(parameter);
23
+ const substitutionComparesToParamter = substitution.compareParameter(parameter);
24
24
 
25
- if (nameMatches) {
25
+ if (substitutionComparesToParamter) {
26
26
  return true;
27
27
  }
28
28
  });