Affinization crystals - Combinatorics

Skip to content
Back to top
View this page
Edit this page

# Affinization crystals

class sage.combinat.crystals.affinization.AffinizationOfCrystal(B)

  Bases: `UniqueRepresentation`, `Parent`

  An affinization of a crystal.

  Let \(\mathfrak{g}\) be a Kac-Moody algebra of affine type. The affinization of a finite \(U_q^{\prime}(\mathfrak{g})\)-crystal \(B\) is the (infinite) \(U_q(\mathfrak{g})\)-crystal with underlying set:

  \[B^{\mathrm{aff}} = \{ b(m) \mid b \in B, m \in \ZZ \}\]

  and crystal structure determined by:

  \[\begin{split}\begin{aligned} e_i(b(m)) & = \begin{cases} (e_0 b)(m+1) & i = 0, \\ (e_i b)(m) & i \neq 0, \end{cases} \\ f_i(b(m)) &= \begin{cases} (f_0 b)(m-1) & i = 0, \\ (f_i b)(m) & i \neq 0, \end{cases} \\ \mathrm{wt}(b(m)) &= \mathrm{wt}(b) + m \delta. \end{aligned}\end{split}\]

  EXAMPLES:

  We first construct a Kirillov-Reshetikhin crystal and then take it’s corresponding affinization:

  Sage

      sage: K = crystals.KirillovReshetikhin(['A',2,1], 2, 2)
      sage: A = K.affinization()

  Python

      >>> from sage.all import *
      >>> K = crystals.KirillovReshetikhin(['A',Integer(2),Integer(1)], Integer(2), Integer(2))
      >>> A = K.affinization()

  Next we construct an affinization crystal from a tensor product of KR crystals:

  Sage

      sage: KT = crystals.TensorProductOfKirillovReshetikhinTableaux(['C',2,1], [[1,2],[2,1]])
      sage: A = crystals.AffinizationOf(KT)

  [Python]

      >>> from sage.all import *
      >>> KT = crystals.TensorProductOfKirillovReshetikhinTableaux(['C',Integer(2),Integer(1)], [[Integer(1),Integer(2)],[Integer(2),Integer(1)]])
      >>> A = crystals.AffinizationOf(KT)

  REFERENCES:

  - [HK2002] Chapter 10

  class Element(parent, b, m)

    Bases: `Element`

    An element in an affinization crystal.

    e(i)

      Return the action of \(e_i\) on `self`.

      INPUT:

      - `i` – an element of the index set

      EXAMPLES:

      Sage

          sage: A = crystals.KirillovReshetikhin(['A',2,1], 2,2).affinization()
          sage: mg = A.module_generators[0]
          sage: mg.e(0)
          [[1, 2], [2, 3]](1)
          sage: mg.e(1)
          sage: mg.e(0).e(1)
          [[1, 1], [2, 3]](1)

      Python

          >>> from sage.all import *
          >>> A = crystals.KirillovReshetikhin(['A',Integer(2),Integer(1)], Integer(2),Integer(2)).affinization()
          >>> mg = A.module_generators[Integer(0)]
          >>> mg.e(Integer(0))
          [[1, 2], [2, 3]](1)
          >>> mg.e(Integer(1))
          >>> mg.e(Integer(0)).e(Integer(1))
          [[1, 1], [2, 3]](1)

    epsilon(i)

      Return \(\varepsilon_i\) of `self`.

      INPUT:

      - `i` – an element of the index set

      EXAMPLES:

      Sage

          sage: A = crystals.KirillovReshetikhin(['A',2,1], 2,2).affinization()
          sage: mg = A.module_generators[0]
          sage: mg.epsilon(0)
          2
          sage: mg.epsilon(1)
          0

      Python

          >>> from sage.all import *
          >>> A = crystals.KirillovReshetikhin(['A',Integer(2),Integer(1)], Integer(2),Integer(2)).affinization()
          >>> mg = A.module_generators[Integer(0)]
          >>> mg.epsilon(Integer(0))
          2
          >>> mg.epsilon(Integer(1))
          0

    f(i)

      Return the action of \(f_i\) on `self`.

      INPUT:

      - `i` – an element of the index set

      EXAMPLES:

      Sage

          sage: A = crystals.KirillovReshetikhin(['A',2,1], 2,2).affinization()
          sage: mg = A.module_generators[0]
          sage: mg.f(2)
          [[1, 1], [2, 3]](0)
          sage: mg.f(2).f(2).f(0)
          sage: mg.f_string([2,1,1])
          sage: mg.f_string([2,1])
          [[1, 2], [2, 3]](0)
          sage: mg.f_string([2,1,0])
          [[1, 1], [2, 2]](-1)

      Python

          >>> from sage.all import *
          >>> A = crystals.KirillovReshetikhin(['A',Integer(2),Integer(1)], Integer(2),Integer(2)).affinization()
          >>> mg = A.module_generators[Integer(0)]
          >>> mg.f(Integer(2))
          [[1, 1], [2, 3]](0)
          >>> mg.f(Integer(2)).f(Integer(2)).f(Integer(0))
          >>> mg.f_string([Integer(2),Integer(1),Integer(1)])
          >>> mg.f_string([Integer(2),Integer(1)])
          [[1, 2], [2, 3]](0)
          >>> mg.f_string([Integer(2),Integer(1),Integer(0)])
          [[1, 1], [2, 2]](-1)

    phi(i)

      Return \(\varphi_i\) of `self`.

      INPUT:

      - `i` – an element of the index set

      EXAMPLES:

      Sage

          sage: A = crystals.KirillovReshetikhin(['A',2,1], 2,2).affinization()
          sage: mg = A.module_generators[0]
          sage: mg.phi(0)
          0
          sage: mg.phi(2)
          2

      Python

          >>> from sage.all import *
          >>> A = crystals.KirillovReshetikhin(['A',Integer(2),Integer(1)], Integer(2),Integer(2)).affinization()
          >>> mg = A.module_generators[Integer(0)]
          >>> mg.phi(Integer(0))
          0
          >>> mg.phi(Integer(2))
          2

    weight()

      Return the weight of `self`.

      The weight \(\mathrm{wt}\) of an element is:

      \[\mathrm{wt}\bigl( b(m) \bigr) = \mathrm{wt}(b) + m \delta,\]

      where \(\delta\) is the null root.

      EXAMPLES:

      Sage

          sage: A = crystals.KirillovReshetikhin(['A',2,1], 2,2).affinization()
          sage: mg = A.module_generators[0]
          sage: mg.weight()
          -2*Lambda[0] + 2*Lambda[2]
          sage: mg.e(0).weight()
          -Lambda[1] + Lambda[2] + delta
          sage: mg.e(0).e(0).weight()
          2*Lambda[0] - 2*Lambda[1] + 2*delta

      Python

          >>> from sage.all import *
          >>> A = crystals.KirillovReshetikhin(['A',Integer(2),Integer(1)], Integer(2),Integer(2)).affinization()
          >>> mg = A.module_generators[Integer(0)]
          >>> mg.weight()
          -2*Lambda[0] + 2*Lambda[2]
          >>> mg.e(Integer(0)).weight()
          -Lambda[1] + Lambda[2] + delta
          >>> mg.e(Integer(0)).e(Integer(0)).weight()
          2*Lambda[0] - 2*Lambda[1] + 2*delta