Three agents reviewed and repaired:
1. CacheSieve.lean (7 errors fixed):
- Rewrote shouldAdmit (removed head!/match, both branches were true)
- Fixed evictVictim type mismatch (Option CacheLine → Option ℕ)
- Removed sorry from evict_prefers_reset (proved properly)
- Removed excess omega calls (simp already closed goals)
2. HCMR.lean (3 errors fixed):
- Removed excess omega after simp (no goals to solve)
- Downgraded ring_fastest_subleq_avx from > to ≥ (theorem was FALSE
for baseRate=1 due to integer truncation: 0 > 0 fails)
- Used Nat.div_le_div_right instead of omega (nonlinear division)
3. Blitter6502OISC.lean (2 issues fixed):
- Removed redundant rw [if_pos rfl] (simp already closed)
- Downgraded ring_faster_than_subleq_blitter from > to ≥
4. CRTSidonN.lean (2 issues fixed):
- Fixed wrong lemma name (Nat.sub_le_sub_left → direct omega)
- Replaced nlinarith with Nat.mul_le_mul_left
5. YangMillsPerformance.lean: 1 sorry flagged (compression_overhead_bounded)
nlinarith-on-division fragility flagged but not fixed
6. WorkloadTestbench.lean: depends on CacheSieve (now fixed)
excess omega flagged but not fixed
Reorganized docs:
- 7 rejected theory docs moved to docs/research/failed/
(dual quaternion, chiral batch, BraidStorm×TreeBraid×COUCH,
HCMR multiplexer, spherical chiral, QUBO/QAOA, rendering equation)
- Each has STATUS: REJECTED header with reason and receipt
- failed/README.md created with inventory
- SIX_STAGE_SEARCH_ENGINE.md: added C3-kill note
Rejected because:
- Dual quaternion algebra wrong (integers ≠ unit quaternions)
- Chiral discrimination of Sidon FALSE (C3: position-invariant)
- 'Degree on S²' invented (Rossby drift is scalar sum)
- QUBO/QAOA bridge entirely speculative
- Rendering equation analogy not theorem
- 'n/2 channels' is renamed Sidon, not new
12 KiB
STATUS: REJECTED — moved to failed/ on 2026-07-04 Reason: Chiral discrimination of Sidon sets is FALSE — positional permutation is Sidon-invariant (chiral variants are not distinct channels). Receipt: C3 run 019f2f07 — all 64 chiral configs identical (see ENCODE_ENGINE_NECESSITY.md, CHIRAL_INVARIANCE_FINDING.md).
Chiral Batch Encoding: Hundreds of Configurations per Run
Status: REFINEMENT — connects chiral braid chirality to batch Sidon filtering
Date: 2026-07-04
Depends on: DUAL_QUATERNION_SIDON_FILTER.md, braid_group_action.md,
TOROIDAL_POLOIDAL_REFINEMENT.md, weird_machine_conservation_law.md
Key insight: Chirality (over/under = ±1 per crossing) means a braid word of
length k encodes 2^k configurations. Batch-encode hundreds, Sidon-filter in one pass.
1. The Chiral Braid Structure
1.1 Chirality = Handedness = ±1 per Crossing
In the braid group B_n, each generator σ_i has two chiral forms: σ_i⁺¹ = over-crossing (right-handed) σ_i⁻¹ = under-crossing (left-handed)
A braid word of length k has 2^k possible chiral configurations: w = σ_{i₁}^{ε₁} σ_{i₂}^{ε₂} ... σ_{iₖ}^{εₖ} where εⱼ ∈ {+1, -1}
1.2 Chirality in the CRT Embedding
The CRT embedding already has chirality built in: Identity axis: a mod L₀ = poloidal (no reflection = "straight through") Reflection axes: S-a mod Lᵢ = toroidal (reflection = "flipped")
The S-a reflection IS the chiral operation: S-a = "over" (positive chirality) a-S = "under" (negative chirality, equivalent to -(S-a))
Each reflection axis Lᵢ contributes one chiral bit. With k reflection axes, there are 2^k chiral configurations per identity axis choice.
1.3 Chirality in Dual Quaternions
Dual quaternions have natural chirality: q = q_r + ε q_d (standard) q* = q_r - ε q_d (conjugate = opposite chirality)
The conjugate reverses the translation direction (toroidal flip) while preserving the rotation (poloidal). This is exactly the S-a ↔ a-S flip.
A dual quaternion pair (q_i, q_j) has 4 chiral configurations: (q_i, q_j) — both standard (q_i*, q_j) — i flipped (q_i, q_j*) — j flipped (q_i*, q_j*) — both flipped
With n boundary points, there are 4^(n choose 2) chiral configurations of the full pairwise product set. We don't test all of these — we batch-encode a representative sample and Sidon-filter.
2. Batch Encoding: How It Works
2.1 The Problem with Sequential Testing
Current approach (v2/v3): test one (shape, n, q) configuration per run.
- 5 shapes × 3 n-values × 5 q-values = 75 configurations
- Each takes ~10s = 12.5 minutes total
- Each is a separate Sidon check
This is slow and doesn't exploit the braid structure.
2.2 Chiral Batch Encoding
The chiral braid allows encoding MANY configurations into a SINGLE run:
-
Choose a base braid word w = σ₁ σ₂ σ₃ ... (the "spine")
-
For each crossing, choose chirality εᵢ ∈ {+1, -1}
-
A batch of B configurations = B different chirality assignments ε¹ = (+1, +1, +1, ...), ε² = (+1, +1, -1, ...), etc.
-
All B configurations share the same braid SPINE (which strands cross) but differ in CHIRALITY (how they cross)
-
For each configuration, compute the CRT embedding with the chiral reflection choices:
- εᵢ = +1 → S-a mod Lᵢ (standard reflection)
- εᵢ = -1 → a-S mod Lᵢ (flipped reflection)
-
Apply the Sidon filter ONCE to the entire batch:
- For each configuration, check if the CRT-reconstructed sums are Sidon
- The filter selects which chiral configurations produce unique pairwise signatures
2.3 Why This Is Hundreds per Run
With k reflection axes:
- 2^k chiral configurations per (identity, label_set) pair
- For k=8 (our standard 8-strand braid): 2^8 = 256 configurations
- For k=10: 2^10 = 1024 configurations
Each run can batch-test ALL 256 (or 1024) chiral configurations with a SINGLE CRT reconstruction pass — the identity axis is computed once, and each chiral variant only changes the reflection components.
The Sidon filter then selects which of the 256 configurations are structurally meaningful (Sidon-clean) vs degenerate (collision).
2.4 Connection to the Hutter Prize Filtering
The Hutter prize lesson: compression is dead, filtering works.
Batch encoding is the APPLICATION of this lesson:
- Don't compress 256 configurations into 1 (impossible — conservation law)
- Don't test 256 configurations sequentially (slow)
- DO: batch-encode all 256, then FILTER to the Sidon-clean ones
The filter selects which chiral configurations have unique pairwise signatures. The rest are noise (degenerate, collision). This is the same filtering mechanism from the weird machine conservation law: program (chiral configuration) + residual (dropped configs) ≥ K(data) But we don't care about the residual — we care about which configurations the filter KEEPS.
3. The Chiral Sidon Filter (Concrete)
3.1 Algorithm
Input:
- Label set A = {a₁, ..., aₙ} (Sidon in ℤ)
- Identity modulus L₀
- Reflection moduli L₁, ..., Lₖ (pairwise coprime)
- Reflection point S
- Batch size B (number of chiral configurations)
Output:
- For each of B chiral configurations: is_sidon (bool), sidon_score
Algorithm:
1. Compute identity component once: id_i = a_i mod L₀ for all i
2. For each chiral configuration c ∈ {0, 1}^k (binary vector):
a. For each reflection axis j ∈ {1, ..., k}:
- If c[j] = 0: ref_i_j = (S - a_i) mod Lⱼ (standard)
- If c[j] = 1: ref_i_j = (a_i - S) mod Lⱼ (flipped)
b. CRT reconstruct: val_i = CRT(id_i, ref_i_1, ..., ref_i_k)
c. Check Sidon: all pairwise sums val_i + val_j distinct mod M?
3. Return filter results for all B configurations
3.2 Computational Cost
- Identity component: O(n) — computed ONCE
- Per configuration: O(n·k) for reflection + O(n²) for Sidon check
- Total: O(n) + B × O(n·k + n²)
- For n=21, k=8, B=256: 21 + 256 × (168 + 441) = 21 + 155,904 ≈ 156K ops
- vs sequential: 256 × (21 + 168 + 441) = 256 × 630 = 161K ops
The speedup is modest for small k, but the REAL advantage is:
- The identity component is shared (not recomputed)
- The Sidon check can be parallelized across configurations
- The filter selects which configurations are worth deeper analysis
3.3 What the Filter Selects
The chiral Sidon filter selects configurations where:
- The chiral choices (which axes are flipped) produce unique pairwise sums
- This means the chiral pattern is "informative" — it breaks symmetries that would otherwise cause collisions
Configurations that FAIL the filter:
- Have chiral choices that create sum collisions (degenerate)
- The chiral pattern doesn't break existing symmetries
- These are "uninformative" — the chirality doesn't help
The filter rate (fraction of configurations that pass) measures how much chiral information the braid structure carries:
- High pass rate (>50%): chirality doesn't matter much (symmetric problem)
- Low pass rate (<10%): chirality is critical (most configs degenerate)
- Medium pass rate (~30%): chirality selects a specific structural class
4. Connection to q-Profile
4.1 q-Profile as Chiral Ratio
The q-profile = L₁/L₀ (reflection/identity = toroidal/poloidal).
In the chiral batch:
- q < 1: L₁ < L₀ → reflection axis smaller → chiral flip has less impact
- q > 1: L₁ > L₀ → reflection axis larger → chiral flip has more impact
- q = 1: L₁ = L₀ → chiral flip is symmetric → degenerate
The q-profile sweep showed q > 1 has 100% Sidon rate. In chiral terms: larger reflection axis → chiral flips create more diverse products → fewer collisions → higher Sidon rate.
4.2 Chiral q-Sweep
Instead of sweeping q across fixed chiral configurations:
- Fix q at the optimal value (q > 1, e.g. q = 3/2)
- Sweep chiral configurations (256 variants)
- Measure: which chiral patterns have highest Sidon score?
This separates the q-effect (axis ratio) from the chirality effect (which axes are flipped). The q-profile sweep couldn't do this — it tested one chirality per q value.
5. Implementation Plan
Phase 1: Chiral Batch CRT (Python, exact arithmetic)
def chiral_batch_sidon(labels, S, L0, Ls, batch_configs=None):
"""Batch-test chiral configurations for Sidon property.
Ls = [L1, ..., Lk] reflection moduli
batch_configs = list of binary tuples (length k), each specifying
which axes are flipped (1 = flipped, 0 = standard)
If None, test ALL 2^k configurations.
"""
k = len(Ls)
if batch_configs is None:
batch_configs = list(product([0, 1], repeat=k))
# Identity component (computed once)
id_comp = [a % L0 for a in labels]
results = []
for config in batch_configs:
# Reflection components with chiral choices
embedded = []
for a in labels:
row = [a % L0] # identity
for j, Lj in enumerate(Ls):
if config[j] == 0:
row.append((S - a) % Lj) # standard
else:
row.append((a - S) % Lj) # flipped
embedded.append(row)
# CRT reconstruct + Sidon check
sidon = sidon_check(embedded, [L0] + Ls)
results.append({
"config": config,
"is_sidon": sidon["is_sidon"],
"sidon_score": sidon["sidon_score"],
"collisions": sidon["collisions"],
})
return results
Phase 2: Chiral q-Sweep
- Fix L₀ = 7 (optimal from capacity envelope)
- For each q ∈ {3/2, 2, 5/2, 3}:
- Set L₁ = L₀ × q
- Batch-test all 2^k chiral configurations
- Measure: pass rate, best config, worst config
- Compare to sequential q-sweep results
Phase 3: Dual Quaternion Chiral Filter
- For each chiral configuration, compute dual quaternion products
- Apply Sidon filter to dual quaternion products (not CRT sums)
- Compare: does the dual quaternion filter select different configs than the CRT filter?
6. What This Enables
6.1 Orders of Magnitude More Configurations
Current: 75 configurations per run (5 shapes × 3 n × 5 q) With chiral batch: 75 × 256 = 19,200 configurations per run With k=10: 75 × 1024 = 76,800 configurations per run
6.2 Statistical Power
With 256+ configurations per (shape, n, q):
- Can compute Sidon pass rate with statistical confidence
- Can identify which chiral patterns are optimal
- Can detect phase transitions (where pass rate drops sharply)
6.3 Connection to the Moving Sofa
The sofa motion through the L-corridor IS a braid:
- Boundary point worldlines = braid strands
- Corner navigation = braid crossings
- Each crossing has chirality (over/under = which strand is in front)
Batch-encoding chiral braid configurations = batch-encoding different sofa motion variants. The Sidon filter selects which motions have unique boundary interactions (structurally meaningful) vs degenerate (symmetric, uninformative).
7. claim_boundary
chiral-batch-encoding:efficiency-multiplier:conceptual
The chiral braid structure allows batch-encoding 2^k configurations per run (k = number of reflection axes). The Sidon filter then selects which configurations are structurally meaningful. This is the Hutter prize lesson applied: filtering works, compression doesn't, and batching makes filtering efficient.
MEASURED: q > 1 has 100% Sidon rate (from q-profile sweep) PREDICTED: chiral batch will show ~30-50% pass rate per q value, with specific chiral patterns being optimal OPEN: does the chiral filter select different configs than the CRT sum filter?