**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: 1. Choose a base braid word w = σ₁ σ₂ σ₃ ... (the "spine") 2. For each crossing, choose chirality εᵢ ∈ {+1, -1} 3. A batch of B configurations = B different chirality assignments ε¹ = (+1, +1, +1, ...), ε² = (+1, +1, -1, ...), etc. 4. All B configurations share the same braid SPINE (which strands cross) but differ in CHIRALITY (how they cross) 5. 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) 6. 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: 1. The identity component is shared (not recomputed) 2. The Sidon check can be parallelized across configurations 3. 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: 1. Fix q at the optimal value (q > 1, e.g. q = 3/2) 2. Sweep chiral configurations (256 variants) 3. 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) ```python 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 1. Fix L₀ = 7 (optimal from capacity envelope) 2. 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 3. Compare to sequential q-sweep results ### Phase 3: Dual Quaternion Chiral Filter 1. For each chiral configuration, compute dual quaternion products 2. Apply Sidon filter to dual quaternion products (not CRT sums) 3. 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?