occam-verify-cli 1.0.617 → 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 (85) hide show
  1. package/lib/context/ephemeral.js +152 -47
  2. package/lib/context/file/nominal.js +136 -140
  3. package/lib/context/liminal.js +16 -26
  4. package/lib/context/scoped.js +26 -55
  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/assumption.js +40 -16
  13. package/lib/element/derivation.js +8 -10
  14. package/lib/element/equality.js +102 -62
  15. package/lib/element/equivalence.js +6 -6
  16. package/lib/element/equivalences.js +4 -4
  17. package/lib/element/frame.js +21 -21
  18. package/lib/element/hypothesis.js +5 -7
  19. package/lib/element/judgement.js +47 -25
  20. package/lib/element/metaType.js +2 -2
  21. package/lib/element/metavariable.js +12 -3
  22. package/lib/element/reference.js +9 -21
  23. package/lib/element/rule.js +13 -15
  24. package/lib/element/statement.js +23 -25
  25. package/lib/element/subDerivation.js +4 -6
  26. package/lib/element/substitution/frame.js +4 -4
  27. package/lib/element/substitution/reference.js +4 -4
  28. package/lib/element/substitution/statement.js +4 -4
  29. package/lib/element/substitution/term.js +7 -1
  30. package/lib/element/substitution.js +71 -43
  31. package/lib/element/term.js +15 -1
  32. package/lib/element/topLevelAssertion.js +9 -11
  33. package/lib/element/topLevelMetaAssertion.js +9 -11
  34. package/lib/element/variable.js +44 -3
  35. package/lib/process/assign.js +96 -26
  36. package/lib/process/unify.js +3 -4
  37. package/lib/process/validate.js +2 -2
  38. package/lib/process/verify.js +2 -2
  39. package/lib/utilities/element.js +74 -12
  40. package/lib/utilities/json.js +2 -2
  41. package/lib/utilities/string.js +9 -24
  42. package/lib/utilities/substitutions.js +14 -22
  43. package/package.json +1 -1
  44. package/src/context/ephemeral.js +170 -50
  45. package/src/context/file/nominal.js +136 -141
  46. package/src/context/liminal.js +22 -34
  47. package/src/context/scoped.js +33 -74
  48. package/src/context.js +97 -46
  49. package/src/element/assertion/contained.js +4 -0
  50. package/src/element/assertion/defined.js +4 -0
  51. package/src/element/assertion/property.js +15 -26
  52. package/src/element/assertion/satisfies.js +4 -0
  53. package/src/element/assertion/subproof.js +4 -0
  54. package/src/element/assertion/type.js +67 -77
  55. package/src/element/assumption.js +48 -16
  56. package/src/element/derivation.js +3 -5
  57. package/src/element/equality.js +109 -74
  58. package/src/element/equivalence.js +7 -7
  59. package/src/element/equivalences.js +7 -5
  60. package/src/element/frame.js +25 -25
  61. package/src/element/hypothesis.js +4 -6
  62. package/src/element/judgement.js +54 -24
  63. package/src/element/metaType.js +1 -1
  64. package/src/element/metavariable.js +16 -3
  65. package/src/element/reference.js +12 -26
  66. package/src/element/rule.js +8 -10
  67. package/src/element/statement.js +27 -30
  68. package/src/element/subDerivation.js +3 -5
  69. package/src/element/substitution/frame.js +1 -1
  70. package/src/element/substitution/reference.js +1 -1
  71. package/src/element/substitution/statement.js +1 -1
  72. package/src/element/substitution/term.js +2 -0
  73. package/src/element/substitution.js +60 -36
  74. package/src/element/term.js +20 -2
  75. package/src/element/topLevelAssertion.js +4 -6
  76. package/src/element/topLevelMetaAssertion.js +4 -6
  77. package/src/element/variable.js +2 -0
  78. package/src/process/assign.js +114 -37
  79. package/src/process/unify.js +2 -3
  80. package/src/process/validate.js +1 -1
  81. package/src/process/verify.js +1 -1
  82. package/src/utilities/element.js +83 -26
  83. package/src/utilities/json.js +1 -1
  84. package/src/utilities/string.js +7 -29
  85. package/src/utilities/substitutions.js +18 -29
@@ -5,9 +5,9 @@ import { arrayUtilities } from "necessary";
5
5
 
6
6
  import { define } from "../elements";
7
7
  import { literally } from "../utilities/context";
8
- import { termsStringFromTerms } from "../utilities/string";
9
8
  import { instantiateEquivalence } from "../process/instantiate";
10
9
  import { stripBracketsFromTermNode } from "../utilities/brackets";
10
+ import { equivalenceStringFromTerms } from "../utilities/string";
11
11
  import { equivalenceFromEquivalenceNode } from "../utilities/element";
12
12
 
13
13
  const { compress } = arrayUtilities;
@@ -57,7 +57,7 @@ export default define(class Equivalence extends Element {
57
57
  if (termGrounded) {
58
58
  const termMatchesGroundedTerm = groundedTerms.some((groundedTerm) => {
59
59
  const groundedTermNode = groundedTerm.getNode(),
60
- groundedTermNodeMatches = term.matchNode(groundedTermNode);
60
+ groundedTermNodeMatches = term.matchTermNode(groundedTermNode);
61
61
 
62
62
  if (groundedTermNodeMatches) {
63
63
  return true;
@@ -151,7 +151,7 @@ export default define(class Equivalence extends Element {
151
151
  termNode = stripBracketsFromTermNode(termNode); ///
152
152
 
153
153
  const termNodeMatches = this.someTerm((term) => {
154
- const termNodeMatches = term.matchNode(termNode);
154
+ const termNodeMatches = term.matchTermNode(termNode);
155
155
 
156
156
  if (termNodeMatches) {
157
157
  return true;
@@ -234,8 +234,8 @@ export default define(class Equivalence extends Element {
234
234
 
235
235
  return literally((context) => {
236
236
  const terms = combinedTerms, ///
237
- termsString = termsStringFromTerms(terms),
238
- string = termsString, ///
237
+ equivalenceString = equivalenceStringFromTerms(terms),
238
+ string = equivalenceString, ///
239
239
  equivalenceNode = instantiateEquivalence(string, context),
240
240
  equivalence = equivalenceFromEquivalenceNode(equivalenceNode, context);
241
241
 
@@ -248,8 +248,8 @@ export default define(class Equivalence extends Element {
248
248
  static fromEquality(equality, context) {
249
249
  return literally((context) => {
250
250
  const terms = equality.getTerms(),
251
- termsString = termsStringFromTerms(terms),
252
- string = termsString, ///
251
+ equivalenceString = equivalenceStringFromTerms(terms),
252
+ string = equivalenceString, ///
253
253
  equivalenceNode = instantiateEquivalence(string, context),
254
254
  equivalence = equivalenceFromEquivalenceNode(equivalenceNode, context);
255
255
 
@@ -80,7 +80,7 @@ export default define(class Equivalences extends Element {
80
80
  }
81
81
 
82
82
  mergedWith(equivalences, context) {
83
- let mergedEquivalences = this.clone(); ///
83
+ let mergedEquivalences = this.clone(context); ///
84
84
 
85
85
  equivalences.forEachEquivalence((equivalence) => {
86
86
  mergedEquivalences = mergedEquivalences.mergedWithEquivalence(equivalence, context);
@@ -139,7 +139,7 @@ export default define(class Equivalences extends Element {
139
139
  }
140
140
 
141
141
  separateGroundedTermsAndDefinedVariables(groundedTerms, definedVariables, context) {
142
- let equivalences = this,
142
+ let equivalences = this, ///
143
143
  groundedEquivalences,
144
144
  remainingEquivalences,
145
145
  initiallyGroundedEquivalences,
@@ -187,11 +187,13 @@ export default define(class Equivalences extends Element {
187
187
  }
188
188
  }
189
189
 
190
- clone() {
191
- const array = [
190
+ clone(context) {
191
+ const string = EMPTY_STRING,
192
+ node = null,
193
+ array = [
192
194
  ...this.array
193
195
  ],
194
- equivalences = new Equivalences(array);
196
+ equivalences = new Equivalences(context, string, node, array);
195
197
 
196
198
  return equivalences;
197
199
  }
@@ -51,9 +51,9 @@ export default define(class Frame extends Element {
51
51
 
52
52
  const frameNodeB = frameNode, ///
53
53
  frameNodeAAMatchesFrameBNodeB = frameNodeA.match(frameNodeB),
54
- equalTo = frameNodeAAMatchesFrameBNodeB; ///
54
+ frameNodeMatches = frameNodeAAMatchesFrameBNodeB; ///
55
55
 
56
- return equalTo;
56
+ return frameNodeMatches;
57
57
  }
58
58
 
59
59
  isValid(context) {
@@ -79,24 +79,6 @@ export default define(class Frame extends Element {
79
79
  return singular;
80
80
  }
81
81
 
82
- matchMetavariableName(metavariableName) {
83
- let metavariableNameMatches = false;
84
-
85
- const singular = this.isSingular();
86
-
87
- if (singular) {
88
- const metavariableNameA = metavariableName ///
89
-
90
- metavariableName = this.getMetavariableName();
91
-
92
- const metavariableNameB = metavariableName; ///
93
-
94
- metavariableNameMatches = (metavariableNameA === metavariableNameB);
95
- }
96
-
97
- return metavariableNameMatches;
98
- }
99
-
100
82
  compareParameter(parameter) {
101
83
  let comparesToParamter = false;
102
84
 
@@ -165,6 +147,24 @@ export default define(class Frame extends Element {
165
147
  return comparesToSubstitutions;
166
148
  }
167
149
 
150
+ compareMetavariableName(metavariableName) {
151
+ let comparesToMetavariableName = false;
152
+
153
+ const singular = this.isSingular();
154
+
155
+ if (singular) {
156
+ const metavariableNameA = metavariableName ///
157
+
158
+ metavariableName = this.getMetavariableName();
159
+
160
+ const metavariableNameB = metavariableName; ///
161
+
162
+ comparesToMetavariableName = (metavariableNameA === metavariableNameB);
163
+ }
164
+
165
+ return comparesToMetavariableName;
166
+ }
167
+
168
168
  validate(assignments, stated, context) {
169
169
  let validates = false;
170
170
 
@@ -184,7 +184,7 @@ export default define(class Frame extends Element {
184
184
 
185
185
  if (assumptionsValidate && metavariablevalidates) {
186
186
  let validatesWhenStated = false,
187
- validatesWhenDerived = false;
187
+ validatesWhenDerived = false;
188
188
 
189
189
  if (stated) {
190
190
  validatesWhenStated = this.validateWhenStated(assignments, context);
@@ -289,12 +289,12 @@ export default define(class Frame extends Element {
289
289
 
290
290
  context.trace(`Validating the '${frameString}' frame's '${metavraibleString}' metavariable...`);
291
291
 
292
- const metavariable = context.findMetavariable(this.metavariable);
292
+ const metavariablePresent = context.isMetavariablePresent(this.metavariable);
293
293
 
294
- if (metavariable !== null) {
294
+ if (metavariablePresent) {
295
295
  const metaTypeName = FRAME_META_TYPE_NAME,
296
- frameMetaType = findMetaTypeByMetaTypeName(metaTypeName),
297
- metavariableValidateGivenMetaType = metavariable.validateGivenMetaType(frameMetaType, context);
296
+ frameMetaType = context.findMetaTypeByMetaTypeName(metaTypeName),
297
+ metavariableValidateGivenMetaType = this.metavariable.validateGivenMetaType(frameMetaType, context);
298
298
 
299
299
  if (metavariableValidateGivenMetaType) {
300
300
  metavariableValidates = true;
@@ -40,15 +40,13 @@ export default define(class Hypothesis extends Element {
40
40
  statementValidates = this.statement.validate(assignments, stated, context);
41
41
 
42
42
  if (statementValidates) {
43
- const assignmentsAssigned = assignAssignments(assignments, context);
43
+ assignAssignments(assignments, context);
44
44
 
45
- if (assignmentsAssigned) {
46
- const subproofOrProofAssertion = this; ///
45
+ const subproofOrProofAssertion = this; ///
47
46
 
48
- context.addSubproofOrProofAssertion(subproofOrProofAssertion);
47
+ context.addSubproofOrProofAssertion(subproofOrProofAssertion);
49
48
 
50
- verifies = true;
51
- }
49
+ verifies = true;
52
50
  }
53
51
  } else {
54
52
  context.debug(`Unable to verify the '${hypothesisString}' hypothesis because it is nonsense.`);
@@ -37,7 +37,27 @@ export default define(class Judgement extends Element {
37
37
 
38
38
  getMetavariable() { return this.frame.getMetavariable(); }
39
39
 
40
- matchMetavariableName(metavariableName) { return this.frame.matchMetavariableName(metavariableName); }
40
+ compareMetavariableName(metavariableName) { return this.frame.compareMetavariableName(metavariableName); }
41
+
42
+ matchJudgementNode(judgementNode) {
43
+ const judgementNodeA = judgementNode; ///
44
+
45
+ judgementNode = this.getJudgementNode();
46
+
47
+ const judgementNodeB = judgementNode, ///
48
+ judgementNodeAAMatchesJudgementBNodeB = judgementNodeA.match(judgementNodeB),
49
+ judgementNodeMatches = judgementNodeAAMatchesJudgementBNodeB; ///
50
+
51
+ return judgementNodeMatches;
52
+ }
53
+
54
+ isValid(context) {
55
+ const judgementNode = this.getJudgementNode(),
56
+ judgementPresent = context.isJudgementPresentByJudgementNode(judgementNode),
57
+ valid = judgementPresent; ///
58
+
59
+ return valid;
60
+ }
41
61
 
42
62
  validate(assignments, stated, context) {
43
63
  let validates = false;
@@ -46,35 +66,41 @@ export default define(class Judgement extends Element {
46
66
 
47
67
  context.trace(`Validating the '${judgementString}' judgement...`);
48
68
 
49
- const frameValidates = this.frame.validate(assignments, stated, context);
69
+ const valid = this.isValid(context);
50
70
 
51
- if (frameValidates) {
52
- const assumptionValidates = this.assumption.validate(assignments, stated, context);
71
+ if (valid) {
72
+ validates = true;
53
73
 
54
- if (assumptionValidates) {
55
- let validatesWhenStated = false,
56
- validatesWhenDerived = false;
74
+ context.debug(`...the '${judgementString}' judgement is already valid.`);
75
+ } else {
76
+ const frameValidates = this.frame.validate(assignments, stated, context);
57
77
 
58
- if (stated) {
59
- validatesWhenStated = this.validateWhenStated(assignments, context);
60
- } else {
61
- validatesWhenDerived = this.validateWhenDerived(context);
62
- }
78
+ if (frameValidates) {
79
+ const assumptionValidates = this.assumption.validate(assignments, stated, context);
63
80
 
64
- if (validatesWhenStated || validatesWhenDerived) {
65
- validates = true;
81
+ if (assumptionValidates) {
82
+ let validatesWhenStated = false,
83
+ validatesWhenDerived = false;
84
+
85
+ if (stated) {
86
+ validatesWhenStated = this.validateWhenStated(assignments, context);
87
+ } else {
88
+ validatesWhenDerived = this.validateWhenDerived(context);
89
+ }
90
+
91
+ if (validatesWhenStated || validatesWhenDerived) {
92
+ validates = true;
93
+ }
66
94
  }
67
95
  }
68
- }
69
96
 
70
- if (validates) {
71
- if (stated) {
72
- this.assign(assignments, context);
73
- }
74
- }
97
+ if (validates) {
98
+ const judgement = this; ///
75
99
 
76
- if (validates) {
77
- context.debug(`...validated the '${judgementString}' judgement.`);
100
+ context.addJudgement(judgement)
101
+
102
+ context.debug(`...validated the '${judgementString}' judgement.`);
103
+ }
78
104
  }
79
105
 
80
106
  return validates;
@@ -120,13 +146,17 @@ export default define(class Judgement extends Element {
120
146
  return validatesWhenDerived;
121
147
  }
122
148
 
123
- assign(assignments, context) {
149
+ assign(assignments, stated, context) {
124
150
  if (assignments === null) {
125
151
  return;
126
152
  }
127
153
 
154
+ if (!stated) {
155
+ return;
156
+ }
157
+
128
158
  const judgement = this, ///
129
- judgementAssignment = judgementAssignmentFromJudgement(judgement),
159
+ judgementAssignment = judgementAssignmentFromJudgement(judgement, context),
130
160
  assignment = judgementAssignment; ///
131
161
 
132
162
  assignments.push(assignment);
@@ -48,7 +48,7 @@ export default define(class MetaType extends Element {
48
48
  static fromJSON(json, context) {
49
49
  const { name } = json,
50
50
  metaTypeName = name, ///
51
- metaType = findMetaTypeByMetaTypeName(metaTypeName);
51
+ metaType = context.findMetaTypeByMetaTypeName(metaTypeName);
52
52
 
53
53
  return metaType;
54
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
 
@@ -306,7 +319,7 @@ export default define(class Metavariable extends Element {
306
319
 
307
320
  if (generalContextFilePath === specificContextFilePath) {
308
321
  const metavariableName = this.getMetavariableName(), ///
309
- frameMetavariableComparesToMetvariable = frame.matchMetavariableName(metavariableName);
322
+ frameMetavariableComparesToMetvariable = frame.compareMetavariableName(metavariableName);
310
323
 
311
324
  if (frameMetavariableComparesToMetvariable) {
312
325
  frameMetavariableUnifies = true;
@@ -54,32 +54,18 @@ export default define(class Reference extends Element {
54
54
  return equalTo;
55
55
  }
56
56
 
57
- matchMetavariableName(metavariableName) {
58
- let metavariableNameMatches = false;
59
-
60
- const metavariableNameA = metavariableName ///
61
-
62
- metavariableName = this.getMetavariableName();
63
-
64
- const metavariableNameB = metavariableName; ///
65
-
66
- metavariableNameMatches = (metavariableNameA === metavariableNameB);
67
-
68
- return metavariableNameMatches;
69
- }
70
-
71
57
  isValid(context) {
72
- const assertionNode = this.getReferenceNode(),
73
- assertionPresent = context.isReferencePresentByReferenceNode(assertionNode),
74
- valid = assertionPresent; ///
58
+ const metavariableNode = this.getMetavariableNode(),
59
+ referencePresent = context.isReferencePresentByMetavariableNode(metavariableNode),
60
+ valid = referencePresent; ///
75
61
 
76
62
  return valid;
77
63
  }
78
64
 
79
- isEqualTo(assertion) {
80
- const assertionNode = assertion.getNode(),
81
- assertionNodeMatches = this.matchReferenceNode(assertionNode),
82
- equalTo = assertionNodeMatches; ///
65
+ isEqualTo(reference) {
66
+ const referenceNode = reference.getNode(),
67
+ referenceNodeMatches = this.matchReferenceNode(referenceNode),
68
+ equalTo = referenceNodeMatches; ///
83
69
 
84
70
  return equalTo;
85
71
  }
@@ -101,7 +87,7 @@ export default define(class Reference extends Element {
101
87
  }
102
88
 
103
89
  compareMetavariable(metavariable) {
104
- let metavaraibleComparseTo = false;
90
+ let comparesToMetavariable = false;
105
91
 
106
92
  let metavariableName;
107
93
 
@@ -114,15 +100,15 @@ export default define(class Reference extends Element {
114
100
  const metavariableNameB = metavariableName; ///
115
101
 
116
102
  if (metavariableNameA === metavariableNameB) {
117
- metavaraibleComparseTo = true;
103
+ comparesToMetavariable = true;
118
104
  }
119
105
 
120
- return metavaraibleComparseTo;
106
+ return comparesToMetavariable;
121
107
  }
122
108
 
123
109
  compareMetavariableName(metavariableName) { return this.metavariable.compareMetavariableName(metavariableName); }
124
110
 
125
- matchMetavariableNode(metavariableNode) { return this.metavariable.matchNode(metavariableNode); }
111
+ matchMetavariableNode(metavariableNode) { return this.metavariable.matchMetavariableNode(metavariableNode); }
126
112
 
127
113
  validate(context) {
128
114
  let validates = false;
@@ -168,7 +154,7 @@ export default define(class Reference extends Element {
168
154
  context.trace(`Validating the '${referenceString}' reference's '${metavariableString}' metavariable....'`);
169
155
 
170
156
  const metaTypeName = REFERENCE_META_TYPE_NAME,
171
- referenceMetaType = findMetaTypeByMetaTypeName(metaTypeName),
157
+ referenceMetaType = context.findMetaTypeByMetaTypeName(metaTypeName),
172
158
  metaType = referenceMetaType, ///
173
159
  metavariable = context.findMetavariable(this.metavariable);
174
160
 
@@ -132,10 +132,6 @@ export default define(class Rule extends Element {
132
132
  const proofVerifies = await this.verifyProof(context);
133
133
 
134
134
  if (proofVerifies) {
135
- const rule = this; ///
136
-
137
- context.addRule(rule);
138
-
139
135
  verifies = true;
140
136
  }
141
137
  }
@@ -144,6 +140,10 @@ export default define(class Rule extends Element {
144
140
  }, context);
145
141
 
146
142
  if (verifies) {
143
+ const rule = this;
144
+
145
+ context.addRule(rule);
146
+
147
147
  context.debug(`...verified the '${ruleString}' rule.`);
148
148
  }
149
149
 
@@ -184,15 +184,13 @@ export default define(class Rule extends Element {
184
184
  premiseVerifies = await premise.verify(assignments, context)
185
185
 
186
186
  if (premiseVerifies) {
187
- const assignmentsAssigned = assignAssignments(assignments, context);
187
+ assignAssignments(assignments, context);
188
188
 
189
- if (assignmentsAssigned) {
190
- const subproofOrProofAssertion = premise; ////
189
+ const subproofOrProofAssertion = premise; ////
191
190
 
192
- context.addSubproofOrProofAssertion(subproofOrProofAssertion);
191
+ context.addSubproofOrProofAssertion(subproofOrProofAssertion);
193
192
 
194
- return true;
195
- }
193
+ return true;
196
194
  }
197
195
  });
198
196
 
@@ -44,8 +44,8 @@ export default define(class Statement extends Element {
44
44
  return equalTo;
45
45
  }
46
46
 
47
- matchMetavariableName(metavariableName) {
48
- let metavariableNameMatches = false;
47
+ compareMetavariableName(metavariableName) {
48
+ let comparesToMetavariableName = false;
49
49
 
50
50
  const singular = this.isSingular();
51
51
 
@@ -56,10 +56,10 @@ export default define(class Statement extends Element {
56
56
 
57
57
  const metavariableNameB = metavariableName; ///
58
58
 
59
- metavariableNameMatches = (metavariableNameA === metavariableNameB);
59
+ comparesToMetavariableName = (metavariableNameA === metavariableNameB);
60
60
  }
61
61
 
62
- return metavariableNameMatches;
62
+ return comparesToMetavariableName;
63
63
  }
64
64
 
65
65
  isValid(context) {
@@ -90,7 +90,7 @@ export default define(class Statement extends Element {
90
90
  statementNodeTermNodes = statementNode.getTermNodes();
91
91
 
92
92
  termContained = statementNodeTermNodes.some((statementNodeTermNode) => { ///
93
- const statementNodeTermNodeMatches = term.matchNode(statementNodeTermNode);
93
+ const statementNodeTermNodeMatches = term.matchTermNode(statementNodeTermNode);
94
94
 
95
95
  if (statementNodeTermNodeMatches) {
96
96
  return true;
@@ -130,31 +130,6 @@ export default define(class Statement extends Element {
130
130
  return frameContained;
131
131
  }
132
132
 
133
- compareMetavariable(metavariable) {
134
- let metavaraibleComparseTo;
135
-
136
- const singular = this.isSingular();
137
-
138
- if (singular) {
139
- let metavariableName;
140
-
141
- const statementNode = this.getStatementNode(),
142
- singularMetavariableNode = statementNode.getSingularMetavariableNode();
143
-
144
- metavariableName = singularMetavariableNode.getMetavariableName();
145
-
146
- const metavariableNameA = metavariableName ///
147
-
148
- metavariableName = metavariable.getName();
149
-
150
- const metavariableNameB = metavariableName; ///
151
-
152
- metavaraibleComparseTo = (metavariableNameA === metavariableNameB);
153
- }
154
-
155
- return metavaraibleComparseTo;
156
- }
157
-
158
133
  compareParameter(parameter) {
159
134
  let comparesToParamter = false;
160
135
 
@@ -175,6 +150,28 @@ export default define(class Statement extends Element {
175
150
  return comparesToParamter;
176
151
  }
177
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
+
178
175
  validate(assignments, stated, context) {
179
176
  let validates;
180
177
 
@@ -42,13 +42,11 @@ export default define(class SubDerivation extends Element {
42
42
  subproofOrProofAssertionVarifies = subproofOrProofAssertion.verify(substitutions, assignments, context);
43
43
 
44
44
  if (subproofOrProofAssertionVarifies) {
45
- const assignmentsAssigned = assignAssignments(assignments, context);
45
+ assignAssignments(assignments, context);
46
46
 
47
- if (assignmentsAssigned) {
48
- context.addSubproofOrProofAssertion(subproofOrProofAssertion);
47
+ context.addSubproofOrProofAssertion(subproofOrProofAssertion);
49
48
 
50
- return true;
51
- }
49
+ return true;
52
50
  }
53
51
  });
54
52
 
@@ -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
 
@@ -47,7 +47,7 @@ export default define(class ReferenceSubstitution extends Substitution {
47
47
 
48
48
  getMetavariableName() { return this.targetReference.getMetavariableName(); }
49
49
 
50
- matchMetavariableName(metavariableName) { return this.targetReference.matchMetavariableName(metavariableName); }
50
+ compareMetavariableName(metavariableName) { return this.targetReference.compareMetavariableName(metavariableName); }
51
51
 
52
52
  isTrivial() {
53
53
  const targetReferenceEqualToReplacementReference = this.targetReference.isEqualTo(this.replacementReference),
@@ -68,7 +68,7 @@ export default define(class StatementSubstitution extends Substitution {
68
68
 
69
69
  getMetavariableName() { return this.targetStatement.getMetavariableName(); }
70
70
 
71
- matchMetavariableName(metavariableName) { return this.targetStatement.matchMetavariableName(metavariableName); }
71
+ compareMetavariableName(metavariableName) { return this.targetStatement.compareMetavariableName(metavariableName); }
72
72
 
73
73
  compareStatement(statement, context) {
74
74
  statement = stripBracketsFromStatement(statement, context); ///
@@ -48,6 +48,8 @@ export default define(class TermSubstitution extends Substitution {
48
48
 
49
49
  getVariableIdentifier() { return this.targetTerm.getVariableIdentifier(); }
50
50
 
51
+ compareVariableIdentifier(variableIdentifier) { return this.targetTerm.compareVariableIdentifier(variableIdentifier); }
52
+
51
53
  isTrivial() {
52
54
  const targetTermEqualToReplacementTerm = this.targetTerm.isEqualTo(this.replacementTerm),
53
55
  trivial = targetTermEqualToReplacementTerm; ///