Skip to content

Conventions and scope

Conventions and mathematical background

The coproduct is Δ(E) = E⊗1 + K⊗E, Δ(F) = F⊗K^{-1} + 1⊗F, Δ(K) = K⊗K.

R_matrix_V1() is the historical upper-triangular matrix diag(q, 1, 1, q) plus the entry q - q^{-1}: the image of Drinfeld's universal R-matrix on V_1 ⊗ V_1 multiplied by q^{1/2} (Drinfeld 1987, §13, pp. 816–817; derivation in AUDIT.md §4). It intertwines the opposite of the package coproduct. For the package coproduct and its tensor-product submodules use R_matrix_V1_coproduct() (= R_21 = P R P) and R_check_V1_coproduct() (= R P); intertwining_residual_V1(X) exposes the check for X in E, F, K, K_inv. Both conventions satisfy the QYBE and the Hecke relation, but their braid eigenspaces differ. The historical function is kept unchanged so that earlier results remain reproducible.

Exact Python integers are converted to SymPy integers; floats remain approximate. The default parameter is a generic nonzero symbol q; identities are rational in q and hold where denominators are defined. The defining commutator quotient excludes q = ±1 (use the classical-limit helpers there). At roots of unity the modules need not be irreducible or semisimple, and the Clebsch–Gordan routine assumes generic q.

For GL_q(2|1) the basis parities are (0, 0, 1). The matrix matches the unnumbered display on printed page 261 of Çelik and Çelik, Reports on Mathematical Physics 88 (2021) 259–269; every entry is fixed by a test. General placements accept even (parity-preserving) operators only.

Scope and limitations

  • Checks run on explicit finite-dimensional representations; they do not prove identities in the abstract Hopf algebra or classify representations.
  • A residual that SymPy does not simplify to zero is not by itself a proof of inequality (simplify is not a decision procedure).
  • Root-of-unity helpers are examples; the small quantum group is not implemented. B(n) is a combinatorial model, not a crystal-basis algorithm.
  • The RTT relations, Hopf superalgebra and Gauss decomposition of GL_q(2|1), Markov traces and the Jones polynomial are not implemented.
  • Dense symbolic matrices grow as 3^n. Recorded timings (benchmarks/results.md; Python 3.11, SymPy 1.14, 2.1 GHz Xeon, mean of 3):
Check n Matrix size Mean time
graded_yang_baxter_holds_GLq21 3 27x27 0.06 s
all_Rij_GLq21 4 81x81 0.98 s
local_ybe_on_four_tensor_GLq21 4 81x81 1.56 s
all_Rij_GLq21 5 243x243 14.6 s
graded YBE on one triple, incl. embedding 5 243x243 15.2 s

At n = 5 building the embeddings dominates. n ≥ 6 has not been benchmarked. Rerun with python benchmarks/benchmark.py (overwrites the recorded table) or make benchmark-smoke (writes to build/).

GAP's QuaGroup (W. A. de Graaf) and SageMath's QuantumGroup interface to it are far more general: they compute with U_q(g) for semisimple g, including highest-weight modules, R-matrices and canonical/crystal bases; SageMath also has crystals for gl(m|n). This package does not replace them. It is a small pure-Python layer for checking the explicit matrices of a particular text, in its basis order and conventions, including the graded GL_q(2|1) example, which lies outside QuaGroup's documented U_q(g) scope. For general U_q(g) computations, use those systems. Section 6.3 of the userguide (scipost/) tests matrices computed by QuaGroup with this package and identifies where the two systems' conventions differ.