occam-verify-cli 1.0.611 → 1.0.617

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 (151) hide show
  1. package/lib/context/ephemeral.js +59 -31
  2. package/lib/context/file/nominal.js +45 -19
  3. package/lib/context/liminal.js +38 -53
  4. package/lib/context/scoped.js +34 -26
  5. package/lib/context.js +74 -46
  6. package/lib/element/assertion/contained.js +8 -1
  7. package/lib/element/assertion/defined.js +8 -1
  8. package/lib/element/assertion/property.js +8 -1
  9. package/lib/element/assertion/satisfies.js +8 -1
  10. package/lib/element/assertion/subproof.js +8 -1
  11. package/lib/element/assertion/type.js +8 -1
  12. package/lib/element/assertion.js +5 -9
  13. package/lib/element/assumption.js +21 -14
  14. package/lib/element/combinator/bracketed.js +8 -1
  15. package/lib/element/combinator.js +8 -1
  16. package/lib/element/conclusion.js +8 -1
  17. package/lib/element/constructor/bracketed.js +8 -1
  18. package/lib/element/constructor.js +8 -1
  19. package/lib/element/declaration/combinator.js +8 -1
  20. package/lib/element/declaration/complexType.js +8 -1
  21. package/lib/element/declaration/constructor.js +32 -25
  22. package/lib/element/declaration/metavariable.js +9 -9
  23. package/lib/element/declaration/simpleType.js +8 -1
  24. package/lib/element/declaration/typePrefix.js +8 -1
  25. package/lib/element/declaration/variable.js +16 -9
  26. package/lib/element/declaration.js +3 -7
  27. package/lib/element/deduction.js +8 -1
  28. package/lib/element/derivation.js +8 -1
  29. package/lib/element/equality.js +8 -1
  30. package/lib/element/equivalence.js +8 -1
  31. package/lib/element/equivalences.js +8 -1
  32. package/lib/element/error.js +10 -7
  33. package/lib/element/hypothesis.js +8 -1
  34. package/lib/element/judgement.js +9 -2
  35. package/lib/element/label.js +8 -1
  36. package/lib/element/metaType.js +8 -1
  37. package/lib/element/metavariable.js +11 -14
  38. package/lib/element/parameter.js +8 -1
  39. package/lib/element/procedureCall.js +21 -29
  40. package/lib/element/procedureReference.js +15 -1
  41. package/lib/element/proof.js +8 -1
  42. package/lib/element/proofAssertion/premise.js +8 -1
  43. package/lib/element/proofAssertion/step.js +8 -1
  44. package/lib/element/proofAssertion/supposition.js +8 -1
  45. package/lib/element/proofAssertion.js +8 -1
  46. package/lib/element/property.js +8 -1
  47. package/lib/element/propertyRelation.js +8 -1
  48. package/lib/element/reference.js +8 -8
  49. package/lib/element/rule.js +10 -7
  50. package/lib/element/section.js +8 -1
  51. package/lib/element/signature.js +8 -1
  52. package/lib/element/statement.js +12 -16
  53. package/lib/element/subDerivation.js +8 -1
  54. package/lib/element/subproof.js +8 -1
  55. package/lib/element/substitution/frame.js +11 -4
  56. package/lib/element/substitution/reference.js +11 -4
  57. package/lib/element/substitution/statement.js +16 -15
  58. package/lib/element/substitution/term.js +10 -3
  59. package/lib/element/substitution.js +3 -7
  60. package/lib/element/topLevelAssertion/axiom.js +8 -1
  61. package/lib/element/topLevelAssertion/conjecture.js +8 -1
  62. package/lib/element/topLevelAssertion/lemma.js +8 -1
  63. package/lib/element/topLevelAssertion/theorem.js +8 -1
  64. package/lib/element/topLevelAssertion.js +3 -7
  65. package/lib/element/topLevelMetaAssertion/metaLemma.js +8 -1
  66. package/lib/element/topLevelMetaAssertion/metatheorem.js +8 -1
  67. package/lib/element/type.js +8 -1
  68. package/lib/element/typePrefix.js +8 -1
  69. package/lib/element/variable.js +8 -3
  70. package/lib/preamble.js +1 -2
  71. package/lib/process/assign.js +2 -3
  72. package/lib/utilities/element.js +3 -3
  73. package/lib/utilities/substitutions.js +11 -12
  74. package/lib/utilities/unification.js +30 -15
  75. package/package.json +2 -2
  76. package/src/context/ephemeral.js +64 -32
  77. package/src/context/file/nominal.js +82 -17
  78. package/src/context/liminal.js +40 -65
  79. package/src/context/scoped.js +47 -31
  80. package/src/context.js +68 -40
  81. package/src/element/assertion/contained.js +7 -0
  82. package/src/element/assertion/defined.js +7 -0
  83. package/src/element/assertion/property.js +7 -0
  84. package/src/element/assertion/satisfies.js +7 -0
  85. package/src/element/assertion/subproof.js +7 -0
  86. package/src/element/assertion/type.js +7 -0
  87. package/src/element/assertion.js +4 -8
  88. package/src/element/assumption.js +11 -4
  89. package/src/element/combinator/bracketed.js +7 -0
  90. package/src/element/combinator.js +7 -0
  91. package/src/element/conclusion.js +7 -0
  92. package/src/element/constructor/bracketed.js +7 -0
  93. package/src/element/constructor.js +7 -0
  94. package/src/element/declaration/combinator.js +7 -0
  95. package/src/element/declaration/complexType.js +7 -0
  96. package/src/element/declaration/constructor.js +31 -24
  97. package/src/element/declaration/metavariable.js +6 -6
  98. package/src/element/declaration/simpleType.js +7 -0
  99. package/src/element/declaration/typePrefix.js +7 -0
  100. package/src/element/declaration/variable.js +13 -6
  101. package/src/element/declaration.js +1 -3
  102. package/src/element/deduction.js +7 -0
  103. package/src/element/derivation.js +7 -0
  104. package/src/element/equality.js +7 -0
  105. package/src/element/equivalence.js +8 -0
  106. package/src/element/equivalences.js +7 -0
  107. package/src/element/error.js +5 -2
  108. package/src/element/hypothesis.js +7 -0
  109. package/src/element/judgement.js +8 -2
  110. package/src/element/label.js +7 -0
  111. package/src/element/metaType.js +7 -0
  112. package/src/element/metavariable.js +13 -18
  113. package/src/element/parameter.js +7 -0
  114. package/src/element/procedureCall.js +21 -14
  115. package/src/element/procedureReference.js +13 -0
  116. package/src/element/proof.js +7 -0
  117. package/src/element/proofAssertion/premise.js +7 -0
  118. package/src/element/proofAssertion/step.js +7 -0
  119. package/src/element/proofAssertion/supposition.js +7 -0
  120. package/src/element/proofAssertion.js +7 -0
  121. package/src/element/property.js +7 -0
  122. package/src/element/propertyRelation.js +7 -0
  123. package/src/element/reference.js +8 -7
  124. package/src/element/rule.js +8 -9
  125. package/src/element/section.js +7 -0
  126. package/src/element/signature.js +7 -0
  127. package/src/element/statement.js +9 -14
  128. package/src/element/subDerivation.js +7 -0
  129. package/src/element/subproof.js +7 -0
  130. package/src/element/substitution/frame.js +10 -3
  131. package/src/element/substitution/reference.js +10 -3
  132. package/src/element/substitution/statement.js +11 -17
  133. package/src/element/substitution/term.js +9 -2
  134. package/src/element/substitution.js +0 -4
  135. package/src/element/topLevelAssertion/axiom.js +7 -0
  136. package/src/element/topLevelAssertion/conjecture.js +7 -0
  137. package/src/element/topLevelAssertion/lemma.js +7 -0
  138. package/src/element/topLevelAssertion/theorem.js +7 -0
  139. package/src/element/topLevelAssertion.js +1 -9
  140. package/src/element/topLevelMetaAssertion/metaLemma.js +7 -0
  141. package/src/element/topLevelMetaAssertion/metatheorem.js +7 -0
  142. package/src/element/type.js +7 -0
  143. package/src/element/typePrefix.js +7 -0
  144. package/src/element/variable.js +7 -4
  145. package/src/preamble.js +0 -1
  146. package/src/process/assign.js +1 -3
  147. package/src/utilities/element.js +2 -2
  148. package/src/utilities/substitutions.js +8 -12
  149. package/src/utilities/unification.js +2 -4
  150. package/lib/element/substitutions.js +0 -225
  151. package/src/element/substitutions.js +0 -84
@@ -22,6 +22,13 @@ export default define(class Equality extends Element {
22
22
  return this.rightTerm;
23
23
  }
24
24
 
25
+ getEqualityNode() {
26
+ const node = this.getNode(),
27
+ equalityNde = node; ///
28
+
29
+ return equalityNde;
30
+ }
31
+
25
32
  getType() {
26
33
  let type;
27
34
 
@@ -15,6 +15,7 @@ const { compress } = arrayUtilities;
15
15
  export default define(class Equivalence extends Element {
16
16
  constructor(context, string, node, terms) {
17
17
  super(context, string, node);
18
+
18
19
  this.terms = terms;
19
20
  }
20
21
 
@@ -22,6 +23,13 @@ export default define(class Equivalence extends Element {
22
23
  return this.terms;
23
24
  }
24
25
 
26
+ getEquivalenceNode() {
27
+ const node = this.getNode(),
28
+ equivalenceNode = node; ///
29
+
30
+ return equivalenceNode;
31
+ }
32
+
25
33
  getType() {
26
34
  const type = this.terms.reduce((type, term) => {
27
35
  const termType = term.getType();
@@ -20,6 +20,13 @@ export default define(class Equivalences extends Element {
20
20
  return this.array;
21
21
  }
22
22
 
23
+ getEquivalencesNode() {
24
+ const node = this.getNode(),
25
+ equivalencesNode = node; ///
26
+
27
+ return equivalencesNode;
28
+ }
29
+
23
30
  getLength() { return this.array.length; }
24
31
 
25
32
  getTypes() {
@@ -5,8 +5,11 @@ import { Element } from "occam-languages";
5
5
  import { define } from "../elements";
6
6
 
7
7
  export default define(class Error extends Element {
8
- constructor(context, string, node) {
9
- super(context, string, node);
8
+ getErrorNode() {
9
+ const node = this.getNode(),
10
+ errorNode = node; ///
11
+
12
+ return errorNode;
10
13
  }
11
14
 
12
15
  async verify() {
@@ -18,6 +18,13 @@ export default define(class Hypothesis extends Element {
18
18
  return this.statement;
19
19
  }
20
20
 
21
+ getHypothesisNode() {
22
+ const node = this.getNode(),
23
+ hypothesisNode = node; ///
24
+
25
+ return hypothesisNode;
26
+ }
27
+
21
28
  verify(context) {
22
29
  let verifies = false;
23
30
 
@@ -21,9 +21,15 @@ export default define(class Judgement extends Element {
21
21
  return this.assumption;
22
22
  }
23
23
 
24
- isSingular() {
24
+ getJudgementNode() {
25
25
  const node = this.getNode(),
26
- judgementNode = node, ///
26
+ judgementNode = node; ///
27
+
28
+ return judgementNode;
29
+ }
30
+
31
+ isSingular() {
32
+ const judgementNode = this.getJudgementNode(),
27
33
  singular = judgementNode.isSingular();
28
34
 
29
35
  return singular;
@@ -16,6 +16,13 @@ export default define(class Label extends Element {
16
16
  return this.metavariable;
17
17
  }
18
18
 
19
+ getLabelNode() {
20
+ const node = this.getNode(),
21
+ labelNode = node; ///
22
+
23
+ return labelNode;
24
+ }
25
+
19
26
  getMetavariableName() { return this.metavariable.getName(); }
20
27
 
21
28
  getMetavariableNode() { return this.metavariable.getNode(); }
@@ -15,6 +15,13 @@ export default define(class MetaType extends Element {
15
15
  return this.name;
16
16
  }
17
17
 
18
+ getMetaTypeNode() {
19
+ const node = this.getNode(),
20
+ metaTypeNode = node; ///
21
+
22
+ return metaTypeNode;
23
+ }
24
+
18
25
  isEqualTo(metaType) {
19
26
  const equalTo = (this === metaType);
20
27
 
@@ -126,13 +126,13 @@ export default define(class Metavariable extends Element {
126
126
 
127
127
  context.trace(`Unifying the '${frameString}' frame with the '${metavariableString}' metavariable...`);
128
128
 
129
- const metavariable = this, ///
130
- frameMetavariableUnifies = this.unifyFrameMetavariable(frame, generalContext, specificContext);
129
+ const frameMetavariableUnifies = this.unifyFrameMetavariable(frame, generalContext, specificContext);
131
130
 
132
131
  if (frameMetavariableUnifies) {
133
132
  frameUnifies = true;
134
133
  } else {
135
- const simpleSubstitution = context.findSimpleSubstitutionByMetavariable(metavariable);
134
+ const metavariableName = this.getMetavariableName(),
135
+ simpleSubstitution = context.findSimpleSubstitutionByMetavariableName(metavariableName);
136
136
 
137
137
  if (simpleSubstitution !== null) {
138
138
  const substitution = simpleSubstitution, ///
@@ -143,14 +143,11 @@ export default define(class Metavariable extends Element {
143
143
  }
144
144
  } else {
145
145
  const { FrameSubstitution } = elements,
146
+ metavariable = this, ///
146
147
  frameSubstitution = FrameSubstitution.fromFrameAndMetavariable(frame, metavariable, context),
147
148
  framesubstitutionValidates = frameSubstitution.validate(generalContext, specificContext);
148
149
 
149
150
  if (framesubstitutionValidates) {
150
- const substitution = frameSubstitution; ///
151
-
152
- context.addSubstitution(substitution);
153
-
154
151
  frameUnifies = true;
155
152
  }
156
153
  }
@@ -211,10 +208,6 @@ export default define(class Metavariable extends Element {
211
208
  const statementSubstitutionValidates = statementSubstitution.validate(generalContext, specificContext);
212
209
 
213
210
  if (statementSubstitutionValidates) {
214
- const substitution = statementSubstitution; ///
215
-
216
- context.addSubstitution(substitution);
217
-
218
211
  statementUnifies = true;
219
212
  }
220
213
  }
@@ -236,16 +229,16 @@ export default define(class Metavariable extends Element {
236
229
 
237
230
  context.trace(`Unifying the '${referenceString}' reference with the '${metavariableString}' metavariable...`);
238
231
 
239
- const metavariable = this, ///
240
- referenceMetavariableUnifies = this.unifyReferenceMetavariable(reference, generalContext, specificContext);
232
+ const referenceMetavariableUnifies = this.unifyReferenceMetavariable(reference, generalContext, specificContext);
241
233
 
242
234
  if (referenceMetavariableUnifies) {
243
235
  referenceUnifies = true;
244
236
  } else {
245
- const simpleSubstitutionPresent = context.isSimpleSubstitutionPresentByMetavariable(metavariable);
237
+ const metavariableName = this.getMetavariableName(),
238
+ simpleSubstitutionPresent = context.isSimpleSubstitutionPresentByMetavariableName(metavariableName);
246
239
 
247
240
  if (simpleSubstitutionPresent) {
248
- const simpleSubstitution = context.findSimpleSubstitutionByMetavariable(metavariable),
241
+ const simpleSubstitution = context.findSimpleSubstitutionByMetavariableName(metavariableName),
249
242
  substitution = simpleSubstitution, ///
250
243
  substitutionReferenceEqualToReference = substitution.isReferenceEqualToReference(reference);
251
244
 
@@ -254,12 +247,14 @@ export default define(class Metavariable extends Element {
254
247
  }
255
248
  } else {
256
249
  const { ReferenceSubstitution } = elements,
250
+ metavariable = this, ///
257
251
  referenceSubstitution = ReferenceSubstitution.fromReferenceAndMetavariable(reference, metavariable, context),
258
- substitution = referenceSubstitution; ///
252
+ referenceSubstitutionValidates = referenceSubstitution.validate(generalContext, specificContext);
259
253
 
260
- context.addSubstitution(substitution);
254
+ if (referenceSubstitutionValidates) {
255
+ referenceUnifies = true;
261
256
 
262
- referenceUnifies = true;
257
+ }
263
258
  }
264
259
  }
265
260
 
@@ -20,6 +20,13 @@ export default define(class Parameter extends Element {
20
20
  return this.identifier;
21
21
  }
22
22
 
23
+ getParameterNode() {
24
+ const node = this.getNode(),
25
+ parameterNode = node; ///
26
+
27
+ return parameterNode;
28
+ }
29
+
23
30
  findPrimitive(substitutions) {
24
31
  let primitive = null;
25
32
 
@@ -24,7 +24,14 @@ export default define(class ProcedureCall extends Element {
24
24
  return this.procedureReference;
25
25
  }
26
26
 
27
- getName() { return this.procedureReference.getName(); }
27
+ getProcedureCallNode() {
28
+ const node = this.getNode(),
29
+ procedureCallNode = node;
30
+
31
+ return procedureCallNode;
32
+ }
33
+
34
+ getProcedureName() { return this.procedureReference.getProcedureName(); }
28
35
 
29
36
  findPrimitives(context) {
30
37
  const substitutions = context.getSubstitutions(),
@@ -44,8 +51,8 @@ export default define(class ProcedureCall extends Element {
44
51
 
45
52
  context.trace(`Validating the '${procedureCallString}' procedure call...`);
46
53
 
47
- const name = this.getName(),
48
- procedure = context.findProcedureByName(name);
54
+ const procedureName = this.getProcedureName(),
55
+ procedure = context.findProcedureByProcedureName(procedureName);
49
56
 
50
57
  if (procedure !== null) {
51
58
  const procedureBoolean = procedure.isBoolean();
@@ -73,13 +80,13 @@ export default define(class ProcedureCall extends Element {
73
80
 
74
81
  context.trace(`Unifying the '${procedureCallString}' procedure call independently...`);
75
82
 
76
- const name = this.getName(),
77
- primitives = this.findPrimitives(context),
78
- terms = termsFromPrimitives(primitives),
79
- procedure = context.findProcedureByName(name);
83
+ const procedureName = this.getProcedureName(),
84
+ procedure = context.findProcedureByProcedureName(procedureName);
80
85
 
81
- try {
82
- const term = await procedure.call(terms, context),
86
+ // try {
87
+ const primitives = this.findPrimitives(context),
88
+ terms = termsFromPrimitives(primitives),
89
+ term = await procedure.call(terms, context),
83
90
  boolean = term.isBoolean();
84
91
 
85
92
  if (!boolean) {
@@ -91,11 +98,11 @@ export default define(class ProcedureCall extends Element {
91
98
  unifiesIndependently = true;
92
99
  }
93
100
  }
94
- } catch (exception) {
95
- const message = exception.getMessage();
96
-
97
- context.info(message);
98
- }
101
+ // } catch (exception) {
102
+ // const message = exception.getMessage();
103
+ //
104
+ // context.info(message);
105
+ // }
99
106
 
100
107
  if (unifiesIndependently) {
101
108
  context.debug(`...unified the '${procedureCallString}' procedure call independently.`);
@@ -14,6 +14,19 @@ export default define(class ProcedureReference extends Element {
14
14
  return this.name;
15
15
  }
16
16
 
17
+ getProcedureReferenceNode() {
18
+ const node = this.getNode(),
19
+ procedureReferenceNode = node; ///
20
+
21
+ return procedureReferenceNode;
22
+ }
23
+
24
+ getProcedureName() {
25
+ const procedureName = this.name; ///
26
+
27
+ return procedureName;
28
+ }
29
+
17
30
  toJSON() {
18
31
  const name = this.name,
19
32
  json = {
@@ -16,6 +16,13 @@ export default define(class Proof extends Element {
16
16
  return this.derivation;
17
17
  }
18
18
 
19
+ getProofNode() {
20
+ const node = this.getNode(),
21
+ proofNode = node; ///
22
+
23
+ return proofNode;
24
+ }
25
+
19
26
  getLastProofAssertion() { return this.derivation.getLastProofAssertion(); }
20
27
 
21
28
  getStatement() {
@@ -17,6 +17,13 @@ export default define(class Premise extends ProofAssertion {
17
17
  return this.procedureCall;
18
18
  }
19
19
 
20
+ getPremiseNode() {
21
+ const node = this.getNode(),
22
+ premiseNode = node; ///
23
+
24
+ return premiseNode;
25
+ }
26
+
20
27
  isStated() {
21
28
  const stated = true; ///
22
29
 
@@ -27,6 +27,13 @@ export default define(class Step extends ProofAssertion {
27
27
  return this.satisfiesAssertion;
28
28
  }
29
29
 
30
+ getStepNode() {
31
+ const node = this.getNode(),
32
+ stepNode = node; ///
33
+
34
+ return stepNode;
35
+ }
36
+
30
37
  isSatisfied() {
31
38
  const satisfied = (this.satisfiesAssertion !== null);
32
39
 
@@ -17,6 +17,13 @@ export default define(class Supposition extends ProofAssertion {
17
17
  return this.procedureCall;
18
18
  }
19
19
 
20
+ getSuppositionNode() {
21
+ const node = this.getNode(),
22
+ suppositionNode = node; ///
23
+
24
+ return suppositionNode;
25
+ }
26
+
20
27
  isStated() {
21
28
  const stated = true; ///
22
29
 
@@ -15,6 +15,13 @@ export default class ProofAssertion extends Element {
15
15
  return this.statement;
16
16
  }
17
17
 
18
+ getProofAssertionNode() {
19
+ const node = this.getNode(),
20
+ proofAssertionNode = node; ///
21
+
22
+ return proofAssertionNode;
23
+ }
24
+
18
25
  isProofAssertion() {
19
26
  const proofAssertion = true;
20
27
 
@@ -20,6 +20,13 @@ export default define(class Property extends Element {
20
20
  return this.nominalTypeName;
21
21
  }
22
22
 
23
+ getPropertyNode() {
24
+ const node = this.getNode(),
25
+ properetyNode = node; ///
26
+
27
+ return properetyNode;
28
+ }
29
+
23
30
  comparePropertyName(propertyName) {
24
31
  const comparesToPropertyName = (this.name === propertyName);
25
32
 
@@ -20,6 +20,13 @@ export default define(class PropertyRelation extends Element {
20
20
  return this.term;
21
21
  }
22
22
 
23
+ getPropertyRelationNode() {
24
+ const node = this.getNode(),
25
+ propertyRelationNode = node; ///
26
+
27
+ return propertyRelationNode;
28
+ }
29
+
23
30
  verify(context) {
24
31
  let verifies = false;
25
32
 
@@ -20,6 +20,14 @@ export default define(class Reference extends Element {
20
20
  return this.metavariable;
21
21
  }
22
22
 
23
+ getReferenceNode() {
24
+ const node = this.getNode(),
25
+ referenceNode = node; ///
26
+
27
+ return referenceNode;
28
+ }
29
+
30
+
23
31
  getName() { return this.metavariable.getName(); }
24
32
 
25
33
  getMetavariableName() {
@@ -34,13 +42,6 @@ export default define(class Reference extends Element {
34
42
  return metavariableNode;
35
43
  }
36
44
 
37
- getReferenceNode() {
38
- const node = this.getNode(),
39
- assertionNode = node; ///
40
-
41
- return assertionNode;
42
- }
43
-
44
45
  matchReferenceNode(assertionNode) {
45
46
  const assertionNodeA = assertionNode; ///
46
47
 
@@ -43,6 +43,13 @@ export default define(class Rule extends Element {
43
43
  return this.conclusion;
44
44
  }
45
45
 
46
+ getRuleNode() {
47
+ const node = this.getNode(),
48
+ ruleNode = node; ///
49
+
50
+ return ruleNode;
51
+ }
52
+
46
53
  compareMetavariableName(metavariableName) {
47
54
  const comparesToMetavariableName = this.labels.some((label) => {
48
55
  const labelComparesToMetavariableName = label.compareMetavariableName(metavariableName);
@@ -221,15 +228,7 @@ export default define(class Rule extends Element {
221
228
  const subproofOrProofAssertionsUnifiesWithPremises = await this.unifySubproofOrProofAssertionsWithPremises(subproofOrProofAssertions, context);
222
229
 
223
230
  if (subproofOrProofAssertionsUnifiesWithPremises) {
224
- const specificContext = context; ///
225
-
226
- context = this.getContext();
227
-
228
- const generalContext = context; ///
229
-
230
- context = specificContext; ///
231
-
232
- const substitutionsResolved = context.areSubstitutionsResolved(generalContext, specificContext);
231
+ const substitutionsResolved = context.areSubstitutionsResolved();
233
232
 
234
233
  if (substitutionsResolved) {
235
234
  statementAndSubproofOrProofAssertionsUnify = true;
@@ -35,6 +35,13 @@ export default define(class Section extends Element {
35
35
  return this.conjecture;
36
36
  }
37
37
 
38
+ getSectionNode() {
39
+ const node = this.getNode(),
40
+ sectionNode = node; ///
41
+
42
+ return sectionNode;
43
+ }
44
+
38
45
  verifyHypotheses() {
39
46
  const hypothesesVerify = this.hypotheses.every((hypothesis) => {
40
47
  const hypothesisVerifies = hypothesis.verify(this.context);
@@ -20,6 +20,13 @@ export default define(class Signature extends Element {
20
20
  return this.terms;
21
21
  }
22
22
 
23
+ getSignatureNode() {
24
+ const node = this.getNode(),
25
+ signatureNode = node; ///
26
+
27
+ return signatureNode;
28
+ }
29
+
23
30
  verify(context) {
24
31
  let verifies;
25
32
 
@@ -11,30 +11,25 @@ import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
11
11
  const { match, backwardsSome } = arrayUtilities;
12
12
 
13
13
  export default define(class Statement extends Element {
14
- constructor(context, string, node) {
15
- super(context, string, node);
16
- }
17
-
18
- isSingular() {
14
+ getStatementNode() {
19
15
  const node = this.getNode(),
20
- statementNode = node, ///
21
- singular = statementNode.isSingular();
16
+ statementNode = node; ///
22
17
 
23
- return singular;
18
+ return statementNode;
24
19
  }
25
20
 
26
21
  getMetavariableName() {
27
- const node = this.getNode(),
28
- metavariableName = node.getMetavariableName();
22
+ const sttaementNode = this.getStatementNode(),
23
+ metavariableName = sttaementNode.getMetavariableName();
29
24
 
30
25
  return metavariableName;
31
26
  }
32
27
 
33
- getStatementNode() {
34
- const node = this.getNode(),
35
- statementNode = node; ///
28
+ isSingular() {
29
+ const statementNode = this.getStatementNode(),
30
+ singular = statementNode.isSingular();
36
31
 
37
- return statementNode;
32
+ return singular;
38
33
  }
39
34
 
40
35
  matchStatementNode(statementNode) {
@@ -20,6 +20,13 @@ export default define(class SubDerivation extends Element {
20
20
  return this.subproofOrProofAssertions;
21
21
  }
22
22
 
23
+ getSubDerivationNode() {
24
+ const node = this.getNode(),
25
+ subDerivationNode = node; ///
26
+
27
+ return subDerivationNode;
28
+ }
29
+
23
30
  getLastProofAssertion() {
24
31
  const lastSubproofOrProofAssertion = last(this.subproofOrProofAssertions),
25
32
  lastProofAssertion = lastSubproofOrProofAssertion; ///
@@ -21,6 +21,13 @@ export default define(class Subproof extends Element {
21
21
  return this.subDerivation;
22
22
  }
23
23
 
24
+ getSubproofNode() {
25
+ const node = this.getNode(),
26
+ subproofNode = node; ///
27
+
28
+ return subproofNode;
29
+ }
30
+
24
31
  getLastProofAssertion() { return this.subDerivation.getLastProofAssertion(); }
25
32
 
26
33
  getStatements() {
@@ -24,6 +24,13 @@ export default define(class FrameSubstitution extends Substitution {
24
24
  return this.replacementFrame;
25
25
  }
26
26
 
27
+ getFrameSubstitutionNode() {
28
+ const node = this.getNode(),
29
+ frameSubstitutionNode = node; ///
30
+
31
+ return frameSubstitutionNode;
32
+ }
33
+
27
34
  getTargetNode() {
28
35
  const targetFrameNode = this.targetFrame.getNode(),
29
36
  tergetNode = targetFrameNode; ///
@@ -92,9 +99,9 @@ export default define(class FrameSubstitution extends Substitution {
92
99
  }
93
100
 
94
101
  if (validates) {
95
- const substititoin = this; ///
102
+ const substitution = this; ///
96
103
 
97
- context.addSubstitution(substititoin);
104
+ context.addSubstitution(substitution);
98
105
 
99
106
  context.debug(`...validated the '${frameSubstitutionString}' frame substitution.`);
100
107
  }
@@ -145,7 +152,7 @@ export default define(class FrameSubstitution extends Substitution {
145
152
  replacementFrameValidates = this.replacementFrame.validate(assignments, stated, context);
146
153
 
147
154
  if (replacementFrameValidates) {
148
- context.debug(`...validated the '${frameSubstitutionString}' frame subtitution's '${replacementFrameString}' replacement frame...`);
155
+ context.debug(`...validated the '${frameSubstitutionString}' frame subtitution's '${replacementFrameString}' replacement frame.`);
149
156
  }
150
157
 
151
158
  return replacementFrameValidates;
@@ -24,6 +24,13 @@ export default define(class ReferenceSubstitution extends Substitution {
24
24
  return this.replacementReference;
25
25
  }
26
26
 
27
+ getReferenceSubstitutionNode() {
28
+ const node = this.getNode(),
29
+ referenceSubstitution = node; ///
30
+
31
+ return referenceSubstitution;
32
+ }
33
+
27
34
  getTargetNode() {
28
35
  const targetReferenceNode = this.targetReference.getNode(),
29
36
  tergetNode = targetReferenceNode; ///
@@ -92,9 +99,9 @@ export default define(class ReferenceSubstitution extends Substitution {
92
99
  }
93
100
 
94
101
  if (validates) {
95
- const substititoin = this; ///
102
+ const subsitution = this; ///
96
103
 
97
- context.addSubstitution(substititoin);
104
+ context.addSubstitution(subsitution);
98
105
 
99
106
  context.debug(`...validated the '${referenceSubstitutionString}' reference substitution.`);
100
107
  }
@@ -139,7 +146,7 @@ export default define(class ReferenceSubstitution extends Substitution {
139
146
  replacementReferenceValidates = this.replacementReference.validate(context);
140
147
 
141
148
  if (replacementReferenceValidates) {
142
- context.debug(`...validated the '${referenceSubstitutionString}' reference subtitution's '${replacementReferenceString}' replacement reference...`);
149
+ context.debug(`...validated the '${referenceSubstitutionString}' reference subtitution's '${replacementReferenceString}' replacement reference.`);
143
150
  }
144
151
 
145
152
  return replacementReferenceValidates;