Weyl人物环

Weyl字符环

Weyl特征环是紧李群的表示环。它有一个由不可约表示组成的基础 G 或者相当于他们的角色。Weyl字符环中的加法和乘法对应于表示的直和和和张量积。

环境空间方法

在Sage中,李群的许多有用的特征可用作环境空间的方法:

sage: S = RootSystem("B2").ambient_space(); S
Ambient space of the Root system of type ['B', 2]
sage: S.roots()
[(1, -1), (1, 1), (1, 0), (0, 1), (-1, 1), (-1, -1), (-1, 0), (0, -1)]
sage: S.fundamental_weights()
Finite family {1: (1, 0), 2: (1/2, 1/2)}
sage: S.positive_roots()
[(1, -1), (1, 1), (1, 0), (0, 1)]
sage: S.weyl_group()
Weyl Group of type ['B', 2] (as a matrix group acting on the ambient space)

Weyl特征环的方法

如果要使用表示,可能需要创建 Weyl字符环 . 环境空间的许多方法可用作Weyl字符环的方法:

sage: B3 = WeylCharacterRing("B3")
sage: B3.fundamental_weights()
Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)}
sage: B3.simple_roots()
Finite family {1: (1, -1, 0), 2: (0, 1, -1), 3: (0, 0, 1)}
sage: B3.dynkin_diagram()
O---O=>=O
1   2   3
B3

Weyl字符环的其他有用方法包括:

  • cartan_type

  • highest_root

  • positive_root

  • extended_dynkin_diagram

  • rank

环境空间的一些方法并没有实现为Weyl字符环的方法。但是,环境空间本身是一个方法,因此您可以从Weyl字符环访问它的方法:

sage: B3 = WeylCharacterRing("B3")
sage: B3.space().weyl_group()
Weyl Group of type ['B', 3] (as a matrix group acting on the ambient space)
sage: B3.space()
Ambient space of the Root system of type ['B', 3]
sage: B3.space().rho()
(5/2, 3/2, 1/2)
sage: B3.cartan_type()
['B', 3]

Coroot表示法

为Weyl字符环指定与其Cartan类型相对应的名称是很有用的。这会导致环可以解析自己的输出:

sage: G2 = WeylCharacterRing("G2")
sage: [G2(fw) for fw in G2.fundamental_weights()]
[G2(1,0,-1), G2(2,-1,-1)]
sage: G2(1,0,-1)
G2(1,0,-1)

Actually the prefix for the ring is configurable, so you don't really have to call this ring G2. Type WeylCharacterRing? at the sage: prompt for details.

有一个重要的选择,你可能想知道。这是 coroot表示法 . 您可以通过指定选项来选择此选项 style="coroots" 当你创建环。使用coroot样式,基本权重被表示出来 (1,0,0, ...)(0,1,0,...) 而不是作为环境空间中的向量:

sage: B3 = WeylCharacterRing("B3", style="coroots")
sage: [B3(fw) for fw in B3.fundamental_weights()]
[B3(1,0,0), B3(0,1,0), B3(0,0,1)]
sage: B3(0,0,1)
B3(0,0,1)
sage: B3(0,0,1).degree()
8

最后一个表示是 G = spin(7) ,正交群的双覆盖 SO(7) . 在默认的表示法中,它将被表示 B3(1/2,1/2,1/2) .

用coroot表示法表示每一个不可约表示 B3(a,b,c) 在哪里? abc 是非负整数。这通常很方便。在许多情况下,coroot风格更可取。

一个缺点:在coroot风格中,李群或李代数被视为半简单的,因此您失去了它们之间的区别 GL(n)SL(n) ;你也有一些关于E6和E7表示的信息。

表示的张量积

Weyl字符环中的乘法对应于张量积。这为我们提供了一种将张量积分解为不可约的简便方法:

sage: B3 = WeylCharacterRing("B3")
sage: fw = B3.fundamental_weights()
sage: spinweight = fw[3]; spinweight
(1/2, 1/2, 1/2)
sage: spin = B3(spinweight); spin
B3(1/2,1/2,1/2)
sage: spin.degree()
8

元素 spin WeylCharacterRing的表示与第三高权重表示相对应,即 spin(7) . 我们可以很容易地用命令来构造它:

sage: spin = B3(1/2,1/2,1/2)

我们可以利用Weyl特征环的乘法结构计算它的张量积:

sage: chi = spin*spin; chi
B3(0,0,0) + B3(1,0,0) + B3(1,1,0) + B3(1,1,1)

我们取了八维自旋表象,并用它自己张量。张量分成四个不可约的平方。

此处显示的最大权重(及其系数)可通过常用的自由模块访问器获得:

sage: from pprint import pprint
sage: list(chi)                           # random
[((1, 1, 1), 1), ((0, 0, 0), 1), ((1, 0, 0), 1), ((1, 1, 0), 1)]
sage: sorted(chi, key=str)
[((0, 0, 0), 1), ((1, 0, 0), 1), ((1, 1, 0), 1), ((1, 1, 1), 1)]
sage: pprint(dict(chi))
{(0, 0, 0): 1, (1, 0, 0): 1, (1, 1, 0): 1, (1, 1, 1): 1}
sage: M = sorted(chi.monomials(), key=lambda x: x.support()); M
[B3(0,0,0), B3(1,0,0), B3(1,1,0), B3(1,1,1)]
sage: sorted(chi.support())
[(0, 0, 0), (1, 0, 0), (1, 1, 0), (1, 1, 1)]
sage: chi.coefficients()
[1, 1, 1, 1]
sage: [r.degree() for r in M]
[1, 7, 21, 35]
sage: sum(r.degree() for r in chi.monomials())
64

这里我们提取了各个表示,计算了它们的度数,并检查了它们的总和 64 .

权重多重性

通过该方法可以获得字符的权重(及其系数) weight_multiplicities . 从上一节的示例继续:

sage: pprint(chi.weight_multiplicities())
{(0, 0, 0): 8, (-1, 0, 0): 4, (-1, -1, 0): 2, (-1, -1, -1): 1,
 (-1, -1, 1): 1, (-1, 1, 0): 2, (-1, 1, -1): 1, (-1, 1, 1): 1,
 (-1, 0, -1): 2, (-1, 0, 1): 2, (1, 0, 0): 4, (1, -1, 0): 2,
 (1, -1, -1): 1, (1, -1, 1): 1, (1, 1, 0): 2, (1, 1, -1): 1,
 (1, 1, 1): 1, (1, 0, -1): 2, (1, 0, 1): 2, (0, -1, 0): 4,
 (0, -1, -1): 2, (0, -1, 1): 2, (0, 1, 0): 4, (0, 1, -1): 2,
 (0, 1, 1): 2, (0, 0, -1): 4, (0, 0, 1): 4}

字典中的每个键都是一个权重,其值是该权重在字符中的重数。

例子

假设我们想计算积分

\[国际{U(n)}| tr(g)| ^{2k},dg\]

各种 n . 在这里 U(n) 是酉群,它是 GL(n,mathbb{{C}}) . 的不可约酉表示 U(n) 可以看作是weylcharactering的基本元素 A_r 在哪里 r=n-1 所以我们可以在那个拳击场工作。痕迹 tr(g) 就是标准表示的特征。我们可以在WeylCharacterRing中实现它,方法是取第一个基本重量,然后把它压入环中。例如,如果 k=5n=3 所以 r=2 ::

sage: A2 = WeylCharacterRing("A2")
sage: fw = A2.fundamental_weights(); fw
Finite family {1: (1, 0, 0), 2: (1, 1, 0)}
sage: tr = A2(fw[1]); tr
A2(1,0,0)

我们可以计算特征的范数平方 tr^5 把它分解成不可约数,并取其重数的平方和。通过Schur正交性,这给出了 tr(g)^5 也就是说 |tr(g)|^{{10}} ::

sage: sum(d^2 for d in (tr^5).coefficients())
103

到目前为止,我们一直在 n=3 . 为将军 n ::

sage: def f(n,k):
....:     R = WeylCharacterRing(['A',n-1])
....:     tr = R(R.fundamental_weights()[1])
....:     return sum(d^2 for d in (tr^k).coefficients())
sage: [f(n,5) for n in [2..7]]
[42, 103, 119, 120, 120, 120]

我们看到 tr(g) 只是 5! 什么时候? n 足够大。如果我们修复呢 n 变化 k 是吗?

sage: [f(2,k) for k in [1..10]]
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796]
sage: [catalan_number(k) for k in [1..10]]
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796]

弗罗贝尼乌斯舒尔指示剂

紧李群不可约表示的Frobeinus-Schur指示符 G 有个性的 chi 是:

\[国际航空公司\]

将Haar度量标准化,以便 vol(G) = 1 . Frobenius Schur指标等于 1 如果表示为实(正交), -1 如果它是四元数(辛)和 0 如果它是复杂的(不是自洽的)。这是与不可约表示相对应的加权环元素的一种方法。让我们计算一些奇数自旋群的自旋表示的Frobenius-Schur指示符:

sage: def spinrepn(r):
....:     R = WeylCharacterRing(['B',r])
....:     return R(R.fundamental_weights()[r])
....:
sage: spinrepn(3)
B3(1/2,1/2,1/2)
sage: for r in [1..4]:
....:     print("{} {}".format(r, spinrepn(r).frobenius_schur_indicator()))
1 -1
2 -1
3 1
4 1

这里我们定义了一个函数,它返回群的自旋表示 spin(2r+1) 卡坦式 ['B',r] ,然后计算几个值的Frobenius-Schur指标。从这个实验中我们看到 spin(3)spin(5) 是辛的,而 spin(7)spin(9) 是正交的。

对称和外部功率

Sage可以计算一个表示的对称和外幂:

sage: B3 = WeylCharacterRing("B3",style="coroots")
sage: spin = B3(0,0,1); spin.degree()
8
sage: spin.exterior_power(2)
B3(1,0,0) + B3(0,1,0)
sage: spin.exterior_square()
B3(1,0,0) + B3(0,1,0)
sage: spin.exterior_power(5)
B3(0,0,1) + B3(1,0,1)
sage: spin.symmetric_power(5)
B3(0,0,1) + B3(0,0,3) + B3(0,0,5)

这个 k -表示的外平方为零,如果 k 大于表示的度数。但是 k -对称幂是非零的 k .

任何表示的张量平方分解为对称和外部平方的直和:

sage: C4 = WeylCharacterRing("C4",style="coroots")
sage: chi = C4(1,0,0,0); chi.degree()
8
sage: chi.symmetric_square()
C4(2,0,0,0)
sage: chi.exterior_square()
C4(0,0,0,0) + C4(0,1,0,0)
sage: chi^2 == chi.symmetric_square() + chi.exterior_square()
True

因为在这个例子中,外部正方形包含我们期望的Frobenius Schur指示符 -1 事实上是这样的:

sage: chi = C4(1,0,0,0)
sage: chi.frobenius_schur_indicator()
-1

这并不奇怪,因为这是辛群的标准表示,辛群是辛的 根据定义 你说什么?

韦尔维公式

如果表示真的很大,您将无法在Weyl字符环中构造它,因为在内部它是由其权重的字典表示的。如果你想知道它的度,你仍然可以计算,因为Sage实现了Weyl维数公式。表示程度作为其最高权重向量的一种方法来实现:

sage: L = RootSystem("E8").ambient_space()
sage: [L.weyl_dimension(f) for f in L.fundamental_weights()]
[3875, 147250, 6696000, 6899079264, 146325270, 2450240, 30380, 248]

对于任何紧李群,如果 rho 是Weyl向量(正根和的一半)然后是权重最高的不可约表示的度 rho 等于 2^N 在哪里? N 是正根的数目。让我们检查一下 E_8 . 在这种情况下 N = 120 ::

sage: L = RootSystem("E8").ambient_space()
sage: len(L.positive_roots())
120
sage: 2^120
1329227995784915872903807060280344576
sage: L.weyl_dimension(L.rho())
1329227995784915872903807060280344576

SL与GL

Sage占了版面的权重 ['A',r] 成为 r+1 维度的。作为副产品,如果使用以下命令创建Weyl字符环:

sage: A2 = WeylCharacterRing("A2")

那么你就可以有效地 GL(3) 而不是 SL(3) . 例如,行列式是字符 A2(1,1,1) . 但是,正如我们稍后将解释的,您可以使用 SL(3) 如果你愿意,只要你愿意与分数权重一起工作。另一方面,如果使用以下命令创建Weyl字符环:

sage: A2 = WeylCharacterRing("A2", style="coroots")

那你就和 SL(3) .

这种安排有一些优点:

  • 集团 GL(r+1) 在实践中经常出现。例如,即使你主要关心半单群,群 GL(r+1) 可能以Levi子群的形式出现。

  • 它避免了分数权重。如果你想和 SL(3) 基本权重是 (2/3,-1/3,-1/3)(1/3,1/3,-2/3) . 如果你和 GL(3) ,他们是 (1,0,0)(1,1,0) . 对于许多数学目的来说,你用的没有任何区别。这是因为 (2/3,-1/3,-1/3)(1,0,0) 是一个与所有单根正交的向量。因此这些向量是可互换的。但为了方便起见,避免分数权重是有利的。

但是如果你想成为 SL 清教徒,Sage会支持你的。重量空间 SL(3) 可以被认为是超平面 mathbf{{Q}}^3 由向量组成 (a,b,c) 具有 a+b+c = 0 . SL(3)的基本权重为 (2/3,-1/3,-1/3)(1/3,1/3,-2/3) 尽管Sage会告诉你他们是 (1,0,0)(1,1,0) . 解决方法是通过方法过滤它们 coerce_to_sl 如下:

sage: A2 = WeylCharacterRing("A2")
sage: [fw1,fw2] = [w.coerce_to_sl() for w in A2.fundamental_weights()]
sage: [standard, contragredient] = [A2(fw1), A2(fw2)]
sage: standard, contragredient
(A2(2/3,-1/3,-1/3), A2(1/3,1/3,-2/3))
sage: standard*contragredient
A2(0,0,0) + A2(1,0,-1)

Sage并不被分数权重所迷惑。注意,如果使用coroot表示法,则 SL 自动::

sage: A2 = WeylCharacterRing("A2", style="coroots")
sage: A2(1,0).weight_multiplicities()
{(-1/3, -1/3, 2/3): 1, (-1/3, 2/3, -1/3): 1, (2/3, -1/3, -1/3): 1}

如果采用coroot样式,在Weyl字符环中没有创建行列式的方便方法。

就像我们把基本重量压入 SL 重量格,你可能需要强制Weyl向量 rho 如果你和 SL . 的默认值 rho 类型 A_r(r,r-1,dots,0) ,但如果你是 SL 纯粹主义者想要你

\[左(frac{r}{2}、frac{r}{2}-1、dots、-frac{r}{2}右)。\]

因此取 rho 你从环境空间的方法中得到,并强迫它进入 SL ::

sage: A2 = WeylCharacterRing("A2", style="coroots")
sage: rho = A2.space().rho().coerce_to_sl(); rho
(1, 0, -1)
sage: rho == (1/2)*sum(A2.space().positive_roots())
True

对于其他Cartan类型,不需要执行此操作。如果你在工作(比如说) F4 然后一个 rho 是一个 rho ::

sage: F4 = WeylCharacterRing("F4")
sage: L = F4.space()
sage: rho = L.rho()
sage: rho == (1/2)*sum(L.positive_roots())
True

整合

假设我们想计算积分

\[国际{U(n)}| tr(g)| ^{2k},dg\]

各种 n . 在这里 U(n) 是酉群,它是 GL(n,mathbf{{C}})dg 哈尔措施开了吗 U(n) ,使组的体积为1。

的不可约酉表示 U(n) 可以看作是weylcharactering的基本元素 A_r 在哪里 r=n-1 所以我们可以在那个拳击场工作。痕迹 tr(g) 就是标准表示的特征。我们可以在WeylCharacterRing中实现它,方法是取第一个基本重量,然后把它压入环中。例如,如果 k=5n=3 所以 r=2 ::

sage: A2 = WeylCharacterRing("A2")
sage: fw = A2.fundamental_weights(); fw
Finite family {1: (1, 0, 0), 2: (1, 1, 0)}
sage: tr = A2(fw[1]); tr
A2(1,0,0)

我们可以计算特征的范数平方 tr^5 把它分解成不可约数,并取其重数的平方和。通过Schur正交性,这给出了 tr(g)^5 也就是说 |tr(g)|^{{10}} ::

sage: tr^5
5*A2(2,2,1) + 6*A2(3,1,1) + 5*A2(3,2,0) + 4*A2(4,1,0) + A2(5,0,0)
sage: sorted((tr^5).monomials(), key=lambda x: x.support())
[A2(2,2,1), A2(3,1,1), A2(3,2,0), A2(4,1,0), A2(5,0,0)]
sage: sorted((tr^5).coefficients())
[1, 4, 5, 5, 6]
sage: sum(x^2 for x in (tr^5).coefficients())
103

到目前为止,我们一直在 n=3 . 为将军 n ::

sage: def f(n,k):
....:    R = WeylCharacterRing(['A',n-1])
....:    tr = R(R.fundamental_weights()[1])
....:    return sum(x^2 for x in (tr^k).coefficients())
....:
sage: [f(n,5) for n in [2..7]]  # long time (31s on sage.math, 2012)
[42, 103, 119, 120, 120, 120]

我们看到 tr(g) 只是 5! 什么时候? n 足够大。如果我们修复呢 n 变化 k 是吗?

sage: [f(2,k) for k in [1..10]]
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796]
sage: [catalan_number(k) for k in [1..10]]
[1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796]

不变量和重数

有时我们只关心某个字符中平凡表示的多重性。这可以通过方法找到 invariant_degree . 继续前面的例子,

sage: A2 = WeylCharacterRing("A2",style="coroots")
sage: ad = A2(1,1)
sage: [ad.symmetric_power(k).invariant_degree() for k in [0..6]]
[1, 0, 1, 1, 1, 1, 2]
sage: [ad.exterior_power(k).invariant_degree() for k in [0..6]]
[1, 0, 0, 1, 0, 1, 0]

如果我们需要其他表示的多重性,我们可以用这个方法得到 multiplicity ::

sage: (ad^3).multiplicity(ad)
8

配重环

您可能希望直接使用表示的权重。

Weyl字符环元素在内部由其具有重数的权重字典表示。然而,这些都受到一个约束:系数必须在Weyl群的作用下保持不变。

这个 WeightRing 也是一个环,其元素在内部用重数的权重字典表示,但它不受Weyl群不变性的约束。权重可以是分数,即环境空间的元素。换言之,权环是权格周围空间上的群代数。

创建一个 WeightRing 首先构造 WeylCharacterRing ,然后创建 WeightRing 如下:

sage: A2 = WeylCharacterRing(['A',2])
sage: a2 = WeightRing(A2)

您可以强制 WeylCharacterRing 进入重量环。例如,如果要查看 GL(3) ,您可以使用该方法 mlist ,但另一种方法是强迫它进入重量环:

sage: from pprint import pprint
sage: A2 = WeylCharacterRing(['A',2])
sage: ad = A2(1,0,-1)
sage: pprint(ad.weight_multiplicities())
{(0, 0, 0): 2, (-1, 1, 0): 1, (-1, 0, 1): 1, (1, -1, 0): 1,
 (1, 0, -1): 1, (0, -1, 1): 1, (0, 1, -1): 1}

此命令生成显示在表示中的权重及其重数的字典。但是另一种获得同样信息的方法,目的是利用它,强迫它进入重量环:

sage: a2 = WeightRing(A2)
sage: a2(ad)
2*a2(0,0,0) + a2(-1,1,0) + a2(-1,0,1) + a2(1,-1,0) + a2(1,0,-1) + a2(0,-1,1) + a2(0,1,-1)

例如,Weyl分母公式通常是这样写的:

\[prod{alphainPhi^+}left(e^{alpha/2}-e^-alpha/2}right)=sum{w在w}(-1)^{l(w)}e^{w(rho)}。\]

符号如下。这里如果 lambda 那么,一个权重,或者更一般地说,是环境空间的一个元素 e^lambda 是指 lambda 权格环境空间的群代数中 lambda . 因为这个群代数只是一个权环,我们可以解释 e^lambda 就像它在重量环上的形象。

让我们确认Weyl分母公式 A2 ::

sage: A2 = WeylCharacterRing("A2")
sage: a2 = WeightRing(A2)
sage: L = A2.space()
sage: W = L.weyl_group()
sage: rho = L.rho().coerce_to_sl()
sage: lhs = prod(a2(alpha/2)-a2(-alpha/2) for alpha in L.positive_roots()); lhs
a2(-1,1,0) - a2(-1,0,1) - a2(1,-1,0) + a2(1,0,-1) + a2(0,-1,1) - a2(0,1,-1)
sage: rhs = sum((-1)^(w.length())*a2(w.action(rho)) for w in W); rhs
a2(-1,1,0) - a2(-1,0,1) - a2(1,-1,0) + a2(1,0,-1) + a2(0,-1,1) - a2(0,1,-1)
sage: lhs == rhs
True

请注意,我们必须小心使用正确的值 rho . 原因在中解释 SL与GL .

We have seen that elements of the WeylCharacterRing can be coerced into the WeightRing. Elements of the WeightRing can be coerced into the WeylCharacterRing provided they are invariant under the Weyl group.