|
3 | 3 | > **Read this first.** The "Polyglot Notebook" architecture below is a |
4 | 4 | > separate/older program, not the current epoch. |
5 | 5 |
|
6 | | -## 2026-08-31 (latest) — W1a-#9 masking primitives SHIPPED on every dispatch arm (PR #285) |
| 6 | +## 2026-09-01 (latest) — Pillar-11 lattice lane: BIT-EXACT i128 lattice signature + Hambly–Lyons Thm 5/6 certificate |
| 7 | + |
| 8 | +`src/hpc/pillar/lattice_signature.rs` (feature `pillar`). For unit-step |
| 9 | +lattice walks every level-`k` signature coefficient is a rational with |
| 10 | +denominator `k!`, so the lane stores `k!·S_k` as `i128` and the whole |
| 11 | +computation is bit-exact — identity is `==`, no tolerance. Chen composition |
| 12 | +with a unit step is a binomial convolution against a tensor supported on |
| 13 | +`(a,…,a)` only, so each step costs `O(Σ_k d^k·k)`. Depth policy is INTEGER: |
| 14 | +`theorem2_depth(L) = ⌈47917·L/10000⌉ ≥ ⌊2e·ln(1+√2)·L⌋` (the PUBLISHED |
| 15 | +constant: Annals of Math 171 (2010) Theorem 5, `⌊2e·log(1+√2)·L⌋`; the |
| 16 | +arXiv v2 preprint's Thm 2 states `e` — a version trap CodeRabbit caught on |
| 17 | +lance-graph #1133 and the Annals PDF confirmed; the float never enters the |
| 18 | +kernel), `theorem3_factor(d) = 2⌈log₃(d/2)⌉+3` by integer loop. |
| 19 | +Measured (debug): 52/52 reduced `d=2` words of length ≤ 3 separated at the |
| 20 | +theorem depth (`LATTICE_L_MAX = 3` — the doubled constant makes depth ⌊c·L⌋ |
| 21 | +grow to 19 at L=4, and `d^depth` coefficients per level exhaust memory); 64/64 tree-like words EXACTLY the identity at a fixed depth 12 |
| 22 | +(`LATTICE_TREELIKE_DEPTH`, since identity holds at every depth and the |
| 23 | +theorem depth for length-6 words is 28); 64 |
| 24 | +reduced length-8 words share `S^(2) = 1` with the constant path (the |
| 25 | +paper's §1.6 figure-of-8 class) and every one separates at level 3 |
| 26 | +(`3!·S_xxy = 6` for the canonical one); `d = 1` collapses the 64 length-6 |
| 27 | +words to exactly 7 tensors (net increment only — the `d ≥ 2` precondition |
| 28 | +is now a pin, not prose). Parity pin against the existing f32 lane |
| 29 | +`signature_d2_deg3` on every lattice word of length ≤ 6 (exact small |
| 30 | +integers). Bit-exactness pin: FNV digest `0x7C9612A734212FC6` over all |
| 31 | +words of length ≤ 3 at theorem depth. `prove_pillar_11_lattice()` reports |
| 32 | +`psd_rate` = separated fraction (1.0), `n_paths` = 52, `n_hops` = 64 |
| 33 | +false merges, `lognorm_concentration` = deepest separation level (3). |
| 34 | +**Disambiguation:** `signature.rs` stays the f32 depth-3 kernel-STABILITY |
| 35 | +battery; this lane is the UNIQUENESS half, and it is the ndarray twin of |
| 36 | +lance-graph `jc::hambly_lyons` W6 (PR #1133) with the f64 tolerance |
| 37 | +replaced by integer equality. **SIMD:** scalar integer reference lane on |
| 38 | +purpose; the W1.5 sigker vectorised lane (now unblocked) must reproduce |
| 39 | +these `i128` tensors bit-for-bit. Loose ends: an `i128` lane in |
| 40 | +`ndarray::simd` does not exist; the `d ≥ 3` arm of Theorem 3 is |
| 41 | +implemented (depth formula) but not exercised by a test beyond the factor |
| 42 | +pins; `crates/sigker-parity` should gain a W1b test comparing this lane |
| 43 | +against `sigker::signature_truncated` on lattice words (exact ints vs f64). |
| 44 | + |
| 45 | +## 2026-08-31 — W1a-#9 masking primitives SHIPPED on every dispatch arm (PR #285) |
7 | 46 |
|
8 | 47 | `U64x8`/`U32x16` gained `andnot` (set difference, `self & !other` — argument |
9 | 48 | order deliberately differs from the raw Intel intrinsic, same direction on |
|
0 commit comments