SilverSight/docs/research/failed/CHIRAL_BATCH_ENCODING.md
openresearch 2f0328602f fix: agent-reviewed Lean fixes + reorganize rejected theories
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
2026-07-04 22:28:09 +00:00

322 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**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?