Ambient lattices and ambient spaces¶
-
sage.combinat.root_system.ambient_space.
AmbientSpace
¶ Abstract class for ambient spaces
All subclasses should implement a class method
smallest_base_ring
taking a Cartan type as input, and a methoddimension
working on a partially initialized instance with justroot_system
as attribute. There is no safe default implementation for the later, so none is provided.EXAMPLES:
sage: AL = RootSystem(['A',2]).ambient_lattice()
Note
This is only used so far for finite root systems.
Caveat: Most of the ambient spaces currently have a basis indexed by \(0,\dots, n\), unlike the usual mathematical convention:
sage: e = AL.basis() sage: e[0], e[1], e[2] ((1, 0, 0), (0, 1, 0), (0, 0, 1))
This will be cleaned up!
See also
sage.combinat.root_system.type_A.AmbientSpace
sage.combinat.root_system.type_B.AmbientSpace
sage.combinat.root_system.type_C.AmbientSpace
sage.combinat.root_system.type_D.AmbientSpace
sage.combinat.root_system.type_E.AmbientSpace
sage.combinat.root_system.type_F.AmbientSpace
sage.combinat.root_system.type_G.AmbientSpace
sage.combinat.root_system.type_dual.AmbientSpace
sage.combinat.root_system.type_affine.AmbientSpace
-
class
sage.combinat.root_system.ambient_space.
AmbientSpaceElement
¶ Bases:
sage.modules.with_basis.indexed_element.IndexedFreeModuleElement
-
associated_coroot
()¶ EXAMPLES:
sage: e = RootSystem(['F',4]).ambient_space() sage: a = e.simple_root(0); a (1/2, -1/2, -1/2, -1/2) sage: a.associated_coroot() (1, -1, -1, -1)
-
coerce_to_e6
()¶ For type E7 or E8, orthogonally projects an element of the root lattice into the E6 root lattice. This operation on weights corresponds to intersection with the semisimple subgroup E6.
EXAMPLES:
sage: [b.coerce_to_e6() for b in RootSystem("E8").ambient_space().basis()] [(1, 0, 0, 0, 0, 0, 0, 0), (0, 1, 0, 0, 0, 0, 0, 0), (0, 0, 1, 0, 0, 0, 0, 0), (0, 0, 0, 1, 0, 0, 0, 0), (0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 0, 0, 0, 1/3, 1/3, -1/3), (0, 0, 0, 0, 0, 1/3, 1/3, -1/3), (0, 0, 0, 0, 0, -1/3, -1/3, 1/3)]
-
coerce_to_e7
()¶ For type E8, this orthogonally projects the given element of the E8 root lattice into the E7 root lattice. This operation on weights corresponds to intersection with the semisimple subgroup E7.
EXAMPLES:
sage: [b.coerce_to_e7() for b in RootSystem("E8").ambient_space().basis()] [(1, 0, 0, 0, 0, 0, 0, 0), (0, 1, 0, 0, 0, 0, 0, 0), (0, 0, 1, 0, 0, 0, 0, 0), (0, 0, 0, 1, 0, 0, 0, 0), (0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 0, 0, 0, 1, 0, 0), (0, 0, 0, 0, 0, 0, 1/2, -1/2), (0, 0, 0, 0, 0, 0, -1/2, 1/2)]
-
coerce_to_sl
()¶ For type [‘A’,r], this coerces the element of the ambient space into the root space by orthogonal projection. The root space has codimension one and corresponds to the Lie algebra of SL(r+1,CC), whereas the full weight space corresponds to the Lie algebra of GL(r+1,CC). So this operation corresponds to multiplication by a (possibly fractional) power of the determinant to give a weight determinant one.
EXAMPLES:
sage: [fw.coerce_to_sl() for fw in RootSystem("A2").ambient_space().fundamental_weights()] [(2/3, -1/3, -1/3), (1/3, 1/3, -2/3)] sage: L = RootSystem("A2xA3").ambient_space() sage: L([1,2,3,4,5,0,0]).coerce_to_sl() (-1, 0, 1, 7/4, 11/4, -9/4, -9/4)
-
dot_product
(lambdacheck)¶ The scalar product with elements of the coroot lattice embedded in the ambient space.
EXAMPLES:
sage: e = RootSystem(['A',2]).ambient_space() sage: a = e.simple_root(0); a (-1, 0, 0) sage: a.inner_product(a) 2
-
inner_product
(lambdacheck)¶ The scalar product with elements of the coroot lattice embedded in the ambient space.
EXAMPLES:
sage: e = RootSystem(['A',2]).ambient_space() sage: a = e.simple_root(0); a (-1, 0, 0) sage: a.inner_product(a) 2
-
is_positive_root
()¶ EXAMPLES:
sage: R = RootSystem(['A',3]).ambient_space() sage: r=R.simple_root(1)+R.simple_root(2) sage: r.is_positive_root() True sage: r=R.simple_root(1)-R.simple_root(2) sage: r.is_positive_root() False
-
scalar
(lambdacheck)¶ The scalar product with elements of the coroot lattice embedded in the ambient space.
EXAMPLES:
sage: e = RootSystem(['A',2]).ambient_space() sage: a = e.simple_root(0); a (-1, 0, 0) sage: a.inner_product(a) 2
-
to_ambient
()¶ Map
self
to the ambient space.This exists for uniformity. Its analogue for root and weight lattice realizations, is not trivial.
EXAMPLES:
sage: v = CartanType(['C',3]).root_system().ambient_space().an_element(); v (2, 2, 3) sage: v.to_ambient() (2, 2, 3)
-