Associahedron

Todo

  • fix adjacency matrix
  • edit graph method to get proper vertex labellings
  • UniqueRepresentation?

AUTHORS:

  • Christian Stump
class sage.combinat.root_system.associahedron.Associahedra(base_ring, ambient_dim)

Bases: sage.geometry.polyhedron.parent.Polyhedra_QQ_ppl

Parent of Associahedra of specified dimension

EXAMPLES:

sage: from sage.combinat.root_system.associahedron import Associahedra
sage: parent = Associahedra(QQ,2);  parent
Polyhedra in QQ^2
sage: type(parent)
<class 'sage.combinat.root_system.associahedron.Associahedra_with_category'>
sage: parent(['A',2])
Generalized associahedron of type ['A', 2] with 5 vertices

Importantly, the parent knows the dimension of the ambient space. If you try to construct an associahedron of a different dimension, a ValueError is raised:

sage: parent(['A',3])
Traceback (most recent call last):
...
ValueError: V-representation data requires a list of length ambient_dim
Element

alias of Associahedron_class

sage.combinat.root_system.associahedron.Associahedron(cartan_type)

Construct an associahedron

An Associahedron

The generalized associahedron is a polytopal complex with vertices in one-to-one correspondence with clusters in the cluster complex, and with edges between two vertices if and only if the associated two clusters intersect in codimension 1.

The associahedron of type A_n is one way to realize the classical associahedron as defined in Wikipedia article Associahedron

A polytopal realization of the associahedron can be found in [CFZ]. The implementation is based on [CFZ, Theorem 1.5, Remark 1.6, and Corollary 1.9.].

EXAMPLES:

sage: Asso = Associahedron(['A',2]); Asso
Generalized associahedron of type ['A', 2] with 5 vertices
sage: sorted(Asso.Hrepresentation(), key=repr)
[An inequality (-1, 0) x + 1 >= 0,
 An inequality (0, -1) x + 1 >= 0,
 An inequality (0, 1) x + 1 >= 0,
 An inequality (1, 0) x + 1 >= 0,
 An inequality (1, 1) x + 1 >= 0]
sage: Asso.Vrepresentation()
(A vertex at (1, -1), A vertex at (1, 1), A vertex at (-1, 1),
 A vertex at (-1, 0), A vertex at (0, -1))

sage: Associahedron(['B',2])
Generalized associahedron of type ['B', 2] with 6 vertices

The two pictures of [CFZ] can be recovered with:

    sage: Asso = Associahedron(['A',3]); Asso
    Generalized associahedron of type ['A', 3] with 14 vertices
    sage: Asso.plot()
    Graphics3d Object

    sage: Asso = Associahedron(['B',3]); Asso
    Generalized associahedron of type ['B', 3] with 20 vertices
    sage: Asso.plot()
    Graphics3d Object

TESTS::

    sage: sorted(Associahedron(['A',3]).vertices())
    [A vertex at (-3/2, 0, -1/2), A vertex at (-3/2, 0, 3/2),
     A vertex at (-3/2, 1, -3/2), A vertex at (-3/2, 2, -3/2),
     A vertex at (-3/2, 2, 3/2), A vertex at (-1/2, -1, -1/2),
     A vertex at (-1/2, 0, -3/2), A vertex at (1/2, -2, 1/2),
     A vertex at (1/2, -2, 3/2), A vertex at (3/2, -2, 1/2),
     A vertex at (3/2, -2, 3/2), A vertex at (3/2, 0, -3/2),
     A vertex at (3/2, 2, -3/2), A vertex at (3/2, 2, 3/2)]

    sage: sorted(Associahedron(['B',3]).vertices())
    [A vertex at (-3, 0, 0), A vertex at (-3, 0, 3),
     A vertex at (-3, 2, -2), A vertex at (-3, 4, -3),
     A vertex at (-3, 5, -3), A vertex at (-3, 5, 3),
     A vertex at (-2, 1, -2), A vertex at (-2, 3, -3),
     A vertex at (-1, -2, 0), A vertex at (-1, -1, -1),
     A vertex at (1, -4, 1), A vertex at (1, -3, 0),
     A vertex at (2, -5, 2), A vertex at (2, -5, 3),
     A vertex at (3, -5, 2), A vertex at (3, -5, 3),
     A vertex at (3, -3, 0), A vertex at (3, 3, -3),
     A vertex at (3, 5, -3), A vertex at (3, 5, 3)]

    sage: Associahedron(['A',4]).f_vector()
    (1, 42, 84, 56, 14, 1)
    sage: Associahedron(['B',4]).f_vector()
    (1, 70, 140, 90, 20, 1)

REFERENCES:

- [CFZ] Chapoton, Fomin, Zelevinsky - Polytopal realizations of
  generalized associahedra, arXiv:0202004.
class sage.combinat.root_system.associahedron.Associahedron_class(parent, Vrep, Hrep, **kwds)

Bases: sage.geometry.polyhedron.backend_ppl.Polyhedron_QQ_ppl

The Python class of an associahedron

You should use the Associahedron() convenience function to construct associahedra from the Cartan type.

TESTS:

sage: Asso = Associahedron(['A',2]); Asso
Generalized associahedron of type ['A', 2] with 5 vertices
sage: TestSuite(Asso).run()
cartan_type()

Returns the Cartan type

EXAMPLES:

sage: Associahedron(['A',3]).cartan_type()
['A', 3]
vertices_in_root_space()

Returns the vertices of self as elements in the root space

EXAMPLES:

sage: Asso = Associahedron(['A',2])
sage: Asso.vertices()
(A vertex at (1, -1), A vertex at (1, 1),
 A vertex at (-1, 1), A vertex at (-1, 0),
 A vertex at (0, -1))

sage: Asso.vertices_in_root_space()
(alpha[1] - alpha[2], alpha[1] + alpha[2], -alpha[1] + alpha[2], -alpha[1], -alpha[2])

Previous topic

Ambient lattices and ambient spaces

Next topic

Branching Rules

This Page