recursive-set 2.0.1 → 2.2.1

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.
package/README.md CHANGED
@@ -11,13 +11,14 @@ Supports arbitrary nesting, detects cycles (Foundation axiom), and includes all
11
11
 
12
12
  ## Features
13
13
 
14
- **Mutable, recursive sets** with arbitrary depth
15
- 🔍 **Extensional equality** (two sets are equal iff their elements are equal)
16
- 🛡️ **Cycle detection** (Foundation Axiom): prevents self-containing sets
17
- 🧮 **Classic set operations**: union, intersection, difference, symmetric difference
18
- 📐 **Power set and Cartesian product**
19
- 🎯 **TypeScript generics**: works with strings, numbers, objects, states, even sets of sets
20
- 🤖 **Ready for FSM**, mathematical, symbolic and practical use cases
14
+ **Mutable, recursive sets** with arbitrary depth
15
+ **Extensional equality** (two sets are equal iff their elements are equal)
16
+ **Cycle detection** (Foundation Axiom): prevents self-containing sets
17
+ **Copy-on-Write**: O(1) cloning via structural sharing
18
+ **Classic set operations**: union, intersection, difference, symmetric difference
19
+ **Power set and Cartesian product**
20
+ **TypeScript generics**: works with strings, numbers, objects, states, even sets of sets
21
+ **Ready for FSM**, mathematical, symbolic and practical use cases
21
22
 
22
23
  ---
23
24
 
@@ -29,26 +30,22 @@ This library enforces strict **ZFC Set Theory** semantics, differing from native
29
30
  - Example: `new RecursiveSet(1).equals(new RecursiveSet(1))` is `true`.
30
31
  - Native `Set` would treat them as distinct objects.
31
32
  - **Foundation Axiom:** The library performs cycle detection to prevent sets from containing themselves (recursively).
33
+ - **NaN Handling:** In strict ZFC semantics, `NaN` is not a valid element. Adding `NaN` will explicitly throw an error.
32
34
  - **Performance:** Internally powered by **Functional Red-Black Trees** (via `functional-red-black-tree`).
33
35
  - Operations like insertion, deletion, and lookup are **O(log n)**.
34
- - This allows for stable ordering and efficient deep comparison of nested sets.
36
+ - **Cloning is O(1)** (Copy-on-Write), making it ideal for backtracking algorithms.
35
37
 
36
38
  ---
37
39
 
38
40
  ## Installation
39
41
 
40
42
  ```
41
-
42
43
  npm install recursive-set
43
-
44
44
  ```
45
45
 
46
46
  ---
47
-
48
47
  ## Quickstart
49
-
50
48
  ```
51
-
52
49
  import { RecursiveSet } from "recursive-set";
53
50
 
54
51
  const q0 = "q0", q1 = "q1";
@@ -58,7 +55,6 @@ const classes = new RecursiveSet(eqClass);
58
55
  classes.add(new RecursiveSet("q2", "q3")); // {{q0, q1}, {q2, q3}}
59
56
 
60
57
  console.log(classes.toString()); // {{q0, q1}, {q2, q3}}
61
-
62
58
  ```
63
59
 
64
60
  ---
@@ -68,18 +64,19 @@ console.log(classes.toString()); // {{q0, q1}, {q2, q3}}
68
64
  ### Constructor
69
65
 
70
66
  ```
71
-
72
67
  new RecursiveSet<T>(...elements: Array<T | RecursiveSet<T>>)
73
-
74
68
  ```
75
69
 
76
70
  ### Methods
77
71
 
78
72
  **Mutation:**
79
- - `add(element: T | RecursiveSet<T>): this` – Add element (chainable)
73
+ - `add(element: T | RecursiveSet<T>): this` – Add element (chainable). **Throws if element is NaN.**
80
74
  - `remove(element: T | RecursiveSet<T>): this` – Remove element (chainable)
81
75
  - `clear(): this` – Remove all elements (chainable)
82
76
 
77
+ **Snapshot:**
78
+ - `clone(): RecursiveSet<T>` – Creates a shallow copy in **O(1)** time (Copy-on-Write).
79
+
83
80
  **Set Operations:**
84
81
  - `union(other: RecursiveSet<T>): RecursiveSet<T>` – A ∪ B
85
82
  - `intersection(other: RecursiveSet<T>): RecursiveSet<T>` – A ∩ B
@@ -108,63 +105,55 @@ new RecursiveSet<T>(...elements: Array<T | RecursiveSet<T>>)
108
105
  ### Basic Usage
109
106
 
110
107
  ```
111
-
112
108
  const s1 = new RecursiveSet(1, 2, 3);
113
109
  const s2 = new RecursiveSet(2, 3, 4);
114
110
 
115
111
  console.log(s1.union(s2)); // {1, 2, 3, 4}
116
112
  console.log(s1.intersection(s2)); // {2, 3}
117
113
  console.log(s1.difference(s2)); // {1}
118
-
119
114
  ```
120
115
 
121
- ### FSM Equivalence Classes
116
+ ### Backtracking with O(1) Clone
122
117
 
123
118
  ```
119
+ const state = new RecursiveSet("init");
120
+ // ... perform some operations ...
124
121
 
125
- const eq1 = new RecursiveSet("q0", "q1");
126
- const eq2 = new RecursiveSet("q2", "q3");
127
- const eqClasses = new RecursiveSet(eq1, eq2);
128
-
129
- console.log(eqClasses.toString()); // {{q0, q1}, {q2, q3}}
122
+ // Create a checkpoint (O(1))
123
+ const checkpoint = state.clone();
130
124
 
125
+ state.add("newState");
126
+ // If this path fails, simply revert:
127
+ // state = checkpoint; (conceptually)
131
128
  ```
132
129
 
133
130
  ### Power Set
134
131
 
135
132
  ```
136
-
137
133
  const set = new RecursiveSet(1, 2);
138
134
  const power = set.powerset();
139
135
 
140
136
  console.log(power.toString()); // {∅, {1}, {2}, {1, 2}}
141
-
142
137
  ```
143
138
 
144
- ### Foundation Axiom (Cycle Detection)
139
+ ### Strictness: NaN and Cycles
145
140
 
146
141
  ```
147
-
148
142
  const s = new RecursiveSet(1, 2);
143
+
144
+ // Cycle Detection
149
145
  try {
150
- s.add(s); // ❌ Throws error
146
+ s.add(s);
151
147
  } catch (e) {
152
148
  console.error(e.message); // "Foundation axiom violated..."
153
149
  }
154
150
 
155
- ```
156
-
157
- ### Method Chaining
158
-
159
- ```
160
-
161
- const set = new RecursiveSet(1, 2)
162
- .add(3)
163
- .add(4)
164
- .remove(1);
165
-
166
- console.log(set); // {2, 3, 4}
167
-
151
+ // NaN Rejection
152
+ try {
153
+ s.add(NaN);
154
+ } catch (e) {
155
+ console.error(e.message); // "NaN is not supported..."
156
+ }
168
157
  ```
169
158
 
170
159
  ---
@@ -182,25 +171,18 @@ console.log(set); // {2, 3, 4}
182
171
  ## Development
183
172
 
184
173
  ```
185
-
186
-
187
174
  # Clone repository
188
-
189
- git clone https://github.com/<USERNAME>/recursive-set.git
175
+ git clone https://github.com/cstrerath/recursive-set.git
190
176
  cd recursive-set
191
177
 
192
178
  # Install dependencies
193
-
194
179
  npm install
195
180
 
196
181
  # Build
197
-
198
182
  npm run build
199
183
 
200
184
  # Run tests
201
-
202
185
  npx tsx test.ts
203
-
204
186
  ```
205
187
 
206
188
  ---
@@ -225,4 +207,5 @@ See [LICENSE](LICENSE) for details.
225
207
  Inspired by:
226
208
  - Cantor's set theory
227
209
  - Zermelo-Fraenkel set theory with the Axiom of Choice (ZFC)
228
- - Practical needs in FSM algorithms and formal language theory
210
+ - Practical needs in FSM algorithms and formal language theory
211
+ - Powered by [functional-red-black-tree](https://github.com/mikolalysenko/functional-red-black-tree) for O(log n) persistence
package/dist/cjs/index.js CHANGED
@@ -10,92 +10,135 @@ exports.fromIterable = fromIterable;
10
10
  const functional_red_black_tree_1 = __importDefault(require("functional-red-black-tree"));
11
11
  /**
12
12
  * @module recursive-set
13
- * A mutable recursive set implementation enforcing Cantor's ZFC axioms
14
- * Powered by Red-Black Trees for O(log n) operations
13
+ * A mutable recursive set implementation enforcing Cantor's ZFC axioms.
14
+ * Powered by functional Red-Black Trees for O(log n) operations and O(1) cloning.
15
15
  */
16
- /**
17
- * Comparator function for ZFC sets
18
- * Returns -1 if a < b, 1 if a > b, 0 if a == b (structural equality)
19
- */
20
- function compare(a, b) {
21
- // 1. Identity optimization
22
- if (a === b)
23
- return 0;
24
- // 2. Type separation: Sets are "greater" than primitives
25
- const isSetA = a instanceof RecursiveSet;
26
- const isSetB = b instanceof RecursiveSet;
27
- if (isSetA !== isSetB)
28
- return isSetA ? 1 : -1;
29
- // 3. Primitives
30
- if (!isSetA) {
31
- if (typeof a !== typeof b) {
32
- return typeof a > typeof b ? 1 : -1;
33
- }
34
- return a < b ? -1 : 1;
35
- }
36
- // 4. Recursive Sets
37
- const sizeA = a.size;
38
- const sizeB = b.size;
39
- if (sizeA !== sizeB)
40
- return sizeA < sizeB ? -1 : 1;
41
- // Lexicographical comparison
42
- const itA = a[Symbol.iterator]();
43
- const itB = b[Symbol.iterator]();
44
- let nextA = itA.next();
45
- let nextB = itB.next();
46
- while (!nextA.done) {
47
- const cmp = compare(nextA.value, nextB.value);
48
- if (cmp !== 0)
49
- return cmp;
50
- nextA = itA.next();
51
- nextB = itB.next();
52
- }
53
- return 0;
54
- }
55
16
  class RecursiveSet {
56
- // Red-Black Tree (immutable structure, we replace on mutation)
57
- _tree; // Type from functional-red-black-tree
17
+ // Underlying persistent data structure
18
+ _tree;
19
+ // Internal XOR-based hash for O(1) inequality checks
20
+ _hash = 0;
21
+ /**
22
+ * Static comparator for Red-Black Tree ordering.
23
+ * Handles primitives, RecursiveSets, and deep structural equality.
24
+ */
25
+ static compare(a, b) {
26
+ // 1. Identity optimization
27
+ if (a === b)
28
+ return 0;
29
+ // 2. Type separation
30
+ const isSetA = a instanceof RecursiveSet;
31
+ const isSetB = b instanceof RecursiveSet;
32
+ if (isSetA !== isSetB)
33
+ return isSetA ? 1 : -1;
34
+ // 3. Primitives
35
+ if (!isSetA) {
36
+ if (typeof a !== typeof b)
37
+ return typeof a > typeof b ? 1 : -1;
38
+ if (a < b)
39
+ return -1;
40
+ if (a > b)
41
+ return 1;
42
+ return 0;
43
+ }
44
+ // 4. Recursive Sets
45
+ const sizeA = a.size;
46
+ const sizeB = b.size;
47
+ if (sizeA !== sizeB)
48
+ return sizeA < sizeB ? -1 : 1;
49
+ // Hash mismatch implies inequality (O(1))
50
+ if (a._hash !== b._hash)
51
+ return a._hash < b._hash ? -1 : 1;
52
+ // Deep structural comparison using internal iterators (low-level optimization)
53
+ let iterA = a._tree.begin;
54
+ let iterB = b._tree.begin;
55
+ while (iterA.valid && iterB.valid) {
56
+ const cmp = RecursiveSet.compare(iterA.key, iterB.key);
57
+ if (cmp !== 0)
58
+ return cmp;
59
+ iterA.next();
60
+ iterB.next();
61
+ }
62
+ return 0;
63
+ }
58
64
  constructor(...elements) {
59
- this._tree = (0, functional_red_black_tree_1.default)(compare);
65
+ this._tree = (0, functional_red_black_tree_1.default)(RecursiveSet.compare);
60
66
  for (const el of elements) {
61
67
  this.add(el);
62
68
  }
63
69
  }
70
+ // === Copy-on-Write Support ===
71
+ /**
72
+ * Creates a shallow copy of the set in O(1) time.
73
+ * Leveraging the persistent nature of the underlying tree.
74
+ */
75
+ clone() {
76
+ const clone = new RecursiveSet();
77
+ clone._tree = this._tree;
78
+ clone._hash = this._hash;
79
+ return clone;
80
+ }
64
81
  // === Mutable Operations ===
65
82
  add(element) {
83
+ if (typeof element === "number" && Number.isNaN(element)) {
84
+ throw new Error("NaN is not supported as an element of RecursiveSet");
85
+ }
86
+ // Idempotency check prevents redundant hash updates and tree operations
87
+ if (this.has(element)) {
88
+ return this;
89
+ }
90
+ // Enforce Foundation Axiom (prevent cycles)
66
91
  if (element instanceof RecursiveSet) {
67
- if (!this.has(element)) {
68
- if (this._wouldCreateCycle(element)) {
69
- throw new Error("Foundation axiom violated: membership cycle detected");
70
- }
92
+ if (this._wouldCreateCycle(element)) {
93
+ throw new Error("Foundation axiom violated: membership cycle detected");
71
94
  }
72
95
  }
73
- // Immutable insert - returns new tree
74
- // We replace our internal tree (mutable API, immutable data structure)
96
+ // Update Hash (XOR)
97
+ this._hash = (this._hash ^ this._computeHash(element)) | 0;
98
+ // Insert into persistent tree
75
99
  this._tree = this._tree.insert(element, true);
76
100
  return this;
77
101
  }
78
102
  remove(element) {
103
+ if (!this.has(element)) {
104
+ return this;
105
+ }
106
+ // Update Hash (XOR removes the element from hash)
107
+ this._hash = (this._hash ^ this._computeHash(element)) | 0;
79
108
  this._tree = this._tree.remove(element);
80
109
  return this;
81
110
  }
82
111
  clear() {
83
- this._tree = (0, functional_red_black_tree_1.default)(compare);
112
+ this._tree = (0, functional_red_black_tree_1.default)(RecursiveSet.compare);
113
+ this._hash = 0;
84
114
  return this;
85
115
  }
116
+ _computeHash(element) {
117
+ if (element instanceof RecursiveSet)
118
+ return element._hash;
119
+ if (typeof element === 'number')
120
+ return element | 0;
121
+ if (typeof element === 'string') {
122
+ let h = 0;
123
+ for (let i = 0; i < element.length; i++)
124
+ h = Math.imul(31, h) + element.charCodeAt(i) | 0;
125
+ return h;
126
+ }
127
+ return 0;
128
+ }
86
129
  // === Immutable Operations ===
87
130
  union(other) {
88
- const result = new RecursiveSet();
89
- for (const el of this)
90
- result.add(el);
131
+ const result = this.clone(); // Optimization: Start with clone of this
91
132
  for (const el of other)
92
133
  result.add(el);
93
134
  return result;
94
135
  }
95
136
  intersection(other) {
96
137
  const result = new RecursiveSet();
97
- for (const el of this) {
98
- if (other.has(el)) {
138
+ // Iterate over smaller set for performance optimization
139
+ const [smaller, larger] = this.size < other.size ? [this, other] : [other, this];
140
+ for (const el of smaller) {
141
+ if (larger.has(el)) {
99
142
  result.add(el);
100
143
  }
101
144
  }
@@ -111,13 +154,16 @@ class RecursiveSet {
111
154
  return result;
112
155
  }
113
156
  symmetricDifference(other) {
114
- return this.union(other).difference(this.intersection(other));
157
+ // (A \ B) U (B \ A)
158
+ return this.difference(other).union(other.difference(this));
115
159
  }
116
160
  powerset() {
161
+ const n = this.size;
162
+ if (n > 30)
163
+ throw new Error("Powerset size exceeds 32-bit integer limit");
117
164
  const elements = [];
118
165
  this._tree.forEach((key) => { elements.push(key); return undefined; });
119
166
  const subsets = [];
120
- const n = elements.length;
121
167
  for (let i = 0; i < (1 << n); i++) {
122
168
  const subset = new RecursiveSet();
123
169
  for (let j = 0; j < n; j++) {
@@ -135,6 +181,7 @@ class RecursiveSet {
135
181
  for (const y of other) {
136
182
  const valX = x;
137
183
  const valY = y;
184
+ // Kuratowski pair: (x, y) = {{x}, {x, y}}
138
185
  const pair = new RecursiveSet(new RecursiveSet(valX), new RecursiveSet(valX, valY));
139
186
  pairs.push(pair);
140
187
  }
@@ -146,6 +193,8 @@ class RecursiveSet {
146
193
  return this._tree.get(element) !== undefined;
147
194
  }
148
195
  isSubset(other) {
196
+ if (this.size > other.size)
197
+ return false;
149
198
  for (const el of this) {
150
199
  if (!other.has(el))
151
200
  return false;
@@ -162,7 +211,7 @@ class RecursiveSet {
162
211
  return this.size === 0;
163
212
  }
164
213
  equals(other) {
165
- return compare(this, other) === 0;
214
+ return RecursiveSet.compare(this, other) === 0;
166
215
  }
167
216
  // === Internals ===
168
217
  _wouldCreateCycle(element) {
@@ -175,11 +224,13 @@ class RecursiveSet {
175
224
  if (visited.has(current))
176
225
  continue;
177
226
  visited.add(current);
178
- for (const child of current) {
179
- if (child instanceof RecursiveSet) {
180
- stack.push(child);
227
+ // Optimization: Direct internal tree traversal avoids iterator overhead
228
+ current._tree.forEach((key) => {
229
+ if (key instanceof RecursiveSet) {
230
+ stack.push(key);
181
231
  }
182
- }
232
+ return undefined;
233
+ });
183
234
  }
184
235
  return false;
185
236
  }
@@ -192,10 +243,13 @@ class RecursiveSet {
192
243
  this._tree.forEach((key) => { result.add(key); return undefined; });
193
244
  return result;
194
245
  }
246
+ // Lazy Iterator (Critical for performance)
195
247
  *[Symbol.iterator]() {
196
- const keys = [];
197
- this._tree.forEach((key) => { keys.push(key); return undefined; });
198
- yield* keys;
248
+ let iter = this._tree.begin;
249
+ while (iter.valid) {
250
+ yield iter.key;
251
+ iter.next();
252
+ }
199
253
  }
200
254
  toString() {
201
255
  if (this.isEmpty())
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,26 @@
1
+ /**
2
+ * @module recursive-set
3
+ * A mutable recursive set implementation enforcing Cantor's ZFC axioms.
4
+ * Powered by functional Red-Black Trees for O(log n) operations and O(1) cloning.
5
+ */
1
6
  export declare class RecursiveSet<T = any> {
2
7
  private _tree;
8
+ private _hash;
9
+ /**
10
+ * Static comparator for Red-Black Tree ordering.
11
+ * Handles primitives, RecursiveSets, and deep structural equality.
12
+ */
13
+ static compare(a: any, b: any): number;
3
14
  constructor(...elements: Array<T | RecursiveSet<T>>);
15
+ /**
16
+ * Creates a shallow copy of the set in O(1) time.
17
+ * Leveraging the persistent nature of the underlying tree.
18
+ */
19
+ clone(): RecursiveSet<T>;
4
20
  add(element: T | RecursiveSet<T>): this;
5
21
  remove(element: T | RecursiveSet<T>): this;
6
22
  clear(): this;
23
+ private _computeHash;
7
24
  union(other: RecursiveSet<T>): RecursiveSet<T>;
8
25
  intersection(other: RecursiveSet<T>): RecursiveSet<T>;
9
26
  difference(other: RecursiveSet<T>): RecursiveSet<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAmDA,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAE7B,OAAO,CAAC,KAAK,CAAM;gBAEP,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAUnD,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAevC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAK1C,KAAK,IAAI,IAAI;IAOb,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAO9C,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAUrD,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAUnD,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAI5D,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAmBzC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAsB9E,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI1C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAOzC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI3C,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI/C,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAMvC,OAAO,CAAC,iBAAiB;IAsBzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAMhC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAMnD,QAAQ,IAAI,MAAM;CAiBrB;AAGD,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAExD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAEtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAE7B,OAAO,CAAC,KAAK,CAAM;IAEnB,OAAO,CAAC,KAAK,CAAa;IAE1B;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM;gBAwC1B,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAUnD;;;OAGG;IACH,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC;IASxB,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAyBvC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAY1C,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,YAAY;IAcpB,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAM9C,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAYrD,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAUnD,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAK5D,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAqBzC,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAsB9E,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI1C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAQzC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI3C,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAI/C,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAMvC,OAAO,CAAC,iBAAiB;IAwBzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAOhC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAQnD,QAAQ,IAAI,MAAM;CAiBrB;AAID,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAExD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAEtE"}
package/dist/esm/index.js CHANGED
@@ -1,92 +1,135 @@
1
1
  import createTree from 'functional-red-black-tree';
2
2
  /**
3
3
  * @module recursive-set
4
- * A mutable recursive set implementation enforcing Cantor's ZFC axioms
5
- * Powered by Red-Black Trees for O(log n) operations
4
+ * A mutable recursive set implementation enforcing Cantor's ZFC axioms.
5
+ * Powered by functional Red-Black Trees for O(log n) operations and O(1) cloning.
6
6
  */
7
- /**
8
- * Comparator function for ZFC sets
9
- * Returns -1 if a < b, 1 if a > b, 0 if a == b (structural equality)
10
- */
11
- function compare(a, b) {
12
- // 1. Identity optimization
13
- if (a === b)
14
- return 0;
15
- // 2. Type separation: Sets are "greater" than primitives
16
- const isSetA = a instanceof RecursiveSet;
17
- const isSetB = b instanceof RecursiveSet;
18
- if (isSetA !== isSetB)
19
- return isSetA ? 1 : -1;
20
- // 3. Primitives
21
- if (!isSetA) {
22
- if (typeof a !== typeof b) {
23
- return typeof a > typeof b ? 1 : -1;
24
- }
25
- return a < b ? -1 : 1;
26
- }
27
- // 4. Recursive Sets
28
- const sizeA = a.size;
29
- const sizeB = b.size;
30
- if (sizeA !== sizeB)
31
- return sizeA < sizeB ? -1 : 1;
32
- // Lexicographical comparison
33
- const itA = a[Symbol.iterator]();
34
- const itB = b[Symbol.iterator]();
35
- let nextA = itA.next();
36
- let nextB = itB.next();
37
- while (!nextA.done) {
38
- const cmp = compare(nextA.value, nextB.value);
39
- if (cmp !== 0)
40
- return cmp;
41
- nextA = itA.next();
42
- nextB = itB.next();
43
- }
44
- return 0;
45
- }
46
7
  export class RecursiveSet {
47
- // Red-Black Tree (immutable structure, we replace on mutation)
48
- _tree; // Type from functional-red-black-tree
8
+ // Underlying persistent data structure
9
+ _tree;
10
+ // Internal XOR-based hash for O(1) inequality checks
11
+ _hash = 0;
12
+ /**
13
+ * Static comparator for Red-Black Tree ordering.
14
+ * Handles primitives, RecursiveSets, and deep structural equality.
15
+ */
16
+ static compare(a, b) {
17
+ // 1. Identity optimization
18
+ if (a === b)
19
+ return 0;
20
+ // 2. Type separation
21
+ const isSetA = a instanceof RecursiveSet;
22
+ const isSetB = b instanceof RecursiveSet;
23
+ if (isSetA !== isSetB)
24
+ return isSetA ? 1 : -1;
25
+ // 3. Primitives
26
+ if (!isSetA) {
27
+ if (typeof a !== typeof b)
28
+ return typeof a > typeof b ? 1 : -1;
29
+ if (a < b)
30
+ return -1;
31
+ if (a > b)
32
+ return 1;
33
+ return 0;
34
+ }
35
+ // 4. Recursive Sets
36
+ const sizeA = a.size;
37
+ const sizeB = b.size;
38
+ if (sizeA !== sizeB)
39
+ return sizeA < sizeB ? -1 : 1;
40
+ // Hash mismatch implies inequality (O(1))
41
+ if (a._hash !== b._hash)
42
+ return a._hash < b._hash ? -1 : 1;
43
+ // Deep structural comparison using internal iterators (low-level optimization)
44
+ let iterA = a._tree.begin;
45
+ let iterB = b._tree.begin;
46
+ while (iterA.valid && iterB.valid) {
47
+ const cmp = RecursiveSet.compare(iterA.key, iterB.key);
48
+ if (cmp !== 0)
49
+ return cmp;
50
+ iterA.next();
51
+ iterB.next();
52
+ }
53
+ return 0;
54
+ }
49
55
  constructor(...elements) {
50
- this._tree = createTree(compare);
56
+ this._tree = createTree(RecursiveSet.compare);
51
57
  for (const el of elements) {
52
58
  this.add(el);
53
59
  }
54
60
  }
61
+ // === Copy-on-Write Support ===
62
+ /**
63
+ * Creates a shallow copy of the set in O(1) time.
64
+ * Leveraging the persistent nature of the underlying tree.
65
+ */
66
+ clone() {
67
+ const clone = new RecursiveSet();
68
+ clone._tree = this._tree;
69
+ clone._hash = this._hash;
70
+ return clone;
71
+ }
55
72
  // === Mutable Operations ===
56
73
  add(element) {
74
+ if (typeof element === "number" && Number.isNaN(element)) {
75
+ throw new Error("NaN is not supported as an element of RecursiveSet");
76
+ }
77
+ // Idempotency check prevents redundant hash updates and tree operations
78
+ if (this.has(element)) {
79
+ return this;
80
+ }
81
+ // Enforce Foundation Axiom (prevent cycles)
57
82
  if (element instanceof RecursiveSet) {
58
- if (!this.has(element)) {
59
- if (this._wouldCreateCycle(element)) {
60
- throw new Error("Foundation axiom violated: membership cycle detected");
61
- }
83
+ if (this._wouldCreateCycle(element)) {
84
+ throw new Error("Foundation axiom violated: membership cycle detected");
62
85
  }
63
86
  }
64
- // Immutable insert - returns new tree
65
- // We replace our internal tree (mutable API, immutable data structure)
87
+ // Update Hash (XOR)
88
+ this._hash = (this._hash ^ this._computeHash(element)) | 0;
89
+ // Insert into persistent tree
66
90
  this._tree = this._tree.insert(element, true);
67
91
  return this;
68
92
  }
69
93
  remove(element) {
94
+ if (!this.has(element)) {
95
+ return this;
96
+ }
97
+ // Update Hash (XOR removes the element from hash)
98
+ this._hash = (this._hash ^ this._computeHash(element)) | 0;
70
99
  this._tree = this._tree.remove(element);
71
100
  return this;
72
101
  }
73
102
  clear() {
74
- this._tree = createTree(compare);
103
+ this._tree = createTree(RecursiveSet.compare);
104
+ this._hash = 0;
75
105
  return this;
76
106
  }
107
+ _computeHash(element) {
108
+ if (element instanceof RecursiveSet)
109
+ return element._hash;
110
+ if (typeof element === 'number')
111
+ return element | 0;
112
+ if (typeof element === 'string') {
113
+ let h = 0;
114
+ for (let i = 0; i < element.length; i++)
115
+ h = Math.imul(31, h) + element.charCodeAt(i) | 0;
116
+ return h;
117
+ }
118
+ return 0;
119
+ }
77
120
  // === Immutable Operations ===
78
121
  union(other) {
79
- const result = new RecursiveSet();
80
- for (const el of this)
81
- result.add(el);
122
+ const result = this.clone(); // Optimization: Start with clone of this
82
123
  for (const el of other)
83
124
  result.add(el);
84
125
  return result;
85
126
  }
86
127
  intersection(other) {
87
128
  const result = new RecursiveSet();
88
- for (const el of this) {
89
- if (other.has(el)) {
129
+ // Iterate over smaller set for performance optimization
130
+ const [smaller, larger] = this.size < other.size ? [this, other] : [other, this];
131
+ for (const el of smaller) {
132
+ if (larger.has(el)) {
90
133
  result.add(el);
91
134
  }
92
135
  }
@@ -102,13 +145,16 @@ export class RecursiveSet {
102
145
  return result;
103
146
  }
104
147
  symmetricDifference(other) {
105
- return this.union(other).difference(this.intersection(other));
148
+ // (A \ B) U (B \ A)
149
+ return this.difference(other).union(other.difference(this));
106
150
  }
107
151
  powerset() {
152
+ const n = this.size;
153
+ if (n > 30)
154
+ throw new Error("Powerset size exceeds 32-bit integer limit");
108
155
  const elements = [];
109
156
  this._tree.forEach((key) => { elements.push(key); return undefined; });
110
157
  const subsets = [];
111
- const n = elements.length;
112
158
  for (let i = 0; i < (1 << n); i++) {
113
159
  const subset = new RecursiveSet();
114
160
  for (let j = 0; j < n; j++) {
@@ -126,6 +172,7 @@ export class RecursiveSet {
126
172
  for (const y of other) {
127
173
  const valX = x;
128
174
  const valY = y;
175
+ // Kuratowski pair: (x, y) = {{x}, {x, y}}
129
176
  const pair = new RecursiveSet(new RecursiveSet(valX), new RecursiveSet(valX, valY));
130
177
  pairs.push(pair);
131
178
  }
@@ -137,6 +184,8 @@ export class RecursiveSet {
137
184
  return this._tree.get(element) !== undefined;
138
185
  }
139
186
  isSubset(other) {
187
+ if (this.size > other.size)
188
+ return false;
140
189
  for (const el of this) {
141
190
  if (!other.has(el))
142
191
  return false;
@@ -153,7 +202,7 @@ export class RecursiveSet {
153
202
  return this.size === 0;
154
203
  }
155
204
  equals(other) {
156
- return compare(this, other) === 0;
205
+ return RecursiveSet.compare(this, other) === 0;
157
206
  }
158
207
  // === Internals ===
159
208
  _wouldCreateCycle(element) {
@@ -166,11 +215,13 @@ export class RecursiveSet {
166
215
  if (visited.has(current))
167
216
  continue;
168
217
  visited.add(current);
169
- for (const child of current) {
170
- if (child instanceof RecursiveSet) {
171
- stack.push(child);
218
+ // Optimization: Direct internal tree traversal avoids iterator overhead
219
+ current._tree.forEach((key) => {
220
+ if (key instanceof RecursiveSet) {
221
+ stack.push(key);
172
222
  }
173
- }
223
+ return undefined;
224
+ });
174
225
  }
175
226
  return false;
176
227
  }
@@ -183,10 +234,13 @@ export class RecursiveSet {
183
234
  this._tree.forEach((key) => { result.add(key); return undefined; });
184
235
  return result;
185
236
  }
237
+ // Lazy Iterator (Critical for performance)
186
238
  *[Symbol.iterator]() {
187
- const keys = [];
188
- this._tree.forEach((key) => { keys.push(key); return undefined; });
189
- yield* keys;
239
+ let iter = this._tree.begin;
240
+ while (iter.valid) {
241
+ yield iter.key;
242
+ iter.next();
243
+ }
190
244
  }
191
245
  toString() {
192
246
  if (this.isEmpty())
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "recursive-set",
3
- "version": "2.0.1",
3
+ "version": "2.2.1",
4
4
  "description": "Mutable recursive sets with ZFC axioms for TypeScript",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/esm/index.d.ts",