Zigzag engine: cubical/string-diagram constructions in Rust. Reference for topolei.
Complete implementation of the zigzag normalisation algorithm from the LICS 2022 paper "Zigzag normalisation for associative n-categories". Key changes: - diagram.rs: Add DiagramMap composition, singular_map extraction - degeneracy.rs: Add extract_singular_map() and height checking functions - normalise.rs: Complete Construction 17 with essential identity detection The algorithm: 1. Recursively normalise at each regular height 2. Recursively normalise at each singular height with cospan leg composites 3. Assemble into intermediate diagram P 4. Remove trivial cospans (ONLY if identity AND not in sink image) 5. Compose degeneracies: d = dP ∘ dS Critical: In dimension >= 4, some identity cospans are ESSENTIAL and must be preserved if they are in the image of any sink map. All 57 tests pass. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||