eyeling 1.16.3 → 1.16.5

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 (61) hide show
  1. package/HANDBOOK.md +153 -0
  2. package/README.md +0 -1
  3. package/examples/auroracare.n3 +528 -0
  4. package/examples/control-system.n3 +223 -47
  5. package/examples/delfour.n3 +409 -0
  6. package/examples/gps.n3 +144 -53
  7. package/examples/ill-formed-literals.n3 +195 -0
  8. package/examples/output/auroracare.n3 +118 -0
  9. package/examples/output/control-system.n3 +24 -1
  10. package/examples/output/delfour.n3 +40 -0
  11. package/examples/output/gps.n3 +14 -2
  12. package/examples/output/ill-formed-literals.n3 +27 -0
  13. package/examples/output/parcellocker.n3 +15 -0
  14. package/examples/parcellocker.n3 +164 -0
  15. package/eyeling.js +16 -1
  16. package/lib/engine.js +14 -1
  17. package/lib/prelude.js +2 -0
  18. package/package.json +2 -3
  19. package/arctifacts/README.md +0 -59
  20. package/arctifacts/ackermann.html +0 -678
  21. package/arctifacts/auroracare.html +0 -1297
  22. package/arctifacts/bike-trip.html +0 -752
  23. package/arctifacts/binomial-theorem.html +0 -631
  24. package/arctifacts/bmi.html +0 -511
  25. package/arctifacts/building-performance.html +0 -750
  26. package/arctifacts/clinical-care.html +0 -726
  27. package/arctifacts/collatz.html +0 -403
  28. package/arctifacts/complex.html +0 -321
  29. package/arctifacts/control-system.html +0 -482
  30. package/arctifacts/delfour.html +0 -849
  31. package/arctifacts/earthquake-epicenter.html +0 -982
  32. package/arctifacts/eco-route.html +0 -662
  33. package/arctifacts/euclid-infinitude.html +0 -564
  34. package/arctifacts/euler-identity.html +0 -667
  35. package/arctifacts/exoplanet-transit.html +0 -1000
  36. package/arctifacts/faltings-theorem.html +0 -1046
  37. package/arctifacts/fibonacci.html +0 -299
  38. package/arctifacts/fundamental-theorem-arithmetic.html +0 -398
  39. package/arctifacts/godel-numbering.html +0 -743
  40. package/arctifacts/gps-bike.html +0 -759
  41. package/arctifacts/gps-clinical-bench.html +0 -792
  42. package/arctifacts/graph-french.html +0 -449
  43. package/arctifacts/grass-molecular.html +0 -592
  44. package/arctifacts/group-theory.html +0 -740
  45. package/arctifacts/health-info.html +0 -833
  46. package/arctifacts/kaprekar-constant.html +0 -576
  47. package/arctifacts/lee.html +0 -805
  48. package/arctifacts/linked-lists.html +0 -502
  49. package/arctifacts/lldm.html +0 -612
  50. package/arctifacts/matrix-multiplication.html +0 -502
  51. package/arctifacts/matrix.html +0 -651
  52. package/arctifacts/newton-raphson.html +0 -944
  53. package/arctifacts/peano-factorial.html +0 -456
  54. package/arctifacts/pi.html +0 -363
  55. package/arctifacts/polynomial.html +0 -646
  56. package/arctifacts/prime.html +0 -366
  57. package/arctifacts/pythagorean-theorem.html +0 -468
  58. package/arctifacts/rest-path.html +0 -469
  59. package/arctifacts/roots-of-unity.html +0 -363
  60. package/arctifacts/turing.html +0 -409
  61. package/arctifacts/wind-turbines.html +0 -726
@@ -1,321 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Complex Identities — Explanatory Proofs</title>
7
- <style>
8
- :root {
9
- --fg: #111;
10
- --bg: #fff;
11
- --muted: #666;
12
- --accent: #2b6cb0;
13
- }
14
- @media (prefers-color-scheme: dark) {
15
- :root {
16
- --fg: #eee;
17
- --bg: #0b0b0b;
18
- --muted: #aaa;
19
- --accent: #63b3ed;
20
- }
21
- }
22
- html,
23
- body {
24
- margin: 0;
25
- padding: 0;
26
- color: var(--fg);
27
- background: var(--bg);
28
- font:
29
- 16px/1.6 system-ui,
30
- -apple-system,
31
- Segoe UI,
32
- Roboto,
33
- Helvetica,
34
- Arial,
35
- 'Apple Color Emoji',
36
- 'Segoe UI Emoji';
37
- }
38
- main {
39
- max-width: 940px;
40
- margin: 0 auto;
41
- padding: 2.5rem 1.25rem 4rem;
42
- }
43
- header h1 {
44
- font-size: clamp(1.6rem, 2.5vw + 1rem, 2.4rem);
45
- margin: 0 0 0.25rem;
46
- }
47
- header p {
48
- margin: 0;
49
- color: var(--muted);
50
- }
51
- section {
52
- background: color-mix(in srgb, var(--accent) 4%, transparent);
53
- border: 1px solid color-mix(in srgb, var(--accent) 15%, transparent);
54
- border-radius: 14px;
55
- padding: 1rem 1.1rem;
56
- margin: 1.1rem 0 1.4rem;
57
- }
58
- section h2 {
59
- margin: 0 0 0.25rem;
60
- font-size: 1.15rem;
61
- }
62
- hr {
63
- border: none;
64
- border-top: 1px dashed color-mix(in srgb, var(--fg) 25%, transparent);
65
- margin: 0.6rem 0 0.8rem;
66
- }
67
- p {
68
- margin: 0.35rem 0;
69
- }
70
- code,
71
- pre {
72
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
73
- }
74
- footer {
75
- margin-top: 2.5rem;
76
- color: var(--muted);
77
- font-size: 0.9rem;
78
- }
79
- .tag {
80
- font-weight: 700;
81
- }
82
- </style>
83
- </head>
84
- <body>
85
- <main>
86
- <header>
87
- <h1>Complex identities — explanatory proofs</h1>
88
- </header>
89
-
90
- <section>
91
- <h2>What this is?</h2>
92
- <p>
93
- A single-page explainer of classic complex-number identities. Each card states the identity, gives a short
94
- reason, and then performs a numeric check right in the browser to confirm the result. No external libraries or
95
- servers are used.
96
- </p>
97
- <p class="muted">Numbers are shown to ~12 decimals.</p>
98
- </section>
99
-
100
- <section id="case1">
101
- <h2>sqrt(-1)</h2>
102
- <hr />
103
- <p><span class="tag">Answer</span>: √(-1) = i</p>
104
- <p>
105
- <span class="tag">Reason</span>: −1 = e<sup>iπ</sup> (principal). √(e<sup>iπ</sup>) = e<sup>iπ/2</sup> = i.
106
- </p>
107
- <p><span class="tag">Check</span>: i² = <span id="check1"></span></p>
108
- </section>
109
-
110
- <section id="case2">
111
- <h2>exp(i·π) + 1</h2>
112
- <hr />
113
- <p><span class="tag">Answer</span>: e<sup>iπ</sup> + 1 = 0</p>
114
- <p><span class="tag">Reason</span>: Euler: e<sup>iθ</sup> = cos θ + i sin θ ⇒ e<sup>iπ</sup> = −1.</p>
115
- <p><span class="tag">Check</span>: e<sup>iπ</sup> + 1 ≈ <span id="check2"></span></p>
116
- </section>
117
-
118
- <section id="case3">
119
- <h2>log(-1)</h2>
120
- <hr />
121
- <p><span class="tag">Answer</span>: log(−1) = iπ (principal)</p>
122
- <p><span class="tag">Reason</span>: log z = ln|z| + i Arg(z); |−1| = 1 ⇒ ln|z| = 0, Arg(−1) = π.</p>
123
- <p><span class="tag">Check</span>: exp(log(−1)) = <span id="check3"></span></p>
124
- </section>
125
-
126
- <section id="case4">
127
- <h2>log(-i)</h2>
128
- <hr />
129
- <p><span class="tag">Answer</span>: log(−i) = −iπ/2 (principal)</p>
130
- <p><span class="tag">Reason</span>: |−i| = 1, Arg(−i) = −π/2 ⇒ log(−i) = 0 + i(−π/2).</p>
131
- <p><span class="tag">Check</span>: exp(log(−i)) = <span id="check4"></span></p>
132
- </section>
133
-
134
- <section id="case5">
135
- <h2>log(i·x) with x = 0.73</h2>
136
- <hr />
137
- <p><span class="tag">Answer</span>: log(i·x) = ln x + iπ/2 (x&gt;0)</p>
138
- <p><span class="tag">Reason</span>: Arg(i x) = π/2 (principal), |i x| = x ⇒ ln|·| = ln x.</p>
139
- <p>
140
- <span class="tag">Check</span>: exp(log(i·x)) ≈ <span id="check5a"></span> &nbsp; and &nbsp; i·x =
141
- <span id="check5b"></span>
142
- </p>
143
- </section>
144
-
145
- <section id="case6">
146
- <h2>cos(i·x) with x = 0.73</h2>
147
- <hr />
148
- <p><span class="tag">Answer</span>: cos(i x) = cosh x</p>
149
- <p>
150
- <span class="tag">Reason</span>: cos z = (e<sup>iz</sup> + e<sup>−iz</sup>)/2; set z = i x ⇒ (e<sup>−x</sup> +
151
- e<sup>x</sup>)/2.
152
- </p>
153
- <p>
154
- <span class="tag">Check</span>: cos(i x) ≈ <span id="check6a"></span> &nbsp; ; &nbsp; cosh(x) =
155
- <span id="check6b"></span>
156
- </p>
157
- </section>
158
-
159
- <section id="case7">
160
- <h2>sin(i·x) with x = 0.73</h2>
161
- <hr />
162
- <p><span class="tag">Answer</span>: sin(i x) = i·sinh x</p>
163
- <p>
164
- <span class="tag">Reason</span>: sin z = (e<sup>iz</sup> − e<sup>−iz</sup>)/(2i); set z = i x ⇒ i(e<sup
165
- >−x</sup
166
- >
167
- − e<sup>x</sup>)/2.
168
- </p>
169
- <p>
170
- <span class="tag">Check</span>: sin(i x) ≈ <span id="check7a"></span> &nbsp; ; &nbsp; i·sinh(x) =
171
- <span id="check7b"></span>
172
- </p>
173
- </section>
174
-
175
- <section id="case8">
176
- <h2>asin(i·x) with x = 0.73</h2>
177
- <hr />
178
- <p><span class="tag">Answer</span>: asin(i x) = i·asinh x</p>
179
- <p>
180
- <span class="tag">Reason</span>: Definition asin z = −i·log( i z + √(1 − z²) ); put z = i x and use √(1 + x²)
181
- − x &gt; 0; also ln(√(1 + x²) − x) = −ln(x + √(1 + x²)).
182
- </p>
183
- <p>
184
- <span class="tag">Check</span>: i·asinh(x) = <span id="check8a"></span> &nbsp; ; &nbsp; −i·ln(√(1 + x²) − x) =
185
- <span id="check8b"></span>
186
- </p>
187
- </section>
188
-
189
- <section id="case9">
190
- <h2>sqrt(i)</h2>
191
- <hr />
192
- <p><span class="tag">Answer</span>: √i = (1 + i)/√2</p>
193
- <p>
194
- <span class="tag">Reason</span>: i = e<sup>iπ/2</sup>; √i = e<sup>iπ/4</sup> = cos(π/4) + i sin(π/4) = (1 +
195
- i)/√2.
196
- </p>
197
- <p><span class="tag">Check</span>: (√i)² ≈ <span id="check9"></span></p>
198
- </section>
199
-
200
- <section id="case10">
201
- <h2>acos(2)</h2>
202
- <hr />
203
- <p><span class="tag">Answer</span>: acos(2) = i·ln(2 + √3)</p>
204
- <p>
205
- <span class="tag">Reason</span>: For |z| &gt; 1, acos z = i ln(z + √(z² − 1)) (principal). For z = 2: √3 and
206
- ln(2 + √3).
207
- </p>
208
- <p>
209
- <span class="tag">Check</span>: cos(acos(2)) = cos(i·ln(2 + √3)) = cosh(ln(2 + √3)) ≈
210
- <span id="check10"></span>
211
- </p>
212
- </section>
213
-
214
- <section id="case11">
215
- <h2>asin(2)</h2>
216
- <hr />
217
- <p><span class="tag">Answer</span>: asin(2) = π/2 − i·ln(2 + √3)</p>
218
- <p><span class="tag">Reason</span>: asin z = π/2 − acos z and acos(2) = i ln(2 + √3).</p>
219
- <p><span class="tag">Check</span>: sin(asin(2)) = cosh(ln(2 + √3)) ≈ <span id="check11"></span></p>
220
- </section>
221
-
222
- <section id="case12">
223
- <h2>i^i</h2>
224
- <hr />
225
- <p><span class="tag">Answer</span>: i^i = e<sup>−π/2</sup></p>
226
- <p>
227
- <span class="tag">Reason</span>: i^i = e^{i log(i)} with principal log(i) = iπ/2 ⇒ exponent = −π/2 (real).
228
- </p>
229
- <p><span class="tag">Check</span>: numeric value ≈ <span id="check12"></span></p>
230
- </section>
231
-
232
- <footer>Numeric tolerance ~1e−12.</footer>
233
- </main>
234
-
235
- <script>
236
- (function () {
237
- const PI = Math.PI;
238
-
239
- // Complex helpers (minimal)
240
- const c = (re, im) => ({ re, im });
241
- const add = (z, w) => c(z.re + w.re, z.im + w.im);
242
- const mul = (z, w) => c(z.re * w.re - z.im * w.im, z.re * w.im + z.im * w.re);
243
- const square = (z) => mul(z, z);
244
- const expComplex = (a, b) => c(Math.exp(a) * Math.cos(b), Math.exp(a) * Math.sin(b));
245
-
246
- const fmtC = (z, d = 12) => {
247
- const r = +z.re.toFixed(d);
248
- const i = +z.im.toFixed(d);
249
- if (Math.abs(i) < Math.pow(10, -d)) {
250
- return r.toFixed(d);
251
- }
252
- if (Math.abs(r) < Math.pow(10, -d)) {
253
- return i.toFixed(d) + 'i';
254
- }
255
- const sign = i >= 0 ? ' + ' : ' - ';
256
- return r.toFixed(d) + sign + Math.abs(i).toFixed(d) + 'i';
257
- };
258
-
259
- const cosh = (x) => 0.5 * (Math.exp(x) + Math.exp(-x));
260
- const sinh = (x) => 0.5 * (Math.exp(x) - Math.exp(-x));
261
-
262
- const setText = (id, text) => {
263
- const el = document.getElementById(id);
264
- if (el) el.textContent = text;
265
- };
266
-
267
- // Case 1
268
- const i = c(0, 1);
269
- setText('check1', fmtC(square(i)));
270
-
271
- // Case 2
272
- const eipi = expComplex(0, PI);
273
- setText('check2', fmtC(add(eipi, c(1, 0))));
274
-
275
- // Case 3
276
- const exp_log_minus1 = expComplex(0, PI);
277
- setText('check3', fmtC(exp_log_minus1));
278
-
279
- // Case 4
280
- const exp_log_minusi = expComplex(0, -PI / 2);
281
- setText('check4', fmtC(exp_log_minusi));
282
-
283
- // Case 5 (x = 0.73)
284
- const x = 0.73;
285
- const exp_log_ix = expComplex(Math.log(x), PI / 2);
286
- setText('check5a', fmtC(exp_log_ix));
287
- setText('check5b', fmtC(c(0, x)));
288
-
289
- // Case 6 cos(i x) = cosh x
290
- const cos_ix = c(0.5 * (Math.exp(-x) + Math.exp(x)), 0);
291
- setText('check6a', fmtC(cos_ix));
292
- setText('check6b', cosh(x).toFixed(12));
293
-
294
- // Case 7 sin(i x) = i*sinh x
295
- const sin_ix = c(0, 0.5 * (Math.exp(-x) - Math.exp(x)));
296
- setText('check7a', fmtC(sin_ix));
297
- setText('check7b', fmtC(c(0, sinh(x))));
298
-
299
- // Case 8 asin(i x) = i asinh x
300
- const asinhx = Math.asinh(x);
301
- const alt = -Math.log(Math.sqrt(1 + x * x) - x);
302
- setText('check8a', fmtC(c(0, asinhx)));
303
- setText('check8b', fmtC(c(0, alt)));
304
-
305
- // Case 9 sqrt(i) = (1+i)/√2
306
- const rooti = c(1 / Math.sqrt(2), 1 / Math.sqrt(2));
307
- setText('check9', fmtC(square(rooti)));
308
-
309
- // Case 10 acos(2)
310
- const y = Math.log(2 + Math.sqrt(3));
311
- setText('check10', cosh(y).toFixed(12));
312
-
313
- // Case 11 asin(2)
314
- setText('check11', cosh(y).toFixed(12));
315
-
316
- // Case 12 i^i
317
- setText('check12', Math.exp(-PI / 2).toFixed(12));
318
- })();
319
- </script>
320
- </body>
321
- </html>