Commit ce53c9f
Enable the swap control, and document the whole transform
The Lexicon Lab's `mint` control was rendered disabled: `LexiconLab` never
passed `mint` into `vacParams` at all, so it could not have worked. It works
now, and the interesting part is how its one real constraint is presented.
`mint = "swap"` is injective only at p in {0, 1} — a theorem (contract §5.2a),
not a rough edge: a map stable in p whose images are domain types is injective
everywhere only if it is the identity. So the UI never clamps p, never falls
back to nonce, and never catches-and-replaces the typed error. `LexiconLab`
asks the engine and carries the refusal up as a string; the panel prints it
verbatim with the four exits offered as buttons, and with no vocabulary the
counters, the trainer and the invariance check have nothing to report — which
is the honest state of that configuration.
Beside the mint control the theorem is COUNTED rather than asserted: every
domain type is pushed through the real transform at the current p and the
distinct images counted. Measured on the shipped corpus at seed 0, swap loses
244 / 322 / 233 image slots at p = .25/.5/.75 and 0 at both endpoints; nonce
loses 0 everywhere. The `bijective` chip now reads "injective at p = 0, 1"
under swap instead of a bare tick.
Info tab gains #vacancy: the T4 2x2 with the vacancy cell marked, the
transform's definition, nesting and stability and the four properties the
source implementation claims and breaks, the invariance theorem with §7.4's
framing (the exact zero IS the finding), the swap decomposition with "cost of
unknown form" stated as an upper bound, the stress table's real status (61
rule-seeded entries, never human-checked, 5.1% of this corpus's tokens), and
what the static build refuses by name — plus the WebGPU/CI coverage gap.
#real, #limits and #refs updated.
Every number in that prose is pinned by five new tests in docs.spec.ts: the
counts come from a live POST /api/lex/vacancy, the swap collisions and the
stress-table size are read off the running panel, and the static build's
±0.2 nats and 700-token floor are read out of the constants that enforce them.
No number from the source document appears anywhere; its prosody figures are
its own, on a corpus we do not have.
Also fixes a stale comment in staticClient/arch.ts that still documented a
±0.1 nats quantization uncertainty its own constant had superseded with 0.2.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 1d09552 commit ce53c9f
10 files changed
Lines changed: 882 additions & 58 deletions
File tree
- code/frontend
- src
- lib/staticClient
- viz
- info
- lex
- tests/e2e
- docs/screenshots/feature-007
- notes
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
721 | 721 | | |
722 | 722 | | |
723 | 723 | | |
724 | | - | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
725 | 729 | | |
726 | 730 | | |
727 | 731 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
| 71 | + | |
70 | 72 | | |
71 | 73 | | |
72 | 74 | | |
| |||
134 | 136 | | |
135 | 137 | | |
136 | 138 | | |
137 | | - | |
| 139 | + | |
138 | 140 | | |
139 | 141 | | |
140 | 142 | | |
| |||
205 | 207 | | |
206 | 208 | | |
207 | 209 | | |
| 210 | + | |
208 | 211 | | |
209 | 212 | | |
210 | 213 | | |
211 | 214 | | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
218 | 229 | | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
227 | 254 | | |
228 | 255 | | |
229 | 256 | | |
| |||
251 | 278 | | |
252 | 279 | | |
253 | 280 | | |
254 | | - | |
255 | | - | |
256 | | - | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
257 | 285 | | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
263 | 306 | | |
264 | | - | |
| 307 | + | |
265 | 308 | | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
266 | 312 | | |
267 | 313 | | |
268 | 314 | | |
269 | 315 | | |
270 | 316 | | |
271 | 317 | | |
272 | 318 | | |
273 | | - | |
| 319 | + | |
274 | 320 | | |
275 | 321 | | |
276 | 322 | | |
| |||
545 | 591 | | |
546 | 592 | | |
547 | 593 | | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
552 | 604 | | |
553 | 605 | | |
554 | 606 | | |
| |||
623 | 675 | | |
624 | 676 | | |
625 | 677 | | |
| 678 | + | |
626 | 679 | | |
627 | 680 | | |
628 | 681 | | |
629 | 682 | | |
630 | 683 | | |
631 | | - | |
| 684 | + | |
632 | 685 | | |
633 | 686 | | |
634 | 687 | | |
| |||
0 commit comments