occam-verify-cli 1.0.220 → 1.0.223

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 (47) hide show
  1. package/lib/context/local.js +5 -43
  2. package/lib/dom/assertion/property.js +4 -2
  3. package/lib/dom/assertion/type.js +4 -2
  4. package/lib/dom/axiom.js +9 -9
  5. package/lib/dom/equality.js +21 -6
  6. package/lib/dom/judgement.js +4 -2
  7. package/lib/dom/rule.js +13 -5
  8. package/lib/dom/statement.js +7 -7
  9. package/lib/dom/step.js +18 -21
  10. package/lib/dom/subproof.js +12 -15
  11. package/lib/dom/substitution/term.js +2 -16
  12. package/lib/dom/substitution.js +1 -8
  13. package/lib/dom/topLevelAssertion.js +18 -31
  14. package/lib/dom/topLevelMetaAssertion.js +13 -5
  15. package/lib/dom/variable.js +3 -3
  16. package/lib/equivalence.js +54 -33
  17. package/lib/equivalences.js +57 -101
  18. package/lib/mixins/step/unify.js +42 -24
  19. package/lib/unifier/equantional.js +170 -0
  20. package/lib/utilities/brackets.js +2 -2
  21. package/lib/utilities/subproof.js +2 -2
  22. package/lib/utilities/unification.js +1 -11
  23. package/package.json +1 -1
  24. package/src/context/local.js +5 -48
  25. package/src/dom/assertion/property.js +3 -1
  26. package/src/dom/assertion/type.js +3 -1
  27. package/src/dom/axiom.js +12 -10
  28. package/src/dom/equality.js +26 -9
  29. package/src/dom/judgement.js +3 -1
  30. package/src/dom/rule.js +20 -5
  31. package/src/dom/statement.js +5 -5
  32. package/src/dom/step.js +28 -34
  33. package/src/dom/subproof.js +15 -25
  34. package/src/dom/substitution/term.js +1 -19
  35. package/src/dom/substitution.js +0 -6
  36. package/src/dom/topLevelAssertion.js +20 -41
  37. package/src/dom/topLevelMetaAssertion.js +20 -5
  38. package/src/dom/variable.js +3 -2
  39. package/src/equivalence.js +69 -46
  40. package/src/equivalences.js +53 -115
  41. package/src/mixins/step/unify.js +54 -33
  42. package/src/unifier/equantional.js +90 -0
  43. package/src/utilities/brackets.js +1 -1
  44. package/src/utilities/subproof.js +1 -1
  45. package/src/utilities/unification.js +0 -14
  46. package/lib/unifier/equality.js +0 -155
  47. package/src/unifier/equality.js +0 -70
@@ -2,9 +2,7 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
- import Equivalence from "./equivalence";
6
-
7
- const { push, compress, separate } = arrayUtilities;
5
+ const { push, separate } = arrayUtilities;
8
6
 
9
7
  export default class Equivalences {
10
8
  constructor(array) {
@@ -27,51 +25,21 @@ export default class Equivalences {
27
25
  return types;
28
26
  }
29
27
 
30
- pushEquivalences(equivalences) {
31
- const array = equivalences.getArray();
32
-
33
- push(this.array, array);
34
- }
35
-
36
- forEachEquivalence(callback) { this.array.forEach(callback); }
37
-
38
- separateEquivalences(equivalencesA, equivalencesB, callback) {
39
- const arrayA = equivalencesA.getArray(),
40
- arrayB = equivalencesB.getArray();
41
-
42
- separate(this.array, arrayA, arrayB, callback);
43
- }
44
-
45
- addEquivalence(equivalence, context) {
46
- const equivalenceString = equivalence.asString();
47
-
48
- context.trace(`Added the '${equivalenceString}' equivalence.`);
49
-
28
+ addEquivalence(equivalence) {
50
29
  this.array.push(equivalence);
51
30
  }
52
31
 
53
- removeEquivalence(equivalence, context) {
54
- const index = this.array.indexOf(equivalence),
55
- start = index, ///
56
- deleteCount = 1,
57
- equivalenceString = equivalence.asString();
58
-
59
- context.trace(`Removed the '${equivalenceString}' equivalence.`);
32
+ addEquivalences(equivalences) {
33
+ const array = equivalences.getArray();
60
34
 
61
- this.array.splice(start, deleteCount);
35
+ push(this.array, array);
62
36
  }
63
37
 
64
- findEquivalenceByType(type) {
65
- const equivalence = this.array.find((equivalence) => {
66
- const equivalenceMatchesType = equivalence.matchType(type);
38
+ someEquivalence(callback) { return this.array.some(callback); }
67
39
 
68
- if (equivalenceMatchesType) {
69
- return true;
70
- }
71
- }) || null;
40
+ everyEquivalence(callback) { return this.array.every(callback); }
72
41
 
73
- return equivalence;
74
- }
42
+ forEachEquivalence(callback) { this.array.forEach(callback); }
75
43
 
76
44
  findEquivalenceByTerm(term) {
77
45
  const equivalence = this.array.find((equivalence) => {
@@ -97,6 +65,45 @@ export default class Equivalences {
97
65
  return equivalence;
98
66
  }
99
67
 
68
+ mergedWith(equivalences) {
69
+ let mergedEquivalences = this.clone(); ///
70
+
71
+ equivalences.forEachEquivalence((equivalence) => {
72
+ mergedEquivalences = mergedEquivalences.mergedWithEquivalence(equivalence);
73
+ });
74
+
75
+ return mergedEquivalences;
76
+ }
77
+
78
+ mergedWithEquivalence(equivalence) {
79
+ const equivalences = Equivalences.fromNothing();
80
+
81
+ let mergedEquivalence = equivalence; ///
82
+
83
+ this.forEachEquivalence((equivalence) => {
84
+ const mergedEquivalenceDisjointFromEquivalence = mergedEquivalence.isDisjointFrom(equivalence);
85
+
86
+ if (mergedEquivalenceDisjointFromEquivalence) {
87
+ equivalences.addEquivalence(equivalence);
88
+ } else {
89
+ mergedEquivalence = mergedEquivalence.mergedWith(equivalence);
90
+ }
91
+ });
92
+
93
+ equivalence = mergedEquivalence; ///
94
+
95
+ equivalences.addEquivalence(equivalence);
96
+
97
+ return equivalences;
98
+ }
99
+
100
+ separateEquivalences(equivalencesA, equivalencesB, callback) {
101
+ const equivalencesAArray = equivalencesA.getArray(),
102
+ equivalencesBArray = equivalencesB.getArray();
103
+
104
+ separate(this.array, equivalencesAArray, equivalencesBArray, callback);
105
+ }
106
+
100
107
  separateInitiallyGroundedEquivalences(remainingEquivalences, initiallyGroundedEquivalences, context) {
101
108
  this.separateEquivalences(remainingEquivalences, initiallyGroundedEquivalences, (equivalence) => {
102
109
  const equivalenceInitiallyGrounded = equivalence.isInitiallyGrounded(context);
@@ -159,48 +166,18 @@ export default class Equivalences {
159
166
 
160
167
  equivalences.separateImplicitlyGroundedEquivalences(remainingEquivalences, implicitlyGroundedEquivalences, definedVariables, context);
161
168
 
162
- groundedEquivalences.pushEquivalences(implicitlyGroundedEquivalences);
169
+ groundedEquivalences.addEquivalences(implicitlyGroundedEquivalences);
163
170
 
164
171
  implicitlyGroundedEquivalencesLength = implicitlyGroundedEquivalences.getLength(); ///
165
172
  }
166
173
  }
167
174
  }
168
175
 
169
- unifySubstitutions(substitutions) {
170
- const substitutionsUnified = substitutions.everySubstitution((substitution) => {
171
- const substitutionUnified = this.unifySubstitution(substitution);
172
-
173
- if (substitutionUnified) {
174
- return true;
175
- }
176
- });
177
-
178
- return substitutionsUnified;
179
- }
180
-
181
- unifySubstitution(substitution) {
182
- const substitutionUnified = this.array.some((equivalence) => {
183
- const substitutionUnifiedWithEquivalence = substitution.unifyWithEquivalence(equivalence);
184
-
185
- if (substitutionUnifiedWithEquivalence) {
186
- return true;
187
- }
188
- });
189
-
190
- return substitutionUnified;
191
- }
192
-
193
- mergedWith(equivalences) {
194
- const equivalencesA = this, ///
195
- equivalencesB = equivalences;
196
-
197
- equivalences = mergeEquivalences(equivalencesA, equivalencesB); ///
198
-
199
- return equivalences;
200
- }
201
-
202
- static fromArray(array) {
203
- const equivalences = new Equivalences(array);
176
+ clone() {
177
+ const array = [
178
+ ...this.array
179
+ ],
180
+ equivalences = new Equivalences(array);
204
181
 
205
182
  return equivalences;
206
183
  }
@@ -213,45 +190,6 @@ export default class Equivalences {
213
190
  }
214
191
  }
215
192
 
216
- function mergeEquivalences(equivalencesA, equivalencesB) {
217
- const typesA = equivalencesA.getTypes(),
218
- typesB = equivalencesB.getTypes(),
219
- types = [
220
- ...typesA,
221
- ...typesB
222
- ];
223
-
224
- compress(types, (typeA, typeB) => {
225
- if (typeA === typeB) {
226
- return true;
227
- }
228
- });
229
-
230
- const array = types.map((type) => {
231
- let equivalence;
232
-
233
- const equivalenceA = equivalencesA.findEquivalenceByType(type), ///
234
- equivalenceB = equivalencesB.findEquivalenceByType(type); ///
235
-
236
- if ((equivalenceA !== null) && (equivalenceB !== null)) {
237
- const leftEquivalence = equivalenceA, ///
238
- rightEquivalence = equivalenceB; ///
239
-
240
- equivalence = Equivalence.merge(leftEquivalence, rightEquivalence);
241
- } else if (equivalenceA !== null) {
242
- equivalence = equivalenceA; ///
243
- } else if (equivalenceB !== null) {
244
- equivalence = equivalenceB; ///
245
- }
246
-
247
- return equivalence;
248
- });
249
-
250
- const equivalences = Equivalences.fromArray(array);
251
-
252
- return equivalences;
253
- }
254
-
255
193
  function definedVariablesFromGroundedTerms(groundedTerms, definedVariables, context) {
256
194
  const terms = groundedTerms, ///
257
195
  variables = definedVariables; ///
@@ -28,7 +28,9 @@ function unifyWithRule(statement, reference, substitutions, context) {
28
28
  const stepsOrSubproofs = context.getStepsOrSubproofs(),
29
29
  statementAndStepsUnified = rule.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, context);
30
30
 
31
- unifiedWithRule = statementAndStepsUnified; ///
31
+ if (statementAndStepsUnified) {
32
+ unifiedWithRule = true;
33
+ }
32
34
 
33
35
  if (unifiedWithRule) {
34
36
  context.debug(`...unified the '${statementString}' statement with the '${ruleString}' rule.`);
@@ -110,7 +112,9 @@ function unifyAsSatisfiesAssertion(statement, reference, substitutions, context)
110
112
  if (axiomLemmaTheoremConjectureUnified) {
111
113
  const substitutionsMatch = satisfiesAssertion.matchSubstitutions(substitutions, context);
112
114
 
113
- unifiedAsSatisfiesAssertion = substitutionsMatch; ///
115
+ if (substitutionsMatch) {
116
+ unifiedAsSatisfiesAssertion = true;
117
+ }
114
118
  }
115
119
  }
116
120
  }
@@ -166,8 +170,8 @@ function unifyWithAxiomLemmaTheoremOrConjecture(statement, reference, substituti
166
170
  return unifiedWithAxiomLemmaTheoremOrConjecture;
167
171
  }
168
172
 
169
- function unifyAsEquality(statement, reference, substitutions, context) {
170
- let unifiedAsEquality = false;
173
+ function unifyAEquality(statement, reference, substitutions, context) {
174
+ let unifiedAEquality = false;
171
175
 
172
176
  if (reference === null) {
173
177
  const equality = equalityFromStatement(statement, context);
@@ -177,13 +181,19 @@ function unifyAsEquality(statement, reference, substitutions, context) {
177
181
 
178
182
  context.trace(`Unifying the '${statementString}' statement as an equality...`);
179
183
 
180
- unifiedAsEquality = true;
184
+ const equalityEqual = equality.isEqual(context);
185
+
186
+ if (equalityEqual) {
187
+ unifiedAEquality = true;
188
+ }
181
189
 
182
- context.debug(`...unified the '${statementString}' statement as an equality.`);
190
+ if (unifiedAEquality) {
191
+ context.debug(`...unified the '${statementString}' statement as an equality.`);
192
+ }
183
193
  }
184
194
  }
185
195
 
186
- return unifiedAsEquality;
196
+ return unifiedAEquality;
187
197
  }
188
198
 
189
199
  function unifyAsJudgement(statement, reference, substitutions, context) {
@@ -199,7 +209,9 @@ function unifyAsJudgement(statement, reference, substitutions, context) {
199
209
 
200
210
  unifiedAsJudgement = true;
201
211
 
202
- context.debug(`...unified the '${statementString}' statement as a judgement.`);
212
+ if (unifiedAsJudgement) {
213
+ context.debug(`...unified the '${statementString}' statement as a judgement.`);
214
+ }
203
215
  }
204
216
  }
205
217
 
@@ -241,7 +253,7 @@ function unifyAsPropertyAssertion(statement, reference, substitutions, context)
241
253
  equivalence = context.findEquivalenceByTerm(term);
242
254
 
243
255
  if (equivalence !== null) {
244
- unifiedAsPropertyAssertion = equivalence.someOtherTerm(term, (term) => { ///
256
+ const propertyAssertionMatches = equivalence.someOtherTerm(term, (term) => { ///
245
257
  const propertyRelation = propertyAssertion.getPropertyRelation(),
246
258
  propertyAssertionMatches = context.matchTermAndPropertyRelation(term, propertyRelation);
247
259
 
@@ -249,6 +261,10 @@ function unifyAsPropertyAssertion(statement, reference, substitutions, context)
249
261
  return true;
250
262
  }
251
263
  });
264
+
265
+ if (propertyAssertionMatches) {
266
+ unifiedAsPropertyAssertion = true;
267
+ }
252
268
  }
253
269
 
254
270
  if (unifiedAsPropertyAssertion) {
@@ -260,21 +276,8 @@ function unifyAsPropertyAssertion(statement, reference, substitutions, context)
260
276
  return unifiedAsPropertyAssertion;
261
277
  }
262
278
 
263
- function unifyWithStepsOrSubproofs(statement, reference, substitutions, context) {
264
- let unifiedWithStepOrSubproofs = false;
265
-
266
- if (reference === null) {
267
- const stepsOrSubproofs = context.getStepsOrSubproofs(),
268
- statementUnifiedWithSteps = statement.unifyWithStepsOrSubproofs(stepsOrSubproofs, context);
269
-
270
- unifiedWithStepOrSubproofs = statementUnifiedWithSteps; ///
271
- }
272
-
273
- return unifiedWithStepOrSubproofs;
274
- }
275
-
276
279
  function unifyWithSatisfiesAssertion(statement, reference, substitutions, context) {
277
- let unifiedWithSatisfiesAssertion;
280
+ let unifiedWithSatisfiesAssertion = false;
278
281
 
279
282
  const stepsOrSubproofs = context.getStepsOrSubproofs(),
280
283
  satisfiesAssertions = stepsOrSubproofs.reduce((satisfiesAssertions, stepOrSubproof) => {
@@ -293,30 +296,48 @@ function unifyWithSatisfiesAssertion(statement, reference, substitutions, contex
293
296
  }
294
297
 
295
298
  return satisfiesAssertions;
296
- }, []);
299
+ }, []),
300
+ statementUnified = backwardsSome(satisfiesAssertions, (satisfiesAssertion) => {
301
+ const statementUnified = satisfiesAssertion.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, context);
297
302
 
298
- unifiedWithSatisfiesAssertion = backwardsSome(satisfiesAssertions, (satisfiesAssertion) => {
299
- const statementUnified = satisfiesAssertion.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, context);
303
+ if (statementUnified) {
304
+ return true;
305
+ }
306
+ });
300
307
 
301
- if (statementUnified) {
302
- return true;
303
- }
304
- });
308
+ if (statementUnified) {
309
+ unifiedWithSatisfiesAssertion = true;
310
+ }
305
311
 
306
312
  return unifiedWithSatisfiesAssertion;
307
313
  }
308
314
 
315
+ function equateWithStepsOrSubproofs(statement, reference, substitutions, context) {
316
+ let unifiedWithStepOrSubproofs = false;
317
+
318
+ if (reference === null) {
319
+ const stepsOrSubproofs = context.getStepsOrSubproofs(),
320
+ statementUnifiedWithSteps = statement.equateWithStepsOrSubproofs(stepsOrSubproofs, context);
321
+
322
+ if (statementUnifiedWithSteps) {
323
+ unifiedWithStepOrSubproofs = true;
324
+ }
325
+ }
326
+
327
+ return unifiedWithStepOrSubproofs;
328
+ }
329
+
309
330
  const unifyMixins = [
310
331
  unifyWithRule,
311
332
  unifyWithReference,
312
333
  unifyAsSatisfiesAssertion,
313
334
  unifyWithAxiomLemmaTheoremOrConjecture,
314
- unifyAsEquality,
335
+ unifyAEquality,
315
336
  unifyAsJudgement,
316
337
  unifyAsTypeAssertion,
317
338
  unifyAsPropertyAssertion,
318
- unifyWithStepsOrSubproofs,
319
- unifyWithSatisfiesAssertion
339
+ unifyWithSatisfiesAssertion,
340
+ equateWithStepsOrSubproofs
320
341
  ];
321
342
 
322
343
  export default unifyMixins;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ import Unifier from "../unifier";
4
+
5
+ import { nodeQuery } from "../utilities/query";
6
+
7
+ const termNodeQuery = nodeQuery("/term");
8
+
9
+ class EquationalUnifier extends Unifier {
10
+ equateTerms(leftTermNode, rightTermNode, context) {
11
+ let termsEquated;
12
+
13
+ const generalNonTerminalNode = leftTermNode, ///
14
+ specificNonTerminalNode = rightTermNode, ///
15
+ nonTerminalNodeUnified = this.unifyNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, context);
16
+
17
+ termsEquated = nonTerminalNodeUnified; ///
18
+
19
+ return termsEquated;
20
+ };
21
+
22
+ equateStatements(statementANode, statementBNode, context) {
23
+ let statementsEquated;
24
+
25
+ const generalNonTerminalNode = statementANode, ///
26
+ specificNonTerminalNode = statementBNode, ///
27
+ nonTerminalNodeUnified = this.unifyNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, context);
28
+
29
+ statementsEquated = nonTerminalNodeUnified; ///
30
+
31
+ return statementsEquated;
32
+ };
33
+
34
+ static maps = [
35
+ {
36
+ generalNodeQuery: termNodeQuery, ///
37
+ specificNodeQuery: termNodeQuery, ///
38
+ unify: (leftTermNode, rightTermNode, context) => {
39
+ let termUnified = false;
40
+
41
+ if (!termUnified) {
42
+ const depth = Infinity,
43
+ leftTermNodeMatchesRightTermNode = leftTermNode.match(rightTermNode, depth);
44
+
45
+ if (leftTermNodeMatchesRightTermNode) {
46
+ termUnified = true;
47
+ }
48
+ }
49
+
50
+ if (!termUnified) {
51
+ const equivalences = context.getEquivalences(),
52
+ termNodes = [
53
+ leftTermNode,
54
+ rightTermNode
55
+ ],
56
+ equivalence = equivalences.findEquivalenceByTermNodes(termNodes);
57
+
58
+ if (equivalence !== null) {
59
+ termUnified = true;
60
+ }
61
+ }
62
+
63
+ if (!termUnified) {
64
+ const depth = 1,
65
+ leftTermNodeMatchesRightTermNode = leftTermNode.match(rightTermNode, depth);
66
+
67
+ if (leftTermNodeMatchesRightTermNode) {
68
+ const leftNonTerminalNode = leftTermNode, ///
69
+ rightNonTerminalNode = rightTermNode, ///
70
+ leftNonTerminalNodeChildNodes = leftNonTerminalNode.getChildNodes(),
71
+ rightNonTerminalNodeChildNodes = rightNonTerminalNode.getChildNodes(),
72
+ leftChildNodes = leftNonTerminalNodeChildNodes, ///
73
+ rightChildNodes = rightNonTerminalNodeChildNodes, ///
74
+ childNodesUnified = equationalUnifier.unifyChildNodes(leftChildNodes, rightChildNodes, context);
75
+
76
+ if (childNodesUnified) {
77
+ termUnified = true;
78
+ }
79
+ }
80
+ }
81
+
82
+ return termUnified;
83
+ }
84
+ }
85
+ ];
86
+ }
87
+
88
+ const equationalUnifier = new EquationalUnifier();
89
+
90
+ export default equationalUnifier;
@@ -15,7 +15,7 @@ export function stripBracketsFromTerm(term, context) {
15
15
  const { Term } = dom,
16
16
  termNode = bracketedTermChildNode; ///
17
17
 
18
- term = Term.fromStatementNode(termNode, context);
18
+ term = Term.fromTermNode(termNode, context);
19
19
  }
20
20
 
21
21
  return term;
@@ -3,7 +3,7 @@
3
3
  export function subproofStringFromSubproofNode(subproofNode, fileContext) {
4
4
  const suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext),
5
5
  lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext),
6
- subproofString = `[${suppositionStatementsOrNonsenseString}]...${lastStatementOrNonsenseString}`;
6
+ subproofString = `[${suppositionStatementsOrNonsenseString}] ... ${lastStatementOrNonsenseString}`;
7
7
 
8
8
  return subproofString;
9
9
  }
@@ -1,26 +1,12 @@
1
1
  "use string";
2
2
 
3
3
  import LocalContext from "../context/local";
4
- import equalityUnifier from "../unifier/equality";
5
4
  import metaLevelUnifier from "../unifier/metaLevel";
6
5
  import metavariableUnifier from "../unifier/metavariable";
7
6
  import intrinsicLevelUnifier from "../unifier/intrinsicLevel";
8
7
  import termWithConstructorUnifier from "../unifier/termWithConstructor";
9
8
  import statementWithCombinatorUnifier from "../unifier/statementWithCombinator";
10
9
 
11
- export function unifyEquality(equality, context) {
12
- let equalityUnified;
13
-
14
- const leftTerm = equality.getLeftTerm(),
15
- rightTerm = equality.getRightTerm(),
16
- leftTermNode = leftTerm.getNode(),
17
- rightTermNode = rightTerm.getNode();
18
-
19
- equalityUnified = equalityUnifier.unify(leftTermNode, rightTermNode, context);
20
-
21
- return equalityUnified;
22
- }
23
-
24
10
  export function unifyStatement(generalStatement, specificStatement, substitutions, generalContext, specificContext) {
25
11
  let statementUnified;
26
12
 
@@ -1,155 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _unifier = /*#__PURE__*/ _interop_require_default(require("../unifier"));
12
- var _query = require("../utilities/query");
13
- function _assert_this_initialized(self) {
14
- if (self === void 0) {
15
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
- }
17
- return self;
18
- }
19
- function _call_super(_this, derived, args) {
20
- derived = _get_prototype_of(derived);
21
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
22
- }
23
- function _class_call_check(instance, Constructor) {
24
- if (!(instance instanceof Constructor)) {
25
- throw new TypeError("Cannot call a class as a function");
26
- }
27
- }
28
- function _defineProperties(target, props) {
29
- for(var i = 0; i < props.length; i++){
30
- var descriptor = props[i];
31
- descriptor.enumerable = descriptor.enumerable || false;
32
- descriptor.configurable = true;
33
- if ("value" in descriptor) descriptor.writable = true;
34
- Object.defineProperty(target, descriptor.key, descriptor);
35
- }
36
- }
37
- function _create_class(Constructor, protoProps, staticProps) {
38
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
39
- if (staticProps) _defineProperties(Constructor, staticProps);
40
- return Constructor;
41
- }
42
- function _define_property(obj, key, value) {
43
- if (key in obj) {
44
- Object.defineProperty(obj, key, {
45
- value: value,
46
- enumerable: true,
47
- configurable: true,
48
- writable: true
49
- });
50
- } else {
51
- obj[key] = value;
52
- }
53
- return obj;
54
- }
55
- function _get_prototype_of(o) {
56
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
57
- return o.__proto__ || Object.getPrototypeOf(o);
58
- };
59
- return _get_prototype_of(o);
60
- }
61
- function _inherits(subClass, superClass) {
62
- if (typeof superClass !== "function" && superClass !== null) {
63
- throw new TypeError("Super expression must either be null or a function");
64
- }
65
- subClass.prototype = Object.create(superClass && superClass.prototype, {
66
- constructor: {
67
- value: subClass,
68
- writable: true,
69
- configurable: true
70
- }
71
- });
72
- if (superClass) _set_prototype_of(subClass, superClass);
73
- }
74
- function _interop_require_default(obj) {
75
- return obj && obj.__esModule ? obj : {
76
- default: obj
77
- };
78
- }
79
- function _possible_constructor_return(self, call) {
80
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
81
- return call;
82
- }
83
- return _assert_this_initialized(self);
84
- }
85
- function _set_prototype_of(o, p) {
86
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
87
- o.__proto__ = p;
88
- return o;
89
- };
90
- return _set_prototype_of(o, p);
91
- }
92
- function _type_of(obj) {
93
- "@swc/helpers - typeof";
94
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
95
- }
96
- function _is_native_reflect_construct() {
97
- try {
98
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
99
- } catch (_) {}
100
- return (_is_native_reflect_construct = function() {
101
- return !!result;
102
- })();
103
- }
104
- var termNodeQuery = (0, _query.nodeQuery)("/term");
105
- var EqualityUnifier = /*#__PURE__*/ function(Unifier) {
106
- _inherits(EqualityUnifier, Unifier);
107
- function EqualityUnifier() {
108
- _class_call_check(this, EqualityUnifier);
109
- return _call_super(this, EqualityUnifier, arguments);
110
- }
111
- _create_class(EqualityUnifier, [
112
- {
113
- key: "unify",
114
- value: function unify(leftTermNode, rightTermNode, context) {
115
- var equalityUnified;
116
- var leftNonTerminalNode = leftTermNode, rightNonTerminalNode = rightTermNode, nonTerminalNodeUnified = this.unifyNonTerminalNode(leftNonTerminalNode, rightNonTerminalNode, context);
117
- equalityUnified = nonTerminalNodeUnified; ///
118
- return equalityUnified;
119
- }
120
- }
121
- ]);
122
- return EqualityUnifier;
123
- }(_unifier.default);
124
- _define_property(EqualityUnifier, "maps", [
125
- {
126
- generalNodeQuery: termNodeQuery,
127
- specificNodeQuery: termNodeQuery,
128
- unify: function(leftTermNode, rightTermNode, context) {
129
- var termUnifiedWithTerm;
130
- var leftTermNodeMatchesRightTermNode = leftTermNode.match(rightTermNode);
131
- if (leftTermNodeMatchesRightTermNode) {
132
- termUnifiedWithTerm = true;
133
- } else {
134
- var equivalences = context.getEquivalences(), termNodes = [
135
- leftTermNode,
136
- rightTermNode
137
- ], equivalence = equivalences.findEquivalenceByTermNodes(termNodes);
138
- termUnifiedWithTerm = equivalence !== null;
139
- }
140
- if (!termUnifiedWithTerm) {
141
- var childNodesUnified = unifyChildNodes(leftTermNode, rightTermNode, context);
142
- termUnifiedWithTerm = childNodesUnified; ///
143
- }
144
- return termUnifiedWithTerm;
145
- }
146
- }
147
- ]);
148
- var equalityUnifier = new EqualityUnifier();
149
- var _default = equalityUnifier;
150
- function unifyChildNodes(leftTermNode, rightTermNode, context) {
151
- var leftNonTerminalNode = leftTermNode, rightNonTerminalNode = rightTermNode, leftNonTerminalNodeChildNodes = leftNonTerminalNode.getChildNodes(), rightNonTerminalNodeChildNodes = rightNonTerminalNode.getChildNodes(), leftChildNodes = leftNonTerminalNodeChildNodes, rightChildNodes = rightNonTerminalNodeChildNodes, childNodesUnified = equalityUnifier.unifyChildNodes(leftChildNodes, rightChildNodes, context);
152
- return childNodesUnified;
153
- }
154
-
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL2VxdWFsaXR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVW5pZmllciBmcm9tIFwiLi4vdW5pZmllclwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKTtcblxuY2xhc3MgRXF1YWxpdHlVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCkge1xuICAgIGxldCBlcXVhbGl0eVVuaWZpZWQ7XG5cbiAgICBjb25zdCBsZWZ0Tm9uVGVybWluYWxOb2RlID0gbGVmdFRlcm1Ob2RlLCAvLy9cbiAgICAgICAgICByaWdodE5vblRlcm1pbmFsTm9kZSA9IHJpZ2h0VGVybU5vZGUsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKGxlZnROb25UZXJtaW5hbE5vZGUsIHJpZ2h0Tm9uVGVybWluYWxOb2RlLCBjb250ZXh0KTtcblxuICAgIGVxdWFsaXR5VW5pZmllZCA9IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7IC8vL1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5VW5pZmllZDtcbiAgfTtcblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LCAgLy8vXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSwgLy8vXG4gICAgICB1bmlmeTogKGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgdGVybVVuaWZpZWRXaXRoVGVybTtcblxuICAgICAgICBjb25zdCBsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSA9IGxlZnRUZXJtTm9kZS5tYXRjaChyaWdodFRlcm1Ob2RlKTtcblxuICAgICAgICBpZiAobGVmdFRlcm1Ob2RlTWF0Y2hlc1JpZ2h0VGVybU5vZGUpIHtcbiAgICAgICAgICB0ZXJtVW5pZmllZFdpdGhUZXJtID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBlcXVpdmFsZW5jZXMgPSBjb250ZXh0LmdldEVxdWl2YWxlbmNlcygpLFxuICAgICAgICAgICAgICAgIHRlcm1Ob2RlcyA9IFtcbiAgICAgICAgICAgICAgICAgIGxlZnRUZXJtTm9kZSxcbiAgICAgICAgICAgICAgICAgIHJpZ2h0VGVybU5vZGVcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VzLmZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzKHRlcm1Ob2Rlcyk7XG5cbiAgICAgICAgICB0ZXJtVW5pZmllZFdpdGhUZXJtID0gKGVxdWl2YWxlbmNlICE9PSBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGVybVVuaWZpZWRXaXRoVGVybSkge1xuICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZXNVbmlmaWVkID0gdW5pZnlDaGlsZE5vZGVzKGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICB0ZXJtVW5pZmllZFdpdGhUZXJtID0gY2hpbGROb2Rlc1VuaWZpZWQ7IC8vL1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRlcm1VbmlmaWVkV2l0aFRlcm07XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCBlcXVhbGl0eVVuaWZpZXIgPSBuZXcgRXF1YWxpdHlVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGVxdWFsaXR5VW5pZmllcjtcblxuZnVuY3Rpb24gdW5pZnlDaGlsZE5vZGVzKGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBsZWZ0Tm9uVGVybWluYWxOb2RlID0gbGVmdFRlcm1Ob2RlLCAvLy9cbiAgICAgICAgcmlnaHROb25UZXJtaW5hbE5vZGUgPSByaWdodFRlcm1Ob2RlLCAvLy9cbiAgICAgICAgbGVmdE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBsZWZ0Tm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgcmlnaHROb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gcmlnaHROb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBsZWZ0Q2hpbGROb2RlcyA9IGxlZnROb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgcmlnaHRDaGlsZE5vZGVzID0gcmlnaHROb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgY2hpbGROb2Rlc1VuaWZpZWQgPSBlcXVhbGl0eVVuaWZpZXIudW5pZnlDaGlsZE5vZGVzKGxlZnRDaGlsZE5vZGVzLCByaWdodENoaWxkTm9kZXMsIGNvbnRleHQpO1xuXG4gIHJldHVybiBjaGlsZE5vZGVzVW5pZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiRXF1YWxpdHlVbmlmaWVyIiwidW5pZnkiLCJsZWZ0VGVybU5vZGUiLCJyaWdodFRlcm1Ob2RlIiwiY29udGV4dCIsImVxdWFsaXR5VW5pZmllZCIsImxlZnROb25UZXJtaW5hbE5vZGUiLCJyaWdodE5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVVuaWZpZWQiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSIsIlVuaWZpZXIiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwidGVybVVuaWZpZWRXaXRoVGVybSIsImxlZnRUZXJtTm9kZU1hdGNoZXNSaWdodFRlcm1Ob2RlIiwibWF0Y2giLCJlcXVpdmFsZW5jZXMiLCJnZXRFcXVpdmFsZW5jZXMiLCJ0ZXJtTm9kZXMiLCJlcXVpdmFsZW5jZSIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzIiwiY2hpbGROb2Rlc1VuaWZpZWQiLCJ1bmlmeUNoaWxkTm9kZXMiLCJlcXVhbGl0eVVuaWZpZXIiLCJsZWZ0Tm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJyaWdodE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJsZWZ0Q2hpbGROb2RlcyIsInJpZ2h0Q2hpbGROb2RlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBeURBOzs7ZUFBQTs7OzhEQXZEb0I7cUJBRU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1BLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUVoQyxJQUFBLEFBQU1DLGdDQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxZQUFZLEVBQUVDLGFBQWEsRUFBRUMsT0FBTztnQkFDeEMsSUFBSUM7Z0JBRUosSUFBTUMsc0JBQXNCSixjQUN0QkssdUJBQXVCSixlQUN2QksseUJBQXlCLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNILHFCQUFxQkMsc0JBQXNCSDtnQkFFcEdDLGtCQUFrQkcsd0JBQXdCLEdBQUc7Z0JBRTdDLE9BQU9IO1lBQ1Q7OztXQVhJTDtFQUF3QlUsZ0JBQU87QUFhbkMsaUJBYklWLGlCQWFHVyxRQUFPO0lBQ1o7UUFDRUMsa0JBQWtCZDtRQUNsQmUsbUJBQW1CZjtRQUNuQkcsT0FBTyxTQUFDQyxjQUFjQyxlQUFlQztZQUNuQyxJQUFJVTtZQUVKLElBQU1DLG1DQUFtQ2IsYUFBYWMsS0FBSyxDQUFDYjtZQUU1RCxJQUFJWSxrQ0FBa0M7Z0JBQ3BDRCxzQkFBc0I7WUFDeEIsT0FBTztnQkFDTCxJQUFNRyxlQUFlYixRQUFRYyxlQUFlLElBQ3RDQyxZQUFZO29CQUNWakI7b0JBQ0FDO2lCQUNELEVBQ0RpQixjQUFjSCxhQUFhSSwwQkFBMEIsQ0FBQ0Y7Z0JBRTVETCxzQkFBdUJNLGdCQUFnQjtZQUN6QztZQUVBLElBQUksQ0FBQ04scUJBQXFCO2dCQUN4QixJQUFNUSxvQkFBb0JDLGdCQUFnQnJCLGNBQWNDLGVBQWVDO2dCQUV2RVUsc0JBQXNCUSxtQkFBbUIsR0FBRztZQUM5QztZQUVBLE9BQU9SO1FBQ1Q7SUFDRjtDQUNEO0FBR0gsSUFBTVUsa0JBQWtCLElBQUl4QjtJQUU1QixXQUFld0I7QUFFZixTQUFTRCxnQkFBZ0JyQixZQUFZLEVBQUVDLGFBQWEsRUFBRUMsT0FBTztJQUMzRCxJQUFNRSxzQkFBc0JKLGNBQ3RCSyx1QkFBdUJKLGVBQ3ZCc0IsZ0NBQWdDbkIsb0JBQW9Cb0IsYUFBYSxJQUNqRUMsaUNBQWlDcEIscUJBQXFCbUIsYUFBYSxJQUNuRUUsaUJBQWlCSCwrQkFDakJJLGtCQUFrQkYsZ0NBQ2xCTCxvQkFBb0JFLGdCQUFnQkQsZUFBZSxDQUFDSyxnQkFBZ0JDLGlCQUFpQnpCO0lBRTNGLE9BQU9rQjtBQUNUIn0=