Package sage :: Package combinat :: Package crystals :: Module tensor_product
[hide private]
[frames] | no frames]

Module tensor_product

source code


Tensor product of crystals.

EXAMPLES:

    We construct the type $A_2$-crystal generated by $2\otimes 1\otimes 1$:
    
    sage: C = CrystalOfLetters(['A',2])
    sage: T = TensorProductOfCrystals(C,C,C,generators=[[C(2),C(1),C(1)]])

    It has $8$ elements

    sage: T.list()
    [[2, 1, 1], [2, 1, 2], [2, 1, 3], [3, 1, 3], [3, 2, 3], [3, 1, 1], [3, 1, 2], [3, 2, 2]]

    sage: C = CrystalOfTableaux(['A',3], shape=[1,1,0])
    sage: D = CrystalOfTableaux(['A',3], shape=[1,0,0])
    sage: T = TensorProductOfCrystals(C,D, generators=[[C(rows=[[1], [2]]), D(rows=[[1]])], [C(rows=[[2], [3]]), D(rows=[[1]])]])
    sage: T.count()
    24
    sage: T.check()
    True
    sage: T.module_generators
    [[[[1], [2]], [[1]]], [[[2], [3]], [[1]]]]
    sage: [x.weight() for x in T.module_generators]
    [(2, 1, 0, 0), (1, 1, 1, 0)]

    If no module generators are specified, we obtain the full tensor product:

    sage: C=CrystalOfLetters(['A',2])
    sage: T=TensorProductOfCrystals(C,C)
    sage: T.list()
    [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]
    sage: T.count()
    9

    For a tensor product of crystals without module generators, the default implementation of module_generators
    contains all elements in the tensor product of the crystals. If there is a subset of elements
    in the tensor product that still generates the crystal, this needs to be implemented for the specific 
    crystal separately:
        
    sage: T.module_generators.list()
    [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]

    For classical highest weight crystals, it is also possible to list all highest weight elements:
        
    sage: C = CrystalOfLetters(['A',2])
    sage: T = TensorProductOfCrystals(C,C,C,generators=[[C(2),C(1),C(1)],[C(1),C(2),C(1)]])
    sage: T.highest_weight_vectors()
    [[2, 1, 1], [1, 2, 1]]



Classes [hide private]
  ImmutableListWithParent
A class for lists having a parent...
  TensorProductOfCrystalsWithGenerators
  TensorProductOfClassicalCrystalsWithGenerators
  FullTensorProductOfCrystals
  FullTensorProductOfClassicalCrystals
  TensorProductOfCrystalsElement
A class for elements of tensor products of crystals
  CrystalOfTableaux
Crystals of tableaux.
  CrystalOfTableauxElement
Functions [hide private]
 
TensorProductOfCrystals(*crystals, **options) source code