Skip to content

Commit f115561

Browse files
committed
pillar: bit-exact i128 lattice signature lane + Hambly-Lyons Thm 2/3 certificate
New src/hpc/pillar/lattice_signature.rs (feature `pillar`). For unit-step lattice walks every level-k signature coefficient has denominator k!, so the lane stores k!·S_k as i128: identity is `==`, no tolerance anywhere. Chen composition with a unit step is a binomial convolution against a tensor supported on (a,…,a) only. Depth policy is integer: theorem2_depth(L) = ceil(23959·L/10000) ≥ floor(e·ln(1+√2)·L), the constant re-read from math/0507536v2 p.11/p.14; theorem3_factor(d) = 2·ceil(log3(d/2))+3 by integer loop. Overflow contract: len^depth < 2^126, checked arithmetic, never wrapped. Pinned: 484/484 reduced d=2 words of length ≤ 5 separated at the theorem depth; 64/64 tree-like words exactly the identity; 64 reduced length-8 words share S^(2)=1 with the constant path (the paper's figure-of-8 class) and all separate at level 3; d=1 collapses the 64 length-6 words to exactly 7 tensors; parity with the f32 signature_d2_deg3 lane on every lattice word of length ≤ 6; FNV bit-exactness digest 0xBFAB3E55601E4E41; prove_pillar_11_lattice() deterministic PillarReport. signature.rs stays the f32 kernel-stability battery; this is the uniqueness half, the ndarray twin of lance-graph jc::hambly_lyons W6 (lance-graph #1133) with the f64 tolerance replaced by integer equality. Scalar integer reference lane by design; the W1.5 vectorised lane must reproduce these tensors bit-for-bit. Gates: 11/11 lane tests + doctest, clippy -D warnings, fmt. Blackboard entry added. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QHVUi6Q9XtmKgxh6pDRayP
1 parent 001aac4 commit f115561

3 files changed

Lines changed: 707 additions & 2 deletions

File tree

.claude/blackboard.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,41 @@
33
> **Read this first.** The "Polyglot Notebook" architecture below is a
44
> separate/older program, not the current epoch.
55
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 2/3 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) = ⌈23959·L/10000⌉ ≥ ⌊e·ln(1+√2)·L⌋` (constant re-read
15+
from math/0507536v2 p.11/p.14 on the main thread; the float never enters
16+
the kernel), `theorem3_factor(d) = 2⌈log₃(d/2)⌉+3` by integer loop.
17+
Measured (debug, 3.2 s): 484/484 reduced `d=2` words of length ≤ 5 separated
18+
at the theorem depth; 64/64 tree-like words EXACTLY the identity; 64
19+
reduced length-8 words share `S^(2) = 1` with the constant path (the
20+
paper's §1.6 figure-of-8 class) and every one separates at level 3
21+
(`3!·S_xxy = 6` for the canonical one); `d = 1` collapses the 64 length-6
22+
words to exactly 7 tensors (net increment only — the `d ≥ 2` precondition
23+
is now a pin, not prose). Parity pin against the existing f32 lane
24+
`signature_d2_deg3` on every lattice word of length ≤ 6 (exact small
25+
integers). Bit-exactness pin: FNV digest `0xBFAB3E55601E4E41` over all
26+
words of length ≤ 4 at theorem depth. `prove_pillar_11_lattice()` reports
27+
`psd_rate` = separated fraction (1.0), `n_paths` = 484, `n_hops` = 64
28+
false merges, `lognorm_concentration` = deepest separation level (3).
29+
**Disambiguation:** `signature.rs` stays the f32 depth-3 kernel-STABILITY
30+
battery; this lane is the UNIQUENESS half, and it is the ndarray twin of
31+
lance-graph `jc::hambly_lyons` W6 (PR #1133) with the f64 tolerance
32+
replaced by integer equality. **SIMD:** scalar integer reference lane on
33+
purpose; the W1.5 sigker vectorised lane (now unblocked) must reproduce
34+
these `i128` tensors bit-for-bit. Loose ends: an `i128` lane in
35+
`ndarray::simd` does not exist; the `d ≥ 3` arm of Theorem 3 is
36+
implemented (depth formula) but not exercised by a test beyond the factor
37+
pins; `crates/sigker-parity` should gain a W1b test comparing this lane
38+
against `sigker::signature_truncated` on lattice words (exact ints vs f64).
39+
40+
## 2026-08-31 — W1a-#9 masking primitives SHIPPED on every dispatch arm (PR #285)
741

842
`U64x8`/`U32x16` gained `andnot` (set difference, `self & !other` — argument
943
order deliberately differs from the raw Intel intrinsic, same direction on

0 commit comments

Comments
 (0)