Cat::Crystal – Category for crystals

Cat::Crystal represents Category for crystals.

→ Examples

Details:

Entries

"cartanType"

The Cartan type of the crystal.

"indexSet"

The index set I underlying the given crystal to be specified.

e – Kashiwara raising operator

Cat::Crystal::e(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This is a function to be defined within each specific crystal, corresponding the i-th Kashiwara raising operator acting on the crystal element x.

f – Kashiwara lowering operator

Cat::Crystal::f(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This is a function to be defined within each specific crystal, corresponding the i-th Kashiwara lowering operator acting on the crystal element x.

raising – Kashiwara raising operator function

Cat::Crystal::raising(i)

Parameters:

i

An element in the index set I or dom::indexSet

This is a function corresponding to the i-th Kashiwara raising operator. The function dom::raising(i)(x) is the same function as dom::e(x,i).

lowering – Kashiwara lowering operator function

Cat::Crystal::lowering(i)

Parameters:

i

An element in the index set I or dom::indexSet

This is a function corresponding to the i-th Kashiwara lowering operator. The function dom::lowering(i)(x) is the same function as dom::f(x,i).

epsilon – string length of Kashiwara operator e

Cat::Crystal::epsilon(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

The result of this function is a nonnegative integer which is the maximum number of times e[i] can be applied to the crystal element x. The default implementation calculates e[i] repeatedly on the crystal element x which might be inefficient and can be overwritten by a concrete implementation.

phi – string length of Kashiwara operator f

Cat::Crystal::phi(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

The result of this function is a nonnegative integer which is the maximum number of times f[i] can be applied to the crystal element x. The default implementation calculates f[i] repeatedly on the crystal element x which might be inefficient and can be overwritten by a concrete implementation.

raisingMaxOperations – string length of Kashiwara operator e function

Cat::Crystal::raisingMaxOperations(i)

Parameters:

i

An element in the index set I or dom::indexSet

The result of this function is a function that yields a nonnegative integer which is the maximum number of times e[i] can be applied. For a given crystal element x, the function dom::raisingMaxOperations(i)(x) is the same as dom::epsilon(x,i)

loweringMaxOperations – string length of Kashiwara operator f function

Cat::Crystal::loweringMaxOperations(i)

Parameters:

i

An element in the index set I or dom::indexSet

The result of this function is a function that yields a nonnegative integer which is the maximum number of times f[i] can be applied. For a given crystal element x, the function dom::loweringMaxOperations(i)(x) is the same as dom::phi(x,i)

Epsilon – list of string lengths of Kashiwara operator e

Cat::Crystal::Epsilon(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This function returns the list [dom::epsilon(x,i) $ i in dom::indexSet] of the values of epsilon[i] acting on a crystal element x.

Phi – list of string lengths of Kashiwara operator f

Cat::Crystal::Phi(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This function returns the list [dom::phi(x,i) $ i in dom::indexSet] of the values of phi[i] acting on a crystal element x.

eString – composition of Kashiwara raising operators

Cat::Crystal::eString(x, iList)

Parameters:

x

An element of the underlying crystal

iList

A list [i1,i2,...,ik] of elements in the index set I or dom::indexSet

This function gives the result of the composition of Kashiwara operators e[i1]e[i2]...e[ik] acting on a crystal element x.

fString – composition of Kashiwara lowering operators

Cat::Crystal::fString(x, iList)

Parameters:

x

An element of the underlying crystal

iList

A list [i1,i2,...,ik] of elements in the index set I or dom::indexSet

This function gives the result of the composition of Kashiwara operators f[i1]f[i2]...f[ik] acting on a crystal element x.

reflection – reflection along an i-string

Cat::Crystal::reflection(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This function reflects the crystal element x along an i-string.

crystalGraph – drawing of crystal graph

Cat::Crystal::crystalGraph(filename)

Parameters:

filename

The filename for the dot-file

Function for drawing the crystal graph. A dot-file "filename.dot" is created which can be processed via the command "dot -Tpdf filename.dot -o filename.pdf" to convert to a pdf file.

pi – crystal elements in i-string in f direction

Cat::Crystal::pi(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This function gives a list of the crystal element x and all powers of f[i] acting on x.

piHat – crystal elements in i-string in strict f direction

Cat::Crystal::piHat(x, i)

Parameters:

x

An element of the underlying crystal

i

An element in the index set I or dom::indexSet

This function gives a list of all powers of f[i] acting on the crystal element x.

toJHighestWeightVector – J-highest weight vector

Cat::Crystal::toJHighestWeightVector(x, J)

Parameters:

x

An element of the underlying crystal

J

A subset of the index set I or dom::indexSet

The input to this function is a crystal element x and a subset J of the index set I. The output is the J-highest weight vector h in the component of x and a list [i1,i2,..,ik] of indices in J such that h=e[i1]e[i2]...e[ik](x).

toHighestWeightVector – highest weight vector

Cat::Crystal::toHighestWeightVector(x)

Parameters:

x

An element of the underlying crystal

The input to this function is a crystal element x. The output is the highest weight vector h in the component of x and a list [i1,i2,..,ik] of indices in the index set I of the crystal such that h=e[i1]e[i2]...e[ik](x).

toJLowestWeightVector – J-lowest weight vector

Cat::Crystal::toJLowestWeightVector(x, J)

Parameters:

x

An element of the underlying crystal

J

A subset of the index set I or dom::indexSet

The input to this function is a crystal element x and a subset J of the index set I. The output is the J-lowest weight vector h in the component of x and a list [i1,i2,..,ik] of indices in J such that h=f[i1]f[i2]...f[ik](x).

toLowestWeightVector – lowest weight vector

Cat::Crystal::toLowestWeightVector(x)

Parameters:

x

An element of the underlying crystal

The input to this function is a crystal element x. The output is the lowest weight vector h in the component of x and a list [i1,i2,..,ik] of indices in the index set I of the crystal such that h=f[i1]f[i2]...f[ik](x).

Example 1:

We define a simple crystal of type A:

    domain TypeA(n: Type::PosInt)

    inherits Dom::BaseDomain;

    category Cat::Crystal;

   

    expr :=

    proc(x: dom)

    begin

      op(x,1);

    end;

   

    new :=

    proc(x) : dom

    begin

      new(dom, x);

    end;

   

    convert :=

    proc(x) : Type::Union(dom, DOM_FAIL)

    begin

      if domtype(x) = dom then

        return(x)

      elif testtype(x,dom::letters) then

        return(dom(x))

      else

        return(FAIL)

      end_if;

    end_proc;

   

    cartanType := combinat::cartanType(["A",n]);

   

    letters := [$ 1..n+1];

   

    e :=

    proc(j: dom, i: dom::indexSet)

    begin

      j := op(j,1);

      if   j = i+1 then dom(j-1)

      else FAIL

      end_if;

    end_proc;

 

    f :=

    proc(j: dom, i: dom::indexSet)

    begin

      j := op(j,1);

      if   j = i then dom(j+1)

      else FAIL

      end_if;

    end_proc;

   

    moduleGenerators := [dom(1)];

   

    weight :=

    proc(x: dom)

      local i;

    begin

      combinat::words::evaluation([op(x,1)],[i$i=1..n+1]);

    end_proc;

 

    end_domain:

To call the crystal set

   A := TypeA(3);

Then define an element as

   t:= A(2);

To call the Kashiwara operator e[2] on t ask

   t::e(1);

   A(1)

Changes in MuPAD 4.0

New Function.