Cat::Crystal – Category for crystals
Cat::Crystal represents Category for crystals.
Details:
A Cat::Crystal is a combinatorial class consisting of a set and operators acting on this set. A crystal needs to have a specified cartan type with underlying index set I. The Kashiwara lowering operators f[i] and raising operators e[i] are indexed by elements in I.
The main functionalities provided by this category are the operations that are common to all crystals, such as epsilon[i] and phi[i] of the maximal number of times that e[i] and f[i] can be applied to an element, the construction and drawing of crystal graphs. The drawing is currently done by exporting a graph description in the dot language, suitable for previewing, manipulation, and high quality drawing by the http://www.graphviz.org/ software suite.
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).
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.