Skip to content

Commit

Permalink
Trac #29717: Cubic Hecke Algebras
Browse files Browse the repository at this point in the history
Cubic Hecke Algebras are factors of the group algebra of the Artin braid
groups, such that the images `s_i` of the braid generators satisfy a
cubic equation:

{{{
    s_i^3 = u s_i^2 - v s_i + w
}}}

Here `u, v, w` are elements in an arbitrary integral domain and `i` is a
positive integer less than `n`, the number of the braid group's strands.
By the analogue to the
[https://en.wikipedia.org/wiki/Iwahori%E2%80%93Hecke_algebra Iwahori
Hecke algebras] ([http://doc.sagemath.org/html/en/reference/algebras/sag
e/algebras/iwahori_hecke_algebra.html?highlight=iwahori%20hecke#module-
sage.algebras.iwahori_hecke_algebra Sage class]) in which the braid
generators satisfy a quadratic relation these algebras have been called
''cubic Hecke algebras''. The relations inherited from the braid group
are:

{{{
    s_i s_{i+1} s_i = s_{i+1} s_i s_{i+1} \mbox{ where } 1\leq i < n-1
\mbox{ and }
    s_i s_j = s_j s_i \mbox{ where } 1 \leq i < j - 1 < n - 1.
}}}

If the ring elements `u, v, w`  are taken to be `u = v = 0, w = 1` the
cubic Hecke algebra specializes to the group algebra of the [http://doc.
sagemath.org/html/en/reference/groups/sage/groups/cubic_braid.html?highl
ight=cubic%20braid#module-sage.groups.cubic_braid cubic braid group],
which is the factor group of the Artin braid group setting the
generators order to be three.

More information on these algebras can be found in
[http://www.lamfa.u-picardie.fr/marin/arts/GQ.pdf "A  MAXIMAL  CUBIC
QUOTIENT  OF  THE  BRAID  ALGEBRA"] and the references given there.

This ticket implements a class to work with them. It uses
[http://www.lamfa.u-picardie.fr/marin/representationH4-en.html data
files] supplied by Iwan Marin for a basis of the cubic Hecke algebras up
to 4 strands and corresponding regular representation matrices. For more
than two generators (number of strands larger than three) the
implementation is experimental with respect to the following two
aspects:

1. In a technical sense, since this class will cache results in the file
system, for example: images of braids to accelerate the calculation of
images of longer braid words or products of basis elements.
2. In a mathematical sense, since the cubic Hecke algebra on more than 4
strands is not equipped with an appropriate basis (not even an algorithm
to produce a flat basis according to Iwan Marin's work on the five
strand cubic Hecke algebra).
   At the moment, the "basis" for the algebras on more than 4 strands
grows randomly (starting from the one from the data files) according to
the users action, without any guarantee that this would lead to a
generating set behaving good under specializations.

In general, it would be desirable to replace the dependence on the data
files by algorithms implemented in this class. This would make sense as
soon as such algorithms have been found which cover the case of five
strands, as well.

The code is spread over two existing directories:
`src/sage/algebras/hecke_algebras/, src/sage/databases` and two new sub
directories in the former one: `base_rings_of_definition` and
`matrix_representations`. Both of the new directories contain just one
module. Their purpose is to describe the special properties of matrix
representations and base rings concerning the cubic Hecke algebra. Thus,
in the latter case the corresponding module contains special classes for
the most general base ring of the algebra (called the ''ring of
definition'') and a corresponding ring for the coefficients of the split
irreducible matrix representations.

From the point of view of the algebra the ring of definition must not
necessarily contain the roots of the defining cubic equation. Thus, it
is defined by `\Z[u, v, w, w^(-1)]` where the indeterminates are taken
from the coefficients of the underlying cubic equation `x**3 - u*x**2 +
v*x - w`. But, concerning the split irreducible representations the
roots (in Ivan Marin's papers often denoted `a, b, c`) are needed, and
in addition a third root of unity (for the nine-dimensional
representations of the cubic Hecke algebra on 4 strands). Accordingly,
this ring is realized as a Laurent polynomial ring in `a, b, c` over
`\Z` adjoined with a third root of unity. It can be considered as an
extension of the ring of definition, more precisely as the [https://doc.
sagemath.org/html/en/reference/algebras/sage/algebras/splitting_algebra.
html splitting algebra] of the cubic equation.

These both classes of base rings posses a method `create_specialization`
which allows the user to consider cubic Hecke algebras over other base
rings. Thus, the user may choose his own coefficients or roots of the
cubic equation as long, as they define a valid ring homomorphism from
the corresponding generic base ring.

The module for the matrix representations contains enum classes to
specify the type of the representation (left regular, right regular,
split irreducible) and to specify a certain irreducible. Furthermore, it
implements parent and element classes for a faithful representation (at
least in the case of less than 5 strands) in block diagonal structure
with irreducibles blocks (in the case of that representation type).

Everything that has to do with the access to the data files and the file
cache is implemented in `src/sage/databases/cubic_hecke_db.py`. The data
files are obtained via the `pip` installable package
[https://pypi.org/project/database-cubic-hecke/ database_cubic_hecke]
and the file cache in `$HOME/.sage/db/cubic_hecke/`. It is created at
runtime. Tests concerning the optional package are running as a
[https://github.com/soehms/sage/actions/workflows/tox-
database_cubic_hecke.yml GitHub workflow] which is derived from `tox-
optional`.

URL: https://trac.sagemath.org/29717
Reported by: soehms
Ticket author(s): Sebastian Oehms
Reviewer(s): Matthias Koeppe, Travis Scrimshaw
  • Loading branch information
Release Manager committed Aug 28, 2022
2 parents ee070f2 + 8d9deb2 commit a444241
Show file tree
Hide file tree
Showing 20 changed files with 7,961 additions and 267 deletions.
18 changes: 18 additions & 0 deletions build/pkgs/database_cubic_hecke/SPKG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
database_cubic_hecke: Ivan Marin's representations of the cubic Hecke algebra
=============================================================================

Description
-----------

Ivan Marin's representations of the cubic Hecke algebra on 4 strands as Python dictionaries

License
-------

GPL

Upstream Contact
----------------

https://pypi.org/project/database-cubic-hecke/

5 changes: 5 additions & 0 deletions build/pkgs/database_cubic_hecke/checksums.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
tarball=database_cubic_hecke-VERSION.tar.gz
sha1=f78ae31202fe077177f2c5059c028f9d40c20a46
md5=4f83516e155515f17ebd88c56bc0f31b
cksum=3948466130
upstream_url=https://pypi.io/packages/source/d/database_cubic_hecke/database_cubic_hecke-VERSION.tar.gz
4 changes: 4 additions & 0 deletions build/pkgs/database_cubic_hecke/dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
$(PYTHON) | $(PYTHON_TOOLCHAIN)

----------
All lines of this file are ignored except the first.
1 change: 1 addition & 0 deletions build/pkgs/database_cubic_hecke/dependencies_check
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$(SAGERUNTIME) conway_polynomials ipywidgets sympy singular gap libhomfly libbraiding matplotlib
1 change: 1 addition & 0 deletions build/pkgs/database_cubic_hecke/install-requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
database-cubic-hecke
1 change: 1 addition & 0 deletions build/pkgs/database_cubic_hecke/package-version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2022.3.1
11 changes: 11 additions & 0 deletions build/pkgs/database_cubic_hecke/spkg-check.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cd $SAGE_ROOT/src/sage/

OPTIONS="sage,database_cubic_hecke"
CHEVIE=$($SAGE_ROOT/sage -c "from sage.combinat.root_system.reflection_group_real import is_chevie_available; print(is_chevie_available())")
if [ $CHEVIE = "True" ]; then
OPTIONS=$OPTIONS",gap3"
fi

FILES="databases/cubic_hecke_db.py algebras/hecke_algebras/"
echo "Testing: "$FILES
sage -tp --long --optional=$OPTIONS $FILES || sdh_die "Error testing cubic Hecke algebra database"
2 changes: 2 additions & 0 deletions build/pkgs/database_cubic_hecke/spkg-install.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cd src
sdh_pip_install .
1 change: 1 addition & 0 deletions build/pkgs/database_cubic_hecke/type
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
optional
10 changes: 10 additions & 0 deletions src/doc/en/reference/algebras/cubic_hecke_algebra.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Cubic Hecke Algebras
====================

.. toctree::
:maxdepth: 2

sage/algebras/hecke_algebras/cubic_hecke_algebra
sage/algebras/hecke_algebras/cubic_hecke_base_ring
sage/algebras/hecke_algebras/cubic_hecke_matrix_rep

1 change: 1 addition & 0 deletions src/doc/en/reference/algebras/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ Hecke algebras
sage/algebras/iwahori_hecke_algebra
sage/algebras/nil_coxeter_algebra
sage/algebras/yokonuma_hecke_algebra
cubic_hecke_algebra

Graded algebras
---------------
Expand Down
1 change: 1 addition & 0 deletions src/doc/en/reference/databases/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,6 @@ database engine.
sage/databases/db_class_polynomials
sage/databases/db_modular_polynomials
sage/databases/knotinfo_db
sage/databases/cubic_hecke_db

.. include:: ../footer.txt
15 changes: 15 additions & 0 deletions src/doc/en/reference/references/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1578,6 +1578,10 @@ REFERENCES:
\J. Algebr. Comb. **39** (2014) pp. 17-51.
:doi:`10.1007/s10801-013-0437-x`, :arxiv:`1108.1776`.
.. [CM2012] \M. Cabanes, I. Marin, *On ternary quotients of cubic Hecke
algebras*, Comm. Math. Phys. (2012), Volume 314, Issue 1,
pp 57-92. :doi:`10.1007/s00220-012-1519-7`, :arxiv:`1010.1465`.
.. [CMN2014] David Coudert, Dorian Mazauric, and Nicolas Nisse, *Experimental
Evaluation of a Branch and Bound Algorithm for computing
Pathwidth*. In Symposium on Experimental Algorithms (SEA), volume
Expand Down Expand Up @@ -3405,6 +3409,9 @@ REFERENCES:
cellular logic networks and machines, AFCRL-68-0668, SRI Project
7258, Final Rep., pp. 20-28, 1968.
.. [Kau1991] \Louis Kauffman. *Knots and Physics*, World Scientific, 1991
:doi:`10.1142/4256`.
.. [Kaw2009] Kawahira, Tomoki. *An algorithm to draw external rays of the
Mandelbrot set*, Nagoya University, 23 Apr. 2009.
math.titech.ac.jp/~kawahira/programs/mandel-exray.pdf
Expand Down Expand Up @@ -4192,6 +4199,14 @@ REFERENCES:
.. [Mar2004] \S. Marcus, Quasiperiodic infinite words,
Bull. Eur. Assoc. Theor. Comput. Sci. 82 (2004) 170-174.
.. [Mar2012] \I. Marin, *The cubic Hecke algebra on at most 5 strands*,
Journal of Pure and Applied Algebra 216 (2012) 2754-2782.
:doi:`10.1016/j.jpaa.2012.04.013`, :arxiv:`1110.6621`.
.. [Mar2018] \I. Marin, *Maximal cubic quotient of the braid algebra*,
preprint, 2018. available at
http://www.lamfa.u-picardie.fr/marin/arts/GQ.pdf
.. [Mas1994] James L. Massey,
*SAFER K-64: A byte-oriented block-ciphering algorithm*; in
FSE’93, Volume 809 of LNCS, pages 1-17.
Expand Down
3 changes: 3 additions & 0 deletions src/sage/algebras/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
- :class:`algebras.Brauer <sage.combinat.diagram_algebras.BrauerAlgebra>`
- :class:`algebras.Clifford <sage.algebras.clifford_algebra.CliffordAlgebra>`
- :class:`algebras.ClusterAlgebra <sage.algebras.cluster_algebra.ClusterAlgebra>`
- :class:`algebras.CubicHecke
<sage.algebras.hecke_algebras.cubic_hecke_algebra.CubicHeckeAlgebra>`
- :class:`algebras.Descent <sage.combinat.descent_algebra.DescentAlgebra>`
- :class:`algebras.DifferentialWeyl
<sage.algebras.weyl_algebra.DifferentialWeylAlgebra>`
Expand Down Expand Up @@ -99,6 +101,7 @@
lazy_import('sage.algebras.schur_algebra', 'SchurAlgebra', 'Schur')
lazy_import('sage.algebras.commutative_dga', 'GradedCommutativeAlgebra', 'GradedCommutative')
lazy_import('sage.algebras.hecke_algebras.ariki_koike_algebra', 'ArikiKoikeAlgebra', 'ArikiKoike')
lazy_import('sage.algebras.hecke_algebras.cubic_hecke_algebra', 'CubicHeckeAlgebra', 'CubicHecke')
lazy_import('sage.algebras.rational_cherednik_algebra', 'RationalCherednikAlgebra', 'RationalCherednik')
lazy_import('sage.algebras.yokonuma_hecke_algebra', 'YokonumaHeckeAlgebra', 'YokonumaHecke')
lazy_import('sage.combinat.posets.incidence_algebras', 'IncidenceAlgebra', 'Incidence')
Expand Down
Loading

0 comments on commit a444241

Please sign in to comment.