@@ -37,7 +37,7 @@ class AmbientSpace(CombinatorialFreeModule):
37
37
In type `BC`, the null root is in fact::
38
38
39
39
sage: R = RootSystem(["BC",3,2]).ambient_space()
40
- sage: R.null_root()
40
+ sage: R.null_root() # optional - sage.graphs
41
41
2*e['delta']
42
42
43
43
.. WARNING::
@@ -54,16 +54,16 @@ class AmbientSpace(CombinatorialFreeModule):
54
54
are identified::
55
55
56
56
sage: L = RootSystem(["A",3,1]).ambient_space()
57
- sage: Lambda = L.fundamental_weights()
58
- sage: Lambda[0]
57
+ sage: Lambda = L.fundamental_weights() # optional - sage.graphs
58
+ sage: Lambda[0] # optional - sage.graphs
59
59
e['deltacheck']
60
- sage: L.null_coroot()
60
+ sage: L.null_coroot() # optional - sage.graphs
61
61
e['deltacheck']
62
62
63
63
Therefore the scalar product of the null coroot with itself
64
64
differs from the larger ambient space::
65
65
66
- sage: L.null_coroot().scalar(L.null_coroot())
66
+ sage: L.null_coroot().scalar(L.null_coroot()) # optional - sage.graphs
67
67
1
68
68
69
69
In general, scalar products between two elements that do not
@@ -108,7 +108,7 @@ class AmbientSpace(CombinatorialFreeModule):
108
108
109
109
TESTS::
110
110
111
- sage: Lambda[1]
111
+ sage: Lambda[1] # optional - sage.graphs
112
112
e[0] + e['deltacheck']
113
113
"""
114
114
@classmethod
@@ -247,36 +247,43 @@ def fundamental_weight(self, i):
247
247
248
248
EXAMPLES::
249
249
250
- sage: RootSystem(['A',3,1]).ambient_space().fundamental_weight(2)
250
+ sage: RootSystem(['A',3,1]).ambient_space().fundamental_weight(2) # optional - sage.graphs
251
251
e[0] + e[1] + e['deltacheck']
252
- sage: RootSystem(['A',3,1]).ambient_space().fundamental_weights()
253
- Finite family {0: e['deltacheck'], 1: e[0] + e['deltacheck'],
254
- 2: e[0] + e[1] + e['deltacheck'], 3: e[0] + e[1] + e[2] + e['deltacheck']}
252
+ sage: RootSystem(['A',3,1]).ambient_space().fundamental_weights() # optional - sage.graphs
253
+ Finite family {0: e['deltacheck'],
254
+ 1: e[0] + e['deltacheck'],
255
+ 2: e[0] + e[1] + e['deltacheck'],
256
+ 3: e[0] + e[1] + e[2] + e['deltacheck']}
255
257
sage: RootSystem(['A',3]).ambient_space().fundamental_weights()
256
258
Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1, 1, 1, 0)}
257
- sage: RootSystem(['A',3,1]).weight_lattice().fundamental_weights().map(attrcall("level"))
259
+ sage: A31wl = RootSystem(['A',3,1]).weight_lattice()
260
+ sage: A31wl.fundamental_weights().map(attrcall("level")) # optional - sage.graphs
258
261
Finite family {0: 1, 1: 1, 2: 1, 3: 1}
259
262
260
- sage: RootSystem(['B',3,1]).ambient_space().fundamental_weights()
261
- Finite family {0: e['deltacheck'], 1: e[0] + e['deltacheck'],
262
- 2: e[0] + e[1] + 2*e['deltacheck'], 3: 1/2*e[0] + 1/2*e[1] + 1/2*e[2] + e['deltacheck']}
263
+ sage: RootSystem(['B',3,1]).ambient_space().fundamental_weights() # optional - sage.graphs
264
+ Finite family {0: e['deltacheck'],
265
+ 1: e[0] + e['deltacheck'],
266
+ 2: e[0] + e[1] + 2*e['deltacheck'],
267
+ 3: 1/2*e[0] + 1/2*e[1] + 1/2*e[2] + e['deltacheck']}
263
268
sage: RootSystem(['B',3]).ambient_space().fundamental_weights()
264
269
Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)}
265
- sage: RootSystem(['B',3,1]).weight_lattice().fundamental_weights().map(attrcall("level"))
270
+ sage: B31wl = RootSystem(['B',3,1]).weight_lattice().
271
+ sage: B31wlfundamental_weights().map(attrcall("level")) # optional - sage.graphs
266
272
Finite family {0: 1, 1: 1, 2: 2, 3: 1}
267
273
268
274
In type `BC` dual, the coefficient of '\delta^\vee' is the level
269
275
divided by `2` to take into account that the null coroot is
270
276
`2\delta^\vee`::
271
277
272
278
sage: R = CartanType(['BC',3,2]).dual().root_system()
273
- sage: R.ambient_space().fundamental_weights()
274
- Finite family {0: e['deltacheck'], 1: e[0] + e['deltacheck'],
279
+ sage: R.ambient_space().fundamental_weights() # optional - sage.graphs
280
+ Finite family {0: e['deltacheck'],
281
+ 1: e[0] + e['deltacheck'],
275
282
2: e[0] + e[1] + e['deltacheck'],
276
283
3: 1/2*e[0] + 1/2*e[1] + 1/2*e[2] + 1/2*e['deltacheck']}
277
- sage: R.weight_lattice().fundamental_weights().map(attrcall("level"))
284
+ sage: R.weight_lattice().fundamental_weights().map(attrcall("level")) # optional - sage.graphs
278
285
Finite family {0: 2, 1: 2, 2: 2, 3: 1}
279
- sage: R.ambient_space().null_coroot()
286
+ sage: R.ambient_space().null_coroot() # optional - sage.graphs
280
287
2*e['deltacheck']
281
288
282
289
By a slight naming abuse this function also accepts "delta" as
@@ -314,22 +321,26 @@ def simple_root(self, i):
314
321
315
322
sage: RootSystem(["A",3]).ambient_space().simple_roots()
316
323
Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1)}
317
- sage: RootSystem(["A",3,1]).ambient_space().simple_roots()
318
- Finite family {0: -e[0] + e[3] + e['delta'], 1: e[0] - e[1], 2: e[1] - e[2], 3: e[2] - e[3]}
324
+ sage: RootSystem(["A",3,1]).ambient_space().simple_roots() # optional - sage.graphs
325
+ Finite family {0: -e[0] + e[3] + e['delta'], 1: e[0] - e[1],
326
+ 2: e[1] - e[2], 3: e[2] - e[3]}
319
327
320
328
Here is a twisted affine example::
321
329
322
- sage: RootSystem(CartanType(["B",3,1]).dual()).ambient_space().simple_roots()
323
- Finite family {0: -e[0] - e[1] + e['delta'], 1: e[0] - e[1], 2: e[1] - e[2], 3: 2*e[2]}
330
+ sage: B31ᵛ = RootSystem(CartanType(["B",3,1]).dual())
331
+ sage: B31ᵛ.ambient_space().simple_roots() # optional - sage.graphs
332
+ Finite family {0: -e[0] - e[1] + e['delta'], 1: e[0] - e[1],
333
+ 2: e[1] - e[2], 3: 2*e[2]}
324
334
325
335
In fact `\delta` is really `1/a_0` times the null root (see
326
336
the discussion in :class:`~sage.combinat.root_system.weight_space.WeightSpace`)
327
337
but this only makes a difference in type `BC`::
328
338
329
339
sage: L = RootSystem(CartanType(["BC",3,2])).ambient_space()
330
- sage: L.simple_roots()
331
- Finite family {0: -e[0] + e['delta'], 1: e[0] - e[1], 2: e[1] - e[2], 3: 2*e[2]}
332
- sage: L.null_root()
340
+ sage: L.simple_roots() # optional - sage.graphs
341
+ Finite family {0: -e[0] + e['delta'], 1: e[0] - e[1],
342
+ 2: e[1] - e[2], 3: 2*e[2]}
343
+ sage: L.null_root() # optional - sage.graphs
333
344
2*e['delta']
334
345
335
346
.. NOTE::
@@ -367,10 +378,12 @@ def simple_coroot(self, i):
367
378
It is built as the coroot associated to the simple root
368
379
`\alpha_i`::
369
380
370
- sage: RootSystem(["B",3,1]).ambient_space().simple_roots()
371
- Finite family {0: -e[0] - e[1] + e['delta'], 1: e[0] - e[1], 2: e[1] - e[2], 3: e[2]}
372
- sage: RootSystem(["B",3,1]).ambient_space().simple_coroots()
373
- Finite family {0: -e[0] - e[1] + e['deltacheck'], 1: e[0] - e[1], 2: e[1] - e[2], 3: 2*e[2]}
381
+ sage: RootSystem(["B",3,1]).ambient_space().simple_roots() # optional - sage.graphs
382
+ Finite family {0: -e[0] - e[1] + e['delta'], 1: e[0] - e[1],
383
+ 2: e[1] - e[2], 3: e[2]}
384
+ sage: RootSystem(["B",3,1]).ambient_space().simple_coroots() # optional - sage.graphs
385
+ Finite family {0: -e[0] - e[1] + e['deltacheck'], 1: e[0] - e[1],
386
+ 2: e[1] - e[2], 3: 2*e[2]}
374
387
375
388
.. TODO:: Factor out this code with the classical ambient space.
376
389
"""
@@ -475,14 +488,14 @@ def associated_coroot(self):
475
488
476
489
EXAMPLES::
477
490
478
- sage: alpha = RootSystem(['C',2,1]).ambient_space().simple_roots()
479
- sage: alpha
491
+ sage: alpha = RootSystem(['C',2,1]).ambient_space().simple_roots() # optional - sage.graphs
492
+ sage: alpha # optional - sage.graphs
480
493
Finite family {0: -2*e[0] + e['delta'], 1: e[0] - e[1], 2: 2*e[1]}
481
- sage: alpha[0].associated_coroot()
494
+ sage: alpha[0].associated_coroot() # optional - sage.graphs
482
495
-e[0] + e['deltacheck']
483
- sage: alpha[1].associated_coroot()
496
+ sage: alpha[1].associated_coroot() # optional - sage.graphs
484
497
e[0] - e[1]
485
- sage: alpha[2].associated_coroot()
498
+ sage: alpha[2].associated_coroot() # optional - sage.graphs
486
499
e[1]
487
500
"""
488
501
# CHECKME: does it make any sense to not rescale the delta term?
0 commit comments