# Build Log: 2026-06-22 — BMCTE N=20000 Sweep & Hachimoji Bridge ## Session Summary Extended the BMCTE sweep to N=20000, p=12,14 on neon-64gb (ARM64, 62 GB, 18 cores). Applied two performance optimizations to `extension_v1.py`: N×p tall-skinny QR instead of full N×N QR, and vectorized Ryser permanent via numpy broadcasting (65× speedup at p=14). Formalized the BMCTE→Hachimoji link theorem in `HachimojiBridging.lean` §11. --- ## Files Changed | File | Change | |---|---| | `experiments/bosonic_continuous/extension_v1.py` | N×p isometry (O(N·p²) vs O(N³)); vectorized Ryser (65× faster); removed debug logging | | `formal/CoreFormalism/HachimojiBridging.lean` | **§11** — `lambdaBMCTE(p,N)`, monotonicity proofs, `H_max`/`entropyRatio` | | `docs/build_logs/2026-06-22_session_bmcte_hachimoji_bridge.md` | **NEW** — this file | | `AGENTS.md` | Updated HachimojiBridging entry, extension_v1 entry | | `docs/PROJECT_MAP.md` | Regenerated | | `docs/PROJECT_MAP.json` | Regenerated | --- ## Sweep Results (N=20000, neon-64gb) | p | λ(p) | H_mean | H_std | nonzero modes | runtime | |---|------|--------|-------|---------------|---------| | 12 | 0.9928 | 11.607 | 0.092 | 8845 | 4.1s/seed | | 14 | 0.9902 | 11.699 | 0.146 | 9898 | 10.6s/seed | Total: 73.6s for 10 runs (5 seeds each), 0 overflows. --- ## Build Baseline ``` lake build CoreFormalism.HachimojiBridging → 2978 jobs, 0 errors lake build → 3201 jobs, 0 errors (full workspace) ``` --- ## Key Decisions - **N×p isometry over full N×N QR**: BMCTE only uses the first p columns of the unitary. QR on N×p Gaussian produces the correct marginal distribution of a Haar-random isometry, matching the scattering-matrix physical model, at O(N·p²) instead of O(N³). - **Vectorized Ryser**: replaced 2²ᵖ Python loop with (2ᵖ, p) boolean inclusion matrix × matrix multiply. 65× faster at p=14 (0.28s → 0.0043s per permanent). - **neon-64gb for large-N CPU sweep**: 62 GB RAM and 18 ARM64 cores handled N=20000 where RTX 4070 (12 GB VRAM) OOM'd on full unitary.