Connects three existing SilverSight components:
1. BraidStorm (BraidEigensolid.lean) — 8-strand braid, Sidon labels,
chiral crossings σ_i^±1 → 2^8 = 256 configurations per run
2. TreeBraid — tree-organized braid, factorizes via σ_i σ_j = σ_j σ_i
(|i-j|≥2), reduces 256 to ~64-128 unique configs
3. COUCH (GCCL.lean couchStable gate) — moving sofa constraint,
geometric pre-filter (cheap, O(1) per config)
Pipeline: BraidStorm generates → TreeBraid factorizes →
COUCH filters geometrically → Sidon filters algebraically (dual
quaternion products, no tolerance band).
COUCH is the CHEAP filter (geometric). Sidon is the EXPENSIVE filter
(algebraic O(n²)). Running COUCH first rejects ~50% of configs,
halving the Sidon workload.
Final output: ~10-20 structurally meaningful configs per run
(from 256 raw). These are where the octagon principle could detect
the sofa's chromatic structure from the spectrum.
Hutter prize lesson: the batch doesn't COMPRESS 256→1 (conservation
law blocks that). It FILTERS 256→10-20 that are both geometrically
valid and structurally meaningful.
Also adds CHIRAL_BATCH_ENCODING.md (the general framework).
Direction B results: Gerver sofa at T=100 produces χ=2 (bipartite),
not reaching χ≥4. Confirms 'unit-distance events are measure-zero.'
CRTSidonN: auto-generated, ~10 remaining structural issues. Design is
correct (natural n-moduli extension of CRT Sidon theorem).
Same Erdős problem 477, same greedy algorithm, same Lean formalization
approach. Their prover-verifier pipeline mirrors SilverSight's autoresearch
(phi4 -> lake build). 95% Lean 4.
Bloom (2026): 13th powers have a tiling complement. The greedy algorithm
is the same as SilverSight's crt_sidon_set; the density bound |Sc(T)|=O(T^{5/6})
corresponds to our Sidon sum collision bound.
Adds measured results from two CPU runs:
1. HN spectral database (run 019f2c52):
Hoffman bound on 6 graphs. Tight for regular (path, cycle, complete),
gap=1 for unit-distance (Moser spindle, Golomb graph). Pattern
suggests spectral detection loses exactly 1 color for unit-distance graphs.
2. q-profile sweep (run 019f2d9c):
Sweeps q = L₁/L₀ over coprime fractions. REFUTES the prediction
that q < 1 (poloidal-dominated) is Sidon-favorable: q > 1 has
100% Sidon rate vs 40-60% for q < 1. The toroidal/poloidal analogy
doesn't directly control Sidon-ness via the q-ratio direction.
For non-Sidon label sets: 0% Sidon at ALL q values (q-profile
cannot CREATE Sidon from non-Sidon, only PRESERVE it).
All scripts, formal modules, and docs already committed to main.
This commit adds the experiment artifact JSONs and EVALs.
Three deliverables:
1. scripts/crt_qprofile_sweep.py
Safety factor optimization (R1 from toroidal refinement). Replaces
brute-force modulus selection with systematic q-profile sweep.
Tests: q < 1 (poloidal) vs q > 1 (toroidal) Sidon rate,
simple rational q vs non-simple (R2 cross-pair coprimality).
All integer arithmetic (Fraction for q).
2. docs/research/GERVER_SIDON_DESIGN.md
Direction B design: actual Gerver sofa (18 arcs) with CRT Sidon
boundary in ℤ², high-resolution motion (T=100), justified tolerance.
Explains why Direction A failed and what Direction B fixes.
Honest assessment: long shot, but more promising than v2/v3.
3. (Report in /tmp — uploaded separately)
Negative result write-up: sofa coloring doesn't detect q=1 at
justified tolerance. HN spectral database: Hoffman tight for
regular graphs, gap=1 for unit-distance. CRT n-moduli generalization.
1. Golomb graph: scale pentagon to side=1 (radius=1/(2*sin(π/5)))
Previous construction had 0 edges (vertices not at unit distance)
2. Fix f-string NoneType crash in EVAL writer when welch_wynn is None
Two new files:
1. scripts/hn_spectral_database.py
Extends hn_hoffman_bound.py with multiple unit-distance graphs:
- Moser spindle (7v, χ=4)
- Golomb graph (10v, χ=4)
- Baselines: empty, path P10, cycle C5, complete K4
- de Grey 1581 + pruned subgraphs (with --full flag)
- Hoffman bound AND Welch-Wynn bound (Lovász theta lower bound)
- Spectral database: (n, e, λ_max, λ_min, Hoffman, Welch-Wynn, known χ, gap)
- Gap measures how much chromatic info is NOT in the spectrum
Requires numpy (and scipy for --full SDP, with fallback).
2. formal/CoreFormalism/CRTSidonN.lean
Generalizes sidon_preserved_mod from 2 moduli to n moduli.
Key new lemma: mod_eq_of_coprime_list (generalized CRT uniqueness)
- Proven by induction on moduli list using 2-moduli case as step
- Core sublemma: pairwise_coprime_product_dvd (if pairwise coprime
list and each divides d, product divides d)
- reflection_implies_sum_cong: reflection component → sum congruence
(same algebra as 2-moduli case, generalized)
- Main theorem: sidon_preserved_mod_n
STATUS: written, needs lake build verification (no toolchain on edit box)
- Created AUTOPROOF_INFRASTRUCTURE.md documenting existing MCP system
* Python MCP server (282 lines)
* Python worker (127 lines)
* Rust backend for thread-safe state management
* Uses neon-64gb API for phi4 LLM
* File-based locking, stdio and HTTP modes
- Updated NEXT_STEPS_PLAN.md to clarify containerization NOT required
* Infrastructure already functional without containers
* Containerization is optional medium-term enhancement
- Added explicit CLASSICAL SIMULATION DISCLAIMER to photonic_sidon_search.py
clarifying that SLOS is a classical linear optical simulator, not quantum
- Clarified adversarial review count: 19 actionable findings + 6 deferred = 25 total
(session summary "14 issues" likely referred to Critical+High+Medium = 16)
The photonic_sidon_search.py script now uses encoder_q16.py (exact
Q16_16 fixed-point arithmetic) instead of float-based encoding.
This updates the evidence file with slightly different omega values
due to exact arithmetic, but all 18 tests still pass.
EVAL.md was regenerated with the photonic search results.
Imported from silversight-578413a4/orx/sidon-sofa-coloring-direction-a-finite-sidon-sofas-a-n-28a68926:
- encoder_q16.py: Exact Q16_16 fixed-point DNA encoder (replaces float-based pipeline)
- padic_encoder.py: P-adic valuation encoder via CRT prime partial logarithms
These encoders enable the T6_dna test in photonic_sidon_search.py to pass,
bringing the full test suite to 18 PASS, 0 FAIL.
Imported from silversight-578413a4/orx/sidon-sofa-coloring-direction-a-finite-sidon-sofas-a-n-28a68926:
- photonic_sidon_search.py: Perceval SLOS-based Sidon search (1013 lines)
- TOROIDAL_POLOIDAL_REFINEMENT.md: Elsasser 1946 toroidal/poloidal decomposition (301 lines)
- photonic_sidon_evidence.jsonl: Test evidence (17 PASS, 1 FAIL - DNA encoder test)
- EVAL_photonic.md: Photonic search evaluation
Note: photonic_sidon_search.py has 1 test failure (T6_dna) that needs investigation.
The script also overwrote EVAL.md during execution, which has been restored from git.
Critical correction to Direction A results:
Old tolerance: |d - 1| < 0.05 (5%)
New tolerance: |d - 1| < 1e-05 (0.001%)
Impact:
- χ values dropped from 12-24 to 1-2
- Most configurations now feasible (was mostly infeasible)
- Edge counts dropped from 200+ to 0-5
The original 5% tolerance was too loose, counting points as 'unit distance'
when they were actually up to 5% away. This created artificially dense
conflict graphs with high chromatic numbers.
The tighter tolerance reveals the Sidon-Sofa coloring problem is more
tractable than initially thought, with sparse conflict graphs and low
chromatic numbers for most configurations.
Hardcoded random.Random(42) replaced with passed seed so --seed
actually varies the DSATUR vertex ordering. Confirmed: 16 QRNG
seeds produce varying chromatics (rectangle n=8 q=1: chi 10 vs 11).
Other configurations are DSATUR-stable (seed-independent).
Direction F referenced FPGA/NIICore/FAMM/CMYK/Tang Nano 9K hardware
that is no longer part of SilverSight. Removed entirely.
Directions A-E remain as the active research directions for the
Sidon-Sofa Coloring problem.
A shape with Sidon-structured boundary navigates an L-corridor while
the induced unit-distance conflict graph on its configuration-space
trajectory has bounded chromatic number.
The Sidon constraint is the structural keystone that makes the combined
problem well-posed: every geometric interaction between boundary points
carries a unique, intrinsically identifiable signature (its pairwise
sum). Without it, the conflict graph has too much ambiguity. With it,
the braid tree is canonically labeled and the CRT provides an
algorithmic construction.
Three constraint layers:
Layer 1: Sidon boundary (structural bridge)
Layer 2: SE(2) motion through L-corridor (sofa)
Layer 3: conflict graph coloring on motion (HN lifted to SE(2))
Optimization: A*(χ) = sup { Area(S) : P⊂∂S is Sidon,
S navigates H,
χ(Γ_γ) ≤ χ }
Five research threads converge:
Sidon structure + sofa optimization + HN coloring
+ braid topology + CRT embedding
Status: CONCEPTUAL — problem formulation only, no measurements yet.
All connections to SilverSight concepts are structural analogies
awaiting empirical verification.
The key insight: standalone they are insanely hard, together they
either melt the model or reveal structure. This is better than 3-SAT
because both components are unsolved — any result is novel.
Combined: sofa navigates corridor (continuous) AND at each step,
occupied positions form a valid unit-distance coloring (discrete).
This is the matter→light move at its deepest.
True Sidon sets stay Sidon across all 50 modulus configs. Non-Sidon never become Sidon.
Capacity: 8→43.7b, 12→74.3b, 16→106.2b headroom.
Integer-only, no float, correct CRT reconstruction.
Claude Code completed the prime-Sidon spectral detection test:
- 35 test cases
- 0/35 significant after Bonferroni correction
- Adversarial review caught a tautology in original methodology
- Null hypothesis properly added
- Negative finding is properly bounded
ENE database: session prime-sidon-negative-001 (promoted)
GitHub: commit a0d95049
This is a third measured data point for the octagon:
- Sidon sets: YES (4/4)
- Graph coloring: YES (Hoffman)
- Prime distribution: NO (0/35) ← NEW
- Graph isomorphism: NO (cospectral)
- Text: NO (3.088 b/B)
The octagon is NOT universal. It works for some problems and
fails for others. The research question: what determines which
problems have spectral signatures?
35 test cases across 7 scales (small through quintillion) and 5 sizes.
Result: 1/35 significant at p<0.05 (0/35 after Bonferroni).
Null hypothesis not rejected.
Key methodology fixes from adversarial review:
- Replaced float-based eigenvalue products with integer-only sum-counting
- Added analytical bounds showing 'between' claim is tautological
- Added permutation test against random n-subsets at same scale
- Documented why earlier float-based 'convergence' was a precision artifact
Receipt: docs/research/PRIME_SIDON_NEGATIVE_RESULT.md
DAG: .openresearch/artifacts/prime_sidon_dag.json (51 nodes, 35 edges)
Script: scripts/prime_sidon_explore.py
Build: N/A (Python script, no Lean build)
5-minute per-shot limit on Quandela cloud. Script handles this with:
1. RECOVERABLE DAG: each computation step is a DAG node
- Checkpointed to disk after each node
- If a shot times out, resume from last checkpoint with --resume
- The DAG records HOW SLOS computes (the path, not just the result)
- This is informative: the computation structure IS data
2. NODE TYPES:
- eigenvalue_products: cheap (O(n^k)), always runs
- slos_circuit: circuit built, about to sample
- slos: the actual SLOS simulation (5-min limit)
- compare: eigenvalue products vs SLOS output
3. EDGE TYPES:
- products → compare (comparison depends on products)
- slos → compare (comparison depends on SLOS)
4. CHECKPOINTS:
- Each node saved to .openresearch/artifacts/slos_checkpoints/node_<id>.json
- Full DAG state saved to slos_computation_dag.json
- --resume flag loads DAG state and skips already-computed nodes
5. DAG REPORT:
- slos_computation_dag.md: human-readable report of all nodes
- Records: what was computed, when, how long, what it found
- The computation path itself is data about how SLOS processes
the Sidon structure
Usage:
# Local
python3 scripts/perceval_slos_verify.py
# Quandela cloud (5-min/shot limit)
PERCEVAL_TOKEN='token' python3 scripts/perceval_slos_verify.py --cloud
# Resume after timeout
python3 scripts/perceval_slos_verify.py --resume
Tests:
- T1: Sidon vs non-Sidon at K=2 and K=3
- 4 test cases × 2 photon numbers = 8 SLOS shots
- Each shot: ~5 min on cloud (or seconds local)
- Total cloud time: ~40 min (8 shots)
- DAG records the exact computation path for each shot
New folder: docs/living/ — for goals that change daily, not stable
findings (those stay in docs/research/).
Documents:
- README.md: rules for living docs (overwrite freely, one sentence
per target, link to findings, honesty tag)
- TARGETS.md: 5 active targets (invariant geometry, reaction primes,
merged O(1), formal cleanup, encoder fidelity) + 3 dead + 3 candidate
- PROJECT_MAP.md: what SilverSight IS right now (not what it was)
- MILESTONES.md: 5 near-term milestones with success criteria
(3-SAT spectral test, cmix SVD, SLOS eigenvalue products,
CRT hachimoji pairing, reaction prime proof)
- OPEN_QUESTIONS.md: 8 unanswered questions
- DIRECTION_LOG.md: 5 direction changes from this session, with
the reason for each
Living docs rules:
- No measurement required (goals, not findings)
- Overwrite freely (git history preserves old versions)
- One sentence per target
- Link to docs/research/ for backing evidence
- Honesty tag: MEASURED / OPEN / SPECULATIVE
Capstone document connecting the session's conceptual framework to
all measured findings.
One-sentence statement: 'Computation in the space of invariants,
rather than in any specific representation.'
The matter→light move: nonlinear constraints (matter) → spectral
decomposition (light) → invariant extraction (truth).
The observerless observer = invariant geometry: computation defined
without privileging any representation. Results extracted by
choosing invariants that survive ALL representations. The Φ-metric
defines the geometry of observability.
Three 'endian' regimes = three projections of the same invariant
geometry:
- Big-endian: global invariants (QR/eigenvalues)
- Little-endian: local rules (KV cache/PPM)
- Water/block: continuous dynamics (golden spiral/SLOS)
Key limitation: symmetry group balance.
- Too much symmetry → no computation (cospectral graphs)
- Too little symmetry → no compression (text at 3.088 b/B)
Conservation law = invariant preservation:
total invariant information ≥ K(data)
Every session measurement maps to invariant language:
- Octagon (4/4) = Φ-metric converts nonlinear → spectral invariant
- Conservation (8 branches) = invariant preservation bound
- CRT (O(1)) = coprime invariant reconstruction
- p-adic = prime invariant decomposition
- Cospectral failure = same invariants, different objects
- Etesami-Haemers = invariant embedding at O(n²)
- GW SNR = signal invariant, noise representation-dependent
- Reaction primes = prime factorization = invariant decomposition
Pipeline = invariant extraction engine:
DNA (matter) → matrix (operator) → spectrum (light) → invariants (truth)