Skip to content

Fix the underbraiding hexagon equation for generic fusion - #119

Merged
lkdvos merged 1 commit into
mainfrom
fix-hexagon-underbraiding
Oct 28, 2026
Merged

lkdvos merged 1 commit into
mainfrom
fix-hexagon-underbraiding

Conversation

@lkdvos

@lkdvos lkdvos commented Oct 28, 2026

Copy link
Copy Markdown
Member

For GenericFusion sectors, the second (underbraiding) equation in hexagon_equation used conj(R) for the inverse braiding. The inverse of a unitary R-symbol is its adjoint, so the first two indices of Race, Rbcf and Rgcd also need to be swapped. This is the same fix that #92 made in the Artin braid test, and it matches what TensorKit uses for inv = true braids (Rsymbol(b, a, c)' in braidingtensor.jl and fusiontrees/braiding_manipulations.jl).

The two versions differ only when an R-symbol is not symmetric. No sector in this package has such an R-symbol: the only one with multiplicities, the 2×2 R-symbol of A4Irrep, is symmetric. So the existing tests pass either way. SU(3) irreps from SUNRepresentations.jl do have non-symmetric R-symbols. With TensorKitSectors' sector testsuite (QuantumKitHub/SUNRepresentations.jl#44), for example, hexagon_equation(SU3Irrep((4, 1, 0)), SU3Irrep((3, 0, 0)), SU3Irrep((4, 2, 0))) failed with a mismatch of 4e-2 before this PR. For the five SU(3) triples that failed there:

  • before this PR: the first (overbraiding) equation holds to 5e-15, and the second fails by 4–7e-2;
  • with this PR: both equations hold to 5e-15.

The F- and R-symbols themselves are consistent with the SU(3) Clebsch–Gordan coefficients they are computed from: the F-move matches to 1e-12 and the R-move to 3e-15.

The multiplicity-free branch is unchanged, since R-symbols are scalars there.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lkdvos
lkdvos requested a review from borisdevos October 28, 2026 21:50

@borisdevos borisdevos left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should wait till tests pass for certainty, but this change does make sense. Silly of me to not have caught this myself, thanks for the fix!

@lkdvos
lkdvos enabled auto-merge (squash) October 28, 2026 22:29
@codecov

codecov Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
src/sectors.jl 94.40% <100.00%> (ø)

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lkdvos
lkdvos merged commit 51f8a81 into main Oct 28, 2026
12 checks passed
@lkdvos
lkdvos deleted the fix-hexagon-underbraiding branch October 28, 2026 23:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants