Root system data for type G#
- class sage.combinat.root_system.type_G.AmbientSpace(root_system, base_ring, index_set=None)[source]#
Bases:
AmbientSpace
EXAMPLES:
sage: e = RootSystem(['G',2]).ambient_space(); e Ambient space of the Root system of type ['G', 2]
>>> from sage.all import * >>> e = RootSystem(['G',Integer(2)]).ambient_space(); e Ambient space of the Root system of type ['G', 2]
One can not construct the ambient lattice because the simple coroots have rational coefficients:
sage: e.simple_coroots() Finite family {1: (0, 1, -1), 2: (1/3, -2/3, 1/3)} sage: e.smallest_base_ring() Rational Field
>>> from sage.all import * >>> e.simple_coroots() Finite family {1: (0, 1, -1), 2: (1/3, -2/3, 1/3)} >>> e.smallest_base_ring() Rational Field
By default, this ambient space uses the barycentric projection for plotting:
sage: # needs sage.symbolic sage: L = RootSystem(["G",2]).ambient_space() sage: e = L.basis() sage: L._plot_projection(e[0]) (1/2, 989/1142) sage: L._plot_projection(e[1]) (-1, 0) sage: L._plot_projection(e[2]) (1/2, -989/1142) sage: L = RootSystem(["A",3]).ambient_space() sage: l = L.an_element(); l (2, 2, 3, 0) sage: L._plot_projection(l) (0, -1121/1189, 7/3)
>>> from sage.all import * >>> # needs sage.symbolic >>> L = RootSystem(["G",Integer(2)]).ambient_space() >>> e = L.basis() >>> L._plot_projection(e[Integer(0)]) (1/2, 989/1142) >>> L._plot_projection(e[Integer(1)]) (-1, 0) >>> L._plot_projection(e[Integer(2)]) (1/2, -989/1142) >>> L = RootSystem(["A",Integer(3)]).ambient_space() >>> l = L.an_element(); l (2, 2, 3, 0) >>> L._plot_projection(l) (0, -1121/1189, 7/3)
See also
sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ParentMethods._plot_projection()
- dimension()[source]#
EXAMPLES:
sage: e = RootSystem(['G',2]).ambient_space() sage: e.dimension() 3
>>> from sage.all import * >>> e = RootSystem(['G',Integer(2)]).ambient_space() >>> e.dimension() 3
- fundamental_weights()[source]#
EXAMPLES:
sage: CartanType(['G',2]).root_system().ambient_space().fundamental_weights() Finite family {1: (1, 0, -1), 2: (2, -1, -1)}
>>> from sage.all import * >>> CartanType(['G',Integer(2)]).root_system().ambient_space().fundamental_weights() Finite family {1: (1, 0, -1), 2: (2, -1, -1)}
- negative_roots()[source]#
EXAMPLES:
sage: CartanType(['G',2]).root_system().ambient_space().negative_roots() [(0, -1, 1), (-1, 2, -1), (-1, 1, 0), (-1, 0, 1), (-1, -1, 2), (-2, 1, 1)]
>>> from sage.all import * >>> CartanType(['G',Integer(2)]).root_system().ambient_space().negative_roots() [(0, -1, 1), (-1, 2, -1), (-1, 1, 0), (-1, 0, 1), (-1, -1, 2), (-2, 1, 1)]
- positive_roots()[source]#
EXAMPLES:
sage: CartanType(['G',2]).root_system().ambient_space().positive_roots() [(0, 1, -1), (1, -2, 1), (1, -1, 0), (1, 0, -1), (1, 1, -2), (2, -1, -1)]
>>> from sage.all import * >>> CartanType(['G',Integer(2)]).root_system().ambient_space().positive_roots() [(0, 1, -1), (1, -2, 1), (1, -1, 0), (1, 0, -1), (1, 1, -2), (2, -1, -1)]
- class sage.combinat.root_system.type_G.CartanType[source]#
Bases:
CartanType_standard_finite
,CartanType_simple
,CartanType_crystallographic
EXAMPLES:
sage: ct = CartanType(['G',2]) sage: ct ['G', 2] sage: ct._repr_(compact = True) 'G2' sage: ct.is_irreducible() True sage: ct.is_finite() True sage: ct.is_crystallographic() True sage: ct.is_simply_laced() False sage: ct.dual() ['G', 2] relabelled by {1: 2, 2: 1} sage: ct.affine() ['G', 2, 1]
>>> from sage.all import * >>> ct = CartanType(['G',Integer(2)]) >>> ct ['G', 2] >>> ct._repr_(compact = True) 'G2' >>> ct.is_irreducible() True >>> ct.is_finite() True >>> ct.is_crystallographic() True >>> ct.is_simply_laced() False >>> ct.dual() ['G', 2] relabelled by {1: 2, 2: 1} >>> ct.affine() ['G', 2, 1]
- AmbientSpace[source]#
alias of
AmbientSpace
- ascii_art(label=None, node=None)[source]#
Return an ascii art representation of the Dynkin diagram.
EXAMPLES:
sage: print(CartanType(['G',2]).ascii_art(label=lambda x: x+2)) 3 O=<=O 3 4
>>> from sage.all import * >>> print(CartanType(['G',Integer(2)]).ascii_art(label=lambda x: x+Integer(2))) 3 O=<=O 3 4
- coxeter_number()[source]#
Return the Coxeter number associated with
self
.EXAMPLES:
sage: CartanType(['G',2]).coxeter_number() 6
>>> from sage.all import * >>> CartanType(['G',Integer(2)]).coxeter_number() 6
- dual()[source]#
Return the dual Cartan type.
This uses that \(G_2\) is self-dual up to relabelling.
EXAMPLES:
sage: G2 = CartanType(['G',2]) sage: G2.dual() ['G', 2] relabelled by {1: 2, 2: 1} sage: G2.dynkin_diagram() # needs sage.graphs 3 O=<=O 1 2 G2 sage: G2.dual().dynkin_diagram() # needs sage.graphs 3 O=<=O 2 1 G2 relabelled by {1: 2, 2: 1}
>>> from sage.all import * >>> G2 = CartanType(['G',Integer(2)]) >>> G2.dual() ['G', 2] relabelled by {1: 2, 2: 1} >>> G2.dynkin_diagram() # needs sage.graphs 3 O=<=O 1 2 G2 >>> G2.dual().dynkin_diagram() # needs sage.graphs 3 O=<=O 2 1 G2 relabelled by {1: 2, 2: 1}
- dual_coxeter_number()[source]#
Return the dual Coxeter number associated with
self
.EXAMPLES:
sage: CartanType(['G',2]).dual_coxeter_number() 4
>>> from sage.all import * >>> CartanType(['G',Integer(2)]).dual_coxeter_number() 4
- dynkin_diagram()[source]#
Returns a Dynkin diagram for type G.
EXAMPLES:
sage: g = CartanType(['G',2]).dynkin_diagram(); g # needs sage.graphs 3 O=<=O 1 2 G2 sage: g.edges(sort=True) # needs sage.graphs [(1, 2, 1), (2, 1, 3)]
>>> from sage.all import * >>> g = CartanType(['G',Integer(2)]).dynkin_diagram(); g # needs sage.graphs 3 O=<=O 1 2 G2 >>> g.edges(sort=True) # needs sage.graphs [(1, 2, 1), (2, 1, 3)]