# The Honeycomb

Neo: The Matrix. What is the Matrix?

Trinity: Twelve years ago I met a man, a great man, who said that no one could be told the answer to that question. That they had to see it, to believe it. He told me that no one should look for the answer unless they have to because once you see it, everything changes. Your life and the world you live in will never be the same.

This applet displays a Honeycomb of order n, which is an object which naturally comes up in the study of tensor products of representations of U(n), and also in the study of sums of n x n Hermitian matrices with specified eigenvalues. The default value n is 5. Click on a hexagon to shrink or enlarge it. Edges are allowed to degenerate to zero length, but cannot be negative. The right mouse button does the reverse of the left mouse button, i.e. if the left button shrinks then the right button grows. (For Mac users: hold down the Apple key when clicking to simulate a right button click).

If you select "Mouse clicks select Hexagons", then you can select a group of hexagons and enlarge or shrink them together using the "Shrink" and "Enlarge", or "Shrink max" and "Enlarge max", buttons on the second row.

The honeycomb lives naturally in the plane {(a,b,c): a+b+c=0}. Each line segment in the honeycomb has one of the three co-ordinates a,b,c held constant, depending on the orientation of the segment; the value of this constant co-ordinate is displayed in blue.

The constant co-ordinates (a_1, ..., a_n), (b_1, ..., b_n), and (c_1, ..., c_n) of the rays bounding the honeycomb are displayed on the lower right-hand corner.

We have the following (quite non-trivial) theorem:

A honeycomb with boundary co-ordinates (a_1, ..., a_n), (b_1, ..., b_n), (c_1, ..., c_n) exists if and only if there exist Hermitian matrices A, B, C with eigenvalues (a_1, ..., a_n), (b_1, ..., b_n), (c_1, ..., c_n) respectively such that A+B+C=0.

A quantized version of this is the following:

A honeycomb with positive boundary co-ordinates (a_1, ..., a_n), (b_1, ..., b_n), (-c_n, ..., -c_1) and integer vertices exists if and only if the U(n) irreducible representation with weight (c_1, ..., c_n) is contained inside the tensor product of the irreducible representation with weight (a_1, ..., a_n) and the irreducible representation with weight (b_1, ..., b_n).

The honeycomb can be described by a triangular array of numbers which we call the "Hive": one number for each hexagon. Roughly speaking, the larger the number, the larger the hexagon.

The length of an edge in the honeycomb corresponds to a linear combination of four hive entries which are arranged in the dual rhombus. In the "flatspace" display of the hive, this rhombus is displayed negatively (by erasing the dividing red line) whenever the length of the corresponding edge vanishes. Flatspaces are always convex.

If one plots the hive as a 3D graph, the convex hull is a collection of triangles (some of which join up to form rhombi or larger shapes if some of the edges degenerate). We've colored each face according to its slope, hence as an edge degenerates the two adjoining faces become closer in color as well as orientation.

If it is not possible to enlarge any interior hexagon, or any collection of interior hexagons, then we say that the honeycomb is an upper shell. Upper shells have several nice properties; for instance their only flatspaces are unit triangles and unit rhombi (if the boundary co-ordinates are generic), and their interior co-ordinates are an integer linear combination of their boundary co-ordinates. This fact can be used to prove the Saturation conjecture of Klyachko.

By default, we've forced the edges of the honeycomb to be non-negative in length. For a more restrictive range of honeycombs, set the option "positive edges": this prevents the edges from degenerating entirely (unless they were initially degenerate). For something more risky, try "virtual edges", which removes all edge constraints entirely. Warning: the effect of a mouse click may become unpredictable if you have too many negative edges.

This applet was co-written with Allen Knutson. Comments, bug reports, and suggestions are always welcome.

Back to my Java page.