@aleph-ai/tinyaleph 1.0.0

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +278 -0
  3. package/backends/cryptographic/index.js +196 -0
  4. package/backends/index.js +15 -0
  5. package/backends/interface.js +89 -0
  6. package/backends/scientific/index.js +272 -0
  7. package/backends/semantic/index.js +527 -0
  8. package/backends/semantic/surface.js +393 -0
  9. package/backends/semantic/two-layer.js +375 -0
  10. package/core/fano.js +127 -0
  11. package/core/hilbert.js +564 -0
  12. package/core/hypercomplex.js +141 -0
  13. package/core/index.js +133 -0
  14. package/core/llm.js +132 -0
  15. package/core/prime.js +184 -0
  16. package/core/resonance.js +695 -0
  17. package/core/rformer-tf.js +1086 -0
  18. package/core/rformer.js +806 -0
  19. package/core/sieve.js +350 -0
  20. package/data.json +8163 -0
  21. package/docs/EXAMPLES_PLAN.md +293 -0
  22. package/docs/README.md +159 -0
  23. package/docs/design/ALEPH_CHAT_ARCHITECTURE.md +499 -0
  24. package/docs/guide/01-quickstart.md +298 -0
  25. package/docs/guide/02-semantic-computing.md +409 -0
  26. package/docs/guide/03-cryptographic.md +420 -0
  27. package/docs/guide/04-scientific.md +494 -0
  28. package/docs/guide/05-llm-integration.md +568 -0
  29. package/docs/guide/06-advanced.md +996 -0
  30. package/docs/guide/README.md +188 -0
  31. package/docs/reference/01-core.md +695 -0
  32. package/docs/reference/02-physics.md +601 -0
  33. package/docs/reference/03-backends.md +892 -0
  34. package/docs/reference/04-engine.md +632 -0
  35. package/docs/reference/README.md +252 -0
  36. package/docs/theory/01-prime-semantics.md +327 -0
  37. package/docs/theory/02-hypercomplex-algebra.md +421 -0
  38. package/docs/theory/03-phase-synchronization.md +364 -0
  39. package/docs/theory/04-entropy-reasoning.md +348 -0
  40. package/docs/theory/05-non-commutativity.md +402 -0
  41. package/docs/theory/06-two-layer-meaning.md +414 -0
  42. package/docs/theory/07-resonant-field-interface.md +419 -0
  43. package/docs/theory/08-semantic-sieve.md +520 -0
  44. package/docs/theory/09-temporal-emergence.md +298 -0
  45. package/docs/theory/10-quaternionic-memory.md +415 -0
  46. package/docs/theory/README.md +162 -0
  47. package/engine/aleph.js +418 -0
  48. package/engine/index.js +7 -0
  49. package/index.js +23 -0
  50. package/modular.js +254 -0
  51. package/package.json +99 -0
  52. package/physics/collapse.js +95 -0
  53. package/physics/entropy.js +88 -0
  54. package/physics/index.js +65 -0
  55. package/physics/kuramoto.js +91 -0
  56. package/physics/lyapunov.js +80 -0
  57. package/physics/oscillator.js +95 -0
  58. package/types/index.d.ts +575 -0
@@ -0,0 +1,494 @@
1
+ # Scientific Applications
2
+
3
+ This guide covers using Aleph for quantum-inspired simulation, wave mechanics, and computational physics.
4
+
5
+ ## Overview
6
+
7
+ Aleph's scientific backend provides **quantum-inspired computation** through hypercomplex wave mechanics. The 16-dimensional sedenion space enables simulation of:
8
+
9
+ - Quantum superposition states
10
+ - Wave interference and collapse
11
+ - Entanglement-like correlations
12
+ - Measurement operators
13
+
14
+ ---
15
+
16
+ ## Creating a Scientific Engine
17
+
18
+ ```javascript
19
+ const { createEngine, ScientificBackend } = require('./modular');
20
+
21
+ // Load configuration
22
+ const config = require('./data.json');
23
+
24
+ // Create engine
25
+ const engine = createEngine('scientific', config);
26
+
27
+ // Or create backend directly
28
+ const backend = new ScientificBackend(config);
29
+ ```
30
+
31
+ ---
32
+
33
+ ## Quantum States
34
+
35
+ ### Creating States
36
+
37
+ ```javascript
38
+ const backend = new ScientificBackend(config);
39
+
40
+ // Create basis states
41
+ const psi0 = backend.createState([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
42
+ const psi1 = backend.createState([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
43
+
44
+ console.log('|ψ₀⟩ norm:', psi0.norm()); // 1.0
45
+ console.log('|ψ₁⟩ norm:', psi1.norm()); // 1.0
46
+
47
+ // Create superposition
48
+ const superposition = psi0.add(psi1).normalize();
49
+ console.log('Superposition norm:', superposition.norm()); // 1.0
50
+ ```
51
+
52
+ ### State Properties
53
+
54
+ ```javascript
55
+ const state = backend.createRandomState();
56
+
57
+ // Key properties
58
+ console.log('Norm:', state.norm());
59
+ console.log('Entropy:', state.entropy());
60
+ console.log('Dimension:', state.dimension);
61
+
62
+ // Conjugate and inverse
63
+ const conj = state.conjugate();
64
+ const inv = state.inverse();
65
+
66
+ console.log('Self * Inverse:', state.multiply(inv).norm()); // ~1.0
67
+ ```
68
+
69
+ ### Superposition
70
+
71
+ ```javascript
72
+ const backend = new ScientificBackend(config);
73
+
74
+ // Create weighted superposition
75
+ function superpose(state1, weight1, state2, weight2) {
76
+ return state1.scale(weight1).add(state2.scale(weight2)).normalize();
77
+ }
78
+
79
+ const a = backend.createState([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
80
+ const b = backend.createState([0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
81
+
82
+ // Equal superposition
83
+ const equal = superpose(a, 0.5, b, 0.5);
84
+
85
+ // Biased superposition
86
+ const biased = superpose(a, 0.8, b, 0.2);
87
+
88
+ console.log('Equal entropy:', equal.entropy());
89
+ console.log('Biased entropy:', biased.entropy());
90
+ // Biased has lower entropy
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Wave Mechanics
96
+
97
+ ### Interference Patterns
98
+
99
+ ```javascript
100
+ const backend = new ScientificBackend(config);
101
+
102
+ // Create two wave sources
103
+ const wave1 = backend.createState([1, 0.5, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
104
+ const wave2 = backend.createState([1, -0.5, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
105
+
106
+ // Constructive interference (add)
107
+ const constructive = wave1.add(wave2);
108
+ console.log('Constructive amplitude:', constructive.norm());
109
+
110
+ // Destructive interference (subtract)
111
+ const destructive = wave1.add(wave2.scale(-1));
112
+ console.log('Destructive amplitude:', destructive.norm());
113
+ ```
114
+
115
+ ### Evolution
116
+
117
+ ```javascript
118
+ // Time evolution with unitary operator
119
+ function evolve(state, operator, dt) {
120
+ // U(dt) ≈ I + i*H*dt for small dt
121
+ const evolved = state.multiply(operator.scale(dt));
122
+ return evolved.normalize();
123
+ }
124
+
125
+ const backend = new ScientificBackend(config);
126
+
127
+ const initial = backend.createRandomState();
128
+ const hamiltonian = backend.createRandomState(); // Simplified
129
+
130
+ let state = initial;
131
+ const trajectory = [state.entropy()];
132
+
133
+ for (let t = 0; t < 100; t++) {
134
+ state = evolve(state, hamiltonian, 0.01);
135
+ trajectory.push(state.entropy());
136
+ }
137
+
138
+ console.log('Entropy trajectory:', trajectory.slice(0, 10));
139
+ ```
140
+
141
+ ### Oscillator Dynamics
142
+
143
+ ```javascript
144
+ const { createOscillator } = require('./physics/oscillator');
145
+
146
+ // Create coupled oscillators
147
+ const oscillators = [];
148
+ for (let i = 0; i < 10; i++) {
149
+ oscillators.push(createOscillator({
150
+ frequency: 1.0 + 0.1 * Math.random(),
151
+ phase: Math.random() * 2 * Math.PI,
152
+ amplitude: 1.0
153
+ }));
154
+ }
155
+
156
+ // Evolve with Kuramoto coupling
157
+ const { kuramotoStep } = require('./physics/kuramoto');
158
+
159
+ for (let t = 0; t < 1000; t++) {
160
+ kuramotoStep(oscillators, 0.1, 0.01); // coupling, dt
161
+ }
162
+
163
+ // Check synchronization
164
+ const phases = oscillators.map(o => o.phase);
165
+ const phaseVariance = variance(phases);
166
+ console.log('Phase variance:', phaseVariance);
167
+ // Low variance indicates synchronization
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Collapse and Measurement
173
+
174
+ ### State Collapse
175
+
176
+ ```javascript
177
+ const { collapse } = require('./physics/collapse');
178
+ const backend = new ScientificBackend(config);
179
+
180
+ // Create superposition
181
+ const superposition = backend.createRandomState();
182
+ console.log('Before collapse - entropy:', superposition.entropy());
183
+
184
+ // Collapse toward target
185
+ const target = backend.createState([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
186
+ const collapsed = collapse(superposition, target, 0.8); // 80% collapse
187
+
188
+ console.log('After collapse - entropy:', collapsed.entropy());
189
+ console.log('Coherence with target:', collapsed.coherence(target));
190
+ ```
191
+
192
+ ### Measurement Operators
193
+
194
+ ```javascript
195
+ const backend = new ScientificBackend(config);
196
+
197
+ // Define measurement projectors
198
+ const measureUp = backend.createState([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
199
+ const measureDown = backend.createState([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
200
+
201
+ // Create state to measure
202
+ const state = backend.createRandomState();
203
+
204
+ // Calculate measurement probabilities
205
+ const probUp = Math.pow(state.coherence(measureUp), 2);
206
+ const probDown = Math.pow(state.coherence(measureDown), 2);
207
+
208
+ console.log('P(up):', probUp.toFixed(4));
209
+ console.log('P(down):', probDown.toFixed(4));
210
+
211
+ // Perform measurement (collapse)
212
+ function measure(state, projector) {
213
+ const prob = Math.pow(state.coherence(projector), 2);
214
+ if (Math.random() < prob) {
215
+ return { outcome: 'yes', state: projector };
216
+ } else {
217
+ return { outcome: 'no', state: state.subtract(projector.scale(state.coherence(projector))).normalize() };
218
+ }
219
+ }
220
+ ```
221
+
222
+ ---
223
+
224
+ ## Entanglement Simulation
225
+
226
+ ### Creating Entangled States
227
+
228
+ ```javascript
229
+ const backend = new ScientificBackend(config);
230
+
231
+ // Create Bell-like state
232
+ // |Ψ⟩ = (|00⟩ + |11⟩) / √2
233
+ function createBellState(backend) {
234
+ // Use different dimensions for "qubit 1" and "qubit 2"
235
+ const state00 = backend.createState([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
236
+ const state11 = backend.createState([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
237
+
238
+ return state00.add(state11).normalize();
239
+ }
240
+
241
+ const bell = createBellState(backend);
242
+ console.log('Bell state entropy:', bell.entropy());
243
+ ```
244
+
245
+ ### Correlation Measurement
246
+
247
+ ```javascript
248
+ // Measure correlations between subsystems
249
+ function measureCorrelation(entangledState, proj1, proj2) {
250
+ const combined = proj1.multiply(proj2);
251
+ return Math.pow(entangledState.coherence(combined), 2);
252
+ }
253
+
254
+ const backend = new ScientificBackend(config);
255
+ const bell = createBellState(backend);
256
+
257
+ // Measure in aligned bases
258
+ const z0 = backend.createState([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
259
+ const z1 = backend.createState([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
260
+
261
+ console.log('P(00):', measureCorrelation(bell, z0, z0));
262
+ console.log('P(11):', measureCorrelation(bell, z1, z1));
263
+ // Should show correlation
264
+ ```
265
+
266
+ ---
267
+
268
+ ## Energy and Stability
269
+
270
+ ### Lyapunov Exponents
271
+
272
+ ```javascript
273
+ const { lyapunov } = require('./physics/lyapunov');
274
+ const backend = new ScientificBackend(config);
275
+
276
+ // Calculate stability of trajectory
277
+ function analyzeStability(trajectory) {
278
+ const exponent = lyapunov(trajectory);
279
+
280
+ return {
281
+ exponent,
282
+ stable: exponent < 0,
283
+ chaotic: exponent > 0,
284
+ marginal: Math.abs(exponent) < 0.01
285
+ };
286
+ }
287
+
288
+ // Generate trajectory
289
+ const states = [];
290
+ let state = backend.createRandomState();
291
+ for (let i = 0; i < 100; i++) {
292
+ states.push(state);
293
+ state = state.multiply(backend.createRandomState().normalize());
294
+ }
295
+
296
+ const stability = analyzeStability(states.map(s => s.entropy()));
297
+ console.log('Stability analysis:', stability);
298
+ ```
299
+
300
+ ### Entropy Dynamics
301
+
302
+ ```javascript
303
+ const { computeEntropy } = require('./physics/entropy');
304
+ const backend = new ScientificBackend(config);
305
+
306
+ // Track entropy over evolution
307
+ function entropyEvolution(initial, steps, perturbation) {
308
+ const entropies = [];
309
+ let state = initial;
310
+
311
+ for (let i = 0; i < steps; i++) {
312
+ entropies.push(computeEntropy(state));
313
+
314
+ // Apply small perturbation
315
+ const noise = backend.createRandomState().scale(perturbation);
316
+ state = state.add(noise).normalize();
317
+ }
318
+
319
+ return entropies;
320
+ }
321
+
322
+ const initial = backend.createRandomState();
323
+ const entropies = entropyEvolution(initial, 100, 0.01);
324
+
325
+ console.log('Initial entropy:', entropies[0].toFixed(4));
326
+ console.log('Final entropy:', entropies[99].toFixed(4));
327
+ console.log('Entropy change:', (entropies[99] - entropies[0]).toFixed(4));
328
+ ```
329
+
330
+ ---
331
+
332
+ ## Practical Applications
333
+
334
+ ### Quantum-Inspired Optimization
335
+
336
+ ```javascript
337
+ const backend = new ScientificBackend(config);
338
+
339
+ function quantumOptimize(costFunction, dimension, iterations) {
340
+ // Initialize random state
341
+ let state = backend.createRandomState();
342
+ let bestCost = costFunction(state);
343
+ let bestState = state;
344
+
345
+ for (let i = 0; i < iterations; i++) {
346
+ // Create superposition of current and random states
347
+ const random = backend.createRandomState();
348
+ const superposition = state.add(random.scale(0.1)).normalize();
349
+
350
+ // "Measure" by evaluating cost
351
+ const cost = costFunction(superposition);
352
+
353
+ if (cost < bestCost) {
354
+ bestCost = cost;
355
+ bestState = superposition;
356
+ state = superposition;
357
+ } else {
358
+ // Collapse back toward best with some probability
359
+ const acceptProb = Math.exp(-(cost - bestCost) / (iterations - i));
360
+ if (Math.random() < acceptProb) {
361
+ state = superposition;
362
+ }
363
+ }
364
+ }
365
+
366
+ return { state: bestState, cost: bestCost };
367
+ }
368
+
369
+ // Example: minimize entropy (find pure state)
370
+ const result = quantumOptimize(s => s.entropy(), 16, 1000);
371
+ console.log('Final cost (entropy):', result.cost);
372
+ ```
373
+
374
+ ### Signal Processing
375
+
376
+ ```javascript
377
+ const backend = new ScientificBackend(config);
378
+
379
+ // Encode signal as hypercomplex state
380
+ function encodeSignal(samples, backend) {
381
+ if (samples.length > 16) {
382
+ throw new Error('Signal too long for 16D representation');
383
+ }
384
+
385
+ const padded = [...samples];
386
+ while (padded.length < 16) padded.push(0);
387
+
388
+ return backend.createState(padded).normalize();
389
+ }
390
+
391
+ // Decode back to samples
392
+ function decodeSignal(state, length) {
393
+ return state.components.slice(0, length);
394
+ }
395
+
396
+ // Filter using multiplication
397
+ function filterSignal(signal, filterKernel, backend) {
398
+ return signal.multiply(filterKernel).normalize();
399
+ }
400
+
401
+ // Example: simple lowpass filter
402
+ const signal = encodeSignal([1, 0.5, 0.3, 0.8, 0.2, 0.6], backend);
403
+ const lowpass = backend.createState([1, 0.8, 0.6, 0.4, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]).normalize();
404
+
405
+ const filtered = filterSignal(signal, lowpass, backend);
406
+ console.log('Filtered signal:', decodeSignal(filtered, 6));
407
+ ```
408
+
409
+ ### Monte Carlo Simulation
410
+
411
+ ```javascript
412
+ const backend = new ScientificBackend(config);
413
+
414
+ // Use hypercomplex states for Monte Carlo sampling
415
+ function monteCarloIntegrate(f, dimensions, samples) {
416
+ let sum = 0;
417
+
418
+ for (let i = 0; i < samples; i++) {
419
+ // Generate random point using hypercomplex state
420
+ const randomState = backend.createRandomState();
421
+ const point = randomState.components.slice(0, dimensions);
422
+
423
+ // Evaluate function at point
424
+ sum += f(point);
425
+ }
426
+
427
+ return sum / samples;
428
+ }
429
+
430
+ // Example: integrate x^2 + y^2 over [-1,1]^2
431
+ function sphereTest(point) {
432
+ const [x, y] = point.map(p => p * 2 - 1); // Scale to [-1,1]
433
+ return x*x + y*y;
434
+ }
435
+
436
+ const estimate = monteCarloIntegrate(sphereTest, 2, 10000);
437
+ console.log('Monte Carlo estimate:', estimate);
438
+ // Should be close to 2/3 (analytical result)
439
+ ```
440
+
441
+ ---
442
+
443
+ ## Performance Optimization
444
+
445
+ ### Batch Operations
446
+
447
+ ```javascript
448
+ const backend = new ScientificBackend(config);
449
+
450
+ // Process many states efficiently
451
+ function batchEvolve(states, operator) {
452
+ return states.map(s => s.multiply(operator).normalize());
453
+ }
454
+
455
+ // Create batch
456
+ const batch = [];
457
+ for (let i = 0; i < 100; i++) {
458
+ batch.push(backend.createRandomState());
459
+ }
460
+
461
+ // Evolve all at once
462
+ const evolved = batchEvolve(batch, backend.createRandomState());
463
+ console.log('Batch size:', evolved.length);
464
+ ```
465
+
466
+ ### State Caching
467
+
468
+ ```javascript
469
+ const stateCache = new Map();
470
+
471
+ function getCachedState(key, computeFn) {
472
+ if (!stateCache.has(key)) {
473
+ stateCache.set(key, computeFn());
474
+ }
475
+ return stateCache.get(key);
476
+ }
477
+
478
+ // Use for expensive computations
479
+ const expensiveState = getCachedState('complex_state', () => {
480
+ let state = backend.createRandomState();
481
+ for (let i = 0; i < 1000; i++) {
482
+ state = state.multiply(backend.createRandomState()).normalize();
483
+ }
484
+ return state;
485
+ });
486
+ ```
487
+
488
+ ---
489
+
490
+ ## Next Steps
491
+
492
+ - [LLM Integration →](./05-llm-integration.md)
493
+ - [Theory: Phase Synchronization →](../theory/03-phase-synchronization.md)
494
+ - [Reference: ScientificBackend →](../reference/03-backends.md#scientific-backend)