SilverSight/docs/research/braid_group_action.md
allaun 3362d554d1 feat(braid/dag): land untracked research WIP + register 4 formal libs; ignore build artifacts
- lakefile.lean: register SilverSight.{AngrySphinx,CollatzBraid,GoldenSpiral,GCCL}
- docs/research/: braid group action, iteration DAG/regime, Sidon
  preservation/creation, unified CRT-torus DAG notes
- docs/diagrams/: DAG + heatmap + 8-strand search JSON/dot outputs
- formal/CoreFormalism/StrandCapacityBound.lean: capacity bound (passes
  hardened anti-smuggle --ci)
- scripts/, python/: braid word solver, collapse/DAG search + tuning,
  heatmap gen, YB search/verification, wrapping verifier
- .gitignore: exclude rust/**/target and coq compiled artifacts
  (*.vo/*.vok/*.vos/*.glob/*.aux) that were polluting the tree

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:11:37 -05:00

229 lines
9.7 KiB
Markdown
Raw 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.

# CRT Torus Embedding: Braid Group Action (Dual-Model Framework)
The CRT torus supports two complementary braid models: an **axis-swap model**
that satisfies the braid group relations exactly, and a **modulus-adjustment
model** that bounds expressible braid word length through coprimality constraints.
---
## 1. The Two Models
| Aspect | Axis-Swap (configuration) | Modulus-Adjustment (resource) |
|--------|--------------------------|------------------------------|
| What changes | Reflection modulus positions | Reflection modulus values |
| Preserves | Modulus values | Modulus positions |
| Satisfies braid relations | **Yes** (σᵢ²=id, YB, far commute) | **No** (YB fails, σ² may fail) |
| Bounding factor | None (free permutation) | Coprimality (spacing between strands) |
| Verified | Provider-NixOS (4-core) | Provider-NixOS |
| Use | Braid group action on F | Braid word maximum length |
The two models are **complementary**, not competing. The axis-swap model
defines the **topology** (braid group action Bₙ on the reflection moduli).
The modulus-adjustment model defines the **physics** (changing modulus values
to create Sidon via the wrapping criterion).
### Critical distinction
| Property | Axis-Swap | Adjustment |
|----------|-----------|------------|
| Changes FA values? | **No** (CRT symmetry) | **Yes** |
| Why? | CRT is symmetric under modulus permutation; swapping reflection residues between strands doesn't change the unique CRT lift | Modulus values change → residues change → CRT lift is genuinely different |
| Verified | 4 test sets: reflection-closed, asymmetric, random, sparse — all give identical FA | The Sidon theorem and wrapping criterion |
| Role in DAG | Defines braid word (which strands cross) | Creates Sidon (which FA values emerge) |
The axis-swap produces identical FA values because the CRT computation is
commutative: the unique solution in [0, ∏Lᵢ) depends only on the multiset
of (residue, modulus) pairs, not on their ordering. Permuting the reflection
moduli across strands is a reordering of the CRT factors — the result is
the same for every element a ∈ A.
**Implication for the DAG:** Finding Sidon via axis-swap is impossible when
the CRT uses all moduli simultaneously (which it does — the k-modulus CRT
lifts all residues together). Sidon creation requires the adjustment model
to change actual modulus values.
---
## 2. Model 1: Axis-Swap (Braids Satisfied)
Each braid generator σᵢ swaps the **reflection moduli** of adjacent strands
while leaving identity moduli unchanged:
```
σᵢ: (L₂ᵢ, L₂ᵢ₊₂) → (L₂ᵢ₊₂, L₂ᵢ) [swap reflection axes i and i+1]
identity axes: L₂ᵢ₋₁, L₂ᵢ₊₁ unchanged
```
For a 3-strand system with 6 moduli [L₁, L₂, L₃, L₄, L₅, L₆]:
| Generator | Acted indices | Effect |
|-----------|-------------|--------|
| σ₁ | (L₂, L₄) | L₂ ↔ L₄ |
| σ₂ | (L₄, L₆) | L₄ ↔ L₆ |
| σ₁σ₂σ₁ | (L₂, L₄, L₆) | (L₂, L₄, L₆) → (L₆, L₂, L₄) |
| σ₂σ₁σ₂ | (L₂, L₄, L₆) | (L₂, L₄, L₆) → (L₆, L₂, L₄) |
### Verified braid axioms
| Axiom | Status | Test on (2,3,5,7,11,13) |
|-------|--------|--------------------------|
| σᵢ² = id | ✓ | s1(s1(mods)) == mods |
| σᵢσⱼ = σⱼσᵢ (|ij|≥2) | ✓ | Disjoint swaps commute structurally |
| σ₁σ₂σ₁ = σ₂σ₁σ₂ | ✓ | Both → [2,13,5,7,11,3] |
| σᵢ acts on strand i | ✓ | Direct from definition |
**Proof of YB.** Let σᵢ be the transposition of positions (i, i+1) in the
reflection modulus sequence. The braid relation (σσ_{i+1})³ = id is
the standard Coxeter relation in Sₙ, which holds for adjacent transpositions.
The verification is immediate in the permutation representation.
### Implication
The CRT torus with axis-swap carries a **permutation representation**
of Bₙ on the reflection moduli that **factors through Sₙ** — because
σᵢ² = id in the swap action, it loses the infinite-order structure of
braid generators. This is still a valid representation of Bₙ (the
permutation representation), but it is not faithful: all non-trivial
braids with the same permutation of strands produce the same state.
The identity moduli are fixed by all braid generators, acting as a
reference frame.
---
## 3. Model 2: Modulus-Adjustment (Word Length Bound)
Each crossing **adjusts** the modulus values of the crossed strand:
```
σᵢ⁺: (L_id, L_ref) → (L_id + 2, max(L_ref 1, 2)) over-crossing
σᵢ⁻: (L_id, L_ref) → (max(L_id 1, 2), L_ref + 2) under-crossing
```
After crossing, ALL moduli across ALL strands must remain pairwise coprime.
This is the **coprimality constraint**.
### Why YB fails here
The YB relation compares two paths: σ₁⁺σ₂⁻σ₁⁺ vs σ₂⁻σ₁⁺σ₂⁻.
After 3 crossings, the two paths end at **different modulus values**:
| Path | Strand 1 end state | Strand 2 end state |
|------|-------------------|-------------------|
| σ₁⁺σ₂⁻σ₁⁺ | (a+4, b2) | (c1, d+2) |
| σ₂⁻σ₁⁺σ₂⁻ | (a+2, b1) | (c2, d+4) |
These differ (a+4 ≠ a+2, etc.), so the operator relation σ₁σ₂σ₁ = σ₂σ₁σ₂
does NOT hold as an equality of modulus states. (The permutation action
is different — see Model 1.)
### Word length bound theorem
For an N-strand system with moduli (L₁, L₂, …, L₂ₙ), the maximum number
of consecutive crossings on strand i before coprimality with some other
strand j fails is bounded by:
```
max_crossings(i) ≤ min_{j≠i} (spacing(L_i, L_j) / 2)
```
where spacing(L_i, L_j) = min(L_j_values) max(L_i_values) after 0 crossings.
**Proof.** Each crossing changes strand i's moduli by at most +2 / 1.
After k crossings, the range of strand i's values shifts by O(k).
If strand i's values overlap with strand j's values, coprimality may
fail (but is not guaranteed to — actual failure depends on prime factors).
The bound is the worst case (when strand i's growing moduli encounter
strand j's values sharing a prime factor).
**Empirical verification:**
| Test | Max crossings | Config |
|------|-------------|--------|
| 1 strand, no neighbors | unlimited | (5,3) works for 10+ |
| 2 strands, spacing~12 | 34 | (3,5),(17,29) |
| 2 strands, spacing~100 | Not tested (YB fails structurally) | — |
| 2 strands, YB-path coprimality | 3 crossings need spacing >2000 | No 4-tuple found up to M=2000 |
---
## 4. Combined Framework
The two models work together in the full CRT torus:
```
Phase 1 (Sidon via adjustment):
Start with small moduli in wrapping regime (maxA < M ≤ 2·maxA)
→ Apply adjustment model to break collisions
→ When Sidon found: record FA, proceed to Phase 2
Phase 2 (Braid orbit via axis-swap):
Expand moduli to N-strand coprime configuration (prime-product method)
→ Apply axis-swap generators to define braid word
→ FA values are invariant (CRT symmetry)
→ Braid word tracks the topological crossing history
Phase 3 (Resource management):
When more crossings needed: apply adjustment model
→ Each crossing consumes spacing capacity
→ When spacing exhausted: regenerate moduli
→ Regeneration = Markov stabilization (add trivial pair)
```
### Practical bound for N-strand configurations (individual primes)
Each modulus is a distinct prime, selected with minimum band gap = 2 × max_crossings.
For max_crossings = 15 (band gap = 30), verified on provider-nixos:
| Strands | Moduli | Band gap | Capacity/strand | Max modulus | < 32767? |
|---------|--------|----------|-----------------|-------------|----------|
| 3 | 6 | 30 | ~15 | 127 | |
| 4 | 8 | 30 | ~15 | 257 | |
| 6 | 12 | 30 | ~15 | 383 | |
| 8 | 16 | 30 | ~15 | 509 | |
All moduli are Q16_16-compatible (max 509 << 32767). The FA values
produced by CRT reconstruction are large integers (~10^50 for 16 moduli)
and are **not** Q16_16-compatible they must be stored as arbitrary-
precision integers. Only the moduli use Q16_16's bounded range.
Capacity-per-strand is the half-band gap (15 crossings before values
drift into the next strand's band and risk equality-collision). For
larger capacity, widen the band gap or use more distant primes.
---
## 5. Verified Axioms (Summary)
| Axiom | Axis-swap model | Adjustment model |
|-------|----------------|-----------------|
| σᵢ acts on strand i | | |
| σᵢ² = id | | (may fail after 1st) |
| σᵢσⱼ = σⱼσᵢ (|ij|≥2) | | (disjoint moduli) |
| σσσ = σσσ | | (paths diverge) |
| Over/under distinction | (swap direction) | (L_id > L_ref) |
| Braid word length bound | — | ✓ (coprimality constraint) |
---
## 6. Open Questions
1. **Adjustment model as Sidon engine** — the axis-swap model is a CRT
symmetry (FA invariant), so adjustment is the sole source of Sidon
creation. Can the adjustment model be characterized as a rewrite system
on modulus values with known convergence bounds?
2. **Braid invariants from M-differences** — the M-difference condition
from the Sidon theorem creates invariants that depend on braid word
composition. Since axis-swap is FA-invariant, the braid word is
tracked as a separate topological invariant.
3. **Modulus regeneration as braid stabilization** — when spacing is
exhausted, the iteration regime regenerates moduli. This corresponds
to a Markov stabilization move in knot theory: adding a trivial pair
(extending the braid by an identity strand) to continue the computation.
4. **Phase transition: CRT small-modulus → prime-product** — the transition
from small wrapping-regime moduli (~320) to large resource-regime
moduli (~10016000) is discontinuous. What controls this transition,
and can it be made continuous (gradual modulus growth)?