occam-verify-cli 1.0.612 → 1.0.631

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/lib/context/ephemeral.js +210 -77
  2. package/lib/context/file/nominal.js +157 -135
  3. package/lib/context/liminal.js +34 -59
  4. package/lib/context/scoped.js +37 -58
  5. package/lib/context.js +103 -53
  6. package/lib/element/assertion/contained.js +3 -1
  7. package/lib/element/assertion/defined.js +3 -1
  8. package/lib/element/assertion/property.js +10 -58
  9. package/lib/element/assertion/satisfies.js +3 -1
  10. package/lib/element/assertion/subproof.js +3 -1
  11. package/lib/element/assertion/type.js +63 -109
  12. package/lib/element/assertion.js +5 -9
  13. package/lib/element/assumption.js +50 -19
  14. package/lib/element/combinator.js +8 -1
  15. package/lib/element/conclusion.js +8 -1
  16. package/lib/element/constructor.js +8 -1
  17. package/lib/element/declaration.js +3 -7
  18. package/lib/element/deduction.js +8 -1
  19. package/lib/element/derivation.js +15 -10
  20. package/lib/element/equality.js +109 -62
  21. package/lib/element/equivalence.js +13 -6
  22. package/lib/element/equivalences.js +11 -4
  23. package/lib/element/error.js +10 -7
  24. package/lib/element/frame.js +21 -21
  25. package/lib/element/hypothesis.js +12 -7
  26. package/lib/element/judgement.js +55 -26
  27. package/lib/element/label.js +8 -1
  28. package/lib/element/metaType.js +9 -2
  29. package/lib/element/metavariable.js +16 -10
  30. package/lib/element/parameter.js +8 -1
  31. package/lib/element/procedureCall.js +21 -29
  32. package/lib/element/procedureReference.js +15 -1
  33. package/lib/element/proof.js +8 -1
  34. package/lib/element/proofAssertion.js +8 -1
  35. package/lib/element/property.js +8 -1
  36. package/lib/element/propertyRelation.js +8 -1
  37. package/lib/element/reference.js +16 -28
  38. package/lib/element/rule.js +22 -21
  39. package/lib/element/section.js +8 -1
  40. package/lib/element/signature.js +8 -1
  41. package/lib/element/statement.js +34 -40
  42. package/lib/element/subDerivation.js +11 -6
  43. package/lib/element/subproof.js +8 -1
  44. package/lib/element/substitution/frame.js +6 -6
  45. package/lib/element/substitution/reference.js +6 -6
  46. package/lib/element/substitution/statement.js +6 -6
  47. package/lib/element/substitution/term.js +9 -3
  48. package/lib/element/substitution.js +73 -49
  49. package/lib/element/term.js +15 -1
  50. package/lib/element/topLevelAssertion/axiom.js +8 -1
  51. package/lib/element/topLevelAssertion/conjecture.js +8 -1
  52. package/lib/element/topLevelAssertion/lemma.js +8 -1
  53. package/lib/element/topLevelAssertion/theorem.js +8 -1
  54. package/lib/element/topLevelAssertion.js +11 -17
  55. package/lib/element/topLevelMetaAssertion/metaLemma.js +8 -1
  56. package/lib/element/topLevelMetaAssertion/metatheorem.js +8 -1
  57. package/lib/element/topLevelMetaAssertion.js +9 -11
  58. package/lib/element/type.js +8 -1
  59. package/lib/element/typePrefix.js +8 -1
  60. package/lib/element/variable.js +51 -5
  61. package/lib/preamble.js +1 -2
  62. package/lib/process/assign.js +96 -27
  63. package/lib/process/unify.js +3 -4
  64. package/lib/process/validate.js +2 -2
  65. package/lib/process/verify.js +2 -2
  66. package/lib/utilities/element.js +74 -12
  67. package/lib/utilities/json.js +2 -2
  68. package/lib/utilities/string.js +9 -24
  69. package/lib/utilities/substitutions.js +15 -23
  70. package/package.json +2 -2
  71. package/src/context/ephemeral.js +234 -82
  72. package/src/context/file/nominal.js +195 -135
  73. package/src/context/liminal.js +43 -80
  74. package/src/context/scoped.js +56 -81
  75. package/src/context.js +97 -46
  76. package/src/element/assertion/contained.js +4 -0
  77. package/src/element/assertion/defined.js +4 -0
  78. package/src/element/assertion/property.js +15 -26
  79. package/src/element/assertion/satisfies.js +4 -0
  80. package/src/element/assertion/subproof.js +4 -0
  81. package/src/element/assertion/type.js +67 -77
  82. package/src/element/assertion.js +4 -8
  83. package/src/element/assumption.js +57 -18
  84. package/src/element/combinator.js +7 -0
  85. package/src/element/conclusion.js +7 -0
  86. package/src/element/constructor.js +7 -0
  87. package/src/element/declaration.js +1 -3
  88. package/src/element/deduction.js +7 -0
  89. package/src/element/derivation.js +10 -5
  90. package/src/element/equality.js +116 -74
  91. package/src/element/equivalence.js +15 -7
  92. package/src/element/equivalences.js +14 -5
  93. package/src/element/error.js +5 -2
  94. package/src/element/frame.js +25 -25
  95. package/src/element/hypothesis.js +11 -6
  96. package/src/element/judgement.js +62 -26
  97. package/src/element/label.js +7 -0
  98. package/src/element/metaType.js +8 -1
  99. package/src/element/metavariable.js +20 -14
  100. package/src/element/parameter.js +7 -0
  101. package/src/element/procedureCall.js +21 -14
  102. package/src/element/procedureReference.js +13 -0
  103. package/src/element/proof.js +7 -0
  104. package/src/element/proofAssertion.js +7 -0
  105. package/src/element/property.js +7 -0
  106. package/src/element/propertyRelation.js +7 -0
  107. package/src/element/reference.js +20 -33
  108. package/src/element/rule.js +16 -19
  109. package/src/element/section.js +7 -0
  110. package/src/element/signature.js +7 -0
  111. package/src/element/statement.js +36 -44
  112. package/src/element/subDerivation.js +10 -5
  113. package/src/element/subproof.js +7 -0
  114. package/src/element/substitution/frame.js +3 -3
  115. package/src/element/substitution/reference.js +3 -3
  116. package/src/element/substitution/statement.js +3 -3
  117. package/src/element/substitution/term.js +4 -2
  118. package/src/element/substitution.js +60 -40
  119. package/src/element/term.js +20 -2
  120. package/src/element/topLevelAssertion/axiom.js +7 -0
  121. package/src/element/topLevelAssertion/conjecture.js +7 -0
  122. package/src/element/topLevelAssertion/lemma.js +7 -0
  123. package/src/element/topLevelAssertion/theorem.js +7 -0
  124. package/src/element/topLevelAssertion.js +5 -15
  125. package/src/element/topLevelMetaAssertion/metaLemma.js +7 -0
  126. package/src/element/topLevelMetaAssertion/metatheorem.js +7 -0
  127. package/src/element/topLevelMetaAssertion.js +4 -6
  128. package/src/element/type.js +7 -0
  129. package/src/element/typePrefix.js +7 -0
  130. package/src/element/variable.js +9 -4
  131. package/src/preamble.js +0 -1
  132. package/src/process/assign.js +113 -38
  133. package/src/process/unify.js +2 -3
  134. package/src/process/validate.js +1 -1
  135. package/src/process/verify.js +1 -1
  136. package/src/utilities/element.js +83 -26
  137. package/src/utilities/json.js +1 -1
  138. package/src/utilities/string.js +7 -29
  139. package/src/utilities/substitutions.js +19 -30
  140. package/lib/element/substitutions.js +0 -225
  141. package/src/element/substitutions.js +0 -84
@@ -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
 
@@ -41,7 +48,7 @@ export default define(class MetaType extends Element {
41
48
  static fromJSON(json, context) {
42
49
  const { name } = json,
43
50
  metaTypeName = name, ///
44
- metaType = findMetaTypeByMetaTypeName(metaTypeName);
51
+ metaType = context.findMetaTypeByMetaTypeName(metaTypeName);
45
52
 
46
53
  return metaType;
47
54
  }
@@ -54,8 +54,9 @@ export default define(class Metavariable extends Element {
54
54
  }
55
55
 
56
56
  compare(metavariable) {
57
- const name = metavariable.getName(),
58
- comparesToMetavariable = (this.name === name);
57
+ const metavariableName = metavariable.getName(),
58
+ comparesToMetavariableName = this.compareMetavariableName(metavariableName),
59
+ comparesToMetavariable = comparesToMetavariableName; ///
59
60
 
60
61
  return comparesToMetavariable;
61
62
  }
@@ -69,6 +70,18 @@ export default define(class Metavariable extends Element {
69
70
  return comparesToMetavariableName;
70
71
  }
71
72
 
73
+ matchMetavariableNode(metavariableNode) {
74
+ const metavariableNodeA = metavariableNode; ///
75
+
76
+ metavariableNode = this.getMetavariableNode(); ///
77
+
78
+ const metavariableNodeB = metavariableNode, ///
79
+ metavariableNodeAMatchesMetavariableNodeB = metavariableNodeA.match(metavariableNodeB),
80
+ metavariableNodeMatches = metavariableNodeAMatchesMetavariableNodeB; ///
81
+
82
+ return metavariableNodeMatches;
83
+ }
84
+
72
85
  validate(context) {
73
86
  let validates = false;
74
87
 
@@ -148,10 +161,6 @@ export default define(class Metavariable extends Element {
148
161
  framesubstitutionValidates = frameSubstitution.validate(generalContext, specificContext);
149
162
 
150
163
  if (framesubstitutionValidates) {
151
- const substitution = frameSubstitution; ///
152
-
153
- context.addSubstitution(substitution);
154
-
155
164
  frameUnifies = true;
156
165
  }
157
166
  }
@@ -212,10 +221,6 @@ export default define(class Metavariable extends Element {
212
221
  const statementSubstitutionValidates = statementSubstitution.validate(generalContext, specificContext);
213
222
 
214
223
  if (statementSubstitutionValidates) {
215
- const substitution = statementSubstitution; ///
216
-
217
- context.addSubstitution(substitution);
218
-
219
224
  statementUnifies = true;
220
225
  }
221
226
  }
@@ -257,11 +262,12 @@ export default define(class Metavariable extends Element {
257
262
  const { ReferenceSubstitution } = elements,
258
263
  metavariable = this, ///
259
264
  referenceSubstitution = ReferenceSubstitution.fromReferenceAndMetavariable(reference, metavariable, context),
260
- substitution = referenceSubstitution; ///
265
+ referenceSubstitutionValidates = referenceSubstitution.validate(generalContext, specificContext);
261
266
 
262
- context.addSubstitution(substitution);
267
+ if (referenceSubstitutionValidates) {
268
+ referenceUnifies = true;
263
269
 
264
- referenceUnifies = true;
270
+ }
265
271
  }
266
272
  }
267
273
 
@@ -313,7 +319,7 @@ export default define(class Metavariable extends Element {
313
319
 
314
320
  if (generalContextFilePath === specificContextFilePath) {
315
321
  const metavariableName = this.getMetavariableName(), ///
316
- frameMetavariableComparesToMetvariable = frame.matchMetavariableName(metavariableName);
322
+ frameMetavariableComparesToMetvariable = frame.compareMetavariableName(metavariableName);
317
323
 
318
324
  if (frameMetavariableComparesToMetvariable) {
319
325
  frameMetavariableUnifies = true;
@@ -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() {
@@ -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
 
@@ -53,32 +54,18 @@ export default define(class Reference extends Element {
53
54
  return equalTo;
54
55
  }
55
56
 
56
- matchMetavariableName(metavariableName) {
57
- let metavariableNameMatches = false;
58
-
59
- const metavariableNameA = metavariableName ///
60
-
61
- metavariableName = this.getMetavariableName();
62
-
63
- const metavariableNameB = metavariableName; ///
64
-
65
- metavariableNameMatches = (metavariableNameA === metavariableNameB);
66
-
67
- return metavariableNameMatches;
68
- }
69
-
70
57
  isValid(context) {
71
- const assertionNode = this.getReferenceNode(),
72
- assertionPresent = context.isReferencePresentByReferenceNode(assertionNode),
73
- valid = assertionPresent; ///
58
+ const metavariableNode = this.getMetavariableNode(),
59
+ referencePresent = context.isReferencePresentByMetavariableNode(metavariableNode),
60
+ valid = referencePresent; ///
74
61
 
75
62
  return valid;
76
63
  }
77
64
 
78
- isEqualTo(assertion) {
79
- const assertionNode = assertion.getNode(),
80
- assertionNodeMatches = this.matchReferenceNode(assertionNode),
81
- equalTo = assertionNodeMatches; ///
65
+ isEqualTo(reference) {
66
+ const referenceNode = reference.getNode(),
67
+ referenceNodeMatches = this.matchReferenceNode(referenceNode),
68
+ equalTo = referenceNodeMatches; ///
82
69
 
83
70
  return equalTo;
84
71
  }
@@ -100,7 +87,7 @@ export default define(class Reference extends Element {
100
87
  }
101
88
 
102
89
  compareMetavariable(metavariable) {
103
- let metavaraibleComparseTo = false;
90
+ let comparesToMetavariable = false;
104
91
 
105
92
  let metavariableName;
106
93
 
@@ -113,15 +100,15 @@ export default define(class Reference extends Element {
113
100
  const metavariableNameB = metavariableName; ///
114
101
 
115
102
  if (metavariableNameA === metavariableNameB) {
116
- metavaraibleComparseTo = true;
103
+ comparesToMetavariable = true;
117
104
  }
118
105
 
119
- return metavaraibleComparseTo;
106
+ return comparesToMetavariable;
120
107
  }
121
108
 
122
109
  compareMetavariableName(metavariableName) { return this.metavariable.compareMetavariableName(metavariableName); }
123
110
 
124
- matchMetavariableNode(metavariableNode) { return this.metavariable.matchNode(metavariableNode); }
111
+ matchMetavariableNode(metavariableNode) { return this.metavariable.matchMetavariableNode(metavariableNode); }
125
112
 
126
113
  validate(context) {
127
114
  let validates = false;
@@ -167,7 +154,7 @@ export default define(class Reference extends Element {
167
154
  context.trace(`Validating the '${referenceString}' reference's '${metavariableString}' metavariable....'`);
168
155
 
169
156
  const metaTypeName = REFERENCE_META_TYPE_NAME,
170
- referenceMetaType = findMetaTypeByMetaTypeName(metaTypeName),
157
+ referenceMetaType = context.findMetaTypeByMetaTypeName(metaTypeName),
171
158
  metaType = referenceMetaType, ///
172
159
  metavariable = context.findMetavariable(this.metavariable);
173
160
 
@@ -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);
@@ -125,10 +132,6 @@ export default define(class Rule extends Element {
125
132
  const proofVerifies = await this.verifyProof(context);
126
133
 
127
134
  if (proofVerifies) {
128
- const rule = this; ///
129
-
130
- context.addRule(rule);
131
-
132
135
  verifies = true;
133
136
  }
134
137
  }
@@ -137,6 +140,10 @@ export default define(class Rule extends Element {
137
140
  }, context);
138
141
 
139
142
  if (verifies) {
143
+ const rule = this;
144
+
145
+ context.addRule(rule);
146
+
140
147
  context.debug(`...verified the '${ruleString}' rule.`);
141
148
  }
142
149
 
@@ -177,15 +184,13 @@ export default define(class Rule extends Element {
177
184
  premiseVerifies = await premise.verify(assignments, context)
178
185
 
179
186
  if (premiseVerifies) {
180
- const assignmentsAssigned = assignAssignments(assignments, context);
187
+ assignAssignments(assignments, context);
181
188
 
182
- if (assignmentsAssigned) {
183
- const subproofOrProofAssertion = premise; ////
189
+ const subproofOrProofAssertion = premise; ////
184
190
 
185
- context.addSubproofOrProofAssertion(subproofOrProofAssertion);
191
+ context.addSubproofOrProofAssertion(subproofOrProofAssertion);
186
192
 
187
- return true;
188
- }
193
+ return true;
189
194
  }
190
195
  });
191
196
 
@@ -221,15 +226,7 @@ export default define(class Rule extends Element {
221
226
  const subproofOrProofAssertionsUnifiesWithPremises = await this.unifySubproofOrProofAssertionsWithPremises(subproofOrProofAssertions, context);
222
227
 
223
228
  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);
229
+ const substitutionsResolved = context.areSubstitutionsResolved();
233
230
 
234
231
  if (substitutionsResolved) {
235
232
  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) {
@@ -49,8 +44,8 @@ export default define(class Statement extends Element {
49
44
  return equalTo;
50
45
  }
51
46
 
52
- matchMetavariableName(metavariableName) {
53
- let metavariableNameMatches = false;
47
+ compareMetavariableName(metavariableName) {
48
+ let comparesToMetavariableName = false;
54
49
 
55
50
  const singular = this.isSingular();
56
51
 
@@ -61,10 +56,10 @@ export default define(class Statement extends Element {
61
56
 
62
57
  const metavariableNameB = metavariableName; ///
63
58
 
64
- metavariableNameMatches = (metavariableNameA === metavariableNameB);
59
+ comparesToMetavariableName = (metavariableNameA === metavariableNameB);
65
60
  }
66
61
 
67
- return metavariableNameMatches;
62
+ return comparesToMetavariableName;
68
63
  }
69
64
 
70
65
  isValid(context) {
@@ -95,7 +90,7 @@ export default define(class Statement extends Element {
95
90
  statementNodeTermNodes = statementNode.getTermNodes();
96
91
 
97
92
  termContained = statementNodeTermNodes.some((statementNodeTermNode) => { ///
98
- const statementNodeTermNodeMatches = term.matchNode(statementNodeTermNode);
93
+ const statementNodeTermNodeMatches = term.matchTermNode(statementNodeTermNode);
99
94
 
100
95
  if (statementNodeTermNodeMatches) {
101
96
  return true;
@@ -135,31 +130,6 @@ export default define(class Statement extends Element {
135
130
  return frameContained;
136
131
  }
137
132
 
138
- compareMetavariable(metavariable) {
139
- let metavaraibleComparseTo;
140
-
141
- const singular = this.isSingular();
142
-
143
- if (singular) {
144
- let metavariableName;
145
-
146
- const statementNode = this.getStatementNode(),
147
- singularMetavariableNode = statementNode.getSingularMetavariableNode();
148
-
149
- metavariableName = singularMetavariableNode.getMetavariableName();
150
-
151
- const metavariableNameA = metavariableName ///
152
-
153
- metavariableName = metavariable.getName();
154
-
155
- const metavariableNameB = metavariableName; ///
156
-
157
- metavaraibleComparseTo = (metavariableNameA === metavariableNameB);
158
- }
159
-
160
- return metavaraibleComparseTo;
161
- }
162
-
163
133
  compareParameter(parameter) {
164
134
  let comparesToParamter = false;
165
135
 
@@ -180,6 +150,28 @@ export default define(class Statement extends Element {
180
150
  return comparesToParamter;
181
151
  }
182
152
 
153
+ compareMetavariable(metavariable) {
154
+ let comparesToMetavariableName;
155
+
156
+ const singular = this.isSingular();
157
+
158
+ if (singular) {
159
+ let metavariableName;
160
+
161
+ metavariableName = metavariable.getName();
162
+
163
+ const metavariableNameA = metavariableName; ///
164
+
165
+ metavariableName = this.getMetavariableName();
166
+
167
+ const metavariableNameB = metavariableName; ///
168
+
169
+ comparesToMetavariableName = (metavariableNameA === metavariableNameB);
170
+ }
171
+
172
+ return comparesToMetavariableName;
173
+ }
174
+
183
175
  validate(assignments, stated, context) {
184
176
  let validates;
185
177
 
@@ -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; ///
@@ -35,13 +42,11 @@ export default define(class SubDerivation extends Element {
35
42
  subproofOrProofAssertionVarifies = subproofOrProofAssertion.verify(substitutions, assignments, context);
36
43
 
37
44
  if (subproofOrProofAssertionVarifies) {
38
- const assignmentsAssigned = assignAssignments(assignments, context);
45
+ assignAssignments(assignments, context);
39
46
 
40
- if (assignmentsAssigned) {
41
- context.addSubproofOrProofAssertion(subproofOrProofAssertion);
47
+ context.addSubproofOrProofAssertion(subproofOrProofAssertion);
42
48
 
43
- return true;
44
- }
49
+ return true;
45
50
  }
46
51
  });
47
52
 
@@ -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() {
@@ -45,7 +45,7 @@ export default define(class FrameSubstitution extends Substitution {
45
45
  return replacementNode;
46
46
  }
47
47
 
48
- matchMetavariableName(metavariableName) { return this.targetFrame.matchMetavariableName(metavariableName); }
48
+ compareMetavariableName(metavariableName) { return this.targetFrame.compareMetavariableName(metavariableName); }
49
49
 
50
50
  getMetavariableName() { return this.targetFrame.getMetavariableName(); }
51
51
 
@@ -99,9 +99,9 @@ export default define(class FrameSubstitution extends Substitution {
99
99
  }
100
100
 
101
101
  if (validates) {
102
- const substititoin = this; ///
102
+ const substitution = this; ///
103
103
 
104
- context.addSubstitution(substititoin);
104
+ context.addSubstitution(substitution);
105
105
 
106
106
  context.debug(`...validated the '${frameSubstitutionString}' frame substitution.`);
107
107
  }