This is LieAlgebraRepresentations.info, produced by Macaulay2, version 1.26.06

LieAlgebraRepresentations -- Lie algebra representations and characters
***********************************************************************

Description
===========

This package implements finite-dimensional representations of
finite-dimensional complex semisimple Lie algebras and their characters.

This package is a major expansion and renaming of the package formerly known as
LieTypes.

Authors
=======

  * Dave Swinarski (see https://faculty.fordham.edu/dswinarski/ )
    <dswinarski@fordham.edu>
  * Paul Zinn-Justin (see http://blogs.unimelb.edu.au/paul-zinn-justin/ )
    <pzinn@unimelb.edu.au>

Certification a gold star
=========================

Version 0.5 of this package (under the name "LieTypes") was accepted for
publication in volume 8 (see https://msp.org/jsag/2018/8-1/ ) of The Journal of
Software for Algebra and Geometry (see https://msp.org/jsag/ ) on 2 August
2018, in the article Software for computing conformal block divisors on bar
M_0,n (see https://msp.org/jsag/2018/8-1/p08.xhtml ) (DOI:
10.2140/jsag.2018.8.81 (see https://doi.org/10.2140/jsag.2018.8.81 )). That
version can be obtained from the journal (see
https://msp.org/jsag/2018/8-1/jsag-v8-n1-x08-LieTypes.m2 ).

Version
=======

This documentation describes version 1.01 of LieAlgebraRepresentations,
released May 1, 2026.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{LieAlgebraRepresentationsSource,                                       |
|  title = {{LieAlgebraRepresentations: Lie algebra representations           |
|  author = {Dave Swinarski and Paul Zinn-Justin},                            |
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/           |
|}                                                                            |
|                                                                             |
|@article{LieAlgebraRepresentationsArticle,                                   |
|  title = {{Software for computing conformal block divisors on bar           |
|  author = {Dave Swinarski and Paul Zinn-Justin},                            |
|  journal = {The Journal of Software for Algebra and Geometry},              |
|  volume = {8},                                                              |
|  year = {2018},                                                             |
|}                                                                            |
|-----------------------------------------------------------------------------|
| and characters. Version~1.01}},                                             |
|                                                                             |
|                                                                             |
|packages}}                                                                   |
|                                                                             |
|                                                                             |
|                                                                             |
| M_0,n}},                                                                    |
+-----------------------------------------------------------------------------+

Exports
=======

  * Types
      * GTPattern -- class for a Gelfand-Tsetlin pattern
      * LieAlgebra -- class for Lie algebras
      * LieAlgebraBasis -- class for an enhanced Lie
        algebra basis
      * LieAlgebraModule -- class for Lie algebra
        modules
      * LieAlgebraRepresentation -- class for
        a Lie algebra representation
  * Functions and commands
      * adams -- Computes the action of the nth Adams operator on
        a Lie algebra module
      * adjointModule -- The adjoint module of a Lie
        algebra
      * adjointRepresentation -- creates the
        adjoint representation of a Lie algebra
      * basisWordsFromMatrixGenerators,
        -- express each basis element of $V(\lambda)$ as a linear combination
        of words in the lowering operators applied to the highest weight vector
      * branchingRule -- A Lie algebra module viewed as a
        module over a Lie subalgebra
      * cartanMatrix -- Provide the Cartan matrix of a
        simple Lie algebra
      * casimirOperator -- computes the Casimir
        operator associated to a representation
      * casimirProjection -- projection operator to a
        specified eigenspace of the Casimir operator
      * casimirScalar -- computes the scalar by which the
        Casimir operator acts on an irreducible Lie algebra module
      * casimirSpectrum -- computes the eigenvalues of
        the Casimir operator associated to a representation
      * character -- Computes the character of a Lie algebra
        module
      * characterRing (missing documentation)
      * deGraafBases -- compute the bases produced by de
        Graaf's algorithm
      * deGraafRepresentation -- compute the
        representation with the specified highest weight using de Graaf's
        algorithm
      * dualCoxeterNumber -- the dual Coxeter number
        of a simple Lie algebra
      * dynkinDiagram -- Provide the Dynkin diagram of a
        simple Lie algebra
      * dynkinToPartition -- converts a highest
        weight written in the basis of fundamental dominant weights for type A
        into a partition
      * embedding -- gives the embedding of Cartan
        subalgebras of one Lie algebra into another
      * fusionCoefficient -- computes the
        multiplicity of W in the fusion product of U and V
      * fusionProduct -- computes the multiplicities of
        irreducibles in the decomposition of the fusion product of U and V
      * gtInvariantInVtensorVdual -- computes
        an invariant in $(V \otimes V^*)$ in the type A Gelfand-Tsetlin basis
      * gtPatternFromEntries -- creates an object
        of type GTPattern from a list of entries
      * gtPatterns -- a list of Gelfand-Tsetlin patterns of
        shape lambda
      * gtPolytope -- the polytope defined by the
        inequalities and equations appearing in the definition of
        Gelfand-Tsetlin patterns
      * GTrepresentationMatrices -- creates a
        list of matrices for the action of $\mathfrak{g}$ on Gelfand-Tsetlin
        basis
      * halfspinRepresentationMatrices,
        -- matrix generators for the halfspin representations of
        $\mathfrak{so}(2n)$
      * highestRoot -- the highest root of a simple Lie
        algebra
      * irreducibleLieAlgebraModule, --
        construct the irreducible Lie algebra module with given highest weight
      * isIrreducible -- Whether a Lie algebra module is
        irreducible or not
      * isLieAlgebraRepresentation -- checks
        whether a list of matrices defines a Lie algebra representation
      * isomorphismOfRepresentations, --
        compute an explicit isomorphism between two Lie algebra representations
      * killingForm -- computes the scaled Killing form
        applied to two weights
      * lieAlgebraBasis -- computes an enhanced basis
        for a simple Lie algebra
      * LieAlgebraModuleFromWeights, --
        finds a Lie algebra module based on its weights
      * lieAlgebraRepresentation -- create a
        LieAlgebraRepresentation
      * "positiveCoroots" -- see positiveRoots, -- the
        positive (co)roots of a simple Lie algebra
      * positiveRoots -- the positive (co)roots of a
        simple Lie algebra
      * qdim -- Compute principal specialization of character or
        quantum dimension
      * representationWeights -- computes the
        weights of the basis of a Lie algebra module from an explicit
        representation
      * reynoldsOperator -- computes the projection to
        the sum of the trivial submodules in $V$
      * simpleLieAlgebra -- construct a simple Lie
        algebra
      * simpleRoots -- the simple roots of a simple Lie
        algebra
      * spinRepresentationMatrices -- matrix
        generators for the spin representation of $\mathfrak{so}(2n)$
      * standardModule (missing documentation)
      * standardRepresentation -- creates the
        standard representation of a matrix Lie algebra
      * starInvolution -- computes w* for a weight w
      * subLieAlgebra -- Define a sub-Lie algebra of an
        existing one
      * tensorCoefficient -- computes the
        multiplicity of W in U tensor V
      * trivialModule -- The trivial module of a Lie
        algebra
      * trivialRepresentation -- creates the
        trivial representation of a Lie algebra
      * UInVtensorW -- computes a basis of a submodule of
        $V \otimes W$ isomorphic to $U$ with a given highest weight vector
      * universalEnvelopingAlgebra, --
        computes the universal enveloping algebra of a Lie algebra
      * uNminus -- computes the universal enveloping algebra of
        the Lie algebra $N^{-}$
      * VInSymdW -- computes a basis of a submodule of
        $\operatorname{Sym}^d W$ isomorphic to $V$ with a given highest weight
        vector
      * VInWedgekW -- computes a basis of a submodule of
        $\bigwedge^k W$ isomorphic to $V$ with a given highest weight vector
      * weightDiagram -- computes the weights in a Lie
        algebra module and their multiplicities
      * weightMuHighestWeightVectorsInSymdW
        -- computes the highest weight
        vectors of weight mu in $\operatorname{Sym}^d W$
      * weightMuHighestWeightVectorsInW,
        -- computes the highest weight vectors of weight mu in W
      * weightNuHighestWeightVectorsInVtensorW
        -- computes the highest weight
        vectors of weight nu in $V \otimes W$
      * weylAlcove -- the dominant integral weights of level
        less than or equal to l
      * zeroModule -- The zero module of a Lie algebra
  * Methods
      * "adams(ZZ,LieAlgebraModule)" -- see adams, -- Computes the
        action of the nth Adams operator on a Lie algebra module
      * "adjointModule(LieAlgebra)" -- see adjointModule,
        -- The adjoint module of a Lie algebra
      * "adjointRepresentation(LieAlgebra)" -- see adjointRepresentation,
        -- creates the adjoint representation of a Lie
        algebra
      * "adjointRepresentation(LieAlgebraBasis)" -- see
        adjointRepresentation, -- creates the adjoint
        representation of a Lie algebra
      * "adjointRepresentation(String,ZZ)" -- see adjointRepresentation,
        -- creates the adjoint representation of a Lie
        algebra
      * "basisWordsFromMatrixGenerators(LieAlgebraRepresentation)" -- see
        basisWordsFromMatrixGenerators, --
        express each basis element of $V(\lambda)$ as a linear combination of
        words in the lowering operators applied to the highest weight vector
      * "branchingRule(LieAlgebraModule,LieAlgebra)" -- see
        branchingRule, -- A Lie algebra module viewed as a
        module over a Lie subalgebra
      * "branchingRule(LieAlgebraModule,List)" -- see branchingRule,
        -- A Lie algebra module viewed as a module over a Lie
        subalgebra
      * "branchingRule(LieAlgebraModule,Matrix)" -- see branchingRule,
        -- A Lie algebra module viewed as a module over a Lie
        subalgebra
      * "branchingRule(LieAlgebraModule,String)" -- see branchingRule,
        -- A Lie algebra module viewed as a module over a Lie
        subalgebra
      * "cartanMatrix(LieAlgebra)" -- see cartanMatrix, --
        Provide the Cartan matrix of a simple Lie algebra
      * "casimirOperator(LieAlgebraRepresentation)" -- see
        casimirOperator, -- computes the Casimir operator
        associated to a representation
      * "casimirProjection(LieAlgebraRepresentation,QQ)" -- see
        casimirProjection, -- projection operator to a
        specified eigenspace of the Casimir operator
      * casimirProjection(LieAlgebraRepresentation,ZZ) (missing documentation)
      * "casimirScalar(LieAlgebraModule)" -- see casimirScalar,
        -- computes the scalar by which the Casimir operator
        acts on an irreducible Lie algebra module
      * casimirScalar(LieAlgebra,List) (missing documentation)
      * "casimirSpectrum(LieAlgebraModule)" -- see casimirSpectrum,
        -- computes the eigenvalues of the Casimir operator
        associated to a representation
      * "character(LieAlgebra,List)" -- see character, --
        Computes the character of a Lie algebra module
      * "character(LieAlgebra,Vector)" -- see character, --
        Computes the character of a Lie algebra module
      * "character(LieAlgebraModule)" -- see character, --
        Computes the character of a Lie algebra module
      * characterRing(LieAlgebra) (missing documentation)
      * characterRing(Sequence,Sequence) (missing documentation)
      * characterRing(String,ZZ) (missing documentation)
      * "deGraafBases(List,LieAlgebra)" -- see deGraafBases,
        -- compute the bases produced by de Graaf's algorithm
      * "deGraafRepresentation(List,LieAlgebra)" -- see
        deGraafRepresentation, -- compute the
        representation with the specified highest weight using de Graaf's
        algorithm
      * dim(LieAlgebraModule) -- computes the
        dimension of a Lie algebra module as a vector space over the ground
        field
      * dual(LieAlgebraRepresentation)
        -- creates the dual representation
        of a Lie algebra representation
      * "dualCoxeterNumber(LieAlgebra)" -- see dualCoxeterNumber,
        -- the dual Coxeter number of a simple Lie algebra
      * "dualCoxeterNumber(String,ZZ)" -- see dualCoxeterNumber,
        -- the dual Coxeter number of a simple Lie algebra
      * "dynkinDiagram(LieAlgebra)" -- see dynkinDiagram,
        -- Provide the Dynkin diagram of a simple Lie algebra
      * "dynkinToPartition(String,List)" -- see dynkinToPartition,
        -- converts a highest weight written in the basis of
        fundamental dominant weights for type A into a partition
      * "embedding(LieAlgebra,LieAlgebra)" -- see embedding,
        -- gives the embedding of Cartan subalgebras of one Lie algebra into
        another
      * exteriorPower(ZZ,LieAlgebraRepresentation)
        -- computes the
        explicit action on $\bigwedge^k V$ for a $\mathfrak{g}$-module $V$
      * "fusionCoefficient(LieAlgebraModule,LieAlgebraModule,LieAlgebraModule,
        ZZ)" -- see fusionCoefficient, -- computes the
        multiplicity of W in the fusion product of U and V
      * "fusionProduct(LieAlgebraModule,LieAlgebraModule,ZZ)" -- see
        fusionProduct, -- computes the multiplicities of
        irreducibles in the decomposition of the fusion product of U and V
      * "gtInvariantInVtensorVdual(List)" -- see
        gtInvariantInVtensorVdual, -- computes an
        invariant in $(V \otimes V^*)$ in the type A Gelfand-Tsetlin basis
      * "gtPatternFromEntries(String,List)" -- see gtPatternFromEntries,
        -- creates an object of type GTPattern from a
        list of entries
      * "gtPatterns(String,List)" -- see gtPatterns, -- a
        list of Gelfand-Tsetlin patterns of shape lambda
      * "gtPolytope(String,List)" -- see gtPolytope, -- the
        polytope defined by the inequalities and equations appearing in the
        definition of Gelfand-Tsetlin patterns
      * "GTrepresentationMatrices(LieAlgebraModule)" -- see
        GTrepresentationMatrices, -- creates a list
        of matrices for the action of $\mathfrak{g}$ on Gelfand-Tsetlin basis
      * "halfspinRepresentationMatrices(ZZ,ZZ)" -- see
        halfspinRepresentationMatrices, --
        matrix generators for the halfspin representations of
        $\mathfrak{so}(2n)$
      * "highestRoot(LieAlgebra)" -- see highestRoot, -- the
        highest root of a simple Lie algebra
      * "irreducibleLieAlgebraModule(LieAlgebra,List)" -- see
        irreducibleLieAlgebraModule, -- construct
        the irreducible Lie algebra module with given highest weight
      * "irreducibleLieAlgebraModule(LieAlgebra,Vector)" -- see
        irreducibleLieAlgebraModule, -- construct
        the irreducible Lie algebra module with given highest weight
      * "isIrreducible(LieAlgebraModule)" -- see isIrreducible,
        -- Whether a Lie algebra module is irreducible or not
      * "isIsomorphic(LieAlgebra,LieAlgebra)" -- see isIsomorphic,
        -- tests whether two Lie algebra are isomorphic
      * isIsomorphic(LieAlgebraModule,LieAlgebraModule) (missing documentation)
      * "isLieAlgebraRepresentation(LieAlgebraBasis,List)" -- see
        isLieAlgebraRepresentation, -- checks
        whether a list of matrices defines a Lie algebra representation
      * "isomorphismOfRepresentations(LieAlgebraRepresentation,
        LieAlgebraRepresentation)" -- see isomorphismOfRepresentations,
        -- compute an explicit isomorphism
        between two Lie algebra representations
      * "killingForm(LieAlgebra,List,List)" -- see killingForm,
        -- computes the scaled Killing form applied to two weights
      * "killingForm(LieAlgebra,Vector,Vector)" -- see killingForm,
        -- computes the scaled Killing form applied to two weights
      * "directSum(LieAlgebra)" -- see LieAlgebra ++ LieAlgebra,
        -- Take the direct sum of Lie algebras
      * LieAlgebra ++ LieAlgebra -- Take the
        direct sum of Lie algebras
      * LieAlgebra == LieAlgebra -- tests
        equality of LieAlgebra
      * LieAlgebra _ ZZ -- selects one summand of a
        semi-simple Lie Algebra
      * LieAlgebra _* -- gives the list of summands
        of a semi-simple Lie Algebra
      * "lieAlgebraBasis(LieAlgebra)" -- see lieAlgebraBasis,
        -- computes an enhanced basis for a simple Lie algebra
      * "lieAlgebraBasis(String,ZZ)" -- see lieAlgebraBasis,
        -- computes an enhanced basis for a simple Lie algebra
      * LieAlgebraModule ** LieAlgebraModule
        -- tensor product of LieAlgebraModules
      * "directSum(LieAlgebraModule)" -- see LieAlgebraModule ++ LieAlgebraModule,
        -- direct sum
        of LieAlgebraModules
      * LieAlgebraModule ++ LieAlgebraModule
        -- direct sum of LieAlgebraModules
      * LieAlgebraModule @ LieAlgebraModule
        -- Take the tensor product of modules over different
        Lie algebras
      * LieAlgebraModule ^ ZZ (missing documentation)
      * LieAlgebraModule ^** ZZ -- Computes
        the nth tensor power of a Lie algebra module
      * "LieAlgebraModule _ LieAlgebraModule" -- see LieAlgebraModule _ ZZ,
        -- Pick out one irreducible submodule of a
        Lie algebra module
      * "LieAlgebraModule _ List" -- see LieAlgebraModule _ ZZ,
        -- Pick out one irreducible submodule of a Lie
        algebra module
      * "LieAlgebraModule _ Vector" -- see LieAlgebraModule _ ZZ,
        -- Pick out one irreducible submodule of a Lie
        algebra module
      * LieAlgebraModule _ ZZ -- Pick out one
        irreducible submodule of a Lie algebra module
      * LieAlgebraModule _* -- List irreducible
        submodules of a Lie algebra module
      * "LieAlgebraModuleFromWeights(RingElement,LieAlgebra)" -- see
        LieAlgebraModuleFromWeights, -- finds a
        Lie algebra module based on its weights
      * "LieAlgebraModuleFromWeights(VirtualTally,LieAlgebra)" -- see
        LieAlgebraModuleFromWeights, -- finds a
        Lie algebra module based on its weights
      * "lieAlgebraRepresentation(LieAlgebraModule,LieAlgebraBasis,List)" --
        see lieAlgebraRepresentation, -- create
        a LieAlgebraRepresentation
      * LieAlgebraRepresentation ** LieAlgebraRepresentation
        -- computes
        the explicit action on $V \otimes W$ given
        $\mathfrak{g}$-representations $V$ and $W$
      * "tensor(LieAlgebraRepresentation,LieAlgebraRepresentation)" -- see
        LieAlgebraRepresentation ** LieAlgebraRepresentation,
        -- computes
        the explicit action on $V \otimes W$ given
        $\mathfrak{g}$-representations $V$ and $W$
      * net(GTPattern) (missing documentation)
      * net(LieAlgebraBasis) (missing documentation)
      * new LieAlgebra from Matrix -- Define
        a Lie algebra from its Cartan matrix
      * new LieAlgebra from Sequence (missing documentation)
      * "positiveCoroots(LieAlgebra)" -- see positiveRoots,
        -- the positive (co)roots of a simple Lie algebra
      * "positiveRoots(LieAlgebra)" -- see positiveRoots,
        -- the positive (co)roots of a simple Lie algebra
      * "qdim(LieAlgebraModule)" -- see qdim, -- Compute principal
        specialization of character or quantum dimension
      * "qdim(LieAlgebraModule,ZZ)" -- see qdim, -- Compute
        principal specialization of character or quantum dimension
      * "representationWeights(LieAlgebraRepresentation)" -- see
        representationWeights, -- computes the weights
        of the basis of a Lie algebra module from an explicit representation
      * "reynoldsOperator(LieAlgebraRepresentation)" -- see
        reynoldsOperator, -- computes the projection to the
        sum of the trivial submodules in $V$
      * "simpleLieAlgebra(String,ZZ)" -- see simpleLieAlgebra,
        -- construct a simple Lie algebra
      * "simpleRoots(LieAlgebra)" -- see simpleRoots, -- the
        simple roots of a simple Lie algebra
      * "simpleRoots(String,ZZ)" -- see simpleRoots, -- the
        simple roots of a simple Lie algebra
      * "spinRepresentationMatrices(ZZ)" -- see
        spinRepresentationMatrices, -- matrix
        generators for the spin representation of $\mathfrak{so}(2n)$
      * standardModule(LieAlgebra) (missing documentation)
      * "standardRepresentation(LieAlgebra)" -- see
        standardRepresentation, -- creates the standard
        representation of a matrix Lie algebra
      * "standardRepresentation(String,ZZ)" -- see
        standardRepresentation, -- creates the standard
        representation of a matrix Lie algebra
      * "dual(LieAlgebraModule)" -- see starInvolution,
        -- computes w* for a weight w
      * "starInvolution(LieAlgebraModule)" -- see starInvolution,
        -- computes w* for a weight w
      * "subLieAlgebra(LieAlgebra,List)" -- see subLieAlgebra,
        -- Define a sub-Lie algebra of an existing one
      * "subLieAlgebra(LieAlgebra,Matrix)" -- see subLieAlgebra,
        -- Define a sub-Lie algebra of an existing one
      * "subLieAlgebra(LieAlgebra,String)" -- see subLieAlgebra,
        -- Define a sub-Lie algebra of an existing one
      * "exteriorPower(ZZ,LieAlgebraModule)" -- see
        symmetricPower(ZZ,LieAlgebraModule),
        -- Computes the nth
        symmetric / exterior tensor power of a Lie algebra module
      * symmetricPower(ZZ,LieAlgebraModule)
        -- Computes the nth
        symmetric / exterior tensor power of a Lie algebra module
      * symmetricPower(ZZ,LieAlgebraRepresentation)
        -- computes the
        explicit action on $\operatorname{Sym}^d V$ for a $\mathfrak{g}$-module
        $V$
      * "tensorCoefficient(LieAlgebraModule,LieAlgebraModule,LieAlgebraModule)"
        -- see tensorCoefficient, -- computes the
        multiplicity of W in U tensor V
      * toExternalString(LieAlgebra) (missing documentation)
      * toExternalString(LieAlgebraModule) (missing documentation)
      * toString(LieAlgebra) (missing documentation)
      * toString(LieAlgebraModule) (missing documentation)
      * "trivialModule(LieAlgebra)" -- see trivialModule,
        -- The trivial module of a Lie algebra
      * "trivialRepresentation(LieAlgebra)" -- see trivialRepresentation,
        -- creates the trivial representation of a Lie
        algebra
      * "trivialRepresentation(LieAlgebraBasis)" -- see
        trivialRepresentation, -- creates the trivial
        representation of a Lie algebra
      * "trivialRepresentation(String,ZZ)" -- see trivialRepresentation,
        -- creates the trivial representation of a Lie
        algebra
      * "UInVtensorW(LieAlgebraRepresentation,LieAlgebraRepresentation,
        LieAlgebraRepresentation,Matrix)" -- see UInVtensorW,
        -- computes a basis of a submodule of $V \otimes W$
        isomorphic to $U$ with a given highest weight vector
      * UInVtensorW(LieAlgebraRepresentation,LieAlgebraRepresentation,
        LieAlgebraRepresentation,RingElement) (missing documentation)
      * "universalEnvelopingAlgebra(LieAlgebra)" -- see
        universalEnvelopingAlgebra, -- computes the
        universal enveloping algebra of a Lie algebra
      * "universalEnvelopingAlgebra(LieAlgebraBasis)" -- see
        universalEnvelopingAlgebra, -- computes the
        universal enveloping algebra of a Lie algebra
      * "uNminus(LieAlgebra)" -- see uNminus, -- computes the
        universal enveloping algebra of the Lie algebra $N^{-}$
      * "uNminus(LieAlgebraBasis)" -- see uNminus, -- computes
        the universal enveloping algebra of the Lie algebra $N^{-}$
      * "VInSymdW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,Matrix)"
        -- see VInSymdW, -- computes a basis of a submodule of
        $\operatorname{Sym}^d W$ isomorphic to $V$ with a given highest weight
        vector
      * VInSymdW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,
        RingElement) (missing documentation)
      * "VInWedgekW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,Matrix
        )" -- see VInWedgekW, -- computes a basis of a
        submodule of $\bigwedge^k W$ isomorphic to $V$ with a given highest
        weight vector
      * "weightDiagram(LieAlgebra,List)" -- see weightDiagram,
        -- computes the weights in a Lie algebra module and
        their multiplicities
      * "weightDiagram(LieAlgebra,Vector)" -- see weightDiagram,
        -- computes the weights in a Lie algebra module and
        their multiplicities
      * "weightDiagram(LieAlgebraModule)" -- see weightDiagram,
        -- computes the weights in a Lie algebra module and
        their multiplicities
      * "weightMuHighestWeightVectorsInSymdW(List,ZZ,LieAlgebraRepresentation)"
        -- see weightMuHighestWeightVectorsInSymdW,
        -- computes the highest weight
        vectors of weight mu in $\operatorname{Sym}^d W$
      * "weightMuHighestWeightVectorsInW(List,LieAlgebraRepresentation)" -- see
        weightMuHighestWeightVectorsInW,
        -- computes the highest weight vectors of weight mu in W
      * "weightNuHighestWeightVectorsInVtensorW(List,LieAlgebraRepresentation,
        LieAlgebraRepresentation)" -- see
        weightNuHighestWeightVectorsInVtensorW,
        -- computes the highest weight
        vectors of weight nu in $V \otimes W$
      * "weylAlcove(LieAlgebra,ZZ)" -- see weylAlcove, -- the
        dominant integral weights of level less than or equal to l
      * "weylAlcove(String,ZZ,ZZ)" -- see weylAlcove, -- the
        dominant integral weights of level less than or equal to l
      * "weylAlcove(ZZ,LieAlgebra)" -- see weylAlcove, -- the
        dominant integral weights of level less than or equal to l
      * "zeroModule(LieAlgebra)" -- see zeroModule, -- The
        zero module of a Lie algebra
  * Other things
      * ω -- construct the irreducible Lie
        algebra module with given highest weight
      * 𝔞 (missing documentation)
      * 𝔟 (missing documentation)
      * 𝔠 (missing documentation)
      * 𝔡 (missing documentation)
      * 𝔢 (missing documentation)
      * 𝔣 (missing documentation)
      * 𝔤 (missing documentation)
      * LL -- construct the irreducible Lie
        algebra module with given highest weight

For the programmer
==================

The object LieAlgebraRepresentations, is a package (Macaulay2Doc),
defined in LieAlgebraRepresentations.m2, with auxiliary
files in LieAlgebraRepresentations/.

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:12:0.

𝔞
**

For the programmer
==================

The object 𝔞 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

𝔟
**

For the programmer
==================

The object 𝔟 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

𝔠
**

For the programmer
==================

The object 𝔠 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

𝔡
**

For the programmer
==================

The object 𝔡 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

𝔢
**

For the programmer
==================

The object 𝔢 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

𝔣
**

For the programmer
==================

The object 𝔣 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

𝔤
**

For the programmer
==================

The object 𝔤 (missing documentation) is a scripted functor (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

adams -- Computes the action of the nth Adams operator on a Lie algebra module
******************************************************************************

  * Usage:
        adams(n,M)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * M, an instance of the type LieAlgebraModule,
  * Outputs:
      * M', an instance of the type LieAlgebraModule,

Ways to use adams:
==================

  * "adams(ZZ,LieAlgebraModule)"

For the programmer
==================

The object adams, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1072:0.

adjointModule -- The adjoint module of a Lie algebra
****************************************************

Description
===========

Returns the module corresponding to the adjoint representation of a Lie
algebra.

+-----------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)                 |
|                                               |
|o1 = g                                         |
|                                               |
|o1 : simple LieAlgebra                         |
+-----------------------------------------------+
|i2 : adjointModule g                           |
|                                               |
|o2 = LL   (g)                                  |
|       1,1                                     |
|                                               |
|o2 : irreducible LieAlgebraModule over g       |
+-----------------------------------------------+
|i3 : adjointModule (g++g)                      |
|                                               |
|o3 = LL       (𝔞  ++ 𝔞 ) ++ LL       (𝔞  ++ 𝔞 )|
|       0,0,1,1  2     2       1,1,0,0  2     2 |
|                                               |
|o3 : LieAlgebraModule over 𝔞  ++ 𝔞             |
|                            2     2            |
+-----------------------------------------------+

Ways to use adjointModule:
==========================

  * "adjointModule(LieAlgebra)"

For the programmer
==================

The object adjointModule, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:447:0.

adjointRepresentation -- creates the adjoint representation of a Lie algebra
****************************************************************************

  * Usage:
        adjointRepresentation(LAB)
  * Inputs:
      * LAB, an instance of the type LieAlgebraBasis,
  * Outputs:
      * V, an instance of the type LieAlgebraRepresentation,

Description
===========

Let $\mathfrak{g}$ be a Lie algebra with basis LAB. The basis records a basis
$B$ of $\mathfrak{g}$, the bracket for $\mathfrak{g}$, and a way to write
elements of $\mathfrak{g} in the basis $B$. With these tools, we may write the
matrix for the linear transformation $\operatorname{ad}(B_i)$ with respect to
the basis $B$ for each $B_i$. This is the adjoint representation.

The user may either input the Lie algebra basis, or the type and rank, or the
simple Lie algebra.

+-----------------------------------------------------------------------------+
|i1 : adjointRepresentation("A",2)                                            |
|                                                                             |
|o1 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            2                |
|                              "Module" => LL   (𝔞 )                          |
|                                            1,1  2                           |
|                              "RepresentationMatrices" => {| 0 0 0 0  0 0  0 |
|                                                           | 0 0 0 0  0 0  0 |
|                                                           | 0 0 2 0  0 0  0 |
|                                                           | 0 0 0 -1 0 0  0 |
|                                                           | 0 0 0 0  1 0  0 |
|                                                           | 0 0 0 0  0 -2 0 |
|                                                           | 0 0 0 0  0 0  1 |
|                                                           | 0 0 0 0  0 0  0 |
|                                                                             |
|o1 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0  |, | 0 0 0  0 0 0 0  0  |, | 0  0 0 0 0 1 0 0  |, | 0 0  0  0 0 0 0 0 |, ||
|0  |  | 0 0 0  0 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  | 0 0  0  0 0 0 1 0 |  ||
|0  |  | 0 0 -1 0 0 0 0  0  |  | -2 1 0 0 0 0 0 0  |  | 0 0  0  0 0 0 0 0 |  ||
|0  |  | 0 0 0  2 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  | 1 -2 0  0 0 0 0 0 |  ||
|0  |  | 0 0 0  0 1 0 0  0  |  | 0  0 0 1 0 0 0 0  |  | 0 0  -1 0 0 0 0 0 |  ||
|0  |  | 0 0 0  0 0 1 0  0  |  | 0  0 0 0 0 0 0 0  |  | 0 0  0  0 0 0 0 1 |  ||
|0  |  | 0 0 0  0 0 0 -2 0  |  | 0  0 0 0 0 0 0 -1 |  | 0 0  0  0 0 0 0 0 |  ||
|-1 |  | 0 0 0  0 0 0 0  -1 |  | 0  0 0 0 0 0 0 0  |  | 0 0  0  0 0 0 0 0 |  ||
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0  0  0 0 0 0  0 1 |, | 0 0  -1 0 0 0 0  0 |, | 0  0 0 0  0  0 0 0 |, | 0 0 0|
|0  0  0 0 0 0  0 1 |  | 0 0  0  0 0 0 0  0 |  | 0  0 0 -1 0  0 0 0 |  | 0 0 0|
|0  0  0 0 0 0  1 0 |  | 0 0  0  0 0 0 0  0 |  | 0  0 0 0  -1 0 0 0 |  | 0 0 0|
|0  0  0 0 0 -1 0 0 |  | 0 0  0  0 1 0 0  0 |  | 0  0 0 0  0  0 0 0 |  | 0 0 0|
|-1 -1 0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  | 0  0 0 0  0  0 0 0 |  | 0 0 0|
|0  0  0 0 0 0  0 0 |  | 2 -1 0  0 0 0 0  0 |  | 0  0 0 0  0  0 0 0 |  | 0 0 0|
|0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  | -1 2 0 0  0  0 0 0 |  | 0 0 1|
|0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 -1 0 |  | 0  0 0 0  0  1 0 0 |  | 1 1 0|
|-----------------------------------------------------------------------------|
|              }                                                              |
|                                                                             |
|                                                                             |
|                                                                             |
|0  -1 0 0 0 |}                                                               |
|0  -1 0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|-1 0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
+-----------------------------------------------------------------------------+
|i2 : sl4=simpleLieAlgebra("A",3)                                             |
|                                                                             |
|o2 = sl4                                                                     |
|                                                                             |
|o2 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i3 : adjointRepresentation(sl4)                                              |
|                                                                             |
|o3 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl4               |
|                              "Module" => LL     (sl4)                       |
|                                            1,0,1                            |
|                              "RepresentationMatrices" => {| 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 2 0  0 0  |
|                                                           | 0 0 0 0 -1 0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 1  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                           | 0 0 0 0 0  0 0  |
|                                                                             |
|o3 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0  0 0  0 0 0  0 0  |, | 0 0 0 0  0 0  0 0 0 0 0  0 0  0  0 |, | 0 0 0 0 0  0|
|0  0 0  0 0 0  0 0  |  | 0 0 0 0  0 0  0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 0  0 0  |  | 0 0 0 0  0 0  0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 0  0 0  |  | 0 0 0 -1 0 0  0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 0  0 0  |  | 0 0 0 0  2 0  0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 -1 0|
|0  0 0  0 0 0  0 0  |  | 0 0 0 0  0 -1 0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  2|
|0  0 0  0 0 0  0 0  |  | 0 0 0 0  0 0  1 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|-1 0 0  0 0 0  0 0  |  | 0 0 0 0  0 0  0 1 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|0  1 0  0 0 0  0 0  |  | 0 0 0 0  0 0  0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|0  0 -2 0 0 0  0 0  |  | 0 0 0 0  0 0  0 0 0 1 0  0 0  0  0 |  | 0 0 0 0 0  0|
|0  0 0  1 0 0  0 0  |  | 0 0 0 0  0 0  0 0 0 0 -2 0 0  0  0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 0  0 0  |  | 0 0 0 0  0 0  0 0 0 0 0  1 0  0  0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 -1 0 0  |  | 0 0 0 0  0 0  0 0 0 0 0  0 -1 0  0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 0  1 0  |  | 0 0 0 0  0 0  0 0 0 0 0  0 0  -1 0 |  | 0 0 0 0 0  0|
|0  0 0  0 0 0  0 -1 |  | 0 0 0 0  0 0  0 0 0 0 0  0 0  0  0 |  | 0 0 0 0 0  0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0  0 0 0 0 0  0 0  0  |, | 0  0 0 0 0 0 0 0 0 1 0 0 0  0 0  |, | 0 0  0 0  0 |
|0  0 0 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 0  0 0  0  |  | -2 1 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 1 -2 1 0  0 |
|0  0 0 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|-1 0 0 0 0 0  0 0  0  |  | 0  0 0 0 1 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 -1 0 |
|0  1 0 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 1 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 1 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 1 0  0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 -1 0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 -2 0 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 0  1 0  0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|0  0 0 0 0 0  0 -1 0  |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 -1 |  | 0 0  0 0  0 |
|0  0 0 0 0 0  0 0  -1 |  | 0  0 0 0 0 0 0 0 0 0 0 0 0  0 0  |  | 0 0  0 0  0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0  0 |, | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |, | 0  0  0 0 0 0|
|0 0 0 0 0 1 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 1 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 1 -2 0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | -1 -1 1 0 0 0|
|1 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 -1 0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 -1 0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 1|
|0 0 0 0 0 0 0 1 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 1 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 -1 0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 1 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|0 0 0 0 0 0 0 0 0  0 |  | 0 0 0  0 0  0 0  0 0 0 0 0 0 0 0 |  | 0  0  0 0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0  0 0 1 0 0  |, | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |, | 0  0 0  0 0 0|
|0 0 0 0  0 0 1 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 1 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 1 0 |  | 0  0 0  0 0 0|
|0 0 0 0  1 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 -1 0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  1 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 -1 0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 1 -1 -1 0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  -1 0 0 0 0 0 0 0  0 0 0 0 |  | -1 0 -1 0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 1 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 -1 |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|0 0 0 0  0 0 0 0 0  |  | 0 0  0  0  0 0 0 0 0 0 0  0 0 0 0 |  | 0  0 0  0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0  0 0 0  0 1 |, | 0 0  0 -1 0 0 0 0 0 0 0  0 0 0  0 |, | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 1 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 -1 |
|0 0 0 0  0 0 0  0 1 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  1 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 1 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 -1 0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 1 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 -1 0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 1 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 2 -1 0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | -1 2 -1 0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 -1 0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 0  0 |  | 0  0 0  0 0  |
|0 0 0 0  0 0 0  0 0 |  | 0 0  0 0  0 0 0 0 0 0 0  0 0 -1 0 |  | 0  0 0  0 0  |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0  0 0 0 0 0  0 0 0 |, | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |, | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 -1 0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 -1 0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 -1 0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  1 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  -1 0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 -1|
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  1 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 -1 2 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 1 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 1 1 -1 0 0 |
|0 0  0 0 0 0 -1 0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 1 0 0 0 0 |  | 0 0 0  0 0 |
|0 0  0 0 0 0 0  0 0 0 |  | 0 0  0 0 0 0  0 0  0  0 0 0 1 0 0 |  | 0 0 0  0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 -1 0 0 0 0 0  0 0 0 |, | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |, | 0 0 0 0 0  |
|0 -1 0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 -1 0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 -1 0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  -1 0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 1 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 -1 0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 1 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | 0  0 0 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 0 0  |
|0 0  0 0 0 0 0  0 0 0 |  | -1 1 1 0 0 0  0 0  0  0 0 0 0 0 0 |  | 0 0 0 1 0  |
|0 0  0 0 0 0 -1 0 0 0 |  | 0  0 0 0 0 0  0 0  0  1 0 0 0 0 0 |  | 1 0 1 0 0  |
|-----------------------------------------------------------------------------|
|                         }                                                   |
|                                                                             |
|                                                                             |
|0  0 0  -1 0 0 0 0 0 0 |}                                                    |
|0  0 0  -1 0 0 0 0 0 0 |                                                     |
|0  0 0  -1 0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 -1 0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  1 0  0  0 0 0 0 0 0 |                                                     |
|-1 0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
|0  0 0  0  0 0 0 0 0 0 |                                                     |
+-----------------------------------------------------------------------------+
|i4 : LAB=lieAlgebraBasis("C",2)                                              |
|                                                                             |
|o4 = Enhanced basis of 𝔠                                                     |
|                        2                                                    |
|                                                                             |
|o4 : LieAlgebraBasis                                                         |
+-----------------------------------------------------------------------------+
|i5 : adjointRepresentation(LAB)                                              |
|                                                                             |
|o5 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔠                 |
|                                                            2                |
|                              "Module" => LL   (𝔠 )                          |
|                                            2,0  2                           |
|                              "RepresentationMatrices" => {| 0 0 0 0  0 0 0  |
|                                                           | 0 0 0 0  0 0 0  |
|                                                           | 0 0 2 0  0 0 0  |
|                                                           | 0 0 0 -2 0 0 0  |
|                                                           | 0 0 0 0  0 0 0  |
|                                                           | 0 0 0 0  0 2 0  |
|                                                           | 0 0 0 0  0 0 -2 |
|                                                           | 0 0 0 0  0 0 0  |
|                                                           | 0 0 0 0  0 0 0  |
|                                                           | 0 0 0 0  0 0 0  |
|                                                                             |
|o5 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0  |, | 0 0 0  0 0 0 0 0  0  0 |, | 0  0 0 0 0 0 1 0 0  0  |, | 0 0  0  0|
|0 0 0  |  | 0 0 0  0 0 0 0 0  0  0 |  | 0  0 0 0 0 0 0 0 0  0  |  | 0 0  0  0|
|0 0 0  |  | 0 0 -1 0 0 0 0 0  0  0 |  | -2 1 0 0 0 0 0 0 0  0  |  | 0 0  0  0|
|0 0 0  |  | 0 0 0  2 0 0 0 0  0  0 |  | 0  0 0 0 0 0 0 0 0  0  |  | 2 -2 0  0|
|0 0 0  |  | 0 0 0  0 1 0 0 0  0  0 |  | 0  0 0 1 0 0 0 0 0  0  |  | 0 0  -1 0|
|0 0 0  |  | 0 0 0  0 0 0 0 0  0  0 |  | 0  0 0 0 2 0 0 0 0  0  |  | 0 0  0  0|
|0 0 0  |  | 0 0 0  0 0 0 1 0  0  0 |  | 0  0 0 0 0 0 0 0 0  0  |  | 0 0  0  0|
|2 0 0  |  | 0 0 0  0 0 0 0 -2 0  0 |  | 0  0 0 0 0 0 0 0 -2 0  |  | 0 0  0  0|
|0 0 0  |  | 0 0 0  0 0 0 0 0  -1 0 |  | 0  0 0 0 0 0 0 0 0  -1 |  | 0 0  0  0|
|0 0 -2 |  | 0 0 0  0 0 0 0 0  0  0 |  | 0  0 0 0 0 0 0 0 0  0  |  | 0 0  0  0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 |, | 0 0  0  0 0 0 0  0 1 0 |, | 0  0 0 0 0 0 0  0 0 1 |, | 0 0  |
|0 0 0 1 0 0 |  | 0 0  0  0 0 0 0  0 2 0 |  | 0  0 0 0 0 0 0  0 0 1 |  | 0 0  |
|0 0 0 0 0 0 |  | 0 0  0  0 0 0 0  1 0 0 |  | 0  0 0 0 0 0 0  0 1 0 |  | 0 0  |
|0 0 0 0 0 0 |  | 0 0  0  0 0 0 -2 0 0 0 |  | 0  0 0 0 0 0 0  0 0 0 |  | 0 0  |
|0 0 0 0 0 0 |  | 0 -1 0  0 0 0 0  0 0 0 |  | 0  0 0 0 0 0 -1 0 0 0 |  | 0 0  |
|0 0 0 0 0 0 |  | 0 0  -2 0 0 0 0  0 0 0 |  | -2 0 0 0 0 0 0  0 0 0 |  | 0 0  |
|0 0 0 0 1 0 |  | 0 0  0  0 0 0 0  0 0 1 |  | 0  0 0 0 0 0 0  0 0 0 |  | 2 -1 |
|0 0 0 0 0 0 |  | 0 0  0  0 0 0 0  0 0 0 |  | 0  0 0 0 0 0 0  0 0 0 |  | 0 0  |
|0 0 0 0 0 0 |  | 0 0  0  0 0 0 0  0 0 0 |  | 0  0 0 0 0 0 0  0 0 0 |  | 0 0  |
|0 0 0 0 0 0 |  | 0 0  0  0 0 0 0  0 0 0 |  | 0  0 0 0 0 0 0  0 0 0 |  | 0 0  |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|-1 0 0 0 0 0  0  0 |, | 0  0 0 0  0  0 0 0 0 0 |, | 0 0 0 0  -1 0  0 0 0 0 |,|
|0  0 0 0 0 0  0  0 |  | 0  0 0 -1 0  0 0 0 0 0 |  | 0 0 0 0  -2 0  0 0 0 0 | |
|0  0 0 0 0 0  0  0 |  | 0  0 0 0  -1 0 0 0 0 0 |  | 0 0 0 0  0  -1 0 0 0 0 | |
|0  0 2 0 0 0  0  0 |  | 0  0 0 0  0  0 0 0 0 0 |  | 0 0 0 0  0  0  0 0 0 0 | |
|0  0 0 1 0 0  0  0 |  | 0  0 0 0  0  0 0 0 0 0 |  | 0 0 0 0  0  0  0 0 0 0 | |
|0  0 0 0 0 0  0  0 |  | 0  0 0 0  0  0 0 0 0 0 |  | 0 0 0 0  0  0  0 0 0 0 | |
|0  0 0 0 0 0  0  0 |  | 0  0 0 0  0  0 0 0 0 0 |  | 0 0 0 -1 0  0  0 0 0 0 | |
|0  0 0 0 0 0  0  0 |  | -2 2 0 0  0  0 0 0 0 0 |  | 0 0 2 0  0  0  0 0 0 0 | |
|0  0 0 0 0 -1 0  0 |  | 0  0 0 0  0  0 1 0 0 0 |  | 0 1 0 0  0  0  0 0 0 0 | |
|0  0 0 0 0 0  -2 0 |  | 0  0 0 0  0  0 0 0 0 0 |  | 0 0 0 0  0  0  2 0 0 0 | |
|-----------------------------------------------------------------------------|
|                          }                                                  |
|                                                                             |
|                                                                             |
|                                                                             |
|| 0 0 0 0 0  -1 0 0 0 0 |}                                                   |
|| 0 0 0 0 0  -1 0 0 0 0 |                                                    |
|| 0 0 0 0 0  0  0 0 0 0 |                                                    |
|| 0 0 0 0 0  0  0 0 0 0 |                                                    |
|| 0 0 0 0 0  0  0 0 0 0 |                                                    |
|| 0 0 0 0 0  0  0 0 0 0 |                                                    |
|| 0 0 0 0 -1 0  0 0 0 0 |                                                    |
|| 0 0 0 0 0  0  0 0 0 0 |                                                    |
|| 0 0 1 0 0  0  0 0 0 0 |                                                    |
|| 2 0 0 0 0  0  0 0 0 0 |                                                    |
+-----------------------------------------------------------------------------+

Ways to use adjointRepresentation:
==================================

  * "adjointRepresentation(LieAlgebra)"
  * "adjointRepresentation(LieAlgebraBasis)"
  * "adjointRepresentation(String,ZZ)"

For the programmer
==================

The object adjointRepresentation, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1742:0.

basisWordsFromMatrixGenerators -- express each basis element of $V(\lambda)$ as a linear combination of words in the lowering operators applied to the highest weight vector
****************************************************************************************************************************************************************************

  * Usage:
        basisWordsFromMatrixGenerators(V)
  * Inputs:
      * V, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Irreducible Lie algebra modules are cyclic modules. That is, it is possible to
write each element of $V(\lambda)$ as a linear combination of words in the
lowering operators applied to the highest weight vector. In particular, we can
do this for elements of the basis of $V(\lambda)$ that is used to write the
matrix generators of the representation $\rho$.

The output may be parsed as follows. Suppose that we order the lowering
operators of $\mathfrak{g}$ as $Y_0,\ldots,Y_k$. Then if the output indicates
that $v$ is represented by a word with terms {{{1}, 2}, {{0, 2}, 1}}, this
means $v = 2 Y_1.v_\lambda + Y_0.Y_2.v_\lambda$, where $v_\lambda$ represents
the highest weight vector.

In the example below, we compute the words that yield the Gelfand-Tsetlin basis
for the adjoint representation of $sl_3$.

+-----------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2);                                          |
+-----------------------------------------------------------------------------+
|i2 : LAB = lieAlgebraBasis("A",2);                                           |
+-----------------------------------------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({1,1},sl3);                               |
+-----------------------------------------------------------------------------+
|i4 : rho=lieAlgebraRepresentation(V,LAB,GTrepresentationMatrices(V));        |
+-----------------------------------------------------------------------------+
|i5 : basisWordsFromMatrixGenerators(rho)                                     |
|Length 1 complete. 3 new words found                                         |
|Length 2 complete. 4 new words found                                         |
|                                                                             |
|o5 = {LieAlgebraModuleElement{"LieAlgebraModule" => V},                      |
|                              "Terms" => {{{}, 1}}                           |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V},                       |
|                             "Terms" => {{{0}, 1}}                           |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V},                       |
|                             "Terms" => {{{1}, 1}}                           |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V },                      |
|                             "Terms" => {{{0, 1}, 1}}                        |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V  },                     |
|                             "Terms" => {{{0, 2}, -2}}                       |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V           },            |
|                             "Terms" => {{{2}, 2}, {{0, 1}, 1}}              |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V },                      |
|                             "Terms" => {{{1, 2}, 3}}                        |
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     LieAlgebraModuleElement{"LieAlgebraModule" => V   }}                    |
|                                                    3                        |
|                             "Terms" => {{{2, 2}, - -}}                      |
|                                                    2                        |
|                                                                             |
|o5 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use basisWordsFromMatrixGenerators:
===========================================

  * "basisWordsFromMatrixGenerators(LieAlgebraRepresentation)"

For the programmer
==================

The object basisWordsFromMatrixGenerators,
is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2031:0.

branchingRule -- A Lie algebra module viewed as a module over a Lie subalgebra
******************************************************************************

  * Usage:
        branchingRule(V,S)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
      * S, a string (Macaulay2Doc), a list (Macaulay2Doc),
        a matrix (Macaulay2Doc), or an
        instance of the type LieAlgebra,
  * Outputs:
      * V', an instance of the type LieAlgebraModule,

Description
===========

S must be a subset of vertices of the Dynkin diagram of the Lie algebra of V,
or a matrix, or a string, see subLieAlgebra,; or a sub-Lie
algebra. Returns V viewed as a module over the Lie subalgebra determined by S.

+-------------------------------------------------+
|i1 : g=simpleLieAlgebra("D",4);                  |
+-------------------------------------------------+
|i2 : M=adjointModule g;                          |
+-------------------------------------------------+
|i3 : branchingRule(M,{1,2,3})                    |
|                                                 |
|                                 2               |
|o3 = LL     (𝔞 ) ++ (LL     (𝔞 ))  ++ LL     (𝔞 )|
|       0,0,0  3        0,1,0  3         1,0,1  3 |
|                                                 |
|o3 : LieAlgebraModule over 𝔞                     |
|                            3                    |
+-------------------------------------------------+

Ways to use branchingRule:
==========================

  * "branchingRule(LieAlgebraModule,LieAlgebra)"
  * "branchingRule(LieAlgebraModule,List)"
  * "branchingRule(LieAlgebraModule,Matrix)"
  * "branchingRule(LieAlgebraModule,String)"

For the programmer
==================

The object branchingRule, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1222:0.

cartanMatrix -- Provide the Cartan matrix of a simple Lie algebra
*****************************************************************

Description
===========

+------------------------------+
|i1 : g=simpleLieAlgebra("G",2)|
|                              |
|o1 = g                        |
|                              |
|o1 : simple LieAlgebra        |
+------------------------------+
|i2 : cartanMatrix g           |
|                              |
|o2 = | 2  -1 |                |
|     | -3 2  |                |
|                              |
|              2       2       |
|o2 : Matrix ZZ  <-- ZZ        |
+------------------------------+

Ways to use cartanMatrix:
=========================

  * "cartanMatrix(LieAlgebra)"

For the programmer
==================

The object cartanMatrix, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1189:0.

casimirOperator -- computes the Casimir operator associated to a representation
*******************************************************************************

  * Usage:
        casimirOperator(rho)
  * Inputs:
      * rho, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

Let $\rho: \mathfrak{g} \rightarrow \mathfrak{gl}(V)$ be a Lie algebra
representation.

Let $\{B_i\}$ be a basis of $\mathfrak{g}$, and let $\{B_i^{*}\}$ be the dual
basis with respect to the Killing form. The Casimir operator is

$\operatorname{Cas} = \sum_{i} \rho(B_i^*) \rho(B_i)$.

Recall that in creating a LieAlgebraBasis, we compute the dual basis
$\{B_i^{*}\}$. This makes it straightforward to compute the Casimir operator.

If $V$ is irreducible with highest weight $\lambda$, then $\operatorname{Cas} =
c(\lambda) \operatorname{Id}$, where $c(\lambda)$ is the scalar computed by
casimirScalar.

We compute the Casimir operator for the symmetric square of the standard
representation of $sl_3$. Since this is an irreducible representation, we get a
scalar multiple of the identity.

+-----------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2)                                           |
|                                                                             |
|o1 = sl3                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : V = standardRepresentation(sl3)                                         |
|                                                                             |
|o2 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl3               |
|                              "Module" => LL   (sl3)                         |
|                                            1,0                              |
|                              "RepresentationMatrices" => {| 1 0  0 |, | 0 0 |
|                                                           | 0 -1 0 |  | 0 1 |
|                                                           | 0 0  0 |  | 0 0 |
|                                                                             |
|o2 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                       }     |
|                                                                             |
|                                                                             |
|0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0 0 0 |, | 0 0 0 |}      |
|0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0 0 |       |
|-1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 1 0 |  | 1 0 0 |       |
+-----------------------------------------------------------------------------+
|i3 : S2V=symmetricPower(2,V);                                                |
+-----------------------------------------------------------------------------+
|i4 : casimirScalar(S2V#"Module")                                             |
|                                                                             |
|     20                                                                      |
|o4 = --                                                                      |
|      3                                                                      |
|                                                                             |
|o4 : QQ                                                                      |
+-----------------------------------------------------------------------------+
|i5 : CasS2V = casimirOperator(S2V)                                           |
|                                                                             |
|o5 = | 20/3 0    0    0    0    0    |                                       |
|     | 0    20/3 0    0    0    0    |                                       |
|     | 0    0    20/3 0    0    0    |                                       |
|     | 0    0    0    20/3 0    0    |                                       |
|     | 0    0    0    0    20/3 0    |                                       |
|     | 0    0    0    0    0    20/3 |                                       |
|                                                                             |
|              6       6                                                      |
|o5 : Matrix QQ  <-- QQ                                                       |
+-----------------------------------------------------------------------------+

Next, we compute the Casimir operator for $\operatorname{Sym^2}
\operatorname{Sym^2} \mathbb{C}^3$. It has two distinct eigenvalues. The
eigenvalues match the Casimir scalars of the irreducible submodules appearing
in the decomposition of $\operatorname{Sym^2} \operatorname{Sym^2}
\mathbb{C}^3$, and the multiplicities of the eigenvalues match the dimensions
of these submodules.

+-----------------------------------------------------------------------------+
|i6 : S2S2V=symmetricPower(2,S2V);                                            |
+-----------------------------------------------------------------------------+
|i7 : CasS2S2V = casimirOperator(S2S2V)                                       |
|                                                                             |
|o7 = | 56/3 0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    56/3 0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    56/3 0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    32/3 0    0    4    0    0    0    0    0    0    0    |
|     | 0    0    0    0    32/3 0    0    4    0    0    0    0    0    0    |
|     | 0    0    0    0    0    32/3 0    0    0    0    0    4    0    0    |
|     | 0    0    0    8    0    0    44/3 0    0    0    0    0    0    0    |
|     | 0    0    0    0    8    0    0    44/3 0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    56/3 0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    44/3 0    0    8    0    |
|     | 0    0    0    0    0    0    0    0    0    0    32/3 0    0    4    |
|     | 0    0    0    0    0    8    0    0    0    0    0    44/3 0    0    |
|     | 0    0    0    0    0    0    0    0    0    4    0    0    32/3 0    |
|     | 0    0    0    0    0    0    0    0    0    0    8    0    0    44/3 |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     | 0    0    0    0    0    0    0    0    0    0    0    0    0    0    |
|     ------------------------------------------------------------------------|
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     0    0    0    0    0    0    0    |                                    |
|     56/3 0    0    0    0    0    0    |                                    |
|     0    56/3 0    0    0    0    0    |                                    |
|     0    0    56/3 0    0    0    0    |                                    |
|     0    0    0    32/3 4    0    0    |                                    |
|     0    0    0    8    44/3 0    0    |                                    |
|     0    0    0    0    0    56/3 0    |                                    |
|     0    0    0    0    0    0    56/3 |                                    |
|                                                                             |
|              21       21                                                    |
|o7 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+
|i8 : tally eigenvalues CasS2S2V                                              |
|                                                                             |
|o8 = Tally{6.66667 => 6 }                                                    |
|           18.6667 => 15                                                     |
|                                                                             |
|o8 : Tally                                                                   |
+-----------------------------------------------------------------------------+
|i9 : peek S2S2V                                                              |
|                                                                             |
|o9 = LieAlgebraRepresentation{Basis => Enhanced basis of sl3                 |
|                              Module => LL   (sl3) ++ LL   (sl3)             |
|                                          0,2           4,0                  |
|                              RepresentationMatrices => {| 4 0 0 0 0 0 0 0 0 |
|                                                         | 0 2 0 0 0 0 0 0 0 |
|                                                         | 0 0 3 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 1 0 0 0 0 |
|                                                         | 0 0 0 0 0 2 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 1 0 |
|                                                         | 0 0 0 0 0 0 0 0 -2|
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|                                                         | 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0  0 0 0  0 0 0  0  0  0  0  0 |, | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 1 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 -1 0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  2 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 -2 0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  2 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 3 0 0  0  0 0  0  0 0 0|
|-1 0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 1 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 -1 0  0 0  0  0 0 0|
|0  0 2 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  -2 0 0  0  0 0 0|
|0  0 0 -1 0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  1 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 -1 0  0 0 0|
|0  0 0 0  0 1 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  -3 0 0 0|
|0  0 0 0  0 0 -4 0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  4 0 0|
|0  0 0 0  0 0 0  -3 0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 2 0|
|0  0 0 0  0 0 0  0  -2 0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  -2 0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  -1 0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|0  0 0 0  0 0 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0 0 0  0  0 0  0  0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0  0  |, | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 1 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 2 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 1 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 -2 0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|0 0  -4 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 |, | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |, | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 4|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 2 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 |  | 0|
|1 0 0 1 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 |  | 0|
|0 2 0 0 1 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 |  | 0|
|0 0 0 0 0 1 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 |  | 0|
|0 0 0 0 1 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 |  | 0|
|0 0 0 0 0 2 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 |  | 0|
|0 0 0 0 0 0 0 1 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 2 2 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 2 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 4 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |
|2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |
|0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 |
|0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 |
|0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 |
|0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                           }                 |
|                                                                             |
|                                                                             |
|0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |}                  |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |                   |
|1 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 |                   |
|2 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |                   |
|0 2 2 0 0 |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 |                   |
|0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |                   |
+-----------------------------------------------------------------------------+
|i10 : V40 = irreducibleLieAlgebraModule({4,0},sl3);                          |
+-----------------------------------------------------------------------------+
|i11 : dim V40                                                                |
|                                                                             |
|o11 = 15                                                                     |
+-----------------------------------------------------------------------------+
|i12 : casimirScalar(V40)                                                     |
|                                                                             |
|      56                                                                     |
|o12 = --                                                                     |
|       3                                                                     |
|                                                                             |
|o12 : QQ                                                                     |
+-----------------------------------------------------------------------------+
|i13 : V02 = irreducibleLieAlgebraModule({0,2},sl3);                          |
+-----------------------------------------------------------------------------+
|i14 : dim V02                                                                |
|                                                                             |
|o14 = 6                                                                      |
+-----------------------------------------------------------------------------+
|i15 : casimirScalar(V02)                                                     |
|                                                                             |
|      20                                                                     |
|o15 = --                                                                     |
|       3                                                                     |
|                                                                             |
|o15 : QQ                                                                     |
+-----------------------------------------------------------------------------+

Ways to use casimirOperator:
============================

  * "casimirOperator(LieAlgebraRepresentation)"

For the programmer
==================

The object casimirOperator, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1875:0.

casimirProjection -- projection operator to a specified eigenspace of the Casimir operator
******************************************************************************************

  * Usage:
        casimirProjection(rho,z)
  * Inputs:
      * rho, an instance of the type LieAlgebraRepresentation,
      * z, a rational number (Macaulay2Doc),
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

Let $\rho$ be a LieAlgebraRepresentation, and recall the definition of the
Casimir operator from casimirOperator.

This function returns the projection matrix to the eigenspace of the Casimir
operator for the input eigenvalue z.  This matrix is computed as the product of
factors $\operatorname{Cas}-x I$ over all eigenvalues $x \neq z$.

+-----------------------------------------------------------------------------+
|i1 : V=standardRepresentation("A",2);                                        |
+-----------------------------------------------------------------------------+
|i2 : S2V=symmetricPower(2,V);                                                |
+-----------------------------------------------------------------------------+
|i3 : S3S2V=symmetricPower(3,S2V);                                            |
+-----------------------------------------------------------------------------+
|i4 : casimirProjection(S3S2V,16)                                             |
|                                                                             |
|o4 = | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 -256 0    0    64  0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    -256 0    0   64  0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    -256 0   0   0    0    0    64  0    0    0    0      |
|     | 0 0 0 256  0    0    -64 0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    256  0    0   -64 0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   -128 0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    -192 0    0   128  0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    -256 0   0    64   0    0      |
|     | 0 0 0 0    0    256  0   0   0    0    0    -64 0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    64   0    0   -256 0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    128  0   0    -192 0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    -128 0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    -256   |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   128  0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    128  0    0   128  0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    256    |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    128  0   0    128  0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    128  0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     | 0 0 0 0    0    0    0   0   0    0    0    0   0    0    0    0      |
|     ------------------------------------------------------------------------|
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    192  0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    128  0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    64   0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    64   0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    128  0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    64  0    0    0    0    0   0    0   |
|     -256 0    0    0    0    0    0    0   64   0    0    64   0   0    0   |
|     0    -192 -32  0    0    0    0    0   0    -32  0    0    48  0    0   |
|     0    -64  -224 0    0    0    0    0   0    96   0    0    16  0    0   |
|     0    0    0    -256 0    0    0    0   0    0    0    0    0   64   0   |
|     0    0    0    0    -256 0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    -192 0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    -192 0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    -64 0    0    0    0    0   0    0   |
|     128  0    0    0    0    0    0    0   -192 0    0    128  0   0    0   |
|     0    -64  96   0    0    0    0    0   0    -224 0    0    16  0    0   |
|     0    0    0    0    0    0    0    0   0    0    -192 0    0   0    0   |
|     128  0    0    0    0    0    0    0   128  0    0    -192 0   0    0   |
|     0    384  64   0    0    0    0    0   0    64   0    0    -96 0    0   |
|     0    0    0    128  0    0    0    0   0    0    0    0    0   -192 0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    -64  96   0    0    0    0    0   0    96   0    0    16  0    0   |
|     0    0    0    128  0    0    0    0   0    0    0    0    0   128  0   |
|     0    0    0    0    256  0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     0    0    0    0    0    0    0    0   0    0    0    0    0   0    0   |
|     ------------------------------------------------------------------------|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    192  0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    -32  0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    96   0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    64   0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    64  0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    96   0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    64   0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    128  0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     -64 0    0    0    0    0    0    0    0   256  0    0    0    0   0 0 0|
|     0   -256 64   0    0    0    0    0    0   0    64   0    0    0   0 0 0|
|     0   128  -192 0    0    0    0    0    0   0    128  0    0    0   0 0 0|
|     0   0    0    -192 0    0    0    0    0   0    0    128  128  0   0 0 0|
|     0   0    0    0    -256 0    0    0    0   0    0    0    0    64  0 0 0|
|     0   0    0    0    0    -192 0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    -224 0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    -192 0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    -64 0    0    0    0    0   0 0 0|
|     64  0    0    0    0    0    0    0    0   -256 0    0    0    0   0 0 0|
|     0   128  128  0    0    0    0    0    0   0    -192 0    0    0   0 0 0|
|     0   0    0    64   0    0    0    0    0   0    0    -256 64   0   0 0 0|
|     0   0    0    128  0    0    0    0    0   0    0    128  -192 0   0 0 0|
|     0   0    0    0    256  0    0    0    0   0    0    0    0    -64 0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     0   0    0    0    0    0    0    0    0   0    0    0    0    0   0 0 0|
|     ------------------------------------------------------------------------|
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     -256 64  0    0    0    0   0 0 |                                       |
|     256  -64 0    0    0    0   0 0 |                                       |
|     0    0   -128 0    192  0   0 0 |                                       |
|     0    0   0    -256 0    64  0 0 |                                       |
|     0    0   128  0    -192 0   0 0 |                                       |
|     0    0   0    256  0    -64 0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|     0    0   0    0    0    0   0 0 |                                       |
|                                                                             |
|              56       56                                                    |
|o4 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+

Ways to use casimirProjection:
==============================

  * "casimirProjection(LieAlgebraRepresentation,QQ)"
  * casimirProjection(LieAlgebraRepresentation,ZZ) (missing documentation)

For the programmer
==================

The object casimirProjection, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1956:0.

casimirScalar -- computes the scalar by which the Casimir operator acts on an irreducible Lie algebra module
************************************************************************************************************

  * Usage:
        casimirScalar(V)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
  * Outputs:
      * k, a rational number (Macaulay2Doc),

Description
===========

The Casimir operator is an element of the universal enveloping algebra that
acts by a scalar on each irreducible Lie algebra module.  One has $c(\mu) =
(\mu,\mu) + 2(\mu,\rho)$, where $\rho$ is half the sum of the positive weights
and (,) is the Killing form scaled so that $(\theta,\theta)=2$, where $\theta$
is the highest root.  See Di Francesco, Mathieu, and Senechal, Conformal Field
Theory, Springer Graduate Texts in Theoretical Physics, (13.127) p. 512, and
(13.46) p. 499.

In the example below, we see that the Casimir operator acts as multiplication
by 8/3 on the standard representation of $sl_3$.

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({1,0},g)|
|                                           |
|o2 = V                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : casimirScalar(V)                      |
|                                           |
|     8                                     |
|o3 = -                                     |
|     3                                     |
|                                           |
|o3 : QQ                                    |
+-------------------------------------------+

Ways to use casimirScalar:
==========================

  * "casimirScalar(LieAlgebraModule)"
  * casimirScalar(LieAlgebra,List) (missing documentation)

For the programmer
==================

The object casimirScalar, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:663:0.

casimirSpectrum -- computes the eigenvalues of the Casimir operator associated to a representation
**************************************************************************************************

  * Usage:
        casimirOperator(V)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

Let V be a LieAlgebraModule, and recall the definition of the Casimir operator
from casimirOperator.

If $V$ corresponds to an irreducible $\mathfrak{g}$-module with highest weight
$\lambda$, then $\operatorname{Cas} = c(\lambda) \operatorname{Id}$, where
$c(\lambda)$ is the scalar computed by casimirScalar.

This function returns a nonredundant list of eigenvalues of
$\operatorname{Cas}$ by computing the scalars $c(\lambda)$ for each irreducible
summand in $V$, and then removing any duplicates.

+-----------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2);      |
+-----------------------------------------+
|i2 : V=standardModule(sl3);              |
+-----------------------------------------+
|i3 : S3V=symmetricPower(3,V);            |
+-----------------------------------------+
|i4 : S4S3V=symmetricPower(4,S3V);        |
+-----------------------------------------+
|i5 : casimirSpectrum(S4S3V)              |
|                                         |
|o5 = {0, 16, 24, 30, 36, 48, 60, 76, 120}|
|                                         |
|o5 : List                                |
+-----------------------------------------+

Ways to use casimirSpectrum:
============================

  * "casimirSpectrum(LieAlgebraModule)"

For the programmer
==================

The object casimirSpectrum, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1918:0.

character -- Computes the character of a Lie algebra module
***********************************************************

  * Usage:
        character V
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
  * Optional inputs (Macaulay2Doc),:
      * Strategy => ..., default value null
  * Outputs:
      * C, a ring element (Macaulay2Doc),

Description
===========

An optional argument "Strategy" allows to specify which algorithm to use:
"Freudenthal" for Freudenthal's recursive algorithm; see Humphreys,
Introduction to Lie Algebras and Representation Theory, Section 22.3. "Weyl"
for Weyl's character formula (in classical types). "JacobiTrudi" and
"JacobiTrudi'" for Jacobi-Trudi and dual Jacobi-Trudi formulae (in type A).

See also
========

  * weightDiagram -- computes the weights in a Lie
    algebra module and their multiplicities

Ways to use character:
======================

  * "character(LieAlgebra,List)"
  * "character(LieAlgebra,Vector)"
  * "character(LieAlgebraModule)"

For the programmer
==================

The object character, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:752:0.

characterRing
*************

Ways to use characterRing:
==========================

  * characterRing(LieAlgebra) (missing documentation)
  * characterRing(Sequence,Sequence) (missing documentation)
  * characterRing(String,ZZ) (missing documentation)

For the programmer
==================

The object characterRing (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

deGraafBases -- compute the bases produced by de Graaf's algorithm
******************************************************************

  * Usage:
        deGraafBasis(lambda,g)
  * Inputs:
      * lambda, a list (Macaulay2Doc),
      * g, an instance of the type LieAlgebra,
  * Outputs:
      * S, a sequence (Macaulay2Doc),

Description
===========

This function implements the main algorithm in de Graaf, "Constructing
representations of split semisimple Lie Algebras", J. Pure Appl. Algebra 164
(2001), no. 1-2, 87-107.

Let $V$ be an irreducible $\mathfrak{g}$-module with highest weight $\lambda$.
Then $V$ may be constructed as the quotient of the algebra $U(N^{-})$ (see
uNminus) by a left ideal $I$. de Graaf's algorithm produces a
Gröbner basis of the ideal $I$, and a basis of the quotient $U(N^{-})/I$.

Note that de Graaf scales his basis monomials.  We skip this.

+-----------------------------------------------------------------------------+
|i1 : g = simpleLieAlgebra("A",2);                                            |
+-----------------------------------------------------------------------------+
|i2 : lambda = {1,1}                                                          |
|                                                                             |
|o2 = {1, 1}                                                                  |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : deGraafBases(lambda,g)                                                  |
|Warning:  F4 Algorithm not available over current coefficient ring or inhomog|
|Converting to Naive algorithm.                                               |
|max-lev=6                                                                    |
|Finished level 1. {#G,#B}={0, 3}                                             |
|Finished level 2. {#G,#B}={2, 5}                                             |
|Finished level 3. {#G,#B}={2, 7}                                             |
|Finished level 4. {#G,#B}={3, 8}                                             |
|Finished level 5. {#G,#B}={5, 8}                                             |
|Finished level 6. {#G,#B}={6, 8}                                             |
|                                                                             |
|         2            2     2            2                                   |
|o3 = ({{Y , {-3, 3}, Y }, {Y , {3, -3}, Y }, {Y Y Y , {-1, -1}, Y Y Y  +     |
|         1            1     2            2     1 2 3             1 2 3       |
|     ------------------------------------------------------------------------|
|     1 2       2              2       2              2     3             3   |
|     -Y }, {Y Y , {-3, 0}, Y Y }, {Y Y , {0, -3}, Y Y }, {Y , {-2, -2}, Y }},|
|     2 3     1 3            1 3     2 3            2 3     3             3   |
|     ------------------------------------------------------------------------|
|                                        2                                    |
|     {1, Y , Y , Y , Y Y , Y Y , Y Y , Y })                                  |
|          1   2   3   1 2   1 3   2 3   3                                    |
|                                                                             |
|o3 : Sequence                                                                |
|-----------------------------------------------------------------------------|
|eneous ideal.                                                                |
+-----------------------------------------------------------------------------+

Ways to use deGraafBases:
=========================

  * "deGraafBases(List,LieAlgebra)"

For the programmer
==================

The object deGraafBases, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2126:0.

deGraafRepresentation -- compute the representation with the specified highest weight using de Graaf's algorithm
****************************************************************************************************************

  * Usage:
        deGraafRepresentation(lambda,g)
  * Inputs:
      * lambda, a list (Macaulay2Doc),
      * g, an instance of the type LieAlgebra,
  * Outputs:
      * rho, an instance of the type LieAlgebraRepresentation,

Description
===========

Let $V$ be an irreducible $\mathfrak{g}$-module with highest weight $\lamdba$.
Then $V$ may be constructed as follows. Let $U(\mathfrak{g})$ be the universal
enveloping algebra of $\mathfrak{g}$ (see universalEnvelopingAlgebra.
Let $A(\lambda)$ be the (infinite-dimensional)
Verma module $U(\mathfrak{g})/J$, where $J$ is the left ideal $\{
x_1,\ldots,x_l,h_1-\lambda(H_1),\ldots,h_n-\lambda(H_n)\rangle$.  Then $V \cong
A(\lambda)/I$, and the action of $X \in \mathfrak{g}$ on elements of the basis
of $U(N^{-})/I$ is left multiplication.

We cannot implement the algorithm outlined above in a naive way because the
AssociativeAlgebras, package does not currently
support quotients of quotients of free algebras.  Instead, following de Graaf,
we exploit the isomorphism $A(\lambda) \cong U(N^{-})$, and proceed as follows.

$\quad$ 1. We create $U(\mathfrak{g})$ and $U(N^{-})$ (see
universalEnvelopingAlgebra, and uNminus)

$\quad$ 2. We compute the Gröbner basis $G$ of $I$, and a basis of the quotient
$U(N^{-})/I$ (see deGraafBases)

$\quad$ 3. For each $X$ in a basis of $\mathfrak{g}$, and each $B_i$ in de
Graaf's basis of $V$:

$\quad$$\quad$ a. Multiply $X.B_i$ in $U(\mathfrak{g})$

$\quad$$\quad$ b. Map this to $U(N^{-})$ under the map sending $x_i \mapsto 0$
and $h_i \mapsto h_i-\lambda(h_i)$

$\quad$$\quad$ c. At top level, we reduce by $I$ in $U(N^{-})$.

$\quad$ This gives the action of $X$ on de Graaf's basis of $V$. We extract the
coefficients to build the matrix.

+-----------------------------------------------------------------------------+
|i1 : g = simpleLieAlgebra("A",2);                                            |
+-----------------------------------------------------------------------------+
|i2 : lambda = {1,1}                                                          |
|                                                                             |
|o2 = {1, 1}                                                                  |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : deGraafRepresentation(lambda,g)                                         |
|Warning:  F4 Algorithm not available over current coefficient ring or        |
|Converting to Naive algorithm.                                               |
|Warning:  F4 Algorithm not available over current coefficient ring or        |
|Converting to Naive algorithm.                                               |
|max-lev=6                                                                    |
|Finished level 1. {#G,#B}={0, 3}                                             |
|Finished level 2. {#G,#B}={2, 5}                                             |
|Finished level 3. {#G,#B}={2, 7}                                             |
|Finished level 4. {#G,#B}={3, 8}                                             |
|Finished level 5. {#G,#B}={5, 8}                                             |
|Finished level 6. {#G,#B}={6, 8}                                             |
|Compute rho(B_0)                                                             |
|Compute rho(B_1)                                                             |
|Compute rho(B_2)                                                             |
|Compute rho(B_3)                                                             |
|Compute rho(B_4)                                                             |
|Compute rho(B_5)                                                             |
|Compute rho(B_6)                                                             |
|Compute rho(B_7)                                                             |
|                                                                             |
|o3 = LieAlgebraRepresentation{"Basis" => Enhanced basis of g                 |
|                              "Module" => LL   (g)                           |
|                                            1,1                              |
|                              "RepresentationMatrices" => {| 1 0  0 0        |
|                                                           | 0 -1 0 0        |
|                                                           | 0 0  2 0        |
|                                                           | 0 0  0 0        |
|                                                           | 0 0  0 0        |
|                                                           | 0 0  0 0        |
|                                                           | 0 0  0 0        |
|                                                           | 0 0  0 0        |
|                                                                             |
|o3 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|inhomogeneous ideal.                                                         |
|                                                                             |
|inhomogeneous ideal.                                                         |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0  0 0  |, | 1 0 0  0 0 0 0  0  |, | 0 1 0 0  0 0  0 0  |, | 0 0 1 0 0 0 0 |
|0 0  0 0  |  | 0 2 0  0 0 0 0  0  |  | 0 0 0 0  0 0  0 0  |  | 0 0 0 1 1 0 0 |
|0 0  0 0  |  | 0 0 -1 0 0 0 0  0  |  | 0 0 0 -1 2 0  0 0  |  | 0 0 0 0 0 0 0 |
|0 0  0 0  |  | 0 0 0  0 0 0 0  0  |  | 0 0 0 0  0 0  0 0  |  | 0 0 0 0 0 0 1 |
|0 0  0 0  |  | 0 0 0  0 0 0 0  0  |  | 0 0 0 0  0 -1 0 0  |  | 0 0 0 0 0 0 1 |
|0 -2 0 0  |  | 0 0 0  0 0 1 0  0  |  | 0 0 0 0  0 0  0 0  |  | 0 0 0 0 0 0 0 |
|0 0  1 0  |  | 0 0 0  0 0 0 -2 0  |  | 0 0 0 0  0 0  0 -2 |  | 0 0 0 0 0 0 0 |
|0 0  0 -1 |  | 0 0 0  0 0 0 0  -1 |  | 0 0 0 0  0 0  0 0  |  | 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 |, | 0 0 0 2 -1 0 0 0 |, | 0 0 0 0 0  0 0    0 |, | 0 0 0 0 0 0   0 0 |, | |
|0 |  | 0 0 0 0 0  1 0 0 |  | 1 0 0 0 0  0 0    0 |  | 0 0 0 0 0 0   0 0 |  | |
|0 |  | 0 0 0 0 0  0 1 0 |  | 0 0 0 0 0  0 0    0 |  | 1 0 0 0 0 0   0 0 |  | |
|0 |  | 0 0 0 0 0  0 0 2 |  | 0 0 0 0 0  0 0    0 |  | 0 1 0 0 0 0   0 0 |  | |
|0 |  | 0 0 0 0 0  0 0 0 |  | 0 0 1 0 0  0 0    0 |  | 0 1 0 0 0 0   0 0 |  | |
|2 |  | 0 0 0 0 0  0 0 0 |  | 0 0 0 1 -2 0 0    0 |  | 0 0 0 0 0 0   0 0 |  | |
|0 |  | 0 0 0 0 0  0 0 0 |  | 0 0 0 0 0  0 0    0 |  | 0 0 0 1 1 0   0 0 |  | |
|0 |  | 0 0 0 0 0  0 0 0 |  | 0 0 0 0 0  0 -1/2 0 |  | 0 0 0 0 0 1/2 0 0 |  | |
|-----------------------------------------------------------------------------|
|                     }                                                       |
|                                                                             |
|                                                                             |
|0 0 0 0 0    0 0 0 |}                                                        |
|0 0 0 0 0    0 0 0 |                                                         |
|0 0 0 0 0    0 0 0 |                                                         |
|1 0 0 0 0    0 0 0 |                                                         |
|0 0 0 0 0    0 0 0 |                                                         |
|0 1 0 0 0    0 0 0 |                                                         |
|0 0 1 0 0    0 0 0 |                                                         |
|0 0 0 1 -1/2 0 0 0 |                                                         |
+-----------------------------------------------------------------------------+

Ways to use deGraafRepresentation:
==================================

  * "deGraafRepresentation(List,LieAlgebra)"

For the programmer
==================

The object deGraafRepresentation, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2169:0.

dim(LieAlgebraModule) -- computes the dimension of a Lie algebra module as a vector space over the ground field
***************************************************************************************************************

  * Function: dim (Macaulay2Doc),
  * Usage:
        dim(V)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
  * Outputs:
      * k, an integer (Macaulay2Doc),

Description
===========

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({1,0},g)|
|                                           |
|o2 = V                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : dim(V)                                |
|                                           |
|o3 = 3                                     |
+-------------------------------------------+

Ways to use this method:
========================

  * dim(LieAlgebraModule) -- computes the
    dimension of a Lie algebra module as a vector space over the ground field
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:557:0.

dual(LieAlgebraRepresentation) -- creates the dual representation of a Lie algebra representation
*************************************************************************************************

  * Function: dual (Macaulay2Doc),
  * Usage:
        dual rho
  * Inputs:
      * rho, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * rhostar, an instance of the type LieAlgebraRepresentation,

Description
===========

The dual representation (with respect to the dual basis) is the negative
transpose.

+-----------------------------------------------------------------------------+
|i1 : sl6 = simpleLieAlgebra("A",5)                                           |
|                                                                             |
|o1 = sl6                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : Std = standardRepresentation(sl6);                                      |
+-----------------------------------------------------------------------------+
|i3 : rho1 = exteriorPower(2,Std);                                            |
+-----------------------------------------------------------------------------+
|i4 : rho2 = dual rho1;                                                       |
+-----------------------------------------------------------------------------+
|i5 : peek(rho1#"Module")                                                     |
|                                                                             |
|o5 = LieAlgebraModule{cache => CacheTable{}                                  |
|                      DecompositionIntoIrreducibles => VirtualTally{{0, 1, 0,|
|                      LieAlgebra => sl6                                      |
|     ------------------------------------------------------------------------|
|                }                                                            |
|     0, 0} => 1}                                                             |
+-----------------------------------------------------------------------------+
|i6 : peek(rho2#"Module")                                                     |
|                                                                             |
|o6 = LieAlgebraModule{cache => CacheTable{}                                  |
|                      DecompositionIntoIrreducibles => VirtualTally{{0, 0, 0,|
|                      LieAlgebra => sl6                                      |
|     ------------------------------------------------------------------------|
|                }                                                            |
|     1, 0} => 1}                                                             |
+-----------------------------------------------------------------------------+
|i7 : M1 = (rho1#"RepresentationMatrices")_6                                  |
|                                                                             |
|o7 = | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                       |
|                                                                             |
|              15       15                                                    |
|o7 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+
|i8 : M2 = (rho2#"RepresentationMatrices")_6                                  |
|                                                                             |
|o8 = | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | -1 0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 -1 0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 -1 0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 -1 0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|     | 0  0 0 0 0  0 0 0  0 0 0 0  0 0 0 |                                   |
|                                                                             |
|              15       15                                                    |
|o8 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+
|i9 : M2==-transpose(M1)                                                      |
|                                                                             |
|o9 = true                                                                    |
+-----------------------------------------------------------------------------+
|i10 : rho3 = exteriorPower(4,Std);                                           |
+-----------------------------------------------------------------------------+
|i11 : isomorphismOfRepresentations(rho2, rho3)                               |
|Length 1 complete. 8 new words found                                         |
|Length 2 complete. 6 new words found                                         |
|                                                                             |
|o11 = | 0 0  0 0  0 0 0  0 0  0 0  0 0 0  1 |                                |
|      | 0 0  0 0  0 0 0  0 0  0 0  0 0 -1 0 |                                |
|      | 0 0  0 0  0 0 0  0 0  0 0  0 1 0  0 |                                |
|      | 0 0  0 0  0 0 0  0 0  0 0  1 0 0  0 |                                |
|      | 0 0  0 0  0 0 0  0 0  0 -1 0 0 0  0 |                                |
|      | 0 0  0 0  0 0 0  0 0  1 0  0 0 0  0 |                                |
|      | 0 0  0 0  0 0 0  0 -1 0 0  0 0 0  0 |                                |
|      | 0 0  0 0  0 0 0  1 0  0 0  0 0 0  0 |                                |
|      | 0 0  0 0  0 0 -1 0 0  0 0  0 0 0  0 |                                |
|      | 0 0  0 0  0 1 0  0 0  0 0  0 0 0  0 |                                |
|      | 0 0  0 0  1 0 0  0 0  0 0  0 0 0  0 |                                |
|      | 0 0  0 -1 0 0 0  0 0  0 0  0 0 0  0 |                                |
|      | 0 0  1 0  0 0 0  0 0  0 0  0 0 0  0 |                                |
|      | 0 -1 0 0  0 0 0  0 0  0 0  0 0 0  0 |                                |
|      | 1 0  0 0  0 0 0  0 0  0 0  0 0 0  0 |                                |
|                                                                             |
|               15       15                                                   |
|o11 : Matrix QQ   <-- QQ                                                     |
+-----------------------------------------------------------------------------+

Ways to use this method:
========================

  * dual(LieAlgebraRepresentation),
    -- creates the dual representation of a Lie algebra representation
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1625:0.

dualCoxeterNumber -- the dual Coxeter number of a simple Lie algebra
********************************************************************

  * Usage:
        dualCoxeterNumber(g)
  * Inputs:
      * g, an instance of the type LieAlgebra, a simple Lie
        algebra
  * Outputs:
      * n, an integer (Macaulay2Doc), the dual Coxeter number of g

Description
===========

The dual Coxeter number is defined as the sum of the comarks plus 1.  See Di
Francesco, Mathieu, and Senechal, Conformal Field Theory, Springer Graduate
Texts in Theoretical Physics, Formula (13.35) and Appendix A.

+------------------------------+
|i1 : dualCoxeterNumber("A",2) |
|                              |
|o1 = 3                        |
+------------------------------+
|i2 : g=simpleLieAlgebra("A",2)|
|                              |
|o2 = g                        |
|                              |
|o2 : simple LieAlgebra        |
+------------------------------+
|i3 : dualCoxeterNumber(g)     |
|                              |
|o3 = 3                        |
+------------------------------+

Ways to use dualCoxeterNumber:
==============================

  * "dualCoxeterNumber(LieAlgebra)"
  * "dualCoxeterNumber(String,ZZ)"

For the programmer
==================

The object dualCoxeterNumber, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:206:0.

dynkinDiagram -- Provide the Dynkin diagram of a simple Lie algebra
*******************************************************************

Description
===========

+------------------------------+
|i1 : g=simpleLieAlgebra("F",4)|
|                              |
|o1 = g                        |
|                              |
|o1 : simple LieAlgebra        |
+------------------------------+
|i2 : dynkinDiagram g          |
|                              |
|o2 = o---o=>=o---o            |
|     1   2   3   4            |
+------------------------------+

Ways to use dynkinDiagram:
==========================

  * "dynkinDiagram(LieAlgebra)"

For the programmer
==================

The object dynkinDiagram, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1175:0.

dynkinToPartition -- converts a highest weight written in the basis of fundamental dominant weights for type A into a partition
*******************************************************************************************************************************

  * Usage:
        dynkinToPartition("A",lambda)
  * Inputs:
      * lambda, a list (Macaulay2Doc),
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

There are at least two popular ways to describe irreducible $\gl_n$ and $sl_n$
characters. We can either give its highest weight as a linear combination of
the fundamental dominant weights $\omega_i$, or describe it as a partition.
This function allows us to convert from the first convention to the second.

In the example below, we convert the weight $\lambda = (1,2,0,0,1) =  \omega_1
+ 2\omega_2 + \omega_5$ for $sl_6$ into a partition.

+----------------------------------+
|i1 : lambda = {1,2,0,0,1}         |
|                                  |
|o1 = {1, 2, 0, 0, 1}              |
|                                  |
|o1 : List                         |
+----------------------------------+
|i2 : dynkinToPartition("A",lambda)|
|                                  |
|o2 = {4, 3, 1, 1, 1, 0}           |
|                                  |
|o2 : List                         |
+----------------------------------+

Ways to use dynkinToPartition:
==============================

  * "dynkinToPartition(String,List)"

For the programmer
==================

The object dynkinToPartition, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2256:0.

embedding -- gives the embedding of Cartan subalgebras of one Lie algebra into another
**************************************************************************************

  * Usage:
        embedding(g,h)
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * h, an instance of the type LieAlgebra,

Description
===========

+----------------------------------------------+
|i1 : h=simpleLieAlgebra("F",4)                |
|                                              |
|o1 = h                                        |
|                                              |
|o1 : simple LieAlgebra                        |
+----------------------------------------------+
|i2 : g=subLieAlgebra(h,{0,1}); describe g     |
|                                              |
|o3 = 𝔞                                        |
|      2                                       |
+----------------------------------------------+
|i4 : embedding(g,h)                           |
|                                              |
|o4 = | -2 1 |                                 |
|     | -3 0 |                                 |
|     | -2 0 |                                 |
|     | -1 0 |                                 |
|                                              |
|              4       2                       |
|o4 : Matrix ZZ  <-- ZZ                        |
+----------------------------------------------+
|i5 : embedding(subLieAlgebra(h,"principal"),h)|
|                                              |
|o5 = | 22 |                                   |
|     | 42 |                                   |
|     | 30 |                                   |
|     | 16 |                                   |
|                                              |
|              4       1                       |
|o5 : Matrix ZZ  <-- ZZ                        |
+----------------------------------------------+

Ways to use embedding:
======================

  * "embedding(LieAlgebra,LieAlgebra)"

For the programmer
==================

The object embedding, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:361:0.

exteriorPower(ZZ,LieAlgebraRepresentation) -- computes the explicit action on $\bigwedge^k V$ for a $\mathfrak{g}$-module $V$
*****************************************************************************************************************************

  * Function: exteriorPower (Macaulay2Doc),
  * Usage:
        exteriorPower(k,V)
  * Inputs:
      * k, an integer (Macaulay2Doc),
      * V, an instance of the type LieAlgebraRepresentation,
  * Optional inputs (Macaulay2Doc),:
      * Strategy => ..., default value null
  * Outputs:
      * W, an instance of the type LieAlgebraRepresentation,

Description
===========

Let $V$ be a LieAlgebraRepresentation. Then this function computes the action
of $\mathfrak{g}$ on $W = \bigwedge^k V$.

In the example below, we compute $\bigwedge^2 V$ for the standard
representation of $sl_3$.

+-----------------------------------------------------------------------------+
|i1 : V = standardRepresentation("A",2);                                      |
+-----------------------------------------------------------------------------+
|i2 : W = exteriorPower(2,V)                                                  |
|                                                                             |
|o2 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            2                |
|                              "Module" => LL   (𝔞 )                          |
|                                            0,1  2                           |
|                              "RepresentationMatrices" => {| 0 0 0  |, | 1 0 |
|                                                           | 0 1 0  |  | 0 -1|
|                                                           | 0 0 -1 |  | 0 0 |
|                                                                             |
|o2 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                        }    |
|                                                                             |
|                                                                             |
|                                                                             |
|0 |, | 0 0 0 |, | 0 1 0 |, | 0 0 -1 |, | 0 0 0 |, | 0 0 0 |, | 0  0 0 |}     |
|0 |  | 0 0 1 |  | 0 0 0 |  | 0 0 0  |  | 0 0 0 |  | 1 0 0 |  | 0  0 0 |      |
|0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0  |  | 0 1 0 |  | 0 0 0 |  | -1 0 0 |      |
+-----------------------------------------------------------------------------+

See also
========

  * exteriorPower(ZZ,LieAlgebraModule)
    -- Computes the nth symmetric /
    exterior tensor power of a Lie algebra module

Ways to use this method:
========================

  * exteriorPower(ZZ,LieAlgebraRepresentation)
    -- computes the explicit
    action on $\bigwedge^k V$ for a $\mathfrak{g}$-module $V$
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2551:0.

fusionCoefficient -- computes the multiplicity of W in the fusion product of U and V
************************************************************************************

  * Usage:
        fusionCoefficient(U,V,W,l)
  * Inputs:
      * U, an instance of the type LieAlgebraModule,
      * V, an instance of the type LieAlgebraModule,
      * W, an instance of the type LieAlgebraModule,
      * l, an integer (Macaulay2Doc),

Description
===========

This function implements the Kac-Walton algorithm; see Di Francesco, Mathieu,
and Senechal, Conformal Field Theory, Springer Graduate Texts in Theoretical
Physics, Section 16.2.2.

Given three irreducible Lie algebra modules $U$, $V$, and $W$, the function
returns the multiplicity of $W$ in the fusion product of $U$ and $V$ at level
$l$.  (We are abusing notation and terminology a little here; the fusion
product is really a product for modules over an affine Lie algebra.  However,
since the Kac-Walton algorithm is defined entirely using the combinatorics of
the root system of the underlying finite-dimensional Lie algebra, we may
therefore use the Kac-Walton algorithm to define a product on Lie algebra
modules as well.)

The example below shows that for $g=sl_3$ and $\lambda=2 \omega_1 + \omega_2$,
$\mu= \omega_1 + 2 \omega_2$, and $\nu= \omega_1 +  \omega_2$, the level 3
fusion product  $V_{\lambda} \otimes_3  V_{\mu}$ contains one copy of
$V_{\nu}$.

+--------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2);             |
+--------------------------------------------+
|i2 : U=irreducibleLieAlgebraModule({2,1},g);|
+--------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({1,2},g);|
+--------------------------------------------+
|i4 : W=irreducibleLieAlgebraModule({1,1},g);|
+--------------------------------------------+
|i5 : fusionCoefficient(U,V,W,3)             |
|                                            |
|o5 = 1                                      |
+--------------------------------------------+

Ways to use fusionCoefficient:
==============================

  * "fusionCoefficient(LieAlgebraModule,LieAlgebraModule,LieAlgebraModule,ZZ)"

For the programmer
==================

The object fusionCoefficient, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:935:0.

fusionProduct -- computes the multiplicities of irreducibles in the decomposition of the fusion product of U and V
******************************************************************************************************************

  * Usage:
        fusionProduct(U,V,l)
  * Inputs:
      * U, an instance of the type LieAlgebraModule,
      * V, an instance of the type LieAlgebraModule,
      * l, an integer (Macaulay2Doc),

Description
===========

This function implements the Kac-Walton algorithm; see Di Francesco, Mathieu,
and Senechal, Conformal Field Theory, Springer Graduate Texts in Theoretical
Physics, Section 16.2.2.

Given two irreducible Lie algebra modules $U$ and $V$, the function returns the
fusion product of $U$ and $V$ at level $l$.  (We are abusing notation and
terminology a little here; the fusion product is really a product for modules
over an affine Lie algebra.  However, since the Kac-Walton algorithm is defined
entirely using the combinatorics of the root system of the underlying
finite-dimensional Lie algebra, we may therefore use the Kac-Walton algorithm
to define a product on Lie algebra modules as well.)

The example below shows that for $g=sl_3$ and $\lambda=2 \omega_1 + \omega_2 =
(2,1)$, $\mu= \omega_1 + 2 \omega_2 = (1,2)$, the level 3 fusion product
$V_{(2,1)} \otimes_3  V_{(1,2)}$ contains one copy of $V_{(0,0)}$ and one copy
of $V_{(1,1)}$.

+--------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2);             |
+--------------------------------------------+
|i2 : U=irreducibleLieAlgebraModule({2,1},g);|
+--------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({1,2},g);|
+--------------------------------------------+
|i4 : fusionProduct(U,V,3)                   |
|                                            |
|o4 = LL   (g) ++ LL   (g)                   |
|       0,0         1,1                      |
|                                            |
|o4 : LieAlgebraModule over g                |
+--------------------------------------------+

Ways to use fusionProduct:
==========================

  * "fusionProduct(LieAlgebraModule,LieAlgebraModule,ZZ)"

For the programmer
==================

The object fusionProduct, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:988:0.

gtInvariantInVtensorVdual -- computes an invariant in $(V \otimes V^*)$ in the type A Gelfand-Tsetlin basis
***********************************************************************************************************

  * Usage:
        gtInvariantInVtensorVdual(lambda)
  * Inputs:
      * lambda, a list (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * SaveAsFunction
  * Outputs:
      * f, a ring element (Macaulay2Doc),

Description
===========

Currently only defined and implemented for $G = SL_n$.

Let $\rho: SL_n \rightarrow GL(V)$ be a representation where $V$ is irreducible
of highest weight $\lambda$.  Then $\dim (V \otimes V^{*})^{SL_n} = 1$.

We have a combinatorial formula for this invariant polynomial in the
Gelfand-Tsetlin basis of $V$.  See
https://faculty.fordham.edu/dswinarski/InvariantPolynomialsAndMukaiModels/
InvariantPolynomialFormula.pdf.

Here is an example for $SL_4$ and $V$ of highest weight $2\omega_1$.

+-----------------------------------------------------------------------------+
|i1 : gtInvariantInVtensorVdual({2,0,0})                                      |
|                                                                             |
|     1       1       1        1        1        1        1        1          |
|o1 = -A B  - -A B  + -A B  + --A B  - --A B  + --A B  - --A B  + --A B  -    |
|     8 0 9   8 1 8   8 2 7   12 3 6   12 4 5   24 5 4   24 6 3   24 7 2      |
|     ------------------------------------------------------------------------|
|      1        1                                                             |
|     --A B  + ---A B                                                         |
|     48 8 1   144 9 0                                                        |
|                                                                             |
|o1 : QQ[A ..B ]                                                              |
|         0   9                                                               |
+-----------------------------------------------------------------------------+

Ways to use gtInvariantInVtensorVdual:
======================================

  * "gtInvariantInVtensorVdual(List)"

For the programmer
==================

The object gtInvariantInVtensorVdual, is a
method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2476:0.

GTPattern -- class for a Gelfand-Tsetlin pattern
************************************************

Description
===========

A Gelfand-Tsetlin pattern is a type of combinatorial object that is useful in
representation theory.  We follow the definitions given in Molev,
"Gelfand-Tsetlin bases for classical Lie algebras", 2018.

Let $\lambda$ be a partition with $n$ parts, written in nonincreasing order. A
Gelfand-Tsetlin pattern of shape  $\lambda$ is a triangular array of the
following form:

$\begin{array}{ccccccccc} x_{n,1} & & x_{n,2} & & x_{n,3} & & \cdots && x_{n,n}
\\ &x_{n-1,1} & & x_{n-1,2} & & \cdots & x_{n-1,n-1} & \\ && \ddots \\ && &
x_{2,1} && x_{2,2} \\ &&&& x_{1,1}\end{array}$

Each entry $x_{i,j}$ is a nonnegative integer, the top row $x_{n,i}$
corresponds to $\lambda$, and the entries satisfy the inequalities $x_{k,i}
\geq x_{k-1,i} \geq x_{k,i+1}$.

The Gelfand-Tsetlin patterns of shape $\lambda$ form a basis of the irreducible
$sl_n$ character with highest weight $\lambda$, and there are explicit formulae
for the actions of a basis of $sl_n$ on this basis.

The Gelfand-Tsetlin patterns correspond to the integer points of a polytope
called the Gelfand-Tsetlin polytope. The LieAlgebraRepresentations package can
create this polytope with the function gtPolytope.

A GTPattern is a hash table with keys recording the shape, entries, content,
and weight of the pattern.

Currently only implemented for type A.

Methods that use an object of class GTPattern:
==============================================

  * net(GTPattern) (missing documentation)

For the programmer
==================

The object GTPattern, is a type (Macaulay2Doc),
with ancestor classes HashTable (Macaulay2Doc), < Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2288:0.

gtPatternFromEntries -- creates an object of type GTPattern from a list of entries
**********************************************************************************

  * Usage:
        gtPatternFromEntries("A",L)
  * Inputs:
      * L, a list (Macaulay2Doc),
  * Outputs:
      * P, an instance of the type GTPattern,

Description
===========

Currently only supported for $\mathfrak{g} = sl_n$.

This function creates an object of type GTPattern from a list of entries.  In
doing so it computes the content and weight associated to the pattern with
these entries, and makes the entries accessible from their indices.

+-----------------------------------------------------+
|i1 : x = gtPatternFromEntries("A",{2, 0, 0, 2, 0, 2})|
|                                                     |
|o1 = (A, {2, 0, 0, 2, 0, 2})                         |
|                                                     |
|o1 : GTPattern                                       |
+-----------------------------------------------------+
|i2 : peek x                                          |
|                                                     |
|o2 = GTPattern{(1, 1) => 2                  }        |
|               (2, 1) => 2                           |
|               (2, 2) => 0                           |
|               (3, 1) => 2                           |
|               (3, 2) => 0                           |
|               (3, 3) => 0                           |
|               content => {2, 0, 0}                  |
|               entries => {2, 0, 0, 2, 0, 2}         |
|               shape => {2, 0, 0}                    |
|               type => A                             |
|               weight => {2, 0}                      |
+-----------------------------------------------------+
|i3 : x#(2,2)                                         |
|                                                     |
|o3 = 0                                               |
+-----------------------------------------------------+

Ways to use gtPatternFromEntries:
=================================

  * "gtPatternFromEntries(String,List)"

For the programmer
==================

The object gtPatternFromEntries, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2392:0.

gtPatterns -- a list of Gelfand-Tsetlin patterns of shape lambda
****************************************************************

  * Usage:
        gtPattern(lambda)
  * Inputs:
      * lambda, a list (Macaulay2Doc),
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Currently only supported for $\mathfrak{g} = sl_n$.

This function computes a list of Gelfand-Tsetlin patterns of shape $\lambda$ by
computing the lattice points of the Gelfand-Tsetlin polytope.  See the
documentation for GTPattern, and gtPolytope,
for more details.

+-----------------------------------------------------------------------------+
|i1 : gtPatterns("A",{2,0,0})                                                 |
|                                                                             |
|o1 = {{2, 0, 0, 2, 0, 2}, {2, 0, 0, 2, 0, 1}, {2, 0, 0, 2, 0, 0}, {2, 0, 0,  |
|     ------------------------------------------------------------------------|
|     1, 0, 1}, {2, 0, 0, 1, 0, 0}, {2, 0, 0, 0, 0, 0}}                       |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+

We compare this to the lattice points of the Gelfand-Tsetlin polytope for this
shape.

+-----------------------------------------------+
|i2 : P = gtPolytope("A",{2,0,0})               |
|                                               |
|o2 = P                                         |
|                                               |
|o2 : Polyhedron                                |
+-----------------------------------------------+
|i3 : latticePoints(P)                          |
|                                               |
|o3 = {| 2 |, | 2 |, | 2 |, | 2 |, | 2 |, | 2 |}|
|      | 0 |  | 0 |  | 0 |  | 0 |  | 0 |  | 0 | |
|      | 0 |  | 0 |  | 0 |  | 0 |  | 0 |  | 0 | |
|      | 0 |  | 1 |  | 1 |  | 2 |  | 2 |  | 2 | |
|      | 0 |  | 0 |  | 0 |  | 0 |  | 0 |  | 0 | |
|      | 0 |  | 0 |  | 1 |  | 0 |  | 1 |  | 2 | |
|                                               |
|o3 : List                                      |
+-----------------------------------------------+

Ways to use gtPatterns:
=======================

  * "gtPatterns(String,List)"

For the programmer
==================

The object gtPatterns, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2361:0.

gtPolytope -- the polytope defined by the inequalities and equations appearing in the definition of Gelfand-Tsetlin patterns
****************************************************************************************************************************

  * Usage:
        gtPolytope("A",lambda)
  * Inputs:
      * lambda, a list (Macaulay2Doc),
  * Outputs:
      * P, a convex polyhedron (Polyhedra),

Description
===========

Currently only supported for $\mathfrak{g} = sl_n$.

Let $\lambda$ be a partition with $n$ parts, written in nonincreasing order. A
Gelfand-Tsetlin pattern of shape  $\lambda$ is a triangular array of the
following form:

$\begin{array}{ccccccccc} x_{n,1} & & x_{n,2} & & x_{n,3} & & \cdots && x_{n,n}
\\ &x_{n-1,1} & & x_{n-1,2} & & \cdots & x_{n-1,n-1} & \\ && \ddots \\ && &
x_{2,1} && x_{2,2} \\ &&&& x_{1,1}\end{array}$

Each entry $x_{i,j}$ is a nonnegative integer, the top row $x_{n,i}$
corresponds to $\lambda$, and the entries satisfy the inequalities $x_{k,i}
\geq x_{k-1,i} \geq x_{k,i+1}$.

This function outputs the polytope defined by these inequalities and equations.

+-------------------------------+
|i1 : P=gtPolytope("A",{2,0,0}) |
|                               |
|o1 = P                         |
|                               |
|o1 : Polyhedron                |
+-------------------------------+
|i2 : dim P                     |
|                               |
|o2 = 2                         |
+-------------------------------+
|i3 : halfspaces(P)             |
|                               |
|o3 = (| -1 0 0 1  0 0  |, 0)   |
|      | 0  0 0 0  0 -1 |       |
|      | 0  0 0 -1 0 1  |       |
|                               |
|o3 : Sequence                  |
+-------------------------------+
|i4 : hyperplanes(P)            |
|                               |
|o4 = (| -1 0 0 0 0 0 |, | -2 |)|
|      | 0  1 0 0 0 0 |  | 0  | |
|      | 0  0 1 0 0 0 |  | 0  | |
|      | 0  0 0 0 1 0 |  | 0  | |
|                               |
|o4 : Sequence                  |
+-------------------------------+
|i5 : vertices(P)               |
|                               |
|o5 = | 2 2 2 |                 |
|     | 0 0 0 |                 |
|     | 0 0 0 |                 |
|     | 0 2 2 |                 |
|     | 0 0 0 |                 |
|     | 0 0 2 |                 |
|                               |
|              6       3        |
|o5 : Matrix QQ  <-- QQ         |
+-------------------------------+

Ways to use gtPolytope:
=======================

  * "gtPolytope(String,List)"

For the programmer
==================

The object gtPolytope, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2324:0.

GTrepresentationMatrices -- creates a list of matrices for the action of $\mathfrak{g}$ on Gelfand-Tsetlin basis
****************************************************************************************************************

  * Usage:
        GTrepresentationMatrices(V,lambda)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Currently only supported for $\mathfrak{g} = sl_n$.

Let $\rho: sl_n \rightarrow \mathfrak{gl}(V)$ be a representation where $V$ is
irreducible of highest weight $\lambda$. Let $\{B_i\}$ be a basis for $sl_n$.
This function creates the list of matrices $\{M_i\}$, where $M_i$ is the matrix
of the endomorphism $\rho(B_i)$ with respect to the Gelfand-Tsetlin basis on
$V$. See Molev, "Gelfand-Tsetlin bases for classical Lie algebras", 2018 for
additional details about the Gelfand-Tsetlin basis.

The output is a list of matrices that may in turn be used to create a
representation with (e.g. with lieAlgebraRepresentation).

In the following example, we compute matrix generators for the adjoint
representation of $sl_3$ with respect to the Gelfand-Tsetlin basis of $sl_3$,
then use these matrices to create a representation that is isomorphic to, but
not equal to, the representation created by adjointRepresentation.
Finally, we compute an isomorphism between these two
representations.

+-----------------------------------------------------------------------------+
|i1 : sl3=simpleLieAlgebra("A",2)                                             |
|                                                                             |
|o1 = sl3                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({1,1},sl3)                                |
|                                                                             |
|o2 = V                                                                       |
|                                                                             |
|o2 : irreducible LieAlgebraModule over sl3                                   |
+-----------------------------------------------------------------------------+
|i3 : L=GTrepresentationMatrices(V)                                           |
|                                                                             |
|o3 = {| 1 0  0 0 0  0 0 0  |, | 1 0 0  0 0 0 0  0  |, | 0 1 0 0 0 0 0 0 |, | |
|      | 0 -1 0 0 0  0 0 0  |  | 0 2 0  0 0 0 0  0  |  | 0 0 0 0 0 0 0 0 |  | |
|      | 0 0  2 0 0  0 0 0  |  | 0 0 -1 0 0 0 0  0  |  | 0 0 0 2 0 0 0 0 |  | |
|      | 0 0  0 0 0  0 0 0  |  | 0 0 0  0 0 0 0  0  |  | 0 0 0 0 2 0 0 0 |  | |
|      | 0 0  0 0 -2 0 0 0  |  | 0 0 0  0 1 0 0  0  |  | 0 0 0 0 0 0 0 0 |  | |
|      | 0 0  0 0 0  0 0 0  |  | 0 0 0  0 0 0 0  0  |  | 0 0 0 0 0 0 0 0 |  | |
|      | 0 0  0 0 0  0 1 0  |  | 0 0 0  0 0 0 -2 0  |  | 0 0 0 0 0 0 0 1 |  | |
|      | 0 0  0 0 0  0 0 -1 |  | 0 0 0  0 0 0 0  -1 |  | 0 0 0 0 0 0 0 0 |  | |
|     ------------------------------------------------------------------------|
|     0 0 1 0 0 0 0   0   |, | 0 0 0 -1 0  3 0 0    |, | 0 0 0 0 0 0 0 0 |, | |
|     0 0 0 1 0 3 0   0   |  | 0 0 0 0  -2 0 0 0    |  | 1 0 0 0 0 0 0 0 |  | |
|     0 0 0 0 0 0 0   0   |  | 0 0 0 0  0  0 3 0    |  | 0 0 0 0 0 0 0 0 |  | |
|     0 0 0 0 0 0 3/2 0   |  | 0 0 0 0  0  0 0 3/2  |  | 0 0 1 0 0 0 0 0 |  | |
|     0 0 0 0 0 0 0   3/2 |  | 0 0 0 0  0  0 0 0    |  | 0 0 0 1 0 0 0 0 |  | |
|     0 0 0 0 0 0 3/2 0   |  | 0 0 0 0  0  0 0 -3/2 |  | 0 0 0 0 0 0 0 0 |  | |
|     0 0 0 0 0 0 0   0   |  | 0 0 0 0  0  0 0 0    |  | 0 0 0 0 0 0 0 0 |  | |
|     0 0 0 0 0 0 0   0   |  | 0 0 0 0  0  0 0 0    |  | 0 0 0 0 0 0 1 0 |  | |
|     ------------------------------------------------------------------------|
|     0 0   0 0   0   0 0 0 |, | 0    0    0   0   0 0  0 0 |}                |
|     0 0   0 0   0   0 0 0 |  | 0    0    0   0   0 0  0 0 |                 |
|     1 0   0 0   0   0 0 0 |  | 0    0    0   0   0 0  0 0 |                 |
|     0 1/2 0 0   0   0 0 0 |  | -1/2 0    0   0   0 0  0 0 |                 |
|     0 0   0 0   0   0 0 0 |  | 0    -1/2 0   0   0 0  0 0 |                 |
|     0 1/2 0 0   0   0 0 0 |  | 1/2  0    0   0   0 0  0 0 |                 |
|     0 0   0 1/3 0   1 0 0 |  | 0    0    1/3 0   0 0  0 0 |                 |
|     0 0   0 0   2/3 0 0 0 |  | 0    0    0   1/3 0 -1 0 0 |                 |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+
|i4 : LAB=lieAlgebraBasis(sl3);                                               |
+-----------------------------------------------------------------------------+
|i5 : rho1=lieAlgebraRepresentation(V,LAB,L)                                  |
|                                                                             |
|o5 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl3               |
|                              "Module" => V                                  |
|                              "RepresentationMatrices" => {| 1 0  0 0 0  0 0 |
|                                                           | 0 -1 0 0 0  0 0 |
|                                                           | 0 0  2 0 0  0 0 |
|                                                           | 0 0  0 0 0  0 0 |
|                                                           | 0 0  0 0 -2 0 0 |
|                                                           | 0 0  0 0 0  0 0 |
|                                                           | 0 0  0 0 0  0 1 |
|                                                           | 0 0  0 0 0  0 0 |
|                                                                             |
|o5 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|0  |, | 1 0 0  0 0 0 0  0  |, | 0 1 0 0 0 0 0 0 |, | 0 0 1 0 0 0 0   0   |, ||
|0  |  | 0 2 0  0 0 0 0  0  |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 1 0 3 0   0   |  ||
|0  |  | 0 0 -1 0 0 0 0  0  |  | 0 0 0 2 0 0 0 0 |  | 0 0 0 0 0 0 0   0   |  ||
|0  |  | 0 0 0  0 0 0 0  0  |  | 0 0 0 0 2 0 0 0 |  | 0 0 0 0 0 0 3/2 0   |  ||
|0  |  | 0 0 0  0 1 0 0  0  |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0   3/2 |  ||
|0  |  | 0 0 0  0 0 0 0  0  |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 3/2 0   |  ||
|0  |  | 0 0 0  0 0 0 -2 0  |  | 0 0 0 0 0 0 0 1 |  | 0 0 0 0 0 0 0   0   |  ||
|-1 |  | 0 0 0  0 0 0 0  -1 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0   0   |  ||
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|0 0 0 -1 0  3 0 0    |, | 0 0 0 0 0 0 0 0 |, | 0 0   0 0   0   0 0 0 |, |    |
|0 0 0 0  -2 0 0 0    |  | 1 0 0 0 0 0 0 0 |  | 0 0   0 0   0   0 0 0 |  |    |
|0 0 0 0  0  0 3 0    |  | 0 0 0 0 0 0 0 0 |  | 1 0   0 0   0   0 0 0 |  |    |
|0 0 0 0  0  0 0 3/2  |  | 0 0 1 0 0 0 0 0 |  | 0 1/2 0 0   0   0 0 0 |  |    |
|0 0 0 0  0  0 0 0    |  | 0 0 0 1 0 0 0 0 |  | 0 0   0 0   0   0 0 0 |  |    |
|0 0 0 0  0  0 0 -3/2 |  | 0 0 0 0 0 0 0 0 |  | 0 1/2 0 0   0   0 0 0 |  |    |
|0 0 0 0  0  0 0 0    |  | 0 0 0 0 0 0 0 0 |  | 0 0   0 1/3 0   1 0 0 |  |    |
|0 0 0 0  0  0 0 0    |  | 0 0 0 0 0 0 1 0 |  | 0 0   0 0   2/3 0 0 0 |  |    |
|-----------------------------------------------------------------------------|
|                             }                                               |
|                                                                             |
|0    0    0   0   0 0  0 0 |}                                                |
|0    0    0   0   0 0  0 0 |                                                 |
|0    0    0   0   0 0  0 0 |                                                 |
|-1/2 0    0   0   0 0  0 0 |                                                 |
|0    -1/2 0   0   0 0  0 0 |                                                 |
|1/2  0    0   0   0 0  0 0 |                                                 |
|0    0    1/3 0   0 0  0 0 |                                                 |
|0    0    0   1/3 0 -1 0 0 |                                                 |
+-----------------------------------------------------------------------------+
|i6 : rho2=adjointRepresentation(sl3)                                         |
|                                                                             |
|o6 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl3               |
|                              "Module" => V                                  |
|                              "RepresentationMatrices" => {| 0 0 0 0  0 0  0 |
|                                                           | 0 0 0 0  0 0  0 |
|                                                           | 0 0 2 0  0 0  0 |
|                                                           | 0 0 0 -1 0 0  0 |
|                                                           | 0 0 0 0  1 0  0 |
|                                                           | 0 0 0 0  0 -2 0 |
|                                                           | 0 0 0 0  0 0  1 |
|                                                           | 0 0 0 0  0 0  0 |
|                                                                             |
|o6 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|0  |, | 0 0 0  0 0 0 0  0  |, | 0  0 0 0 0 1 0 0  |, | 0 0  0  0 0 0 0 0 |, ||
|0  |  | 0 0 0  0 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  | 0 0  0  0 0 0 1 0 |  ||
|0  |  | 0 0 -1 0 0 0 0  0  |  | -2 1 0 0 0 0 0 0  |  | 0 0  0  0 0 0 0 0 |  ||
|0  |  | 0 0 0  2 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  | 1 -2 0  0 0 0 0 0 |  ||
|0  |  | 0 0 0  0 1 0 0  0  |  | 0  0 0 1 0 0 0 0  |  | 0 0  -1 0 0 0 0 0 |  ||
|0  |  | 0 0 0  0 0 1 0  0  |  | 0  0 0 0 0 0 0 0  |  | 0 0  0  0 0 0 0 1 |  ||
|0  |  | 0 0 0  0 0 0 -2 0  |  | 0  0 0 0 0 0 0 -1 |  | 0 0  0  0 0 0 0 0 |  ||
|-1 |  | 0 0 0  0 0 0 0  -1 |  | 0  0 0 0 0 0 0 0  |  | 0 0  0  0 0 0 0 0 |  ||
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|0  0  0 0 0 0  0 1 |, | 0 0  -1 0 0 0 0  0 |, | 0  0 0 0  0  0 0 0 |, | 0 0 0|
|0  0  0 0 0 0  0 1 |  | 0 0  0  0 0 0 0  0 |  | 0  0 0 -1 0  0 0 0 |  | 0 0 0|
|0  0  0 0 0 0  1 0 |  | 0 0  0  0 0 0 0  0 |  | 0  0 0 0  -1 0 0 0 |  | 0 0 0|
|0  0  0 0 0 -1 0 0 |  | 0 0  0  0 1 0 0  0 |  | 0  0 0 0  0  0 0 0 |  | 0 0 0|
|-1 -1 0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  | 0  0 0 0  0  0 0 0 |  | 0 0 0|
|0  0  0 0 0 0  0 0 |  | 2 -1 0  0 0 0 0  0 |  | 0  0 0 0  0  0 0 0 |  | 0 0 0|
|0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  | -1 2 0 0  0  0 0 0 |  | 0 0 1|
|0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 -1 0 |  | 0  0 0 0  0  1 0 0 |  | 1 1 0|
|-----------------------------------------------------------------------------|
|              }                                                              |
|                                                                             |
|0  -1 0 0 0 |}                                                               |
|0  -1 0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|-1 0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
|0  0  0 0 0 |                                                                |
+-----------------------------------------------------------------------------+
|i7 : isomorphismOfRepresentations(rho1,rho2)                                 |
|Length 1 complete. 3 new words found                                         |
|Length 2 complete. 4 new words found                                         |
|                                                                             |
|o7 = | 0 0    0  0 1 0   0    0   |                                          |
|     | 0 0    0  1 0 0   0    0   |                                          |
|     | 0 0    -1 0 0 0   0    0   |                                          |
|     | 1 -1/2 0  0 0 0   0    0   |                                          |
|     | 0 0    0  0 0 1/2 0    0   |                                          |
|     | 0 -1/2 0  0 0 0   0    0   |                                          |
|     | 0 0    0  0 0 0   -1/3 0   |                                          |
|     | 0 0    0  0 0 0   0    1/3 |                                          |
|                                                                             |
|              8       8                                                      |
|o7 : Matrix QQ  <-- QQ                                                       |
+-----------------------------------------------------------------------------+

Ways to use GTrepresentationMatrices:
=====================================

  * "GTrepresentationMatrices(LieAlgebraModule)"

For the programmer
==================

The object GTrepresentationMatrices, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2437:0.

halfspinRepresentationMatrices -- matrix generators for the halfspin representations of $\mathfrak{so}(2n)$
***********************************************************************************************************

  * Usage:
        halfspinRepresentationMatrices(n,p)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * p, an integer (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => ..., default value QQ
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

See [FH] Lecture 20. The parity of the second input p determines which of the
two half-spin representations is returned. For $S^{+}$, enter an even integer.
For $S^{-}$, enter an odd integer.

In the example below, we compute matrix generators for the spin representation
of $so_6$. Then we compute its half-spin representations. In the bases used by
the package, this decomposes the spin representation into the upper left and
lower right blocks.

+-----------------------------------------------------------------------------+
|i1 : spinRepresentationMatrices(3)                                           |
|                                                                             |
|o1 = {| 0 0 0 0  0 0  0 0 |, | 0 0 0  0 0 0 0  0 |, | -1 0 0 0 0  0 0 0 |, | |
|      | 0 0 0 0  0 0  0 0 |  | 0 1 0  0 0 0 0  0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 1 0  0 0  0 0 |  | 0 0 -1 0 0 0 0  0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 0 -1 0 0  0 0 |  | 0 0 0  0 0 0 0  0 |  | 0  0 0 1 0  0 0 0 |  | |
|      | 0 0 0 0  1 0  0 0 |  | 0 0 0  0 0 0 0  0 |  | 0  0 0 0 -1 0 0 0 |  | |
|      | 0 0 0 0  0 -1 0 0 |  | 0 0 0  0 0 1 0  0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 0 0  0 0  0 0 |  | 0 0 0  0 0 0 -1 0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 0 0  0 0  0 0 |  | 0 0 0  0 0 0 0  0 |  | 0  0 0 0 0  0 0 1 |  | |
|     ------------------------------------------------------------------------|
|     0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 1 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 -1 |
|     0 0 0 1 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 1 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 1 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 |  | 0 0 0 0  |
|     ------------------------------------------------------------------------|
|     0 0 0 0 |, | 0 0 0 0 0 0  0 0 |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 1 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 1 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 1 0 0 0 0 0 |
|     0 0 1 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 -1 0 0 |  | 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 |
|     ------------------------------------------------------------------------|
|     |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 1 0 0 0 0 |, | 0 0  0 0 0 0 0 0 |, | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 1 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 -1 0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 1 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 1 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 1 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     ------------------------------------------------------------------------|
|     1 0 0 0 0 0  |, | 0 1 0 0 0 0 0 0 |}                                    |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 -1 |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 1 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : halfspinRepresentationMatrices(3,0)                                     |
|                                                                             |
|o2 = {| 0 0 0 0  |, | 0 0 0  0 |, | -1 0 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |, | 0|
|      | 0 0 0 0  |  | 0 1 0  0 |  | 0  0 0 0 |  | 0 0 0 0 |  | 0 0 1 0 |  | 0|
|      | 0 0 1 0  |  | 0 0 -1 0 |  | 0  0 0 0 |  | 0 0 0 1 |  | 0 0 0 0 |  | 0|
|      | 0 0 0 -1 |  | 0 0 0  0 |  | 0  0 0 1 |  | 0 0 0 0 |  | 0 0 0 0 |  | 1|
|     ------------------------------------------------------------------------|
|     0 0 0 |, | 0 0 0 0  |, | 0 0 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |
|     0 0 0 |  | 0 0 0 -1 |  | 0 0 0 0 |  | 1 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |
|     0 0 0 |  | 0 0 0 0  |  | 1 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 1 0 0 |
|     0 0 0 |  | 0 0 0 0  |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 1 0 |  | 0 0 0 0 |
|     ------------------------------------------------------------------------|
|     |, | 0 0 0 1 |, | 0 0  0 0 |, | 0 0 1 0 |, | 0 1 0 0 |}                 |
|     |  | 0 0 0 0 |  | 0 0  0 0 |  | 0 0 0 0 |  | 0 0 0 0 |                  |
|     |  | 0 0 0 0 |  | 0 0  0 0 |  | 0 0 0 0 |  | 0 0 0 0 |                  |
|     |  | 0 0 0 0 |  | 0 -1 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |                  |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : halfspinRepresentationMatrices(3,1)                                     |
|                                                                             |
|o3 = {| 1 0  0 0 |, | 0 0 0  0 |, | -1 0 0 0 |, | 0 1 0 0 |, | 0 0 0 0 |, | 0|
|      | 0 -1 0 0 |  | 0 1 0  0 |  | 0  0 0 0 |  | 0 0 0 0 |  | 0 0 1 0 |  | 0|
|      | 0 0  0 0 |  | 0 0 -1 0 |  | 0  0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0|
|      | 0 0  0 0 |  | 0 0 0  0 |  | 0  0 0 1 |  | 0 0 0 0 |  | 0 0 0 0 |  | 1|
|     ------------------------------------------------------------------------|
|     0 0 0 |, | 0 0 1 0 |, | 0 0  0 0 |, | 0 0 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |
|     0 0 0 |  | 0 0 0 0 |  | 0 0  0 0 |  | 0 0 0 0 |  | 1 0 0 0 |  | 0 0 0 0 |
|     0 0 0 |  | 0 0 0 0 |  | 0 0  0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 1 0 0 |
|     0 0 0 |  | 0 0 0 0 |  | 0 -1 0 0 |  | 0 0 1 0 |  | 0 0 0 0 |  | 0 0 0 0 |
|     ------------------------------------------------------------------------|
|     |, | 0 0 0 1 |, | 0 0 0 0 |, | 0 0 0 0  |, | 0 0 0 0 |}                 |
|     |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 -1 |  | 0 0 0 0 |                  |
|     |  | 0 0 0 0 |  | 1 0 0 0 |  | 0 0 0 0  |  | 0 0 0 1 |                  |
|     |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0  |  | 0 0 0 0 |                  |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use halfspinRepresentationMatrices:
===========================================

  * "halfspinRepresentationMatrices(ZZ,ZZ)"

For the programmer
==================

The object halfspinRepresentationMatrices,
is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2716:0.

highestRoot -- the highest root of a simple Lie algebra
*******************************************************

  * Usage:
        highestRoot(g), highestRoot("A",2)
  * Inputs:
      * g, an instance of the type LieAlgebra,
  * Outputs:
      * t, a list (Macaulay2Doc),

Description
===========

Let R be an irreducible root system of rank m, and choose a base of simple
roots $\Delta = \{\alpha_1,...,\alpha_m\}$.  Then there is a unique root
$\theta$ such that when $\theta$ is expanded in terms of the simple roots, i.e.
$\theta= \sum c_i \alpha_i$, the sum $\sum c_i$ is maximized.  The formulas
implemented here are taken from the tables following Bourbaki's Lie Groups and
Lie Algebras Chapter 6.

In the example below, we see that for $sl_3$, the highest root $\theta$ is
$\omega_1+ \omega_2$, where $\omega_1$ and $\omega_2$ are the fundamental
dominant weights.

+-----------------------+
|i1 : highestRoot("A",2)|
|                       |
|o1 = {1, 1}            |
|                       |
|o1 : List              |
+-----------------------+

Ways to use highestRoot:
========================

  * "highestRoot(LieAlgebra)"

For the programmer
==================

The object highestRoot, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:235:0.

irreducibleLieAlgebraModule -- construct the irreducible Lie algebra module with given highest weight
*****************************************************************************************************

  * Usage:
        irreducibleLieAlgebraModule(w,g)
        irreducibleLieAlgebraModule(g,w)
  * Inputs:
      * w, a list (Macaulay2Doc), the highest weight of the desired
        module
      * g, an instance of the type LieAlgebra,
  * Outputs:
      * M, an instance of the type LieAlgebraModule,

Description
===========

This function creates the irreducible Lie algebra module with a given highest
weight.

+-----------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)           |
|                                         |
|o1 = g                                   |
|                                         |
|o1 : simple LieAlgebra                   |
+-----------------------------------------+
|i2 : irreducibleLieAlgebraModule(g,{1,1})|
|                                         |
|o2 = LL   (g)                            |
|       1,1                               |
|                                         |
|o2 : irreducible LieAlgebraModule over g |
+-----------------------------------------+

One can also use the shorthand LL:

+----------------------------------------+
|i3 : LL_(1,1) (g)                       |
|                                        |
|o3 = LL   (g)                           |
|       1,1                              |
|                                        |
|o3 : irreducible LieAlgebraModule over g|
+----------------------------------------+

as well as the shorthand ω: LL_(ω_2) (g)

Ways to use irreducibleLieAlgebraModule:
========================================

  * "irreducibleLieAlgebraModule(LieAlgebra,List)"
  * "irreducibleLieAlgebraModule(LieAlgebra,Vector)"

For the programmer
==================

The object irreducibleLieAlgebraModule, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:494:0.

isIrreducible -- Whether a Lie algebra module is irreducible or not
*******************************************************************

Description
===========

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : M=irreducibleLieAlgebraModule({2,1},g)|
|                                           |
|o2 = M                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : isIrreducible M                       |
|                                           |
|o3 = true                                  |
+-------------------------------------------+
|i4 : isIrreducible(M++M)                   |
|                                           |
|o4 = false                                 |
+-------------------------------------------+
|i5 : isIrreducible(M**M)                   |
|                                           |
|o5 = false                                 |
+-------------------------------------------+

Ways to use isIrreducible:
==========================

  * "isIrreducible(LieAlgebraModule)"

For the programmer
==================

The object isIrreducible, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:399:0.

isIsomorphic -- tests whether two Lie algebra are isomorphic
************************************************************

  * Usage:
        isIsomorphic(g,h)
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * h, an instance of the type LieAlgebra,
  * Optional inputs (Macaulay2Doc),:
      * Homogeneous (Isomorphism), => ..., default value
        true,
      * Strategy (Isomorphism), => ..., default value null,
      * Strict (Isomorphism), => ..., default value false,
      * Tries (Isomorphism), => ..., default value null,
      * Verbose (Isomorphism), => ..., default value false,
  * Outputs:
      * b, a Boolean value (Macaulay2Doc),

Description
===========

+--------------------------------------------+
|i1 : g=simpleLieAlgebra("D",4)              |
|                                            |
|o1 = g                                      |
|                                            |
|o1 : simple LieAlgebra                      |
+--------------------------------------------+
|i2 : h=subLieAlgebra(g,{2,{1,0,1,1}})       |
|                                            |
|o2 = h                                      |
|                                            |
|o2 : simple LieAlgebra, subalgebra of g     |
+--------------------------------------------+
|i3 : isIsomorphic(h,simpleLieAlgebra("G",2))|
|                                            |
|o3 = true                                   |
+--------------------------------------------+

Ways to use isIsomorphic:
=========================

  * "isIsomorphic(LieAlgebra,LieAlgebra)"
  * "isIsomorphic(Matrix,Matrix)" -- see isIsomorphic (Isomorphism),
    -- probabilistic test for isomorphism of modules
  * "isIsomorphic(Module,Module)" -- see isIsomorphic (Isomorphism),
    -- probabilistic test for isomorphism of modules
  * isIsomorphic(LieAlgebraModule,LieAlgebraModule) (missing documentation)

For the programmer
==================

The object isIsomorphic (Isomorphism), is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:130:0.

isLieAlgebraRepresentation -- checks whether a list of matrices defines a Lie algebra representation
****************************************************************************************************

  * Usage:
        isLieAlgebraRepresentation(LAB,L)
  * Inputs:
      * LAB, an instance of the type LieAlgebraBasis,
      * L, a list (Macaulay2Doc),
  * Outputs:
      * b, a Boolean value (Macaulay2Doc),

Description
===========

Let LAB be a basis of $\mathfrak{g}$, and let $L$ be a list of $n \times n$
matrices with $\#L = \#LAB$.  Let $\rho: \mathfrak{g} \rightarrow
\mathfrak{gl}_n$ be the linear transformation defined by mapping $B_i$ in LAB
to $L_i$. This function checks whether $\rho$ preserves the Lie bracket; that
is, for each pair of indices $i,j$, if $[B_i,B_j] = \sum c_{ijk} B_k$, then is
$[\rho(B_i),\rho(B_j)] = \sum c_{ijk} \rho(B_k)$?

In the example below, we compute the adjoint representation of $sl_3$ directly,
and check that the list of matrices we obtain defines a Lie algebra
representation.

+-----------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2);                                          |
+-----------------------------------------------------------------------------+
|i2 : LAB = lieAlgebraBasis("A",2);                                           |
+-----------------------------------------------------------------------------+
|i3 : br = LAB#"Bracket";                                                     |
+-----------------------------------------------------------------------------+
|i4 : writeInBasis = LAB#"WriteInBasis";                                      |
+-----------------------------------------------------------------------------+
|i5 : B = LAB#"BasisElements"                                                 |
|                                                                             |
|o5 = {| 1 0  0 |, | 0 0 0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0|
|      | 0 -1 0 |  | 0 1 0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0|
|      | 0 0  0 |  | 0 0 -1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0|
|     ------------------------------------------------------------------------|
|     0 0 |, | 0 0 0 |}                                                       |
|     0 0 |  | 0 0 0 |                                                        |
|     1 0 |  | 1 0 0 |                                                        |
|                                                                             |
|o5 : List                                                                    |
+-----------------------------------------------------------------------------+
|i6 : ad = X -> transpose matrix apply(B, Y -> writeInBasis br(X,Y))          |
|                                                                             |
|o6 = ad                                                                      |
|                                                                             |
|o6 : FunctionClosure                                                         |
+-----------------------------------------------------------------------------+
|i7 : L1 = apply(B, X -> ad X)                                                |
|                                                                             |
|o7 = {| 0 0 0 0  0 0  0 0  |, | 0 0 0  0 0 0 0  0  |, | 0  0 0 0 0 1 0 0  |, |
|      | 0 0 0 0  0 0  0 0  |  | 0 0 0  0 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  |
|      | 0 0 2 0  0 0  0 0  |  | 0 0 -1 0 0 0 0  0  |  | -2 1 0 0 0 0 0 0  |  |
|      | 0 0 0 -1 0 0  0 0  |  | 0 0 0  2 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  |
|      | 0 0 0 0  1 0  0 0  |  | 0 0 0  0 1 0 0  0  |  | 0  0 0 1 0 0 0 0  |  |
|      | 0 0 0 0  0 -2 0 0  |  | 0 0 0  0 0 1 0  0  |  | 0  0 0 0 0 0 0 0  |  |
|      | 0 0 0 0  0 0  1 0  |  | 0 0 0  0 0 0 -2 0  |  | 0  0 0 0 0 0 0 -1 |  |
|      | 0 0 0 0  0 0  0 -1 |  | 0 0 0  0 0 0 0  -1 |  | 0  0 0 0 0 0 0 0  |  |
|     ------------------------------------------------------------------------|
|     | 0 0  0  0 0 0 0 0 |, | 0  0  0 0 0 0  0 1 |, | 0 0  -1 0 0 0 0  0 |, ||
|     | 0 0  0  0 0 0 1 0 |  | 0  0  0 0 0 0  0 1 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 0 |  | 0  0  0 0 0 0  1 0 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 1 -2 0  0 0 0 0 0 |  | 0  0  0 0 0 -1 0 0 |  | 0 0  0  0 1 0 0  0 |  ||
|     | 0 0  -1 0 0 0 0 0 |  | -1 -1 0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 1 |  | 0  0  0 0 0 0  0 0 |  | 2 -1 0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 0 |  | 0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 0 |  | 0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 -1 0 |  ||
|     ------------------------------------------------------------------------|
|     0  0 0 0  0  0 0 0 |, | 0 0 0 0  -1 0 0 0 |}                            |
|     0  0 0 -1 0  0 0 0 |  | 0 0 0 0  -1 0 0 0 |                             |
|     0  0 0 0  -1 0 0 0 |  | 0 0 0 0  0  0 0 0 |                             |
|     0  0 0 0  0  0 0 0 |  | 0 0 0 0  0  0 0 0 |                             |
|     0  0 0 0  0  0 0 0 |  | 0 0 0 0  0  0 0 0 |                             |
|     0  0 0 0  0  0 0 0 |  | 0 0 0 -1 0  0 0 0 |                             |
|     -1 2 0 0  0  0 0 0 |  | 0 0 1 0  0  0 0 0 |                             |
|     0  0 0 0  0  1 0 0 |  | 1 1 0 0  0  0 0 0 |                             |
|                                                                             |
|o7 : List                                                                    |
+-----------------------------------------------------------------------------+
|i8 : isLieAlgebraRepresentation(LAB,L1)                                      |
|                                                                             |
|o8 = true                                                                    |
+-----------------------------------------------------------------------------+

Next, we present an example where the linear transformation $\rho: sl_3
\rightarrow \mathfrak{gl}(\mathbb{C}^8)$ does not preserve the Lie bracket.

+-----------------------------------------------------------------------------+
|i9 : L2 = apply(#L1, i -> if i==6 then -2*L1_i else L1_i)                    |
|                                                                             |
|o9 = {| 0 0 0 0  0 0  0 0  |, | 0 0 0  0 0 0 0  0  |, | 0  0 0 0 0 1 0 0  |, |
|      | 0 0 0 0  0 0  0 0  |  | 0 0 0  0 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  |
|      | 0 0 2 0  0 0  0 0  |  | 0 0 -1 0 0 0 0  0  |  | -2 1 0 0 0 0 0 0  |  |
|      | 0 0 0 -1 0 0  0 0  |  | 0 0 0  2 0 0 0  0  |  | 0  0 0 0 0 0 0 0  |  |
|      | 0 0 0 0  1 0  0 0  |  | 0 0 0  0 1 0 0  0  |  | 0  0 0 1 0 0 0 0  |  |
|      | 0 0 0 0  0 -2 0 0  |  | 0 0 0  0 0 1 0  0  |  | 0  0 0 0 0 0 0 0  |  |
|      | 0 0 0 0  0 0  1 0  |  | 0 0 0  0 0 0 -2 0  |  | 0  0 0 0 0 0 0 -1 |  |
|      | 0 0 0 0  0 0  0 -1 |  | 0 0 0  0 0 0 0  -1 |  | 0  0 0 0 0 0 0 0  |  |
|     ------------------------------------------------------------------------|
|     | 0 0  0  0 0 0 0 0 |, | 0  0  0 0 0 0  0 1 |, | 0 0  -1 0 0 0 0  0 |, ||
|     | 0 0  0  0 0 0 1 0 |  | 0  0  0 0 0 0  0 1 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 0 |  | 0  0  0 0 0 0  1 0 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 1 -2 0  0 0 0 0 0 |  | 0  0  0 0 0 -1 0 0 |  | 0 0  0  0 1 0 0  0 |  ||
|     | 0 0  -1 0 0 0 0 0 |  | -1 -1 0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 1 |  | 0  0  0 0 0 0  0 0 |  | 2 -1 0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 0 |  | 0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 0  0 |  ||
|     | 0 0  0  0 0 0 0 0 |  | 0  0  0 0 0 0  0 0 |  | 0 0  0  0 0 0 -1 0 |  ||
|     ------------------------------------------------------------------------|
|     0 0  0 0 0 0  0 0 |, | 0 0 0 0  -1 0 0 0 |}                             |
|     0 0  0 2 0 0  0 0 |  | 0 0 0 0  -1 0 0 0 |                              |
|     0 0  0 0 2 0  0 0 |  | 0 0 0 0  0  0 0 0 |                              |
|     0 0  0 0 0 0  0 0 |  | 0 0 0 0  0  0 0 0 |                              |
|     0 0  0 0 0 0  0 0 |  | 0 0 0 0  0  0 0 0 |                              |
|     0 0  0 0 0 0  0 0 |  | 0 0 0 -1 0  0 0 0 |                              |
|     2 -4 0 0 0 0  0 0 |  | 0 0 1 0  0  0 0 0 |                              |
|     0 0  0 0 0 -2 0 0 |  | 1 1 0 0  0  0 0 0 |                              |
|                                                                             |
|o9 : List                                                                    |
+-----------------------------------------------------------------------------+
|i10 : isLieAlgebraRepresentation(LAB,L2)                                     |
|Brackets not compatible on basis elements {2, 7}                             |
|                                                                             |
|o10 = false                                                                  |
+-----------------------------------------------------------------------------+

Ways to use isLieAlgebraRepresentation:
=======================================

  * "isLieAlgebraRepresentation(LieAlgebraBasis,List)"

For the programmer
==================

The object isLieAlgebraRepresentation, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2639:0.

isomorphismOfRepresentations -- compute an explicit isomorphism between two Lie algebra representations
*******************************************************************************************************

  * Usage:
        isomorphismOfRepresentations(rho1,rho2)
  * Inputs:
      * rho1, an instance of the type LieAlgebraRepresentation,
      * rho2, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

Let $\rho_1: \mathfrak{g} \rightarrow \mathfrak{gl}(V_1)$ and $\rho_2:
\mathfrak{g} \rightarrow \mathfrak{gl}(V_2)$ be two representations, and
suppose that $\rho_1 \cong \rho_2$. Then this function returns matrix $P$ such
that $\rho_2(X) = P^{-1}*rho_1(X)*P$ for each $X \in \mathfrak{g}$.

To find $P$, we first express the basis of $V_2$ as words in the lowering
operators using basisWordsFromMatrixGenerators.
We then evaluate these words using the matrix
generators for $\rho_1$ to construct the matrix $P$.

In the example below, we compute an isomorphism between the adjoint
representation of $sl_3$ (built using the textbook basis of $sl_3$) and the
Gelfand-Tsetlin basis for the adjoint representation of $sl_3$.

+----------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2);                                   |
+----------------------------------------------------------------------+
|i2 : rho1 = adjointRepresentation(sl3);                               |
+----------------------------------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({1,1},sl3);                        |
+----------------------------------------------------------------------+
|i4 : LAB = lieAlgebraBasis(sl3);                                      |
+----------------------------------------------------------------------+
|i5 : rho2=lieAlgebraRepresentation(V,LAB,GTrepresentationMatrices(V));|
+----------------------------------------------------------------------+
|i6 : P = isomorphismOfRepresentations(rho1,rho2)                      |
|Length 1 complete. 3 new words found                                  |
|Length 2 complete. 4 new words found                                  |
|                                                                      |
|o6 = | 0 0 0  1 0 -1 0  0 |                                           |
|     | 0 0 0  0 0 -2 0  0 |                                           |
|     | 0 0 -1 0 0 0  0  0 |                                           |
|     | 0 1 0  0 0 0  0  0 |                                           |
|     | 1 0 0  0 0 0  0  0 |                                           |
|     | 0 0 0  0 2 0  0  0 |                                           |
|     | 0 0 0  0 0 0  -3 0 |                                           |
|     | 0 0 0  0 0 0  0  3 |                                           |
|                                                                      |
|              8       8                                               |
|o6 : Matrix QQ  <-- QQ                                                |
+----------------------------------------------------------------------+

We check that the matrix $P$ has the property that $\rho_2(X) =
P^{-1}*rho_1(X)*P$ for each $X \in \mathfrak{g}$. (The function
isomorphismOfRepresentations performs this check automatically before returning
the matrix $P$.)

+------------------------------------------+
|i7 : Pinv := inverse P;                   |
|                                          |
|              8       8                   |
|o7 : Matrix QQ  <-- QQ                    |
+------------------------------------------+
|i8 : L1:=rho1#"RepresentationMatrices";   |
+------------------------------------------+
|i9 : L2:=rho2#"RepresentationMatrices";   |
+------------------------------------------+
|i10 : all(#L1, i -> L2_i == Pinv*(L1_i)*P)|
|                                          |
|o10 = true                                |
+------------------------------------------+

Ways to use isomorphismOfRepresentations:
=========================================

  * "isomorphismOfRepresentations(LieAlgebraRepresentation,
    LieAlgebraRepresentation)"

For the programmer
==================

The object isomorphismOfRepresentations, is
a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2082:0.

killingForm -- computes the scaled Killing form applied to two weights
**********************************************************************

  * Usage:
        killingForm(g,v,w)
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * v, a list (Macaulay2Doc),
      * w, a list (Macaulay2Doc),

Description
===========

Let $\mathbf{g}$ be a Lie algebra.  The Killing form on $\mathbf{g}$ is the
symmetric bilinear form given by $(x,y) = Tr(\mathrm{ad}_x \mathrm{ad}_y)$.  It
can restricted to a Cartan subalgebra $\mathbf{h}$ and transferred to
$\mathbf{h}^*$, yielding a symmetric bilinear form on weights.  One popular
convention is to scale the Killing form so that $(\theta,\theta) =2$, where
$\theta$ is the highest root.

+-------------------------------+
|i1 : g=simpleLieAlgebra("A",2) |
|                               |
|o1 = g                         |
|                               |
|o1 : simple LieAlgebra         |
+-------------------------------+
|i2 : killingForm(g,{1,0},{0,1})|
|                               |
|     1                         |
|o2 = -                         |
|     3                         |
|                               |
|o2 : QQ                        |
+-------------------------------+

Ways to use killingForm:
========================

  * "killingForm(LieAlgebra,List,List)"
  * "killingForm(LieAlgebra,Vector,Vector)"

For the programmer
==================

The object killingForm, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:592:0.

LieAlgebra -- class for Lie algebras
************************************

Description
===========

This class represents Lie algebras.  Currently only finite-dimensional
semi-simple Lie algebras over the complex numbers are supported. An object of
type LieAlgebra is a hash table whose keys record the rank of the Lie algebra
and the type of the root system.

+------------------------------+
|i1 : g=simpleLieAlgebra("A",1)|
|                              |
|o1 = g                        |
|                              |
|o1 : simple LieAlgebra        |
+------------------------------+
|i2 : h=simpleLieAlgebra("E",6)|
|                              |
|o2 = h                        |
|                              |
|o2 : simple LieAlgebra        |
+------------------------------+
|i3 : g++h                     |
|                              |
|o3 = 𝔞  ++ 𝔢                  |
|      1     6                 |
|                              |
|o3 : LieAlgebra               |
+------------------------------+

If you have access to unicode fraktur, you can use the shorthand

+----------------------+
|i4 : 𝔣_4              |
|                      |
|o4 = 𝔣                |
|      4               |
|                      |
|o4 : simple LieAlgebra|
+----------------------+

See also new LieAlgebra from Matrix.

Functions and methods returning an object of class LieAlgebra:
==============================================================

  * simpleLieAlgebra -- construct a simple Lie algebra
  * subLieAlgebra -- Define a sub-Lie algebra of an
    existing one

Methods that use an object of class LieAlgebra:
===============================================

  * "adjointModule(LieAlgebra)" -- see adjointModule, --
    The adjoint module of a Lie algebra
  * "adjointRepresentation(LieAlgebra)" -- see adjointRepresentation,
    -- creates the adjoint representation of a Lie
    algebra
  * "branchingRule(LieAlgebraModule,LieAlgebra)" -- see branchingRule,
    -- A Lie algebra module viewed as a module over a Lie
    subalgebra
  * "cartanMatrix(LieAlgebra)" -- see cartanMatrix, --
    Provide the Cartan matrix of a simple Lie algebra
  * casimirScalar(LieAlgebra,List) (missing documentation)
  * "character(LieAlgebra,List)" -- see character, -- Computes
    the character of a Lie algebra module
  * "character(LieAlgebra,Vector)" -- see character, --
    Computes the character of a Lie algebra module
  * characterRing(LieAlgebra) (missing documentation)
  * "deGraafBases(List,LieAlgebra)" -- see deGraafBases, --
    compute the bases produced by de Graaf's algorithm
  * "deGraafRepresentation(List,LieAlgebra)" -- see
    deGraafRepresentation, -- compute the representation
    with the specified highest weight using de Graaf's algorithm
  * "dualCoxeterNumber(LieAlgebra)" -- see dualCoxeterNumber,
    -- the dual Coxeter number of a simple Lie algebra
  * "dynkinDiagram(LieAlgebra)" -- see dynkinDiagram, --
    Provide the Dynkin diagram of a simple Lie algebra
  * "embedding(LieAlgebra,LieAlgebra)" -- see embedding, --
    gives the embedding of Cartan subalgebras of one Lie algebra into another
  * "highestRoot(LieAlgebra)" -- see highestRoot, -- the
    highest root of a simple Lie algebra
  * "irreducibleLieAlgebraModule(LieAlgebra,List)" -- see
    irreducibleLieAlgebraModule, -- construct the
    irreducible Lie algebra module with given highest weight
  * "irreducibleLieAlgebraModule(LieAlgebra,Vector)" -- see
    irreducibleLieAlgebraModule, -- construct the
    irreducible Lie algebra module with given highest weight
  * "isIsomorphic(LieAlgebra,LieAlgebra)" -- see isIsomorphic,
    -- tests whether two Lie algebra are isomorphic
  * "killingForm(LieAlgebra,List,List)" -- see killingForm,
    -- computes the scaled Killing form applied to two weights
  * "killingForm(LieAlgebra,Vector,Vector)" -- see killingForm,
    -- computes the scaled Killing form applied to two weights
  * "directSum(LieAlgebra)" -- see LieAlgebra ++ LieAlgebra,
    -- Take the direct sum of Lie algebras
  * LieAlgebra ++ LieAlgebra -- Take the
    direct sum of Lie algebras
  * LieAlgebra == LieAlgebra -- tests equality
    of LieAlgebra
  * LieAlgebra _ ZZ -- selects one summand of a
    semi-simple Lie Algebra
  * LieAlgebra _* -- gives the list of summands of a
    semi-simple Lie Algebra
  * "lieAlgebraBasis(LieAlgebra)" -- see lieAlgebraBasis,
    -- computes an enhanced basis for a simple Lie algebra
  * "LieAlgebraModuleFromWeights(RingElement,LieAlgebra)" -- see
    LieAlgebraModuleFromWeights, -- finds a Lie
    algebra module based on its weights
  * "LieAlgebraModuleFromWeights(VirtualTally,LieAlgebra)" -- see
    LieAlgebraModuleFromWeights, -- finds a Lie
    algebra module based on its weights
  * new LieAlgebra from Matrix -- Define a
    Lie algebra from its Cartan matrix
  * new LieAlgebra from Sequence (missing documentation)
  * "positiveCoroots(LieAlgebra)" -- see positiveRoots, --
    the positive (co)roots of a simple Lie algebra
  * "positiveRoots(LieAlgebra)" -- see positiveRoots, --
    the positive (co)roots of a simple Lie algebra
  * "simpleRoots(LieAlgebra)" -- see simpleRoots, -- the
    simple roots of a simple Lie algebra
  * standardModule(LieAlgebra) (missing documentation)
  * "standardRepresentation(LieAlgebra)" -- see standardRepresentation,
    -- creates the standard representation of a matrix
    Lie algebra
  * "subLieAlgebra(LieAlgebra,List)" -- see subLieAlgebra,
    -- Define a sub-Lie algebra of an existing one
  * "subLieAlgebra(LieAlgebra,Matrix)" -- see subLieAlgebra,
    -- Define a sub-Lie algebra of an existing one
  * "subLieAlgebra(LieAlgebra,String)" -- see subLieAlgebra,
    -- Define a sub-Lie algebra of an existing one
  * toExternalString(LieAlgebra) (missing documentation)
  * toString(LieAlgebra) (missing documentation)
  * "trivialModule(LieAlgebra)" -- see trivialModule, --
    The trivial module of a Lie algebra
  * "trivialRepresentation(LieAlgebra)" -- see trivialRepresentation,
    -- creates the trivial representation of a Lie
    algebra
  * "universalEnvelopingAlgebra(LieAlgebra)" -- see
    universalEnvelopingAlgebra, -- computes the
    universal enveloping algebra of a Lie algebra
  * "uNminus(LieAlgebra)" -- see uNminus, -- computes the
    universal enveloping algebra of the Lie algebra $N^{-}$
  * "weightDiagram(LieAlgebra,List)" -- see weightDiagram,
    -- computes the weights in a Lie algebra module and their multiplicities
  * "weightDiagram(LieAlgebra,Vector)" -- see weightDiagram,
    -- computes the weights in a Lie algebra module and their
    multiplicities
  * "weylAlcove(LieAlgebra,ZZ)" -- see weylAlcove, -- the
    dominant integral weights of level less than or equal to l
  * "weylAlcove(ZZ,LieAlgebra)" -- see weylAlcove, -- the
    dominant integral weights of level less than or equal to l
  * "zeroModule(LieAlgebra)" -- see zeroModule, -- The zero
    module of a Lie algebra

For the programmer
==================

The object LieAlgebra, is a type (Macaulay2Doc),
with ancestor classes HashTable (Macaulay2Doc), < Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:37:0.

LieAlgebra ++ LieAlgebra -- Take the direct sum of Lie algebras
***************************************************************

  * Operator: ++ (Macaulay2Doc),

Description
===========

Starting from simple Lie algebras, one can take direct sums and produce
semi-simple ones:

+-------------------------------+
|i1 : g=simpleLieAlgebra("D",4);|
+-------------------------------+
|i2 : h=simpleLieAlgebra("G",2);|
+-------------------------------+
|i3 : g++h                      |
|                               |
|o3 = 𝔡  ++ 𝔤                   |
|      4     2                  |
|                               |
|o3 : LieAlgebra                |
+-------------------------------+
|i4 : directSum(g,g,h)          |
|                               |
|o4 = 𝔡  ++ 𝔡  ++ 𝔤             |
|      4     4     2            |
|                               |
|o4 : LieAlgebra                |
+-------------------------------+

Note that this is external direct sum, so if $g_i$ is a sub-Lie algebra of
$h_i$, $i=1,2$, then $g_1\oplus g_2$ is a sub-Lie algebra of $h_1\oplus h_2$.

Ways to use this method:
========================

  * LieAlgebra ++ LieAlgebra -- Take the
    direct sum of Lie algebras
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1251:0.

LieAlgebra == LieAlgebra -- tests equality of LieAlgebra
********************************************************

  * Operator: == (Macaulay2Doc),
  * Usage:
        g == h
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * h, an instance of the type LieAlgebra,
  * Outputs:
      * b, a Boolean value (Macaulay2Doc),

Description
===========

+------------------------------+
|i1 : g=simpleLieAlgebra("A",2)|
|                              |
|o1 = g                        |
|                              |
|o1 : simple LieAlgebra        |
+------------------------------+
|i2 : h=simpleLieAlgebra("A",2)|
|                              |
|o2 = g                        |
|                              |
|o2 : simple LieAlgebra        |
+------------------------------+
|i3 : g==h                     |
|                              |
|o3 = true                     |
+------------------------------+

When dealing with subalgebras, Lie algebras can be isomorphic but different:

+-----------------------------------------+
|i4 : g1=subLieAlgebra(g,{1}); describe g1|
|                                         |
|o5 = 𝔞                                   |
|      1                                  |
+-----------------------------------------+
|i6 : g2=subLieAlgebra(g,{2}); describe g2|
|                                         |
|o7 = 𝔞                                   |
|      1                                  |
+-----------------------------------------+
|i8 : g1==g2 -- false!                    |
|                                         |
|o8 = false                               |
+-----------------------------------------+

Ways to use this method:
========================

  * LieAlgebra == LieAlgebra -- tests equality
    of LieAlgebra
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:104:0.

LieAlgebra _ ZZ -- selects one summand of a semi-simple Lie Algebra
*******************************************************************

  * Operator: _ (Macaulay2Doc),
  * Usage:
        g_n
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * n, an integer (Macaulay2Doc),
  * Outputs:
      * h, an instance of the type LieAlgebra,

Description
===========

+---------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2) ++ simpleLieAlgebra("A",2)|
|                                                         |
|o1 = g                                                   |
|                                                         |
|o1 : LieAlgebra                                          |
+---------------------------------------------------------+
|i2 : g_0                                                 |
|                                                         |
|o2 = 𝔞                                                   |
|      2                                                  |
|                                                         |
|o2 : simple LieAlgebra, subalgebra of g                  |
+---------------------------------------------------------+

Note that the same result can be obtained by using subLieAlgebra,:

+----------------------------------+
|i3 : dynkinDiagram g              |
|                                  |
|o3 = o---o   o---o                |
|     1   2   3   4                |
+----------------------------------+
|i4 : g_0 == subLieAlgebra(g,{1,2})|
|                                  |
|o4 = true                         |
+----------------------------------+
|i5 : g_1 == subLieAlgebra(g,{3,4})|
|                                  |
|o5 = true                         |
+----------------------------------+

Ways to use this method:
========================

  * LieAlgebra _ ZZ -- selects one summand of a
    semi-simple Lie Algebra
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:156:0.

LieAlgebra _* -- gives the list of summands of a semi-simple Lie Algebra
************************************************************************

  * Operator: _* (Macaulay2Doc),
  * Usage:
        g_*
  * Inputs:
      * g, an instance of the type LieAlgebra,

Description
===========

+---------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2) ++ simpleLieAlgebra("A",3)|
|                                                         |
|o1 = g                                                   |
|                                                         |
|o1 : LieAlgebra                                          |
+---------------------------------------------------------+
|i2 : g_*                                                 |
|                                                         |
|o2 = {𝔞 , 𝔞 }                                            |
|       2   3                                             |
|                                                         |
|o2 : List                                                |
+---------------------------------------------------------+

Ways to use this method:
========================

  * LieAlgebra _* -- gives the list of summands of a
    semi-simple Lie Algebra
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:179:0.

LieAlgebraBasis -- class for an enhanced Lie algebra basis
**********************************************************

Description
===========

This class represents a specific kind of basis of a Lie algebra. We assume that
the basis is adapted to the decomposition of $\mathfrak{g}$ into its root
spaces, i.e. $\mathfrak{g} = \mathfrak{h} \oplus \bigoplus_{\Phi^{+}}
\mathfrak{g}_{\alpha} \oplus \bigoplus_{\Phi^{+}} \mathfrak{g}_{-\alpha}$.

This class also stores additional information about the basis in addition to
the basis elements themselves. For instance, it records the weights of the
basis elements and their dual elements with respect to the Killing form.

Currently, the package computes three types of bases for simple Lie algebras.

1. the Lusztig canonical basis, as detailed in Geck and Lang, "Canonical
structure constants for simple Lie algebras", arXiv:2404.07652v1. This basis is
available for any simple Lie algebra.

2. natural bases of the matrix Lie algebras $sl_n$, $sp(2n)$, $so(m)$, as
described by Fulton and Harris in Representation Theory: A First Course,
Sections 15.1, 16.1, and 18.1, respectively.

3. the basis of $g_2$ described by Fulton and Harris in Representation Theory:
A First Course, Section 22.1.

The default option is to return the Fulton-Harris basis in types A, B, C, D,
and G.

+-----------------------------------------------------------------------------+
|i1 : LAB=lieAlgebraBasis("A",2)                                              |
|                                                                             |
|o1 = Enhanced basis of 𝔞                                                     |
|                        2                                                    |
|                                                                             |
|o1 : LieAlgebraBasis                                                         |
+-----------------------------------------------------------------------------+
|i2 : peek LAB                                                                |
|                                                                             |
|o2 = LieAlgebraBasis{BasisElements => {| 1 0  0 |, | 0 0 0  |,               |
|                                       | 0 -1 0 |  | 0 1 0  |                |
|                                       | 0 0  0 |  | 0 0 -1 |                |
|                     Bracket => FunctionClosure[../../../../../              |
|                     DualBasis => {| 2/3 0    0    |, | 1/3 0                |
|                                   | 0   -1/3 0    |  | 0   1/3              |
|                                   | 0   0    -1/3 |  | 0   0                |
|                     Labels => {Ha_1, Ha_2, E_(1,2), E_(2,3), E              |
|                     LieAlgebra => 𝔞                                         |
|                                    2                                        |
|                     LoweringOperatorIndices => {5, 6, 7}                    |
|                     RaisingOperatorIndices => {2, 3, 4}                     |
|                     Weights => {{0, 0}, {0, 0}, {2, -1}, {-1,               |
|                     WriteInBasis => writeInslnBasis                         |
|-----------------------------------------------------------------------------|
|| 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0 0 0 |, | 0 0                 |
|| 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0                 |
|| 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 1 0 |  | 1 0                 |
|Macaulay2/packages/LieAlgebraRepresentations/LieAlgebraBases/                |
| 0    |, | 0 0 0 |, | 0 0 0 |, | 0 0 0 |, | 0 1 0 |, | 0 0 0                 |
| 0    |  | 1 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 1                 |
| -2/3 |  | 0 0 0 |  | 0 1 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0 0                 |
|_(1,3), E_(2,1), E_(3,2), E_(3,1)}                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2}, {1, 1}, {-2, 1}, {1, -2}, {-1, -1}}                                      |
|-----------------------------------------------------------------------------|
|0 |}                                    }                                    |
|0 |                                                                          |
|0 |                                                                          |
|lieAlgebraBasisTypeAFH.m2:173:10-173:26]                                     |
||, | 0 0 1 |}                                                                |
||  | 0 0 0 |                                                                 |
||  | 0 0 0 |                                                                 |
+-----------------------------------------------------------------------------+

Functions and methods returning an object of class LieAlgebraBasis:
===================================================================

  * lieAlgebraBasis -- computes an enhanced basis for a
    simple Lie algebra

Methods that use an object of class LieAlgebraBasis:
====================================================

  * "adjointRepresentation(LieAlgebraBasis)" -- see
    adjointRepresentation, -- creates the adjoint
    representation of a Lie algebra
  * "isLieAlgebraRepresentation(LieAlgebraBasis,List)" -- see
    isLieAlgebraRepresentation, -- checks whether a
    list of matrices defines a Lie algebra representation
  * "lieAlgebraRepresentation(LieAlgebraModule,LieAlgebraBasis,List)" -- see
    lieAlgebraRepresentation, -- create a
    LieAlgebraRepresentation
  * net(LieAlgebraBasis) (missing documentation)
  * "trivialRepresentation(LieAlgebraBasis)" -- see
    trivialRepresentation, -- creates the trivial
    representation of a Lie algebra
  * "universalEnvelopingAlgebra(LieAlgebraBasis)" -- see
    universalEnvelopingAlgebra, -- computes the
    universal enveloping algebra of a Lie algebra
  * "uNminus(LieAlgebraBasis)" -- see uNminus, -- computes the
    universal enveloping algebra of the Lie algebra $N^{-}$

For the programmer
==================

The object LieAlgebraBasis, is a type (Macaulay2Doc),
with ancestor classes HashTable (Macaulay2Doc),
< Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1378:0.

lieAlgebraBasis -- computes an enhanced basis for a simple Lie algebra
**********************************************************************

  * Usage:
        lieAlgebraBasis("A",2)
  * Inputs:
      * t, a string (Macaulay2Doc),
      * m, an integer (Macaulay2Doc),
      * Method, a string (Macaulay2Doc),
      * Check, a Boolean value (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * Check
      * Method
  * Outputs:
      * LAB, an instance of the type LieAlgebraBasis,

Description
===========

See LieAlgebraBasis, for more details and references.

The optional argument "Method" may be set to "Lusztig" for the Lusztig
canonical basis, or "FH" for the basis described in Fulton-Harris,
Representation Theory: A First Course. The default is "FH" for types A, B, C,
D, and G.

The optional argument "Check" (default: true) runs a suite of tests on the
basis constructed. See the unexported function "checkLieAlgebraBasis" in the
package code for more details.

The user may either input the type and rank, or the simple Lie algebra.

+-----------------------------------------------------------------------------+
|i1 : LAB=lieAlgebraBasis("A",2);                                             |
+-----------------------------------------------------------------------------+
|i2 : peek LAB                                                                |
|                                                                             |
|o2 = LieAlgebraBasis{BasisElements => {| 1 0  0 |, | 0 0 0  |,               |
|                                       | 0 -1 0 |  | 0 1 0  |                |
|                                       | 0 0  0 |  | 0 0 -1 |                |
|                     Bracket => FunctionClosure[../../../../../              |
|                     DualBasis => {| 2/3 0    0    |, | 1/3 0                |
|                                   | 0   -1/3 0    |  | 0   1/3              |
|                                   | 0   0    -1/3 |  | 0   0                |
|                     Labels => {Ha_1, Ha_2, E_(1,2), E_(2,3), E              |
|                     LieAlgebra => 𝔞                                         |
|                                    2                                        |
|                     LoweringOperatorIndices => {5, 6, 7}                    |
|                     RaisingOperatorIndices => {2, 3, 4}                     |
|                     Weights => {{0, 0}, {0, 0}, {2, -1}, {-1,               |
|                     WriteInBasis => writeInslnBasis                         |
|-----------------------------------------------------------------------------|
|| 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0 0 0 |, | 0 0                 |
|| 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0                 |
|| 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 1 0 |  | 1 0                 |
|Macaulay2/packages/LieAlgebraRepresentations/LieAlgebraBases/                |
| 0    |, | 0 0 0 |, | 0 0 0 |, | 0 0 0 |, | 0 1 0 |, | 0 0 0                 |
| 0    |  | 1 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 1                 |
| -2/3 |  | 0 0 0 |  | 0 1 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0 0                 |
|_(1,3), E_(2,1), E_(3,2), E_(3,1)}                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|2}, {1, 1}, {-2, 1}, {1, -2}, {-1, -1}}                                      |
|-----------------------------------------------------------------------------|
|0 |}                                    }                                    |
|0 |                                                                          |
|0 |                                                                          |
|lieAlgebraBasisTypeAFH.m2:173:10-173:26]                                     |
||, | 0 0 1 |}                                                                |
||  | 0 0 0 |                                                                 |
||  | 0 0 0 |                                                                 |
+-----------------------------------------------------------------------------+
|i3 : sl3=simpleLieAlgebra("A",2);                                            |
+-----------------------------------------------------------------------------+
|i4 : lieAlgebraBasis(sl3)===LAB                                              |
|                                                                             |
|o4 = false                                                                   |
+-----------------------------------------------------------------------------+

Here is the Lusztig canonical basis as described by Geck and Lang.

+-----------------------------------------------------------------------------+
|i5 : LAB#"BasisElements"                                                     |
|                                                                             |
|o5 = {| 1 0  0 |, | 0 0 0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0|
|      | 0 -1 0 |  | 0 1 0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0|
|      | 0 0  0 |  | 0 0 -1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0|
|     ------------------------------------------------------------------------|
|     0 0 |, | 0 0 0 |}                                                       |
|     0 0 |  | 0 0 0 |                                                        |
|     1 0 |  | 1 0 0 |                                                        |
|                                                                             |
|o5 : List                                                                    |
+-----------------------------------------------------------------------------+
|i6 : LABLusztig = lieAlgebraBasis("A",2,"Method"=>"Lusztig");                |
+-----------------------------------------------------------------------------+
|i7 : LABLusztig#"BasisElements"                                              |
|                                                                             |
|o7 = {| 1 0  0 |, | 0 0 0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0|
|      | 0 -1 0 |  | 0 1 0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0|
|      | 0 0  0 |  | 0 0 -1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0|
|     ------------------------------------------------------------------------|
|     0 0 |, | 0 0 0 |}                                                       |
|     0 0 |  | 0 0 0 |                                                        |
|     1 0 |  | 1 0 0 |                                                        |
|                                                                             |
|o7 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use lieAlgebraBasis:
============================

  * "lieAlgebraBasis(LieAlgebra)"
  * "lieAlgebraBasis(String,ZZ)"

For the programmer
==================

The object lieAlgebraBasis, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1420:0.

LieAlgebraModule -- class for Lie algebra modules
*************************************************

Description
===========

This class represents Lie algebra modules.  Currently only modules over
semi-simple Lie algebras over the complex numbers are supported. An object of
type LieAlgebraModule is a hash table recording the Lie algebra and the
decomposition of the module into irreducible Lie algebra modules, which are
indexed by their highest weights.

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : M=irreducibleLieAlgebraModule(g,{1,1})|
|                                           |
|o2 = M                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+

Functions and methods returning an object of class LieAlgebraModule:
====================================================================

  * adams -- Computes the action of the nth Adams operator on a
    Lie algebra module
  * adjointModule -- The adjoint module of a Lie algebra
  * branchingRule -- A Lie algebra module viewed as a
    module over a Lie subalgebra
  * fusionProduct -- computes the multiplicities of
    irreducibles in the decomposition of the fusion product of U and V
  * irreducibleLieAlgebraModule, --
    construct the irreducible Lie algebra module with given highest weight
  * LieAlgebraModuleFromWeights -- finds a
    Lie algebra module based on its weights
  * standardModule (missing documentation)
  * trivialModule -- The trivial module of a Lie algebra
  * zeroModule -- The zero module of a Lie algebra

Methods that use an object of class LieAlgebraModule:
=====================================================

  * "adams(ZZ,LieAlgebraModule)" -- see adams, -- Computes the
    action of the nth Adams operator on a Lie algebra module
  * "branchingRule(LieAlgebraModule,LieAlgebra)" -- see branchingRule,
    -- A Lie algebra module viewed as a module over a Lie
    subalgebra
  * "branchingRule(LieAlgebraModule,List)" -- see branchingRule,
    -- A Lie algebra module viewed as a module over a Lie
    subalgebra
  * "branchingRule(LieAlgebraModule,Matrix)" -- see branchingRule,
    -- A Lie algebra module viewed as a module over a Lie
    subalgebra
  * "branchingRule(LieAlgebraModule,String)" -- see branchingRule,
    -- A Lie algebra module viewed as a module over a Lie
    subalgebra
  * "casimirScalar(LieAlgebraModule)" -- see casimirScalar,
    -- computes the scalar by which the Casimir operator acts on
    an irreducible Lie algebra module
  * "casimirSpectrum(LieAlgebraModule)" -- see casimirSpectrum,
    -- computes the eigenvalues of the Casimir operator
    associated to a representation
  * "character(LieAlgebraModule)" -- see character, --
    Computes the character of a Lie algebra module
  * dim(LieAlgebraModule) -- computes the
    dimension of a Lie algebra module as a vector space over the ground field
  * "fusionCoefficient(LieAlgebraModule,LieAlgebraModule,LieAlgebraModule,ZZ)"
    -- see fusionCoefficient, -- computes the
    multiplicity of W in the fusion product of U and V
  * "fusionProduct(LieAlgebraModule,LieAlgebraModule,ZZ)" -- see
    fusionProduct, -- computes the multiplicities of
    irreducibles in the decomposition of the fusion product of U and V
  * "GTrepresentationMatrices(LieAlgebraModule)" -- see
    GTrepresentationMatrices, -- creates a list of
    matrices for the action of $\mathfrak{g}$ on Gelfand-Tsetlin basis
  * "isIrreducible(LieAlgebraModule)" -- see isIrreducible,
    -- Whether a Lie algebra module is irreducible or not
  * isIsomorphic(LieAlgebraModule,LieAlgebraModule) (missing documentation)
  * LieAlgebraModule ** LieAlgebraModule
    -- tensor product of LieAlgebraModules
  * "directSum(LieAlgebraModule)" -- see LieAlgebraModule ++ LieAlgebraModule,
    -- direct sum of
    LieAlgebraModules
  * LieAlgebraModule ++ LieAlgebraModule
    -- direct sum of LieAlgebraModules
  * LieAlgebraModule @ LieAlgebraModule
    -- Take the tensor product of modules over different Lie
    algebras
  * LieAlgebraModule ^ ZZ (missing documentation)
  * LieAlgebraModule ^** ZZ -- Computes the
    nth tensor power of a Lie algebra module
  * "LieAlgebraModule _ LieAlgebraModule" -- see LieAlgebraModule _ ZZ,
    -- Pick out one irreducible submodule of a Lie
    algebra module
  * "LieAlgebraModule _ List" -- see LieAlgebraModule _ ZZ,
    -- Pick out one irreducible submodule of a Lie
    algebra module
  * "LieAlgebraModule _ Vector" -- see LieAlgebraModule _ ZZ,
    -- Pick out one irreducible submodule of a Lie
    algebra module
  * LieAlgebraModule _ ZZ -- Pick out one
    irreducible submodule of a Lie algebra module
  * LieAlgebraModule _* -- List irreducible
    submodules of a Lie algebra module
  * "lieAlgebraRepresentation(LieAlgebraModule,LieAlgebraBasis,List)" -- see
    lieAlgebraRepresentation, -- create a
    LieAlgebraRepresentation
  * "qdim(LieAlgebraModule)" -- see qdim, -- Compute principal
    specialization of character or quantum dimension
  * "qdim(LieAlgebraModule,ZZ)" -- see qdim, -- Compute principal
    specialization of character or quantum dimension
  * "dual(LieAlgebraModule)" -- see starInvolution, --
    computes w* for a weight w
  * "starInvolution(LieAlgebraModule)" -- see starInvolution,
    -- computes w* for a weight w
  * "exteriorPower(ZZ,LieAlgebraModule)" -- see
    symmetricPower(ZZ,LieAlgebraModule),
    -- Computes the nth symmetric /
    exterior tensor power of a Lie algebra module
  * symmetricPower(ZZ,LieAlgebraModule)
    -- Computes the nth symmetric /
    exterior tensor power of a Lie algebra module
  * "tensorCoefficient(LieAlgebraModule,LieAlgebraModule,LieAlgebraModule)" --
    see tensorCoefficient, -- computes the
    multiplicity of W in U tensor V
  * toExternalString(LieAlgebraModule) (missing documentation)
  * toString(LieAlgebraModule) (missing documentation)
  * "weightDiagram(LieAlgebraModule)" -- see weightDiagram,
    -- computes the weights in a Lie algebra module and their
    multiplicities

For the programmer
==================

The object LieAlgebraModule, is a type (Macaulay2Doc),
with ancestor classes HashTable (Macaulay2Doc),
< Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:382:0.

LieAlgebraModule ** LieAlgebraModule -- tensor product of LieAlgebraModules
***************************************************************************

  * Operator: ** (Macaulay2Doc),
  * Usage:
        U ** V
  * Inputs:
      * U, an instance of the type LieAlgebraModule,
      * V, an instance of the type LieAlgebraModule,
  * Outputs:
      * W, an instance of the type LieAlgebraModule,

Description
===========

Computes the tensor product of two Lie algebra modules.

+-----------------------------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)                                               |
|                                                                             |
|o1 = g                                                                       |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : U=irreducibleLieAlgebraModule({4,2},g)                                  |
|                                                                             |
|o2 = U                                                                       |
|                                                                             |
|o2 : irreducible LieAlgebraModule over g                                     |
+-----------------------------------------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({3,1},g)                                  |
|                                                                             |
|o3 = V                                                                       |
|                                                                             |
|o3 : irreducible LieAlgebraModule over g                                     |
+-----------------------------------------------------------------------------+
|i4 : U**V                                                                    |
|                                                                             |
|                                                               2             |
|o4 = LL   (g) ++ LL   (g) ++ LL   (g) ++ LL   (g) ++ (LL   (g))  ++          |
|       0,5         1,3         1,6         2,1          2,4                  |
|                                                                             |
|o4 : LieAlgebraModule over g                                                 |
|-----------------------------------------------------------------------------|
|          2                                      2              2            |
|(LL   (g))  ++ LL   (g) ++ LL   (g) ++ (LL   (g))  ++ (LL   (g))  ++ LL   (g)|
|   3,2           3,5         4,0          4,3            5,1           5,4   |
|-----------------------------------------------------------------------------|
|             2                                                               |
|++ (LL   (g))  ++ LL   (g) ++ LL   (g) ++ LL   (g)                           |
|      6,2           7,0         7,3         8,1                              |
+-----------------------------------------------------------------------------+

See also
========

  * tensorCoefficient -- computes the multiplicity of
    W in U tensor V

Ways to use this method:
========================

  * LieAlgebraModule ** LieAlgebraModule
    -- tensor product of LieAlgebraModules
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:823:0.

LieAlgebraModule ++ LieAlgebraModule -- direct sum of LieAlgebraModules
***********************************************************************

  * Operator: ++ (Macaulay2Doc),
  * Usage:
        U ++ V
  * Inputs:
      * U, an instance of the type LieAlgebraModule,
      * V, an instance of the type LieAlgebraModule,
  * Outputs:
      * W, an instance of the type LieAlgebraModule,

Description
===========

Computes the direct sum of two Lie algebra modules.

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : U=irreducibleLieAlgebraModule({4,2},g)|
|                                           |
|o2 = U                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({3,1},g)|
|                                           |
|o3 = V                                     |
|                                           |
|o3 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i4 : U++V                                  |
|                                           |
|o4 = LL   (g) ++ LL   (g)                  |
|       3,1         4,2                     |
|                                           |
|o4 : LieAlgebraModule over g               |
+-------------------------------------------+

Ways to use this method:
========================

  * LieAlgebraModule ++ LieAlgebraModule
    -- direct sum of LieAlgebraModules
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:853:0.

LieAlgebraModule @ LieAlgebraModule -- Take the tensor product of modules over different Lie algebras
*****************************************************************************************************

  * Operator: @ (Macaulay2Doc),

Description
===========

Produces a module over the direct sum of the Lie algebras of the two modules.

+-----------------------------------------------------------------------------+
|i1 : LL_(1,2,3,4) (simpleLieAlgebra("D",4)) @ LL_(5,6)                       |
|                                                                             |
|o1 = LL           (𝔡  ++ 𝔤 )                                                 |
|       1,2,3,4,5,6  4     2                                                  |
|                                                                             |
|o1 : irreducible LieAlgebraModule over 𝔡  ++ 𝔤                               |
|                                        4     2                              |
|-----------------------------------------------------------------------------|
|(simpleLieAlgebra("G",2))                                                    |
+-----------------------------------------------------------------------------+

A complicated way to define usual tensor product LieAlgebraModule ** LieAlgebraModule,
would be using the
diagonal embedding:

+-----------------------------------------------+
|i2 : g := simpleLieAlgebra("A",1)              |
|                                               |
|o2 = 𝔞                                         |
|      1                                        |
|                                               |
|o2 : simple LieAlgebra                         |
+-----------------------------------------------+
|i3 : h := g ++ g                               |
|                                               |
|o3 = 𝔞  ++ 𝔞                                   |
|      1     1                                  |
|                                               |
|o3 : LieAlgebra                                |
+-----------------------------------------------+
|i4 : gdiag := subLieAlgebra(h,matrix {{1},{1}})|
|                                               |
|o4 = 𝔞                                         |
|      1                                        |
|                                               |
|o4 : simple LieAlgebra, subalgebra of 𝔞  ++ 𝔞  |
|                                       1     1 |
+-----------------------------------------------+
|i5 : M = LL_5 (g); M' = LL_2 (g);              |
+-----------------------------------------------+
|i7 : M @ M'                                    |
|                                               |
|o7 = LL   (𝔞  ++ 𝔞 )                           |
|       5,2  1     1                            |
|                                               |
|o7 : irreducible LieAlgebraModule over 𝔞  ++ 𝔞 |
|                                        1     1|
+-----------------------------------------------+
|i8 : branchingRule(oo,gdiag)                   |
|                                               |
|o8 = LL (𝔞 ) ++ LL (𝔞 ) ++ LL (𝔞 )             |
|       3  1       5  1       7  1              |
|                                               |
|o8 : LieAlgebraModule over 𝔞                   |
|                            1                  |
+-----------------------------------------------+
|i9 : M ** M'                                   |
|                                               |
|o9 = LL (𝔞 ) ++ LL (𝔞 ) ++ LL (𝔞 )             |
|       3  1       5  1       7  1              |
|                                               |
|o9 : LieAlgebraModule over 𝔞                   |
|                            1                  |
+-----------------------------------------------+

Ways to use this method:
========================

  * LieAlgebraModule @ LieAlgebraModule
    -- Take the tensor product of modules over different Lie
    algebras
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1273:0.

LieAlgebraModule ^** ZZ -- Computes the nth tensor power of a Lie algebra module
********************************************************************************

  * Operator: ^** (Macaulay2Doc),
  * Usage:
        M^**n
  * Inputs:
      * M, an instance of the type LieAlgebraModule,
      * n, an integer (Macaulay2Doc),
  * Outputs:
      * M', an instance of the type LieAlgebraModule,

Ways to use this method:
========================

  * LieAlgebraModule ^** ZZ -- Computes the
    nth tensor power of a Lie algebra module
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1114:0.

LieAlgebraModule _ ZZ -- Pick out one irreducible submodule of a Lie algebra module
***********************************************************************************

  * Operator: _ (Macaulay2Doc),

Description
===========

If a number is given, the ordering is the same as when the module is displayed:

+-----------------------------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2);                                              |
+-----------------------------------------------------------------------------+
|i2 : (adjointModule g)^**3                                                   |
|                                                                             |
|               2              4              8              2              6 |
|o2 = (LL   (g))  ++ (LL   (g))  ++ (LL   (g))  ++ (LL   (g))  ++ (LL   (g))  |
|        0,0            0,3            1,1            1,4            2,2      |
|                                                                             |
|o2 : LieAlgebraModule over g                                                 |
|-----------------------------------------------------------------------------|
|             4                          2                                    |
|++ (LL   (g))  ++ LL   (g) ++ (LL   (g))                                     |
|      3,0           3,3          4,1                                         |
+-----------------------------------------------------------------------------+
|i3 : oo_2                                                                    |
|                                                                             |
|o3 = LL   (g)                                                                |
|       1,1                                                                   |
|                                                                             |
|o3 : irreducible LieAlgebraModule over g                                     |
+-----------------------------------------------------------------------------+

Instead one can simply use a weight or irreducible module as subscript:

+-----------------------------------------------------------------------------+
|i4 : g=simpleLieAlgebra("A",3);                                              |
+-----------------------------------------------------------------------------+
|i5 : M=(adjointModule g)^**2                                                 |
|                                                                             |
|o5 = M                                                                       |
|                                                                             |
|o5 : LieAlgebraModule over g                                                 |
+-----------------------------------------------------------------------------+
|i6 : describe M                                                              |
|                                                                             |
|                                                           2                 |
|o6 = LL     (g) ++ LL     (g) ++ LL     (g) ++ (LL     (g))  ++ LL     (g) ++|
|       0,0,0         0,1,2         0,2,0          1,0,1           2,0,2      |
|-----------------------------------------------------------------------------|
|LL     (g)                                                                   |
|  2,1,0                                                                      |
+-----------------------------------------------------------------------------+
|i7 : M_{1,0,1}                                                               |
|                                                                             |
|o7 = 2                                                                       |
+-----------------------------------------------------------------------------+
|i8 : M_(trivialModule g)                                                     |
|                                                                             |
|o8 = 1                                                                       |
+-----------------------------------------------------------------------------+

Ways to use this method:
========================

  * "LieAlgebraModule _ LieAlgebraModule"
  * "LieAlgebraModule _ List"
  * "LieAlgebraModule _ Vector"
  * LieAlgebraModule _ ZZ -- Pick out one
    irreducible submodule of a Lie algebra module
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1326:0.

LieAlgebraModule _* -- List irreducible submodules of a Lie algebra module
**************************************************************************

  * Operator: _* (Macaulay2Doc),

Description
===========

Gives a list of nonisomorphic irreducible submodules:

+-----------------------------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2);                                              |
+-----------------------------------------------------------------------------+
|i2 : (adjointModule g)^**3                                                   |
|                                                                             |
|               2              4              8              2              6 |
|o2 = (LL   (g))  ++ (LL   (g))  ++ (LL   (g))  ++ (LL   (g))  ++ (LL   (g))  |
|        0,0            0,3            1,1            1,4            2,2      |
|                                                                             |
|o2 : LieAlgebraModule over g                                                 |
|-----------------------------------------------------------------------------|
|             4                          2                                    |
|++ (LL   (g))  ++ LL   (g) ++ (LL   (g))                                     |
|      3,0           3,3          4,1                                         |
+-----------------------------------------------------------------------------+
|i3 : oo_*                                                                    |
|                                                                             |
|o3 = {LL   (g), LL   (g), LL   (g), LL   (g), LL   (g), LL   (g), LL   (g),  |
|        0,0       0,3       1,1       1,4       2,2       3,0       3,3      |
|     ------------------------------------------------------------------------|
|     LL   (g)}                                                               |
|       4,1                                                                   |
|                                                                             |
|o3 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use this method:
========================

  * LieAlgebraModule _* -- List irreducible
    submodules of a Lie algebra module
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1340:0.

LieAlgebraModuleFromWeights -- finds a Lie algebra module based on its weights
******************************************************************************

  * Usage:
        LieAlgebraModuleFromWeights(T,g)
  * Inputs:
      * T, a tally (Macaulay2Doc),
      * g, an instance of the type LieAlgebra,

Description
===========

+--------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2);             |
+--------------------------------------------+
|i2 : U=irreducibleLieAlgebraModule({1,1},g);|
+--------------------------------------------+
|i3 : M=U**U                                 |
|                                            |
|o3 = M                                      |
|                                            |
|o3 : LieAlgebraModule over g                |
+--------------------------------------------+
|i4 : T=weightDiagram M                      |
|                                            |
|o4 = VirtualTally{{-1, -1} => 6}            |
|                  {-1, 2} => 6              |
|                  {-2, -2} => 1             |
|                  {-2, 1} => 6              |
|                  {-2, 4} => 1              |
|                  {-3, 0} => 2              |
|                  {-3, 3} => 2              |
|                  {-4, 2} => 1              |
|                  {0, -3} => 2              |
|                  {0, 0} => 10              |
|                  {0, 3} => 2               |
|                  {1, -2} => 6              |
|                  {1, 1} => 6               |
|                  {2, -1} => 6              |
|                  {2, -4} => 1              |
|                  {2, 2} => 1               |
|                  {3, -3} => 2              |
|                  {3, 0} => 2               |
|                  {4, -2} => 1              |
|                                            |
|o4 : VirtualTally                           |
+--------------------------------------------+
|i5 : LieAlgebraModuleFromWeights(T,g)       |
|                                            |
|o5 = M                                      |
|                                            |
|o5 : LieAlgebraModule over g                |
+--------------------------------------------+

Ways to use LieAlgebraModuleFromWeights:
========================================

  * "LieAlgebraModuleFromWeights(RingElement,LieAlgebra)"
  * "LieAlgebraModuleFromWeights(VirtualTally,LieAlgebra)"

For the programmer
==================

The object LieAlgebraModuleFromWeights, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:956:0.

LieAlgebraRepresentation -- class for a Lie algebra representation
******************************************************************

Description
===========

Let $\rho: \mathfrak{g} \rightarrow \mathfrak{gl}(V)$ be a Lie algebra
representation. We implement this in the LieAlgebraRepresentation class as
follows.

The user should input: the character of $\rho$, a LieAlgebraBasis of
$\mathfrak{g}$, and the list of images $\rho(B_i)$ for each basis element $B_i$
in the LieAlgebraBasis.

As a first example, we create the standard representation of $sl_2$ from
scratch. (This can be done automatically with standardRepresentation,
command.)  It has highest weight $\omega_1$.

+-----------------------------------------------------------------------------+
|i1 : sl2 = simpleLieAlgebra("A",1)                                           |
|                                                                             |
|o1 = sl2                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : V = irreducibleLieAlgebraModule({1},sl2)                                |
|                                                                             |
|o2 = V                                                                       |
|                                                                             |
|o2 : irreducible LieAlgebraModule over sl2                                   |
+-----------------------------------------------------------------------------+
|i3 : LAB=lieAlgebraBasis("A",1)                                              |
|                                                                             |
|o3 = Enhanced basis of sl2                                                   |
|                                                                             |
|o3 : LieAlgebraBasis                                                         |
+-----------------------------------------------------------------------------+
|i4 : L = {matrix {{1, 0}, {0, -1/1}}, matrix {{0, 1}, {0, 0/1}}, matrix {{0, |
|                                                                             |
|o4 = {| 1 0  |, | 0 1 |, | 0 0 |}                                            |
|      | 0 -1 |  | 0 0 |  | 1 0 |                                             |
|                                                                             |
|o4 : List                                                                    |
|-----------------------------------------------------------------------------|
|0}, {1, 0/1}}}                                                               |
+-----------------------------------------------------------------------------+
|i5 : rho = lieAlgebraRepresentation(V,LAB,L)                                 |
|                                                                             |
|o5 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl2               |
|                              "Module" => V                                  |
|                              "RepresentationMatrices" => {| 1 0  |, | 0 1 |,|
|                                                           | 0 -1 |  | 0 0 | |
|                                                                             |
|o5 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|        }                                                                    |
|                                                                             |
|| 0 0 |}                                                                     |
|| 1 0 |                                                                      |
+-----------------------------------------------------------------------------+

Functions and methods returning an object of class LieAlgebraRepresentation:
============================================================================

  * adjointRepresentation -- creates the adjoint
    representation of a Lie algebra
  * deGraafRepresentation -- compute the
    representation with the specified highest weight using de Graaf's algorithm
  * lieAlgebraRepresentation -- create a
    LieAlgebraRepresentation
  * standardRepresentation -- creates the
    standard representation of a matrix Lie algebra
  * trivialRepresentation -- creates the trivial
    representation of a Lie algebra

Methods that use an object of class LieAlgebraRepresentation:
=============================================================

  * "basisWordsFromMatrixGenerators(LieAlgebraRepresentation)" -- see
    basisWordsFromMatrixGenerators, -- express
    each basis element of $V(\lambda)$ as a linear combination of words in the
    lowering operators applied to the highest weight vector
  * "casimirOperator(LieAlgebraRepresentation)" -- see casimirOperator,
    -- computes the Casimir operator associated to a
    representation
  * "casimirProjection(LieAlgebraRepresentation,QQ)" -- see
    casimirProjection, -- projection operator to a specified
    eigenspace of the Casimir operator
  * casimirProjection(LieAlgebraRepresentation,ZZ) (missing documentation)
  * dual(LieAlgebraRepresentation),
    -- creates the dual representation of a Lie algebra representation
  * exteriorPower(ZZ,LieAlgebraRepresentation)
    -- computes the explicit
    action on $\bigwedge^k V$ for a $\mathfrak{g}$-module $V$
  * "isomorphismOfRepresentations(LieAlgebraRepresentation,
    LieAlgebraRepresentation)" -- see isomorphismOfRepresentations,
    -- compute an explicit isomorphism between
    two Lie algebra representations
  * LieAlgebraRepresentation ** LieAlgebraRepresentation
    -- computes the
    explicit action on $V \otimes W$ given $\mathfrak{g}$-representations $V$
    and $W$
  * "tensor(LieAlgebraRepresentation,LieAlgebraRepresentation)" -- see
    LieAlgebraRepresentation ** LieAlgebraRepresentation,
    -- computes the
    explicit action on $V \otimes W$ given $\mathfrak{g}$-representations $V$
    and $W$
  * "representationWeights(LieAlgebraRepresentation)" -- see
    representationWeights, -- computes the weights of
    the basis of a Lie algebra module from an explicit representation
  * "reynoldsOperator(LieAlgebraRepresentation)" -- see reynoldsOperator,
    -- computes the projection to the sum of the trivial
    submodules in $V$
  * symmetricPower(ZZ,LieAlgebraRepresentation)
    -- computes the explicit
    action on $\operatorname{Sym}^d V$ for a $\mathfrak{g}$-module $V$
  * "UInVtensorW(LieAlgebraRepresentation,LieAlgebraRepresentation,
    LieAlgebraRepresentation,Matrix)" -- see UInVtensorW, --
    computes a basis of a submodule of $V \otimes W$ isomorphic to $U$ with a
    given highest weight vector
  * UInVtensorW(LieAlgebraRepresentation,LieAlgebraRepresentation,
    LieAlgebraRepresentation,RingElement) (missing documentation)
  * "VInSymdW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,Matrix)" --
    see VInSymdW, -- computes a basis of a submodule of
    $\operatorname{Sym}^d W$ isomorphic to $V$ with a given highest weight
    vector
  * VInSymdW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,RingElement)
    (missing documentation)
  * "VInWedgekW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,Matrix)"
    -- see VInWedgekW, -- computes a basis of a submodule of
    $\bigwedge^k W$ isomorphic to $V$ with a given highest weight vector
  * "weightMuHighestWeightVectorsInSymdW(List,ZZ,LieAlgebraRepresentation)" --
    see weightMuHighestWeightVectorsInSymdW,
    -- computes the highest weight vectors
    of weight mu in $\operatorname{Sym}^d W$
  * "weightMuHighestWeightVectorsInW(List,LieAlgebraRepresentation)" -- see
    weightMuHighestWeightVectorsInW, --
    computes the highest weight vectors of weight mu in W
  * "weightNuHighestWeightVectorsInVtensorW(List,LieAlgebraRepresentation,
    LieAlgebraRepresentation)" -- see
    weightNuHighestWeightVectorsInVtensorW,
    -- computes the highest weight
    vectors of weight nu in $V \otimes W$

For the programmer
==================

The object LieAlgebraRepresentation, is a
type (Macaulay2Doc), with ancestor classes HashTable (Macaulay2Doc),
< Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1557:0.

lieAlgebraRepresentation -- create a LieAlgebraRepresentation
*************************************************************

  * Usage:
        lieAlgebraRepresentation(V,LAB,L)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
      * LAB, an instance of the type LieAlgebraBasis,
      * L, a list (Macaulay2Doc),

Description
===========

Let $\{B_i\}$ be a basis of $\mathfrak{g}$, and $\rho: \mathfrak{g} \rightarrow
\mathfrak{gl}(V)$ be a Lie algebra representation with character $V$.

To construct $\rho$, we require a basis LAB of $\mathfrak{g}$, and a list L of
matrices that are the images $\rho(B_i) \in \mathfrak{gl}(V)$.

First, we build the standard representation for $sl_3$. The list of matrices we
need is already contained in the LieAlgebraBasis.

+-----------------------------------------------------------------------------+
|i1 : sl3=simpleLieAlgebra("A",2);                                            |
+-----------------------------------------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({1,0},sl3);                               |
+-----------------------------------------------------------------------------+
|i3 : LAB = lieAlgebraBasis("A",2);                                           |
+-----------------------------------------------------------------------------+
|i4 : LAB#"BasisElements"                                                     |
|                                                                             |
|o4 = {| 1 0  0 |, | 0 0 0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0|
|      | 0 -1 0 |  | 0 1 0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0|
|      | 0 0  0 |  | 0 0 -1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0|
|     ------------------------------------------------------------------------|
|     0 0 |, | 0 0 0 |}                                                       |
|     0 0 |  | 0 0 0 |                                                        |
|     1 0 |  | 1 0 0 |                                                        |
|                                                                             |
|o4 : List                                                                    |
+-----------------------------------------------------------------------------+
|i5 : rho=lieAlgebraRepresentation(V,LAB,LAB#"BasisElements")                 |
|                                                                             |
|o5 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl3               |
|                              "Module" => V                                  |
|                              "RepresentationMatrices" => {| 1 0  0 |, | 0 0 |
|                                                           | 0 -1 0 |  | 0 1 |
|                                                           | 0 0  0 |  | 0 0 |
|                                                                             |
|o5 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                       }     |
|                                                                             |
|0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0 0 0 |, | 0 0 0 |}      |
|0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0 0 |       |
|-1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 1 0 |  | 1 0 0 |       |
+-----------------------------------------------------------------------------+

Next, we make an irreducible representation with highest weight $(2,0)$. This
time, we create the list of matrices using the command
GTrepresentationMatrices.

+-----------------------------------------------------------------------------+
|i6 : V=irreducibleLieAlgebraModule({2,0},sl3);                               |
+-----------------------------------------------------------------------------+
|i7 : L = GTrepresentationMatrices(V)                                         |
|                                                                             |
|o7 = {| 2 0 0  0 0  0 |, | 0 0 0 0  0 0  |, | 0 2 0 0 0 0 |, | 0 0 0 0 0 0 |,|
|      | 0 0 0  0 0  0 |  | 0 1 0 0  0 0  |  | 0 0 2 0 0 0 |  | 0 0 0 3 0 0 | |
|      | 0 0 -2 0 0  0 |  | 0 0 2 0  0 0  |  | 0 0 0 0 0 0 |  | 0 0 0 0 3 0 | |
|      | 0 0 0  1 0  0 |  | 0 0 0 -1 0 0  |  | 0 0 0 0 1 0 |  | 0 0 0 0 0 0 | |
|      | 0 0 0  0 -1 0 |  | 0 0 0 0  0 0  |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 4 | |
|      | 0 0 0  0 0  0 |  | 0 0 0 0  0 -2 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 | |
|     ------------------------------------------------------------------------|
|     | 0 0 0 6 0 0 |, | 0 0 0 0 0 0 |, | 0 0   0   0 0   0 |, | 0   0   0 0  |
|     | 0 0 0 0 3 0 |  | 1 0 0 0 0 0 |  | 0 0   0   0 0   0 |  | 0   0   0 0  |
|     | 0 0 0 0 0 0 |  | 0 1 0 0 0 0 |  | 0 0   0   0 0   0 |  | 0   0   0 0  |
|     | 0 0 0 0 0 4 |  | 0 0 0 0 0 0 |  | 0 1/3 0   0 0   0 |  | 1/3 0   0 0  |
|     | 0 0 0 0 0 0 |  | 0 0 0 1 0 0 |  | 0 0   2/3 0 0   0 |  | 0   1/3 0 0  |
|     | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |  | 0 0   0   0 1/2 0 |  | 0   0   0 1/2|
|     ------------------------------------------------------------------------|
|     0 0 |}                                                                  |
|     0 0 |                                                                   |
|     0 0 |                                                                   |
|     0 0 |                                                                   |
|     0 0 |                                                                   |
|     0 0 |                                                                   |
|                                                                             |
|o7 : List                                                                    |
+-----------------------------------------------------------------------------+
|i8 : lieAlgebraRepresentation(V,LAB,L)                                       |
|                                                                             |
|o8 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl3               |
|                              "Module" => V                                  |
|                              "RepresentationMatrices" => {| 2 0 0  0 0  0 |,|
|                                                           | 0 0 0  0 0  0 | |
|                                                           | 0 0 -2 0 0  0 | |
|                                                           | 0 0 0  1 0  0 | |
|                                                           | 0 0 0  0 -1 0 | |
|                                                           | 0 0 0  0 0  0 | |
|                                                                             |
|o8 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|| 0 0 0 0  0 0  |, | 0 2 0 0 0 0 |, | 0 0 0 0 0 0 |, | 0 0 0 6 0 0 |, | 0 0 0|
|| 0 1 0 0  0 0  |  | 0 0 2 0 0 0 |  | 0 0 0 3 0 0 |  | 0 0 0 0 3 0 |  | 1 0 0|
|| 0 0 2 0  0 0  |  | 0 0 0 0 0 0 |  | 0 0 0 0 3 0 |  | 0 0 0 0 0 0 |  | 0 1 0|
|| 0 0 0 -1 0 0  |  | 0 0 0 0 1 0 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 4 |  | 0 0 0|
|| 0 0 0 0  0 0  |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 4 |  | 0 0 0 0 0 0 |  | 0 0 0|
|| 0 0 0 0  0 -2 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |  | 0 0 0|
|-----------------------------------------------------------------------------|
|                                                      }                      |
|                                                                             |
|0 0 0 |, | 0 0   0   0 0   0 |, | 0   0   0 0   0 0 |}                       |
|0 0 0 |  | 0 0   0   0 0   0 |  | 0   0   0 0   0 0 |                        |
|0 0 0 |  | 0 0   0   0 0   0 |  | 0   0   0 0   0 0 |                        |
|0 0 0 |  | 0 1/3 0   0 0   0 |  | 1/3 0   0 0   0 0 |                        |
|1 0 0 |  | 0 0   2/3 0 0   0 |  | 0   1/3 0 0   0 0 |                        |
|0 0 0 |  | 0 0   0   0 1/2 0 |  | 0   0   0 1/2 0 0 |                        |
+-----------------------------------------------------------------------------+

Ways to use lieAlgebraRepresentation:
=====================================

  * "lieAlgebraRepresentation(LieAlgebraModule,LieAlgebraBasis,List)"

For the programmer
==================

The object lieAlgebraRepresentation, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1593:0.

LieAlgebraRepresentation ** LieAlgebraRepresentation -- computes the explicit action on $V \otimes W$ given $\mathfrak{g}$-representations $V$ and $W$
******************************************************************************************************************************************************

  * Operator: ** (Macaulay2Doc),
  * Usage:
        V**W
  * Inputs:
      * V, an instance of the type LieAlgebraRepresentation,
      * W, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * U, an instance of the type LieAlgebraRepresentation,

Description
===========

Let $V$ and $W$ be LieAlgebraRepresentations. Then this function computes the
action of $\mathfrak{g}$ on $U = V \otimes V$.

In the example below, we compute $V \otimes W$, where $V$ is the adjoint
representation of $sl_3$, and $W$ is the standard representation of $sl_3$.

+-----------------------------------------------------------------+
|i1 : V = adjointRepresentation("A",2);                           |
+-----------------------------------------------------------------+
|i2 : W = standardRepresentation("A",2);                          |
+-----------------------------------------------------------------+
|i3 : U = V**W;                                                   |
+-----------------------------------------------------------------+
|i4 : first(U#"RepresentationMatrices")                           |
|                                                                 |
|o4 = | 1 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 -1 0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 1 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 -1 0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 3 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 1 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 2 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 -2 0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  -1 0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  2 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 1 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 -1 0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  -3 0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  -2 0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  2 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 1 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 -2 0  ||
|     | 0 0  0 0 0  0 0 0 0 0 0  0  0 0 0 0  0  0  0 0 0 0 0  -1 ||
|                                                                 |
|              24       24                                        |
|o4 : Matrix QQ   <-- QQ                                          |
+-----------------------------------------------------------------+

Ways to use this method:
========================

  * LieAlgebraRepresentation ** LieAlgebraRepresentation
    -- computes the
    explicit action on $V \otimes W$ given $\mathfrak{g}$-representations $V$
    and $W$
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2590:0.

multiplicity(List,LieAlgebraModule) -- compute the multiplicity of a weight in a Lie algebra module
***************************************************************************************************

  * Function: multiplicity (ReesAlgebra),
  * Usage:
        multiplicity(v,M)
  * Inputs:
      * v, a list (Macaulay2Doc),
      * M, an instance of the type LieAlgebraModule,
  * Optional inputs (Macaulay2Doc),:
      * BasisElementLimit => ..., default value infinity
      * DegreeLimit => ..., default value {}
      * MinimalGenerators => ..., default value true
      * PairLimit => ..., default value infinity
      * Strategy => ..., default value null
      * Variable => ..., default value "w"
  * Outputs:
      * k, an integer (Macaulay2Doc),

Description
===========

The example below shows that the $sl_3$ module with highest weight $(2,1)$
contains the weight $(-1,1)$ with multiplicity 2.

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({2,1},g)|
|                                           |
|o2 = V                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : multiplicity({-1,1},V)                |
|                                           |
|o3 = 2                                     |
+-------------------------------------------+

See also
========

  * weightDiagram -- computes the weights in a Lie
    algebra module and their multiplicities
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:533:0.

new LieAlgebra from Matrix -- Define a Lie algebra from its Cartan matrix
*************************************************************************

Description
===========

new LieAlgebra from M

If M is a valid Cartan matrix, it will reorder if needed the rows/columns of M
to a standard form and then output the corresponding Lie algebra g.

+----------------------------------------------------------------------------+
|i1 : M = matrix {{2, 0, -3, 0}, {0, 2, 0, -1}, {-1, 0, 2, 0}, {0, -1, 0, 2}}|
|                                                                            |
|o1 = | 2  0  -3 0  |                                                        |
|     | 0  2  0  -1 |                                                        |
|     | -1 0  2  0  |                                                        |
|     | 0  -1 0  2  |                                                        |
|                                                                            |
|              4       4                                                     |
|o1 : Matrix ZZ  <-- ZZ                                                      |
+----------------------------------------------------------------------------+
|i2 : h := new LieAlgebra from M                                             |
|                                                                            |
|o2 = 𝔤  ++ 𝔞                                                                |
|      2     2                                                               |
|                                                                            |
|o2 : LieAlgebra                                                             |
+----------------------------------------------------------------------------+
|i3 : cartanMatrix h                                                         |
|                                                                            |
|o3 = | 2  -1 0  0  |                                                        |
|     | -3 2  0  0  |                                                        |
|     | 0  0  2  -1 |                                                        |
|     | 0  0  -1 2  |                                                        |
|                                                                            |
|              4       4                                                     |
|o3 : Matrix ZZ  <-- ZZ                                                      |
+----------------------------------------------------------------------------+

Ways to use this method:
========================

  * new LieAlgebra from Matrix -- Define a
    Lie algebra from its Cartan matrix
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1301:0.

positiveRoots -- the positive (co)roots of a simple Lie algebra
***************************************************************

  * Usage:
        positiveRoots(g), positiveCoroots(g)
  * Inputs:
      * g, an instance of the type LieAlgebra,
  * Outputs:
      * t, a list (Macaulay2Doc),

Description
===========

Let R be an irreducible root system of rank m, and choose a base of simple
roots $\Delta = \{\alpha_1,...,\alpha_m\}$. This function returns all the roots
that are nonnegative linear combinations of the simple roots (expressed in the
basis of fundamental weights). The formulas implemented here are taken from the
tables following Bourbaki's Lie Groups and Lie Algebras Chapter 6.

In the example below, we see that for $sl_3$, the positive roots are
$\alpha_1$, $\alpha_2$, and $\alpha_1+\alpha_2$.

Each positive root may be written $\alpha = \sum n_i \alpha_i$, where the
coefficients $n_i$ are nonnegative integers. The sum $\sum n_i$ is called the
level of $\alpha$. The positive roots are ordered first by the level, then
lexicographically by their coefficients in the basis of simple roots.

+--------------------------------+
|i1 : sl3=simpleLieAlgebra("A",2)|
|                                |
|o1 = sl3                        |
|                                |
|o1 : simple LieAlgebra          |
+--------------------------------+
|i2 : positiveRoots(sl3)         |
|                                |
|o2 = {{2, -1}, {-1, 2}, {1, 1}} |
|                                |
|o2 : List                       |
+--------------------------------+

Ways to use positiveRoots:
==========================

  * "positiveRoots(LieAlgebra)"

For the programmer
==================

The object positiveRoots, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:721:0.

qdim -- Compute principal specialization of character or quantum dimension
**************************************************************************

  * Usage:
        qdim M
        qdim(M,l)
  * Inputs:
      * M, an instance of the type LieAlgebraModule,
      * l, an integer (Macaulay2Doc),
  * Outputs:
      * P, a ring element (Macaulay2Doc),

Description
===========

qdim M computes the principal specialization of the character of M. qdim (M,l)
evaluates it modulo the appropriate cyclotomic polynomial, so that upon
specialization of the variable $q$ to be the corresponding root of unity of
smallest positive argument, it provides the quantum dimension of M.

+-----------------------------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)                                               |
|                                                                             |
|o1 = g                                                                       |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : W=weylAlcove(g,3)                                                       |
|                                                                             |
|o2 = {{0, 0}, {0, 1}, {0, 2}, {0, 3}, {1, 0}, {1, 1}, {1, 2}, {2, 0}, {2, 1},|
|     ------------------------------------------------------------------------|
|     {3, 0}}                                                                 |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+
|i3 : L=LL_(1,1) (g)                                                          |
|                                                                             |
|o3 = L                                                                       |
|                                                                             |
|o3 : irreducible LieAlgebraModule over g                                     |
+-----------------------------------------------------------------------------+
|i4 : M=matrix table(W,W,(v,w)->fusionCoefficient(L,LL_v g,LL_w g,3))         |
|                                                                             |
|o4 = | 0 0 0 0 0 1 0 0 0 0 |                                                 |
|     | 0 1 0 0 0 0 1 1 0 0 |                                                 |
|     | 0 0 1 0 1 0 0 0 1 0 |                                                 |
|     | 0 0 0 0 0 1 0 0 0 0 |                                                 |
|     | 0 0 1 0 1 0 0 0 1 0 |                                                 |
|     | 1 0 0 1 0 2 0 0 0 1 |                                                 |
|     | 0 1 0 0 0 0 1 1 0 0 |                                                 |
|     | 0 1 0 0 0 0 1 1 0 0 |                                                 |
|     | 0 0 1 0 1 0 0 0 1 0 |                                                 |
|     | 0 0 0 0 0 1 0 0 0 0 |                                                 |
|                                                                             |
|              10       10                                                    |
|o4 : Matrix ZZ   <-- ZZ                                                      |
+-----------------------------------------------------------------------------+
|i5 : first eigenvalues M                                                     |
|                                                                             |
|o5 = 2.999999999999999                                                       |
|                                                                             |
|o5 : CC (of precision 53)                                                    |
+-----------------------------------------------------------------------------+
|i6 : qdim L                                                                  |
|                                                                             |
|      4     2         -2    -4                                               |
|o6 = q  + 2q  + 2 + 2q   + q                                                 |
|                                                                             |
|o6 : ZZ[q]                                                                   |
+-----------------------------------------------------------------------------+
|i7 : qdim (L,3)                                                              |
|                                                                             |
|o7 = 3                                                                       |
|                                                                             |
|        ZZ[q]                                                                |
|o7 : -----------                                                             |
|      4    2                                                                 |
|     q  - q  + 1                                                             |
+-----------------------------------------------------------------------------+

Ways to use qdim:
=================

  * "qdim(LieAlgebraModule)"
  * "qdim(LieAlgebraModule,ZZ)"

For the programmer
==================

The object qdim, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1154:0.

representationWeights -- computes the weights of the basis of a Lie algebra module from an explicit representation
******************************************************************************************************************

  * Usage:
        representationWeights(rho)
  * Inputs:
      * rho, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Let $\rho: \mathfrak{g} \rightarrow \mathfrak{gl}(V)$ be a Lie algebra
representation.

This function first checks that for the Cartan subalgebra elements $H_i$ in the
basis of $\mathfrak{g}$, the image $\rho(H_i)$ is a diagonal matrix. If not,
this function returns an error that the basis of $V$ in use is not an
eigenbasis for the Cartan subalgebra. Otherwise, this function returns the list
of weights of these basis elements, which are obtained from the diagonal
entries of the matrices $\rho(H_i)$.

In the example below, we compute the weights of the Gelfand-Tsetlin basis for
the adjoint representation of $sl_3$.

+---------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2);                                        |
+---------------------------------------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({1,1},sl3);                             |
+---------------------------------------------------------------------------+
|i3 : LAB = lieAlgebraBasis("A",2);                                         |
+---------------------------------------------------------------------------+
|i4 : L1 = GTrepresentationMatrices(V);                                     |
+---------------------------------------------------------------------------+
|i5 : rho = lieAlgebraRepresentation(V,LAB,L1);                             |
+---------------------------------------------------------------------------+
|i6 : L2 = representationWeights(rho)                                       |
|                                                                           |
|o6 = {{1, 1}, {-1, 2}, {2, -1}, {0, 0}, {-2, 1}, {0, 0}, {1, -2}, {-1, -1}}|
|                                                                           |
|o6 : List                                                                  |
+---------------------------------------------------------------------------+

We can check that this agrees with the weight of the Gelfand-Tsetlin pattern
labelling each basis element.

+-----------------------------------------------------------------------------+
|i7 : dynkinToPartition("A",{1,1})                                            |
|                                                                             |
|o7 = {2, 1, 0}                                                               |
|                                                                             |
|o7 : List                                                                    |
+-----------------------------------------------------------------------------+
|i8 : L3 = gtPatterns("A",{2,1,0})                                            |
|                                                                             |
|o8 = {{2, 1, 0, 2, 1, 2}, {2, 1, 0, 2, 1, 1}, {2, 1, 0, 2, 0, 2}, {2, 1, 0,  |
|     ------------------------------------------------------------------------|
|     2, 0, 1}, {2, 1, 0, 2, 0, 0}, {2, 1, 0, 1, 1, 1}, {2, 1, 0, 1, 0, 1},   |
|     ------------------------------------------------------------------------|
|     {2, 1, 0, 1, 0, 0}}                                                     |
|                                                                             |
|o8 : List                                                                    |
+-----------------------------------------------------------------------------+

Right now, the entries of L3 are just lists. We turn them into objects of type
GTPattern, and then get their weights.

+---------------------------------------------------------------------------+
|i9 : L3 = apply(L3, x -> (gtPatternFromEntries("A",x))#"weight")           |
|                                                                           |
|o9 = {{1, 1}, {-1, 2}, {2, -1}, {0, 0}, {-2, 1}, {0, 0}, {1, -2}, {-1, -1}}|
|                                                                           |
|o9 : List                                                                  |
+---------------------------------------------------------------------------+
|i10 : L2==L3                                                               |
|                                                                           |
|o10 = true                                                                 |
+---------------------------------------------------------------------------+

Finally, we check that this agrees with the weight diagram of V.

+----------------------------------------------------------+
|i11 : tally(L3)                                           |
|                                                          |
|o11 = Tally{{-1, -1} => 1}                                |
|            {-1, 2} => 1                                  |
|            {-2, 1} => 1                                  |
|            {0, 0} => 2                                   |
|            {1, -2} => 1                                  |
|            {1, 1} => 1                                   |
|            {2, -1} => 1                                  |
|                                                          |
|o11 : Tally                                               |
+----------------------------------------------------------+
|i12 : weightDiagram(V)                                    |
|                                                          |
|o12 = VirtualTally{{-1, -1} => 1}                         |
|                   {-1, 2} => 1                           |
|                   {-2, 1} => 1                           |
|                   {0, 0} => 2                            |
|                   {1, -2} => 1                           |
|                   {1, 1} => 1                            |
|                   {2, -1} => 1                           |
|                                                          |
|o12 : VirtualTally                                        |
+----------------------------------------------------------+
|i13 : weightDiagram(V) === new VirtualTally from tally(L3)|
|                                                          |
|o13 = true                                                |
+----------------------------------------------------------+

Ways to use representationWeights:
==================================

  * "representationWeights(LieAlgebraRepresentation)"

For the programmer
==================

The object representationWeights, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1808:0.

reynoldsOperator -- computes the projection to the sum of the trivial submodules in $V$
***************************************************************************************

  * Usage:
        reynoldsOperator(V)
  * Inputs:
      * V, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

Let $\rho$ be a LieAlgebraRepresentation. Suppose that the trivial module $V_0$
occurs with multiplicity $m_0 \geq 1$ in $V$. This function returns a matrix
for the projection $V \rightarrow V_0^{\oplus m_0}$.

This function is a special case of the function casimirProjection,
where the input eigenvalue is $z=0$.

+-----------------------------------------------------------------------------+
|i1 : V=standardRepresentation("A",2);                                        |
+-----------------------------------------------------------------------------+
|i2 : S2V=symmetricPower(2,V)                                                 |
|                                                                             |
|o2 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            2                |
|                              "Module" => LL   (𝔞 )                          |
|                                            2,0  2                           |
|                              "RepresentationMatrices" => {| 2 0 0 0  0  0 |,|
|                                                           | 0 0 0 0  0  0 | |
|                                                           | 0 0 1 0  0  0 | |
|                                                           | 0 0 0 -2 0  0 | |
|                                                           | 0 0 0 0  -1 0 | |
|                                                           | 0 0 0 0  0  0 | |
|                                                                             |
|o2 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|| 0 0 0  0 0 0  |, | 0 1 0 0 0 0 |, | 0 0 0 0 0 0 |, | 0 0 1 0 0 0 |, | 0 0 0|
|| 0 1 0  0 0 0  |  | 0 0 0 2 0 0 |  | 0 0 1 0 0 0 |  | 0 0 0 0 1 0 |  | 2 0 0|
|| 0 0 -1 0 0 0  |  | 0 0 0 0 1 0 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 2 |  | 0 0 0|
|| 0 0 0  2 0 0  |  | 0 0 0 0 0 0 |  | 0 0 0 0 1 0 |  | 0 0 0 0 0 0 |  | 0 1 0|
|| 0 0 0  0 0 0  |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 2 |  | 0 0 0 0 0 0 |  | 0 0 1|
|| 0 0 0  0 0 -2 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |  | 0 0 0|
|-----------------------------------------------------------------------------|
|                                          }                                  |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 |, | 0 0 0 0 0 0 |, | 0 0 0 0 0 0 |}                                   |
|0 0 0 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |                                    |
|0 0 0 |  | 0 1 0 0 0 0 |  | 2 0 0 0 0 0 |                                    |
|0 0 0 |  | 0 0 0 0 0 0 |  | 0 0 0 0 0 0 |                                    |
|0 0 0 |  | 0 0 0 2 0 0 |  | 0 1 0 0 0 0 |                                    |
|0 0 0 |  | 0 0 0 0 1 0 |  | 0 0 1 0 0 0 |                                    |
+-----------------------------------------------------------------------------+
|i3 : S3S2V=symmetricPower(3,S2V)                                             |
|                                                                             |
|o3 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            2                |
|                              "Module" => LL   (𝔞 ) ++ LL   (𝔞 )             |
|                                            0,0  2       2,2  2              |
|                              "RepresentationMatrices" => {| 6 0             |
|                                                           | 0 4             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                           | 0 0             |
|                                                                             |
|o3 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|++ LL   (𝔞 )                                                                 |
|     6,0  2                                                                  |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|5 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 2 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 3 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 4 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 2 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 3 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 1 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 2 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 4 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 1 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 2 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 3 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  -1 0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 1 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 2 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 1 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 -2 0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  -1 0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 2 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 -1 0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 1 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 -4 0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  -3 0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  -2 0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  -2 0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  -1 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  0 0 0 0 0 0 0  0  0 0 0  0 0 0  0  0  0  0  0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |, | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 1 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 -1 0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  2 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 -2 0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  2 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 3|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|3 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 1 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 2 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 -3 0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  -2 0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  -1 0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  -1 0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 1 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 -6 0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  -5 0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  -4 0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  -4 0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  -3 0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  -2 0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  -3 0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  -2 0  0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  -1 0 |  | 0 0 0  0 0 0  0 0 0|
|0 0 0 0 0  0  0  0  0 0 0  0  0  0  0  0  0  0  0  0 |  | 0 0 0  0 0 0  0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|1 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 -1 0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  -2 0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  1 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 -1 0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  -3 0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  4 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 2 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 -2 0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  -4 0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  3 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 1 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 4 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 2 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 -1 0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  2 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 -2 0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  5 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 3 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 1 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 1 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 -1 0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  -3 0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  -3 0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 -2 0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  -4 0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  3 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|0 0  0  0 0  0  0 0 0 0 0  0  0 0 0 0 0 0  0 0 0  0 0 0 0 0  0  0  0 0  0  0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |, | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|1 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 -1 0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  -1 0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  -3 0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  -5 0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  6 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 4 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 2 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 2 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 -2 0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 -2 0  0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  -4 0  |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0  0  0  0  0 0 0 0 0 0  0 0  0  -6 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
||, | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |, | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 3 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 2 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 |, | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 4 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 4 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|6 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 2 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 3 0|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 |, | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 4 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 4 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|0 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|1 0 |  | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------|
|                                              }                              |
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |}                               |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |                                |
|0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |                                |
+-----------------------------------------------------------------------------+
|i4 : reynoldsOperator(S3S2V)                                                 |
|                                                                             |
|o4 = | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192  -96  0 0 0 0 0 0 -96  0 0 48  0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -192 96   0 0 0 0 0 0 96   0 0 -48 0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -192 96   0 0 0 0 0 0 96   0 0 -48 0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384  -192 0 0 0 0 0 0 -192 0 0 96  0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -192 96   0 0 0 0 0 0 96   0 0 -48 0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    0    0 0 0 0 0 0 0    0 0 0   0|
|     ------------------------------------------------------------------------|
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 -96  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 96   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 96   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 -192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 96   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|     0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |                |
|                                                                             |
|              56       56                                                    |
|o4 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+

Ways to use reynoldsOperator:
=============================

  * "reynoldsOperator(LieAlgebraRepresentation)"

For the programmer
==================

The object reynoldsOperator, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1992:0.

simpleLieAlgebra -- construct a simple Lie algebra
**************************************************

  * Usage:
        simpleLieAlgebra("A",1)
  * Inputs:
      * t, a string (Macaulay2Doc), the type of the root system
        of the desired Lie algebra
      * k, an integer (Macaulay2Doc), the rank of the desired Lie
        algebra
  * Outputs:
      * g, an instance of the type LieAlgebra, the simple
        Lie algebra with the given rank and type

Description
===========

The classification of simple Lie algebras over the complex numbers is well
known. There are four infinite families (types $\mathfrak{a}_n$,
$\mathfrak{b}_n$, $\mathfrak{c}_n$, $\mathfrak{d}_n$) corresponding to the Lie
algebras $\mathfrak{sl}(n+1,\mathbb{C})$, $\mathfrak{so}(2n+1,\mathbb{C})$,
$\mathfrak{sp}(2n,\mathbb{C})$, $\mathfrak{so}(2n,\mathbb{C})$ respectively,
and five exceptional simple Lie algebras, $\mathfrak{e}_6$, $\mathfrak{e}_7$,
$\mathfrak{e}_8$, $\mathfrak{f}_4$, $\mathfrak{g}_2$.

+----------------------------+
|i1 : simpleLieAlgebra("A",1)|
|                            |
|o1 = 𝔞                      |
|      1                     |
|                            |
|o1 : simple LieAlgebra      |
+----------------------------+
|i2 : simpleLieAlgebra("E",6)|
|                            |
|o2 = 𝔢                      |
|      6                     |
|                            |
|o2 : simple LieAlgebra      |
+----------------------------+

Ways to use simpleLieAlgebra:
=============================

  * "simpleLieAlgebra(String,ZZ)"

For the programmer
==================

The object simpleLieAlgebra, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:73:0.

simpleRoots -- the simple roots of a simple Lie algebra
*******************************************************

  * Usage:
        simpleRoots(g), simpleRoots("A",2)
  * Inputs:
      * g, an instance of the type LieAlgebra,
  * Outputs:
      * t, a list (Macaulay2Doc),

Ways to use simpleRoots:
========================

  * "simpleRoots(LieAlgebra)"
  * "simpleRoots(String,ZZ)"

For the programmer
==================

The object simpleRoots, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:686:0.

spinRepresentationMatrices -- matrix generators for the spin representation of $\mathfrak{so}(2n)$
**************************************************************************************************

  * Usage:
        spinRepresentationMatrices(n)
  * Inputs:
      * n, an integer (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing => ..., default value QQ
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

See [FH] Lecture 20.

In the example below, we compute matrix generators for the spin representation
of $so_6$.

+-----------------------------------------------------------------------------+
|i1 : spinRepresentationMatrices(3)                                           |
|                                                                             |
|o1 = {| 0 0 0 0  0 0  0 0 |, | 0 0 0  0 0 0 0  0 |, | -1 0 0 0 0  0 0 0 |, | |
|      | 0 0 0 0  0 0  0 0 |  | 0 1 0  0 0 0 0  0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 1 0  0 0  0 0 |  | 0 0 -1 0 0 0 0  0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 0 -1 0 0  0 0 |  | 0 0 0  0 0 0 0  0 |  | 0  0 0 1 0  0 0 0 |  | |
|      | 0 0 0 0  1 0  0 0 |  | 0 0 0  0 0 0 0  0 |  | 0  0 0 0 -1 0 0 0 |  | |
|      | 0 0 0 0  0 -1 0 0 |  | 0 0 0  0 0 1 0  0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 0 0  0 0  0 0 |  | 0 0 0  0 0 0 -1 0 |  | 0  0 0 0 0  0 0 0 |  | |
|      | 0 0 0 0  0 0  0 0 |  | 0 0 0  0 0 0 0  0 |  | 0  0 0 0 0  0 0 1 |  | |
|     ------------------------------------------------------------------------|
|     0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 1 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 -1 |
|     0 0 0 1 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 1 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 1 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0  |
|     0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 |  | 0 0 0 0  |
|     ------------------------------------------------------------------------|
|     0 0 0 0 |, | 0 0 0 0 0 0  0 0 |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 1 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 1 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 1 0 0 0 0 0 |
|     0 0 1 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 1 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 0  0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |
|     0 0 0 0 |  | 0 0 0 0 0 -1 0 0 |  | 0 0 0 0 0 0 1 0 |  | 0 0 0 0 0 0 0 0 |
|     ------------------------------------------------------------------------|
|     |, | 0 0 0 0 0 0 0 0 |, | 0 0 0 1 0 0 0 0 |, | 0 0  0 0 0 0 0 0 |, | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 1 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 -1 0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 1 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 1 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 1 0 0 0 |  | 0 0|
|     |  | 0 0 0 0 0 0 0 0 |  | 0 0 0 0 0 0 0 0 |  | 0 0  0 0 0 0 0 0 |  | 0 0|
|     ------------------------------------------------------------------------|
|     1 0 0 0 0 0  |, | 0 1 0 0 0 0 0 0 |}                                    |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 -1 |  | 0 0 0 0 0 0 0 0 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 1 |                                     |
|     0 0 0 0 0 0  |  | 0 0 0 0 0 0 0 0 |                                     |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use spinRepresentationMatrices:
=======================================

  * "spinRepresentationMatrices(ZZ)"

For the programmer
==================

The object spinRepresentationMatrices, is a
method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2680:0.

standardModule
**************

Ways to use standardModule:
===========================

  * standardModule(LieAlgebra) (missing documentation)

For the programmer
==================

The object standardModule (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:391.

standardRepresentation -- creates the standard representation of a matrix Lie algebra
*************************************************************************************

  * Usage:
        standardRepresentation(LAB)
  * Inputs:
      * LAB, an instance of the type LieAlgebraBasis,
  * Outputs:
      * V, an instance of the type LieAlgebraRepresentation,

Description
===========

For the matrix Lie algebras $sl_n$, $sp(2n)$, $so(m)$, the basis elements in
the LieAlgebraBasis are matrices. Thus we may use these matrices to define a
representation $\rho: \mathfrak{g} \rightarrow \mathfrak{gl}(V)$.

The user may either input the type and rank, or the simple Lie algebra.

+-----------------------------------------------------------------------------+
|i1 : standardRepresentation("A",2)                                           |
|                                                                             |
|o1 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            2                |
|                              "Module" => LL   (𝔞 )                          |
|                                            1,0  2                           |
|                              "RepresentationMatrices" => {| 1 0  0 |, | 0 0 |
|                                                           | 0 -1 0 |  | 0 1 |
|                                                           | 0 0  0 |  | 0 0 |
|                                                                             |
|o1 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                       }     |
|                                                                             |
|                                                                             |
|                                                                             |
|0  |, | 0 1 0 |, | 0 0 0 |, | 0 0 1 |, | 0 0 0 |, | 0 0 0 |, | 0 0 0 |}      |
|0  |  | 0 0 0 |  | 0 0 1 |  | 0 0 0 |  | 1 0 0 |  | 0 0 0 |  | 0 0 0 |       |
|-1 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 0 0 |  | 0 1 0 |  | 1 0 0 |       |
+-----------------------------------------------------------------------------+
|i2 : sl4=simpleLieAlgebra("A",3)                                             |
|                                                                             |
|o2 = sl4                                                                     |
|                                                                             |
|o2 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i3 : standardRepresentation(sl4)                                             |
|                                                                             |
|o3 = LieAlgebraRepresentation{"Basis" => Enhanced basis of sl4               |
|                              "Module" => LL     (sl4)                       |
|                                            1,0,0                            |
|                              "RepresentationMatrices" => {| 1 0  0 0 |, | 0 |
|                                                           | 0 -1 0 0 |  | 0 |
|                                                           | 0 0  0 0 |  | 0 |
|                                                           | 0 0  0 0 |  | 0 |
|                                                                             |
|o3 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0  0 |, | 0 0 0 0  |, | 0 1 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |, | 0 0 1 0 |, ||
|1 0  0 |  | 0 0 0 0  |  | 0 0 0 0 |  | 0 0 1 0 |  | 0 0 0 0 |  | 0 0 0 0 |  ||
|0 -1 0 |  | 0 0 1 0  |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 1 |  | 0 0 0 0 |  ||
|0 0  0 |  | 0 0 0 -1 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  ||
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|0 0 0 0 |, | 0 0 0 1 |, | 0 0 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |, | 0 0 0 0 |, ||
|0 0 0 1 |  | 0 0 0 0 |  | 1 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  ||
|0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 1 0 0 |  | 0 0 0 0 |  | 1 0 0 0 |  ||
|0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 0 0 |  | 0 0 1 0 |  | 0 0 0 0 |  ||
|-----------------------------------------------------------------------------|
|                       }                                                     |
|                                                                             |
|                                                                             |
|0 0 0 0 |, | 0 0 0 0 |}                                                      |
|0 0 0 0 |  | 0 0 0 0 |                                                       |
|0 0 0 0 |  | 0 0 0 0 |                                                       |
|0 1 0 0 |  | 1 0 0 0 |                                                       |
+-----------------------------------------------------------------------------+

Ways to use standardRepresentation:
===================================

  * "standardRepresentation(LieAlgebra)"
  * "standardRepresentation(String,ZZ)"

For the programmer
==================

The object standardRepresentation, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1704:0.

starInvolution -- computes w* for a weight w
********************************************

  * Usage:
        starInvolution(w,g)
  * Inputs:
      * w, a list (Macaulay2Doc),
      * g, an instance of the type LieAlgebra,

Description
===========

Let $\mathbf{g}$ be a Lie algebra.  We give three equivalent descriptions of an
involution * on the weights of $\mathbf{g}$:

1. The involution * is given by $-w_0$, where $w_0$ is the longest word in the
Weyl group $W(\mathbf{g})$.

2. If $\mu$ is a dominant integral weight, and $V_{\mu}$ is the irreducible Lie
algebra module with highest weight $\mu$, then $\mu^*$ is the highest weight of
the dual module $(V_{\mu})^*$.

3. If the Dynkin diagram of $\mathbf{g}$ has an involution, then * corresponds
to the action of this involution on weights.

The formulas implemented have been adapted from Di Francesco, Mathieu, and
Senechal, Conformal Field Theory, Springer Graduate Texts in Theoretical
Physics, p. 511.  Some changes are needed because we use the Bourbaki ordering
of the roots in type E instead of the [DMS] ordering.

In the example below, we see that for $sl_3$, $\omega_1^* = \omega_2.$

+----------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)          |
|                                        |
|o1 = g                                  |
|                                        |
|o1 : simple LieAlgebra                  |
+----------------------------------------+
|i2 : starInvolution(LL_(1,0)(g))        |
|                                        |
|o2 = LL   (g)                           |
|       0,1                              |
|                                        |
|o2 : irreducible LieAlgebraModule over g|
+----------------------------------------+

Ways to use starInvolution:
===========================

  * "starInvolution(LieAlgebraModule)"

For the programmer
==================

The object starInvolution, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:277:0.

subLieAlgebra -- Define a sub-Lie algebra of an existing one
************************************************************

  * Usage:
        subLieAlgebra(g,S)
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * S, a list (Macaulay2Doc), a matrix (Macaulay2Doc),
        or a string (Macaulay2Doc),
  * Outputs:
      * h, an instance of the type LieAlgebra,

Description
===========

For the purposes of this function, a sub-Lie algebra means an embedding of a
Lie algebra into another up to linear equivalence. According to Dynkin's
theory, this means that it is determined by the restriction of the embedding to
the Cartan subalgebra, and that is the data provided by S. Specifically, S must
be either a subset of vertices of the Dynkin diagram of g (as labelled by
dynkinDiagram):

+-----------------------------------+
|i1 : g=𝔢_8; dynkinDiagram g        |
|                                   |
|o2 =         o 2                   |
|             |                     |
|     o---o---o---o---o---o---o     |
|     1   3   4   5   6   7   8     |
+-----------------------------------+
|i3 : subLieAlgebra(g,{1,2,3,4,5,8})|
|                                   |
|o3 = 𝔡  ++ 𝔞                       |
|      5     1                      |
|                                   |
|o3 : LieAlgebra, subalgebra of g   |
+-----------------------------------+

The vertices are labelled from 1 to the rank of g; because we frequently want
to consider the lowest root, it is labelled 0:

+---------------------------------------+
|i4 : h=𝔣_4; dynkinDiagram h            |
|                                       |
|o5 = o---o=>=o---o                     |
|     1   2   3   4                     |
+---------------------------------------+
|i6 : subLieAlgebra(h,{0,1,2,3})        |
|                                       |
|o6 = 𝔟                                 |
|      4                                |
|                                       |
|o6 : simple LieAlgebra, subalgebra of h|
+---------------------------------------+

Or S must be a matrix whose columns are the simple coroots of the subalgebra
expanded in the basis of simple coroots of g:

+---------------------------------------------------------------------+
|i7 : g=𝔢_6                                                           |
|                                                                     |
|o7 = g                                                               |
|                                                                     |
|o7 : simple LieAlgebra                                               |
+---------------------------------------------------------------------+
|i8 : h=subLieAlgebra(g,{2,4,{0,0,1,0,1,0},{1,0,0,0,0,1}}); describe h|
|                                                                     |
|o9 = 𝔣                                                               |
|      4                                                              |
+---------------------------------------------------------------------+
|i10 : branchingRule(adjointModule g,h)                               |
|                                                                     |
|o10 = LL       (h) ++ LL       (h)                                   |
|        0,0,0,1         1,0,0,0                                      |
|                                                                     |
|o10 : LieAlgebraModule over h                                        |
+---------------------------------------------------------------------+

Or S is the string principal, which is currently the only predefined
subalgebra:

+-----------------------------------------------------------------------------+
|i11 : g=𝔞_2; h=subLieAlgebra(g,"principal"); describe h                      |
|                                                                             |
|o13 = 𝔞                                                                      |
|       1                                                                     |
+-----------------------------------------------------------------------------+
|i14 : V=LL_(2,4) g; qdim V                                                   |
|                                                                             |
|       12     10     8     6     4     2         -2     -4     -6     -8     |
|o15 = q   + 2q   + 4q  + 5q  + 7q  + 7q  + 8 + 7q   + 7q   + 5q   + 4q   +   |
|      -----------------------------------------------------------------------|
|        -10    -12                                                           |
|      2q    + q                                                              |
|                                                                             |
|o15 : ZZ[q]                                                                  |
+-----------------------------------------------------------------------------+
|i16 : W=branchingRule(V,h); describe W                                       |
|                                                                             |
|                        2                      2                             |
|o17 = LL (h) ++ (LL (h))  ++ LL (h) ++ (LL (h))  ++ LL  (h) ++ LL  (h)       |
|        0          4           6          8           10         12          |
+-----------------------------------------------------------------------------+
|i18 : character W                                                            |
|                                                                             |
|       12     10     8     6     4     2         -2     -4     -6     -8     |
|o18 = x   + 2x   + 4x  + 5x  + 7x  + 7x  + 8 + 7x   + 7x   + 5x   + 4x   +   |
|       1      1      1     1     1     1         1      1      1      1      |
|      -----------------------------------------------------------------------|
|        -10    -12                                                           |
|      2x    + x                                                              |
|        1      1                                                             |
|                                                                             |
|o18 : ZZ[x ]                                                                 |
|          1                                                                  |
+-----------------------------------------------------------------------------+

In simply laced types, principal specialisation (character of principal
subalgebra) and q-dimension agree.

Caveat
======

If S is a matrix, does not check if the map of Cartan subalgebras leads to a
valid Lie algebra embedding.

Ways to use subLieAlgebra:
==========================

  * "subLieAlgebra(LieAlgebra,List)"
  * "subLieAlgebra(LieAlgebra,Matrix)"
  * "subLieAlgebra(LieAlgebra,String)"

For the programmer
==================

The object subLieAlgebra, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:332:0.

symmetricPower(ZZ,LieAlgebraModule) -- Computes the nth symmetric / exterior tensor power of a Lie algebra module
*****************************************************************************************************************

  * Function: symmetricPower (Macaulay2Doc),
  * Usage:
        symmetricPower(n,M)
        exteriorPower(n,M)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * M, an instance of the type LieAlgebraModule,
  * Outputs:
      * M', an instance of the type LieAlgebraModule,

Ways to use this method:
========================

  * symmetricPower(ZZ,LieAlgebraModule)
    -- Computes the nth symmetric /
    exterior tensor power of a Lie algebra module
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1090:0.

symmetricPower(ZZ,LieAlgebraRepresentation) -- computes the explicit action on $\operatorname{Sym}^d V$ for a $\mathfrak{g}$-module $V$
***************************************************************************************************************************************

  * Function: symmetricPower (Macaulay2Doc),
  * Usage:
        symmetricPower(d,V)
  * Inputs:
      * d, an integer (Macaulay2Doc),
      * V, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * W, an instance of the type LieAlgebraRepresentation,

Description
===========

Let $\rho$ be a LieAlgebraRepresentation. Then this function computes the
action of $\mathfrak{g}$ on $W = \operatorname{Sym}^d V$.

In the example below, we compute $\operatorname{Sym}^2 V$ for the standard
representation of $sl_2$.

+-----------------------------------------------------------------------------+
|i1 : V = standardRepresentation("A",1);                                      |
+-----------------------------------------------------------------------------+
|i2 : W = symmetricPower(2,V)                                                 |
|                                                                             |
|o2 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            1                |
|                              "Module" => LL (𝔞 )                            |
|                                            2  1                             |
|                              "RepresentationMatrices" => {| 2 0 0  |, | 0 1 |
|                                                           | 0 0 0  |  | 0 0 |
|                                                           | 0 0 -2 |  | 0 0 |
|                                                                             |
|o2 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|               }                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|0 |, | 0 0 0 |}                                                              |
|2 |  | 2 0 0 |                                                               |
|0 |  | 0 1 0 |                                                               |
+-----------------------------------------------------------------------------+

See also
========

  * symmetricPower(ZZ,LieAlgebraModule)
    -- Computes the nth symmetric /
    exterior tensor power of a Lie algebra module

Ways to use this method:
========================

  * symmetricPower(ZZ,LieAlgebraRepresentation)
    -- computes the explicit
    action on $\operatorname{Sym}^d V$ for a $\mathfrak{g}$-module $V$
-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2514:0.

tensorCoefficient -- computes the multiplicity of W in U tensor V
*****************************************************************

  * Usage:
        tensorCoefficient(U,V,W)
  * Inputs:
      * U, an instance of the type LieAlgebraModule,
      * V, an instance of the type LieAlgebraModule,
      * W, an instance of the type LieAlgebraModule,
  * Outputs:
      * k, an integer (Macaulay2Doc),

Description
===========

This function implements the Racah-Speiser algorithm; see Di Francesco,
Mathieu, and Senechal, Conformal Field Theory, Springer Graduate Texts in
Theoretical Physics, Section 13.5.2.

Given three irreducible Lie algebra modules $U$, $V$, and $W$, the function
returns the multiplicity of $W$ in $U \otimes V$.  In Type A, these are related
to the Littlewood-Richardson coefficients (though in this package, irreducible
representations are indexed by the Dynkin labels of their highest weights,
rather than by partitions).

The example below shows that for $g=sl_3$ and $\lambda=2 \omega_1 + \omega_2$,
$\mu= \omega_1 + 2 \omega_2$, and $\nu= 2 \omega_1 + 2 \omega_2$, the tensor
product of $sl_3$ modules $V_{\lambda} \otimes V_{\mu}$ contains two copies of
$V_{\nu}$.

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : U=irreducibleLieAlgebraModule({2,1},g)|
|                                           |
|o2 = U                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({1,2},g)|
|                                           |
|o3 = V                                     |
|                                           |
|o3 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i4 : W=irreducibleLieAlgebraModule({2,2},g)|
|                                           |
|o4 = W                                     |
|                                           |
|o4 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i5 : tensorCoefficient(U,V,W)              |
|                                           |
|o5 = 2                                     |
+-------------------------------------------+

See also
========

  * LieAlgebraModule ** LieAlgebraModule
    -- tensor product of LieAlgebraModules

Ways to use tensorCoefficient:
==============================

  * "tensorCoefficient(LieAlgebraModule,LieAlgebraModule,LieAlgebraModule)"

For the programmer
==================

The object tensorCoefficient, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:893:0.

trivialModule -- The trivial module of a Lie algebra
****************************************************

Description
===========

Returns the one-dimensional module with zero highest weight.

Ways to use trivialModule:
==========================

  * "trivialModule(LieAlgebra)"

For the programmer
==================

The object trivialModule, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:417:0.

trivialRepresentation -- creates the trivial representation of a Lie algebra
****************************************************************************

  * Usage:
        trivialRepresentation(LAB)
  * Inputs:
      * LAB, an instance of the type LieAlgebraBasis,
  * Outputs:
      * V, an instance of the type LieAlgebraRepresentation,

Description
===========

The user may either input the Lie algebra basis, or the type and rank, or the
simple Lie algebra.

+-----------------------------------------------------------------------------+
|i1 : rho0 = trivialRepresentation("A",2)                                     |
|                                                                             |
|o1 = LieAlgebraRepresentation{"Basis" => Enhanced basis of 𝔞                 |
|                                                            2                |
|                              "Module" => LL   (𝔞 )                          |
|                                            0,0  2                           |
|                              "RepresentationMatrices" => {0, 0, 0, 0, 0, 0, |
|                                                                             |
|o1 : LieAlgebraRepresentation                                                |
|-----------------------------------------------------------------------------|
|     }                                                                       |
|                                                                             |
|                                                                             |
|                                                                             |
|0, 0}                                                                        |
+-----------------------------------------------------------------------------+
|i2 : V0 = rho0#"Module"                                                      |
|                                                                             |
|o2 = V0                                                                      |
|                                                                             |
|o2 : irreducible LieAlgebraModule over 𝔞                                     |
|                                        2                                    |
+-----------------------------------------------------------------------------+
|i3 : dim V0                                                                  |
|                                                                             |
|o3 = 1                                                                       |
+-----------------------------------------------------------------------------+
|i4 : V0#"DecompositionIntoIrreducibles"                                      |
|                                                                             |
|o4 = VirtualTally{{0, 0} => 1}                                               |
|                                                                             |
|o4 : VirtualTally                                                            |
+-----------------------------------------------------------------------------+

Ways to use trivialRepresentation:
==================================

  * "trivialRepresentation(LieAlgebra)"
  * "trivialRepresentation(LieAlgebraBasis)"
  * "trivialRepresentation(String,ZZ)"

For the programmer
==================

The object trivialRepresentation, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1665:0.

UInVtensorW -- computes a basis of a submodule of $V \otimes W$ isomorphic to $U$ with a given highest weight vector
********************************************************************************************************************

  * Usage:
        UInVtensorW(U,V,W,hwv)
  * Inputs:
      * U, an instance of the type LieAlgebraRepresentation,
      * V, an instance of the type LieAlgebraRepresentation,
      * W, an instance of the type LieAlgebraRepresentation,
      * hwv, a matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * SaveAsFunction
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Suppose that an irreducible module $U$ appears in the decomposition of $V
\otimes W$ with multiplicity at least one. Then we can find a highest weight
vector using weightNuHighestWeightVectorsInVtensorW,
and then compute a basis of a
submodule in $V \otimes W$ isomorphic to $U$. The basis elements are expressed
as polynomials in two sets of variables corresponding to bases of $V$ and $W$,
respectively.

Let $V$ be the adjoint representation of $sl_3$, and let $W$ be the standard
representation. Then $V \otimes W$ contains a submodule with highest weight
$(0,2)$. We compute an explicit basis for this submodule.

+-----------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2)                                           |
|                                                                             |
|o1 = sl3                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : V = adjointRepresentation(sl3);                                         |
+-----------------------------------------------------------------------------+
|i3 : W = standardRepresentation(sl3);                                        |
+-----------------------------------------------------------------------------+
|i4 : T = V**W;                                                               |
+-----------------------------------------------------------------------------+
|i5 : hwv = weightMuHighestWeightVectorsInW({0,2},T)                          |
|                                                                             |
|o5 = | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | -1 |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 1  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|     | 0  |                                                                  |
|                                                                             |
|              24       1                                                     |
|o5 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+
|i6 : Umod = irreducibleLieAlgebraModule({0,2},sl3);                          |
+-----------------------------------------------------------------------------+
|i7 : LAB = lieAlgebraBasis(sl3);                                             |
+-----------------------------------------------------------------------------+
|i8 : U = lieAlgebraRepresentation(Umod,LAB,GTrepresentationMatrices(Umod));  |
+-----------------------------------------------------------------------------+
|i9 : L = UInVtensorW(U,V,W,hwv)                                              |
|Length 1 complete. 2 new words found                                         |
|Length 2 complete. 3 new words found                                         |
|                                                                             |
|o9 = {- A B  + A B , A B  - A B  + A B , A B  + A B  + A B  - A B , - 2A B  +|
|         3 0    4 1   1 0    2 1    4 2   0 1    1 1    3 2    5 0      2 2  |
|     ------------------------------------------------------------------------|
|     2A B , 2A B  + 2A B  - 2A B , 4A B  - 4A B }                            |
|       6 0    0 2     6 1     7 0    5 2     7 1                             |
|                                                                             |
|o9 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use UInVtensorW:
========================

  * "UInVtensorW(LieAlgebraRepresentation,LieAlgebraRepresentation,
    LieAlgebraRepresentation,Matrix)"
  * UInVtensorW(LieAlgebraRepresentation,LieAlgebraRepresentation,
    LieAlgebraRepresentation,RingElement) (missing documentation)

For the programmer
==================

The object UInVtensorW, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:3004:0.

universalEnvelopingAlgebra -- computes the universal enveloping algebra of a Lie algebra
****************************************************************************************

  * Usage:
        universalEnvelopingAlgebra(g)
  * Inputs:
      * LAB, an instance of the type LieAlgebraBasis,
  * Outputs:
      * S, a sequence (Macaulay2Doc),

Description
===========

Let $\mathfrak{g}$ be a Lie algebra. Let $T(\mathfrak{g})$ be the tensor
algebra on $\mathfrak{g}$. The universal enveloping algebra $U(\mathfrak{g})$
is the quotient of $T(\mathfrak{g})$ by the two-sided ideal generated by all
relations of the form $X_1 X_2 - X_2 X_1 - [X_1,X_2]$.

We construct $T(\mathfrak{g})$ and $U(\mathfrak{g})$ using the
AssociativeAlgebras, package. The generators of
$T(\mathfrak{g})$ are the elements of a Lie algebra basis of $\mathfrak{g}$.
Let $h_1,\ldots,H_n$ be the Cartan subalgebra basis elements, $x_1,\ldots,x_l$
the positive root vectors, and $y_1,\ldots,y_n$ the negative root vectors. Then
the term order on $T(\mathfrak{g})$ we use is degree lex with the variables
ordered $x_l,\ldots,x_1,h_n,\ldots,h_1,y_l,\ldots,y_1$, so that the basis used
for the quotient $U(\mathfrak{g})$ consists of monomials of the form
$y_1^{a_1}\cdots y_l^{a_l} h_1^{b_1}\cdots h_n^{b_n} x_1^{c_1} \cdots
x_n^{c_n}$.

The function universalEnvelopingAlgebra returns a sequence consisting of the
universal enveloping algebra, the permutation $\sigma$ matching elements of the
Lie algebra basis to the generators of the tensor algebra $T(\mathfrak{g})$,
and the inverse permutation $\sigma^{-1}$.

In the following example, we express the monomial $x_1 y_2 y_3$ in $U(sl_3)$.
We have $x_1 = E_{(1,2)}$, $y_2 = E_{(3,2)}$ and $y_3 = E_{(3,1)}$. Thus
$x_1y_2 = y_2x_1$ and $x_1 y_3 = y_3 x_1 - y_2$, so that $x_1 y_2 y_3 = y_2 y_3
x_1-y_2^2$.

+-----------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2)                                           |
|                                                                             |
|o1 = sl3                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : S = universalEnvelopingAlgebra(sl3)                                     |
|Warning:  F4 Algorithm not available over current coefficient ring or inhomog|
|Converting to Naive algorithm.                                               |
|                                                                             |
|                                                                             |
|                                                                             |
|o2 = (-----------------------------------------------------------------------|
|      (0, - h h  + h h , - x h  + h x  - 2x , - x h  + h x  + x , - x h  + h |
|             2 1    1 2     1 1    1 1     1     2 1    1 2    2     3 1    1|
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|     x  - x , h y  - y h  + 2y , h y  - y h  - y , h y  - y h  + y , h h  - h|
|      3    3   1 1    1 1     1   1 2    2 1    2   1 3    3 1    3   2 1    |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|      h , 0, - x h  + h x  + x , - x h  + h x  - 2x , - x h  + h x  - x , h y|
|     1 2        1 2    2 1    1     2 2    2 2     2     3 2    2 3    3   2 |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|       - y h  - y , h y  - y h  + 2y , h y  - y h  + y , x h  - h x  + 2x , x|
|     1    1 2    1   2 2    2 2     2   2 3    3 2    3   1 1    1 1     1   |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|      h  - h x  - x , 0, - x x  + x x  - x , - x x  + x x , x y  - y x  - h ,|
|     1 2    2 1    1        2 1    1 2    3     3 1    1 3   1 1    1 1    1 |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|     ------------------------------------------------------------------------|
|      x y  - y x , x y  - y x  + y , x h  - h x  - x , x h  - h x  + 2x , x x|
|       1 2    2 1   1 3    3 1    2   2 1    1 2    2   2 2    2 2     2   2 |
|     ------------------------------------------------------------------------|
|                                                                          QQ |
|                                                                             |
|     ------------------------------------------------------------------------|
|       - x x  + x , 0, - x x  + x x , x y  - y x , x y  - y x  - h , x y  - y|
|     1    1 2    3        3 2    2 3   2 1    1 2   2 2    2 2    2   2 3    |
|     ------------------------------------------------------------------------|
|     <|x , x , x , h , h , y , y , y |>                                      |
|        3   2   1   2   1   3   2   1                                        |
|     ------------------------------------------------------------------------|
|      x  - y , x h  - h x  + x , x h  - h x  + x , x x  - x x , x x  - x x , |
|     3 2    1   3 1    1 3    3   3 2    2 3    3   3 1    1 3   3 2    2 3  |
|     ------------------------------------------------------------------------|
|     ------------------------------------------------------------------------|
|     0, x y  - y x  + x , x y  - y x  - x , x y  - y x  - h  - h , - h y  + y|
|         3 1    1 3    2   3 2    2 3    1   3 3    3 3    2    1     1 1    |
|     ------------------------------------------------------------------------|
|     ------------------------------------------------------------------------|
|      h  - 2y , - h y  + y h  + y , - x y  + y x  + h , - x y  + y x , - x y |
|     1 1     1     2 1    1 2    1     1 1    1 1    1     2 1    1 2     3 1|
|     ------------------------------------------------------------------------|
|     ------------------------------------------------------------------------|
|      + y x  - x , 0, - y y  + y y  + y , - y y  + y y , - h y  + y h  + y , |
|         1 3    2        2 1    1 2    3     3 1    1 3     1 2    2 1    2  |
|     ------------------------------------------------------------------------|
|     ------------------------------------------------------------------------|
|     - h y  + y h  - 2y , - x y  + y x , - x y  + y x  + h , - x y  + y x  + |
|        2 2    2 2     2     1 2    2 1     2 2    2 2    2     3 2    2 3   |
|     ------------------------------------------------------------------------|
|     ------------------------------------------------------------------------|
|     x , y y  - y y  - y , 0, - y y  + y y , - h y  + y h  - y , - h y  + y h|
|      1   2 1    1 2    3        3 2    2 3     1 3    3 1    3     2 3    3 |
|     ------------------------------------------------------------------------|
|     ------------------------------------------------------------------------|
|       - y , - x y  + y x  - y , - x y  + y x  + y , - x y  + y x  + h  + h ,|
|     2    3     1 3    3 1    2     2 3    3 2    1     3 3    3 3    2    1 |
|     ------------------------------------------------------------------------|
|     -----------------------------, {4, 3, 2, 1, 0, 7, 6, 5}, {4, 3, 2, 1, 0,|
|      y y  - y y , y y  - y y , 0)                                           |
|       3 1    1 3   3 2    2 3                                               |
|     ------------------------------------------------------------------------|
|     7, 6, 5})                                                               |
|                                                                             |
|o2 : Sequence                                                                |
|-----------------------------------------------------------------------------|
|eneous ideal.                                                                |
+-----------------------------------------------------------------------------+
|i3 : U = first S                                                             |
|                                                                             |
|o3 = U                                                                       |
|                                                                             |
|o3 : FreeAlgebraQuotient                                                     |
+-----------------------------------------------------------------------------+
|i4 : x_1*y_2*y_3                                                             |
|                                                                             |
|               2                                                             |
|o4 = y y x  - y                                                              |
|      2 3 1    2                                                             |
|                                                                             |
|o4 : U                                                                       |
+-----------------------------------------------------------------------------+

Ways to use universalEnvelopingAlgebra:
=======================================

  * "universalEnvelopingAlgebra(LieAlgebra)"
  * "universalEnvelopingAlgebra(LieAlgebraBasis)"

For the programmer
==================

The object universalEnvelopingAlgebra, is a
method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1481:0.

uNminus -- computes the universal enveloping algebra of the Lie algebra $N^{-}$
*******************************************************************************

  * Usage:
        uNminus(g)
  * Inputs:
      * LAB, an instance of the type LieAlgebraBasis,
  * Outputs:
      * UNMinus, a quotient of a free algebra (AssociativeAlgebras),

Description
===========

Let $\mathfrak{g}$ be a Lie algebra, let $\Phi^{+}$ be a set of positive roots,
and let $N^{-}$ be the subalgebra spanned by the negative root vectors
$\mathfrak{g}_{-\alpha}$. Let $T(N^{-})$ be the tensor algebra on $N^{-}$. The
universal enveloping algebra $U(N^{-1})$ is the quotient of $T(N^{-})$ by the
two-sided ideal generated by all relations of the form $Y_1 Y_2 - Y_2 Y_1 -
[Y_1,Y_2]$.

We construct $T(N^{-})$ and $U(N^{-})$ using the AssociativeAlgebras,
package. The generators of $T(N^{-})$ are the
negative root vectors in a Lie algebra basis of $\mathfrak{g}$. Let
$Y_1,\ldots,Y_n$ the negative root vectors. Then the term order on $T(N^{-})$
we use is degree lex with the variables ordered $Y_l,\ldots,Y_1$, so that the
basis used for the quotient $U(N^{-})$ consists of monomials of the form
$Y_1^{a_1}\cdots Y_l^{a_l}$.

In the following example, we express the monomial $Y_3 Y_2 Y_1$ in $U(N^{-})$
for $\mathfrak{g} = sl_3$. We have $Y_1 = E_{(2,1)}$, $Y_2 = E_{(3,2)}$ and
$Y_3 = E_{(3,1)}$. Thus $Y_2 Y_1 = Y_1 Y_2+Y_3$ and $Y_3 Y_1 = Y_1 Y_3$, so
that $Y_3 Y_2 Y_1 = Y_1 Y_2 Y_3+Y_3^2$.

+-----------------------------------------------------------------------------+
|i1 : sl3 = simpleLieAlgebra("A",2)                                           |
|                                                                             |
|o1 = sl3                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : S = uNminus(sl3)                                                        |
|Warning:  F4 Algorithm not available over current coefficient ring or        |
|Converting to Naive algorithm.                                               |
|                                                                             |
|o2 = S                                                                       |
|                                                                             |
|o2 : FreeAlgebraQuotient                                                     |
|-----------------------------------------------------------------------------|
|inhomogeneous ideal.                                                         |
+-----------------------------------------------------------------------------+
|i3 : U = first S                                                             |
|                                                                             |
|o3 = 0                                                                       |
|                                                                             |
|o3 : S                                                                       |
+-----------------------------------------------------------------------------+
|i4 : Y_3 Y_2 Y_1                                                             |
|                                                                             |
|o4 = Y                                                                       |
|      2                                                                      |
|                                                                             |
|o4 : S                                                                       |
+-----------------------------------------------------------------------------+

See also
========

  * universalEnvelopingAlgebra -- computes
    the universal enveloping algebra of a Lie algebra

Ways to use uNminus:
====================

  * "uNminus(LieAlgebra)"
  * "uNminus(LieAlgebraBasis)"

For the programmer
==================

The object uNminus, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:1523:0.

VInSymdW -- computes a basis of a submodule of $\operatorname{Sym}^d W$ isomorphic to $V$ with a given highest weight vector
****************************************************************************************************************************

  * Usage:
        VInSymdW(V,d,W,hwv)
  * Inputs:
      * V, an instance of the type LieAlgebraRepresentation,
      * d, an integer (Macaulay2Doc),
      * W, an instance of the type LieAlgebraRepresentation,
      * hwv, a matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * SaveAsFunction
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Suppose that an irreducible module $V$ appears in the decomposition of
$\operatorname{Sym}^d W$ with multiplicity at least one. Then we can find a
highest weight vector using weightMuHighestWeightVectorsInSymdW,
and then compute a basis of a submodule
in $\operatorname{Sym}^d W$ isomorphic to $V$. The basis elements are expressed
as polynomials in the basis of $W$ used to define the matrix generators of the
representation on $W$.

We compute the degree four invariant for plane cubics by finding a trivial
submodule in $\operatorname{Sym}^4 \operatorname{Sym}^3 \mathbb{C}^3$.

+-----------------------------------------------------------------------------+
|i1 : sl3=simpleLieAlgebra("A",2)                                             |
|                                                                             |
|o1 = sl3                                                                     |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : V=standardRepresentation(sl3);                                          |
+-----------------------------------------------------------------------------+
|i3 : S3V = symmetricPower(3,V);                                              |
+-----------------------------------------------------------------------------+
|i4 : hwv = weightMuHighestWeightVectorsInSymdW({0,0},4,S3V);                 |
|Constructing the Casimir operator...                                         |
|Other EVs: {120, 76, 60, 48, 36, 30, 24, 16}                                 |
|Beginning projections...                                                     |
|    j=0:                                                                     |
|        EV 120 complete                                                      |
|        EV 76 complete                                                       |
|        EV 60 complete                                                       |
|        EV 48 complete                                                       |
|        EV 36 complete                                                       |
|        EV 30 complete                                                       |
|        EV 24 complete                                                       |
|        EV 16 complete                                                       |
|    #hwvs=0                                                                  |
+-----------------------------------------------------------------------------+
|i5 : V0=trivialRepresentation(sl3);                                          |
+-----------------------------------------------------------------------------+
|i6 : L = VInSymdW(V0,4,S3V,hwv_0)                                            |
|Length 1 complete. 0 new words found                                         |
|0                                                                            |
|                                                                             |
|                      2                                         2    2       |
|o6 = {B B B B  - B B B  - B B B B  + B B B B  + B B B B  - B B B  - B B B  + |
|       0 3 7 9    0 3 8    0 4 6 9    0 4 7 8    0 5 6 8    0 5 7    1 7 9   |
|     ------------------------------------------------------------------------|
|      2 2                                                   2                |
|     B B  + B B B B  - B B B B  + B B B B  - B B B B  - 2B B B  + 3B B B B  -|
|      1 8    1 2 6 9    1 2 7 8    1 3 4 9    1 3 5 8     1 4 8     1 4 5 7  |
|     ------------------------------------------------------------------------|
|        2      2        2 2      2                                2          |
|     B B B  - B B B  + B B  - B B B  + 3B B B B  - B B B B  - 2B B B  +      |
|      1 5 6    2 6 8    2 7    2 3 9     2 3 4 8    2 3 5 7     2 4 7        |
|     ------------------------------------------------------------------------|
|                 2 2       2      4                                          |
|     B B B B  + B B  - 2B B B  + B }                                         |
|      2 4 5 6    3 5     3 4 5    4                                          |
|                                                                             |
|o6 : List                                                                    |
+-----------------------------------------------------------------------------+

This polynomial appears as early as 1856 in work of Cayley, who attributes it
to Salmon. See Cayley, "A third memoir upon quantics", tables 62 and 63.

Ways to use VInSymdW:
=====================

  * "VInSymdW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,Matrix)"
  * VInSymdW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,RingElement)
    (missing documentation)

For the programmer
==================

The object VInSymdW, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2856:0.

VInWedgekW -- computes a basis of a submodule of $\bigwedge^k W$ isomorphic to $V$ with a given highest weight vector
*********************************************************************************************************************

  * Usage:
        VInWedgekW(V,k,W,hwv)
  * Inputs:
      * V, an instance of the type LieAlgebraRepresentation,
      * k, an integer (Macaulay2Doc),
      * W, an instance of the type LieAlgebraRepresentation,
      * hwv, a matrix (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * SaveAsFunction
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Suppose that an irreducible module $V$ appears in the decomposition of
$\bigwedge^k W$ with multiplicity at least one. Then we can find a highest
weight vector using weightMuHighestWeightVectorsInW,
and then compute a basis of a submodule in
$\bigwedge^k W$ isomorphic to $V$. The basis elements are expressed as linear
polynomials in the Plücker coordinates.

In the example below, let $U$ be the standard representation for $sl_4$, and
let $W = \bigwedge^2 U$. Then $\bigwedge^3 W$ contains an irreducible submodule
with highest weight $(2,0,0)$. We compute a basis for this submodule
explicitly.

+-----------------------------------------------------------------------------+
|i1 : sl4=simpleLieAlgebra("A",3);                                            |
+-----------------------------------------------------------------------------+
|i2 : U= standardRepresentation(sl4);                                         |
+-----------------------------------------------------------------------------+
|i3 : W2U = exteriorPower(2,U);                                               |
+-----------------------------------------------------------------------------+
|i4 : W3W2U = exteriorPower(3,W2U);                                           |
+-----------------------------------------------------------------------------+
|i5 : hwv = weightMuHighestWeightVectorsInW({2,0,0},W3W2U)                    |
|                                                                             |
|o5 = | 0 |                                                                   |
|     | 1 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|     | 0 |                                                                   |
|                                                                             |
|              20       1                                                     |
|o5 : Matrix QQ   <-- QQ                                                      |
+-----------------------------------------------------------------------------+
|i6 : V=irreducibleLieAlgebraModule({2,0,0},sl4);                             |
+-----------------------------------------------------------------------------+
|i7 : LAB = lieAlgebraBasis(sl4);                                             |
+-----------------------------------------------------------------------------+
|i8 : V = lieAlgebraRepresentation(V,LAB,GTrepresentationMatrices(V));        |
+-----------------------------------------------------------------------------+
|i9 : L = VInWedgekW(V,3,W2U,hwv)                                             |
|Length 1 complete. 3 new words found                                         |
|Length 2 complete. 6 new words found                                         |
|                                                                             |
|o9 = {p         , p          + p         , 2p         , 3p          + 3p     |
|       {0, 1, 3}   {0, 2, 3}    {0, 1, 4}    {0, 2, 4}    {1, 2, 3}     {0,  |
|     ------------------------------------------------------------------------|
|          , 3p          + 3p         , 12p         , - 12p          + 12p    |
|     1, 5}    {1, 2, 4}     {0, 2, 5}     {1, 2, 5}       {1, 3, 4}      {0, |
|     ------------------------------------------------------------------------|
|          , - 12p          + 12p         , - 24p          + 24p         ,    |
|     3, 5}       {2, 3, 4}      {0, 4, 5}       {2, 3, 5}      {1, 4, 5}     |
|     ------------------------------------------------------------------------|
|     144p         }                                                          |
|         {3, 4, 5}                                                           |
|                                                                             |
|o9 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use VInWedgekW:
=======================

  * "VInWedgekW(LieAlgebraRepresentation,ZZ,LieAlgebraRepresentation,Matrix)"

For the programmer
==================

The object VInWedgekW, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2903:0.

weightDiagram -- computes the weights in a Lie algebra module and their multiplicities
**************************************************************************************

  * Usage:
        weightDiagram(V)
  * Inputs:
      * V, an instance of the type LieAlgebraModule,
  * Optional inputs (Macaulay2Doc),:
      * Strategy => ..., default value null
  * Outputs:
      * T, a virtual tally (Macaulay2Doc),

Description
===========

Let $V$ be the irreducible $\mathbf{g}$-module with highest weight $v$.  This
function returns a tally whose keys are the weights appearing in $V$ and whose
values are the multiplicities of these weights. An optional argument "Strategy"
allows to specify which algorithm to use, see character.

+-------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)             |
|                                           |
|o1 = g                                     |
|                                           |
|o1 : simple LieAlgebra                     |
+-------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({2,1},g)|
|                                           |
|o2 = V                                     |
|                                           |
|o2 : irreducible LieAlgebraModule over g   |
+-------------------------------------------+
|i3 : weightDiagram(V)                      |
|                                           |
|o3 = VirtualTally{{-1, -2} => 1}           |
|                  {-1, 1} => 2             |
|                  {-2, 0} => 1             |
|                  {-2, 3} => 1             |
|                  {-3, 2} => 1             |
|                  {0, -1} => 2             |
|                  {0, 2} => 1              |
|                  {1, -3} => 1             |
|                  {1, 0} => 2              |
|                  {2, -2} => 1             |
|                  {2, 1} => 1              |
|                  {3, -1} => 1             |
|                                           |
|o3 : VirtualTally                          |
+-------------------------------------------+

See also
========

  * multiplicity(List,LieAlgebraModule)
    -- compute the multiplicity of a
    weight in a Lie algebra module
  * character -- Computes the character of a Lie algebra
    module

Ways to use weightDiagram:
==========================

  * "weightDiagram(LieAlgebra,List)"
  * "weightDiagram(LieAlgebra,Vector)"
  * "weightDiagram(LieAlgebraModule)"

For the programmer
==================

The object weightDiagram, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:791:0.

weightMuHighestWeightVectorsInSymdW -- computes the highest weight vectors of weight mu in $\operatorname{Sym}^d W$
*******************************************************************************************************************

  * Usage:
        weightMuHighestWeightVectorsInSymdW(mu,d,rhoW)
  * Inputs:
      * mu, a list (Macaulay2Doc),
      * rhoW, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

A highest weight vector is one that is killed by all the raising operators. The
more general function weightMuHighestWeightVectorsInW,
can compute highest weight vectors for any
representation by computing the intersection of the kernels of the raising
operators restricted to the weight $\mu$ subspace. However, for large
representations, this strategy will be slow. In the special case that W is of
the form $\operatorname{Sym}^d W$, we want a strategy that allows us to work in
the weight mu space of $\operatorname{Sym}^d W$ without fully computing
$\operatorname{Sym}^d W$.

Here is our alternative approach.  A highest weight vector $v_{\mu}$ of weight
$\mu$ will generate an irreducible submodule $V(\mu) \subset
\operatorname{Sym}^d W$. Therefore, the Casimir operator will act on $V(\mu)$
by a known scalar $c(\mu)$; see casimirScalar.  Moreover,
the spectrum of the Casimir operator is known. Thus, we can find the weight
$\mu$ vectors with eigenvalue $c(\mu)$ by starting with a monomial basis of
$\operatorname{Sym}^d W$ and iteratively projecting away the components that
correspond to the other Casimir scalars.

Let $W$ be the irreducible representation of $sl_4$ with highest weight
$\omega_1 + \omega_2$, and let $V(2,0,1)$ be the irreducible representation
with highest weight $2\omega_1 + \omega_3$.  The  multiplicity of $V(2,0,1)$ in
$\operatorname{Sym}^3 W$ is 2. In the example below, we compute two highest
weight vectors of weight $(2,0,1)$ in $\operatorname{Sym}^3 W$. We work with
the Gelfand-Tsetlin basis in these calculations.

+-----------------------------------------------------------------------------+
|i1 : sl4 = simpleLieAlgebra("A",3);                                          |
+-----------------------------------------------------------------------------+
|i2 : LAB=lieAlgebraBasis(sl4);                                               |
+-----------------------------------------------------------------------------+
|i3 : W=irreducibleLieAlgebraModule({1,1,0},sl4);                             |
+-----------------------------------------------------------------------------+
|i4 : L = GTrepresentationMatrices(W);                                        |
+-----------------------------------------------------------------------------+
|i5 : rhoW = lieAlgebraRepresentation(W,LAB,L);                               |
+-----------------------------------------------------------------------------+
|i6 : weightMuHighestWeightVectorsInSymdW({2,0,1},3,rhoW)                     |
|Constructing the Casimir operator...                                         |
|Other EVs: {183/4, 127/4, 111/4, 95/4, 87/4, 71/4, 63/4, 39/4, 15/4}         |
|Beginning projections...                                                     |
|    j=0:                                                                     |
|        EV 183/4 complete                                                    |
|        EV 127/4 complete                                                    |
|        EV 111/4 complete                                                    |
|        EV 95/4 complete                                                     |
|        EV 87/4 complete                                                     |
|        EV 71/4 complete                                                     |
|        EV 63/4 complete                                                     |
|        EV 39/4 complete                                                     |
|        EV 15/4 complete                                                     |
|    #hwvs=0                                                                  |
|    j=1:                                                                     |
|        EV 183/4 complete                                                    |
|        EV 127/4 complete                                                    |
|        EV 111/4 complete                                                    |
|        EV 95/4 complete                                                     |
|        EV 87/4 complete                                                     |
|        EV 71/4 complete                                                     |
|        EV 63/4 complete                                                     |
|        EV 39/4 complete                                                     |
|        EV 15/4 complete                                                     |
|    #hwvs=1                                                                  |
|    j=2:                                                                     |
|        EV 183/4 complete                                                    |
|        EV 127/4 complete                                                    |
|        EV 111/4 complete                                                    |
|        EV 95/4 complete                                                     |
|        EV 87/4 complete                                                     |
|    j=3:                                                                     |
|        EV 183/4 complete                                                    |
|        EV 127/4 complete                                                    |
|        EV 111/4 complete                                                    |
|        EV 95/4 complete                                                     |
|        EV 87/4 complete                                                     |
|        EV 71/4 complete                                                     |
|        EV 63/4 complete                                                     |
|        EV 39/4 complete                                                     |
|        EV 15/4 complete                                                     |
|    #hwvs=1                                                                  |
|                                                                             |
|           2                                                                 |
|o6 = {- 34B B   + 136B B B   - 82B B B   + 27B B B   + 18B B B   + 9B B B   +|
|           0 13       0 2 12      0 3 11      0 3 15      0 5 11     0 5 15  |
|     ------------------------------------------------------------------------|
|                                                                             |
|     28B B B  - 18B B B   - 136B B B  + 28B B B   - 54B B B   + 80B B B  -   |
|        0 6 9      0 6 14       0 7 8      1 2 11      1 2 15      1 6 8     |
|     ------------------------------------------------------------------------|
|         2                                                         2         |
|     204B B   + 204B B B  + 204B B B  - 96B B B  + 18B B B   - 204B B  +     |
|         2 10       2 3 9       2 4 8      2 5 9      2 5 14       3 8       |
|     ------------------------------------------------------------------------|
|                   2      2520          1260          840          420       |
|     96B B B  - 36B B , - ----B B B   - ----B B B   - ---B B B   - ---B B B  |
|        3 5 8      5 8     17  0 3 11    17  0 3 15    17 0 5 11    17 0 5 15|
|     ------------------------------------------------------------------------|
|       5040         840          5040          2520          10080           |
|     + ----B B B  + ---B B B   + ----B B B   + ----B B B   - -----B B B  -   |
|        17  0 6 9    17 0 6 14    17  1 2 11    17  1 2 15     17  1 6 8     |
|     ------------------------------------------------------------------------|
|     5040         840          5040         1680 2                           |
|     ----B B B  - ---B B B   + ----B B B  + ----B B }                        |
|      17  2 5 9    17 2 5 14    17  3 5 8    17  5 8                         |
|                                                                             |
|o6 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use weightMuHighestWeightVectorsInSymdW:
================================================

  * "weightMuHighestWeightVectorsInSymdW(List,ZZ,LieAlgebraRepresentation)"

For the programmer
==================

The object weightMuHighestWeightVectorsInSymdW,
is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2811:0.

weightMuHighestWeightVectorsInW -- computes the highest weight vectors of weight mu in W
****************************************************************************************

  * Usage:
        weightMuHighestWeightVectorsInW(mu,V)
  * Inputs:
      * mu, a list (Macaulay2Doc),
      * V, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

A highest weight vector is one that is killed by all the raising operators. We
compute the intersection of the kernels of the raising operators restricted to
the weight $\mu$ subspace in $W$.

Let $V$ be the adjoint representation of $sl_3$. Then $V$ has highest weight
$(1,1)$ and dimension 8, and the multiplicity of $V$ in $W = V \otimes V$ is 2.
In the example below, we compute two highest weight vectors of $(1,1)$ in $V
\otimes V$. We work with the Gelfand-Tsetlin basis in these calculations.

+---------------------------------------------+
|i1 : sl3=simpleLieAlgebra("A",2)             |
|                                             |
|o1 = sl3                                     |
|                                             |
|o1 : simple LieAlgebra                       |
+---------------------------------------------+
|i2 : V=irreducibleLieAlgebraModule({1,1},sl3)|
|                                             |
|o2 = V                                       |
|                                             |
|o2 : irreducible LieAlgebraModule over sl3   |
+---------------------------------------------+
|i3 : LAB = lieAlgebraBasis("A",2);           |
+---------------------------------------------+
|i4 : L = GTrepresentationMatrices(V);        |
+---------------------------------------------+
|i5 : V=lieAlgebraRepresentation(V,LAB,L);    |
+---------------------------------------------+
|i6 : W = V**V;                               |
+---------------------------------------------+
|i7 : weightMuHighestWeightVectorsInW({1,1},W)|
|                                             |
|o7 = | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 1/2 3/2  |                            |
|     | 0   0    |                            |
|     | 1/2 -1/2 |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | -1  -3   |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | -2  0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 1   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   1    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|     | 0   0    |                            |
|                                             |
|              64       2                     |
|o7 : Matrix QQ   <-- QQ                      |
+---------------------------------------------+

This function works for any representation $W$. There are also specialized
functions for the cases where $W$ has the form $\operatorname{Sym}^d W$ or $V
\otimes W$.

See also
========

  * weightMuHighestWeightVectorsInSymdW
    -- computes the highest weight vectors
    of weight mu in $\operatorname{Sym}^d W$
  * weightNuHighestWeightVectorsInVtensorW
    -- computes the highest weight
    vectors of weight nu in $V \otimes W$

Ways to use weightMuHighestWeightVectorsInW:
============================================

  * "weightMuHighestWeightVectorsInW(List,LieAlgebraRepresentation)"

For the programmer
==================

The object weightMuHighestWeightVectorsInW,
is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2765:0.

weightNuHighestWeightVectorsInVtensorW -- computes the highest weight vectors of weight nu in $V \otimes W$
***********************************************************************************************************

  * Usage:
        weightNuHighestWeightVectorsInVtensorW(nu,rhoV,rhoW)
  * Inputs:
      * nu, a list (Macaulay2Doc),
      * rhoV, an instance of the type LieAlgebraRepresentation,
      * rhoW, an instance of the type LieAlgebraRepresentation,
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

A highest weight vector is one that is killed by all the raising operators. The
more general function weightMuHighestWeightVectorsInW,
can compute highest weight vectors for any
representation by computing the intersection of the kernels of the raising
operators restricted to the weight $\mu$ subspace. However, for large
representations, this strategy will be slow. In the special case that W is of
the form $V \otimesW$, we want a strategy that allows us to work in the weight
mu space of $V \otimes W$ without fully computing $V \otimes W$.

Here is our alternative approach.  A highest weight vector $v_{\mu}$ of weight
$\mu$ will generate an irreducible submodule $V(\mu) \subset V \otimes W$.
Therefore, the Casimir operator will act on $V(\mu)$ by a known scalar
$c(\mu)$; see casimirScalar.  Moreover, the spectrum of
the Casimir operator is known. Thus, we can find the weight $\mu$ vectors with
eigenvalue $c(\mu)$ by starting with a basis of $V \otimes W$ and iteratively
projecting away the components that correspond to the other Casimir scalars.

Let $V$ be the irreducible representation of $sl_4$ with highest weight
$\omega_1 + \omega_2$, let $W$ be the irreducible representation with highest
weight $\omega_2+\omega_3$, and let $U$ be the irreducible representation with
highest weight $\omega_1 + \omega_3$.  The  multiplicity of $U$ in $V \otimes
W$ is 2. In the example below, we compute two highest weight vectors of weight
$(1,0,1)$ in $V \otimes W$. We work with the Gelfand-Tsetlin basis in these
calculations.

+-----------------------------------------------------------------------------+
|i1 : sl4 = simpleLieAlgebra("A",3);                                          |
+-----------------------------------------------------------------------------+
|i2 : LAB=lieAlgebraBasis(sl4);                                               |
+-----------------------------------------------------------------------------+
|i3 : V=irreducibleLieAlgebraModule({1,1,0},sl4);                             |
+-----------------------------------------------------------------------------+
|i4 : L = GTrepresentationMatrices(V);                                        |
+-----------------------------------------------------------------------------+
|i5 : rhoV = lieAlgebraRepresentation(V,LAB,L);                               |
+-----------------------------------------------------------------------------+
|i6 : W=irreducibleLieAlgebraModule({0,1,1},sl4);                             |
+-----------------------------------------------------------------------------+
|i7 : L = GTrepresentationMatrices(W);                                        |
+-----------------------------------------------------------------------------+
|i8 : rhoW = lieAlgebraRepresentation(W,LAB,L);                               |
+-----------------------------------------------------------------------------+
|i9 : weightNuHighestWeightVectorsInVtensorW({1,0,1},rhoV,rhoW)               |
|Constructing the Casimir operator...                                         |
|Other EVs: {24, 20, 16, 12, 0}                                               |
|Beginning projections...                                                     |
|    j=0:                                                                     |
|        EV 24 complete                                                       |
|        EV 20 complete                                                       |
|        EV 16 complete                                                       |
|        EV 12 complete                                                       |
|        EV 0 complete                                                        |
|    #hwvs=0                                                                  |
|    j=1:                                                                     |
|        EV 24 complete                                                       |
|        EV 20 complete                                                       |
|        EV 16 complete                                                       |
|        EV 12 complete                                                       |
|        EV 0 complete                                                        |
|    #hwvs=1                                                                  |
|                                                                             |
|                                                                             |
|o9 = {111A B  - 9A B   - 222A B  - 222A B  + 18A B   + 111A B  - 9A B  +     |
|          0 7     0 11       1 6       2 5      2 10       3 4     3 9       |
|     ------------------------------------------------------------------------|
|                                                                             |
|     111A B  + 3A B  - 148A B  + 84A B  - 42A B  + 14A  B  - 30A  B  +       |
|         5 4     5 9       6 3      8 2      9 1      11 0      14 1         |
|     ------------------------------------------------------------------------|
|              768        1536        768       256       2304       1152     |
|     30A  B , ---A B   - ----A B   + ---A B  - ---A B  + ----A B  - ----A B  |
|        15 0   37 0 11    37  2 10    37 3 9    37 5 9    37  8 2    37  9 1 |
|     ------------------------------------------------------------------------|
|       384        192        192                                             |
|     + ---A  B  + ---A  B  - ---A  B }                                       |
|        37 11 0    37 14 1    37 15 0                                        |
|                                                                             |
|o9 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use weightNuHighestWeightVectorsInVtensorW:
===================================================

  * "weightNuHighestWeightVectorsInVtensorW(List,LieAlgebraRepresentation,
    LieAlgebraRepresentation)"

For the programmer
==================

The object weightNuHighestWeightVectorsInVtensorW,
is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:2955:0.

weylAlcove -- the dominant integral weights of level less than or equal to l
****************************************************************************

  * Usage:
        weylAlcove(g,l)
  * Inputs:
      * g, an instance of the type LieAlgebra,
      * l, an integer (Macaulay2Doc),

Description
===========

Let $\mathbf{g}$ be a Lie algebra, and let $l$ be a nonnegative integer. Choose
a Cartan subalgebra $\mathbf{h}$ and a base $\Delta= \{
\alpha_1,\ldots,\alpha_n\}$ of simple roots of $\mathbf{g}$. These choices
determine a highest root $\theta$. (See highestRoot). Let
$\mathbf{h}_{\mathbf{R}}^*$ be the real span of $\Delta$, and let $(,)$ denote
the Killing form, normalized so that $(\theta,\theta)=2$. The fundamental Weyl
chamber is $C^{+} = \{ \lambda \in \mathbf{h}_{\mathbf{R}}^*  :
(\lambda,\alpha_i) \ge 0, i=1,\ldots,n \}$. The fundamental Weyl alcove is the
subset of the fundamental Weyl chamber such that $(\lambda,\theta) \leq l$.
This function computes the set of integral weights in the fundamental Weyl
alcove.

In the example below, we see that the Weyl alcove of $sl_3$ at level 3 contains
10 integral weights.

+-----------------------------------------------------------------------------+
|i1 : g=simpleLieAlgebra("A",2)                                               |
|                                                                             |
|o1 = g                                                                       |
|                                                                             |
|o1 : simple LieAlgebra                                                       |
+-----------------------------------------------------------------------------+
|i2 : weylAlcove(g,3)                                                         |
|                                                                             |
|o2 = {{0, 0}, {0, 1}, {0, 2}, {0, 3}, {1, 0}, {1, 1}, {1, 2}, {2, 0}, {2, 1},|
|     ------------------------------------------------------------------------|
|     {3, 0}}                                                                 |
|                                                                             |
|o2 : List                                                                    |
+-----------------------------------------------------------------------------+

Ways to use weylAlcove:
=======================

  * "weylAlcove(LieAlgebra,ZZ)"
  * "weylAlcove(String,ZZ,ZZ)"
  * "weylAlcove(ZZ,LieAlgebra)"

For the programmer
==================

The object weylAlcove, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:631:0.

zeroModule -- The zero module of a Lie algebra
**********************************************

Description
===========

Returns the zero-dimensional module.

Ways to use zeroModule:
=======================

  * "zeroModule(LieAlgebra)"

For the programmer
==================

The object zeroModule, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in
LieAlgebraRepresentations/documentation.m2:430:0.