仿射有限晶体¶
在这篇文章中,我们简要地解释了基里洛夫-雷谢提金晶体的构造和实现 [FourierEtAl2009].
Kirillov-reshettikhin(KR)晶体是与Kirillov-Reshektikhin模相对应的有限维仿射晶体。他们最初被推测存在于 [HatayamaEtAl2001]. 对于非异常类型,给出了它们存在的证明 [OkadoSchilling2008] 并建立了它们的组合模型 [FourierEtAl2009]. 基里洛夫·雷谢提金晶体 B^{{r,s}} 首先按其类型编制索引(如 A_n^{{(1)}} , B_n^{{(1)}} ,…)和基础索引集 I = {{0,1,ldots, n}} 和两个整数 r 和 s . 整数 s 只需要满足 s >0 而 r 是有限Dynkin图的一个节点 r in I setminus {{0}} .
它们的构建有赖于我们分别讨论的几个案例。在所有情况下,当去除零箭头时,晶体分解为(直接和)经典晶体,给出了指数集的晶体结构 I_0 = {{ 1,2,ldots, n}} . 然后利用Dynkin图的对称性或嵌入晶体来添加零箭头。
类型 A_n^{{(1)}}¶
仿射型的Dynkin图 A 具有旋转对称映射 sigma: i mapsto i+1 在这里我们可以看到指数模 n+1 ::
sage: C = CartanType(['A',3,1])
sage: C.dynkin_diagram()
0
O-------+
| |
| |
O---O---O
1 2 3
A3~
经典分解 B^{{r,s}} 是 A_n 最高重量晶体 B(somega_r) 或者相当于用矩形分区标记的tableaux晶体 (s^r) :
在Sage中,我们可以通过:
sage: K = crystals.KirillovReshetikhin(['A',3,1],1,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['A', 3] and shape(s) [[1]]
sage: K.list()
[[[1]], [[2]], [[3]], [[4]]]
sage: K = crystals.KirillovReshetikhin(['A',3,1],2,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['A', 3] and shape(s) [[1, 1]]
我们可以用这些方法在经典晶体和仿射晶体之间进行转换 lift
和 retract
::
sage: K = crystals.KirillovReshetikhin(['A',3,1],2,1)
sage: b = K(rows=[[1],[3]]); type(b)
<class 'sage.combinat.crystals.kirillov_reshetikhin.KR_type_A_with_category.element_class'>
sage: b.lift()
[[1], [3]]
sage: type(b.lift())
<class 'sage.combinat.crystals.tensor_product.CrystalOfTableaux_with_category.element_class'>
sage: b = crystals.Tableaux(['A',3], shape = [1,1])(rows=[[1],[3]])
sage: K.retract(b)
[[1], [3]]
sage: type(K.retract(b))
<class 'sage.combinat.crystals.kirillov_reshetikhin.KR_type_A_with_category.element_class'>
这个 0 -箭头是通过 sigma ,称为促销接线员 mathrm{{pr}} ,在晶体层面通过:
在Sage中,这可以通过以下方式实现:
sage: K = crystals.KirillovReshetikhin(['A',3,1],2,1)
sage: b = K.module_generator(); b
[[1], [2]]
sage: b.f(0)
sage: b.e(0)
[[2], [4]]
sage: K.promotion()(b.lift())
[[2], [3]]
sage: K.promotion()(b.lift()).e(1)
[[1], [3]]
sage: K.promotion_inverse()(K.promotion()(b.lift()).e(1))
[[2], [4]]
KR晶体是水平的 0 晶体,意味着这些晶体中所有元素的重量为零:
sage: K = crystals.KirillovReshetikhin(['A',3,1],2,1)
sage: b = K.module_generator(); b.weight()
-Lambda[0] + Lambda[2]
sage: b.weight().level()
0
KR晶体 B^{{1,1}} 类型的 A_2^{{(1)}} 如下所示:

在Sage中,这可以通过以下方式获得:
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: G = K.digraph()
sage: view(G, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
类型 D_n^{{(1)}} , B_n^{{(1)}} , A_{{2n-1}}^{{(2)}}¶
类型的Dynkin图 D_n^{{(1)}} , B_n^{{(1)}} , A_{{2n-1}}^{{(2)}} 在交换节点下是不变的 0 和 1 ::
sage: n = 5
sage: C = CartanType(['D',n,1]); C.dynkin_diagram()
0 O O 5
| |
| |
O---O---O---O
1 2 3 4
D5~
sage: C = CartanType(['B',n,1]); C.dynkin_diagram()
O 0
|
|
O---O---O---O=>=O
1 2 3 4 5
B5~
sage: C = CartanType(['A',2*n-1,2]); C.dynkin_diagram()
O 0
|
|
O---O---O---O=<=O
1 2 3 4 5
B5~*
去掉结点时得到的基本经典代数 0 are类型 mathfrak{{g}}_0 = D_n, B_n, C_n 分别是。经典分解为 mathfrak{{g}}_0 晶体是一个直和:
在哪里? lambda 是从 somega_r (或相当于长方形分区 (s^r) )通过移除垂直多米诺骨牌。事实上这只在范围内有效 1le rle n-2 对于类型 D_n^{{(1)}} 和 1 le r le n 对于类型 B_n^{{(1)}} 和 A_{{2n-1}}^{{(2)}} ::
sage: K = crystals.KirillovReshetikhin(['D',6,1],4,2)
sage: K.classical_decomposition()
The crystal of tableaux of type ['D', 6] and shape(s)
[[], [1, 1], [1, 1, 1, 1], [2, 2], [2, 2, 1, 1], [2, 2, 2, 2]]
对于类型 B_n^{{(1)}} 和 r=n ,我们需要意识到 omega_n 是一个自旋权重,因此在分区语言中对应于一列高度 n 和宽度 1/2 ::
sage: K = crystals.KirillovReshetikhin(['B',3,1],3,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['B', 3] and shape(s) [[1/2, 1/2, 1/2]]
至于类型 A_n^{{(1)}} ,Dynkin自同构诱导了一个提升型算子 sigma 在水晶层面上。然而,在这种情况下,经典成分之间的自同构会发生变化:
sage: K = crystals.KirillovReshetikhin(['D',4,1],2,1)
sage: b = K.module_generator(); b
[[1], [2]]
sage: K.automorphism(b)
[[2], [-1]]
sage: b = K(rows=[[2],[-2]])
sage: K.automorphism(b)
[]
这个操作员 sigma 用于定义仿射晶体运算符:
KR晶体 B^{{1,1}} 类型 D_3^{{(1)}} , B_2^{{(1)}} 和 A_5^{{(2)}} 分别是:



类型 C_n^{{(1)}}¶
Dynkin型图 C_n^{{(1)}} 具有对称性 sigma(i) = n-i ::
sage: C = CartanType(['C',4,1]); C.dynkin_diagram()
O=>=O---O---O=<=O
0 1 2 3 4
C4~
移除0节点时的经典子代数为 C_n .
然而,在这种情况下,晶体 B^{{r,s}} 不是用构造的 sigma ,而是使用虚拟晶体结构。 B^{{r,s}} 类型的 C_n^{{(1)}} 是在里面实现的 hat{{V}}^{{r,s}} 类型的 A_{{2n+1}}^{{(2)}} 使用:
在哪里? hat{{e}}_i 和 hat{{f}}_i 是环境水晶中的晶体操作员吗 hat{{V}}^{{r,s}} ::
sage: K = crystals.KirillovReshetikhin(['C',3,1],1,2); K.ambient_crystal()
Kirillov-Reshetikhin crystal of type ['B', 4, 1]^* with (r,s)=(1,2)
经典分解 1 le r < n 计算公式:
在哪里? lambda 是从 somega_r (或相当于长方形分区 (s^r) )通过移除水平多米诺骨牌:
sage: K = crystals.KirillovReshetikhin(['C',3,1],2,4)
sage: K.classical_decomposition()
The crystal of tableaux of type ['C', 3] and shape(s) [[], [2], [4], [2, 2], [4, 2], [4, 4]]
KR晶体 B^{{1,1}} 类型的 C_2^{{(1)}} 如下所示:

类型 D_{{n+1}}^{{(2)}} , A_{{2n}}^{{(2)}}¶
类型的Dynkin图 D_{{n+1}}^{{(2)}} 和 A_{{2n}}^{{(2)}} 如下所示:
sage: C = CartanType(['D',5,2]); C.dynkin_diagram()
O=<=O---O---O=>=O
0 1 2 3 4
C4~*
sage: C = CartanType(['A',8,2]); C.dynkin_diagram()
O=<=O---O---O=<=O
0 1 2 3 4
BC4~
经典的子图是 B_n 对于类型 D_{{n+1}}^{{(2)}} 和类型 C_n 对于类型 A_{{2n}}^{{(2)}} . 这些KR晶体的经典分解 1le r < n 对于类型 D_{{n+1}}^{{(2)}} 和 1 le r le n 对于类型 A_{{2n}}^{{(2)}} 计算公式:
在哪里? lambda 是从 somega_r (或相当于长方形分区 (s^r) )通过移除单个框:
sage: K = crystals.KirillovReshetikhin(['D',5,2],2,2)
sage: K.classical_decomposition()
The crystal of tableaux of type ['B', 4] and shape(s) [[], [1], [2], [1, 1], [2, 1], [2, 2]]
sage: K = crystals.KirillovReshetikhin(['A',8,2],2,2)
sage: K.classical_decomposition()
The crystal of tableaux of type ['C', 4] and shape(s) [[], [1], [2], [1, 1], [2, 1], [2, 2]]
KR晶体是用一个注入映射到一个KR晶体的类型 C_n^{{(1)}}
在哪里?
sage: K = crystals.KirillovReshetikhin(['D',5,2],1,2); K.ambient_crystal()
Kirillov-Reshetikhin crystal of type ['C', 4, 1] with (r,s)=(1,4)
sage: K = crystals.KirillovReshetikhin(['A',8,2],1,2); K.ambient_crystal()
Kirillov-Reshetikhin crystal of type ['C', 4, 1] with (r,s)=(1,4)
KR晶体 B^{{1,1}} 类型的 D_3^{{(2)}} 和 A_4^{{(2)}} 如下所示:


从Dynkin图中可以看出 A_{{2n}}^{{(2)}} ,映射节点 imapsto n-i 生成相同的图,但具有重新标记的节点。在本例中,经典子图是 B_n 而不是 C_n . 我们也可以构造KR晶体 B^{{r,s}} 类型的 A_{{2n}}^{{(2)}} 基于这个经典的分解。在这种情况下,经典分解是从 s omega_r 通过移除水平多米诺骨牌:
sage: C = CartanType(['A',6,2]).dual()
sage: Kdual = crystals.KirillovReshetikhin(C,2,2)
sage: Kdual.classical_decomposition()
The crystal of tableaux of type ['B', 3] and shape(s) [[], [2], [2, 2]]
从图中可以看出,此实现与基于 C_n 分解到重新标记箭头:
sage: C = CartanType(['A',4,2])
sage: K = crystals.KirillovReshetikhin(C,1,1)
sage: Kdual = crystals.KirillovReshetikhin(C.dual(),1,1)
sage: G = K.digraph()
sage: Gdual = Kdual.digraph()
sage: f = { 1:1, 0:2, 2:0 }
sage: for u,v,label in Gdual.edges():
....: Gdual.set_edge_label(u,v,f[label])
sage: G.is_isomorphic(Gdual, edge_labels = True)
True

异常节点¶
KR晶体 B^{{n,s}} 对于类型 C_n^{{(1)}} 和 D_{{n+1}}^{{(2)}} 被排除在上述讨论之外。它们与异常节点关联 r=n 在这种情况下,经典分解是不可约的:
塞奇语:
sage: K = crystals.KirillovReshetikhin(['C',2,1],2,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['C', 2] and shape(s) [[1, 1]]
sage: K = crystals.KirillovReshetikhin(['D',3,2],2,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['B', 2] and shape(s) [[1/2, 1/2]]


KR晶体 B^{{n,s}} 和 B^{{n-1,s}} 类型的 D_n^{{(1)}} 也很特别。它们分解为:
sage: K = crystals.KirillovReshetikhin(['D',4,1],4,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['D', 4] and shape(s) [[1/2, 1/2, 1/2, 1/2]]
sage: K = crystals.KirillovReshetikhin(['D',4,1],3,1)
sage: K.classical_decomposition()
The crystal of tableaux of type ['D', 4] and shape(s) [[1/2, 1/2, 1/2, -1/2]]
类型 E_6^{{(1)}}¶
在 [JonesEtAl2010] KR晶体 B^{{r,s}} 对于 r=1,2,6 类型 E_6^{{(1)}} 利用一个Dynkin图的自同构,即自同构构造了一个新的系统 sigma 第三级地图 0mapsto 1 mapsto 6 mapsto 0 ::
sage: C = CartanType(['E',6,1]); C.dynkin_diagram()
O 0
|
|
O 2
|
|
O---O---O---O---O
1 3 4 5 6
E6~
水晶 B^{{1,s}} 和 B^{{6,s}} 是不可还原的经典晶体:
sage: K = crystals.KirillovReshetikhin(['E',6,1],1,1)
sage: K.classical_decomposition()
Direct sum of the crystals Family (Finite dimensional highest weight crystal of type ['E', 6] and highest weight Lambda[1],)
sage: K = crystals.KirillovReshetikhin(['E',6,1],6,1)
sage: K.classical_decomposition()
Direct sum of the crystals Family (Finite dimensional highest weight crystal of type ['E', 6] and highest weight Lambda[6],)
而对于伴随节点 r=2 我们有分解
sage: K = crystals.KirillovReshetikhin(['E',6,1],2,1)
sage: K.classical_decomposition()
Direct sum of the crystals Family (Finite dimensional highest weight crystal of type ['E', 6] and highest weight 0,
Finite dimensional highest weight crystal of type ['E', 6] and highest weight Lambda[2])
与之对应的晶体上的提升算子 sigma 可以显式计算:
sage: K = crystals.KirillovReshetikhin(['E',6,1],1,1)
sage: promotion = K.promotion()
sage: u = K.module_generator(); u
[(1,)]
sage: promotion(u.lift())
[(-1, 6)]
水晶 B^{{1,1}} 已经是维度27。元素 b 这些晶体是用元组标记的,元组指定它们的非零 phi_i(b) 和 epsilon_i(b) . 例如, [-6,2] 表明 phi_2([-6,2]) = epsilon_6([-6,2]) = 1 其他的都等于零:
sage: K = crystals.KirillovReshetikhin(['E',6,1],1,1)
sage: K.cardinality()
27

单柱KR晶体¶
单列KR晶体是 B^{{r,1}} 对于任何 r in I_0 .
在 [LNSSS14I] 和 [LNSSS14II], 结果表明,将LS路径的0级晶体投影到经典的权点阵上,可以构造出单列KR晶体。我们首先验证我们确实得到了 B^{{1,1}} 类型 E_6^{{(1)}} ::
sage: K = crystals.KirillovReshetikhin(['E',6,1], 1,1)
sage: K2 = crystals.kirillov_reshetikhin.LSPaths(['E',6,1], 1,1)
sage: K.digraph().is_isomorphic(K2.digraph(), edge_labels=True)
True
这里有一个例子 E_8^{{(1)}} 我们计算了它的经典分解:
sage: K = crystals.kirillov_reshetikhin.LSPaths(['E',8,1], 8,1)
sage: K.cardinality()
249
sage: L = [x for x in K if x.is_highest_weight([1,2,3,4,5,6,7,8])]
sage: [x.weight() for x in L]
[-2*Lambda[0] + Lambda[8], 0]
应用¶
有限维仿射晶体的一个重要概念是完备性。关键的特性是 B 水平完美 ell 如果两层之间有双射 ell 主要权重和元素
关于完美晶体的精确定义,请参见 [HongKang2002] . 在 [FourierEtAl2010] 证明了对于非例外类型 B^{{r,s}} 完美只要 s/c_r 是一个整数。在这里 c_r=1 除了 c_r=2 对于 1 le r < n 类型 C_n^{{(1)}} 和 r=n 类型 B_n^{{(1)}} .
这里我们用Sage验证 B^{{1,1}} 类型的 C_3^{{(1)}} ::
sage: K = crystals.KirillovReshetikhin(['C',3,1],1,1)
sage: Lambda = K.weight_lattice_realization().fundamental_weights(); Lambda
Finite family {0: Lambda[0], 1: Lambda[1], 2: Lambda[2], 3: Lambda[3]}
sage: [w.level() for w in Lambda]
[1, 1, 1, 1]
sage: Bmin = [b for b in K if b.Phi().level() == 1 ]; Bmin
[[[1]], [[2]], [[3]], [[-3]], [[-2]], [[-1]]]
sage: [b.Phi() for b in Bmin]
[Lambda[1], Lambda[2], Lambda[3], Lambda[2], Lambda[1], Lambda[0]]
如你所见,两者 b=1 和 b=-2 满足 varphi(b)=Lambda_1 . 因此,在 B_{{mathrm{{min}}}} 以及1级权重。因此, B^{{1,1}} 类型的 C_3^{{(1)}} 并不完美。然而, B^{{1,2}} 类型的 C_n^{{(1)}} 是完美的水晶:
sage: K = crystals.KirillovReshetikhin(['C',3,1],1,2)
sage: Lambda = K.weight_lattice_realization().fundamental_weights()
sage: Bmin = [b for b in K if b.Phi().level() == 1 ]
sage: [b.Phi() for b in Bmin]
[Lambda[0], Lambda[3], Lambda[2], Lambda[1]]
完美晶体可以用来构造无限维的最高重量晶体和使用京都路径模型的Demazure晶体 [KKMMNN1992]. 我们在 [HongKang2002]:
sage: K = crystals.KirillovReshetikhin(['A',1,1], 1,1)
sage: La = RootSystem(['A',1,1]).weight_lattice().fundamental_weights()
sage: B = crystals.KyotoPathModel(K, La[0])
sage: B.highest_weight_vector()
[[[2]]]
sage: K = crystals.KirillovReshetikhin(['A',2,1], 1,1)
sage: La = RootSystem(['A',2,1]).weight_lattice().fundamental_weights()
sage: B = crystals.KyotoPathModel(K, La[0])
sage: B.highest_weight_vector()
[[[3]]]
sage: K = crystals.KirillovReshetikhin(['C',2,1], 2,1)
sage: La = RootSystem(['C',2,1]).weight_lattice().fundamental_weights()
sage: B = crystals.KyotoPathModel(K, La[1])
sage: B.highest_weight_vector()
[[[2], [-2]]]
能量函数与一维构型和¶
对于Kirillov-Reshehtikhin晶体的张量积,也存在着重要的能量函数概念。它可以定义为某些局部能量函数和 R -矩阵。定理7.5英寸 [SchillingTingley2011] 结果表明,对于同一水平的完美晶体,能量 D(b) 与仿射放坡相同(达到标准化)。仿射分级定义为 e_0 到 b 到达基态路径。在计算上,这个算法比涉及到 R -矩阵和已在Sage中实现:
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: T = crystals.TensorProduct(K,K,K)
sage: hw = [b for b in T if all(b.epsilon(i)==0 for i in [1,2])]
sage: for b in hw:
....: print("{} {}".format(b, b.energy_function()))
[[[1]], [[1]], [[1]]] 0
[[[1]], [[2]], [[1]]] 2
[[[2]], [[1]], [[1]]] 1
[[[3]], [[2]], [[1]]] 3
即使对于不完全晶体,仿射分级也可以计算:
sage: K = crystals.KirillovReshetikhin(['C',4,1],1,2)
sage: K1 = crystals.KirillovReshetikhin(['C',4,1],1,1)
sage: T = crystals.TensorProduct(K,K1)
sage: hw = [b for b in T if all(b.epsilon(i)==0 for i in [1,2,3,4])]
sage: for b in hw:
....: print("{} {}".format(b, b.affine_grading()))
[[], [[1]]] 1
[[[1, 1]], [[1]]] 2
[[[1, 2]], [[1]]] 1
[[[1, -1]], [[1]]] 0
晶体的一维构型和 B 是所有元素重量的能量分级和 b in B :
下面是一个在Sage中如何计算一维配置和的示例:
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: T = crystals.TensorProduct(K,K)
sage: T.one_dimensional_configuration_sum()
B[-2*Lambda[1] + 2*Lambda[2]] + (q+1)*B[-Lambda[1]]
+ (q+1)*B[Lambda[1] - Lambda[2]] + B[2*Lambda[1]]
+ B[-2*Lambda[2]] + (q+1)*B[Lambda[2]]