无限晶体

无限晶体,表示 mathcal{{B}}(infty) 并且只依赖于Cartan类型,是重量最高的Verma模块的晶体模拟物 0 关联到可对称化的Kac-Moody代数(相当于,对应量子群的下半部分)。因此,它们是无限维的,任何不可约的最高重量晶体都可以通过某种切割程序从无限大的晶体中获得。另一方面,水晶 B(infty) 是所有不可约最高重量晶体的直接极限 B(lambda) ,所以每一个都有自然的嵌入 B(lambda) 在里面 B(infty) . 下面,我们将概述crystal的各种实现 B(infty) 并举例说明 B(lambda) 相互作用 B(infty) .

目前在Sage中实现的所有无限晶体都可以通过输入来访问 crystals.infinity.<tab> .

略大的舞台

略大的画面是由J.Hong和H.Lee作为水晶的实现而引入的 B(infty) 类型 A_nB_nC_nD_{{n+1}}G_2 . 略大的条件保证所有的画面 n 行数 i -盒子在里面 i -从顶部算起的第行(在英语惯例中)正好比 (i+1) -第一排。表格上的其他具体条件因类型而异。看到了吗 [HongLee2008] 更多信息。

这里有一个铅字的例子 A_2 ::

sage: B = crystals.infinity.Tableaux(['A',2])
sage: b = B.highest_weight_vector()
sage: b.pp()
  1  1
  2
sage: b.f_string([1,2,2,1,2,1,2,2,2,2,2]).pp()
  1  1  1  1  1  1  1  1  1  2  2  3
  2  3  3  3  3  3  3  3

由于晶体是无限的,我们必须指定我们要查看的亚晶体:

sage: B = crystals.infinity.Tableaux(['A',2])
sage: S = B.subcrystal(max_depth=4)
sage: G = B.digraph(subset=S)
sage: view(G, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/BinfA2.png

利用基本晶体,我们可以从 B(infty) 作为 C otimes T_lambda otimes B(infty) 包含 cotimes t_lambda otimes u_infty 在哪里 u_infty 是中的最高权重向量 B(infty) . 在这个例子中,我们去掉了 B(rho)B(infty) 类型 A_2 ::

sage: B = crystals.infinity.Tableaux(['A',2])
sage: b = B.highest_weight_vector()
sage: T = crystals.elementary.T(['A',2], B.Lambda()[1] + B.Lambda()[2])
sage: t = T[0]
sage: C = crystals.elementary.Component(['A',2])
sage: c = C[0]
sage: TP = crystals.TensorProduct(C,T,B)
sage: t0 = TP(c,t,b)
sage: STP = TP.subcrystal(generators=[t0])
sage: GTP = TP.digraph(subset=STP)
sage: view(GTP, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/BinfTCrhoA2.png

请注意,使用R-crystal可以简化上述代码:

sage: B = crystals.infinity.Tableaux(['A',2])
sage: b = B.highest_weight_vector()
sage: R = crystals.elementary.R(['A',2], B.Lambda()[1] + B.Lambda()[2])
sage: r = R[0]
sage: TP2 = crystals.TensorProduct(R,B)
sage: t2 = TP2(r,b)
sage: STP2 = TP2.subcrystal(generators=[t2])
sage: GTP2 = TP2.digraph(subset=STP2)
sage: view(GTP2, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/BinfRrhoA2.png

另一方面,我们可以嵌入不可约的最高重量晶体 B(rho) 进入之内 B(infty) ::

sage: Brho = crystals.Tableaux(['A',2],shape=[2,1])
sage: brho = Brho.highest_weight_vector()
sage: B = crystals.infinity.Tableaux(['A',2])
sage: binf = B.highest_weight_vector()
sage: wt = brho.weight()
sage: T = crystals.elementary.T(['A',2],wt)
sage: TlambdaBinf = crystals.TensorProduct(T,B)
sage: hw = TlambdaBinf(T[0],binf)
sage: Psi = Brho.crystal_morphism({brho : hw})
sage: BG = B.digraph(subset=[Psi(x) for x in Brho])
sage: view(BG, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/BrhoinBinf.png

注意,在最后一个例子中,我们必须注入 B(rho) 张量积 T_lambda otimes B(infty) ,否则,地图 Psi 不会是晶体态射(如 b.weight() != brho.weight()

广义年轻墙

广义的年轻墙是由金和德佑申介绍的 B(infty) 每个人 B(lambda) 完全仿射型 A_n^{{(1)}} . 见 [KimShin2010] 了解更多有关建造通用年轻墙的信息。

由于此模型仅对一个Cartan类型有效,因此初始化crystal的输入只是底层类型的秩:

sage: Y = crystals.infinity.GeneralizedYoungWalls(2)
sage: y = Y.highest_weight_vector()
sage: y.f_string([0,1,2,2,2,1,0,0,1,2]).pp()
         2|
          |
          |
       1|2|
       0|1|
 2|0|1|2|0|

weight 方法对于此模型,我们可以选择是在扩展权重晶格(默认情况下)还是在根晶格中查看权重:

sage: Y = crystals.infinity.GeneralizedYoungWalls(2)
sage: y = Y.highest_weight_vector()
sage: y.f_string([0,1,2,2,2,1,0,0,1,2]).weight()
Lambda[0] + Lambda[1] - 2*Lambda[2] - 3*delta
sage: y.f_string([0,1,2,2,2,1,0,0,1,2]).weight(root_lattice=True)
-3*alpha[0] - 3*alpha[1] - 4*alpha[2]

如前所述,当我们试图查看晶体图时,我们需要指出特定的亚晶体:

sage: Y = crystals.infinity.GeneralizedYoungWalls(2)
sage: SY = Y.subcrystal(max_depth=3)
sage: GY = Y.digraph(subset=SY)
sage: view(GY, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/YinfA21.png

我们还可以利用广义年轻壁制造不可约的最高重量晶体:

sage: La = RootSystem(['A',2,1]).weight_lattice(extended=True).fundamental_weights()
sage: YLa = crystals.GeneralizedYoungWalls(2,La[0])
sage: SYLa = YLa.subcrystal(max_depth=3)
sage: GYLa = YLa.digraph(subset=SYLa)
sage: view(GYLa, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/YLa0.png

然而,在重量最高的晶体中,权重始终是扩展仿射权重晶格的元素:

sage: La = RootSystem(['A',2,1]).weight_lattice(extended=True).fundamental_weights()
sage: YLa = crystals.GeneralizedYoungWalls(2,La[0])
sage: YLa.highest_weight_vector().f_string([0,1,2,0]).weight()
-Lambda[0] + Lambda[1] + Lambda[2] - 2*delta

修正中岛单项式

Y_{{i,k}} ,为了 i in Ik in ZZ ,作为一个变量的交换集,并让 boldsymbol{{1}} 作为一个新的变量 Y_{{i,k}} . (这里, I 表示卡坦基准的索引集。)可以在集合上赋予晶体的结构 widehat{{mathcal{{M}}}} 形式的单项式

\[M=prod{(i,k)in itimesZZ{ge0}}}Y{i,k}^{Y}i(k)}boldsymbol{1}。\]

要素 widehat{{mathcal{{M}}}} 被称为 修正中岛单项式 . 我们将省略 boldsymbol{{1}} 如果一个单项式至少存在一个 y_i(k) neq 0 . 这个集合上的晶体结构由

\[\begin{split}开始{对齐}Mathm{wt}Mathm{wt}(M)的&=sum{iin i}Bigl(sum{kge 0}yU U i(k)Bigr)Lambda i i,\\varphi U i(M)&=maxBigl{sum{0LeJ jle k k}y U i(j):kGE0 0BiG R},\\\\\\\\\\\\\\\\\\\\\\\\\\\\VaR PhI(Mmathrm{wt}(M)rangle,\k_f=k_f(M)&=minBigl{kge 0:varphi_i(M)=sum zu{0le jle k}y_i(j)Bigr},\küe=k_e(M)&=maxBigl{kge 0:varphi_i(M)=sum{0le jle k}y_i(j)Bigr},结束{aligned}\end{split}\]

在哪里? {{h_i : i in I}}{{Lambda_i : i in I }} 分别是简单重量和基本重量。用一组选定的整数 C = (c_{{ij}})_{{ineq j}} 这样的话 c_{{ij}}+c_{{ji}} =1 ,一个定义

\[A{i,k}=Y{i,k}Y{i,k+1}prod{jneq i}Y{j,k+c{ji}}^{A{ji}},\]

在哪里? (a_{{ij}}) 是卡坦矩阵。那么

\[begin{aligned}e_iM&=begin{cases}0&text{if}varepsilon_i(M)=0,\A{i,k_e}M&text{if}varepsilon_i(M)>0,结束{cases}\f{iM&=A{i,k_f}^{-1}M.end{aligned}\]

注解

单项式晶体依赖于正整数的选择 C = (c_{{ij}})_{{ineq j}} 满足条件 c_{{ij}}+c_{{ji}}=1 . 这个选择是在Sage身上做出的 c_{{ij}} = 1 如果 i < jc_{{ij}} = 0 如果 i>j ,但如果在初始化晶体时故意声明,则可以使用其他选项:

sage: c = Matrix([[0,0,1],[1,0,0],[0,1,0]])
sage: La = RootSystem(['C',3]).weight_lattice().fundamental_weights()
sage: M = crystals.NakajimaMonomials(2*La[1], c=c)
sage: M.c()
[0 0 1]
[1 0 0]
[0 1 0]

如所示 [KKS2007] 连接的组件 widehat{{mathcal{{M}}}} 包含元素 boldsymbol{{1}} ,我们用 mathcal{{M}}(infty) ,是否与晶体同构 B(infty) ::

sage: Minf = crystals.infinity.NakajimaMonomials(['C',3,1])
sage: minf = Minf.highest_weight_vector()
sage: m = minf.f_string([0,1,2,3,2,1,0]); m
Y(0,0)^-1 Y(0,4)^-1 Y(1,0) Y(1,3)
sage: m.weight()
-2*Lambda[0] + 2*Lambda[1] - 2*delta
sage: m.weight_in_root_lattice()
-2*alpha[0] - 2*alpha[1] - 2*alpha[2] - alpha[3]

我们也可以做模型 B(infty) 使用变量 A_{{i,k}} 取而代之的是:

sage: Minf = crystals.infinity.NakajimaMonomials(['C',3,1])
sage: minf = Minf.highest_weight_vector()
sage: Minf.set_variables('A')
sage: m = minf.f_string([0,1,2,3,2,1,0]); m
A(0,0)^-1 A(0,3)^-1 A(1,0)^-1 A(1,2)^-1 A(2,0)^-1 A(2,1)^-1 A(3,0)^-1
sage: m.weight()
-2*Lambda[0] + 2*Lambda[1] - 2*delta
sage: m.weight_in_root_lattice()
-2*alpha[0] - 2*alpha[1] - 2*alpha[2] - alpha[3]
sage: Minf.set_variables('Y')

建立这些单项式晶体的晶体图形输出与上述构造相同:

sage: Minf = crystals.infinity.NakajimaMonomials(['C',3,1])
sage: Sinf = Minf.subcrystal(max_depth=2)
sage: Ginf = Minf.digraph(subset=Sinf)
sage: view(Ginf, tightpage=True) # optional - dot2tex graphviz, not tested (opens external window)
thematic_tutorials/lie/../media/MinfC31.png

请注意,此模型也适用于任何可对称化的Cartan矩阵:

sage: A = CartanMatrix([[2,-4],[-5,2]])
sage: Linf = crystals.infinity.NakajimaMonomials(A); Linf
Infinity Crystal of modified Nakajima monomials of type [ 2 -4]
[-5  2]
sage: Linf.highest_weight_vector().f_string([0,1,1,1,0,0,1,1,0])
Y(0,0)^-1 Y(0,1)^9 Y(0,2)^5 Y(0,3)^-1 Y(1,0)^2 Y(1,1)^5 Y(1,2)^3

装配配置

Rigged配置是分区的序列,底层Dynkin图中每个节点对应一个分区,这样每个分区的每个部分都有一个标签(或rigging)。在这些物体上定义了晶体结构 [Schilling2006], 后来又扩展为 B(infty) . 见 [SalisburyScrimshaw2015] 更多信息:

sage: RiggedConfigurations.options(display="horizontal")
sage: RC = crystals.infinity.RiggedConfigurations(['C',3,1])
sage: nu = RC.highest_weight_vector().f_string([0,1,2,3,2,1,0]); nu
-2[ ]-1   2[ ]1   0[ ]0   0[ ]0
-2[ ]-1   2[ ]1   0[ ]0
sage: nu.weight()
-2*Lambda[0] + 2*Lambda[1] - 2*delta
sage: RiggedConfigurations.options._reset()

我们可以用中岛单项式来检查这个晶体是否与上面的晶体同构:

sage: Minf = crystals.infinity.NakajimaMonomials(['C',3,1])
sage: Sinf = Minf.subcrystal(max_depth=2)
sage: Ginf = Minf.digraph(subset=Sinf)
sage: RC = crystals.infinity.RiggedConfigurations(['C',3,1])
sage: RCS = RC.subcrystal(max_depth=2)
sage: RCG = RC.digraph(subset=RCS)
sage: RCG.is_isomorphic(Ginf, edge_labels=True)
True

该模型适用于所有有限和仿射类型以及任何简单的Cartan矩阵。