Commit graph

2 commits

Author SHA1 Message Date
Maximus Gorog
2f33791809 Fix render_braiding.rs: transitive for wire endpoints, direct for surface boundaries
Wire endpoints and surface boundaries require different computation methods:

- Wire endpoints: TRANSITIVE reachability to vertices
  A strand spans between vertices even if poset path has intermediate points.
  Most wires connect both v₀ and v₁; only wire 14 is a self-loop.

- Surface boundary_wires: DIRECT covering relations only
  The immediate boundary of a surface is its direct predecessor/successor wires.
  Surfaces have 1-3 boundary wires (was 1-7 with transitive).

Updated:
- examples/render_braiding.rs: restored reachable_from for wire endpoints
- fixtures/half_braid_geometry.json: correct wire endpoints + direct surface boundaries
- web/zigzag-renderer.jsx: updated embedded geometry data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 01:25:50 -06:00
Maximus Gorog
5454c02328 Fix explosion.rs over-approximation: use cospan rewrite data for correct covering relations
- Replace all-to-all sub-poset connection with rewrite-based correspondence
- Add compute_subpoint_correspondence() using cone structure for 3 cases:
  identity (1-to-1), contraction (many-to-one), insertion (index shift)
- Add compute_height_maps() for singular and regular height tracking
- Covering relations reduced from 114 to 35 for half_braid (69% reduction)
- Surface 3 (r0,s0,r0): 9 spurious successors → 3 correct successors
- 175 tests passing, 0 failures
- Regenerated fixtures/half_braid_geometry.json with corrected boundaries

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 00:54:18 -06:00